﻿:root{
  --bg:#F2EDE2; --paper:#FBF8F1; --ink:#1C211C; --sub:#5E665C; --faint:#8C8374;
  --line:#D9CFBD; --line2:#BFB29C;
  --orange:#BF5238; --orange-soft:rgba(191,82,56,.12);
  --teal:#2F6E63; --teal-soft:rgba(47,110,99,.12);
  --gold:#A8792F; --gold-soft:rgba(168,121,47,.12);
  --dark:#181D18; --dark2:#222822; --cream:#F1E9DA; --cream-sub:#B9B09E;
  --serif:"Source Han Serif SC","Noto Serif SC","Songti SC",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:light}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background:linear-gradient(rgba(28,33,28,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(28,33,28,.035) 1px,transparent 1px);
  background-size:28px 28px}
a{color:var(--teal);text-decoration:none}
button{font:inherit;color:inherit}
::selection{background:var(--orange-soft)}
p{margin:0 0 1em}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.25;margin:0}
code{font-family:var(--mono);font-size:.92em}

.top{position:sticky;top:0;z-index:40;height:58px;display:flex;align-items:center;gap:24px;padding:0 clamp(16px,3.4vw,44px);background:rgba(24,29,24,.96);color:var(--cream);border-bottom:1px solid #2E352E;backdrop-filter:blur(10px)}
.brand{display:flex;flex-direction:column;line-height:1.2;color:var(--cream);border:0}
.brand b{font-family:var(--serif);font-size:16px}
.brand span{font-size:9px;letter-spacing:.16em;color:var(--cream-sub)}
.top-nav{display:flex;gap:2px;margin-left:14px}
.top-nav a{color:var(--cream-sub);font-size:12.5px;padding:6px 10px;border-radius:4px;border:0}
.top-nav a:hover{background:#2A312A;color:var(--cream)}
.chip{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.08em;border:1px solid #485148;color:var(--cream-sub);padding:4px 8px;border-radius:99px}

main{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,48px) 80px}
.hero{display:grid;grid-template-columns:1.55fr .45fr;gap:clamp(24px,4vw,64px);padding:clamp(22px,3.4vw,38px) 0 22px;align-items:end}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin:0 0 10px}
.hero h1{font-size:clamp(40px,5.2vw,60px);letter-spacing:-.02em}
.lede{font-size:clamp(13.5px,1.35vw,15px);color:var(--sub);max-width:66ch;margin-top:10px}
.hero-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px;font-size:11.5px;color:var(--faint)}
.hero-meta b{font-family:var(--serif);font-size:19px;color:var(--ink);margin-right:4px}
.labels{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.lab{font-size:10px;font-family:var(--mono);letter-spacing:.06em;padding:3px 8px;border:1px solid var(--line2);border-radius:99px;color:var(--sub);background:var(--paper)}
.lab.obs{border-color:#9FB6A8;color:#3C6B55}
.lab.ded{border-color:#C9AE7C;color:#7A5A22}
.lab.sim{border-color:#C99C8E;color:#8A4634}
.hero-note{border-left:2px solid var(--orange);padding-left:16px;font-size:11.5px;color:var(--sub)}
.hero-note p{margin:0 0 10px}
.hero-note .note-h{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--orange)}
.hero-note .small{font-size:11.5px;color:var(--faint)}

/* simulator */
.sim-wrap{padding:14px 0 10px}
.sim-note{font-size:11.5px;color:var(--sub);margin:10px 2px 0;padding-left:10px;border-left:2px solid var(--line2)}
.sim-note b{color:var(--ink)}
.sim{background:var(--dark);color:var(--cream);border:1px solid #343B33;border-radius:8px;overflow:hidden;box-shadow:0 20px 50px rgba(24,29,24,.16)}
.sim-top{display:flex;align-items:center;gap:16px;padding:9px 14px;border-bottom:1px solid #343B33;flex-wrap:wrap}
.roundbox{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--cream-sub);font-family:var(--mono)}
.roundbox b{font-family:var(--serif);font-size:26px;color:var(--cream)}
.roundbox em{font-style:normal;font-size:10px;border:1px solid #4A5349;border-radius:3px;padding:1px 5px}
.phases{display:flex;gap:2px;list-style:none;margin:0;padding:0;flex:1;overflow-x:auto}
.phases li{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:4px;font-size:11.5px;color:#8F988C;white-space:nowrap;border:1px solid transparent}
.phases li i{font-style:normal;font-family:var(--mono);font-size:9px;opacity:.7}
.phases li.on{color:var(--cream);border-color:#556052;background:#252C25}
.phases li.done{color:#9DB2A1}
.phases li.done i{color:var(--teal)}
.top-advance{padding:5px 10px!important;font-size:11px!important}
.sim-tag{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#C99C8E;border:1px solid #5A463D;padding:3px 7px;border-radius:99px}
.sim-body{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:0}
.stage{position:relative;min-height:282px;background-size:cover;background-position:center;padding:14px;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;transition:background-image .3s}
.stage::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(16,20,16,.18) 0%,rgba(16,20,16,.55) 55%,rgba(16,20,16,.9) 100%)}
.hud{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:6px;flex-wrap:wrap}
.hud span{background:rgba(20,24,20,.72);border:1px solid rgba(241,233,218,.14);color:var(--cream);font-family:var(--mono);font-size:10.5px;padding:3px 7px;border-radius:3px;backdrop-filter:blur(4px)}
.hud span b{color:#F0C9A8;font-weight:600}
.stage-portrait{position:absolute;right:1.5%;bottom:0;height:80%;z-index:1;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.stage-portrait img{height:100%;width:auto;display:block}
.stage-copy{max-width:520px;background:rgba(20,24,20,.78);border:1px solid rgba(241,233,218,.14);border-radius:6px;padding:12px 14px;backdrop-filter:blur(6px)}
.stage-copy p{margin:0;font-size:12.5px;color:#DDD5C6;line-height:1.7}
.stage-copy .stage-kicker{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:#C99C8E;margin-bottom:4px}
.stage-foot{position:absolute;right:12px;bottom:8px;font-family:var(--mono);font-size:9px;color:rgba(241,233,218,.45)}
.event-panel{position:relative;background:rgba(251,248,241,.97);color:var(--ink);border-radius:6px;padding:14px 16px;max-width:560px;box-shadow:0 16px 40px rgba(0,0,0,.25)}
.evt-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--orange);margin:0 0 4px}
.event-panel h3{font-size:19px;margin-bottom:6px}
.event-panel p{font-size:12.5px;color:var(--sub);margin:0 0 10px;line-height:1.7}
.evt-options{display:grid;gap:6px}
.evt-options button{text-align:left;border:1px solid var(--line2);background:#fff;border-radius:4px;padding:8px 10px;font-size:12px;cursor:pointer;color:var(--ink)}
.evt-options button:hover{border-color:var(--teal);background:var(--teal-soft)}
.evt-options button b{color:var(--teal);margin-right:6px}
.evt-cont{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.evt-cont p{color:var(--ink);margin-bottom:8px}
.evt-cont button{border:0;background:var(--orange);color:#fff;border-radius:4px;padding:7px 12px;font-size:12px;cursor:pointer}
.sim-side{border-left:1px solid #343B33;padding:12px;display:flex;flex-direction:column;gap:10px;background:#151A15}
.state{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#2B322A;border:1px solid #2B322A}
.state div{background:#1B211B;padding:6px 8px}
.state span{display:block;font-size:9px;font-family:var(--mono);color:#818B7E;letter-spacing:.06em}
.state b{font-family:var(--serif);font-size:16px;color:var(--cream);font-weight:600}
.state b.up{color:#9CC7A9}.state b.down{color:#D6A08F}
.logbox{flex:1;min-height:120px;display:flex;flex-direction:column}
.log-h{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#818B7E;margin:0 0 5px}
#log{overflow:auto;max-height:170px;font-size:10.5px;line-height:1.6;color:#AEB6A9;display:flex;flex-direction:column;gap:4px}
#log p{margin:0;padding-left:8px;border-left:1px solid #3A4238}
#log p b{color:#D8C9AE;font-weight:500}
#log p em{font-style:normal;color:#7FA391}
.action-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#343B33;border-top:1px solid #343B33}
.act{background:#1D231D;border:0;text-align:left;padding:12px 14px;cursor:pointer;transition:.15s;color:var(--cream)}
.act:hover{background:#262E26}
.act:disabled{opacity:.35;cursor:not-allowed}
.act b{display:block;font-family:var(--serif);font-size:15px;margin-bottom:3px}
.act span{display:block;font-family:var(--mono);font-size:9.5px;color:#D6A08F}
.act em{display:block;font-style:normal;font-size:10.5px;color:#9CC7A9;margin-top:3px}
.sim-foot{display:flex;align-items:center;gap:14px;padding:10px 14px;border-top:1px solid #343B33;background:#151A15;flex-wrap:wrap}
.sim-foot p{margin:0;font-size:11.5px;color:#AEB6A9;flex:1}
.advance{border:0;background:var(--orange);color:#fff;border-radius:4px;padding:8px 14px;font-size:12.5px;cursor:pointer}
.advance:disabled{opacity:.35;cursor:not-allowed}

/* systems */
.systems{padding:70px 0 10px}
.sec-head{max-width:780px;margin-bottom:26px}
.sec-head h2{font-size:clamp(28px,3.6vw,42px)}
.sec-head .lede{margin-top:8px}
.map{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.map-node{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:8px 11px;text-align:left;cursor:pointer;display:flex;align-items:baseline;gap:7px;transition:.15s}
.map-node i{font-style:normal;font-family:var(--mono);font-size:9px;color:var(--faint)}
.map-node b{font-size:12px;font-weight:600}
.map-node small{font-size:10px;color:var(--faint)}
.map-node:hover{border-color:var(--teal)}
.map-node.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.map-node.on i,.map-node.on small{color:#AEB6A9}
.sys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.sys-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px;cursor:pointer;transition:.18s;display:flex;flex-direction:column;gap:6px}
.sys-card:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 10px 24px rgba(28,33,28,.07)}
.sys-card .hook{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--orange)}
.sys-card h3{font-size:19px}
.sys-card p{font-size:12.5px;color:var(--sub);margin:0;line-height:1.7;flex:1}
.sys-card .open{font-size:11px;color:var(--teal);font-family:var(--mono)}
.sys-card.hide{display:none}

/* evidence */
.evidence{padding:64px 0 40px}
.ev-grid{display:grid;grid-template-columns:1fr 1fr .8fr;gap:18px;border-top:1px solid var(--line);padding-top:18px}
.ev-grid b{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--orange);display:block;margin-bottom:6px}
.ev-grid p{font-size:12px;color:var(--sub);margin:0 0 6px}
.asset-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.asset-strip figure{margin:0;border:1px solid var(--line);background:var(--paper);border-radius:4px;overflow:hidden}
.asset-strip img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.asset-strip figcaption{font-size:10.5px;color:var(--faint);padding:6px 8px}
@media(max-width:640px){.asset-strip{grid-template-columns:1fr}}
.ev-bound{font-size:10.5px;color:var(--faint);margin:6px 0 0}
.ev-note{font-size:11.5px;color:var(--faint);border-top:1px solid var(--line);padding-top:12px;margin-top:18px}

/* sheet */
.sheet{position:fixed;inset:0;z-index:80;background:rgba(24,29,24,.5);padding:clamp(0px,3vw,28px);overflow:auto}
.sheet[hidden]{display:none}
.sheet-panel{width:100%;max-width:980px;margin:0 auto;background:var(--bg);border:1px solid var(--line2);border-radius:8px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.sheet-head{position:relative;padding:30px 34px 22px;background:var(--dark);color:var(--cream)}
.sheet-close{position:absolute;top:14px;right:16px;width:32px;height:32px;border:1px solid #4A5349;background:transparent;color:var(--cream);border-radius:50%;font-size:18px;cursor:pointer}
.sheet-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#C99C8E;margin:0 0 6px}
.sheet-head h2{font-size:clamp(26px,3.4vw,38px)}
.sheet-lede{color:#C9C2B4;font-size:13px;max-width:66ch;margin:8px 0 0}
.sheet-hook{display:inline-block;margin-top:12px;font-family:var(--mono);font-size:10px;border:1px solid #4A5349;color:#B9B09E;border-radius:99px;padding:3px 9px}
.sheet-body{padding:26px 34px 40px;display:grid;gap:28px}
.sheet-body>*{min-width:0}
.table-wrap{max-width:100%}
.step p,.step .kv p{overflow-wrap:anywhere}
.step{border-top:1px solid var(--line);padding-top:16px}
.step:first-child{border-top:0;padding-top:0}
.step-h{display:flex;gap:10px;align-items:baseline;margin-bottom:8px}
.step-h i{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--orange)}
.step-h h3{font-size:20px}
.step p{font-size:13px;color:var(--sub);line-height:1.8;margin:0 0 8px}
.step .kv{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;font-size:12.5px;margin:6px 0}
.step .kv span{color:var(--faint);font-family:var(--mono);font-size:10.5px}
.why-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:8px}
.why-grid div{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:10px 12px}
.why-grid b{display:block;font-family:var(--mono);font-size:9.5px;color:var(--orange);letter-spacing:.08em;margin-bottom:4px}
.why-grid p{font-size:11.5px;margin:0;line-height:1.7}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:4px;background:var(--paper);margin-top:8px}
table{border-collapse:collapse;width:100%;font-size:11.5px}
th{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--faint);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:8px 10px;border-bottom:1px solid #E9E1D2;color:var(--sub);vertical-align:top}
td:first-child{color:var(--ink);font-family:var(--mono);font-size:10.5px;white-space:nowrap}
.tbl-name{font-family:var(--mono);font-size:10px;color:var(--teal);padding:7px 10px;border-bottom:1px solid var(--line);background:var(--teal-soft)}
.timing{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.timing span{font-size:10.5px;background:var(--gold-soft);border:1px solid #D8C49A;color:#6F4F1F;border-radius:3px;padding:4px 7px}
.fill-ext{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fill-ext div{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:10px 12px}
.fill-ext b{display:block;font-size:11px;color:var(--teal);margin-bottom:4px}
.fill-ext p{font-size:11.5px;margin:0}

/* labs */
.labbox{background:var(--dark);color:var(--cream);border-radius:6px;padding:16px;margin-top:6px}
.labbox h4{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:#C99C8E;margin:0 0 8px;font-weight:500}
.lab-controls{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.seg{border:1px solid #4A5349;background:#232A23;color:#B9B09E;border-radius:3px;padding:5px 9px;font-size:11px;cursor:pointer}
.seg.on{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.lab-row{display:grid;grid-template-columns:88px 1fr 44px;gap:8px;align-items:center;font-size:11px;color:#B9B09E;margin-bottom:6px}
.lab-row input[type=range]{accent-color:#D08A6A}
.lab-row b{color:var(--cream);font-family:var(--mono);font-size:11px;text-align:right}
.lab-out{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#343B33;border:1px solid #343B33;margin-top:10px}
.lab-out div{background:#1E241E;padding:8px 9px}
.lab-out span{display:block;font-family:var(--mono);font-size:9px;color:#818B7E}
.lab-out b{font-family:var(--serif);font-size:18px;color:#F0C9A8;font-weight:600}
.cand{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.cand li{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:6px 8px;border:1px solid #3A4238;border-radius:3px;color:#B9B09E}
.cand li b{color:var(--cream);font-weight:500}
.cand li.no{opacity:.5}
.cand li.no em{color:#D6A08F}
.cand li.yes em{color:#9CC7A9}
.cand em{font-style:normal;font-family:var(--mono);font-size:9.5px}
.bars{display:flex;align-items:flex-end;gap:5px;height:86px;margin-top:10px;padding:8px;border:1px solid #343B33;background:#151A15}
.bars i{display:block;background:#3E5A4C;border:1px solid #6D9C84;width:14%;min-height:2px}
.timing-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.timing-row div{border:1px solid #3A4238;border-radius:3px;padding:7px 8px;font-size:10.5px;color:#B9B09E}
.timing-row b{display:block;font-family:var(--mono);font-size:9px;color:#C99C8E;margin-bottom:3px}

@media(max-width:980px){
  .hero{grid-template-columns:1fr;align-items:start}
  .sim-body{grid-template-columns:1fr}
  .sim-side{border-left:0;border-top:1px solid #343B33;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .sys-grid{grid-template-columns:1fr 1fr}
  .ev-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .fill-ext{grid-template-columns:1fr}
}
@media(max-width:640px){
  .top{height:54px;gap:10px;padding:0 12px}
  .top-nav{display:none}
  .hero{padding:18px 0 14px}
  .hero h1{font-size:34px}
  .hero .lede{font-size:12.5px;margin-top:6px}
  .hero-note{display:none}
  .labels{display:none}
  .stage{min-height:230px}
  .stage-portrait{position:absolute;right:1.5%;bottom:0;height:80%;z-index:1;pointer-events:none;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.stage-portrait img{height:100%;width:auto;display:block}
.stage-copy{padding:9px 10px}
  .phases li span{display:none}
  .phases li{padding:5px 8px}
  .action-row{grid-template-columns:1fr 1fr}
  .sys-grid{grid-template-columns:1fr}
  .sheet{padding:0}
  .sheet-panel{border-radius:0;min-height:100vh}
  .sheet-head,.sheet-body{padding-left:18px;padding-right:18px}
  .step .kv{grid-template-columns:84px 1fr}
  .lab-out{grid-template-columns:1fr 1fr}
  .sim-side{display:none}
  #log{max-height:130px}
}
@media (max-height:920px) and (min-width:981px){
  .hero{grid-template-columns:1fr;padding:12px 0 10px}
  .hero h1{font-size:46px}
  .hero .lede{font-size:13px;margin-top:6px;max-width:96ch}
  .hero-note{display:none}
  .hero-meta{margin-top:8px}
  .labels{margin-top:8px}
  .stage{min-height:248px}
  #log{max-height:104px}
}
.trace{padding:58px 0 10px}
.trace-tabs{display:flex;gap:6px;margin:16px 0 12px;flex-wrap:wrap}
.trace-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;align-items:start}
.trace-steps{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.trace-steps button{width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:9px 11px;cursor:pointer;display:grid;grid-template-columns:22px 1fr;gap:7px;align-items:baseline}
.trace-steps button i{font-style:normal;font-family:var(--mono);font-size:9px;color:var(--faint)}
.trace-steps button b{font-size:12.5px;color:var(--ink);font-weight:600}
.trace-steps button small{grid-column:2;font-size:10.5px;color:var(--faint)}
.trace-steps button:hover{border-color:var(--teal)}
.trace-steps button.on{background:var(--dark);border-color:var(--dark)}
.trace-steps button.on b{color:var(--cream)}
.trace-steps button.on small,.trace-steps button.on i{color:#AEB6A9}
.trace-detail{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px 18px;min-height:260px}
.trace-detail h3{font-size:19px;margin-bottom:4px}
.trace-detail .td-meta{font-family:var(--mono);font-size:10px;color:var(--orange);margin-bottom:10px}
.trace-detail .td-state{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:10px 0}
.trace-detail .td-state div{background:var(--bg);padding:7px 9px}
.trace-detail .td-state span{display:block;font-family:var(--mono);font-size:9px;color:var(--faint)}
.trace-detail .td-state b{font-family:var(--serif);font-size:15px}
.trace-detail pre{margin:8px 0;background:var(--dark);color:#EDE4D4;border-radius:4px;padding:10px 12px;font-size:10.5px;line-height:1.7;overflow:auto}
.trace-detail p{font-size:12px;color:var(--sub);margin:6px 0 0}
.add{padding:58px 0 10px}
.add-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:start}
.add-rows{display:grid;gap:10px}
.code-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:10px 12px}
.code-h{font-family:var(--mono);font-size:10px;color:var(--teal);margin:0 0 6px}
.code{margin:0;background:var(--dark);color:#EDE4D4;border-radius:4px;padding:10px 12px;font-size:10.5px;line-height:1.7;overflow:auto;white-space:pre}
.add-side{display:grid;gap:12px}
.checklist-static{margin:0;padding-left:18px;font-size:11.5px;color:var(--sub);line-height:1.8}
.mini-table{width:100%;border-collapse:collapse;font-size:10.5px}
.mini-table th{font-family:var(--mono);font-size:9px;color:var(--faint);text-align:left;padding:5px 4px;border-bottom:1px solid var(--line)}
.mini-table td{padding:5px 4px;border-bottom:1px solid #E9E1D2;color:var(--sub);vertical-align:top}
.mini-table td:first-child{color:var(--ink);white-space:nowrap}
.mini-note{font-size:10px;color:var(--faint);margin:6px 0 0}
@media(max-width:980px){.trace-grid{grid-template-columns:1fr}.add-grid{grid-template-columns:1fr}}
.library,.pipeline{padding:58px 0 10px}
.lib-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:14px 0}
.lib-stats div{background:var(--paper);padding:10px 12px}
.lib-stats span{display:block;font-family:var(--mono);font-size:9px;color:var(--faint);letter-spacing:.06em}
.lib-stats b{font-family:var(--serif);font-size:22px;color:var(--ink)}
.lib-types{display:grid;gap:4px;margin:10px 0 14px}
.lib-type{display:grid;grid-template-columns:130px 1fr 40px;gap:8px;align-items:center;font-size:10.5px;color:var(--faint)}
.lib-type i{display:block;height:6px;background:var(--teal);opacity:.55;border-radius:99px}
.lib-type b{font-weight:400;color:var(--sub);text-align:right;font-family:var(--mono);font-size:9.5px}
.lib-note{font-size:10.5px;color:var(--faint);margin:4px 0 12px}
.lib-filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}
.lib-filters button{border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:4px 9px;font-size:10.5px;color:var(--sub);cursor:pointer}
.lib-filters button.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.lib-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px;align-items:start}
.lib-list{display:grid;gap:5px}
.lib-item{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:9px 11px;cursor:pointer;display:grid;gap:2px}
.lib-item:hover{border-color:var(--teal)}
.lib-item.on{background:var(--dark);border-color:var(--dark)}
.lib-item .li-top{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:9px;color:var(--faint)}
.lib-item b{font-size:12.5px;font-weight:600;color:var(--ink)}
.lib-item.on b{color:var(--cream)}
.lib-item.on .li-top{color:#AEB6A9}
.lib-item small{font-size:10.5px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-item.on small{color:#B9B09E}
.lib-detail{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px 18px;min-height:360px}
.ld-role{float:right;height:190px;width:auto;margin:0 0 8px 12px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.12))}
.lib-detail h3{font-size:20px;margin-bottom:2px}
.lib-detail .ld-meta{font-family:var(--mono);font-size:9.5px;color:var(--faint);margin-bottom:10px}
.lib-detail .ld-json{background:var(--dark);color:#EDE4D4;border-radius:4px;padding:9px 11px;font-size:10.5px;line-height:1.7;overflow:auto;white-space:pre;margin:8px 0}
.talk-row{border-top:1px solid var(--line);padding:8px 0}
.talk-row .tr-h{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:9px;color:var(--faint)}
.talk-row p{font-size:12px;color:var(--ink);margin:3px 0;line-height:1.7}
.talk-row .opt-line{font-size:10.5px;color:var(--sub);background:var(--bg);border-left:2px solid var(--teal);padding:4px 8px;margin-top:4px}
.asset-inv{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.asset-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.asset-head h3{font-size:17px}
.asset-head span{font-family:var(--mono);font-size:9px;color:var(--faint)}
.asset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.asset-grid figure{margin:0;border:1px solid var(--line);background:var(--paper);border-radius:3px;overflow:hidden}
.asset-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.asset-grid figure.stage-portrait img{object-fit:contain;background:#EFE8DA;aspect-ratio:3/4}
.asset-grid figcaption{font-size:9.5px;color:var(--faint);padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asset-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.asset-meta span{font-family:var(--mono);font-size:9.5px;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:3px 7px;color:var(--sub)}
.pipe-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pipe-steps li{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--orange);border-radius:3px;padding:9px 10px;display:grid;gap:3px}
.pipe-steps b{font-family:var(--mono);font-size:10px;color:var(--ink)}
.pipe-steps span{font-size:11px;color:var(--sub);line-height:1.6}
.pipe-steps em{font-style:normal;font-family:var(--mono);font-size:9px;color:var(--faint)}
.gate{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-top:16px;padding:10px 12px;background:var(--orange-soft);border:1px solid #D9B4A8;border-radius:4px}
.gate b{font-family:var(--mono);font-size:9.5px;color:var(--orange);margin-right:6px}
.gate span{font-size:10.5px;background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:2px 8px;color:var(--sub)}
@media(max-width:980px){.lib-grid{grid-template-columns:1fr}.asset-grid{grid-template-columns:repeat(3,1fr)}.pipe-steps{grid-template-columns:1fr 1fr}.lib-stats{grid-template-columns:1fr 1fr}}
.hero-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.btn-play{border:0;background:var(--orange);color:#fff;border-radius:4px;padding:8px 13px;font-size:12px;cursor:pointer}
.btn-play:hover{filter:brightness(1.05)}
.hero-actions span{font-family:var(--mono);font-size:9.5px;color:var(--faint)}
.player{position:fixed;inset:0;z-index:100;background:#0D110D;display:grid;place-items:center}
.player[hidden]{display:none}
.player-stage{position:relative;width:100%;height:100%;background-size:cover;background-position:center;overflow:hidden;isolation:isolate}
.player-stage::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,12,8,.2) 0%,rgba(8,12,8,.35) 55%,rgba(8,12,8,.82) 100%)}
.p-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(180deg,rgba(8,12,8,.55),transparent);color:#EDE4D4;z-index:4}
.p-state{font-family:var(--mono);font-size:10.5px;color:#E7C08A;letter-spacing:.04em;margin-left:auto;margin-right:14px}\n.p-top>span{font-family:var(--mono);font-size:11px;letter-spacing:.08em}
.p-top-actions{display:flex;gap:6px}
.p-top-actions button{border:1px solid rgba(237,228,212,.35);background:rgba(10,14,10,.45);color:#EDE4D4;border-radius:4px;padding:5px 9px;font-size:11px;cursor:pointer}
.p-top-actions button.on{background:var(--orange);border-color:var(--orange)}
.p-portrait{position:absolute;right:5%;bottom:0;height:82%;z-index:2;pointer-events:none;filter:drop-shadow(0 8px 18px rgba(0,0,0,.4))}
.p-portrait img{height:100%;width:auto;display:block}
.p-dialog{position:absolute;left:clamp(16px,6vw,90px);right:clamp(16px,6vw,90px);bottom:clamp(16px,4vh,42px);z-index:5;background:rgba(12,17,14,.88);border:1px solid rgba(237,228,212,.22);border-radius:6px;padding:18px 22px 16px;color:#EDE4D4;backdrop-filter:blur(8px);box-shadow:0 20px 60px rgba(0,0,0,.35);min-height:150px}
.p-name{font-family:var(--serif);font-size:16px;color:#E7C08A;letter-spacing:.04em;margin-bottom:5px;min-height:22px}
.p-text{font-size:15px;line-height:1.9;margin:0 0 12px;color:#F1E9DA;min-height:3.2em;white-space:pre-wrap}
.p-options{display:grid;gap:6px;margin-bottom:10px}
.p-options button{text-align:left;border:1px solid rgba(237,228,212,.28);background:rgba(255,255,255,.055);color:#EDE4D4;border-radius:4px;padding:8px 11px;font-size:12.5px;cursor:pointer}
.p-options button:hover{background:rgba(231,192,138,.14);border-color:#E7C08A}
.p-next{text-align:right;font-family:var(--mono);font-size:10px;color:#AEB6A9;cursor:pointer;user-select:none}
.p-next[hidden]{display:none}
.p-hud{position:absolute;right:16px;bottom:12px;z-index:6;display:flex;gap:10px;font-family:var(--mono);font-size:9px;color:rgba(237,228,212,.55)}
.asset-view{position:fixed;inset:0;z-index:110;background:rgba(8,12,8,.92);display:grid;place-items:center;padding:30px}
.asset-view[hidden]{display:none}
.asset-view img{max-width:88vw;max-height:82vh;border:1px solid #3A4238;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.asset-view p{color:#CAD2C5;font-family:var(--mono);font-size:11px;margin:10px 0 0}
.av-close{position:absolute;top:16px;right:18px;width:34px;height:34px;border:1px solid #4A5349;background:transparent;color:#EDE4D4;border-radius:50%;font-size:19px;cursor:pointer}
@media(max-width:980px){.p-portrait{height:68%;right:1%}.p-dialog{left:12px;right:12px;bottom:12px;padding:14px 16px}.p-text{font-size:14px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


















