:root{--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--ink: #1c1712;--parch: #f3e6c8;--gold: #ffd34d;--red: #c0392b;--blue: #2e7fe0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--parch);overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;display:block;touch-action:none}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui>*{pointer-events:auto}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;padding:calc(var(--sat) + 16px) 16px calc(var(--sab) + 20px);overflow-y:auto;-webkit-overflow-scrolling:touch;background:#1c1712b8;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.title{justify-content:center;gap:14px;text-align:center;background:#1c17128c}.crest{font-size:64px;line-height:1;color:var(--gold);text-shadow:0 4px 0 #7a5a10}h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(40px,12vw,68px);letter-spacing:1px;text-shadow:0 4px 0 rgba(0,0,0,.5)}.tag{margin:0 0 12px;max-width:320px;font-size:16px;line-height:1.4;opacity:.92}h2{margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:22px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:14px;padding:13px 22px;min-height:48px;min-width:200px;font:inherit;font-weight:800;font-size:17px;color:#fff;background:var(--blue);box-shadow:0 4px #1a4f96;cursor:pointer;touch-action:manipulation}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #1a4f96}.btn:disabled{opacity:.45;cursor:default}.btn.big{font-size:20px;padding:16px 28px;background:#e0a52a;box-shadow:0 4px #8f6510;color:#2a1c05}.btn.big:active:not(:disabled){box-shadow:0 1px #8f6510}.btn.ghost{background:#ffffff1f;box-shadow:none}.btn.small{min-width:0;width:100%;min-height:44px;padding:8px 10px;font-size:14px}.btn.icon{min-width:46px;width:46px;height:46px;min-height:46px;padding:0;font-size:22px;background:#1c171299;box-shadow:none;border-radius:12px}.btn.pause{position:absolute;top:calc(var(--sat) + 6px);left:8px}.map{gap:16px}.topbar{display:flex;align-items:center;gap:10px;width:100%;max-width:520px}.stat{flex:1;text-align:center;font-weight:800;font-size:17px;background:#00000059;border-radius:12px;padding:11px 6px}.stat.gold{color:var(--gold)}.region{width:100%;max-width:520px;border-radius:16px;padding:14px;background:#ffffff14;border-left:6px solid #5c9a4c}.region.r1{border-left-color:#4d8a80}.region.r2{border-left-color:#aab4c4}.nodes{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.node{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:14px;aspect-ratio:1 / 1.15;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;color:#2a1c05;background:var(--parch);box-shadow:0 4px #a8946a;cursor:pointer;touch-action:manipulation}.node:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #a8946a}.node .num{font-weight:900;font-size:20px}.node .stars{font-size:11px;letter-spacing:1px;color:#b07a08}.node.boss{background:#f1c9c0;box-shadow:0 4px #a8645a}.node.locked{background:#ffffff24;box-shadow:none;color:var(--parch);cursor:default}.node.locked .num{font-size:16px;opacity:.7}.upgrades{width:100%;max-width:520px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.card{background:#ffffff1a;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:6px}.card-name{font-weight:800;font-size:16px}.card-name small{font-weight:600;opacity:.7}.card-effect{font-size:13px;opacity:.9;min-height:2.4em}.overlay{justify-content:center;background:#1c171299}.panel{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:stretch;gap:10px;text-align:center;background:#2a231b;border:2px solid rgba(243,230,200,.25);border-radius:20px;padding:22px 18px;box-shadow:0 12px 40px #00000080}.panel h2{font-size:28px;margin:0}.panel p{margin:0;font-size:15px;line-height:1.4}.panel .btn{min-width:0}.panel.win h2{color:var(--gold)}.panel.lose h2{color:#ff8a7a}.bigstars{font-size:44px;letter-spacing:6px;color:var(--gold);line-height:1.1}.gold{color:var(--gold);font-weight:800}.tip{opacity:.8;font-size:13px!important}
