:root{color:#f7f4ec;font-synthesis:none;text-rendering:optimizelegibility;background:#171815;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.58}.app{color:#f7f4ec;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 14px max(16px, env(safe-area-inset-bottom));background:radial-gradient(circle at 12% 12%,#299d8f2e,#0000 22rem),linear-gradient(145deg,#171815 0%,#26251f 52%,#121411 100%);place-items:center;display:grid;position:relative;overflow:hidden}.topbar{z-index:30;top:max(10px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;left:12px;right:12px}.room-pill,.phase-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fffaf0;background:#141612bd;border:1px solid #fff3;border-radius:8px;align-items:center;gap:7px;min-height:38px;padding:0 10px;font-size:.88rem;font-weight:700;display:inline-flex}.connection-dot{background:#9a9386;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 4px #ffffff1f}.connection-dot.is-connected{background:#50c878}.connection-dot.is-connecting{background:#e0aa3e}.connection-dot.is-offline{background:#ef6a4d}.lobby-panel,.result-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1c1d18e0;border:1px solid #ffffff29;border-radius:8px;width:min(430px,100%);box-shadow:0 24px 60px #00000057}.lobby-panel{gap:16px;padding:28px 18px 18px;display:grid}.eyebrow{color:#e0aa3e;text-transform:uppercase;margin:0 0 7px;font-size:.72rem;font-weight:800}h1,h2{letter-spacing:0;margin:0}h1{max-width:11em;font-size:clamp(2rem,9vw,3.35rem);line-height:.98}h2{font-size:1.4rem}.field{color:#d8d2c6;gap:7px;font-size:.84rem;font-weight:700;display:grid}.field input,.join-row input{color:#fffaf0;background:#ffffff14;border:1px solid #ffffff29;border-radius:8px;outline:none;width:100%;min-height:48px;padding:0 13px}.field input:focus,.join-row input:focus{border-color:#2f9c95;box-shadow:0 0 0 3px #2f9c9542}.room-actions,.join-row{grid-template-columns:1fr .62fr;gap:9px;display:grid}.primary-button,.ghost-button,.start-button,.tool-button,.pose-button{border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:46px;font-weight:800;display:inline-flex}.primary-button,.start-button{color:#081210;background:#2f9c95}.ghost-button{color:#fffaf0;background:#ffffff1c;border:1px solid #ffffff29}.start-button{background:#e0aa3e;width:100%;min-height:52px}.compact{min-width:94px}.player-list{gap:7px;display:grid}.player-row{color:#eee7da;background:#ffffff14;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:38px;padding:0 10px;font-size:.86rem;display:flex}.role-preview{color:#fffaf0b8;background:#e0aa3e1f;border:1px solid #e0aa3e3d;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:0 12px;font-size:.82rem;font-weight:900;display:flex}.role-preview strong{color:#e0aa3e;text-overflow:ellipsis;white-space:nowrap;max-width:58%;overflow:hidden}.modifier-preview{color:#fffaf0b8;background:#2f9c951f;border:1px solid #2f9c9542;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px;min-height:44px;padding:7px 12px;font-size:.8rem;font-weight:900;display:grid}.modifier-preview strong{color:#a9fff1;text-align:right}.modifier-preview small{color:#fffaf09e;text-overflow:ellipsis;white-space:nowrap;grid-column:span 2;overflow:hidden}.game-shell{background:#141511;place-items:center;display:grid;position:fixed;inset:0}.three-scene{z-index:1;touch-action:none;background:#10120f;position:fixed;inset:0;overflow:hidden}.three-scene canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.scene-loading{z-index:2;color:#fffaf0;background:radial-gradient(circle at 50% 58%,#2f9c952e,#0000 24rem),linear-gradient(145deg,#10120f,#1d2019 58%,#0f110e);place-items:center;gap:12px;font-weight:900;display:grid;position:fixed;inset:0}.scene-loading:before{content:"";border:5px solid #fffaf033;border-top-color:#e0aa3e;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.three-scene:after{content:"";z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 58%,#0000 0 25%,#0000002e 68%,#0000007a 100%),linear-gradient(#ffffff0a,#0000 30%,#00000038);position:absolute;inset:0}.three-scene:before{content:"";z-index:4;left:var(--move-pad-x,calc(max(22px, env(safe-area-inset-left)) + 44px));top:var(--move-pad-y,calc(100dvh - max(10px, env(safe-area-inset-bottom)) - 200px));pointer-events:none;opacity:.42;background:radial-gradient(circle at calc(50% + var(--move-x,0px)) calc(50% + var(--move-y,0px)), #fffaf0eb 0 14px, #2f9c958c 15px 22px, transparent 23px), radial-gradient(circle, #14161238, #1416127a);border:1px solid #fffaf040;border-radius:50%;width:88px;height:88px;transition:opacity .14s,transform .14s;position:fixed;transform:translate(-50%,-50%)scale(.96);box-shadow:0 14px 32px #00000047}.three-scene.is-moving:before{opacity:.95;transform:translate(-50%,-50%)scale(1)}.three-scene.is-preview:after{background:radial-gradient(circle at 50% 55%,#0000 0 42%,#00000042 100%)}.game-shell.is-previewing .topbar,.game-shell.is-previewing .notice-line{display:none}.stage{touch-action:none;width:min(100vw,520px);height:100dvh;min-height:560px;max-height:900px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000038}.stage:after{content:"";pointer-events:none;mix-blend-mode:soft-light;background-color:#0000;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.stage-trim{opacity:.8;height:10px;position:absolute;top:67%;left:0;right:0}.stage-floor{height:32%;position:absolute;bottom:0;left:0;right:0}.stage-patch{z-index:2;border:3px solid;border-radius:8px;position:absolute;box-shadow:0 12px 28px #0000002e}.kind-poster,.kind-screen{border-width:6px}.kind-rug{border-radius:50%}.kind-plant{clip-path:polygon(50% 0,76% 34%,66% 34%,94% 78%,62% 78%,62% 100%,38% 100%,38% 78%,6% 78%,34% 34%,24% 34%);border-radius:0}.avatar-anchor{z-index:9;aspect-ratio:11/14;width:clamp(132px,34vw,190px);position:absolute;transform:translate(-50%,-58%)}.avatar-canvas{touch-action:none;width:100%;height:100%;display:block}.avatar-canvas.is-preview{filter:saturate(.96)}.tap-mark{z-index:12;color:#ef6a4d;pointer-events:none;background:#ef6a4d2e;border:2px solid #ef6a4d;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;transform:translate(-50%,-50%)}.reveal-marker{z-index:14;color:#15120b;background:#e0aa3e;border-radius:8px;padding:7px 9px;font-size:.78rem;font-weight:900;position:absolute;transform:translate(-50%,-50%)}.swatch-rail,.pose-rail{z-index:20;gap:8px;display:grid;position:fixed}.swatch-rail{left:max(10px, env(safe-area-inset-left));top:42%}.pose-rail{right:max(10px, env(safe-area-inset-right));top:22%}.swatch{border:2px solid #ffffffb3;border-radius:50%;width:44px;height:44px;box-shadow:0 8px 18px #00000047}.swatch.is-active{outline-offset:2px;outline:3px solid #e0aa3e}.pose-button{color:#fffaf0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141612b8;border:1px solid #ffffff2e;width:54px;min-height:44px;padding:0 6px;font-size:.76rem}.pose-button.is-active{color:#16130e;background:#e0aa3e}.round-director{z-index:22;left:max(10px, env(safe-area-inset-left));top:calc(max(10px, env(safe-area-inset-top)) + 54px);color:#fffaf0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141612b8;border:1px solid #ffffff29;border-radius:8px;gap:6px;width:160px;padding:8px;display:grid;position:fixed}.round-director.is-seek{background:#181210c2;border-color:#ef6a4d42}.round-director.is-compact{background:#1416128a;gap:5px;width:136px;padding:6px}.round-director.is-compact .coach-modifier,.round-director.is-compact .coach-mission,.round-director.is-compact .coach-steps{display:none}.round-director.is-compact .coach-colors span{width:18px;height:18px}.round-director.is-compact .coach-metric small{display:none}.coach-head{justify-content:space-between;align-items:center;gap:8px;font-size:.78rem;font-weight:900;display:flex}.coach-head>div:first-child{align-items:center;gap:5px;min-width:0;display:inline-flex}.coach-head span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coach-metric{justify-items:end;gap:1px;display:grid}.coach-metric small{color:#fffaf094;font-size:.62rem;font-weight:800}.coach-metric strong{font-size:1.08rem;line-height:1}.coach-toggle{color:#fffaf0;background:#ffffff14;border:1px solid #ffffff24;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}.coach-track{background:#ffffff1f;border-radius:999px;height:8px;overflow:hidden}.coach-track span{border-radius:inherit;background:linear-gradient(90deg,#ef6a4d,#e0aa3e 52%,#2f9c95);height:100%;display:block}.round-director.is-seek .coach-track span{background:linear-gradient(90deg,#2f9c95,#e0aa3e 54%,#ef6a4d)}.coach-colors{gap:6px;display:flex}.coach-colors span{border:2px solid #ffffffb8;border-radius:50%;width:23px;height:23px}.coach-modifier{background:#2f9c9524;border:1px solid #2f9c953d;border-radius:8px;grid-template-columns:minmax(0,1fr);gap:1px;min-height:24px;padding:4px 6px;display:grid}.coach-modifier span,.coach-modifier small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coach-modifier span{color:#a9fff1;font-size:.68rem;font-weight:900}.coach-modifier small{color:#fffaf094;font-size:.57rem;font-weight:750}.coach-mission{background:#e0aa3e1f;border:1px solid #e0aa3e38;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;min-height:36px;padding:5px 7px;display:grid}.coach-mission div{gap:2px;min-width:0;display:grid}.coach-mission span,.coach-mission small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coach-mission span{color:#fffaf0;font-size:.73rem;font-weight:900}.coach-mission small{color:#fffaf09e;font-size:.62rem;font-weight:750}.coach-mission strong{color:#e0aa3e;text-align:right;min-width:34px;font-size:.75rem}.coach-mission.is-complete{background:#2f9c9538;border-color:#2f9c9557}.coach-mission.is-complete strong{color:#a9fff1}.coach-steps{gap:4px;display:grid}.coach-step{color:#fffaf0ad;background:#ffffff14;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-height:20px;padding:0 5px;font-size:.64rem;font-weight:850;display:grid}.coach-step span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coach-step strong{font-size:.66rem}.coach-step.is-current{color:#fffaf0;background:#e0aa3e2e}.coach-step.is-done{color:#d9fff7;background:#2f9c9538}.training-cue{z-index:23;right:max(10px, env(safe-area-inset-right));bottom:calc(max(10px, env(safe-area-inset-bottom)) + 112px);color:#fffaf0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#141612c7;border:1px solid #e0aa3e4d;border-radius:8px;gap:7px;width:min(236px,100vw - 148px);padding:9px 10px;display:grid;position:fixed;box-shadow:0 14px 34px #00000042}.training-cue div{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.training-cue span,.training-cue strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.training-cue span{color:#fffaf0a8;font-size:.66rem;font-weight:850}.training-cue strong{color:#e0aa3e;font-size:.9rem}.training-cue i{background:#ffffff1f;border-radius:999px;height:6px;overflow:hidden}.training-cue b{border-radius:inherit;background:linear-gradient(90deg,#2f9c95,#e0aa3e);height:100%;display:block}.feedback-stack{z-index:34;pointer-events:none;justify-items:center;gap:6px;display:grid;position:fixed;top:48%;left:50%;transform:translate(-50%,-50%)}.feedback-pop{color:#fffaf0;text-align:center;letter-spacing:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141612c7;border:1px solid #ffffff2e;border-radius:999px;min-width:86px;padding:7px 12px;font-size:.82rem;font-weight:950;animation:.95s both feedback-rise;box-shadow:0 12px 28px #00000047}.feedback-pop.is-paint{color:#a9fff1;border-color:#2f9c9561}.feedback-pop.is-scan{color:#bdefff;border-color:#58d7ff6b}.feedback-pop.is-success{color:#ffd978;border-color:#e0aa3e6b}.feedback-pop.is-warn{color:#e0aa3e;border-color:#e0aa3e85}.feedback-pop.is-danger{color:#ff9b86;border-color:#ef6a4d85}@keyframes feedback-rise{0%{opacity:0;transform:translateY(12px)scale(.96)}16%,70%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-16px)scale(.98)}}.tool-dock{z-index:24;left:10px;right:10px;bottom:max(10px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#141612d1;border:1px solid #ffffff2e;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:5px;padding:6px;display:grid;position:fixed;overflow:visible}.tool-button{color:#fffaf0;background:#ffffff1a;border:1px solid #ffffff1f;flex-direction:column;gap:2px;min-width:0;min-height:44px;font-size:.72rem}.tool-button.is-active{color:#061412;background:#2f9c95}.size-control{color:#f1eadf;grid-column:span 2;gap:1px;font-size:.72rem;font-weight:800;display:grid}.size-control input{accent-color:#e0aa3e;width:100%}.scan-count{color:#ffb09f;background:#ef6a4d2e;border:1px solid #ef6a4d61;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:7px;min-width:72px;min-height:46px;font-weight:900;display:inline-flex}.scan-count.is-empty{color:#fffaf0a3;background:#ffffff14;border-color:#ffffff24}.notice-line{z-index:19;left:50%;bottom:calc(max(10px, env(safe-area-inset-bottom)) + 94px);color:#fff7e8;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141612b8;border-radius:8px;place-items:center;max-width:min(92vw,360px);min-height:34px;padding:0 11px;font-size:.82rem;font-weight:800;display:grid;position:fixed;transform:translate(-50%)}.result-panel{z-index:28;left:50%;bottom:max(16px, env(safe-area-inset-bottom));color:#fffaf0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#141612e0;border:1px solid #ffffff29;border-radius:8px;gap:10px;width:min(92vw,430px);padding:14px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 22px 48px #0000006b}.result-summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.result-summary h2{margin:0;font-size:1.05rem;line-height:1.1}.result-summary p{color:#fffaf0ad;margin:4px 0 0;font-size:.76rem;font-weight:700}.result-reveal{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.result-reveal div{background:#ffffff14;border:1px solid #ffffff1a;border-radius:8px;gap:2px;min-width:0;padding:8px;display:grid}.result-reveal span{text-overflow:ellipsis;white-space:nowrap;color:#fffaf094;font-size:.62rem;font-weight:850;overflow:hidden}.result-reveal strong{text-overflow:ellipsis;white-space:nowrap;color:#fffaf0;font-size:.78rem;font-weight:950;overflow:hidden}.result-reveal.is-survived div:first-child{background:#2f9c9529;border-color:#2f9c9552}.result-reveal.is-found div:first-child{background:#ef6a4d29;border-color:#ef6a4d52}.result-badge{border-radius:8px;place-items:center;min-width:48px;min-height:32px;padding:0 8px;font-size:.78rem;font-weight:900;display:inline-grid}.result-badge.is-survived{color:#061412;background:#2f9c95}.result-badge.is-found{color:#1b0b08;background:#ef6a4d}.result-score{text-align:right;color:#e0aa3e;min-width:44px;font-size:1.42rem;line-height:1}.result-scorebox{justify-items:end;gap:2px;min-width:52px;display:grid}.result-scorebox strong{color:#e0aa3e;font-size:1.42rem;line-height:1}.result-scorebox small{color:#fffaf099;white-space:nowrap;font-size:.66rem;font-weight:900}.result-list{gap:7px;display:grid}.result-row{color:#eee7da;background:#ffffff14;border:1px solid #ffffff1a;border-radius:8px;grid-template-columns:minmax(0,1fr) 88px auto;align-items:center;gap:9px;min-height:46px;padding:8px 10px;display:grid}.result-name{gap:2px;min-width:0;display:grid}.result-name span{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:900;overflow:hidden}.result-name small{color:#fffaf09e;font-size:.72rem;font-weight:800}.result-meter{background:#ffffff24;border-radius:999px;height:8px;overflow:hidden}.result-meter i{border-radius:inherit;background:linear-gradient(90deg,#ef6a4d,#e0aa3e 55%,#2f9c95);height:100%;display:block}.result-row strong{text-align:right;min-width:34px;font-size:.8rem}.result-row.is-survived strong{color:#7edfd8}.result-row.is-found strong{color:#ff9f88}.match-board{background:#ffffff12;border-radius:8px;gap:5px;padding:8px;display:grid}.match-board.is-lobby{background:#ffffff0f}.match-board-head,.match-row{grid-template-columns:42px minmax(0,1fr) 44px 54px;align-items:center;gap:7px;display:grid}.match-board-head{color:#fffaf09e;font-size:.66rem;font-weight:900}.match-board-head span{grid-column:span 2}.match-board-head strong{color:#e0aa3e;text-align:right;grid-column:4}.match-row{background:#14161257;border-radius:8px;min-height:26px;padding:0 6px;font-size:.72rem;font-weight:900}.match-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-row small{color:#fffaf094;text-align:right;font-size:.66rem}.match-row b{color:#e0aa3e;text-align:right}@media (width>=760px){.stage{border-left:1px solid #ffffff1f;border-right:1px solid #ffffff1f;height:min(100dvh,860px)}.tool-dock{width:min(620px,100vw - 24px);left:50%;right:auto;transform:translate(-50%)}}
