@font-face{font-family:Galmuri11;src:url(../fonts/Galmuri11.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Galmuri11;src:url(../fonts/Galmuri11-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Galmuri9;src:url(../fonts/Galmuri9.woff2)format("woff2");font-display:swap}:root{--ink:#1b1f33;--paper:#fff8e7;--basalt:#2c2f3a;--sea:#1fb5b0;--sea-deep:#126f87;--gyul:#ff9a1f;--gyul-dark:#c4600a;--danger:#e2483d;--ok:#4cc26b;--font:"Galmuri11", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;color:var(--ink);font-family:var(--font);-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none;background:#0b1030;margin:0;padding:0;overflow:hidden}#game{width:100%;height:100%;image-rendering:pixelated;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;z-index:10;position:fixed;top:0;bottom:0;left:0;right:0}#ui>*{pointer-events:auto}#ui .pass{pointer-events:none}#ui .pass>*{pointer-events:auto}#rotate-hint{z-index:100;color:#fff;font-family:var(--font);background:#0b1030;justify-content:center;align-items:center;font-size:20px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.px-panel{background:var(--paper);border:3px solid var(--ink);border-radius:4px;padding:12px;box-shadow:0 4px #00000059,inset 0 -3px #e8dcc0}.px-btn{font-family:var(--font);color:#fff;background:var(--sea-deep);border:3px solid var(--ink);cursor:pointer;white-space:nowrap;border-radius:4px;padding:8px 14px;font-size:15px;font-weight:700;box-shadow:inset 0 -4px #00000040,0 3px #00000059}.px-btn:active{transform:translateY(2px);box-shadow:inset 0 -2px #00000040,0 1px #00000059}.px-btn.gyul{background:var(--gyul)}.px-btn.danger{background:var(--danger)}.px-btn.ghost{background:#1b1f338c}.px-btn.small{padding:5px 9px;font-size:12px}.px-btn:disabled{filter:grayscale(.8)brightness(.8)}.px-input{font-family:var(--font);border:3px solid var(--ink);color:var(--ink);-webkit-user-select:text;user-select:text;background:#fff;border-radius:4px;outline:none;padding:7px 10px;font-size:15px}.title-screen{flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.logo{font-family:var(--font);color:#fff;letter-spacing:2px;text-shadow:3px 3px 0 var(--ink), -2px -2px 0 var(--ink), 2px -2px 0 var(--ink), -2px 2px 0 var(--ink), 0 6px 0 var(--sea-deep);font-size:clamp(34px,9vh,64px);font-weight:700}.logo-sub{color:#fff;text-shadow:1px 1px 0 var(--ink);margin-top:-8px;font-size:13px}.title-form{flex-direction:column;align-items:stretch;gap:10px;min-width:260px;display:flex}.row{align-items:center;gap:8px;display:flex}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:3px solid var(--ink);cursor:pointer;border-radius:3px;width:26px;height:26px}.swatch.on{outline:3px solid var(--gyul);outline-offset:1px}.label{color:#555;font-size:12px}.select-screen{padding:12px;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));gap:12px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.map-wrap{flex-direction:column;flex:1.2;gap:8px;min-width:0;display:flex}.map-wrap canvas{width:100%;min-height:0;image-rendering:pixelated;border:3px solid var(--ink);background:#1d7fa6;border-radius:4px;flex:1}.stage-list{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex;overflow-y:auto}.stage-card{cursor:pointer;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.stage-card.on{border-color:var(--gyul-dark);background:#ffe6bf}.stage-card .name{font-size:15px;font-weight:700}.stage-card .meta{color:#555;font-size:11px}.stage-card .desc{font-size:12px}.topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.gyul-badge{background:var(--paper);border:3px solid var(--ink);border-radius:20px;padding:4px 10px;font-size:13px;font-weight:700}.hud-top{top:6px;left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.hud-box{color:#fff;background:#1b1f3399;border-radius:4px;padding:5px 8px;font-size:12px;line-height:1.5}.hpbar{background:#333;border:2px solid #fff;width:110px;height:10px;position:relative}.hpbar>i{background:var(--ok);position:absolute;top:0;bottom:0;left:0}.hud-bottom{bottom:6px;left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));align-items:center;gap:6px;display:flex;position:absolute}.hud-bottom .px-input{flex:1;min-width:60px;padding:5px 8px;font-size:13px}.chat-log{left:max(8px, env(safe-area-inset-left));color:#fff;text-shadow:1px 1px #000;pointer-events:none;flex-direction:column;justify-content:flex-end;width:min(42vw,330px);max-height:32vh;font-size:11px;display:flex;position:absolute;bottom:48px;overflow:hidden}.chat-log div{padding:1px 0}.chat-log b{color:#ffd27a}.chat-log .sys{color:#9fe8ff}.hidden{display:none!important}.toast{color:#fff;pointer-events:none;background:#1b1f33cc;border-radius:4px;padding:8px 14px;font-size:14px;animation:.2s ease-out toast-in;position:absolute;top:18%;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}.result{text-align:center;min-width:240px;animation:.25s ease-out pop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}}.result h2{margin:0 0 6px;font-size:20px}.result .score{color:var(--gyul-dark);font-size:30px;font-weight:700}.result table{border-collapse:collapse;width:100%;margin:6px 0;font-size:12px}.result td{padding:2px 4px}.result td:last-child{text-align:right;font-weight:700}.modal-bg{background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.modal{width:min(560px,92vw);max-height:88vh;overflow-y:auto}.modal h3{margin:0 0 8px}.item-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.item{border:2px solid var(--ink);background:#fff;border-radius:4px;flex-direction:column;gap:4px;padding:8px;font-size:12px;display:flex}.item .t{font-size:13px;font-weight:700}.item .icon{font-size:22px}.hud-box span{white-space:nowrap}.stage-card.locked{opacity:.6}.stage-card.locked.on{opacity:.85}.av-screen{padding:8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));gap:8px}.av-screen .logo{font-size:clamp(26px,7vh,48px)}.av-panel{gap:12px;width:100%;max-width:900px;max-height:calc(100vh - 80px);padding:10px;display:flex}.av-preview{flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.av-portrait{width:150px;height:150px;image-rendering:pixelated;border:3px solid var(--ink);background:linear-gradient(#bfe9f5,#7fd6e0);border-radius:6px}.av-full{width:112px;height:140px;image-rendering:pixelated}.av-right{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.av-opts{flex-direction:column;gap:5px;padding-right:4px;display:flex;overflow-y:auto}.av-row{align-items:center;gap:8px;display:flex}.av-label{color:#555;flex:0 0 62px;width:62px;font-size:12px}.av-row .swatches{gap:4px}.av-row .px-btn.small{padding:4px 7px;font-size:11px}.av-row .swatch{width:22px;height:22px}.av-right .row .px-input{flex:1;min-width:0}@media (max-height:420px){.av-portrait{width:104px;height:104px}.av-full{width:80px;height:100px}}.rank-box{color:#fff;pointer-events:none;background:#1b1f3399;border-radius:4px;min-width:150px;padding:5px 8px;font-size:11px}.rank-title{color:#ffd27a;margin-bottom:2px;font-weight:700}.rank-row{align-items:center;gap:6px;line-height:1.55;display:flex}.rank-row .rank-n{text-align:center;width:16px}.rank-row .rank-name{text-overflow:ellipsis;white-space:nowrap;flex:1;max-width:90px;overflow:hidden}.rank-row b{font-variant-numeric:tabular-nums}.rank-row.me{color:#9dff9a}.expbar{background:#333;border:1px solid #fff;width:110px;height:5px;position:relative}.expbar>i{background:#7dd3ff;position:absolute;top:0;bottom:0;left:0}.lv-tag{color:#9dff9a;min-width:38px;font-size:11px}.btn-badge{position:relative}.btn-badge:after{content:attr(data-badge);color:#fff;text-align:center;background:#ff5a4a;border:1px solid #fff;border-radius:8px;min-width:15px;height:15px;font-size:10px;line-height:15px;position:absolute;top:-6px;right:-6px}.btn-badge[data-badge=""]:after,.btn-badge:not([data-badge]):after{display:none}.stat-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.stat-head .big-lv{color:#2e86de;font-size:22px;font-weight:700}.stat-head .expbar{border-color:#1b1f33;width:180px;height:8px}.stat-row{border-top:1px dashed #d6d0c3;grid-template-columns:26px 64px 1fr 34px;align-items:center;gap:6px;padding:6px 0;display:grid}.stat-row .ic{text-align:center;font-size:18px}.stat-row .nm{font-weight:700}.stat-row .ds{color:#666;grid-column:2/5;font-size:11px}.pips{gap:2px;display:flex}.pips i{background:#ddd;border:1px solid #aaa;width:12px;height:10px}.pips i.on{background:#ff9a1f;border-color:#c06a00}.stat-plus{padding:2px 0!important}.modal.tune{width:min(760px,94vw)}.tune-group{margin-top:10px}.tune-group>b{margin-bottom:4px;display:block}.tune-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 10px;display:grid}.tune-row{border-radius:3px;grid-template-columns:1fr 74px;align-items:center;gap:2px 6px;padding:3px 5px;font-size:11px;display:grid}.tune-row small{color:#999;grid-column:1/3;margin-top:-2px;font-size:10px}.tune-row input{width:74px;padding:2px 4px;font-size:12px}.tune-row.changed{background:#fff2b0}#ui .tc{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none!important}#ui .tc>*{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tc-action{right:max(16px, env(safe-area-inset-right));color:#fff;text-shadow:0 2px #1b1f33;background:radial-gradient(circle at 35% 30%,#ffb347,#ff7a1f);border:4px solid #fff;border-radius:50%;width:104px;height:104px;font:700 20px Galmuri11,sans-serif;position:absolute;bottom:16px;box-shadow:0 5px #b04a00,0 8px 18px #00000059}.tc-action.hit{animation:90ms tc-hit}.tc-action.dim{opacity:.5}@keyframes tc-hit{50%{transform:scale(.9)translateY(3px);box-shadow:0 2px #b04a00}}.tc-pad{background:#1c142061;border:3px dashed #ffffffd9;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.tc-pad.on{background:#ff9a1f59;border-style:solid}.tc-lab{color:#fff;text-align:center;text-shadow:0 1px #000;pointer-events:none;font-size:13px;line-height:1.2}.tc-lab small{color:#ffe27a;font-size:11px}.tc-knob{pointer-events:none;background:#ffffffd9;border:2px solid #1b1f33;border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;display:none;position:absolute;top:50%;left:50%}.tc-rot{right:max(14px, env(safe-area-inset-right));width:150px;height:150px;bottom:14px}.tc-tuck{left:max(16px, env(safe-area-inset-left));color:#fff;background:#2e86debf;border:3px solid #fff;border-radius:14px;width:104px;height:64px;font:700 14px Galmuri11,sans-serif;position:absolute;bottom:128px;box-shadow:0 4px #1b4f8a}.tc-tuck.on{background:#ff7a1fe6;box-shadow:0 4px #b04a00}.tc-twist{left:max(14px, env(safe-area-inset-left));width:108px;height:108px;bottom:12px}.tc-poses{gap:8px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.tc-pose{color:#fff;background:#8e44adcc;border:3px solid #fff;border-radius:10px;min-width:76px;height:44px;padding:0 8px;font:700 13px Galmuri11,sans-serif}.tc-pose.on{background:#ff9a1ff2}@media (max-height:380px){.tc-action{width:88px;height:88px;font-size:17px}.tc-rot{width:124px;height:124px}.tc-twist{width:92px;height:92px}.tc-tuck{height:56px;bottom:110px}}.modal.pose-ed{width:min(720px,96vw);max-height:94vh}.pose-wrap{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.pose-stage{aspect-ratio:76/104;border:3px solid var(--ink);background:linear-gradient(#bfe9f5,#7fd6e0);border-radius:6px;height:min(66vh,400px);position:relative}.pose-canvas,.pose-over{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.pose-canvas{image-rendering:pixelated}.pose-over{touch-action:none;cursor:grab}.pose-hint{color:#666;text-align:center;margin-top:4px;font-size:11px}.pose-side{flex-direction:column;flex:1;gap:8px;min-width:200px;display:flex}.tc-pad.on .tc-knob{display:block}.hud-right.diving{display:none!important}.hud-menu{z-index:30;background:#1b1f33eb;border-radius:6px;flex-direction:column;gap:6px;min-width:150px;padding:8px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.hud-menu.hidden{display:none}.hud-menu .px-btn{text-align:left;white-space:nowrap;width:100%}
