.admin-tools{position:fixed;right:12px;top:12px;z-index:10;color:#39ff72;font:11px/1.65 Consolas,"Courier New",monospace;max-width:calc(100vw - 24px);color-scheme:dark}
.admin-tools button{display:block;margin-left:auto;background:#000;color:inherit;border:1px solid #23853e;padding:7px 11px;font:inherit;cursor:pointer;letter-spacing:1px}
.admin-tools button:hover,.admin-tools button[aria-expanded=true]{border-color:#39ff72}
.admin-tools section{box-sizing:border-box;width:340px;max-width:calc(100vw - 24px);margin-top:6px;background:#000;border:1px solid #23853e;padding:14px;max-height:calc(100dvh - 70px);overflow:auto;box-shadow:0 10px 35px #0009}
.admin-tools section[hidden]{display:none}.admin-tools pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 0;border-top:1px solid #123b20;padding-top:10px}
.admin-tools header{display:flex;justify-content:space-between;letter-spacing:1.5px;border-bottom:1px solid #23853e;padding-bottom:8px}
.admin-status{font-weight:bold}.admin-tools label{display:flex;gap:7px;align-items:center;cursor:pointer;font-size:10px;padding-top:10px}.admin-tools input{accent-color:#39ff72;margin:0}
.admin-metrics{display:grid;gap:9px;margin:12px 0}.admin-metric>div{display:flex;align-items:baseline;justify-content:space-between}.admin-metric strong{font-size:21px;font-weight:normal;line-height:1.2;font-variant-numeric:tabular-nums}
.admin-metric svg{display:block;width:100%;height:42px;overflow:hidden}.admin-grid{fill:none;stroke:#123b20;stroke-width:1}.admin-trace{fill:none;stroke:#39ff72;stroke-width:1.3;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.admin-tools :focus-visible{outline:1px solid #39ff72;outline-offset:3px}
.admin-quality{margin:12px 0 0;border:1px solid #123b20;padding:8px}.admin-quality legend{letter-spacing:1px}.admin-quality label{justify-content:space-between;padding-top:5px}.admin-quality input[type=number]{width:65px}.admin-quality input,.admin-quality select{background:#000;color:inherit;border:1px solid #23853e;font:inherit}.admin-quality output{display:block;color:#ffb454}.admin-quality button{margin-top:8px;padding:2px 8px}
.application-player{position:fixed;z-index:7;pointer-events:none}
.application-player[hidden]{display:none}
.application-player iframe{display:block;width:100%;height:100%;border:0;background:#101514;pointer-events:auto}


.application-player iframe{box-sizing:border-box;border-radius:var(--screen-radius,0px);overflow:hidden}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#010101;color:#fff8e9;font-family:Arial,Helvetica,sans-serif}#scene-canvas{position:fixed;inset:0;touch-action:none;display:block;width:100%;height:100%;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible{outline:2px solid #ffdc80;outline-offset:4px}[hidden]{display:none!important}
.material-ink{position:fixed;inset:0;width:100%;height:100%;z-index:42;pointer-events:none}.gpu-ink [data-ink]{color:transparent!important;text-shadow:none!important}.scene-navigation{position:fixed;inset:0 0 auto;height:96px;z-index:33;box-sizing:border-box}.scene-links{height:100%;display:flex;align-items:center;gap:18px;padding:0 128px 0 22px}.scene-links button{display:flex;align-items:center;justify-content:center;gap:2px;height:84px;padding:0 8px;border:0;background:none;color:#fff8e9;font:bold italic 22px Arial;cursor:pointer}.scene-links button span{display:block;height:42px;min-width:86px;line-height:42px}.scene-links button img{width:90px;height:60px;object-fit:contain}.scene-links .nav-portrait{width:64px;height:64px;image-rendering:pixelated}.scene-links button:hover img,.scene-links button:hover canvas{transform:translateY(-3px) rotate(-4deg)}.scene-links img,.scene-links canvas{transition:transform .2s ease}.navigation-error{position:absolute;top:100%;left:25%;width:50%;text-align:center;font-size:12px}.wall-editorial{position:fixed;z-index:3;box-sizing:border-box;background:#050505;border-radius:50%;pointer-events:none}
.rafal-layer{position:fixed;left:0;top:0;width:384px;height:330px;z-index:30;transform-origin:top left;pointer-events:none}.rafal-head{display:block;width:148px;height:148px;margin:0 auto;image-rendering:pixelated;pointer-events:none}.rafal-title{width:384px;height:100px;font:bold italic 48px/1 Arial,sans-serif;text-align:center;overflow:hidden}.rafal-actions{height:82px;display:grid;grid-template-columns:repeat(3,1fr)}.rafal-column{display:flex;flex-direction:column}.rafal-column button{height:28px;flex-shrink:0;width:128px;border:0;padding:0;background:none;color:#fff8e9;font-size:14px;font-weight:800;pointer-events:auto}.rafal-column.left button{text-align:left}.rafal-column.center button{text-align:center}.rafal-column.right button{text-align:right}
.render-orb{position:fixed;z-index:40;bottom:18px;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;border:1px solid #eee8c577;background:radial-gradient(circle at 32% 25%,#fff6ce,#b5a781 28%,#4b5651 58%,#0b1214 78%);box-shadow:0 3px 14px #0009;cursor:pointer}.render-orb[data-mode="base-wireframe"]{background:repeating-linear-gradient(45deg,transparent 0 6px,#a7ded780 7px 8px),radial-gradient(circle at 32% 25%,#829b97,#15201d 70%)}.render-orb[data-mode="shader-wireframe"]{background:repeating-linear-gradient(45deg,transparent 0 6px,#b4fff580 7px 8px),radial-gradient(circle at 32% 25%,#fff6ce,#b5a781 28%,#4b5651 58%,#0b1214 78%)}
/* Independent global controls share the navigation band. */
.presentation-controls{position:fixed;z-index:40;right:20px;top:31px;display:flex;align-items:center;gap:14px}.presentation-controls button{position:relative;inset:auto;transform:none;width:34px;height:34px;flex-shrink:0;border-radius:50%;padding:0}
@media(max-width:1000px) and (min-width:650px){.scene-links{gap:4px;padding-left:10px;padding-right:100px}.scene-links button{font-size:16px;padding:0 2px}.scene-links button img{width:62px}.scene-links button span{min-width:64px}.scene-links .nav-portrait{width:50px;height:50px}.presentation-controls{right:12px;gap:8px}}
@media(max-width:649px){.scene-navigation{height:116px}.scene-links{padding:24px 6px 0;gap:0;justify-content:space-around;box-sizing:border-box}.scene-links button{flex:1;min-width:0;flex-direction:column;gap:0;padding:0;height:88px;font-size:13px}.scene-links button img{width:72px;height:48px}.scene-links .nav-portrait{width:48px;height:48px}.scene-links button span{height:30px;line-height:30px;min-width:0;width:100%}.presentation-controls{right:12px;top:4px;gap:10px}.presentation-controls button{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.scene-links img,.scene-links canvas{transition:none}}

.language-orb{background:transparent url('./assets/ui/language-flags.png') left center/200% 100% no-repeat;border-color:transparent;image-rendering:pixelated;box-shadow:none}
.language-orb[data-locale="en"]{background-position:right center}
.light-orb{background:transparent;border:0;box-shadow:none}
.light-orb canvas{display:block;width:100%;height:100%;pointer-events:none}
.presentation-controls button{transition:filter .22s ease,opacity .22s ease}
.presentation-controls button:hover,.presentation-controls button:focus-visible{filter:brightness(1.18)}


.pile-links{position:fixed;inset:0;z-index:33;pointer-events:none}.pile-links button{position:absolute;transform:translateX(-50%);width:260px;height:48px;border:0;background:none;color:#dbb66a;font:bold italic 23px Arial;pointer-events:auto}.pile-links button:disabled{pointer-events:none}@media(max-width:699px){.pile-links button{width:170px;font-size:15px;height:40px}}

.pile-links[data-welcome="true"] button{font-size:32px;height:58px;width:320px;letter-spacing:.02em}@media(max-width:699px){.pile-links[data-welcome="true"] button{width:120px;height:44px;font-size:15px}}
.inspection-foreground{position:fixed;inset:0;width:100%;height:100%;z-index:43;pointer-events:none}
.program-sections{position:fixed;inset:0;z-index:6;pointer-events:none;overflow:hidden}
.program-directory{position:absolute;left:4%;right:4%;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:15px;color:#ddd4bc}
.program-directory button{pointer-events:auto;background:none;border:0;border-bottom:1px solid #bda16d;padding:9px 0;color:#efd299;font:inherit}
.program-sections[data-archive="true"] .program-directory{right:145px}
@media(max-width:759px){.program-sections[data-archive="true"] .program-directory{right:75px}}
.program-section{position:absolute;box-sizing:border-box;pointer-events:auto;touch-action:none;color:#efe9dd;text-align:left}
.program-sections[data-inspecting="true"] .program-section{pointer-events:none}
.program-section h1{font:bold italic 32px/1 Arial;margin:0 0 8px;height:48px;letter-spacing:-.035em}
.program-section p{font-size:14px;line-height:1.6;height:76px;margin:0 0 16px;color:#d6d1c5}
.program-meta{font:bold italic 13px Arial;margin:0 0 18px;color:#bdb6a8}.program-facts{display:flex;gap:22px}.program-facts span{display:block;min-width:70px;height:24px;line-height:24px}.program-facts span:first-child{min-width:98px}.program-technologies{height:26px;line-height:26px;font-size:12px}
.program-actions{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.program-actions a,.program-actions button{display:block;width:100%;height:32px;box-sizing:border-box;border:0;background:none;color:#eee9db;text-align:left;text-decoration:none;padding:0;font:bold italic 16px/32px Arial;cursor:pointer}.program-actions button{grid-column:1/-1;font-size:20px;height:38px}
.program-directory button{border:0;height:36px;min-width:290px;padding:0;font:bold italic 17px Arial}


@media(max-width:759px){.program-directory{font-size:10px;gap:4px}.program-directory button{min-width:205px;font-size:12px}.program-section h1{font-size:29px;height:46px}.program-section p{font-size:13px;height:80px}.program-meta{margin-bottom:12px}.program-actions a{font-size:14px}.program-actions button{font-size:18px}}



.application-player{z-index:44}


.program-cartridge-strip{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);width:min(590px,calc(100% - 32px));display:flex;align-items:flex-end;justify-content:center;gap:6px;height:66px;pointer-events:auto}
.program-cartridge-strip button{flex:1;min-width:0;max-width:80px;height:58px;padding:0;border:0;background:none;cursor:pointer;transition:transform .22s ease,filter .22s ease;filter:brightness(.55);transform:translateY(7px)}
.program-cartridge-strip img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.program-cartridge-strip button[data-visible="true"]{transform:translateY(-9px);filter:brightness(1)}
.program-cartridge-strip button:hover,.program-cartridge-strip button:focus-visible{transform:translateY(-14px);filter:brightness(1.15)}
.program-cartridge-strip button:focus-visible{outline:1px solid #d5c79e;outline-offset:3px;border-radius:3px}
@media(max-width:759px){.program-cartridge-strip{bottom:10px;gap:1px;height:46px}.program-cartridge-strip button{height:42px}}
@media(prefers-reduced-motion:reduce){.program-cartridge-strip button{transition:none}}

.application-controls{position:fixed;display:flex;align-items:center;gap:32px;pointer-events:auto;white-space:nowrap;height:44px}
.application-controls button,.application-controls a{display:block;box-sizing:border-box;min-width:200px;height:44px;padding:0 8px;background:none;border:0;text-decoration:none;text-align:center;font:bold italic 18px/44px Arial;cursor:pointer;color:#eee9db}
@media(max-width:699px){.application-controls{gap:8px}.application-controls button,.application-controls a{min-width:0;flex:1;font-size:14px}}
.program-sections[data-running="true"] .program-cartridge-strip{visibility:hidden}

.program-sections[data-inspecting="true"] .program-directory{visibility:hidden}

.program-section[data-dark-text="true"],.program-section[data-dark-text="true"] p{color:#202830}

.collection-intro{position:fixed;z-index:6;text-align:center;transform:translateY(-50%);pointer-events:none}.collection-intro[hidden]{display:none}.collection-intro canvas{width:112px;height:112px}.collection-intro p{font:italic bold 24px/1.4 Arial;max-width:700px;margin:12px auto;color:#ece8de}.collection-intro button{pointer-events:auto;background:none;border:0;height:38px;width:230px;font:bold italic 16px Arial;cursor:pointer}.collection-intro canvas{image-rendering:pixelated}@media(max-width:650px){.collection-intro canvas{width:86px;height:86px}.collection-intro p{font-size:18px;margin:4px auto}}

.program-section p{height:auto;min-height:76px;white-space:pre-line}
.program-technologies{height:auto;min-height:26px}
.program-intro{position:absolute;box-sizing:border-box;pointer-events:auto;color:#dedbd4;overflow-y:auto;scrollbar-width:thin;padding-right:8px;touch-action:pan-y}
.program-intro canvas{display:block;width:112px;height:112px;margin:0 auto 22px}
.program-intro h1{font:bold italic 27px/1.22 Arial;margin:0 0 18px}
.program-intro h2{font:bold italic 21px/1.3 Arial;margin:0 0 28px}
.program-intro p{font:14px/1.65 Arial;margin:0 0 18px}
@media(max-width:759px){.program-intro canvas{width:86px;height:86px;margin-bottom:16px}.program-intro h1{font-size:23px}.program-intro p{font-size:13px}.program-section p{min-height:80px}}
.program-meta{font:14px/1.65 Arial,sans-serif;margin:0;color:inherit}
.program-date{margin-bottom:3px}
.program-technologies{font:inherit;min-height:0;line-height:inherit;height:auto}
.program-download{display:block;color:inherit;text-decoration:none;margin-top:8px;font:inherit}
.program-download:hover,.program-actions a:hover{text-decoration:underline}
.program-actions{display:flex;flex-direction:column;gap:20px;margin-top:26px}
.program-actions button{font:bold italic 24px/1.4 Arial;min-height:42px;height:auto}
.program-actions a{font:14px/1.65 Arial,sans-serif;height:auto;min-height:26px;color:inherit}
.inspection-caption{position:fixed;box-sizing:border-box;margin:0;z-index:41;height:56px;display:flex;align-items:center;justify-content:center;text-align:center;font:bold italic 25px/1.2 Arial,sans-serif;pointer-events:none}
.inspection-caption[hidden]{display:none}
@media(max-width:759px){.inspection-caption{font-size:18px}.program-meta,.program-actions a{font-size:13px}.program-actions{gap:14px;margin-top:20px}}


.presenter-anchor{width:112px;height:112px;pointer-events:none}
.collection-intro .presenter-anchor{margin:0 auto}
.program-intro h1,.program-intro h2,.program-intro p{text-align:left}
.program-intro .presenter-anchor{margin:24px 0 0 auto}
@media(max-width:650px){.presenter-anchor{width:86px;height:86px}}
.program-actions button.material-button{height:58px;min-height:58px;text-align:center;border-radius:7px;cursor:pointer}
.material-button{background:#444;border:1px solid #aaa}
.gpu-ink .material-button{background:transparent;border:0}
.material-button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.application-controls button.material-button{height:48px;min-height:48px;border-radius:7px;text-align:center;padding:0 16px}
.program-intro h1,.program-intro h2,.program-intro p{text-align:left}
.program-reading{color:#eee9df;background:#111;border:1px solid #716951;border-radius:14px;width:min(540px,calc(100vw - 48px));max-height:calc(100dvh - 70px);padding:20px;box-sizing:border-box;font:15px/1.65 Arial}
.program-reading::backdrop{background:#000c}
.program-reading button{position:sticky;top:0;width:100%;padding:12px;background:#28251e;color:#fff;border:1px solid #9b8d69;border-radius:7px;cursor:pointer}
.program-intro-more{border:0;background:none;color:#ddd;font:14px/1.5 Arial;padding:14px 0;text-decoration:underline;cursor:pointer}
.program-intro-go{display:block;width:100%;height:54px;margin:14px 0 0;border:1px solid #8a805d;border-radius:7px;background:#1c1a13;color:#fff;font:bold italic 21px Arial;cursor:pointer}
.program-cartridge-strip{z-index:8}
@media(max-width:759px){
 .program-intro{overflow:visible;padding:0;text-align:left;touch-action:none}
 .program-intro h1{font-size:23px;min-height:74px;margin:0 0 18px}
 .program-intro h2{font-size:21px;margin:0 0 16px}
 .program-intro .presenter-anchor{margin-top:22px}
 .program-section{touch-action:pan-y;scrollbar-width:thin;overscroll-behavior:contain;padding:0 3px 8px 0}
 .program-section h1{font-size:27px;height:38px;margin-bottom:6px}
 .program-section p{font-size:13px;line-height:1.45;min-height:0;margin-bottom:14px}
 .program-meta{font-size:12px;line-height:1.5}
 .program-actions{gap:12px;margin-top:18px}
 .program-actions button.material-button{height:48px;min-height:48px;font-size:21px}
 .program-actions a{font-size:13px}
 .program-cartridge-strip{bottom:10px;padding:6px 0;height:48px}
 .program-cartridge-strip .program-strip-home{font:11px Arial;color:#eee8db;filter:none;transform:none;max-width:42px}
}

/* Sprite transport: the presenter owns its position; native inputs own interaction. */
.music-controls{position:fixed;z-index:31;width:min(310px,calc(100vw - 40px));transform:translate(-50%,-100%);color:#e9d8a2;font:12px Arial,sans-serif;pointer-events:auto;padding:4px 10px;background:radial-gradient(ellipse,rgba(0,0,0,.86),rgba(0,0,0,.35) 65%,transparent 75%)}
.music-controls[hidden]{display:none}.music-progress,.music-mixer{display:flex;align-items:center;gap:8px;min-height:38px}.music-progress output{font-variant-numeric:tabular-nums;min-width:32px}.music-progress output:last-child{text-align:right}.music-controls input{appearance:none;background:transparent;height:36px;min-width:0;margin:0;cursor:pointer;flex:1}.music-controls input::-webkit-slider-runnable-track{height:5px;border-radius:5px;background:linear-gradient(to right,#dbcb96 var(--fill),#34383c var(--fill));box-shadow:0 1px #000,0 -1px #756b50}.music-controls input::-webkit-slider-thumb{appearance:none;width:32px;height:32px;margin-top:-14px;background:url('assets/ui/music-controls.png') 0 0/96px 32px}.music-controls input::-moz-range-track{height:5px;background:#746b51}.music-controls input::-moz-range-thumb{width:32px;height:32px;border:0;background:url('assets/ui/music-controls.png') 0 0/96px 32px}.music-controls :focus-visible{outline:2px solid #e9d8a2;outline-offset:2px}.music-sprite{display:inline-block;flex-shrink:0;width:32px;height:32px;background:url('assets/ui/music-controls.png') -32px 0/96px 32px}.music-sprite.repeat{background-position:-64px 0}.music-auto{display:flex;align-items:center;gap:3px;background:none;border:0;color:inherit;font:inherit;cursor:pointer;min-height:40px;padding:0 4px}.music-auto i{width:6px;height:6px;border-radius:50%;background:#494b42;margin-left:5px}.music-auto[aria-pressed=true] i{background:#bcffc8;box-shadow:0 0 7px #6fe5a8}.music-volume{max-width:108px}

.page-loading{position:fixed;z-index:100;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(300px,75vw);padding:12px 18px;color:#e9d8a2;background:#080a0de8;border-radius:8px;font:12px Arial,sans-serif;pointer-events:none;text-align:center}.page-loading[hidden]{display:none}.page-loading span{display:block;margin-bottom:9px}.page-loading progress{display:block;appearance:none;width:100%;height:5px;border:0;background:#34383c;border-radius:4px;overflow:hidden}.page-loading progress::-webkit-progress-bar{background:#34383c}.page-loading progress::-webkit-progress-value{background:linear-gradient(90deg,#947331,#fff1ba);transition:width .2s}.page-loading progress::-moz-progress-bar{background:#dec588}.page-loading[data-error] progress{display:none}@media(prefers-reduced-motion:reduce){.page-loading progress::-webkit-progress-value{transition:none}}

/* Short phone screens use a side-by-side cartridge and scrollable description. */
@media(max-height:600px){
 .program-section{touch-action:pan-y;overscroll-behavior:contain}
 .program-section h1{font-size:24px;height:32px;margin:0 0 6px}
 .program-section p{font-size:13px;line-height:1.4;min-height:0;margin:0 0 10px}
 .program-actions{gap:10px;margin-top:12px}
 .program-intro h1,.program-intro h2{font-size:19px;min-height:0;height:auto;margin:0 0 8px}
 .program-intro .presenter-anchor{display:none}
 .program-intro-more{padding:6px 0}
 .program-intro-go{height:44px;margin:6px 0 0}
 .program-cartridge-strip{bottom:8px;height:44px}
}
@media(pointer:coarse){button,a{-webkit-tap-highlight-color:transparent}.rafal-actions button{min-height:44px}.program-cartridge-strip button{min-height:44px}}

@media(min-width:650px) and (max-width:1000px){
 .scene-links{gap:0;justify-content:space-around}
 .scene-links button{flex:1;min-width:0;flex-direction:column;font-size:14px}
 .scene-links button img{width:64px;height:42px}
 .scene-links .nav-portrait{width:42px;height:42px}
 .scene-links button span{height:30px;line-height:30px;white-space:nowrap;min-width:0;width:100%}
}

@media(pointer:coarse){.scene-navigation{background:linear-gradient(#010101 88%,transparent)}}

@media(max-width:649px){.scene-links button{font-size:clamp(11px,3.3vw,13px)}}

@media(pointer:coarse){.rafal-actions{height:max(82px,var(--presenter-touch-height,76px))}.rafal-actions button{min-height:var(--presenter-touch-height,76px)}}

/* Reserved portraits keep navigation stable while optional previews arrive. */
.nav-primitive:not([src]),.program-cartridge-strip img:not([src]){visibility:hidden}
 .rafal-progress{display:block;appearance:none;width:220px;height:4px;margin:4px auto 12px;border:0;border-radius:3px;background:#25221c;overflow:hidden}
.rafal-progress[hidden]{display:none}.rafal-progress::-webkit-progress-bar{background:#25221c}.rafal-progress::-webkit-progress-value{background:linear-gradient(90deg,#8f7132,#fff0b7);transition:width .25s}.rafal-progress::-moz-progress-bar{background:#ddc58a}
@media(prefers-reduced-motion:reduce){.rafal-progress::-webkit-progress-value{transition:none}}

/* A reserved presenter lane stays above the collection's content viewport. */
.rafal-layer[data-docked="true"]{width:min(560px,calc(100vw - 32px));height:68px}
.rafal-layer[data-docked="true"] .rafal-body{display:grid;grid-template-columns:54px minmax(0,auto);gap:0 10px;align-items:center;justify-content:center}
.rafal-layer[data-docked="true"] .rafal-body[hidden]{display:none}
.rafal-layer[data-docked="true"] .rafal-head{width:54px;height:54px;grid-row:1}
.rafal-layer[data-docked="true"] .rafal-title{width:auto;max-width:486px;height:48px;font-size:22px;line-height:1.05;text-align:left}
.rafal-layer[data-docked="true"] .rafal-progress{grid-column:2;width:100%;margin:2px 0 0}
