:root{color-scheme:dark;background:#080b1a;color:#f8fafc;font-family:Inter,ui-rounded,system-ui,sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{min-height:100vh;min-height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:radial-gradient(circle at 50% 8%,rgb(34 211 238 / 12%),transparent 32rem),linear-gradient(145deg,#080b1a,#0b1427 55%,#07111d);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.game-shell{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);width:100%;height:100%;min-height:0;place-items:center}#game-stage{position:relative;display:grid;width:100%;height:100%;min-width:0;min-height:0;place-items:center}#game-container{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#080b1a}#game-container canvas{display:block;max-width:100%;max-height:100%;outline:none}.desktop-panel,.orientation-notice{display:none}#game-error{position:fixed;z-index:100;inset:20px;width:min(600px,calc(100% - 40px));height:fit-content;margin:auto;padding:20px;border:1px solid #fb7185;border-radius:12px;background:#451a24;text-align:center}@media(min-width:960px)and (min-height:620px){.game-shell{grid-template-columns:minmax(220px,1fr) minmax(320px,auto) minmax(220px,1fr);gap:clamp(18px,3vw,54px);padding:16px clamp(24px,4vw,72px)}.game-shell:before{position:fixed;z-index:-2;inset:0;background:linear-gradient(90deg,#080b1af7,#080b1ab3 35% 65%,#080b1af7),url(../assets/menu-night.png) center / cover no-repeat;content:"";filter:saturate(.7);opacity:.48}#game-stage{width:auto;height:min(960px,calc(100vh - 32px));height:min(960px,calc(100dvh - 32px));aspect-ratio:9 / 16}#game-container{border:1px solid rgb(103 232 249 / 24%);border-radius:22px;box-shadow:0 28px 80px #0000008c,0 0 42px #22d3ee14}#game-container canvas{border-radius:21px}.desktop-panel{display:flex;width:min(300px,100%);flex-direction:column;gap:18px;align-self:center;text-shadow:0 2px 18px #080b1a}.desktop-panel--left{justify-self:end}.desktop-panel--right{justify-self:start}.desktop-panel h1{margin:0;font-size:clamp(48px,5vw,78px);line-height:.82;letter-spacing:-.06em;text-transform:uppercase}.desktop-panel h1 span,.panel-kicker{color:#67e8f9}.desktop-panel>p:not(.panel-kicker){max-width:28ch;margin:0;color:#cbd5e1;font-size:16px;line-height:1.6}.panel-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.22em}.panel-card{display:grid;gap:7px;padding:16px 18px;border:1px solid rgb(148 163 184 / 20%);border-radius:16px;background:#0f172ac2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel-card--accent{border-color:#22d3ee47;background:#082f49b8}.panel-card span{color:#a5b4c7;font-size:13px;line-height:1.5}.control-list{display:grid;gap:10px;margin:0}.control-list div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:10px;border-bottom:1px solid rgb(148 163 184 / 14%)}.control-list dt{color:#f8fafc;font-weight:750}.control-list dd{margin:0;color:#94a3b8;font-size:13px;text-align:right}}@media(max-width:959px),(max-height:619px){#game-stage{width:min(100%,calc((100vh - var(--safe-top) - var(--safe-bottom)) * .5625));width:min(100%,calc((100dvh - var(--safe-top) - var(--safe-bottom)) * .5625));height:100%;max-height:960px}}@media(max-width:600px)and (orientation:portrait){#game-stage,#game-container{width:100%;height:100%;max-height:none}}@media(orientation:landscape)and (max-height:540px)and (pointer:coarse){.orientation-notice{position:fixed;z-index:20;right:calc(10px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));display:block;margin:0;padding:7px 10px;border:1px solid rgb(103 232 249 / 24%);border-radius:999px;background:#080b1ad1;color:#a5f3fc;font-size:11px;pointer-events:none}}@media(display-mode:standalone){body{background:#080b1a}}.nd-menu{position:absolute;z-index:5;width:540px;height:960px;overflow:hidden;transform-origin:top left;color:#f4fbff;font-family:Inter,ui-rounded,system-ui,sans-serif;background:#101d35;isolation:isolate;touch-action:pan-y}.nd-menu *{box-sizing:border-box}.nd-menu button,.nd-menu input,.nd-menu select{font:inherit}.nd-menu button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;transition:border-color .16s,filter .16s,transform .16s}.nd-menu button:disabled{cursor:not-allowed}.nd-menu button:focus-visible,.nd-menu input:focus-visible,.nd-menu select:focus-visible{outline:3px solid #fff0b7;outline-offset:4px}.nd-menu button:not(:disabled):hover{filter:brightness(1.12)}.nd-menu button:not(:disabled):active{transform:translateY(2px)}.nd-menu svg{width:25px;height:25px;flex-shrink:0}.nd-menu__scenery{position:absolute;z-index:-3;inset:0;background:linear-gradient(180deg,#09162926 0%,transparent 26%,#07142430 42%,#071321ec 82%,#071321 100%),var(--menu-night) center top/cover no-repeat}.nd-menu__sparkles{position:absolute;inset:0;z-index:-1;pointer-events:none}.nd-menu__sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#aff8ff;box-shadow:0 0 11px 3px #6cddef77;animation:nd-twinkle 4s ease-in-out infinite alternate}.nd-menu__sparkles i:nth-child(1){top:280px;left:75px}.nd-menu__sparkles i:nth-child(2){top:425px;left:457px;animation-delay:-1s}.nd-menu__sparkles i:nth-child(3){top:332px;left:420px;animation-delay:-2s}.nd-menu__sparkles i:nth-child(4){top:480px;left:54px;animation-delay:-3s}.nd-menu__sparkles i:nth-child(5){top:207px;left:465px;animation-delay:-1.5s}.nd-home{position:absolute;inset:0}.nd-utilities{position:absolute;top:26px;left:30px;right:30px;height:54px;display:flex;align-items:center;justify-content:space-between}.nd-coin-balance,.nd-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid #78c6df42;background:#101e35b8;box-shadow:0 4px 14px #030c192b}.nd-coin-balance{padding:11px 17px;border-radius:19px;color:#ffe1a0;font-size:23px;font-weight:800}.nd-coin-balance svg{width:27px;height:27px;color:#ffcf69}.nd-icon-button{width:54px;height:54px;border-radius:17px}.nd-brand{position:absolute;top:82px;left:0;right:0;text-align:center}.nd-brand>p{margin:0 0 3px;color:#b3d9e8;font-size:13px;font-weight:800;letter-spacing:.26em;text-shadow:0 2px 5px #03172b}.nd-brand h1{margin:0;font-size:68px;font-weight:950;font-style:italic;line-height:1.05;letter-spacing:-.04em;text-shadow:0 5px 0 #163b50,0 9px 22px #030e20b8}.nd-brand h1 span{color:#6fe9ed}.nd-badges{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:17px}.nd-badges>span{display:flex;gap:7px;align-items:center;padding:7px 12px;border:1px solid #7db7d637;border-radius:11px;background:#0b2037a3;font-size:16px;font-weight:700;color:#d7e9f3}.nd-badges svg{width:19px;height:19px;color:#ffd979}.nd-badges strong{color:#fff}.nd-hero{position:absolute;left:100px;top:202px;width:340px;height:280px}.nd-hero img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 9px 8px #020b1b6e);animation:nd-breathe 4s ease-in-out infinite;transform-origin:center bottom}.nd-hero__halo{position:absolute;inset:-30px -45px -10px;border-radius:50%;background:radial-gradient(ellipse,#4dd9e32a 0%,#4dd9e307 50%,transparent 71%)}.nd-hero__shadow{position:absolute;bottom:0;left:63px;right:63px;height:20px;border-radius:50%;background:#07152880;filter:blur(4px)}.nd-start-group{position:absolute;top:488px;left:36px;right:36px}.nd-start{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;height:76px;border:1px solid #b9ffff;border-bottom:5px solid #079fae;border-radius:22px;background:linear-gradient(#68f0ea,#28cbd0);box-shadow:0 6px #054e65,0 9px 33px #16cdd94d,inset 0 2px #d4ffff85;color:#073649!important;font-size:30px!important;font-weight:950!important;letter-spacing:.02em}.nd-start svg:first-child{width:31px;height:31px}.nd-start svg:last-child{width:23px;margin-left:3px}.nd-start-group>p{margin:15px 0 0;text-align:center;color:#b2cdda;font-size:16px;font-weight:500;letter-spacing:.02em}.nd-selectors{position:absolute;top:610px;left:36px;right:36px;display:grid;grid-template-columns:1fr;gap:10px}.nd-selector{height:61px;display:flex;text-align:left;align-items:center;gap:15px;padding:10px 18px;border:1px solid #72a8c650;border-radius:16px;background:linear-gradient(140deg,#20374dda,#142940e3);box-shadow:inset 0 1px #b0e0ff12,0 5px 15px #020c183d}.nd-selector__icon{display:flex;align-items:center;justify-content:center;width:32px;color:#92e9ed}.nd-selector__icon svg{width:28px;height:28px}.nd-selector small{display:block;margin-bottom:2px;color:#95b7cb;font-size:11px;letter-spacing:.07em;font-weight:800}.nd-selector strong{display:block;font-size:20px;font-weight:750;line-height:1.15}.nd-selector>svg{width:20px;height:20px;margin-left:auto;color:#93b6c9}.nd-goals-preview{position:absolute;top:753px;left:36px;right:36px;display:block;width:468px;padding:15px 17px;text-align:left;border:1px solid #76acbb42;border-radius:18px;background:linear-gradient(125deg,#1a3447db,#132538e8)}.nd-goals-preview__top,.nd-goals-preview__top>strong,.nd-goals-preview__top>span,.nd-goals-preview__detail,.nd-goals-preview__detail b{display:flex;align-items:center}.nd-goals-preview__top{justify-content:space-between}.nd-goals-preview__top>strong{gap:8px;color:#d2f3ed;font-size:13px;letter-spacing:.05em}.nd-goals-preview__top>span{gap:3px;color:#9ab9ca;font-size:12px}.nd-goals-preview svg{width:17px;height:17px}.nd-goals-preview__detail{justify-content:space-between;margin:12px 0 9px;font-size:17px}.nd-goals-preview__detail b{gap:4px;color:#ffdb88;font-size:15px}.nd-progress-bar{display:block;height:6px;overflow:hidden;border-radius:8px;background:#020e247d}.nd-progress-bar>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#38c4c9,#9cefdc)}.nd-bottom{position:absolute;bottom:22px;left:36px;right:36px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.nd-bottom button{display:flex;align-items:center;justify-content:center;gap:13px;min-height:61px;border:0;border-radius:14px;background:#17304785;font-size:15px;font-weight:800;letter-spacing:.03em}.nd-bottom svg{color:#8fbbd0}.nd-bottom small{display:block;margin-top:4px;color:#85a4b8;font-size:11px;font-weight:500;letter-spacing:0}.nd-status{position:absolute;z-index:40;top:82px;left:24px;right:24px;margin:0;padding:0;font-size:16px;text-align:center;color:#fff3cb;background:#2d243f}.nd-status:not(:empty){padding:12px;border-radius:10px}.nd-dialog-backdrop{position:absolute;z-index:10;inset:0;padding:24px;background:#030c20bb;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.nd-dialog{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid #70abc460;border-radius:25px;background:linear-gradient(150deg,#172d45,#0c192e);box-shadow:0 15px 55px #0007}.nd-dialog__header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:24px 23px 21px;border-bottom:1px solid #6eafc529}.nd-dialog__header p{margin:0 0 8px;color:#89dbe3;font-size:12px;font-weight:800;letter-spacing:.15em}.nd-dialog h2{margin:0;font-size:32px;line-height:1.2;letter-spacing:-.03em}.nd-dialog__close{flex-shrink:0;width:50px;height:50px;background:#2742588a}.nd-dialog__body{padding:23px;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#537d93 #0e1e31}.nd-dialog__footer{padding:17px 23px;flex-shrink:0;border-top:1px solid #6eafc529}.nd-done{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:59px;border:1px solid #68dedc;border-radius:14px;background:#2bc7c9;color:#072e43!important;font-size:19px!important;font-weight:850!important}.nd-intro,.nd-help{margin:0 0 19px;color:#a4c0d2;font-size:17px;line-height:1.6}.nd-help{font-size:15px}.nd-choice-list{display:grid;gap:11px}.nd-choice{display:flex;align-items:center;justify-content:space-between;gap:13px;width:100%;min-height:95px;text-align:left;padding:17px;border:1px solid #668fa747;border-radius:16px;background:#203b5280}.nd-choice strong{display:block;font-size:20px}.nd-choice small{display:block;margin-top:6px;color:#a5c1d2;font-size:15px;line-height:1.4}.nd-choice em{display:block;margin-top:8px;color:#dec894;font-size:13px;font-style:normal}.nd-choice>svg{width:23px;height:23px;color:#8eafc3}.nd-choice.is-selected{border-color:#64d6d2;background:linear-gradient(120deg,#1d655c75,#184f6269);box-shadow:inset 0 0 0 1px #7bece617}.nd-choice.is-selected>svg{color:#8df0ce}.nd-choice:disabled{opacity:.62}.nd-choice--rooftops{background:linear-gradient(110deg,#253e56,#1f3551)}.nd-choice--bamboo{background:linear-gradient(110deg,#214c44,#172d3b)}.nd-choice--neon{background:linear-gradient(110deg,#3d2b54,#211e43)}.nd-section{margin-top:27px;padding-top:23px;border-top:1px solid #6694ab36}.nd-section--first{margin-top:0;padding-top:0;border-top:0}.nd-section h3{display:flex;justify-content:space-between;margin:0 0 17px;font-size:21px;color:#e0f1f7}.nd-section h3>span{color:#8caec2;font-size:18px}.nd-field{display:grid;gap:10px;margin-bottom:17px;font-size:17px}.nd-field>span{display:flex;align-items:baseline;justify-content:space-between}.nd-field small{font-size:14px;color:#97bbcf}.nd-menu select,.nd-menu input[type=number],.nd-seed-input{width:100%;min-height:55px;padding:11px 14px;border:1px solid #668da557;border-radius:12px;background:#0b1c30;color:#ebf8ff;font-size:18px;touch-action:manipulation;-webkit-user-select:text;user-select:text}.nd-menu input[aria-invalid=true]{border-color:#fb9b9b}.nd-toggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #729fb220;font-size:18px;cursor:pointer}.nd-toggle>span{flex:1}.nd-toggle small{display:block;margin-top:5px;font-size:14px;line-height:1.45;color:#97b7ca}.nd-toggle input{position:absolute;right:0;width:60px;height:40px;margin:0;opacity:0;cursor:pointer}.nd-toggle>i{position:relative;width:56px;height:32px;border:1px solid #7396ad6b;border-radius:30px;background:#28435a;pointer-events:none}.nd-toggle>i:after{position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:50%;background:#8da9bd;content:"";transition:transform .15s}.nd-toggle input:checked+i{border-color:#5fdad0;background:#2fb3a8}.nd-toggle input:checked+i:after{transform:translate(24px);background:#e5fff8}.nd-toggle input:focus-visible+i{outline:3px solid #fff0b7;outline-offset:4px}.nd-toggle input:disabled+i{opacity:.3}.nd-small-button{min-height:49px;padding:10px 15px;border:1px solid #7da4bc65;border-radius:12px;background:#233b54;font-size:16px!important}.nd-small-button.is-selected{color:#a2f2d7;border-color:#5ccfa9}.nd-inline-buttons{display:flex;gap:12px;margin-top:12px}.nd-wide-button{display:flex;align-items:center;gap:12px;width:100%;padding:14px 15px;border:1px solid #759bb154;border-radius:13px;background:#254258a6;font-size:18px!important}.nd-wide-button strong{margin-left:auto;color:#8be5d1}.nd-range{display:block;padding:13px 0 17px}.nd-range>span{display:flex;justify-content:space-between;margin-bottom:9px;font-size:15px;color:#adcbda}.nd-range input{width:100%;height:30px;accent-color:#65dad7;touch-action:pan-x}.nd-goal-list{display:grid;gap:15px}.nd-goal{padding:19px;border:1px solid #709db34a;border-radius:17px;background:#1d3b5087}.nd-goal__heading{display:flex;align-items:center;gap:13px;margin-bottom:16px}.nd-goal__badge{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:#44766a63;color:#a2ead6}.nd-goal h3{margin:0;font-size:20px}.nd-goal__heading p{margin:5px 0 0;color:#97b9cc;font-size:15px}.nd-goal__reward{display:flex;align-items:center;gap:7px;margin:15px 0 0;color:#f5d78b;font-size:16px}.nd-goal__reward svg{width:20px;height:20px}.nd-goal__reward span{margin-left:auto;color:#9adfcf}.nd-rank-card{padding:23px;text-align:center;border:1px solid #6de1d65b;border-radius:19px;background:radial-gradient(ellipse at top,#2a786557,#19374e52)}.nd-rank-card>svg{width:49px;height:49px;color:#f2d491}.nd-rank-card h3{margin:11px 0 4px;font-size:31px}.nd-rank-card p{margin:0 0 19px;color:#a3c7d5;font-size:16px}.nd-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.nd-stat-grid>div{padding:17px 5px;text-align:center;border:1px solid #81a8bf27;border-radius:12px;background:#1c3a504d}.nd-stat-grid b{display:block;font-size:24px}.nd-stat-grid span{display:block;margin-top:5px;font-size:12px;color:#9cbccc}.nd-mastery{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid #729fb220;font-size:18px}.nd-mastery small{display:block;margin-top:6px;font-size:13px;color:#97b9cb}.nd-mastery b{color:#b6eadc;font-size:15px}.nd-achievement-list{display:grid;gap:11px}.nd-achievement{display:flex;align-items:center;gap:15px;padding:15px;border:1px solid #709db332;border-radius:13px;background:#1b334776}.nd-achievement>span{display:flex;color:#7e9db4}.nd-achievement h4{margin:0;font-size:18px}.nd-achievement p{margin:5px 0;color:#9ab9cb;font-size:14px;line-height:1.4}.nd-achievement small{color:#809fb5;font-size:12px}.nd-achievement.is-complete{border-color:#4fb0946b;background:#194d4363}.nd-achievement.is-complete>span,.nd-achievement.is-complete small{color:#8bdbbe}.nd-controls{margin:0}.nd-controls>div{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #729fb220;font-size:16px}.nd-controls dd{margin:0;color:#a0c3d5;text-align:right}.nd-controls+.nd-help{margin-top:18px}.nd-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@keyframes nd-twinkle{0%{opacity:.25;transform:translateY(0)}to{opacity:.9;transform:translateY(-9px)}}@keyframes nd-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,.992)}}.nd-menu--still *,.nd-menu--low .nd-hero img,.nd-menu--low .nd-menu__sparkles i{animation:none!important;transition:none!important}.nd-menu--low .nd-dialog-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}@media(prefers-reduced-motion:reduce){.nd-menu *{animation:none!important;transition:none!important}}
