/* ═════════ Mind Dojo · interactive pitch layer (sits on top of the prototype's styles) ═════════ */
#homebtn,#notesbtn{display:none!important}
em{font-style:normal;color:var(--gold)}

/* pitch panel: the lacquer window, wider and scaled for a projector */
.win.pp{top:calc(env(safe-area-inset-top,0px) + 58px);right:2.2vw;left:35%;bottom:auto;max-height:calc(100% - 70px - max(var(--dlg,20px),clamp(150px,19vh,215px)));font-size:clamp(14px,2.45vh,29px);line-height:1.4;padding:.5em 1em .6em;overflow:auto}
.win.pp.wide{left:29%}
.win.pp.dense{font-size:clamp(13px,2.05vh,24px)}
.win.pp.narrow{left:auto;width:min(50%,900px)}
.port .win.pp{left:10px;right:10px;top:var(--deck);bottom:var(--dlg,170px)}
.pp h2{font-family:var(--px);font-weight:700;font-size:2.05em;line-height:1.05;margin:.1em 0 .35em;color:#ffe08a;letter-spacing:.02em;
  text-shadow:2px 0 #8a3f14,-2px 0 #8a3f14,0 2px #8a3f14,0 -2px #8a3f14,5px 5px 0 #140b22}
.pp .eyebrow{font-size:.72em}
.pp .lede{color:#e6ddff;font-size:1.05em;margin:.1em 0 .8em}
.pp p{margin:.35em 0}
.pp .cite{display:block;font-family:var(--dot);font-size:.62em;color:#9d93c6;letter-spacing:.01em;margin-top:.25em}
.pp .foot{margin-top:.8em;padding:.45em .8em;font-family:var(--px);letter-spacing:.06em;color:#ffe9b0;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 2px rgba(255,214,107,.45);text-align:center}
.pp .ph{color:#ffb4c8;font-family:var(--px)}
.flag{display:inline-block;font-family:var(--px);font-size:.8em;color:#1a0e22;background:#ff9f6b;padding:.05em .5em;box-shadow:0 0 0 2px #1a0e22}
.tag{display:inline-block;font-family:var(--px);font-size:.62em;letter-spacing:.12em;text-transform:uppercase;padding:0 .45em;margin-right:.5em;vertical-align:.15em;box-shadow:inset 0 0 0 1px currentColor}
.tag.built{color:#8fe08a}.tag.designed{color:#c9a4f2}
.rv{opacity:0;animation:rvIn .5s steps(5) forwards;animation-delay:var(--d,0s)}
@keyframes rvIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.rv{animation:none;opacity:1}}

/* pitch nav in the HUD */
#pnav{background:rgba(14,11,40,.82);box-shadow:inset 0 0 0 2px #3a3070;padding:2px;display:flex;align-items:center;gap:6px;margin-left:10px;font-family:var(--px);font-size:.78rem;color:var(--dim);transition:opacity .3s}
#pnav .hbtn{min-width:40px}
#pnav .lbl{padding:0 8px;white-space:nowrap;text-shadow:2px 2px 0 #0a0718;max-width:32vw;overflow:hidden;text-overflow:ellipsis}
#pnav .lbl b{color:var(--gold);font-weight:600;margin-right:6px}
.presenter #pnav{opacity:.45}.presenter #pnav:hover{opacity:1}
.self #pnav .next{color:#1a0e22;background:var(--gold);box-shadow:inset 0 0 0 2px #fff3c4;animation:blink 1.2s steps(2) infinite}
#avatar{margin-left:auto}
.hud #tracker{flex:1}

/* title menu */
#titlemenu .cmd{font-size:1.05rem}
#titlecard .tag2{font-family:var(--px);letter-spacing:.3em;color:#ffe9b0;font-size:clamp(.7rem,1.4cqw,.95rem);margin-top:14px;text-shadow:2px 2px 0 #1a0a2a}
#titlecard .keys{font-family:var(--dot);color:#cfc3ff;font-size:.8rem;text-align:center;margin-top:6px;opacity:.9}

/* ── origin: the memory portrait ── */
.origin{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:1.4em;align-items:center;height:100%}
.memory{position:relative;justify-self:center;width:100%;max-width:26em}
.memory .ph0{position:relative;aspect-ratio:748/972;max-height:calc(100cqh - 370px);margin:0 auto;padding:10px;background:#2a160a;
  box-shadow:0 0 0 3px #0a0718,0 0 0 6px #e0ae42,0 0 0 9px #7a4e14,0 0 0 12px #0a0718,0 0 60px 10px rgba(255,190,110,.28)}
.memory img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:auto;filter:saturate(1.02) contrast(1.02)}
.memory .ph0::after{content:"";position:absolute;inset:10px;box-shadow:inset 0 0 40px 8px rgba(20,8,30,.55);pointer-events:none}
.memory .corner{position:absolute;width:14px;height:14px;background:#ffd66b;box-shadow:0 0 0 2px #0a0718;z-index:2}
.memory .c1{left:-10px;top:-10px}.memory .c2{right:-10px;top:-10px}.memory .c3{left:-10px;bottom:-10px}.memory .c4{right:-10px;bottom:-10px}
.memory .nameplate2{position:absolute;left:50%;bottom:-.9em;transform:translateX(-50%);white-space:nowrap;z-index:3;font-family:var(--px);font-size:.8em;letter-spacing:.14em;color:#ffe9b0;padding:.2em .9em;background:var(--wood) 0 0/128px 32px;image-rendering:pixelated;box-shadow:0 0 0 2px #0a0718,inset 0 1px 0 #a8744a;text-shadow:1px 1px 0 #2a160a}
.memory .mote{position:absolute;width:4px;height:4px;background:#fff3b0;box-shadow:0 0 6px 2px rgba(255,220,140,.7);opacity:0;animation:mote 5s linear infinite;z-index:2}
@keyframes mote{0%{opacity:0;transform:translateY(0)}20%{opacity:1}100%{opacity:0;transform:translateY(-90px)}}
.story p{font-size:1.02em;margin:.55em 0}
.story .sign{font-family:var(--px);color:var(--dim);font-size:.85em;margin-top:.9em}

/* ── problem: gym vs match ── */
.vs{display:grid;grid-template-columns:1fr auto 1fr;gap:.8em;align-items:stretch;margin-top:.4em}
.vs .col{padding:.5em .8em;background:rgba(0,0,0,.22)}
.vs .gym{box-shadow:inset 0 0 0 2px rgba(143,224,138,.55)} .vs .match{box-shadow:inset 0 0 0 2px rgba(255,120,110,.55)}
.vs h3{font-family:var(--px);margin:.1em 0 .1em;font-size:1.15em;letter-spacing:.08em}
.vs .gym h3{color:#aef0a8}.vs .match h3{color:#ff9f95}
.vs small{display:block;color:var(--dim);font-size:.72em;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.4em}
.vs ul{list-style:none;padding:0;margin:0;display:grid;gap:.2em}
.vs li{display:grid;grid-template-columns:6.4em 1fr;gap:.5em}
.vs li b{font-family:var(--px);font-weight:600}
.vs li span{color:var(--dim)}
.vs .mid{display:grid;place-items:center;font-family:var(--px);font-weight:700;color:var(--gold);font-size:1.3em}

/* ── way ── */
.lant{display:flex;flex-wrap:wrap;gap:.35em;margin:.5em 0}
.lant span{font-family:var(--px);padding:.25em .6em;background:#0e0b28;box-shadow:inset 0 0 0 2px #3a3070;color:var(--dim);transition:all .2s steps(2)}
.lant span.lit{color:#1a0e22;background:#ffd66b;box-shadow:inset 0 0 0 2px #fff3c4,0 0 14px rgba(255,214,107,.7)}
.lant i{font-style:normal;color:#6d5fb8;align-self:center}
.outs{display:flex;gap:1.2em;flex-wrap:wrap;font-family:var(--px);font-size:1.05em;margin-top:.6em}
.outs span:nth-child(1){color:#ffd66b}.outs span:nth-child(2){color:#c9a4f2}.outs span:nth-child(3){color:#6fe0d0}

/* ── live buttons ── */
.pp .row .cmd{font-size:1em}

/* ── remember / lists ── */
.items{list-style:none;padding:0;margin:.4em 0;display:grid;gap:.45em}
.items li{padding:.35em .6em;background:rgba(0,0,0,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.hint{font-family:var(--px);color:var(--gold);font-size:.85em;margin-top:.6em;animation:blink 1.2s steps(2) infinite}

/* ── world: hall card + board ── */
.hallcard{display:flex;gap:1em;align-items:center}
.hallcard .medal{flex:none;image-rendering:pixelated}
.hallcard h3{font-family:var(--px);font-size:1.6em;margin:.05em 0;color:var(--c,#fff)}
.hallcard .place{font-family:var(--px);color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:.75em}
.tourdots{display:flex;gap:6px;margin-top:.6em}.tourdots i{width:10px;height:10px;background:#2a2360;box-shadow:0 0 0 1px #0a0718}.tourdots i.on{background:var(--gold)}
.mini6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.4em;margin:.4em 0 .7em}
.mini6 div{display:grid;justify-items:center;gap:.1em;padding:.4em .2em;background:rgba(0,0,0,.2);font-family:var(--px);font-size:.72em;text-align:center}
.mini6 canvas{width:64px;height:64px;image-rendering:pixelated}

/* ── ai flow ── */
.aigrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1em}
.flow{display:grid;gap:.25em}
.flow div{display:grid;grid-template-columns:1.9em 1fr;gap:.2em .6em;align-items:center;padding:.3em .6em;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 1px rgba(255,214,107,.25)}
.flow div b{font-family:var(--px);font-weight:600;color:#ffe9b0}
.flow div small{grid-column:2;color:var(--dim);font-size:.8em}
.flow div i{grid-row:span 2;font-style:normal;font-family:var(--px);color:#1a0e22;background:var(--gold);text-align:center;box-shadow:0 0 0 2px #0a0718}
.flow .arrow{display:block;background:none;box-shadow:none;padding:0;text-align:center;color:var(--gold);line-height:.6;font-size:.8em}
.sidecards{display:grid;gap:.5em;align-content:start}
.sidecards div{padding:.45em .7em;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 2px rgba(110,200,255,.35)}
.sidecards b{display:block;font-family:var(--px);color:#bfe6ff;letter-spacing:.06em}
.sidecards span{color:#ddd6f5;font-size:.9em}

/* ── market tiles ── */
.tiles4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6em;margin:.4em 0}
.tiles4 .t{padding:.5em .8em;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 2px rgba(143,224,138,.35)}
.tiles4 .big{font-family:var(--px);font-weight:700;font-size:2.2em;line-height:1;color:#ffe08a;text-shadow:3px 3px 0 #3a1a0a}
.tiles4 .mlab{display:block;margin-top:.25em;font-size:.92em}
.tiles4 .parts{display:flex;flex-wrap:wrap;gap:.2em .8em;font-size:.72em;color:var(--dim);margin-top:.3em}
.tiles4 .parts b{color:#ffe9b0;font-weight:400}
.tiles4 .flag{font-size:.6em;margin-left:.5em;vertical-align:.4em}
.derived{font-size:.8em;color:#d9d1f6;padding:.35em .6em;box-shadow:inset 3px 0 0 var(--gold);background:rgba(255,214,107,.06)}
.dropped{font-size:.7em;color:#9d93c6;margin-top:.4em}

/* ── competition map ── */
.comp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1em;align-items:start}
.map{position:relative;aspect-ratio:1/1;max-height:calc(100cqh - 400px);margin:1.2em 1.6em 1.6em 1.9em;background:
  linear-gradient(#ffffff14,#ffffff14) 50% 0/2px 100% no-repeat,linear-gradient(#ffffff14,#ffffff14) 0 50%/100% 2px no-repeat,
  radial-gradient(60% 60% at 100% 0%,rgba(255,214,107,.22),transparent 70%),#0e0b28;box-shadow:0 0 0 2px #0a0718,inset 0 0 0 2px #3a3070}
.map .q{position:absolute;font-family:var(--px);font-size:.6em;color:#6d5fb8;letter-spacing:.08em;text-transform:uppercase;padding:.3em .5em}
.map .ax{position:absolute;font-family:var(--px);font-size:.62em;color:#cfc3ff;white-space:nowrap}
.map .ax.xl{left:0;bottom:-1.7em}.map .ax.xr{right:0;bottom:-1.7em}
.map .ax.yb{left:-1.6em;bottom:0;transform-origin:0 100%;transform:rotate(-90deg) translateY(-.2em)}
.map .ax.yt{left:-1.6em;top:0;transform-origin:0 0;transform:rotate(-90deg) translate(-100%,-.2em)}
.map .dot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:.3em;font-family:var(--dot);font-size:.62em;white-space:nowrap;color:#e6ddff;text-shadow:1px 1px 0 #0a0718}
.map .dot i{width:9px;height:9px;background:#9d93c6;box-shadow:0 0 0 2px #0a0718;flex:none}
.map .dot.left{flex-direction:row-reverse}
.map .me{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;font-family:var(--px);font-weight:700;color:#ffe08a;font-size:.8em;text-shadow:2px 2px 0 #3a1a0a;white-space:nowrap}
.map .me canvas{width:44px;height:44px;image-rendering:pixelated;filter:drop-shadow(0 0 10px rgba(255,214,107,.9));animation:mebob 1.6s steps(4) infinite}
@keyframes mebob{50%{transform:translateY(-3px)}}
.clist{list-style:none;padding:0;margin:0;display:grid;gap:.28em;font-size:.74em}
.clist li b{font-family:var(--px);font-weight:600;color:#ffe9b0}
.clist li .cite{display:inline;margin-left:.4em;font-size:.82em}
.wedge{display:grid;grid-template-columns:1fr 1fr;gap:.35em;margin-top:.6em}
.wedge span{font-family:var(--px);font-size:.72em;padding:.35em .5em;color:#1a0e22;background:#ffd66b;box-shadow:0 0 0 2px #0a0718}

/* ── business ── */
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6em;margin:.5em 0}
.cards3 div{padding:.6em .8em;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 2px rgba(201,164,242,.45)}
.cards3 b{display:block;font-family:var(--px);color:#e5d2ff;margin-bottom:.2em}
.learn{display:flex;flex-wrap:wrap;gap:.4em;margin:.4em 0}.learn span{padding:.2em .6em;background:#0e0b28;box-shadow:inset 0 0 0 2px #6d5fb8;font-size:.9em}

/* ── traction ── */
.trac{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.1em}
.trac h3{font-family:var(--px);color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.8em;margin:.2em 0 .4em}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:.35em}
.checks li{position:relative;padding-left:1.5em}
.checks li::before{content:"";position:absolute;left:.1em;top:.35em;width:.7em;height:.7em;background:#8fe08a;box-shadow:0 0 0 2px #0a0718;clip-path:polygon(0 55%,15% 40%,40% 62%,85% 10%,100% 25%,40% 92%)}
.road{list-style:none;padding:0;margin:0;display:grid;gap:.3em;position:relative}
.road li{display:grid;grid-template-columns:1.3em 1fr auto;gap:.1em .6em;align-items:center;padding:.3em .5em;background:rgba(0,0,0,.2)}
.road li i{grid-row:span 2;width:.9em;height:1.1em;background:#ffd66b;box-shadow:0 0 0 2px #0a0718,0 0 10px rgba(255,214,107,.6)}
.road li b{font-family:var(--px);font-weight:600}
.road li small{grid-column:2;color:var(--dim);font-size:.8em}
.road li .tbd{grid-row:1;grid-column:3;font-family:var(--px);font-size:.7em;color:#1a0e22;background:#ff9f6b;padding:0 .4em;box-shadow:0 0 0 2px #0a0718}

/* ── team ── */
.team{display:grid;grid-template-columns:1fr 1fr;gap:1.4em;margin:.4em 0}
.pcard{display:grid;justify-items:center;gap:.4em}
.pcard .ph0{position:relative;width:100%;aspect-ratio:600/476;max-height:calc(100cqh - 640px);min-height:140px;padding:8px;background:#2a160a;box-shadow:0 0 0 3px #0a0718,0 0 0 6px #e0ae42,0 0 0 9px #7a4e14,0 0 0 12px #0a0718,0 0 50px 6px rgba(255,190,110,.22)}
.pcard img{display:block;width:100%;height:100%;object-fit:cover}
.pcard .nm{font-family:var(--px);font-weight:700;font-size:1.3em;color:#ffe08a;margin-top:.3em;text-shadow:2px 2px 0 #3a1a0a}
.pcard .rl{font-family:var(--px);font-size:.75em;letter-spacing:.14em;text-transform:uppercase;color:#e6ddff}
.pcard .ln{font-size:.85em;color:var(--dim);text-align:center}
.quote{font-size:.95em;color:#ffe9b0;text-align:center;margin:.6em 1em .2em}
.credit{font-size:.8em;color:var(--dim);text-align:center}

/* ── ask ── */
.amount{font-family:var(--px);font-weight:700;font-size:2.1em;color:#b6f07a;text-shadow:3px 3px 0 #1d3a0a;margin:.1em 0}
.thesis{padding:.4em .8em;margin:.5em 0;box-shadow:inset 0 0 0 2px rgba(255,214,107,.5);background:rgba(0,0,0,.25)}
.uses{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45em;margin:.5em 0}
.uses div{padding:.45em .5em;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 2px rgba(168,168,255,.4);font-size:.82em}
.uses b{display:block;font-family:var(--px);color:#d6d6ff;margin-bottom:.15em}
.succ{display:flex;flex-wrap:wrap;gap:.4em;margin-top:.3em}.succ span{font-family:var(--px);font-size:.8em;padding:.2em .6em;background:#0e0b28;box-shadow:inset 0 0 0 2px #8fe08a;color:#caf5c6}

/* ── closing card ── */
#closing{position:absolute;z-index:40;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:10cqh;pointer-events:none;text-align:center}
#closing[hidden]{display:none}
#closing::before{content:"";position:absolute;inset:0 0 40% 0;background:radial-gradient(60% 80% at 50% 10%,rgba(6,4,16,.8),transparent 75%);z-index:-1}
#closing .logo .t{font-size:clamp(3rem,10cqw,6.5rem)}
#closing .logo .k{font-size:clamp(1rem,2.2cqw,1.4rem)}
#closing .jh{font-family:var(--px);font-weight:700;font-size:clamp(2rem,6cqw,4.6rem);color:#ffe08a;line-height:1.05;text-shadow:3px 0 #8a3f14,-3px 0 #8a3f14,0 3px #8a3f14,0 -3px #8a3f14,7px 7px 0 #140b22}
#closing .logo{align-items:center;margin-top:18px}
#closing .sub{font-family:var(--px);letter-spacing:.4em;color:#f2c6ff;text-shadow:2px 2px 0 #1a0a2a;margin-top:10px}
#closing .contact{font-family:var(--dot);color:#e6ddff;margin-top:18px;text-shadow:2px 2px 0 #0a0718}

/* ── overlays: chapter board, notes ── */
#chboard{z-index:75;left:50%;transform:translateX(-50%);top:58px;bottom:auto;max-height:calc(100% - 78px);width:min(1000px,calc(100% - 20px))}
#chboard .tiles{grid-template-columns:repeat(5,minmax(0,1fr))}
#chboard .tile .num{font-family:var(--px);color:var(--dim);font-size:.75rem}
#chboard .tile .kj{width:64px;height:64px;display:grid;place-items:center;font-size:2.2rem;color:var(--c,#ffd66b);text-shadow:2px 2px 0 #0a0718}
#chboard .tile canvas{width:64px;height:64px;image-rendering:pixelated}
#chboard .tile.cur{box-shadow:inset 0 0 0 2px var(--gold)}
#chboard .tname{font-size:.85rem;text-align:center}
#pnotes{position:absolute;z-index:80;left:12px;bottom:12px;width:min(34rem,calc(100% - 24px));max-height:40%;overflow:auto;background:#f1ead8;color:#241d2e;padding:12px 16px;font-family:system-ui,-apple-system,sans-serif;font-size:.9rem;line-height:1.45;box-shadow:0 0 0 3px #1a0e22,6px 6px 0 rgba(0,0,0,.35)}
#pnotes h4{margin:0 0 4px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#7a5b16}
#pnotes[hidden]{display:none}
.autohand{position:absolute;z-index:66;pointer-events:none;transform:translate(-6px,-4px);transition:left .5s cubic-bezier(.3,.7,.3,1),top .5s cubic-bezier(.3,.7,.3,1);filter:drop-shadow(2px 3px 0 rgba(0,0,0,.4))}
.autohand.press{transform:translate(-6px,2px)}
.autohand[hidden]{display:none}

/* ── print / static fallback ── */
#print{position:fixed;inset:0;z-index:200;overflow:auto;background:#f4efe4;color:#1d1628;font-family:Georgia,"Times New Roman",serif}
#print[hidden]{display:none}
#print .bar{position:sticky;top:0;display:flex;gap:10px;align-items:center;padding:10px 18px;background:#1d1628;color:#f4efe4;font-family:system-ui,sans-serif;font-size:14px;z-index:2}
#print .bar button{font:inherit;padding:6px 12px;cursor:pointer;border:0;background:#ffd66b;color:#1d1628}
#print .page{max-width:1100px;margin:22px auto;background:#fff;padding:22px 28px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
#print .page h2{font-family:"Pixelify Sans",system-ui,sans-serif;margin:0 0 10px;font-size:22px}
#print .page img{width:100%;display:block;border:1px solid #ddd;margin-bottom:10px}
#print .page .sn{font-size:14px;color:#3b3050;margin:6px 0}
#print .page .sn b{font-family:system-ui,sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a5b16;margin-right:6px}
#print .page .cites{font-size:11px;color:#555;font-family:system-ui,sans-serif}
@media print{
  @page{size:landscape;margin:10mm}
  body{overflow:visible!important;background:#fff!important}
  #app{display:none!important}
  #print{position:static;overflow:visible;background:#fff}
  #print .bar{display:none}
  #print .page{box-shadow:none;margin:0 auto;padding:0 6mm;page-break-after:always;break-after:page;max-width:none}
  #print .page img{max-height:150mm;width:auto;max-width:100%;margin:0 auto 6px}
}

/* ═════════ v2 · Spot-on Limburg ═════════ */
.pp h2.big{font-size:2.3em;line-height:1.15;margin:.3em 0 .5em}
.pp .rc{font-family:var(--dot)}
/* speed-date clock + nav tag */
#pnav .clock{font-family:var(--px);color:#1a0e22;background:#8fe08a;padding:2px 8px;box-shadow:0 0 0 2px #0a0718;font-size:.85rem}
#pnav .clock.warn{background:#ffd66b}#pnav .clock.over{background:#ff7a6b;animation:blink 1s steps(2) infinite}
#pnav .clock[hidden]{display:none}
#pnav em.sd{font-style:normal;color:#8fe08a;margin-right:8px;letter-spacing:.1em}
.speed #pnav{opacity:.8}
#chboard .tile.off{opacity:.35}
/* price ladder */
.ladder{display:grid;gap:.22em;margin:.3em 0 .6em}
.rung{display:grid;grid-template-columns:9.6em minmax(0,1fr) minmax(0,11em);gap:.7em;align-items:center;font-size:.82em}
.rung .nm{text-align:right;font-family:var(--px);color:#e6ddff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rung .bar{position:relative;display:flex;align-items:center;gap:.5em;height:1.25em}
.rung .bar i{display:block;height:100%;background:repeating-linear-gradient(90deg,#6d5fb8 0 6px,#5a4ea0 6px 12px);box-shadow:0 0 0 2px #0a0718}
.rung .bar b{font-family:var(--px);font-weight:600;color:#fff4d6;white-space:nowrap}
.rung .rc{font-size:.66em;color:#9d93c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rung.me .nm{color:#ffe08a;font-weight:700}
.rung.me .bar i{background:repeating-linear-gradient(90deg,#ffe08a 0 6px,#f4c547 6px 12px);box-shadow:0 0 0 2px #0a0718,0 0 16px rgba(255,214,107,.9);animation:charge .5s steps(2) 4}
.rung.me .bar b{color:#ffe08a;font-size:1.25em}
.rung.me{padding:.15em 0;background:rgba(255,214,107,.1);box-shadow:inset 0 0 0 2px rgba(255,214,107,.6)}
.rung.tutor .bar i{background:repeating-linear-gradient(90deg,#ff9f6b 0 6px,#e0784a 6px 12px)}
.rung.tutor .nm,.rung.tutor .bar b{color:#ffc4a0}
.mline{font-size:1.02em;margin-top:.5em;padding:.4em .7em;box-shadow:inset 3px 0 0 var(--gold);background:rgba(255,214,107,.06)}
.tiles4 .big{font-size:1.7em}
.tiles4.three{grid-template-columns:repeat(3,minmax(0,1fr))}
/* competition 2×2, visual */
.comp2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.2em;align-items:start}
.map2{position:relative;aspect-ratio:1.25/1;max-height:calc(100cqh - 400px);margin:0 0 2.2em 2.2em;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;box-shadow:0 0 0 2px #0a0718,inset 0 0 0 2px #3a3070;background:#0e0b28}
.map2 .quad{position:relative;padding:.4em .6em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.map2 .quad b{font-family:var(--px);font-weight:600;font-size:.6em;letter-spacing:.06em;text-transform:uppercase;color:#6d5fb8}
.map2 .q1{background:rgba(255,159,107,.07)} .map2 .q3{background:rgba(127,192,255,.06)} .map2 .q4{background:rgba(111,224,208,.06);align-self:stretch}
.map2 .q3,.map2 .q4{display:flex;align-items:flex-end}
.map2 .q2{text-align:right;background:radial-gradient(80% 80% at 80% 30%,rgba(255,214,107,.28),transparent 75%)}
.map2 .q2 b{color:#ffe08a}.map2 .q2 small{position:absolute;right:.6em;bottom:.4em;font-family:var(--px);font-size:.55em;color:#ffd66b;opacity:.8;animation:blink 1.4s steps(2) infinite}
.chip2{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:.35em;font-family:var(--px);font-size:.62em;white-space:nowrap;color:#e6ddff;text-shadow:1px 1px 0 #0a0718;z-index:2}
.chip2.left{flex-direction:row-reverse}
.chip2 i,.clist2 i{font-style:normal;display:grid;place-items:center;width:2.1em;height:2.1em;font-family:var(--px);font-weight:700;font-size:1em;color:#1a0e22;background:var(--k);box-shadow:0 0 0 2px #0a0718,3px 3px 0 #0a0718}
.me2{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;z-index:3}
.me2 canvas{width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 0 14px rgba(255,214,107,.95));animation:mebob 1.6s steps(4) infinite}
.me2 b{font-family:var(--px);font-weight:700;color:#ffe08a;font-size:.85em;text-shadow:2px 2px 0 #3a1a0a;white-space:nowrap}
.map2 .axx{position:absolute;left:0;right:0;bottom:-1.9em;text-align:center;font-family:var(--px);font-size:.62em;color:#cfc3ff;white-space:nowrap}
.map2 .axy{position:absolute;left:-1.8em;top:50%;transform:translate(-50%,-50%) rotate(-90deg);font-family:var(--px);font-size:.62em;color:#cfc3ff;white-space:nowrap}
.clist2{list-style:none;padding:0;margin:0;display:grid;gap:.3em;font-size:.8em}
.clist2 li{display:grid;grid-template-columns:auto auto 1fr;gap:.55em;align-items:center}
.clist2 i{width:1.9em;height:1.9em;font-size:.8em}
.clist2 b{font-family:var(--px);font-weight:600;color:#ffe9b0;white-space:nowrap}
.clist2 span{color:var(--dim);font-size:.9em}
.wedge{grid-template-columns:1fr 1fr;margin-top:.7em}.wedge span{font-size:.75em;text-align:center}
/* traction v2 */
.road li{grid-template-columns:1.2em auto 1fr}
.road li .when{grid-column:2;grid-row:1;font-family:var(--px);font-size:.8em;color:#1a0e22;background:#8fe08a;padding:0 .45em;box-shadow:0 0 0 2px #0a0718;white-space:nowrap}
.road li b{grid-column:3;grid-row:1}
.road li small{grid-column:2 / 4}
.price{margin-top:.8em;font-family:var(--px);font-size:1.05em;color:#ffe9b0}.price b{color:#ffe08a;font-size:1.25em}
.ticks{list-style:none;padding:0;margin:.3em 0;display:grid;gap:.35em}
.ticks li{position:relative;padding-left:1.3em}
.ticks li::before{content:"";position:absolute;left:.1em;top:.45em;width:.55em;height:.55em;background:var(--gold);box-shadow:0 0 0 2px #0a0718}
/* also in the works */
.also{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.4em;align-items:start}
.vidframe{position:relative;height:calc(100cqh - 420px);max-height:34em;aspect-ratio:9/16;padding:8px;background:#2a160a;box-shadow:0 0 0 3px #0a0718,0 0 0 6px #b04a2a,0 0 0 9px #5a1a10,0 0 0 12px #0a0718,0 0 60px 8px rgba(255,90,40,.25);margin:10px 10px 1.4em}
.vidframe video{display:block;width:100%;height:100%;object-fit:cover;background:#000;cursor:pointer}
.vidframe .vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3em;height:3em;border:0;cursor:pointer;font-size:1.3em;color:#1a0e22;background:#ffd66b;box-shadow:0 0 0 3px #0a0718,0 0 20px rgba(255,214,107,.8);font-family:var(--px)}
.vidframe .vplay[hidden]{display:none}
.vidframe .nameplate2{position:absolute;left:50%;bottom:-.9em;transform:translateX(-50%);white-space:nowrap;font-family:var(--px);font-size:.7em;letter-spacing:.1em;color:#ffe9b0;padding:.2em .8em;background:var(--wood) 0 0/128px 32px;box-shadow:0 0 0 2px #0a0718}
.alsotext{display:grid;gap:.5em;font-size:.92em}
.proj .ticks{gap:.15em;font-size:.92em}
.proj h2{margin:0 0 .05em}.proj h3{font-family:var(--px);font-size:1.4em;margin:.1em 0 .2em;color:#bfe6ff}
.proj .lede{margin-bottom:.3em}
.press{display:flex;flex-wrap:wrap;gap:.4em;margin-top:.4em}
.press span{display:grid;padding:.3em .6em;background:rgba(0,0,0,.28);box-shadow:inset 0 0 0 2px rgba(255,159,107,.55)}
.press b{font-family:var(--px);font-weight:600;color:#ffc4a0;font-size:.8em}.press small{font-size:.62em;color:var(--dim)}
.proj.sb{padding-top:.6em;border-top:2px dotted rgba(255,255,255,.12)}
.proj.sb .press span{box-shadow:inset 0 0 0 2px rgba(110,200,255,.5)}.proj.sb .press b{color:#bfe6ff}
/* limburg */
.lim{display:grid;grid-template-columns:1fr 1fr;gap:1em;margin:.3em 0 .8em}
.lim .col{padding:.6em .9em;background:rgba(0,0,0,.22)}
.lim .bring{box-shadow:inset 0 0 0 2px rgba(143,224,138,.55)}.lim .look{box-shadow:inset 0 0 0 2px rgba(255,214,107,.6)}
.lim h3{font-family:var(--px);font-size:1.2em;margin:.1em 0 .3em;letter-spacing:.06em}
.lim .bring h3{color:#aef0a8}.lim .look h3{color:#ffe08a}
.funders{display:flex;flex-wrap:wrap;gap:.5em;justify-content:center}
.funders span{font-family:var(--px);font-size:.75em;padding:.3em .8em;color:#e6ddff;background:#0e0b28;box-shadow:inset 0 0 0 2px #6d5fb8}
/* closing contact card */
#closing .card{display:grid;gap:.2em;margin-top:22px;padding:14px 28px;pointer-events:auto;user-select:text;-webkit-user-select:text;background:rgba(14,11,40,.85);box-shadow:0 0 0 3px #0a0718,0 0 0 6px #e0ae42,0 0 0 9px #0a0718;font-size:clamp(1rem,2.4vh,1.5rem)}
#closing .card b{font-family:var(--px);color:#ffe08a;font-size:1.3em}
#closing .card span{color:#e6ddff}#closing .card .ln{font-family:var(--dot);color:#fff4d6}

/* v2b: Grey Night card + QR contact */
.proj.gn{display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);gap:.9em;align-items:start;padding-top:.6em;border-top:2px dotted rgba(255,255,255,.12)}
.proj.gn img{width:100%;display:block;box-shadow:0 0 0 2px #0a0718,0 0 0 4px #f3a93a,0 0 0 6px #0a0718}
.proj.gn h3{color:#f3b54a}.proj.gn p{margin:.2em 0;font-size:.9em}
.proj.gn .press span{box-shadow:inset 0 0 0 2px rgba(243,169,58,.55)}.proj.gn .press b{color:#f7c77a}
.proj .status{font-family:var(--px);font-size:.72em;color:#9d93c6;letter-spacing:.04em}
.proj.sb p{font-size:.9em;margin:.2em 0}
#closing .contactrow{display:flex;gap:clamp(18px,3vw,48px);align-items:center;justify-content:center;flex-wrap:wrap;margin-top:clamp(12px,3vh,36px);pointer-events:auto}
#closing .qrwrap{display:grid;justify-items:center;gap:10px;padding:14px;background:#fff8ea;box-shadow:0 0 0 3px #0a0718,0 0 0 6px #e0ae42,0 0 0 9px #0a0718,0 0 40px rgba(255,214,107,.5)}
#closing .qr img,#closing .qr canvas{display:block;width:clamp(180px,34vh,380px)!important;height:auto!important;image-rendering:pixelated}
#closing .qurl{font-family:var(--px);font-weight:700;color:#1a0e22;font-size:clamp(1rem,2.6vh,1.6rem);user-select:text;-webkit-user-select:text}
#closing .card{margin-top:0;text-align:left;font-size:clamp(1rem,2.6vh,1.6rem)}
#closing .card .k{font-family:var(--px);letter-spacing:.3em;color:#f2a4c6;font-size:.7em}
#closing .card .sub{font-family:var(--px);letter-spacing:.35em;color:#f2c6ff;font-size:.65em;margin-top:.4em}
#closing{padding-top:6cqh}

.win.pp{scrollbar-width:none}

/* ═════════ v3 · THREE DOORS hub ═════════ */
.win.pp.hub{left:24%;font-size:clamp(13px,2.05vh,24px)}
.win.pp.full{left:2.2vw}
.hubhead{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:1.2em;align-items:start}
.hubhead .who{display:flex;gap:.8em;align-items:flex-start}
.sbmark{width:3.6em;height:auto;flex:none;margin-top:.3em;filter:drop-shadow(0 0 8px rgba(255,112,93,.5))}
.hubhead h2{margin:.05em 0 .25em}
.studio{display:grid;gap:.1em}.studio b{font-family:var(--px);color:#ff9f8e;letter-spacing:.06em}.studio span{color:var(--dim);font-size:.85em}
.intro p{margin:.1em 0 .45em;font-size:.95em}
.intro .press span{box-shadow:inset 0 0 0 2px rgba(255,112,93,.5)}.intro .press b{color:#ffc4b8}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1em;margin-top:.8em}
.door{position:relative;display:grid;justify-items:center;gap:.2em;padding:0 0 .7em;border:0;cursor:pointer;color:var(--ink);text-align:center;
  background:linear-gradient(180deg,#221a4e,#120e30);box-shadow:0 0 0 3px #0a0718,0 0 0 6px var(--c),0 0 0 9px #0a0718,0 8px 0 9px rgba(0,0,0,.35);transition:transform .15s steps(3)}
.door .lintel{display:block;width:calc(100% + 24px);height:.9em;margin:0 -12px .4em;background:#b0302a;box-shadow:0 0 0 3px #0a0718,inset 0 3px 0 #e0544a;position:relative}
.door .lintel i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-style:normal;font-family:var(--px);font-weight:700;width:1.8em;height:1.8em;display:grid;place-items:center;color:#1a0e22;background:var(--c);box-shadow:0 0 0 3px #0a0718}
.door .art{display:block;width:calc(100% - 1.2em);aspect-ratio:4/3;overflow:hidden;box-shadow:0 0 0 2px #0a0718,0 0 0 4px rgba(255,255,255,.12)}
.door .art img{width:100%;height:100%;object-fit:cover;display:block}
.door b{font-family:var(--px);font-weight:700;font-size:1.35em;letter-spacing:.06em;color:var(--c);text-shadow:2px 2px 0 #0a0718;margin-top:.2em}
.door small{font-size:.82em;color:#e6ddff;padding:0 .6em;line-height:1.3}
.door:focus-visible,.door.pressed{transform:translateY(-6px);box-shadow:0 0 0 3px #0a0718,0 0 0 6px var(--c),0 0 0 9px #0a0718,0 0 30px 6px color-mix(in srgb,var(--c) 60%,transparent)}
@media (hover:hover){.door:hover{transform:translateY(-6px);box-shadow:0 0 0 3px #0a0718,0 0 0 6px var(--c),0 0 0 9px #0a0718,0 0 30px 6px color-mix(in srgb,var(--c) 60%,transparent)}}
.pick{text-align:center;font-family:var(--px);color:var(--gold);letter-spacing:.2em;margin:.9em 0 0;animation:blink 1.4s steps(2) infinite}
.doorsback{border:0;cursor:pointer;font-family:var(--px);font-size:.9em;color:#e6ddff;background:#0e0b28;box-shadow:inset 0 0 0 2px #6d5fb8;padding:.4em .9em;min-height:44px}
.doorsback.big{margin-top:18px;font-size:clamp(1rem,2.4vh,1.4rem);pointer-events:auto}
/* Grey Night door */
.gnwrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.4em;align-items:start}
.gnart{display:grid;gap:.8em}
.gnart img{width:100%;display:block;box-shadow:0 0 0 3px #0a0718,0 0 0 6px #f3a93a,0 0 0 9px #0a0718}
.gntext h2{color:#f7b23e;text-shadow:2px 0 #5a3408,-2px 0 #5a3408,0 2px #5a3408,0 -2px #5a3408,5px 5px 0 #140b22}
.gntext .front{font-size:1.08em;color:#fff4d6;padding:.4em .7em;box-shadow:inset 3px 0 0 #f3a93a;background:rgba(243,169,58,.08)}
.shows{list-style:none;padding:0;margin:.5em 0;display:grid;gap:.35em}
.shows li{display:grid;gap:.05em;padding:.35em .6em;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 1px rgba(243,169,58,.35)}
.shows b{font-family:var(--px);color:#f7c77a}.shows span{color:var(--dim);font-size:.88em}
.gntext .status{font-family:var(--px);font-size:.85em;color:#cfc3ff}
.gnbegin{font-size:1.15em!important;background:#f3a93a!important;color:#1a0e22!important;padding:.5em 1.1em .5em 1.1em!important;box-shadow:0 0 0 3px #0a0718,0 0 18px rgba(243,169,58,.6)}
.gnbegin::before{display:none}
/* Shadowland door */
.slwrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.6em;align-items:start}
.vidframe.sl{height:calc(100cqh - 250px);max-height:none;margin:12px 12px 1.4em}
.sltext h2{color:#bfe6ff;text-shadow:2px 0 #10304a,-2px 0 #10304a,0 2px #10304a,0 -2px #10304a,5px 5px 0 #140b22;margin-bottom:0}
.sltext h3{font-family:var(--px);color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-size:.8em;margin:.7em 0 .25em}
.sltext .book{margin:.1em 0 .2em}
.sltext .press{display:grid;grid-template-columns:1fr 1fr;gap:.35em}
.sltext .press span{box-shadow:inset 0 0 0 2px rgba(110,200,255,.45)}.sltext .press b{color:#bfe6ff;font-size:.82em}
.sltext .series{font-size:.88em;color:#e6ddff;margin:.4em 0}
.plan{list-style:none;padding:0;margin:0;display:grid;gap:.35em}
.plan li{display:grid;grid-template-columns:1.5em auto 1fr;gap:.1em .6em;align-items:center;padding:.35em .6em;background:rgba(0,0,0,.25)}
.plan li i{grid-row:span 2;font-style:normal;font-family:var(--px);font-size:1.4em;color:var(--gold)}
.plan li .when{font-family:var(--px);font-size:.8em;color:#1a0e22;background:#6ec8ff;padding:0 .45em;box-shadow:0 0 0 2px #0a0718;white-space:nowrap}
.plan li b{font-family:var(--px);font-weight:600;color:#fff4d6}
.plan li small{grid-column:2 / 4;color:var(--dim);font-size:.82em}
.plan li:last-child{box-shadow:inset 0 0 0 2px rgba(255,214,107,.6);background:rgba(255,214,107,.07)}
.win.pp.full{max-height:calc(100% - 80px)}
.door .art{aspect-ratio:16/9}
.door .art img{object-position:center 35%}
.win.pp.hub{font-size:clamp(12.5px,1.95vh,23px)}
.doors{margin-top:1em}
.gnart img{max-height:calc(50cqh - 90px);object-fit:cover;object-position:top}
.vidframe.sl{height:calc(100cqh - 175px)}
.sltext{font-size:.9em}
@media (max-height:820px){ .intro .press{display:none} .hubhead h2{font-size:1.7em} .doors{margin-top:.6em} .pick{margin-top:.5em} }
#closing .card .sbk{display:flex;align-items:center;gap:8px;color:#ff9f8e}#closing .card .sbk img{width:1.6em}

/* ═════════ v4 · overlays outside the pixel world ═════════ */
#ov{position:fixed;inset:0;z-index:300}
#ov[hidden]{display:none}
body.ovon #app{visibility:hidden}

/* ── the Superboo front door (palette + type from superboo-studios.com styles.css) ── */
.sbhub{--ink:#12343b;--mist:#dcebe8;--mist-light:#edf5f2;--blue:#89bccc;--coral:#ff705d;--acid:#d8ef72;--night:#0c2026;
  background:#030607;color:var(--mist-light);font-family:Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;overflow:auto;
  -webkit-font-smoothing:antialiased;user-select:text;-webkit-user-select:text}
.sbhub .mk{display:block;fill:none;stroke:var(--coral);stroke-width:2.4;stroke-linejoin:miter}
.sb-logo{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:22px;pointer-events:none;transition:opacity .7s ease,transform .7s ease}
.sb-logo .mk{width:clamp(120px,18vh,210px);height:auto;overflow:visible}
.sb-logo .mk path{stroke-dasharray:190;stroke-dashoffset:190}
.sb-word{font-weight:800;letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(1.6rem,4.2vh,2.8rem);color:var(--mist-light);opacity:0;display:flex;gap:.45em;align-items:baseline}
.sb-word small{font-size:.32em;letter-spacing:.3em;font-weight:700;color:var(--blue)}
.sbhub.intro .sb-logo .mk path{animation:sbdraw 1.3s cubic-bezier(.6,.05,.3,1) forwards}
.sbhub.intro .sb-logo .mk path:nth-child(2){animation-delay:.28s}
.sbhub.intro .sb-logo .mk path:nth-child(3){animation-delay:.56s}
.sbhub.intro .sb-logo .mk{animation:sbglow 1.1s ease 1.6s forwards}
.sbhub.intro .sb-word{animation:sbfade .9s ease 1.55s forwards}
@keyframes sbdraw{to{stroke-dashoffset:0}}
@keyframes sbglow{0%{filter:none}50%{filter:drop-shadow(0 0 22px rgba(255,112,93,.95))}100%{filter:drop-shadow(0 0 8px rgba(255,112,93,.45))}}
@keyframes sbfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sb-body{opacity:0;pointer-events:none;min-height:100%;display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(14px,2.6vh,30px);
  padding:clamp(18px,3.2vh,40px) clamp(24px,4vw,72px);transition:opacity .8s ease .15s}
.sbhub.rest .sb-logo{opacity:0;transform:scale(.92)}
.sbhub.rest .sb-body{opacity:1;pointer-events:auto}
.sb-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:clamp(10px,1.6vh,18px);border-bottom:1px solid rgba(237,245,242,.12)}
.sb-brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:-.04em;text-transform:uppercase;font-size:1.1rem}
.sb-brand .mk{width:40px;height:36px}.sb-brand small{font-size:9px;letter-spacing:.18em;margin-left:7px;color:var(--blue)}
.sb-kicker{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--acid);font-weight:700}
.sb-welcome{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr);gap:clamp(20px,3vw,56px);align-items:start}
.sb-welcome h1{margin:0;font-size:clamp(2.2rem,5.4vh,4.2rem);line-height:1;letter-spacing:-.045em;font-weight:800}
.sb-intro p{margin:0 0 .65em;font-size:clamp(1rem,2.1vh,1.35rem);line-height:1.5;color:#d4e3df}
.sb-intro em{color:var(--coral);font-style:normal;font-weight:600}
.sb-awards{grid-column:2;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sb-awards li{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border:1px solid rgba(137,188,204,.4);color:var(--blue)}
.sb-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,30px);align-content:start}
.sb-door{position:relative;display:grid;grid-template-rows:1fr auto;padding:0;border:1px solid rgba(237,245,242,.14);background:#0c2026;color:inherit;cursor:pointer;text-align:left;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s;font:inherit}
.sb-door .im{display:block;aspect-ratio:16/9;overflow:hidden;background:#000}
.sb-door .im img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block;transition:transform .8s ease;filter:saturate(.95)}
.sb-door .tx{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;align-items:center;padding:clamp(12px,1.8vh,20px) 18px}
.sb-door kbd{grid-row:span 2;font:800 1rem/1 Inter,Helvetica,sans-serif;width:2.1em;height:2.1em;display:grid;place-items:center;border:1px solid var(--c);color:var(--c)}
.sb-door b{font-size:clamp(1.25rem,2.7vh,1.8rem);font-weight:800;letter-spacing:-.03em}
.sb-door small{font-size:clamp(.85rem,1.7vh,1.05rem);color:#a9c3c0}
.sb-door::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.sb-door:hover,.sb-door:focus-visible,.sb-door.pressed{transform:translateY(-6px);border-color:var(--c);box-shadow:0 18px 50px -20px color-mix(in srgb,var(--c) 70%,transparent)}
.sb-door:hover::after,.sb-door:focus-visible::after,.sb-door.pressed::after{transform:scaleX(1)}
.sb-door:hover .im img{transform:scale(1.05)}
.sb-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-top:clamp(10px,1.6vh,18px);border-top:1px solid rgba(237,245,242,.12)}
.sb-me{display:grid;gap:2px}.sb-me b{font-size:1.1rem}.sb-me span{color:#a9c3c0;font-size:.9rem}.sb-me .tag{color:var(--blue)}
.sb-qr{display:flex;align-items:center;gap:14px;font-weight:700;letter-spacing:-.01em;color:var(--mist-light)}
.sb-qr .q{padding:6px;background:#edf5f2}.sb-qr .q img,.sb-qr .q canvas{display:block;width:clamp(84px,11vh,128px)!important;height:auto!important}
@media (prefers-reduced-motion:reduce){.sbhub.intro .sb-logo .mk path{animation:none;stroke-dashoffset:0}.sb-word{opacity:1}}

/* ── Grey Night / Shadowland frames ── */
.gnframe,.slframe{background:#000}
.gnframe iframe,.slframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}
.ovback{position:absolute;z-index:2;top:10px;left:10px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.55);color:rgba(255,255,255,.75);
  font:600 12px/1 "IBM Plex Mono",ui-monospace,Menlo,monospace;letter-spacing:.06em;padding:7px 10px;cursor:pointer;opacity:.55;transition:opacity .2s}
.ovback:hover,.ovback:focus-visible{opacity:1}
.ovback.r{left:auto;right:10px}
.ovback.sl{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:13px;color:#e4ddce;border-color:rgba(255,154,60,.45)}

/* ── the Shadowland plan page, in the saga's own look (from the funnel's palette) ── */
.slpage{--void:#07060a;--bone:#e4ddce;--amber:#ff9a3c;--ice:#8fd6ff;--smoke:#a99e88;
  background:radial-gradient(90% 70% at 25% 30%,#1a1020 0%,#07060a 70%);color:var(--bone);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,3.5vw,64px);padding:clamp(22px,4vh,52px) clamp(24px,4vw,72px);align-items:center;overflow:auto;user-select:text;-webkit-user-select:text}
.sl-art{height:calc(100vh - 2*clamp(22px,4vh,52px));max-height:980px;aspect-ratio:2/3;box-shadow:0 0 0 1px rgba(143,214,255,.25),0 30px 80px -20px rgba(143,214,255,.25)}
.sl-art img{width:100%;height:100%;object-fit:cover;display:block}
.sl-copy{max-width:70ch}
.sl-kicker{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--smoke)}
.slpage h1{font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-weight:600;letter-spacing:.2em;font-size:clamp(1.8rem,4.2vh,3.1rem);margin:.25em 0 .1em}
.slpage h1 b{color:var(--amber);text-shadow:0 0 24px rgba(255,154,60,.35)}
.sl-lede{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-style:italic;color:var(--ice);font-size:clamp(1rem,2.1vh,1.3rem);margin:0 0 .6em}
.slpage h3{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);margin:clamp(12px,2.2vh,26px) 0 8px;font-weight:700}
.sl-book{margin:0 0 8px;font-size:clamp(1rem,2vh,1.25rem)}
.sl-press{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sl-press li{display:grid;gap:2px;padding:9px 12px;border:1px solid rgba(228,221,206,.14);background:rgba(255,255,255,.02)}
.sl-press b{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-weight:600;font-size:clamp(.9rem,1.8vh,1.1rem)}
.sl-press span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--smoke)}
.sl-series{color:var(--smoke);font-size:.95rem;margin:10px 0 0}
.sl-plan{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sl-plan li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:10px 14px;border-left:2px solid rgba(255,154,60,.35);background:rgba(255,154,60,.04)}
.sl-plan li:last-child{border-left-color:var(--amber);background:rgba(255,154,60,.09)}
.sl-plan i{font-style:normal;color:var(--amber);font-size:1.5rem;line-height:1}
.sl-plan .when{display:inline-block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice);margin-right:10px}
.sl-plan b{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:clamp(1rem,2vh,1.25rem);font-weight:600}
.sl-plan small{display:block;margin-top:3px;color:#b9b0a0;font-size:clamp(.85rem,1.7vh,1rem);line-height:1.45}
.sl-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(14px,2.6vh,28px)}
.slb{cursor:pointer;border:1px solid rgba(143,214,255,.5);background:transparent;color:var(--bone);font:600 clamp(.95rem,1.9vh,1.15rem)/1 -apple-system,Helvetica,sans-serif;padding:14px 20px;letter-spacing:.02em;transition:background .2s,transform .2s}
.slb:hover{background:rgba(143,214,255,.12);transform:translateY(-2px)}
.slb.gold{border:0;background:linear-gradient(180deg,#ffb25e,#e0761c);color:#1a0d02}
.sl-doors{margin-top:16px;background:none;border:0;color:var(--smoke);cursor:pointer;font:inherit;font-size:.9rem;padding:6px 0}
.sl-doors:hover{color:var(--bone)}

/* the always-there way back to the three-doors menu */
#menuBtn{position:fixed;z-index:400;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;transform:translateX(-50%);
  min-height:44px;padding:0 20px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(8,10,16,.78);
  color:#fff;font:600 14px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;letter-spacing:.06em;
  cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 18px rgba(0,0,0,.45)}
#menuBtn:hover,#menuBtn:focus-visible{border-color:#fff;background:rgba(8,10,16,.92);outline:none}

/* ═════════ v5 · international pitch: gym, flip cards, island, schools, ask, 2×2 ═════════ */
/* problem: three lines that land one at a time */
.prob3{list-style:none;margin:.2em 0 .4em;padding:0;display:grid;gap:.45em}
.prob3 li{display:grid;grid-template-columns:6.2em 1fr;gap:.8em;align-items:baseline;padding:.45em .7em;background:rgba(0,0,0,.22);box-shadow:inset 3px 0 0 #ff9f6b;opacity:0;animation:rvIn .5s steps(5) forwards;animation-delay:var(--d)}
.prob3 li b{font-family:var(--px);font-weight:700;color:#ffc4a0;font-size:1.1em}
.prob3 li:last-child{box-shadow:inset 3px 0 0 #ff7a6b}
/* gym */
.gymp .spine{font-family:var(--px);font-size:1.08em;line-height:1.35;color:#fff4d6;margin:.1em 0 .3em}
.rules3{list-style:none;margin:.3em 0 .6em;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6em}
.rules3 li{display:grid;align-content:start;gap:.2em;padding:.55em .65em;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 2px rgba(143,224,138,.4)}
.rules3 i{font-style:normal;font-family:var(--px);font-size:1.3em;color:#8fe08a;line-height:1}
.rules3 b{font-family:var(--px);font-weight:600;line-height:1.2}
.rules3 small{color:var(--dim);font-size:.78em;line-height:1.3}
.canon{margin:.3em 0 0;padding:.55em .9em;font-family:var(--px);font-size:1.12em;color:#ffe08a;background:rgba(255,214,107,.08);box-shadow:inset 0 0 0 2px rgba(255,214,107,.5);text-align:center}
.canon cite{display:block;font-style:normal;font-family:var(--dot);font-size:.58em;color:#cfc3ff;margin-top:.3em;letter-spacing:.08em}
/* live: the always-visible Skip */
#skipBtn{position:fixed;z-index:400;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);right:18px;min-height:44px;padding:0 18px;border:0;cursor:pointer;
  font-family:var(--px);font-weight:700;font-size:15px;letter-spacing:.06em;color:#1a0e22;background:#ffd66b;box-shadow:0 0 0 3px #0a0718,4px 4px 0 3px #0a0718}
#skipBtn:hover,#skipBtn:focus-visible{background:#fff1b8;outline:none}
#skipBtn[hidden]{display:none}
/* unique: flip cards */
.win.pp.uniq{left:24%}
.uniq [hidden]{display:none!important}
.fcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7em;perspective:1200px}
.fcard{position:relative;cursor:pointer;min-height:clamp(150px,22cqh,250px);outline:none}
.fcard:focus-visible .fc-in{box-shadow:0 0 0 3px var(--blue)}
.fc-in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .55s steps(8)}
.fcard.flip .fc-in{transform:rotateY(180deg)}
.fc-front,.fc-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;padding:.5em .6em;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 22%,#221c5c),#151138);box-shadow:0 0 0 2px #0a0718,inset 0 0 0 3px var(--c),inset 0 0 0 5px #0a0718,4px 4px 0 2px #0a0718}
.fc-front{grid-template-rows:auto 1fr auto auto;justify-items:center;text-align:center;gap:.15em}
.fc-front kbd{justify-self:start;font-family:var(--px);font-size:.62em;color:#1a0e22;background:var(--c);padding:0 .45em;box-shadow:0 0 0 2px #0a0718}
.fc-art{display:grid;place-items:center;align-self:center;width:3.2em;height:3.2em;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 45%,transparent),transparent 70%)}
.fc-art b{font-family:var(--dot);font-size:2.1em;line-height:1;color:var(--c);text-shadow:3px 3px 0 #0a0718}
.fc-art .fc-face{image-rendering:pixelated;width:3.6em!important;height:3.6em!important}
.fc-t{font-family:var(--px);font-weight:700;line-height:1.15;color:#fff4d6}
.fc-front small{font-size:.72em;color:var(--c);line-height:1.25}
.fc-back{transform:rotateY(180deg);align-content:start;gap:.35em;background:linear-gradient(180deg,#2b2470,#151138)}
.fc-back .fc-t{color:var(--c);font-size:.95em}
.fc-b{font-size:.78em;line-height:1.35;color:#ece6ff}
.fc-btn{justify-self:start;align-self:end;margin-top:.2em;border:0;cursor:pointer;font-family:var(--px);font-size:.72em;color:#1a0e22;background:var(--c);padding:.25em .7em;box-shadow:0 0 0 2px #0a0718,3px 3px 0 2px #0a0718}
.fc-btn:hover{filter:brightness(1.15)}
.fcrow{display:flex;align-items:center;gap:1em;margin-top:.7em}
.fc-all{border:0;cursor:pointer;font-family:var(--px);font-weight:700;font-size:.85em;color:#1a0e22;background:var(--gold);padding:.3em .9em;box-shadow:0 0 0 2px #0a0718,3px 3px 0 2px #0a0718}
.fc-keys{font-size:.7em;color:var(--dim)}
/* the still island map */
.islandview{display:grid;gap:.4em}
.isle-top{display:flex;align-items:baseline;gap:.8em;flex-wrap:wrap}
.isle-top b{font-family:var(--px);color:#ffe08a;font-size:1.1em}
.isle-top span{font-size:.75em;color:var(--dim)}
.isle-back{margin-left:auto;border:0;cursor:pointer;font-family:var(--px);font-size:.75em;color:#1a0e22;background:var(--gold);padding:.2em .7em;box-shadow:0 0 0 2px #0a0718}
.isle-wrap{position:relative;aspect-ratio:160/96;width:min(100%,calc((52cqh - 80px) * 160 / 96));min-width:240px;margin:0 auto;box-shadow:0 0 0 2px #0a0718,0 0 0 4px #3a3070}
.isle{display:block;width:100%;height:100%;image-rendering:pixelated}
.isle-hall{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:.1em;border:0;background:none;cursor:pointer;padding:.2em;color:var(--c)}
.isle-hall canvas{width:clamp(30px,5.2cqh,48px)!important;height:clamp(30px,5.2cqh,48px)!important;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 #0a0718)}
.isle-hall .nm{font-family:var(--px);font-size:.6em;white-space:nowrap;color:#fff;text-shadow:1px 1px 0 #0a0718,-1px -1px 0 #0a0718,1px -1px 0 #0a0718,-1px 1px 0 #0a0718;padding:0 .3em}
.isle-hall.on canvas{filter:drop-shadow(0 0 10px var(--c)) drop-shadow(2px 2px 0 #0a0718);animation:mebob 1.6s steps(4) infinite}
.isle-hall.on .nm{background:var(--c);color:#1a0e22;text-shadow:none}
.isle-line{margin:.1em 0 0;padding:.4em .7em;font-size:.9em;background:rgba(0,0,0,.25);box-shadow:inset 3px 0 0 var(--c,#ffd66b);min-height:2.2em}
.isle-line b{font-family:var(--px);color:var(--c,#ffe08a)}
/* schools */
.schoolsp .tiles4 .t{box-shadow:inset 0 0 0 2px rgba(255,214,107,.4)}
.schoolsp .tiles4 .big{font-size:2em}
.yrs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4em;margin:.6em 0 0}
.yrs span{display:grid;justify-items:center;padding:.3em;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.yrs b{font-family:var(--px);color:#ffe08a}
.yrs small{font-size:.75em;color:var(--dim)}
.schoolsp .next{margin-top:.7em;padding:.45em .75em;box-shadow:inset 3px 0 0 #8fe08a;background:rgba(143,224,138,.07)}
/* ask */
.asks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7em;margin:.2em 0 .7em}
.asks div{display:grid;align-content:start;gap:.2em;padding:.6em .7em;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 2px rgba(255,214,107,.45)}
.asks i{font-style:normal;font-family:var(--dot);font-size:1.6em;color:var(--gold);line-height:1}
.asks b{font-family:var(--px);font-weight:700;font-size:1.1em;color:#fff4d6}
.asks small{font-size:.8em;color:var(--dim);line-height:1.3}
.askcontact{display:flex;gap:1em;align-items:center}
.askcontact .q{width:clamp(84px,15cqh,150px);aspect-ratio:1;padding:6px;background:#fff8ea;box-shadow:0 0 0 3px #0a0718,0 0 0 6px var(--gold)}
.askcontact .q img,.askcontact .q canvas{width:100%!important;height:100%!important;display:block;image-rendering:pixelated}
.askcontact div:last-child{display:grid;gap:.15em}
.askcontact .url{font-family:var(--px);font-weight:700;color:#ffe08a;font-size:1.15em}
/* market step 2: the 2×2 */
.quads{position:relative;margin:.3em 0 2.1em 2.1em}
.qgrid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;box-shadow:0 0 0 2px #0a0718,inset 0 0 0 2px #3a3070}
.qd{display:grid;align-content:start;gap:.15em;padding:.6em .75em;min-height:clamp(90px,16cqh,170px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.qd b{font-family:var(--px);font-weight:700;color:#cfc3ff}
.qd small{font-size:.78em;color:var(--dim)}
.qd em{font-size:.66em;color:#9d93c6}
.qd.q-tl{background:rgba(255,159,107,.08)}.qd.q-bl{background:rgba(127,192,255,.07)}.qd.q-br{background:rgba(111,224,208,.07)}
.qd.q-tr{justify-items:center;text-align:center;background:radial-gradient(80% 80% at 50% 40%,rgba(255,214,107,.3),transparent 75%);box-shadow:inset 0 0 0 2px rgba(255,214,107,.7)}
.qd.q-tr canvas{width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 0 14px rgba(255,214,107,.95));animation:mebob 1.6s steps(4) infinite}
.qd.q-tr b{color:#ffe08a;font-size:1.15em}
.qd.q-tr small{color:#fff4d6}
.quads .axx{position:absolute;left:0;right:0;bottom:-1.8em;text-align:center;font-family:var(--px);font-size:.62em;color:#cfc3ff;white-space:nowrap}
.quads .axy{position:absolute;left:-1.6em;top:50%;transform:translate(-50%,-50%) rotate(-90deg);font-family:var(--px);font-size:.62em;color:#cfc3ff;white-space:nowrap}
/* team of three */
.team.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1em}
.team.three .pcard .ph0{max-height:calc(100cqh - 660px)}
/* print: extra shots per chapter */
#print .page img.sub{width:49%;display:inline-block;margin-right:1%}
@media print{ #print .page img.sub{max-height:70mm;width:auto} }

/* short landscape screens (phones): give the panel the full height, the dialog floats over the scene */
@media (max-height:560px) and (orientation:landscape){
  .win.pp,.win.pp.wide,.win.pp.uniq,.win.pp.narrow{top:calc(env(safe-area-inset-top,0px) + 50px);left:30%;right:8px;width:auto;max-height:calc(100% - 58px);font-size:12px}
  .win.pp,.win.pp.wide,.win.pp.uniq,.win.pp.narrow{max-height:calc(100% - 50px - 58px)}
  #dialog{min-height:0!important;left:30%!important;right:8px!important;bottom:calc(env(safe-area-inset-bottom,0px) + 4px)!important;padding:3px 10px!important;gap:6px!important;grid-template-columns:minmax(0,1fr)!important;font-size:12px;line-height:1.35}
  #dialog #face{display:none}
  #dialog .nameplate{display:none}
  #dialog{border-width:10px!important;border-image-width:10px!important}
  #dialog #dtext{font-size:12px;line-height:1.35}
  #dialog #dmore{right:6px;bottom:4px}
  #pnav .lbl{max-width:20vw}
  .fcards{gap:.4em}
  .fcard{min-height:118px}
  .fc-front,.fc-back{padding:.35em .45em}
  .fc-art{width:2.4em;height:2.4em}.fc-art b{font-size:1.6em}
  .fc-art .fc-face{width:2.8em!important;height:2.8em!important}
  .fc-back{overflow:auto}
  .fc-b{font-size:.84em;line-height:1.25}
  .rules3{gap:.4em}
  .isle-wrap{width:min(100%,calc((100cqh - 190px) * 160 / 96))}
  #skipBtn{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 54px);right:auto;left:10px;min-height:36px;padding:0 12px;font-size:13px}
}
