@font-face{font-family:Pinzelan;src:url(/fonts/pinzelan-italic.ttf) format("truetype");font-display:swap}:root{--background: #0f0b08;--foreground: #f4ead7}*{box-sizing:border-box}html,body{min-height:100%;overflow:hidden}body{margin:0;background:var(--background);color:var(--foreground);font-family:Georgia,Times New Roman,serif}button{font:inherit}.scene{position:relative;width:100vw;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(105,63,31,.42),transparent 44%),linear-gradient(135deg,#080605,#1c100b 54%,#050403);padding:0}.scene:before{content:"";position:absolute;top:-28px;right:-28px;bottom:-28px;left:-28px;background:linear-gradient(#0805037a,#08050394),url(/reference-wall.png) center / cover;filter:blur(18px) saturate(.82) brightness(.46);transform:scale(1.04)}.wall{position:relative;z-index:1;width:min(100vw,162.1vh);max-height:100vh;max-height:100dvh;aspect-ratio:1618 / 998;overflow:hidden;border-radius:0;background:#20130c;box-shadow:none;isolation:isolate}.photoLayer,.dimLayer,.wireLayer,.bulbLayer,.hitLayer{position:absolute;top:0;right:0;bottom:0;left:0}.photoLayer{background-image:url(/reference-wall.png);background-size:cover;background-position:center;filter:saturate(.92) brightness(.72) contrast(1.06);transform:scale(1.006);z-index:1}.dimLayer{z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 43%,transparent 31%,rgba(31,16,8,.24) 62%,rgba(0,0,0,.84) 100%),linear-gradient(180deg,#00000038,#0000006b);mix-blend-mode:multiply}.wireLayer{z-index:3;pointer-events:none;opacity:.68;filter:drop-shadow(0 1px 1px rgba(0,0,0,.75))}.wireLayer path{fill:none;stroke:#100d0be6;stroke-width:.18;stroke-linecap:round}.bulbLayer{z-index:4;pointer-events:none}.bulb{--bulb: #fff3bb;--scale: 1;--delay: 0s;position:absolute;display:grid;place-items:center;width:calc(clamp(38px,4.2vw,84px) * var(--scale));height:calc(clamp(38px,4.2vw,84px) * var(--scale));border:0;border-radius:50%;padding:0;transform:translate(-50%,-50%);background:transparent;opacity:.74;mix-blend-mode:screen;-moz-appearance:none;appearance:none;-webkit-appearance:none;animation:bulbBreathe 3s ease-in-out infinite;animation-delay:var(--delay)}.bulb:before{content:"";position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--bulb) 64%,white) 0%,var(--bulb) 6%,color-mix(in srgb,var(--bulb) 62%,transparent) 23%,color-mix(in srgb,var(--bulb) 30%,transparent) 52%,color-mix(in srgb,var(--bulb) 10%,transparent) 74%,transparent 90%);filter:blur(8px) saturate(1.35);transform:scale(1.02)}.bulb:after{content:"";position:absolute;left:50%;top:50%;width:8%;height:8%;border-radius:50%;transform:translate(-50%,-50%);background:#fffdf2;box-shadow:0 0 2px #ffffffeb,0 0 8px color-mix(in srgb,var(--bulb) 72%,transparent)}.bulb span{position:relative;z-index:1;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#000000ad;color:#fff8de;font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1;text-shadow:none;mix-blend-mode:normal}.isCalibrating.calibratingLights .bulbLayer{pointer-events:auto}.isCalibrating.calibratingLights .hitLayer{pointer-events:none}.bulb.draggable{cursor:grab;outline:1px solid rgba(255,244,211,.62);outline-offset:4px}.bulb.draggable:active{cursor:grabbing}.bulb.lit{opacity:1;animation:none}.bulb.sequenceOff{animation:none;opacity:.08}.bulb.sequenceOff:before,.bulb.sequenceOff:after{opacity:.16}.bulb.lit:before{filter:blur(11px) saturate(1.48) brightness(1.04);transform:scale(1.28);background:radial-gradient(circle,color-mix(in srgb,var(--bulb) 70%,white) 0%,var(--bulb) 7%,color-mix(in srgb,var(--bulb) 72%,transparent) 25%,color-mix(in srgb,var(--bulb) 42%,transparent) 55%,color-mix(in srgb,var(--bulb) 16%,transparent) 78%,transparent 93%)}.bulb.selected:before{animation:letterPulse .88s ease-in-out 2}.bulb.selected:after{animation:corePulse .88s ease-in-out 2}.panic .bulb{animation:panicFlicker .34s steps(2,jump-none) infinite;animation-delay:var(--delay)}.panic .bulb:before{background:radial-gradient(circle,color-mix(in srgb,var(--bulb) 86%,white) 0%,var(--bulb) 8%,color-mix(in srgb,var(--bulb) 96%,transparent) 26%,color-mix(in srgb,var(--bulb) 68%,transparent) 50%,color-mix(in srgb,var(--bulb) 30%,transparent) 72%,transparent 90%)}.panic .bulb:after{width:6%;height:6%;opacity:.72;background:color-mix(in srgb,var(--bulb) 58%,white);box-shadow:0 0 3px color-mix(in srgb,var(--bulb) 80%,white),0 0 11px color-mix(in srgb,var(--bulb) 96%,transparent)}.blackout .bulb{animation:none;opacity:.12}.blackout .bulb:before,.blackout .bulb:after,.blackout .letterHit:before{opacity:0}.hitLayer{z-index:5}.handCursor{position:absolute;z-index:6;display:grid;place-items:center;width:clamp(28px,3vw,54px);aspect-ratio:1 / 1;border:1px solid rgba(255,244,211,.62);border-radius:50%;color:#fff6d8;font-family:Arial,Helvetica,sans-serif;font-size:12px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.28),rgba(255,238,177,.12) 44%,transparent 72%);box-shadow:0 0 12px #ffe8b05c,0 0 28px #ffd97d2e;pointer-events:none}.handCursor.overLetter{border-color:#85e1fff2;box-shadow:0 0 16px #6bdbff99,0 0 36px #6bdbff47}.letterHit{position:absolute;aspect-ratio:1 / 1;border:0;padding:0;color:transparent;background:transparent;cursor:crosshair;border-radius:50%;outline:none;transform:translate(-50%,-50%)}.letterHit span{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;display:grid;place-items:center;color:transparent;font-size:clamp(18px,3.5vw,64px)}.letterHit:before{content:"";position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:48%;background:color-mix(in srgb,var(--letter-color) 70%,transparent);opacity:0;transform:scale(.72);filter:blur(8px);transition:opacity .16s ease,transform .16s ease}.letterHit:hover:before,.letterHit.holding:before{opacity:.28;transform:scale(1)}.letterHit.active:before{opacity:.74;transform:scale(1.18);animation:targetFlash .7s ease-out}.letterHit.holding{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--letter-color) 46%,transparent)}.isCalibrating .letterHit{pointer-events:none}.isCalibrating .letterHit:after{content:attr(data-label);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border:1px solid rgba(255,245,211,.42);border-radius:50%;background:#2411061f;color:#fff8e1c7;font-family:Arial,Helvetica,sans-serif;font-size:10px}.isCalibrating .letterHit.holding:before,.isCalibrating .letterHit:hover:before{opacity:0}.isCalibrating .letterHit{cursor:grab}.isCalibrating .letterHit:active{cursor:grabbing}.console{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:20;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(620px,calc(100vw - 28px));min-height:0;padding:0;transform:translate(-50%);border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.eyebrow{margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:0;text-transform:uppercase;color:#f4e2c575}.messageBox{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:end;width:min(420px,100%);min-width:0;padding:10px 12px 12px 16px;border:0;border-radius:12px;background:#03030394;box-shadow:0 12px 36px #00000047,inset 0 1px #ffffff09;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.messageBox .eyebrow{grid-column:1 / -1}.message{min-width:0;margin:0;font-family:Courier New,monospace;font-size:clamp(18px,2vw,30px);color:#fff2ca;text-shadow:0 0 14px rgba(255,225,165,.34);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messageSend{min-width:58px;min-height:30px;border:0;border-radius:10px;background:#ffffff0f;color:#fff1d8d1;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:600;transition:background .18s ease,color .18s ease,opacity .18s ease}.messageSend:hover{background:#ffffff1a;color:#fff8e8f5}.messageSend:disabled{cursor:default;opacity:.32}.actions{margin-left:0;display:flex;flex-wrap:nowrap;align-items:end;gap:0;flex:0 0 auto;justify-content:center;width:auto;max-width:100%;padding:6px 10px;border:0;border-radius:18px;background:#03030370;box-shadow:0 13px 34px #0000004d,inset 0 1px #ffffff09;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.actions button{width:92px;min-width:0;min-height:32px;border:0;border-radius:13px;background:transparent;color:#fff1d8b3;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:600;letter-spacing:0;transform-origin:center bottom;transition:width .26s cubic-bezier(.2,.9,.2,1),transform .26s cubic-bezier(.2,.9,.2,1),color .18s ease,background .18s ease,text-shadow .18s ease,opacity .18s ease}.phoneRotate{display:none}.connectPanel{position:fixed;left:50%;top:50%;z-index:30;display:grid;place-items:center;width:min(320px,calc(100vw - 40px));padding:22px 22px 18px;transform:translate(-50%,-50%);border:0;border-radius:18px;background:#050505b8;box-shadow:0 24px 80px #00000085,inset 0 1px #ffffff09;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.connectTitle{margin:0 0 6px;color:#fff4e0db;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:600;letter-spacing:0}.connectRoom{margin:0 0 14px;color:#fff2d4;font-family:Courier New,monospace;font-size:20px;font-weight:700;letter-spacing:0;text-shadow:0 0 18px rgba(255,194,89,.38)}.connectPanel img{display:block;width:min(220px,64vw);height:auto;border-radius:10px;box-shadow:0 0 34px #fff0cd1a}.qrLoading{display:grid;place-items:center;width:min(220px,64vw);aspect-ratio:1;border-radius:10px;background:#fff4e014;color:#ffefcf8f;font-family:Courier New,monospace;font-size:28px}.connectClose{position:absolute;right:10px;top:10px;width:28px;height:28px;border:0;border-radius:50%;background:#ffffff0b;color:#ffefcf9e;cursor:pointer;font-family:Arial,Helvetica,sans-serif}.connectHint{margin:15px 0 0;color:#ffefcf6b;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.3;text-align:center}.receiverScreen{position:fixed;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(31,14,9,.52),transparent 42%),#020101;color:#f9efe0;min-height:100vh;min-height:100svh;padding:0}.statsScreen{min-height:100vh;min-height:100dvh;padding:clamp(18px,4vw,48px);overflow:auto;background:radial-gradient(circle at 20% 10%,rgba(112,46,32,.22),transparent 30%),linear-gradient(135deg,#080605,#1a110d 56%,#050403);color:#f6ead7}.statsPanel{width:min(1120px,100%);margin:0 auto}.statsHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.statsHeader h1{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(26px,4vw,44px);letter-spacing:0}.statsHeader button{min-width:92px;min-height:38px;border:0;border-radius:8px;background:#ffebbe1f;color:#fff5e0e6;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:700}.statsError,.statsEmpty{margin:12px 0;color:#ffccb8c7;font-family:Arial,Helvetica,sans-serif;font-size:13px}.statsCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.statsCards article,.statsGrid section{border:1px solid rgba(255,233,196,.08);border-radius:8px;background:#05040380;box-shadow:inset 0 1px #ffffff09;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.statsCards article{padding:14px}.statsCards span,.statsRow span,.statsGrid h2{font-family:Arial,Helvetica,sans-serif}.statsCards span{display:block;margin-bottom:8px;color:#ffefd094;font-size:12px}.statsCards strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,5vw,52px);line-height:1}.statsGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px}.statsGrid section{min-width:0;padding:14px}.statsGrid h2{margin:0 0 12px;font-size:15px;letter-spacing:0}.statsTable{display:grid;gap:1px;overflow:hidden;border-radius:6px;background:#fff4e00f}.statsRow{display:grid;grid-template-columns:1fr .45fr .45fr .9fr;gap:8px;min-width:0;padding:10px;background:#090705db;color:#ffefd3c7;font-size:12px}.statsRow span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statsHead{color:#fff7e6f5;font-weight:700}.receiverNoise{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.04) 4px),radial-gradient(circle at 20% 30%,rgba(255,82,70,.16),transparent 28%),radial-gradient(circle at 80% 62%,rgba(68,212,255,.14),transparent 30%);animation:receiverPulse 5s ease-in-out infinite}.receiverStage{position:absolute;left:50%;top:50%;z-index:1;display:grid;place-items:center;width:100%;height:100%;transform:translate(-50%,-50%)}.receiverWaiting{position:relative;display:grid;gap:8px;color:#ffeecc75;font-family:Courier New,monospace;font-size:18px;font-weight:700;letter-spacing:0;text-align:center;text-shadow:0 0 24px rgba(255,204,120,.2)}.receiverWaiting span{color:#ffeecc47;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:0}.receiverWaiting.receiverError{color:#ff7a60b8}.receiverWord{position:relative;z-index:1;display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(2px,1.3vw,18px);width:auto;max-width:92%;max-height:82%;padding:0;color:#fff2dd;font-family:Pinzelan,Brush Script MT,Segoe Print,Comic Sans MS,cursive;font-weight:400;line-height:.9;white-space:nowrap;text-shadow:0 0 2px rgba(255,248,232,.86),0 0 18px rgba(255,73,54,.86),0 0 54px rgba(255,22,16,.58);transform:rotate(-2deg);opacity:0;animation:receiverSignal 13.8s linear both}.receiverWord span{display:inline-block;animation:receiverLetter 13.8s linear both;animation-delay:calc(var(--i) * 80ms)}.receiverWord span:nth-child(2n){transform:rotate(4deg) translateY(.04em)}.receiverWord span:nth-child(3n){transform:rotate(-6deg) translateY(-.03em)}@keyframes receiverLetter{0%{opacity:0;transform:scale(.82) rotate(-8deg)}4%{opacity:1;transform:scale(1.05) rotate(2deg)}92%{opacity:1}to{opacity:0}}@keyframes receiverSignal{0%,2.2%,4.4%,11.5%,13.7%,15.9%,23%,25.2%,27.4%,34.5%,36.7%,38.9%,46%,48.2%,50.4%,57.5%,59.7%,61.9%,69%,71.2%,73.4%,80.5%,82.7%,84.9%,92%{opacity:1;filter:brightness(1.45)}1.1%,3.3%,5.5%,12.6%,14.8%,17%,24.1%,26.3%,28.5%,35.6%,37.8%,40%,47.1%,49.3%,51.5%,58.6%,60.8%,63%,70.1%,72.3%,74.5%,81.6%,83.8%,86%{opacity:.18;filter:brightness(.72)}7%,19%,31%,43%,55%,67%,79%,90%{opacity:.68;filter:brightness(1.04)}9.2%,21.2%,33.2%,45.2%,57.2%,69.2%,81.2%{opacity:1;filter:brightness(1.72)}to{opacity:0;filter:brightness(.42)}}@keyframes receiverPulse{0%,to{opacity:.08}50%{opacity:.18}}.actions button:hover{color:#fff8e8fa;width:122px;background:#ffffff13;text-shadow:0 0 18px rgba(255,235,196,.54);transform:scale(1.02)}.actions button.connected{color:#96ffbef0;background:#3cff8e17;text-shadow:0 0 16px rgba(78,255,145,.35)}.actions button:disabled{cursor:default;opacity:.38}.actions button:disabled:hover{color:#ffefd3c2;width:92px;background:transparent;text-shadow:none;transform:none}.cameraPanel{position:absolute;z-index:7;display:none;aspect-ratio:4 / 3;min-width:120px;max-width:min(38vw,420px);padding:0;overflow:hidden;border:0;border-radius:10px;background:#060504c7;box-shadow:0 10px 32px #00000057;cursor:move}.cameraPanel.visible{display:block}.cameraPanel video{display:block;width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;transform:scaleX(-1);opacity:.74}.cameraPanel canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.cameraPanel button{position:absolute;right:6px;top:6px;min-width:42px;min-height:24px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#0504039e;color:#fff6dedb;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:10px;opacity:0;transition:opacity .14s ease}.cameraHint{position:absolute;left:10px;right:10px;bottom:8px;margin:0;padding:6px 8px;border-radius:999px;background:#050403b3;color:#fff2d8db;font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1.2;text-align:center;pointer-events:none}.cameraPanel:hover button{opacity:1}.cameraResizeHandle{position:absolute;width:28px;height:28px;opacity:0}.cameraResizeHandle:before{content:"";position:absolute;width:12px;height:12px;border-color:#fff6de8c;border-style:solid}.cameraPanel:hover .cameraResizeHandle{opacity:1}.cameraResizeHandle.nw{left:0;top:0;cursor:nwse-resize}.cameraResizeHandle.ne{right:0;top:0;cursor:nesw-resize}.cameraResizeHandle.sw{left:0;bottom:0;cursor:nesw-resize}.cameraResizeHandle.se{right:0;bottom:0;cursor:nwse-resize}.cameraResizeHandle.nw:before{left:6px;top:6px;border-width:2px 0 0 2px}.cameraResizeHandle.ne:before{right:6px;top:6px;border-width:2px 2px 0 0}.cameraResizeHandle.sw:before{left:6px;bottom:6px;border-width:0 0 2px 2px}.cameraResizeHandle.se:before{right:6px;bottom:6px;border-width:0 2px 2px 0}.cameraRestore{position:fixed;right:clamp(12px,2vw,24px);bottom:clamp(12px,2.5vw,28px);z-index:21;min-width:72px;min-height:34px;border:1px solid rgba(255,226,178,.16);border-radius:999px;background:#0a070594;color:#ffefcfb8;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:11px;opacity:.42}.cameraRestore:hover{opacity:1}.calibrationPanel{position:absolute;z-index:7;width:min(250px,calc(100% - 24px));padding:10px;border:1px solid rgba(255,226,178,.18);border-radius:7px;background:#0a0705b3;box-shadow:0 12px 36px #00000061;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.calibrationPanel.collapsed{width:auto;padding:0;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.panelToggle{position:absolute;left:0;top:-38px;min-width:64px;min-height:30px;border:1px solid rgba(255,226,178,.24);border-radius:6px;background:#0b0705b8;color:#ffeac4;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:12px}.calibrationPanel.collapsed .panelToggle{position:static}.calibrationText{margin:0;color:#ffefcfc7;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.45}.miniActions{display:flex;gap:7px;margin-top:8px}.miniActions button{min-height:31px;border:1px solid rgba(255,226,178,.18);border-radius:6px;background:#ffdea817;color:#ffeac4;cursor:pointer}.miniActions button{flex:1;font-size:11px}.miniActions button:disabled{cursor:not-allowed;opacity:.42}.panelHandle{margin-bottom:8px;cursor:move;-webkit-user-select:none;user-select:none}.panelHandle span{color:#ffefcf8f;font-family:Arial,Helvetica,sans-serif;font-size:11px}.legend{position:absolute;left:18px;right:18px;top:12px;z-index:6;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(9px,.78vw,12px);line-height:1.5;color:#ffeecf94;text-shadow:0 1px 6px rgba(0,0,0,.86);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes letterPulse{0%,to{opacity:.92;filter:blur(5px) brightness(1);transform:scale(1.04)}45%{opacity:1;filter:blur(6px) brightness(1.9);transform:scale(1.28)}}@keyframes bulbBreathe{0%,to{opacity:.46;filter:brightness(.78) saturate(1.06);transform:translate(-50%,-50%) scale(.9)}50%{opacity:.98;filter:brightness(1.45) saturate(1.34);transform:translate(-50%,-50%) scale(1.1)}}@keyframes corePulse{0%,to{opacity:.95;filter:brightness(1);transform:translate(-50%,-50%) scale(1)}45%{opacity:1;filter:brightness(2.2);transform:translate(-50%,-50%) scale(1.55)}}@keyframes panicFlicker{0%,to{opacity:.2;filter:brightness(.62) saturate(1.2)}36%{opacity:1;filter:brightness(1.55) saturate(1.7)}68%{opacity:.64;filter:brightness(1.05) saturate(1.45)}}@keyframes targetFlash{0%{opacity:0;transform:scale(.7)}42%{opacity:.8;transform:scale(1.22)}to{opacity:.2;transform:scale(1)}}@media (max-width: 760px){.scene{display:grid;overflow:hidden;padding:0}.wall{width:min(100vw,162.1svh);max-width:none;min-width:0;aspect-ratio:1618 / 998;border-radius:0;transform-origin:center;transition:width .22s ease,transform .22s ease}.photoLayer{background-size:cover;background-position:center}.console{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:auto;min-height:0;transform:none;align-items:center;flex-direction:column;gap:8px;padding:0}.actions{display:flex;flex-wrap:nowrap;width:auto;max-width:calc(100vw - 20px);margin-left:0;gap:2px;overflow-x:auto;scrollbar-width:none}.actions::-webkit-scrollbar{display:none}.actions button{width:78px;min-height:30px;padding:0 9px;font-size:11px}.actions button:hover{width:78px;transform:none}.actions .phoneRotate{display:block}.message{font-size:19px;white-space:normal;overflow-wrap:anywhere}.connectPanel{position:fixed;left:50%;right:auto;top:50%;bottom:auto;width:min(300px,calc(100vw - 36px));max-height:calc(100svh - 24px);overflow:auto;transform:translate(-50%,-50%)}.connectPanel img{width:min(54vw,190px);height:auto;margin:0 auto}.cameraPanel{min-width:128px;max-width:42vw}.calibrationPanel{width:min(220px,calc(100vw - 24px))}.receiverScreen{padding:0}.statsCards,.statsGrid{grid-template-columns:1fr}.statsHeader{align-items:flex-start;flex-direction:column}.receiverStage{width:100vw;height:100svh;transform:translate(-50%,-50%)}.receiverWord{max-width:88vw;max-height:78svh;padding:0;line-height:.88;gap:clamp(1px,1vw,8px);transform:rotate(-2deg)}}@media (min-aspect-ratio: 1618 / 998){.scene{place-items:start center}.wall{width:100vw;max-height:none}}@media (max-width: 520px){.actions button{width:68px;padding:0 7px;font-size:12px}.receiverWord{max-width:88vw}}@media (max-width: 760px) and (orientation: landscape){.console{width:min(620px,calc(100vw - 24px));min-height:0;flex-direction:column;align-items:center;gap:7px}.actions button{min-height:29px}}@media (orientation: portrait) and (max-width: 760px){.wall{width:min(138vw,162.1svh);transform:translate(-8vw)}.phoneLandscape .wall{position:absolute;left:61%;top:calc((100svh - 174px)/2);width:min(180vw,calc(100svh - 132px));transform:translate(-50%,-50%) rotate(90deg)}.phoneLandscape .console{left:50%;right:auto;top:50%;bottom:auto;z-index:20;width:min(620px,calc(100svh - 28px));transform:translate(-50%,-50%) rotate(90deg) translateY(calc(50vw - 76px));transform-origin:center}.phoneLandscape .messageBox{width:min(420px,100%)}.phoneLandscape .actions{max-width:min(430px,calc(100svh - 32px))}.receiverStage{width:100svh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.receiverWord{max-width:86svh;max-height:82vw;padding:0}}
