/* Public site layout: compact, two-column hero, tight sections */
.site-main { display: flex; flex-direction: column; min-width: 0; overflow-x: hidden; }
.shell--site { grid-template-columns: minmax(0, 1fr); }
.marquee { contain: inline-size; }
.section { border-bottom: 1px solid var(--line); position: relative; scroll-margin-top: calc(var(--header-h) + var(--frame-inset)); }
.wrap { max-width: 1360px; margin: 0 auto; padding: 0 var(--sp-6); width: 100%; }
.sec-head { display: grid; grid-template-columns: 72px 1fr auto; align-items: end; gap: var(--sp-5); padding: var(--sp-10) 0 var(--sp-5); }
.sec-head .idx { font-family: var(--font-mono); font-size: var(--fs-11); letter-spacing: 0.14em; color: var(--ink-2); padding-bottom: 8px; }
.sec-head .idx b { color: var(--red); font-weight: 500; }
.sec-head h2 { font-size: 40px; }
.sec-head .meta { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-2); padding-bottom: 10px; text-align: right; }
.sec-body { padding-bottom: var(--sp-10); }
.sec-intro { color: var(--ink-1); font-size: var(--fs-15); line-height: 1.55; max-width: 64ch; margin-bottom: var(--sp-5); }

/* Hero: text left, live console right */
.hero { position: relative; overflow: hidden; }
.hero .field { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.5; }
.hero .fade { position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg-0) 0%, color-mix(in srgb, var(--bg-0) 85%, transparent) 40%, color-mix(in srgb, var(--bg-0) 35%, transparent) 100%), linear-gradient(180deg, transparent 55%, var(--bg-0) 100%); }
.hero .wrap { position: relative; display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: var(--sp-10); align-items: center; padding-top: var(--sp-10); padding-bottom: var(--sp-8); }
.hero .eyebrow { display: flex; gap: var(--sp-3); align-items: center; margin-bottom: var(--sp-5); flex-wrap: wrap; }
.hero h1 { font-size: clamp(48px, 5.6vw, 84px); line-height: 0.92; }
.hero h1 .ln { display: block; overflow: hidden; }
.hero h1 .ln > span { display: block; }
.hero .sub { font-size: 17px; color: var(--ink-1); max-width: 44ch; line-height: 1.5; margin-top: var(--sp-5); }
.hero .ctas { display: flex; gap: var(--sp-3); margin-top: var(--sp-5); flex-wrap: wrap; }
.hero .entry-list { margin-top: var(--sp-6); border-top: 1px solid var(--line); }
.hero .entry-list a { display: grid; grid-template-columns: 28px 1fr auto; gap: var(--sp-3); align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--ink-1); transition: color var(--dur-1) var(--ease), padding-left var(--dur-2) var(--ease); }
.hero .entry-list a:hover { color: var(--ink-0); padding-left: 6px; }
.hero .entry-list .n { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.12em; }
.hero .entry-list .t { font-family: var(--font-display); font-weight: 800; font-stretch: 110%; font-size: var(--fs-15); letter-spacing: -0.01em; color: var(--ink-0); }
.hero .entry-list .d { font-size: var(--fs-12); color: var(--ink-2); }
.hero .entry-list .arrow { font-family: var(--font-mono); color: var(--ink-3); transition: transform var(--dur-1) var(--ease), color var(--dur-1) var(--ease); }
.hero .entry-list a:hover .arrow { transform: translate(3px, -3px); color: var(--red); }

/* Load sequence */
.seq-in { opacity: 0; transform: translateY(14px); animation: seqin 700ms var(--ease) forwards; }
.hero h1 .ln > span { transform: translateY(110%); animation: lnup 800ms var(--ease) forwards; }
.hero h1 .ln:nth-child(2) > span { animation-delay: 90ms; }
.seq-in.s1 { animation-delay: 60ms; } .seq-in.s2 { animation-delay: 260ms; } .seq-in.s3 { animation-delay: 360ms; } .seq-in.s4 { animation-delay: 460ms; } .seq-in.s5 { animation-delay: 200ms; }
@keyframes seqin { to { opacity: 1; transform: none; } }
@keyframes lnup { to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .seq-in, .hero h1 .ln > span { opacity: 1; transform: none; animation: none; } }

/* Console embed */
.embed { border: 1px solid var(--line-2); background: var(--bg-0); position: relative; box-shadow: 0 0 0 1px var(--bg-0), 0 30px 80px -40px rgba(255, 45, 45, 0.25); }
.embed .ebar { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); padding: 7px var(--sp-3); border-bottom: 1px solid var(--line); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); min-width: 0; }
.embed .ebar span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.embed .eport { position: relative; overflow: hidden; aspect-ratio: 1440 / 860; }
.embed iframe { position: absolute; top: 0; left: 0; width: 1440px; height: 860px; border: 0; transform-origin: 0 0; pointer-events: none; background: var(--bg-0); }
.embed .eover { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-end; padding: var(--sp-3); background: linear-gradient(180deg, transparent 70%, color-mix(in srgb, var(--bg-0) 80%, transparent)); opacity: 0; transition: opacity var(--dur-2) var(--ease); }
.embed:hover .eover, .embed:focus-within .eover { opacity: 1; }
.ticker { display: grid; grid-template-columns: 64px 90px 1fr; gap: 10px; padding: 7px var(--sp-3); border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; color: var(--ink-1); overflow: hidden; white-space: nowrap; }
.ticker .t { color: var(--ink-3); } .ticker .who { text-transform: uppercase; color: var(--ink-2); } .ticker .msg { overflow: hidden; text-overflow: ellipsis; }
.ticker .msg b { color: var(--ink-0); font-weight: 500; }
.ticker.swap .msg, .ticker.swap .who, .ticker.swap .t { animation: tickin 320ms var(--ease); }
@keyframes tickin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Stats strip */
.stats { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stats > div { background: var(--bg-0); padding: 12px var(--sp-6); display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.stats .v { font-family: var(--font-mono); font-size: var(--fs-24); font-weight: 600; letter-spacing: -0.03em; color: var(--ink-0); }
.stats .label { min-width: 0; white-space: normal; line-height: 1.5; text-wrap: pretty; }

/* Lifecycle */
.lifecycle { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.lifecycle > div { background: var(--bg-1); padding: var(--sp-4) var(--sp-4) var(--sp-4); display: flex; flex-direction: column; gap: 8px; position: relative; overflow: hidden; }
.lifecycle .n { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.14em; }
.lifecycle .t { font-family: var(--font-display); font-weight: 800; font-stretch: 112%; font-size: 26px; letter-spacing: -0.03em; }
.lifecycle .d { color: var(--ink-1); font-size: var(--fs-13); line-height: 1.5; }
.lifecycle .tags { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.lifecycle canvas { position: absolute; right: 0; top: 0; width: 110px; height: 110px; opacity: 0.3; }

/* Method: sequence + diagram */
.method { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.method > div { background: var(--bg-1); min-width: 0; }
.seq { display: flex; flex-direction: column; }
.seq .st { display: grid; grid-template-columns: 30px 120px 1fr; gap: var(--sp-3); align-items: center; padding: 11px var(--sp-4); border-bottom: 1px solid var(--line); transition: background var(--dur-2) var(--ease); cursor: default; }
.seq .st:last-child { border-bottom: 0; }
.seq .st .n { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.12em; }
.seq .st .who { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; color: var(--ink-2); font-size: var(--fs-15); }
.seq .st .what { color: var(--ink-2); font-size: var(--fs-12); line-height: 1.45; }
.seq .st.on { background: var(--bg-2); }
.seq .st.on .who { color: var(--ink-0); }
.seq .st.on .what { color: var(--ink-1); }
.seq .st.on .n { color: var(--red); }
.method .viz { position: relative; min-height: 300px; overflow: hidden; }
.method .viz canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.method .viz .node { position: absolute; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.method .viz .node i { width: 10px; height: 10px; background: var(--ink-2); display: block; transition: background var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease); }
.method .viz .node span { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); background: var(--bg-1); padding: 1px 4px; white-space: nowrap; }
.method .viz .node.on i { background: var(--red); box-shadow: 0 0 0 4px var(--red-dim); }
.method .viz .node.on span { color: var(--ink-0); }
.method .viz .node.ok i { background: var(--ok); }
.method .viz svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.method .viz svg line { stroke: var(--line-2); stroke-width: 1; }
.method .viz svg line.on { stroke: var(--red); stroke-dasharray: 4 4; animation: dash 1.2s linear infinite; }
@keyframes dash { to { stroke-dashoffset: -16; } }

/* Result card */
.result { display: grid; grid-template-columns: 1fr 280px; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.result > div { background: var(--bg-1); min-width: 0; }
.result .kv { font-size: var(--fs-13); }

/* Roster */
.roster { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.roster > div { background: var(--bg-1); padding: 14px var(--sp-4); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.roster .n { font-family: var(--font-display); font-weight: 800; font-stretch: 112%; font-size: var(--fs-18); letter-spacing: -0.02em; display: flex; justify-content: space-between; align-items: center; }
.roster .r { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); }
.roster .d { color: var(--ink-1); font-size: var(--fs-12); line-height: 1.45; }

/* Proof + funding, one section */
.proof { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.proof > div { background: var(--bg-1); padding: var(--sp-5); min-width: 0; }
.proof .big { font-family: var(--font-mono); font-size: 56px; font-weight: 600; letter-spacing: -0.05em; color: var(--ink-3); line-height: 1; }
.proof ul { display: flex; flex-direction: column; }
.proof li { display: grid; grid-template-columns: 16px 1fr auto; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-13); color: var(--ink-1); align-items: center; }
.proof li:last-child { border-bottom: 0; }
.proof li i { width: 8px; height: 8px; border: 1px solid var(--line-2); }
.proof li.done i { background: var(--ok); border-color: var(--ok); }
.proof li b { color: var(--ink-0); font-weight: 500; }
.loop { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-top: 0; }
.loop > div { background: var(--bg-1); padding: 12px var(--sp-4); position: relative; min-width: 0; }
.loop > div .n { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); letter-spacing: 0.12em; }
.loop > div .t { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: var(--fs-15); margin: 4px 0 2px; }
.loop > div .d { color: var(--ink-2); font-size: var(--fs-11); line-height: 1.45; }
.loop > div::after { content: "→"; position: absolute; right: -1px; top: 50%; transform: translate(50%, -50%); font-family: var(--font-mono); color: var(--ink-3); background: var(--bg-1); padding: 0 2px; z-index: 1; font-size: 11px; }
.loop > div:last-child::after { display: none; }

/* Roadmap */
.roadmap { border: 1px solid var(--line); }
.roadmap .rm { display: grid; grid-template-columns: 56px 240px 1fr 110px; gap: var(--sp-4); padding: 10px var(--sp-4); border-bottom: 1px solid var(--line); align-items: center; }
.roadmap .rm:last-child { border-bottom: 0; }
.roadmap .rm .n { font-family: var(--font-mono); font-size: var(--fs-11); color: var(--ink-2); letter-spacing: 0.1em; }
.roadmap .rm .t { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: var(--fs-15); letter-spacing: -0.01em; }
.roadmap .rm .d { color: var(--ink-1); font-size: var(--fs-12); line-height: 1.45; }
.roadmap .rm.done .t { color: var(--ink-1); }
.roadmap .rm .chip { justify-self: end; }

/* Closing + footer block */
.closing { padding: var(--sp-12) 0; position: relative; overflow: hidden; }
.closing .wrap { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--sp-10); align-items: end; position: relative; }
.closing h2 { font-size: clamp(36px, 4.6vw, 64px); max-width: 14ch; }
.closing canvas { position: absolute; right: 0; top: 0; width: 55%; height: 100%; opacity: 0.4; }
.closing .links { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
.closing .links a { display: block; color: var(--ink-1); padding: 3px 0; font-size: var(--fs-12); }
.closing .links a:hover { color: var(--ink-0); }
.closing .links .label { display: block; margin-bottom: 6px; }

@media (max-width: 1000px) {
  .sec-head { grid-template-columns: 1fr; gap: var(--sp-2); padding-top: var(--sp-8); }
  .sec-head .meta { text-align: left; }
  .sec-head h2 { font-size: var(--fs-32); }
  .hero .wrap { grid-template-columns: 1fr; gap: var(--sp-6); }
  .stats, .lifecycle, .roster { grid-template-columns: repeat(2, 1fr); }
  .method, .result, .proof, .closing .wrap { grid-template-columns: 1fr; }
  .loop { grid-template-columns: 1fr; } .loop > div::after { display: none; }
  .roadmap .rm { grid-template-columns: 56px 1fr auto; } .roadmap .rm .d { grid-column: 2 / -1; }
}
@media (max-width: 640px) {
  .wrap { padding: 0 var(--sp-4); }
  .stats, .lifecycle, .roster, .closing .links { grid-template-columns: 1fr; }
  .hero h1 { font-size: 44px; }
  .hero .sub { font-size: var(--fs-15); }
  .closing canvas { display: none; }
}

/* Crawlable FAQ content, native disclosure behavior, and keyboard entry point. */
.skip-link { position: fixed; top: 8px; left: 16px; z-index: 200; transform: translateY(-160%); padding: 12px 18px; background: var(--ink-0); color: var(--bg-0); }
.skip-link:focus { transform: translateY(0); }
.faq { max-width: 960px; }
.faq details { border-top: 1px solid var(--line); padding: 16px 0; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; font-size: 16px; font-weight: 600; padding-right: 16px; }
.faq p { color: var(--ink-1); font-size: 14px; line-height: 1.65; max-width: 80ch; margin-top: 12px; }
