@font-face{font-family:Pixel;src:url('/assets/pixel.ttf');font-display:swap}@font-face{font-family:Space;src:url('/assets/space.ttf');font-weight:400;font-display:swap}@font-face{font-family:Space;src:url('/assets/space-semibold.ttf');font-weight:500 900;font-display:swap}*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;overflow:hidden;background:#d9ecdf;color:#344e3c;font-family:Space,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #8f6449;outline-offset:4px}[hidden]{display:none!important}#world-app{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate}#overworld{position:absolute;inset:0;width:100%;height:100%;outline:none;touch-action:none;image-rendering:pixelated}.hud{position:absolute;top:max(27px,env(safe-area-inset-top));left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:2;pointer-events:none}.hud>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center;font-family:Pixel;font-size:12px;letter-spacing:.6px}.brand-g{font-family:Space;font-size:35px;font-weight:600;letter-spacing:-5px;padding:0 9px 6px 4px;line-height:1;background:#36513d;color:#f5f2d7;box-shadow:3px 3px 0 #8fa37b;border:2px solid #2b4434}.brand small{display:block;font-size:7px;color:#74876a;letter-spacing:1.8px;margin-top:8px}.hud-right{display:flex;gap:12px;align-items:center}.hud-right>span{font-family:Pixel;font-size:11px;color:#6d7743;white-space:nowrap}.hud button{background:#f7f5deed;border:1px solid #859879;padding:10px 13px;font-family:Pixel;font-size:9px;box-shadow:2px 2px 0 #80967344}.hud button:hover{background:#fffbe5}.hud button span{font-size:14px;margin-left:8px}#world-help{font-size:12px;min-width:35px}#welcome{position:absolute;left:50%;top:20%;transform:translateX(-50%);text-align:center;pointer-events:none;width:min(90%,600px);transition:opacity .4s;z-index:1}#welcome>span{font-family:Pixel;font-size:9px;color:#71856a;letter-spacing:2px}#welcome h1{font-family:Pixel;font-weight:400;font-size:clamp(21px,2.6vw,34px);color:#3c5943;letter-spacing:-1px;line-height:1.3;margin:15px 0 11px;text-shadow:2px 2px 0 #eaf1dd}#welcome p{font-size:13px;color:#71856a}#level-objective{position:absolute;top:100px;left:32px;z-index:2;font-family:Pixel;font-size:9px;line-height:1.8;color:#516a4b;background:#f6f2d8dc;border:1px solid #a7b698;padding:10px 14px;max-width:calc(100% - 64px)}#return-world{position:absolute;left:32px;bottom:85px;z-index:3;font-family:Pixel;font-size:8px;background:#f6f2d8ef;border:1px solid #8da17e;padding:11px 15px;box-shadow:3px 3px 0 #748a653d}#enter-wrap{position:absolute;left:50%;bottom:89px;transform:translateX(-50%);text-align:center;z-index:3;width:max-content;max-width:90%}#near-description{color:#3f5b43;background:#eef1daf2;padding:7px 12px;font-size:11px;border:1px solid #97aa83;border-bottom:0;max-width:100%;line-height:1.4}#enter-door{display:flex;gap:16px;align-items:center;justify-content:center;padding:13px 17px;background:#35563d;border:2px solid #27452f;color:#fff5d4;box-shadow:4px 4px 0 #27452f55;font-family:Pixel;font-size:10px;width:100%;min-height:49px}#enter-door:hover{background:#47714c}kbd{font-family:Pixel;font-size:8px;padding:4px 5px;border:1px solid currentColor;border-radius:2px;display:inline-block;line-height:1.1}#enter-door kbd{background:#f0edcb;color:#3b553c;border-color:#c9cea5}.world-controls{position:absolute;bottom:27px;left:32px;right:32px;display:flex;gap:24px;font-family:Pixel;font-size:7px;color:#6e7555;align-items:center;z-index:2;pointer-events:none}.world-controls>span{display:flex;align-items:center;gap:7px}.world-controls>span:last-child{margin-left:auto;font-size:6px;letter-spacing:1px}#touch-world{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:20px;right:20px;z-index:3;display:none;justify-content:space-between;pointer-events:none;touch-action:none}#touch-world>div{display:flex;gap:9px}#touch-world button{width:52px;height:49px;pointer-events:auto;background:#f3f0d4eb;border:1px solid #78916c;box-shadow:0 3px 0 #5d795156;color:#3c5d40;font-family:Pixel;font-size:17px;touch-action:none;user-select:none}#touch-world button:active{background:#d1dfba}#touch-world small{display:block;font-size:6px;margin-top:3px}dialog{padding:35px 38px 30px;background:#faf6df;color:#344e3c;border:2px solid #71865f;box-shadow:7px 7px 0 #34513f77;width:min(550px,calc(100% - 34px));max-height:84dvh;overflow:auto;z-index:30}dialog::backdrop{background:#2947379c;backdrop-filter:blur(4px)}#close-dialog{position:absolute;top:6px;right:11px;font-size:28px;background:none;color:#627757}.panel-kicker{font-family:Pixel;font-size:8px;color:#8c8761;letter-spacing:.5px}.panel-title{font-family:Pixel;font-weight:400;font-size:26px;line-height:1.3;margin:18px 0;color:#3e5c3e;letter-spacing:-1px}.panel-copy{font-size:14px;line-height:1.8;color:#738064;margin:16px 0 23px}.panel-actions{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.panel-button{padding:13px 17px;border:1px solid #71865f;background:#35563d;box-shadow:3px 3px 0 #82966e55;color:#fff8da;font-family:Pixel;font-size:9px;line-height:1.5;text-decoration:none;display:inline-flex;align-items:center;gap:15px}.panel-button.secondary{background:#e6e8ca;color:#506544;box-shadow:none}.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.map-grid button{padding:17px;text-align:left;background:#e9eacc;border:1px solid #a1b18e;min-height:99px;box-shadow:2px 2px 0 #82966e33}.map-grid button:hover{background:#d6e0b8}.map-grid strong{font-family:Pixel;font-size:11px;font-weight:400;line-height:1.6;display:block}.map-grid small{display:block;font-size:11px;color:#7e896b;margin-top:8px}.map-grid b{font-weight:400;font-family:Pixel;font-size:9px;color:#968765;display:block;margin-bottom:8px}.game-controls-list{font-size:13px;line-height:2.6;color:#6f7c61;margin-bottom:20px}.game-controls-list kbd{color:#43633f;font-size:8px;margin-right:6px}#world-notice{position:absolute;left:50%;top:110px;transform:translate(-50%,-12px);background:#35563df0;color:#f6e9bd;border:2px solid #9eae7a;padding:12px 18px;font-family:Pixel;font-size:9px;line-height:1.6;opacity:0;pointer-events:none;transition:.2s;text-align:center;width:max-content;max-width:90%;z-index:9}#world-notice.visible{opacity:1;transform:translate(-50%,0)}.subgame-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0b0c1b;z-index:20}body.subgame-open .hud,body.subgame-open #enter-wrap,body.subgame-open .world-controls,body.subgame-open #touch-world,body.subgame-open #return-world{visibility:hidden}.project-progress{font-family:Pixel;font-size:7px;color:#7f905e;margin-bottom:16px}noscript{position:absolute;inset:0;background:#f6f2dc;padding:40px}
@media(max-width:600px){.hud{top:max(23px,env(safe-area-inset-top));left:20px;right:20px;gap:10px}.brand{font-size:8px;gap:9px}.brand-g{font-size:28px;padding-right:8px}.brand small{font-size:5px;letter-spacing:.8px;margin-top:6px}.hud-right{gap:8px}.hud-right>span{font-size:8px}.hud button{padding:9px;font-size:7px}.hud button span{display:none}#world-help{display:none}#welcome{top:19%;width:90%}#welcome>span{font-size:7px;letter-spacing:1px}#welcome h1{font-size:23px;letter-spacing:-.5px}#welcome p{font-size:11px}.world-controls{display:none}#touch-world{display:flex}#enter-wrap{bottom:91px;max-width:calc(100% - 40px)}#near-description{font-size:10px}#enter-door{font-size:8px;gap:12px;padding:11px;min-height:44px}#enter-door kbd{display:none}#level-objective{top:86px;left:20px;max-width:calc(100% - 40px);font-size:7px;padding:8px 11px}#return-world{bottom:90px;left:20px;font-size:6px;padding:9px}body.near-door #return-world{bottom:160px}dialog{padding:29px 22px 24px}.panel-title{font-size:22px}.panel-copy{font-size:12px}.panel-kicker{font-size:7px}.map-grid{gap:9px}.map-grid button{padding:13px}.map-grid strong{font-size:9px}.map-grid small{font-size:10px}.panel-button{font-size:8px;padding:12px}.game-controls-list{font-size:11px}#world-notice{top:90px;font-size:7px}}@media(pointer:coarse) and (min-width:601px){#touch-world{display:flex}.world-controls{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
#play-stats{position:absolute;left:32px;top:94px;display:flex;gap:19px;align-items:center;z-index:2;padding:8px 12px;background:#f4f2d5d9;border:1px solid #b3bf99;font-family:Pixel;font-size:8px;pointer-events:none}#world-hearts{color:#b76e52;font-size:14px;letter-spacing:3px}#stomp-count{color:#648051}#world-score{color:#8b7950}#route-guide{position:absolute;right:32px;top:94px;z-index:2;text-align:right;background:#f4f2d5d9;border:1px solid #b3bf99;padding:9px 13px;pointer-events:none;max-width:42%}#route-guide small{display:block;font-family:Pixel;font-size:6px;color:#88936e;letter-spacing:1px;margin-bottom:5px}#route-name{font-family:Pixel;font-size:10px;color:#41603c}#world-sound[aria-pressed="true"]{background:#c9dca6;border-color:#708c57}#level-objective{top:147px}.world-controls{gap:19px}#enter-wrap{filter:drop-shadow(0 3px 0 #46613d20)}#enter-door kbd+kbd{margin-left:-10px}body.subgame-open #play-stats,body.subgame-open #route-guide{visibility:hidden}#touch-run[aria-pressed="true"]{background:#a3bb73;color:#284b29;border-color:#4f753e}
@media(max-width:600px){#play-stats{left:20px;right:20px;top:79px;font-size:6px;gap:15px;padding:7px 10px;justify-content:space-between}#world-hearts{font-size:11px;letter-spacing:2px}#route-guide{top:119px;left:20px;right:20px;max-width:none;text-align:left;display:flex;gap:12px;align-items:center;padding:8px 11px}#route-guide small{margin:0;font-size:5px;white-space:nowrap}#route-name{font-size:8px}#welcome{top:24%}#welcome h1{font-size:21px}#welcome p{font-size:11px;max-width:280px;margin:0 auto;line-height:1.6}#level-objective{top:122px}#world-sound{padding:7px;min-width:29px;font-size:12px}.hud-right{gap:7px}#enter-door kbd+kbd{display:none}#touch-run{width:48px;align-self:center}#touch-world{gap:9px}#touch-world>div{gap:8px}#touch-world button{width:49px}#touch-world small{font-size:6px}}
#project-tools{position:absolute;z-index:3;left:32px;top:190px;display:flex;align-items:center;gap:14px;max-width:calc(100% - 64px);background:#f6f2d9ed;border:1px solid #aab58d;padding:11px 13px;box-shadow:3px 3px #6f876225}#project-tools>div{font-family:Pixel;font-size:6px;line-height:1.8;max-width:330px}#part-cargo{display:block;font-size:5px;color:#849267;margin-top:5px}#project-gallery{font-family:Pixel;font-size:6px;white-space:nowrap;background:#416148;color:#f8eac5;border:1px solid #36573b;padding:13px 11px;box-shadow:2px 2px #a7b18b}.project-dialog{max-width:850px!important;width:calc(100% - 40px)!important}.project-picture{margin:0 0 21px;background:#e3e8d9;border:1px solid #a7b394;padding:10px}.project-picture img{display:block;width:100%;height:auto;max-height:355px;object-fit:contain}.project-picture figcaption{font-size:10px;line-height:1.5;color:#839275;margin-top:8px;text-align:center}.project-stack{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.project-stack span{font-size:11px;padding:6px 9px;background:#e7e9ce;border:1px solid #bdc5a3;color:#607950}.build-hint{font-size:12px;color:#89916e;line-height:1.7;margin:17px 0 22px}.project-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:25px 0}.project-gallery-grid button{padding:0;text-align:left;border:1px solid #a2b18a;background:#f0edcf;box-shadow:3px 3px #68805e2b;overflow:hidden}.gallery-image{display:flex;align-items:center;justify-content:center;height:162px;background:#e0e7d9;border-bottom:1px solid #abb797;padding:8px}.gallery-image img{display:block;width:100%;height:100%;object-fit:contain}.project-gallery-grid strong{display:block;padding:15px 14px 9px;font-family:Pixel;font-size:10px;font-weight:400}.project-gallery-grid small{display:block;padding:0 14px 15px;font-family:Pixel;font-size:5px;color:#7e8e63;line-height:1.7}.workshop-result{display:flex;flex-direction:column;gap:12px;margin:28px 0}.workshop-result b{font-family:Pixel;font-size:28px;color:#9f8142;font-weight:400}.workshop-result span{font-size:13px;color:#7d8e6d}body.subgame-open #project-tools{visibility:hidden}@media(max-width:600px){#project-tools{left:20px;right:20px;top:162px;max-width:none;gap:10px;padding:9px 10px}#project-tools>div{font-size:5px;line-height:1.7;max-width:190px}#part-cargo{font-size:4px}#project-gallery{font-size:5px;padding:11px 8px;white-space:normal;line-height:1.8;max-width:100px}.project-dialog{width:calc(100% - 28px)!important}.project-picture{padding:7px;margin-bottom:17px}.project-picture img{max-height:280px}.project-gallery-grid{gap:10px;margin:19px 0}.gallery-image{height:110px;padding:5px}.project-gallery-grid strong{font-size:7px;line-height:1.5;padding:11px 9px 7px}.project-gallery-grid small{font-size:4px;padding:0 9px 12px}.build-hint{font-size:11px}.project-picture figcaption{font-size:9px}.project-stack span{font-size:10px}}

body.autumn{background:#eee4ce}body.autumn #play-stats,body.autumn #route-guide{background:#fbf0d6e8;border-color:#bdac82}body.autumn .hud button{background:#faf0d9ed;border-color:#b6a581}body.autumn .brand small,body.autumn #route-guide small{color:#968664}body.autumn #welcome>span,body.autumn #welcome p{color:#8c7d5a}body.autumn #welcome h1{text-shadow:2px 2px #fff1d5}body.autumn #near-description{background:#f8edcfee;border-color:#b2a276}body.autumn .world-controls{color:#8e7d58}

#touch-world button{-webkit-user-select:none;-webkit-touch-callout:none}#touch-world button.held{background:#c3d3a1;border-color:#56764a;box-shadow:0 1px #5d795156;transform:translateY(2px)}@media(max-width:600px){#touch-world button{width:57px;height:58px}#touch-run{width:52px}}
