:root {
  --water-blue: #0d7772;
  --water-dark: #063f49;
  --water-pale: #a7c8c1;
  --panel: #e8e5d8;
  --paper: #fffdf4;
  --ink: #171713;
  --navy: #164e57;
  --rust: #984326;
  --link: #0645ad;
  --visited: #551a8b;
  --line: #397d78;
}

* { box-sizing: border-box; }
img { max-width: 100%; }
html { background: #668e91; font-size: 100%; }
body {
  margin: 0;
  color: var(--ink);
  background: linear-gradient(#426f76, #91b2ae 420px, #6f9292);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.42;
}
a { color: var(--link); text-decoration: underline; }
a:visited { color: var(--visited); }
a:hover, a:focus { color: #b00000; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #ffde00;
  outline-offset: 2px;
}

.site-frame { width: min(1260px, calc(100% - 18px)); margin: 10px auto 24px; }
.masthead { position: relative; height: 206px; overflow: hidden; border: 3px double #d6caa6; background: #244e57; box-shadow: 0 2px 0 #274e50; }
.masthead::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12, 39, 43, .78), rgba(12, 39, 43, .18) 57%, transparent 76%); pointer-events: none; }
.masthead-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.masthead-title {
  position: absolute; z-index: 1; top: 54px; left: 28px; margin: 0; color: #fff8df;
  font: 900 clamp(2.6rem, 5vw, 4.7rem)/.85 Georgia, "Times New Roman", serif;
  letter-spacing: -3px; text-shadow: 3px 3px 0 #153d43, -1px -1px 0 #153d43;
}
.masthead-name { display: inline-block; font-style: italic; transform: skew(-5deg); }
.masthead-year { display: block; margin-left: 118px; color: #e5a04b; font-size: .63em; letter-spacing: .14em; }
.masthead-kicker {
  position: absolute; z-index: 1; top: 14px; left: 29px; margin: 0; padding-bottom: 3px;
  color: #e8d7a9; border-bottom: 1px solid #c98b54; font: bold .77rem "Courier New", monospace; letter-spacing: .08em;
}
.masthead-subtitle {
  position: absolute; z-index: 1; right: 18px; bottom: 12px; margin: 0; padding: 3px 7px;
  color: #173d42; background: rgba(255,248,223,.88); border: 1px solid #8e4e32;
  font: bold .82rem "Courier New", monospace;
}

.page-grid { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 10px; margin-top: 9px; align-items: start; }
.sidebar { min-width: 0; grid-column: 1; grid-row: 1; }
.side-box { margin: 0 0 9px; border: 1px solid var(--line); background: var(--panel); font-size: .875rem; line-height: 1.22; }
.side-box h2 {
  margin: 0; padding: 3px 5px; color: #fffbea; background: var(--water-blue); border-bottom: 1px solid #064c49;
  text-align: center; font: bold 1.02rem/1.02 Georgia, "Times New Roman", serif;
}
.side-box-body { padding: 4px; }
.side-box p { margin: 0 0 7px; }
.side-box ul { margin: 0; padding: 0; list-style: none; }
.side-box li { margin: 0 0 8px; }
.sponsor-wordmark {
  display: block; margin: 6px auto; padding: 7px 3px; color: #173b50; background: #fff;
  border: 2px outset #d8d8d8; text-align: center; text-decoration: none;
  font: bold .72rem/1.05 Arial, sans-serif; text-transform: uppercase;
}
.sponsor-logo-link { display: block; margin: 7px auto; padding: 3px; background: #fff; border: 2px outset #d8d2c3; text-decoration: none; }
.sponsor-logo-link img { display: block; width: 100%; height: auto; }
.counter {
  display: block; width: max-content; margin: 5px auto; padding: 2px 5px; color: #00ff5e; background: #050505;
  border: 2px inset #cfcfcf; font: bold .8rem "Courier New", monospace; letter-spacing: 2px;
}
.best-viewed { margin: 5px 0 !important; text-align: center; font-size: .72rem; }

.content { min-width: 0; min-height: 720px; padding: 18px 38px 34px; background: var(--paper); border: 1px solid rgba(46, 117, 151, .3); grid-column: 2; grid-row: 1; }
.content h1, .content h2, .content h3 { color: var(--navy); font-family: Georgia, "Times New Roman", serif; }
.content h1 { margin: 0 0 25px; font-size: clamp(2rem, 4vw, 2.35rem); line-height: 1.05; overflow-wrap: anywhere; }
.content h2 { margin: 28px 0 8px; font-size: 1.55rem; }
.content h3 { margin: 20px 0 5px; font-size: 1.18rem; }
.content p { max-width: 70rem; }
.intro { font-size: 1.05rem; }
.program-list { margin: 16px 10px 24px; padding: 8px 9px 8px 26px; background: #f1f1f1; border: 1px solid var(--line); }
.program-list li { margin: 2px 0; }
.callout { margin: 18px 0; padding: 9px 12px; background: #fffbd5; border: 2px dashed #b70000; color: #5d0000; font-weight: bold; }
.blink { animation: blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { visibility: hidden; } }
.new-badge { color: #c40000; font: bold .72rem Arial, sans-serif; vertical-align: super; }
.detail-meta { margin: 14px 0; padding: 7px 10px; background: #eee; border: 1px solid #aaa; }
.detail-meta p { margin: 2px 0; }
.speaker-note { font-style: italic; }
.archive-note { color: #555; font-size: .9rem; }
.speaker-intro { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; align-items: start; margin: 18px 0; }
.speaker-photo { display: block; width: 150px; height: 150px; object-fit: cover; border: 5px solid #f7f0dc; outline: 1px solid #6e7068; box-shadow: 3px 3px 0 #c6c0af; }
.session-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0 24px; }
.session-grid article { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px; padding: 7px; background: #f0eee4; border: 1px solid var(--line); box-shadow: 2px 2px 0 #c5c1b3; }
.session-grid img { width: 92px; height: 92px; object-fit: cover; border: 2px solid #fff; outline: 1px solid #888; }
.session-grid p { margin: 0; font-size: .9rem; line-height: 1.3; }
.session-grid span { color: #5c5b52; font-size: .8rem; }
.sponsor-feature { display: grid; grid-template-columns: minmax(180px, 290px) minmax(0, 1fr); gap: 18px; align-items: center; padding: 12px; background: #eeeade; border: 3px double var(--rust); }
.sponsor-feature img { width: 100%; height: auto; background: #fff; border: 1px solid #958f81; }
.sponsor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0 24px; }
.sponsor-grid article { padding: 8px; background: #eeeade; border: 1px solid var(--line); }
.sponsor-grid img { display: block; width: 100%; height: auto; background: #fff; border: 1px solid #aaa; }
.sponsor-grid p { margin: 7px 2px 2px; font-size: .9rem; }

.agent-reply {
  margin: 18px 0;
  padding: 10px 13px;
  background: #f7f7fb;
  border: 1px solid #7c7c99;
  border-left: 7px solid #6655a3;
  box-shadow: 2px 2px 0 #d4d4d4;
}
.agent-reply.compact { margin: 15px 0; padding: 8px 11px; }
.agent-reply p { margin: 4px 0; }
.agent-label { color: #4e3c86; font: bold .74rem "Courier New", monospace; letter-spacing: .05em; }
.agent-meta { color: #666; font: .76rem "Courier New", monospace; }
.agent-reply code { padding: 1px 3px; background: #e7e7ee; border: 1px solid #ccc; }
.guardrail-error {
  max-width: 100%;
  margin: 18px 0;
  padding: 11px 12px;
  overflow: auto;
  white-space: pre-wrap;
  color: #8b0000;
  background: #fff0f0;
  border: 3px double #c40000;
  font: .88rem/1.45 "Courier New", monospace;
}
.guardrail-error.secondary { color: #6c4100; background: #fff8d9; border-color: #c68100; }
.injection-break {
  position: relative;
  margin: 30px -22px -18px;
  padding: 18px 22px 22px;
  background: #fff4da;
  border: 4px ridge #d69a23;
  font-family: Georgia, "Times New Roman", serif;
}
.injection-break::before { content: "PROMPT INJECTION DETECTED"; display: block; margin: -18px -22px 15px; padding: 5px 8px; color: #fff; background: #b33a00; font: bold .8rem "Courier New", monospace; letter-spacing: .08em; }
.injection-break h2 { color: #7b2600; font-size: 1.65rem; }
.injection-break h3 { color: #7b2600; }
.injection-alert { color: #6e0000; font: bold .88rem/1.4 "Courier New", monospace; }

.retro-form { max-width: 720px; border: 2px ridge #bbb; background: #eee; padding: 14px; }
.form-row { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 10px; margin-bottom: 12px; align-items: center; }
.form-row label { font-weight: bold; }
input, select, textarea, button { font: inherit; }
input, select, textarea { width: 100%; padding: 7px; color: #000; background: #fff; border: 2px inset #ddd; }
textarea { min-height: 100px; resize: vertical; }
.retro-button { padding: 7px 14px; color: #000; background: #ddd; border: 3px outset #eee; font-weight: bold; cursor: pointer; }
.retro-button:active { border-style: inset; }
.form-result { margin-top: 14px; padding: 10px; border: 2px solid var(--line); background: #fff; }
[hidden] { display: none !important; }

.site-footer { color: #111; text-align: center; font: bold .8rem Georgia, serif; }
.site-footer p { margin: 12px 0 4px; }
.site-footer .legal { font-weight: normal; }

@media (prefers-reduced-motion: reduce) { .blink { animation: none; } }
@media (max-width: 760px) {
  .site-frame { width: calc(100% - 12px); margin-top: 6px; }
  .masthead { height: 150px; }
  .masthead-photo { object-position: center center; }
  .masthead-title { top: 42px; left: 18px; letter-spacing: -2px; }
  .masthead-year { margin-left: 80px; }
  .masthead-kicker { top: 12px; left: 18px; font-size: .7rem; }
  .masthead-subtitle { display: none; }
  .page-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; margin-top: 7px; }
  .content { grid-column: 1; grid-row: 1; padding: 20px; min-height: 0; }
  .sidebar { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .side-box { margin: 0; }
  .side-box.keynote-box { grid-column: 1 / -1; }
  .side-box.keynote-box ul { columns: 2; column-gap: 14px; }
  .session-grid { grid-template-columns: 1fr; }
  .sponsor-logo-link img { max-height: 88px; object-fit: contain; }
}
@media (max-width: 480px) {
  html { background: var(--water-dark); }
  body { font-size: 1rem; line-height: 1.48; }
  .site-frame { width: 100%; margin: 0; }
  .masthead { height: 132px; border-width: 0 0 3px; box-shadow: none; }
  .masthead::after { background: linear-gradient(90deg, rgba(12, 39, 43, .92), rgba(12, 39, 43, .52) 72%, rgba(12, 39, 43, .18)); }
  .masthead-photo { object-position: 48% center; }
  .masthead-title { top: 43px; left: 14px; font-size: clamp(2.25rem, 13vw, 3rem); line-height: .82; letter-spacing: -2px; }
  .masthead-year { margin: 9px 0 0 52px; font-size: .55em; letter-spacing: .16em; }
  .masthead-kicker { top: 10px; left: 14px; max-width: calc(100% - 28px); font-size: .66rem; letter-spacing: .045em; white-space: nowrap; }
  .page-grid { gap: 6px; margin-top: 0; }
  .content { padding: 18px 14px 24px; border-width: 0 0 1px; }
  .content h1 { margin-bottom: 18px; font-size: clamp(1.7rem, 9vw, 2.05rem); line-height: 1.08; }
  .content h2 { margin-top: 24px; font-size: 1.35rem; line-height: 1.12; overflow-wrap: anywhere; }
  .content h3 { font-size: 1.08rem; }
  .content p, .content li, .side-box { overflow-wrap: anywhere; }
  .program-list { margin: 12px 0 20px; padding: 9px 9px 9px 27px; }
  .program-list li { margin-bottom: 5px; }
  .callout, .agent-reply, .guardrail-error { margin: 15px 0; }
  .agent-reply { padding: 9px 10px; border-left-width: 4px; box-shadow: 1px 1px 0 #d4d4d4; }
  .agent-meta { display: block; line-height: 1.4; overflow-wrap: anywhere; }
  .guardrail-error { padding: 9px; overflow-x: hidden; font-size: .78rem; line-height: 1.42; }
  .injection-break { margin: 26px -6px -12px; padding: 16px 10px 18px; border-width: 3px; }
  .injection-break::before { margin: -16px -10px 13px; font-size: .7rem; letter-spacing: .04em; }
  .detail-meta { padding: 8px; font-size: .93rem; }
  .sidebar { display: block; }
  .side-box { margin: 0 6px 7px; font-size: .94rem; line-height: 1.32; }
  .side-box h2 { padding: 6px; }
  .side-box-body { padding: 8px; }
  .side-box.keynote-box ul { columns: 1; }
  .form-row { grid-template-columns: 1fr; gap: 4px; margin-bottom: 15px; }
  input, select, textarea, button { font-size: 1rem; }
  input, select { min-height: 44px; }
  textarea { min-height: 130px; }
  .retro-form { padding: 11px; }
  .retro-button { width: 100%; min-height: 46px; padding: 9px 12px; }
  .speaker-intro { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; margin: 15px 0; }
  .speaker-photo { width: 88px; height: 88px; border-width: 3px; }
  .session-grid { gap: 8px; }
  .session-grid article { grid-template-columns: 76px minmax(0, 1fr); gap: 9px; padding: 7px; }
  .session-grid img { width: 76px; height: 76px; }
  .session-grid p { font-size: .88rem; }
  .sponsor-grid, .sponsor-feature { grid-template-columns: 1fr; }
  .sponsor-feature { gap: 8px; padding: 8px; }
  .sponsor-grid { gap: 8px; }
  .site-footer { padding: 0 10px 12px; line-height: 1.35; }
}
@media (max-width: 340px) {
  .masthead-title { font-size: 2.15rem; }
  .masthead-kicker { font-size: .61rem; }
  .speaker-intro { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; }
  .speaker-photo { width: 72px; height: 72px; }
  .session-grid article { grid-template-columns: 64px minmax(0, 1fr); }
  .session-grid img { width: 64px; height: 64px; }
}
