@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/cormorant-garamond-latin.woff2)format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:400 500 700;font-display:swap;src:url(/fonts/jost-latin.woff2)format("woff2")}:root{--bg:#1b1928;--panel:#fff;--panel-alt:#f6f7fa;--ink:#1c1b33;--muted:#62627d;--line:#d5d7e2;--accent:#b3206c;--accent-ink:#fff;--floor:#e3c594;--floor-2:#dcbb86;--floor-line:#c7a56f;--floor-ink:#5b4322;--good:#1f7a55;--warn:#c07300;--bad:#b3261e;--suit:#23202e;--skin:#e9c4a1;--hair:#4a3120;--d1:#1f8a8a;--d2:#d08a1d;--d3:#6b4fb3;--d4:#d1583f;--d5:#2f6fb5;--display:"Cormorant Garamond",Georgia,serif;--body:"Jost",system-ui,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14131f;--panel:#1e1d2d;--panel-alt:#27263a;--ink:#ecebf5;--muted:#a09fb8;--line:#34334a;--accent:#ef6aa9;--accent-ink:#1c0a13;--floor:#8f6f40;--floor-2:#87683a;--floor-line:#735730;--floor-ink:#f4e3c4;--good:#5fd0a0;--warn:#f5a623;--bad:#ff8a80;color-scheme:dark}}:root[data-theme=dark]{--bg:#14131f;--panel:#1e1d2d;--panel-alt:#27263a;--ink:#ecebf5;--muted:#a09fb8;--line:#34334a;--accent:#ef6aa9;--accent-ink:#1c0a13;--floor:#8f6f40;--floor-2:#87683a;--floor-line:#735730;--floor-ink:#f4e3c4;--good:#5fd0a0;--warn:#f5a623;--bad:#ff8a80;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{height:100%}body{padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-text-size-adjust:100%;margin:0;font-size:15px;line-height:1.4;overflow:hidden}button{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:10px;min-height:44px;padding:10px 14px}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel))}h1{font-family:var(--display);text-wrap:balance;margin:0;font-size:clamp(2.4rem,8.5vw,4rem);font-style:normal;font-weight:600;line-height:1}h2{font-family:var(--display);margin:0;font-size:1.25rem;font-weight:500}.eyebrow{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem}#app,.screen{height:100%}.site-header{z-index:30;-webkit-backdrop-filter:blur(10px);background:#fffffffa;border-bottom:1px solid #1212121f;width:100%;position:sticky;top:0}.site-header .container{width:100%;max-width:1140px;margin:0 auto;padding:0 1.5rem}.site-header .header-inner{justify-content:space-between;align-items:center;gap:1.5rem;min-height:90px;display:flex}.site-header .brand{align-items:center;text-decoration:none;display:flex}.site-header .brand img{width:auto;height:72px;display:block}.site-header .nav-toggle{display:none}.site-header .site-nav{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.site-header .site-nav a{color:#141414;font-family:var(--body);letter-spacing:.08em;text-transform:uppercase;padding-bottom:.25rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:color .18s;position:relative}.site-header .site-nav a:after{content:"";transform-origin:50%;background:#b58c38;width:100%;height:2px;transition:transform .2s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.site-header .site-nav a:hover,.site-header .site-nav a[aria-current=page]{color:#8c6b24;text-decoration:none}.site-header .site-nav a:hover:after,.site-header .site-nav a[aria-current=page]:after{transform:scaleX(1)}@media (width<=768px){.site-header{z-index:50;position:sticky;top:0}.site-header .header-inner{justify-content:space-between;align-items:center;min-height:72px;padding:.75rem 1.25rem;display:flex;position:relative}.site-header .brand img{width:auto;height:48px}.site-header .nav-toggle{cursor:pointer;color:#141414;z-index:60;background:0 0;border:1px solid #12121229;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:8px;transition:all .2s;display:flex;border-radius:0!important}.site-header .nav-toggle:hover{background:#b58c3814;border-color:#b58c38}.site-header .hamburger-bar{transform-origin:50%;background:currentColor;width:22px;height:2px;transition:transform .25s,opacity .25s;display:block}.site-header .nav-toggle[aria-expanded=true] .hamburger-bar:first-child{transform:translateY(7px)rotate(45deg)}.site-header .nav-toggle[aria-expanded=true] .hamburger-bar:nth-child(2){opacity:0;transform:scaleX(0)}.site-header .nav-toggle[aria-expanded=true] .hamburger-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.site-header .site-nav{-webkit-backdrop-filter:blur(14px);z-index:55;background:#fffffffa;border-bottom:1px solid #1212121f;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:.5rem 0;animation:.22s ease-out menuFadeSlide;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 16px 36px #00000014}.site-header .site-nav.nav-open{display:flex}.site-header .site-nav a{letter-spacing:.08em;text-transform:uppercase;color:#141414;border-bottom:1px solid #1212120f;padding:.95rem 1.75rem;font-size:.95rem;font-weight:600;transition:background-color .18s,color .18s,padding-left .18s;display:block}.site-header .site-nav a:last-child{border-bottom:none}.site-header .site-nav a:after{display:none}.site-header .site-nav a:hover,.site-header .site-nav a[aria-current=page]{color:#8c6b24;background:#b58c3814;padding-left:2rem}}@media (width<=480px){.site-header .container{width:calc(100% - 1.75rem);padding:0}#soundText{display:none}#camText{white-space:nowrap;font-size:.82rem;font-weight:600;display:inline}.hud-btn{padding:6px 8px}}#start{background:#fff;flex-direction:column;height:100%;display:flex;overflow:hidden}.start-sheet{padding-inline:20px;padding-block:24px max(32px, env(safe-area-inset-bottom,32px));color:#141414;background:#fff;flex:1;overflow-y:auto}.start-sheet>div{flex-direction:column;gap:22px;max-width:580px;margin:0 auto;display:flex}.start-header{flex-direction:column;gap:8px;display:flex}.title-block{flex-direction:column;gap:2px;display:flex}.start-eyebrow{color:#b58c38;letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.start-title{font-family:var(--display);letter-spacing:-.01em;color:#141414;margin:0;font-size:clamp(3.2rem,9.5vw,4.6rem);font-weight:600;line-height:.95}.start-editorial{color:#525252;text-wrap:pretty;margin:4px 0 0;font-size:.96rem;line-height:1.6}.start-camera-info{color:#4a3e20;background:#b58c3814;border:1px solid #b58c3838;border-radius:8px;align-items:flex-start;gap:10px;margin:12px 0 0;padding:10px 14px;font-size:.88rem;line-height:1.5;display:flex}.start-camera-info strong{color:#141414}.cam-info-icon{color:#8c6b24;flex:none;margin-top:1px;font-size:1.05rem;line-height:1.2}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .start-camera-info{color:#e2d3b5;background:#f5a62317;border-color:#f5a6233d}:root:not([data-theme=light]) .start-camera-info strong{color:#ecebf5}}:root[data-theme=dark] .start-camera-info{color:#e2d3b5;background:#f5a62317;border-color:#f5a6233d}:root[data-theme=dark] .start-camera-info strong{color:#ecebf5}.choice{flex-direction:column;gap:8px;display:flex}.choice-eyebrow{color:#6b6b7b;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.dances-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=540px){.dances-grid{grid-template-columns:repeat(4,1fr)}}.dance-btn{text-align:left;cursor:pointer;color:inherit;background:#fff;border:1px solid #12121229;flex-direction:column;justify-content:space-between;gap:8px;min-height:64px;padding:12px 14px;transition:all .18s;display:flex;border-radius:0!important}.dance-btn:hover{background:#faf8f5;border-color:#b58c3899}.dance-btn.active{background:#faf7f0;border:2px solid #b58c38;box-shadow:0 0 16px #b58c3826}.dance-btn.disabled-dance{opacity:.6}.dance-btn.disabled-dance:hover{opacity:.85;border-color:#1212124d}.dance-name{font-family:var(--body);letter-spacing:.08em;text-transform:uppercase;color:#141414;font-size:.9rem;font-weight:600}.dance-badge{text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;align-self:flex-start;padding:3px 6px;font-size:.64rem;font-weight:600;border-radius:0!important}.active-badge{color:#8c6b24;background:#b58c3826;border:1px solid #b58c3859}.soon-badge{color:#71717a;background:#f0f0f2;border:1px solid #e4e4e7}.dance-notice{color:#8c6b24;background:#b58c381f;border:1px solid #b58c384d;margin:6px 0 0;padding:6px 10px;font-size:.82rem;border-radius:0!important}.grades{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=540px){.grades{grid-template-columns:repeat(4,1fr)}}.grade-btn{cursor:pointer;color:inherit;background:#fff;border:1px solid #12121229;justify-content:center;align-items:center;min-height:48px;padding:12px 14px;transition:all .18s;display:flex;border-radius:0!important}.grade-btn:hover{background:#faf8f5;border-color:#b58c3899}.grade-btn[aria-pressed=true]{background:#faf7f0;border:2px solid #b58c38;box-shadow:0 0 16px #b58c3826}.grade-name{font-family:var(--body);color:#141414;letter-spacing:.08em;text-transform:uppercase;font-size:.88rem;font-weight:600}.grade-btn[aria-pressed=true] .grade-name{color:#8c6b24;font-weight:700}.button,.btn-take-floor,.btn-continue,.dance-btn,.grade-btn,.btn-modal-gold,.btn-modal-ghost,.dance-badge,.rank-pill,.lb-user-rank,.fc-modal-card button{border-radius:0!important}.button,.btn-take-floor,.btn-continue{min-height:48px;font-family:var(--body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-align:center;border:1px solid #0000;justify-content:center;align-items:center;padding:.8rem 1.6rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex;border-radius:0!important}.button-primary,.btn-take-floor,.btn-continue{background:#b58c38;border-color:#b58c38;color:#fff!important}.button-primary:hover,.btn-take-floor:hover,.btn-continue:hover{background:#141414;border-color:#141414;color:#fff!important}.start-actions{flex-direction:column;margin-top:6px;display:flex}.btn-take-floor{width:100%}.embedded-leaderboard{background:#fff;border:1px solid #12121224;flex-direction:column;gap:12px;margin-top:12px;padding:20px;display:flex;border-radius:0!important}.lb-header{flex-direction:column;gap:2px;display:flex}.lb-eyebrow{color:#b58c38;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.lb-title{font-family:var(--display);color:#141414;margin:0;font-size:1.6rem;font-weight:600;line-height:1.15}.lb-body{flex-direction:column;min-height:140px;display:flex}.lb-loading,.lb-empty{text-align:center;color:#71717a;margin:auto;padding:28px 16px;font-size:.9rem}.lb-table{border-collapse:collapse;width:100%;font-size:.9rem}.lb-table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:#71717a;border-bottom:1px solid #1212121f;padding:10px 12px;font-size:.72rem}.lb-table td{color:#141414;border-bottom:1px solid #12121214;padding:10px 12px}.th-rank,.td-rank{text-align:center;width:54px}.th-score,.td-score{text-align:right;font-variant-numeric:tabular-nums;color:#b58c38;font-weight:700}.rank-pill{justify-content:center;align-items:center;width:24px;height:24px;font-size:.76rem;font-weight:700;display:inline-flex;border-radius:0!important}.rank-1{color:#fff;background:#b58c38}.rank-2{color:#fff;background:#8e8d8a}.rank-3{color:#fff;background:#a3704c}.lb-user-rank{color:#141414;background:#b58c3814;border:1px solid #b58c384d;align-items:center;gap:10px;margin-top:6px;padding:12px 14px;font-size:.9rem;display:flex;border-radius:0!important}.rank-star{color:#b58c38;font-size:1.15rem;line-height:1}.sheet{height:100%;padding-inline:16px;padding-block:max(20px, env(safe-area-inset-top,20px)) max(28px, env(safe-area-inset-bottom,28px));background:var(--panel);overflow-y:auto}.sheet>div{flex-direction:column;gap:20px;max-width:520px;margin:0 auto;display:flex}.big{padding:14px;font-size:1.05rem}.stats{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden;border-radius:0!important}.stats div{background:var(--panel);min-width:0;padding:10px 12px}.stats dt{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.66rem}.stats dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.2rem;font-weight:700}#log{flex-direction:column;gap:6px;margin:0;padding:0 0 0 1.8em;font-size:.92rem;display:flex}#log .pts{float:right;font-variant-numeric:tabular-nums;font-weight:700}#log .f{color:var(--bad)}#log .feat{color:var(--accent);font-weight:600}#log small{color:var(--muted);display:block}.end-actions{margin-top:8px;display:flex}.btn-continue{width:100%}.fc-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);background:#08080cd9;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.fc-modal-card{color:#141414;background:#fff;border:1px solid #b58c3866;flex-direction:column;gap:14px;width:100%;max-width:440px;padding:24px 28px;display:flex;position:relative;box-shadow:0 20px 50px #00000040,0 0 24px #b58c3824;border-radius:0!important}.modal-title{font-family:var(--display);color:#141414;margin:0;font-size:1.85rem;font-weight:600;line-height:1.1}.modal-eyebrow{color:#b58c38;letter-spacing:.16em;text-transform:uppercase;margin:0 0 2px;font-size:.72rem;font-weight:600}.modal-desc{color:#525252;margin:0;font-size:.94rem;line-height:1.5}.modal-desc strong{color:#b58c38;font-size:1.1rem}.modal-form{flex-direction:column;gap:16px;margin-top:4px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{letter-spacing:.1em;text-transform:uppercase;color:#525252;font-size:.76rem;font-weight:600}.form-input{color:#141414;background:#fff;border:1px solid #12121233;padding:12px 14px;font-family:inherit;font-size:1rem;border-radius:0!important}.form-input:focus{border-color:#b58c38;outline:none;box-shadow:0 0 12px #b58c3847}.modal-actions{gap:10px;display:flex}.btn-modal-gold{flex:1.4}.btn-modal-ghost{background:0 0;border:1px solid #12121233;flex:1;color:#525252!important}.btn-modal-ghost:hover{background:#f5f5f5;border-color:#141414;color:#141414!important}#game{background:var(--bg);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.hud{border-bottom:1px solid var(--line);background:var(--panel);z-index:6;flex:none;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.hud-main{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.hud-block{flex-direction:column;gap:1px;display:flex}.hud-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.62rem;line-height:1}.hud-block b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.92rem;font-weight:700;line-height:1.2}.mini-bar-track{background:var(--line);border-radius:999px;width:54px;height:4px;margin-top:2px;overflow:hidden}.mini-bar-fill{background:var(--accent);width:3%;height:100%;transition:width .2s}.hud-score-row{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:5px;font-size:.85rem;display:flex}.fault-badge{border-radius:999px;padding:2px 6px;font-size:.72rem;font-weight:600}.fault-badge.clean{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.fault-badge.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.fault-badge.bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}.hud-actions{flex:none;align-items:center;gap:6px;display:flex}.hud-btn{min-height:36px;padding:6px 11px;font-size:.82rem;font-weight:600}.stage{touch-action:none;flex:1;width:100%;min-width:0;height:100%;min-height:0;display:block;position:relative;overflow:hidden}canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.toast{background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid var(--line);text-align:center;pointer-events:none;z-index:8;border-radius:999px;max-width:calc(100% - 100px);margin:0;padding:6px 14px;font-size:.84rem;font-weight:500;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.toast:empty{display:none}.toast.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}.toast.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,var(--line))}.collision-overlay{-webkit-backdrop-filter:blur(6px);z-index:40;cursor:pointer;background:#14131f94;justify-content:center;align-items:center;padding:16px;animation:.22s ease-out collisionFadeIn;display:flex;position:absolute;inset:0}@keyframes collisionFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.collision-card{background:var(--panel);border:2px solid var(--bad);text-align:center;box-shadow:0 16px 40px #00000073,0 0 24px color-mix(in srgb,var(--bad) 35%,transparent);pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:20px;flex-direction:column;gap:8px;max-width:min(90vw,360px);padding:24px 32px;transition:transform .15s,box-shadow .15s;display:flex}.collision-card:hover{box-shadow:0 20px 48px #00000080,0 0 30px color-mix(in srgb,var(--bad) 45%,transparent);transform:translateY(-2px)scale(1.02)}.collision-card:active{transform:scale(.98)}.collision-title{font-family:var(--display);color:var(--bad);letter-spacing:.02em;font-size:2.2rem;font-weight:700;line-height:1.1}.collision-sub{color:var(--ink);opacity:.92;font-size:1.02rem;font-weight:500;line-height:1.35}.cam-btn{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.cam-icon{color:var(--accent);font-size:.92rem;line-height:1}.start-dock{left:50%;bottom:max(16px, env(safe-area-inset-bottom,16px));z-index:25;pointer-events:none;touch-action:none;flex-direction:column;width:min(460px,100% - 24px);display:none;position:absolute;transform:translate(-50%)}.dock-card{pointer-events:auto;background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);user-select:none;border-radius:18px;flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex;box-shadow:0 14px 44px #00000061}.dock-header{cursor:grab;border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);touch-action:none;justify-content:space-between;align-items:center;gap:8px;padding-bottom:4px;display:flex}.dock-header:active{cursor:grabbing}.dock-drag-handle{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.drag-dots{color:var(--muted);letter-spacing:-2px;opacity:.7;font-size:1.1rem;line-height:1}.arcade-tag{letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb, var(--accent) 18%, var(--panel));color:var(--accent);border-radius:6px;flex:none;padding:3px 7px;font-size:.65rem;font-weight:700}.dock-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.1rem;font-weight:600;line-height:1.2;overflow:hidden}.dock-header-actions{flex:none;align-items:center;gap:6px;display:flex}.dock-icon-btn{border:1px solid var(--line);background:var(--panel-alt);width:30px;min-height:30px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;padding:0;font-size:.95rem;display:grid}.dock-icon-btn:hover{color:var(--ink);border-color:var(--ink)}.dock-close{width:30px;min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;font-size:1.3rem;display:grid}.dock-instructions{color:var(--muted);margin:0;font-size:.8rem;line-height:1.3}.dock-instructions b{color:var(--ink)}.dock-controls{grid-template-columns:1fr 1fr;gap:8px;display:grid}.turn-stepper{background:var(--panel-alt);border:1px solid var(--line);border-radius:10px;align-items:center;padding:3px 4px;display:flex}.btn-turn{width:34px;min-height:34px;color:var(--accent);background:0 0;border:0;place-items:center;padding:0;font-size:1.2rem;font-weight:700;display:grid}.align-display,.side-display{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2px 4px;display:flex}.side-display{background:var(--panel-alt);border:1px solid var(--line);border-radius:10px}.dock-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.58rem;line-height:1}.align-display b,.side-display b{white-space:nowrap;font-size:.82rem;font-weight:700}.dock-footer{align-items:center;width:100%;display:flex}.dock-btn{width:100%;min-height:44px;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 35%, transparent);padding:10px 16px;font-size:.95rem;font-weight:700}#game.placement-active .hud,#game.placement-active .figure-dock,#game.placement-active .cam-btn,#game.placement-active .toast,#game.placement-active .collision-overlay{display:none!important}#game.placement-active .start-dock{display:flex!important}.figure-dock{left:50%;bottom:max(16px, env(safe-area-inset-bottom,16px));z-index:20;pointer-events:none;touch-action:none;flex-direction:column;width:min(480px,100% - 24px);transition:opacity .2s;display:flex;position:absolute;transform:translate(-50%)}.figure-dock[hidden]{display:none!important}.figure-dock .dock-card{pointer-events:auto;background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);user-select:none;border-radius:18px;flex-direction:column;gap:8px;padding:10px 14px 14px;display:flex;box-shadow:0 14px 44px #0000005c}.figure-dock.collapsed .dock-content{display:none!important}.figure-dock.collapsed .dock-card{padding:8px 12px}.dock-content{flex-direction:column;gap:8px;display:flex}.dance-info-bar{background:color-mix(in srgb,var(--panel-alt) 85%,transparent);border:1px solid var(--line);box-sizing:border-box;border-radius:999px;justify-content:space-between;align-items:center;gap:6px;width:100%;padding:3px 6px;display:flex}.side-step-btn{border:1px solid var(--line);background:var(--panel);width:24px;min-height:24px;color:var(--accent);cursor:pointer;border-radius:999px;flex:none;place-items:center;padding:0;font-size:.92rem;font-weight:700;line-height:1;transition:all .15s;display:grid}.side-step-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 15%,var(--panel));border-color:var(--accent);transform:scale(1.08)}.side-step-btn:active:not(:disabled){transform:scale(.95)}.side-step-btn:disabled{opacity:.3;cursor:default}.posture-pill-content{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;justify-content:center;align-items:center;gap:4px;font-size:clamp(.68rem,2.2vw,.77rem);font-weight:550;display:flex;overflow:hidden}.changeable-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-weight:700}.carousel-container{user-select:none;align-items:center;gap:6px;width:100%;display:flex;position:relative}.carousel-arrow{border:1px solid var(--line);background:color-mix(in srgb,var(--panel-alt) 85%,transparent);width:28px;height:72px;color:var(--ink);cursor:pointer;z-index:10;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;font-weight:700;transition:all .15s;display:flex}.carousel-arrow:hover:not(:disabled){background:var(--ink);color:var(--panel);transform:scale(1.05)}.carousel-arrow:disabled{opacity:.25;cursor:default;pointer-events:none}.carousel-viewport{touch-action:none;cursor:grab;flex:1;justify-content:center;align-items:center;min-width:0;padding:4px 0;display:flex;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 14px calc(100% - 14px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 14px calc(100% - 14px),#0000 100%)}.carousel-viewport:active{cursor:grabbing}.carousel-track{touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;justify-content:center;align-items:center;gap:10px;width:max-content;display:flex}.carousel-card{box-sizing:border-box;background:color-mix(in srgb,var(--panel-alt) 80%,transparent);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:12px;flex-direction:column;flex:0 0 clamp(145px,44vw,178px);justify-content:center;align-items:center;width:clamp(145px,44vw,178px);height:76px;padding:8px 12px;transition:transform .22s cubic-bezier(.2,.9,.35,1.05),opacity .22s,border-color .22s,box-shadow .22s,background .22s;display:flex}.carousel-card.outer{opacity:.18;pointer-events:none;transform:scale(.78)}.carousel-card.side{opacity:.45;transform:scale(.85)}.carousel-card.side:hover{opacity:.75;transform:scale(.89)}.carousel-card.center{opacity:1;z-index:5;background:color-mix(in srgb,var(--panel) 92%,var(--surface));border-color:color-mix(in srgb,var(--line) 70%,var(--accent));transform:scale(1.03);box-shadow:0 4px 14px #00000040}.carousel-card.center.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 4px 16px color-mix(in srgb,var(--accent) 30%,transparent)}.carousel-card.is-group.center{border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}.carousel-track.sliding-next .carousel-card.center{opacity:.45;background:color-mix(in srgb,var(--panel-alt) 80%,transparent);border-color:var(--line);box-shadow:none;transform:scale(.85)}.carousel-track.sliding-next .carousel-card.center .card-title{font-size:.92rem}.carousel-track.sliding-next .carousel-card.center .card-sub{color:var(--muted);font-size:.84rem}.carousel-track.sliding-next .carousel-card.next1{opacity:1;z-index:5;background:color-mix(in srgb,var(--panel) 92%,var(--surface));border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 4px 16px color-mix(in srgb,var(--accent) 30%,transparent);transform:scale(1.03)}.carousel-track.sliding-next .carousel-card.next1 .card-title{font-size:1.02rem}.carousel-track.sliding-next .carousel-card.next1 .card-sub{color:var(--accent);font-size:.92rem}.carousel-track.sliding-next .carousel-card.next2{opacity:.45;transform:scale(.85)}.carousel-track.sliding-prev .carousel-card.center{opacity:.45;background:color-mix(in srgb,var(--panel-alt) 80%,transparent);border-color:var(--line);box-shadow:none;transform:scale(.85)}.carousel-track.sliding-prev .carousel-card.center .card-title{font-size:.92rem}.carousel-track.sliding-prev .carousel-card.center .card-sub{color:var(--muted);font-size:.84rem}.carousel-track.sliding-prev .carousel-card.prev1{opacity:1;z-index:5;background:color-mix(in srgb,var(--panel) 92%,var(--surface));border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 4px 16px color-mix(in srgb,var(--accent) 30%,transparent);transform:scale(1.03)}.carousel-track.sliding-prev .carousel-card.prev1 .card-title{font-size:1.02rem}.carousel-track.sliding-prev .carousel-card.prev1 .card-sub{color:var(--accent);font-size:.92rem}.carousel-track.sliding-prev .carousel-card.prev2{opacity:.45;transform:scale(.85)}.card-main{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;display:flex;overflow:hidden}.card-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.92rem;font-weight:700;line-height:1.2;overflow:hidden}.carousel-card.center .card-title{font-size:1.02rem}.card-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.84rem;font-weight:600;line-height:1.2;overflow:hidden}.carousel-card.center .card-sub{color:var(--accent);font-size:.92rem;font-weight:600}.carousel-empty{text-align:center;color:var(--muted);padding:22px 10px;font-size:.82rem}.carousel-footer-bar{justify-content:center;align-items:center;padding:0 2px;display:flex}.carousel-counter{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:.7rem;font-weight:600}.fig-dock-controls,.power-wrap{justify-content:center;align-items:center;gap:8px;display:flex}.tool-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.74rem;font-weight:600}.power-presets{gap:4px;display:flex}.btn-pill{border:1px solid var(--line);background:var(--panel-alt);cursor:pointer;border-radius:999px;min-height:28px;padding:3px 12px;font-size:.76rem;font-weight:500;transition:all .15s}.btn-pill.active{background:color-mix(in srgb,var(--accent) 18%,var(--panel));border-color:var(--accent);color:var(--accent);font-weight:700}.action-bar{flex-direction:row;flex:none;align-items:center;gap:8px;width:100%;display:flex}.action-bar .dock-btn{flex:1;width:auto;min-width:0;transition:all .2s cubic-bezier(.2,0,0,1)}.btn-dock-back{cursor:pointer;white-space:nowrap;color:#fff;background:#1f7a78;border:1px solid #186361;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:4px;min-height:44px;padding:8px 18px;font-size:.92rem;font-weight:700;transition:all .2s cubic-bezier(.2,0,0,1);display:inline-flex;box-shadow:0 4px 14px #1f7a7847}.btn-dock-back:hover{background:#176361;border-color:#114d4b;transform:translateY(-1px);box-shadow:0 6px 18px #1f7a7861}.btn-dock-back:active{transform:scale(.97)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-dock-back{color:#0a1c1b;background:#2b9691;border-color:#38a8a3;box-shadow:0 4px 14px #2b969159}:root:not([data-theme=light]) .btn-dock-back:hover{background:#33aba5}}:root[data-theme=dark] .btn-dock-back{color:#0a1c1b;background:#2b9691;border-color:#38a8a3;box-shadow:0 4px 14px #2b969159}:root[data-theme=dark] .btn-dock-back:hover{background:#33aba5}.body-posture-bar{background:color-mix(in srgb,var(--panel-alt) 80%,transparent);border:1px solid var(--line);color:var(--muted);box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;gap:4px;width:fit-content;margin:0 auto;padding:3px 12px;font-size:.75rem;font-weight:550;display:flex}.body-posture-bar span{color:var(--ink)}@media (prefers-reduced-motion:reduce){.carousel-card,.mini-bar-fill{transition:none}}@media (orientation:landscape) and (height>=280px){#game{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.stage{width:100%;height:100%}.figure-dock{width:min(420px,100% - 32px);max-height:calc(100% - 70px)}}
