/* THE DEMO · THE ENGINE, FORMED (2026-09-07 night, the fifth build; the sixth pass 2026-09-08: the hand, the navigator, the panel that writes itself in)
   THE SKIN is the brain's: the deep ground, Space Grotesk for the big words, Inter for the
   reading voice, Plex Mono for engravings and tags; no serif, no display face from the wave.
   THE SPACE is one canvas: the structure, the wires, the room's organism and Backlot's galaxy
   are painted there; the only DOM in the space is the real work, as cards placed by the same
   camera with a 2D translate and a scale (no perspective, no preserve-3d, no 3D layers: the
   flashing came from the compositor). No borders around the work, no strips, no tab shells,
   no eyebrows. */
:root{
  --abyss:#060607;--deep:#0e0e10;--tile:rgba(10,10,14,.86);--tile2:rgba(20,20,24,.92);
  --foam:#f4f4f3;--ink2:#cfcfce;--mist:#8e8e93;--dim:#525257;--faint:#35353a;--inkd:#08080a;
  --tide:#ff1f2f;--tide2:#ff4757;--gold:#e6b45c;--sky:#5e9fd8;
  --hair:rgba(244,244,243,.09);--hair2:rgba(244,244,243,.16);
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",sans-serif;
  --disp:"Space Grotesk",var(--font);
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --sm:cubic-bezier(.65,0,.35,1);--pop:cubic-bezier(.34,1.56,.64,1);--out:cubic-bezier(.16,1,.3,1);
  --mast:52px;
}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{color-scheme:dark;scroll-behavior:smooth}
html.doored{overflow:hidden}
body{background:var(--abyss);color:var(--ink2);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
#net{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:0;pointer-events:none}
::selection{background:var(--tide);color:#fff}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;color:inherit;background:none;border:none;padding:0}
img,video{max-width:100%;display:block}
h2,h3{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--foam);font-weight:700}
.tbtn{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.tbtn:hover{color:var(--tide2)}
.tbtn[disabled]{opacity:.35;cursor:default}
.chip{display:inline-block;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);background:rgba(244,244,243,.07);border-radius:6px;padding:4px 8px;margin:0 6px 6px 0;animation:chipin .35s var(--pop) both}
.chip.ok{color:#0FBF8F;background:rgba(15,191,143,.12)}
@keyframes chipin{from{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}

/* ---- the door · THE ENGINE, drawn by rule ----
   Black. A constructed wordmark: red hairline geometry first, foam letters inked along it, the geometry
   left as a ghost. One line of reading, the doors, a title block. Nothing above the title. */
.splash{position:fixed;inset:0;z-index:900;background:var(--abyss);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;padding:24px;transition:opacity .45s;text-align:center}
.splash.out{opacity:0;pointer-events:none}
.splash::before{content:'';position:absolute;inset:0;background:radial-gradient(70% 50% at 82% -10%,#120507 0%,transparent 60%)}
.splash>*{position:relative}
.engmark{width:min(1080px,90vw);height:auto;display:block;overflow:visible}
.engmark .hl{fill:none;stroke:var(--tide);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linecap:butt}
.engmark .dot{fill:var(--tide)}
.engmark .cons{transition:opacity 1.1s var(--out)}
.engmark.done .cons{opacity:.3}
.engmark .dg{opacity:.45}
.engmark .ik{fill:none;stroke:var(--foam);stroke-width:16.6667;stroke-linecap:butt;stroke-linejoin:miter}
.splash .sub,.splash .doors,.splash .count,.splash .rule{opacity:0;transform:translateY(8px);transition:opacity .8s var(--out),transform .9s var(--out)}
.splash.drawn .sub,.splash.drawn .doors,.splash.drawn .count,.splash.drawn .rule{opacity:1;transform:none}
.splash.drawn .doors{transition-delay:.15s}.splash.drawn .count{transition-delay:.3s}.splash.drawn .rule{transition-delay:.5s}
.splash .sub{max-width:640px;font:400 14.5px/1.65 var(--font);color:var(--ink2);margin-top:6px}
.splash .doors{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:2px}
.sdoor{display:flex;flex-direction:row;gap:10px;align-items:baseline;text-align:left;background:rgba(244,244,243,.06);border-radius:12px;padding:12px 18px;min-width:0;transition:background .2s}
.sdoor b{font:700 12.5px var(--disp);letter-spacing:.12em;text-transform:uppercase;color:var(--foam)}
.sdoor span{font:400 12px var(--font);color:var(--mist);white-space:nowrap}
.sdoor:hover{background:rgba(244,244,243,.11)}
.sdoor.primary{background:var(--tide);color:#fff}
.sdoor.primary b{color:#fff}.sdoor.primary span{color:rgba(255,255,255,.8)}
.sdoor.primary:hover{background:var(--tide2)}
.splash .count{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.splash .count b{color:var(--foam)}
.splash .rule{position:absolute;left:0;right:0;bottom:18px;font:500 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:0 20px}

/* ---- the mast · the wordmark, the beat while the take runs, and two controls: key and replay. Nothing else. ---- */
.mast{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:18px;height:var(--mast);padding:0 20px;background:rgba(6,6,7,.72);border-bottom:1px solid var(--hair)}
/* the lockup: the RitualAds R (one symbol), the company in mono, a hairline, THE ENGINE as the door's mark drawn by rule at mast size (ink only), the state */
.wordmark{display:flex;align-items:center;gap:10px;color:var(--foam);white-space:nowrap}
.wordmark .rlogo{display:block;height:17px;width:auto;flex:none;border-radius:2px}
.wordmark .wm-ads{font:600 10.5px var(--mono);letter-spacing:.24em;color:var(--foam);padding-top:1px}
.wordmark .wm-sep{width:1px;height:16px;background:var(--hair2);margin:0 1px}
.wordmark .wm-eng{display:block;height:13px;width:auto;flex:none;overflow:visible}
.wordmark .wm-eng .ik{fill:none;stroke:var(--foam);stroke-width:16.6667;stroke-linecap:butt;stroke-linejoin:miter}
.wordmark:hover .wm-eng .ik{stroke:#fff}
.wordmark .wm-ads b{font-weight:600;color:var(--tide2)}
.wordmark .tag{font:600 9px var(--mono);font-style:normal;letter-spacing:.2em;color:var(--abyss);background:var(--gold);border-radius:4px;padding:3px 6px 2px;margin-left:2px}
.mbeat{flex:1;text-align:center;font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mright{margin-left:auto;display:flex;align-items:center;gap:6px}
.mkey{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);background:rgba(244,244,243,.07);border-radius:7px;padding:8px 11px}
.mkey:hover,.mkey.on{color:var(--foam);box-shadow:inset 0 0 0 1px var(--tide)}
.mplay{font:600 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--tide);border-radius:7px;padding:8px 13px;white-space:nowrap}
.mplay:hover{background:var(--tide2)}
.mplay.running{color:var(--foam);background:rgba(244,244,243,.1)}
.mplay.running:hover{background:var(--tide);color:#fff}
.foot{position:fixed;right:18px;bottom:12px;z-index:30;font:500 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);pointer-events:none;white-space:nowrap}
.foot b{color:var(--mist)}

/* ================= THE SPACE · one canvas, and the cards of real work ================= */
.viewport{position:fixed;left:0;right:0;top:var(--mast);bottom:0;z-index:1;overflow:hidden;touch-action:none;user-select:none}
.stage{position:absolute;left:0;top:0;z-index:1;display:block}
.horizon{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(to bottom,rgba(6,6,7,.5) 0%,rgba(6,6,7,.08) 10%,transparent 22%,transparent 88%,rgba(6,6,7,.45) 100%)}
.cards{position:absolute;left:0;top:0;width:0;height:0;z-index:2;pointer-events:none}
/* a card · the real work, standing at a point in the space; a 2D translate and a scale place it, opacity brings it in; visibility is set by the projection */
.card{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:auto;opacity:0;transition:opacity .9s var(--out);background:var(--tile);border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.5),inset 0 0 0 1px var(--hair);overflow:hidden;user-select:text;zoom:1.2}
.card.on{opacity:1}
.card.up{background:rgba(11,11,15,.975)}   /* the visited card is solid: no resting card ghosts through it */
.card:not(.on){pointer-events:none}
.card h2{font-size:16px;letter-spacing:.1em}
/* the department's instrument · a title, the instrument, and (on a phone) its modules */
.panel{padding:14px 16px}
.panel h2{margin-bottom:8px;display:flex;align-items:baseline;gap:10px}
.panel .inst{height:420px;overflow:hidden;position:relative}
.panel.video .inst .chips{display:none}
.modlist{display:none}
/* the facts panels · intel, the perimeter */
.st-facts{display:flex;flex-direction:column;gap:10px}
.fshot{display:block;position:relative;aspect-ratio:16/7;border-radius:10px;background:var(--deep) top/cover no-repeat;overflow:hidden}
.fshot span{position:absolute;left:10px;bottom:8px;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--foam);text-shadow:0 1px 6px rgba(0,0,0,.9)}
.frows{list-style:none;display:flex;flex-direction:column;gap:5px}
.frows li,.modlist li{display:grid;grid-template-columns:24px auto 1fr;gap:10px;align-items:baseline;padding:6px 8px;border-radius:8px;background:rgba(244,244,243,.04)}
.frows svg,.modlist svg{width:22px;height:18px;fill:none;stroke:var(--lc);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;align-self:center}
.frows b,.modlist b{font:600 11.5px var(--mono);letter-spacing:.02em;color:var(--foam);white-space:nowrap}
.frows span,.modlist span{font:400 13.5px/1.45 var(--font);color:var(--ink2)}
/* the ledger of laws · a slab beside the brain's cell */
.ledger{background:linear-gradient(180deg,rgba(24,14,36,.94),rgba(12,9,16,.97));padding:18px 20px;box-shadow:inset 0 0 0 1px rgba(163,79,240,.35),0 20px 60px rgba(0,0,0,.6)}
.ledger h2{font-size:20px;color:#c9a0ff;margin-bottom:8px}
.ledger .lsum{font:400 12.5px/1.5 var(--mono);color:var(--mist);margin-bottom:14px}
.ledger .lsum b{color:var(--foam);font-weight:600}
.ledger ol{list-style:none;display:flex;flex-direction:column;gap:6px;max-height:calc(100% - 150px);overflow:hidden;-webkit-mask-image:linear-gradient(#000 84%,transparent);mask-image:linear-gradient(#000 84%,transparent)}
.ledger li{display:grid;grid-template-columns:44px 1fr;gap:3px 10px;opacity:0;transform:translateX(-10px);transition:opacity .5s var(--out),transform .6s var(--pop);padding:6px 0;border-top:1px solid rgba(163,79,240,.16)}
.ledger li.in{opacity:1;transform:none}
.ledger time{font:500 9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#c9a0ff;padding-top:2px;grid-row:1/3}
.ledger li span{font:400 12.5px/1.4 var(--font);color:var(--mist);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ledger li b{font:600 12.5px/1.4 var(--font);color:var(--foam);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ledger .lfoot{position:absolute;left:24px;right:24px;bottom:16px;font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#c9a0ff;opacity:.85}
/* the room's cards */
.roomhead{padding:18px 26px;display:none;flex-direction:column;justify-content:center;background:rgba(10,10,14,.7)}
.roomhead h2{font-size:26px;letter-spacing:.04em;margin-bottom:4px}
.roomhead p{font:400 14px/1.45 var(--font);color:var(--ink2)}
.roomhead.yours{background:rgba(244,244,243,.05);box-shadow:inset 0 0 0 1px dashed var(--hair2)}
.card.gate,.card.record{padding:18px 20px}
.card.gate h2,.card.record h2{font-size:18px;margin-bottom:12px}
.card.gate .checks{list-style:none;display:flex;flex-direction:column;gap:7px}
.card.gate .checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font:400 14px/1.4 var(--font);color:var(--ink2)}
.card.gate .checks li i{width:18px;height:18px;border-radius:50%;background:rgba(244,244,243,.1);position:relative;top:1px;transition:background .4s,box-shadow .4s}
.card.gate .checks li i::after{content:'';position:absolute;left:5px;top:3px;width:5px;height:9px;border-right:2px solid var(--abyss);border-bottom:2px solid var(--abyss);transform:rotate(45deg);opacity:0;transition:opacity .3s}
.card.gate .checks li.ok i{background:#0FBF8F;box-shadow:0 0 12px #0FBF8F}.gate .checks li.ok i::after{opacity:1}
/* what the record taught the gate · a pull, and the check it became */
.taught{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px}
.taught li{display:grid;grid-template-columns:1fr;gap:2px;padding:7px 10px;border-radius:9px;background:rgba(163,79,240,.1);opacity:0;transform:translateX(-10px);transition:opacity .6s var(--out),transform .7s var(--pop)}
.taught li.in{opacity:1;transform:none}
.taught em{font:400 12px/1.35 var(--font);color:#FF9B75;font-style:normal;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.taught em::before{content:'pulled · ';font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#FF7847}
.taught b{font:600 13px/1.4 var(--font);color:var(--foam)}
.taught b::before{content:'became the check · ';font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#c9a0ff}
.taught i{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#0FBF8F;font-style:normal}
.card.record .sum{font:400 12.5px var(--mono);color:var(--mist);margin-bottom:10px;letter-spacing:.02em}
.card.record .sum b{color:var(--foam);font-weight:600}
.card.record table{width:100%;border-collapse:collapse;font:400 12.5px/1.35 var(--font);color:var(--ink2)}
.card.record tr{opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .4s var(--pop)}
.card.record tr.in{opacity:1;transform:none}
.card.record td{padding:5px 6px;border-top:1px solid var(--hair);vertical-align:top}
.card.record td:first-child{font:500 10px var(--mono);color:var(--mist);white-space:nowrap;width:74px}
.card.record td:first-child i{display:block;font-style:normal;color:var(--dim)}
.card.record td b{color:var(--foam);font-weight:600}
.card.record td em{display:block;font-style:normal;font-size:10.5px;color:var(--mist);margin-top:2px}
.card.record td:last-child{font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;text-align:right;white-space:nowrap;color:var(--mist)}
.card.record tr.served td:last-child{color:#0FBF8F}.record tr.pulled td:last-child{color:#FF7847}
.card.screen{background:var(--deep)}
.card.screen video{width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}
.card.screen .cap{position:absolute;left:14px;right:14px;bottom:10px;text-shadow:0 1px 8px rgba(0,0,0,.95)}
.card.screen .cap b{display:block;font:600 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--foam)}
.card.screen .cap span{font:400 12.5px/1.4 var(--font);color:var(--ink2)}
.card.screen.touched{box-shadow:0 0 0 2px #3B96FF,0 0 60px rgba(59,150,255,.6)}
.card.plinth{display:grid;grid-template-columns:230px 1fr;gap:14px;padding:14px}
.card.plinth img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--deep)}
.card.plinth .roundel{width:56px;aspect-ratio:1;margin-bottom:8px;border-radius:0;background:none}
.card.plinth h3{font-size:14px;margin-bottom:6px}
.card.plinth p{font:400 12.5px/1.45 var(--font);color:var(--ink2)}
.card.plinth p.shelf{margin-top:8px;color:var(--mist)}
.card.proposal{background:var(--foam);color:var(--abyss);padding:18px 20px;border-radius:8px}
.card.proposal h3{color:var(--abyss);font-size:14px;margin-bottom:12px}
.card.proposal ol{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.card.proposal li{counter-increment:s;font:400 13.5px/1.35 var(--font);color:#1a1a1c;display:grid;grid-template-columns:26px 1fr;gap:8px}
.card.proposal li::before{content:counter(s,decimal-leading-zero);font:500 10px var(--mono);color:#7a7a7e;padding-top:3px}
.card.proposal p{font:400 11.5px/1.4 var(--font);color:#5a5a5e}
.card.door{background:linear-gradient(180deg,rgba(255,31,47,.92),rgba(200,21,37,.96));border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.card.door a{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;height:100%;padding:16px 14px}
.card.door b{font:700 13px var(--disp);letter-spacing:.06em;text-transform:uppercase;color:#fff;line-height:1.2}
.card.door span{font:500 9.5px var(--mono);letter-spacing:.08em;color:rgba(255,255,255,.8)}
.card.door em{font-style:normal;font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-top:8px}
/* Backlot's card · its twelve reads with their real counts */
.backlot{padding:20px 22px;background:linear-gradient(180deg,rgba(28,10,12,.94),rgba(12,8,9,.97));box-shadow:inset 0 0 0 1px rgba(255,31,47,.35),0 20px 60px rgba(0,0,0,.6)}
.backlot h2{font-size:22px;color:var(--tide2);letter-spacing:.14em;margin-bottom:6px}
.backlot .bsum{font:400 13px/1.5 var(--font);color:var(--ink2);margin-bottom:12px}
.backlot .bsum b{color:var(--foam);font-weight:600}
/* the readouts · a number, what it counts, the question it answers */
.reads{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.reads div{background:rgba(255,31,47,.07);border-radius:10px;padding:8px 10px 7px}
.reads b{display:block;font:700 22px/1 var(--disp);color:var(--foam);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-bottom:4px}
.reads span{display:block;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tide2)}
.reads em{display:block;font:400 11.5px/1.3 var(--font);font-style:normal;color:var(--mist);margin-top:2px}
.stances{list-style:none;display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.stances li{display:grid;grid-template-columns:140px 1fr 50px;gap:10px;align-items:center;opacity:0;transform:translateX(-8px);transition:opacity .5s var(--out),transform .6s var(--pop)}
.stances li.in{opacity:1;transform:none}
.stances span{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--foam);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stances i{display:block;height:6px;border-radius:3px;background:rgba(244,244,243,.08);position:relative;overflow:hidden}
.stances i::after{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);background:var(--tide);border-radius:3px;transition:width 1.2s var(--out)}
.stances li:not(.in) i::after{width:0}
.stances b{font:600 11px var(--mono);color:var(--foam);text-align:right;font-variant-numeric:tabular-nums}
/* the ways · the channel split and the year curve */
.ways{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.ways>div>span{display:block;font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist);margin-bottom:6px}
.split{display:flex;flex-direction:column;gap:3px}
.split i{display:block;position:relative;font:500 10px var(--mono);color:var(--ink2);padding:2px 0 2px 6px;font-style:normal;opacity:0;transition:opacity .5s var(--out)}
.split i.in{opacity:1}
.split i::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w,2%);max-width:100%;background:rgba(255,31,47,.22);border-radius:2px;z-index:-1}
.split i b{color:var(--foam);font-weight:600}
.years .bars{display:flex;align-items:flex-end;gap:3px;height:64px}
.years .bars i{flex:1;display:block;height:var(--h,0%);min-height:2px;background:var(--tide);border-radius:2px 2px 0 0;opacity:.35;transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--out),opacity .5s}
.years .bars i.in{transform:none;opacity:.85}
.years .bars i:last-child{opacity:1}
/* what they wrote · verbatim, with who and when */
.quotes{list-style:none;display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.quotes li{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border-radius:8px;background:rgba(244,244,243,.05);opacity:0;transform:translateY(6px);transition:opacity .5s var(--out),transform .6s var(--pop)}
.quotes li.in{opacity:1;transform:none}
.quotes span{font:400 13px/1.4 var(--font);color:var(--foam)}
.quotes em{font:500 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist);font-style:normal}
.backlot .bfoot{position:absolute;left:22px;right:22px;bottom:14px;font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tide2);opacity:.85}

/* ---- the panel · the take's caption ---- */
.ttour{position:fixed;left:18px;bottom:18px;z-index:45;width:min(clamp(470px,40vw,760px),calc(100vw - 36px));max-height:min(calc(100vh - var(--mast) - 34px),46vh);overflow-y:auto;background:rgba(10,10,14,.92);border-radius:16px;padding:18px 22px 16px;cursor:default;box-shadow:0 18px 50px rgba(0,0,0,.42)}
.ttrail{display:flex;gap:3px;align-items:center;margin:0 0 14px}
.tttick{height:4px;flex:1;border-radius:2px;background:rgba(236,234,232,.13);cursor:pointer;transition:background .2s ease;position:relative;overflow:hidden}
.tttick:hover{background:rgba(236,234,232,.4)}
.tttick.done{background:rgba(236,234,232,.32)}
.tttick.now{background:color-mix(in srgb,var(--tc,var(--tide)) 38%,transparent);box-shadow:0 0 9px color-mix(in srgb,var(--tc,var(--tide)) 70%,transparent)}
.tttick.now::after{content:'';position:absolute;inset:0;background:var(--tc,var(--tide));opacity:.6;transform-origin:left;transform:scaleX(0);animation:ttfill var(--dur,12s) linear forwards;animation-play-state:paused}
.ttour.playing .tttick.now::after{animation-play-state:running}
@keyframes ttfill{to{transform:scaleX(1)}}
.tttitle{font:700 17px var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--tc,var(--foam));margin:0 0 8px}
.ttbody{font:400 clamp(14.5px,1vw,16px)/1.56 var(--font);color:var(--ink2);margin:0 0 12px}
.ttbody i[data-k]{font-style:normal;transition:color .25s ease,background-size .55s var(--sm);background:linear-gradient(var(--tc,var(--tide)),var(--tc,var(--tide))) no-repeat 0 100%/0% 1.5px}
.ttbody i[data-k].on{color:var(--tc,var(--tide));font-weight:600;background-size:100% 1.5px}
/* the panel writes itself in on every beat: the title, then the words, then the key */
.ttour .tttitle,.ttour .ttbody,.ttour .ttkey,.ttour .ttdoors{animation:ttin .62s var(--out) both}
.ttour .ttbody{animation-delay:.09s}.ttour .ttkey,.ttour .ttdoors{animation-delay:.18s}
@keyframes ttin{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.ttclock{display:block;font:600 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tc,var(--tide));margin:-4px 0 10px;font-variant-numeric:tabular-nums}
.ttkey{display:block;text-align:left;font:13.5px/1.5 var(--font);color:var(--mist);margin:-3px 0 12px}
.ttkey b{font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tc,var(--tide))}
.ttkey:hover{color:var(--foam)}
.ttdoors{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.ttdoors a{font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--foam);background:rgba(244,244,243,.08);border-radius:7px;padding:8px 11px}
.ttdoors a:hover{background:var(--tide);color:#fff}
.ttdoors a.primary{background:var(--tide);color:#fff}
.ttdoors a.primary:hover{background:var(--tide2)}
.ttctl{display:flex;align-items:center;gap:18px}
.ttnum{font:10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-right:auto;white-space:nowrap}
.ttctl .tbtn{font-size:13px;padding:8px 0}
.ttctl .ttnext{color:var(--foam)}
/* the key */
/* ---- the navigator lives in the mast, so it covers nothing (the user: the box at the bottom right must not cover the demo): the beat stepper in the middle, the zoom beside the key ---- */
.nstep{flex:1;display:flex;align-items:center;justify-content:center;gap:2px;min-width:0}
.nzoom{display:flex;align-items:center;gap:2px;background:rgba(244,244,243,.06);border-radius:9px;padding:2px;margin-right:4px}
.nbtn{font:600 14px/1 var(--mono);color:var(--ink2);width:28px;height:26px;border-radius:7px;display:grid;place-items:center}
.nbtn:hover{background:rgba(244,244,243,.1);color:var(--foam)}
.nbtn:active{background:var(--tide);color:#fff}
.nbtn.nfit{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;width:auto;padding:0 9px}
.nread{font:500 10.5px var(--mono);color:var(--mist);min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.nwhere{font:500 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mist);max-width:min(50vw,640px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px;text-align:center}
.hint{position:fixed;top:calc(var(--mast) + 10px);left:50%;transform:translateX(-50%);z-index:40;font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist);background:rgba(10,10,14,.82);border-radius:8px;padding:6px 12px;pointer-events:none;white-space:nowrap;animation:hintin .6s var(--out) both;transition:opacity .8s}
.hint.out{opacity:0}
@keyframes hintin{from{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translateX(-50%)}}
html.doored .hint,html.phone .hint{display:none}
@media (max-width:1100px){ .nbtn.nfit{display:none} .nwhere{max-width:38vw} }
.legend{position:fixed;top:calc(var(--mast) + 10px);right:18px;z-index:44;width:min(460px,calc(100vw - 36px));max-height:calc(100vh - 130px);overflow-y:auto;background:var(--tile2);border-radius:14px;padding:12px 14px}
.legend .lsec{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--hair)}
.legend .lrow.hand em,.legend .lsrc{font:400 11px/1.5 var(--font);color:var(--mist)}
.legend .lrow.mark svg{width:26px;height:22px}.legend .lrow.mark svg path{fill:none;stroke:var(--tide2);stroke-width:.08;stroke-linejoin:round}
.legend .lsec:last-child{border-bottom:none;margin-bottom:0}
.lrows{display:flex;flex-direction:column;gap:2px}
.lrow{display:grid;grid-template-columns:22px auto 1fr;gap:8px;align-items:center;text-align:left;padding:3px 4px;border-radius:6px;font-size:12px}
.lrow i{width:10px;height:10px;border-radius:3px;background:var(--lc,var(--mist));justify-self:center}
.lrow.wire i{width:18px;height:3px;border-radius:2px;box-shadow:0 0 8px var(--lc)}
.lrow svg{width:22px;height:18px;fill:none;stroke:var(--ink2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lrow b{font:600 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lc,var(--foam))}
.lrow.shape b,.lrow.wire b{color:var(--ink2)}
.lrow em{font-style:normal;color:var(--mist);font-size:11.5px}
.lrows.chips{flex-direction:row;flex-wrap:wrap;gap:4px}
.rchip{font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lc,var(--ink2));background:rgba(244,244,243,.05);border-radius:6px;padding:4px 7px}
.rchip:hover{background:rgba(244,244,243,.12)}
/* the drawer */
.drawer{position:fixed;top:var(--mast);right:0;bottom:0;width:min(440px,86vw);z-index:60;background:rgba(11,11,14,.97);padding:18px 22px 40px;overflow-y:auto;transform:translateX(103%);transition:transform .24s ease;overscroll-behavior:contain}
.drawer.open{transform:none}
.dclose{position:absolute;top:10px;right:14px;font-size:22px;color:var(--mist);line-height:1;padding:6px}
.dclose:hover{color:var(--foam)}
.dlane{display:inline-flex;align-items:center;gap:7px;font:600 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--lc,var(--mist));margin:4px 0 10px}
.dlane i{width:8px;height:8px;border-radius:50%;background:var(--lc)}
.drawer h3{font-size:16px;letter-spacing:.04em;text-transform:none;margin-bottom:4px}
.dq{font:400 14px/1.5 var(--font);color:var(--foam);margin-bottom:10px}
.dhow{font-size:13px;line-height:1.6;color:var(--ink2);margin-bottom:10px}
.dproof,.dcell{font-size:12.5px;color:var(--mist);margin-bottom:10px}
.dproof b,.dcell b{font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-right:6px}
.drawer h4{font:500 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:14px 0 6px}
.wirelist{list-style:none}
.drawer .wirelist li{display:grid;grid-template-columns:8px auto 1fr;gap:8px;align-items:baseline;padding:3px 0;font-size:12.5px}
.drawer .wirelist i{width:7px;height:7px;border-radius:2px;display:inline-block}
.drawer .wirelist button{text-align:left;color:var(--foam);font-weight:500}
.drawer .wirelist button:hover{color:var(--tide2)}
.drawer .wirelist span{color:var(--mist);font-size:11.5px}
.dmeta{font:400 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:16px;line-height:1.7}
.dgo{display:inline-block;margin-top:12px;font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--foam);background:rgba(244,244,243,.08);border-radius:7px;padding:8px 11px}
.dgo:hover{background:var(--tide);color:#fff}

/* ================= THE INSTRUMENTS ================= */
.st{display:flex;flex-direction:column;gap:10px}
.pcard{background:rgba(244,244,243,.06);border-radius:12px;padding:10px 12px 8px;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transform:translateY(8px);animation:pcin .4s var(--pop) forwards}
@keyframes pcin{to{opacity:1;transform:none}}
.pcard.in{opacity:1;transform:none}
.pc-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.pc-head b{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tide2);margin-right:4px}
.att{font:500 10px var(--mono);color:var(--ink2);background:rgba(244,244,243,.08);border-radius:5px;padding:2px 7px}
.att::before{content:'';display:inline-block;width:6px;height:8px;border:1px solid var(--mist);border-radius:1px;margin-right:5px;vertical-align:-1px}
.pc-text{font:400 14px/1.5 var(--font);color:var(--foam);min-height:1.5em}
.pc-text.typing::after{content:'';display:inline-block;width:2px;height:1em;background:var(--foam);vertical-align:-2px;margin-left:2px;animation:caret 1s steps(2) infinite}
@keyframes caret{50%{opacity:0}}
.pc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.pc-model{font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.pc-send{width:22px;height:22px;border-radius:50%;background:var(--dim);position:relative;transition:background .25s}
.pc-send::after{content:'';position:absolute;left:8px;top:6px;width:6px;height:6px;border-top:2px solid var(--abyss);border-right:2px solid var(--abyss);transform:rotate(-45deg)}
.pcard.sent .pc-send{background:#0FBF8F}
.tks{display:flex;flex-direction:column;gap:4px;min-height:22px}
.tk{display:grid;grid-template-columns:8px 1fr;gap:8px;align-items:baseline;font:400 13px/1.45 var(--font);color:var(--mist);animation:tkin .3s ease both}
.tk i{width:6px;height:6px;border-radius:50%;background:var(--dim);position:relative;top:-1px}
.tk.on{color:var(--foam)}
.tk.on i{background:var(--tide2);box-shadow:0 0 8px var(--tide2)}
@keyframes tkin{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
.stamp{font:600 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.counts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.counts div{background:rgba(244,244,243,.05);border-radius:10px;padding:8px 10px}
.counts b{display:block;font:700 22px var(--disp);color:var(--foam);letter-spacing:-.01em}
.counts span{font:400 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
.st-ideas .cards{position:static;width:auto;height:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;pointer-events:auto}
.idea{background:rgba(244,244,243,.05);border-radius:10px;padding:11px 13px;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s var(--pop)}
.idea.in{opacity:1;transform:none}
.idea .reg{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#F5A81C}
.idea b{display:block;font:700 14px var(--disp);letter-spacing:.06em;color:var(--foam);margin:3px 0 1px}
.idea em{display:block;font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mist)}
.idea p{font:400 13.5px/1.45 var(--font);color:var(--ink2);margin:6px 0 8px}
.idea .gates i{font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-radius:5px;padding:2px 6px;background:rgba(244,244,243,.05)}
.idea .gates{display:flex;gap:5px;flex-wrap:wrap}
.idea .gates i.ok{color:#0FBF8F;background:rgba(15,191,143,.12)}
.st-frames{position:relative}
.st-frames .sheet{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.plate-f,.st-frames .plate{aspect-ratio:1;border-radius:8px;background:var(--deep) center/cover no-repeat;opacity:0;transform:scale(.92);transition:opacity .4s,transform .4s var(--pop),box-shadow .2s;display:block;padding:0;grid-template-columns:none;gap:0;box-shadow:none}
.st-frames .plate.in{opacity:1;transform:none}
.st-frames .plate.qa{box-shadow:0 0 0 2px #F646B8}
.loupe{position:absolute;z-index:3;width:140px;height:140px;border-radius:50%;background:var(--deep) center/300% no-repeat;box-shadow:0 0 0 2px var(--foam),0 12px 30px rgba(0,0,0,.6);pointer-events:none;opacity:0;transition:opacity .28s var(--out)}
.loupe.on{opacity:1}
.player{position:relative;border-radius:12px;overflow:hidden;background:var(--deep)}
.player video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.ruler{position:relative;height:26px;background:rgba(244,244,243,.05)}
.ruler b{position:absolute;top:7px;font:500 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist);transform:translateX(4px)}
.ruler b::before{content:'';position:absolute;left:-4px;top:-7px;width:1px;height:26px;background:var(--hair2)}
.ruler .ph{position:absolute;top:0;bottom:0;width:2px;background:#FF4534;box-shadow:0 0 8px #FF4534}
.st-films .cap{font-size:13.5px;color:var(--mist)}
.st-films .cap b{color:var(--foam);font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.st-sound .wave{width:100%;height:190px;display:block;border-radius:10px;background:rgba(244,244,243,.04)}
.meter{display:flex;align-items:center;gap:10px}
.mbar{flex:1;height:8px;border-radius:4px;background:rgba(244,244,243,.08);overflow:hidden}
.mbar i{display:block;height:100%;width:0;background:var(--mist);transition:width .25s}
.mnum{font:400 12px var(--mono);color:var(--mist);white-space:nowrap}
.mnum b{font-size:15px;color:var(--foam);font-variant-numeric:tabular-nums}
.st-edit .ed-top{min-height:96px}
.ed-tl{--nw:34px;position:relative;background:rgba(244,244,243,.04);border-radius:10px;padding:0 0 6px;overflow:hidden}
.ed-ruler{position:relative;height:18px;margin-left:var(--nw);border-bottom:1px solid var(--hair)}
.ed-ruler b span{position:absolute;top:3px;font:400 8.5px var(--mono);color:var(--dim);transform:translateX(-50%)}
.ed-row{display:grid;grid-template-columns:var(--nw) 1fr;height:26px;align-items:stretch}
.ed-name{font:500 9px var(--mono);letter-spacing:.08em;color:var(--dim);display:flex;align-items:center;justify-content:center}
.ed-lane{position:relative;border-bottom:1px solid var(--hair)}
.clip{position:absolute;top:3px;bottom:3px;border-radius:4px;overflow:hidden;background:rgba(244,244,243,.08);transition:left .6s var(--sm),width .6s var(--sm),box-shadow .2s}
.clip span{position:absolute;left:5px;top:50%;transform:translateY(-50%);font:500 8.5px var(--mono);letter-spacing:.04em;color:var(--foam);white-space:nowrap;overflow:hidden;max-width:calc(100% - 8px)}
.clip.pic{background:rgba(79,210,255,.22)}
.clip.gfx{background:rgba(245,168,28,.28)}
.clip.dia{background:rgba(217,255,63,.22)}
.clip.mus{background:rgba(163,79,240,.24)}
.clip.vo{background:rgba(246,70,184,.24)}
.clip .gain{position:absolute;left:0;right:0;top:70%;height:1.5px;background:rgba(244,244,243,.5);transition:top .8s var(--sm)}
.clip.pic .gain,.clip.gfx .gain{display:none}
.clip.lift .gain{top:22%;background:#4FD2FF}
.clip.held{box-shadow:inset 0 0 0 1px #0FBF8F}
.clip.grab{box-shadow:inset 0 0 0 1px var(--foam);z-index:2}
.ed-head{position:absolute;top:0;bottom:0;width:1.5px;background:var(--tide2);box-shadow:0 0 6px var(--tide2);pointer-events:none;z-index:3;left:var(--nw)}
.ed-cursor{position:absolute;z-index:4;width:14px;height:18px;pointer-events:none;transition:left .55s var(--sm),top .55s var(--sm);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 18'%3E%3Cpath d='M1 1 L1 14 L4.5 11 L7 17 L9.5 16 L7 10 L12 10 Z' fill='%23f4f4f3' stroke='%23060607' stroke-width='1'/%3E%3C/svg%3E") no-repeat}
.ed-under{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;align-items:start}
.ed-meter{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;align-items:center;font:400 10px var(--mono);color:var(--mist)}
.ed-meter span{letter-spacing:.12em;text-transform:uppercase}
.ed-meter b{font-size:13px;color:var(--foam);font-variant-numeric:tabular-nums}
.ed-meter .mbar{height:6px}
.gl{display:flex;flex-direction:column;gap:3px}
.st-gauntlet .gate{position:static;width:auto;height:auto;opacity:1;display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:7px;font-size:13px;color:var(--mist);transition:none;background:none;box-shadow:none;transform:none}
.st-gauntlet .gate i{width:9px;height:9px;border-radius:2px;transform:rotate(45deg);background:rgba(244,244,243,.15)}
.st-gauntlet .gate.run{color:var(--foam);background:rgba(244,244,243,.05)}
.st-gauntlet .gate.run i{background:var(--foam);animation:gpulse .7s ease-in-out infinite}
@keyframes gpulse{50%{transform:rotate(45deg) scale(1.4)}}
.st-gauntlet .gate.ok{color:var(--ink2)}.st-gauntlet .gate.ok i{background:#0FBF8F}
.st-gauntlet .gate.no{color:var(--foam);background:rgba(255,120,71,.1)}.st-gauntlet .gate.no i{background:#FF7847}
.st-gauntlet .gate b{font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.st-gauntlet .gate.ok b{color:#0FBF8F}.st-gauntlet .gate.no b{color:#FF7847}
.urlbar{display:flex;align-items:center;gap:8px;background:rgba(244,244,243,.06);border-radius:9px;padding:9px 12px;font:500 13px var(--mono);color:var(--foam)}
.urlbar i{width:8px;height:8px;border-radius:50%;background:#0FBF8F;box-shadow:0 0 8px #0FBF8F}
.versions{display:flex;flex-direction:column;gap:4px}
.ver{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:7px;background:rgba(244,244,243,.04);font-size:13px;color:var(--ink2);opacity:0;transform:translateY(-6px);transition:opacity .4s,transform .4s var(--pop)}
.ver.in{opacity:1;transform:none}
.ver i{width:8px;height:8px;background:#EAF2F7;border-radius:2px}
.ver b{font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#0FBF8F}
.dk-head{display:flex;align-items:center;justify-content:space-between;font:600 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mist);margin-top:4px}
.dk-head b{color:var(--foam)}
.beat{display:inline-flex;align-items:center;gap:6px}
.beat i{width:7px;height:7px;border-radius:50%;background:var(--dim);transition:background .15s,box-shadow .15s}
.beat i.on{background:#0FBF8F;box-shadow:0 0 8px #0FBF8F}
.dk-q{display:flex;flex-direction:column;gap:3px;min-height:104px}
.dkrow{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:6px 10px;border-radius:7px;background:rgba(244,244,243,.04);font-size:13px;color:var(--foam);opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .35s var(--pop)}
.dkrow.in{opacity:1;transform:none}
.dkrow em{font:400 10px var(--mono);color:var(--dim);font-style:normal}
.dkrow b{font:600 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.dkrow.st-working b{color:#3B96FF}
.dkrow.st-working{background:rgba(59,150,255,.08)}
.dkrow.st-yourcall b{color:var(--gold)}
.dkrow.st-live b{color:#0FBF8F}
.dk-wall{display:grid;grid-template-columns:repeat(11,1fr);gap:4px}
.wc{aspect-ratio:16/10;border-radius:3px;background:rgba(244,244,243,.1)}
.wc.new{background:var(--gold);box-shadow:0 0 10px var(--gold)}
.hm-top{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.takes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.take{opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s var(--pop)}
.take.in{opacity:1;transform:none}
.take i{display:block;aspect-ratio:1;border-radius:8px;background:var(--deep) center/cover no-repeat}
.take b{display:block;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist);margin-top:5px}
.take.keep i{box-shadow:0 0 0 2px #0FBF8F}
.take.keep b{color:#0FBF8F}
.cur-view{position:relative;border-radius:12px;overflow:hidden;background:var(--deep)}
.cur-view video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.cur-now{position:absolute;left:10px;bottom:10px;right:10px;display:flex;flex-direction:column;gap:2px;text-shadow:0 1px 8px rgba(0,0,0,.9)}
.cur-now b{font:700 13px var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--foam)}
.cur-now span{font:400 13px/1.4 var(--font);color:var(--ink2)}
.cur-q{display:flex;flex-direction:column;gap:3px}
.qi{display:grid;grid-template-columns:8px auto 1fr;gap:8px;align-items:baseline;font-size:13px;color:var(--mist);padding:4px 6px}
.qi i{width:6px;height:6px;border-radius:50%;background:var(--dim);position:relative;top:-1px}
.qi b{font:600 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--foam)}
.bigshot{display:block;position:relative;aspect-ratio:16/9;border-radius:12px;background:var(--deep) center/cover no-repeat;overflow:hidden}
.bigshot span{position:absolute;left:10px;bottom:8px;font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--foam);text-shadow:0 1px 6px rgba(0,0,0,.9)}
.st-always{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}
.dial{width:100%;aspect-ratio:1;display:block}
.loops{display:flex;flex-direction:column;gap:5px}
.loop{display:grid;grid-template-columns:8px auto 1fr;gap:8px;align-items:baseline;padding:5px 8px;border-radius:7px;transition:background .15s}
.loop i{width:8px;height:8px;border-radius:50%;position:relative;top:-1px}
.loop b{font:600 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--foam);white-space:nowrap}
.loop span{font-size:12.5px;color:var(--mist)}
.loop.fire{background:rgba(244,244,243,.09)}
.st-pages .pg{position:relative;border-radius:10px;overflow:hidden;background:var(--deep)}
.st-pages .shots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.st-pages .shot{display:block;position:relative;aspect-ratio:16/10;border-radius:8px;background:var(--deep) top/cover no-repeat;overflow:hidden}
.st-pages .shot span{position:absolute;left:8px;bottom:6px;font:500 9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--foam);text-shadow:0 1px 6px rgba(0,0,0,.9)}

/* ================= the phone · the cards in flow, the modules listed under each, native scroll ================= */
@media (max-width:1000px){ .ttour{width:min(400px,calc(100vw - 36px))} }
@media (max-width:700px){
  :root{--mast:48px}
  body{font-size:14px;padding-top:var(--mast)}
  .mast{gap:12px;padding:0 14px}
  .wordmark .tag{display:none}
  .mplay,.mkey,.mbeat,.nzoom,.nstep,.hint,.legend,.ttour,.horizon,.stage{display:none!important}
  .viewport{position:static;overflow:visible;height:auto;user-select:auto}
  .cards{position:static;width:auto;height:auto;display:flex;flex-direction:column;gap:14px;padding:14px 12px 40px}
  .card{position:relative;transform:none!important;width:auto!important;height:auto!important;opacity:1;visibility:visible!important;pointer-events:auto;transition:none;zoom:1}
  .panel .inst{height:auto;min-height:120px}
  .card.roomhead{display:flex}
  .panel.video .inst .chips{display:flex}
  .modlist{display:flex;flex-direction:column;gap:5px;list-style:none;margin-top:12px}
  .ledger li,.taught li,.record tr,.stances li{opacity:1;transform:none}
  .stances i::after{width:var(--w,0%)}
  .ledger .lfoot,.backlot .bfoot{position:static;margin-top:14px}
  .card.gate .checks li i{background:#0FBF8F}.card.gate .checks li i::after{opacity:1}
  .card.plinth{grid-template-columns:1fr}
  .stances li{grid-template-columns:120px 1fr 54px}
  .reads{grid-template-columns:1fr 1fr}
  .ways{grid-template-columns:1fr}
  .split i.in,.quotes li,.years .bars i{opacity:1;transform:none}
  .drawer{top:auto;bottom:0;right:0;left:0;width:auto;height:62dvh;border-radius:16px 16px 0 0;transform:translateY(104%);padding:16px 18px 40px}
  .drawer.open{transform:none}
  .counts{grid-template-columns:repeat(2,1fr)}
  .st-always{grid-template-columns:1fr}
  .st-ideas .cards{grid-template-columns:1fr 1fr;padding:0}
  .st-frames .sheet{grid-template-columns:repeat(4,1fr)}
  .ed-under{grid-template-columns:1fr}
  .ed-ruler b:nth-child(even) span{display:none}
  .foot{position:static;align-items:flex-start;padding:24px 16px 50px}
  .splash .sub{font-size:14px}
  .splash .rule{position:static;padding:0;margin-top:10px;letter-spacing:.1em}
  .sdoor{min-width:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
