/* Structure only. Colors and fonts come from /theme/<room>.css (brand tokens per entity). */
:root{
  --bg:#F6F7F9; --surface:#FFFFFF; --surface-2:#EEF0F4; --fg:#111827; --muted:#5B6472; --rule:#D9DDE4;
  --accent:#1F4FD1; --accent-ink:#FFFFFF; --accent-soft:rgba(31,79,209,.12);
  --ok:#1F7A55; --ok-soft:#D5EBDF; --warn:#9A5B00; --warn-soft:#F4E3C4; --todo:#8A3A2A; --todo-soft:#F3DCD6;
  --display:system-ui,-apple-system,'Segoe UI',sans-serif; --body:system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; --editorial:var(--body); --accent-text:var(--accent); --data:var(--accent); --radius:6px; --display-case:none; --display-weight:700;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 var(--body);-webkit-font-smoothing:antialiased}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.minw{min-width:0}
.mono{font-family:var(--mono)} .small{font-size:12.5px} .muted{color:var(--muted)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3{margin:0;text-wrap:balance} p{margin:0}
a{color:var(--accent-text)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h2,.h2{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:clamp(22px,3vw,32px);line-height:1.08;margin-top:8px}
.h1{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:30px;margin:6px 0 4px}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--radius);padding:10px 16px;font:600 13px var(--body);cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.07)} .btn.sm{padding:6px 11px;font-size:12px}
.btn.ghost{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.btn.danger{background:transparent;color:var(--todo);box-shadow:inset 0 0 0 1px var(--todo)}
.linkbtn{background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline}
.pill{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--rule);border-radius:var(--radius);color:var(--muted);white-space:nowrap}
.pill.accent{border-color:var(--accent);color:var(--accent-text)}
progress{width:100%;height:6px;appearance:none;border:0;border-radius:3px;background:var(--rule);overflow:hidden}
progress::-webkit-progress-bar{background:var(--rule)} progress::-webkit-progress-value{background:var(--accent)} progress::-moz-progress-bar{background:var(--accent)}

/* top */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--rule)}
.topin{display:flex;align-items:center;gap:16px;padding-block:12px;flex-wrap:wrap}
.brandline{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--fg);min-width:0}
.logo{height:30px;width:auto;max-width:60vw;display:block;object-fit:contain} .logo-dark{display:none}
.wordmark{font-family:var(--display);font-weight:var(--display-weight);font-size:19px;text-transform:var(--display-case)}
.roomtag{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-left:12px;border-left:1px solid var(--rule)}
.who,.nav{margin-left:auto;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.nav a{color:var(--fg);text-decoration:none;font-weight:600;font-size:14px} .nav a:hover{color:var(--accent)}
.preview-bar{background:var(--fg);color:var(--bg);text-align:center;font:12px var(--mono);padding:6px}
.preview-bar a{color:var(--bg)}

/* hero */
.hero{padding-block:52px 40px;border-bottom:1px solid var(--rule)}
.herogrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:44px;align-items:end}
.display{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:clamp(34px,5.4vw,62px);line-height:1;letter-spacing:-.02em;margin-top:14px}
.display em{font-style:normal;color:var(--accent)}
.bar{width:110px;height:6px;background:var(--accent);margin-block:22px 18px}
.lede{font-family:var(--editorial);font-style:italic;font-size:21px;line-height:1.35;max-width:52ch} .lede2{margin-top:10px;color:var(--muted);max-width:60ch}
.ids{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px}
.ids div{font-family:var(--mono);font-size:11.5px;color:var(--muted)} .ids b{color:var(--fg);font-weight:500}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule)}
.kpi{padding:16px 14px 16px 0;border-bottom:1px solid var(--rule)}
.kpi:nth-child(odd){border-right:1px solid var(--rule)} .kpi:nth-child(even){padding-left:16px}
.kpi .v{font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(26px,3.4vw,38px);line-height:1;font-variant-numeric:tabular-nums}
.kpi .v small{font-size:.5em;margin-left:2px} .kpi .l{font-size:12.5px;color:var(--muted);margin-top:6px}
.chart{margin:18px 0 0} .chart svg{width:100%;height:auto;display:block;margin-top:6px}
.chart .grid{stroke:var(--rule);stroke-width:1} .chart .ax{font:9.5px var(--mono);fill:var(--muted)}
.chart .line{fill:none;stroke:var(--data);stroke-width:2.2;stroke-linejoin:round}
.chart .gap{stroke:var(--data);stroke-width:1.5;stroke-dasharray:3 4}
.chart .dot{fill:var(--surface);stroke:var(--data);stroke-width:1.6} .chart .dot.end{fill:var(--data)}
.chart .endl{font:700 11px var(--body);fill:var(--fg)}

/* pack */
.pack{border-bottom:1px solid var(--rule)}
.packgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:36px;padding-block:40px 48px}
.qa{margin-top:18px}
.q{padding:14px 0;border-top:1px solid var(--rule)} .q:last-child{border-bottom:1px solid var(--rule)}
.q h3{font-size:14.5px} .q p{color:var(--muted);font-size:14px;margin-top:4px}
.go{font-family:var(--mono);font-size:11px;color:var(--accent-text);margin-top:6px;display:inline-block}
.docs{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;margin-bottom:10px}
.docs-head{display:grid;grid-template-columns:1fr 160px;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule)}
.secrow{padding:9px 18px;background:var(--surface-2);font-size:12.5px;font-weight:600;border-bottom:1px solid var(--rule)}
.code{font-family:var(--mono);color:var(--muted);margin-right:4px}
.doc{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--rule)}
.doc:last-child{border-bottom:0}
.doc .name{font-weight:600;font-size:14px} .doc .note{font-size:12.5px;color:var(--muted)} .doc .meta{font:11px var(--mono);color:var(--muted)}
.acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tier,.st{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap}
.tier{border:1px solid var(--rule);color:var(--muted)} .tier.nda{border-color:var(--accent);color:var(--accent-text)}
.tier.restricted{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.st.ready{background:var(--ok-soft);color:var(--ok)} .st.update{background:var(--warn-soft);color:var(--warn)} .st.todo{background:var(--todo-soft);color:var(--todo)}
.empty{padding:20px 18px;color:var(--muted)}

/* story */
.story{padding-block:52px;border-bottom:1px solid var(--rule)}
.chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:24px;border-top:1px solid var(--rule)}
.ch{padding:22px 22px 24px 0;border-bottom:1px solid var(--rule)}
.ch .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.ch h3{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:19px;line-height:1.12;margin-top:10px}
.ch p{margin-top:10px;color:var(--muted);font-size:14px;max-width:46ch}
.proof{margin-top:14px;font:12px var(--mono);border-left:2px solid var(--accent);padding-left:10px}
.recog{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;align-items:center}
.recog .r{font-weight:600;font-size:13px;padding:6px 12px;border:1px solid var(--rule);border-radius:var(--radius)}

/* structure */
.struct{padding-block:52px}
.structgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px}
.structgrid p{margin-top:14px;max-width:52ch}
.node{border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);padding:12px 16px}
.node.me{border-color:var(--accent);border-left:5px solid var(--accent)}
.node .nm{font-weight:700} .node .id{font:11px var(--mono);color:var(--muted)}
.link{font:11px var(--mono);color:var(--muted);padding:6px 0 6px 22px;border-left:1px dashed var(--rule);margin-left:22px}
.foot{border-top:1px solid var(--rule);padding-block:24px 36px;color:var(--muted);font-size:12.5px}
.footin{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* gate (landing, nda, login) */
.gate{min-height:100vh;display:grid;place-items:center;padding:32px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px))}
.gate-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:14px}
.gate-card.wide{max-width:680px} .gate-card h1{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:26px}
.nda-text{white-space:pre-wrap;max-height:42vh;overflow:auto;background:var(--surface-2);border-radius:var(--radius);padding:14px 16px;font-size:13.5px}
.fields,.formgrid{display:grid;gap:6px 14px}
.formgrid{grid-template-columns:150px minmax(0,1fr);align-items:center}
label,.lbl{font-size:13px;font-weight:600}
input,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius);padding:8px 10px;width:100%;min-width:0}
input[type=checkbox]{width:auto} input[type=file]{padding:6px}
.check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.alert{background:var(--todo-soft);color:var(--todo);padding:10px 12px;border-radius:var(--radius);font-size:14px}

/* admin */
.adminmain{padding-block:28px 60px;display:flex;flex-direction:column;gap:22px}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.rcard{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--fg)}
.rcard:hover{border-color:var(--accent)} .rname{font-size:20px;font-weight:700}
.rstats{display:flex;gap:14px;font-size:13px;color:var(--muted)} .rstats b{color:var(--fg)}
.tblwrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius)}
.tbl{width:100%;border-collapse:collapse;background:var(--surface);font-size:13.5px}
.tbl th,.tbl td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl th{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--surface-2)}
.tbl tr.off{opacity:.5}
.headrow{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:12.5px;padding:6px 11px;border:1px solid var(--rule);border-radius:999px;text-decoration:none;color:var(--fg);background:var(--surface)}
.chip:hover,.chip.on{border-color:var(--accent);color:var(--accent-text)}
.newdoc>summary{list-style:none;cursor:pointer;width:max-content} .newdoc>summary::-webkit-details-marker{display:none}
.docform{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:16px;margin-top:10px;display:flex;flex-direction:column;gap:12px}
.asec{display:flex;flex-direction:column;gap:6px}
.adoc{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}
.adoc>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto minmax(0,220px);gap:12px;align-items:center;padding:10px 14px;cursor:pointer}
.adoc>summary .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adoc[open]>summary{border-bottom:1px solid var(--rule)} .adoc .docform{border:0;margin:0}
.adoc>.muted{padding:8px 16px 0}
.linkbox{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px}
.linkbox code{font:13px var(--mono);overflow-wrap:anywhere}


/* future */
.future{padding-block:56px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.fintro{margin-top:14px;max-width:64ch;color:var(--muted);font-size:16px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.fcard{margin:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:12px;min-width:0}
.fcard.wide{grid-column:1/-1}
.fcard h3{font-family:var(--display);font-weight:var(--display-weight);text-transform:var(--display-case);font-size:18px;line-height:1.15;margin-top:6px}
.fnote{font-size:12.5px;color:var(--muted)}
.chartsvg{width:100%;height:auto;display:block;overflow:visible}
.chartsvg .grid{stroke:var(--rule);stroke-width:1}
.chartsvg .ax{font:12px var(--mono);fill:var(--muted)}
.chartsvg .val{font:600 13.5px var(--body);fill:var(--fg)}
.chartsvg .lg{font:14px var(--body);fill:var(--fg)} .chartsvg .lgv{font-weight:700}
.chartsvg .center{font:700 22px var(--display);fill:var(--fg)}
.chartsvg .line{fill:none;stroke:var(--data);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.chartsvg .line.plan{stroke:var(--accent);stroke-dasharray:6 6}
.chartsvg .line.second{stroke:var(--accent);stroke-width:2}
.chartsvg .area{fill:var(--data);opacity:.14}
.chartsvg .dot{fill:var(--surface);stroke:var(--data);stroke-width:2} .chartsvg .dot.plan{stroke:var(--accent)}
.chartsvg .dot.second{fill:var(--accent);stroke:none}
.chartsvg .cbar{fill:var(--data)} .chartsvg .cbar.plan{fill:var(--data);opacity:.35} .chartsvg .cbar.hi{fill:var(--accent)}
.chartsvg .arc.s0{stroke:var(--accent)} .chartsvg .arc.s1{stroke:var(--data)} .chartsvg .arc.s2{stroke:var(--muted)} .chartsvg .arc.s3{stroke:var(--rule)}
.chartsvg .arc.s4{stroke:var(--fg);opacity:.35} .chartsvg .sw.s4{fill:var(--fg);opacity:.35}
.chartsvg .sw.s0{fill:var(--accent)} .chartsvg .sw.s1{fill:var(--data)} .chartsvg .sw.s2{fill:var(--muted)} .chartsvg .sw.s3{fill:var(--rule)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.lgd::before{content:"";display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;background:var(--data)}
.lgd.plan::before{background:var(--accent)} .lgd.lbar::before{height:10px} .lgd.lbarplan::before{height:10px;opacity:.35}
.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:10px 0 10px 18px;border-left:2px solid var(--rule);position:relative}
.tl::before{content:"";position:absolute;left:-7px;top:15px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--muted)}
.tl.done::before{background:var(--data);border-color:var(--data)} .tl.now::before{background:var(--accent);border-color:var(--accent)}
.tl.next::before{border-color:var(--accent)}
.tl .when{font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.tl .what{display:flex;flex-direction:column;gap:2px} .tl .what span{font-size:13px;color:var(--muted)}
.flow{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.step{flex:1 1 150px;border:1px solid var(--rule);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.step .sn{font:700 12px var(--mono);color:var(--accent-text)} .step span{font-size:13px;color:var(--muted)}
.arrow{align-self:center;color:var(--accent);font-size:20px}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.fcard:not(.wide) .pillars{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}
.pillar{border-top:3px solid var(--accent);padding-top:10px;display:flex;flex-direction:column;gap:4px}
.pillar .pv{font-family:var(--display);font-weight:var(--display-weight);font-size:28px;line-height:1}
.pillar span{font-size:13px;color:var(--muted)}
.prio{font:700 11px var(--mono);padding:2px 7px;border-radius:3px;background:var(--surface-2)}
.prio.p1{background:var(--todo-soft);color:var(--todo)} .prio.p2{background:var(--warn-soft);color:var(--warn)}
@media (max-width:860px){.fgrid{grid-template-columns:minmax(0,1fr)} .arrow{transform:rotate(90deg)} .tl{grid-template-columns:minmax(0,1fr)}}

@media (max-width:860px){.herogrid,.packgrid,.structgrid{grid-template-columns:minmax(0,1fr)} .hero{padding-block:34px 28px}
  .adoc>summary{grid-template-columns:minmax(0,1fr) auto auto} .adoc>summary .mono{display:none}}
@media (max-width:560px){.doc{grid-template-columns:minmax(0,1fr) auto}.doc .acts{grid-column:1/-1}.hide-sm{display:none}
  .formgrid{grid-template-columns:minmax(0,1fr)} .docs-head{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* showcase sections (technology, go-to-market) */
.showcase:nth-of-type(even) { background: var(--surface-2); }
.matrix { width: 100%; border-collapse: collapse; font-size: .9rem; }
.matrix th, .matrix td { padding: .5rem .6rem; border-bottom: 1px solid var(--rule); text-align: center; vertical-align: top; }
.matrix thead th { font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.matrix tbody th { text-align: left; font-weight: 500; }
.matrix .us { background: var(--accent-soft); font-weight: 600; }
.matrix .m-yes { color: var(--accent-text); }
.matrix .m-txt { font-size: .82rem; }
.flist { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.flist li { display: grid; gap: .15rem; }
.flist li span { color: var(--muted); font-size: .9rem; }

/* spaces: shared documents and discussions (viewer and admin) */
textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--rule);border-radius:var(--radius);padding:8px 10px;width:100%;min-width:0;resize:vertical}
.spacesec{border-bottom:1px solid var(--rule);background:var(--surface-2)}
.spacegrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:36px;padding-block:40px 48px}
.spacegrid>div{display:flex;flex-direction:column;gap:12px}
.thread{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cmt{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:10px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cmt.team{border-left:3px solid var(--accent)}
.cmt.internal{background:var(--warn-soft);border-color:var(--warn)}
.cmt.unread{box-shadow:0 0 0 2px var(--accent-soft)}
.cmeta{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:12.5px;color:var(--muted)}
.cmeta b{color:var(--fg)}
.cbody{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
.threadlink{font-size:12px;color:var(--accent-text);white-space:nowrap}
.threadlink b{font-family:var(--mono);font-size:11px;background:var(--accent-soft);padding:1px 6px;border-radius:999px}
.badge{display:inline-block;font:700 11px var(--mono);background:var(--accent);color:var(--accent-ink);padding:1px 7px;border-radius:999px}
form.inline{display:inline;margin-left:auto}
.threadmain{padding-block:24px 60px;display:flex;flex-direction:column;gap:14px;max-width:820px}
.threadbox{padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.threadbox .docform{margin:0}
.curated{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow:auto;border:1px solid var(--rule);border-radius:var(--radius);padding:10px 12px;background:var(--bg)}
.curated .check{align-items:center}
.promote>summary{list-style:none;cursor:pointer} .promote>summary::-webkit-details-marker{display:none}
.promote[open]{flex-basis:100%}
.tbl td.acts{flex-wrap:wrap}
@media (max-width:860px){.spacegrid{grid-template-columns:minmax(0,1fr)}}
