@charset "UTF-8";
:root{--paper:#f8f5ec;--ink:#365d50;--muted:#8b947f;--green:#43775f;--mint:#e6eddc;--line:#dadfd0;--cream:#fffdf5;--gold:#edc76e;--rose:#c58278;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background-image:radial-gradient(#bbbfaa45 .6px,transparent .6px);background-size:7px 7px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #c58d56;outline-offset:4px}button:active:not(:disabled){transform:translateY(2px)}a{color:inherit;text-decoration:none}button,select,input{font-size:14px}button svg{pointer-events:none}button{transition:background .18s,color .18s,transform .16s}button:hover:not(:disabled){filter:brightness(.98)}[hidden]{display:none!important}p{margin:0;line-height:1.8}.desktop-header{max-width:1230px;margin:0 auto;height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e0e2d3;padding:0 24px}.wordmark{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:800;letter-spacing:1px}.mini-frog{display:inline-block;width:30px;height:30px;background:url('assets/icon.svg') center/contain;font-size:0}.edition{font-size:10px;letter-spacing:2px;color:#8d9787}.text-button{font-size:12px;color:#798571;padding:8px 0}.text-button span{margin-left:12px}.layout{display:grid;grid-template-columns:250px minmax(330px,416px) 250px;gap:52px;max-width:1170px;margin:35px auto 25px;align-items:center;justify-content:center;padding:0 20px}.intro{align-self:start;padding-top:62px}.overline{font-size:11px;letter-spacing:2px;color:#839174;margin-bottom:23px}.intro h1{font-size:36px;line-height:1.58;letter-spacing:1.6px;font-weight:700;margin:0 0 18px}.handwritten{position:relative;white-space:nowrap}.handwritten:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:9px;border-top:3px solid #cfb35d;border-radius:50%;transform:rotate(-3deg)}.intro>p{color:#8c9381;font-size:14px;letter-spacing:1px;line-height:2}.doodle-path{height:150px;margin-top:15px;position:relative}.doodle-path svg{width:100%;height:120px}.doodle-path span{position:absolute;left:30px;bottom:18px;font-size:13px;color:#8c977d;transform:rotate(-6deg)}.desktop-controls{border-top:1px dashed #ced6c5;padding-top:20px;display:grid;gap:10px;margin-right:35px;font-size:12px;color:#829079}.desktop-controls>div{display:flex;align-items:center;gap:6px}.desktop-controls span{margin-left:auto}kbd{font:11px inherit;border:1px solid #ced5c2;border-bottom:3px solid #ced5c2;border-radius:5px;background:#fffcf2;min-width:25px;padding:4px 6px;text-align:center;color:#657c65}.small-note{margin-top:40px;font-size:12px;line-height:1.9;color:#96a087;position:relative;padding-left:23px}.note-star{position:absolute;left:0;color:#c4a658;font-size:18px;top:-3px}.game-shell{width:100%;background:#fffdf6;border:1px solid #d8ddcb;border-radius:24px;box-shadow:0 12px 35px #50644312,0 2px 6px #5368430a;overflow:hidden;position:relative}.game-header{height:59px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid #e0e4d1}.home-logo{display:flex;align-items:center;gap:5px;padding:0;font-size:14px;white-space:nowrap}.home-logo .mini-frog{width:27px;height:27px}.header-actions{display:flex;align-items:center;gap:7px}.wallet{display:flex;align-items:center;gap:6px;padding:6px 9px;background:#f1efdf;border-radius:20px;font-size:12px}.pearl{display:inline-block;flex-shrink:0;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff2c5 0 16%,#c5a378 20% 48%,#8d6d4d 70%);box-shadow:0 1px 2px #86634720}.icon-button{width:34px;height:36px;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:12px}.icon-button svg{width:19px;height:19px;stroke-width:1.7}.icon-button:hover{background:#e9eedf}.stage{height:min(690px,calc(100dvh - 184px));min-height:510px;position:relative;overflow:hidden;isolation:isolate;background:#f9f4e6}.stage canvas{width:100%;height:100%;display:block;touch-action:none}.home-panel{position:absolute;inset:0;pointer-events:none}.home-panel button{pointer-events:auto}.home-top{text-align:center;padding:25px 15px 0}.eyebrow{font-size:10px;letter-spacing:1.4px;color:#8e9b7e}.home-top h2{font-size:33px;letter-spacing:3px;margin:10px 0 7px;font-weight:800;color:#47775e}.home-top h2>span{font-size:21px;color:#d3b867;display:inline-block;transform:rotate(16deg);vertical-align:top;margin:0 0 0 3px}.home-top p{font-size:11px;letter-spacing:1px;color:#89977d}.scene-tag{position:absolute;top:48%;left:50%;transform:translateX(-50%) rotate(-3deg);color:#8c967e;font-size:10px;white-space:nowrap;border-bottom:1px dashed #c2cbae;padding-bottom:4px}.home-bottom{position:absolute;left:23px;right:23px;bottom:13px;pointer-events:auto}.mode-tabs{display:flex;background:#eaeedcdd;border:1px solid #d9dfca;border-radius:12px;padding:4px;gap:3px}.mode-tabs button{flex:1;font-size:12px;padding:9px 0;border-radius:8px;color:#7e8c70}.mode-tabs button[aria-selected=true]{background:#fffef8;color:#426b53;box-shadow:0 2px 5px #56673b12;font-weight:800}.mode-description{font-size:10px;text-align:center;color:#98a084;height:31px;line-height:31px}.primary{display:flex;align-items:center;justify-content:center;width:100%;background:#527e59;color:#fff9e7;font-weight:700;border:1px solid #416b48;border-bottom:4px solid #355c3c;border-radius:14px;padding:14px 18px;letter-spacing:1px}.primary:active{border-bottom-width:2px}.start-button{justify-content:space-between;font-size:17px;padding-left:38px;height:56px;box-shadow:0 5px 10px #527b4020}.start-button .arrow{font-size:24px;font-weight:400}.personal-best{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#89977b;padding:2px 4px 9px}.personal-best b{font-size:13px;margin:0 4px;color:#638363}.personal-best .text-button{font-size:10px}.home-nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px dashed #cad4b9;padding-top:11px;gap:3px}.home-nav button{font-size:10px;display:grid;place-items:center;gap:5px;padding:3px 0}.nav-icon{color:#7d9070}.nav-icon svg{width:21px;height:21px;stroke-width:1.5}.game-footer{height:29px;display:flex;align-items:center;gap:6px;padding:0 17px;font-size:9px;color:#8e9a80;border-top:1px solid #e0e4d1;letter-spacing:.2px}.status-dot{width:5px;height:5px;border-radius:50%;background:#97ad82}.version{margin-left:auto;color:#b7bda5}.field-notes{align-self:start;padding-top:49px}.side-title{font-size:11px;display:flex;justify-content:space-between;color:#859179;letter-spacing:1px;border-bottom:1px solid #dce1d1;padding-bottom:13px}.side-title>span:last-child{font-size:9px;letter-spacing:2px}.postcard{position:relative;border:1px solid #e0dcc7;background:#faf5e8;margin:26px 3px 35px;padding:8px 7px 16px;transform:rotate(3deg);box-shadow:2px 5px 0 #e4e8d957}.tape{position:absolute;top:-10px;left:75px;width:73px;height:20px;background:#ced8b779;transform:rotate(-8deg);z-index:1}.postcard-art{width:100%;height:137px}.postcard-caption{font-size:11px;display:block;text-align:center;letter-spacing:1px;color:#859070}.postmark{position:absolute;right:8px;bottom:11px;color:#afb69b;font-size:7px;border:1px solid #afb69b;border-radius:50%;padding:5px;transform:rotate(-12deg)}.note-item{display:flex;gap:15px;margin-bottom:24px}.note-number{font-size:11px;color:#aaa887;padding-top:2px;font-family:Georgia,serif;font-style:italic}.note-item b{font-size:12px;font-weight:600;letter-spacing:.2px}.note-item p{color:#929a86;font-size:11px;margin-top:6px;line-height:1.9}.journal-link{display:flex;justify-content:space-between;font-size:11px;padding:14px 0;width:100%;border-bottom:1px solid #d2dbc5;border-top:1px dashed #d2dbc5;color:#74876b}.side-footer{margin-top:18px;font-size:9px;letter-spacing:1px;text-align:center;color:#acb19c}.desktop-footer{max-width:1180px;display:flex;justify-content:space-between;margin:0 auto 22px;padding:0 18px;font-size:9px;letter-spacing:1px;color:#a4ad97}
/* The whole play surface is one touch target; controls remain above it. */
.play-hud{position:absolute;inset:0;pointer-events:none}.height-display{position:absolute;left:20px;top:15px;display:grid;gap:3px;text-shadow:0 1px 0 #fff9}.height-display>span:first-child{font-size:10px;letter-spacing:1px;color:#7f9575}.height-display strong{font-family:ui-rounded,"Trebuchet MS",system-ui,sans-serif;font-size:36px;font-weight:750;line-height:1.1;letter-spacing:-1px;color:#496f53}.height-display small{font-size:13px;margin-left:4px;letter-spacing:0}.run-pearls{display:flex;align-items:center;gap:6px;font-size:11px;color:#8d7655}.pause-button{position:absolute;right:15px;top:15px;background:#fffcf1c9;border:1px solid #d7dfc9;pointer-events:auto}.effects{position:absolute;left:18px;top:103px;display:grid;gap:6px}.effect{font-size:10px;border-radius:15px;padding:5px 9px;background:#fffaf0e6;box-shadow:0 2px 5px #526c4b11;color:#708564;display:flex;align-items:center;gap:6px}.effect svg{width:14px;height:14px}.combo{position:absolute;left:0;right:0;top:35px;text-align:center;font-size:15px;font-weight:800;color:#ba9360;opacity:0;transition:opacity .2s;letter-spacing:1px}.combo.visible{opacity:1}.tutorial{position:absolute;bottom:119px;left:35px;right:35px;text-align:center;padding:9px 10px;font-size:12px;background:#fff9e7e0;border:1px dashed #cdd9b4;border-radius:20px;color:#6f8b60;transition:opacity .6s}.touch-controls{position:absolute;bottom:17px;left:17px;right:17px;display:flex;justify-content:space-between;align-items:end;gap:9px}.direction-buttons{display:flex;gap:12px;pointer-events:auto}.direction-buttons button{width:57px;height:54px;border:1px solid #9aac8590;border-bottom:3px solid #9aac8580;border-radius:18px;background:#fffdf3b3;color:#708859;font-size:26px;touch-action:none}.direction-buttons button:active{background:#dfeacd}.shoot-button{pointer-events:auto;background:#6f946bcc;color:#fffbed;border:2px solid #f5f4dcb3;border-radius:50%;width:62px;height:62px;display:grid;place-content:center;gap:1px;touch-action:none;box-shadow:0 4px 12px #52744825}.shoot-button span{font-size:25px;line-height:26px}.shoot-button small{font-size:8px;letter-spacing:1px}.modal-backdrop{position:absolute;inset:0;z-index:30;background:#34553f40;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px}.sheet{background:#fffdf4;border:1px solid #d8dfc4;border-radius:23px;width:100%;max-height:94%;display:flex;flex-direction:column;box-shadow:0 12px 50px #28433129;overflow:hidden;animation:sheetIn .24s ease-out}.sheet-head{padding:20px 20px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed #dbe0c9;flex-shrink:0}.sheet-eyebrow{font-size:9px;letter-spacing:1px;color:#a1a88c}.sheet-head h2{font-size:20px;letter-spacing:1px;margin:6px 0 0;font-weight:700}.sheet-head .icon-button{font-size:24px;font-weight:300}.sheet-content{overflow:auto;overscroll-behavior:contain;padding:17px 19px 22px;scrollbar-width:thin;scrollbar-color:#ccd6bc transparent}.sheet-intro{color:#8e987e;font-size:11px;line-height:1.8;margin-bottom:14px}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.outfit-card{background:#f1f0e3;border:1px solid #dde3cb;border-radius:14px;padding:10px 8px;position:relative;text-align:center}.outfit-card.equipped{border:2px solid #80a373;padding:9px 7px;background:#e9efd9}.outfit-card img{width:100%;height:125px;object-fit:contain;filter:drop-shadow(0 6px 4px #5e69471b)}.outfit-card h3{font-size:12px;margin:0 0 4px}.outfit-card p{font-size:9px;line-height:1.6;color:#879174;min-height:29px;margin-bottom:8px}.outfit-card button{width:100%;background:#fffdf1;border:1px solid #d7dfc4;border-radius:8px;padding:7px 3px;font-size:11px}.outfit-card.equipped button{background:#6f9368;color:#fff9e9;border-color:#6f9368}.price{display:inline-flex;gap:5px;align-items:center}.row-card{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px dashed #d6dec5}.row-card:last-child{border:0}.row-card .deco-icon{background:#e9efda;border-radius:12px;display:grid;place-items:center;width:46px;height:46px;flex-shrink:0}.deco-icon svg{width:28px;height:28px}.row-card h3{font-size:13px;margin:0 0 4px}.row-card p{font-size:10px;color:#939a83;line-height:1.7}.row-card>div:nth-child(2){flex:1}.small-button{padding:8px 9px;border-radius:9px;background:#edf1df;border:1px solid #d7dfc4;white-space:nowrap;font-size:11px}.receipt-hero{text-align:center;border-bottom:1px dashed #d7dfc4;padding-bottom:17px;margin-bottom:14px}.receipt-hero .distance{font-size:54px;line-height:1.15;letter-spacing:-2px;color:#557e58;font-family:ui-rounded,system-ui,sans-serif;font-weight:750}.receipt-hero small{font-size:15px;letter-spacing:0;margin-left:4px;color:#819676}.receipt-hero .label{font-size:11px;letter-spacing:1px;color:#8a9979;margin:8px 0}.receipt-hero img{height:105px;margin-top:-10px;margin-bottom:-9px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:8px;margin:15px 0}.summary-grid strong{font-size:19px;display:block;color:#7f895c}.summary-grid span{font-size:10px;color:#98a084;display:block;margin-top:4px}.reward-line{display:flex;justify-content:space-between;font-size:12px;padding:8px 0;color:#8c987e}.reward-line strong{color:#a68855}.button-stack{display:grid;gap:9px;margin-top:17px}.secondary{display:block;width:100%;text-align:center;padding:11px 14px;border:1px solid #d9dfc9;border-radius:12px;font-size:12px;background:#f1f2e5;color:#7f8d70}.new-stamp{padding:8px 10px;background:#f4edcf;border:1px dashed #d5c791;color:#9b8757;border-radius:9px;font-size:11px;margin:5px 0}.settings-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px dashed #dde1d0;padding:14px 0;font-size:13px}.settings-row small{display:block;font-size:10px;color:#939e83;margin-top:5px}.toggle{width:40px;height:24px;border-radius:13px;background:#d6ddca;padding:3px;flex-shrink:0}.toggle span{height:18px;width:18px;border-radius:50%;background:#fffdf6;display:block;box-shadow:0 1px 2px #0001;transition:transform .2s}.toggle[aria-checked=true]{background:#749869}.toggle[aria-checked=true] span{transform:translateX(16px)}.control-choices{display:flex;gap:6px;margin:12px 0}.control-choices button{flex:1;padding:10px 2px;border-radius:9px;border:1px solid #dde1ca;font-size:11px;background:#f6f5e9}.control-choices button.active{background:#dfead0;border-color:#a0b78d}.how-row{display:flex;gap:13px;padding:10px 0;font-size:12px;color:#6d8463}.how-row>span{font-size:20px;background:#edf0df;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex-shrink:0}.how-row svg{width:22px;height:22px}.how-row b{font-size:12px}.how-row p{font-size:10px;color:#99a087;margin-top:3px}.legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.legend-item{font-size:10px;padding:9px;background:#f1f2e5;border-radius:8px;display:flex;align-items:center;gap:7px}.legend-platform{display:block;width:30px;height:8px;border-radius:5px;border:1px solid #90a378;background:#ceddb1;box-shadow:0 3px 0 #afbd8d}.legend-platform.moving{background:#bdd7de;border-color:#88aab3;box-shadow:0 3px 0 #91b9c1}.legend-platform.crumble{background:#e9bcb0;border-color:#ca9686;box-shadow:0 3px 0 #ce9d8a}.legend-platform.vanish{background:#dad0e3;border-color:#b8a8c5;box-shadow:0 3px 0 #b8a5c7}.mission{display:flex;gap:13px;padding:13px 0;border-bottom:1px dashed #dce0cf}.stamp-icon{width:46px;height:50px;display:grid;place-items:center;font-size:25px;color:#bcc8aa;border:1px dashed #ced6bc;border-radius:50%;flex-shrink:0;transform:rotate(-9deg)}.mission.done .stamp-icon{color:#839c63;border:2px double #94ad79;background:#edf2de}.mission h3{font-size:12px;margin:0 0 5px}.mission p{font-size:10px;color:#99a185}.mission>div:last-child{flex:1}.progress{height:4px;background:#e7eadb;border-radius:4px;margin:9px 0 5px;overflow:hidden}.progress i{display:block;height:100%;background:#a7ba84}.mission small{font-size:9px;color:#a1a789}.journey-route{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 18px}.journey-stop{font-size:10px;padding:6px 9px;border:1px solid #dce2cc;border-radius:12px;color:#a2ad91}.journey-stop.visited{background:#e8efdc;color:#6c8859}.record{display:flex;align-items:center;gap:14px;border-bottom:1px dashed #dce0ce;padding:13px 2px;font-size:12px}.record>span{color:#a4ac92}.record>div{flex:1}.record small{display:block;color:#a2a98e;font-size:9px;margin-top:4px}.record>strong{font-size:20px;color:#71895e}.empty-state{text-align:center;color:#8c9b7b;font-size:12px;line-height:2;padding:22px 5px}.toast{position:absolute;z-index:60;bottom:96px;left:30px;right:30px;padding:12px;text-align:center;background:#456d4de8;border:1px solid #819977;color:#fffbea;border-radius:13px;font-size:12px;box-shadow:0 5px 16px #334d3825;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translateY(0)}.pause-message{text-align:center;padding:10px;font-size:12px;color:#8d9b80}.pause-art{display:block;height:135px;margin:-3px auto -8px}.daily-note{font-size:10px;background:#edf1df;padding:10px;border-radius:8px;color:#8e987b;margin-bottom:12px}.storage-warning{font-size:10px;color:#ab795e;padding:8px 0}.export-controls{display:flex;gap:7px;margin-top:15px}.export-controls button{flex:1}.file-input{display:none}.game-shell.is-playing .game-header{background:#fbf8ed}.game-shell.is-playing .stage{cursor:crosshair}.game-shell.is-playing .home-logo{opacity:.8}
@keyframes sheetIn{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
/* One shared phone layout on desktop and mobile. */
html,body{height:100%;overflow:hidden;background:#faf5e6}.desktop-header,.intro,.field-notes,.desktop-footer{display:none}.layout{display:block;margin:0;padding:0;height:100dvh}.game-shell{width:100%;max-width:500px;height:100dvh;margin:auto;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column}.game-header{height:calc(55px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);flex-shrink:0}.stage{height:auto;min-height:0;flex:1}.game-footer{height:calc(27px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}.home-top{padding-top:30px}.home-bottom{left:27px;right:27px;bottom:15px}.scene-tag{top:49%}.home-nav{padding-top:13px}.home-nav button{font-size:11px}.home-top h2{font-size:36px}.start-button{height:57px}.mode-tabs button{padding:11px 0}.home-nav button{min-height:48px}.wallet{font-size:13px}.icon-button{width:38px;height:39px}.header-actions{gap:4px}.modal-backdrop{padding:15px}.sheet-content{padding:16px 19px 22px}.home-logo{font-size:15px}.game-footer{font-size:9px}
@media(max-height:710px){.home-top{padding-top:16px}.home-top h2{font-size:30px;margin:7px 0 3px}.home-top p{font-size:10px}.eyebrow{font-size:9px}.home-bottom{bottom:8px;left:22px;right:22px}.mode-tabs button{padding:8px 0}.start-button{height:49px;font-size:15px}.mode-description{height:27px;line-height:27px}.home-nav{padding-top:6px}.home-nav button{min-height:39px;font-size:10px}.personal-best{padding-bottom:5px}.scene-tag{top:46%}.modal-backdrop{padding:10px}.sheet-head{padding:14px 17px 10px}.sheet-content{padding:12px 16px 16px}.outfit-card img{height:96px}.receipt-hero img{height:85px}.receipt-hero .distance{font-size:43px}.button-stack{margin-top:10px}.summary-grid{margin:10px 0}.touch-controls{bottom:12px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
body.reduced *{animation:none!important;transition:none!important}

/* 1.1: layered toy world, short orders and a deliberate boost action. */
.stage canvas.world-3d{position:absolute;inset:0;z-index:1;pointer-events:none}.home-panel,.play-hud{z-index:3}.order-hud{position:absolute;top:66px;right:17px;width:174px;background:#fffdf1dc;border:1px solid #d8ddc4;border-radius:13px;padding:9px 11px;color:#80906c;box-shadow:0 4px 10px #7a86580a}.order-hud>div{display:flex;flex-direction:column;gap:4px}.order-hud b{font-size:12px;color:#627f56}.order-hud span{font-size:11px}.order-hud>i{display:block;height:4px;border-radius:5px;margin:7px 0;background:linear-gradient(to right,#a9bd7e var(--progress),#e5e8d3 var(--progress))}.order-hud small{font-size:9px;color:#9a9d80}.dash-button{--energy:55%;position:relative;pointer-events:auto;width:65px;height:65px;border-radius:50%;background:conic-gradient(#d0a04e var(--energy),#e4ddc8 var(--energy));box-shadow:0 4px 15px #b49e5926;display:grid;place-content:center;align-content:center;gap:0;margin-left:auto;margin-right:8px;isolation:isolate;border:2px solid #fff9e5;color:#a98d50;touch-action:manipulation}.dash-button:before{content:'';position:absolute;inset:5px;background:#fff5da;border-radius:50%;z-index:-1}.dash-button>span{font-size:27px;line-height:27px}.dash-button b{font-size:10px}.dash-button.charged{color:#7e5822;box-shadow:0 0 0 4px #ebc36b2e,0 4px 17px #d8ad5940}.dash-button.charged:before{background:#f5d483}.build-summary{text-align:center;font-size:11px;color:#8b9577;line-height:1.8;margin:5px 0 13px}.route-intro{font-size:13px;line-height:1.8;color:#7c896d;margin-bottom:10px}.route-reward{font-size:11px;background:#f5edcf;color:#a58b4e;border:1px dashed #dccc9a;border-radius:8px;padding:8px 10px;margin:10px 0 13px}.route-cards{display:grid;gap:10px}.route-card{display:flex;gap:12px;align-items:center;text-align:left;background:#f0f3e4;border:1px solid #d9e1c7;border-bottom:3px solid #c1cead;border-radius:15px;padding:14px 12px;width:100%}.route-card.market{background:#f7f0dd;border-color:#e5d5ab}.route-card.puff{background:#f7e9eb;border-color:#e0c1cc}.route-symbol{width:40px;height:45px;display:grid;place-items:center;flex-shrink:0}.route-symbol svg{width:32px;height:32px;stroke-width:1.5}.route-copy{display:flex;flex-direction:column;gap:5px;flex:1}.route-copy small{font-size:9px;letter-spacing:.6px;color:#9a9a7e}.route-copy b{font-size:17px;display:flex;justify-content:space-between;align-items:center;color:#587849}.route-copy b i{font-style:normal;font-weight:400}.route-copy>span{font-size:12px;color:#7b8865}.route-copy em{font-size:10px;line-height:1.6;font-style:normal;color:#9b9f88}.route-copy strong{font-size:10px;color:#87925f;font-weight:500;margin-top:3px}.route-footnote{font-size:10px;line-height:1.8;color:#a1a58c;text-align:center;margin:13px 0 0}.world-3d[hidden]{display:none!important}.home-top p{letter-spacing:.3px}
@container game (max-width:380px){.order-hud{width:155px;right:13px;font-size:10px}.touch-controls{left:12px;right:12px;gap:6px}.direction-buttons{gap:7px}.direction-buttons button{width:48px;height:50px}.dash-button{width:58px;height:58px;margin-right:3px}.shoot-button{width:57px;height:57px}.route-card{padding:11px 9px;gap:7px}.route-copy b{font-size:15px}.route-symbol{width:32px}.route-copy em{font-size:10px}.route-intro{font-size:12px}.scene-tag{font-size:9px}}
@media(max-height:660px){.route-copy em{display:none}.route-card{padding:11px 8px}.route-intro{font-size:11px}.route-reward{font-size:10px;padding:7px}.route-footnote{font-size:9px;margin-top:9px}.route-copy b{font-size:15px}.route-copy{gap:3px}.order-hud{top:62px;padding:8px 10px}.order-hud small{display:none}}

/* A route is assigned immediately; the announcement never owns input or focus. */
.route-capsule{position:absolute;top:12px;left:14px;right:61px;max-width:330px;margin:0 auto;min-height:58px;padding:10px 15px 10px 11px;display:flex;align-items:center;gap:10px;border-radius:32px;border:1px solid #b8c9a7;background:#f9fcebed;box-shadow:0 6px 20px #4b654822,inset 0 1px 0 #fff;backdrop-filter:blur(8px);z-index:8;opacity:0;transform:translateY(-12px) scale(.95);transform-origin:50% 0;transition:opacity .18s ease,transform .32s cubic-bezier(.2,.8,.2,1);pointer-events:none;will-change:transform,opacity}
.route-capsule.show{opacity:1;transform:translateY(0) scale(1)}.route-capsule[data-route=market]{background:#fffae9f2;border-color:#dfca91}.route-capsule[data-route=puff]{background:#fff1f4f2;border-color:#dcb5c4}.capsule-icon{height:34px;width:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;color:#66885a;background:#e7eed6}.capsule-icon svg{height:22px;width:22px;stroke-width:1.6}.route-capsule[data-route=market] .capsule-icon{background:#f3e6bf;color:#a18646}.route-capsule[data-route=puff] .capsule-icon{background:#f2dce5;color:#af7a93}.capsule-copy{min-width:0;display:grid;gap:4px;flex:1}.capsule-heading{display:flex;align-items:center;gap:9px;white-space:nowrap}.capsule-heading b{font-size:14px;color:#4f7050;letter-spacing:.3px;line-height:1.3}.capsule-heading small{font-size:9px;color:#96a184}.capsule-detail{font-size:11px;color:#839271;line-height:1.35;white-space:nowrap}.height-display,.effects,.order-hud{transition:top .25s ease}.route-announcing .height-display{top:83px}.route-announcing .order-hud{top:85px}.route-announcing .effects{top:172px}.route-announcing .combo{opacity:0!important}
@container game (max-width:360px){.route-capsule{left:11px;right:59px;padding-left:10px;padding-right:11px;gap:8px}.capsule-icon{width:30px;height:30px;flex-basis:30px}.capsule-heading{gap:7px}.capsule-heading b{font-size:13px}.capsule-heading small{font-size:9px}.capsule-detail{font-size:10px}}

/* Lighter in-run messages keep the landing area visible. */
.is-playing .toast{width:max-content;max-width:calc(100% - 42px);left:50%;right:auto;bottom:101px;transform:translate(-50%,8px);padding:10px 15px;border-radius:24px;background:#fff8e9ed;color:#79643e;border:1px solid #dbc99b;box-shadow:0 4px 14px #62582e18;font-size:11px;line-height:1.5}.is-playing .toast.show{transform:translate(-50%,0)}
.scene-tag{top:53%;padding:5px 12px;border:1px solid #cbd6b891;border-radius:20px;background:#fffaead9;color:#7e8d70;transform:translateX(-50%) rotate(-2deg)}

/* Original author codes stay unfiltered, uncropped and easy to save. */
.creator-section{border-top:1px dashed #d6dec5;margin-top:23px;padding-top:20px}.creator-heading{text-align:center;margin-bottom:15px}.creator-heading>span{font-size:9px;letter-spacing:1.3px;color:#a3ab91}.creator-heading h3{font-size:17px;color:#567b57;margin:7px 0 5px;letter-spacing:1px}.creator-heading p{font-size:11px;color:#909a81}.creator-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.creator-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 10px 12px;background:#edf2e3;border:1px solid #d5dfc6;border-radius:16px;min-width:0}.creator-card.support{background:#faf0df;border-color:#e9d8b8}.creator-qr{display:block;width:100%;aspect-ratio:1;background:#fff;border-radius:10px;padding:7px;box-shadow:0 2px 5px #6d80580a;margin-bottom:4px}.creator-qr img,.creator-full-qr img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}.creator-card b{font-size:13px;color:#587b56}.creator-card.support b{color:#9f8150}.creator-tag{font-size:10px;color:#8a9677}.creator-card small{font-size:10px;color:#a0a889;margin-top:2px}.creator-detail{text-align:center}.creator-detail>p{font-size:12px;line-height:1.9;color:#7e8b70;max-width:270px;margin:0 auto 16px}.creator-full-qr{background:white;border:1px solid #e2e5d7;border-radius:17px;padding:13px;max-width:290px;margin:0 auto;box-shadow:0 7px 22px #7589630b}.creator-save-hint{display:block;margin:14px 0 17px;font-size:10px;line-height:1.7;color:#9bA38d}.creator-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.creator-actions>a,.creator-actions>button{display:flex;justify-content:center;align-items:center;min-height:44px;border-radius:12px;font-size:12px;padding:11px 8px}.creator-detail.support .creator-actions>a{background:#b18e55;border-color:#a88650;color:#fff9e9}.creator-card:focus-visible{outline-offset:2px}
@container game (max-width:360px){.creator-grid{gap:9px}.creator-card{padding:8px 8px 11px}.creator-tag{font-size:9px}.creator-full-qr{padding:10px}.creator-heading p{font-size:10px}}

@media(max-height:660px){.creator-full-qr{max-width:215px;padding:10px}.creator-detail>p{font-size:11px;line-height:1.65;margin-bottom:8px}.creator-save-hint{margin:9px 0 12px;font-size:9px}.creator-actions>a,.creator-actions>button{padding:10px 8px}}

/* Keep the full game inside the visible window; narrow desktop windows stay portrait. */
.game-shell{container-name:game;container-type:inline-size;min-height:0}
.layout{width:100%;min-height:0;max-width:none}
.stage{min-width:0}
@media(min-width:681px){.game-shell{width:min(440px,62dvh);max-width:100%}}
@media(max-height:600px){.scene-tag{display:none}.home-top{padding-top:9px}.home-top h2{font-size:27px;margin:5px 0 2px}.home-top p{font-size:9px}.home-bottom{bottom:6px;left:18px;right:18px}.mode-tabs button{padding:7px 0}.mode-description{height:24px;line-height:24px}.start-button{height:45px}.home-nav{padding-top:4px}.personal-best{padding-bottom:2px}}
