:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;background:#090909;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#090909}button,input{font:inherit}body{overscroll-behavior:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.stage{--warm:0;--sad:0;position:relative;width:100vw;height:100vh;overflow:hidden;background:#0b0b0b;isolation:isolate;touch-action:none}.camera{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);filter:brightness(calc(1 - var(--sad)*.11 + var(--warm)*.09)) contrast(calc(1 + var(--sad)*.05)) saturate(calc(1 - var(--sad)*.09 + var(--warm)*.12)) sepia(calc(var(--warm)*.06));transition:filter .30s linear;z-index:0}.camera.hidden{visibility:hidden}.fallback-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 25% 16%,rgba(255,230,166,.13),transparent 31%),linear-gradient(135deg,#3b3935,#1b1d1c 55%,#070808)}.sad-wash{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:calc(var(--sad)*.48);background:linear-gradient(180deg,rgba(68,92,96,.10),rgba(16,31,34,.19)),radial-gradient(circle at 50% 44%,transparent 18%,rgba(4,13,15,.23) 100%);mix-blend-mode:multiply}.warm-wash{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:var(--warm);background:radial-gradient(ellipse at 3% 0%,rgba(255,246,196,.76),rgba(255,220,116,.18) 24%,transparent 46%),linear-gradient(125deg,rgba(255,232,150,.15),transparent 48%);mix-blend-mode:screen}.rays{position:absolute;inset:-20%;z-index:2;pointer-events:none;opacity:calc(var(--warm)*.92);transform:rotate(-10deg);transform-origin:0 0;background:conic-gradient(from 132deg at 7% 0%,transparent 0 6deg,rgba(255,238,179,.25) 6deg 14deg,transparent 14deg 19deg,rgba(255,224,131,.16) 19deg 27deg,transparent 27deg 34deg,rgba(255,244,197,.27) 34deg 43deg,transparent 43deg 360deg);filter:blur(14px);mix-blend-mode:screen}.ripple-fx,.rain-fx,.fog-fx,.fx,.hud{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.ripple-fx{z-index:1}.sad-wash{z-index:2}.warm-wash,.rays{z-index:3}.rain-fx{z-index:4}.fog-fx{z-index:5}.fx{z-index:6}.hud{z-index:8}

/* TikTok LIVE inspired shell, restored from the earlier Expression Weather prototype. */
.stream-shell{position:absolute;z-index:12;inset:0;opacity:0;pointer-events:none;transition:opacity .28s ease;text-shadow:0 2px 16px rgba(0,0,0,.62)}.stage[data-mode="CAMERA"] .stream-shell,.stage[data-mode="DEMO"] .stream-shell{opacity:1}.stream-top{position:absolute;top:18px;left:clamp(18px,3.6vw,52px);right:clamp(18px,3.6vw,52px);display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.creator-identity{display:flex;align-items:center;gap:9px;min-width:0}.creator-avatar{display:grid;flex:0 0 auto;width:35px;height:35px;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:linear-gradient(145deg,#d5c4ab,#6d5042);box-shadow:inset 0 0 0 3px rgba(255,255,255,.15),0 4px 18px rgba(0,0,0,.18);color:#211b19;font-size:9px;font-weight:850;letter-spacing:.04em}.creator-title{display:flex;align-items:center;gap:7px;min-width:0;font-size:12px}.creator-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stream-live{padding:3px 5px;border-radius:4px;background:#f04e61;color:white;font-size:8px;font-weight:850;letter-spacing:.08em}.creator-identity p{margin:3px 0 0;color:rgba(255,255,255,.72);font-size:10px}.stream-top-actions{display:flex;align-items:center;gap:8px;pointer-events:auto}.viewer-count{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(10,13,12,.43);backdrop-filter:blur(12px);color:rgba(255,255,255,.89);font-size:10px;font-weight:700}.viewer-count span{color:#e9c6a5;font-size:8px}.icon-button{border:1px solid rgba(255,255,255,.15);cursor:pointer;color:#f7f7fb;padding:8px 10px;border-radius:999px;background:rgba(10,13,12,.46);backdrop-filter:blur(12px);font-size:9px;font-weight:750;letter-spacing:.08em;transition:.16s ease}.icon-button:hover{background:rgba(255,255,255,.14);transform:translateY(-1px)}.icon-button:focus-visible{outline:2px solid #b9d6ff;outline-offset:3px}.stream-actions{position:absolute;right:clamp(16px,3vw,34px);top:50%;display:grid;gap:13px;transform:translateY(-50%);pointer-events:auto}.stream-action{display:grid;width:41px;height:41px;place-items:center;border:0;border-radius:50%;background:rgba(10,13,12,.35);box-shadow:0 4px 18px rgba(0,0,0,.12);color:rgba(255,255,255,.94);cursor:pointer;backdrop-filter:blur(10px);transition:.16s ease}.stream-action:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}.stream-action span{font-size:20px;line-height:16px}.stream-action small{margin-top:-4px;color:rgba(255,255,255,.78);font-size:8px;font-weight:700}.stream-bottom{position:absolute;bottom:clamp(18px,3.4vh,30px);left:clamp(18px,3.6vw,52px);width:min(350px,calc(100vw - 86px));pointer-events:auto}.comment-stack{display:grid;gap:6px;margin-bottom:10px}.comment-stack p{width:fit-content;max-width:100%;margin:0;overflow:hidden;padding:5px 8px;border-radius:8px;background:linear-gradient(90deg,rgba(7,9,8,.45),rgba(7,9,8,.10));color:rgba(255,255,255,.82);font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.comment-stack strong{margin-right:4px;color:#fff;font-weight:750}.message-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:35px;padding:5px 6px 5px 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(9,12,10,.52);backdrop-filter:blur(15px);color:rgba(255,255,255,.62);font-size:10px}.message-bar button{flex:0 0 auto;min-height:25px;padding:0 9px;border:0;border-radius:999px;background:rgba(255,255,255,.13);color:rgba(255,255,255,.93);cursor:pointer;font-size:9px;font-weight:720}

/* Persistent interaction guide: visible, but deliberately parked outside the face focal area. */
.interaction-guide{position:absolute;left:clamp(18px,3.6vw,52px);top:78px;width:282px;padding:13px;border:1px solid rgba(255,255,255,.18);border-radius:17px;background:linear-gradient(145deg,rgba(8,10,10,.62),rgba(8,10,10,.34));box-shadow:0 18px 54px rgba(0,0,0,.24);backdrop-filter:blur(16px);pointer-events:none;transition:opacity .22s ease}.guide-kicker{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 8px;padding:0 4px;color:rgba(255,255,255,.88)}.guide-kicker strong{font-size:14px;line-height:1.1;letter-spacing:.02em}.guide-kicker span{color:rgba(255,255,255,.42);font-size:7px;font-weight:850;letter-spacing:.16em}.guide-row{display:grid;grid-template-columns:31px 1fr;align-items:center;gap:9px;padding:7px 8px;border-radius:11px;color:rgba(255,255,255,.76);transition:background .2s ease,color .2s ease,transform .2s ease}.guide-row+.guide-row{margin-top:2px}.guide-icon{display:grid;width:29px;height:29px;place-items:center;border-radius:50%;background:rgba(255,255,255,.09);font-size:15px}.guide-row strong{display:block;font-size:13px;line-height:1.14;font-weight:760}.guide-row small{display:block;margin-top:3px;color:rgba(255,255,255,.49);font-size:8px;line-height:1.25}.guide-row.is-active{background:rgba(255,255,255,.14);color:#fff;transform:translateX(2px)}.guide-row.is-active .guide-icon{background:rgba(255,255,255,.20);box-shadow:0 0 0 1px rgba(255,255,255,.14),0 0 20px rgba(180,225,255,.12)}.guide-row.is-active small{color:rgba(255,255,255,.79)}

.wipe-hint{position:absolute;left:50%;top:70px;z-index:13;transform:translate(-50%,-8px);opacity:0;transition:.25s ease;padding:8px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(10,14,15,.36);backdrop-filter:blur(10px);font-size:9px;letter-spacing:.03em;color:rgba(255,255,255,.72);pointer-events:none}.wipe-hint.show{opacity:1;transform:translate(-50%,0)}

.debug-panel{position:absolute;z-index:20;top:76px;right:clamp(18px,3.6vw,52px);width:min(342px,calc(100vw - 36px));padding:16px;border:1px solid rgba(203,222,255,.18);border-radius:16px;background:rgba(8,10,20,.72);box-shadow:0 20px 60px rgba(0,0,0,.34);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .16s ease,transform .16s ease}.debug-panel.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.debug-heading{display:flex;align-items:center;justify-content:space-between;color:#dbe7ff;font-size:9px;font-weight:800;letter-spacing:.14em}.debug-live{color:#8ff1c4}.debug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:16px 0 0}.debug-grid div{min-width:0}.debug-grid dt{margin-bottom:4px;color:rgba(220,229,255,.52);font-size:8px;letter-spacing:.07em;text-transform:uppercase}.debug-grid dd{margin:0;overflow:hidden;color:#f8f9ff;font-family:"SFMono-Regular",Consolas,monospace;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.debug-shortcuts{margin-top:13px;color:rgba(220,229,255,.42);font:8px "SFMono-Regular",Consolas,monospace}

.start-layer{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(30,30,30,.48),rgba(2,2,2,.96));transition:opacity .25s ease}.start-layer.hidden{opacity:0;pointer-events:none}.start-card{width:min(580px,calc(100vw - 36px));padding:31px 31px 26px;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:rgba(17,17,17,.74);backdrop-filter:blur(18px);box-shadow:0 28px 90px rgba(0,0,0,.42)}.eyebrow{font-size:8px;letter-spacing:.18em;color:rgba(255,255,255,.45);margin-bottom:10px}.start-card h1{margin:0;font-size:31px;line-height:.98;letter-spacing:-.05em}.start-card p{margin:13px 0 0;color:rgba(255,255,255,.64);font-size:13px;line-height:1.55}.mapping{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.mapping span{font-size:9px;padding:6px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.045);color:rgba(255,255,255,.70)}.actions{margin-top:21px;display:flex;gap:10px;flex-wrap:wrap}.actions button{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:11px 16px;cursor:pointer;color:#fff;background:rgba(255,255,255,.09);font-weight:700;font-size:11px}.actions button.primary{background:#fff;color:#111}.actions button:disabled{opacity:.45;cursor:wait}.start-status{margin-top:15px;min-height:38px;padding:10px 12px;border-radius:10px;font-size:11px;line-height:1.45;color:rgba(255,255,255,.82);background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}
.demo-controls{position:absolute;left:50%;bottom:24px;z-index:21;display:none;gap:7px;flex-wrap:wrap;max-width:calc(100vw - 36px);transform:translateX(-50%)}.demo-controls.show{display:flex}.demo-controls button{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 10px;color:white;background:rgba(0,0,0,.38);backdrop-filter:blur(8px);font-size:9px;cursor:pointer}

@media(max-width:820px){.quality-button{display:none}.interaction-guide{top:66px;width:244px;padding:10px}.guide-kicker strong{font-size:12px}.guide-row{grid-template-columns:27px 1fr;padding:6px}.guide-icon{width:25px;height:25px}.guide-row strong{font-size:11px}.stream-actions{right:12px;gap:9px}.stream-action{width:38px;height:38px}.stream-top{top:13px;left:18px;right:14px}.creator-avatar{width:32px;height:32px}.stream-bottom{bottom:16px;left:16px;width:min(340px,calc(100vw - 78px))}.debug-panel{top:62px;right:10px;width:min(320px,calc(100vw - 20px))}}
@media(max-width:560px){.interaction-guide{left:12px;top:62px;width:224px;padding:9px;background:rgba(8,10,10,.52)}.guide-kicker strong{font-size:11px}.guide-kicker span{font-size:6px}.guide-row strong{font-size:10px}.guide-row small{font-size:7px}.viewer-count{display:none}.stream-top-actions{gap:5px}.icon-button{padding:7px 9px}.comment-stack p:nth-child(1){display:none}.start-card{padding:25px 22px}.start-card h1{font-size:26px}.wipe-hint{top:58px;max-width:60vw;text-align:center}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* v1.3.1 launcher-verification badge. If absent, an older server/build is being shown. */
.build-badge{position:absolute;right:clamp(18px,3.6vw,52px);bottom:clamp(18px,3.4vh,30px);z-index:14;padding:5px 8px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(8,10,10,.46);backdrop-filter:blur(10px);color:rgba(255,255,255,.62);font:700 8px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;pointer-events:none}
@media(max-width:560px){.build-badge{right:10px;bottom:10px;font-size:7px}}
