@charset "UTF-8";
:root{color-scheme:dark;--base:#0b1d19;--panel:#142a25;--line:#c0b39e29;--paper:#f3e8d4;--muted:#b7bcb0;--gold:#dcb980;--jade:#a0c8b0;font:15px/1.45 "Segoe UI",system-ui,sans-serif;background:var(--base);color:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{color:inherit;background:#182d27;border:1px solid var(--line);border-radius:10px;min-height:44px;padding:8px 13px;cursor:pointer}button:hover{border-color:#dcb9808c;background:#203b31}button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid #f0c987;outline-offset:-2px}button:disabled{opacity:.4;cursor:default}button svg{width:20px;height:20px;flex:none;vertical-align:middle}a{color:var(--gold)}small{color:var(--muted)}p{color:#c5c8ba}h1,h2{font-family:Georgia,serif;font-weight:400;margin:0}h1{font-size:clamp(1.75rem,5vw,2.5rem)}h2{font-size:1.45rem}.muted{color:var(--muted)}.primary{background:#e5c48d;color:#22291f;border:1px solid #f0d29d;font-weight:650;display:inline-flex;gap:8px;align-items:center;justify-content:center}.primary:hover{background:#f4d6a1;color:#18241c}.ghost{background:transparent}.large{font-size:1.12rem}
#app{--scene:#244539}.menu{min-height:100dvh;background:radial-gradient(ellipse at 54% -15%,#28453b 0,transparent 56%),var(--base)}.top{display:flex;align-items:center;gap:10px;min-height:56px;padding:env(safe-area-inset-top) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:#0e211cde}.home-top{padding-inline:max(20px,calc((100vw - 1050px)/2));min-height:68px}.brand{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.brand b{font-family:Georgia,serif;font-size:1.16em;letter-spacing:.01em;line-height:1.12}.brand small{display:block;margin-top:2px;font-size:.67em;letter-spacing:.12em;line-height:1.15}.brand:has(img){flex-direction:row;align-items:center;gap:9px}.brand img{width:36px;height:36px;border-radius:8px;border:1px solid #dcb98042}.iconbutton{min-width:44px;width:44px;height:44px;padding:0;display:inline-grid;place-items:center;background:transparent;color:var(--gold)}
.home-main,.panel{width:min(1050px,100%);margin:auto;padding:22px clamp(14px,3vw,26px) max(18px,env(safe-area-inset-bottom))}.hero{min-height:300px;position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;border:1px solid #d4b47c4d;border-radius:18px;background:#0e2b23}.hero-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0d2720 18%,#0d2720f0 33%,#0d272024 72%,#0d272044),url('./icons/hero.webp') right 31% center / auto 142% no-repeat;filter:saturate(.8)}.hero-copy{padding:25px clamp(22px,5vw,48px)}.eyebrow,.section-label{font-size:.68rem;letter-spacing:.19em;color:var(--gold);font-weight:650}.hero h1{font-size:clamp(2.05rem,5.3vw,3.85rem);line-height:.98;margin:13px 0 10px;letter-spacing:-.04em}.hero h1 i{color:#d9bd8d;font-weight:400}.hero p{margin:0 0 18px;font-size:.88rem}.section-label{display:flex;justify-content:space-between;margin:21px 1px 9px}.section-label span:last-child{color:var(--muted);letter-spacing:.04em}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mode{display:flex;gap:11px;align-items:center;text-align:left;min-height:68px;padding:9px 11px;background:linear-gradient(135deg,#1c342c,#132821);border-radius:12px}.mode>span:nth-child(2){flex:1;min-width:0}.mode b,.mode small{display:block}.mode small{font-size:.73em;margin-top:2px}.mode-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid #dfbf8734;border-radius:8px;background:#d1b58b13;color:var(--gold);flex:none}.mode>svg{width:15px;color:#b8945e}footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px;margin-top:10px;color:#a5c2ae;font-size:.75rem}footer button{background:transparent;border-color:transparent;font-size:.75rem;padding-inline:7px}.panel>p{margin:6px 0 18px}.narrow{max-width:620px}.world-grid,.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin-top:14px}.world{display:grid;min-height:105px;text-align:left;padding:13px;border-radius:11px;border:1px solid var(--line);background:linear-gradient(155deg,var(--world),#13251f)}.world em{color:var(--gold);font:1.3em Georgia,serif}.world small,.level small{font-size:.76em}.level-grid{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.level{display:grid;min-height:58px}.level small,.medal{color:var(--gold)}.stats{display:flex;gap:10px;margin:13px 0}.stats b{background:#152a24;border:1px solid var(--line);border-radius:10px;padding:12px;flex:1;color:var(--gold);font-size:1.45rem}.stats small{font-size:.75rem;display:block}.history{display:grid;gap:5px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar button{min-width:0;padding:4px}.month{display:flex;justify-content:space-between;align-items:center;margin:13px 0 6px}
.game{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;background:#0d211d}.game-top{padding-inline:max(5px,env(safe-area-inset-left)) max(5px,env(safe-area-inset-right))}.game-top .brand b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-top .brand small{letter-spacing:0;font-size:.72em}.game-top .brand img{width:28px;height:28px}.game-top #counts{text-align:right;line-height:1.03;margin-right:3px;white-space:nowrap;color:var(--gold)}#counts b{display:block;font:1.36rem Georgia,serif}#counts small{font-size:.59rem;letter-spacing:.05em}.stage{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at center,var(--scene),#0a1715 86%)}.landscape{position:absolute;inset:0;opacity:.66;background:url('./scenery.svg') center bottom/cover no-repeat;pointer-events:none}.game[data-world="1"] .landscape{transform:scaleX(-1);opacity:.44}.game[data-world="2"] .landscape{opacity:.29;background-position:40% bottom}.game[data-world="3"] .landscape{transform:scaleX(-1);opacity:.32;background-position:75% bottom}.game[data-world="4"] .landscape{opacity:.53;background-position:90% bottom}.stage canvas{display:block;width:100%;height:100%;touch-action:none;position:relative;z-index:1}.stage-badge{position:absolute;left:13px;top:9px;color:#e4cb9e95;font-size:.62rem;letter-spacing:.19em;pointer-events:none}.stage-badge span{color:var(--gold)}.zoom{position:absolute;z-index:2;right:max(8px,env(safe-area-inset-right));bottom:8px;display:flex;gap:4px}.zoom .iconbutton{background:#0b211dcc}.tray{display:flex;justify-content:center;gap:4px;border-top:1px solid var(--line);padding:4px max(5px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));background:#0e211d}.tool{display:grid;place-items:center;align-content:center;gap:1px;padding:3px 4px;background:transparent;color:var(--gold);border-color:transparent;width:min(90px,20%);min-width:0}.tool span{font-size:.66rem;color:#e9dbc2}.tool svg{width:19px;height:19px}.guide-bar{display:flex;gap:5px;align-items:center;justify-content:center;font-size:.79rem;padding:4px}.guide-bar button{min-height:36px}
dialog{width:min(460px,calc(100vw - 26px));max-height:min(84dvh,700px);background:#142923;color:var(--paper);border:1px solid #a9875c8a;border-radius:16px;padding:14px 17px 18px;box-shadow:0 12px 64px #0009}dialog::backdrop{background:#06120eca;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:5px}.dialog-head .iconbutton{transform:rotate(180deg)}.dialog-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.medal{font-size:2.6rem;text-align:center;letter-spacing:.15em}#mini{width:100%;max-height:126px;background:#0b201b;border-radius:8px}form{display:grid;gap:9px;margin:13px 0 17px}label{display:grid;gap:5px;font-size:.87rem}label.toggle{display:flex;align-items:center;justify-content:space-between;min-height:35px;border-bottom:1px solid var(--line)}select,input:not([type=checkbox],[type=range]){padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#0d201b;color:var(--paper);min-height:40px}input[type=checkbox]{width:20px;height:20px}input{accent-color:#d4b282}#notice{position:fixed;z-index:5;left:50%;bottom:max(69px,calc(env(safe-area-inset-bottom) + 60px));transform:translate(-50%,6px);opacity:0;max-width:calc(100% - 24px);width:max-content;pointer-events:none;background:#102720f5;border:1px solid #c5a2707a;color:var(--paper);border-radius:9px;padding:7px 12px;transition:opacity .15s,transform .15s;font-size:.8rem}#notice.visible{opacity:1;transform:translate(-50%,0)}.boot{display:grid;justify-items:center;align-content:center;min-height:100dvh}.boot img{width:72px;border-radius:15px}
@media(max-width:650px){.home-top{min-height:57px}.home-main{padding-top:13px}.hero{min-height:210px}.hero-art{background:linear-gradient(90deg,#0d2720 8%,#0d2720da 32%,#0d272019 76%),url('./icons/hero.webp') right -46px center/auto 112% no-repeat}.hero-copy{padding:17px 15px}.hero h1{margin:10px 0 7px}.hero p{margin-bottom:10px}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mode{min-height:58px;padding:6px;gap:6px}.mode-icon{width:30px;height:30px}.mode>svg{display:none}.mode small{font-size:.67em}.section-label{margin-top:15px}.game-top .brand img{display:none}.game-top{gap:3px}.game-top .brand b{font-size:1.02em}}
@media(max-height:475px) and (orientation:landscape){.top{min-height:45px}.tray{padding-top:0}.tool{min-height:40px}.stage-badge{display:none}.zoom .iconbutton{width:39px;min-width:39px;height:39px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.stage .pixi-board{position:absolute;inset:0;pointer-events:none}.stage .pixi-board[hidden]{display:none}
.tutorial{background:#162c25;padding-inline:9px;text-align:left}.tutorial b{color:var(--gold);margin-right:3px}
.reserve-tray{padding:2px 8px 5px;background:#142b23;border-top:1px solid var(--line)}.reserve-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.75rem;color:var(--gold);margin-bottom:3px}.reserve-heading button{min-height:44px;padding:2px 10px}.reserve-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.tray-slot{min-height:44px;text-align:center;padding:3px;font-size:.71rem;overflow-wrap:anywhere}.tray-slot:not(.empty){background:#ead8b3;color:#182d27}.tray-slot[aria-pressed=true],.tray-slot[data-hint=true]{outline:2px solid #e5b45f;outline-offset:-3px}.tray-slot.empty{display:grid;place-items:center;border:1px dashed #aa96705e;border-radius:8px;color:#a99a7e}
.reserve-heading small{flex:1;line-height:1.1}@media(max-height:500px) and (orientation:landscape){.reserve-tray{display:grid;grid-template-columns:minmax(225px,1fr) 1.5fr;gap:8px;align-items:center}.reserve-heading{margin-bottom:0}.reserve-heading small{display:none}}
.audio-settings{display:grid;gap:8px;margin:0 0 8px;padding:10px;min-width:0;border:1px solid var(--line);border-radius:10px}.audio-settings legend{padding:0 5px;color:var(--gold);font-weight:650}.audio-settings select{width:100%;min-width:0}
.brand-about{border:0;background:transparent;padding:4px 0;text-align:left;justify-content:flex-start;border-radius:6px}
.brand-about:hover{background:transparent;color:var(--gold)}
dialog.about-dialog{width:min(610px,calc(100vw - 20px));max-height:calc(100dvh - 16px);padding:0;overflow:hidden;background:linear-gradient(150deg,#204538,#102822);border-color:#c1a46f8c}
.about-dialog .dialog-head{padding:3px 9px 3px 14px;background:#0b251f66;border-bottom:1px solid var(--line)}
.about-dialog .dialog-head h2{font:650 .84rem/1.2 system-ui,sans-serif;color:var(--muted)}
.about-dialog .dialog-head .iconbutton{transform:none;border-color:transparent}
.about-content{display:grid;grid-template-columns:minmax(88px,.65fr) minmax(0,1.75fr);gap:12px;padding:12px 14px 8px;align-items:stretch}
.about-brand{display:grid;place-items:center;padding:8px;background:#fff;border-radius:10px}
.about-brand img{width:min(100%,142px);max-height:104px;object-fit:contain}
.about-details{min-width:0}
.about-identity{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.about-identity img{width:43px;height:43px;border-radius:8px;border:1px solid var(--line)}
.about-identity h3{margin:0;font:600 clamp(1rem,4vw,1.58rem)/1.1 Georgia,serif;color:var(--paper)}
.about-identity p{margin:2px 0 0;color:var(--gold);font-size:.8rem}
.about-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 9px;margin:0;padding:7px 8px;list-style:none;background:#d6bc8311;border:1px solid var(--line);border-radius:8px;font-size:clamp(.68rem,2vw,.82rem);line-height:1.25;color:#e4dfd1}
.about-features li::before{content:"◆";margin-right:4px;color:var(--gold);font-size:.57em}
.about-footer{display:flex;justify-content:space-between;align-items:center;gap:7px;padding:3px 14px 9px;color:var(--muted);font-size:.72rem}
.about-footer button{padding-inline:9px;white-space:nowrap}
@media(max-height:260px) and (orientation:landscape){.about-content{padding-block:6px 4px}.about-identity{margin-bottom:4px}.about-identity img{width:34px;height:34px}.about-brand img{max-height:76px}.about-footer{padding-bottom:4px}}
@media(max-width:380px){.about-content{grid-template-columns:minmax(70px,.55fr) minmax(0,1.75fr);gap:7px;padding-inline:8px}.about-features{grid-template-columns:1fr}.about-footer{padding-inline:8px}}
@media(max-height:260px) and (orientation:landscape){.about-brand{padding:4px}.about-brand img{max-height:62px}.about-content{gap:8px}.about-features{padding:5px 6px;gap:3px 7px}}
@media(max-height:260px) and (orientation:landscape){.about-dialog .dialog-head{padding-block:0}.about-content{padding-block:3px}.about-footer{padding-block:0 3px}}
