@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--forest:#153e34;--deep:#102e27;--ink:#233c32;--cream:#fff9e9;--paper:#fffdf5;--mint:#b8dcc2;--teal:#2b8163;--gold:#efb956;--coral:#ed947b;--line:#e4ddc9;--muted:#7c8c78;--shadow:0 12px 35px #061e2330}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 4% 12%,#346249,transparent 52%),radial-gradient(ellipse at 95% 95%,#204d3d,transparent 50%),var(--forest);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;transition:transform .16s,box-shadow .16s,background .16s}button:disabled{cursor:default}button:active:not(:disabled){transform:translateY(2px)}button:focus-visible,a:focus-visible{outline:3px solid #f8c167;outline-offset:3px}button:disabled{opacity:.75}.ui-icon{display:block;flex-shrink:0;width:22px;height:22px}.topbar{max-width:1220px;height:86px;margin:auto;padding:0 30px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Outfit,sans-serif;font-size:42px;letter-spacing:-2px;font-weight:800;line-height:.8;color:var(--cream);text-decoration:none;position:relative}.brand span{font-family:'DM Sans',sans-serif;display:block;font-size:9px;font-weight:500;letter-spacing:2.5px;margin-top:11px;color:#c5d9be}.resources{display:flex;gap:12px;align-items:center}.resources>span{display:flex;align-items:center;gap:8px;background:#fcf6e5;min-width:95px;border:1px solid #fff9e6;border-radius:22px;padding:8px 14px;box-shadow:0 3px 0 #071b2145}.resources b{font-family:Outfit;font-size:20px;font-weight:700}.resources small{font-size:12px;color:#849382;margin-left:-4px}.resource-icon{font-size:25px;line-height:1}.coin-icon{color:#dea332;text-shadow:1px 1px 0 #9d6f13}.energy-icon{color:#4b9e6f;font-weight:800}.icon-button{display:grid;place-items:center;border:1px solid #76948460;background:#355b49;color:var(--cream);font-weight:700;border-radius:50%;height:36px;width:36px}.game-layout{max-width:1220px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:10px 30px 30px;align-items:start}.world-panel{min-width:0}.scene{position:relative;overflow:hidden;height:420px;border-radius:26px;border:2px solid #f9efcc35;box-shadow:var(--shadow);background:#537254}.scene img{height:100%;width:100%;object-fit:cover;object-position:48% 60%}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#12332620 15%,transparent 35%,#15342ec9 90%)}.scene-title{position:absolute;left:28px;bottom:98px;color:var(--cream)}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700}.scene-title .eyebrow{background:#1c493a91;border:1px solid #ecffe433;padding:6px 9px;border-radius:6px;font-size:9px;letter-spacing:1.5px}.scene-title h1{font-family:Outfit;font-weight:600;font-size:43px;line-height:1.05;letter-spacing:-1.2px;margin:17px 0 0;text-shadow:0 3px 15px #092c2040}.scene-title h1 em{font-family:Georgia,serif;font-weight:400;color:#ffd39b}.location{position:absolute;left:20px;top:20px;color:white;font-size:10px;letter-spacing:1px;background:#1239289c;border-radius:15px;padding:7px 10px;backdrop-filter:blur(8px)}.scene-player{position:absolute;bottom:20px;left:23px;display:flex;align-items:center;gap:11px;color:white}.scene-player .portrait{width:52px;height:52px;border:3px solid #f5d89b}.scene-player small{display:block;color:#cecfb4;font-size:9px;letter-spacing:1.8px;margin-bottom:5px}.scene-player strong{font-family:Outfit;font-size:19px;font-weight:500}.scene-chat{position:absolute;right:22px;bottom:24px;width:46px;height:46px;display:grid;place-items:center;border:1px solid #ffe7ba;background:var(--cream);border-radius:15px;box-shadow:0 3px 0 #112c3055;color:var(--forest)}#chat-dot{position:absolute;width:9px;height:9px;background:var(--coral);border:2px solid var(--cream);border-radius:50%;top:8px;right:8px}.story-card{background:var(--cream);padding:22px 24px;border-radius:22px;margin-top:17px;border:1px solid #f2d4a050;box-shadow:0 5px 0 #082c2e25}.chapter-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.chapter-row .eyebrow{font-size:10px;color:#858d70;letter-spacing:1.4px}.live-tag{background:#e4edd8;color:#537451;border-radius:6px;padding:5px 7px;letter-spacing:1px;font-size:9px;font-weight:700}h2{font-family:Outfit,sans-serif;font-size:27px;font-weight:600;letter-spacing:-.5px;line-height:1.16;margin:11px 0 8px}.story-card p{font-size:14px;line-height:1.5;color:#7b846d;margin:0 0 18px}.renovation{display:flex;align-items:center;justify-content:space-between;gap:8px}.renovation>div{display:flex;gap:12px;align-items:center}.renovation-icon{display:grid;place-items:center;width:37px;height:37px;background:#f9e5b8;color:#ba872c;border-radius:10px}.renovation small{display:block;font-size:9px;letter-spacing:1.5px;color:#91947b;margin-bottom:4px}.renovation strong{font-size:14px;font-weight:600}.renovation>span{white-space:nowrap;font-family:Outfit;font-size:14px;color:#a87b2c}.progress-track{height:6px;background:#e3e6d4;border-radius:9px;margin:14px 0}.progress-track>div{height:100%;border-radius:9px;background:linear-gradient(90deg,#5baf7c,#2b7e5b);transition:width .3s}.primary{border:1px solid #a1d8a850;width:100%;background:linear-gradient(#438f68,#29744f);color:white;border-radius:12px;min-height:45px;padding:11px 14px;box-shadow:0 3px 0 #154e3a;font-weight:700;font-size:14px}.primary:disabled{background:#b1bfab;box-shadow:none}.group-preview{display:flex;gap:12px;align-items:center;padding:18px 8px 0;color:#f7f5db}.group-preview .portrait{width:43px;height:43px;border-color:#c0d3ad}.group-preview strong{font-size:14px;font-weight:600}.group-preview strong span{font-size:11px;color:#adc3ac;font-weight:400;margin-left:7px}.group-preview p{font-size:12px;line-height:1.5;margin:5px 0 0;color:#a8c0a7}.group-preview button{margin-left:auto;background:none;border:0;font-size:24px;color:#d2dcc1}.desktop-note{font-size:11px;color:#7fa389;text-align:center;margin-top:23px}.desktop-note span{display:none}.world-album{display:none}.kitchen-panel{min-width:0;padding:4px 0}.kitchen-heading{display:flex;align-items:flex-end;justify-content:space-between;color:var(--cream);margin:0 5px 14px}.kitchen-heading .eyebrow{font-size:9px;color:#adc6a8;letter-spacing:2px}.kitchen-heading h2{font-size:31px;line-height:1.05;letter-spacing:-.7px;margin:7px 0 0}.kitchen-heading h2 em{font-family:Georgia,serif;font-weight:400;color:#e1c894}.subtle-button{border:1px solid #a8bda566;background:#40614a;color:#eaf0d6;border-radius:18px;font-size:12px;min-height:34px;padding:7px 12px}.level-strip{display:flex;align-items:center;gap:9px;margin:0 5px 16px;color:#b6ceae;font-size:10px}.level-strip>span{font-size:9px;font-weight:700;letter-spacing:1px}.level-strip b{background:#ecbc62;border:1px solid #ffdc96;border-radius:7px;color:#57471f;display:inline-grid;place-items:center;width:23px;height:23px;margin-left:3px;font-size:14px}.level-meter{width:70px;height:5px;overflow:hidden;background:#2a5543;border-radius:6px;border:1px solid #70906c55}.level-meter>div{height:100%;background:#e2b96b}.level-strip small{font-size:10px}.orders-heading{display:flex;justify-content:space-between;align-items:center;color:#eef3dc;padding:0 5px;font-size:13px;font-weight:600;margin-bottom:12px}.orders-heading>span:last-child{font-size:10px;color:#bddab6;background:#406b50;border:1px solid #77957350;padding:3px 7px;border-radius:10px}.orders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:17px}.order{position:relative;background:linear-gradient(140deg,#fffefa,#f8f0db);padding:9px 8px 8px;border:1px solid #fef4d5;border-radius:17px;box-shadow:0 4px 0 #061d2945;text-align:center;min-width:0}.order.ready{background:linear-gradient(145deg,#f8efce,#e7eebb);border-color:#f0cf79}.order-head{display:flex;align-items:center;justify-content:center;gap:7px;font-family:Outfit;font-size:13px;font-weight:500;color:#5f7054;min-height:35px}.order-head .portrait{width:37px;height:37px;border:2px solid #fffbed;box-shadow:0 2px 2px #513c1818}.order.ready .portrait{border-color:#e6b958}.order-needs{display:flex;align-items:stretch;justify-content:center;gap:3px;min-height:65px;margin:3px 0 6px}.order-needs>span{display:flex;align-items:center;flex-direction:column;min-width:0;flex:1}.order-needs .game-art{width:43px;height:43px}.order-needs small{font-size:10px;line-height:1.15;max-width:93px;color:#7e8165;margin-top:0}.order button{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;min-height:31px;background:#e8e9d7;border:1px solid #dde0c9;border-radius:9px;color:#7d876d;font-size:11px;font-weight:600;padding:4px 6px}.order button:disabled{opacity:1}.order-reward{white-space:nowrap;font-family:Outfit;font-size:12px;font-weight:600}.order.ready button{background:linear-gradient(#589561,#317344);color:#fffbdc;border-color:#317047;box-shadow:0 2px 0 #245833}.board-wrap{background:linear-gradient(150deg,#61906d,#3a7659);border:2px solid #9ab98a;border-bottom:5px solid #254f3d;border-radius:23px;padding:10px;box-shadow:0 5px 0 #0c292744,0 10px 25px #0e242b20}.board-top{display:flex;justify-content:space-between;align-items:center;color:#e0edc9;gap:8px;padding:0 4px 10px;font-size:10px;letter-spacing:1.7px;font-weight:700}.board-top small{display:block;font-family:'DM Sans';font-size:10px;letter-spacing:0;font-weight:400;color:#c3d9b7;margin-top:3px}.board-top button{display:flex;align-items:center;gap:4px;background:#bdd3a822;border:1px solid #d6e8b533;border-radius:10px;color:#f0f2cf;font-size:11px;letter-spacing:0;padding:5px 8px;min-height:29px}.board-top button .ui-icon{width:15px;height:15px}.board{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%;max-width:448px;margin:auto;touch-action:none}.tile{aspect-ratio:1;min-width:0;border:1px solid #fff7dc;border-radius:11px;background:linear-gradient(140deg,#fffef5,#eeeccc);box-shadow:0 3px 0 #d3d8b3,0 3px 5px #23462b30;padding:0;display:flex;align-items:center;justify-content:center;position:relative;user-select:none;-webkit-user-select:none;transition:transform .14s,background .14s,outline .14s}.tile.empty{background:#2b634544;border-color:#b6d29d22;box-shadow:inset 0 2px 3px #153d2c25,0 1px 0 #cae0ba22}.tile[data-type=bake]{background:linear-gradient(140deg,#fffdf4,#f7e5c9)}.tile[data-type=grill]{background:linear-gradient(140deg,#fffdf2,#f7e9b3)}.tile .game-art{width:89%;height:89%;pointer-events:none}.tile .level{position:absolute;right:4px;bottom:2px;font-family:Outfit;font-size:9px;font-weight:600;color:#869578;pointer-events:none}.tile.selected{outline:3px solid #ffc766;outline-offset:-1px;box-shadow:0 3px 0 #d09b48;background:#fff1c6}.tile.match{outline:2px dashed #ffd785;outline-offset:-3px;animation:matchglow 1.6s ease-in-out infinite}.tile.producer{background:linear-gradient(#fff0ba,#ebbd64);border:2px solid #ffe19a;box-shadow:0 3px 0 #b18a41}.tile.producer .station-sprite{width:83%;height:83%;transform:translateY(-3px)}.producer-energy{position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);padding:1px 5px;font-size:9px;font-weight:700;color:#ffefbd;background:#325f40;border:1px solid #a8c38a;border-radius:5px;white-space:nowrap;line-height:1.2}.tile.producer.locked{background:linear-gradient(#77947a,#60806b);border:1px solid #9ab392;box-shadow:0 3px 0 #44634f}.locked-icon{color:#c8d8b9}.locked-icon .ui-icon{width:23px;height:23px}.tile.producer.locked .producer-energy{background:#46624d;color:#cdd5b8}.selection-info{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:31px;padding:10px 3px 0;color:#d4e3c5;font-size:11px;line-height:1.35}.selection-info>span{min-width:0}.item-actions{display:flex;gap:5px;flex-shrink:0}.item-actions button{font-size:10px;min-height:25px;padding:4px 7px;border:1px solid #c5dfad44;background:#1b4e3644;border-radius:7px;color:#f2f1d8}.counter-tools{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:13px 2px 0}.counter-tools button{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #9eae8180;background:linear-gradient(#f4e3b5,#e7cf98);border-radius:11px;color:#58542f;font-size:12px;font-weight:600;min-height:37px;padding:7px 11px;box-shadow:0 3px 0 #1a33282b}.counter-tools .ui-icon{width:18px;height:18px}.counter-tools button:disabled{background:#41684e;color:#93af8e;border-color:#708e6655;box-shadow:none;opacity:1}.counter-tools b{display:inline-grid;place-items:center;font-size:12px}.kitchen-foot{display:flex;justify-content:space-between;gap:8px;margin:12px 4px 0;color:#87aa8b;font-size:10px}.stations{display:none}.mobile-story-teaser,.mobile-nav{display:none}.portrait{display:inline-block;flex-shrink:0;width:44px;height:44px;border:2px solid #fff4dc;border-radius:50%;background-image:url('/assets/cast.webp');background-size:300% 200%;background-position:0 0;box-shadow:0 2px 5px #153e2422}.portrait[style*="--person:0"]{background-position:0 0}.portrait[style*="--person:1"]{background-position:50% 0}.portrait[style*="--person:2"]{background-position:100% 0}.portrait[style*="--person:3"]{background-position:0 100%}.portrait[style*="--person:4"]{background-position:50% 100%}.portrait[style*="--person:5"]{background-position:100% 100%}.game-art{display:inline-block;width:44px;height:44px;flex-shrink:0;background-image:url('/assets/items.webp');background-size:500% 400%;background-position:var(--art-x) var(--art-y);background-repeat:no-repeat;mix-blend-mode:multiply;vertical-align:middle;pointer-events:none}dialog{position:fixed;width:min(490px,calc(100% - 28px));max-height:88dvh;overflow:auto;background:var(--cream);color:var(--ink);border:2px solid #e9d5a1;border-radius:25px;padding:24px;box-shadow:0 30px 100px #08282680;scrollbar-gutter:stable}dialog::backdrop{background:#09261fab;backdrop-filter:blur(6px)}.close-dialog{position:sticky;float:right;top:0;width:34px;height:34px;line-height:1;border:1px solid #dfdcc3;border-radius:50%;background:#f9f1d9;color:#7c8262;font-size:26px;z-index:3}.dialog-tag{font-size:10px;letter-spacing:1.8px;color:#94a080;font-weight:700}.dialog-title{font-size:30px;margin:16px 28px 18px 0;line-height:1.1}.dialog-copy{font-size:15px;line-height:1.6;color:#72806a}.chat-message{display:flex;gap:10px;align-items:flex-start;margin:18px 0}.chat-message .portrait{width:52px;height:52px;box-shadow:0 3px 0 #e3dec9}.bubble{padding:13px 15px;border:1px solid #e3deca;background:#fffefa;border-radius:4px 17px 17px 17px;font-size:15px;line-height:1.6;flex:1;box-shadow:0 2px 0 #ede8d4}.bubble strong{display:block;font-family:Outfit;font-size:13px;color:#458065;margin-bottom:4px}.memory-note{font-size:12px;color:#819075;line-height:1.6;padding:0 0 8px}.choice{display:block;width:100%;text-align:left;border:1px solid #d7dbc1;background:#fffdf3;border-radius:13px;padding:15px;margin:10px 0;font-size:15px;font-weight:600;box-shadow:0 2px 0 #e0dec3}.choice:hover{background:#edf3df;border-color:#82ab7b}.choice small{display:block;font-size:13px;line-height:1.5;font-weight:400;color:#7f8a73;margin-top:6px}.locked-note{padding:15px;background:#e8edd8;color:#677c5c;border:1px solid #d8e0c7;border-radius:12px;font-size:14px;line-height:1.6}.reveal-scene{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:16px;margin:12px 0;border:1px solid #d6d6b6}.cast-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:16px 0 25px}.cast-card{padding:16px 12px;background:linear-gradient(#fffef5,#f1edd9);border:1px solid #dfddc4;border-radius:15px}.cast-card .portrait{display:block;width:80px;height:80px;margin-bottom:11px;border:3px solid #fff6d9}.cast-card strong{font-family:Outfit;display:block;font-size:16px;font-weight:500}.cast-card p{font-size:12px;line-height:1.6;color:#7c886b;margin:7px 0 0}.episode-row{display:flex;align-items:center;gap:10px;width:100%;min-height:68px;padding:14px 0;border:0;border-bottom:1px solid #e2dfc7;background:transparent;text-align:left}.episode-row>span{display:grid;place-items:center;background:#e8ecd4;width:28px;height:28px;border-radius:8px;font-family:Outfit;color:#6c8e5b;flex-shrink:0}.episode-row>div{flex:1}.episode-row strong{font-size:14px;font-weight:600;line-height:1.4;display:block}.episode-row small{display:block;font-size:12px;line-height:1.3;margin-top:4px;color:#869174}.episode-row em{font-size:11px;font-style:normal;color:#78916c;white-space:nowrap}.episode-row:disabled{opacity:.4}.scene-compare{display:flex;gap:8px}.scene-compare button{flex:1;border:1px solid #d0d8be;background:#eff0dc;border-radius:10px;min-height:38px;font-size:13px}.scene-compare button.active{background:#3e8861;color:white;border-color:#30704d}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inventory .choice{margin:0;font-size:13px}.inventory .game-art{display:block;width:64px;height:64px;margin:0 auto 7px}.inventory p{grid-column:span 2;font-size:14px;line-height:1.6}.help-step{display:flex;gap:12px;font-size:15px;line-height:1.6;margin:18px 0}.help-step>b{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;background:#dce8ca;border-radius:50%;font-size:13px}.chain{background:#fffdf5;border-radius:12px;padding:12px;text-align:center;font-size:22px;margin:12px 0;border:1px solid #e3dfc8}.danger{margin-top:24px;border:0;background:none;color:#ad745d;font-size:12px;text-decoration:underline}.item-chain{display:grid;gap:9px}.item-chain>div{display:grid;grid-template-columns:48px 1fr auto;gap:9px;align-items:center;border:1px solid #dfdfc9;border-radius:12px;background:#fffdf4;padding:11px}.item-chain>div.current{border:2px solid #7fa377;background:#e8efd5}.item-chain strong{font-size:14px}.item-chain small{font-size:11px;color:#819272}.item-chain .game-art{width:45px;height:45px}.drag-ghost{position:fixed;pointer-events:none;z-index:2000;transform:translate(-50%,-65%);width:62px;height:62px;filter:drop-shadow(0 9px 5px #06282855);border-radius:14px;background:#fff9de}.drag-ghost .game-art{width:100%;height:100%}.tile.drop-target{outline:3px solid #ffcf73;outline-offset:-1px;background:#fff0bd}.tile.burst{animation:pop .35s ease}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);max-width:90%;background:#fff2cf;color:#405333;border:1px solid #eed18d;border-radius:13px;box-shadow:0 8px 25px #09251e55;padding:12px 19px;font-size:13px;line-height:1.5;text-align:center;opacity:0;pointer-events:none;z-index:3000;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}@keyframes pop{50%{transform:scale(1.14);filter:brightness(1.07)}}@keyframes matchglow{50%{outline-color:#fff5b9;box-shadow:0 0 8px #ffd78077}}
@media(min-width:761px){.board{max-width:min(448px,max(260px,calc((100dvh - 595px)*.875)))}.world-panel{position:sticky;top:15px}.kitchen-panel{max-width:535px}.kitchen-heading{margin-bottom:11px}.order-needs{min-height:59px}.order-needs .game-art{width:41px;height:41px}.level-strip{margin-bottom:11px}}
@media(min-width:761px) and (max-width:1050px){.game-layout{gap:23px;padding:10px 23px 30px}.scene{height:380px}.scene-title{left:20px}.scene-title h1{font-size:38px}.kitchen-heading h2{font-size:27px}.order-head{font-size:12px;gap:4px}.order-head .portrait{width:30px;height:30px}.order button{font-size:10px}.order-needs small{font-size:9px}.order-reward{font-size:11px}.story-card{padding:20px}.resources>span{min-width:88px}}
/* Phone layout uses the available width; short screens scroll without shrinking the board. */
@media(max-width:760px), (max-width:1050px) and (max-height:500px){
 html{scroll-padding-top:16px;scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 body{background:radial-gradient(ellipse at 8% 0,#35684c,transparent 45%),var(--forest)}
 .topbar{height:auto;min-height:68px;max-width:480px;gap:10px;padding:calc(8px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));flex-wrap:wrap}
 .brand{font-size:32px;letter-spacing:-1.7px}.brand span{font-size:8px;margin-top:9px;letter-spacing:1.5px}
 .resources{gap:5px;min-width:0}.resources>span{padding:6px 8px;gap:4px;min-width:0;border-radius:18px}.resources b{font-size:16px}.resources small{font-size:11px;margin-left:0;color:#52664f}
 .resource-icon{width:20px;height:22px}.resource-icon .game-art{width:24px;height:24px}
 .icon-button{height:44px;width:44px;font-size:17px}
 .game-layout{display:block;max-width:480px;padding:4px max(10px,env(safe-area-inset-right)) calc(100px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
 .world-panel{display:none;position:static}.world-panel.active{display:block}.kitchen-panel.hidden{display:none}.kitchen-panel{padding:0;max-width:none}
 .mobile-story-teaser{display:flex;align-items:center;position:relative;overflow:hidden;width:100%;min-height:70px;border:1px solid #9fba8c66;border-radius:16px;background:linear-gradient(120deg,#4a7955,#2a5842);box-shadow:0 3px 0 #092b2722;padding:0;text-align:left;color:#fff8df;margin-bottom:12px}
 .mobile-story-teaser>img{width:24%;align-self:stretch;object-fit:cover;object-position:50% 60%;mask-image:linear-gradient(90deg,#000 80%,transparent)}
 .mobile-story-teaser>span:not(.teaser-arrow){padding:10px 8px;flex:1;min-width:0}.mobile-story-teaser small{display:block;font-size:10px;letter-spacing:.7px;color:#d4e4c9;margin-bottom:4px}.mobile-story-teaser strong{font-family:Outfit;display:block;font-size:16px;line-height:1.25;font-weight:500;overflow-wrap:anywhere}.mobile-story-teaser em{display:none}
 .teaser-arrow{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border:1px solid #c9dbb44d;border-radius:50%;margin:0 10px 0 2px;background:#cbdcb31a}.teaser-arrow .ui-icon{width:15px;height:15px}.kitchen-heading{display:none}
 .level-strip{margin:0 3px 12px;gap:7px;min-height:24px;flex-wrap:wrap;color:#d4e4c9}.level-strip>span{font-size:10px;letter-spacing:.7px}.level-strip b{width:22px;height:22px;font-size:13px;border-radius:6px}.level-strip small{font-size:11px}.level-meter{width:35px;height:5px}
 .orders-heading{font-size:14px;margin-bottom:8px;padding:0 3px}.orders-heading>span:last-child{font-size:11px;padding:3px 7px;color:#e3efdb}
 .orders{gap:6px;margin-bottom:14px}.order{padding:7px 5px;border-radius:14px;display:flex;flex-direction:column}.order-head{font-size:12px;gap:4px;min-height:32px;line-height:1.15;flex-wrap:wrap;color:#38533c}.order-head .portrait{width:31px;height:31px}
 .order-needs{min-height:66px;margin:5px 0 7px;gap:6px;flex:1;flex-wrap:wrap}.order-needs>span{flex:1 0 65px}.order-needs .game-art{width:42px;height:42px}.order-needs small{font-size:12px;line-height:1.2;max-width:100%;color:#526046;overflow-wrap:anywhere}
 .order button{font-size:12px;min-height:44px;padding:6px 3px;gap:3px;border-radius:9px;flex-wrap:wrap;color:#526046}.order-reward{font-size:12px}
 .board-wrap{border-radius:19px;padding:7px;border-bottom-width:4px}.board-top{padding:0 1px 9px;font-size:10px;letter-spacing:1px;min-height:44px}.board-top small{display:none}.board-top button{font-size:12px;padding:7px;min-height:44px;border-radius:9px}.board-top .ui-icon{width:15px;height:15px}
 .board{gap:4px;max-width:100%;touch-action:pan-y pinch-zoom}.board.drag-enabled{touch-action:none}.tile{border-radius:8px;border-width:1px;box-shadow:0 2px 0 #c8d0a6}.tile .level{font-size:9px;bottom:1px;right:3px;color:#536348}.tile.producer{border-width:1px;border-radius:9px}.tile.producer .station-sprite{width:85%;height:85%;transform:translateY(-2px)}.producer-energy{font-size:9px;bottom:-3px;padding:1px 4px;border-radius:4px}.locked-icon .ui-icon{width:20px;height:20px}
 .selection-info{min-height:37px;padding:12px 2px 3px;gap:8px;font-size:12px;line-height:1.4;flex-wrap:wrap;color:#f3f4df}.selection-info>span{flex:1 0 100%;max-width:none}.item-actions{gap:7px;width:100%}.item-actions:has(button:not([hidden])){display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.item-actions button{font-size:12px;min-height:44px;padding:7px;border-radius:9px}
 .counter-tools{margin:12px 1px 0;gap:8px}.counter-tools button{font-size:12px;padding:8px 10px;min-height:44px;border-radius:10px;flex:1}.counter-tools .ui-icon{width:18px;height:18px}.counter-tools b{font-size:12px}.kitchen-foot{margin:12px 3px 0;font-size:11px;color:#c5d9ba;flex-wrap:wrap;line-height:1.5}
 .mobile-nav{display:flex;align-items:center;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;z-index:50;background:#12352ef7;border-top:1px solid #aec58d55;backdrop-filter:blur(15px);padding:6px max(12px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .mobile-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;min-width:78px;min-height:48px;padding:3px 8px;border:0;background:transparent;color:#c3d7bc}.mobile-nav button>span .ui-icon{width:23px;height:23px}.mobile-nav button>span:last-child{font-size:12px;font-weight:500}.mobile-nav button.active{color:#f2c26f}
 .scene{height:350px;border-radius:22px}.scene-title{left:22px;bottom:93px}.scene-title h1{font-size:39px}.location{font-size:10px;top:15px;left:15px}.scene-player{left:20px;bottom:19px}.scene-player .portrait{width:47px;height:47px}.scene-player strong{font-size:17px}.world-album{display:block;width:100%;background:#487350;border:1px solid #adc39a50;color:#f4f6df;border-radius:11px;min-height:44px;margin:12px 0;padding:9px;font-size:13px}.story-card{padding:18px;margin-top:12px}.story-card h2{font-size:27px}.story-card p{font-size:15px;color:#52664d}.renovation{flex-wrap:wrap}.renovation strong{font-size:14px}.renovation>span{margin-left:auto}.group-preview{padding:17px 3px 10px}.group-preview strong{font-size:14px}.group-preview strong span{display:block;margin:3px 0 0;color:#c3d7bc}.group-preview p{font-size:13px;color:#c3d7bc}.group-preview button{min-width:44px;min-height:44px}.desktop-note{display:none}
 dialog{padding:18px;border-radius:22px;width:calc(100% - 24px);max-width:490px;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);overscroll-behavior:contain;scroll-padding-block:56px 20px}.close-dialog{width:44px;height:44px;top:0}.dialog-title{font-size:27px;overflow-wrap:anywhere}.chat-message{gap:8px}.chat-message .portrait{width:38px;height:38px}.bubble{font-size:15px;padding:10px;min-width:0;overflow-wrap:anywhere}.choice{font-size:15px}.choice small{font-size:13px}.cast-card{min-width:0;padding:12px 9px}.cast-card .portrait{width:65px;height:65px}.cast-card strong{font-size:15px;overflow-wrap:anywhere}.cast-card p{font-size:13px;color:#53654b}.episode-row{gap:7px;flex-wrap:wrap}.episode-row>div{min-width:0;flex-basis:120px}.episode-row em{margin-left:auto}.scene-compare button{min-height:44px}.item-chain>div{grid-template-columns:42px 1fr}.item-chain small{grid-column:2}.item-chain .game-art{grid-row:span 2}.item-chain strong{font-size:14px}.danger{min-height:44px;padding:8px}.chain{font-size:clamp(15px,5vw,22px);padding:10px 4px}.inventory{gap:8px}.inventory .choice{min-width:0;padding:10px;overflow-wrap:anywhere}
 #toast{top:calc(10px + env(safe-area-inset-top));bottom:auto;font-size:13px;width:max-content;max-width:calc(100% - 28px);padding:10px 15px}
}
@media(max-width:350px){.topbar{gap:5px;padding-inline:10px}.brand{font-size:27px}.brand span{font-size:7px}.resources{gap:3px}.resources>span{padding:6px;gap:3px}.resources b{font-size:14px}.resources small{font-size:10px}.game-layout{padding-inline:7px}.level-strip small{flex:1 1 160px}.order-head{flex-direction:column;gap:3px}.order-needs small{font-size:11px}.order button{font-size:11px}.board-wrap{padding:5px}.board{gap:3px}.board-top{letter-spacing:.5px}.scene-title h1{font-size:34px}.scene-player strong{font-size:15px}.scene-chat{right:12px}.scene-player{left:12px;gap:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.resource-icon{width:27px;height:27px;display:inline-flex;align-items:center;justify-content:center}.resource-icon .game-art{width:29px;height:29px}@media(max-width:760px){.resource-icon{width:20px;height:22px}.resource-icon .game-art{width:24px;height:24px}}

.board-controls{display:flex;gap:6px}.board-controls button{min-width:44px}.board-controls [aria-pressed="true"]{background:#fff1c6;color:#294a34}.dialog-copy,.memory-note,.choice small,.item-chain small{color:#52664d}body:has(dialog[open]){overflow:hidden}#modal-content{min-width:0}button{scroll-margin-block:16px 90px}button[aria-disabled="true"]{cursor:default}

.storage-pages{display:flex;gap:8px;align-items:center;margin-top:16px}.storage-pages .choice{flex:1;min-width:0;text-align:center;padding:10px;font-size:13px;min-height:44px}.storage-pages>span{font-size:12px;text-align:center;color:#52664d}.storage-pages button:disabled{opacity:.5}

.challenge-strip{width:100%;min-height:60px;margin:0 0 12px;padding:10px 13px;display:flex;justify-content:space-between;gap:9px;align-items:center;text-align:left;background:#244f40;border:1px solid #a3bc8266;border-radius:14px;color:#fff0ce}.challenge-strip strong{font-size:14px;display:block}.challenge-strip small{display:block;font-size:12px;line-height:1.4;color:#d0dfc1;margin-top:4px}.challenge-strip>span:last-child{white-space:nowrap;font-size:12px;color:#eac274}.challenge-needs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.challenge-needs>div{min-width:0;text-align:center;padding:8px 3px;background:#eeedd7;border-radius:12px}.challenge-needs .game-art{width:48px;height:48px}.challenge-needs strong{display:block;font-size:12px;line-height:1.3;overflow-wrap:anywhere}.challenge-reward{color:#52664d;font-size:14px;font-weight:700}.story-reading{position:sticky;bottom:-18px;padding:12px 0 6px;background:var(--cream);z-index:2}.story-reading .subtle-button{width:100%;min-height:44px;margin-top:9px;background:#e9edda;color:#3a563f}.cliffhanger{margin:18px 0;padding:17px;background:#173e33;color:#fff0d0;border-left:4px solid #ecb95d;border-radius:4px 14px 14px 4px;font-size:16px;line-height:1.6}.cliffhanger small{display:block;font-size:10px;letter-spacing:1.5px;color:#e9c985;margin-bottom:9px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#story-decision{scroll-margin-block:55px 20px}.order-needs:has(>span:nth-child(3)){flex-wrap:wrap}.order-needs:has(>span:nth-child(3))>span{flex-basis:70px}

/* Josie's supplied character art is shared across every live portrait. */
.portrait.josie-portrait{background-image:url('/assets/josie.webp');background-size:292% auto;background-position:47% 5.4%}
.mobile-story-teaser>img.josie-teaser{height:100px;object-position:50% 12%}
.josie-profile{display:grid;grid-template-columns:minmax(90px,40%) 1fr;gap:18px;align-items:center;margin:20px 0;background:#e6e8d6;border-radius:18px;overflow:hidden;padding-right:14px}.josie-profile img{width:100%;display:block}.josie-profile h3{font-family:Outfit;font-size:24px;margin:8px 0}.josie-profile p{font-size:14px;line-height:1.6}.josie-profile .eyebrow{font-size:10px;color:#4c624b}
.deal-launch{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:64px;margin-top:12px;padding:12px 16px;border:1px solid #f4c2ad;border-radius:14px;background:#fff5ed;color:#8d2037;text-align:left}.deal-launch strong,.deal-launch small{display:block}.deal-launch strong{font-size:16px}.deal-launch small{font-size:13px;margin-top:4px}.deal-launch>span:last-child{font-weight:700;white-space:nowrap}
.deal-modal{width:min(520px,calc(100% - 20px));max-height:calc(100dvh - 20px);padding:18px;background:#fffaf6;color:#34242b;border:1px solid #e3adab;border-radius:22px;overscroll-behavior:contain;scroll-padding-block:48px 16px}.deal-modal::backdrop{background:#180d18d9;backdrop-filter:blur(5px)}.deal-modal button{min-height:44px}.deal-close{position:sticky;top:0;float:right;z-index:5;width:44px;height:44px;border:1px solid #e8cac9;border-radius:50%;background:#fffaf6;color:#88213d;font-size:26px;line-height:1}.deal-brand{font-family:Outfit,sans-serif;color:#b51c37;font-weight:800;font-size:28px;line-height:1.1;min-height:45px;padding-right:50px;letter-spacing:-.8px}.deal-brand span{display:block;font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:2px;font-weight:700;margin-top:6px}.deal-intro{display:grid;grid-template-columns:36% 1fr;gap:18px;align-items:center;margin:22px 0}.deal-intro img{width:100%;border-radius:90px 90px 14px 14px}.deal-kicker{display:block;font-size:12px;font-weight:700;letter-spacing:1px;color:#9d2840}.deal-intro h2{font-size:32px;line-height:1.07;margin:8px 0 12px}.deal-intro p{font-size:16px;line-height:1.5;margin:0}.deal-how{display:grid;gap:10px;background:#f9ebe6;padding:14px;border-radius:14px;font-size:14px;line-height:1.5}.deal-how b{color:#a21f3b;margin-right:9px}.deal-primary,.deal-secondary{display:block;width:100%;padding:12px 14px;min-height:48px;border-radius:12px;font-size:16px;font-weight:700;margin-top:10px}.deal-primary{background:#b91d3d;color:#fff;border:1px solid #96102c;box-shadow:0 3px 0 #770d29}.deal-secondary{background:#fffaf6;color:#7c2840;border:1px solid #d7aaa9}.deal-fine{font-size:12px;line-height:1.5;color:#705b60;margin:14px 0 8px}.deal-stats{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:16px 0 8px;font-size:13px}.deal-stats span{display:flex;flex-direction:column;gap:2px}.deal-stats b{font-family:Outfit;font-size:24px;color:#99223c}.deal-stats button{background:#fff;border:1px solid #d8b7b7;border-radius:10px;min-width:60px;padding:7px;font-size:14px}.deal-time-track{height:5px;border-radius:8px;background:#efd9d8;overflow:hidden}.deal-time-track>div{height:100%;background:#b91d3d;width:100%}.deal-wish{display:flex;align-items:center;gap:9px;padding:12px 0}.deal-wish .portrait{width:40px;height:40px;flex-shrink:0;border:2px solid #c87b80}.deal-wish>div{flex:1;min-width:0}.deal-wish>div>span{display:block;font-size:10px;letter-spacing:1px;font-weight:700;color:#9c4355}.deal-wish strong{display:block;font-size:16px;line-height:1.3;margin-top:3px}.deal-wish>span:last-child{font-size:12px;max-width:54px;text-align:right;color:#7c4e58;line-height:1.3}.deal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.deal-product{min-width:0;padding:5px 4px 8px;border:1px solid #e9ceca;border-radius:12px;background:#fff;color:#4b2633;display:flex;flex-direction:column;align-items:center;position:relative;touch-action:manipulation}.deal-art{display:block;width:100%;aspect-ratio:1;background-image:url('/assets/deal-products.webp');background-size:200% 300%;background-position:var(--deal-x) var(--deal-y);border-radius:8px}.deal-product>span:not(.deal-art){font-size:13px;margin-top:4px;line-height:1.25;overflow-wrap:anywhere}.deal-product strong{font-family:Outfit;font-size:21px;color:#a31333;margin-top:2px}.deal-product:disabled{opacity:.42}.deal-product:active:not(:disabled){background:#ffecd9}.deal-feedback{font-size:14px;line-height:1.4;color:#80263e;min-height:40px;margin:10px 0}.deal-paused{background:#f9e5df;border:1px solid #dba5a1;border-radius:14px;padding:14px;text-align:center}.deal-paused strong{font-size:20px}.deal-paused p{font-size:14px}.deal-result{text-align:center;padding:22px 0 10px}.deal-result .portrait{width:110px;height:110px;display:block;margin:0 auto 16px;border:4px solid #d59a99}.deal-result h2{font-size:32px}.deal-result p{font-size:16px;line-height:1.5}.deal-earned{font-family:Outfit;display:block;font-size:34px;color:#a01534;margin:20px 0}.deal-modal :focus-visible{outline:3px solid #7d1438;outline-offset:2px}
@media(max-width:350px){.deal-modal{padding:12px}.deal-intro{gap:12px}.deal-intro h2{font-size:27px}.deal-grid{gap:5px}.deal-wish strong{font-size:14px}.deal-product>span:not(.deal-art){font-size:12px}.deal-product strong{font-size:18px}.deal-brand{font-size:25px}.deal-stats{margin-top:12px}.deal-feedback{font-size:13px}.deal-intro p{font-size:14px}}
@media(max-height:700px){.deal-modal{padding-block:10px}.deal-art{max-width:70px}.deal-brand{font-size:23px;min-height:40px}.deal-stats{margin:7px 0 5px}.deal-stats b{font-size:21px}.deal-wish{padding:8px 0}.deal-feedback{margin:7px 0;min-height:36px}.deal-secondary{margin-top:6px;padding-block:9px}.deal-playing-fine{margin:7px 0 0}.deal-product{padding-bottom:5px}}
.deal-modal #deal-content{position:relative}.deal-paused{position:absolute;top:165px;left:0;right:0;z-index:4;box-shadow:0 10px 40px #50213e40}
@media(max-height:700px){.deal-intro{margin:14px 0}.deal-intro h2{font-size:25px;line-height:1.05}.deal-intro p{font-size:14px;line-height:1.4}.deal-how{font-size:13px;gap:6px;padding:10px}.deal-fine{margin:10px 0 5px}.deal-kicker{font-size:11px}}
