/* GLADIUS theme: Roman inscription meets night HUD. Loaded last. */

:root {
  --bg: #0b0b0a;
  --bronze: #c8955a;
  --bronze-2: #e9c46a;
  --display: "Cinzel", "Times New Roman", serif;
  --cut: 14px;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --p: 1; --out: 0;
}
html { scroll-behavior: auto; }
body { background: var(--bg); overflow-x: hidden; }
.wrap { max-width: 1180px; }
::selection { background: var(--bronze); color: #0b0b0a; }

/* ---------- labels & headings ---------- */
.label { display: flex; align-items: center; gap: 12px; font: 500 12px var(--mono); letter-spacing: .22em; text-transform: uppercase; color: var(--ink-2); margin: 0 0 18px; flex-wrap: wrap; }
.label .num { color: var(--bronze); font-family: var(--display); font-weight: 700; letter-spacing: .08em; font-size: 14px; min-width: 14px; }
.label .dash { width: 46px; height: 1px; background: repeating-linear-gradient(90deg, var(--bronze) 0 4px, transparent 4px 8px); opacity: .7; }
h1, h2, .seal-word, .closing-title { font-family: var(--display); font-weight: 700; letter-spacing: .01em; }
.section { padding: 120px 16px 20px; }
.section-head { margin-bottom: 36px; max-width: 820px; }
.section-head.row { max-width: none; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.section-head h2 { font-size: clamp(30px, 4.2vw, 56px); line-height: 1.05; margin: 0; }
.lead-text { color: var(--ink-2); font-size: 17px; max-width: 640px; margin: 18px 0 0; }

/* chamfered surfaces */
.cut { --c-line: color-mix(in srgb, var(--bronze) 35%, var(--line));
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  position: relative; }
.cut::before { content: ""; position: absolute; top: 0; left: 0; width: calc(var(--cut) * 1.42); height: 1px; background: var(--bronze); transform-origin: 0 0; transform: translateY(var(--cut)) rotate(-45deg); opacity: .8; }
.card { clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut)); border-radius: 0; }

/* CTA: chamfered, with a sweeping shine */
.cta { --cut: 10px; position: relative; display: inline-flex; align-items: center; gap: 14px; padding: 15px 22px; font: 600 13px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: #120f09; background: linear-gradient(180deg, #f1d28a, var(--bronze)); border: 0; cursor: pointer; text-decoration: none; overflow: hidden;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut)); transition: filter .2s, transform .2s var(--ease); }
.cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, rgb(255 255 255 / .55) 50%, transparent 70%); translate: -120% 0; transition: translate .7s var(--ease); }
.cta:hover::after { translate: 120% 0; }
.cta:hover { filter: brightness(1.06); }
.cta:active { transform: scale(.98); }
.cta i { font-style: normal; transition: translate .25s var(--ease); }
.cta:hover i { translate: 4px 0; }
.cta.ghost { background: rgb(255 255 255 / .04); color: var(--ink); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--bronze) 45%, transparent); backdrop-filter: blur(8px); }
.cta.full { width: 100%; justify-content: center; }
.cta:disabled { opacity: .5; cursor: default; }

/* ---------- hero ---------- */
.hero { position: relative; display: block; height: 100svh; min-height: 640px; padding: 0; overflow: hidden; isolation: isolate; }
#arena { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; max-height: none; z-index: 0; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgb(11 11 10 / .82) 0%, rgb(11 11 10 / .45) 38%, transparent 58%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(transparent, var(--bg)); pointer-events: none; z-index: 1; }


.site-head { position: absolute; z-index: 3; top: 30px; left: 40px; right: 40px; display: flex; align-items: center; gap: 28px; }
.site-head .brand { font-family: var(--display); letter-spacing: .2em; font-size: 17px; }
.site-head .nav a { font: 500 12px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2); }
.site-head .nav a:hover { color: var(--bronze-2); }

.hero-copy { position: absolute; z-index: 3; left: 56px; top: 50%; translate: 0 calc(-50% + var(--out) * -140px); max-width: 600px; opacity: calc(1 - var(--out) * 1.6); }
.hero-title { font-size: clamp(40px, 5.4vw, 84px); line-height: 1; margin: 0 0 26px; text-transform: uppercase; letter-spacing: .015em; }
.hero-title .line > span { white-space: nowrap; }
.hero-title .line { display: block; overflow: hidden; padding-bottom: .04em; }
.hero-title .line > span { display: inline-block; animation: rise 1.25s var(--ease) both; }
.hero-title .line:nth-child(1) > span { animation-delay: .35s; }
.hero-title .line:nth-child(2) > span { animation-delay: .5s; }
.hero-title .line:nth-child(3) > span { animation-delay: .65s; }
.hero-title .line:nth-child(4) > span { animation-delay: .8s; }
.hero-title .accent > span { background: linear-gradient(90deg, #f3d591, var(--bronze) 60%, #9c6a3a); -webkit-background-clip: text; background-clip: text; color: transparent; }
@keyframes rise { from { transform: translateY(105%); } }
.intro { animation: fadeUp 1s var(--ease) both; }
.hero-copy .label.intro { animation-delay: .2s; }
.hero-copy .lede.intro { animation-delay: .9s; }
.hero-copy .hero-cta.intro { animation-delay: 1.05s; }
.hero-copy .ca-row.intro { animation-delay: 1.15s; }
.hero-specs.intro { animation-delay: 1.3s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } }
.hero .lede { font-size: 17px; max-width: 500px; color: var(--ink-2); }
.hero .label .num { width: 8px; height: 8px; min-width: 0; border-radius: 50%; background: var(--good); box-shadow: 0 0 0 0 var(--good); animation: pulse 1.8s infinite; }
.hero .label .num.sim { background: var(--bronze); }

.hero-specs { position: absolute; z-index: 3; left: 0; right: 0; bottom: 40px; display: flex; justify-content: center; gap: 34px; font-size: 14px; color: var(--ink-2); flex-wrap: wrap; padding: 0 20px; opacity: calc(1 - var(--out) * 2); }
.hero-specs span { display: inline-flex; gap: 8px; align-items: center; }
.spec-ico { color: var(--bronze); font-style: normal; }
.scroll-cue { position: absolute; z-index: 3; right: 44px; bottom: 36px; display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--muted); text-decoration: none; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; }
.scroll-cue i { width: 1px; height: 38px; background: linear-gradient(var(--bronze), transparent); animation: cue 2.2s ease-in-out infinite; transform-origin: top; }
@keyframes cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* callouts that follow the gladiators */
.callouts { position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: calc(1 - var(--out) * 2); }
.co { --cut: 9px; position: absolute; left: 0; top: 0; pointer-events: auto; cursor: pointer; contain: layout paint; display: grid; grid-template-columns: auto auto; gap: 2px 12px; align-items: baseline; padding: 9px 13px 9px 12px; min-width: 150px;
  background: rgb(14 13 11 / .9);
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  box-shadow: inset 2px 0 0 var(--c); will-change: transform; transition: opacity .3s; animation: fadeUp .8s 1.4s var(--ease) both; }
.co b { font: 700 14px var(--display); letter-spacing: .06em; }
.co .r { font: 11px var(--mono); color: var(--muted); text-align: right; }
.co .e { font: 600 13px var(--mono); }
.co .pn { font: 12px var(--mono); text-align: right; }
.co:hover { background: rgb(20 18 14 / .9); }

/* ---------- floating bar ---------- */
.bar { --cut: 12px; position: fixed; z-index: 20; top: 14px; left: 50%; width: min(780px, calc(100% - 24px)); translate: -50% -140%; transition: translate .6s var(--ease); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 0 10px 0 18px; min-height: 52px; }
.bar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgb(16 15 13 / .94);
  clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));
  box-shadow: inset 0 0 0 1px rgb(200 149 90 / .25); }
.bar[data-shown] { translate: -50% 0; }
.bar::after { content: ""; position: absolute; left: var(--cut); right: var(--cut); bottom: 0; height: 1px; background: var(--bronze); transform-origin: left; transform: scaleX(var(--progress, 0)); opacity: .8; }
.bar-logo { font: 700 14px var(--display); letter-spacing: .2em; text-decoration: none; color: var(--ink); display: inline-flex; gap: 8px; align-items: center; }
.bar-logo span { color: var(--bronze); }
.bar-line { text-align: center; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-line.swap { animation: lineSwap .45s var(--ease); }
@keyframes lineSwap { from { opacity: 0; transform: translateY(6px); filter: blur(3px); } }
.bar-actions { display: flex; gap: 6px; align-items: center; }
.bar-burger { width: 40px; height: 40px; border: 0; background: none; cursor: pointer; display: grid; place-content: center; gap: 5px; }
.bar-burger span { display: block; width: 18px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
.bar[data-open] .bar-burger span:first-child { transform: translateY(3.25px) rotate(45deg); }
.bar[data-open] .bar-burger span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.bar-panel { grid-column: 1 / -1; overflow: hidden; display: flex; flex-direction: column; max-height: 0; transition: max-height .5s var(--ease); }
.bar[data-open] .bar-panel { max-height: 420px; }
.bar-panel a { display: flex; gap: 14px; align-items: center; padding: 12px 6px; border-top: 1px solid var(--line); text-decoration: none; color: var(--ink); font-size: 15px; }
.bar-panel a b { font: 700 12px var(--display); color: var(--bronze); width: 32px; }
.bar-panel a:hover { color: var(--bronze-2); }
.bar-buy:empty { display: none; }
.bar-buy { padding: 10px 0 4px; }

/* sound toggle with an equaliser */
.sound { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 10px; background: none; border: 0; color: var(--ink-2); cursor: pointer; }
.sound .eq { display: inline-flex; align-items: flex-end; gap: 2px; height: 14px; }
.sound .eq i { width: 2px; height: 3px; background: currentColor; border-radius: 1px; }
.sound[aria-pressed="true"] { color: var(--bronze-2); }
.sound[aria-pressed="true"] .eq i { animation: eq 1s ease-in-out infinite; }
.sound .eq i:nth-child(2) { animation-delay: .2s; } .sound .eq i:nth-child(3) { animation-delay: .45s; } .sound .eq i:nth-child(4) { animation-delay: .1s; }
@keyframes eq { 50% { height: 14px; } }
.sound-text { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; }

/* ---------- statement ---------- */
.statement { padding: 60px 16px 40px; }
.statement p { font: 500 clamp(28px, 4.4vw, 60px) / 1.15 var(--sans); letter-spacing: -.01em; margin: 0; max-width: 1050px; }
.statement .w { opacity: clamp(.12, calc((var(--p) * 1.25 * var(--n) - var(--w)) / 3), 1); transition: opacity .15s linear; }
.banner { max-width: 1148px; margin: 40px auto 0; }

/* ---------- scroll-linked entrances ---------- */
[data-scroll] .section-head { translate: 0 calc((1 - var(--p)) * 50px); opacity: clamp(0, calc(var(--p) * 1.8), 1); }
[data-scroll] .section-head .dash { width: calc(var(--p) * 46px); }
.cards .card { translate: 0 calc((1 - var(--p)) * (70px + var(--i, 0) * 45px)); opacity: clamp(0, calc(var(--p) * 2 - var(--i, 0) * .2), 1); }
.bm-cell { opacity: clamp(.05, calc(var(--p) * 2.4 - var(--col, 0) * .25), 1); }
.chart-card, .lab, .verify-card, .vote-card, .rules > div, .map-card, .dials { translate: 0 calc((1 - var(--p)) * 60px); }
.chart path.line[pathLength] { stroke-dasharray: 1; stroke-dashoffset: clamp(0, calc(1.6 - var(--p) * 1.8), 1); }
.hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 0 0 26px; }

/* ---------- anatomy of an hour ---------- */
.anatomy { height: 250vh; position: relative; }
.anat-stick { position: sticky; top: 0; min-height: 100vh; padding: 96px 16px 40px; display: flex; flex-direction: column; }
.anat-pick { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 18px; }
.anat-grid { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 34px; flex: 1; align-items: start; }
.anat-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; border-left: 1px solid var(--line); }
.anat-steps li { padding: 12px 16px; color: var(--muted); font-size: 16px; position: relative; transition: color .3s; cursor: pointer; }
.anat-steps li b { font: 600 11px var(--mono); margin-right: 12px; color: inherit; }
.anat-steps li::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 2px; background: var(--bronze); transform: scaleY(0); transition: transform .4s var(--ease); }
.anat-steps li.on { color: var(--ink); }
.anat-steps li.on::before { transform: none; }
.anat-steps li.done { color: var(--ink-2); }
.anat-flow { width: 100%; height: auto; display: block; margin-bottom: 18px; overflow: visible; }
.anat-flow .rail { stroke: var(--line); stroke-width: 2; fill: none; }
.anat-flow .lit { stroke: var(--bronze); stroke-width: 2; fill: none; }
.anat-flow .node { fill: var(--bg); stroke: var(--line); stroke-width: 2; transition: stroke .3s, fill .3s; }
.anat-flow .node.on { stroke: var(--bronze); fill: #241c11; }
.anat-flow .node.done { stroke: color-mix(in srgb, var(--bronze) 60%, var(--line)); }
.anat-flow text { font: 600 11px var(--mono); fill: var(--muted); text-anchor: middle; }
.anat-flow text.on { fill: var(--ink); }
.anat-flow .packet { fill: var(--bronze-2); filter: drop-shadow(0 0 6px var(--bronze)); }
.anat-card { --cut: 16px; background: var(--surface); border: 1px solid var(--line); padding: 26px; min-height: 300px;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut)); }
.anat-card .k { font: 500 11px var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--bronze); margin: 0 0 8px; }
.anat-card h3 { font: 700 clamp(22px, 2.6vw, 32px) var(--display); margin: 0 0 14px; }
.anat-card p { color: var(--ink-2); margin: 0 0 16px; max-width: 620px; }
.anat-card .rows { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.anat-card .rows div { background: var(--surface-2); padding: 10px 12px; }
.anat-card .rows span { display: block; font: 11px var(--mono); color: var(--muted); letter-spacing: .12em; text-transform: uppercase; }
.anat-card .rows b { font: 600 15px var(--mono); word-break: break-all; }
.anat-card .quote { border-left: 2px solid var(--c, var(--bronze)); padding: 6px 14px; color: var(--ink); font-size: 16px; margin: 0 0 16px; }
.anat-card .swap-in { animation: fadeUp .5s var(--ease); }
.anat-progress { height: 2px; background: var(--line); margin-top: 24px; }
.anat-progress i { display: block; height: 100%; background: var(--bronze); transform-origin: left; transform: scaleX(var(--p)); }

/* ---------- verify dials ---------- */
.dials { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.dial { position: relative; display: grid; place-items: center; padding: 18px 10px; text-align: center; }
.dial svg { width: 132px; height: 132px; rotate: -90deg; }
.dial circle { fill: none; stroke: var(--line); stroke-width: 2; }
.dial .d-arc { stroke: var(--bronze); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--fill, 0) * clamp(0, calc(var(--p) * 1.6 - .3), 1)); }
.dial b { position: absolute; top: 18px; height: 132px; display: grid; place-items: center; font: 700 30px var(--display); }
.dial span { margin-top: 10px; font: 11px var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }

/* ---------- closing ---------- */
.closing { min-height: 90vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 22px; padding: 100px 16px; position: relative; overflow: hidden; }
.closing::before { content: ""; position: absolute; width: 900px; height: 900px; border-radius: 50%; background: radial-gradient(circle, rgb(200 149 90 / .16), transparent 60%); scale: calc(.6 + var(--p) * .6); z-index: -1; }
.closing .label { justify-content: center; }
.closing-title { font-size: clamp(54px, 12vw, 180px); line-height: .95; margin: 0; text-transform: uppercase; scale: calc(.86 + var(--p) * .14); letter-spacing: calc(.01em + (1 - var(--p)) * .2em);
  background: linear-gradient(180deg, #f6e3ad, var(--bronze) 65%, #6d4728); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* misc refinements */
.card .agent-name, .dr-head h2, .vote-opt b, .lab-rank b { font-family: var(--display); letter-spacing: .04em; }
.top { display: none; }
.foot { border-top: 1px solid var(--line); }
.drawer-panel { border-left-color: color-mix(in srgb, var(--bronze) 40%, var(--line)); }
.toast { border-radius: 0; clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.tooltip { border-radius: 0; border-color: color-mix(in srgb, var(--bronze) 35%, var(--line)); }

@media (max-width: 900px) {
  .site-head .nav { display: none; }
  .site-head { left: 24px; right: 24px; top: 24px; }
  .hero { height: auto; min-height: 100svh; padding: 0 0 min(520px, 118vw); }
  .hero-copy { position: relative; left: auto; top: auto; padding: 96px 24px 0; translate: 0 calc(var(--out) * -60px); }
  .hero-title { font-size: clamp(36px, 11vw, 60px); }
  .hero::before { background: linear-gradient(180deg, rgb(11 11 10 / .6), transparent 50%); }
  .hero .lede { font-size: 15px; }
  .hero-specs { gap: 14px; font-size: 12px; bottom: 26px; }
  .scroll-cue { display: none; }
  .co { min-width: 0; padding: 6px 9px; grid-template-columns: auto; }
  .co .r, .co .pn { display: none; }
  .anat-grid { grid-template-columns: 1fr; gap: 16px; }
  .anat-steps { grid-template-columns: repeat(6, 1fr); border-left: 0; border-top: 1px solid var(--line); }
  .anat-steps li { padding: 8px 2px; font-size: 0; text-align: center; }
  .anat-steps li b { font-size: 11px; margin: 0; }
  .anat-steps li::before { left: 0; right: 0; top: -1px; bottom: auto; height: 2px; width: auto; transform: scaleX(0); }
  .anat-steps li.on::before { transform: none; }
  .dials { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .section { padding-top: 90px; }
  .hero-cta .cta { padding: 13px 16px; font-size: 12px; }
  .hero-specs span:nth-child(3) { display: none; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .anat-card { padding: 16px; min-height: 0; }
  .anat-stick { padding-top: 74px; }
  .anat-stick .section-head { margin-bottom: 14px; }
  .anat-stick .section-head h2 { font-size: 26px; }
  .anat-card p { font-size: 14px; margin-bottom: 10px; }
  .anat-card .rows { grid-template-columns: 1fr 1fr; gap: 6px; }
  .anat-card .rows div { padding: 7px 9px; }
  .anat-card .rows b { font-size: 13px; }
  .anat-flow { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .statement .w { opacity: 1; }
}

/* pinned anatomy: its heading must be visible as soon as it arrives */
.anatomy .section-head { translate: none; opacity: 1; }
.anatomy .section-head .dash { width: 46px; }

/* ---------- ask the gladiators ---------- */
.ask { --cut: 18px; display: grid; grid-template-columns: 280px minmax(0, 1fr); background: var(--surface); border: 1px solid var(--line); min-height: 560px; translate: 0 calc((1 - var(--p)) * 60px); }
.ask-side { border-right: 1px solid var(--line); padding: 20px; display: flex; flex-direction: column; gap: 22px; }
.ask-agents { display: grid; gap: 6px; }
.ask-agent { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: none; border: 1px solid transparent; color: var(--ink); cursor: pointer; text-align: left; font: inherit; transition: background .2s, border-color .2s; }
.ask-agent .vote-orb { margin: 0; }
.ask-agent b { display: block; font: 700 15px var(--display); letter-spacing: .05em; }
.ask-agent small { color: var(--muted); font: 11px var(--mono); text-transform: uppercase; letter-spacing: .12em; }
.ask-agent:hover { background: var(--surface-2); }
.ask-agent.on { background: var(--surface-2); border-color: var(--c); box-shadow: inset 3px 0 0 var(--c); }
.ask-k { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--bronze); margin: 0 0 10px; }
.ask-models { display: flex; width: 100%; margin-bottom: 12px; }
.ask-models button { flex: 1; font-size: 12px; }
.ask-engine .small { margin: 10px 0 0; line-height: 1.5; }
.ask-main { display: flex; flex-direction: column; min-width: 0; }
.ask-log { flex: 1; padding: 22px; overflow-y: auto; max-height: 520px; display: flex; flex-direction: column; gap: 14px; }
.ask-empty { margin: auto; text-align: center; color: var(--ink-2); display: grid; justify-items: center; gap: 12px; }
.vote-orb.big { width: 64px; height: 64px; font-size: 28px; box-shadow: 0 0 40px color-mix(in srgb, var(--c) 55%, transparent); animation: breathe 3.2s ease-in-out infinite; }
@keyframes breathe { 50% { box-shadow: 0 0 70px color-mix(in srgb, var(--c) 75%, transparent); transform: scale(1.04); } }
.msg { max-width: 86%; animation: fadeUp .35s var(--ease); }
.msg.me { align-self: flex-end; background: color-mix(in srgb, var(--bronze) 16%, var(--surface-2)); padding: 10px 14px; clip-path: polygon(8px 0, 100% 0, 100% 100%, 0 100%, 0 8px); }
.msg.them { align-self: flex-start; display: grid; grid-template-columns: auto 1fr; gap: 12px; }
.msg.them .vote-orb { margin: 0; }
.msg-head { margin: 0 0 4px; display: flex; gap: 10px; align-items: baseline; }
.msg-head b { font: 700 14px var(--display); letter-spacing: .05em; }
.msg-head span { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .14em; }
.msg-text { margin: 0; white-space: pre-wrap; color: var(--ink); line-height: 1.55; background: var(--surface-2); padding: 10px 14px; border-left: 2px solid var(--c); }
.msg-text.typing::after { content: "▍"; color: var(--c); animation: blink 1s steps(2) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.msg-src { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.msg-src a, .msg-src span { font: 11px var(--mono); padding: 3px 8px; border: 1px solid var(--line); color: var(--ink-2); text-decoration: none; }
.msg-src a:hover { border-color: var(--bronze); color: var(--bronze-2); }
.ask-suggest { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 22px 12px; }
.ask-form { display: flex; gap: 8px; padding: 14px 22px 20px; border-top: 1px solid var(--line); }
.ask-form input { flex: 1; min-width: 0; background: var(--surface-2); border: 1px solid var(--line); color: var(--ink); font: 15px var(--sans); padding: 12px 14px; }
.ask-form input:focus { outline: none; border-color: var(--bronze); }
.ask-why { margin-left: 6px; background: none; border: 1px solid var(--line); color: var(--bronze-2); font: 11px var(--mono); padding: 1px 7px; cursor: pointer; }
.ask-why:hover { border-color: var(--bronze); }
.dr-actions { flex-wrap: wrap; align-items: center; }
@media (max-width: 900px) {
  .ask { grid-template-columns: 1fr; }
  .ask-side { border-right: 0; border-bottom: 1px solid var(--line); }
  .ask-agents { grid-template-columns: repeat(4, 1fr); }
  .ask-agent { flex-direction: column; gap: 4px; padding: 8px 4px; text-align: center; }
  .ask-agent small { display: none; }
  .ask-log { max-height: 440px; padding: 16px; }
  .ask-form, .ask-suggest { padding-left: 16px; padding-right: 16px; }
}

/* promote the scroll-driven pieces to their own layers */
.hero-copy, .callouts, .hero-specs, .closing::before, .closing-title { will-change: transform, opacity; }
.bar::after { will-change: transform; }
