@font-face{font-family:GFLUI;src:url('/fonts/gfl-ui-regular.ttf')}*{box-sizing:border-box}body{margin:0;background:#101820;color:#edf2ee;font:14px GFLUI,'Segoe UI',sans-serif}button,select{font:inherit;border:1px solid #53636a;background:#1d2b33;color:#e8eeeb;border-radius:4px;padding:8px;cursor:pointer}header{padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:2px solid #c3c850;background:#142127}.eyebrow{color:#cbd179;font-size:10px;letter-spacing:2px}h1{font-size:20px;margin:4px 0}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}label{font-size:12px;color:#bdc9ca}#relay{position:relative;isolation:isolate;overflow:hidden;height:calc(100dvh - 140px);min-height:300px;background:#13212b}#landscape{position:absolute;inset:-2% -15%;background-size:cover;background-position:center;animation:pan 50s linear infinite alternate}#shade{position:absolute;inset:0;background:linear-gradient(#08274255,#0519241c 55%,#0a25266b)}#party-stage{position:absolute;inset:10% 3% 70px;display:flex;align-items:end;justify-content:center;pointer-events:none}.actor{position:absolute;bottom:0;width:23%;height:65%;pointer-events:none}.actor canvas{display:block;width:100%;height:100%;pointer-events:none}.actor.error{display:none}.transmission{position:absolute;left:16px;top:18px;display:flex;flex-direction:column;align-items:start;z-index:3}.transmission b{background:#cad54c;color:#263126;font-size:17px;padding:0 6px}.transmission span{font-size:12px;background:#e4e6d0;color:#263126;padding:1px 6px}.transmission small{margin-top:7px;color:#e9e9cf}#scanlines{position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,#132e361a 0px,#132e361a 1px,transparent 1px,transparent 4px);box-shadow:inset 0 0 100px #071522aa}#event-caption{position:absolute;left:16px;right:16px;top:90px;max-width:620px;z-index:5;background:#0b181dcc;border-left:3px solid #c3ce72;padding:9px 14px;opacity:0;transition:opacity .4s;pointer-events:none}#event-caption.visible{opacity:1}#event-caption p{margin:4px 0;line-height:1.5}#event-time{color:#d5d999;font-size:10px}#timeline{position:absolute;bottom:0;left:0;right:0;height:60px;display:flex;align-items:end;justify-content:space-around;padding:16px 20px 6px;background:repeating-linear-gradient(130deg,#090f12 0px,#090f12 8px,#253032 8px,#253032 12px);border-top:8px solid #132329;z-index:5}#timeline span{background:#10191edb;padding:3px 8px;font-size:15px}#time-progress{position:absolute;top:0;left:0;height:4px;width:0;background:#cbd46b}footer{display:flex;gap:14px;justify-content:space-between;padding:9px 16px;font-size:11px;color:#a4b7bc}footer details{max-width:440px}footer p{line-height:1.6}#feed{position:fixed;right:12px;top:90px;bottom:80px;width:min(420px,calc(100% - 24px));background:#101e27ef;border:1px solid #667562;z-index:10;padding:14px;overflow:auto}#feed h2{font-size:17px}#feed-entries p{line-height:1.6;border-bottom:1px solid #3d5056;padding-bottom:12px}#feed-entries small{display:block;color:#c5cd85}#encounter-prop{position:absolute;right:10%;bottom:85px;max-width:16%;max-height:24%;z-index:2}.paused #landscape{animation-play-state:paused}@keyframes pan{from{transform:translateX(-4%)}to{transform:translateX(4%)}}[hidden]{display:none!important}@media(max-width:600px){header{padding:8px;display:block}h1{font-size:16px}.controls{gap:5px;margin-top:6px}button,select{font-size:11px;padding:6px}#relay{height:calc(100dvh - 165px);min-height:280px}#event-caption{font-size:12px;max-width:85%;top:80px}footer{flex-wrap:wrap;font-size:10px}.actor{width:33%;height:55%}#timeline span{font-size:10px;padding:2px}#feed{top:115px}.transmission b{font-size:13px}}@media(orientation:landscape) and (max-height:550px){header{padding:5px 12px}h1{font-size:14px}.eyebrow{display:none}#relay{height:calc(100dvh - 90px);min-height:200px}.actor{height:85%}#event-caption{top:55px;font-size:11px;max-width:55%}.transmission{top:10px}#timeline{height:35px;padding-top:4px}#party-stage{bottom:40px}footer{font-size:10px}}

.actor canvas{position:absolute;left:-200px;top:-200px;width:calc(100% + 400px)!important;height:calc(100% + 400px)!important}.actor{overflow:visible}#party-stage{overflow:visible}

.rta-mark{position:absolute;right:16px;top:18px;width:62px;height:32px;z-index:5;image-rendering:auto}

/* Recovered material bands are layered independently, not flattened story art. */
#landscape{inset:0;background:none;animation:none;transform:none}.scene-layer{position:absolute;left:0;right:0;background-repeat:repeat-x;background-size:auto 100%;pointer-events:none}.scene-layer.far{bottom:30%;height:75%;z-index:0}.scene-layer.near{bottom:27%;height:68%;z-index:1}.scene-layer.ground{bottom:0;height:43%;z-index:0;background-size:auto 100%}.scene-layer.foreground{bottom:22%;height:108%;z-index:3}.scene-layer.sky{top:0;height:70%;z-index:0}#relay{background:linear-gradient(#16364c,#39675d)}#relay[data-area=Snowfield]{background:linear-gradient(#7395c0,#d0ddeb)}#relay[data-area=Wasteland]{background:linear-gradient(#7f7d7c,#a59172)}#shade{background:linear-gradient(#142d4b55,transparent 70%)!important;z-index:1;pointer-events:none}#party-stage{inset:12% 2% 70px}.actor{height:78%;width:24%}.actor canvas{filter:brightness(.94)}.actor-emote{position:absolute;left:50%;top:0;z-index:5;background:#f4f4e8;color:#354449;border-radius:50%;font-size:24px;line-height:1.5;min-width:40px;text-align:center;box-shadow:0 2px 3px #0004}.actor-emote:after{content:"";position:absolute;bottom:-8px;left:10px;border-top:12px solid #f4f4e8;border-right:10px solid transparent}#encounter-prop{z-index:4;max-width:25%;max-height:35%;right:25%;bottom:70px}@media(max-width:600px){.actor{width:32%;height:75%}.actor-emote{font-size:15px;min-width:25px}#party-stage{bottom:60px}.scene-layer.near{height:65%}.scene-layer.foreground{height:100%}}@media(orientation:landscape) and (max-height:550px){#party-stage{bottom:40px}.actor{height:85%}.actor-emote{font-size:14px;min-width:24px}#encounter-prop{bottom:40px}}

#manual-scene{max-width:min(360px,75vw)}header{flex-wrap:wrap}body{display:flex;flex-direction:column;min-height:100dvh}#relay{flex:1;min-height:300px;height:calc(100dvh - 190px)}.controls input{accent-color:#cbd179}

.scene-scrub{padding:4px 18px;background:#142127}.scene-scrub label{display:flex;gap:12px;align-items:center}.scene-scrub input{flex:1;accent-color:#cbd179}.script-prop{position:absolute;width:18%;max-height:55%;object-fit:contain;transform-origin:center bottom;pointer-events:none;z-index:2}#transmission-choice{max-width:100%;width:100%}.actor-emote.native-emoji{width:56px;height:56px;background-size:contain;background-repeat:no-repeat;background-color:transparent;box-shadow:none}.actor-emote.native-emoji:after{display:none}

.actor-emote.native-emoji{background-color:#f4f4e8;border-radius:50%;background-size:85%;background-position:center}.actor-emote.native-emoji:after{display:block}

/* Preserve the native 16:9 render target on narrow and wide windows. */
#relay{background:#080d11!important}#landscape{overflow:hidden}#party-stage{inset:0!important}.actor{height:78%}

/* Native transparent scenery planes have explicit compositing stages. */
#landscape{z-index:0}#party-stage{z-index:2}#foreground{position:absolute;overflow:hidden;pointer-events:none;z-index:3}#shade,#scanlines{display:none}.actor canvas{filter:none}.native-ground{position:absolute;inset:0;width:100%;height:100%}.native-scenery-layer{position:absolute;background-repeat:repeat-x;pointer-events:none}.transmission,.rta-mark{z-index:6}#event-caption{z-index:7}#timeline{z-index:8}



#prop-stage{position:absolute;inset:0;z-index:3;pointer-events:none}#foreground{z-index:4}

/* Keep both decoded native masks around an opaque loading hold. */
#scene-transition{position:absolute;inset:0 auto 0 0;z-index:30;width:300%;transform:translateX(-33.3334%);background:linear-gradient(to right,transparent 33.33%,#0d1010 33.33%,#0d1010 66.67%,transparent 66.67%);pointer-events:auto;will-change:transform}
#scene-transition:before,#scene-transition:after{content:'';position:absolute;top:0;bottom:0;width:33.334%;background-size:100% 100%;background-repeat:no-repeat}
#scene-transition:before{left:0;background-image:url('assets/scenery/0000000000000001.png')}
#scene-transition:after{right:0;background-image:url('assets/scenery/0000000000000002.png');transform:scaleX(-1)}
#transition-label{position:absolute;left:35%;top:45%;max-width:25%;color:#cbd179;padding:24px;text-align:center}

#echelon-bar{display:flex;align-items:center;gap:16px;padding:6px 18px;background:#142127}#echelon-slots,#echelon-draft{display:flex;gap:8px}#echelon-slots .echelon-card{width:48px;height:64px}#echelon-slots .echelon-card span{display:none}
#echelon-editor{width:min(1100px,96vw);max-height:92dvh;padding:0;background:#d4d7ce;color:#101820;border:2px solid #d8b24d}#echelon-editor::backdrop{background:#000b}#echelon-editor header{position:sticky;top:0;color:#eee}#echelon-editor h2{margin:4px}#echelon-editor footer{position:sticky;bottom:0;align-items:center;background:#142127}#echelon-ok{background:#e6b747;color:#101820;font-size:20px;padding:15px 28px}.echelon-tools{display:flex;flex-wrap:wrap;gap:8px;padding:12px}.echelon-tools label{color:#142127}.echelon-tools input{max-width:180px;padding:8px}#echelon-hint{padding:0 12px}#echelon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;padding:12px;max-height:48dvh;overflow:auto}.echelon-card{position:relative;width:100%;height:160px;overflow:hidden;padding:0;border:2px solid #c6a14b;border-radius:0;background:#27333b;color:#f1d27e;font-size:30px}.echelon-card img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}.echelon-card span{position:absolute;bottom:0;left:0;right:0;background:#101820dc;color:#fff;font-size:13px;padding:4px}.echelon-card:disabled{opacity:.4}.echelon-card:hover{border-color:#fff}#echelon-draft .echelon-card{width:70px;height:90px}@media(max-width:600px){#echelon-grid{grid-template-columns:repeat(3,1fr)}#echelon-draft{gap:4px}#echelon-draft .echelon-card{width:42px;height:64px}#echelon-ok{padding:10px}#echelon-bar{padding:4px}}

body.ambient{display:block;min-height:0;height:100dvh;overflow:hidden}.ambient>header,.ambient>#echelon-bar,.ambient>.scene-scrub,.ambient>footer,.ambient>#feed,.ambient>#echelon-editor{display:none!important}.ambient #relay{height:100dvh;min-height:0;width:100vw}.ambient #timeline,.ambient .transmission,.ambient .rta-mark{display:none}

/* Scale the face, white bubble and tail together, including small radio previews. */
.actor-emote.native-emoji{padding:calc(var(--bubble-size,40px)*.13);background-origin:content-box;background-size:contain;background-position:center;background-repeat:no-repeat;box-shadow:none;line-height:1}
.actor-emote.native-emoji:after{display:block;content:'';width:0;height:0;left:24%;bottom:calc(var(--bubble-size,40px)*-.14);border-top:calc(var(--bubble-size,40px)*.22) solid #f4f4e8;border-right:calc(var(--bubble-size,40px)*.18) solid transparent}

#scene-transition:before,#scene-transition:after{background-position:center top}

/* Overscan the mask vertically so its irregular upper silhouette stays above the frame. */
#scene-transition:before,#scene-transition:after{top:-45%;bottom:-10%;background-size:100% 100%}

#scene-workshop{display:inline-block;color:#e8eeeb;background:#1d2b33;border:1px solid #53636a;border-radius:4px;padding:8px;text-decoration:none}#scene-workshop:hover{border-color:#e6c17b;color:#e6c17b}

body.workshop{display:block;height:100dvh;min-height:0;overflow:hidden}.workshop>header,.workshop>#echelon-bar,.workshop>.scene-scrub,.workshop>footer,.workshop>#feed{display:none!important}.workshop #relay{height:100dvh;min-height:0;width:100vw}.workshop .transmission,.workshop .rta-mark,.workshop #timeline{display:none}

#hoc-presentation{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(135deg,#e6e9ed,#b1c0ce)}#hoc-panels{position:absolute;inset:20% 0;display:flex}#hoc-panels>div{flex:1;position:relative;background:linear-gradient(135deg,#eef0f4aa,#b4c2d5aa);border-right:5px solid #101820;transform:skewX(5deg)}#hoc-panels span{position:absolute;bottom:4%;left:5%;font-size:clamp(16px,3vw,38px);font-weight:bold;color:#3d4952;text-shadow:1px 1px white}#hoc-presentation .hoc-mask{position:absolute;left:0;right:0;height:20%;background:#080b0e}#hoc-presentation .top{top:0}#hoc-presentation .bottom{bottom:0}#hoc-presentation .hoc-phase{position:absolute;top:14%;right:4%;z-index:1;color:white;font-size:clamp(15px,2.6vw,34px);font-weight:bold}.hoc-cutin-active #prop-stage,.hoc-cutin-active #foreground{visibility:hidden}#hoc-cutins{padding:10px;border:1px solid #52636b;margin:12px 0}

.hoc-cutin-active .script-prop{visibility:hidden}
