:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;background:#101311;color:#fff2d9}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100%;display:grid;place-items:start center;background:radial-gradient(circle at 50% 55%,#26352d,#0c1110 80%)}button,input{font:inherit}button{cursor:pointer}.camp{position:relative;width:min(100vw,600px);aspect-ratio:941/1672;isolation:isolate;overflow:hidden;box-shadow:0 15px 80px #0009}.scene{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.fire{position:absolute;left:14.5%;top:49.5%;width:31%;height:20%;pointer-events:none;mix-blend-mode:screen;transform-origin:50% 95%;opacity:.42;filter:brightness(.85);animation:idle-flame 3.8s ease-in-out infinite alternate}.fire img{width:100%;height:100%;object-fit:fill}.camp[data-state=listening] .fire{opacity:.72;animation-duration:1.9s}.camp[data-state=speaking] .fire{opacity:.95;filter:brightness(1.25);animation-duration:.48s}.camp[data-state=playing] .fire{opacity:.8;animation-duration:1.25s}.camp[data-state=returning] .fire{opacity:.48;animation-duration:2.8s}@keyframes idle-flame{from{transform:translateY(1%) scale(.94, .91) rotate(-2deg)}to{transform:translateY(-1%) scale(1.06,1.08) rotate(2deg)}}.broadcast{position:absolute;left:13.9%;top:13.7%;width:71.8%;height:28.6%;display:grid;place-items:center;overflow:hidden}.transmission{position:absolute;inset:0;background:radial-gradient(circle at 50% 75%,#8c491f 0%,#222c30 35%,#101719 80%);text-align:center;padding:8% 5%;display:flex;flex-direction:column;align-items:center;justify-content:center}.transmission[hidden],.screen-surface[hidden],.screen-close[hidden],.reply[hidden],.explore-panel[hidden]{display:none}.frequency{font:700 clamp(8px,1.55vw,13px) Arial,sans-serif;letter-spacing:.18em;color:#e6c99a}.transmission h1{font-size:clamp(23px,5vw,46px);line-height:1.05;margin:.6em 0 .16em;text-wrap:balance}.transmission p{font-size:clamp(13px,2.2vw,20px);margin:0;color:#ead2af}.signal-mark{font-size:clamp(24px,5vw,46px);color:#e7a35c;margin:.3em}.screen-controls{position:absolute;bottom:4%;left:4%;right:4%;display:flex;align-items:center;gap:2%;font:600 clamp(10px,1.8vw,16px) Arial,sans-serif}.screen-controls button{color:#fff2d9;background:#101313af;border:1px solid #bfa67d;border-radius:50%;width:clamp(30px,5.6vw,44px);height:clamp(30px,5.6vw,44px);flex:none}.screen-controls input{min-width:0;flex:1;accent-color:#df9b5b}.screen-surface{position:absolute;inset:0;background:none;border:0}.screen-close{position:absolute;right:2%;top:2%;z-index:12;padding:8px 13px;color:white;border:1px solid #e2c18d;border-radius:8px;background:#241c16e8;font:600 14px Arial,sans-serif}.status{position:absolute;left:50%;top:45.6%;width:42%;height:3.3%;display:grid;place-items:center;background:linear-gradient(100deg,#503019,#23190f 25%,#2c1c10 85%,#5a371c);border:1px solid #8e633d;border-radius:5px;color:#fff0d2;letter-spacing:.12em;text-align:center;font:700 clamp(10px,2.25vw,17px) Arial,sans-serif;text-shadow:0 1px 2px #000;white-space:nowrap}.ask{position:absolute;left:50.2%;top:50.1%;width:44%;height:5.1%;display:flex;align-items:center;background:#18191de8;border:1px solid #cfa272;border-radius:15px;box-shadow:0 3px 12px #0009}.ask input{width:100%;min-width:0;flex:1;background:transparent;border:0;outline:0;color:#fff2df;font:clamp(12px,2.25vw,18px) Arial,sans-serif}.ask input::placeholder{color:#d9d2cc}.ask button{border:0;background:none;color:#fff2dc;flex:none;width:15%;height:100%;font:clamp(16px,2.8vw,24px) Arial,sans-serif}.ask:focus-within{outline:2px solid #ffce82}.play-hit,.explore-hit,.home-hit{position:absolute;border:0;background:transparent;border-radius:10px}.play-hit{left:6%;top:76.2%;width:42.3%;height:13.3%}.explore-hit{left:51.3%;top:76.2%;width:43.5%;height:13.3%}.home-hit{left:39%;top:91.5%;width:22%;height:7%}.play-hit:focus-visible,.explore-hit:focus-visible,.home-hit:focus-visible{outline:3px solid #ffe2a4;outline-offset:-5px}.play-hit:active,.explore-hit:active{background:#f4a54833}.sound-toggle{position:absolute;right:3%;bottom:1%;font:700 clamp(8px,1.45vw,11px) Arial,sans-serif;letter-spacing:.06em;color:#ead2ad;background:#241811c9;border:1px solid #bf9463;border-radius:7px;padding:5px}.reply{position:absolute;left:7%;right:7%;top:69.8%;padding:9px 12px;background:#171914e8;border:1px solid #cb9d64;border-radius:9px;box-shadow:0 4px 22px #0008;font:clamp(12px,2.3vw,17px)/1.35 Arial,sans-serif;max-height:8.8%;overflow:auto}.explore-panel{position:absolute;inset:12% 6% 13%;z-index:8;background:#181c19f2;border:2px solid #ba8850;border-radius:16px;box-shadow:0 15px 40px #000d;padding:5%;overflow:auto}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:clamp(22px,5vw,36px);margin:0}.panel-head button{font-size:28px;color:#fff2d9;border:0;background:transparent}.explore-panel p{font:clamp(14px,2.8vw,18px) Arial,sans-serif}.explore-panel>button{display:block;width:100%;text-align:left;padding:14px;margin:14px 0;border:1px solid #a9875b;border-radius:9px;background:#392c1f;color:#fff2db;font:bold clamp(17px,3.5vw,24px) Georgia,serif}.explore-panel>button span{display:block;font:clamp(13px,2.4vw,16px) Arial,sans-serif;color:#e4d2b7;margin-top:4px}.broadcast.fullscreen{position:fixed;inset:0;z-index:20;width:100vw;height:100dvh;background:#101719}.broadcast.fullscreen .transmission{padding:10%}.broadcast.fullscreen .screen-controls{bottom:5%;left:5%;right:5%;gap:12px;font-size:16px}.broadcast.fullscreen .transmission h1{font-size:clamp(34px,9vw,85px)}.broadcast.fullscreen .frequency{font-size:clamp(12px,3vw,20px)}.broadcast.fullscreen .transmission p{font-size:clamp(18px,4vw,28px)}.broadcast.fullscreen .screen-controls button{width:48px;height:48px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:601px){body{padding:24px}}@media(max-width:380px){.status{letter-spacing:.04em}.ask{border-radius:8px}}@media(prefers-reduced-motion:reduce){.fire{animation:none!important;transform:none!important}.camp[data-state=speaking] .fire{opacity:.8}}@media(max-height:600px) and (orientation:landscape){.camp{width:min(70vh,600px)}}
/* Recipe visuals use the audio clock; only the current still has a CSS camera move. */
.wonderboard{position:absolute;inset:0;overflow:hidden;background:#142024}
.wonderboard[hidden],#clip-note[hidden]{display:none}
.wonderboard img{width:100%;height:100%;object-fit:cover;display:block;animation:wonder-drift 25s ease-in-out alternate infinite;animation-play-state:paused}
.camp[data-state=playing] .wonderboard img,.camp[data-state=speaking] .wonderboard img{animation-play-state:running}
.wonderboard img[data-motion=slow-pan-right]{animation-name:wonder-pan}
.wonderboard img[data-motion=slow-push-out]{animation-name:wonder-out}
.wonderboard img[data-motion=still]{animation:none}
@keyframes wonder-drift{from{transform:scale(1)}to{transform:scale(1.065)}}
@keyframes wonder-pan{from{transform:scale(1.08) translateX(-1.5%)}to{transform:scale(1.08) translateX(1.5%)}}
@keyframes wonder-out{from{transform:scale(1.06)}to{transform:scale(1)}}
.transmission.has-wonderboard{justify-content:flex-start;align-items:flex-start;padding:3% 5%;text-align:left}
.transmission.has-wonderboard::after{content:'';position:absolute;inset:0;background:linear-gradient(#0b1317b8 0%,transparent 30%,transparent 60%,#101719dc 100%);pointer-events:none}
.transmission.has-wonderboard .frequency,.transmission.has-wonderboard h1,.transmission.has-wonderboard p,.transmission.has-wonderboard .screen-controls{position:relative;z-index:1;text-shadow:0 1px 5px #000,0 2px 12px #000}
.transmission.has-wonderboard h1{font-size:clamp(17px,3.5vw,30px);margin:.18em 0 0}
.transmission.has-wonderboard p{font-size:clamp(10px,1.7vw,16px)}
.transmission.has-wonderboard .signal-mark{display:none}
.transmission.has-wonderboard .screen-controls{position:absolute}
#clip-note{position:absolute;top:48%;left:8%;right:8%;text-align:center;color:#fff2d9;font:700 clamp(9px,1.9vw,17px) Arial,sans-serif;letter-spacing:.09em;text-shadow:0 1px 5px #000,0 1px 12px #000;z-index:2}
@media(prefers-reduced-motion:reduce){.wonderboard img{animation:none!important}}
.wonderboard video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wonderboard video[hidden]{display:none}
.catalog-list{display:grid;gap:8px;margin:15px 0}
.catalog-list button{width:100%;min-height:55px;padding:9px 13px;text-align:left;color:#fff2db;background:#263930;border:1px solid #bd9c71;border-radius:9px;font:bold clamp(16px,3.2vw,22px) Georgia,serif}
.catalog-list button span{display:block;margin-top:3px;color:#d8ceb9;font:clamp(12px,2.1vw,15px) Arial,sans-serif}
.catalog-list button:focus-visible{outline:3px solid #ffe2a4;outline-offset:2px}
.visual-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:1.5rem;text-align:center;color:#f1c982;background:radial-gradient(circle at 50% 45%,rgba(121,63,27,.55),rgba(20,16,13,.94) 68%);font:700 clamp(.7rem,2.7vw,1rem)/1.45 Georgia,serif;letter-spacing:.08em;text-shadow:0 1px 8px #000}
.visual-fallback[hidden]{display:none}
.transmission.is-welcome .frequency,.transmission.is-welcome .screen-controls{display:none}
.transmission.is-welcome h1{margin-top:auto}
.transmission.is-welcome p{margin-bottom:5%;max-width:90%}
.transmission.is-us .wonderboard video{object-fit:contain;background:transparent}
.transmission.is-us h1{font-size:clamp(14px,3.1vw,26px);max-width:85%}
.transmission.is-us p{font-size:clamp(9px,1.55vw,14px);max-width:85%}
.broadcast.fullscreen .transmission.is-us{padding:3% 5%}
.broadcast.fullscreen .transmission.is-us .wonderboard video{object-fit:contain}
.wonderboard video{background:#101719}
.transmission.is-wonderboardcast{padding:0;align-items:stretch;justify-content:stretch;text-align:center;background:#101719}
.transmission.is-wonderboardcast::after{display:none}
.transmission.is-wonderboardcast>.wonderboard{position:absolute;inset:0}
.transmission.is-wonderboardcast .wonderboard video{object-fit:contain;background:#101719}
.transmission.is-wonderboardcast>.frequency,.transmission.is-wonderboardcast>h1,.transmission.is-wonderboardcast>p,.transmission.is-wonderboardcast>.signal-mark,.transmission.is-wonderboardcast>.signal-links{display:none}
.transmission.is-wonderboardcast>.screen-controls{z-index:2}
.transmission.is-wonderboardcast-ended>*:not(.wonderboard){display:none!important}
.broadcast.fullscreen .wonderboard img{object-fit:contain;background:#050807}

/* Phase 2 Master Wonderboard: the supplied artwork stays intact; HTML buttons sit over its four doors. */
.transmission.is-master-wonderboard{padding:0;align-items:stretch;justify-content:stretch;text-align:center;background:#090d0d}
.transmission.is-master-wonderboard::after{display:none}
.transmission.is-master-wonderboard>.signal-links{display:none!important}
.transmission.is-master-wonderboard>.wonderboard{position:absolute;inset:0;background:#090d0d}
.transmission.is-master-wonderboard .wonderboard-video{z-index:2;object-fit:contain;background:#090d0d;opacity:1;transition:opacity .35s ease}
.transmission.is-master-wonderboard.is-chapter-loading .wonderboard-video{opacity:.18}
.transmission.is-master-wonderboard.is-chapter-active .wonderboard-video{opacity:1}
.transmission.is-master-wonderboard .master-artwork{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:transparent;transition:opacity .42s ease}
.transmission.is-master-wonderboard .master-artwork[hidden]{display:none!important}
.transmission.is-master-wonderboard.is-chapter-active .master-artwork-frame{opacity:0;pointer-events:none}
.master-artwork-frame{position:relative;max-width:100%;max-height:100%;overflow:hidden;transition:opacity .42s ease}
.master-menu-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:fill;animation:none!important}
.master-doorways{position:absolute;inset:0;z-index:2}
.broadcast:not(.fullscreen) .transmission.is-master-wonderboard .master-doorways{pointer-events:auto}
.master-door{position:absolute;top:24.4%;height:28.1%;border:0;border-radius:11px;background:transparent;padding:0;min-width:44px;min-height:44px;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}
.master-door-who{left:4.5%;width:22.2%}
.master-door-why{left:27.2%;width:23.4%}
.master-door-what{left:51.5%;width:23.2%}
.master-door-how{left:75.7%;width:21.6%}
.master-door:hover,.master-door:focus-visible,.master-door:active,.master-door.is-opening{background:radial-gradient(ellipse at 50% 50%,#ffc85c1f 0%,#e79b3228 55%,transparent 78%);box-shadow:inset 0 0 18px #ffd06a8a,0 0 16px #ffbd4d8c;outline:none}
.master-door:focus-visible{outline:3px solid #ffe2a4;outline-offset:2px}
.master-film-controls{position:absolute;z-index:5;top:2%;left:2%;right:2%;display:flex;justify-content:flex-start;gap:8px;pointer-events:none}
.master-film-controls[hidden]{display:none!important}
.master-film-controls button,.master-tap-begin{pointer-events:auto;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #d9b574;border-radius:999px;background:#101719dc;color:#fff2d9;font:700 clamp(11px,1.6vw,14px)/1.15 Arial,sans-serif;text-shadow:0 1px 2px #000;backdrop-filter:blur(5px)}
.master-film-controls button:hover,.master-film-controls button:focus-visible,.master-tap-begin:focus-visible{outline:3px solid #ffe2a4;outline-offset:2px;background:#634117ed}
.master-tap-begin{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(13px,2vw,17px);box-shadow:0 3px 16px #000b}
.master-tap-begin[hidden]{display:none!important}
.master-message{position:absolute;z-index:6;left:8%;right:8%;bottom:2%;margin:0 auto;width:max-content;max-width:84%;padding:8px 12px;border:1px solid #d1a968;border-radius:9px;background:#101719ed;color:#fff1d1;font:600 clamp(11px,1.6vw,15px)/1.35 Arial,sans-serif;text-align:center;box-shadow:0 4px 16px #0009}
.master-message[hidden]{display:none!important}
.transmission.is-master-menu .screen-controls{display:none}
.transmission.is-master-menu #screen-surface{z-index:1}
.transmission.is-master-wonderboard .screen-controls{z-index:4}
.transmission.is-chapter-active .master-artwork-frame{opacity:0}
.transmission.is-master-wonderboard.is-chapter-loading .master-artwork-frame{opacity:.62}
@media(prefers-reduced-motion:reduce){.master-door,.master-artwork-frame,.master-artwork,.wonderboard-video{transition:none!important}}
/* A! is one transparent PNG animated only with compositor-friendly transforms and light. */
.fire{transform-origin:50% 94%;opacity:.68;filter:brightness(.96) saturate(1.08);animation:a-idle 4.6s ease-in-out infinite;transition:opacity .35s,filter .35s;will-change:transform,filter}
.fire::before{content:'';position:absolute;z-index:-1;left:20%;right:20%;bottom:5%;height:36%;border-radius:50%;background:radial-gradient(ellipse,#79baff8c 0%,#ff9d384f 38%,transparent 72%);filter:blur(8px);animation:a-core 2.8s ease-in-out infinite}
.fire::after{content:'';position:absolute;z-index:-2;left:7%;right:7%;bottom:-1%;height:24%;border-radius:50%;background:#ff6a1b70;filter:blur(12px);animation:a-ember 3.4s ease-in-out infinite}
.fire img{filter:drop-shadow(0 0 6px #ff7b1f99);animation:a-shimmer 2.7s ease-in-out infinite;will-change:filter}
.camp[data-state=idle] .fire{animation:a-idle 4.6s ease-in-out infinite}
.camp[data-state=listening] .fire{opacity:.88;filter:brightness(1.08) saturate(1.14);animation:a-listen 1.8s ease-in-out infinite}
.camp[data-state=speaking] .fire{opacity:1;filter:brightness(1.28) saturate(1.18);animation:a-speak .42s ease-in-out infinite alternate}
.camp[data-state=loading] .fire{opacity:.9;animation:a-loading .9s ease-in-out infinite}
.camp[data-state=playing] .fire{opacity:.94;filter:brightness(1.14) saturate(1.2);animation:a-groove 1.25s ease-in-out infinite}
.camp[data-state=returning] .fire{opacity:.82;animation:a-return .55s cubic-bezier(.2,.8,.25,1) both}
@keyframes a-idle{0%,100%{transform:translateY(1%) scale(.97,.95) rotate(-1.2deg)}50%{transform:translateY(-1.5%) scale(1.025,1.04) rotate(1.2deg)}}
@keyframes a-listen{0%,100%{transform:translateX(1%) translateY(0) scale(.98,1.01) rotate(1deg)}50%{transform:translateX(4%) translateY(-2%) scale(1.04,1.06) rotate(3deg)}}
@keyframes a-speak{from{transform:translateY(1%) scale(1.01,.98) rotate(-1.5deg)}to{transform:translateY(-2%) scale(.98,1.08) rotate(1.5deg)}}
@keyframes a-loading{0%,100%{transform:scale(.96,1.01) rotate(-1deg)}50%{transform:translateY(-4%) scale(1.02,1.1) rotate(1deg)}}
@keyframes a-groove{0%,100%{transform:translateX(-2%) scale(1.01,.98) rotate(-3deg)}50%{transform:translateX(2%) translateY(-2%) scale(.99,1.05) rotate(3deg)}}
@keyframes a-return{0%{transform:translateY(-7%) scale(.9,1.14);filter:brightness(1.35)}70%{transform:translateY(2%) scale(1.06,.94)}100%{transform:translateY(0) scale(1)}}
@keyframes a-core{0%,100%{opacity:.45;transform:scale(.88)}50%{opacity:.85;transform:scale(1.12)}}
@keyframes a-ember{0%,100%{opacity:.4;transform:scaleX(.9)}50%{opacity:.8;transform:scaleX(1.08)}}
@keyframes a-shimmer{0%,100%{filter:drop-shadow(0 0 5px #ff7b1f88) brightness(.98)}50%{filter:drop-shadow(0 0 10px #ffb237bb) brightness(1.07)}}
@media(prefers-reduced-motion:reduce){.fire,.fire::before,.fire::after,.fire img{animation:none!important;transform:none!important}}

/* The station's onward doors stay quiet in the small Wonderboard and open up in fullscreen. */
.signal-links{position:absolute;z-index:3;left:4%;right:4%;bottom:24%;font-family:Arial,sans-serif;text-shadow:0 1px 5px #000,0 2px 12px #000}
.links-heading{display:none;color:#ffe6bb;font:700 12px/1.2 Arial,sans-serif;letter-spacing:.13em;margin:0 0 7px}
.channel-links{display:flex;gap:6px;flex-wrap:wrap}
.channel-links a{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 8px;border:1px solid #d7b780;border-radius:999px;background:#101719d9;color:#fff1d4;text-decoration:none;font-size:clamp(10px,1.65vw,13px);font-weight:700}
.channel-links svg{width:17px;height:17px;flex:none;color:#ff5146}
.channel-links a:hover,.channel-links a:focus-visible{color:#fff;background:#70421de8;outline:2px solid #ffe2a4;outline-offset:2px}
.platform-shelf{display:none}
.transmission.is-welcome .signal-links,.transmission.is-us .signal-links{display:none}
.broadcast.fullscreen .signal-links{left:5%;right:5%;bottom:13%;display:grid;gap:10px;max-height:54dvh;overflow:auto;padding:13px;border:1px solid #bfa67d;border-radius:12px;background:#101719e8;backdrop-filter:blur(8px);text-shadow:none}
.broadcast.fullscreen .links-heading{display:block}
.broadcast.fullscreen .channel-links a{min-height:40px;padding:8px 13px;font-size:14px}
.broadcast.fullscreen .platform-shelf{display:grid;gap:8px;color:#f5dfbd;font:600 14px/1.35 Arial,sans-serif}
/* Keep Adventure follow links available without letting the general fullscreen shelf cover the short film. */
.broadcast.fullscreen .transmission.is-us .signal-links{left:5%;right:5%;bottom:clamp(68px,12vh,112px);display:block;width:auto;max-width:none;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;text-align:center;text-shadow:0 1px 5px #000}
.broadcast.fullscreen .transmission.is-us .links-heading,.broadcast.fullscreen .transmission.is-us .platform-shelf{display:none}
.broadcast.fullscreen .transmission.is-us .channel-links{justify-content:center;gap:5px}
.broadcast.fullscreen .transmission.is-us .channel-links a{min-height:34px;padding:7px 11px;font-size:12px;background:#101719c9}
.broadcast.fullscreen .transmission.is-us .channel-links svg{width:15px;height:15px}
@media(max-width:380px){.channel-links{gap:4px}.channel-links a{padding:3px 5px;min-height:24px}}

/* Camp actions: a small pile beside the fire and a branch lever tucked into the tree. */
.woodpile,.branch-switch{position:absolute;z-index:6;border:0;background:transparent;padding:0}
.woodpile{left:39%;top:63.5%;width:25%;height:12%;display:grid;place-items:center;color:#fff1d5;text-shadow:0 1px 4px #120c07;font:700 clamp(8px,1.45vw,12px)/1 Arial,sans-serif;letter-spacing:.06em}
.woodpile img{width:100%;height:86%;object-fit:contain;filter:drop-shadow(0 3px 4px #120a05aa);transition:filter .18s,transform .18s}
.woodpile-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;padding:4px 7px;border-radius:99px;background:#24180fdb;border:1px solid #d1a46c}
.woodpile:hover img,.woodpile:focus-visible img{filter:drop-shadow(0 0 12px #ffbf68);transform:translateY(-3%)}
.woodpile:focus-visible,.branch-switch:focus-visible{outline:3px solid #ffe2a4;outline-offset:3px;border-radius:8px}
.woodpile.feeding img{animation:logs-feed .5s ease-out}
@keyframes logs-feed{0%{transform:translateY(-12%) scale(1.08)}45%{transform:translateY(3%) scale(.97)}100%{transform:translateY(0) scale(1)}}
.branch-switch{left:63%;top:62.5%;width:25%;height:12%;display:grid;place-items:center;opacity:.84;transition:filter .2s,opacity .2s}
.branch-switch img{width:100%;height:100%;object-fit:contain;transform:scaleX(-1);filter:drop-shadow(0 2px 2px #130e0a99)}
.branch-switch:hover,.branch-switch:focus-visible{opacity:1;filter:drop-shadow(0 0 10px #ffd58a)}
.camp[data-fed-level="1"] .fire img{filter:drop-shadow(0 0 9px #ff8e34bb) brightness(1.04)}
.camp[data-fed-level="2"] .fire img{filter:drop-shadow(0 0 12px #ff9d3acc) brightness(1.08)}
.camp[data-fed-level="3"] .fire img{filter:drop-shadow(0 0 15px #ffad45dd) brightness(1.11)}
.camp[data-fed-level="4"] .fire img{filter:drop-shadow(0 0 18px #ffbb55e8) brightness(1.14)}
.camp[data-fed-level="5"] .fire img{filter:drop-shadow(0 0 21px #ffc66aff) brightness(1.17)}
.slot-machine[hidden]{display:none}
.transmission.is-slot-machine{padding:0;align-items:stretch;justify-content:stretch;text-align:center;background:radial-gradient(ellipse at 50% 32%,#624024 0%,#282018 52%,#111614 100%)}
.transmission.is-slot-machine::after{display:none}
.transmission.is-slot-machine>.wonderboard,.transmission.is-slot-machine>.frequency,.transmission.is-slot-machine>h1,.transmission.is-slot-machine>p,.transmission.is-slot-machine>.signal-mark,.transmission.is-slot-machine>.signal-links,.transmission.is-slot-machine>.screen-controls{display:none}
.slot-machine{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2.4vh,22px);padding:7% 5%;color:#fff2d9;background:radial-gradient(ellipse at 50% 23%,#624024 0%,#282018 60%,#111614 100%);text-align:center;overflow:auto}
.slot-heading>span{font:700 clamp(10px,2vw,16px) Arial,sans-serif;letter-spacing:.18em;color:#edc991}
.slot-heading h2{margin:.16em 0;font:900 clamp(30px,7vw,66px)/.95 Georgia,serif;letter-spacing:.04em;text-shadow:0 3px #704117,0 6px 15px #000a}
.slot-heading p{font:clamp(14px,2.7vw,21px) Arial,sans-serif;color:#f1d3a6}
.slot-reels{width:min(100%,860px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(7px,2vw,18px)}
.slot-reel{min-width:0;margin:0;padding:clamp(5px,1.3vw,12px);border:2px solid #d8a45f;border-radius:12px;background:linear-gradient(145deg,#34271d,#171916);box-shadow:inset 0 0 0 3px #704719,0 10px 26px #0008}
.slot-reel img{display:block;width:100%;height:clamp(82px,28vh,265px);object-fit:cover;border-radius:6px;background:#121614}
.slot-reel figcaption{padding-top:7px;font:700 clamp(10px,2.2vw,16px)/1.15 Arial,sans-serif;color:#f5d5a4}
.slot-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.slot-actions button{min-height:44px;padding:10px 18px;border:1px solid #edc991;border-radius:8px;background:linear-gradient(#875323,#513015);color:#fff4de;font:700 clamp(13px,2.5vw,18px) Arial,sans-serif;box-shadow:0 4px 10px #0007}
.slot-actions button:hover,.slot-actions button:focus-visible{outline:2px solid #ffe2a4;outline-offset:2px;background:linear-gradient(#a56a30,#68401d)}
.slot-actions button:disabled{opacity:.65;cursor:wait}
#slot-result{min-height:1.4em;font:700 clamp(14px,2.6vw,20px) Arial,sans-serif;color:#ffe2a4}
.broadcast.fullscreen .transmission.is-slot-machine{padding:0}
.broadcast.fullscreen .slot-machine{padding:5vh 5vw;gap:clamp(12px,3vh,28px)}
.broadcast.fullscreen .slot-reel img{height:clamp(110px,36vh,390px)}
@media(max-width:520px){.woodpile{left:38%;width:28%;top:64%}.branch-switch{left:62%;width:29%;top:63%}.slot-reel{padding:5px}.slot-reel img{height:clamp(70px,22vh,150px)}.slot-heading h2{font-size:clamp(28px,8vw,46px)}.broadcast.fullscreen .slot-machine{padding:7vh 3vw 4vh;gap:clamp(10px,2vh,18px)}}
@media(max-height:540px) and (orientation:landscape){.broadcast.fullscreen .slot-machine{padding:3vh 3vw;gap:2vh}.broadcast.fullscreen .slot-reel img{height:38vh}.slot-heading h2{font-size:clamp(24px,7vh,44px)}}
@media(prefers-reduced-motion:reduce){.woodpile img,.branch-switch{transition:none!important}.woodpile.feeding img{animation:none}}

/* Latest camp placement and an in-window Wonderboard slot view. */
.branch-switch{left:59.5%;top:55.1%;width:26%;height:11%}
.woodpile{left:52%;top:65.5%;width:28%;height:10.5%}
.woodpile img{height:82%}
.transmission.is-slot-machine{padding:0;overflow:hidden}
.slot-machine{inset:0;padding:2.5% 3%;gap:2px;justify-content:space-evenly;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#624024 0%,#282018 66%,#111614 100%)}
.slot-heading>span{font-size:clamp(7px,1.4vw,11px);letter-spacing:.14em}
.slot-heading h2{font-size:clamp(15px,3.1vw,25px);margin:.08em 0;text-shadow:0 2px #704117,0 4px 10px #000a}
.slot-heading p{font-size:clamp(8px,1.6vw,12px);line-height:1.1;margin:0}
.slot-reels{width:100%;flex:1;min-height:0;align-items:center;gap:clamp(4px,1.2vw,10px)}
.slot-reel{padding:3px;border-width:1px;border-radius:6px;box-shadow:inset 0 0 0 1px #704719,0 3px 8px #0008}
.slot-reel img{height:clamp(35px,8vh,74px);border-radius:3px;object-fit:cover}
.slot-reel figcaption{padding-top:3px;font-size:clamp(7px,1.5vw,11px);line-height:1.05}
.slot-actions{gap:5px}
.slot-actions button{min-height:28px;padding:4px 9px;border-radius:5px;font-size:clamp(9px,1.7vw,12px);box-shadow:0 2px 5px #0007}
#slot-result{min-height:1em;margin:0;font-size:clamp(9px,1.7vw,12px);line-height:1.1}
.broadcast.fullscreen .slot-machine{padding:2.5% 3%;gap:2px}
.broadcast.fullscreen .slot-reel img{height:clamp(35px,8vh,74px)}
@media(max-width:520px){.branch-switch{left:59.5%;top:55.1%;width:29%;height:11%}.woodpile{left:52%;top:65.5%;width:30%;height:10.5%}.slot-heading h2{font-size:clamp(14px,4vw,20px)}.slot-reel img{height:clamp(32px,7.5vh,60px)}.broadcast.fullscreen .slot-machine{padding:2.5% 3%;gap:2px}}

/* PLAY and Explore are two menus housed directly in the Wonderboard screen. */
.choice-panel[hidden]{display:none}
.transmission.is-choice-panel,.transmission.is-explore-panel{padding:0;align-items:stretch;justify-content:stretch;text-align:left;overflow:hidden}
.transmission.is-choice-panel::after,.transmission.is-explore-panel::after{display:none}
.transmission.is-choice-panel>.wonderboard,.transmission.is-choice-panel>.slot-machine,.transmission.is-choice-panel>.explore-panel,.transmission.is-choice-panel>.frequency,.transmission.is-choice-panel>h1,.transmission.is-choice-panel>p,.transmission.is-choice-panel>.signal-mark,.transmission.is-choice-panel>.signal-links,.transmission.is-choice-panel>.screen-controls,
.transmission.is-explore-panel>.wonderboard,.transmission.is-explore-panel>.slot-machine,.transmission.is-explore-panel>.choice-panel,.transmission.is-explore-panel>.frequency,.transmission.is-explore-panel>h1,.transmission.is-explore-panel>p,.transmission.is-explore-panel>.signal-mark,.transmission.is-explore-panel>.signal-links,.transmission.is-explore-panel>.screen-controls{display:none}
.choice-panel{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;gap:clamp(3px,.8vh,8px);padding:2.5% 3%;overflow:auto;color:#fff2d9;background:radial-gradient(ellipse at 50% 30%,#394537 0%,#1b241f 68%,#121715 100%)}
.choice-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none}
.choice-head span{display:block;color:#edc991;font:700 clamp(7px,1.4vw,11px) Arial,sans-serif;letter-spacing:.14em}
.choice-head h2{margin:2px 0 0;font:700 clamp(13px,2.6vw,21px)/1 Georgia,serif;color:#fff0d2}
.choice-head>button{flex:none;width:30px;height:30px;border:1px solid #bfa67d;border-radius:50%;background:#241c16e8;color:#fff2d9;font:22px/1 Arial,sans-serif}
.choice-head>button:focus-visible,.choice-panel .catalog-list button:focus-visible{outline:2px solid #ffe2a4;outline-offset:1px}
.choice-panel .catalog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4px;margin:0;min-height:0}
.choice-panel .catalog-list button{min-height:clamp(28px,4vh,40px);padding:4px 7px;border-radius:6px;font-size:clamp(9px,1.9vw,14px);line-height:1.05}
.choice-panel .catalog-list button span{margin-top:2px;font-size:clamp(7px,1.4vw,10px);line-height:1.1}
.transmission.is-explore-panel .explore-panel{position:absolute;inset:0;z-index:7;display:block;margin:0;padding:2.5% 3%;overflow:auto;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 30%,#394537 0%,#1b241f 68%,#121715 100%);box-shadow:none;color:#fff2d9}
.transmission.is-explore-panel .panel-head h2{font-size:clamp(14px,2.8vw,22px)}
.transmission.is-explore-panel .panel-head button{font-size:24px}
.transmission.is-explore-panel .explore-panel>p{margin:4px 0;font:clamp(9px,1.7vw,13px) Arial,sans-serif}
.transmission.is-explore-panel .explore-panel>button{min-height:clamp(30px,4vh,42px);padding:4px 8px;margin:4px 0;border-radius:7px;font-size:clamp(10px,2vw,15px);line-height:1.05}
.transmission.is-explore-panel .explore-panel>button span{margin-top:2px;font-size:clamp(7px,1.4vw,10px);line-height:1.1}
@media(max-width:520px){.choice-panel{gap:3px;padding:2.5% 3%}.choice-head>button{width:25px;height:25px;font-size:18px}.choice-panel .catalog-list{gap:3px}.choice-panel .catalog-list button{min-height:28px;padding:3px 5px}.transmission.is-explore-panel .explore-panel{padding:2.5% 3%}.transmission.is-explore-panel .explore-panel>button{margin:3px 0}}

/* Readable menu text on the Wonderboard; tapping the menu background expands it. */
.choice-panel{gap:clamp(4px,1vh,9px);padding:3% 4%}
.choice-head h2{font-size:clamp(16px,3vw,24px)}
.choice-head>button{width:32px;height:32px}
.choice-panel .catalog-list{gap:5px}
.choice-panel .catalog-list button{min-height:clamp(34px,5vh,46px);padding:5px 7px;font-size:clamp(13px,2vw,16px);line-height:1.12}
.transmission.is-explore-panel .explore-panel{padding:3% 4%}
.transmission.is-explore-panel .panel-head h2{font-size:clamp(17px,3vw,24px)}
.transmission.is-explore-panel .panel-head button{width:32px;height:32px}
.transmission.is-explore-panel .explore-panel>button{min-height:clamp(32px,4.5vh,42px);margin:3px 0;font-size:clamp(12px,2vw,16px)}
.broadcast.fullscreen .choice-panel{gap:clamp(12px,2vh,22px);padding:4vh 5vw}
.broadcast.fullscreen .choice-head h2{font-size:clamp(26px,3vw,38px)}
.broadcast.fullscreen .choice-head>button{width:42px;height:42px;font-size:28px}
.broadcast.fullscreen .choice-panel .catalog-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.broadcast.fullscreen .choice-panel .catalog-list button{min-height:64px;padding:10px;font-size:clamp(18px,1.8vw,24px)}
.broadcast.fullscreen .transmission.is-explore-panel .explore-panel{padding:4vh 5vw}
.broadcast.fullscreen .transmission.is-explore-panel .panel-head h2{font-size:clamp(28px,3vw,40px)}
.broadcast.fullscreen .transmission.is-explore-panel .explore-panel>button{min-height:58px;margin:10px 0;font-size:clamp(19px,2vw,26px)}
.camp[data-mood=cozy] .fire{filter:brightness(1.04) saturate(1.08)}
.camp[data-mood=playful] .fire{filter:brightness(1.15) saturate(1.2);animation:a-playful 1.2s ease-in-out infinite alternate}
@keyframes a-playful{from{transform:translateY(-.8%) scale(1.01,1.02) rotate(-1deg)}to{transform:translateY(-1.6%) scale(1.04,1.06) rotate(1.2deg)}}
@media(prefers-reduced-motion:reduce){.camp[data-mood=playful] .fire{animation:none!important;transform:none!important}}

.reply{z-index:9;transition:opacity .28s ease,transform .28s ease}
.reply.is-fading{opacity:0;transform:translateY(5px);pointer-events:none}
@media(prefers-reduced-motion:reduce){.reply{transition:none}.reply.is-fading{transform:none}}

.fire{display:block;z-index:5;pointer-events:auto;padding:0;border:0;border-radius:0;background:transparent;line-height:0;appearance:none;cursor:pointer}
.fire:focus-visible{outline:3px solid #ffe2a4;outline-offset:3px;border-radius:48%}

/* Explore becomes a trail board inside the Wonderboard display. */
.transmission.is-explore-panel .explore-panel{inset:0;padding:0;overflow:hidden;border:0;border-radius:0;background:#111714;}
.explore-board-art{position:absolute;inset:0;background:url('./assets/explore-trail-board.webp') center/100% 100% no-repeat;}
.transmission.is-explore-panel .panel-head{position:absolute;z-index:1;top:2.5%;left:8%;right:8%;height:10.5%;justify-content:center;}
.transmission.is-explore-panel .panel-head h2{margin:0;color:#fff2d9;text-align:center;font:700 clamp(15px,2.8vw,22px)/1.1 Georgia,'Times New Roman',serif;text-shadow:0 2px 6px #000,0 0 12px #000;}
.transmission.is-explore-panel .panel-head button{position:absolute;right:-8%;top:50%;transform:translateY(-50%);width:clamp(27px,5vw,36px);height:clamp(27px,5vw,36px);display:grid;place-items:center;border:1px solid #f0c47d;border-radius:50%;background:#211810e8;color:#fff2d9;font:24px/1 Arial,sans-serif;}
.transmission.is-explore-panel .panel-head button:focus-visible{outline:2px solid #fff0c9;outline-offset:2px;}
.explore-options{position:absolute;z-index:1;inset:15.8% 16.5% 20%;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:3.2%;}
.explore-choice{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:3px 8px;border:0;border-radius:14px;background:transparent;color:#fff1d4;text-align:center;text-shadow:0 2px 5px #100902,0 0 10px #100902;font-family:Arial,sans-serif;transition:background .16s,filter .16s;}
.explore-choice:hover{background:#ffcf6b14;filter:brightness(1.12);}
.explore-choice:focus-visible{outline:2px solid #fff0c9;outline-offset:-3px;background:#ffc45c20;}
.explore-choice:active{background:#ffb64435;}
.explore-choice-title{font:800 clamp(12px,2.4vw,17px)/1.05 Georgia,'Times New Roman',serif;}
.explore-choice-note{font:600 clamp(10px,1.7vw,13px)/1.1 Arial,sans-serif;color:#f2dfc0;}
.broadcast.fullscreen .transmission.is-explore-panel .panel-head{top:3vh;left:7vw;right:7vw;height:10vh;}
.broadcast.fullscreen .transmission.is-explore-panel .panel-head h2{font-size:clamp(28px,3vw,42px);}
.broadcast.fullscreen .transmission.is-explore-panel .panel-head button{right:-5vw;width:44px;height:44px;font-size:30px;}
.broadcast.fullscreen .explore-options{inset:16% 16.5% 19%;gap:3%;}
.broadcast.fullscreen .explore-choice{gap:8px;padding:8px 18px;border-radius:22px;}
.broadcast.fullscreen .explore-choice-title{font-size:clamp(22px,2.5vw,34px);}
.broadcast.fullscreen .explore-choice-note{font-size:clamp(15px,1.55vw,20px);}
@media(max-width:380px){.explore-choice{gap:2px;padding-inline:4px}.explore-choice-title{font-size:12px}.explore-choice-note{font-size:10px}}

/* A! Adventures picker lives on the Wonderboard and scales as the series grows. */
.adventure-picker[hidden]{display:none!important}
.transmission.is-adventure-picker{padding:0;align-items:stretch;justify-content:stretch;text-align:left;overflow:hidden;background:#111714}
.transmission.is-adventure-picker::after{display:none}
.transmission.is-adventure-picker>.frequency,.transmission.is-adventure-picker>h1,.transmission.is-adventure-picker>p,.transmission.is-adventure-picker>.signal-mark,.transmission.is-adventure-picker>.signal-links,.transmission.is-adventure-picker>.screen-controls{display:none!important}
.adventure-picker{position:absolute;inset:0;z-index:6;overflow:hidden;color:#fff2d9;background:#111714;touch-action:pan-y}
.adventure-backdrop{position:absolute;inset:0;overflow:hidden;background:#101714 url('./assets/adventure-underbed.webp') center/cover no-repeat}
.adventure-picker::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101715b8,#10171566 50%,#101715b8),linear-gradient(0deg,#101715e8,transparent 34%,#101715b8);pointer-events:none}
.adventure-picker-content{position:absolute;z-index:1;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(4px,1vw,10px);padding:clamp(8px,2vw,18px);}
.adventure-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.adventure-kicker{display:block;color:#efc990;font:700 clamp(8px,1.45vw,13px)/1.1 Arial,sans-serif;letter-spacing:.1em;text-shadow:0 1px 5px #000}
.adventure-header h2{margin:3px 0 0;color:#fff2d9;font:700 clamp(16px,3vw,24px)/1 Georgia,serif;text-shadow:0 2px 6px #000}
.adventure-sort-label{display:flex;flex-direction:column;gap:3px;flex:none;color:#f1d6ad;font:700 clamp(9px,1.4vw,12px)/1.1 Arial,sans-serif;text-shadow:0 1px 4px #000}
.adventure-sort-label select{max-width:clamp(96px,26vw,150px);min-height:34px;padding:4px 23px 4px 7px;border:1px solid #b9915d;border-radius:7px;background:#171b18eF;color:#fff2d9;font:600 clamp(10px,1.5vw,13px) Arial,sans-serif}
.adventure-card{display:grid;grid-template-columns:clamp(34px,8vw,46px) clamp(82px,22vw,128px) minmax(0,1fr) clamp(34px,8vw,46px);align-items:center;gap:clamp(4px,1.2vw,12px);min-height:0;padding:4px 0}
.adventure-arrow{width:100%;min-height:44px;aspect-ratio:1;border:1px solid #d1a66b;border-radius:50%;background:#171a17c9;color:#ffe3b3;font:700 clamp(28px,5vw,40px)/.8 Georgia,serif;text-shadow:0 1px 4px #000}
.adventure-arrow:disabled{opacity:.35;cursor:default}
.adventure-arrow:not(:disabled):hover,.adventure-arrow:focus-visible{outline:2px solid #fff0c9;outline-offset:2px;background:#734719e8}
.adventure-play-card{position:relative;justify-self:center;width:100%;min-width:0;padding:0;border:0;border-radius:8px;background:transparent;line-height:0;cursor:pointer}
.adventure-picker .adventure-poster{display:block;width:100%;height:auto;max-height:min(100%,42vh,190px);aspect-ratio:9/16;object-fit:cover;border:1px solid #dbb477;border-radius:8px;box-shadow:0 6px 18px #000b}
.adventure-play-cue{position:absolute;left:3px;right:3px;bottom:6px;display:flex;align-items:center;justify-content:center;min-height:26px;padding:4px 3px;border:1px solid #f0c47d;border-radius:999px;background:#15140fe8;color:#fff2d9;font:700 clamp(11px,1.2vw,14px)/1 Arial,sans-serif;box-shadow:0 2px 8px #0009;text-shadow:0 1px 3px #000;pointer-events:none}
.adventure-play-card:hover .adventure-play-cue,.adventure-play-card:focus-visible .adventure-play-cue{filter:brightness(1.2)}
.adventure-info{min-width:0;max-height:100%;overflow:auto;text-shadow:0 2px 5px #000,0 0 10px #000}
.adventure-info h3{margin:0;color:#fff0d2;font:700 clamp(14px,2.6vw,21px)/1.08 Georgia,serif;text-wrap:balance}
.adventure-info p{margin:clamp(4px,1vh,9px) 0 0;color:#f1dfc2;font:500 clamp(11px,1.8vw,15px)/1.3 Arial,sans-serif}
.adventure-footer{display:flex;align-items:center;justify-content:center;gap:8px}
.adventure-count{color:#f0d6ad;font:700 clamp(11px,1.7vw,14px) Arial,sans-serif;text-shadow:0 1px 4px #000}
.adventure-hint{margin:0;color:#e9d4b5;font:500 clamp(9px,1.4vw,12px)/1.1 Arial,sans-serif;text-align:center;text-shadow:0 1px 4px #000}
.adventure-picker button:focus-visible,.adventure-sort-label select:focus-visible{outline:2px solid #fff0c9;outline-offset:2px}
.broadcast.fullscreen .adventure-picker-content{gap:clamp(12px,2vh,22px);padding:clamp(18px,3vh,40px) clamp(20px,4vw,58px)}
.broadcast.fullscreen .adventure-kicker{font-size:clamp(12px,1.4vw,20px)}
.broadcast.fullscreen .adventure-header h2{font-size:clamp(26px,3vw,42px)}
.broadcast.fullscreen .adventure-sort-label{font-size:clamp(13px,1.4vw,18px)}
.broadcast.fullscreen .adventure-sort-label select{max-width:220px;min-height:44px;font-size:clamp(14px,1.4vw,18px)}
.broadcast.fullscreen .adventure-card{grid-template-columns:clamp(44px,5vw,64px) clamp(112px,23vw,250px) minmax(0,1fr) clamp(44px,5vw,64px);gap:clamp(12px,2vw,28px)}
.broadcast.fullscreen .adventure-poster{max-height:min(47vh,440px)}
.broadcast.fullscreen .adventure-info h3{font-size:clamp(22px,3vw,38px)}
.broadcast.fullscreen .adventure-info p{font-size:clamp(15px,1.7vw,22px)}
.broadcast.fullscreen .adventure-hint{font-size:clamp(12px,1.25vw,17px)}
@media(orientation:portrait) and (min-height:560px){.broadcast.fullscreen .adventure-card{grid-template-columns:clamp(42px,10vw,54px) minmax(105px,34vw,150px) minmax(0,1fr) clamp(42px,10vw,54px);gap:clamp(6px,2vw,12px)}.broadcast.fullscreen .adventure-poster{max-height:min(40vh,350px)}.broadcast.fullscreen .adventure-info h3{font-size:clamp(20px,5vw,30px)}.broadcast.fullscreen .adventure-info p{font-size:clamp(14px,3.5vw,18px)}}
@media(max-width:380px){.adventure-picker-content{padding:6px;gap:4px}.adventure-kicker{font-size:8px}.adventure-header h2{font-size:14px}.adventure-sort-label select{min-height:30px;padding-left:5px}.adventure-card{grid-template-columns:44px clamp(76px,24vw,92px) minmax(0,1fr) 44px;gap:3px}.adventure-arrow{min-height:44px}.adventure-info h3{font-size:13px}.adventure-info p{font-size:10px}.adventure-play-cue{left:2px;right:2px;bottom:4px;min-height:24px;font-size:11px}}
@media(max-height:540px) and (orientation:landscape){.adventure-picker-content{padding:2% 3%;gap:3px}.adventure-card{grid-template-columns:40px clamp(70px,17vh,105px) minmax(0,1fr) 40px}.adventure-poster{max-height:48vh}.adventure-info p{font-size:clamp(10px,1.8vh,13px)}}
/* A! Adventures uses one crisp forest underbed, with the portrait short doubled in the Wonderboard. */
.transmission.is-us .wonderboard{background:#101714 url('./assets/adventure-underbed.webp') center/cover no-repeat}
.transmission.is-us>.frequency{display:none}
.transmission.is-us>h1{position:absolute;z-index:3;top:2%;left:8%;right:20%;max-width:none;margin:0;padding:2px 6px;border:1px solid #d0a56c77;border-radius:5px;background:#101714a8;text-align:center;font-size:clamp(10px,.9vw,12px);line-height:1.05}
.transmission.is-us>p{display:none}
.broadcast.fullscreen .transmission.is-us>h1{font-size:clamp(12px,1.05vw,14px)}
.transmission.is-individual-song>.frequency{display:none}
.transmission.is-individual-song>h1{position:absolute;z-index:3;top:2%;left:8%;right:20%;max-width:none;margin:0;padding:2px 6px;border:1px solid #d0a56c66;border-radius:5px;background:#101714a8;text-align:center;font-size:clamp(10px,.9vw,12px);line-height:1.05}
.transmission.is-individual-song>p{display:none}
.broadcast.fullscreen .transmission.is-individual-song>h1{font-size:clamp(12px,1.05vw,14px)}

/* TUNE IN uses a two-door signboard; the song catalog stays data-driven. */
.tune-panel[hidden]{display:none}
.transmission.is-tune-panel{padding:0;align-items:stretch;justify-content:stretch;text-align:left;overflow:hidden}
.transmission.is-tune-panel::after{display:none}
.transmission.is-tune-panel>.wonderboard,.transmission.is-tune-panel>.slot-machine,.transmission.is-tune-panel>.choice-panel,.transmission.is-tune-panel>.explore-panel,.transmission.is-tune-panel>.frequency,.transmission.is-tune-panel>h1,.transmission.is-tune-panel>p,.transmission.is-tune-panel>.signal-mark,.transmission.is-tune-panel>.signal-links,.transmission.is-tune-panel>.screen-controls{display:none}
.transmission.is-tune-panel>.tune-panel{position:absolute;inset:0;z-index:8;display:block;overflow:hidden;background:#121714;color:#fff2d9}
.tune-board-art{position:absolute;inset:0;background:url('./assets/tune-in-board.webp') center/100% 100% no-repeat}
.tune-head{position:absolute;z-index:1;top:2.5%;left:8%;right:8%;height:11%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-shadow:0 2px 6px #000,0 0 12px #000}
.tune-head>span{font:700 clamp(9px,1.5vw,12px)/1.1 Arial,sans-serif;letter-spacing:.13em;color:#edc991}
.tune-head h2{margin:3px 0 0;font:700 clamp(15px,2.7vw,22px)/1.05 Georgia,'Times New Roman',serif}
.tune-head>button{position:absolute;right:-8%;top:50%;transform:translateY(-50%);width:clamp(27px,5vw,36px);height:clamp(27px,5vw,36px);display:grid;place-items:center;border:1px solid #f0c47d;border-radius:50%;background:#211810e8;color:#fff2d9;font:24px/1 Arial,sans-serif}
.tune-head>button:focus-visible{outline:2px solid #fff0c9;outline-offset:2px}
.tune-options{position:absolute;z-index:1;inset:16% 16% 20%;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:4.5%}
.tune-choice{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:5px 12px;border:0;border-radius:16px;background:transparent;color:#fff1d4;text-align:center;text-shadow:0 2px 5px #100902,0 0 10px #100902;font-family:Arial,sans-serif;transition:background .16s,filter .16s}
.tune-choice:hover{background:#ffcf6b14;filter:brightness(1.12)}
.tune-choice:focus-visible{outline:2px solid #fff0c9;outline-offset:-3px;background:#ffc45c20}
.tune-choice:active{background:#ffb64435}
.tune-choice-title{font:800 clamp(13px,2.7vw,20px)/1.05 Georgia,'Times New Roman',serif}
.tune-choice-note{font:600 clamp(10px,1.8vw,14px)/1.12 Arial,sans-serif;color:#f2dfc0}
.choice-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
.choice-head h2{text-align:center}
.choice-head>.choice-back{width:auto;min-width:48px;min-height:32px;padding:4px 8px;border-radius:7px;font:700 12px/1 Arial,sans-serif}
.choice-panel .catalog-list{flex:1;overflow:auto;grid-auto-rows:minmax(38px,auto);align-content:start}
.broadcast.fullscreen .tune-head{top:3vh;left:7vw;right:7vw;height:10vh}
.broadcast.fullscreen .tune-head>span{font-size:clamp(12px,1.5vw,18px)}
.broadcast.fullscreen .tune-head h2{font-size:clamp(28px,3vw,42px)}
.broadcast.fullscreen .tune-head>button{right:-5vw;width:44px;height:44px;font-size:30px}
.broadcast.fullscreen .tune-options{inset:16% 16% 19%;gap:5%}
.broadcast.fullscreen .tune-choice{gap:10px;padding:10px 18px;border-radius:22px}
.broadcast.fullscreen .tune-choice-title{font-size:clamp(24px,2.8vw,38px)}
.broadcast.fullscreen .tune-choice-note{font-size:clamp(16px,1.7vw,22px)}
.broadcast.fullscreen .choice-panel{gap:clamp(8px,1.5vh,18px)}
.broadcast.fullscreen .choice-head>.choice-back{min-width:72px;min-height:42px;font-size:16px}
.broadcast.fullscreen .choice-panel .catalog-list button{min-height:64px}
@media(max-width:380px){.tune-head>span{font-size:9px}.tune-head h2{font-size:15px}.tune-options{inset:16% 15% 20%;gap:4%}.tune-choice{gap:3px;padding:3px 6px}.tune-choice-title{font-size:13px}.tune-choice-note{font-size:10px}.choice-head{gap:4px}.choice-head>.choice-back{min-width:42px;padding:3px 6px;font-size:11px}}
@media(orientation:portrait) and (min-height:560px){.broadcast.fullscreen .tune-board-art{inset:calc(50% - 33.333vw) 0 auto;height:66.666vw;background-size:100% 100%}.broadcast.fullscreen .tune-head{top:calc(50% - 31.667vw);left:8%;right:8%;height:7vw}.broadcast.fullscreen .tune-head>span{font-size:clamp(9px,3vw,12px)}.broadcast.fullscreen .tune-head h2{font-size:clamp(18px,5vw,24px)}.broadcast.fullscreen .tune-head>button{right:-7%;width:clamp(30px,8vw,40px);height:clamp(30px,8vw,40px)}.broadcast.fullscreen .tune-options{top:calc(50% - 22.333vw);bottom:calc(50% - 20vw);left:16%;right:16%;gap:4.5%}.broadcast.fullscreen .tune-choice{gap:6px;padding:5px 8px}.broadcast.fullscreen .tune-choice-title{font-size:clamp(18px,6vw,25px)}.broadcast.fullscreen .tune-choice-note{font-size:clamp(13px,4vw,17px)}}
.camp.is-poked .fire{animation:a-poke .58s ease-in-out;filter:brightness(1.18) saturate(1.2)}
@keyframes a-poke{0%,100%{transform:translateY(0) rotate(0) scale(1)}20%{transform:translateY(-1.5%) rotate(-4deg) scale(1.035)}48%{transform:translateY(.6%) rotate(3.2deg) scale(.99)}72%{transform:translateY(-.6%) rotate(-1.6deg) scale(1.015)}}
@media(prefers-reduced-motion:reduce){.camp.is-poked .fire{animation:none;transform:none;filter:brightness(1.18) saturate(1.2)}}

/* The song catalog borrows the A! Adventures card browse, dressed as a camp radio album crate. */
.choice-panel{padding:0;overflow:hidden;background:#101714}
.song-picker{position:absolute;inset:0;overflow:hidden;color:#fff2d9;background:#101714;touch-action:pan-y}
.song-backdrop{position:absolute;inset:-12px;overflow:hidden}
.song-backdrop img{width:100%;height:100%;object-fit:cover;filter:none;transform:none}
.song-picker::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101715d9,#10171588 50%,#101715d9),linear-gradient(0deg,#101715e8,transparent 35%,#101715b8);pointer-events:none}
.song-picker-content{position:absolute;z-index:1;inset:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:clamp(4px,1vh,10px);padding:clamp(8px,2vw,18px)}
.song-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(5px,1.2vw,12px);min-width:0}
.song-heading{text-align:center;text-shadow:0 2px 6px #000,0 0 12px #000;min-width:0}
.song-heading span{display:block;color:#efc990;font:700 clamp(12px,1.4vw,16px)/1.1 Arial,sans-serif;letter-spacing:.08em}
.song-heading h2{margin:3px 0 0;color:#fff2d9;font:700 clamp(17px,3vw,24px)/1 Georgia,'Times New Roman',serif}
.song-back,.song-close{display:grid;place-items:center;min-width:44px;min-height:40px;padding:5px 9px;border:1px solid #d1a66b;border-radius:9px;background:#171a17c9;color:#fff2d9;font:700 clamp(12px,1.8vw,15px)/1 Arial,sans-serif;text-shadow:0 1px 4px #000}
.song-close{min-width:40px;width:40px;padding:0;border-radius:50%;font:24px/1 Arial,sans-serif}
.song-sort-label{justify-self:center;display:flex;align-items:center;gap:8px;color:#f1d6ad;font:700 clamp(12px,1.6vw,14px)/1.1 Arial,sans-serif;text-shadow:0 1px 4px #000}
.song-sort-label select{min-height:38px;max-width:170px;padding:4px 24px 4px 8px;border:1px solid #b9915d;border-radius:7px;background:#171b18ef;color:#fff2d9;font:600 clamp(12px,1.5vw,14px) Arial,sans-serif}
.song-card{display:grid;grid-template-columns:clamp(38px,8vw,48px) clamp(90px,24%,140px) minmax(0,1fr) clamp(38px,8vw,48px);align-items:center;justify-content:center;gap:clamp(5px,1.5vw,15px);min-height:0;padding:3px 0}
.song-arrow{width:100%;min-height:44px;aspect-ratio:1;border:1px solid #d1a66b;border-radius:50%;background:#171a17c9;color:#ffe3b3;font:700 clamp(28px,5vw,40px)/.8 Georgia,serif;text-shadow:0 1px 4px #000}
.song-arrow:disabled{opacity:.35;cursor:default}
.song-arrow:not(:disabled):hover,.song-arrow:focus-visible,.song-back:hover,.song-back:focus-visible,.song-close:hover,.song-close:focus-visible{outline:2px solid #fff0c9;outline-offset:2px;background:#734719e8}
.song-play-card{position:relative;justify-self:center;width:100%;min-width:0;padding:0;border:0;border-radius:8px;background:transparent;line-height:0;cursor:pointer}
.song-cover{display:block;width:100%;height:auto;max-height:min(46vh,230px);aspect-ratio:1;object-fit:cover;border:1px solid #dbb477;border-radius:8px;box-shadow:0 6px 18px #000b}
.song-play-cue{position:absolute;left:3px;right:3px;bottom:6px;display:flex;align-items:center;justify-content:center;min-height:26px;padding:4px 3px;border:1px solid #f0c47d;border-radius:999px;background:#15140fe8;color:#fff2d9;font:700 clamp(11px,1.2vw,14px)/1 Arial,sans-serif;box-shadow:0 2px 8px #0009;text-shadow:0 1px 3px #000;pointer-events:none}
.song-play-card:hover .song-play-cue,.song-play-card:focus-visible .song-play-cue{filter:brightness(1.2)}
.song-info{min-width:0;max-height:100%;overflow:auto;text-shadow:0 2px 5px #000,0 0 10px #000}
.song-info h3{margin:0;color:#fff0d2;font:700 clamp(15px,2.7vw,23px)/1.08 Georgia,'Times New Roman',serif;text-wrap:balance;overflow-wrap:anywhere}
.song-info p{margin:clamp(5px,1vh,10px) 0 0;color:#f1dfc2;font:500 clamp(12px,1.8vw,16px)/1.25 Arial,sans-serif;overflow-wrap:anywhere}
.song-footer{display:flex;align-items:center;justify-content:center;gap:8px}
#song-count{color:#f0d6ad;font:700 clamp(12px,1.7vw,14px) Arial,sans-serif;text-shadow:0 1px 4px #000}
.song-hint{margin:0;color:#e9d4b5;font:500 clamp(12px,1.4vw,14px)/1.15 Arial,sans-serif;text-align:center;text-shadow:0 1px 4px #000}
.song-picker button:focus-visible,.song-sort-label select:focus-visible{outline:2px solid #fff0c9;outline-offset:2px}
.broadcast.fullscreen .transmission.is-choice-panel #choice-close{display:none!important}
.broadcast.fullscreen .song-picker-content{gap:clamp(10px,2vh,20px);padding:clamp(18px,3vh,40px) clamp(20px,4vw,58px)}
.broadcast.fullscreen .song-heading span{font-size:clamp(12px,1.4vw,20px)}
.broadcast.fullscreen .song-heading h2{font-size:clamp(27px,3vw,42px)}
.broadcast.fullscreen .song-back,.broadcast.fullscreen .song-close{min-height:46px}
.broadcast.fullscreen .song-close{width:46px}
.broadcast.fullscreen .song-sort-label{font-size:clamp(14px,1.5vw,18px)}
.broadcast.fullscreen .song-sort-label select{min-height:44px;max-width:220px;font-size:clamp(14px,1.4vw,18px)}
.broadcast.fullscreen .song-card{grid-template-columns:clamp(46px,5vw,64px) clamp(195px,37.5vw,450px) minmax(0,1fr) clamp(46px,5vw,64px);gap:clamp(12px,2vw,28px)}
.broadcast.fullscreen .song-cover{max-height:min(48vh,440px)}
.broadcast.fullscreen .song-info h3{font-size:clamp(22px,3vw,38px)}
.broadcast.fullscreen .song-info p{font-size:clamp(15px,1.7vw,22px)}
.broadcast.fullscreen .song-hint{font-size:clamp(12px,1.25vw,17px)}
.broadcast.fullscreen .choice-panel{padding:0;gap:0}
@media(orientation:portrait) and (min-height:560px){.broadcast.fullscreen .song-card{grid-template-columns:clamp(42px,10vw,56px) clamp(165px,51vw,315px) minmax(0,1fr) clamp(42px,10vw,56px);gap:clamp(6px,2vw,13px)}.broadcast.fullscreen .song-cover{max-height:min(38vh,360px)}.broadcast.fullscreen .song-info h3{font-size:clamp(20px,5vw,30px)}.broadcast.fullscreen .song-info p{font-size:clamp(14px,3.5vw,18px)}}
@media(max-width:380px){.song-picker-content{padding:6px;gap:4px}.song-header{gap:4px}.song-heading span{font-size:12px}.song-heading h2{font-size:15px}.song-back,.song-close{min-width:40px;min-height:38px;padding:4px 6px}.song-close{width:38px}.song-sort-label select{min-height:34px;padding:3px 20px 3px 6px}.song-sort-label{font-size:12px}.song-card{grid-template-columns:42px clamp(82px,25vw,100px) minmax(0,1fr) 42px;gap:4px}.song-arrow{min-height:42px}.song-info h3{font-size:14px}.song-info p{font-size:12px}.song-footer{gap:4px}.song-play-cue{left:2px;right:2px;bottom:4px;min-height:24px;font-size:11px}.song-hint{font-size:12px}}
@media(max-height:540px) and (orientation:landscape){.song-picker-content{padding:2% 3%;gap:3px}.song-header{gap:6px}.song-heading span{font-size:12px}.song-heading h2{font-size:16px}.song-back,.song-close{min-height:34px}.song-card{grid-template-columns:38px clamp(70px,20vh,125px) minmax(0,1fr) 38px;gap:7px}.song-cover{max-height:43vh}.song-info h3{font-size:clamp(13px,2vw,18px)}.song-info p{font-size:12px}.song-hint{font-size:12px}}
@media(max-width:520px){.song-picker-content{padding:8px;gap:4px}.song-card{grid-template-columns:42px minmax(0,1fr) 42px;grid-template-rows:minmax(0,1fr) auto;gap:3px}.song-card #song-previous{grid-column:1;grid-row:1}.song-play-card{grid-column:2;grid-row:1;justify-self:center;width:min(100%,30vw,132px)}.song-card .song-info{grid-column:1/-1;grid-row:2;max-height:2.7em;overflow:hidden;text-align:center}.song-info h3{font-size:clamp(14px,4vw,18px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-info p{margin:1px 0 0;font-size:clamp(10px,2.8vw,12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-card #song-next{grid-column:3;grid-row:1}.song-cover{max-height:min(28vh,132px)}.song-heading span{font-size:clamp(9px,2.8vw,12px)}.song-heading h2{font-size:clamp(15px,4.3vw,20px)}.song-sort-label{font-size:12px}.song-sort-label select{min-height:34px}.song-hint{font-size:clamp(10px,2.8vw,12px);white-space:nowrap}}

.wonderboard-ending{position:absolute;z-index:5;left:2%;right:2%;bottom:2%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:5px;padding:5px;border:1px solid #bfa67d;border-radius:9px;background:#101719d9;backdrop-filter:blur(5px)}
.wonderboard-ending[hidden]{display:none!important}
.wonderboard-ending a,.wonderboard-ending button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:30px;padding:4px;border:1px solid #cfad7d;border-radius:6px;background:#201d18;color:#fff2d9;text-align:center;text-decoration:none;white-space:nowrap;font:700 clamp(11px,1.8vw,14px)/1.1 Arial,sans-serif}
.wonderboard-ending a:focus-visible,.wonderboard-ending button:focus-visible{outline:3px solid #ffe2a4;outline-offset:2px}
.broadcast.fullscreen .wonderboard-ending{left:5%;right:5%;bottom:4%;gap:12px;padding:12px}
.broadcast.fullscreen .wonderboard-ending a,.broadcast.fullscreen .wonderboard-ending button{min-height:46px;font-size:clamp(16px,1.8vw,22px)}


/* Ranger Camp revised background: align the interactive overlays with the tree and firepit. */
.branch-switch{left:56.5%;top:55.5%;width:27%;height:10.5%}
.woodpile{left:59%;top:66.2%;width:27%;height:10.5%;font-size:clamp(10px,1.5vw,12px)}
@media(max-width:520px){.branch-switch{left:56.5%;top:55.5%;width:29%;height:10.5%}.woodpile{left:58%;top:66.2%;width:29%;height:10.5%}}

/* A! Signal Slots: cabin-console artwork framed behind the live Wonderboard reels. */
.slot-machine{
  background:
    linear-gradient(180deg,rgba(9,13,11,.50),rgba(9,13,11,.13) 24%,rgba(9,13,11,.04) 78%,rgba(9,13,11,.36)),
    url('./assets/a-signal-slots-console-wide.webp') center / cover no-repeat;
}
.slot-heading{
  width:min(88%,860px);
  padding:1% 2%;
  border:1px solid #d8a45f66;
  border-radius:7px;
  background:linear-gradient(90deg,#11130fa8,#11130fbd 50%,#11130fa8);
  box-shadow:0 2px 8px #0009;
  backdrop-filter:blur(2px);
}
.slot-reels{width:88%}
.slot-reel{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.slot-reel img{
  width:min(100%,clamp(48px,16vw,120px));
  height:auto;
  aspect-ratio:1;
  margin:0 auto;
  border:3px solid #d8a45f;
  border-radius:50%;
  object-fit:cover;
  box-shadow:0 0 0 2px #3b2615,0 0 14px #f9b35e55;
}
.slot-reel figcaption{text-shadow:0 1px 4px #000;max-width:100%;margin:0 auto}
.broadcast.fullscreen .slot-reel img{width:min(100%,clamp(100px,20vw,280px));height:auto}
.broadcast.fullscreen .slot-reel figcaption{font-size:clamp(13px,2vw,22px)}
@media(max-width:700px) and (orientation:portrait){
  .broadcast.fullscreen .slot-machine{
    background-image:
      linear-gradient(180deg,rgba(9,13,11,.42),rgba(9,13,11,.08) 25%,rgba(9,13,11,.06) 78%,rgba(9,13,11,.40)),
      url('./assets/a-signal-slots-console-portrait.webp');
    background-position:center;
    background-size:cover;
  }
  .broadcast.fullscreen .slot-reel img{width:min(100%,clamp(90px,32vw,300px))}
  .broadcast.fullscreen .slot-reel figcaption{font-size:clamp(10px,2.5vw,18px)}
}

/* WonderBook opens as a complete, readable path inside the Wonderboard. */
.transmission.is-book-reader{padding:0;align-items:stretch;justify-content:stretch;overflow:hidden;background:#151713;}
.transmission.is-book-reader::after{display:none}
.transmission.is-book-reader>.wonderboard,.transmission.is-book-reader>.slot-machine,.transmission.is-book-reader>.tune-panel,.transmission.is-book-reader>.choice-panel,.transmission.is-book-reader>.explore-panel,.transmission.is-book-reader>.frequency,.transmission.is-book-reader>h1,.transmission.is-book-reader>p,.transmission.is-book-reader>.signal-mark,.transmission.is-book-reader>.signal-links,.transmission.is-book-reader>.screen-controls{display:none}
.transmission.is-book-reader>.book-reader{position:absolute;inset:0;z-index:9;display:block;min-width:0;min-height:0;overflow:hidden;background:#f4ead5;color:#30251a;}
.book-reader[hidden]{display:none!important}
.book-reader iframe{display:block;width:100%;height:100%;border:0;background:#f4ead5;}
.book-click-hint{position:absolute;left:50%;bottom:clamp(8px,2.5vw,22px);z-index:2;max-width:calc(100% - 20px);transform:translate(-50%,8px);padding:9px 14px;border:1px solid #f1c778;border-radius:999px;background:#21170feF;box-shadow:0 3px 16px #000b;color:#fff3d4;text-align:center;font:700 clamp(10px,1.8vw,15px)/1.25 Arial,sans-serif;letter-spacing:.02em;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,transform .35s ease,visibility .35s ease;}
.book-click-hint.is-visible{transform:translate(-50%,0);opacity:1;visibility:visible;}
@media(max-width:520px){.book-click-hint{padding:7px 10px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.book-reader iframe{scroll-behavior:auto}}

/* Four Explore doors share the lower trail plaque without crowding the display. */
.explore-options{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));}
.explore-choice:nth-child(1),.explore-choice:nth-child(2){grid-column:1/-1;}
.explore-choice:nth-child(3){grid-column:1;grid-row:3;}
.explore-choice:nth-child(4){grid-column:2;grid-row:3;}
.explore-choice-book .explore-choice-title{font-size:clamp(11px,2.2vw,16px)}
.explore-choice-book .explore-choice-note{font-size:clamp(9px,1.7vw,13px)}
@media(max-width:380px){.explore-choice-book .explore-choice-title{font-size:11px}.explore-choice-book .explore-choice-note{font-size:9px}}
.explore-choice-about .explore-choice-title,.explore-choice-book .explore-choice-title{font-size:clamp(10px,2.1vw,15px);line-height:1.02}
@media(max-width:380px){.explore-choice-about .explore-choice-title,.explore-choice-book .explore-choice-title{font-size:10px}}
/* Mobile viewport fallbacks, safe-area placement, and comfortable touch targets. */
.broadcast.fullscreen{height:100vh;height:100dvh}
.broadcast.fullscreen .screen-close{top:calc(env(safe-area-inset-top, 0px) + 12px);right:calc(env(safe-area-inset-right, 0px) + 12px)}
.screen-close{min-height:44px}
.screen-controls button{min-width:44px;min-height:44px}

/* A! settings: a small brass control board inside the Wonderboard. */
.settings-toggle{position:absolute;left:3%;bottom:1%;z-index:7;width:clamp(28px,4.5vw,36px);height:clamp(28px,4.5vw,36px);display:grid;place-items:center;padding:3px;color:#ead2ad;background:#241811e8;border:1px solid #bf9463;border-radius:7px;box-shadow:0 2px 8px #0009;touch-action:manipulation}
.settings-toggle svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.settings-toggle:hover{color:#fff0cf;background:#52341fe8}
.settings-toggle:focus-visible{outline:2px solid #ffe2a4;outline-offset:2px}
.sound-toggle{height:clamp(28px,4.5vw,36px);display:grid;place-items:center;padding:0 9px;z-index:7}
.settings-panel[hidden]{display:none!important}
.transmission.is-settings-panel{padding:0;align-items:stretch;justify-content:stretch;text-align:left;overflow:hidden}
.transmission.is-settings-panel::after{display:none}
.transmission.is-settings-panel>.wonderboard,.transmission.is-settings-panel>.slot-machine,.transmission.is-settings-panel>.tune-panel,.transmission.is-settings-panel>.choice-panel,.transmission.is-settings-panel>.explore-panel,.transmission.is-settings-panel>.book-reader,.transmission.is-settings-panel>.frequency,.transmission.is-settings-panel>h1,.transmission.is-settings-panel>p,.transmission.is-settings-panel>.signal-mark,.transmission.is-settings-panel>.signal-links,.transmission.is-settings-panel>.screen-controls{display:none!important}
.transmission.is-settings-panel>.settings-panel{position:absolute;inset:0;z-index:10;display:block!important;overflow:hidden;color:#fff1d6;background:#100d0be8}
.settings-stage{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}
.settings-console{position:relative;width:min(100%,160vh);max-height:100%;aspect-ratio:1586/992;overflow:hidden;color:#fff1d6}
.settings-art{position:absolute;inset:0;background:url('./assets/a-settings-console-controls.webp') center/100% 100% no-repeat}
.settings-header{position:absolute;z-index:2;top:17.2%;left:12%;right:12%;height:6.6%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-shadow:0 2px 6px #000,0 0 10px #000}
.settings-kicker{display:none}
.settings-kicker{font:700 clamp(8px,1vw,15px)/1.1 Arial,sans-serif;letter-spacing:.13em;color:#efc990}
.settings-header h2{margin:3px 0 0;font:700 clamp(16px,1.8vw,28px)/1 Georgia,'Times New Roman',serif}
.settings-header>button{position:absolute;right:-9%;top:50%;transform:translateY(-50%);width:clamp(26px,2.5vw,44px);height:clamp(26px,2.5vw,44px);display:grid;place-items:center;padding:0;border:1px solid #edc47e;border-radius:50%;background:#211810e8;color:#fff2d9;font:24px/1 Arial,sans-serif}
.settings-header>button:focus-visible{outline:2px solid #fff0c9;outline-offset:2px}
.settings-grid{position:absolute;inset:0}
.settings-card{position:absolute;z-index:1;top:25%;height:26.5%;width:38%;min-width:0}
.settings-card-left{left:10%}
.settings-card-right{left:52%}
.settings-card:nth-child(3),.settings-card:nth-child(4){top:52%}
.settings-copy{position:absolute;top:28%;display:flex;flex-direction:column;justify-content:center;width:38%;height:45%;min-width:0;padding:0;text-align:center;text-shadow:0 1px 4px #090603,0 0 7px #090603;overflow:hidden}
.settings-card-left .settings-copy{left:18%}
.settings-card-right .settings-copy{left:44%}
.settings-label{display:block;color:#ffe0a9;font:700 clamp(8px,1vw,14px)/1.05 Arial,sans-serif;letter-spacing:.08em;white-space:normal}
.settings-readout{display:block;margin-top:2px;color:#ffd27e;font:700 clamp(9px,1.15vw,17px)/1.05 'Courier New',monospace;letter-spacing:0;white-space:normal;overflow-wrap:anywhere;max-height:2.1em;overflow:hidden}
.settings-control{position:absolute;top:2%;width:44%;height:94%;display:block;padding:0;border:0;border-radius:48%;background:transparent;touch-action:manipulation;cursor:pointer}
.settings-card-left .settings-control{left:58%}
.settings-card-right .settings-control{left:0}
.settings-control:focus-visible{outline:3px solid #fff0c9;outline-offset:3px;box-shadow:0 0 15px #ffc765aa}
.settings-control:active{background:radial-gradient(ellipse,#ffc34c28 0%,#ffc34c10 48%,transparent 72%)}
.settings-hint{position:absolute;z-index:2;left:9%;right:9%;bottom:2.5%;height:6%;display:grid;place-items:center;margin:0;color:#ffe6bb;font:600 clamp(8px,1vw,15px)/1.1 Arial,sans-serif;text-align:center;text-shadow:0 1px 5px #000,0 0 8px #000;overflow:hidden}
.broadcast.fullscreen .settings-header{top:3%}
.broadcast.fullscreen .settings-kicker{font-size:clamp(12px,1.1vw,19px)}
.broadcast.fullscreen .settings-header h2{font-size:clamp(22px,2vw,36px)}
.broadcast.fullscreen .settings-header>button{width:clamp(34px,3vw,48px);height:clamp(34px,3vw,48px);font-size:32px}
.broadcast.fullscreen .settings-label{font-size:clamp(12px,1vw,18px)}
.broadcast.fullscreen .settings-readout{font-size:clamp(15px,1.3vw,24px)}
.broadcast.fullscreen .settings-hint{font-size:clamp(12px,1vw,18px)}
@media(prefers-reduced-motion:reduce){.settings-toggle{transition:none!important}}

/* Low-cost, decorative light motion layered over the still Ranger Camp artwork. */
.camp-atmosphere{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.camp-lantern{position:absolute;display:block;mix-blend-mode:screen;filter:blur(3px);opacity:.55;animation:lantern-glow 4.8s ease-in-out infinite}
.camp-lantern-high{left:77%;top:-1%;width:17%;height:12%;background:radial-gradient(ellipse at 53% 48%,rgba(255,187,91,.44) 0%,rgba(255,133,47,.2) 38%,transparent 76%)}
.camp-lantern-side{left:-4%;top:29%;width:14%;height:13%;background:radial-gradient(ellipse at 44% 52%,rgba(255,179,83,.42) 0%,rgba(255,123,38,.19) 42%,transparent 76%);animation-duration:5.7s;animation-delay:-1.9s}
.moon-ripple{position:absolute;left:88%;top:46.5%;width:12%;height:17%;display:block;border-radius:48%;background:radial-gradient(ellipse at 58% 12%,rgba(203,227,255,.32),transparent 43%),repeating-linear-gradient(178deg,transparent 0 8px,rgba(196,223,255,.32) 9px 10px,transparent 11px 17px);filter:blur(.35px);opacity:.3;mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 84%,transparent 100%);animation:moon-water-sparkle 3.7s ease-in-out infinite}
@keyframes lantern-glow{0%,100%{opacity:.38;filter:blur(3px) brightness(.92)}14%{opacity:.61;filter:blur(3.5px) brightness(1.06)}18%{opacity:.49;filter:blur(2.8px) brightness(.98)}47%{opacity:.7;filter:blur(3.4px) brightness(1.1)}53%{opacity:.5;filter:blur(2.7px) brightness(.96)}79%{opacity:.64;filter:blur(3.2px) brightness(1.04)}84%{opacity:.43;filter:blur(3px) brightness(.94)}}
@keyframes moon-water-sparkle{0%,100%{opacity:.17;background-position:0 0,0 0;transform:scaleX(.88)}32%{opacity:.43;background-position:0 0,2px 5px;transform:scaleX(1.03)}68%{opacity:.27;background-position:0 0,-2px 10px;transform:scaleX(.94)}84%{opacity:.52;background-position:0 0,1px 13px;transform:scaleX(1.08)}}
@media(prefers-reduced-motion:reduce){.camp-lantern,.moon-ripple{animation:none!important}.camp-lantern{opacity:.5}.moon-ripple{opacity:.28}}

/* The giant red button is the front door to Ranger Camp. */
.welcome-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 54%,#47301d 0%,#211a14 42%,#100e0c 100%);color:#fff0d2;isolation:isolate;transition:opacity .85s ease,visibility .85s ease}
.welcome-gate[hidden]{display:none!important}.welcome-gate.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.welcome-gate-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 65%,#db722525 0,transparent 56%)}
.welcome-gate-frame{position:relative;width:min(100vw,56.25vh);height:min(100vh,177.7778vw);width:min(100vw,56.25svh);height:min(100svh,177.7778vw);aspect-ratio:9/16;overflow:hidden;border:1px solid #d3a76b90;border-radius:clamp(0px,1vw,14px);box-shadow:0 0 0 5px #241b13,0 0 30px #d87c3245,0 18px 65px #000b;background:#17120e}
.welcome-gate-frame video{display:block;width:100%;height:100%;object-fit:cover}
.welcome-gate-button{position:absolute;left:24%;top:58%;width:52%;height:15%;border:0;border-radius:50%;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.welcome-gate-button::after{content:"";position:absolute;inset:10% 7%;border:3px solid #ffe59c;border-radius:50%;box-shadow:0 0 14px 5px #ffbc33aa,inset 0 0 12px #ffd44a70;opacity:.82;animation:button-invite 1.8s ease-in-out infinite}
.welcome-gate-button:hover::after,.welcome-gate-button:focus-visible::after{opacity:1;box-shadow:0 0 20px 8px #ffbc33dd,inset 0 0 15px #ffd44a99}
.welcome-gate-button:focus-visible{outline:3px solid #fff0c9;outline-offset:3px}.welcome-gate.is-playing .welcome-gate-button{display:none}
.welcome-gate-kicker{position:absolute;top:env(safe-area-inset-top,0);left:0;right:0;margin:0;padding:clamp(8px,2vh,18px) 12px;color:#ffe2ac;text-align:center;font:700 clamp(10px,1.2vw,14px)/1.1 Arial,sans-serif;letter-spacing:.17em;text-shadow:0 2px 8px #000}
.welcome-gate-caption{position:absolute;top:calc(50% + min(50svh,88.8889vw) + 4px);left:12px;right:12px;margin:0;color:#f7dfbb;text-align:center;font:600 clamp(11px,1.35vw,15px)/1.25 Georgia,serif;text-shadow:0 2px 8px #000}
.welcome-gate-skip{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:2;min-height:42px;padding:9px 14px;border:1px solid #c99d65;border-radius:999px;color:#ffedcf;background:#21170fe8;box-shadow:0 2px 15px #0009;font:700 12px/1.1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.welcome-gate-skip:hover,.welcome-gate-skip:focus-visible{background:#47301d;outline:2px solid #ffe6b3;outline-offset:2px}
@keyframes button-invite{0%,100%{transform:scale(.96);opacity:.55}50%{transform:scale(1.04);opacity:1}}
@media(max-width:560px){.welcome-gate-frame{width:min(100vw,56.25vh);height:min(100vh,177.7778vw);width:min(100vw,56.25svh);height:min(100svh,177.7778vw);border-radius:0}.welcome-gate-kicker{font-size:10px}.welcome-gate-caption{font-size:11px}}
@media(orientation:landscape){.welcome-gate-caption{top:50%;left:3vw;right:auto;bottom:auto;width:max(0px,calc((100vw - 56.25svh)/2 - 30px));transform:translateY(-50%);text-align:left}.welcome-gate-skip{top:50%;right:3vw;bottom:auto;transform:translateY(-50%)}}
@media(prefers-reduced-motion:reduce){.welcome-gate-button::after{animation:none;opacity:.9}.welcome-gate,.welcome-gate.is-leaving{transition:none}}

/* First visit and picker fit: scale the portrait camp to the available desktop height. */
@media(min-width:601px){body{padding:16px}.camp{width:min(600px,calc(56.25dvh - 18px))}}
.camp{container-type:inline-size}
.welcome-gate-caption{max-width:min(42rem,calc(100vw - 24px));text-wrap:balance}

/* Keep A!’s short welcome above, and separate from, the camp controls. */
.reply{top:66%;max-height:5.8%;padding:5px 10px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;pointer-events:none;font:600 clamp(12px,2vw,15px)/1.15 Arial,sans-serif}
.reply.is-fading{pointer-events:none}

/* Size the carousel cards to the Wonderboard itself, not the browser window. */
.adventure-picker,.song-picker{container-type:inline-size}
.adventure-picker-content,.song-picker-content{gap:clamp(4px,1.6cqi,8px);padding:clamp(6px,3cqi,14px)}
.adventure-card{grid-template-columns:clamp(32px,9cqi,44px) clamp(72px,21cqi,100px) minmax(0,1fr) clamp(32px,9cqi,44px);gap:clamp(4px,1.2cqi,8px);grid-template-rows:minmax(0,1fr);min-height:0}
.adventure-play-card{height:100%;min-height:0;align-self:stretch;overflow:hidden}
.adventure-picker .adventure-poster{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.adventure-info{min-height:0;max-height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}
.adventure-info h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.adventure-info p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;font-size:clamp(12px,3cqi,14px)}
.adventure-footer{min-height:1.2em}
.adventure-hint{font-size:clamp(11px,2.8cqi,12px);line-height:1.15}
.song-card{grid-template-columns:clamp(32px,9cqi,44px) clamp(114px,33cqi,156px) minmax(0,1fr) clamp(32px,9cqi,44px);gap:clamp(4px,1.2cqi,8px);grid-template-rows:minmax(0,1fr);min-height:0}
.song-play-card{width:100%;height:auto;max-height:100%;aspect-ratio:1;align-self:center;overflow:hidden}
.song-cover{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
.song-info{min-height:0;max-height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}
.song-info h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.song-info p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:clamp(12px,3cqi,14px)}
.song-footer{min-height:1.2em}
.song-hint{font-size:clamp(11px,2.8cqi,12px);line-height:1.15}

@container (max-width:400px){
  .adventure-picker-content,.song-picker-content{padding:6px;gap:4px}
  .adventure-card,.song-card{grid-template-columns:36px minmax(0,1fr) 36px;grid-template-rows:minmax(0,1fr) auto;column-gap:4px;row-gap:3px}
  #adventure-previous,#song-previous{grid-column:1;grid-row:1}
  #adventure-next,#song-next{grid-column:3;grid-row:1}
  #adventure-watch{grid-column:2;grid-row:1;width:auto;max-width:100%;height:100%;aspect-ratio:9/16;justify-self:center}
  #adventure-watch .adventure-poster{width:100%;height:100%}
  .adventure-info{grid-column:1/-1;grid-row:2;max-height:2.7em;display:block;text-align:center}
  .adventure-info h3{font-size:clamp(13px,4.5cqi,16px);-webkit-line-clamp:1}
  .adventure-info p{margin-top:2px;font-size:clamp(11px,3.5cqi,12px);-webkit-line-clamp:1}
  .song-card{grid-template-columns:36px clamp(96px,30cqi,117px) minmax(0,1fr) 36px;grid-template-rows:minmax(0,1fr);column-gap:4px;row-gap:0}
  .song-card #song-previous{grid-column:1;grid-row:1}
  .song-card #song-next{grid-column:4;grid-row:1}
  #song-play{grid-column:2;grid-row:1;width:100%;height:auto;max-width:100%;aspect-ratio:1;justify-self:center}
  #song-play .song-cover{width:100%;height:100%}
  .song-info{grid-column:3;grid-row:1;max-height:100%;display:flex;text-align:left;justify-content:center}
  .song-info h3{font-size:clamp(13px,4.1cqi,16px);-webkit-line-clamp:2}
  .song-info p{margin-top:2px;font-size:clamp(11px,3.2cqi,12px);-webkit-line-clamp:2}
  .adventure-hint,.song-hint{white-space:nowrap;font-size:11px}
}

/* Keep the song carousel arrows the same size as the A! Adventures arrows on phones. */
.adventure-arrow,.song-arrow{width:100%;min-height:44px;aspect-ratio:1}

/* Full-screen phone view: keep both song arrows perfectly square and identical. */
@media (max-width:700px) and (orientation:portrait){
  .broadcast.fullscreen .song-arrow{width:44px;height:44px;min-height:44px;aspect-ratio:1;justify-self:center}
}

/* Compact artwork: three links above two controls, with whole-word wrapping. */
.broadcast:not(.fullscreen) .transmission.is-master-menu .wonderboard-ending{top:auto;bottom:1%;left:2%;right:2%;width:auto;max-width:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:3px}
.broadcast:not(.fullscreen) .transmission.is-master-menu .wonderboard-ending a,.broadcast:not(.fullscreen) .transmission.is-master-menu .wonderboard-ending button{grid-column:span 2;min-height:18px;padding:3px 2px;font-size:clamp(8px,1.1vw,12px);line-height:1.15;white-space:normal;word-break:normal;overflow-wrap:normal}
.broadcast:not(.fullscreen) .transmission.is-master-menu .wonderboard-ending :nth-child(n+4){grid-column:span 3}

/* The approved master jacket remains the shared visual foundation. */
.sleeve-open{position:absolute;right:4%;top:4%;z-index:4;display:flex;align-items:center;gap:8px;padding:5px 9px 5px 5px;min-height:44px;border:1px solid #d9bb85;border-radius:5px;background:#292017ed;color:#ffeac6;font:600 12px Arial,sans-serif}
.sleeve-open img{width:40px;height:40px;object-fit:contain}.sleeve-open[hidden],.record-sleeve[hidden]{display:none!important}
.record-sleeve{position:absolute;inset:0 0 19%;z-index:6;display:flex;flex-direction:column;background:#21170f;color:#342717;text-align:left;perspective:1200px;animation:jacket-open .3s ease both}
.record-sleeve.is-closing{animation:jacket-close .18s ease both;pointer-events:none}
.sleeve-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:8px 16px;background:#302319;color:#f7e5bf;font:700 10px/1.4 Arial,sans-serif;letter-spacing:.08em}
.sleeve-header button{min-height:44px;padding:8px 13px;border:1px solid #c8aa7a;border-radius:5px;background:#4b3623;color:#ffeccc;font:600 14px Arial,sans-serif}
.sleeve-pages{width:100%;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}
.jacket{position:relative;width:100%;aspect-ratio:1672/941;max-width:1800px;margin:auto;isolation:isolate}
.jacket-master{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1}
.jacket-cover{position:absolute;left:8.2%;top:28%;width:21.5%;aspect-ratio:1;transform:rotate(-4deg);box-shadow:0 3px 9px #28150a70}
.album-art{display:block;width:100%;height:100%;object-fit:contain}
.cover-secret-hotspot{position:absolute;min-width:44px;min-height:44px;border:0;background:transparent;cursor:pointer;border-radius:50%}
.cover-secret-hotspot:focus-visible{outline:3px dashed #ffe5ac;outline-offset:2px}
.broadcast .transmission .cover-secret-note{position:absolute;left:2%;right:2%;bottom:0;margin:0;padding:8px;background:#f1d49ef5;border:1px solid #886136;box-shadow:0 3px 12px #0005;color:#342717;font:italic 15px/1.4 Georgia,serif;text-shadow:none;pointer-events:none}
.cover-secret-note[hidden]{display:none!important}
.jacket-attribution{position:absolute;left:14.5%;top:68%;width:14%;height:9%;padding:3px;background:#eec78c;transform:rotate(-5deg);text-align:center;overflow:auto}
.transmission .jacket-attribution h2{font:700 clamp(10px,1vw,17px)/1.15 Georgia,serif;margin:0;color:#342717}
.broadcast .transmission .jacket-attribution p{font:600 clamp(9px,.9vw,15px)/1.25 Georgia,serif;margin:3px 0;color:#342717;text-shadow:none}
.jacket-panel{position:absolute;overflow:hidden;color:#342717}
.jacket-panel-copy{height:100%;overflow:auto;overscroll-behavior:contain;padding:4px 6px;scrollbar-color:#86603c #ebcda2;scrollbar-width:thin}
.jacket-inside{left:33.8%;top:17%;width:24%;height:19.5%}
.jacket-line{left:61.5%;top:16.5%;width:18.5%;height:12%}
.jacket-behind{left:33.7%;top:47%;width:24%;height:23%}
.jacket-thought{left:61.5%;top:44.7%;width:12%;height:16%}
.jacket-follow{left:61.1%;top:69%;width:19%;height:9%}
.transmission .jacket-panel h4{font:700 17px/1.3 Georgia,serif;margin:0 0 8px}
.broadcast .transmission .jacket-panel p{position:static;font:16px/1.45 Georgia,serif;margin:0 0 9px;color:#342717;text-shadow:none}
.jacket-panel blockquote{font:italic 18px/1.4 Georgia,serif;margin:0 0 8px}
.jacket-panel a{display:block;min-height:44px;padding:8px 0;color:#3b2a15;font:700 14px/1.4 Georgia,serif;text-decoration:underline;text-underline-offset:3px}
.broadcast .transmission .jacket-panel .sleeve-caption{font:italic 13px/1.4 Georgia,serif}
.broadcast .transmission .jacket-pressing{position:absolute;left:13%;top:85%;width:17%;font:italic 12px/1.3 Georgia,serif;color:#342717;background:#ebcb98;transform:rotate(-10deg);text-shadow:none}
.transmission.is-record-sleeve>.signal-links,.transmission:has(.sleeve-open:not([hidden]))>.signal-links{display:none!important}
.transmission.is-record-sleeve>.screen-controls{z-index:7}
.broadcast.fullscreen .record-sleeve{inset:0 0 12%;padding-top:52px}
@keyframes jacket-open{from{opacity:0;transform:rotateY(-5deg) scale(.985)}to{opacity:1;transform:none}}
@keyframes jacket-close{from{opacity:1;transform:none}to{opacity:0;transform:rotateY(-5deg) scale(.985)}}
/* Stack the same artwork and content in portrait, with readable paper panels. */
@media(max-width:600px),(hover:none) and (pointer:coarse) and (max-width:950px){
 .jacket{aspect-ratio:auto;padding:56.28% 14px 20px;display:flex;flex-direction:column;gap:14px}
 .jacket-master{height:auto;aspect-ratio:1672/941;inset:0 0 auto}
 .jacket-cover{top:0;transform:translateY(73.3%) rotate(-4deg)}
 .jacket-attribution{top:0;transform:translateY(420%) rotate(-5deg);height:auto;min-height:0;font-size:9px}
 .transmission .jacket-attribution h2{font-size:8px}.broadcast .transmission .jacket-attribution p{font-size:8px}
 .jacket-panel{position:relative;inset:auto;width:100%;height:auto;overflow:visible;padding:18px;background:linear-gradient(100deg,#edcea3,#f4deba 45%,#e7c493);border:1px solid #9d7548;box-shadow:inset 0 0 18px #7e471825,0 3px 8px #0004;border-radius:3px}
 .jacket-panel h3.sr-only{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font:italic 24px/1.2 Georgia,serif;margin:0 0 14px;color:#342717}
 .jacket-panel-copy{overflow:visible;height:auto;padding:0}
 .broadcast .transmission .jacket-panel p{font-size:17px;line-height:1.6}
 .jacket-pressing{display:none}
 .sleeve-header{padding:6px 12px}.sleeve-header>span{max-width:130px}
}
@media(prefers-reduced-motion:reduce){.record-sleeve,.record-sleeve.is-closing{animation:none;transform:none}}
.sleeve-pages{container-type:inline-size}
@media(max-width:600px),(hover:none) and (pointer:coarse) and (max-width:950px){
 .jacket-cover{top:15.76cqw;transform:rotate(-4deg)}
 .jacket-attribution{top:38.27cqw;height:5.1cqw;transform:rotate(-5deg)}
}

.cover-secret-note{animation:secret-unfold .18s ease both;transform-origin:bottom center}
.broadcast .transmission .cover-secret-note p{position:static;margin:0;color:#342717;font:italic 15px/1.4 Georgia,serif;text-shadow:none}
.secret-doodle{display:block;margin-top:7px;text-align:center;font:700 17px/1.2 monospace;color:#38566a}
@keyframes secret-unfold{from{opacity:0;transform:scaleY(.7)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.cover-secret-note{animation:none}}
/* Give a secret note enough room to read above the small portrait cover. */
@media(max-width:600px),(hover:none) and (pointer:coarse) and (max-width:950px){
 .cover-secret-note{left:-15%;right:auto;width:250%;max-width:80cqw;z-index:3}
}
.library-picker[hidden]{display:none!important}
.library-picker{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;gap:12px;padding:58px 18px 18px;background:radial-gradient(ellipse at 50% 40%,#443421,#151d17);color:#ffefd0;overflow:auto;touch-action:pan-y}
.transmission.is-library-picker::after{display:none}
.transmission.is-library-picker>*:not(.library-picker){display:none!important}
.library-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.library-header span{font:700 10px/1.5 Arial,sans-serif;letter-spacing:.08em}.library-header h2{font:700 28px/1.15 Georgia,serif;margin:5px 0}
.library-picker button,.library-return{min-width:44px;min-height:44px;border:1px solid #ba9563;border-radius:7px;background:#302419;color:#ffefd0;font:600 15px Arial,sans-serif}
.library-header button{padding:8px 14px}.library-card{display:grid;grid-template-columns:44px minmax(0,320px) 44px;align-items:center;justify-content:center;gap:16px;min-height:0;flex:1}.library-card>button:not(#library-open){font-size:32px}.library-card button:disabled{opacity:.3;cursor:default}
#library-open{padding:0;overflow:hidden;background:#191d17;min-height:0}#library-cover{display:block;width:100%;height:auto;max-height:45dvh;object-fit:contain}#library-open span{display:block;padding:10px}
.library-info{text-align:center;flex:none}.library-info h3{font:700 24px/1.2 Georgia,serif;margin:0 0 7px}.broadcast .transmission .library-info p{position:static;margin:5px 0;font:15px/1.4 Arial,sans-serif;color:#ead5b4;text-shadow:none}.broadcast .transmission .library-hint{position:static;text-align:center;font:12px/1.4 Arial,sans-serif;color:#d5bc94;margin:0}
.library-return{position:absolute;top:6px;left:8px;z-index:12;padding:8px 14px;background:#2d2419}
.transmission.is-book-reader>.book-reader #book-frame{position:absolute;left:0;right:0;top:54px;bottom:0;width:100%;height:calc(100% - 54px);border:0}
@media(max-width:420px){.library-picker{padding:56px 12px 12px;gap:8px}.library-card{gap:8px;grid-template-columns:44px minmax(0,230px) 44px}.library-header h2{font-size:23px}.library-info h3{font-size:20px}}
.library-picker button:focus-visible,.library-return:focus-visible{outline:3px solid #ffdb92;outline-offset:2px}
/* Lean's paper ticket lives on the jacket, clear of Jimmy and Snowball. */
.jacket-ticket{position:absolute;left:35%;top:86%;width:24%;z-index:8;transform:rotate(-3deg);color:#36281b}
.train-ticket{position:relative;display:block;width:100%;min-width:150px;min-height:64px;perspective:700px;border:0;background:none;padding:0;color:#36281b;cursor:pointer}
.ticket-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 12px;border:2px dashed #9b744a;border-radius:5px;background:linear-gradient(105deg,#dab881,#f0d7a5 48%,#dfbf87);box-shadow:0 3px 8px #23150b66;backface-visibility:hidden;transition:transform .42s ease;font:11px/1.35 Arial,sans-serif;letter-spacing:.045em}
.ticket-front strong{font-size:13px}.ticket-front small{font-size:11px;letter-spacing:0}.ticket-back{transform:rotateY(180deg);font:italic 17px/1.3 Georgia,serif;letter-spacing:0}
.train-ticket.is-turned .ticket-front{transform:rotateY(-180deg)}.train-ticket.is-turned .ticket-back{transform:rotateY(0)}
.train-ticket:focus-visible{outline:3px solid #ffe2a6;outline-offset:4px}
.ticket-keepsake-note{position:absolute;bottom:calc(100% + 14px);left:0;width:350px;max-width:44cqw;max-height:48dvh;overflow:auto;overscroll-behavior:contain;padding:18px;background:linear-gradient(100deg,#ead0a1,#f1deba);border:1px solid #977048;border-radius:3px;box-shadow:0 7px 22px #1c130c80;transform:rotate(3deg)}
.ticket-keepsake-note[hidden]{display:none!important}
.broadcast .transmission .ticket-keepsake-note h3{margin:0 0 12px;font:700 20px/1.25 Georgia,serif;color:#36281b}
.broadcast .transmission .ticket-keepsake-note p{position:static;margin:8px 0;color:#36281b;text-shadow:none;font:15px/1.5 Georgia,serif}
.ticket-keepsake-note blockquote{margin:12px 0;font:italic 21px/1.5 Georgia,serif;border-left:2px solid #987044;padding-left:12px}
.broadcast .transmission .ticket-keepsake-note .sleeve-caption{font:italic 13px/1.4 Georgia,serif}
@media(max-width:600px),(hover:none) and (pointer:coarse) and (max-width:950px){
 .jacket-ticket{position:relative;left:auto;top:auto;width:100%;transform:none;order:6}
 .train-ticket{min-height:76px}.ticket-front strong{font-size:16px}.ticket-face{font-size:12px}
 .ticket-keepsake-note{position:static;width:auto;max-width:none;max-height:none;transform:none;margin-top:14px}
}
@media(prefers-reduced-motion:reduce){.ticket-face{transition:none}}

.train-ticket{min-height:96px}.ticket-back{font-size:16px;line-height:1.3}

/* Speaking voice and delivery are separate, so loading device voices never moves a dial. */
.a-voice-tools{position:absolute;z-index:3;left:9%;right:9%;top:79%;height:10%;display:flex;align-items:center;gap:6px;font:600 clamp(10px,1vw,15px)/1.2 Arial,sans-serif}
.a-voice-tools label{white-space:nowrap}.a-voice-tools select{min-width:0;flex:1;width:0}
.a-voice-tools select,.a-voice-tools button{min-height:32px;max-width:100%;border:1px solid #edc47e;border-radius:6px;background:#211810;color:#fff2d9;font:inherit;padding:5px}
.a-voice-tools button{white-space:nowrap}.a-voice-tools :focus-visible{outline:2px solid #fff0c9;outline-offset:2px}
@media(max-width:480px){.settings-stage{overflow:auto;display:block}.settings-console{min-width:320px;min-height:310px;max-height:none}.a-voice-tools{top:77%;height:14%}.a-voice-tools label{display:none}.a-voice-tools select,.a-voice-tools button{min-height:40px}.settings-hint{height:7%;bottom:1%}}

/* The film contains the entire portrait camp. Preserve every edge and live UI underneath. */
.camp-explanation[hidden]{display:none!important}
.camp-explanation{position:absolute;inset:0;z-index:10000;isolation:isolate;overflow:hidden}
.camp-explanation video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scale(1.055);transform-origin:center;filter:brightness(1.08) saturate(1.22) contrast(1.03);background:#101719;opacity:0;transition:opacity .42s ease;display:block}
.camp-explanation.is-visible video{opacity:1}
.camp-explanation-controls{position:absolute;z-index:2;left:3%;right:3%;bottom:1.5%;display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.camp-explanation-controls button{min-height:44px;min-width:44px;padding:7px 10px;border:1px solid #d8ae70;border-radius:20px;color:#fff1d8;background:#171810e8;font:600 clamp(11px,2.7vw,14px)/1.2 Arial,sans-serif}
.camp-explanation-controls button:focus-visible{outline:3px solid #ffe0a3;outline-offset:2px}
.camp-explanation-message{position:absolute;z-index:3;left:8%;right:8%;bottom:9%;padding:12px;border-radius:8px;background:#171810ef;color:#fff1d8;text-align:center;font:600 14px/1.4 Arial,sans-serif}
@media(prefers-reduced-motion:reduce){.camp-explanation video{transition:none}}

/* Keep both sleeve actions reachable in the compact display as well as fullscreen. */
.sleeve-header{flex-wrap:wrap;gap:6px}
.sleeve-header>span{flex:1;min-width:90px}
.sleeve-header button{flex-shrink:0}
.broadcast:not(.fullscreen) .sleeve-header{padding:4px 6px}
.broadcast:not(.fullscreen) .sleeve-header>span{display:none}
.broadcast:not(.fullscreen) .sleeve-header button{font-size:11px;padding:5px 8px}

/* One shared sleeve control beside playback: the current cover supplies the icon. */
.screen-controls .sleeve-open{position:static;display:grid;place-items:center;padding:2px;gap:0;border-radius:5px;overflow:hidden}
.screen-controls .sleeve-open img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.broadcast:not(.fullscreen) .screen-controls:has(.sleeve-open:not([hidden])){display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;justify-items:center}
.broadcast:not(.fullscreen) .screen-controls:has(.sleeve-open:not([hidden])) #time-label{grid-row:1;grid-column:1;white-space:nowrap;font-size:9px}
.broadcast:not(.fullscreen) .screen-controls:has(.sleeve-open:not([hidden])) #progress{grid-row:1;grid-column:2/5;width:100%}
.broadcast:not(.fullscreen) .screen-controls:has(.sleeve-open:not([hidden])) button{grid-row:2}
.broadcast:not(.fullscreen) .transmission.is-record-sleeve .record-sleeve{bottom:36%}

/* A single illustrated, extensible portrait jacket for phones. The middle of the
   blank artwork stretches behind real text; its cover/vinyl and bottom ink stay intact. */
@media(max-width:600px),(hover:none) and (pointer:coarse) and (max-width:950px){
 .jacket{aspect-ratio:auto;display:flex;flex-direction:column;gap:18px;padding:63cqw 9cqw 28cqw;background:none;min-height:150cqw}
 .jacket::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-style:solid;border-width:61cqw 6.4cqw 25.4cqw;border-image-source:url('./assets/sleeves/master-jacket-vertical.webp');border-image-slice:620 65 260 65 fill;border-image-repeat:stretch}
 .jacket-master{display:none}
 .jacket-cover{position:absolute;left:8cqw;top:6cqw;width:48cqw;height:48cqw;aspect-ratio:1;transform:none;box-shadow:0 3px 9px #28150a70}
 .jacket-attribution{position:relative;inset:auto;width:100%;height:auto;min-height:0;transform:none;padding:0 0 8px;background:none;text-align:left;overflow:visible;order:1}
 .transmission .jacket-attribution h2{font:700 clamp(21px,7cqw,30px)/1.15 Georgia,serif;margin:0 0 8px;overflow-wrap:anywhere}
 .broadcast .transmission .jacket-attribution p{font:600 clamp(14px,4.3cqw,18px)/1.4 Georgia,serif;margin:0;color:#342717;text-shadow:none}
 .jacket-panel{position:relative;inset:auto;width:100%;height:auto;overflow:visible;padding:0 0 20px;background:none;border:0;border-bottom:1px solid #88613655;box-shadow:none;border-radius:0}
 .jacket-inside{order:2}.jacket-line{order:3}.jacket-behind{order:4}.jacket-thought{order:5}.jacket-follow{order:7}
 .jacket-panel h3.sr-only{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font:italic 700 clamp(20px,6cqw,26px)/1.2 Georgia,serif;margin:0 0 16px;color:#342717}
 .jacket-panel-copy{height:auto;overflow:visible;padding:0}
 .broadcast .transmission .jacket-panel p{font-size:clamp(14px,4.3cqw,18px);line-height:1.6}
 .transmission .jacket-panel h4{font-size:clamp(17px,5cqw,21px);line-height:1.3}
 .jacket-panel blockquote{font-size:clamp(18px,5.2cqw,22px);line-height:1.45}
 .jacket-panel a{overflow-wrap:anywhere}
 .broadcast .transmission .jacket-pressing{display:block;position:static;width:auto;transform:none;background:none;color:#533b27;order:8;font:italic 14px/1.4 Georgia,serif}
 .broadcast .transmission .cover-secret-note{left:0;right:auto;width:170%;max-width:82cqw;z-index:3;max-height:65cqw;overflow:auto;pointer-events:auto;transform:none}
 .jacket-ticket{position:relative;inset:auto;width:100%;transform:none;order:6;margin:8px 0;z-index:1}
 .train-ticket{min-width:0;min-height:100px}
 .ticket-keepsake-note{position:static;width:auto;max-height:none;overflow:visible;margin-top:12px}
}

/* A visible, warm invitation: a steady edge plus a slowly opening halo. */
.screen-controls .sleeve-open.is-song-playing{border-color:#ffdda0;animation:sleeve-invitation 3.2s ease-in-out infinite}
@keyframes sleeve-invitation{
 0%,100%{box-shadow:0 0 0 1px #ffc97888,0 0 7px 2px #efb76866}
 45%{box-shadow:0 0 0 3px #ffd28ecc,0 0 19px 5px #efb768bb}
 80%{box-shadow:0 0 0 8px #ffc97800,0 0 10px 2px #efb76877}
}
@media(prefers-reduced-motion:reduce){.screen-controls .sleeve-open.is-song-playing{animation:none;box-shadow:0 0 0 2px #ffd28eaa,0 0 12px 3px #efb76899;border-color:#ffdda0}}


/* Song metadata travels with the controls, leaving cover lettering unobstructed. */
.radio-now-playing{display:none}
.transmission[data-radio-playing=true]>#frequency,.transmission[data-radio-playing=true]>#track-title,.transmission[data-radio-playing=true]>#track-artist{display:none}
.transmission[data-radio-playing=true] .radio-now-playing{display:flex;position:absolute;bottom:calc(100% + 10px);left:0;right:0;flex-direction:column;gap:3px;text-align:left;pointer-events:none;text-shadow:0 1px 4px #000,0 2px 9px #000;background:linear-gradient(90deg,#101719bb,#10171955);border-radius:5px;padding:6px 8px}
#radio-title{font:600 clamp(11px,2.1vw,17px)/1.15 Georgia,serif;color:#fff2d9;overflow-wrap:anywhere}
#radio-artist{font:400 clamp(9px,1.7vw,13px)/1.2 Arial,sans-serif;color:#ead2af;overflow-wrap:anywhere}
.broadcast.fullscreen #radio-title{font-size:clamp(17px,3vw,26px)}
.broadcast.fullscreen #radio-artist{font-size:clamp(12px,2vw,17px)}
.transmission.is-record-sleeve .radio-now-playing{display:none}

/* Give larger phone covers their own row so the song details retain room. */
@container (max-width:600px){
 .broadcast.fullscreen .song-card{grid-template-columns:42px minmax(0,1fr) 42px;grid-template-rows:minmax(0,1fr) auto;gap:6px}
 .broadcast.fullscreen .song-card #song-previous{grid-column:1;grid-row:1}
 .broadcast.fullscreen .song-card #song-next{grid-column:3;grid-row:1}
 .broadcast.fullscreen #song-play{grid-column:2;grid-row:1;width:min(100%,51cqi,315px);max-height:100%;aspect-ratio:1}
 .broadcast.fullscreen .song-card .song-info{grid-column:1/-1;grid-row:2;text-align:center;max-height:none;align-items:center}
 .broadcast.fullscreen .song-card .song-info h3,.broadcast.fullscreen .song-card .song-info p{white-space:normal}
 .broadcast.fullscreen #song-play .song-cover{width:100%;height:100%;max-height:none;aspect-ratio:1;object-fit:contain}
}

/* Keep film navigation together immediately above the existing playback row. */
.screen-controls .master-film-controls{top:auto;bottom:calc(100% + 10px);left:0;right:0;justify-content:center;gap:8px}
.broadcast .screen-controls .master-film-controls button{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;width:auto;height:auto;min-width:76px;min-height:44px;border-radius:999px;padding:8px 12px}

/* An opaque backing between the camp and expanded Wonderboard films/pickers.
   Keep the media dimensions intact while masking any exposed camp edge. */
.camp:has(.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true]))::after{content:"";position:absolute;inset:0;z-index:19;background:#000;pointer-events:auto}
.broadcast.fullscreen:has(.transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true])),.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true]),.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true])>.wonderboard{background:#000}

/* A! Adventures: title above, a larger portrait preview, then the story note. */
.broadcast .adventure-picker .adventure-card{grid-template-columns:clamp(36px,9cqi,56px) minmax(0,1fr) clamp(36px,9cqi,56px);grid-template-rows:auto minmax(min(62cqi,420px),1fr) auto;gap:8px;min-height:0;overflow-y:auto;overflow-x:hidden;align-items:center;padding:4px 2px}
.broadcast .adventure-picker .adventure-info{display:contents}
.broadcast .adventure-picker #adventure-title{grid-column:1/-1;grid-row:1;display:block;margin:0;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:clamp(15px,4.5cqi,30px);line-height:1.15}
.broadcast .adventure-picker #adventure-note{grid-column:2;grid-row:3;display:block;justify-self:center;width:100%;max-width:none;margin:0 auto;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:clamp(14px,calc(3cqi + 2px),19px);line-height:1.3}
.broadcast .adventure-picker #adventure-previous{grid-column:1;grid-row:2;align-self:center}
.broadcast .adventure-picker #adventure-next{grid-column:3;grid-row:2;align-self:center}
.broadcast .adventure-picker #adventure-watch{grid-column:2;grid-row:2;align-self:center;justify-self:center;width:auto;height:100%;max-width:100%;max-height:100%;aspect-ratio:9/16}
.broadcast .adventure-picker #adventure-watch .adventure-poster{width:100%;height:100%;max-height:none;aspect-ratio:9/16;object-fit:contain}

/* Reclaim the removed instruction row for the adventure preview. */
.adventure-picker .adventure-picker-content{grid-template-rows:auto minmax(0,1fr) auto}

/* Keep story sorting alongside the heading, clear of the fullscreen close button. */
.adventure-picker .adventure-header{justify-content:flex-start;gap:12px}
.adventure-picker .adventure-header>div{min-width:0;flex:0 1 auto}
.broadcast.fullscreen .adventure-header{padding-right:calc(52px + env(safe-area-inset-right,0px))}
.broadcast.fullscreen .adventure-sort-label select{max-width:clamp(104px,28cqi,160px)}

/* Cover the entire viewport as well as the camp when an expanded film is open.
   The camp's existing inner backing masks its UI; this outer layer masks sides. */
body:has(.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true])){background:#000}
body:has(.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true]))::before{content:"";position:fixed;inset:0;z-index:0;background:#000;pointer-events:none}
.camp:has(.broadcast.fullscreen .transmission:is(.is-master-wonderboard,.is-us,.is-adventure-picker,.is-choice-panel,.is-library-picker,.is-welcome,[data-radio-playing=true])){z-index:1}

/* Release the camp's container/clipping while Adventures uses viewport fullscreen.
   Every adventure shares this frame; minimizing restores the compact container. */
.camp:has(.broadcast.fullscreen .transmission.is-us){container-type:normal;overflow:visible}
.broadcast.fullscreen:has(.transmission.is-us){position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none}

/* A small shared fullscreen overscan for all A! Adventure films. */
.broadcast.fullscreen .transmission.is-us #wonderboard-video{transform:scale(1.04);transform-origin:center center}

/* Center arrow buttons in their side columns and glyphs inside their circles. */
.broadcast .adventure-picker .adventure-card{grid-template-columns:clamp(44px,9cqi,56px) minmax(0,1fr) clamp(44px,9cqi,56px)}
.broadcast .adventure-picker .adventure-arrow{display:grid;place-items:center;justify-self:center;align-self:center;width:100%;height:auto;min-width:44px;min-height:44px;aspect-ratio:1;padding:0;text-align:center;line-height:1}

/* Leave a little daylight between the library cover and its navigation arrows. */
#library-previous,#library-next{display:grid;place-items:center;width:44px;height:44px;padding:0;line-height:1;text-align:center}
#library-previous{justify-self:start;transform:translateX(-6px)}
#library-next{justify-self:end;transform:translateX(6px)}
#library-open{min-width:0;max-width:100%}

/* Fireside Chat shares the Wonderboard and never replaces its player. */
.fireside-chat{position:absolute;inset:0;z-index:40;background:#050b14;overflow:hidden;text-align:left;color:#fff4dc;cursor:default}.fireside-chat[hidden]{display:none}
.fireside-stage{position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;height:100%;width:min(100%,760px);margin:auto;background:linear-gradient(#07112538,#07112505 65%,#07112555),url('./assets/fireside-chat.webp') center/cover no-repeat}
.fireside-head{display:flex;align-items:flex-start;gap:8px;padding:16px;background:linear-gradient(#031023ed,#03102340);min-width:0}.fireside-head>div{flex:1;min-width:0}.fireside-head h2{font:700 23px Georgia,serif;margin:0;color:#ffda95}.fireside-head p{font:14px/1.4 Georgia,serif;margin:5px 0}
.fireside-chat button{min-width:44px;min-height:44px;border:1px solid #cfa16a88;border-radius:8px;background:#102c30;color:#fff4dc;font:600 17px system-ui;cursor:pointer}.fireside-chat button:focus-visible,.fireside-chat input:focus-visible,.fireside-chat textarea:focus-visible{outline:3px solid #ffd98d;outline-offset:2px}
.fireside-messages{position:relative;overflow:auto;overscroll-behavior:contain;padding:12px 18px 70px;scrollbar-color:#bc955e #0a1b2a;min-height:0}.fireside-messages article{width:fit-content;max-width:92%;padding:10px 14px;margin:0 0 12px;background:#071724df;border:1px solid #ffc98145;border-radius:12px;box-shadow:0 3px 12px #0003;overflow-wrap:anywhere;font:16px/1.5 system-ui}.fireside-messages strong{font-size:13px;color:#ffd08c}.fireside-messages p{margin:3px 0 0;white-space:pre-wrap}.fireside-empty{padding:18px;background:#081a2ad9;border-radius:12px;font:18px/1.5 Georgia,serif}
.fireside-new{justify-self:center;margin:0 0 8px;padding:5px 12px}.fireside-new[hidden]{display:none}
.fireside-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:linear-gradient(#34231b,#181713);border-top:2px solid #ad7545;box-shadow:0 -4px 20px #0009}.fireside-form label{font:12px/1.3 system-ui;color:#f1d3a8;min-width:0}.fireside-alias{grid-column:1/-1;max-width:230px}.fireside-form input,.fireside-form textarea{display:block;box-sizing:border-box;width:100%;margin-top:3px;padding:8px 10px;border:1px solid #baa37a77;border-radius:7px;background:#0b1318;color:#fff;font:16px/1.4 system-ui;resize:none}.fireside-form input::placeholder,.fireside-form textarea::placeholder{color:#b7b6b1}.fireside-form button{align-self:end;padding:8px 13px;background:#086351}.fireside-form button:disabled{opacity:.6;cursor:wait}.fireside-form>p{grid-column:1/-1;margin:0;font:12px/1.4 system-ui;color:#e7cfae}
.broadcast:has(.transmission.is-fireside)>.screen-close{display:none}.broadcast.fullscreen:has(.transmission.is-fireside){position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#000}.camp:has(.broadcast.fullscreen .transmission.is-fireside){container-type:normal;overflow:visible}body:has(.broadcast.fullscreen .transmission.is-fireside){background:#000}
@media(max-height:480px){.fireside-head{padding:6px 12px}.fireside-head p{display:none}.fireside-form{grid-template-columns:150px minmax(0,1fr) auto;padding:6px 12px}.fireside-alias{grid-column:auto}.fireside-form>p{grid-column:1/-1;font-size:11px}.fireside-form textarea{height:44px}.fireside-messages{padding-bottom:12px}}
@media(prefers-reduced-motion:reduce){.fireside-chat *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
#fireside-chat .fireside-head p{font:14px/1.4 Georgia,serif;margin:5px 0}#fireside-chat .fireside-messages p{font:16px/1.5 system-ui;margin:3px 0 0}#fireside-chat .fireside-form>p{font:12px/1.4 system-ui;margin:0}

/* The album invitation follows song metadata just above the playback controls. */
.artist-project-invitation{display:none;position:relative;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;padding:6px 9px;border:1px solid #c69d6566;border-radius:8px;background:#0c151ae6;text-align:left;pointer-events:auto;text-shadow:none}
.transmission[data-radio-playing=true]:not(.is-record-sleeve):not(.is-fireside) .artist-project-invitation:not([hidden]){display:flex}
.broadcast .transmission .artist-project-invitation p{flex:1;min-width:0;margin:0;color:#ead2af;font:13px/1.35 Georgia,serif}
.artist-project-link{display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;min-height:44px;max-width:170px;padding:6px 9px;border:1px solid #c69d6588;border-radius:7px;color:#ffe0aa;font:600 13px/1.3 system-ui;text-decoration:none;overflow-wrap:anywhere}
.artist-project-link:hover{background:#25352eed;color:#fff2cf}.artist-project-link:focus-visible{outline:3px solid #ffe0aa;outline-offset:2px}
@media(max-width:480px){.artist-project-invitation{gap:8px;padding:5px 7px}.artist-project-link{max-width:112px;font-size:12px}.broadcast .transmission .artist-project-invitation p{font-size:12px}}
.broadcast:not(.fullscreen) .artist-project-invitation{gap:6px;padding:4px 6px}.broadcast:not(.fullscreen) .transmission .artist-project-invitation p{font-size:10px;line-height:1.25}.broadcast:not(.fullscreen) .artist-project-link{min-height:32px;max-width:100px;font-size:10px;padding:5px}

/* At rest, the fullscreen welcome keeps its onward links up by the X. */
.broadcast.fullscreen .transmission.is-welcome:not(:is(.is-explore-panel,.is-choice-panel,.is-tune-panel,.is-settings-panel,.is-book-reader,.is-library-picker,.is-slot-machine,.is-fireside))>.signal-links{display:grid;top:calc(env(safe-area-inset-top,0px) + 64px);bottom:auto;left:calc(env(safe-area-inset-left,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);max-height:35dvh;width:auto;max-width:800px;margin-left:auto;margin-right:auto}

/* A quiet way back when a recording loses its signal. */
.media-recovery{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:#08130fdf;cursor:default;text-align:center}.media-recovery[hidden]{display:none}
.media-recovery-card{width:min(100%,420px);max-height:100%;overflow:auto;padding:22px;border:1px solid #c69d65;border-radius:14px;background:#17241f;box-shadow:0 12px 36px #0006;color:#fff0d5}
.media-recovery .media-recovery-card h2{font:600 clamp(18px,4vw,26px)/1.2 Georgia,serif;margin:0 0 12px;color:#ffe0a5}
.media-recovery .media-recovery-card p{font:15px/1.5 system-ui;margin:0 0 18px;color:#ead9c1}
.media-recovery-card>div{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.media-recovery button{min-height:44px;padding:9px 16px;border:1px solid #d1b383;border-radius:8px;background:#294b3c;color:#fff0d5;font:600 15px system-ui}.media-recovery button:disabled{opacity:.65}.media-recovery button:focus-visible{outline:3px solid #ffe0a5;outline-offset:3px}
#camp-explanation:has(>.media-recovery:not([hidden])){opacity:1;visibility:visible}
.broadcast:not(.fullscreen) .media-recovery{padding:8px}.broadcast:not(.fullscreen) .media-recovery-card{padding:12px}.broadcast:not(.fullscreen) .media-recovery .media-recovery-card h2{font-size:17px;margin-bottom:6px}.broadcast:not(.fullscreen) .media-recovery .media-recovery-card p{font-size:12px;margin-bottom:8px}
.broadcast .transmission #media-recovery-copy{font:15px/1.5 system-ui;margin:0 0 18px;max-width:none}
.broadcast:not(.fullscreen) .transmission #media-recovery-copy{font-size:12px;margin-bottom:8px}

/* Playback, selection screens, and the welcome/rest view share opaque backing. */
.camp:has(.broadcast.fullscreen .transmission:is([data-radio-playing=true],.is-choice-panel,.is-library-picker,.is-welcome)){container-type:normal;overflow:visible}
.broadcast.fullscreen:has(.transmission:is([data-radio-playing=true],.is-choice-panel,.is-library-picker,.is-welcome)){position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;background:#000}

/* Module doorway: an opaque layer in the existing display, loaded only on demand. */
.explore-choice[hidden]{display:none!important}
.module-portal{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#080c0b;color:#fff2d9;font:16px/1.5 Arial,sans-serif;text-align:center;overflow:hidden}
.module-portal header{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));flex:none;background:#171e19;border-bottom:1px solid #a78252}
.module-portal h2{flex:1;text-align:left;font:700 clamp(16px,3vw,24px) Georgia,serif;margin:0}
.module-portal button{min-width:44px;min-height:44px;color:#fff2d9;background:#30291e;border:1px solid #ba965e;border-radius:8px;padding:8px 12px}
.module-portal button:focus-visible{outline:3px solid #ffd18b;outline-offset:-3px}
.module-portal [data-content]{flex:1;min-height:0;position:relative;overflow:auto;padding-bottom:env(safe-area-inset-bottom)}
.module-portal [role=status]:not(:empty){padding:20px;max-width:42ch;margin:0 auto}
.module-portal iframe{position:absolute;inset:0;border:0;width:100%;height:100%;background:#080c0b}
.module-portal [hidden]{display:none!important}
.broadcast.has-module>.screen-close{display:none!important}
.camp:has(.broadcast.has-module.fullscreen){container-type:normal;overflow:visible}
.camp:has(.broadcast.has-module.fullscreen)::after{content:"";position:absolute;inset:0;z-index:19;background:#000;pointer-events:auto}
.broadcast.has-module.fullscreen{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;background:#000;z-index:30}

/* Both show choices share the first trail; the song picker keeps its own row. */
.tune-show-options{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);min-height:0;gap:4px}
.tune-show-options .tune-choice{padding-inline:4px}
.tune-show-options .tune-shuffle{border-left:1px solid #eac58770;border-radius:0 12px 12px 0;background:#21180c35}
.broadcast.fullscreen .tune-show-options .tune-choice{padding-inline:6px}

/* Honor explicit hidden state: the generic image display rule otherwise reveals old artwork. */
.wonderboard>img[hidden],.wonderboard>video[hidden]{display:none!important}
.transmission.is-master-wonderboard>.wonderboard{background:#000}
.broadcast.fullscreen .transmission.is-us .wonderboard{background:#000}
