/* Camera setup: live picture and game art remain separate layers. */
#setup-dialog.setup-modal{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:clamp(18px,2.2vw,36px) clamp(20px,4.5vw,86px);border:0;border-radius:0;overflow:auto;background:linear-gradient(90deg,#030c1def 0%,#061126e3 35%,#06122965 68%,#06112666),url('/assets/menu/camera-setup-world.png') center/cover;color:#fff;box-shadow:none}
#setup-dialog::backdrop{background:#020712}
body.camera-overlay-active #setup-dialog.setup-modal{background:linear-gradient(90deg,#030c1df7 0%,#061126e9 38%,#061229b7 72%,#061126a0),url('/assets/menu/camera-setup-world.png') center/cover}
.setup-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:60px}.setup-brand{display:flex;align-items:center;gap:16px}.setup-modal .close-button{position:static;display:flex;align-items:center;justify-content:center;gap:12px;width:auto;height:56px;padding:0 20px;border-radius:12px;background:#09182ed9;font-size:30px}.setup-modal .close-button span{font:800 16px var(--display);letter-spacing:.05em}
.setup-content{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(400px,1.15fr);align-items:center;gap:clamp(26px,4vw,80px);min-height:min(65dvh,680px);max-width:1740px;margin:auto}.setup-copy{position:relative;z-index:1}.setup-modal .eyebrow{font-size:clamp(13px,1.3vw,19px);color:#62dfff}.setup-kicker{margin-top:clamp(34px,7vh,85px);font:800 clamp(18px,1.7vw,24px) var(--display);letter-spacing:.11em;color:#69dfff}.setup-modal h2{font:900 clamp(70px,7vw,132px)/.82 var(--display);margin:12px 0 24px;letter-spacing:.015em;text-shadow:0 6px 25px #000c}.setup-modal h2 em{font-style:normal;color:#70dbff}.setup-modal .modal-intro{max-width:650px;font-size:clamp(20px,1.75vw,29px);line-height:1.25;margin:0;color:#ecf8ff;text-shadow:0 2px 14px #000}.setup-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}.setup-tips span{position:relative;display:flex;min-height:140px;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:22px 12px 16px;border:1px solid #66d6ff82;border-radius:12px;background:#07182dbb;text-align:center;font-size:clamp(14px,1.12vw,18px);line-height:1.13;box-shadow:0 10px 25px #0005}.setup-tips b{position:absolute;top:-11px;left:-8px;width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#a7f2ff;color:#06182d;font:900 18px var(--display)}.setup-tips i{font-style:normal;font-size:32px;color:#8deeff;text-shadow:0 0 17px #20c8ff}
.setup-visual{min-width:0;animation:setup-appear .7s ease both}.setup-modal .camera-preview{position:relative;width:100%;height:auto;aspect-ratio:16/10;margin:0;border:3px solid #81eaff;border-radius:32px;background:linear-gradient(145deg,#173d597d,#031224ad),url('/assets/menu/camera-setup-world.png') 70% 45%/cover;box-shadow:0 0 12px #22cfff,0 0 45px #11baff88,0 20px 55px #0009;overflow:hidden}.setup-modal .camera-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);opacity:0;transition:opacity .35s}.setup-modal .camera-preview.active video{opacity:1}.setup-modal .body-guide{position:absolute;inset:13% 23%;display:grid;place-items:center;opacity:.45;pointer-events:none}.setup-modal .camera-preview.active .body-guide{display:none}.setup-modal .body-guide svg{height:68%;width:68%;fill:none;stroke:#77dcff;stroke-width:5;filter:drop-shadow(0 0 15px #16c5ff)}.setup-modal .preview-label{position:absolute;left:22px;bottom:20px;padding:9px 13px;border-radius:7px;background:#061426da;color:#fff;font:800 clamp(14px,1.1vw,19px) var(--display);letter-spacing:.07em}.setup-recognized{position:absolute;right:20px;top:20px;padding:12px 16px;border:1px solid #55f3c0;border-radius:10px;background:#061d2de8;color:#8dffd7;font:900 clamp(13px,1vw,18px) var(--display);letter-spacing:.07em;opacity:0;transform:translateY(-8px);transition:.3s}.camera-preview.active .setup-recognized{opacity:1;transform:none}.setup-corner{position:absolute;width:50px;height:50px;border:3px solid #8deaff;opacity:.65;pointer-events:none}.setup-corner-a{top:8%;left:8%;border-right:0;border-bottom:0}.setup-corner-b{right:8%;bottom:8%;border-left:0;border-top:0}.setup-visual-caption{margin-top:13px;text-align:center;color:#c2edff;font:800 clamp(15px,1.25vw,20px) var(--display);letter-spacing:.09em;text-shadow:0 2px 12px #000}
.setup-bottom{max-width:1420px;margin:12px auto 0;text-align:center}.setup-modal .camera-status{min-height:26px;margin:8px auto 14px;color:#bceaff;font-size:clamp(15px,1.2vw,19px)!important}.setup-modal .camera-status.error{color:#ffc1b5}.setup-controls{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.setup-modal .button{min-height:clamp(76px,9vh,104px);margin:0;font:900 clamp(22px,2vw,34px) var(--display);letter-spacing:.025em}.setup-modal .button span{margin-left:12px}.setup-modal .button.secondary{background:#041e36df;border-color:#35bdfa;color:#eef9ff}.setup-modal .permission-note{margin:15px 0 0;color:#8fd2e8;font-size:15px}.setup-advanced{max-width:420px;margin:6px auto 0;color:#acd9ec;font-size:14px}.setup-advanced summary{cursor:pointer}.setup-advanced .sensitivity-row{margin:10px auto}.setup-countdown{position:fixed;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;pointer-events:none;background:#020c1b45}.setup-countdown strong{font:900 clamp(140px,24vw,340px)/.9 var(--display);color:#9aeaff;text-shadow:0 0 40px #04c7ff,0 10px 35px #000;animation:setup-pulse .9s ease-in-out infinite}.setup-countdown span{font:900 clamp(22px,3vw,46px) var(--display);letter-spacing:.1em;text-shadow:0 4px 20px #000}.setup-modal.camera-ready #camera-start{animation:setup-button-glow 1.6s ease-in-out infinite alternate}
@keyframes setup-appear{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@keyframes setup-pulse{50%{transform:scale(1.1);filter:brightness(1.25)}}@keyframes setup-button-glow{to{box-shadow:0 0 40px #28dcffb0}}
@media(max-width:1000px){#setup-dialog.setup-modal{padding:18px 22px}.setup-content{grid-template-columns:1fr 1fr;gap:18px;min-height:0;margin-top:20px}.setup-modal h2{font-size:clamp(60px,8vw,90px)}.setup-kicker{margin-top:20px}.setup-tips{margin-top:24px}.setup-tips span{min-height:115px}.setup-modal .camera-preview{aspect-ratio:4/3}.setup-bottom{margin-top:20px}}
@media(max-width:700px){#setup-dialog.setup-modal{padding:14px 18px 24px}.setup-header{min-height:48px}.setup-brand{font-size:18px}.setup-brand-mark{font-size:35px}.setup-modal .close-button{height:44px;padding:0 12px;font-size:24px}.setup-modal .close-button span{font-size:13px}.setup-content{display:flex;flex-direction:column;align-items:stretch;gap:18px;margin-top:14px}.setup-kicker{margin-top:15px;font-size:16px}.setup-modal h2{font-size:clamp(56px,15vw,86px);margin:7px 0 12px}.setup-modal .modal-intro{font-size:18px}.setup-tips{gap:7px;margin-top:20px}.setup-tips span{min-height:85px;padding:15px 5px 8px;font-size:12px}.setup-tips b{width:26px;height:26px;font-size:14px;top:-7px;left:-4px}.setup-tips i{font-size:22px}.setup-modal .camera-preview{max-height:28dvh;aspect-ratio:16/9;border-radius:18px}.setup-visual-caption{font-size:13px;margin-top:7px}.setup-bottom{margin-top:15px}.setup-controls{grid-template-columns:1fr;gap:10px}.setup-modal .button{min-height:62px;font-size:23px}.setup-modal .camera-status{margin:6px 0 10px}.setup-modal .permission-note{font-size:12px}}
@media(max-height:720px) and (min-width:701px){.setup-content{min-height:0;margin-top:8px}.setup-modal h2{font-size:clamp(58px,6vw,88px)}.setup-kicker{margin-top:12px}.setup-tips{margin-top:16px}.setup-tips span{min-height:90px}.setup-modal .camera-preview{max-height:45dvh}.setup-modal .button{min-height:60px}}
@media(prefers-reduced-motion:reduce){.setup-visual,.setup-countdown strong,.setup-modal.camera-ready #camera-start{animation:none}}

.setup-modal .body-guide{inset:auto 23% 0;height:77%;align-items:end}
.setup-modal .body-guide svg{height:100%}
