@charset "UTF-8";
:root{color-scheme:dark;--ink:#111a2b;--panel:#182437;--line:#3b4c63;--mint:#a8f0cf;--gold:#ffdc8b;--text:#f4f1e9;--sub:#abb9c9;--top:68px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);font-family:ui-rounded,"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:var(--text)}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#24334a;border-radius:10px;padding:11px 16px;min-height:44px;transition:background .12s,transform .12s}button:hover{background:#334865}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--mint);outline-offset:3px}button:disabled{opacity:.42;cursor:not-allowed}button.primary{background:var(--mint);border-color:var(--mint);color:#102e2c;font-weight:800}button.primary:hover{background:#c7ffe6}button.quiet{background:transparent}button.small{padding:7px 12px;font-size:13px}button.danger{border-color:#da7e83;color:#ffbcc0}a{color:var(--mint)}#world{position:fixed;left:0;top:var(--top);width:100%;height:calc(100% - var(--top));outline:none;touch-action:none;image-rendering:pixelated}#topbar{position:fixed;z-index:8;top:0;left:0;right:0;height:var(--top);background:#111a2bf5;border-bottom:1px solid #405068;display:flex;align-items:center;gap:16px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left))}.brand{display:flex;gap:10px;align-items:center;padding:0;background:none;border:0;font-size:16px;line-height:1;letter-spacing:1px;text-align:left;min-width:164px}.brand b{color:var(--mint)}.brand small{display:block;color:var(--sub);font-size:10px;letter-spacing:3px;padding-top:6px}.brand-icon{width:35px;height:38px;background:#a8f0cf;color:#102e2c;display:grid;place-items:center;font-size:24px;font-weight:900;box-shadow:4px 4px 0 #496575;border-radius:3px}.context{margin-right:auto;font-size:13px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet{display:flex;gap:14px;font-weight:800;font-size:15px;white-space:nowrap}.wallet span:first-child{color:var(--gold)}.wallet span:last-child{color:var(--mint)}.icon-button{font-size:21px;padding:4px 11px}.overline{font-size:11px;letter-spacing:3px;color:var(--mint);font-weight:700;text-transform:uppercase}.muted{color:var(--sub);font-size:13px;line-height:1.7}.warning{color:#ffcd97;font-size:13px;line-height:1.6}.badge{display:inline-block;border:1px solid #58717a;border-radius:20px;padding:4px 9px;color:var(--mint);font-size:11px}.panel{width:min(860px,100%);max-height:100%;overflow:auto;background:linear-gradient(145deg,#203047,#142032);border:1px solid #52647c;border-radius:20px;padding:28px;box-shadow:0 18px 90px #0008;scrollbar-width:thin}.panel.narrow{max-width:510px}.panel.wide{max-width:1060px}.panel h1{font-size:clamp(25px,4vw,42px);line-height:1.16;margin:10px 0 16px;letter-spacing:-1.3px}.panel h2{margin:5px 0 16px;font-size:25px}.panel h3{font-size:16px;margin:5px 0 10px}.panel p{line-height:1.65}.panel-head{display:flex;gap:15px;align-items:flex-start;justify-content:space-between}.close{padding:3px 12px;font-size:22px;min-width:44px;background:transparent}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}.hero-art{min-height:200px;border-radius:14px;background:repeating-linear-gradient(0deg,#ffffff03 0 2px,transparent 2px 5px),radial-gradient(ellipse at center,#365e61,#142337 68%);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.cabinet-logo{font-family:monospace;font-weight:900;background:#7fc3bd;color:#123546;border:10px solid #557c8b;box-shadow:9px 9px 0 #0a1525,0 0 60px #9af1d025;border-bottom-width:27px;padding:20px 24px;text-align:center;font-size:28px;transform:rotate(-6deg);line-height:1.2}.hero-art small{margin-top:26px;color:#abd5c4;letter-spacing:3px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.actions>*{flex:1}.divider{height:1px;background:var(--line);margin:20px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stage-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.stage-card{padding:15px 12px;text-align:left;border-radius:12px;min-height:125px;position:relative;overflow:hidden}.stage-card .number{font-family:monospace;font-size:27px;color:var(--mint);font-weight:900}.stage-card strong{display:block;font-size:13px;margin:8px 0}.stage-card small{color:var(--sub);display:block;font-size:11px;line-height:1.5}.stars{color:var(--gold);letter-spacing:2px;font-size:15px}.stage-card.locked{opacity:.5}.stage-card.current{border-color:var(--mint)}.form-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0}.form-row>label{min-width:102px;color:var(--sub);font-size:14px}select,input[type=text],input[type=number]{border:1px solid var(--line);border-radius:8px;background:#111e30;color:var(--text);padding:10px 12px;max-width:100%;min-height:44px}input[type=checkbox]{accent-color:var(--mint);width:18px;height:18px;vertical-align:middle}.chip{padding:7px 10px;background:#101e30;border:1px solid var(--line);border-radius:7px;font-size:12px}.stat-row{display:flex;gap:12px;flex-wrap:wrap}.stat{flex:1;background:#101e30;border-radius:12px;padding:16px;min-width:110px}.stat b{display:block;color:var(--mint);font-size:27px;margin:7px 0}.catalog-item{background:#112033;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.catalog-item button{margin-top:auto}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:42px;height:42px;border:3px solid transparent;padding:0}.swatch.selected{border-color:white}.status-list{font-size:13px;line-height:1.8;padding-left:18px}.status-list li{margin:8px 0}#overlay{position:fixed;z-index:20;inset:var(--top) 0 0;display:flex;align-items:center;justify-content:center;padding:20px;background:#08102091;backdrop-filter:blur(5px)}#overlay[hidden],#touch[hidden],#error[hidden]{display:none!important}#hint{position:fixed;z-index:7;left:50%;transform:translateX(-50%);bottom:max(20px,env(safe-area-inset-bottom));padding:9px 16px;border:1px solid #718e9070;border-radius:9px;background:#11202be8;max-width:min(760px,90vw);font-size:13px;text-align:center;pointer-events:none;line-height:1.5}#hint:empty{display:none}#toast{position:fixed;z-index:45;top:calc(var(--top) + 14px);left:50%;transform:translateX(-50%);padding:12px 18px;background:#183d3a;border:1px solid var(--mint);border-radius:10px;max-width:min(620px,90vw);font-size:14px;pointer-events:none;opacity:0;transition:opacity .15s;white-space:pre-line}#toast.show{opacity:1}#hud{position:fixed;z-index:9;right:12px;top:calc(var(--top) + 10px);display:flex;gap:7px}.touch-controls{position:fixed;z-index:12;left:0;right:0;bottom:0;height:146px;pointer-events:none;padding-bottom:env(safe-area-inset-bottom)}.touch-controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;background:#192d43c9;border:1px solid #94c7c6aa;min-width:48px;min-height:48px;padding:9px 11px;border-radius:14px;font-weight:700}.touch-controls button.held{background:#709d8ccf;color:white}.touch-left{position:absolute;left:max(13px,env(safe-area-inset-left));bottom:max(15px,env(safe-area-inset-bottom));text-align:center}.touch-left>button{margin-bottom:5px}.touch-left>div{display:flex;gap:6px}.touch-right{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:flex;gap:8px;align-items:flex-end}.touch-right .jump{height:76px;width:76px;background:#28524cd9;color:#d1ffea}.touch-top{position:absolute;right:16px;bottom:108px;display:flex;gap:6px}.touch-top button{min-height:34px;height:34px;font-size:12px;padding:3px 10px}.touch-on #hint{bottom:155px;font-size:12px}.root-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;max-width:324px;margin:15px auto}.root-cell{aspect-ratio:1;min-height:55px;padding:0;border-radius:6px;background:#172c28;position:relative}.root-cell svg{width:100%;height:100%}.root-cell.connected{border-color:#9fe0a2}.root-cell:focus{outline:2px solid #fff}.result-row{padding:13px;border:1px solid var(--line);border-radius:10px;margin:8px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.credit-screen{text-align:center;padding:30px 15px;min-height:300px;background:repeating-linear-gradient(0deg,#ffffff03 0 2px,transparent 2px 4px),#0c1725;border:1px solid #547f87;border-radius:14px}.credit-screen h1{color:var(--gold);letter-spacing:3px}.credit-screen .big-trophy{font-size:64px;filter:drop-shadow(0 0 20px #ffc96b70);margin:15px}.key{display:inline-block;padding:2px 7px;margin:2px;border:1px solid #657287;border-bottom-width:3px;border-radius:5px;font:12px monospace;color:#e5f4ef}.panel footer{font-size:11px;color:#97aabd;margin-top:18px;line-height:1.6}.toggle-bar{display:flex;gap:8px;flex-wrap:wrap}.toggle-bar button.active{border-color:var(--mint);color:var(--mint)}#error{position:fixed;z-index:90;bottom:10px;left:10px;right:10px;padding:14px;background:#4e242c;color:white;border:1px solid #e9a4a4;border-radius:8px;font-size:13px}details{margin:12px 0}summary{cursor:pointer;color:var(--mint);padding:8px 0}code{font-family:monospace}.tiny{font-size:11px;color:var(--sub)}.palette-preview{height:90px;display:flex;align-items:center;justify-content:center}.avatar-preview{width:32px;height:48px;box-shadow:0 0 0 6px #111d2c;border-radius:6px}.story-line{margin:12px auto;max-width:440px;color:var(--sub)}.ending-star{font-size:35px;color:var(--gold);letter-spacing:12px}.progress-track{height:6px;border-radius:3px;background:#081526;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--mint)}
@media(max-width:760px){:root{--top:60px}#topbar{gap:9px;padding-left:11px;padding-right:11px}.brand{min-width:118px;font-size:12px;gap:8px}.brand small{font-size:8px;letter-spacing:1.5px}.brand-icon{width:28px;height:32px;font-size:20px}.context{display:none}.wallet{margin-left:auto;font-size:13px;gap:10px}#quick{font-size:12px;padding:8px}.panel{padding:21px 18px;border-radius:15px}.stage-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.hero-art{display:none}#overlay{padding:12px}.stage-card{min-height:112px}.actions{gap:8px}.grid{grid-template-columns:repeat(2,1fr)}.touch-right{gap:5px}.touch-controls button{font-size:12px}.touch-left>div{gap:4px}}
@media(max-height:510px){:root{--top:48px}.brand small{display:none}.brand-icon{height:29px;width:27px}.panel{padding:18px;max-height:100%}.panel h1{font-size:25px}.panel-head h2{font-size:21px}#overlay{padding:8px}.touch-controls{height:112px}.touch-left{bottom:8px}.touch-left>button{position:absolute;left:53px;bottom:54px}.touch-top{bottom:78px}.touch-right .jump{height:62px;width:62px}.touch-right{bottom:10px}.touch-on #hint{bottom:115px;font-size:11px}.touch-controls button{min-height:43px}.stage-grid{grid-template-columns:repeat(5,1fr)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
