@import "https://cdn.jsdelivr.net/gh/neodgm/neodgm-webfont@1.601/neodgm/style.css";:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-pixel:"NeoDunggeunmo", var(--font-sans);--font-pixel-ui:"NeoDunggeunmo", var(--font-sans);--bg:#eaf7f4;--bg-deep:#dff2ee;--panel:#fff;--panel-hi:#f2fbf9;--cell:#fff;--teal-line:#0f766e;--teal-deep:#0b5952;--mirror:#0f766e;--beam:#ff6a3d;--star:#ffc42f;--danger:#d61f2b;--text:#123a3a;--text-soft:#2f5a58;--muted:#5f807d;--line:#0f766e3d;--line-strong:#0f766e80;--grid-line:var(--teal-line);--pixel-sm:1px 1px 0 #0f766e59;--pixel:2px 2px 0 #0f766e4d;--pixel-teal:2px 2px 0 var(--teal-deep);--pixel-beam:2px 2px 0 #c74b23;--ink:var(--text);--ink-soft:var(--text-soft);--paper:var(--bg);--paper-deep:var(--bg-deep);--surface:var(--panel);--surface-strong:var(--panel-hi);--teal:var(--teal-line);--teal-dark:var(--teal-deep);--teal-soft:#0f766e1a;--coral:var(--beam);--coral-dark:#c74b23;--coral-soft:#ff6a3d1f;--yellow:var(--star);--yellow-soft:#ffc42f29;--blue:#2f6fed;--blue-soft:#2f6fed1a;--purple:#7c5cff;--purple-soft:#7c5cff1f;--success:#109c6a;--success-soft:#109c6a1f;--danger-soft:#d61f2b1a;--warn:#e8820c;--radius-xl:6px;--radius-lg:5px;--radius:4px;--radius-sm:3px;--shadow-sm:1px 1px 0 #0f766e2e;--shadow-card:2px 2px 0 #0f766e29;--shadow-float:3px 3px 0 #0f766e33;font-family:var(--font-sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 12% 4%, #0f766e0f, transparent 24rem), radial-gradient(circle at 90% 10%, #ff6a3d0d, transparent 26rem), var(--bg);margin:0;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(#0f766e17 1px,#0000 1.4px);background-size:16px 16px;position:fixed;inset:0}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--teal-line);outline-offset:2px}::selection{color:#fff;background:var(--teal-line)}#root{min-height:100vh}.sr-only{clip:rect(0, 0, 0, 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}h1,h2,h3,p{overflow-wrap:break-word}@keyframes page-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-pop{0%{opacity:0;transform:scale(.84)}72%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes beam-flow{to{stroke-dashoffset:-42px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.puzzle-page{flex-direction:column;gap:1.1rem;width:min(880px,100% - 2rem);margin:0 auto;padding:1rem 0 5.5rem;display:flex}.pp-hud{z-index:30;border:2px solid var(--teal-line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px)saturate(1.1);backdrop-filter:blur(12px)saturate(1.1);box-shadow:var(--pixel);background:#ffffffeb;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:.55rem .9rem;display:grid;position:sticky;top:0}.pp-hud-left{justify-content:flex-start;min-width:0;display:flex}.pp-hud-center{text-align:center;min-width:0}.pp-hud-right{justify-content:flex-end;align-items:center;gap:.4rem;min-width:0;display:flex}.pp-title{color:var(--text);font-family:var(--font-pixel);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:clamp(1.05rem,2.6vw,1.4rem);font-weight:400;line-height:1.1;overflow:hidden}.pp-meta{color:var(--muted);font-family:var(--font-pixel-ui);letter-spacing:.02em;margin:.15rem 0 0;font-size:.72rem;font-weight:400}.pp-badge{border:2px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text-soft);background:var(--panel);box-shadow:var(--pixel-sm);font-family:var(--font-pixel-ui);white-space:nowrap;align-items:center;gap:.28rem;padding:.24rem .52rem;font-size:.74rem;font-weight:400;line-height:1;display:inline-flex}.pp-badge-icon{font-family:var(--font-sans);font-size:.86rem;line-height:1}.pp-badge-star{border-color:var(--star)}.pp-badge-star .pp-badge-icon{color:var(--star)}.pp-badge-mirror{border-color:var(--teal-line)}.pp-badge-mirror .pp-badge-icon{color:var(--teal-line)}.pp-icon-btn{border:2px solid var(--teal-line);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--teal-line);background:var(--panel);box-shadow:var(--pixel-sm);cursor:pointer;flex:none;place-items:center;font-size:1.05rem;transition:transform .12s,box-shadow .12s;display:grid}.pp-icon-btn:hover{box-shadow:var(--pixel);transform:translate(-1px,-1px)}.pp-icon-btn:active{box-shadow:none;transform:translate(1px,1px)}.pp-back{min-height:38px;padding-inline:.9rem;font-size:.9rem}.pp-stage{flex-direction:column;align-items:center;gap:1rem;display:flex}.pp-board-hold{border:2px solid var(--teal-line);border-radius:var(--radius-lg);background:radial-gradient(circle at 100% 0, #ff6a3d0f, transparent 14rem), var(--panel-hi);width:100%;box-shadow:var(--shadow-float);place-items:center;padding:1.4rem 1rem;display:grid;position:relative;overflow:hidden}.pp-result-live{width:100%}.pp-result-live:empty{display:none}.result-banner{border:2px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--pixel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;padding:1rem 1.15rem;animation:.32s both page-rise;display:flex}.result-banner.is-success{border-color:var(--success);background:linear-gradient(135deg, var(--success-soft), var(--panel))}.result-banner.is-fail{border-color:var(--danger);background:linear-gradient(135deg, var(--danger-soft), var(--panel))}.rb-body{flex:1;min-width:0}.rb-title{font-family:var(--font-pixel);letter-spacing:.01em;margin:0 0 .2rem;font-size:1.25rem;font-weight:400;line-height:1.1}.result-banner.is-success .rb-title{color:var(--success)}.result-banner.is-fail .rb-title{color:var(--danger)}.rb-actions{flex:none}.rp-checks,.rp-reasons{color:var(--text-soft);gap:.24rem;margin:0;padding:0;font-size:.83rem;list-style:none;display:grid}.rp-checks li:before{content:"✓";color:var(--success);margin-right:.5rem;font-weight:900}.rp-reasons li:before{content:"!";color:#fff;background:var(--danger);border-radius:50%;place-items:center;width:17px;height:17px;margin-right:.5rem;font-size:.65rem;font-weight:900;display:inline-grid}.rp-score{border:2px solid var(--line);border-radius:var(--radius-sm);width:fit-content;color:var(--text);background:var(--panel-hi);font-family:var(--font-pixel-ui);margin:.55rem 0 0;padding:.24rem .7rem;font-size:.78rem;font-weight:400}.pp-dock{border:2px solid var(--teal-line);border-radius:var(--radius-lg);box-shadow:var(--pixel);background:#fffffff2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .9rem;display:flex}.pp-dock-mirrors{align-items:center;gap:.55rem;display:flex}.pp-dock-actions{align-items:center;gap:.55rem;margin-left:auto;display:flex}.pp-run{min-height:52px;padding-inline:1.6rem;font-size:1.05rem}.mirror-palette{align-items:center;gap:.5rem;display:flex}.mp-btn{border:2px solid var(--line-strong);border-radius:var(--radius);width:56px;height:56px;color:var(--text);background:var(--panel);box-shadow:var(--pixel);cursor:pointer;place-items:center;padding:0;transition:transform .12s,box-shadow .12s,border-color .15s,background .15s;display:grid}.mp-btn svg{border-radius:var(--radius-sm);color:var(--teal-line);background:var(--panel-hi);padding:5px}.mp-btn:hover{border-color:var(--teal-line);transform:translate(-1px,-1px);box-shadow:3px 3px #0f766e4d}.mp-btn:active{box-shadow:none;transform:translate(1px,1px)}.mp-btn.is-selected{border-color:var(--teal-line);background:var(--teal-soft)}.mp-btn.is-selected svg{color:#fff;background:var(--teal-line);animation:.26s both soft-pop}.btn{border:2px solid var(--teal-line);border-radius:var(--radius);min-height:48px;color:var(--text);background:var(--panel);box-shadow:var(--pixel);font-family:var(--font-pixel-ui);letter-spacing:.01em;cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.15rem;font-size:.95rem;font-weight:400;line-height:1;transition:transform .11s,box-shadow .11s,background .15s;display:inline-flex}.btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #0f766e4d}.btn:active{box-shadow:none;transform:translate(1px,1px)}.btn-primary{color:#fff;border-color:var(--teal-deep);background:var(--teal-line);box-shadow:var(--pixel-teal);position:relative;overflow:hidden}.btn-primary:after{content:"";background:linear-gradient(90deg,#0000,#ffffff80,#0000);width:30%;transition:left .42s;position:absolute;top:-40%;bottom:-40%;left:-30%;transform:skew(-18deg)}.btn-primary:hover{color:#fff;box-shadow:3px 3px 0 var(--teal-deep)}.btn-primary:hover:after{left:110%}.btn-primary:active{box-shadow:none}.btn-ghost{background:var(--panel-hi)}.btn:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.4);box-shadow:var(--pixel-sm);transform:none}.btn-icon{width:18px;height:18px;font-family:var(--font-sans);place-items:center;font-size:.85rem;display:inline-grid}.rule-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#123a3a6b;place-items:center;padding:1.2rem;animation:.2s both page-rise;display:grid;position:fixed;inset:0}.rule-modal{border:2px solid var(--teal-line);border-radius:var(--radius-lg);background:var(--panel);width:min(440px,100%);max-height:min(86vh,640px);padding:1.5rem 1.5rem 1.3rem;animation:.26s both soft-pop;position:relative;overflow-y:auto;box-shadow:4px 4px #0f766e47}.rule-modal-close{border:2px solid var(--line-strong);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-soft);background:var(--panel-hi);cursor:pointer;place-items:center;font-size:1.2rem;line-height:1;transition:transform .12s,box-shadow .12s;display:grid;position:absolute;top:.85rem;right:.9rem}.rule-modal-close:hover{box-shadow:var(--pixel-sm);transform:translate(-1px,-1px)}.rp-howto{grid-template-columns:repeat(3,1fr);gap:.55rem;margin:.9rem 0 0;padding:0;list-style:none;display:grid}.rp-howto-step{border:2px solid var(--line);border-radius:var(--radius);background:var(--panel-hi);text-align:center;flex-direction:column;align-items:center;gap:.4rem;padding:.7rem .4rem .6rem;display:flex}.rp-howto-num{border:2px solid var(--teal-line);border-radius:var(--radius-sm);width:22px;height:22px;color:var(--teal-line);background:var(--panel);font-family:var(--font-pixel-ui);place-items:center;font-size:.72rem;line-height:1;display:grid}.rp-howto-icon svg{fill:none;width:38px;height:38px;stroke:var(--text-soft);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;display:block}.rp-howto-icon .hs-mirror{stroke:var(--teal-line);stroke-width:3px}.rp-howto-icon .hs-beam{stroke:var(--beam);stroke-width:3px;stroke-dasharray:3 4}.rp-howto-icon .hs-star{fill:var(--star);stroke:var(--star);stroke-width:1.8px}.rp-howto-icon .hs-arrow{stroke:var(--beam);stroke-width:2.6px}.rp-howto-text{color:var(--text-soft);letter-spacing:-.02em;word-break:keep-all;font-size:.72rem;font-weight:620;line-height:1.35}.rule-modal-foot{border-top:2px dashed var(--line);align-items:center;gap:.6rem;margin-top:1.2rem;padding-top:1rem;display:flex}.rule-modal-foot .btn{min-height:42px;font-size:.9rem}.rule-modal-foot .rule-modal-actions{align-items:center;gap:.6rem;margin-left:auto;display:flex}.rp-hide{color:var(--text-soft);font-family:var(--font-pixel-ui);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.72rem;display:inline-flex}.rp-hide input{width:16px;height:16px;accent-color:var(--teal-line);cursor:pointer;margin:0}.rp-title{justify-content:space-between;align-items:flex-start;gap:.75rem;padding-right:2rem;display:flex}.rp-title h2{color:var(--text);font-family:var(--font-pixel);letter-spacing:.01em;margin:0;font-size:1.35rem;font-weight:400;line-height:1.15}.rp-level{border:2px solid var(--line);border-radius:var(--radius-sm);color:var(--text-soft);background:var(--panel-hi);font-family:var(--font-pixel-ui);flex:none;padding:.22rem .5rem;font-size:.6rem;font-weight:400}.rp-level-basic{color:var(--success);background:var(--success-soft);border-color:#109c6a80}.rp-level-hard{color:var(--coral-dark);background:var(--coral-soft);border-color:#ff6a3d80}.rp-level-large{color:var(--purple);background:var(--purple-soft);border-color:#7c5cff80}.rp-desc{color:var(--text-soft);word-break:keep-all;margin:.7rem 0 0;font-size:.84rem;line-height:1.6}.rp-subtitle{color:var(--teal-line);font-family:var(--font-pixel-ui);letter-spacing:.02em;margin:1.1rem 0 .5rem;font-size:.9rem;font-weight:400}.rp-goals{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.rp-goals li{border:2px solid var(--line);border-radius:var(--radius-sm);min-width:0;color:var(--text-soft);background:var(--panel-hi);align-items:center;gap:.48rem;padding:.5rem .62rem;font-size:.82rem;font-weight:640;line-height:1.4;display:flex}.rp-goals li:before{content:"✓";border-radius:var(--radius-sm);width:19px;height:19px;color:var(--teal-line);background:var(--teal-soft);flex:none;place-items:center;font-size:.7rem;font-weight:900;display:grid}.rp-mirror-counts svg{flex:none}.pb-wrap{overscroll-behavior-inline:contain;scrollbar-width:thin;place-items:center;width:100%;display:grid;overflow-x:auto}.pb-frame{isolation:isolate}.pb-col-labels,.pb-row-labels{display:flex}.pb-row-labels{flex-direction:column}.pb-label{color:var(--muted);font-family:var(--font-pixel-ui);justify-content:center;align-items:center;font-size:.82rem;font-weight:400;line-height:1;display:flex}.pb-body{display:flex}.pb-grid{border:3px solid var(--teal-line);border-radius:var(--radius-sm);background:var(--teal-line);gap:2px;padding:2px;display:grid;position:relative;overflow:hidden;box-shadow:3px 4px #0f766e38}.pb-cell{z-index:1;color:var(--text);background:var(--cell);cursor:pointer;border:0;border-radius:2px;justify-content:center;align-items:center;padding:0;transition:background .15s,transform .12s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.pb-cell:after{content:attr(aria-label);color:#123a3a47;font-family:var(--font-mono);opacity:0;font-size:.48rem;font-weight:700;transition:opacity .14s;position:absolute;bottom:2px;right:4px}.pb-cell:hover{z-index:2;background:var(--blue-soft);transform:scale(1.035);box-shadow:inset 0 0 0 2px #2f6fed8c}.pb-cell:hover:after{opacity:1}.pb-cell:active{transform:scale(.93)}.pb-cell.is-star{background:radial-gradient(circle at 50% 48%,#ffc42f47,#0000 62%),#fff8ee}.pb-cell.is-forbidden{background:repeating-linear-gradient(135deg, transparent 0 8px, #d61f2b1a 8px 14px), var(--danger-soft)}.pb-cell.is-allowed{background:var(--cell);box-shadow:inset 0 0 0 2px #0f766e52}.pb-cell.is-allowed:hover{background:var(--teal-soft);box-shadow:inset 0 0 0 2px #0f766e99}.pc-star{color:var(--star);filter:drop-shadow(1px 1px #d6961466);animation:.5s both soft-pop;display:block}.pc-forbidden{color:var(--danger);font-size:1.5rem;font-weight:900;line-height:1}.pc-allowed{color:#0000;border:2px dashed #0f766e99;border-radius:4px;place-items:center;width:22px;height:22px;display:grid;transform:rotate(45deg)}.pc-mirror{color:var(--teal-line);filter:drop-shadow(1px 1px #0b595266);animation:.24s both soft-pop;display:block}.pb-marker{color:var(--text);pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:2px;display:flex}.pb-marker-label{border:2px solid var(--teal-deep);border-radius:var(--radius-sm);color:#fff;background:var(--teal-line);box-shadow:var(--pixel-sm);font-family:var(--font-pixel-ui);padding:2px 9px;font-size:.72rem;font-weight:400;line-height:1.1}.pb-marker-entry .pb-marker-label{color:#fff;border-color:var(--teal-deep);background:var(--teal-line)}.pb-marker-exit .pb-marker-label{color:#fff;background:var(--beam);border-color:#c74b23}.pb-marker-arrow{color:var(--beam);animation:1.25s ease-in-out infinite marker-pulse;display:block}@keyframes marker-pulse{0%,to{opacity:.65;translate:0}50%{opacity:1;translate:3px}}.path-overlay{z-index:4;pointer-events:none;position:absolute;top:2px;left:2px;overflow:visible}.path-glow{fill:none;stroke:#ff6a3d66;stroke-width:15px;stroke-linecap:round;stroke-linejoin:round;opacity:.9;filter:url(#beam-glow)}.path-core{fill:none;stroke:var(--beam);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.path-spark{fill:none;stroke:#ffd9c7;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 17;opacity:.95;animation:.8s linear infinite beam-flow}.path-origin-glow{fill:#ff6a3d66;filter:url(#beam-glow)}.path-origin{fill:var(--beam);transform-box:fill-box;transform-origin:50%;animation:1s ease-in-out infinite origin-pulse}@keyframes origin-pulse{50%{transform:scale(1.38)}}@media (width<=620px){.puzzle-page{width:calc(100% - 1rem);padding-top:.6rem}.pp-back{color:#0000;width:38px;min-width:38px;padding:0;overflow:hidden}.pp-back:before{content:"←";color:var(--text);font-size:1rem}.pp-board-hold{padding:.9rem .35rem}.pp-dock{z-index:40;border-radius:var(--radius-lg) var(--radius-lg) 0 0;-webkit-backdrop-filter:blur(12px)saturate(1.1);backdrop-filter:blur(12px)saturate(1.1);background:#fffffff7;margin:0 -.5rem;position:sticky;bottom:0}.result-banner{flex-direction:column;align-items:stretch}.rb-actions .btn{width:100%}}@media (width<=430px){.pp-badge{padding-inline:.4rem;font-size:.68rem}.mp-btn{width:50px;height:50px}.pp-run{padding-inline:1.1rem}.rule-modal-foot{flex-wrap:wrap}.rule-modal-foot .rule-modal-actions{width:100%}}.stage-door{--door-width:clamp(3.8rem, 8.4cqw, 7.9rem);top:var(--door-top);left:var(--door-left);z-index:3;width:var(--door-width);min-width:0;padding:0 0 calc(var(--door-width) * .36);color:#65401f;cursor:pointer;perspective:700px;background:0 0;border:0;transition:filter .18s,transform .18s;position:absolute;transform:translate(-50%,-50%)}.stage-door:hover:not(:disabled){z-index:7;filter:brightness(1.1);transform:translate(-50%,calc(-50% - clamp(2px,.55cqh,7px)))}.stage-door:focus-visible{outline-offset:6px;border-radius:45% 45% 12px 12px;outline:3px solid #fff0a8}.stage-door:disabled{cursor:not-allowed}.stage-door__label{color:#5f3c20;font-family:var(--font-pixel-ui);text-shadow:-1px 0 #fff0c4,1px 0 #fff0c4,0 1px #fff0c4;margin-bottom:clamp(2px,.35cqh,5px);font-size:clamp(.48rem,1.05cqw,1rem);font-weight:800;line-height:1;display:block}.stage-door__body{aspect-ratio:.82;border:clamp(3px, .34cqw, 5px) solid var(--door-frame,#71451f);width:100%;transform-style:preserve-3d;background:linear-gradient(#ffe9aa,#bd7432);border-radius:47% 47% 12% 12%/35% 35% 8% 8%;display:block;position:relative;overflow:hidden;box-shadow:inset 0 .08em #ffffff73,.1em .14em #4f311b,0 .2em .28em #2a1b0c6b}.stage-door__body:before{content:"";z-index:5;pointer-events:none;border:clamp(1px,.12cqw,2px) solid #ffe7ae59;border-radius:45% 45% 8% 8%/32% 32% 7% 7%;position:absolute;inset:5%}.stage-door__light{z-index:1;filter:blur(4px);opacity:.32;background:radial-gradient(circle,#fffbd3 0%,#ffdd52eb 32%,#0000 72%);border-radius:50%;transition:opacity .42s,transform .65s;position:absolute;inset:12% 23% 5%;transform:scale(.78)}.stage-door__wing{z-index:2;background:linear-gradient(90deg, transparent 43%, #64381629 46% 52%, transparent 55%), linear-gradient(180deg, var(--door-top-color,#ffe6a0), var(--door-bottom-color,#c98639));backface-visibility:hidden;width:50%;height:100%;transition:transform .7s cubic-bezier(.2,.9,.2,1);position:absolute;top:0}.stage-door__wing--left{transform-origin:0;border-right:1px solid #5b34168c;left:0}.stage-door__wing--right{transform-origin:100%;border-left:1px solid #5b34168c;right:0}.stage-door__number{z-index:4;font-family:var(--font-pixel-ui);color:#70431e;text-shadow:0 2px #fff1b8bf;font-size:clamp(1.2rem,3cqw,2.8rem);line-height:1;transition:opacity .22s,transform .5s;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.stage-door__knob{z-index:4;aspect-ratio:1;background:#ffd86a;border:1px solid #684119;border-radius:50%;width:7%;transition:opacity .22s,transform .5s;position:absolute;top:63%;box-shadow:0 1px #70441e}.stage-door__knob--left{left:40%}.stage-door__knob--right{right:40%}.stage-door__ground{left:50%;bottom:calc(var(--door-width) * .25);z-index:-1;filter:blur(3px);background:#281c0d70;border-radius:50%;width:112%;height:13%;position:absolute;transform:translate(-50%)}.stage-door__info{z-index:8;white-space:nowrap;background:linear-gradient(#fff0c5,#dfbd7e);border:clamp(1px,.15cqw,3px) solid #704723;border-radius:999px;justify-content:center;align-items:center;gap:clamp(.12rem,.28cqw,.32rem);min-width:96%;padding:clamp(.16rem,.42cqh,.38rem) clamp(.25rem,.55cqw,.55rem);font-size:clamp(.46rem,.95cqw,.9rem);font-weight:850;line-height:1;display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 .14em #37220f66}.stage-door--current{--door-frame:#8d581e;--door-top-color:#fff0a9;--door-bottom-color:#d99632;z-index:5}.stage-door--current .stage-door__body{animation:2.2s ease-in-out infinite stage-door-float;box-shadow:inset 0 .08em #ffffff80,.1em .14em #4f311b,0 0 1.2em .18em #ffd646c7}.stage-door--available{--door-top-color:#f6dfae;--door-bottom-color:#b8783c}.stage-door--completed{--door-frame:#557231;--door-top-color:#dce9ad;--door-bottom-color:#80a44e}.stage-door--locked{--door-frame:#594638;--door-top-color:#b6a58d;--door-bottom-color:#746050;filter:saturate(.55)brightness(.8);opacity:.78}.stage-door__lock,.stage-door__completed{z-index:7;filter:drop-shadow(0 2px 1px #301e0e73);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.stage-door__completed{aspect-ratio:1;background:#dff0a8;border:2px solid #49672b;border-radius:50%;width:25%;top:10%;left:12%;transform:rotate(-8deg)}.stage-door__completed:after{content:"";border-bottom:2px solid #49672b;border-right:2px solid #49672b;width:34%;height:48%;position:absolute;top:21%;left:27%;transform:rotate(42deg)}.stage-door__sparkle{z-index:8;width:25%;height:auto;animation:1.6s ease-in-out infinite stage-door-sparkle;position:absolute}.stage-door__sparkle--one{top:5%;left:3%}.stage-door__sparkle--two{width:19%;animation-delay:-.8s;top:20%;right:0}.stage-door__sparkle--three{width:14%;animation-delay:-1.2s;bottom:10%;right:9%}.stage-door--opening{z-index:10;pointer-events:none}.stage-door--opening .stage-door__body{animation:none;overflow:visible}.stage-door--opening .stage-door__wing--left{transform:rotateY(-72deg)}.stage-door--opening .stage-door__wing--right{transform:rotateY(72deg)}.stage-door--opening .stage-door__light{opacity:1;transform:scale(2.4)}.stage-door--opening .stage-door__number,.stage-door--opening .stage-door__knob{opacity:0;transform:translate(-50%,-50%)scale(.65)}@keyframes stage-door-float{0%,to{transform:translateY(0)}50%{transform:translateY(clamp(-6px,-.7cqh,-3px))}}@keyframes stage-door-sparkle{0%,to{opacity:.35;transform:scale(.65)rotate(-10deg)}50%{opacity:1;transform:scale(1.08)rotate(8deg)}}@media (prefers-reduced-motion:reduce){.stage-door--current .stage-door__body,.stage-door__sparkle{animation:none}.stage-door__wing,.stage-door__light{transition-duration:.01ms}}@font-face{font-family:WorldMap Pretendard;src:url(/fonts/PretendardVariable.woff2)format("woff2");font-weight:100 900;font-display:swap}.world-map-screen{background:#263f34;place-items:center;width:100vw;height:100svh;display:grid;overflow:hidden}.world-map-stage{aspect-ratio:16/9;isolation:isolate;width:min(100vw,177.778svh);height:min(100svh,56.25vw);position:relative;overflow:hidden;box-shadow:0 0 4rem #0f1c15ad;container-type:size}.world-map-bg{z-index:0;object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.world-map-ui,.world-map-markers{position:absolute;inset:0}.world-map-ui{z-index:2;font-family:"WorldMap Pretendard", var(--font-sans)}.world-title-wrap{z-index:5;text-align:center;pointer-events:none;width:min(94%,1120px);position:absolute;top:clamp(22px,3.2cqw,46px);left:50%;transform:translate(-50%)}.world-title-main{font-family:var(--font-pixel-ui);letter-spacing:.02em;color:#ffd85a;-webkit-text-fill-color:transparent;-webkit-text-stroke:clamp(1px, .18cqw, 3px) #6b4324;white-space:nowrap;text-shadow:0 0 10px #ffe26473,0 0 22px #ffd1404d,5px 5px #502d124d;background:linear-gradient(#fff8c8 0%,#ffd85a 55%,#f0b62f 100%);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(34px,4.8cqw,68px);font-weight:400;line-height:1.1;animation:2.2s ease-in-out infinite world-map-title-glow}.world-title-sub{color:#6b4324;text-shadow:1px 1px #fff2c4,0 2px #fff5d2a6;margin:clamp(4px,.7cqw,10px) 0 0;font-size:clamp(20px,2.4cqw,34px);font-weight:750;line-height:1.15}.world-title-sparkle{z-index:-1;filter:drop-shadow(0 0 7px #ffe062d9);width:clamp(18px,3.2cqw,48px);height:auto;animation:1.9s ease-in-out infinite world-map-sparkle;position:absolute}.world-title-sparkle--left{top:10%;left:15%}.world-title-sparkle--right{animation-delay:-.9s;top:4%;right:15%}.world-title-sparkle--far-left{width:clamp(12px,2cqw,30px);animation-delay:-1.35s;top:66%;left:8%}.world-title-sparkle--far-right{width:clamp(13px,2.2cqw,34px);animation-delay:-.45s;top:62%;right:8%}.world-map-light-path{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.world-map-light-path path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.world-map-light-path__halo{stroke:#ffe17a5c;stroke-width:clamp(7px,.9cqw,13px);filter:blur(2px)drop-shadow(0 0 8px #ffcf4ecc)}.world-map-light-path__beam{stroke:#ffe487;stroke-width:clamp(2px,.3cqw,5px);stroke-dasharray:2 11;filter:drop-shadow(0 0 5px #ffc840);animation:1.4s linear infinite world-map-light-flow}.world-map-mascot{z-index:6;pointer-events:none;width:clamp(90px,10cqw,150px);position:absolute;bottom:clamp(12px,1.8cqh,24px);left:50%;transform:translate(-50%)}.world-map-mascot__character{filter:drop-shadow(0 4px 2px #462b1257);width:100%;height:auto;animation:2.8s ease-in-out infinite world-map-mascot-float;display:block}.world-map-mascot__speech{z-index:3;color:#603b1d;text-align:center;text-shadow:0 1px #fff9dce6;white-space:nowrap;background:linear-gradient(#fff5d6,#ebcf9b);border:clamp(2px,.18cqw,3px) solid #714821;border-radius:999px;width:max-content;max-width:clamp(120px,15cqw,225px);margin:0;padding:clamp(5px,.55cqw,9px) clamp(8px,.8cqw,13px);font-size:clamp(8px,.9cqw,14px);font-weight:800;line-height:1.15;animation:.48s cubic-bezier(.2,.85,.25,1.15) both world-map-speech-pop;position:absolute;bottom:73%;right:68%;box-shadow:inset 0 0 0 2px #ffffff59,.12em .18em #3f260f57}.world-map-mascot__speech:after{content:"";aspect-ratio:1;background:#ebcf9b;border-bottom:clamp(2px,.18cqw,3px) solid #714821;border-right:clamp(2px,.18cqw,3px) solid #714821;width:clamp(8px,.8cqw,12px);position:absolute;bottom:clamp(-7px,-.5cqw,-4px);right:12%;transform:rotate(45deg)}.hint-mascot__eye{transform-box:fill-box;transform-origin:50%;animation:4.8s ease-in-out infinite world-map-mascot-blink}.world-map-sign{z-index:4;color:#fff0bd;width:clamp(150px,19cqw,280px);font-family:var(--font-pixel-ui);text-align:center;text-shadow:0 2px #60391d;background:linear-gradient(90deg,#0000 18%,#ffe2a433 20% 23%,#0000 25%),linear-gradient(#c98a42,#8d5728);border:clamp(2px,.25cqw,4px) solid #5e371c;border-radius:7px;padding:clamp(8px,1.1cqw,16px) clamp(12px,1.5cqw,22px);font-size:clamp(10px,1.25cqw,18px);line-height:1.2;position:absolute;bottom:4%;right:3.5%;transform:rotate(-1.5deg);box-shadow:inset 0 0 0 2px #ffdc973d,.22em .28em #3a220f61}.world-map-sign:before,.world-map-sign:after{content:"";aspect-ratio:1;background:#e1bb72;border-radius:50%;width:clamp(3px,.4cqw,6px);position:absolute;top:13%;box-shadow:inset 0 0 0 1px #70441f}.world-map-sign:before{left:5%}.world-map-sign:after{right:5%}.world-map-sign>i{z-index:-1;background:linear-gradient(90deg,#7c4823,#a66b32 48%,#74411f);border:clamp(2px,.2cqw,3px) solid #5b351a;border-top:0;width:14%;height:85%;position:absolute;top:100%;left:50%;transform:translate(-50%)}@keyframes world-map-title-glow{0%,to{filter:brightness()}50%{filter:brightness(1.12)drop-shadow(0 0 10px #ffd74880)}}@keyframes world-map-sparkle{0%,to{opacity:.48;transform:scale(.72)rotate(-8deg)}50%{opacity:1;transform:scale(1.08)rotate(7deg)}}@keyframes world-map-mascot-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(clamp(-6px,-.65cqh,-3px))rotate(1deg)}}@keyframes world-map-mascot-blink{0%,90%,96%,to{transform:scaleY(1)}92%,94%{transform:scaleY(.12)}}@keyframes world-map-speech-pop{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes world-map-light-flow{to{stroke-dashoffset:-26px}}@media (width<=520px){.world-title-wrap{top:clamp(10px,2.2cqw,22px)}}@media (prefers-reduced-motion:reduce){.world-map-light-path__beam,.world-title-main,.world-title-sparkle,.world-map-mascot__character,.world-map-mascot__speech,.hint-mascot__eye{animation:none}}.app-view{animation:.44s cubic-bezier(.2,.75,.2,1) both page-rise}
