:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#2a1c14;--muted:#7a5e4a;--cream:#fff4dc;--paper:#fff8ea;--paper-2:#f6e2b8;--teal:#13716b;--teal-hi:#1c8c84;--teal-d:#0b3b39;--pink:#ff4f8b;--pink-d:#c92a63;--sun:#ffc93c;--sun-d:#d98a00;--water:#3ba4f2;--danger:#e2483d;--green:#4e9f3d;--ui:"Jua", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", system-ui, sans-serif;--logo:"Lilita One", "Jua", system-ui, sans-serif}html{box-sizing:border-box;background:#0b3b39;height:100%;overflow:hidden}*,:before,:after{box-sizing:border-box}body{overscroll-behavior:none;height:100%;color:var(--cream);font-family:var(--ui);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;background-color:#0b3b39;background-image:radial-gradient(circle at 20% 20%,#ffffff0d 0 2px,#0000 3px),radial-gradient(circle at 70% 60%,#ffc93c0f 0 2px,#0000 3px);background-size:34px 34px,46px 46px;margin:0;overflow:hidden}button{font-family:var(--ui);color:inherit}.app{max-width:540px;height:100%;padding:8px max(16px, env(safe-area-inset-left,0px)) 8px max(16px, env(safe-area-inset-right,0px));flex-direction:column;gap:6px;margin:0 auto;display:flex;position:relative;overflow:hidden}.hud{flex:none;align-items:center;gap:6px;height:46px;display:flex}.sunbox{background:var(--paper);min-width:84px;height:40px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 12px 0 5px;font-size:22px;display:flex;box-shadow:0 3px #c9a876}.sunbox .ic svg{width:30px;height:30px;display:block}.sunbox.bump{animation:.22s ease-out bump}.sunbox.need{animation:.4s ease-in-out need}@keyframes bump{50%{transform:scale(1.12)}}@keyframes need{25%,75%{background:#ffd9d4;transform:translate(-4px)}50%{transform:translate(4px)}}.prog{flex:1;align-items:center;min-width:0;height:40px;display:flex;position:relative}.prog .track{background:var(--teal);border-radius:999px;width:100%;height:12px;position:relative;box-shadow:inset 0 2px #0003}.prog .fill{background:linear-gradient(90deg, #ff8fb8, var(--pink));border-radius:999px;width:0;transition:width .4s;position:absolute;top:0;bottom:0;left:0}.prog .flag{width:16px;height:22px;margin-left:-3px;position:absolute;top:-11px}.prog .flag:before{content:"";background:var(--cream);border-radius:2px;width:3px;height:22px;position:absolute;top:0;left:2px}.prog .flag:after{content:"";background:var(--pink);clip-path:polygon(0 0,100% 50%,0 100%);width:11px;height:8px;position:absolute;top:1px;left:5px}.prog .flag.done:after{background:var(--sun)}.prog .head{background:var(--paper);border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;transition:left .4s;position:absolute;top:50%;overflow:hidden;box-shadow:0 2px #00000040}.prog .head canvas{width:26px!important;height:26px!important}.prog .label{color:var(--cream);text-shadow:0 1px #00000080;pointer-events:none;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.iconbtn{background:var(--teal);width:44px;height:44px;color:var(--cream);cursor:pointer;border:0;border-radius:14px;flex:none;place-items:center;padding:0;font-size:15px;transition:transform 80ms;display:grid;box-shadow:0 3px #08302e}.iconbtn:active{transform:translateY(2px);box-shadow:0 1px #08302e}.iconbtn svg{width:22px;height:22px;display:block}.iconbtn .ic{display:grid}.iconbtn.on{background:var(--pink);box-shadow:0 3px 0 var(--pink-d)}.iconbtn.speed{flex-direction:column;font-size:13px;line-height:1}.iconbtn:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.card:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.btn:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.node:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.pick:focus-visible{outline:3px solid var(--sun);outline-offset:2px}.stage{background:#8cc46b;border-radius:14px;flex:1;min-height:0;position:relative;overflow:hidden;box-shadow:0 4px #062725}.stage canvas.board{touch-action:none;display:block;position:absolute;top:0;left:0}.banner{text-align:center;color:#fff;-webkit-text-stroke:1.5px var(--pink-d);text-shadow:0 3px 0 var(--pink-d), 0 6px 14px #0000004d;pointer-events:none;opacity:0;z-index:3;font-size:clamp(24px,8vw,36px);position:absolute;top:30%;left:0;right:0}.banner small{-webkit-text-stroke:0;text-shadow:0 2px #00000073;margin-top:4px;font-size:.5em;display:block}.banner.show{animation:2.4s ease-out banner}@keyframes banner{0%{opacity:0;transform:scale(1.5)}12%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.pill{max-width:calc(100% - 24px);color:var(--cream);white-space:nowrap;pointer-events:none;opacity:0;z-index:4;background:#2a1c14e0;border-radius:999px;padding:8px 16px;font-size:17px;transition:opacity .2s,transform .2s;position:absolute;bottom:12px;left:50%;transform:translate(-50%,8px)}.pill.show{opacity:1;transform:translate(-50%)}.hand{pointer-events:none;z-index:6;filter:drop-shadow(0 3px 2px #00000059);width:54px;height:54px;margin:-6px 0 0 -18px;display:none;position:absolute}.hand.show{animation:.9s ease-in-out infinite tap;display:block}@keyframes tap{0%,to{transform:translate(6px,12px)scale(1)}45%{transform:translate(0)scale(.92)}}.hand svg{width:100%;height:100%}.hand.flip svg{transform:scaleX(-1)}.hand:before{content:"";border:3px solid #ffffffe6;border-radius:50%;width:26px;height:26px;margin:-13px;animation:.9s ease-out infinite ripple;position:absolute;top:-2px;left:12px}@keyframes ripple{0%,40%{opacity:0;transform:scale(.4)}50%{opacity:1}to{opacity:0;transform:scale(1.5)}}.intro-card{background:var(--paper);color:var(--ink);z-index:5;pointer-events:none;border-radius:14px;align-items:center;gap:10px;padding:6px 12px 6px 6px;transition:transform .35s cubic-bezier(.2,1.4,.4,1);display:flex;position:absolute;top:8px;left:8px;right:8px;transform:translateY(-140%);box-shadow:0 4px #c9a876,0 8px 18px #00000040}.intro-card.show{transform:translateY(0)}.intro-card canvas{background:var(--paper-2);border-radius:10px;flex:none}.intro-card b{font-size:18px;font-weight:400;display:block}.intro-card span{color:var(--muted);font-size:15px}.intro-card .tag{background:var(--pink);color:#fff;border-radius:999px;margin-bottom:2px;padding:1px 8px;font-size:12px;display:inline-block}.tray{flex:none;justify-content:center;gap:5px;height:74px;display:flex}.card{background:var(--paper);min-width:0;max-width:78px;color:var(--ink);cursor:pointer;touch-action:none;border:0;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:0;padding:2px 0 3px;transition:transform .12s,box-shadow .12s,filter .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px #c9a876}.card canvas{pointer-events:none;width:48px;height:48px;display:block}.card .cost{font-variant-numeric:tabular-nums;align-items:center;gap:1px;font-size:15px;line-height:1;display:flex}.card .cost svg{width:15px;height:15px;display:block}.card .key{color:var(--muted);font-size:11px;display:none;position:absolute;top:3px;left:5px}@media (hover:hover) and (pointer:fine){.card .key{display:block}}.card .cd{transform-origin:top;pointer-events:none;background:#0b3b3999;height:100%;position:absolute;top:0;left:0;right:0;transform:scaleY(0)}.card.sel{box-shadow:0 0 0 3px var(--pink), 0 9px 0 #c9a876;transform:translateY(-6px)}.card.poor{filter:saturate(.35)brightness(.92)}.card.poor .cost{color:var(--danger)}.card.ready{animation:.5s ease-out ready}@keyframes ready{0%{box-shadow:0 0 #ffffffe6,0 4px #c9a876}to{box-shadow:0 0 0 10px #fff0,0 4px #c9a876}}.card.shake{animation:.35s cshake}@keyframes cshake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.card.glow{box-shadow:0 0 0 3px var(--sun), 0 0 18px 4px #ffc93ccc, 0 4px 0 #c9a876}.card.empty{box-shadow:none;cursor:default;background:#fff4dc2e}.drag-ghost{pointer-events:none;z-index:9;opacity:.9;width:64px;height:64px;margin:-54px 0 0 -32px;display:none;position:absolute}.drag-ghost canvas{width:64px!important;height:64px!important}.flysun{pointer-events:none;z-index:8;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute}.flysun svg{width:100%;height:100%;display:block}.screen{z-index:20;padding:8px max(16px, env(safe-area-inset-left,0px)) 10px max(16px, env(safe-area-inset-right,0px));flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.screen[hidden],.modal[hidden]{display:none!important}.modal{z-index:30;padding:12px max(16px, env(safe-area-inset-left,0px));background:#08282699;justify-content:center;align-items:center;animation:.2s ease-out fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}}.panel{background:var(--paper);width:100%;max-width:400px;max-height:100%;color:var(--ink);border-radius:20px;flex-direction:column;gap:12px;padding:18px 16px 16px;animation:.28s cubic-bezier(.2,1.5,.4,1) pop;display:flex;overflow:auto;box-shadow:0 6px #c9a876,0 16px 40px #0000004d}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.panel h2{color:var(--pink);text-shadow:0 2px #f7c6d8;text-align:center;margin:0;font-size:30px;font-weight:400;line-height:1.1}.panel p{text-align:center;margin:0;font-size:17px;line-height:1.45}.panel .sub{color:var(--muted);font-size:15px}.btns{flex-wrap:wrap;gap:8px;display:flex}.btn{cursor:pointer;background:var(--pink);color:#fff;min-height:50px;box-shadow:0 4px 0 var(--pink-d);border:0;border-radius:14px;flex:130px;padding:10px 12px;font-size:20px;transition:transform 80ms}.btn:active{box-shadow:0 1px 0 var(--pink-d);transform:translateY(3px)}.btn.alt{background:var(--teal);box-shadow:0 4px #08302e}.btn.ghost{background:var(--paper-2);color:var(--ink);box-shadow:0 4px #c9a876}.btn.big{min-height:62px;font-size:26px}.btn[disabled]{filter:grayscale(.8);opacity:.7}.stats{gap:8px;display:flex}.stat{background:var(--paper-2);text-align:center;border-radius:12px;flex:1;padding:8px}.stat b{font-variant-numeric:tabular-nums;font-size:28px;font-weight:400;display:block}.stat span{color:var(--muted);font-size:13px}.reveal{background:linear-gradient(135deg,#fff1c2,#ffe1ec);border-radius:16px;align-items:center;gap:12px;padding:10px;animation:.6s cubic-bezier(.2,1.6,.4,1) .25s both reveal;display:flex}@keyframes reveal{0%{opacity:0;transform:rotateY(90deg)scale(.6)}}.reveal canvas{background:#ffffffb3;border-radius:12px;flex:none}.reveal b{font-size:22px;font-weight:400;display:block}.reveal .tag{color:var(--pink-d);font-size:13px}.reveal span{color:var(--muted);font-size:16px}.toggles{flex-direction:column;gap:8px;display:flex}.toggle{background:var(--paper-2);cursor:pointer;min-height:48px;color:var(--ink);border:0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:6px 12px;font-size:18px;display:flex}.toggle i{background:#c9b79a;border-radius:999px;width:50px;height:30px;transition:background .2s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0000004d}.toggle[aria-checked=true] i{background:var(--green)}.toggle[aria-checked=true] i:after{transform:translate(20px)}.title-screen{background:linear-gradient(#0b3b3926 0%,#0b3b390d 40%,#0b3b39bf 100%);justify-content:space-between;align-items:center}.logo{text-align:center;margin-top:4vh;animation:.7s cubic-bezier(.2,1.4,.4,1) both logo}@keyframes logo{0%{opacity:0;transform:translateY(-30px)scale(.8)}}.logo h1{font-family:var(--ui);color:#8ee05a;-webkit-text-stroke:7px #2a1c14;paint-order:stroke fill;text-shadow:0 6px #2a1c14,0 12px 20px #00000059;letter-spacing:.02em;flex-direction:column;align-items:center;margin:0;font-size:clamp(54px,17vw,80px);font-weight:400;line-height:.95;display:flex}.logo h1 .c{transform:rotate(-3deg)}.logo h1 .vs{font-family:var(--logo);color:var(--sun);-webkit-text-stroke:5px #2a1c14;margin:-2px 0 -4px;font-size:.5em;transform:rotate(-8deg)}.logo h1 .g{color:#ff8fb8;transform:rotate(2deg)}.logo .kr{background:var(--paper);color:var(--ink);border-radius:999px;margin-top:10px;padding:4px 14px;font-size:20px;display:inline-block;box-shadow:0 3px #c9a876}.title-actions{flex-direction:column;gap:10px;width:100%;max-width:400px;margin-bottom:2vh;display:flex}.title-actions .btn{flex:none}.title-actions .row{gap:8px;display:flex}.btn .ic{vertical-align:-3px;margin-right:4px;display:inline-grid}.btn .ic svg{width:18px;height:18px}.title-actions .row .btn{flex:1;min-height:52px;font-size:18px}.tapnote{color:#fff4dccc;text-align:center;font-size:13px}.map-screen{color:var(--ink);background:#e9d9b5}.topbar{flex:none;align-items:center;gap:8px;height:48px;display:flex}.topbar h2{text-align:center;color:var(--ink);flex:1;margin:0;font-size:24px;font-weight:400}.topbar .iconbtn{background:var(--paper);color:var(--ink);box-shadow:0 3px #c9a876}.scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:4px 2px 16px;overflow:hidden auto}.chapter{color:#fff;border-radius:18px;margin:10px 0 4px;padding:12px 12px 6px;position:relative}.chapter h3{text-shadow:0 2px #00000040;margin:0;font-size:22px;font-weight:400}.chapter .csub{opacity:.9;font-size:14px}.ch1{background:linear-gradient(135deg,#7cbf5a,#4e9f3d)}.ch2{background:linear-gradient(135deg,#4fb08a,#2f8c6a)}.ch3{background:linear-gradient(135deg,#3d5a8a,#273e66)}.ch4{background:linear-gradient(135deg,#e0915a,#c0603a)}.path{grid-template-columns:1fr 1fr;gap:10px 14px;padding:10px 2px 8px;display:grid;position:relative}.node{background:var(--paper);min-height:64px;color:var(--ink);cursor:pointer;text-align:left;border:0;border-radius:16px;align-items:center;gap:8px;padding:6px 8px 6px 6px;display:flex;position:relative;box-shadow:0 4px #c9a876}.node canvas{background:var(--paper-2);border-radius:12px;flex:none}.node .meta{min-width:0}.node .num{color:var(--muted);font-size:12px}.node .ttl{word-break:keep-all;font-size:16px;line-height:1.15;display:block}.node .badge{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:-6px;right:-4px;box-shadow:0 2px #00000040}.node .badge svg{width:15px;height:15px}.node.locked{color:#9a8a74;cursor:default;background:#e1d2b2;box-shadow:0 4px #bda985}.node.locked canvas{filter:grayscale()brightness(.6)opacity(.6)}.node.locked .badge{background:#9a8a74}.node.current{box-shadow:0 0 0 3px var(--pink), 0 4px 0 #c9a876;animation:1.6s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(-3px)}}.node.endless{background:linear-gradient(135deg,#fff1c2,#ffd9e8);grid-column:1/-1}.loadout-screen{color:var(--ink);background:#e9d9b5}.slots{flex:none;justify-content:center;gap:5px;padding:6px 0;display:flex}.slots .card{max-width:64px;height:70px}.grannies-row{flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:6px;padding:4px 0 8px;display:flex}.grannies-row canvas{background:var(--paper);border-radius:50%;box-shadow:0 2px #c9a876}.grannies-row .lbl,.picklbl{color:var(--muted);text-align:center;font-size:15px}.pickgrid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.pick{background:var(--paper);color:var(--ink);cursor:pointer;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:1px;min-height:96px;padding:4px 2px 6px;display:flex;position:relative;box-shadow:0 4px #c9a876}.pick .nm{text-align:center;word-break:keep-all;font-size:13px;line-height:1.1}.pick .cost{align-items:center;font-size:13px;display:flex}.pick .cost svg{width:13px;height:13px}.pick.on{box-shadow:0 0 0 3px var(--pink), 0 4px 0 #c9a876;background:#fff}.pick.on:after{content:"";background:var(--pink);border-radius:50%;width:14px;height:14px;position:absolute;top:4px;right:4px}.pick.new:before{content:"NEW";background:var(--sun);color:var(--ink);border-radius:6px;padding:0 4px;font-size:10px;position:absolute;top:4px;left:4px}.footer-bar{flex:none;padding-top:8px}.footer-bar .btn{width:100%}.alm-screen{color:var(--ink);background:#e9d9b5}.tabs{flex:none;gap:6px;margin-bottom:6px;display:flex}.tabs button{background:var(--paper-2);min-height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:12px;flex:1;font-size:18px}.tabs button[aria-selected=true]{background:var(--teal);color:var(--cream)}.detail{background:var(--paper);border-radius:16px;flex:none;align-items:flex-start;gap:10px;min-height:120px;margin-bottom:8px;padding:10px;display:flex;box-shadow:0 4px #c9a876}.detail canvas{background:var(--paper-2);border-radius:12px;flex:none}.detail b{font-size:21px;font-weight:400;display:block}.detail .sp{color:var(--muted);font-size:13px}.detail p{margin:4px 0 0;font-size:15px;line-height:1.4}.bars{color:var(--muted);gap:8px;margin-top:4px;font-size:12px;display:flex}.bars i{background:#e0cfa8;border-radius:2px;width:7px;height:7px;margin-left:1px;display:inline-block}.bars i.f{background:var(--pink)}.locked-q{color:#bda985;font-size:30px}.rotate{z-index:50;text-align:center;color:var(--cream);background:#0b3b39;justify-content:center;align-items:center;padding:16px;font-size:22px;display:none;position:absolute;top:0;bottom:0;left:0;right:0}@media (orientation:landscape) and (max-height:430px) and (pointer:coarse){.rotate{display:flex}}.app.mode-title .hud,.app.mode-title .tray{display:none}@media (max-height:640px){.tray{height:66px}.card canvas{width:42px;height:42px}.hud{height:44px}}@media (prefers-reduced-motion:reduce){.banner.show{animation-duration:1.8s}.hand.show,.node.current,.panel,.reveal,.logo{animation:none}.card,.intro-card{transition:none}}
