:root{--paper:#faf8f0;--ink:#334e43;--green:#416d57;--muted:#859084;--line:#dfe1d4;--gold:#d7af67;--pink:#e8b5a3;--red:#b86a56;font-family:'Noto Sans TC',sans-serif;color:var(--ink);background:#e9e7db;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--line);background:#fffdf7;border-radius:10px;padding:9px 13px;cursor:pointer;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#e7edde;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button.primary{background:var(--green);border-color:var(--green);color:#fffdf2;width:100%;padding:14px;font-weight:600}button.primary:hover{background:#315440}button.warm{background:#eacb8a;border-color:#d7b56f;color:#584b32}button.tiny{font-size:12px;padding:6px 9px}button.selected,button.active{background:#e4ecde;border-color:#89a48a}h1,h2,h3,p{margin:0}small{font-size:11px}#game{height:100dvh;min-height:630px;display:grid;grid-template-columns:minmax(0,1fr) 376px;grid-template-rows:88px minmax(0,1fr) 83px 49px;max-width:1920px;margin:auto}header{grid-column:1/-1;display:flex;align-items:center;gap:24px;padding:0 30px;background:var(--paper);border-bottom:1px solid var(--line);z-index:2}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:15px;background:var(--green);color:#fff6e0;font-family:'Noto Serif TC',serif;font-size:30px;box-shadow:3px 3px 0 #c9d3b9}.brand strong{font-family:'Noto Serif TC',serif;display:block;font-size:26px;letter-spacing:3px}.brand strong span{color:#ce9c62}.brand small{font-size:8px;letter-spacing:1.8px;color:var(--muted)}.top-stats{margin-left:auto;display:flex;gap:34px}.top-stats div{min-width:90px}.top-stats small{display:block;color:var(--muted);letter-spacing:1px;margin-bottom:3px}.top-stats strong{font-size:23px;font-weight:600}.top-stats #rep{color:#bb8b70}.round{border-radius:50%;width:33px;height:33px;padding:0;background:transparent}.scene{position:relative;overflow:hidden;min-width:0}#world{width:100%;height:100%;touch-action:none}#world canvas{display:block}.scene-heading{position:absolute;top:27px;left:30px;pointer-events:none}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:#89927e}.scene-heading h1{font-family:'Noto Serif TC',serif;font-size:29px;line-height:1.6;letter-spacing:4px;margin-top:9px}.scene-heading p{font-size:11px;color:#87927f;margin-top:10px}.clock-card{position:absolute;right:20px;top:25px;width:160px;background:#faf8f0e8;box-shadow:0 4px 20px #52634c0b;border:1px solid #fff9;border-radius:13px;padding:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;font-size:11px}.clock-card b{font-size:15px}.clock-card #status{font-size:10px;color:#71866d;flex-basis:100%}.timeline{height:3px;width:100%;background:#dce2d3;border-radius:4px;margin-top:4px;overflow:hidden}.timeline i{display:block;height:100%;background:#8ea980;width:0}.scene-tools{position:absolute;bottom:17px;left:23px;display:flex;align-items:center;gap:5px}.scene-tools button{padding:7px 11px;background:#faf8f0dd}.scene-tools small{margin-left:8px;font-size:10px;color:#77836e}.scene-tag{position:absolute;right:20px;bottom:22px;font-size:12px;pointer-events:none}.scene-tag i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#729474;margin-right:6px}.scene-tag span{color:#83907a;font-size:10px;margin-left:10px}.desk{background:var(--paper);border-left:1px solid var(--line);padding:24px 23px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c6d1bc transparent}.desk-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.desk-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.pill{font-size:10px;white-space:nowrap;background:#e9eddf;color:#6e8265;border-radius:20px;padding:4px 8px}#panel h2{font-family:'Noto Serif TC',serif;font-size:25px;letter-spacing:1.5px;line-height:1.6;margin-bottom:9px}.intro{font-size:12px;color:#81907e;line-height:1.9;margin-bottom:18px}.hero-card{background:#eff0e5;border:1px solid #e0e4d6;border-radius:18px;padding:20px;text-align:center;margin:20px 0 14px}.hero-card .big-cup{font-size:52px;margin:5px auto 15px;color:#8d9c73}.hero-card h3{font-size:16px;margin-bottom:9px}.hero-card p{font-size:12px;line-height:1.9;color:#7c8d76;margin-bottom:18px}.hero-card small{display:block;color:#829279;margin-top:10px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;margin:20px 0 10px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.8}.card{border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:10px;background:#fffdf6}.card h3{font-size:14px}.card p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:6px}.card .row small{color:var(--muted)}.staff-mini{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px dashed var(--line);font-size:12px}.avatar{width:35px;height:35px;border-radius:12px;background:#dce5d3;display:grid;place-items:center;color:#44604c;font-size:16px;font-weight:600;flex-shrink:0}.staff-mini .info{flex:1}.staff-mini b{display:block;font-size:12px}.staff-mini small{display:block;margin-top:3px;color:#829078;font-size:10px}.energy{height:4px;background:#e3e8da;border-radius:3px;overflow:hidden;margin-top:7px}.energy i{display:block;height:100%;background:#92ae80}.ticket{border:1px dashed #cfd5c4;border-radius:12px;padding:13px;margin-bottom:8px;background:#fffdf8}.ticket.active{border-color:#82a486;background:#f1f5e9}.ticket-head{display:flex;justify-content:space-between;font-size:10px;color:#849179}.ticket h3{font-size:14px;margin:7px 0 5px}.ticket .recipe{font-size:11px;color:#75856d}.ticket .wait{height:3px;background:#e7e8dc;margin-top:9px;border-radius:2px;overflow:hidden}.ticket .wait i{height:100%;display:block;background:#afbc8f}.ticket .who{display:block;color:#aa8d62;font-size:10px;margin-top:8px}.event{font-size:11px;line-height:1.8;border-left:2px solid #d8b77c;padding-left:10px;color:#7b896f;margin-bottom:10px}.toggle{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.toggle input{accent-color:var(--green);width:16px;height:16px}.tabs-inline{display:flex;gap:6px;margin:12px 0}.tabs-inline button{flex:1;font-size:11px;padding:8px 5px}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 15px;margin:14px 0}.skill{font-size:10px}.skill span{display:flex;justify-content:space-between;gap:5px}.skill .energy{height:3px;margin-top:4px}.skill .energy i{background:#b5ba8f}.staff-card .avatar{width:42px;height:42px}.staff-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}select{background:#f6f6eb;border:1px solid var(--line);border-radius:7px;padding:7px;font-size:11px;max-width:100%;min-width:0}.training{display:flex;gap:6px;margin-top:8px}.training select{flex:1}.training button{font-size:10px;padding:7px}.stock-level{font-size:25px;font-weight:500}.stock-level small{font-size:11px;font-weight:400;color:var(--muted)}.stock-card .row{margin-bottom:8px}.stock-card .energy{height:5px}.stock-card .delivery{margin-top:7px;color:#aa8d60;font-size:10px}.stock-card label{font-size:12px;display:flex;gap:7px;align-items:center;color:#53634e;margin-top:10px}.stock-card input{width:45px;border:1px solid var(--line);background:#fffef8;border-radius:5px;padding:3px}.furniture-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.furniture-list button{padding:9px 4px;font-size:10px;line-height:1.7}.furniture-list b{display:block;font-size:20px;font-weight:400;color:#78916e}.furniture-list small{display:block;font-size:9px;color:#87937d}.builder-controls{display:flex;gap:6px;margin:12px 0;align-items:center}.builder-controls button{font-size:10px;padding:7px 8px}.build-selection{font-size:11px;line-height:1.8;padding:10px;border-radius:8px;background:#eaf0df;margin:12px 0}.floor-grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:3px;border:1px solid #d3ddc8;background:#e7ecdd;padding:6px;border-radius:9px}.floor-grid button{min-width:0;aspect-ratio:1;padding:0;border-radius:4px;font-size:15px;background:#faf8ed;border:1px solid #dadfce;color:#6d8266}.floor-grid button.occupied{background:#d1ddc8}.floor-grid button.picked{outline:2px solid #c99e5d;background:#efdab3}.floor-grid button.gate{color:#b08856;background:#f1e6ce}.grid-legend{display:flex;justify-content:space-between;font-size:9px;color:#8b977e;margin:5px 0 13px}.warning{color:#ae715b;background:#f6e9df;border-radius:8px;padding:9px;font-size:11px;line-height:1.8;margin:10px 0}.success{background:#e8efdf;color:#64825f;border-radius:8px;padding:10px;font-size:11px;line-height:1.8}.assistant-hero{background:#e8eddb;border:1px solid #d7dfc6;border-radius:16px;padding:20px;margin:14px 0;text-align:center}.assistant-hero .spark{font-size:36px;color:#b6975b}.assistant-hero h3{font-size:16px;margin:7px 0}.assistant-hero p{font-size:11px;line-height:1.9;color:#7c8b6f;margin:9px 0 15px}.assistant-note{font-size:10px;line-height:1.9;color:#88937b;margin-top:15px}.suggestion{border-left:3px solid #d5b677;padding:13px;background:#f1f0e4;border-radius:0 9px 9px 0;margin:10px 0}.suggestion h3{font-size:12px}.suggestion p{font-size:11px;line-height:1.8;color:#7a896e;margin:5px 0 10px}.ledger{width:100%;border-collapse:collapse;font-size:11px;margin:12px 0}.ledger td{padding:9px 0;border-bottom:1px dashed var(--line)}.ledger td:last-child{text-align:right}.ledger .total{font-size:15px;font-weight:600}.import-tools{display:flex;gap:7px;margin-top:12px}.import-tools button{flex:1;font-size:11px}.manual-selects{display:grid;gap:8px;margin:10px 0}.manual-selects label{font-size:11px;display:flex;justify-content:space-between;gap:10px}.manual-selects select{width:70%}#nav{grid-column:1/-1;display:flex;justify-content:center;background:var(--paper);border-top:1px solid var(--line);padding:11px 25px;gap:12px;z-index:2}#nav button{display:grid;grid-template-columns:26px auto;grid-template-rows:auto auto;gap:0 8px;border-color:transparent;background:transparent;border-radius:12px;min-width:132px;text-align:left;padding:10px 17px;font-size:12px}#nav button b{grid-row:1/3;font-size:25px;align-self:center;font-weight:400;color:#8f9f7a}#nav button small{font-size:7px;letter-spacing:1px;color:#89957b}#nav button.active{background:#e9eddf;border-color:#dce4cf}footer{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:0 28px;background:#e0e6d4;font-size:11px}footer p{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6b7e60}footer p:before{content:'✦';margin-right:10px;color:#a38e5d}.time-tools{display:flex;align-items:center;gap:6px}.time-tools button{font-size:10px;padding:5px 9px;border:0;background:#edf0e4}#loading{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:16px;flex-direction:column;background:#e9e7db}#loading span{font-size:42px;color:#8d9c75;animation:spin 8s linear infinite}#loading strong{font-size:17px;letter-spacing:2px}#loading small{color:#839075}#loading[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.actor-label{position:absolute;transform:translate(-50%,-100%);font-size:9px;white-space:nowrap;pointer-events:none;padding:4px 7px;background:#fbfaf0e8;border:1px solid #ced8bd99;border-radius:7px;color:#59764f;box-shadow:0 2px 5px #3e532311}.actor-label[data-actor^=c]{font-size:8px;color:#97794e;background:#fff7e4db}.actor-label.focused{outline:3px solid #ccad6e}.actor-label[hidden]{display:none}#build-hint{position:absolute;left:50%;bottom:63px;transform:translateX(-50%);padding:10px 15px;background:#3d664ee8;color:#fffdf1;border-radius:30px;font-size:11px;white-space:nowrap;z-index:1}dialog{border:1px solid #d8dfc9;border-radius:20px;background:var(--paper);color:var(--ink);padding:32px;max-width:510px;width:calc(100% - 36px);max-height:85dvh;box-shadow:0 20px 90px #24332226}dialog::backdrop{background:#344e4038;backdrop-filter:blur(4px)}dialog .close{float:right}dialog h2{font-family:'Noto Serif TC',serif;font-size:26px;letter-spacing:2px;margin:8px 0 20px}dialog p,dialog li{font-size:12px;line-height:2;color:#53634e}dialog ol{padding-left:22px}dialog .primary{margin-top:15px}
@media(min-width:1500px){#game{grid-template-columns:minmax(0,1fr) 405px}.desk{padding:28px}.scene-heading{top:35px;left:40px}.scene-heading h1{font-size:33px}.clock-card{right:30px}}
@media(max-width:1050px){#game{grid-template-columns:minmax(0,1fr) 340px}header{padding:0 20px}.top-stats{gap:20px}.scene-heading h1{font-size:23px}.scene-heading{left:23px;top:20px}.scene-heading p{display:none}.clock-card{right:15px;top:20px;width:125px}.scene-tag{display:none}.scene-tools small{display:none}.desk{padding:20px 17px}#nav{gap:4px;padding:10px}#nav button{min-width:0;flex:1;padding:10px 12px;gap:0 5px}#nav button small{font-size:6px;letter-spacing:.5px}}
@media(max-width:760px){#game{height:auto;min-height:100dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:70px 360px auto auto auto}header{gap:9px;padding:0 14px}.brand-icon{width:37px;height:37px;font-size:24px;border-radius:12px}.brand{gap:8px}.brand strong{font-size:21px;letter-spacing:2px}.brand small{font-size:5px;letter-spacing:1px}.top-stats{gap:12px}.top-stats div{min-width:0}.top-stats small{font-size:8px;letter-spacing:0}.top-stats strong{font-size:15px}.top-stats div:last-child{display:none}header .round{display:none}.scene{grid-row:2}.scene-heading{left:16px;top:16px}.scene-heading h1{font-size:20px;line-height:1.5;letter-spacing:2px;margin-top:5px}.scene-heading .eyebrow{font-size:7px;letter-spacing:1.5px}.clock-card{right:12px;top:16px;padding:9px;width:113px}.clock-card #status{font-size:9px}.scene-tools{left:12px;bottom:10px}.scene-tools button{padding:5px 9px;font-size:12px}.desk{grid-row:4;border-left:0;border-top:1px solid var(--line);padding:20px;min-height:350px;overflow:visible}.desk-heading{margin-bottom:12px}#panel h2{font-size:23px}#nav{grid-row:3;position:sticky;top:0;padding:6px;gap:2px;height:69px;border-bottom:1px solid var(--line);z-index:11}#nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 2px;font-size:10px;border-radius:8px}#nav button b{font-size:21px}#nav button small{display:none}footer{grid-row:5;position:sticky;bottom:0;padding:8px 12px;z-index:12;min-height:48px;gap:5px;font-size:9px}.time-tools button{font-size:9px;padding:6px}footer p:before{margin-right:4px}#build-hint{bottom:45px;max-width:95%;font-size:9px;padding:8px 10px}.actor-label{font-size:8px;padding:3px 5px}.actor-label[data-actor^=c]{font-size:7px}.hero-card{margin-top:12px;padding:17px}.hero-card .big-cup{font-size:36px;margin:0 0 8px}.furniture-list{grid-template-columns:repeat(3,1fr)}.floor-grid{max-width:420px;margin:auto}.floor-grid button{max-height:42px}.top-stats #rep{font-size:14px}}
#world canvas{width:100%;height:100%}#game{min-height:560px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.weather-badge{flex-basis:100%;font-size:10px;color:#8a8464}.weather-strip{padding:14px;background:#edf0e4;border:1px solid #dae2cd;border-radius:14px;margin:12px 0}.weather-strip.rain{background:#e8eef0;border-color:#d1dde0}.weather-strip.hot{background:#f4ecd7;border-color:#e6d8b5}.weather-strip strong{font-size:13px}.weather-strip p{font-size:11px;line-height:1.9;color:#74816d;margin-top:7px}.rush-track{display:flex;gap:4px;margin:14px 0 10px;height:48px}.rush-track span{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;font-size:8px;text-align:center;color:#89927b}.rush-track i{background:#d4dec7;display:block;border-radius:5px}.rush-track .now{color:#506d49;font-weight:700}.rush-track .now i{background:#91a779}.street-actions{gap:5px;flex-wrap:wrap;margin:8px 0 17px}.ticket-chat{font-size:10px;line-height:1.8;color:#a08061;padding:6px 0 0}.regular-card{border:1px solid #e1dfce;padding:15px;border-radius:14px;margin-top:12px;background:#fffdf5}.regular-card h3{font-size:15px}.regular-card h3 small{font-size:10px;color:#89917f}.regular-card .row>div{flex:1}.regular-card p{margin:7px 0}.bond{color:#bf8a7a;font-size:13px}.quote{color:#a08061!important;font-size:12px;line-height:1.9}.insight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:13px 0 6px}.insight-grid span{font-size:8px;color:#869079;text-align:center}.insight-grid b{display:block;color:#53704d;font-size:22px;font-weight:500}.actor-label.speaking{white-space:normal;min-width:95px;max-width:155px;font-size:9px;background:#fff9e8f2;border-color:#d8bd8a;text-align:center;line-height:1.5;z-index:1}.lab-stage{height:192px;background:radial-gradient(ellipse at 50% 65%,#fae6c2 0%,#f2e8d2 50%,#eee9dc 100%);border:1px solid #e6dcc8;border-radius:20px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:15px 0 10px}.sample-cup{width:75px;height:97px;background:#fff9e5;border:3px solid #fffef8;border-radius:7px 7px 23px 23px;position:relative;box-shadow:6px 9px 0 #cfb98c28;transform:rotate(-6deg);overflow:hidden}.sample-liquid{position:absolute;inset:17px 0 0;background:var(--tea)}.sample-foam{position:absolute;top:10px;left:0;right:0;height:22px;background:#fffbed;border-radius:50%}.sample-face{position:absolute;top:37px;left:0;right:0;text-align:center;font-size:17px;color:#765339;letter-spacing:1px}.sample-balls{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:12px;color:#80654e}.lab-caption{text-align:center;margin-top:14px}.lab-caption b{font-size:12px;display:block;letter-spacing:.8px}.lab-caption small{display:block;font-size:10px;color:#9b8d6f;margin-top:5px}.lab-spark{position:absolute;color:#c59a60;font-size:23px}.lab-spark.one{top:31px;left:64px;transform:rotate(-20deg)}.lab-spark.two{top:54px;right:61px;font-size:18px}.brewing .sample-cup{animation:tea-sway 1.3s ease-in-out infinite}.brewing .lab-spark{animation:tea-glow 2s ease-in-out infinite}.lab-options{display:flex;flex-wrap:wrap;gap:6px}.lab-options button{font-size:11px;padding:8px 9px;flex:1;min-width:65px}.lab-options button.selected{background:#f0dfb9;border-color:#c6a96d;color:#715e37}.lab-cost{font-size:10px;color:#96866c;line-height:1.8;padding:13px 0}.lab-toggle{font-size:11px;line-height:1.6;margin:14px 0 20px}.lab-progress{margin:8px 0 14px;height:6px}.tasting-result{padding:18px;border-radius:14px;background:#f4ede0;border:1px dashed #cbb992;margin:20px 0}.tasting-result.discovered{background:#eef1df;border:1px solid #b8c89b}.tasting-result h3{font-size:17px;margin:7px 0}.tasting-result p{font-size:11px;line-height:1.9;margin:6px 0}.taste-stars{color:#c29b50;letter-spacing:3px;font-size:22px;margin-top:10px}.taste-meters{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0;font-size:10px;color:#89916f}.recipe-note{display:flex;gap:12px;background:#f5efe2;border-radius:3px 14px 14px 14px;padding:15px;margin:11px 0;border-top:3px solid #dfc695}.recipe-note.unlocked{background:#edf1e4;border-top-color:#a6bc8e}.recipe-icon{font-size:26px;color:#ab9068;line-height:1.1}.recipe-note h3{font-size:12px}.recipe-note p{font-size:11px;line-height:1.9;color:#8a836e;margin:6px 0}.recipe-note small{font-size:9px;color:#8c967c}.lab-attempt{display:flex;align-items:center;gap:8px;border-bottom:1px dashed #ddd9c8;padding:12px 0}.lab-attempt>div{flex:1}.lab-attempt b{font-size:11px;color:#8f805f}.lab-attempt small{display:block;font-size:9px;line-height:1.8;color:#9a9d8b;margin-top:4px}#nav button{min-width:115px;padding:10px 13px}#nav{gap:6px;padding-left:12px;padding-right:12px}@keyframes tea-sway{0%,100%{transform:rotate(-7deg) translateY(0)}50%{transform:rotate(7deg) translateY(-5px)}}@keyframes tea-glow{50%{opacity:.35;transform:scale(.8)}}
@media(max-width:1050px){#nav button{min-width:0;padding:9px 6px;grid-template-columns:20px auto;gap:0 4px}#nav button b{font-size:21px}#nav button span{font-size:11px}#nav button small{font-size:6px;letter-spacing:0}}
@media(max-width:760px){#nav{gap:1px;padding:6px 3px}#nav button{padding:4px 1px;flex:1}#nav button span{font-size:9px;white-space:nowrap}#nav button b{font-size:19px}.clock-card{width:117px}.actor-label.speaking{max-width:115px;font-size:8px}.lab-stage{height:195px}.scene-heading h1{font-size:19px}.lab-spark.one{left:23%}.lab-spark.two{right:23%}}
/* The research notebook shares the shop's quiet paper-and-sage palette. */
.lab-tabs{display:flex;gap:6px;padding:0 0 18px}.lab-tabs button{flex:1;padding:10px 4px;font-size:13px}.lab-tabs [aria-pressed=true],.lab-options [aria-pressed=true]{background:#3e6c59;color:#fff9e9;border-color:#3e6c59}.quest-card{padding:19px 17px;margin:12px 0;background:#fffaf0;border:1px solid #e4decc;border-radius:16px}.quest-card.claimed{background:#edf1e5}.quest-card h3{margin:12px 0 5px}.quest-card p{font-size:13px;line-height:1.7}.quest-reward{font-weight:700;color:#507454;margin:14px 0}.quest-reward small{font-weight:400;color:#777d6d;margin-left:8px}.signature-select,.name-label{display:block;font-size:13px;line-height:1.8;margin:12px 0}.signature-select select,.name-label input{width:100%;padding:11px;border:1px solid #d2d9c7;border-radius:8px;background:#fffdf5;color:#364b3b}.signature-preview{height:225px;position:relative;background:radial-gradient(ellipse at 50% 90%,#d3d8bb 0%,transparent 60%),#ecebdc;border-radius:22px;margin:15px 0 18px;display:flex;align-items:center;justify-content:center;gap:12px;overflow:hidden}.brand-cup{position:relative;flex:none;height:138px;width:99px;border-radius:8px 8px 23px 23px;border:4px solid #fff8e9;background:var(--drink);box-shadow:8px 12px 0 #9ca88c26;transform:rotate(-7deg)}.brand-lid{position:absolute;top:-9px;left:-8px;width:107px;height:13px;border-radius:8px;background:#fff9e9;border-bottom:3px solid #d5d2bd}.brand-lid:before{content:'';position:absolute;height:43px;width:7px;background:var(--brand);bottom:8px;right:25px;transform:rotate(8deg)}.brand-sleeve{position:absolute;top:40px;left:-4px;width:99px;height:70px;background:var(--brand);color:#fffae9;text-align:center;padding:6px 3px}.brand-sleeve b{display:block;font-size:26px;line-height:1}.brand-sleeve small{display:block;font-size:10px;line-height:1.25;margin-top:5px;overflow-wrap:anywhere;max-height:28px;overflow:hidden}.signature-preview.simple .brand-sleeve{background:transparent;color:#5c6d4e}.preview-doodle{position:absolute;top:16px;left:16px;font-size:12px;font-style:italic;color:#7d8c65;line-height:1.7}.preview-caption{position:absolute;bottom:12px;left:0;right:0;text-align:center;color:#6f7e62;font-size:10px}.brand-bag{height:125px;width:91px;background:#d5ae76;transform:rotate(5deg);border-radius:4px 4px 8px 8px;position:relative;box-shadow:5px 8px 0 #9ca88c26}.brand-bag:before{content:'';position:absolute;top:-23px;left:25px;width:35px;height:30px;border:5px solid var(--brand);border-radius:14px}.brand-bag span{color:#fff6db;background:var(--brand);position:absolute;left:25px;top:45px;padding:8px;border-radius:50%}.signature-badge{font-size:13px;font-weight:700;color:#53764b}.name-label small{color:#8a8c7c;font-size:11px}.color-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px}.color-swatches button{font-size:10px;padding:8px 2px;background:#fffaf0}.color-swatches i{display:block;width:23px;height:23px;border-radius:50%;background:var(--swatch);margin:0 auto 6px}.color-swatches [aria-pressed=true]{border:2px solid #54745a}.taster-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.taster-list button{text-align:left;padding:12px;background:#faf4e6}.taster-list small{display:block;font-size:11px;margin-top:5px}.taster-note{border-left:3px solid #b4c48e;background:#f4f3e7;padding:13px;margin-top:12px;font-size:13px}.taster-note small{color:#829071}.staff-controls label{min-width:0;font-size:12px}.staff-controls label select{width:100%;margin-top:5px}.lab-options button:disabled{opacity:.48}.lab-options{flex-wrap:wrap}.signature-select select{max-width:100%}

.lab-tabs button[aria-pressed=true],.lab-tabs button[aria-pressed=true]:hover,.lab-options button[aria-pressed=true]:hover{background:#3e6c59;color:#fff9e9;border-color:#3e6c59}

.desk,#panel{min-width:0}.signature-select,.name-label{min-width:0}.signature-badge{overflow-wrap:anywhere}@media(max-width:700px){#game{grid-template-columns:minmax(0,1fr);width:100%}.staff-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tabs button{min-width:0}.quest-card{overflow-wrap:anywhere}}

/* Quiet seasonal letters: no popups, claims or notification badges. */
.season-card{background:linear-gradient(135deg,#faf5e8,#f0efdf);border:1px solid #d9ddc9;border-top:5px solid var(--season);border-radius:18px;padding:17px;margin:15px 0}.season-card .eyebrow{font-size:8px;letter-spacing:1.2px}.season-card .pill{font-size:9px}.season-card h3{font-size:19px;margin:12px 0 7px}.season-card h3>span{font-size:25px;color:#a58c60}.season-card p{font-size:12px;line-height:1.8;color:#7c836c;margin:8px 0}.season-calendar{display:flex;gap:5px;margin:13px 0}.season-calendar span{flex:1;text-align:center;padding:6px 0;font-size:10px;border-radius:7px;color:#9a9e8b}.season-calendar .current{background:var(--season);color:#4f6248;font-weight:bold}.season-special{border-top:1px dashed #d3d7c0;padding:12px 0 8px}.season-special b{font-size:14px;color:#526b4b;display:block}.season-special small{font-size:10px;color:#8b917c}.season-card .feature-line{padding:9px 10px;background:#5b715c;color:#fff8e7;border-radius:9px;font-size:11px}.feature-line strong{display:block;font-size:14px;overflow-wrap:anywhere}.rumor-card{margin:22px 0 14px;padding:18px;background:#f5eddf;border:1px dashed #d7bf9b;border-radius:16px}.rumor-card h3{font-size:17px;margin:8px 0;color:#8b7150}.rumor-card p{font-size:12px;line-height:1.8;margin:10px 0}.rumor-card .insight-grid span{font-size:9px}.care-controls{padding:18px 15px;border-radius:16px;background:#eef2e6;margin:20px 0}.care-controls h3{font-size:16px;margin-bottom:9px}.care-option{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid #dbe2d1;cursor:pointer}.care-option input{margin-top:3px;accent-color:#54745a;width:17px;height:17px;flex-shrink:0}.care-option b{font-size:13px;font-weight:600}.care-option small{display:block;font-size:11px;line-height:1.8;color:#828b74;margin-top:4px}.care-controls>p:last-child{margin-top:12px}.season-recipes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.season-recipes article{padding:13px 11px;border:1px solid #e3dec9;background:#faf5e7;border-radius:11px}.season-recipes b{font-size:12px;overflow-wrap:anywhere}.season-recipes small{display:block;font-size:9px;line-height:1.6;color:#899177;margin:7px 0}.season-recipes p{font-size:11px;line-height:1.8;color:#8c836d}.street-letter{position:relative;padding:22px 18px 30px;margin:13px 0;background:#fffaf0;border:1px solid #e4ddc9;border-radius:3px 16px 16px 16px;box-shadow:2px 3px 0 #d4c9aa18}.street-letter>small{font-size:10px;color:#a69776}.street-letter h3{font-size:15px;margin:12px 0 8px;color:#6a7858}.street-letter p{font-size:13px;line-height:1.9;color:#8b8068;overflow-wrap:anywhere}.letter-flower{position:absolute;bottom:7px;right:17px;font-size:22px;color:#b9c49c}.lab-tabs button{font-size:12px;white-space:nowrap;min-width:0}.season-card .row{flex-wrap:wrap;gap:8px}
@media(max-width:760px){.lab-tabs{gap:4px}.lab-tabs button{font-size:12px;padding:11px 3px}.season-card{padding:16px}.season-recipes{grid-template-columns:repeat(2,minmax(0,1fr))}.care-option b{font-size:13px}}

.season-card.compact{padding:12px 14px}.season-card.compact>.row{gap:3px}.season-card.compact h3{font-size:16px;margin:8px 0}.season-card.compact h3>span{font-size:19px}.season-card.compact .season-special{padding:7px 0 5px}.season-card.compact .feature-line{padding:6px 8px;margin:5px 0}.season-card.compact .feature-line strong{display:inline;font-size:12px}.season-card.compact button{margin-top:5px;padding:6px 9px;font-size:10px}
/* A quiet illustrated team notebook, with real Blender portraits. */
.team-eyebrow{color:#987e72}.people-auto{background:#edf1e9;border:1px solid #d7e0d4;border-radius:14px;padding:15px;margin:18px 0}.people-auto small{color:#5e7365}.team-tabs{display:flex;gap:5px;margin:20px 0 14px}.team-tabs button{flex:1;min-width:0;padding:11px 3px;font-size:12px}.team-tabs [aria-pressed=true]{background:#426a59;color:#fff9ec;border-color:#426a59}.team-capacity{color:#687669;margin-bottom:16px}.team-strip{display:flex;gap:7px;margin-bottom:15px;overflow:auto;padding:2px}.team-strip button{flex:1;min-width:54px;max-width:100px;padding:0 3px 8px;border-radius:14px;background:#f5f0e7}.team-strip button[aria-pressed=true]{border-color:#9c786a;background:#f0dfd2;box-shadow:0 0 0 1px #9c786a}.team-strip img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.team-strip span{font-size:12px}.people-profile{border:1px solid #ded7c8;border-radius:22px;overflow:hidden;background:#fffaf1;box-shadow:0 6px 20px #6d61440b}.portrait-stage{height:255px;position:relative;background:radial-gradient(ellipse at 50% 95%,#c9cdb9 0%,transparent 55%),linear-gradient(120deg,#eee4d5,#e6eddf);display:flex;align-items:center;justify-content:center;overflow:hidden}.portrait-stage:before{content:'';position:absolute;width:178px;height:198px;bottom:20px;border:1px solid #fffaf0;border-radius:100px 100px 8px 8px;background:#fffbf040}.portrait-stage .team-portrait{position:relative;width:250px;height:250px;object-fit:contain;z-index:1}.portrait-flower{position:absolute;top:22px;right:25px;font-size:30px;color:#b58971;transform:rotate(15deg)}.portrait-mark{position:absolute;bottom:20px;left:14px;writing-mode:vertical-rl;font-style:italic;color:#64796b;font-family:Georgia,serif;font-size:12px;letter-spacing:1px}.portrait-caption{position:absolute;top:17px;left:17px;font-size:8px;letter-spacing:1.4px;color:#687d69}.profile-copy{padding:22px 19px}.profile-copy>.eyebrow{font-size:10px;color:#9b796b;letter-spacing:1.5px}.profile-copy h3{font-size:27px;margin:8px 0 10px;color:#3e6151}.profile-copy h3 small{font-size:11px;color:#7b8575;font-weight:400;margin-left:10px}.profile-copy p{font-size:12px;line-height:1.9;color:#637364}.habit-note{border-left:3px solid #c9a984;background:#f3ece0;color:#886b51;padding:10px 12px;font-size:11px;line-height:1.6;margin:16px 0}.person-status{display:flex;justify-content:space-between;font-size:11px;margin:17px 0 8px;gap:8px}.person-status b{white-space:nowrap;font-weight:500;color:#6f7d60}.people-skills{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin:23px 0 10px}.people-skills span{display:flex;justify-content:space-between;font-size:12px;color:#58725f;gap:5px}.people-skills b{font-weight:500}.people-skills b small{font-size:8px;color:#b17b60}.people-skills i{display:block;height:4px;background:#e7e6d9;border-radius:5px;margin:8px 0 4px;overflow:hidden}.people-skills em{display:block;height:100%;background:#98ae92;border-radius:5px}.people-skills>div>small{font-size:9px;color:#7c8775}.profile-copy .growth-footnote,.growth-footnote{font-size:10px;color:#788373;line-height:1.9;margin:10px 0 18px}.dispatch-note{background:#eaf0e5;border-radius:12px;padding:14px;margin:18px 0 22px}.dispatch-note>span{font-size:10px;color:#7f8e75;letter-spacing:1px}.dispatch-note p{margin-top:5px;color:#4a6a55}.profile-copy h4{font-size:14px;color:#6b765b;margin:26px 0 13px}.profile-copy h4 small{float:right;font-size:10px;color:#a7987d}.friendship-row{display:flex;gap:12px;padding:15px 0;border-bottom:1px dashed #e0d8c5}.friend-seed{width:32px;height:32px;display:grid;place-items:center;background:#f0ded0;color:#a77965;border-radius:50%;font-size:20px;flex-shrink:0}.friendship-row b{font-size:13px;color:#5b725f}.friendship-row b small{font-size:10px;font-weight:400;color:#a2826d;margin-left:8px}.friendship-row p{font-size:11px;margin:4px 0}.friendship-row>div>small{font-size:10px;color:#8b8978}.empty-note{font-size:12px;line-height:2;background:#f3efe4;color:#7a816e;border-radius:12px;padding:17px}.people-story{background:#f5eedf;border:1px solid #e3d7bd;border-radius:4px 16px 16px 16px;padding:17px;margin:12px 0;position:relative}.people-story>span{font-size:9px;color:#a48b67}.people-story h5{font-size:15px;color:#7b7157;margin:10px 0}.people-story p{font-size:12px;line-height:2;color:#7c765f}.story-unwritten{font-size:11px;color:#8b8b78;line-height:1.8;padding:12px 0;border-bottom:1px dashed #dfdccd}.people-controls{border-top:1px solid #d8dfce;margin-top:25px;padding-top:22px}.people-controls h3{font-size:15px;margin-bottom:8px}.people-controls>p{font-size:11px;color:#75816d;line-height:1.8}.people-controls .staff-controls{margin:12px 0;align-items:end}.people-controls .row{gap:6px}.people-controls .row button{font-size:10px;flex:1;padding:10px 5px}.recruit-card{padding:20px;background:#fffaf0;border:1px solid #e0d9c7;border-radius:18px;margin:17px 0}.recruit-top{display:flex;align-items:center;gap:15px;background:#f1ecdf;border-radius:12px;margin-bottom:14px}.recruit-top img{width:115px;height:130px;object-fit:contain}.recruit-top h3{font-size:22px;margin:7px 0;color:#4c6a55}.recruit-top small{font-size:10px;color:#9b7f6b}.recruit-top span{font-size:11px;color:#7d856f}.recruit-card>p{font-size:12px;line-height:1.9;color:#6f7d67}.recruit-skills{display:flex;justify-content:space-between;gap:8px;margin:18px 0;font-size:10px;color:#7a826d}.recruit-skills b{display:block;font-size:19px;font-weight:500;color:#5e785d;margin-top:5px}.recruit-card>.primary{width:100%}.story-capacity{display:none}.journal-intro{margin:12px 0}.journal-intro>span{font-size:9px;color:#a28a6e;letter-spacing:2px}.journal-intro h3{font-size:17px;color:#647653;margin:6px 0}.journal-intro p{font-size:12px;color:#7b826d;line-height:1.7;margin:6px 0}.journal-story .mini{width:65px;height:65px;background:#e7e8d8;border-radius:50%}.journal-story .row{justify-content:flex-start;gap:15px}.journal-story .row span{font-size:10px;line-height:1.8;color:#918064}.actor-label.speaking{border-color:#c2ad91;box-shadow:0 3px 8px #4f5c3520}.actor-label[data-actor]:not([data-actor^=c]){border-bottom:2px solid #a7b69b}
@media(max-width:760px){.portrait-stage{height:270px}.portrait-stage .team-portrait{width:265px;height:265px}.team-strip button{max-width:85px}.team-tabs button{padding:12px 4px}.profile-copy{padding:23px 20px}.people-profile{max-width:500px;margin:auto}.people-controls{max-width:500px;margin:25px auto 0}.people-auto{padding:14px}.recruit-card{max-width:500px;margin:17px auto}}

.staff-mini .staff-photo{width:48px;height:52px;object-fit:contain;background:#ede7da;border-radius:13px;flex-shrink:0}
.team-tabs button[aria-pressed=true],.team-tabs button[aria-pressed=true]:hover{background:#426a59;color:#fff9ec;border-color:#426a59}.team-strip button[aria-pressed=true]:hover{background:#f0dfd2;color:#4c6454;border-color:#9c786a}

/* Collected furniture, mixed gently into a personal room. */
.decor-studio h2{margin-top:12px}.style-collection{display:grid;gap:18px;margin:24px 0}.style-card{overflow:hidden;background:#fffbf4;border:1px solid #ddd7c9;border-radius:22px;box-shadow:0 8px 20px #594e3910}.style-card img{display:block;width:100%;height:auto;aspect-ratio:1.3;object-fit:cover;background:#eee7db}.style-card>div{padding:17px 19px}.style-card h3{font-size:20px;color:var(--style-color);margin:0 0 8px}.style-card p{font-size:12px;line-height:1.8;color:#76816e;margin-bottom:13px}.style-card button{width:100%;background:#f5efe4}.mix-row{border-bottom:1px dashed #dcd8c9;padding:14px 0}.mix-row>b{display:block;font-size:12px;margin-bottom:9px;color:#687761}.mix-row>div{display:flex;gap:7px;flex-wrap:wrap}.mix-row button{font-size:10px;padding:9px 11px}.mix-row button[aria-pressed=true]{border-color:#6e8b71;background:#e5edde;box-shadow:0 0 0 1px #6e8b71}.style-chip:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:var(--style-color)}.shop-name-label{display:block;font-size:12px;color:#687761;margin:22px 0 10px}.shop-name-label input{display:block;width:100%;box-sizing:border-box;margin-top:9px;padding:13px;border:1px solid #d6d8c7;border-radius:10px;background:#fffaf2;color:#4d6957;font:inherit}.decor-studio>h3{font-size:16px;color:#60765e;margin-top:27px}.design-advice{border:1px solid #cad9c4;background:linear-gradient(135deg,#edf2e6,#f6f1e5);padding:20px;border-radius:18px;margin:22px 0}.design-advice h3{font-size:16px;margin:13px 0;color:#587153}.design-advice p{font-size:12px;line-height:1.9;color:#68765f;margin:12px 0}.design-advice .eyebrow{font-size:8px;letter-spacing:1.3px}.design-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin:20px 0}.design-metrics span{font-size:9px;color:#798469}.design-metrics b{display:block;font-family:Georgia,serif;font-size:26px;font-weight:400;color:#5e785b;margin-bottom:6px}.design-advice button{width:100%;font-size:12px}.decor-diary{padding:18px;background:#f4eadb;border-radius:15px}.decor-diary summary{cursor:pointer;font-size:13px;color:#88725c}.decor-diary p{font-size:12px;line-height:1.9;border-top:1px dashed #d8cbb7;padding-top:10px}.decor-diary small{font-size:10px;color:#92846b}.studio-divider{border:0;border-top:1px solid #dad6c4;margin:32px 0}.team-strip button{flex:0 0 65px}.team-capacity{flex-wrap:wrap;gap:8px}

.build-shortcuts{display:flex;gap:8px;margin:18px 0}.build-shortcuts button{flex:1;font-size:11px;padding:11px 6px}
.daily-life{background:linear-gradient(145deg,#f3e8da,#f0f1e5);border:1px solid #ddd5bf;border-radius:22px;padding:19px;margin:18px 0}.daily-life h3{font:600 17px/1.8 'Noto Serif TC',serif;margin:10px 0;color:#6a7659}.daily-life p{font-size:11px;line-height:1.9;color:#7c826b}.life-counts{display:flex;justify-content:space-between;margin:15px 0;font-size:9px;color:#8a8c75}.life-counts b{font:24px Georgia,serif;color:#6b805e;margin-right:3px}.daily-life .care-option{margin:8px 0 15px;border:0;padding:10px 0}.daily-life .care-option b{font-size:12px}.daily-life .life-note{border-top:1px dashed #d5ceb8;padding-top:12px;margin-top:13px}.photo-controls[hidden]{display:none}.photo-controls{position:fixed;z-index:20;bottom:18px;left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 28px));background:#fffaf0f5;padding:20px 24px 14px;border:1px solid #ddd7c5;border-radius:22px;box-shadow:0 10px 40px #56624b20}.photo-heading{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;margin-bottom:13px}.photo-heading span{width:100%;font-size:8px;letter-spacing:2px;color:#9b9078}.photo-heading b{font:600 21px 'Noto Serif TC',serif}.photo-heading small{font-size:10px;margin-left:auto;color:#89917c}.photo-controls label{display:flex;gap:12px;align-items:center;font-size:11px}.photo-controls input{min-width:0;flex:1;border:1px solid #d7d9c7;border-radius:9px;padding:9px 12px;background:#fffdf7}.photo-actions{display:flex;gap:7px;margin:12px 0;align-items:stretch}.photo-actions button{padding:10px;font-size:11px;white-space:nowrap}.photo-actions .primary{width:auto;flex:1}.photo-message{font-size:10px;color:#7b876d;line-height:1.8}.photography{overflow:hidden}.photography #game{display:block;height:100dvh;min-height:0}.photography #game>header,.photography #game>.desk,.photography #game>nav,.photography #game>footer{display:none}.photography .scene{position:fixed;inset:0 0 235px}.photography .scene>:not(#world){display:none}.photography .actor-label{display:none}.photo-album{max-width:950px}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.postcard{padding:10px 10px 15px;border:1px solid #e3ddcd;background:#fffcf6;box-shadow:0 4px 14px #665c3c10;border-radius:4px 4px 14px 14px;min-width:0}.postcard img{display:block;width:100%;height:auto}.postcard h3{font:600 15px 'Noto Serif TC',serif;margin:14px 3px 8px;overflow-wrap:anywhere}.postcard small{display:block;color:#8c927a;margin:0 3px 12px;font-size:10px}.postcard>div{display:flex;gap:8px}.postcard button{font-size:11px}.photo-album #album-status{font-size:11px}
@media(max-width:760px){.photo-controls{padding:16px;bottom:12px}.photo-heading b{font-size:17px}.photo-heading small{margin-left:0;display:block;width:100%}.photo-actions{flex-wrap:wrap;gap:5px}.photo-actions button{padding:9px 11px}.photo-actions .primary{flex:1;min-width:120px}.photo-controls label{font-size:10px}.photography .scene{bottom:285px}.photo-album{padding:23px 17px}.album-grid{grid-template-columns:1fr}.photo-heading{margin-bottom:10px}.scene-tools #photo-open{font-size:10px}}

@media(min-width:761px){.photography .scene{inset:0 310px 0 0}.photo-controls{left:auto;right:14px;bottom:50%;transform:translateY(50%);width:280px;padding:22px}.photo-heading b{font-size:24px;line-height:1.7}.photo-heading small{margin-left:0;line-height:1.8}.photo-controls label{display:block;margin-top:25px}.photo-controls input{display:block;width:100%;margin-top:9px}.photo-actions{flex-wrap:wrap;margin:20px 0}.photo-actions button{flex:1}.photo-actions .primary{flex:1 0 100%;margin-top:8px}.photo-heading span{font-size:7px}.photo-message{margin-top:20px;line-height:2}}

/* v0.9: the next useful action stays above optional shop stories. */
.mode-control{display:flex;gap:5px;margin:10px 0 6px}.mode-control button{flex:1;padding:10px 5px;font-size:12px;border:1px solid #d5dccb;border-radius:12px;background:#f7f7ef;color:#536957}.mode-control button[aria-pressed=true]{background:#426d5d;color:#fff;border-color:#426d5d}.mode-note{font-size:11px;color:#778370;line-height:1.7;margin:7px 0 16px}.operations-card{padding:15px 17px;border:1px solid #dce3d1;background:#edf1e5;border-radius:16px;margin:12px 0}.operations-card>b{font-size:14px;color:#426650}.operations-card p{font-size:12px;color:#6b7965;line-height:1.8;margin:7px 0}.operation-actions{display:flex;flex-wrap:wrap;gap:6px}.opening-actions{display:grid;gap:10px;text-align:center;margin:18px 0 24px}.opening-actions small{color:#83907c;font-size:10px}.quiet-details{border-top:1px solid #e0e3d7;padding:14px 0}.quiet-details>summary{cursor:pointer;font-size:13px;color:#546e5c;font-weight:600;line-height:1.8}.quiet-details[open]>summary{margin-bottom:14px}.closing-action{display:flex;justify-content:flex-end;margin:12px 0 20px}.mode-control button:focus-visible,.quiet-details summary:focus-visible{outline:2px solid #aa775b;outline-offset:3px}
/* Continuous paper floor plan: one gesture, no placement cells. */
.free-plan{display:block;width:100%;max-height:460px;touch-action:none;user-select:none;margin:14px 0;filter:drop-shadow(0 5px 6px #5d483416);border-radius:14px;cursor:grab}.free-plan:active{cursor:grabbing}.free-plan .picked polygon{stroke:#aa6e22;stroke-width:.075}.free-angle{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 14px;background:#faf1d9;border-radius:14px}.free-angle input,.free-angle small{grid-column:1/-1}.free-angle input{width:100%;min-height:40px;accent-color:#b6784c}.equipment-picks{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.equipment-picks button{min-height:44px;font-size:12px;padding:8px 10px}.equipment-picks button[aria-pressed=true]{background:#eed295;border-color:#ac7b35}

/* Component styles. Playfield/HUD layout lives only in presentation.css. */

.gameplay.drawer-open[data-panel=district] #new-player-guide{display:none}
.district-book>p,.district-book p{font-size:12px;line-height:1.8}
.district-book h2{margin:8px 0;font-size:23px}
.district-map{position:relative;border:2px solid #dcccb0;border-radius:23px;overflow:hidden;margin:16px 0}
.district-map svg{width:100%;display:block}
.gameplay .district-pin{position:absolute;top:34%;width:27%;padding:9px 5px;border:2px solid #b9ac8d;border-radius:13px;background:#fff9e8ed;box-shadow:0 4px 0 #b39d7b33;text-align:center}
.district-pin span,.district-pin b,.district-pin small{display:block}
.district-pin span{font-size:10px;color:#7c8872}
.district-pin b{font-size:14px;margin:5px 0}
.district-pin small{font-size:11px}
.district-pin.pin-0{left:2%}
.district-pin.pin-1{left:36%;top:43%}
.district-pin.pin-2{left:70%;top:29%}
.gameplay .district-pin.selected{border-color:#548371;background:#e6f0df;outline:3px solid #9db593;outline-offset:2px}
.district-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}
.district-detail h3{font-size:20px;margin:8px 0}
.district-numbers{display:flex;justify-content:space-between;gap:10px;padding:13px 0;border-block:1px dashed #c8b99d;font-size:11px}
.district-numbers b{display:block;font-size:21px;color:#527366;margin-top:5px}
.district-hours{display:flex;gap:8px;margin:15px 0;font-size:11px}
.district-hours span{flex:1;text-align:center}
.district-hours i{display:block;height:6px;margin:8px 0;border-radius:4px;background:linear-gradient(to right,#83a7a0 var(--crowd),#e8dfc9 var(--crowd))}
.district-hours small{font-size:10px;color:#8b806c}
.rival-card{padding:16px;border:2px dashed #c4a7a0;border-radius:18px;background:#f3e5df}
.rival-card small{font-size:10px;line-height:1.7}
.rival-card>b{font-size:12px;color:#946d66}
.district-advice{margin:16px 0;padding:16px;background:#eaf0df;border-radius:15px;border:1px solid #bdc9a9}
.district-advice>b{font-size:14px}
.district-advice p:last-child{margin-bottom:0}
.district-feedback{background:#f7eac8;padding:12px;border-radius:10px}
.district-confirm{width:100%;padding:15px!important}
.district-footnote{display:block;font-size:10px;color:#897e69;line-height:1.8;margin:10px 0}
@media(max-width:760px){
.district-detail{grid-template-columns:1fr;gap:10px}
.district-pin b{font-size:11px}
.district-pin span{font-size:8px}
.gameplay .district-pin{padding:4px 2px}
.district-pin small{font-size:9px}
.district-map{margin:10px -8px}
.district-map svg{min-height:175px}}
.gameplay button{touch-action:manipulation}
.gameplay button:active:not(:disabled){transform:translateY(2px)}
.gameplay .timeline{height:6px;background:#e5dcc5}
.gameplay .timeline i{background:#98ae79}
.gameplay .weather-badge{font-size:11px}
.gameplay #drawer-title{font-size:14px;font-weight:800;color:#786347}
.gameplay #live-badge{margin-left:auto;font-size:10px}
.gameplay #drawer-close{width:31px;height:31px;padding:0;border-radius:50%;font-size:21px;border:1px solid #cab38e;background:#f1dfc0}
.gameplay #panel h2{font:800 22px/1.6 'Noto Sans TC',sans-serif;letter-spacing:0;color:#655339}
.gameplay .intro{font-size:12px;color:#655b4d}
.gameplay .card{background:#fffaf0;border-color:#ddd0b3;box-shadow:0 2px 0 #d8c9aa22}
.gameplay .ticket{border:0;border-radius:2px 2px 12px 12px;background:#f6ecd3;box-shadow:0 3px 0 #cbbb96;padding-top:16px}
.gameplay button.primary{border-bottom:4px solid #395540;border-radius:14px;font-weight:700}
.gameplay .pill{background:#efe3c8;color:#8a7656}
.gameplay .eyebrow{display:none}
.gameplay #assistant-tip{font-size:11px;line-height:1.7;color:#7b785e;display:block}
.gameplay .actor-label{pointer-events:auto;cursor:pointer;border:1px solid #d3c4a4;background:#fff8e8ed;color:#6f7957;border-radius:10px 10px 10px 2px;font-size:10px;padding:5px 8px;box-shadow:0 2px 0 #8e7e5520}
.gameplay .actor-label:hover{background:#fff2cb;transform:translate(-50%,-100%);outline:2px solid #c3a364}
.gameplay .actor-label[data-actor^=c]{font-size:9px;background:#fff5df}
.gameplay #build-hint{bottom:192px;white-space:normal;text-align:center;max-width:90%;background:#617858f0}
.gameplay #loading{z-index:5;background:#e9e7db}
.gameplay dialog{background:#fff8e6;border:3px solid #bdab86;box-shadow:0 6px 0 #a18d65,0 24px 90px #4e3e393b}
.gameplay dialog h2{color:#735c3e;font-family:inherit;letter-spacing:0}
@keyframes unfold{from{opacity:0;transform:translateX(20px) rotate(1deg)}to{opacity:1;transform:none}}
@keyframes coin-rise{0%{opacity:0;transform:translateY(12px) scale(.8)}20%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-38px) scale(1)}}
@media(max-width:760px){
.gameplay #assistant-tip{font-size:10px;line-height:1.6}
.gameplay #panel h2{font-size:21px}
.gameplay #build-hint{bottom:95px;font-size:10px}
.gameplay.drawer-open[data-panel=build] #build-hint{bottom:43px}
.gameplay .actor-label{font-size:8px;max-width:165px;overflow:hidden;text-overflow:ellipsis}
.gameplay .actor-label[data-actor^=c]{font-size:8px}}
.gameplay.photography .actor-label{display:none}
.gameplay.photography #game>header,.gameplay.photography #game>nav,.gameplay.photography #game>footer{display:none}
@media(prefers-reduced-motion:reduce){
.gameplay *{animation:none!important;transition:none!important}}
.gameplay .lab-tabs{flex-wrap:wrap}
.gameplay .lab-tabs button{flex:1 0 28%;padding:9px 4px;font-size:12px}
.tea-book-head{background:#e8d8b6;padding:23px 18px;border:2px solid #c3a675;border-radius:6px 22px 22px 6px;box-shadow:-4px 0 #a78756;margin:12px 0 25px}
.tea-book-head>span{font-size:9px;letter-spacing:2px}
.tea-book-head p{font-size:12px;line-height:1.9}
.tea-book-head>b{display:block;margin-top:12px;color:#6d8052}
.tea-specimen{border:1px solid #d8c49c;border-bottom:7px solid #ba956c;border-radius:16px 16px 4px 4px;background:#fff9e9;overflow:hidden;margin:0 0 22px;padding:20px 15px 16px;box-shadow:0 5px 12px #5c432a13}
.tea-tin{position:relative;margin:4px auto 18px;width:104px;height:125px;background:linear-gradient(90deg,#d3c8b1,#ece6d8 34%,#c9bda6);border:2px solid #a8997e;border-radius:19px 19px 12px 12px;box-shadow:9px 10px 0 #a18b5b18;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8d8069;filter:saturate(.3)}
.tea-tin:before{content:'';position:absolute;top:-7px;left:-5px;right:-5px;height:19px;border:2px solid #a8997e;border-radius:9px;background:#d8c8a7}
.tea-tin span{font-size:11px;margin:10px}
.tea-tin b{font-size:14px;padding:7px 4px;background:#fff5df;border-radius:4px;max-width:100%}
.tea-tin i{font-size:8px;font-style:normal;margin:8px}
.collected .tea-tin{background:linear-gradient(90deg,var(--tea-tone),#fff8cd 160%);filter:none;color:#5c5039}
.tea-page small{font-size:10px;color:#897659;display:block;margin:6px 0}
.tea-page h3{font-size:18px}
.tea-page p{font-size:12px;line-height:1.9;margin:8px 0}
.tea-page details{font-size:10px;line-height:1.8}
.tea-page a{color:#56765c}
.tea-page button{width:100%;font-size:12px;border-color:#c4ab78;background:#f0e0b6;font-weight:700}
.tea-stamps{display:flex;gap:8px;margin:14px 0}
.tea-stamps span{border:1px dashed #ccbea1;padding:6px 10px;font-size:11px;color:#a09680;transform:rotate(-3deg)}
.tea-stamps .stamped{border:2px solid #ae7764;color:#a6654f}
.dream-map{margin-bottom:30px;padding-bottom:25px;border-bottom:2px dashed #ccb791}
.current-dream{background:#f4e2b7;padding:18px;border:2px solid #bda574;border-radius:5px 16px 16px 5px;box-shadow:-4px 0 #b3976c}
.current-dream h3{font-size:18px;margin:8px 0}
.current-dream p{font-size:12px;line-height:1.9}
.current-dream .row{font-size:11px;margin:12px 0}
.current-dream>small{font-size:10px}
.current-dream button{width:100%;font-size:12px;background:#fff6db;border-color:#bba171}
.dream-stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:22px 0}
.dream-stamps>div{text-align:center;color:#a59679}
.dream-stamps b{display:grid;place-items:center;width:49px;height:49px;border:2px dashed #cbbb9b;border-radius:50%;margin:0 auto 7px;font-size:19px}
.dream-stamps span{font-size:10px;line-height:1.6;display:block}
.dream-stamps .earned b{background:#f2deb6;border:3px double #a96e51;color:#a16548;transform:rotate(-9deg)}
.saving-coins{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.saving-coins button{font-size:11px}
.saving-coins [aria-pressed=true]{background:#dde6c5;border-color:#899e68}
@media(max-width:760px){
.tea-tin{width:98px;height:115px}
.dream-stamps{gap:6px}
.gameplay .lab-tabs button{flex-basis:28%;font-size:11px}}
.gameplay #milestone-toast{position:absolute;left:50%;top:25%;transform:translateX(-50%) rotate(-2deg);background:#fff1c9;border:3px double #b48654;border-radius:18px;box-shadow:0 8px 30px #7b60322b;padding:15px 25px;text-align:center;pointer-events:none;min-width:230px;animation:stamp-arrival .5s ease-out;color:#805c3f}
.gameplay #milestone-toast[hidden]{display:none}
.gameplay #milestone-toast>span{display:block;font-size:45px;color:#b77754}
.gameplay #milestone-toast>b{display:block;font-size:18px;margin:5px}
.gameplay #milestone-toast small{font-size:11px}@keyframes stamp-arrival{from{opacity:0;transform:translateX(-50%) scale(1.3) rotate(-8deg)}to{opacity:1;transform:translateX(-50%) scale(1) rotate(-2deg)}}
.tea-book-head{padding:13px 15px;margin:8px 0 13px}
.tea-book-head h2{font-size:21px!important;margin:5px 0!important}
.tea-book-head p{font-size:11px}
.tea-shelf{display:flex;gap:7px;overflow-x:auto;padding:10px 2px 13px;margin-bottom:16px;border-bottom:6px solid #bd9b76;scrollbar-width:thin}
.tea-shelf>button{flex:0 0 70px;padding:6px 2px;background:#eee7d7;border:1px solid #d5c4a4;border-radius:10px;color:#93866b}
.tea-shelf>button[aria-pressed=true]{background:#fff0c9;border:2px solid #9b7c4e}
.tea-shelf b{font-size:10px;display:block;white-space:normal}
.tea-shelf small{font-size:9px}
.mini-tin{display:grid;place-items:center;width:33px;height:39px;border:2px solid #a5987b;border-top-width:6px;border-radius:7px;margin:0 auto 7px;font-size:11px;background:#d8d0be}
.collected .mini-tin{background:var(--tea-tone)}
.tea-specimen{padding:16px}
.tea-specimen .tea-tin{float:right;width:80px;height:98px;margin:7px 0 12px 10px}
.tea-specimen .tea-tin b{font-size:11px}
.tea-specimen .tea-tin span{margin:5px}
.tea-page details{margin-top:13px}
.tea-stamps{clear:both}
@media(min-width:1100px){
.gameplay[data-lab-view=collection] .lab-tabs{flex-wrap:nowrap;gap:4px}
.gameplay[data-lab-view=collection] .lab-tabs button{flex:1 1 auto}
.gameplay[data-lab-view=collection] .tea-book-head{padding:8px 14px}
.gameplay[data-lab-view=collection] .tea-book-head h2{font-size:19px!important}
.gameplay[data-lab-view=collection] .tea-book-head p{margin:0;line-height:1.5}
.gameplay[data-lab-view=collection] .tea-shelf{margin-bottom:10px;padding-top:2px;padding-bottom:6px}
.gameplay[data-lab-view=collection] .tea-shelf>button{flex:1 0 65px}
.gameplay[data-lab-view=collection] .tea-specimen{padding:12px 16px}
.gameplay[data-lab-view=collection] .tea-tin{width:95px;height:112px;margin-top:0}
.gameplay[data-lab-view=collection] .tea-stamps{clear:none}
.gameplay[data-lab-view=collection] .tea-page>button{width:auto;min-width:220px}}
.journal-tabs{display:flex;gap:5px;margin:0 0 18px;border-bottom:2px solid #c6b38e;padding-bottom:10px}
.journal-tabs button{flex:1;font-weight:700;font-size:12px;background:#eee4cd;border-color:#d0bd98;border-radius:10px 10px 4px 4px}
.journal-tabs button[aria-pressed=true]{background:#537662;color:#fff9e9;border-color:#537662}
.journal-totals{display:flex;gap:12px;margin:18px 0}
.journal-totals>span{flex:1;background:#f2e8d3;padding:14px;border-radius:12px;font-size:12px}
.journal-totals b{display:block;font-size:23px;margin-top:6px}
.receipt-fold{margin:12px 0;padding:13px 12px;background:#fff9e9;border:1px dashed #cab994;border-radius:4px;box-shadow:0 3px 0 #d8c9ac}
.receipt-fold summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;font-size:12px}
.receipt-fold summary:after{content:'＋'}
.receipt-fold[open] summary:after{content:'−'}
.menu-paper{border-block:2px solid #bda781;margin:18px 0;padding:2px 0;background:#fffaf0}
.menu-line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 3px;border-bottom:1px dashed #dbcbae;font-size:13px}
.menu-line>div{display:flex;align-items:center;gap:8px;white-space:nowrap}
.menu-line b{min-width:39px;text-align:center}
.menu-line button{min-width:32px;min-height:32px}
.quiet-details{margin:18px 0;padding:12px;border:1px solid #d4c7aa;border-radius:9px}
.quiet-details summary{cursor:pointer;font-size:12px;font-weight:700}
.journal-page h2{font-size:22px}
.display-link{width:100%;background:#e9ddbd;border-color:#b49a6c;font-size:12px}
@media(max-height:740px){
.gameplay[data-lab-view=collection] .tea-book-head{padding:6px 12px;margin-bottom:7px}
.gameplay[data-lab-view=collection] .tea-book-head>span{display:none}
.gameplay[data-lab-view=collection] .tea-book-head h2{font-size:17px!important}
.gameplay[data-lab-view=collection] .tea-shelf{margin-bottom:8px}
.gameplay[data-lab-view=collection] .tea-specimen{margin-bottom:9px}
.gameplay[data-lab-view=collection] .mini-tin{height:24px;margin-bottom:3px}}
.settlement-modal{max-width:430px!important;background:#fff8e8!important;border:2px solid #c7b18b!important;border-radius:20px!important;padding:0!important}
.settlement-modal #modal-content{padding:24px 25px 18px}
.day-receipt{text-align:center;color:#53644f}
.receipt-illustration{height:78px;margin:0 auto 4px}
.receipt-illustration svg{height:100%;width:110px}
.gameplay .day-receipt .eyebrow{display:block;font-size:11px;letter-spacing:1px}
.day-receipt h2{font-size:21px!important;line-height:1.5;margin:10px 0 14px}
.receipt-result{padding:13px;border-block:1px dashed #c2ad88;color:#58745a}
.receipt-result small,.receipt-result span{display:block;font-size:11px;line-height:1.6}
.receipt-result strong{display:block;font-size:35px;letter-spacing:1px;margin:3px}
.receipt-result.is-loss{color:#a46f57}
.receipt-line{font-size:11px!important;color:#655b4d;margin:10px 0!important}
.next-day-note{background:#eee4cb;border-radius:12px;padding:13px 14px;text-align:left;margin:14px 0}
.next-day-note>small{color:#695332;font-weight:700;font-size:10px}
.next-day-note p{font-size:12px!important;line-height:1.8;margin:6px 0 11px!important}
.next-day-note button{font-size:12px!important;width:100%;margin:0!important}
.receipt-detail{font-size:11px;text-align:left;padding:8px 0}
.receipt-detail summary{cursor:pointer;text-align:center;color:#897754}
.receipt-detail p{font-size:10px!important;line-height:1.7!important}
.receipt-detail td{font-size:12px}
.receipt-keep{border:0!important;background:transparent!important;color:#766c57!important;font-size:12px!important;padding:9px!important;width:100%}
.settlement-modal::backdrop{background:#493e2c7a;backdrop-filter:blur(3px)}
@media(max-height:740px){
.settlement-modal #modal-content{padding:15px 22px}
.receipt-illustration{height:46px}
.day-receipt h2{font-size:18px!important;margin:5px 0 9px}
.receipt-result{padding:7px}
.receipt-result strong{font-size:29px}
.next-day-note{margin:8px 0;padding:10px 12px}
.next-day-note p{margin:4px 0 8px!important}
.receipt-line{margin:5px 0!important}}
.lab-readiness{background:#f2e3c7;border:1px dashed #bca478;border-radius:12px;padding:14px;margin:15px 0;color:#6e593c}
.lab-readiness>b{font-size:13px}
.lab-readiness p{font-size:12px;line-height:1.8;margin:8px 0}
.lab-readiness button{font-size:12px}
.recipe-note button{margin-top:10px}
.signature-fold{margin:14px 0;padding:13px;border:1px solid #cfbf9f;background:#fff9eb;border-radius:12px}
.signature-fold>summary{font-size:13px;font-weight:700;cursor:pointer;color:#6b7956}
.signature-fold[open]>summary{padding-bottom:14px;border-bottom:1px dashed #d3c5a9;margin-bottom:12px}
.signature-journey{margin:16px 0 20px;background:#eee5cd;border-radius:14px;padding:15px;color:#6b7956}
.signature-journey>b{font-size:13px}
.signature-journey>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0}
.signature-journey span{font-size:10px;text-align:center;color:#958a70}
.signature-journey span.earned{color:#557454}
.signature-journey i{display:block;font-style:normal;font-size:23px}
.signature-journey strong{display:block;font-size:12px;margin:5px 0}
.signature-journey p{font-size:11px;line-height:1.8}
.taster-list small{line-height:1.7}
.gameplay .lab-tabs{gap:4px;flex-wrap:wrap}
.gameplay .lab-tabs button{font-size:11px;padding:8px 9px}
.gameplay #milestone-toast{top:17%;max-width:290px;padding:12px 20px;pointer-events:none}
.gameplay #milestone-toast small{display:block;line-height:1.6;font-size:12px}
.gameplay #milestone-toast button{pointer-events:auto;display:block;margin:9px auto 0;background:#e4e9d5;border:1px solid #93a68d;color:#3e5949}
.gameplay.drawer-open #milestone-toast{left:calc((100% - 430px)/2)}
@media(max-width:760px){
.gameplay #milestone-toast,.gameplay.drawer-open #milestone-toast{left:50%;top:12%;max-width:245px;min-width:190px;padding:8px 12px}
.gameplay #milestone-toast>span{font-size:24px}
.gameplay #milestone-toast>b{font-size:15px}}
@media(prefers-reduced-motion:reduce){
.gameplay #milestone-toast{animation:none}}
.gameplay #milestone-toast{z-index:9}
.gameplay.photography #milestone-toast{display:none}
.gameplay{--green:#397b69;--ink:#454b49;--muted:#6c7470}
.gameplay .actor-label.speaking{background:#e3f2f0;border-color:#74a8a0;color:#315b56}
.gameplay .people-profile .portrait-stage{background:radial-gradient(ellipse at 50% 45%,#fff2d7 0%,#e2ece2 65%,#c0dbd0 100%)}
.staff-dispatch{margin:14px 0 22px;padding:15px;border:2px solid #7caa9c;background:#edf6ef;border-radius:18px}
.staff-dispatch h3{font-size:16px;margin:0 0 7px;color:#315d50}
.staff-dispatch p{font-size:12px;margin:5px 0 12px}
.dispatch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.dispatch-buttons button{padding:10px 5px;font-size:12px;border:1px solid #8ca99a;border-radius:10px;background:#fffdf4}
.dispatch-buttons button[aria-pressed=true]{background:#3d7c69;color:white}
.staff-dispatch small{display:block;font-size:11px;line-height:1.7;margin:9px 0;color:#52665b}
.staff-dispatch label{display:flex;justify-content:space-between;align-items:center;font-size:12px}
.staff-dispatch select{max-width:60%}
.challenge-card{margin:16px 0;padding:15px;border:1px solid #d1b56c;background:#fff1cf;border-radius:15px}
.challenge-card h3{font-size:15px;margin:0}
.challenge-card h3 small{font-size:10px;font-weight:normal}
.challenge-card p{font-size:12px;line-height:1.7}
.challenge-card>small{display:block;font-size:10px;color:#776139;line-height:1.7}
.challenge-options{display:grid;gap:7px;margin:10px 0}
.challenge-options button{text-align:left;padding:10px;background:#fffaf0;border:1px solid #d7c18d;border-radius:10px}
.challenge-options button[aria-pressed=true]{border:2px solid #7c9d75;background:#e5efdd}
.challenge-options b,.challenge-options small{display:block;font-size:12px}
.challenge-options small{font-size:10px;line-height:1.8;margin-top:3px}
.challenge-result{padding:12px;background:#e8f1db;border-radius:12px}
.gameplay #new-player-guide{position:absolute;left:22px;bottom:168px;width:310px;z-index:10;padding:17px 18px;background:#fffaf0;border:2px solid #70a391;border-radius:22px 22px 22px 5px;box-shadow:0 5px 0 #668a7338,0 12px 28px #36493d18;color:#38584d}
.gameplay #new-player-guide[hidden]{display:none}
.guide-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#577866}
.guide-top button{padding:3px 8px;font-size:10px;background:none;border:0;color:#68746b}
#new-player-guide h3{font-size:18px;margin:9px 0}
#new-player-guide p{font-size:12px;line-height:1.85;margin:8px 0 12px}
#new-player-guide>small{font-size:10px;color:#6c7569;display:block;margin-top:9px}
.guide-actions{display:flex;gap:6px}
.guide-actions button{font-size:12px;padding:11px 12px}
.guide-target{outline:3px solid #e8ad41!important;outline-offset:5px;box-shadow:0 0 0 8px #ffe1a03b!important}
.gameplay.guiding #milestone-toast{display:none}
@media(max-width:760px){
.gameplay #new-player-guide{left:10px;right:10px;bottom:129px;width:auto;padding:12px 14px;border-radius:16px;max-height:35dvh;overflow:auto}
.gameplay #new-player-guide h3{font-size:16px;margin:6px 0}
.gameplay #new-player-guide p{font-size:11px;margin:5px 0 8px;line-height:1.7}
.gameplay.guiding.drawer-open #new-player-guide{max-height:220px}
.gameplay.guiding[data-guide=command] .people-profile{display:none}
.gameplay.guiding[data-guide=command] .team-eyebrow,.gameplay.guiding[data-guide=command] #panel>h2,.gameplay.guiding[data-guide=command] #panel>.intro,.gameplay.guiding[data-guide=command] .people-auto,.gameplay.guiding[data-guide=command] .team-capacity{display:none}
.gameplay.guiding[data-guide=command] .staff-dispatch{margin:8px 0;padding:11px}
.gameplay.guiding[data-guide=command] .team-tabs{margin-top:0}}
@media(prefers-reduced-motion:reduce){
.guide-target{animation:none}}

@media(max-width:760px){
.gameplay.guiding[data-guide=command] .people-controls{display:none}}
.gameplay .team-tabs{margin-top:0}
.gameplay .compact-team{gap:6px;margin:8px 0;align-items:center}
.gameplay .compact-team button{display:flex;align-items:center;gap:5px;padding:3px 7px;min-width:65px;width:auto;flex-shrink:0;border-radius:12px}
.gameplay .compact-team .team-portrait{width:28px;height:28px;min-height:0;margin:0;border-radius:50%}
.gameplay .compact-team span{font-size:11px;margin:0}
.gameplay .compact-team button{min-width:82px;white-space:nowrap}
.gameplay .compact-team span{white-space:nowrap}
.gameplay dialog.books-modal{width:min(900px,94vw);max-width:94vw;max-height:88dvh;padding:30px;background:radial-gradient(circle at 8% 7%,#e7efdd 0,transparent 35%),#fff7e5;border-radius:24px;color:#4f5c50}
.notebook-shelf h2{font-size:25px!important;line-height:1.6;margin:14px 0}
.shelf-kicker{font-size:10px;letter-spacing:2px;color:#8a9a75}
.notebook-shelf>p{font-size:13px;line-height:1.8}
.book-shelf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px;padding:18px 5px 24px;border-bottom:8px solid #cba97e;box-shadow:0 5px 0 #ecd9b9;margin-bottom:25px}
.book-shelf-grid:empty{display:none}
.gameplay .notebook-cover,.gameplay .notebook-cover:hover:not(:disabled){position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:290px;padding:28px 18px 18px 27px;border-radius:5px 18px 18px 5px;border:1px solid #435a4c66;border-left:12px solid #4c685c;background:linear-gradient(90deg,#0001,transparent 12%),repeating-linear-gradient(0deg,transparent 0 22px,#ffffff16 23px 24px),repeating-linear-gradient(90deg,transparent 0 22px,#ffffff16 23px 24px),var(--book);color:#253e35;box-shadow:5px 5px 0 #d8c8a9,7px 8px 13px #564c3c20;text-align:center;transition:transform .15s}
.gameplay .notebook-cover:hover{transform:translateY(-4px) rotate(-1deg)}
.notebook-cover b{font-size:21px;line-height:1.6;overflow-wrap:anywhere;letter-spacing:1px;padding:10px;background:#fff5df;color:#485b50;border-radius:8px;max-width:100%;box-shadow:0 2px 0 #0001}
.notebook-cover .book-flower{font-size:36px;color:#fff0b8}
.notebook-cover span,.notebook-cover small{font-size:11px;line-height:1.7}
.notebook-cover strong{margin-top:auto;font-size:12px;border-bottom:1px dashed #fff8;padding-bottom:5px}
.notebook-cover .book-ribbon{position:absolute;right:12px;top:0;padding:4px 8px 8px;background:#fff3ce;color:#61543b;font-size:9px;clip-path:polygon(0 0,100% 0,100% 100%,50% 85%,0 100%)}
.gameplay .cover-rose{border-left-color:#8c5d6b}
.gameplay .cover-lilac{border-left-color:#645c85}
.gameplay .cover-honey{border-left-color:#93743d}
.new-book-form{background:#f4ead6;border:1px dashed #bea983;border-radius:17px;padding:19px;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.new-book-form h3,.new-book-form p,.new-book-form button{grid-column:1/-1}
.new-book-form h3{font-size:17px;margin:0 0 4px}
.new-book-form label{font-size:12px;grid-column:1}
.new-book-form input,.new-book-form select{grid-column:2;min-width:0;width:100%;background:#fffdf6;border:1px solid #bdc8b6;border-radius:9px;padding:9px;color:#465448}
.new-book-form p{font-size:11px;line-height:1.8;margin:4px 0}
.shelf-tools{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 12px}
.shelf-tools button{font-size:12px;padding:9px 12px;border:1px solid #b2bfa6;border-radius:10px}
.shelf-footnote{display:block;font-size:11px;line-height:1.8;color:#7b7966}
.empty-book{padding:14px;border:1px dashed #b4c5a4;border-radius:12px;background:#f0f3e5}
.gameplay .little-diary .diary-heading{position:static;display:flex;align-items:center;gap:10px;height:auto;padding:10px 0;margin:0;pointer-events:auto}
.diary-heading>span{font-size:36px;color:var(--book)}
.diary-heading small{font-size:8px;letter-spacing:1px;color:#81917d}
.gameplay .diary-heading h2{font-size:21px!important;margin:3px 0;overflow-wrap:anywhere;color:#4c6658!important}
.diary-tools{display:flex;gap:8px;margin:10px 0 15px}
.diary-tools button{font-size:12px;border:1px solid #9fb59f;background:#e9f0df;padding:9px 14px;border-radius:10px}
.diary-settings{font-size:12px;padding:10px;border:1px dashed #c2b38f;border-radius:12px;margin:12px 0}
.diary-settings label{display:block;margin:10px 0}
.diary-settings input{width:100%;padding:8px;border:1px solid #c2b38f;background:#fffcf5;border-radius:8px;margin:6px 0}
.diary-settings small{display:block;margin:7px 0}
.cover-swatches{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0 0}
.cover-swatches button{border:2px solid transparent;border-top:8px solid var(--swatch);border-radius:9px;font-size:10px;padding:7px 4px;background:#fffaf0}
.cover-swatches button[aria-pressed=true]{outline:2px solid #497462;outline-offset:1px}
.diary-day-select{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin:15px 0}
.diary-day-select select{max-width:65%;padding:8px;border-radius:8px;border:1px solid #c3b292;background:#fffcf2}
.diary-paper{position:relative;background:repeating-linear-gradient(0deg,transparent 0 27px,#b7bfa22e 28px 29px),#fffdf2;border:1px solid #d6c6a5;border-left:4px double #d6c6a5;padding:20px 16px;border-radius:4px 15px 15px 4px;box-shadow:3px 4px 0 #ddd1b6}
.diary-date{display:flex;justify-content:space-between;align-items:center;border-bottom:2px dashed var(--book);padding-bottom:12px;gap:9px}
.diary-date b{font-size:20px;color:var(--book);letter-spacing:2px}
.diary-date span{font-size:10px;color:#81795f}
.diary-receipt{position:relative;margin:20px 0;padding:17px 12px 12px;background:#f7ecd2;transform:rotate(-1deg);border:1px solid #dcc99e;border-radius:2px 3px 9px 3px}
.diary-receipt:before{content:'';position:absolute;width:64px;height:18px;left:calc(50% - 32px);top:-9px;background:#d5afbb9e;transform:rotate(4deg)}
.diary-receipt>span{display:block;font-size:10px;color:#9b7c62;margin-bottom:7px}
.diary-receipt strong{display:block;font-size:13px}
.diary-receipt p,.diary-receipt small{font-size:11px;line-height:1.9}
.diary-events section{display:flex;gap:9px;align-items:flex-start;margin:13px 0}
.diary-events section>span{color:var(--book);font-size:23px;flex:0 0 25px}
.diary-events p,.diary-opening,.diary-blank{font-size:12px;line-height:2;margin:4px 0}
.diary-stamp{background:#edf2dd;border:1px dashed #a2b58a;border-radius:12px;padding:8px}
.diary-note-label{display:block;font-size:12px;margin:20px 0 7px}
.diary-note-label small{display:block;font-size:10px;color:#93856b;margin-top:5px}
.diary-paper textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:95px;font:12px/1.9 inherit;background:#fff3cb;border:1px solid #dcc183;border-radius:3px 3px 12px 3px;padding:10px;color:#514b3e}
.diary-save-note{font-size:10px;line-height:1.8;margin:15px 0;color:#7b826d}
@media(max-width:760px){
.gameplay dialog.books-modal{padding:23px 17px;max-height:90dvh}
.notebook-shelf h2{font-size:21px!important;padding-right:18px}
.book-shelf-grid{grid-template-columns:1fr;gap:20px;padding-left:15px;padding-right:15px}
.gameplay .notebook-cover{min-height:260px}
.new-book-form{grid-template-columns:1fr}
.new-book-form label,.new-book-form input,.new-book-form select{grid-column:1}
.gameplay .journal-tabs{gap:3px}
.gameplay .journal-tabs button{font-size:10px;padding:8px 5px}
.diary-tools button{flex:1}}
@media(prefers-reduced-motion:reduce){
.gameplay .notebook-cover{transition:none}}
.gameplay .notebook-cover:focus-visible{outline:3px solid #315b4b;outline-offset:6px}
.gameplay .notebook-cover:hover:not(:disabled){transform:translateY(-4px) rotate(-1deg)}
.scrapbook{margin:20px 0}
.scrap-hint{padding:12px;background:#eef1df;border:1px dashed #c6c9aa;border-radius:12px;font-size:11px;line-height:1.9;color:#6a7b60}
.diary-photo-strip{display:grid;gap:17px;margin:20px 2px}
.diary-polaroid{position:relative;margin:0;padding:8px 8px 14px;background:#fffef7;box-shadow:1px 3px 8px #66583a2b;transform:rotate(-1deg);border:1px solid #dfd6bd}
.diary-polaroid:before{content:'';position:absolute;width:75px;height:21px;left:calc(50% - 37px);top:-9px;background:#c4d5aeaa;transform:rotate(4deg)}
.diary-polaroid img{display:block;width:100%;height:auto;min-height:80px;border:1px solid #ddd5c4}
.diary-polaroid figcaption{font-size:12px;text-align:center;color:#6c6b57;line-height:1.8;padding:10px 3px 0}
.friend-card{position:relative;padding:18px 17px;margin:20px 0;border:1px solid #d6bba8;border-radius:3px 14px 3px 12px;background:repeating-linear-gradient(0deg,transparent 0 25px,#b7bfa224 26px 27px),#fce9e9;box-shadow:2px 3px 0 #d8cbb4;transform:rotate(1deg)}
.friend-card>svg{width:65px;height:65px}
.friend-card h3{font-size:16px;margin:4px 0;color:#6b6552}
.friend-card p{font-size:12px;line-height:2;margin:9px 0;color:#5f6558}
.gameplay .friend-card>footer{position:static;display:block;height:auto;width:auto;background:transparent;padding:8px 0 0;border-top:1px dashed #bea992;font-size:11px;text-align:right;color:#6c775f}
.friend-bo{background-color:#edf1dc}
.friend-yoyo{background-color:#fff1c9}
.friend-an{background-color:#e8edf6}
.card-postmark{position:absolute;right:12px;top:13px;padding:6px 8px;border:2px double #a99c8180;border-radius:50%;transform:rotate(9deg);font-size:9px;color:#907d66}
.tea-stickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;margin:22px 0}
.tea-sticker{color:var(--tea);padding:8px 5px 10px;border:3px solid #fffcf1;outline:1px dashed #baa887;background:#f4edda;border-radius:45% 45% 12px 12px;box-shadow:1px 3px 0 #c5ba9e;transform:rotate(-3deg);text-align:center}
.tea-sticker:nth-child(even){transform:rotate(3deg)}
.tea-sticker svg{width:70px;height:70px}
.tea-sticker b,.tea-sticker small,.tea-sticker span{display:block;color:#50634e;line-height:1.6}
.tea-sticker b{font-size:13px}
.tea-sticker small{font-size:10px;margin:3px 0}
.tea-sticker span{font-size:9px;color:#8a795c;border-top:1px dashed #c8b993;padding-top:4px}
.diary-events>summary{cursor:pointer;font-size:12px;line-height:1.8;padding:9px 0;border-block:1px dashed #cab895;color:#6b785e}
.diary-events:not([open]){margin:18px 0}
.diary-day-select{gap:7px}
.diary-day-select>button{min-width:32px;min-height:32px;padding:4px;border:1px solid #c5b99c;background:#f7ecd6}
.diary-day-select select{min-width:0;max-width:49%}
.scrap-receipt{font-size:11px!important;background:#f2e6c9;border-radius:9px;padding:9px;margin:10px 0!important;color:#4e6141!important}
.gameplay .little-diary .diary-heading{padding:2px 0}
.little-diary .diary-day-select{margin:8px 0 12px}
.little-diary .diary-photo-strip{margin-top:17px}
.little-diary .diary-tools{margin-top:20px}
.drink-family-tabs{display:flex;gap:8px;margin:16px 0}
.drink-family-tabs button{flex:1;display:grid;justify-items:center;gap:5px;padding:12px 5px;background:#f7f0de;border:2px solid transparent;border-radius:15px;color:#5b6955}
.drink-family-tabs button span{font-size:25px}
.drink-family-tabs button small{font-size:11px;opacity:.75}
.drink-family-tabs .family-coffee{background:#eadace;color:#785743}
.drink-family-tabs .family-milk{background:#f9eac5;color:#89704b}
.drink-family-tabs button[aria-pressed=true]{border-color:currentColor;box-shadow:0 3px 0 #544c3a15}
.coffee-note{padding:12px 15px;border-radius:12px;background:#f5eddc;font-size:12px;line-height:1.8;color:#7a6751}
.family-coffee.lab-stage{background:linear-gradient(130deg,#e5cdb8,#f4e5cf)}
.family-milk.lab-stage{background:linear-gradient(130deg,#f1dfb1,#fff8e7)}
.sample-bubbles{position:absolute;z-index:2;left:15%;top:35%;color:#fff7d2;font-size:28px;letter-spacing:9px;pointer-events:none}
.signature-preview .brand-cup{background:linear-gradient(180deg,var(--drink-top) 0 25%,var(--drink-middle) 50% 68%,var(--drink-bottom) 100%)}
.signature-preview .brand-lid{background:var(--drink-top);border:4px solid #fff5df}
.gameplay .actor-label.delighted{background:#fff0e3;border-color:#d6a0a0;color:#855d60;box-shadow:0 3px 10px #90595720}
.guide-chapters{display:flex;gap:5px;margin:12px 0;color:#8a867b}
.guide-chapters>span{flex:1;text-align:center;font-size:12px;border-top:3px solid #dfdccb;padding-top:5px}
.guide-chapters small{display:block;font-size:9px;margin-top:2px;white-space:nowrap}
.guide-chapters .current{color:#326c58;border-color:#47876b;font-weight:bold}
.guide-chapters .done{color:#6a8b67;border-color:#a6c19a}
.guide-flow{display:flex;list-style:none;margin:10px 0;padding:0;gap:5px;font-size:10px}
.guide-flow li{flex:1;text-align:center;background:#eee9dc;border-radius:9px;padding:8px 2px}
.guide-flow li[aria-current]{background:#f7deb0;outline:1px solid #bc9148;color:#65491b;font-weight:bold}
.guide-flow .done{background:#deebdc;color:#376345}
#new-player-guide .guide-note{font-size:11px;line-height:1.65;color:#657269;margin:9px 0 0}
.guide-next{background:#fff0cd;border:1px dashed #c2a25b;border-radius:12px;padding:10px;margin:10px 0;font-size:12px}
.guide-next b,.guide-next span,.guide-next small{display:block;line-height:1.7}
.guide-next small{font-size:10px;color:#796846}
.guide-recruit{background:none;border:0;text-decoration:underline;font-size:11px;padding:10px 0;color:#486d5b}
.guide-team-intro{font-size:13px;line-height:1.8}
.quick-help details{border-bottom:1px dashed #caba98;padding:12px 0}
.quick-help summary{font-weight:bold;cursor:pointer}
.quick-help p{font-size:13px;line-height:1.8}
.gameplay #new-player-guide{max-height:calc(100dvh - 260px);overflow:auto;overscroll-behavior:contain}
.gameplay.guiding[data-guide=command] .staff-dispatch .guide-target{outline-offset:2px}
@media(max-width:760px){
.gameplay #new-player-guide{max-height:38dvh}
.guide-chapters{margin:7px 0}
.guide-chapters small{font-size:8px}
#new-player-guide .guide-note{font-size:10px}
.gameplay.guiding.drawer-open[data-guide=command] #new-player-guide{max-height:34dvh}
.gameplay.guiding[data-guide=command] .guide-team-intro{display:none}
.gameplay.guiding[data-guide=command] .staff-dispatch h3{font-size:13px}
.gameplay.guiding[data-guide=command] .staff-dispatch{margin:5px 0}
.gameplay.guiding[data-guide=command] .staff-dispatch small{margin:5px 0}}
@media(min-width:761px){
.gameplay.guiding[data-guide=watch] #new-player-guide{left:auto;right:18px;width:280px}}
@media(max-width:760px) and (max-height:650px){
.gameplay.guiding.drawer-open[data-guide=command] #new-player-guide{max-height:170px}
.gameplay.guiding[data-guide=command] .guide-chapters,.gameplay.guiding[data-guide=command] .guide-note{display:none}}
.lab-blocked{font-size:12px;color:#805d41;background:#f8ecd8;border-radius:8px;padding:9px;line-height:1.7}

@media(max-width:760px){
.gameplay.guiding[data-guide=watch] #new-player-guide{max-height:230px;padding:12px 14px}
.gameplay.guiding[data-guide=watch] .guide-chapters{display:none}
.gameplay.guiding[data-guide=watch] #new-player-guide h3{margin:7px 0}
.gameplay.guiding[data-guide=watch] .guide-flow{margin:6px 0}
.gameplay.guiding[data-guide=watch] #new-player-guide .guide-note{font-size:9px;line-height:1.45}}
.gameplay #new-player-guide{display:flex;flex-direction:column;overflow:hidden}
.guide-top{flex:none;gap:8px}
.guide-body{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 3px}
.guide-footer{flex:none;padding-top:9px;background:#fffaf0;border-top:1px solid #dfdccb;margin-top:9px}
.guide-footer .guide-actions button{width:100%;min-height:44px}
.guide-clock{display:block;font-size:10px;line-height:1.5;color:#6c7569;margin-top:7px}
@media(max-width:760px){
.gameplay #new-player-guide{max-height:42dvh}
.guide-footer{padding-top:7px;margin-top:7px}
.guide-clock{font-size:9px}
.gameplay.guiding.drawer-open[data-guide=command] #new-player-guide{max-height:30dvh}}
@media(max-height:650px){
#new-player-guide .guide-chapters{display:none}
.gameplay #new-player-guide{max-height:calc(100dvh - 210px)}}
@media(max-width:760px) and (max-height:650px){
.gameplay #new-player-guide{max-height:42dvh}
.gameplay.guiding.drawer-open[data-guide=command] #new-player-guide{max-height:145px}}
.opening-chapter{position:relative;background:linear-gradient(135deg,#fff7df,#f8ecdc);border:1px solid #d7bd96;border-radius:7px 19px 10px 17px;padding:20px;margin:6px 0 22px;box-shadow:0 5px 0 #bf9c7520;color:#554d3d}
.opening-chapter-head{display:flex;justify-content:space-between;color:#8a654a;gap:8px;font-weight:bold}
.opening-chapter-head small{white-space:nowrap;font-size:11px}
.opening-stamps{display:flex;gap:5px;margin:16px 0}
.opening-stamps>span{flex:1;text-align:center;min-width:0;color:#928779}
.opening-stamps b{display:grid;place-items:center;margin:0 auto 5px;width:31px;height:31px;border:1px dashed #c9b699;border-radius:50%;background:#ede4d3}
.opening-stamps small{font-size:10px;line-height:1.4;display:block}
.opening-stamps .earned{color:#4f795d}
.opening-stamps .earned b{background:#e0ecd7;border:2px solid #82a078;transform:rotate(-7deg)}
.opening-stamps .now b{background:#f5d89c;border:2px solid #ac8240}
.gameplay .opening-chapter h3{font-size:20px;margin:14px 0 10px;line-height:1.5}
.gameplay .opening-chapter p{font-size:13px;line-height:1.9;margin:9px 0}
.opening-detail{padding:11px;border-radius:10px;background:#fffaf1;border-left:3px solid #d4a477}
.opening-chapter>.primary{width:100%;min-height:46px;margin:10px 0}
.opening-foot{display:block;color:#7f7969;font-size:10px;line-height:1.7;margin-top:9px}
.opening-blocked{color:#8f583e}
.opening-more>summary{padding:15px 6px;color:#65765e;cursor:pointer;font-size:12px;border-block:1px dashed #c8b899}
.opening-more[open]>summary{margin-bottom:16px}
.opening-candidates{display:grid;gap:12px;margin-top:15px}
.opening-candidates article{display:grid;grid-template-columns:72px 1fr;gap:8px 12px;background:#fcfaf1;border:1px solid #d5cbb5;border-radius:14px;padding:12px}
.opening-candidates img{width:72px;height:90px;object-fit:contain;background:#ece5d8;border-radius:30px 30px 9px 9px}
.opening-candidates h4{margin:0;font-size:16px}
.opening-candidates h4 small{display:block;font-weight:normal;font-size:11px;margin-top:4px}
.gameplay .opening-candidates p{font-size:11px;line-height:1.7}
.opening-candidates small{font-size:10px;line-height:1.7}
.opening-candidates button,.opening-candidates article>small{grid-column:1/-1}
.opening-candidates button{min-height:44px;background:#dfebd8;border-color:#9cb391}
.opening-name{display:grid;gap:8px;font-size:12px;margin:14px 0}
.opening-name input{width:100%;min-height:44px;box-sizing:border-box;padding:10px;border:1px solid #c4b391;background:#fffdf7;border-radius:9px;font:inherit}
.opening-memory{background:#e8efdf;border:2px dashed #9cae89;border-radius:17px;padding:19px;margin-bottom:22px;color:#506349}
.opening-memory p{font-size:13px;line-height:1.9}
.opening-memory button{min-height:44px}
@media(max-width:760px){
.opening-chapter{padding:14px}
.gameplay .opening-chapter h3{font-size:18px}
.opening-stamps small{font-size:9px}}
.opening-cup{display:flex;justify-content:center;padding:20px 0 12px}
.opening-cup .sample-cup{width:58px;height:75px;transform:rotate(-7deg)}
.opening-cup .sample-face{top:29px;font-size:15px}
.opening-memory h3{text-align:center;font-size:21px}
.opening-stamps small{font-size:9px}
.opening-stamps{gap:3px}
.route-card,.flavor-card{margin:16px 0;padding:17px;border:1px solid #c2d4b9;border-radius:18px;background:linear-gradient(135deg,#f4f8e9,#e5efdc);color:#344e3d}
.route-score{display:flex;align-items:center;gap:24px;margin:10px 0}
.route-score b{font-size:38px;line-height:1.1}
.route-score small{display:block;font-size:12px;font-weight:500;margin-top:5px}
.route-score .route-better{color:#a45e3c}
.route-score>span{font-size:26px}
.spending-note{display:grid;gap:5px;border-left:4px solid #bc9a53;background:#fff6df;padding:12px 14px;margin:12px 0;border-radius:4px 12px 12px 4px}
.spending-note span,.spending-note small{font-size:12px;line-height:1.65}
.spending-note strong{color:#4b7053}
.spending-note.tight{border-color:#bb6c59;background:#ffede1}
.spending-note.tight strong{color:#a34939}
.route-grid button{position:relative}
.route-grid button.route-tile:not(.occupied){background:#deecd7;color:#315d44;box-shadow:inset 0 0 0 1px #9eb995}
.route-grid button small{position:absolute;right:2px;bottom:0;font-size:13px;color:#47654c}
.route-grid button.picked{outline:3px solid #b77a49;outline-offset:1px}
.flavor-card{background:linear-gradient(140deg,#fff5e9,#f4e9ec);border-color:#e1c7b7}
.flavor-card p{margin:8px 0}
.flavor-economics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0}
.flavor-economics span{font-size:11px}
.flavor-economics b{display:block;font-size:22px;margin-top:4px;color:#8e5b3c}
.flavor-faces{display:flex;gap:8px;flex-wrap:wrap}
.flavor-faces>span{background:#fff9f0;border:1px dashed #d5bdaa;border-radius:12px;padding:8px 10px}
.flavor-faces small{display:block;font-size:11px;margin-top:4px}
.investment-options p{padding:10px 0;border-bottom:1px solid #dfd8c8}
.investment-options button{margin-top:8px}
.gameplay .market-board header{position:static;display:block;height:auto;padding:0;pointer-events:auto}
.gameplay .market-board h2{font-size:23px;line-height:1.45;margin:10px 0 18px}
.market-current{display:flex;align-items:center;gap:12px;background:#476c62;color:#fff3d8;border:6px solid #d6b485;border-radius:6px 6px 18px 8px;padding:15px;box-shadow:0 4px 0 #ab8a62}
.market-current>span{font-size:35px}
.market-current b,.market-current small{display:block}
.market-current small{margin-top:5px;font-size:11px;color:#e7dfc6}
.market-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 10px}
.gameplay .market-plan{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border:2px solid #d6c5a6;border-radius:17px;background:#eef0d9;gap:5px;min-width:0;box-shadow:0 3px 0 #d5c5a3}
.gameplay .market-plan.sky{background:#e0ecee}
.gameplay .market-plan.rose{background:#f6e0de}
.gameplay .market-plan[aria-pressed=true]{border-color:#547d68;outline:2px solid #9cb698;outline-offset:2px}
.market-plan b{font-size:13px}
.market-plan strong{font-size:12px;color:#786044}
.market-plan small{font-size:10px;line-height:1.7}
.plan-art{position:relative;display:grid;place-items:center;width:44px;height:50px;background:#fff6d9;border:2px solid #b3946f;border-radius:5px 5px 13px 13px;color:#668b77;font-size:26px;transform:rotate(-6deg);margin:6px 0 10px}
.plan-art:before{content:'';position:absolute;width:5px;height:21px;background:#d19486;right:8px;top:-17px;transform:rotate(15deg)}
.plan-art i{position:absolute;bottom:1px;font:8px serif;color:#9a8062}
.market-tradeoff{font-size:12px;line-height:1.8}
.market-assistant{background:#edf1e0;border:1px dashed #b3be9e;border-radius:14px;padding:13px;margin:18px 0}
.market-assistant b{font-size:13px}
.market-assistant p{font-size:12px;line-height:1.8}
.market-assistant small{font-size:10px;color:#7d8066}
.market-results{display:flex;justify-content:space-around;margin-top:20px;gap:8px;font-size:11px}
.market-results b{display:block;font-size:23px;color:#4b7765}
.menu-card{display:flex;align-items:center;gap:12px;border-bottom:1px dashed #d2c6aa;padding:15px 0}
.menu-card.off-menu{opacity:.6}
.menu-cup{flex:0 0 32px;height:46px;border:2px solid #bb9f7a;border-radius:3px 3px 10px 10px;background:linear-gradient(#fff9eb 15%,var(--drink-color) 16% 87%,#fff5e0 88%);position:relative;transform:rotate(-4deg)}
.menu-cup:after{content:'';position:absolute;width:4px;height:18px;background:#819783;right:6px;top:-16px;transform:rotate(14deg)}
.menu-copy{min-width:0;flex:1}
.menu-copy>b{font-size:14px;overflow-wrap:anywhere}
.menu-copy small{display:block;font-size:10px;margin-top:5px;line-height:1.5}
.menu-price{display:flex;align-items:center;gap:7px;margin-top:10px}
.menu-price>button:last-child{margin-left:auto}
.menu-price strong{min-width:42px;text-align:center}
.market-entry{width:100%;padding:15px;margin:18px 0;background:#e5edde;border:1px solid #abbc9c;border-radius:12px;font-weight:700;color:#4f7561}
.market-receipt{margin:18px 0;background:#e9efdd;padding:14px;border-radius:14px}
.market-receipt p{font-size:12px;line-height:1.7}
.market-receipt small{display:block;font-size:10px;color:#7c7b65;margin-bottom:10px}
@media(max-width:760px){
.market-plans{gap:6px}
.gameplay .market-plan{padding:10px 4px}
.market-plan b{font-size:12px}}

/* Keep the first-site map readable while the ordinary tutorial waits behind it. */
@media(max-width:760px){
.gameplay.drawer-open[data-panel=district] #new-player-guide{display:none}}
.district-map{height:clamp(160px,26vh,240px)}
.district-map svg{height:100%}
.district-confirm{margin:5px 0}
.district-book .district-confirm{padding:10px!important}

/* Shared component skins and historical defaults. The active diorama viewport,
   HUD and drawer geometry are owned by playfield.css. */
body.gameplay {
  --ink:#493e39; --green:#497759; --muted:#756d64; --line:#dfd4c7;
  --paper:#fffcf5; --rim:#baa58c; --coral:#d98377; --nav-height:100px;
  --panel-tint:#e5eee5; --panel-accent:#668777; --panel-edge:#a5b9a7;
  --safe-bottom:env(safe-area-inset-bottom,0px); --safe-top:env(safe-area-inset-top,0px);
  margin:0; overflow:hidden; background:#e8ede5;
  font-family:ui-rounded,'Microsoft JhengHei','Noto Sans TC',sans-serif;
  color:var(--ink);
}
.gameplay #game{display:block;position:relative;width:100%;max-width:none;height:100dvh;min-height:0;overflow:clip}
.gameplay button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.gameplay button:focus-visible{outline:3px solid #437b64;outline-offset:3px}
.gameplay button:active:not(:disabled){filter:brightness(.96)}
.gameplay #game>header{position:absolute;inset:12px 20px auto;height:66px;display:flex;gap:12px;padding:0;background:none;border:0;z-index:6;pointer-events:none}
.gameplay #game>header>*{pointer-events:auto}
.gameplay #game>header::before{content:"";position:absolute;inset:-14px -20px -12px;background:linear-gradient(#f8f0de 65%,#f8f0de00);z-index:-1;pointer-events:none}
.gameplay .brand{display:flex;align-items:center;gap:9px;min-width:0;padding:0;background:none;border:0;box-shadow:none}
.gameplay .brand-icon{display:block;flex:none;width:60px;height:66px;background:none;box-shadow:none}
.gameplay .brand-icon img,.helper-face img,.shelf-mascot img{width:100%;height:100%;object-fit:contain}
.gameplay .brand strong{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit;font-size:25px;font-weight:900;line-height:1.4;letter-spacing:1px}
.gameplay .brand small{font-size:10px;letter-spacing:1px;color:#8d7457}
.gameplay .top-stats{margin-left:auto;display:flex;gap:8px}
.gameplay .top-stats>div{min-width:80px;padding:7px 14px;border:2px solid #d3b58b;border-radius:24px;background:linear-gradient(#fffdf4,#fff0cf);box-shadow:inset 0 2px #fff,0 3px #bca07c38}
.gameplay .top-stats>div:nth-child(2){background:linear-gradient(#fff2f3,#f9d9df);border-color:#d9a0a5}
.gameplay .top-stats>div:nth-child(3){background:#e7f0dd;border-color:#b6c8a3}
.gameplay .top-stats small{display:block;font-size:10px;color:#896d51;letter-spacing:0}
.gameplay .top-stats strong{font-size:21px;font-weight:900;font-variant-numeric:tabular-nums}
.gameplay #game>header .round{display:block;flex:none;width:42px;height:42px;align-self:center;background:#fff6df;border:2px solid #c4a784;box-shadow:0 3px #bca07c38}
.gameplay .scene{position:absolute;inset:0;overflow:hidden;border:0;min-height:0}
.gameplay.drawer-open .scene{right:430px}
.gameplay .scene-heading{display:none}
.gameplay .clock-card{position:absolute;top:94px;right:22px;width:155px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;background:#fff9ecf2;border:2px solid #d5bd97;border-radius:24px;padding:12px 15px;color:#745237;box-shadow:0 4px #a68d6b24;z-index:2}
.gameplay .clock-card b{font-size:24px;font-weight:900;font-variant-numeric:tabular-nums}
.gameplay .clock-card #day{align-self:center;font-size:12px}
.gameplay .clock-card #status,.gameplay .weather-badge{font-size:11px}
.gameplay .timeline{height:5px;width:100%;background:#eadcc0;border-radius:9px}
.gameplay .timeline i{background:#87a979}
.gameplay .scene-tools{position:absolute;top:auto;bottom:190px;left:22px;right:auto;display:flex;gap:5px;z-index:2}
.gameplay .scene-tools button{min-height:36px;padding:6px 10px;border:1px solid #ceb997;border-radius:12px;background:#fff8e9e8;color:#775c43;box-shadow:0 3px #9e876025}
.gameplay .scene-tools small,.gameplay #area,.gameplay #play-hint{display:none}
.gameplay .scene-tag{position:absolute;left:22px;right:auto;bottom:238px;display:block;padding:4px 9px;border:1px solid #c7bd9c;background:#f9f5e5d9;border-radius:20px;font-size:11px;z-index:2}
.gameplay #district-name{min-height:28px;border:0;background:none;color:#486c52;font:inherit;font-weight:700;cursor:pointer}
.gameplay #play-hud{position:absolute;inset:0;pointer-events:none;z-index:3}
.gameplay #play-hud button{pointer-events:auto}
.gameplay #goal-badge{position:absolute;top:96px;left:24px;max-width:340px;min-height:49px;padding:12px 18px;border:2px solid #b6c49b;border-radius:24px;background:linear-gradient(115deg,#f3f6e2,#e0ebce);box-shadow:inset 0 2px #fff9,0 4px #a5b28d44;color:#4e6743;font-size:14px;font-weight:800;text-align:left}
.gameplay #goal-badge::after{content:' ›';font-size:20px}
.gameplay #order-rail{position:absolute;top:165px;left:24px;display:grid;gap:10px;width:165px}
.gameplay #order-rail:empty{display:none}
.gameplay .hanging-order{position:relative;text-align:left;padding:13px;background:#fff5d9;border:2px solid #d8bb89;border-radius:16px;box-shadow:0 3px #a48c6225;color:#695034}
.gameplay .hanging-order b,.gameplay .hanging-order em,.gameplay .hanging-order span{display:block}
.gameplay .hanging-order b{font-size:13px;margin:5px 0}
.gameplay .hanging-order small,.gameplay .hanging-order span,.gameplay .hanging-order em{font-size:10px;line-height:1.6}
.gameplay .hanging-order em{font-style:normal;color:#52775d;margin-top:5px}
.gameplay .hanging-order>i{display:block;height:4px;background:#e7d8ba;margin-top:8px;border-radius:5px;overflow:hidden}
.gameplay .hanging-order>i>i{display:block;height:100%;background:#92b082}
.gameplay .hanging-order.urgent{border-color:#cb775c;background:#fff0df}
.gameplay .hanging-order.urgent>i>i{background:#d47b61}
.gameplay .order-pin{display:none!important}
.gameplay .rail-more{padding:7px;border:0;border-radius:12px;background:#fff5dd;color:#72583c;font-size:11px}
.gameplay .rail-rest{padding:10px;background:#fff8e8d9;border-radius:16px;font-size:12px;line-height:1.6}
.gameplay .rail-rest span,.gameplay .rail-rest small{display:none}
.gameplay #assistant-bubble{position:absolute;left:24px;bottom:130px;width:310px;min-height:79px;display:flex;align-items:center;gap:10px;padding:10px 15px 10px 65px;background:#fff9eb;border:2px solid #d4bd98;border-radius:26px;box-shadow:0 4px #b5a07e36;text-align:left;color:#725339}
.gameplay .helper-face{position:absolute;left:-10px;bottom:-2px;width:78px;height:98px;display:block;font-size:0;background:none}
.gameplay #assistant-bubble b{display:block;font-size:12px;margin-bottom:4px;color:#71935d}
.gameplay #assistant-tip{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.55}
.gameplay #shop-sign{position:absolute;right:26px;bottom:130px;width:198px;min-height:82px;padding:12px;background:linear-gradient(#f39c72,#e57654);border:3px solid #efb391;border-radius:29px;box-shadow:inset 0 0 0 3px #ffbf9570,0 5px #b25f42,0 9px 18px #9b68412a;color:#fffdf2;text-align:center;transform:none}
.gameplay #shop-sign b{display:block;font-size:24px;font-weight:900;letter-spacing:1px;text-shadow:0 2px #bb6542}
.gameplay #sign-state{display:block;font-size:10px;letter-spacing:1px;margin-bottom:3px}
.gameplay #sign-detail{display:block;font-size:10px;margin-top:4px}
.gameplay #shop-sign.is-open{background:linear-gradient(#88ad78,#5f8e63);border-color:#bad0a0;box-shadow:inset 0 0 0 3px #e1edc540,0 5px #4c6c48}
.gameplay #shop-sign.is-open b{font-size:20px;text-shadow:0 2px #51724a}
.gameplay h1,.gameplay h2,.gameplay h3{font-family:inherit}
.gameplay #earnings{position:absolute;right:180px;top:76px}
.gameplay .coin-gain{position:absolute;right:0;color:#a96823;font-weight:900;font-size:22px;white-space:nowrap;animation:coin-rise 2.2s ease-out both}
.gameplay #nav{position:absolute;top:auto;bottom:calc(16px + var(--safe-bottom));left:50%;transform:translateX(-50%);display:flex;gap:8px;width:510px;max-width:calc(100% - 32px);height:var(--nav-height);padding:8px;border:2px solid #e2d1b5;border-radius:29px;background:#fff8e8f2;box-shadow:inset 0 3px #fff,0 5px #bfa98745,0 10px 30px #8a6a4320;z-index:8}
.gameplay #nav button{position:relative;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-width:0;width:auto;gap:2px;padding:3px;background:linear-gradient(#fffdf2,#f0e1c0);border:1px solid #ddc5a1;border-radius:22px;box-shadow:inset 0 2px #fff,0 3px #c4aa8438;color:#684a32;font-weight:900}
.gameplay #nav button b{display:block;width:52px;height:52px;filter:drop-shadow(0 2px 1px #9b775934)}
.gameplay #nav button svg{width:100%;height:100%}
.gameplay #nav button span{font-size:14px;letter-spacing:1px}
.gameplay #nav button small{display:none}
.gameplay #nav button.active{background:linear-gradient(#e8f1dc,#c6dcb5);border:2px solid #8daf77;box-shadow:inset 0 2px #fff,0 3px #9bb385}
.gameplay #game>footer{position:absolute;inset:0;display:block;padding:0;background:none;border:0;min-height:0;pointer-events:none;z-index:6}
.gameplay #message{position:absolute;left:50%;bottom:calc(127px + var(--safe-bottom));transform:translateX(-50%);max-width:400px;margin:0;padding:6px 12px;background:#fff8e4e8;border-radius:20px;font-size:11px;line-height:1.5;text-align:center;color:#6f5b44}
.gameplay #message:empty,.gameplay #message:not(.notice-visible){display:none}
.gameplay #message:before{display:none}
.gameplay .time-tools{position:absolute;right:24px;top:213px;display:flex;gap:5px;pointer-events:auto}
.gameplay .time-tools button{min-height:36px;min-width:36px;padding:5px 10px;border:1px solid #ceb997;border-radius:14px;background:#fff9ebed;box-shadow:0 3px #bda37e38;font-size:12px;font-weight:800}
.gameplay .desk{position:absolute;right:16px;top:90px;bottom:130px;width:394px;min-height:0;padding:18px 22px;background:#fff9ec;border:2px solid #cfb68f;border-radius:27px;box-shadow:0 6px #ab926b38,0 12px 40px #55432d24;z-index:7;overflow:auto;overscroll-behavior:contain;animation:unfold .18s ease-out}
.gameplay .desk[hidden]{display:none}
.gameplay .desk-heading{position:sticky;top:-18px;display:flex;gap:8px;margin:-1px -3px 18px;padding:12px 0;background:#fff9ec;z-index:3;border-bottom:2px dashed #e1cfaf}
.gameplay #drawer-title{font-size:16px;font-weight:900;color:#674a31}
.gameplay #live-badge{margin-left:auto;font-size:10px}
.gameplay #drawer-close{flex:none;width:36px;height:36px;padding:0;border-radius:50%;font-size:24px;border:1px solid #d3b894;background:#f4e5c9}
.gameplay.drawer-open #goal-badge,.gameplay.drawer-open #shop-sign,.gameplay.drawer-open #assistant-bubble,.gameplay.drawer-open .clock-card,.gameplay.drawer-open .time-tools,.gameplay.drawer-open #message{display:none}
.gameplay.drawer-open .scene-tools{bottom:25px}
.gameplay.drawer-open .scene-tag{bottom:72px}
.gameplay.drawer-open #order-rail{display:none}
.gameplay .shop-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}
.gameplay .shop-shortcuts button{display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid #d9c5a5;border-radius:17px;padding:10px 5px;background:#f7edda;font-size:12px;font-weight:800}
.gameplay .shop-shortcuts svg{width:38px;height:38px}
.gameplay .actor-label{font-size:11px;padding:5px 8px;border-radius:12px 12px 12px 3px;background:#fff9ecee;color:#61744c;box-shadow:0 2px #81633b20}
.gameplay #loading{background:#eee5cf}
.gameplay dialog{background:#fff9ec;border:2px solid #c9ac84;border-radius:28px;box-shadow:0 9px 0 #9e805d33,0 24px 70px #604b3940}
.gameplay dialog::backdrop{background:#62574355;backdrop-filter:blur(4px)}
.gameplay dialog.books-modal{width:min(760px,94vw);padding:28px;background:radial-gradient(ellipse at 50% 0,#ecf1d6,transparent 50%),#fff8e8}
.shelf-welcome{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:20px;text-align:left}
.shelf-mascot{display:block;width:100px;height:126px;flex:none;transform:rotate(-6deg)}
.notebook-shelf .shelf-welcome h2{font-size:29px!important;margin:3px 0;letter-spacing:2px}
.shelf-welcome p{font-size:13px;line-height:1.7;margin:6px 0;color:#8a7055}
.shelf-welcome small{font-size:11px;color:#65885c;letter-spacing:2px;font-weight:800}
.new-book-form{background:#f4eedc;border:1px solid #dfccab;border-radius:22px}
.new-book-form input,.new-book-form select{min-height:44px;font-size:16px;background:#fffdf5;border-radius:12px}
.new-book-form button.primary{min-height:48px;background:linear-gradient(#ed9670,#dd7956);border-color:#b76546;color:#fff9e9}
.new-book-form p{font-size:12px;line-height:1.7}
.gameplay #new-player-guide{bottom:130px}
.gameplay.guiding #assistant-bubble{visibility:hidden}
.gameplay.guiding:not([data-guide=open]) #shop-sign{display:none}
.gameplay.guiding[data-guide=open] #shop-sign{bottom:130px}
.gameplay.photography #play-hud,.gameplay.photography .actor-label,.gameplay.photography #game>header,.gameplay.photography #nav,.gameplay.photography #game>footer,.gameplay.photography .clock-card,.gameplay.photography .scene-tag{display:none}
.gameplay.photography .scene{inset:0 310px 0 0}
.gameplay.photography .scene-tools{bottom:20px}
@keyframes unfold{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes coin-rise{0%{opacity:0;transform:translateY(12px) scale(.8)}20%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-38px)}}
@media(max-width:760px){
  body.gameplay{--nav-height:91px;--tray-height:207px}
  .gameplay #game>header{inset:calc(5px + env(safe-area-inset-top,0px)) 10px auto;height:64px;gap:6px}
  .gameplay .brand{flex:1;gap:3px}
  .gameplay .brand-icon{width:45px;height:59px}
  .gameplay .brand strong{font-size:17px;letter-spacing:0;max-width:137px}
  .gameplay .brand small{font-size:8px;letter-spacing:0}
  .gameplay .top-stats{gap:4px;margin-left:0}
  .gameplay .top-stats>div{min-width:0;padding:6px 9px;border-radius:18px}
  .gameplay .top-stats strong,.gameplay .top-stats #rep{font-size:15px}
  .gameplay .top-stats small{font-size:8px}
  .gameplay .top-stats>div:nth-child(3){display:none}
  .gameplay #game>header .round{width:31px;height:31px;font-size:14px}
  .gameplay .scene,.gameplay.drawer-open .scene{inset:calc(108px + var(--safe-top)) 0 calc(var(--tray-height) + var(--safe-bottom))}
  .gameplay #goal-badge{left:12px;right:12px;top:calc(72px + var(--safe-top));width:auto;max-width:none;min-height:35px;padding:7px 13px;border-radius:20px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .gameplay #goal-badge::after{font-size:15px}
  .gameplay .clock-card{top:9px;right:10px;width:auto;min-width:99px;padding:7px 10px;border-radius:17px;gap:3px}
  .gameplay .clock-card b{font-size:19px}
  .gameplay .clock-card #day{font-size:10px}
  .gameplay .weather-badge{font-size:9px}
  .gameplay #status,.gameplay .timeline{display:none}
  .gameplay .time-tools{top:calc(184px + var(--safe-top));right:10px;gap:4px}
  .gameplay .time-tools button{font-size:10px;min-width:32px;min-height:30px;padding:3px 7px}
  .gameplay #pause{max-width:110px}
  .gameplay .scene-tools{top:auto;bottom:9px;left:10px;gap:4px}
  .gameplay .scene-tools button{min-height:30px;padding:4px 9px;font-size:13px}
  .gameplay #photo-open{font-size:11px}
  .gameplay .scene-tag{left:10px;right:auto;bottom:48px;padding:0 6px;font-size:10px}
  .gameplay #order-rail{left:10px;top:calc(117px + var(--safe-top));width:142px;gap:3px}
  .gameplay .hanging-order{padding:7px 10px;border-radius:13px;background:#fff8e7ed}
  .gameplay .hanging-order b{font-size:11px;margin:2px 0}
  .gameplay .hanging-order span{display:none}
  .gameplay .hanging-order em,.gameplay .hanging-order small{font-size:9px;line-height:1.4}
  .gameplay .hanging-order>i{margin-top:4px}
  .gameplay .rail-rest{font-size:10px;padding:8px}
  .gameplay .rail-more{font-size:10px;padding:5px}
  .gameplay #play-hud::after{content:'';position:absolute;inset:auto 0 0;height:calc(var(--tray-height) + var(--safe-bottom));background:linear-gradient(#fff9ec,#f8efd9);border-top:2px solid #e8dcc0;border-radius:30px 30px 0 0;z-index:-1;box-shadow:0 -5px 25px #8068470e}
  .gameplay #assistant-bubble{left:16px;bottom:calc(112px + var(--safe-bottom));width:calc(100% - 158px);min-height:77px;padding:8px 9px 8px 47px;border-radius:23px;background:#fff9ec}
  .gameplay .helper-face{left:-14px;bottom:0;width:64px;height:84px}
  .gameplay #assistant-bubble b{font-size:10px;margin-bottom:3px}
  .gameplay #assistant-tip{font-size:11px;line-height:1.45;-webkit-line-clamp:3}
  .gameplay #shop-sign,.gameplay.guiding[data-guide=open] #shop-sign{right:12px;bottom:calc(118px + var(--safe-bottom));width:124px;min-height:69px;border-radius:24px;padding:10px 7px}
  .gameplay #shop-sign b{font-size:20px;letter-spacing:0}
  .gameplay #sign-state{font-size:8px;letter-spacing:0;margin-bottom:3px}
  .gameplay #sign-detail{display:none}
  .gameplay #shop-sign.is-open b{font-size:17px}
  .gameplay #nav{bottom:calc(10px + var(--safe-bottom));width:calc(100% - 20px);max-width:none;gap:5px;padding:5px;background:none;border:0;box-shadow:none;border-radius:0}
  .gameplay #nav button{border-radius:21px;padding:3px 1px;box-shadow:inset 0 2px #fff,0 4px #b69b7138}
  .gameplay #nav button b{width:45px;height:45px}
  .gameplay #nav button span{font-size:13px;letter-spacing:1px}
  .gameplay #message{bottom:calc(215px + var(--safe-bottom));max-width:calc(100% - 36px);width:max-content;font-size:10px;padding:5px 11px}
  .gameplay #earnings{top:68px;right:100px}
  .gameplay .desk,.gameplay.drawer-open[data-panel=district] .desk{left:8px;right:8px;top:calc(77px + var(--safe-top));bottom:calc(110px + var(--safe-bottom));width:auto;max-height:none;padding:15px 16px;border-radius:25px}
  .gameplay .desk-heading{top:-15px;padding:10px 0}
  .gameplay #drawer-title{font-size:15px}
  .gameplay #panel h2{font-size:21px}
  .gameplay.drawer-open #play-hud::after{height:calc(110px + var(--safe-bottom))}
  .gameplay.drawer-open .scene-tools,.gameplay.drawer-open .scene-tag{display:none}
  .gameplay.drawer-open[data-panel=build] .desk{top:49%;bottom:calc(110px + var(--safe-bottom))}
  .gameplay.drawer-open[data-panel=build] .scene{inset:calc(70px + var(--safe-top)) 0 52%}
  .gameplay .actor-label{font-size:10px;padding:4px 7px;max-width:140px}
  .gameplay .actor-label.speaking{font-size:10px;max-width:140px}
  .gameplay #new-player-guide{left:10px;right:10px;bottom:calc(110px + var(--safe-bottom));width:auto;max-height:29dvh;padding:12px 14px}
  .gameplay.guiding[data-guide=open] #new-player-guide{bottom:calc(200px + var(--safe-bottom))}
  .gameplay.guiding.drawer-open .desk{bottom:calc(330px + var(--safe-bottom))}
  .gameplay.guiding.drawer-open[data-panel=district] .desk{bottom:calc(110px + var(--safe-bottom))}
  .gameplay.guiding.drawer-open #new-player-guide{max-height:205px}
  .gameplay dialog.books-modal{padding:22px 17px;max-height:92dvh;border-radius:28px}
  .shelf-welcome{gap:8px;margin:3px 0 14px}
  .shelf-mascot{width:78px;height:103px}
  .notebook-shelf .shelf-welcome h2{font-size:24px!important;padding:0}
  .shelf-welcome p{font-size:11px;margin:3px 0}
  .shelf-welcome small{font-size:9px;letter-spacing:1px}
  .notebook-shelf .new-book-form{padding:15px}
  .gameplay.photography .scene{inset:0 0 285px}
  .gameplay.photography .scene-tools{display:flex;bottom:12px}
}
@media(max-width:370px){
  .gameplay .brand strong{max-width:110px;font-size:15px}
  .gameplay .brand small{display:none}
  .gameplay .top-stats>div{padding:6px}
  .gameplay #game>header{gap:4px}
  .gameplay #nav button b{width:40px;height:40px}
}
@media(max-height:650px) and (min-width:761px){
  .gameplay{--nav-height:77px}
  .gameplay #nav button b{width:40px;height:40px}
  .gameplay #assistant-bubble,.gameplay #shop-sign{bottom:108px}
  .gameplay .desk{bottom:108px}
}
@media(prefers-reduced-motion:reduce){.gameplay *{animation:none!important;transition:none!important}}

/* v037: physical play spaces. All selectors belong to the two drawer contents.
   Do not style global buttons here: onboarding and the shop HUD own those. */
.gameplay .companion-room,.gameplay .drink-workbench{--paper:#fff6df;--pencil:#645243;color:var(--pencil)}
.gameplay .companion-stage{position:relative;height:250px;isolation:isolate;overflow:hidden;margin:14px -5px 0;background:radial-gradient(ellipse at 50% 64%,#fff5d6 0 42%,transparent 43%),repeating-linear-gradient(90deg,#e3eadb 0 24px,#edf0de 24px 48px);border-radius:45% 45% 10px 10px;border-bottom:10px solid #c49b71}
.companion-stage::after{content:"";position:absolute;bottom:0;left:0;right:0;height:53px;background:repeating-linear-gradient(0deg,#d8b98e 0 2px,#ebd2a8 2px 16px);z-index:-1}
.companion-bunting{position:absolute;left:0;right:0;top:9px;text-align:center;color:#c98475;font-size:20px;letter-spacing:8px}
.companion-quote{position:absolute;z-index:2;left:44%;right:12px;top:38px;margin:0;padding:11px 12px;border:2px solid #d6b58e;border-radius:18px 22px 20px 3px;background:#fffaf0;box-shadow:0 4px 0 #b99d7920;font-size:13px;line-height:1.7;min-height:50px}
.companion-figure{position:absolute;left:-12px;bottom:0;width:210px;height:210px;margin:0}
.companion-figure img{position:relative;z-index:1;width:210px;height:210px;object-fit:contain;filter:drop-shadow(0 8px 3px #72512d20)}
.companion-floor{position:absolute;bottom:6px;left:27px;width:166px;height:29px;border:3px solid #c2a17b;background:#e5c6a2;border-radius:50%;box-shadow:0 5px 0 #bd9870}
.companion-nameplate{position:absolute;right:13px;bottom:18px;z-index:2;padding:10px 14px;transform:rotate(-4deg);background:#fff0cf;border:1px solid #cfad7d;box-shadow:2px 4px 0 #99765425;min-width:100px}
.companion-nameplate::before{content:"";position:absolute;top:-7px;left:34%;width:38px;height:14px;background:#e4a297a8;transform:rotate(7deg)}
.companion-nameplate h2{font-size:27px!important;margin:1px 0!important;letter-spacing:2px}
.companion-nameplate small,.companion-nameplate span{font-size:10px}
.companion-vitals{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 0;font-size:12px}
.companion-vitals label{display:flex;align-items:center;gap:5px;margin:0;white-space:nowrap}
.companion-vitals meter{width:70px;height:12px;accent-color:#86a585}
.duty-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b0aaa0;margin-right:6px}.duty-dot.on{background:#6d9878;box-shadow:0 0 0 3px #dae8d6}
.skill-charms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:8px 0 17px}
.skill-charm{position:relative;display:grid;justify-items:center;gap:3px;padding:10px 2px 8px;background:#f8ead2;border:1px solid #d9bb94;border-top:3px solid #cb9c7d;border-radius:7px 7px 18px 18px;box-shadow:0 3px 0 #a0856620}
.skill-charm:nth-child(2){background:#e9e9d7;border-top-color:#93ab8b}.skill-charm:nth-child(3){background:#eee3e4;border-top-color:#b4a2bd}.skill-charm:nth-child(4){background:#f1e7cb;border-top-color:#c7ae72}
.skill-charm>span{font-size:21px;color:#96755c;line-height:1}.skill-charm>b{font-size:22px}.skill-charm strong{font-size:12px}.skill-charm small{font-size:9px;white-space:nowrap}.skill-charm meter{width:75%;height:7px;accent-color:#849976}
.gameplay .work-ticket-board{position:relative;padding:18px 13px 14px;margin:0 0 15px;border:6px solid #c29c72;border-radius:6px;background:repeating-linear-gradient(4deg,#e9ce9e 0 3px,#e6c99b 3px 6px);box-shadow:inset 0 1px 6px #8f704a30,0 5px 0 #aa845e}
.work-ticket-board h3{font-size:16px;margin:0 0 7px}.work-ticket-board>p{font-size:12px;margin:0 0 14px}.work-board-pin{position:absolute;right:12px;top:9px;width:10px;height:10px;border-radius:50%;background:#ae6e62;box-shadow:1px 2px 0 #82624850}
.gameplay .work-ticket-board .dispatch-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gameplay .work-ticket-board .dispatch-buttons button{position:relative;padding:14px 5px 9px;min-height:75px;background:#fff5db;color:#6b5743;border:1px solid #c6ac86;border-radius:2px;box-shadow:2px 3px 0 #8e714830;font-size:12px}
.work-ticket-board .dispatch-buttons button::before{content:"";position:absolute;top:4px;left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#c8b18f}
.gameplay .work-ticket-board .dispatch-buttons button[aria-pressed=true]{background:#e5ebd3;border:2px solid #6f8c6b;transform:rotate(-2deg);color:#3f664e}
.work-ticket-board .dispatch-buttons button[aria-pressed=true]::after{content:"✓";position:absolute;right:5px;top:5px;font-weight:bold}
.work-ticket-icon{display:block;font-size:24px;line-height:1.2;margin-bottom:4px}.work-ticket-board label{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:13px}.work-ticket-board select{flex:1;min-width:0;background:#fff5df;border-color:#c4a27c}
.assistant-pin{display:flex;gap:7px;align-items:flex-start;margin:17px 0}.assistant-pin img{object-fit:contain;flex-shrink:0}.assistant-pin>div{flex:1;min-width:0}.assistant-pin .people-auto{margin:0;padding:0;background:transparent;border:0}.assistant-pin .people-auto small{display:none}.assistant-pin>div>small{display:block;font-size:11px;margin:6px 0;line-height:1.7}
.companion-notebook,.recipe-notebook{background:linear-gradient(90deg,#d8b8a1 0 3px,transparent 3px 12px,#fff7e5 12px);border:1px solid #d7c4a4;border-radius:3px;padding:0 12px 0 20px;margin:12px 0;box-shadow:2px 3px 0 #cdb99540}
.companion-notebook summary,.recipe-notebook summary{padding:14px 0;font-size:13px;font-weight:700;cursor:pointer}.companion-notebook summary span{float:right;font-size:11px;font-weight:400}.companion-notebook p,.recipe-notebook p{font-size:12px;line-height:1.85}.companion-notebook>small{display:block;margin-bottom:12px;line-height:1.7}
.story-postcard{position:relative;background:#fffdf4;border:1px solid #dbc9ab;margin:13px 0;padding:14px}.story-postcard h3{font-size:15px;max-width:85%}.postcard-number{position:absolute;right:8px;top:8px;font-size:20px;color:#b9a887}.story-thread{border-left:2px dotted #bda987;padding-left:12px}.story-thread b{display:block;font-size:11px;color:#a18b6f}.growth-tallies{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;font-size:12px}.growth-tallies span>*{display:block}.growth-tallies small{font-size:10px}.companion-notebook select{margin:6px 0 12px}.companion-notebook button{margin-bottom:14px}
.gameplay .companion-return{display:block;width:100%;border:0;background:#dfe8d3;padding:13px;margin-top:16px;color:#47674e}
.gameplay .compact-team{padding:10px 3px 15px;border-bottom:3px double #c9b18e;gap:10px}.gameplay .compact-team button{min-width:58px;background:transparent;border:0;box-shadow:none;padding:0 2px;opacity:.65}.gameplay .compact-team button[aria-pressed=true]{opacity:1;color:#466e50}.gameplay .compact-team .team-portrait{width:44px;height:44px;border:3px solid #e2c5a3;border-radius:50%;background:#f6e9d5}.gameplay .compact-team button[aria-pressed=true] img{border-color:#7c9a7b;box-shadow:0 0 0 3px #e0e8d7}.gameplay .compact-team button span{font-size:11px}
.gameplay .team-capacity{font-size:10px;line-height:1.7;margin-top:8px}
.recruit-notice{text-align:center;margin:18px 0;padding:13px 8px;background:#e7ead5;border:3px double #9baa87}.recruit-notice>b{font-size:20px;letter-spacing:3px}.recruit-notice p{font-size:12px;margin:8px 0}.recruit-notice small{font-size:10px}
.gameplay .recruit-card{position:relative;margin:22px 0;padding:15px;background:linear-gradient(transparent 27px,#b6a78920 28px,transparent 29px) 0 0/100% 29px,#fff6df;border:1px solid #d4bd95;border-radius:2px;box-shadow:3px 4px 0 #d8c7a950}
.recruit-card::before{content:"";position:absolute;top:-8px;right:30%;width:54px;height:16px;background:#ddb4a68c;transform:rotate(5deg)}.gameplay .recruit-top .team-portrait{width:106px;height:106px;background:#e8e8d5;border-radius:48% 48% 4px 4px;border:3px solid #fff9ec;box-shadow:1px 3px 0 #cbbba2}.gameplay .recruit-card>p{font-size:12px}.gameplay .recruit-skills{border-block:1px dashed #c1aa88;padding:10px 0}.gameplay .recruit-skills span{background:transparent;padding:0}

.workbench-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0}.workbench-heading h2{font-size:22px!important;margin:6px 0!important}.recipe-count{font-size:10px;text-align:center;min-width:48px;border:3px double #ba9e73;border-radius:50%;padding:8px;color:#866947}.recipe-count b{display:block;font-size:21px}
.gameplay .drink-workbench .drink-family-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:0}.drink-workbench .drink-family-tabs button{padding:2px 4px 9px;min-width:0;border:1px solid #c4b497;border-bottom:4px solid #b89d78;background:#f5ead0;border-radius:30px 30px 3px 3px;color:#75644d;font-size:12px}.drink-workbench .drink-family-tabs button[aria-pressed=true]{background:#dfe9d3;border-color:#7b9976;color:#43684d;transform:translateY(-3px)}.drink-family-tabs .ingredient-art{display:block;width:51px;height:51px;margin:auto}.drink-workbench .drink-family-tabs span{font-size:12px!important}
.mixing-theatre{position:relative;padding:17px 10px 13px;background:linear-gradient(#eff0dd 65%,#dac29c 65%,#edd5ad 66%);border:1px solid #c6b58e;border-bottom:7px solid #b88e64;border-radius:5px;overflow:hidden;box-shadow:0 4px 0 #c8ae8a40}
.recipe-clothesline{display:flex;justify-content:center;gap:8px;border-top:2px solid #a7a282;padding:8px 4px 0;margin:0 3px}
.recipe-tag{position:relative;display:grid;justify-items:center;align-content:start;width:30%;padding:5px 3px 8px;background:#fff8e5;box-shadow:1px 3px 2px #7f70532b;transform:rotate(-3deg)}.recipe-tag:nth-child(2){transform:rotate(3deg)}.recipe-tag::before{content:"";width:6px;height:16px;background:#bb9872;position:absolute;top:-13px;left:calc(50% - 3px);border-radius:2px}.recipe-tag small{font-size:9px;color:#927c5c}.recipe-tag b{font-size:10px;text-align:center;line-height:1.4}.recipe-tag .ingredient-art{width:43px;height:43px}
.cup-plinth{position:relative;width:190px;height:203px;margin:7px auto 0;padding-top:23px}.cup-plinth::after{content:"";position:absolute;bottom:13px;left:14px;right:14px;height:28px;border-radius:50%;background:#f2e8cb;border:3px solid #b4c0a1;box-shadow:0 5px 0 #a5b094;z-index:0}
.glass-sample{position:relative;isolation:isolate;z-index:1;overflow:hidden;width:103px;height:143px;margin:auto;border:3px solid #fdf7e4;border-top:5px solid #fff8e4;border-radius:9px 9px 22px 22px;background:#e3ebde;box-shadow:inset 0 0 0 2px #b4beb3,5px 7px 8px #76583a25;transform:perspective(360px) rotateX(-5deg)}
.glass-sample::before{content:"";position:absolute;inset:0 0 auto;height:17px;background:#fffdf2b0;border-radius:50%;z-index:4;border:1px solid #d1d2b7}.glass-sample::after{content:"";position:absolute;left:9px;top:24px;bottom:15px;width:7px;background:#fffdf385;border-radius:8px;z-index:5}
.glass-liquid{position:absolute;inset:18px 2px 2px;background:linear-gradient(to top,var(--drink-bottom) 0 27%,var(--drink-middle) 38% 63%,var(--drink-top) 80%);border-radius:0 0 19px 19px}
.glass-foam{position:absolute;top:17px;left:2px;right:2px;height:27px;background:#fff1d7;border-radius:50% 50% 32% 30%;box-shadow:0 3px 0 #dec3a355;z-index:2}
.glass-ice{position:absolute;inset:30px 12px auto;height:40px;z-index:3}.glass-ice i{position:absolute;width:21px;height:19px;border:2px solid #ffffe999;background:#f5ffff40;transform:rotate(15deg);border-radius:5px}.glass-ice i:nth-child(2){left:29px;top:7px;transform:rotate(-22deg)}.glass-ice i:nth-child(3){left:45px;top:-7px}
.glass-pearls{position:absolute;bottom:6px;left:10px;right:10px;text-align:center;font-size:19px;line-height:.85;color:#5a4237;z-index:3;letter-spacing:1px}.glass-pearls.jelly{color:#e9b673;bottom:9px}.glass-bubbles{position:absolute;top:27px;right:15px;font-size:18px;color:#fff3ce;line-height:1.1;z-index:3}.glass-emblem{position:absolute;z-index:4;left:29px;top:72px;display:grid;place-items:center;width:40px;height:35px;background:#f8e8c8e3;color:#75917a;border-radius:5px;font-size:24px;transform:rotate(-7deg)}
.coaster-label{position:absolute;z-index:2;bottom:10px;left:0;right:0;text-align:center;font-size:10px;color:#6a775b}
.mixing-spoon{position:absolute;z-index:0;width:7px;height:119px;top:0;left:123px;background:linear-gradient(90deg,#e5ddc4,#adac99);border-radius:5px;transform:rotate(16deg);transform-origin:bottom}
.mixing-caption{text-align:center;font-size:12px;margin:0!important;line-height:1.7}.mixing-caption small{display:block;font-size:10px;color:#7b735d}
.ingredient-shelf{padding:10px 0 0;margin:17px 0;border:0;min-width:0}.ingredient-shelf legend{font-size:13px;font-weight:bold}.ingredient-row{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:0 3px 11px;scrollbar-width:thin;border-bottom:7px solid #c5a179;background:linear-gradient(transparent calc(100% - 3px),#9c795b calc(100% - 3px))}
.gameplay .ingredient-object{position:relative;flex:0 0 84px;display:grid;justify-items:center;align-content:end;gap:2px;border:0;border-radius:0;background:transparent;color:#6d5844;box-shadow:none;padding:2px 3px 5px;min-height:112px}
.ingredient-art{width:74px;height:74px;flex-shrink:0}.ingredient-object>span{font-size:11px;line-height:1.5;text-align:center}.ingredient-object>small{font-size:9px;color:#8b806c}.gameplay .ingredient-object[aria-pressed=true]{background:radial-gradient(ellipse at 50% 48%,#e2ebcf 0 48%,transparent 49%);color:#3e684b}.ingredient-object[aria-pressed=true]::after{content:"✓";position:absolute;top:8px;right:1px;background:#6d8c64;color:white;width:19px;height:19px;line-height:19px;border-radius:50%;font-size:11px}.ingredient-object[aria-pressed=true] small{color:#47734d;font-weight:bold}
.gameplay .ingredient-letter{flex:0 0 87px;align-self:center;min-height:90px;background:#fff0d3;border:1px dashed #b7a077;border-radius:2px;transform:rotate(3deg);padding:8px 4px}.ingredient-letter>*{display:block}.ingredient-letter>span{font-size:26px;color:#ab806c}.ingredient-letter b{font-size:10px}.ingredient-letter small{font-size:9px}
.recipe-seasoning{margin:17px 0;padding:13px;background:#e8ead7;border-block:2px solid #bcc3a7}.recipe-seasoning h3{font-size:14px;margin:0 0 10px}.recipe-seasoning label{font-size:11px;display:block;margin:9px 0 6px}.recipe-dials{display:flex;gap:5px;flex-wrap:wrap}.gameplay .recipe-dials button{flex:1;padding:9px 5px;min-width:60px;min-height:41px;background:#f9f2df;border:1px solid #b7b397;border-radius:5px;box-shadow:0 3px 0 #b9b394;font-size:11px}.gameplay .recipe-dials button[aria-pressed=true]{background:#71886b;color:#fff6df;border-color:#647e62;box-shadow:inset 0 2px 0 #48604650;transform:translateY(2px)}
.trial-receipt{position:relative;margin:22px 6px;padding:20px 15px;background:#fffaf0;border:1px solid #dac7a9;border-top:6px dotted #e2d6bd;box-shadow:3px 5px 0 #c7af8b40}.receipt-title{display:block;text-align:center;font-size:13px;letter-spacing:2px;padding-bottom:13px;border-bottom:1px dashed #c1aa8d}.receipt-total{display:flex;justify-content:space-between;margin:12px 0;align-items:center;font-size:12px}.receipt-total b{font-size:26px;color:#8b6b4d}.trial-receipt ul{padding:0;margin:0 0 10px;list-style:none}.trial-receipt li{display:flex;justify-content:space-between;font-size:11px;margin:4px 0}.trial-receipt>small{font-size:10px;line-height:1.7}.gameplay .trial-start{display:block;width:100%;margin-top:14px;border-radius:8px 8px 12px 12px;background:#b77764;border-color:#9c6655;box-shadow:0 4px 0 #865a48;color:#fff8e7;padding:14px 6px;font-size:13px}.gameplay .trial-start:disabled{box-shadow:none;background:#c4bcae;color:#5f5b55}
.trial-in-progress{padding:16px;background:#f5ead0;border:1px solid #d9bc96;margin-top:15px}.trial-in-progress progress{width:100%;height:15px;accent-color:#8da781}.trial-in-progress p{font-size:12px}.trial-in-progress button{margin:4px;font-size:12px}
.tasting-ticket{position:relative;background:#fff6e0;margin:22px 4px;padding:19px 15px;border:1px solid #dbc49e;border-left:7px double #d3ab7d;box-shadow:3px 4px 0 #c3aa8740}.ticket-stamp{display:inline-block;padding:4px 9px;border:2px solid #a18d75;transform:rotate(-5deg);color:#927b63;font-size:12px}.new-discovery .ticket-stamp{color:#a46d5a;border-color:#b4836a;background:#f7e0bb}.tasting-ticket .taste-stars{color:#bb9254;font-size:22px;letter-spacing:3px;margin:15px 0 6px}.tasting-ticket h3{font-size:20px;margin:6px 0}.tasting-ticket blockquote{margin:12px 0;font-size:13px;line-height:1.8}.tasting-ticket>p{font-size:12px}.tasting-ticket .taste-meters{display:flex;gap:12px}.taste-meters>span{flex:1;font-size:10px}.taste-meters meter{display:block;width:100%;accent-color:#8fa280}
.gameplay .drink-workbench .recipe-note{background:transparent;border:0;border-bottom:1px dashed #cbb993;border-radius:0;padding:13px 0}.gameplay .drink-workbench .recipe-note h3{font-size:13px}.gameplay .drink-workbench .recipe-note p{font-size:11px;margin:6px 0}.gameplay .drink-workbench .recipe-note button{font-size:11px;min-height:40px;padding:8px}.drink-workbench .lab-toggle{font-size:12px;margin:16px 0}.gameplay .drink-workbench button:focus-visible,.gameplay .companion-room button:focus-visible{outline:3px solid #567558;outline-offset:3px}
@media(max-width:380px){.companion-quote{font-size:12px;left:46%;padding:9px}.companion-nameplate{right:9px;padding:8px}.skill-charm small{font-size:8px}.companion-vitals{font-size:11px}.companion-vitals meter{width:49px}.workbench-heading h2{font-size:20px!important}.recipe-tag b{font-size:9px}}
.brewing .mixing-spoon{animation:spoon-stir 3s ease-in-out infinite}.brewing .glass-bubbles{animation:sample-fizz 2.8s ease-out infinite}
@keyframes spoon-stir{0%,75%,100%{transform:rotate(16deg)}25%{transform:rotate(4deg)}50%{transform:rotate(21deg)}}
@keyframes sample-fizz{0%{transform:translateY(8px);opacity:.4}80%{transform:translateY(-6px);opacity:.9}100%{transform:translateY(-9px);opacity:0}}
.gameplay .opening-chapter{border-radius:3px;background:repeating-linear-gradient(0deg,transparent 0 28px,#d5c5a12b 28px 29px),#fff4d9;border:1px solid #d2b591;border-top:7px double #cba880;box-shadow:3px 5px 0 #c2aa8540}
.gameplay .opening-detail{border-radius:0;background:#f6e6c8;border-left:3px solid #ab8d68}
.opening-recipe-tray{display:flex;justify-content:center;align-items:center;gap:8px;margin:14px 0;padding:9px;background:#e7e9d5;border-bottom:5px solid #baa17b}
.opening-recipe-tray>span{display:grid;justify-items:center;font-size:11px}.opening-recipe-tray .ingredient-art{width:60px;height:60px}
.gameplay .opening-candidates article{position:relative;border-radius:2px;background:#fff9e9;border:1px solid #d2b992;grid-template-columns:95px 1fr;box-shadow:2px 3px 0 #c1aa8130}
.opening-candidates article::before{content:"";position:absolute;width:40px;height:12px;top:-5px;right:25px;background:#d6af9b95;transform:rotate(5deg)}
.gameplay .opening-candidates img{width:95px;height:111px;border-radius:45% 45% 0 0;background:#e4e8d0}
.guide-buddy{display:flex;align-items:center;gap:10px;margin-bottom:10px}.guide-buddy img{width:90px;height:100px;object-fit:contain}.guide-buddy p{font-size:13px;line-height:1.8;background:#fff4d9;border:1px solid #d5bc95;border-radius:16px 16px 16px 3px;padding:12px;margin:0}

.simulation-paused .brewing .mixing-spoon,.simulation-paused .brewing .glass-bubbles{animation-play-state:paused}

/* Screen-space dialogue: never shrink NPC text with the shop camera or mobile overrides. */
.gameplay .actor-label,.gameplay .actor-label[data-actor^=c],.gameplay .actor-label.speaking{
 font-size:16px;font-weight:600;line-height:1.45;letter-spacing:.01em;
 color:#344b3c;background:#fffdf4;border:1px solid #9aa984;
 padding:7px 10px;min-height:36px;max-width:240px;
 white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;
 box-shadow:0 2px 0 #6b795c30,0 3px 10px #344b3c14;
}
.gameplay .actor-label.speaking{background:#eef8ed;color:#244b3b;border-color:#6b947a}
.lesson-order h3{font-size:22px;margin:18px 0;color:#45654e}
.lesson-order dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;padding:18px;background:#f3eddc;border-radius:15px;font-size:17px}
.lesson-order dd{margin:0;font-weight:800}.lesson-order p{font-size:16px;line-height:1.7;margin:15px 0}
.gameplay #new-player-guide p,.gameplay #new-player-guide .guide-note{font-size:14px;line-height:1.65}
.gameplay #new-player-guide h3{font-size:18px;line-height:1.4}
.gameplay #new-player-guide .guide-actions button{font-size:15px;min-height:44px}
@media(max-width:760px){
 .gameplay .actor-label,.gameplay .actor-label[data-actor^=c],.gameplay .actor-label.speaking{font-size:15px;max-width:min(210px,65vw);padding:7px 9px}
 .gameplay.guiding[data-guide=watch] #new-player-guide{max-height:40dvh}
 .gameplay.guiding[data-guide=watch] #new-player-guide .guide-note{font-size:13px;line-height:1.6}
}
.gameplay .team-tabs,.gameplay .lab-tabs{display:flex;gap:4px;border-bottom:4px solid #b69a75;padding-bottom:0}
.gameplay .team-tabs button,.gameplay .lab-tabs button{flex:1;min-width:0;min-height:43px;border:1px solid #bdac8f;border-bottom:0;border-radius:9px 12px 0 0;background:#eadfc6;color:#65513d;font-size:11px;padding:9px 5px;box-shadow:none}
.gameplay .team-tabs button[aria-pressed=true],.gameplay .lab-tabs button[aria-pressed=true]{background:#7e9477;border-color:#708969;color:#fff8e5;transform:translateY(-3px);box-shadow:0 3px 0 #7e9477}
/* A small addressed letter, reachable before opening a notebook as well. */
#issue-dialog{box-sizing:border-box;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:30px 24px 22px;border:1px solid #d6c4a8;border-radius:8px 22px 12px 8px;background:repeating-linear-gradient(0deg,transparent 0 29px,#d9c9ad22 29px 30px),#fff9eb;color:#51463b;box-shadow:0 20px 70px #26342c55;overflow:auto}
#issue-dialog::backdrop{background:#273f385c;backdrop-filter:blur(3px)}
.issue-letter h2{font-size:25px;margin:12px 0}.issue-letter>label:not(.issue-consent){display:block;font-weight:700;margin:18px 0 7px}
.issue-letter input:not([type=checkbox]),.issue-letter textarea{box-sizing:border-box;width:100%;font:inherit;font-size:16px;line-height:1.6;background:#fffdf7;border:1px solid #c6b997;padding:10px;border-radius:7px;resize:vertical}
.issue-letter .issue-consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0;padding:12px;border-block:1px dashed #c9b89c}
.issue-consent input{flex:0 0 20px;width:20px;height:20px;margin-top:4px;accent-color:#4e7760}.issue-consent small{display:block;line-height:1.65;margin-top:5px}
.issue-device{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.issue-device summary{cursor:pointer;min-height:32px}.issue-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.issue-actions button{min-height:44px}.issue-actions .primary{flex:1}
#issue-status{font-size:13px;line-height:1.7;overflow-wrap:anywhere;background:#e5eddd;padding:10px 12px;border-left:3px solid #7b9770}
.help-report{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin:15px 0}.help-report button{min-height:44px}
@media(max-width:420px){#issue-dialog{padding:30px 17px 16px}.issue-letter h2{font-size:23px}}
.gameplay #next-action[hidden]{display:none}
.gameplay #next-action{position:absolute;z-index:18;left:24px;bottom:130px;width:350px;box-sizing:border-box;display:flex;align-items:flex-start;gap:10px;padding:16px;background:#fff9e9;border:2px solid #d1b986;border-radius:12px 25px 25px 25px;box-shadow:0 5px 0 #b6a17c40,0 12px 25px #66553517;pointer-events:auto}
.gameplay #next-action img{width:48px;height:60px;object-fit:contain;flex-shrink:0;margin-top:12px}
.gameplay #next-action>div{min-width:0;flex:1}
.gameplay #next-action small{font-size:12px;color:#6b7751;font-weight:700}
.gameplay #next-action h3{font-size:18px;color:#385c46;margin:7px 0;line-height:1.4}
.gameplay #next-action p{font-size:14px;line-height:1.55;margin:0 0 12px;color:#514a39}
.gameplay #next-action button{min-height:44px;width:100%;font-size:15px;white-space:normal}
.gameplay.has-next-action #assistant-bubble,.gameplay.has-next-action #shop-sign{display:none}
.gameplay.drawer-open #next-action,.gameplay.guiding #next-action{display:none}
.gameplay .empty-book{font-size:16px;line-height:1.6;color:#365a42;background:#eef3df;padding:14px;border-left:4px solid #8fa870;border-radius:8px}
@media(max-width:760px){.gameplay #next-action{left:10px;right:10px;bottom:calc(110px + var(--safe-bottom));width:auto;padding:12px;gap:9px;max-height:36dvh;overflow:auto}.gameplay #next-action img{width:38px;height:49px}.gameplay #next-action h3{font-size:17px;margin:5px 0}.gameplay #next-action p{font-size:14px;margin-bottom:8px}}
.opening-result{display:flex;gap:10px;align-items:center;background:#e7f0d8;border:1px solid #9bb27c;border-radius:12px;padding:10px 12px;margin:0 0 14px;color:#365a40}
.opening-result>span{font-size:30px;color:#8b9f49;flex-shrink:0}
.opening-result p{font-size:14px!important;line-height:1.55!important;margin:0!important}
.opening-stock-tray{display:flex;gap:8px;margin:12px 0}
.opening-stock-tray>div{flex:1;text-align:center;background:#fff8e5;border:1px solid #d5c5a2;border-radius:10px;padding:8px 3px}
.opening-stock-tray b,.opening-stock-tray small{display:block;font-size:12px}
.opening-stock-tray strong{font-size:25px;color:#426b50}
.opening-controls>button.primary:not(:disabled),.opening-candidates button:not(:disabled),.opening-name input{outline:3px solid #d7ab59;outline-offset:3px}
.opening-controls button{min-height:44px}
.opening-trial{background:#eee5d6;border-radius:12px;padding:12px;margin:12px 0}
.opening-trial b,.opening-trial small{display:block;font-size:14px;line-height:1.5}
.opening-trial progress{width:100%;height:15px;accent-color:#8eab71;margin:8px 0}
.gameplay.guiding[data-guide=welcome] .guide-chapters,.gameplay.guiding[data-guide=welcome] .guide-note{display:none}
@media(max-width:760px){.gameplay.guiding[data-guide=welcome] #new-player-guide{max-height:36dvh}.opening-candidates article{scroll-margin-top:12px}}

/* v037f: porcelain, linen and coloured paper. Surface colours have one owner;
   all ornament is inert and uses the existing assets, with no render-loop work. */
.gameplay[data-panel=research]{--panel-tint:#f2e2df;--panel-accent:#a16966;--panel-edge:#d0b0aa}
.gameplay[data-panel=staff]{--panel-tint:#eae5f2;--panel-accent:#817199;--panel-edge:#b8adc9}
.gameplay[data-panel=build]{--panel-tint:#e1edf1;--panel-accent:#608493;--panel-edge:#abc4cd}
.gameplay[data-panel=journal]{--panel-tint:#f4e8cf;--panel-accent:#9b7a48;--panel-edge:#ccb890}
.gameplay #game>header::before{background:linear-gradient(#faf8f0 65%,#faf8f000)}
.gameplay .brand strong{color:#3f594d;text-shadow:0 1px #fff}
.gameplay .brand small{color:#756e63}
.gameplay .top-stats>div{background:linear-gradient(#fffef9,#f3ebd9);border-color:#d2b990;box-shadow:inset 0 2px #fff,0 3px #b19c7738}
.gameplay .top-stats>div:nth-child(2){background:linear-gradient(#fff6f5,#f3dce0);border-color:#d3a6af;color:#956371}
.gameplay .clock-card{background:#fffdf6f5;border-color:#bccdc1;color:#426658;box-shadow:0 4px #7a98882b}
.gameplay .time-tools button{background:#fffdf7;border-color:#becbc0;color:#466653}
.gameplay #goal-badge{background:linear-gradient(110deg,#f2f7eb,#dfeee0);border-color:#a6bea7;color:#3d614c}
.gameplay .hanging-order{background:#fffdf5;border:1px solid #cbbca5;border-top:5px solid #9fbdab;border-radius:4px 4px 13px 4px;box-shadow:2px 4px #9a8e7430;padding:11px 13px}
.gameplay .hanging-order.urgent{border-top-color:#c57762;background:#fff0e7}
.gameplay .hanging-order em{color:#3f7055}
.gameplay .hanging-order b{color:#4b4940}
.gameplay .rail-rest{background:#fffdf2ed;color:#4f6659;border:1px dashed #b5c2aa;border-radius:5px 16px 16px 5px}
.gameplay #nav{background:#fffdf6f5;border-color:#e0d9ca;box-shadow:inset 0 2px #fff,0 5px #b7ac9645,0 10px 30px #354d3e1a}
.gameplay #nav button{--tab-fill:#e4efe3;--tab-rim:#91b19b;background:linear-gradient(#fffef9,#f2eee4);border-color:#d8d2c3;box-shadow:inset 0 2px #fff,0 3px #b8ab9538;color:#564b41;transition:transform .16s ease,background-color .16s ease}
.gameplay #nav button[data-tab=research]{--tab-fill:#f3dfdb;--tab-rim:#c88c84}
.gameplay #nav button[data-tab=staff]{--tab-fill:#e9e1f1;--tab-rim:#ac98be}
.gameplay #nav button[data-tab=build]{--tab-fill:#e0edf1;--tab-rim:#8aafbf}
.gameplay #nav button[data-tab=journal]{--tab-fill:#f5e8c9;--tab-rim:#c6a566}
.gameplay #nav button b{border-radius:50%;background:radial-gradient(ellipse,var(--tab-fill) 0 57%,transparent 59%);filter:drop-shadow(0 2px 1px #7d63422b)}
.gameplay #nav button.active{background:linear-gradient(#fffef7,var(--tab-fill));border-color:var(--tab-rim);box-shadow:inset 0 2px #fff,0 3px var(--tab-rim);transform:translateY(-3px)}
.gameplay .desk{background:linear-gradient(var(--panel-tint),#fffdf7 190px);border-color:var(--panel-edge);border-radius:12px 28px 22px 12px;box-shadow:inset 5px 0 0 #fff9,0 6px #62776422,0 16px 40px #354d3e26;scrollbar-color:var(--panel-edge) transparent;scrollbar-width:thin}
.gameplay .desk-heading{background:var(--panel-tint);border-bottom:1px dashed var(--panel-edge);margin-bottom:20px}
.gameplay #drawer-title{color:var(--panel-accent);letter-spacing:.05em}
.gameplay #drawer-close{background:#fffdf8;border-color:var(--panel-edge);color:var(--panel-accent);box-shadow:0 2px #51443515}
.gameplay #live-badge{background:#fffdf6bf;color:#646e61}
.gameplay #next-action,.gameplay #new-player-guide{background:linear-gradient(120deg,#fffef7,#f2f5e9);border-color:#b6c4a7;box-shadow:inset 0 3px #fff,0 5px #8b9b7930,0 12px 25px #405f4817}
.gameplay #next-action img{filter:drop-shadow(0 3px 1px #65714d22)}
.gameplay .opening-chapter{background:linear-gradient(90deg,#e9b8b44a 1px,transparent 1px) 17px 0/100% 100%,repeating-linear-gradient(0deg,transparent 0 31px,#b9c5b224 31px 32px),#fffdf5;border:1px solid #d6cbb7;border-top:0;border-radius:3px 12px 12px 3px;padding-top:21px;box-shadow:3px 4px 0 #e8dfcf,4px 5px 0 #c5b9a5}
.gameplay .opening-chapter::before{content:'';position:absolute;top:-6px;left:calc(50% - 27px);width:54px;height:14px;background:repeating-linear-gradient(90deg,#e6aaa180 0 7px,#f2c3bdb0 7px 14px);transform:rotate(-3deg);pointer-events:none}
.gameplay .opening-chapter-head{color:#766052;align-items:center;font-size:14px}
.gameplay .opening-stamps{position:relative;gap:4px;margin:20px 0 17px}
.gameplay .opening-stamps::before{content:'';position:absolute;top:18px;left:10%;right:10%;border-top:2px dotted #c7cfbd;pointer-events:none}
.gameplay .opening-stamps>span{position:relative;color:#736f64}
.gameplay .opening-stamps b{width:35px;height:35px;background:#f6f2e8;border:1px dashed #c4b9a5;color:#81725f;box-shadow:0 2px 0 #fff}
.gameplay .opening-stamps .earned b{background:#e0eee0;border:2px solid #8dae90;color:#517c5f;box-shadow:inset 0 0 0 2px #f5fbef,0 2px #bdd1b1}
.gameplay .opening-stamps .now b{background:#f5dfb0;border:2px solid #ad803f;color:#76511f;box-shadow:0 0 0 3px #fffdf5,0 0 0 4px #ddbf82}
.gameplay .opening-stamps small{font-size:10px;margin-top:8px}
.gameplay .opening-detail{background:#edf2e9;border-left:3px solid #9bb39e;color:#506151;border-radius:2px 10px 10px 2px;line-height:1.7}
.gameplay .opening-result{background:#edf6e8;border:1px dashed #91ac86;border-radius:3px 14px 14px 3px;box-shadow:2px 3px #b4c2a729}
.gameplay .opening-result>span{border:2px solid #94ac7d;border-radius:50%;width:36px;height:36px;text-align:center;font-size:27px;color:#769457;transform:rotate(-12deg)}
.gameplay .opening-stock-tray>div{background:#e6f0e4;border-color:#b6cdb3;box-shadow:inset 0 2px #fff}
.gameplay .opening-stock-tray>div:nth-child(2){background:#e4eef5;border-color:#b9cedc}
.gameplay .opening-stock-tray>div:nth-child(3){background:#f7e8cf;border-color:#dcc59c}
.gameplay .opening-stock-tray strong{font-variant-numeric:tabular-nums;color:#3f6554}
.gameplay .opening-name{font-weight:700;color:#775951;font-size:14px}
.gameplay .opening-name input{font-size:16px;background:#fffefa;border-color:#bda693;box-shadow:inset 0 2px 3px #80654c0c}
.gameplay .opening-controls>.primary{background:linear-gradient(#5f8a70,#47745b);border:1px solid #3e664e;box-shadow:inset 0 1px #a4c4a9,0 3px #34563f;color:#fffdf4;border-radius:13px;min-height:48px}
.gameplay .opening-controls>.primary:disabled{background:#deded3;border-color:#c0bbae;box-shadow:none;color:#797666}
.gameplay .opening-candidates article{border-radius:4px 16px 16px 4px;border-color:#d4c7dc;background:#fffdf8;box-shadow:3px 4px #d4c9dd44}
.gameplay .opening-candidates img{background:radial-gradient(ellipse at 50% 34%,#fffaf2 0 33%,#e6e0ee 34%);border-bottom:5px solid #b2a4c3;filter:drop-shadow(0 2px 1px #80718e20)}
.gameplay .opening-candidates article:nth-child(2) img{background:radial-gradient(ellipse at 50% 34%,#fffaf2 0 33%,#deede9 34%);border-color:#9abcb0}
.gameplay .opening-candidates article:nth-child(3) img{background:radial-gradient(ellipse at 50% 34%,#fffaf2 0 33%,#f3e2d5 34%);border-color:#d4b399}
.gameplay .opening-candidates h4{color:#6a5878;font-size:19px}.gameplay .opening-candidates h4 small{color:#786b78}
.gameplay .opening-candidates button{background:#e6e0f0;border-color:#b1a0c2;color:#5e4b74;font-weight:700;box-shadow:0 3px #c7b8d5}
.gameplay .opening-recipe-tray{background:linear-gradient(#e8f0ec 72%,#d9c5ac 73% 78%,#ecdac2 79%);border-color:#b9a389;border-radius:22px 22px 3px 3px;padding-top:13px;color:#526d60}
.gameplay .opening-trial{background:#f2e5e7;border:1px solid #dec6cb;color:#805b63}
.gameplay .opening-cup{display:block;margin:8px 0 16px;padding:0;text-align:center}
.first-cup-stage{position:relative;background:radial-gradient(ellipse at 50% 60%,#fbf0df 0 47%,transparent 48%);height:180px;margin:0 auto;max-width:260px}
.first-cup-stage .cup-plinth{margin:0 auto;padding-top:12px;height:180px;box-sizing:border-box}
.first-cup-stage .cup-plinth::after{background:#e6eee6;border-color:#a1b6a8;box-shadow:0 4px #91a496;bottom:10px}
.cup-keepsake{position:absolute;right:18px;top:20px;z-index:2;display:grid;place-items:center;width:42px;height:42px;border:3px double #c38a8a;border-radius:50%;background:#f9e5e4;color:#ac6c78;font-size:29px;transform:rotate(12deg)}
.gameplay .opening-cup figcaption{position:relative;color:#795f50;font-size:15px;font-weight:700;line-height:1.6}
.gameplay .opening-cup figcaption small{display:block;font-weight:400;font-size:11px;color:#7c796a}
.gameplay .glass-sample{border-color:#fffdf8;background:#e3eeea;box-shadow:inset 0 0 0 1px #9bb6ae,5px 8px 8px #62524322}
.gameplay .glass-liquid{box-shadow:inset 9px 0 12px #ffffff20,inset -8px 0 12px #754c3117}
.gameplay .glass-emblem{background:#fff7e7ec;border:1px solid #e2d0b6;border-radius:50%;color:#6b9579;box-shadow:0 2px 1px #604b2820}
.gameplay .glass-ice i{border-color:#ffffffa8;background:linear-gradient(135deg,#ffffff85,#e1f7f930);box-shadow:inset 1px 1px #fff9,1px 2px #7253370f}
.gameplay .mixing-theatre{background:repeating-linear-gradient(90deg,transparent 0 45px,#c3d4cb45 45px 46px),linear-gradient(#e9f1ec 65%,#c6ad91 65%,#f3e1c9 66%);border-color:#b9cabc;border-bottom-color:#ba9c7b;border-radius:6px 6px 14px 14px}
.gameplay .recipe-tag{background:#fffdf5}.gameplay .recipe-tag:nth-child(2){background:#fbede9}.gameplay .recipe-tag:nth-child(3){background:#eef0e1}
.gameplay .companion-stage{background:radial-gradient(ellipse at 50% 64%,#fff9ed 0 42%,transparent 43%),repeating-linear-gradient(90deg,#e4dfef 0 24px,#f0edf6 24px 48px);border-bottom-color:#bda38a}
.gameplay .companion-quote{background:#fffefa;border-color:#beb0cb;color:#665876;box-shadow:3px 4px #c5bad238}
.gameplay .companion-nameplate{background:#fcebe2;border-color:#d8b6a5;color:#7f5d53}
.gameplay .skill-charm{background:#f9e3d4;border-color:#d4b9a4}.gameplay .skill-charm:nth-child(2){background:#e3f0e5}.gameplay .skill-charm:nth-child(3){background:#eee5f5}.gameplay .skill-charm:nth-child(4){background:#f9edce}
.gameplay .compact-team button[aria-pressed=true]{color:#79638e}.gameplay .compact-team button[aria-pressed=true] img{border-color:#a992ba;box-shadow:0 0 0 3px #ebe3f0}
.gameplay .team-tabs button[aria-pressed=true]{background:#705981;border-color:#705981;box-shadow:0 3px #705981}
.gameplay .lab-tabs button[aria-pressed=true]{background:#8e554d;border-color:#8e554d;box-shadow:0 3px #8e554d}
.gameplay dialog.books-modal{background:radial-gradient(ellipse at 50% 0,#e8f0df,transparent 65%),#fffdf5;border-color:#b9c5af}
.gameplay .new-book-form{background:#edf3e8;border-color:#c5d2b9}
@media(max-width:760px){
 .gameplay #play-hud::after{background:linear-gradient(#faf9f2,#f3f0e5);box-shadow:0 -1px 0 #fff9,0 -8px 24px #6c83661a}
 .gameplay #nav button.active{transform:translateY(-2px)}
 .gameplay .desk{padding:15px 16px;border-radius:12px 24px 20px 12px}
 .gameplay .opening-chapter{padding:17px 13px 13px}
 .gameplay .opening-stamps small{font-size:10px;line-height:1.45}
 .gameplay .opening-stamps b{width:32px;height:32px}
 .gameplay .opening-chapter[data-chapter-step=name] h3{margin-bottom:4px;font-size:18px}
 .gameplay .opening-cup{margin-bottom:12px}
 .gameplay .opening-candidates p{font-size:12px;line-height:1.7}
 .gameplay .top-stats small{font-size:10px}
 .gameplay .brand small{font-size:10px;letter-spacing:0}
 .gameplay .hanging-order b{font-size:12px}
 .gameplay .hanging-order small,.gameplay .hanging-order em{font-size:11px}
}
@media(max-width:760px) and (max-height:780px){
 .gameplay .opening-stamps{margin:13px 0}
 .gameplay .opening-cup{margin:2px 0 8px}
 .first-cup-stage,.first-cup-stage .cup-plinth{height:112px}
 .first-cup-stage .cup-plinth{padding-top:3px;width:150px}
 .first-cup-stage .glass-sample{width:70px;height:96px;border-radius:7px 7px 16px 16px}
 .first-cup-stage .glass-ice{transform:scale(.7);transform-origin:top left;top:21px}
 .first-cup-stage .glass-emblem{width:29px;height:27px;font-size:20px;left:19px;top:48px}
 .first-cup-stage .glass-pearls{font-size:13px;left:3px;right:3px}
 .first-cup-stage .cup-plinth::after{height:19px;bottom:6px}
 .first-cup-stage .cup-keepsake{right:35px;top:8px;width:32px;height:32px;font-size:22px}
 .gameplay .opening-name{margin:10px 0}
 .gameplay .opening-cup figcaption small{display:none}
}
@media(prefers-reduced-motion:reduce){.gameplay #nav button{transition:none}}

/* Dialogue owns space only while visible. The observer measures the real dock;
   no fixed empty dialogue band or second reservation for the same next-action. */
.scene-dialogue{display:none}
@media(max-width:760px){
 .gameplay:not(.drawer-open):not(.photography) .scene{bottom:var(--scene-bottom,calc(170px + var(--safe-bottom)))}
 .gameplay:not(.drawer-open):not(.photography) #world{height:100%}
 .gameplay:not(.drawer-open):not(.photography) .scene.has-dialogue #world{height:calc(100% - var(--dialogue-height,64px))}
 .gameplay .scene-dialogue:not([hidden]){position:absolute;bottom:2px;left:12px;right:12px;min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:6px 10px 6px 14px;border:1px solid #b8cdbd;border-left:4px solid #96b59b;border-radius:5px 15px 15px 5px;background:#fffdf6f7;color:#456050;box-shadow:0 3px #6787681a;text-align:left;z-index:2;transform:none}
 .gameplay .scene-dialogue b{font-size:12px;line-height:1.2;color:#6b7955;letter-spacing:.03em}
 .gameplay .scene-dialogue span{font-size:14px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
 .gameplay .scene-dialogue.is-speech{border-left-color:#c89866;background:#fffaf0}
 .gameplay .scene-dialogue.is-speech b{color:#91633e}
 .gameplay .scene-dialogue:hover{transform:none;background:#fffaf0}
 .gameplay.drawer-open .scene-dialogue,.gameplay.photography .scene-dialogue{display:none}
 .gameplay #world .actor-label{display:none!important}
}

/* v037h: the command lesson and its real controls share one scroll surface. */
.gameplay.guiding.drawer-open[data-guide=command] #new-player-guide{position:static;inset:auto;width:auto;max-height:none;margin:8px 0;padding:10px 12px;flex:none;box-shadow:none}
.gameplay.guiding[data-guide=command] #new-player-guide .guide-chapters,.gameplay.guiding[data-guide=command] #new-player-guide .guide-body>p,.gameplay.guiding[data-guide=command] #new-player-guide .guide-footer,.gameplay.guiding[data-guide=command] .guide-buddy{display:none}
.gameplay.guiding[data-guide=command] #new-player-guide h3{margin:6px 0 0;font-size:16px}
.gameplay.guiding[data-guide=command] .staff-dispatch{margin:0;padding:10px}
.gameplay.guiding[data-guide=command] .staff-dispatch h3{display:none}
.gameplay.guiding[data-guide=command] .dispatch-buttons button{min-height:48px}
.opening-solo{padding:14px;background:#f3ecd7;border:1px solid #d5c59d;border-radius:16px;margin-bottom:14px}
.opening-solo p{font-size:14px;line-height:1.6}.opening-solo button{width:100%;min-height:44px}
.receipt-qualification{font-size:13px;line-height:1.6;color:#435b4c}
@media(max-width:760px){
 .gameplay.guiding.drawer-open[data-guide=command] .desk{top:calc(76px + var(--safe-top));bottom:calc(110px + var(--safe-bottom))}
 .gameplay.guiding[data-guide=command] #new-player-guide .guide-body{overflow:visible}
}
@media(max-width:380px) and (max-height:650px){
 .books-modal .shelf-welcome{margin:0 0 8px}.books-modal .shelf-mascot{width:42px;height:56px}
 .books-modal .shelf-welcome h2{font-size:24px}.books-modal #new-book-form{padding:10px}
 .books-modal #new-book-form h3{margin:0 0 6px}.books-modal #new-book-form input,.books-modal #new-book-form select{min-height:40px;padding:8px}
}

@media(max-width:380px) and (max-height:650px){.gameplay .books-modal .empty-book{padding:8px 10px;font-size:12px;line-height:1.5;margin:7px 0}.gameplay .books-modal .shelf-welcome p{margin:4px 0;font-size:12px}.gameplay .books-modal #new-book-form button[type=submit]{margin-top:8px;min-height:44px}.gameplay .books-modal .book-shelf-grid:empty{display:none}}

/* v037i: the shop is the main stage. Orders and the clock share a compact rail;
   the next action is a small, directly usable note above the navigation shelf. */
@media(max-width:760px){
 body.gameplay{--nav-height:70px;--tray-height:80px}
 .gameplay #game>header{height:52px;gap:5px}
 .gameplay .brand-icon{width:35px;height:46px}
 .gameplay .brand strong{font-size:15px;max-width:118px}
 .gameplay .top-stats>div{padding:5px 8px;border-radius:14px}
 .gameplay .top-stats strong,.gameplay .top-stats #rep{font-size:14px}
 .gameplay.has-next-action #goal-badge,.gameplay.guiding #goal-badge{display:none}
 .gameplay:not(.drawer-open):not(.photography) .scene{top:calc(118px + var(--safe-top))}
 .gameplay .clock-card{top:calc(63px + var(--safe-top));right:9px;min-width:0;width:91px;padding:5px 7px;gap:2px;border-radius:11px;border-width:1px;box-shadow:0 2px #7a98882b}
 .gameplay .clock-card b{font-size:17px;line-height:1.2}
 .gameplay .clock-card #day{font-size:10px}
 .gameplay .weather-badge{width:100%;white-space:nowrap;font-size:9px}
 .gameplay #order-rail{top:calc(63px + var(--safe-top));left:10px;width:calc(100% - 116px);display:flex;gap:4px;align-items:stretch}
 .gameplay .hanging-order{flex:1;min-width:0;padding:5px 7px 8px;border-radius:3px 3px 9px 3px;position:relative;border-width:1px;box-shadow:2px 2px #8f71452b;text-align:left}
 .gameplay .hanging-order small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
 .gameplay .hanging-order b{font-size:12px;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .gameplay .hanging-order em{font-size:9px;line-height:1.2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .gameplay .hanging-order>i{position:absolute;bottom:3px;left:7px;right:7px;height:3px;margin:0}
 .gameplay .rail-more{flex:0 0 39px;min-width:0;padding:3px;font-size:10px;line-height:1.35;background:#f3e6c9;border-radius:3px 8px 8px 3px}
 .gameplay .rail-rest{padding:6px 8px;text-align:left;width:100%;min-height:44px;box-sizing:border-box}
 .gameplay .rail-rest b{font-size:11px}.gameplay .rail-rest small{font-size:10px}
 .gameplay .rail-rest>span{display:none}
 .gameplay #nav{bottom:calc(5px + var(--safe-bottom));padding:4px;gap:6px;width:calc(100% - 14px);border-top:1px solid #dcd3bf;border-radius:0;background:linear-gradient(#fffdf7,#f4eedf);box-shadow:none}
 .gameplay #nav button{border:0;border-radius:14px;padding:0;box-shadow:0 2px #d9ccaf}
 .gameplay #nav button b{width:36px;height:36px}
 .gameplay #nav button span{font-size:12px;letter-spacing:0}
 .gameplay #next-action{bottom:calc(80px + var(--safe-bottom));padding:8px 10px 9px;gap:8px;max-height:none;overflow:visible;border-width:1px;border-radius:5px 15px 15px 5px;box-shadow:0 3px #9baa852b}
 .gameplay #next-action img{width:31px;height:40px;margin-top:17px}
 .gameplay #next-action small{font-size:10px;letter-spacing:.04em}
 .gameplay #next-action h3{font-size:14px;line-height:1.3;margin:2px 0 5px}
 .gameplay #next-action p{display:none}
 .gameplay #next-action button{min-height:40px;font-size:13px;line-height:1.25;padding:7px 10px;border-radius:9px;box-shadow:0 2px #335c4833}
 .gameplay .time-tools{top:auto;bottom:calc(184px + var(--safe-bottom));right:10px;gap:4px;z-index:3}
 .gameplay.has-next-action .time-tools{top:max(calc(122px + var(--safe-top)),var(--order-time-tools-top,calc(184px + var(--safe-top))));bottom:auto}
 .gameplay .time-tools button{min-height:32px;min-width:32px;padding:4px 7px;border-radius:50%;background:#fffdf4e6;box-shadow:0 2px #8c9c8522;font-size:10px}
 .gameplay .scene-tools{bottom:auto;top:4px;left:8px;gap:2px}
 .gameplay .scene-tools button{min-width:30px;padding:3px 6px;border-radius:50%;box-shadow:none;background:#fffdf4cc}
 .gameplay .scene-tools #reset-view,.gameplay .scene-tools #overview-view{display:none}
 .gameplay .scene-tools #photo-open{font-size:10px;border-radius:12px;padding:4px 7px}
 .gameplay .scene-tag{display:none}
 .gameplay.guiding:not(.drawer-open) #new-player-guide{bottom:calc(80px + var(--safe-bottom));padding:10px 12px;max-height:40dvh}
 .gameplay.guiding:not(.drawer-open) #new-player-guide h3{font-size:16px;margin:5px 0}
 .gameplay.guiding:not(.drawer-open) #new-player-guide p{font-size:13px;line-height:1.45}
 .gameplay.guiding:not(.drawer-open) #new-player-guide .guide-chapters{display:none}
 .gameplay .desk,.gameplay.drawer-open[data-panel=district] .desk{bottom:calc(82px + var(--safe-bottom))}
 .gameplay .scene #message{left:12px;right:12px;bottom:2px;transform:none;max-width:none;width:auto;min-height:58px;box-sizing:border-box;padding:8px 12px;margin:0;font-size:13px;line-height:1.45;text-align:left;border:1px solid #d6bc8c;border-left:4px solid #c7a56d;border-radius:5px 15px 15px 5px;background:#fff9e9;z-index:3;max-height:62px;overflow:hidden}
 .gameplay:not(.drawer-open):not(.photography) .scene:has(#message.notice-visible) #world{height:calc(100% - 64px)}
 .gameplay .scene:has(#message.notice-visible) .scene-dialogue{visibility:hidden}
 .gameplay .scene-dialogue span{font-size:13px;line-height:1.4}
 .gameplay .scene-dialogue b{font-size:11px}
 .gameplay.photography .scene-tools #reset-view,.gameplay.photography .scene-tools #overview-view{display:block}
}

/* A tiny break-room set around the authored portrait: window, coat hook and
   warm wood, rather than another framed stats card. No new texture requests. */
.gameplay .companion-stage{height:260px;border-radius:16px 16px 3px 3px;background:linear-gradient(0deg,#e5c9a3 0 18%,#bca487 18% 20%,transparent 20%),repeating-linear-gradient(90deg,#eee6db 0 28px,#f7efe3 28px 56px);border-bottom:7px solid #b99b7d}
.companion-window{position:absolute;left:17px;top:25px;width:116px;height:130px;border:6px solid #fff9ee;border-radius:65px 65px 3px 3px;background:radial-gradient(ellipse at 25% 100%,#80aa88 0 30%,transparent 31%),radial-gradient(ellipse at 100% 100%,#adc595 0 46%,transparent 47%),linear-gradient(#c2dce1,#f0f1d4);box-shadow:0 0 0 2px #c5ad8f,3px 4px #a98c6740}
.companion-window::after{content:"";position:absolute;inset:45% 0 auto;height:5px;background:#fff9ee}.companion-window i{position:absolute;left:48%;top:0;bottom:0;width:5px;background:#fff9ee}
.companion-coat{position:absolute;right:18px;top:15px;width:33px;height:40px;padding-top:7px;background:var(--apron,#87a58f);border-radius:8px 8px 12px 12px;transform:rotate(7deg);text-align:center;color:#fff6e1;box-shadow:2px 3px #9b816b22}
.companion-coat::before{content:"";position:absolute;left:10px;top:-9px;width:12px;height:10px;border:3px solid var(--apron,#87a58f);border-bottom:0;border-radius:10px 10px 0 0}
.companion-bunting{display:none}
.companion-figure{left:-8px;width:210px;height:210px}
.companion-quote{left:46%;right:12px;top:70px;font-size:13px;line-height:1.5;padding:9px 11px;border:1px solid #b8c6b4;background:#fffef6;border-radius:12px 12px 12px 2px}
.companion-nameplate{right:15px;bottom:15px;min-width:90px;padding:8px 10px;background:#fff5dc;transform:rotate(-3deg)}
.companion-nameplate h2{font-size:24px!important}
.gameplay .companion-vitals{padding:12px 2px;font-size:13px}

/* Ingredient-specific motion stays inside the workbench, and stops on pause. */
.mixing-theatre[data-family=coffee]{background:linear-gradient(#e9e1d7 64%,#b68f6e 64%,#e4c8aa 66%)}
.mixing-theatre[data-family=milk]{background:linear-gradient(#f3e6e9 64%,#c6aaa6 64%,#ecd5ce 66%)}
.mixing-theatre[data-family=tea]{background:linear-gradient(#e6eee2 64%,#a7b597 64%,#dfd4b6 66%)}
.mixing-theatre.brewing .glass-sample{animation:tea-mixing 1.3s ease-in-out infinite;transform-origin:50% 90%}
.mixing-theatre.brewing[data-family=coffee] .glass-sample{animation:coffee-stir 2.4s ease-in-out infinite}
.mixing-theatre.brewing[data-family=milk] .glass-sample{animation:coffee-stir 3.2s ease-in-out infinite}
.mixing-theatre.brewing[data-fizzy=true] .glass-sample{animation:coffee-stir 3.2s ease-in-out infinite}
.glass-sample[data-family=coffee] .glass-liquid{background:linear-gradient(to top,var(--drink-bottom) 0 31%,var(--drink-middle) 47% 58%,var(--drink-top) 72%)}
.mixing-theatre.brewing .glass-liquid{animation:tea-liquid 1.3s ease-in-out infinite alternate}
.mixing-theatre.brewing[data-family=coffee] .glass-liquid,.mixing-theatre.brewing[data-family=milk] .glass-liquid{animation-duration:3s}
@keyframes tea-mixing{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(5deg) translateY(-3px)}}
@keyframes coffee-stir{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}
@keyframes tea-liquid{from{transform:translateY(1px) rotate(1deg)}to{transform:translateY(-1px) rotate(-1deg)}}
.simulation-paused .mixing-theatre.brewing .glass-sample,.simulation-paused .mixing-theatre.brewing .glass-liquid{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.mixing-theatre.brewing .glass-sample,.mixing-theatre.brewing .glass-liquid{animation:none}}

/* Responsive picture wrappers preserve the existing flex/grid composition. */
.game-image{display:contents}.hud-mascot{width:40px;height:40px;object-fit:contain;vertical-align:middle}
/* Let longer dialogue grow above the portrait instead of crossing the face. */
@media(min-width:761px){
 /* Keep camera controls clear of the first-goal card and the central dock. */
 .gameplay .scene-tools{top:160px;bottom:auto;left:24px}
}
@media(max-width:760px){
 .gameplay .companion-stage{height:auto;min-height:290px;padding-top:1px}
 .companion-quote{position:relative;left:auto;right:auto;top:auto;margin:12px 12px 222px;min-height:0}
 .companion-window{top:auto;bottom:65px}
 .companion-coat{top:auto;bottom:165px}
}

/* Keep controls below the sticky notebook heading when focused or scrolled. */
.gameplay .desk{scroll-padding-top:76px;scroll-padding-bottom:20px}

/* Three cups on the first workbench: touch-sized choices, no new image payload. */
.first-flavors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.gameplay .first-flavors>button{display:flex;flex-direction:column;align-items:center;gap:8px;white-space:normal;min-width:0;padding:15px 10px;background:#fff5df;border:2px solid #dcc7a6;border-radius:22px 22px 8px 8px;box-shadow:0 4px 0 #d5b993;text-align:left;color:#4d584c}
.gameplay .first-flavors>button:nth-child(2){background:#f8e5d7}
.gameplay .first-flavors>button:nth-child(3){background:#ecf0d7}
.gameplay .first-flavors>button[aria-pressed=true]{border-color:#517b65;box-shadow:0 4px 0 #517b65;outline:2px solid #517b65;outline-offset:2px}
.first-flavors small{font-size:13px;line-height:1.55;display:block}
.first-flavors .glass-sample{width:62px;height:82px;flex-shrink:0;margin:0 auto;border-radius:7px 7px 15px 15px}
.first-flavors .glass-emblem{width:25px;height:25px;left:16px;top:36px;font-size:18px}
.first-flavors .glass-ice{transform:scale(.55);transform-origin:top left}
@media(max-width:580px){.first-flavors{grid-template-columns:1fr;gap:12px}.gameplay .first-flavors>button{display:grid;grid-template-columns:70px minmax(0,1fr);gap:3px 12px;padding:12px}.first-flavors .glass-sample{grid-row:span 3}.first-flavors b{font-size:16px}.first-flavors small{font-size:13px}}
.signature-journey>div{grid-template-columns:repeat(3,minmax(0,1fr))}.signature-journey span{font-size:12px}.signature-journey p{font-size:13px}
/* The shopkeeper's folded budget slips: local CSS, no new image downloads. */
.investment-board{margin:22px 0;padding:18px 16px;background:#f9f0dc;border:1px solid #d6c59e;border-radius:5px 20px 7px 16px;box-shadow:3px 5px 0 #dccfb455;color:#514737;overflow-wrap:anywhere}
.investment-board>header{display:flex;align-items:center;gap:12px;border-bottom:1px dashed #bfad8b;padding-bottom:12px}
.investment-board>header>span{display:grid;place-items:center;background:#dc997d;color:#fff8e7;width:42px;height:42px;border-radius:50%;font-size:28px;flex-shrink:0}
.investment-board h3,.investment-board h4{margin:3px 0 8px}.investment-board small{line-height:1.6}.investment-headline{font-weight:700;color:#536f58}
.investment-slip{position:relative;margin:17px 0;padding:19px 13px 14px;border-left:4px solid #94ae8b;background:#fffdf4;box-shadow:0 2px 5px #72644718}
.investment-slip h4{padding-right:32px;font-size:17px;line-height:1.55}.investment-slip p{font-size:14px;line-height:1.7;margin:9px 0}.investment-slip small{display:block;font-size:13px;color:#756950}
.investment-sticker{position:absolute;right:8px;top:-9px;border:3px solid #fffdf4;background:#e6c572;color:#624e30;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:24px;transform:rotate(9deg)}
.invest-hire{border-color:#d29d92}.invest-equipment{border-color:#8cabb8}.invest-research{border-color:#b1a0bd}.investment-effect{border-top:1px dotted #d9ccb4;padding-top:9px}
.investment-wallet{display:grid;gap:4px;padding:9px 0;font-size:14px}.investment-wallet span{font-size:13px}.investment-slip button{display:block;width:100%;min-height:44px;white-space:normal;line-height:1.5;margin-top:12px}
.investment-alternatives>summary,.investment-receipt>summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:700;line-height:1.5}.investment-alternatives[open]{border-top:1px dashed #bfad8b}
.investment-receipt{margin-top:14px;border-top:1px dashed #bdab89;background:#fff9e9;padding:0 12px}.investment-receipt>small{display:block;margin:6px 0;font-size:13px;line-height:1.6}.investment-receipt p{font-size:13px;line-height:1.7;text-align:left}
.investment-results{display:grid;grid-template-columns:1fr 1fr;gap:12px 9px;margin:14px 0}.investment-results div{min-width:0}.investment-results dt{font-size:12px;color:#746a57}.investment-results dd{font-size:14px;font-weight:700;margin:4px 0;color:#4b6655;font-variant-numeric:tabular-nums}
.investment-pending{font-size:13px;padding:12px 0;border-top:1px dashed #bdab89;line-height:1.7}.hiring-note{padding:12px;margin:12px 0;background:#f8efdf;border-left:3px solid #c79685;text-align:left;line-height:1.6}.hiring-note p{font-size:14px;margin:0 0 8px}.hiring-note b{display:block;font-size:14px}.hiring-note small{display:block;font-size:12px;margin-top:6px}
@media(max-width:359px){.investment-board{padding:14px 10px}.investment-slip{padding:18px 10px 12px}.investment-results{grid-template-columns:1fr}.investment-receipt{padding:0 8px}}

/* v038e: quiet saving choice and witnessed changes use existing scene space. */
.invest-save .investment-sticker{background:#d9e9cf;color:#4d7358}
.investment-field-notes{margin:12px 0;padding:10px 12px;border-left:3px solid #83ab91;background:#f2f6e9;font-size:13px;line-height:1.6}
.investment-field-notes p{margin:5px 0}
.queue-glance{display:flex;gap:9px;padding:5px 9px;background:#fff9e9ed;border:1px solid #d6c4a1;border-radius:6px;color:#5a705d;font-size:12px;white-space:nowrap;pointer-events:auto}
.queue-glance b{color:#3c6659}
.gameplay .scene-dialogue.is-investment{border-left-color:#6ba58d;background:#f6fff4}
@media(min-width:761px){
 .gameplay:not(.drawer-open):not(.photography) .scene-dialogue.is-investment:not([hidden]){display:flex;position:absolute;bottom:calc(var(--nav-height) + 30px);left:auto;right:24px;transform:none;width:min(440px,calc(100% - 410px));flex-direction:column;gap:4px;padding:10px 16px;background:#f6fff4f5;border:1px solid #9dbba4;border-radius:12px;color:#3e624d;text-align:left;font-size:14px;z-index:3}
}
@media(prefers-reduced-motion:reduce){.queue-glance{transition:none}}

@media(max-width:760px){
 .gameplay #order-rail .queue-glance{order:2;flex:0 0 46px;min-width:0;flex-direction:column;justify-content:center;gap:0;padding:3px 4px;font-size:10px;line-height:1.5;border-radius:3px 8px 8px 3px;box-shadow:none}
 .gameplay #order-rail .queue-glance span{display:flex;justify-content:space-between;gap:3px}
 .gameplay #order-rail .hanging-order{order:1}
 .gameplay #order-rail:has(.queue-glance) .rail-more{display:none}
}

@media(max-width:760px){.gameplay #order-rail .hanging-order em{font-size:11px;line-height:1.3}.gameplay #order-rail .queue-glance{font-size:11px}}

/* The day's working rhythm is a keepsake, with no extra management screen. */
.shop-rhythm{margin:16px 0;padding:14px 12px 12px;background:repeating-linear-gradient(0deg,#fffaf0 0 26px,#e5e8d5 27px,#fffaf0 28px);border:1px solid #d5cfb4;border-radius:3px 15px 4px 12px;box-shadow:2px 3px #aa9c7922;position:relative;color:#4e6250}
.shop-rhythm>header{display:flex;gap:8px;padding:0 0 10px;background:none;border:0}.shop-rhythm>header>span{font-size:30px;color:#c38a5e}.shop-rhythm h4{font-size:15px;margin:3px 0}.shop-rhythm p{font-size:13px;line-height:1.7;margin:9px 0}
.rhythm-hours{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rhythm-hour{background:#f0f3e5;border:1px solid #d0d9c2;padding:8px;min-width:0;border-radius:4px 8px 3px 3px}.rhythm-hour small,.rhythm-hour b,.rhythm-hour span{display:block}.rhythm-hour b{font-size:13px;margin:3px 0}.rhythm-hour span{font-size:11px;line-height:1.5}.rhythm-hour.is-rush{background:#fbedd5;border-color:#e0c496}.rhythm-hour.is-now{outline:2px solid #82a98d;outline-offset:-2px}.rhythm-hour i{display:block;height:4px;margin-top:6px;background:linear-gradient(90deg,#82a98d var(--fill),#dadfce var(--fill));border-radius:4px}
.rhythm-note{display:block;line-height:1.65;margin:8px 0;color:#73816d}.rush-keepsake{display:flex;align-items:center;gap:12px;padding:12px;background:#f5e7cf;border:2px dashed #bc9266;transform:rotate(-1deg);border-radius:10px;color:#8a603c}.rush-keepsake>span{font-size:38px}.rush-keepsake small{display:block;line-height:1.6;margin-top:4px}

.invest-shift .investment-wallet{padding:5px 0}.invest-shift>button{margin:6px 0 10px}.invest-shift>small{font-size:12px;line-height:1.55}

/* Street clipping and staff work cards: no extra bitmap requests. */
.street-clipping{margin:18px 0;padding:16px;background:#f7eed9;border:1px solid #c4ab81;border-top:5px solid #a67d59;box-shadow:3px 3px #c9b68e33;overflow-wrap:anywhere}.street-clipping h3{font-size:20px;line-height:1.5;margin:7px 0}.street-clipping p,.career-note p{font-size:14px;line-height:1.7}.street-tickets{display:grid;gap:9px;margin:12px 0}.street-tickets button{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:13px 10px;min-height:48px;background:#fff9ec;border:1px dashed #b8a181;text-align:left;white-space:normal}.street-tickets button[aria-pressed=true]{background:#dcead7;border:2px solid #5e8467}.street-tickets small{font-size:12px}.career-note{background:#f0e8f1;border-left:4px solid #a28eaa;padding:12px;margin:14px 0}.career-note label{display:block}.career-note small{display:block;font-size:12px;line-height:1.6}.street-result{margin:12px 0;padding:12px;background:#eef3e4;border:1px dashed #8caa76;line-height:1.6}.street-result small{font-size:12px}

/* Work tickets share the miniature shop's four station colors. */
.flow-board{margin:14px 0;padding:14px 12px;background:#fff8e9;border:1px solid #d8c7a7;border-radius:4px 14px 10px 4px;box-shadow:2px 3px 0 #bca47c20;min-width:0}
.flow-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:12px 0}.flow-post{background:#ede5d6;border-top:4px solid #bf9379;padding:8px 3px;text-align:center;min-width:0;position:relative}.flow-post[data-post=craft]{border-color:#76a28a}.flow-post[data-post=seal]{border-color:#a292be}.flow-post[data-post=serve]{border-color:#d6ac5f}.flow-post.busy{background:#fffdf7;box-shadow:0 2px 3px #735b3718}.flow-post>span{display:block;font-size:22px;color:#617f6e}.flow-post strong{display:block;font-size:14px}.flow-post small{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.flow-board>small{display:block;font-size:12px;line-height:1.65}.post-skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:10px 0}.post-skills span{border-bottom:2px solid #d4c6ad;text-align:center;font-size:12px}.post-skills b{display:block;font-size:19px;color:#416e5b}.career-note select{max-width:100%}

.layout-alert{padding:14px;margin:12px 0;border-left:4px solid #b15f50;background:#fff0df;color:#713e34;border-radius:4px 16px 16px 4px}.layout-alert p{line-height:1.6;font-size:14px}.floor-grid button.blocked-tile{background:#f5d0b8;color:#8a362c;box-shadow:inset 0 0 0 2px #ba6656}.flow-board>small{line-height:1.6}

@media(max-width:760px){.gameplay.drawer-open[data-panel=build] .desk{top:calc(174px + var(--safe-top));bottom:calc(82px + var(--safe-bottom))}.gameplay[data-panel=build] .free-plan{max-height:210px}.gameplay[data-panel=build] .intro{font-size:13px}}

/* A measuring overlay on the shop plan, not another modal or confirmation. */
.layout-editor{border:1px solid #cfc4a7;border-radius:16px;background:#fff9eb;overflow:hidden;margin:12px 0;box-shadow:0 3px 0 #bdad8b25}
.layout-readout{font-size:14px;line-height:1.55;font-weight:650;min-height:65px;padding:10px 12px;background:#e5efe6;color:#365c4e;border-bottom:1px dashed #a4b6a5}
.layout-readout[data-severity=tight]{background:#fff0cf;color:#785316}.layout-readout[data-severity=blocked]{background:#f9e1d9;color:#8c3932}
.layout-editor .free-plan{margin:0;filter:none;border-radius:0}.free-plan [data-preview-source]{opacity:.28}
.layout-editor .free-angle{border-radius:0;padding:6px 12px;display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}
.layout-editor .free-angle input{flex:1;min-width:0;width:auto;min-height:36px}.layout-editor .free-angle output{min-width:34px}.layout-size{font-size:12px;margin:0;padding:0 12px 8px;color:#697366}
@media(max-width:760px){.gameplay.drawer-open[data-panel=build] .desk{top:calc(130px + env(safe-area-inset-top))}.gameplay .layout-editor .free-plan{max-height:210px}.layout-readout{font-size:13px;min-height:64px;padding:8px 10px}.layout-size{display:none}}

.layout-editor+.grid-legend{font-size:12px;line-height:1.5}
@media(max-width:760px){.gameplay.drawer-open.layout-previewing[data-panel=build] #build-hint{position:fixed;top:calc(72px + env(safe-area-inset-top));bottom:auto;left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:420px;z-index:35;pointer-events:none;text-align:center;font-size:13px;line-height:1.45;padding:6px 10px;white-space:pre-line;border:1px solid #bead83;border-radius:12px;background:#fff9ebf5;color:#38564b;box-shadow:0 2px 8px #443c3520}}

.layout-history{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.layout-history button{min-height:42px;font-size:13px}.layout-history small{flex-basis:100%;font-size:12px;line-height:1.6;color:#6c7868}.layout-keyboard-help{font-size:12px;line-height:1.6;color:#6c7868;margin:8px 0}
@media(pointer:coarse){.layout-keyboard-help{display:none}}

/* One cached original portrait identifies the speaking colleague without
   widening the speech dock or covering the shop. Guests keep their own names. */
.dialogue-portrait{display:none}
@media(max-width:760px){
 .gameplay .scene-dialogue.has-portrait{padding-left:56px}
 .gameplay .scene-dialogue .dialogue-portrait{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:#f2e7ce;overflow:hidden}
 .gameplay .scene-dialogue.has-portrait .dialogue-portrait{display:block}
 .gameplay .dialogue-portrait picture,.gameplay .dialogue-portrait img{display:block;width:38px;height:38px;object-fit:contain}
 .gameplay .scene-dialogue span{font-size:14px;line-height:1.45}
}

/* An actual model-first workbench: the room remains the main surface. */
.gameplay.studio-open .desk,.gameplay.studio-open #play-hud,.gameplay.studio-open #nav,.gameplay.studio-open #new-player-guide,.gameplay.studio-open #next-action,.gameplay.studio-open .clock-card,.gameplay.studio-open .scene-tag,.gameplay.studio-open .scene-dialogue{display:none!important}
.gameplay.studio-open .scene{inset:80px 0 calc(270px + var(--safe-bottom))!important}
.gameplay.studio-open #world{height:100%!important;touch-action:none}
.gameplay.studio-open .scene-tools{top:0;bottom:auto;left:12px;right:auto}
.gameplay.studio-open #photo-open{display:none}
.gameplay.studio-open #build-hint,.gameplay.studio-open.layout-previewing #build-hint{position:fixed;top:auto;bottom:calc(274px + var(--safe-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:600px;z-index:8;background:#fff8e8ed;border:1px solid #c7ae85;border-radius:9px;padding:5px 10px;font-size:12px;line-height:1.4;pointer-events:none;text-align:center}
.gameplay.studio-open #message.notice-visible{position:fixed;top:76px;bottom:auto;left:12px;right:12px;max-width:600px;z-index:12;padding:10px;background:#fff7dfee}
#build-studio{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,740px);height:270px;padding:8px 12px calc(8px + var(--safe-bottom));box-sizing:content-box;border:1px solid #c6b69b;border-bottom:0;border-radius:24px 24px 0 0;background:linear-gradient(160deg,#fffdf3,#f2e6d1);box-shadow:0 -5px 24px #514a3619;z-index:10;color:#425e4c}
#build-studio[hidden]{display:none}
#build-studio button{font:inherit;font-size:12px;min-height:36px;border:1px solid #cdbda2;border-radius:10px;padding:5px 8px;background:#fffaf0;color:#46604d;box-shadow:0 2px #aa977528}
#build-studio button:disabled{opacity:.45}#build-studio button[aria-pressed=true]{border-color:#467c63;background:#e4efda;box-shadow:inset 0 -3px #8fad8a}
.studio-header{display:flex;gap:6px;align-items:center;height:42px;margin-bottom:3px}.studio-header>div{flex:1;min-width:0}.studio-header span,.studio-header b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-header span{font-size:10px;color:#9a7d59}.studio-header b{font-size:15px}.studio-header button:last-child{background:#4e7960!important;color:white!important}
.studio-selection{display:flex;align-items:center;gap:5px;height:46px}.studio-mini{width:42px;flex:none}.studio-mini svg{display:block;width:100%}.studio-selection strong,.studio-selection small{display:block;font-size:11px;white-space:nowrap}.studio-selection small{color:#958266;font-size:10px}.studio-selection>div:nth-child(2){flex:1}.studio-angle{width:60px;text-align:center;font-size:11px}.studio-angle span{display:block}.studio-angle input{width:60px;display:block;accent-color:#648d71;margin:2px 0}.studio-selection button{padding:4px!important;min-width:30px}
.studio-fine{display:flex;align-items:center;gap:4px;height:38px}.studio-fine>span{font-size:10px;color:#918169}.studio-fine button{min-height:32px!important;padding:3px 10px!important}.studio-swatches{display:flex;gap:4px;margin-left:auto}.studio-swatches button{min-width:24px;min-height:24px!important;width:24px;height:24px;padding:0!important;border-radius:50%!important;background:var(--swatch)!important;box-shadow:inset 0 0 0 3px #fff8!important}.studio-selection:not(:has(+.studio-fine)){margin-bottom:38px}.studio-instruction{height:84px;margin:0;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1.7;color:#7c846b;background:radial-gradient(ellipse,#f3e8c9,transparent 70%)}
.studio-categories{display:flex;align-items:center;gap:4px;height:40px;border-bottom:1px dashed #d8c8aa}.studio-categories button{border:0!important;min-width:0;font-size:12px!important;padding:4px 8px!important}.studio-categories button:nth-last-child(2){margin-left:auto}
.studio-tray{display:flex;gap:8px;overflow-x:auto;height:90px;padding:6px 1px 0;scrollbar-width:thin;scrollbar-color:#c4b99a transparent}.studio-tray>button{flex:0 0 86px;padding:2px 4px!important;background:linear-gradient(#fffaf0,#f0e5cf)!important;border-radius:9px 9px 14px 14px!important}.studio-tray svg{height:42px;width:60px;display:block;margin:auto}.studio-tray b,.studio-tray small{display:block;line-height:1.4;font-size:10px}.studio-tray small{color:#946a42;font-size:10px}.studio-tray>p{font-size:12px;line-height:1.8;margin:10px}
.studio-return{background:#e6efd9!important;color:#416e52!important;margin-bottom:16px}
@media(min-width:761px){.gameplay.studio-open .scene{bottom:290px!important}#build-studio{width:720px}.studio-tray>button{flex-basis:96px}.studio-header b{font-size:18px}}
@media(max-width:760px){.gameplay.studio-open .scene{top:64px!important;bottom:calc(286px + var(--safe-bottom))!important}#build-studio{width:calc(100% - 20px);height:268px;padding:6px 9px calc(6px + var(--safe-bottom));border-radius:20px 20px 0 0}.studio-header button{font-size:11px!important;padding:4px 6px!important}.gameplay.studio-open #build-hint,.gameplay.studio-open.layout-previewing #build-hint{bottom:calc(285px + var(--safe-bottom));font-size:11px;padding:4px 8px}.gameplay.studio-open #message.notice-visible{top:60px}.studio-selection{gap:3px}.studio-mini{width:34px}.studio-categories{gap:2px}.studio-categories button{padding:4px 6px!important}.studio-fine button{padding:3px 8px!important}.studio-fine>span{font-size:9px}}

.gameplay.drawer-open.studio-open.layout-previewing[data-panel=build] #build-hint{top:auto;bottom:calc(285px + var(--safe-bottom));left:50%;right:auto;max-width:600px;font-size:12px;line-height:1.45;z-index:8}
.gameplay.drawer-open.studio-open .scene-tools{display:flex;top:0;bottom:auto;left:10px;right:auto}

.gameplay.studio-open:not(.layout-previewing) #build-hint{display:none!important}
.studio-tray b{font-size:11px}.studio-tray small{font-size:11px}

.gameplay.studio-open #reset-view{display:block!important}

/* The fitting room uses existing Blender pieces; these tactile swatches need no image downloads. */
.fitting-parts,.fitting-slots{display:flex;gap:5px;justify-content:center;margin:4px 0}.fitting-parts button{flex:1;min-height:40px!important}
.fitting-heading b{font-size:16px}.fitting-heading>button{background:#f2e3cb!important;color:#5e7258!important}
.fitting-swatches{height:100px}.fitting-swatches>button{flex:1 0 78px!important}.material-sample{display:block;width:58px;height:42px;margin:3px auto 5px;border-radius:4px 4px 10px 10px;box-shadow:0 3px 0 #6a513a24,inset 0 0 0 2px #fff8;background:var(--swatch);color:#fff9e5;line-height:42px;font-weight:bold}
.sample-classic{background:repeating-linear-gradient(90deg,#d3b782 0 7px,#e6cf9d 8px 16px)}.sample-garden{background:repeating-linear-gradient(90deg,#7f9e82 0 12px,#acc39f 12px 14px)}.sample-rose{background:repeating-conic-gradient(#e1b5af 0 25%,#fae6d5 0 50%) 0/16px 16px}.sample-retro{background:repeating-conic-gradient(#50887d 0 25%,#e4d5a7 0 50%) 0/22px 22px}.sample-wall{border-radius:12px 12px 2px 2px}.sample-sign{width:66px;height:30px;line-height:30px;margin:9px auto 11px;border:2px solid #f6e7c6;box-shadow:0 3px #917448;color:#304b40}.sample-accent{font-size:24px;background:#f6e2bd;color:#987259}
.fitting-pieces{display:flex;gap:5px;overflow:auto;height:52px;margin:3px 0}.fitting-pieces button{display:flex;align-items:center;gap:4px;flex-shrink:0;font-size:11px!important}.fitting-pieces svg{width:38px;height:36px}.fitting-slots button{flex:1;min-height:36px!important}
.fitting-receipt{margin-top:6px;border-top:1px dashed #cbb38d;padding-top:6px}.fitting-receipt>div:first-child{display:flex;justify-content:space-between;align-items:center}.fitting-receipt b{color:#735c3d;font-size:15px}.fitting-receipt span{font-size:12px;color:#7f785f}.fitting-receipt p{font-size:11px;line-height:1.4;margin:4px 0;min-height:16px}.fitting-actions{display:flex;gap:8px}.fitting-actions button{flex:1;min-height:42px!important}.fitting-actions button.primary{background:#4c795f!important;color:white!important}
#build-studio:has(.fitting-heading){height:auto;min-height:294px;background:radial-gradient(ellipse at top right,#ecd3c1aa,transparent 55%),#fff6df;border-color:#c5a888;padding-bottom:10px}
.gameplay.fitting-open .scene{bottom:326px!important}.gameplay.fitting-open:has(.fitting-pieces) .scene,.gameplay.fitting-open:has(.fitting-slots) .scene{bottom:378px!important}
@media(max-width:760px){.studio-header>div{min-width:46px}.studio-header b{font-size:13px}.studio-header span{font-size:9px}#build-studio:has(.fitting-heading){width:calc(100% - 12px);padding:5px 8px calc(8px + var(--safe-bottom));min-height:0}.gameplay.fitting-open .scene{bottom:calc(314px + var(--safe-bottom))!important}.gameplay.fitting-open:has(.fitting-pieces) .scene{bottom:calc(368px + var(--safe-bottom))!important}.gameplay.fitting-open:has(.fitting-slots) .scene{bottom:calc(354px + var(--safe-bottom))!important}.fitting-parts{gap:3px}.fitting-parts button{padding:4px!important}.fitting-heading b{font-size:14px}.fitting-swatches{gap:5px}.fitting-swatches>button{flex:1 0 65px!important}.fitting-swatches b{font-size:10px}.fitting-swatches small{font-size:10px}.material-sample{width:50px}.sample-sign{width:54px}.fitting-receipt p{min-height:30px}.gameplay.fitting-open #build-hint{display:none!important}}

.studio-purchase{display:flex;align-items:center;justify-content:space-between;height:38px;gap:6px;font-size:12px}.studio-purchase .primary{background:#4d795f!important;color:white!important}.studio-selection:has(+.studio-purchase){margin-bottom:0!important}
/* The live tray height keeps short phones clear of both the receipt and the scene. */
.gameplay.fitting-open .scene,.gameplay.fitting-open:has(.fitting-pieces) .scene,.gameplay.fitting-open:has(.fitting-slots) .scene{bottom:var(--fitting-height,340px)!important}
#build-studio:has(.fitting-heading){box-sizing:border-box;min-height:0;max-height:calc(100dvh - 220px);display:flex;flex-direction:column;overflow:hidden}
.fitting-heading,.fitting-parts,.fitting-receipt{flex-shrink:0}.fitting-options{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:2px}
.fitting-heading{gap:5px}.fitting-heading>div{flex:1}.fitting-heading b{font-size:14px}.fitting-heading button{font-size:11px!important;white-space:nowrap}
.fitting-parts button{position:relative;min-height:40px!important}.fitting-parts i{display:inline-grid;place-items:center;min-width:14px;height:14px;border-radius:50%;margin-left:3px;font-size:9px;font-style:normal;background:#4c795f;color:#fff}
.fitting-swatches{height:108px;scroll-snap-type:x proximity;scrollbar-width:thin}.fitting-swatches>button{scroll-snap-align:start;position:relative}.fitting-swatches>button[aria-pressed=true]{outline:2px solid #4c795f;outline-offset:-3px}.fitting-swatches small{white-space:nowrap;font-size:10px}
.sample-sign{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding-inline:2px;box-sizing:border-box}
.fitting-changes{display:flex;gap:5px;overflow-x:auto;white-space:nowrap;padding:3px 1px;scrollbar-width:thin}.fitting-changes button{flex-shrink:0;border-style:dashed!important;min-height:36px!important;font-size:10px!important;padding:3px 7px!important;background:#f1ebda!important}.fitting-changes span{margin-left:4px}
.fitting-receipt{background:#fff8e9;border-radius:10px;padding:6px 7px 0}.fitting-receipt p{font-size:11px;min-height:0}.fitting-actions button{min-height:44px!important}.fitting-pieces button,.fitting-slots button{min-height:44px!important}
@media(max-width:380px){.fitting-heading b{font-size:11px}.fitting-heading button{font-size:10px!important;padding:4px!important}.fitting-swatches{height:98px}.material-sample{height:34px;line-height:34px;margin-block:2px 4px}.fitting-parts button{font-size:11px!important}.fitting-receipt p{font-size:10px;line-height:1.35;margin:3px 0}}

.person-mind{padding:12px 14px;margin:12px 0;border:1px solid #cad8c0;border-left:3px solid #84a086;border-radius:6px 14px 14px 6px;background:#f5f7eb;color:#3f5d4c;text-align:left}.person-mind>small{font-size:11px;color:#647c5d;letter-spacing:.08em}.person-mind p{font-size:13px!important;line-height:1.65;margin:5px 0 8px}.person-mind summary{min-height:40px;display:list-item;line-height:40px;font-size:12px;cursor:pointer}.person-mind details>small{display:block;margin:7px 0;font-size:11px;line-height:1.6;color:#65745c}.person-mind details{border-top:1px dashed #ccd8bd;padding-top:2px}.person-mind+button{min-height:44px}.person-mind:focus-within{outline:2px solid #799b79;outline-offset:2px}
@media(min-width:761px){.gameplay:not(.drawer-open):not(.studio-open):not(.photography) .scene-dialogue:not([hidden]){display:flex;position:absolute;left:50%;right:auto;bottom:calc(var(--nav-height) + 24px);transform:translateX(-50%);width:min(390px,calc(100% - 48px));box-sizing:border-box;flex-direction:column;gap:4px;padding:10px 16px;border:1px solid #c7d3be;border-radius:12px;background:#fffdf5f5;text-align:left;z-index:3}.gameplay .actor-label{font-size:11px;padding:4px 8px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gameplay .actor-label.focused{outline:2px solid #8caa7a}}
/* v056: a tea-house material language shared by the HUD, notebooks and studio. */
body.gameplay{
 --ink:#364e46;--green:#477b66;--muted:#787c70;--line:#ddd9c7;
 --paper:#fffdf5;--rim:#c5b79a;--coral:#c87c80;
 --tea-cream:#fff9e9;--tea-sage:#dce8da;--tea-rose:#f4e4e4;--tea-lavender:#eae5f0;
 font-family:ui-rounded,'PingFang TC','Microsoft JhengHei','Noto Sans TC',sans-serif;
 background:#edf0e7;
}
.gameplay #game>header::before{background:linear-gradient(#fffdf5f5 54%,#fffdf500)}
.gameplay .brand strong{color:#355a4b;letter-spacing:.06em}
.gameplay .brand small{color:#827d66;letter-spacing:.12em}
.gameplay .top-stats>div{border:1px solid #d4caae;background:linear-gradient(145deg,#fffdf9,#f7f0dc);box-shadow:inset 0 1px #fff,0 3px 0 #cbc1a62b;border-radius:18px}
.gameplay .top-stats>div:nth-child(2){background:linear-gradient(145deg,#fffafa,#f3e4e5);border-color:#dec6cb}
.gameplay .top-stats>div:nth-child(3){background:linear-gradient(145deg,#fcfff8,#e3eddc);border-color:#cad7bc}
.gameplay .top-stats small{color:#837d68;letter-spacing:.06em}
.gameplay .top-stats strong{color:#425b4a;font-variant-numeric:tabular-nums}
.gameplay .clock-card{background:#fffdf5ed;border:1px solid #c9d5c5;box-shadow:0 3px 0 #9cac9424;color:#4b6856}
.gameplay .clock-card b{font-variant-numeric:tabular-nums;color:#3d5e50}
.gameplay .scene-tools button{border:1px solid #cbc8af;background:#fffdf3f0;box-shadow:0 2px 0 #7f927522;color:#526f60}
.gameplay .scene-tag{color:#617466}
.gameplay #nav{background:#fffdf4ed;border-color:#d9d7bf;box-shadow:inset 0 1px #fff,0 5px 20px #425d4520}
.gameplay #nav button{background:linear-gradient(155deg,#fffdf7,#eeeede);border-color:#dfdcc5;color:#506252;box-shadow:inset 0 1px #fff,0 2px #a6ad8e30}
.gameplay #nav button:nth-child(2){background:linear-gradient(155deg,#fff9f7,#f1dfe0);color:#9a6066}
.gameplay #nav button:nth-child(3){background:linear-gradient(155deg,#fcfaff,#e8e1f0);color:#7b688d}
.gameplay #nav button:nth-child(4){background:linear-gradient(155deg,#fffef5,#f1e6c5);color:#917549}
.gameplay #nav button:nth-child(5){background:linear-gradient(155deg,#f8fcff,#e0e9eb);color:#5d7c84}
.gameplay #nav button.active{border-color:#7eaa8c;background:linear-gradient(145deg,#f5fbea,#cfe3c9);color:#3b674c;box-shadow:inset 0 0 0 1px #8cb097,0 3px #7f9b6b33}
.gameplay .desk{background:#fffdf5;border-color:#d0c9b3;box-shadow:0 5px 0 #a6ae8b24,0 15px 40px #41574124}
.gameplay .desk-heading{background:#fffdf5;border-bottom:1px dashed #d5c8aa}
.gameplay #drawer-title{color:#486451;letter-spacing:.07em}
.gameplay #next-action,.gameplay #new-player-guide{background:linear-gradient(135deg,#fffef8,#f2f3df);border-color:#c5d0b5}
.gameplay #next-action h3,.gameplay #new-player-guide h3{color:#41674e}

/* v060: keep each action in its own hit area; no simulation or frame-time work. */
/* v062: persistent letters are earned by actual paid service. */
.street-letter{margin:17px 0;padding:15px 14px;background:#fcf5e6;border:1px solid #dbcfb3;border-left:3px solid #b8a473;border-radius:4px 13px 13px 4px;scroll-margin-block:80px 15px;text-align:left}
.street-letter>header{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.street-letter header small{font-size:10px;color:#8e7952}.gameplay .street-letter h3{font-size:17px;line-height:1.5;margin:3px 0;color:#5b704e}
.gameplay .street-letter p{font-size:12px;line-height:1.8;margin:8px 0;color:#6f624a}
.letter-progress{display:flex;gap:10px;align-items:start;border-top:1px dashed #d6c8aa;padding-top:10px;margin:12px 0}
.letter-progress>b{flex:none;font-size:19px;line-height:1.5;color:#4d7456;font-variant-numeric:tabular-nums}
.letter-progress>span{font-size:12px;line-height:1.7}.letter-rule{display:block;font-size:10px;color:#8b7e66;line-height:1.7;margin-top:9px}
.letter-memories{margin-top:14px;border-top:1px dashed #d6c8aa}.letter-memories>summary,.compact-letter>summary{cursor:pointer;min-height:44px;font-size:12px;font-weight:700;line-height:1.7;padding:10px 0;color:#61764f}
.letter-memories article{display:flex;gap:10px;margin:10px 0}
.letter-memories b{font-size:12px}.letter-memories small{font-size:10px;color:#8c8068}
.compact-letter{padding-block:2px}.compact-letter>header{margin-top:9px}
/* v061: a small opening ritual, using the same real budgets and street events. */
.day-plan{padding:0 0 20px;border-bottom:1px dashed #c9cbb6;margin-bottom:18px}
.day-plan-heading{display:flex;justify-content:space-between;gap:8px;color:#64806b;font-size:11px;line-height:1.5}
.day-plan h2{margin:9px 0 5px!important;color:#3f674e;font-size:24px!important;line-height:1.35;letter-spacing:.04em}
.day-plan-goal{font-size:12px!important;color:#7b705c;line-height:1.6;margin:0 0 12px!important}
.day-wallet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0;padding:10px 0;border-block:1px solid #ded8bd}
.day-wallet>div{min-width:0;border-right:1px solid #e0dbc9;padding-right:4px}.day-wallet>div:last-child{border:0}
.day-wallet dt{font-size:10px;line-height:1.5;color:#7e7867}.day-wallet dd{font-size:20px;font-weight:800;margin:3px 0 0;color:#42634c;font-variant-numeric:tabular-nums}
.day-wallet .is-tight dd,.day-budget-warning{color:#9d6045}
.gameplay .day-open{width:100%;min-height:48px;margin:2px 0 7px;font-size:14px;white-space:normal}
.gameplay .day-cost-note{font-size:11px!important;line-height:1.6;color:#797460;margin:4px 0 12px!important}
.gameplay .day-budget-warning{font-size:12px;line-height:1.6}
.day-agenda{margin:13px 0;border-block:1px dashed #ccc8b0;padding:4px 0}
.day-agenda summary{position:relative;cursor:pointer;min-height:44px;padding:8px 18px 8px 0;line-height:1.5;color:#4c664d;list-style:none}
.day-agenda summary::-webkit-details-marker{display:none}
.day-agenda summary:after{content:'＋';position:absolute;right:1px;top:15px;font-size:16px;color:#7b8967}
.day-agenda[open] summary:after{content:'−'}
.day-agenda summary>span,.day-agenda summary>small{display:block;font-size:10px;color:#8b7c5e}
.day-agenda summary>b{font-size:14px}.day-agenda>p,.day-tradeoff{font-size:12px!important;line-height:1.7}
.day-agenda>small{font-size:11px;color:#7b7561;line-height:1.6}
.day-tickets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}
.day-tickets button{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 4px;min-width:0;min-height:104px;background:#f7f1df;border:1px solid #d6c9aa;color:#665b45;border-radius:8px}
.day-tickets b{font-size:12px}.day-tickets strong{font-size:18px}.day-tickets small{font-size:10px;line-height:1.6}
.day-tickets [aria-pressed=true]{background:#e7efdf;border:2px solid #6c9276;box-shadow:0 2px #7d96715c;color:#385c44}
.day-tickets [aria-pressed=true] b:before{content:'✓ ';color:#4e7d57}
.day-last{margin:14px 0;padding:4px 0 4px 12px;border-left:3px solid #c4ac76;text-align:left}
.day-last>small{font-size:10px;color:#8a7852;display:block}.day-last>b{font-size:13px;line-height:1.6}
.gameplay .day-last>p{font-size:12px;line-height:1.65;margin:4px 0}
.day-person{display:flex;align-items:start;gap:10px;margin:14px 0;padding:10px;background:#f2eee1;border-radius:8px}
.day-person picture{width:40px;height:40px;flex:none}.day-person img{width:40px;height:40px;object-fit:contain}
.day-person b{font-size:12px}.gameplay .day-person p{font-size:12px;line-height:1.65;margin:5px 0}
.day-stock{width:100%;min-height:44px!important}
.shop-journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:2px 0 18px}
.shop-journey>div{border-top:3px solid #d7d1c0;padding-top:7px;min-width:0;color:#928873}
.shop-journey small{display:block;font-size:12px}.shop-journey b{display:block;font-size:12px;line-height:1.6;margin:3px 0}.shop-journey span{font-size:10px}
.shop-journey .is-current{border-color:#659075;color:#416a50}.shop-journey .is-complete{border-color:#bb9f5d;color:#83703e}
.receipt-compare{display:flex;flex-wrap:wrap;gap:5px 12px;justify-content:center;padding:7px 0;margin:5px 0;font-size:11px;color:#7c715c;border-bottom:1px dashed #d5c9b1}
.receipt-compare>small{width:100%;font-size:10px;line-height:1.5;color:#8c8372}
.receipt-stories{text-align:left;border-block:1px solid #ded6c0;margin:14px 0;padding:4px 0}
.receipt-stories>summary{cursor:pointer;min-height:44px;padding:10px 2px;font-size:12px;font-weight:700;color:#5b775d}
.gameplay .day-receipt .next-day-note>button{min-height:44px;margin:7px 0 3px!important}
.gameplay .receipt-return{min-height:44px;width:100%;border:1px solid #d5c9b1;background:#f4f0df;border-radius:9px;color:#516a51}
@media(max-width:380px){.day-plan h2{font-size:21px!important}.day-wallet dd{font-size:18px}.day-tickets{gap:4px}.day-tickets button{padding-inline:2px}.day-tickets b{font-size:11px}.shop-journey b{font-size:11px}.gameplay .day-receipt .receipt-illustration{height:30px;margin-bottom:0}.gameplay .day-receipt h2{font-size:17px!important}}
@media(min-width:761px){
 .gameplay[data-trading=open]:not(.drawer-open):not(.studio-open):not(.photography) .scene-tools{left:201px;top:165px;bottom:auto}
 /* Give the full order rail its own side, including waits and the overflow link. */
 .gameplay[data-trading=open] #next-action{left:auto;right:24px;bottom:130px}
 .gameplay[data-trading=open].has-next-action:not(.drawer-open):not(.studio-open):not(.photography) .scene-dialogue:not([hidden]){left:201px;right:398px;transform:none;width:auto;max-width:390px}
}
.gameplay .opening-stamps{margin:10px 0;gap:5px}
.gameplay .opening-stamps b{width:25px;height:25px;font-size:13px}
.gameplay .opening-stamps small{margin-top:4px;font-size:10px}
.gameplay .opening-controls{scroll-margin-block:75px 20px}
.gameplay .opening-controls>.primary{width:100%;margin:9px 0}
.gameplay .opening-name input{width:100%;min-height:44px;margin-top:5px}
.gameplay .first-flavors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.gameplay .first-flavors button{min-width:0;padding:9px 5px;display:flex;flex-direction:column;align-items:center}
.gameplay .first-flavors button b{font-size:13px;line-height:1.6}
.gameplay .first-flavors button small{font-size:11px;line-height:1.5}
.gameplay .first-flavors .glass-sample{transform:scale(.75);margin:-10px 0}
.service-receipts{margin:12px 0;padding:10px 12px;background:#fbf2e3;border:1px solid #deccb2;border-radius:10px;font-size:13px;line-height:1.6}
.service-receipts summary{cursor:pointer;min-height:28px;font-weight:700;color:#805e48}
.service-receipts p{padding:8px 0;border-top:1px dashed #dacbb5}
.service-receipts small{display:block;font-size:12px;color:#736655;line-height:1.7}
.service-record-note{font-size:12px;color:#736655;line-height:1.6}
.opening-team-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.opening-team-options>button{position:relative;min-height:108px;padding:10px 8px;display:flex;flex-direction:column;justify-content:center;gap:4px;text-align:center;background:#f1f5e9;border-color:#b4c6ab}
.opening-team-options>button img{width:36px;height:36px;object-fit:contain;align-self:center}
.opening-team-options b{font-size:14px}.opening-team-options span,.opening-team-options small{font-size:12px;line-height:1.5}
.opening-team-details{margin-top:12px;font-size:13px;line-height:1.7}
.opening-team-details summary{min-height:36px;cursor:pointer;color:#697557}
@media(max-width:760px){
 .gameplay .first-flavors button small:first-of-type{display:none}
 .gameplay .first-flavors button b{font-size:12px}
 .gameplay .first-flavors button small:last-of-type{font-size:10px}
 .gameplay .first-flavors .glass-sample{width:48px;height:64px;transform:scale(.75);margin:-8px 0}
 .gameplay .first-flavors .glass-emblem{left:12px;top:28px;width:21px;height:21px}
 .opening-team-options>button{min-height:98px;padding:8px 5px}
 .opening-team-options b{font-size:13px}.opening-team-options small,.opening-team-options span{font-size:11px}
}
@media(max-width:380px) and (max-height:650px){
 .gameplay.guiding[data-guide=open] #new-player-guide{max-height:48dvh;bottom:calc(80px + var(--safe-bottom))}
 .gameplay.guiding[data-guide=open] #new-player-guide .guide-note{display:none}
 .gameplay .opening-chapter{padding-top:14px}
 .gameplay .opening-cup{margin:5px 0}
}
.gameplay .scene-dialogue{background:#fffdf5f7;border-color:#c7d3be;color:#4f6654;box-shadow:0 3px 8px #58734916}
.gameplay .scene-dialogue b{color:#538268;letter-spacing:.05em}
.gameplay .scene-dialogue .dialogue-portrait{background:#e6eddb;border:1px solid #d0d9be}
.gameplay .actor-label{background:#fffdf2ed;box-shadow:0 2px 0 #6b806326;border:1px solid #d9dfca;color:#476555}
.gameplay dialog.books-modal{background:radial-gradient(ellipse at top left,#e4edd8,transparent 65%),linear-gradient(135deg,#fffdf5,#f6efe0);border-color:#b4c4a9}
.gameplay .shelf-welcome h2{color:#3e684f;letter-spacing:.16em}
.gameplay .new-book-form{background:linear-gradient(145deg,#f2f6e9,#e4eddc);border-color:#c3d2b8}
#build-studio{background:linear-gradient(145deg,#fffdf5,#efefdd);border-color:#b8c7a9;box-shadow:0 -4px 22px #4d704519}
#build-studio:has(.fitting-heading){background:radial-gradient(ellipse at top left,#e5eedc80,transparent 60%),#fffdf3;border-color:#bccbad}
.fitting-heading{border-bottom:1px solid #dedfca;padding-bottom:5px}
.fitting-heading>div>span{color:#8a9875;letter-spacing:.08em}
.fitting-parts button[aria-pressed=true]{background:#dcead6!important;border-color:#80a689!important}
.fitting-swatches>button{background:#fffdf5!important;border-color:#d8d4b8!important}
.fitting-swatches>button[aria-pressed=true]{background:#f0f6e8!important}
.fitting-receipt{background:#f2f2df;border-top-color:#c4cdb0}
.fitting-receipt b{color:#4a674f}
.gameplay[data-daylight=evening] #game>header::before{background:linear-gradient(#fcf2e9f5 54%,#fcf2e900)}
.gameplay[data-weather=rain] .clock-card{background:#f4f8fbf5;border-color:#bdcdd3}
@media(max-width:760px){
 .gameplay .top-stats>div{border-radius:15px}
 .gameplay #nav{border-top:1px solid #d2d9c4;background:linear-gradient(#fffdf5,#f2f1e3);box-shadow:0 -3px 18px #55734c0c}
 .gameplay #nav button{border-radius:14px;box-shadow:inset 0 1px #fff,0 2px #8e9d7330}
 .gameplay #nav button.active{box-shadow:inset 0 0 0 1px #7c9d7e,0 3px #72956833}
 .gameplay #play-hud::after{background:linear-gradient(#fffdf5,#f1f0e2);border-color:#d9dfc8}
 .gameplay .scene-dialogue.has-portrait{padding-left:58px}
 .fitting-parts button{color:#566b55!important}
}
@media(prefers-reduced-motion:reduce){.gameplay *, .gameplay *::before,.gameplay *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.person-mind .memory-tone{padding:7px 9px;border-left:2px solid #c5ad7e;background:#faf7e9;border-radius:0 6px 6px 0}.person-mind .person-memory{padding:4px 0 4px 10px;border-left:1px solid #c5d2bd;overflow-wrap:anywhere}
.letter-seal{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid #a5bda1;border-radius:50%;background:#edf2e6;color:#48664c;font-size:21px;font-weight:700;box-shadow:inset 0 0 0 3px #faf9ee}
.street-proof-rule{display:grid;gap:4px;padding:10px 12px;border-left:3px solid #839b75;background:#eef1e4;color:#425d48;font-size:12px;line-height:1.7;border-radius:2px 8px 8px 2px}.street-proof-rule>b{font-size:11px;color:#65805c;letter-spacing:.04em}.street-partners{margin:16px 0;border-top:1px dashed #d2c5a8}.street-partners>summary{min-height:44px;padding:11px 0;line-height:1.6;cursor:pointer;font-size:12px;color:#526d51;font-weight:700}.street-partners>div{display:grid;gap:3px;padding:10px 0;border-top:1px solid #e2dac6;font-size:12px}.street-partners>div>b{font-variant-numeric:tabular-nums;font-size:11px;color:#6e795a}.street-partners small{font-size:11px;line-height:1.6;color:#82765e}.street-partners>p{font-size:11px;line-height:1.7;color:#766c58}
.street-result>.tiny{display:block;min-height:44px;margin:10px 0;font-size:12px}
.precision-layout{margin:12px 0;padding:8px 12px;border:1px solid #b2bfa7;border-radius:12px;background:#f8f3e6;color:#365747}
.precision-layout summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}
.precision-layout p{font-size:12px;line-height:1.65;margin:6px 0 10px}
.precision-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.precision-fields label{font-size:11px;min-width:0}
.precision-fields input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin-top:4px;font-size:16px;padding:6px;border:1px solid #9cae92;border-radius:7px;background:#fffdf5;color:#264c3e}
.precision-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.precision-actions button{min-height:44px;white-space:normal;font-size:12px;padding:7px}
.precision-layout :focus-visible{outline:3px solid #876416;outline-offset:2px}
.precision-layout output{display:block;font-size:12px;line-height:1.65;padding:9px;border-left:3px solid #6e9078;background:#eaf0e2;overflow-wrap:anywhere}

/* Keep preparation short; proof and routine controls remain optional. */
.day-last>summary,.day-capacity summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:12px;line-height:1.6}
.day-capacity{margin:12px 0;padding:12px 14px;border-left:3px solid #74927a;background:#f1f2e6;text-align:left;border-radius:0 8px 8px 0;overflow-wrap:anywhere}
.day-capacity>b,.day-capacity>small{display:block}.day-capacity>b{font-size:13px;line-height:1.6;color:#3f674e}.day-capacity>small{font-size:10px;color:#6a745f}
.gameplay .day-capacity p{font-size:12px;line-height:1.65;margin:5px 0}.day-capacity details>small{font-size:11px;line-height:1.6;display:block;color:#716e59}
.day-capacity button{max-width:100%;white-space:normal;min-height:44px}.day-capacity details{border-top:1px dashed #c5ccb6;margin-top:7px}
.precision-fields input[aria-invalid="true"]{border-color:#a45038;background:#fff1e9;outline-offset:2px}
.precision-actions button:disabled{opacity:.48;cursor:not-allowed}

/* Transparent toolbar space must never intercept the map or the shop. */
.gameplay .scene-tools{height:fit-content;pointer-events:none}
.gameplay .scene-tools button{pointer-events:auto}
.gameplay .scene-tag #district-name{min-height:44px}
.gameplay #panel details>summary{scroll-margin-top:88px}
@media(min-width:761px){.gameplay .scene-tag,.gameplay.drawer-open .scene-tag{top:auto;bottom:72px;left:24px;right:auto;width:fit-content;height:fit-content;z-index:4;min-height:44px;pointer-events:none}.gameplay .scene-tag #district-name{pointer-events:auto}}
@media(max-width:580px){.gameplay .first-flavors button small:first-of-type{display:block;font-size:10px;line-height:1.35}}

/* One existing goal chip in the unused preparation row; no extra HUD panel. */
@media(max-width:760px){
 .gameplay[data-trading=closed]:not(.drawer-open):not(.guiding):not(.photography) #goal-badge{display:block;top:calc(63px + var(--safe-top));left:10px;right:110px;width:auto;max-width:none;min-height:44px;max-height:55px;overflow:hidden;padding:6px 9px;border-width:1px;border-radius:10px;font-size:11px;line-height:1.4;box-shadow:none}
 .gameplay[data-trading=closed]:not(.drawer-open):not(.guiding):not(.photography) .scene-tag{display:flex;top:4px;bottom:auto;left:10px;right:auto;max-width:48%;height:fit-content;width:fit-content;padding:0 5px;pointer-events:none}
 .gameplay[data-trading=closed] .scene-tag #district-name{min-height:36px;pointer-events:auto;font-size:11px}
 .gameplay[data-trading=closed]:not(.drawer-open) .scene-tools{top:45px}
}
.gameplay #build-hint{background:#fff9ebf5;color:#294d3e;border:1px solid #b6aa86;font-weight:600;text-shadow:none}
.business-growth-line{font-size:12px;line-height:1.5;color:#42634e;margin:7px 0 10px}
.goal-gap{padding:10px 12px;background:#eef2e5;border-left:3px solid #809a72;border-radius:4px 10px 10px 4px;font-size:13px;line-height:1.65;margin:10px 0}
.goal-gap button{min-height:44px;margin-top:7px}
#signature-tasting{scroll-margin-top:88px}
.game-settings{display:grid;gap:14px}.game-settings>label{display:grid;gap:6px;font-size:14px;line-height:1.5}.game-settings>label.toggle{display:flex}.game-settings select{font-size:14px;min-height:44px}.game-settings input[type=range]{width:100%;min-height:32px;accent-color:#567b62}.game-settings details{padding:12px;background:#f1f0e6;border-radius:12px}.game-settings details button{min-height:44px;margin:5px 0}.game-settings #settings-save-status{font-size:12px}
.gameplay[data-reading=large] .desk p,.gameplay[data-reading=large] .desk .small,.gameplay[data-reading=large] dialog p{font-size:15px;line-height:1.75}
.gameplay[data-reading=large] .desk small{font-size:13px;line-height:1.6}
.gameplay .coin-gain{max-width:220px;text-align:center;line-height:1.2}.coin-gain strong{display:block;font-size:22px}.coin-gain small{display:block;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:220px;background:#fff9ebed;border-radius:8px;padding:4px 7px;color:#355844}
.gameplay[data-motion=reduce] *, .gameplay[data-motion=reduce] *::before,.gameplay[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:760px){
 .gameplay[data-trading=closed] #goal-badge{white-space:normal;text-overflow:clip}
 .gameplay #milestone-toast{top:calc(203px + var(--safe-top));left:10px;right:10px;transform:none;max-width:none;min-width:0;width:calc(100% - 20px);display:grid;grid-template-columns:26px minmax(0,1fr);gap:3px 8px;padding:8px 10px;text-align:left;border-radius:12px}
 .gameplay #milestone-toast>span{grid-row:1/3;font-size:24px}
 .gameplay #milestone-toast>b{font-size:14px;margin:0;line-height:1.35}
 .gameplay #milestone-toast small{grid-column:2;font-size:11px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:32px}
 .gameplay #milestone-toast button{grid-column:2;justify-self:start;min-height:36px;margin:3px 0 0;padding:5px 8px}
}

/* Camera buttons follow the measured card bottom, including wrapped long names. */
@media(max-width:760px){
 .gameplay[data-trading=open]:not(.drawer-open):not(.studio-open):not(.photography) .scene-tools{top:var(--order-tools-top,108px);bottom:auto}
 .gameplay #order-rail .hanging-order b{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
}

/* Human feedback: one current-action surface; existing mobile order cards remain. */
.gameplay.has-next-action #assistant-bubble{display:none}
.gameplay #next-action button[hidden]{display:none}
.gameplay #next-action p{overflow-wrap:anywhere}
.gameplay .customer-order-label{white-space:normal;overflow:hidden;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:160px;max-height:3.4em;line-height:1.4;overflow-wrap:anywhere}
.restock-badge{display:block;font-size:11px;line-height:1.5;color:#744c35}
.restock-notice{border:1px solid #d1b880;border-radius:10px;padding:10px 12px;margin:12px 0;background:#fff8e5;color:#644a2b}
.restock-notice p{margin:8px 0;font-size:13px;line-height:1.6}
.restock-notice small{display:block;color:#615d4d}
.gameplay #nav [data-tab="shop"] small{white-space:normal;line-height:1.3;font-size:10px}
@media(max-width:760px){
 .gameplay #next-action{box-sizing:border-box;max-width:calc(100vw - 24px);max-height:36dvh;overflow:auto}
 .gameplay #next-action button{min-height:44px;width:100%;white-space:normal}
 .mode-control{flex-wrap:wrap}
 .mode-control button{min-height:44px;flex:1 1 140px;white-space:normal}
 .gameplay #nav [data-tab="shop"] small{font-size:10px}
}

/* Visible navigation status and measured two-line labels. Hidden must win over
   the label's line-clamp display; otherwise off-screen, unplaced #IDs leak out. */
.gameplay #world .actor-label[hidden]{display:none!important}
.gameplay #world .customer-order-label{box-sizing:border-box;max-width:160px;max-height:none;line-height:1.4;padding:5px 8px;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.gameplay #nav [data-tab="shop"]{position:relative;overflow:visible}
.gameplay #nav [data-tab="shop"] small:not(:empty){display:block;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);width:max-content;max-width:140px;padding:4px 7px;border:2px solid #8c4e26;border-radius:8px;background:#fff0c9;color:#61350f;font-size:11px;font-weight:700;line-height:1.4;box-shadow:0 2px 0 #61442826;white-space:normal}
.gameplay #nav [data-restock="pending"] small:not(:empty),.restock-badge[data-restock="pending"]{background:#e2f0f5;color:#234f65;border-color:#50758b}
.restock-badge{display:inline-block;padding:4px 7px;margin-top:5px;border:2px solid #829b73;border-radius:8px;background:#edf3e4;color:#365438;font-weight:700;font-size:12px;line-height:1.5;white-space:normal}
.restock-badge[data-restock="needed"]{background:#fff0c9;color:#61350f;border-color:#8c4e26}
.gameplay .hanging-order .order-recipe{display:block;font-size:12px;line-height:1.5;white-space:normal}
.opening-stock-tray{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr))}
@media(max-width:760px){.gameplay #nav [data-tab="shop"] small:not(:empty){font-size:10px;max-width:112px}.gameplay .hanging-order .order-recipe{display:block;font-size:11px}}

/* Keep the current cup, its request and the player's next action together. */
.gameplay .desk{overflow-anchor:none}
.gameplay .manual-workbench{margin:18px 0 22px;padding:16px;background:#fffdf7;border:1px solid #cbb991;border-radius:16px;scroll-margin-block-start:68px}
.gameplay .manual-heading small{font-size:11px;color:#657257}
.gameplay .manual-heading h3{font-size:18px;margin:4px 0 12px;color:#3f614e;outline-offset:3px}
.gameplay .manual-order-note{display:grid;gap:5px;padding:12px;background:#f2efe0;border-inline-start:3px solid #829674;border-radius:6px;overflow-wrap:anywhere}
.gameplay .manual-order-note strong{font-size:15px;line-height:1.5}
.gameplay .manual-order-note small,.gameplay .manual-order-note span{font-size:12px;color:#4f5f4d}
.gameplay .manual-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:15px 0 10px;padding:0;gap:4px}
.gameplay .manual-steps li{display:grid;justify-items:center;gap:5px;font-size:11px;color:#6d715f}
.gameplay .manual-steps li>span{display:grid;place-items:center;width:23px;height:23px;border:1px solid #c1c7b8;border-radius:50%;background:#fffdf6}
.gameplay .manual-steps [data-step-state=done]>span{background:#e4ebd9;color:#3d654b;border-color:#9daf8e}
.gameplay .manual-steps [aria-current=step]{font-weight:800;color:#385d49}
.gameplay .manual-steps [aria-current=step]>span{background:#456f58;color:#fffdf3;border-color:#456f58}
.gameplay .manual-status{font-size:13px;line-height:1.7;color:#455b4b;margin:12px 0}
.gameplay .manual-recipe-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 8px}
.gameplay .manual-recipe-heading b{font-size:13px}
.gameplay .manual-workbench .manual-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px}
.gameplay .manual-workbench .manual-selects label:first-child{grid-column:1/-1}
.gameplay .manual-workbench select{width:100%;min-width:0;min-height:44px;font-size:16px}
.gameplay .manual-workbench button{min-height:44px}
.gameplay .manual-note{display:block;margin-top:10px;font-size:11px;line-height:1.7;color:#626c5b}
.gameplay .manual-making{font-size:14px;line-height:1.8;margin:5px 0 14px;color:#435d49;overflow-wrap:anywhere}
.gameplay .manual-error{padding:11px;margin:12px 0;border-inline-start:3px solid #a3654b;background:#fff0e5;font-size:13px;line-height:1.7;color:#793e2e}
.gameplay .manual-error button{margin-top:8px}
.gameplay .mode-continuity{padding:9px 11px;margin:8px 0;background:#edf2e6;border-radius:8px;font-size:12px;line-height:1.7;color:#405d45}
.gameplay .desk-heading .drawer-back{flex:none;min-height:44px;padding:7px 9px;font-size:12px;background:#fffdf7;border-color:#c9d0bd;white-space:nowrap}
.gameplay #drawer-title{min-width:0;overflow-wrap:anywhere}
.gameplay #drawer-title:focus-visible{outline:3px solid #437b64;outline-offset:3px}
@media(max-width:380px){.gameplay .desk-heading:has(.drawer-back:not([hidden])) #live-badge{display:none}.gameplay .manual-workbench{padding:12px}}

/* Shared reading and task controls; no new animation or simulation work. */
.gameplay{--muted:#53634e}
.gameplay .desk-heading{align-items:center;gap:6px}
.gameplay #drawer-title{flex:1;line-height:1.4}
.gameplay .desk-heading #live-badge{display:inline-flex!important;align-items:center;justify-content:center;flex:none;min-height:44px;max-width:76px;padding:6px 8px;font-size:12px;white-space:nowrap;color:#365443;background:#edf2e6;border:1px solid #8d9e87;box-shadow:none}
.gameplay .desk-heading #live-badge:disabled{opacity:1;color:#4c5c50;background:#edf0e7;border-color:#b2bba9}
.gameplay .desk-heading #drawer-close{flex:none;min-width:44px;min-height:44px}
.gameplay .stock-card :is(small,label),.gameplay .card .row small,.gameplay .stock-level small{color:#53634e}
.gameplay .mode-note,.gameplay .operations-card p{color:#53634e}
.gameplay .assistant-note{color:#53634e}
.gameplay .stock-card .delivery{color:#675538;font-size:12px;line-height:1.6}
.gameplay .manual-workbench label{white-space:nowrap}
.gameplay dialog :is(p,li){color:#53634e}
.gameplay .day-receipt .scrap-receipt{color:#4e6141!important}
.gameplay .day-receipt .next-day-note>small{color:#695332}
.gameplay .day-receipt small,.gameplay .day-receipt .eyebrow{color:#53634e}
.gameplay .day-receipt .receipt-result :is(small,span){color:#65513d}
.gameplay .day-receipt summary{color:#65513d}
.recovery-card{border:1px solid #bead89;border-inline-start:4px solid #8f7753;margin-block:0 16px;padding:14px}
.recovery-card h3{margin:0 0 6px}
.recovery-card button,.manual-auto{min-height:44px}
.recovery-card .operation-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
@media(max-width:760px){
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) .scene .scene-tools{
  top:auto;bottom:12px;left:auto;right:10px;gap:6px
 }
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) .scene:has(#message.notice-visible) .scene-tools{bottom:76px}
 .gameplay .scene-tools button{min-width:44px;min-height:44px}
 .gameplay.drawer-open[data-panel=shop][data-trading=open]:has(.manual-workbench) .desk{
  top:clamp(166px,32dvh,240px)
 }
 .gameplay.drawer-open[data-panel=shop][data-trading=open]:has(.manual-workbench) .scene{
  inset:calc(70px + var(--safe-top)) 0 calc(100dvh - clamp(166px,32dvh,240px) + 6px)
 }
 .gameplay .manual-workbench{scroll-margin-block-start:0;margin-top:8px}
}
.gameplay .manual-start{width:100%;margin-top:8px}
.gameplay .manual-draft{margin:8px 0 0;color:#654f3b;font-size:13px}
@media(pointer:coarse),(max-height:500px){
 .gameplay .scene-tools button{min-width:44px;min-height:44px}
}
@media(max-height:500px) and (min-width:761px){
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) #next-action{
  left:16px;right:auto;bottom:108px;width:min(310px,38vw);max-height:112px;
  overflow:auto;padding:8px 10px;gap:0
 }
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) #next-action img{display:none}
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) #next-action p{display:none}
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) #next-action h3{font-size:15px;margin:3px 0}
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) #next-action button{min-height:44px}
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) .scene .scene-tools{
  top:auto;bottom:116px;left:auto;right:180px;gap:5px
 }
 .gameplay:not(.drawer-open):not(.studio-open):not(.photography) .scene:has(#message.notice-visible) .scene-tools{bottom:162px}
}
.gameplay .team-tabs button:not([aria-pressed=true]),.gameplay .lab-tabs button:not([aria-pressed=true]){color:#65513d}
.gameplay .market-current small{color:#fff8e5}
.gameplay .goal-checklist{padding:0;margin:14px 0;list-style:none;display:grid;gap:9px}
.goal-checklist li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:5px;font-size:13px;line-height:1.5;color:#66543e}
.goal-checklist li[data-complete=true]{color:#385e47}.goal-checklist b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}
.gameplay .builder-controls{flex-wrap:wrap;gap:8px}
.gameplay .builder-controls button{min-height:40px;font-size:12px}
.gameplay button.danger{background:#934d40;color:#fffdf5;border-color:#934d40;box-shadow:none}
.gameplay button.danger:hover:not(:disabled){background:#7b3e33}
.gameplay .builder-controls .sale-request{margin-inline-start:auto}
.sale-safe-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.gameplay .furniture-sale button{min-height:44px}.gameplay .furniture-sale>.danger{display:block;width:100%;margin-top:18px}
.trial-history-label{font-size:13px;font-weight:700;color:#5b4938;margin-bottom:12px}
.gameplay .last-trial-context{padding:9px;background:#f1ead6;border-left:3px solid #96794b;color:#5d4c36;font-size:13px;line-height:1.6}
.gameplay .last-trial-recipe{font-size:12px;line-height:1.7;color:#53634e}
.gameplay .trial-start:not(:disabled){background:#8e554d;border-color:#78453e;color:#fff8e7;box-shadow:0 3px 0 #693f36}
.gameplay .ticket-stamp,.gameplay .new-discovery .ticket-stamp{color:#724838}
.gameplay .tasting-ticket .taste-stars{color:#7b6137}
.gameplay .tasting-ticket .small{margin-bottom:14px}
.recruit-compare{width:100%;border-collapse:collapse;margin:18px 0;color:#3b5546;font-size:12px;font-variant-numeric:tabular-nums}
.recruit-compare caption{text-align:start;font-size:12px;line-height:1.7;color:#53634e;margin-bottom:10px}
.recruit-compare th,.recruit-compare td{padding:8px 3px;border-bottom:1px solid #d5d7c8;text-align:center;white-space:nowrap}
.recruit-compare th:first-child{text-align:start}.recruit-compare thead{background:#e8eedf}
.gameplay .recruit-compare button{min-width:44px;min-height:44px;padding:6px;font-size:12px}
.gameplay .recruit-profile{margin:10px 0;border:1px solid #bdc7b1;border-radius:10px;background:#fffdf5}
.gameplay .recruit-profile>summary{min-height:48px;padding:12px 10px;font-size:13px;font-weight:700;color:#3c5947;cursor:pointer}
.gameplay .recruit-profile .recruit-card{margin:10px 5px;border:0;box-shadow:none;background:#fffaf0}
.gameplay .recruit-profile .recruit-card::before{display:none}
.gameplay .recruit-profile .recruit-top .team-portrait{width:76px;height:76px}
#build-studio{overflow-y:auto;overscroll-behavior:contain}
#build-studio .studio-purchase{min-height:48px;height:auto}
#build-studio .studio-purchase button{min-height:44px}
#build-studio .studio-header span,#build-studio .studio-selection small,#build-studio .studio-instruction,#build-studio .fitting-receipt span{color:#625b46}
#build-studio .fitting-goal{font-size:12px;line-height:1.5;color:#425a43;background:#e9efdf;padding:7px;border-radius:6px}
#build-studio .fitting-receipt>div:first-of-type{display:flex;justify-content:space-between;align-items:center;gap:8px}
@media(max-width:760px), (max-height:500px), (pointer:coarse){
 .gameplay :is(.desk,dialog,#photo-controls) :is(input:not([type=checkbox]):not([type=range]),select,textarea){font-size:16px;min-height:44px;min-width:0}
 .gameplay .stock-card input{width:76px;padding:8px;border-color:#839079}
 .gameplay .stock-card .row:has(button){align-items:center;flex-wrap:wrap;gap:8px}
 .gameplay .stock-card button,.gameplay .diary-day-select button{min-height:44px;padding:9px 12px}
 .gameplay .diary-day-select select{flex:1;min-width:0}
 .gameplay .game-settings select{font-size:16px}
 .gameplay[data-reading=large] :is(.desk,dialog,#photo-controls) :is(input:not([type=checkbox]):not([type=range]),select,textarea){font-size:17px}
 .gameplay .builder-controls button{min-height:44px}
 .gameplay #build-studio button{min-width:44px;min-height:44px}
 .gameplay #build-studio input[type=range]{min-height:44px}
 .gameplay #build-studio .studio-selection .studio-mini{display:none}
 .gameplay #build-studio .studio-selection>div:nth-child(2){flex:1;min-width:0}
 .gameplay #build-studio .studio-selection strong,.gameplay #build-studio .studio-selection small{overflow:hidden;text-overflow:ellipsis}
 .gameplay #build-studio .studio-selection button{flex:none}
 .gameplay #build-studio .studio-angle{flex:0 1 64px;min-width:48px;width:64px}
 .gameplay #build-studio .studio-categories{height:auto;min-height:50px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}
 .gameplay #build-studio .studio-categories button{flex:none;white-space:nowrap}
}
/* Short screens need height-aware tools, rather than a 20px shop scene. */
@media(max-height:500px) and (min-width:600px){
 .gameplay.studio-open #build-studio,.gameplay.fitting-open #build-studio:has(.fitting-heading){left:auto;right:0;top:80px;bottom:0;transform:none;width:320px;height:auto;max-height:none;min-height:0;box-sizing:border-box;display:block;overflow-y:auto;border-radius:18px 0 0 0}
 .gameplay.studio-open .scene,.gameplay.fitting-open .scene,.gameplay.fitting-open:has(.fitting-pieces) .scene,.gameplay.fitting-open:has(.fitting-slots) .scene{top:80px!important;bottom:0!important;right:330px!important}
 #build-studio .studio-header{position:sticky;top:0;z-index:3;background:#fffdf5;height:auto;min-height:44px}
 #build-studio .studio-header button{font-size:11px!important;padding:5px!important}
 #build-studio .fitting-options{overflow:visible;flex:none}
 .gameplay.studio-open.layout-previewing #build-hint{left:8px;right:338px;bottom:8px;transform:none;max-width:none}
}
@media(max-height:500px) and (min-width:600px) and (max-width:760px){
 .gameplay.studio-open #build-studio,.gameplay.fitting-open #build-studio:has(.fitting-heading){top:64px;width:290px}
 .gameplay.studio-open .scene,.gameplay.fitting-open .scene,.gameplay.fitting-open:has(.fitting-pieces) .scene,.gameplay.fitting-open:has(.fitting-slots) .scene{top:64px!important;right:300px!important}
}
@media(max-height:500px) and (max-width:599px){
 .gameplay.studio-open #build-studio,.gameplay.fitting-open #build-studio:has(.fitting-heading){height:44dvh;max-height:44dvh;min-height:0;box-sizing:border-box;display:block;overflow-y:auto}
 .gameplay.studio-open .scene,.gameplay.fitting-open .scene,.gameplay.fitting-open:has(.fitting-pieces) .scene,.gameplay.fitting-open:has(.fitting-slots) .scene{bottom:calc(44dvh + 6px)!important}
 #build-studio .studio-header{position:sticky;top:0;z-index:3;background:#fffdf5}
 #build-studio .fitting-options{overflow:visible;flex:none}
}

/* Human playtest: one task and a safe exit, without covering the work surface. */
body.gameplay{--ink:#30473e;--green:#14765e;--muted:#59695e;--line:#d5e1d5;--panel-accent:#17876d;--coral:#da705c}
.gameplay #nav button[hidden],#build-studio[hidden],#build-exit[hidden]{display:none!important}
.gameplay #build-exit{position:fixed;left:16px;top:calc(88px + var(--safe-top));z-index:45;min-height:44px;padding:10px 18px;border:2px solid #fff7d7;border-radius:14px;background:#146d56;color:#fffdf2;font-weight:800;font-size:15px;box-shadow:0 3px 0 #154c3f,0 6px 20px #234d3826;touch-action:manipulation}
.gameplay.drawer-open.studio-open .scene .scene-tools{left:auto;right:8px;top:4px;bottom:auto}
.gameplay #build-exit:hover{background:#105b49;transform:none}
.gameplay #build-exit:focus-visible{outline:3px solid #e8a627;outline-offset:3px}
.gameplay #nav button.active{background:#e0f4e9;border-color:#16846c;color:#135d4c}
.gameplay #nav button.active b{color:#12785e}
.gameplay button.primary{background:#14765e;border-color:#14765e;color:#fffef5}
.gameplay button.primary:hover:not(:disabled){background:#105e4b}
.gameplay #build-studio .studio-header{background:#f6fffa;border-bottom:2px solid #86cdb5}
.gameplay #build-studio .studio-categories button[aria-pressed="true"]{background:#15735c;color:#fffdf2;border-color:#15735c}
.gameplay #build-studio .studio-tray button{background:#fffefa;border-color:#cddfd4;min-width:94px}
.gameplay #build-studio .studio-tray button[aria-pressed="true"]{background:#e5f6eb;border:2px solid #178569}
.gameplay #build-studio .studio-tray button svg{width:76px;height:60px}
.gameplay #build-studio .studio-tray button small{color:#526455;line-height:1.5}
.gameplay #build-studio .studio-tray button small:last-child{font-weight:800;color:#225d4b}
.gameplay .task-map{padding:2px 0 18px}
.task-map-heading>span{font-size:12px;font-weight:800;color:#146c57;letter-spacing:.05em}
.gameplay #panel .task-map h2{font-family:inherit;font-size:23px;letter-spacing:0;line-height:1.4;margin:5px 0 16px}
.task-now{padding:18px;border:2px solid #298b70;border-radius:18px;background:#f3fff7;box-shadow:0 4px 0 #d9ebdf}
.task-now>span{font-size:12px;font-weight:700;color:#225e4c}
.gameplay #panel .task-now h3{font-size:22px;line-height:1.45;margin:7px 0}
.task-now p{font-size:15px;line-height:1.65;color:#30473e}
.task-reward{margin:14px 0;padding:12px;border-radius:12px;background:#ffefb7;color:#5d4116;display:grid;gap:4px}
.task-reward b{font-size:12px}.task-reward strong{font-size:16px}.task-reward small{font-size:13px;line-height:1.55}
.gameplay .task-now button{min-height:48px;font-size:15px}
.gameplay .first-site-comparison{margin-top:16px}.gameplay .first-site-comparison>summary{min-height:44px;padding:12px 0;font-size:14px;font-weight:700;cursor:pointer}
.task-route-title{font-size:15px;margin:22px 0 10px}
.task-route{list-style:none;margin:10px 0 18px;padding:0}
.task-node{position:relative;display:flex;align-items:center;gap:12px;min-height:67px;padding:10px 8px;color:#56665b}
.task-node:not(:last-child)::after{content:"";position:absolute;left:23px;top:43px;bottom:-11px;width:2px;background:#cadbce}
.task-node-mark{display:grid;place-items:center;flex:none;width:32px;height:32px;border:2px solid #789782;border-radius:50%;background:#fffdf5;z-index:1;font-size:16px}
.task-node b{font-size:14px;line-height:1.5}.task-node small{display:block;font-size:12px;line-height:1.5;margin-top:3px;color:#56665b}
.task-node.is-current{background:#e4f7eb;border-radius:12px;color:#154f40}
.task-node.is-current .task-node-mark{background:#14765e;color:white;border-color:#14765e}
.task-node.is-done .task-node-mark{background:#f4c95a;color:#4c3e20;border-color:#ba872c}
.task-future{border-top:1px solid #d5e1d5;padding-top:12px}
.task-future summary,.gameplay .opening-explanation summary{min-height:44px;display:flex;align-items:center;font-size:14px;cursor:pointer;color:#315d49}
.task-future summary::before,.opening-explanation summary::before{content:"＋";margin-right:8px;font-weight:800}
.task-future[open]>summary::before,.opening-explanation[open]>summary::before{content:"−"}
.quiet-explore{min-height:44px;margin:8px 0;font-size:14px}
.task-explore-note{display:block;font-size:12px;color:#56665b;line-height:1.6}
.gameplay .opening-chapter .opening-instruction{font-size:15px;color:#30473e;line-height:1.6;margin:4px 0 14px}
.gameplay .opening-chapter .opening-next{font-size:14px;color:#245b45;font-weight:700;padding:10px 0}
.gameplay .opening-chapter .opening-explanation p{font-size:13px;line-height:1.7}
.gameplay .opening-chapter .opening-foot{font-size:12px;color:#59695e}
@media(max-width:760px){
 .gameplay #build-exit{left:10px;top:calc(72px + var(--safe-top));padding:9px 14px}
 .gameplay #nav{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
 .task-now{padding:15px}
}
@media(prefers-reduced-motion:reduce){.task-now,.task-node,#build-exit{transition:none;animation:none}}


/* Tea shop visual direction: porcelain surfaces, jade actions, warm ticket stock.
   Category accents belong to tools; the live shop keeps the centre of attention. */
body.gameplay{
 --paper:#fffef8;--ink:#263e38;--muted:#58695f;--line:#cbdcd1;--green:#14765e;
 --surface:#fffef8;--surface-soft:#f0f8f1;--surface-edge:#b4cdbd;
 --text-main:#263e38;--text-secondary:#58695f;--action:#14765e;--action-shadow:#0d5643;
 --reward-fill:#ffedac;--reward-ink:#654517;--panel-accent:#177d63;--panel-wash:#e4f3e8;
 background:#def3ed;color:var(--text-main)
}
.gameplay[data-panel=research]{--panel-accent:#995077;--panel-wash:#faedf2}
.gameplay[data-panel=stock]{--panel-accent:#367d9e;--panel-wash:#e9f5f9}
.gameplay[data-panel=staff]{--panel-accent:#ad7030;--panel-wash:#fff3df}
.gameplay[data-panel=build]{--panel-accent:#a77624;--panel-wash:#fff3d2}
.gameplay[data-panel=journal]{--panel-accent:#3e7c75;--panel-wash:#e9f5ee}
.gameplay #game>header::before{background:linear-gradient(#fffdf5 72%,#fffdf500)}
.gameplay .brand strong{color:#1c6753;letter-spacing:.025em}
.gameplay .top-stats>div{background:#fffdf3;border:1px solid #c3d5c7;box-shadow:0 3px 0 #a9c9b329;border-radius:16px}
.gameplay .top-stats>div:nth-child(2){background:#fff0ea;border-color:#ecc8b9}
.gameplay .top-stats>div:nth-child(3){background:#eaf5e4;border-color:#c3d9b2}
.gameplay .top-stats small{color:#56695d}
.gameplay .top-stats strong{font-variant-numeric:tabular-nums;color:#235641;font-weight:850}
.gameplay .top-stats #rep{color:#ad5943}
.gameplay .clock-card{background:#fffdf5;border-color:#b9d4c2;color:#275340;box-shadow:0 3px 0 #6c99722b}
.gameplay .weather-badge{color:#576d5a}
.gameplay #goal-badge{background:#fff9e3;border-color:#dfbd63;color:#65501f;box-shadow:0 3px 0 #ceab4d2b}
.gameplay .time-tools button,.gameplay .scene-tools button{background:#fffef8;color:#245a49;border-color:#a8c8b5;box-shadow:0 2px 0 #88ad9833}
.gameplay #nav{background:#fffef7;border-color:#b3cfbd;box-shadow:0 4px 0 #a5c6ad38,0 6px 18px #224c3512}
.gameplay #nav button{background:#f4f6e9;border:1px solid #d6dfcc;color:#355b49;box-shadow:0 2px 0 #c5d2b8;border-radius:16px;transition:background .12s,box-shadow .12s,transform .12s}
.gameplay #nav button:nth-child(2){background:#fbf0ef}
.gameplay #nav button:nth-child(3){background:#edf3fb}
.gameplay #nav button:nth-child(4){background:#fff2d7}
.gameplay #nav button:nth-child(5){background:#e9f5ed}
.gameplay #nav button.active{background:#187d64;border:2px solid #12614d;color:#fffef3;box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #104e3e}
.gameplay #nav button.active span{color:#fffef3}
.gameplay #nav button b{filter:drop-shadow(0 2px 0 #6e79552b)}
.gameplay #nav button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff28}
.gameplay #nav button span{font-weight:850}
.gameplay #nav button:not(.active) span{color:#355b49}
.gameplay .hanging-order{background:#fffcf0;border:1px solid #d9bf72;border-top:4px solid #d8aa3e;border-radius:5px 12px 12px 5px;box-shadow:0 3px 0 #d4ba7133;color:#3f4937}
.gameplay .hanging-order b{font-size:15px;font-weight:850;color:#263e38;line-height:1.45}
.gameplay .hanging-order small{color:#786037}
.gameplay .hanging-order .order-recipe{color:#475d4e}
.gameplay .hanging-order em{color:#216f60;font-weight:700;font-style:normal}
.gameplay .hanging-order>i{background:#eee3b7}.gameplay .hanging-order>i>i{background:#48a28a}
.gameplay .hanging-order.urgent{background:#fff1df;border-color:#bc6945;border-top-color:#bc6945}
.gameplay .hanging-order.urgent em{color:#9d4c30}
.gameplay .queue-glance{background:#fff9df;border-color:#d8c282;color:#65501e;border-radius:10px}
.gameplay #next-action{background:#fffef7;border:1px solid #bad2bd;border-inline-start:5px solid #2f9879;border-radius:18px;box-shadow:0 4px 0 #acc7ad47,0 8px 20px #365b3810}
.gameplay #next-action small{color:#52664d;font-size:11px;letter-spacing:.02em}
.gameplay #next-action h3{color:#264e3d;letter-spacing:0;line-height:1.4}
.gameplay #next-action p{color:#536249}
.gameplay button.primary{background:var(--action);border-color:var(--action);color:#fffdf1;box-shadow:0 3px 0 var(--action-shadow);border-radius:12px;font-weight:800}
.gameplay button.primary:hover:not(:disabled){background:#11664f}
.gameplay button.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--action-shadow)}
.gameplay .scene-dialogue:not([hidden]){background:#fffef6;border-color:#b3cdb7;box-shadow:0 2px 0 #aec6ac30;color:#395541}
.gameplay .scene-dialogue.is-speech{background:#fff7e7;border-left-color:#b98a38}
.gameplay .scene-dialogue b{color:#2b6551}
.gameplay .desk{background:var(--surface);border:1px solid #afc9b6;border-top:5px solid var(--panel-accent);border-radius:23px;box-shadow:0 5px 0 #9bb79f47,0 14px 35px #365b3824}
.gameplay .desk-heading{background:var(--surface);border-bottom:2px solid #dbe6db;padding-block:10px 13px}
.gameplay #drawer-title{color:var(--panel-accent);font-size:17px;letter-spacing:0}
.gameplay #drawer-close{background:#fffdf4;color:#506d59;border-color:#bacdb7;box-shadow:0 2px 0 #bcccb338}
.gameplay .desk-heading #live-badge{background:var(--panel-wash);color:#355c48;border-color:#afc6b3}
.gameplay #panel h2{font-family:inherit;font-size:23px;letter-spacing:0;line-height:1.5;color:#2d4c3d;font-weight:850}
.gameplay #panel .intro{font-size:13px;line-height:1.7;color:var(--text-secondary)}
.gameplay .shop-shortcuts{gap:8px}
.gameplay .shop-shortcuts button{background:#fffef9;border:1px solid #bcd6c4;border-bottom:3px solid #bcd6c4;border-radius:15px;gap:7px;color:#355943;font-size:13px}
.gameplay .shop-shortcuts button:first-child{background:#f1f9fa;border-color:#bddbe2}
.gameplay .shop-shortcuts button:nth-child(2){background:#fff8e7;border-color:#e3d29e}
.gameplay .shop-shortcuts button:last-child{background:#edf7ed;border-color:#bed9b8}
.gameplay .shop-shortcuts picture,.gameplay .shop-shortcuts img{width:40px;height:40px;object-fit:contain}
.gameplay .operations-card{border-color:#b7d1bb;background:#f1f9ee;color:#2f573e}
.gameplay .operations-card p{color:#4c634c}
.gameplay .mode-control button{background:#fffef8;border-color:#cbdccc;color:#46624b}
.gameplay .mode-control button[aria-pressed=true]{background:#216f59;color:#fffdf2;border-color:#216f59}
.gameplay .card,.gameplay .stock-card{background:#fffef9;border-color:#cbdcc9;border-radius:15px}
.gameplay .stock-card .stock-level{color:#256d88;font-weight:850}
.gameplay .ticket{border-color:#d7bd78;background:#fff9e7}
.gameplay .ticket.active{background:#f5fff5;border:2px solid #398a68}
.gameplay .ticket h3{color:#294d3e;font-size:16px}
.gameplay .manual-workbench{background:#fffdf2;border:1px solid #d5c18b;border-top:4px solid #cc9b37;border-radius:16px}
.gameplay .manual-order-note{background:#f5efd5;color:#584624}
.gameplay .manual-steps li[aria-current=step]{background:#e0f2e8;color:#165e47;border-color:#60a58b}
.gameplay .journal-tabs button{background:#f6f1df;border-color:#d9d5b2;color:#526346}
.gameplay .journal-tabs button[aria-pressed=true]{background:#236e57;border-color:#236e57;color:#fffef0}
.gameplay .task-now{background:#f0fff5;border-color:#2d9876;box-shadow:0 4px 0 #b5dbc533}
.gameplay .task-reward{background:var(--reward-fill);color:var(--reward-ink);border:1px solid #e7c86a}
.gameplay .studio-header{background:#f1fff5}
.gameplay #build-studio{border-color:#a9c7ae;background:#fffdf4;box-shadow:0 -3px 0 #b8d5bc55,0 -6px 20px #366c4810}
.gameplay #build-studio .studio-tray button{border-bottom:3px solid #bed5bc;border-radius:14px}
.gameplay #build-studio .studio-tray button[aria-pressed=true]{border-color:#278c68;background:#e7fae8}
.gameplay dialog.books-modal{background:#fffdf4;border:2px solid #a6ccb4;box-shadow:0 6px 0 #2c775c33,0 24px 70px #164f3b33}
.gameplay dialog.books-modal:has(.book-shelf-grid:empty){width:min(540px,94vw)}
.gameplay .books-modal .shelf-welcome{background:#e2f3df;border-radius:24px;padding:16px 12px;margin-bottom:14px}
.gameplay .books-modal .shelf-welcome h2{color:#175e49;letter-spacing:.05em}
.gameplay .books-modal .shelf-welcome p{font-size:13px;color:#46614b;line-height:1.65}
.gameplay .books-modal .shelf-welcome small{color:#4b724e}
.gameplay .books-modal .shelf-mascot{width:90px;height:114px;flex:none}
.gameplay .books-modal .shelf-mascot img{width:100%;height:100%;object-fit:contain}
.gameplay .books-modal .empty-book{font-size:14px;line-height:1.7;color:#3d614a;border:0;background:transparent;padding:0 6px;margin:12px 0}
.gameplay .books-modal .new-book-form{background:#fffef9;border:1px solid #bbd4bc;padding:18px;border-radius:18px}
.gameplay .books-modal .new-book-form h3{font-size:18px;color:#2d5c45}
.gameplay .books-modal :is(input,select){background:#fffdf5;border-color:#b8ccb5;color:#344e3b;border-radius:11px}
.gameplay .books-modal .new-book-form label{font-size:13px;color:#4e664e}
.gameplay .books-modal .new-book-form input:focus-visible{outline-color:#cca034;outline-width:3px}
@media(max-width:760px){
 .gameplay #nav{border:1px solid #c0d9c3;border-radius:20px;bottom:calc(6px + var(--safe-bottom));height:68px}
 .gameplay #nav button{border-radius:13px}
 .gameplay .hanging-order b{font-size:14px;line-height:1.3;margin:1px 0}
 .gameplay .hanging-order small,.gameplay .hanging-order em{font-size:10px;line-height:1.45}
 .gameplay #next-action{padding:9px 12px;gap:9px;border-radius:15px;border-inline-start-width:4px}
 .gameplay #next-action small{font-size:11px}
 .gameplay #next-action h3{font-size:15px;margin:3px 0 6px}
 .gameplay #next-action button{min-height:44px;font-size:14px;border-radius:10px}
 .gameplay .time-tools button{min-width:44px;min-height:44px}
 .gameplay #next-action>picture{align-self:center;flex:none;width:31px}
 .gameplay #next-action img{margin:0;width:31px;height:40px}
 .gameplay .books-modal .shelf-welcome{padding:10px;gap:8px}
 .gameplay .books-modal .shelf-welcome h2{font-size:28px!important}
 .gameplay .books-modal .shelf-mascot{width:76px;height:96px}
}
@media(max-width:380px) and (max-height:650px){
 .gameplay .books-modal .shelf-welcome{padding:8px;margin-bottom:8px}
 .gameplay .books-modal .shelf-mascot{width:48px;height:61px}
 .gameplay .books-modal .shelf-welcome h2{font-size:24px!important}
 .gameplay .books-modal .shelf-welcome p{font-size:11px}
 .gameplay .books-modal .new-book-form{padding:10px}
 .gameplay .books-modal .empty-book{font-size:12px;margin:8px 0}
}


/* A playable diorama: one quiet top cluster, a small task cue and a tool dock. */
body.gameplay{--stage-ink:#234f47;--stage-paper:#fffdf0;--stage-edge:#96b8a7;background:#cff3ff}
.gameplay #game{position:relative;display:block;width:100%;height:100dvh;min-height:0;overflow:hidden}
body.gameplay #game .scene{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;border-radius:0;background:transparent}
body.gameplay #game #shop-scene #world{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;touch-action:none}
body.gameplay #game #shop-scene #world canvas{display:block;width:100%;height:100%}
.gameplay #game>header{position:absolute;inset:12px 16px auto;z-index:20;height:52px;min-height:0;padding:0;display:flex;align-items:center;gap:12px;pointer-events:none;background:none;border:0;box-shadow:none}
.gameplay #game>header::before{display:none}
body.gameplay #game .brand{display:flex;gap:8px;align-items:center;padding:4px 11px 4px 7px;background:#14765e;border:1px solid #b6c9a655;border-radius:20px;filter:drop-shadow(0 2px 1px #153a3d26)}
body.gameplay #game .brand-icon,body.gameplay #game .brand-icon picture,body.gameplay #game .brand-icon img{width:39px;height:44px;flex:none;object-fit:contain}
body.gameplay #game .brand strong{font-size:21px;line-height:1.15;color:#fffdf0;text-shadow:0 2px #345f59}
body.gameplay #game .brand strong>span{display:none}
body.gameplay #game .brand small{font-size:10px;color:#fffbe6;text-shadow:0 1px #345f59;letter-spacing:.08em;margin-top:4px}
body.gameplay #game .brand-icon:has(.shop-mascot){display:flex;align-items:center;justify-content:center}
body.gameplay #game .brand-icon img.shop-mascot{width:39px;height:39px;border-radius:50%;object-fit:cover}
@media(max-width:760px){body.gameplay #game .brand-icon img.shop-mascot{width:28px;height:28px}}
@media(max-width:359px){body.gameplay #game .brand-icon img.shop-mascot{width:24px;height:24px}}
body.gameplay #game .top-stats{display:flex;gap:8px;margin-left:auto;margin-right:244px;pointer-events:auto}
body.gameplay #game .top-stats>div{display:flex;align-items:center;gap:7px;padding:7px 12px;min-width:0;min-height:40px;border:1px solid #f5edc9;border-radius:24px;background:#fffdf0;box-shadow:0 3px 0 #2f665e33}
body.gameplay #game .top-stats>div:first-child::before{content:'＄';display:grid;place-items:center;width:25px;height:25px;background:#f7ce65;color:#644813;border:2px solid #e1ac3c;border-radius:50%;font-weight:900;font-size:17px}
body.gameplay #game .top-stats small{font-size:10px;color:#53675c;white-space:nowrap}
body.gameplay #game .top-stats strong{font-size:19px;color:#234f47;line-height:1.1}
body.gameplay #game .top-stats>div:nth-child(3){display:none}
body.gameplay #game #help{pointer-events:auto;position:absolute;right:0;top:4px;width:44px;height:44px;min-height:44px;background:#fff9df;border:1px solid #d7c896;color:#604f31;box-shadow:0 3px 0 #446b5733}
body.gameplay #game #play-hud{position:absolute;inset:0;z-index:18;pointer-events:none}
body.gameplay #game .clock-card{position:absolute;right:72px;top:16px;width:164px;min-height:44px;padding:7px 10px;box-sizing:border-box;display:grid;grid-template-columns:auto auto;gap:2px 7px;align-items:center;text-align:start;background:#fffdf0;border:1px solid #d1dfc9;border-radius:14px;box-shadow:0 3px 0 #2f665e33;color:var(--stage-ink)}
body.gameplay #game .clock-card #day{font-size:11px;line-height:1.2}
body.gameplay #game .clock-card #clock{font-size:18px;grid-column:2;grid-row:1/3;letter-spacing:0;font-variant-numeric:tabular-nums}
body.gameplay #game .clock-card #weather-badge{font-size:10px;grid-row:2;color:#566c5a;white-space:nowrap}
body.gameplay #game .clock-card #status,body.gameplay #game .clock-card .timeline{display:none}
body.gameplay #game #order-rail{position:absolute;left:16px;top:80px;right:auto;bottom:auto;width:auto;max-width:calc(100% - 32px);display:flex;align-items:flex-start;gap:8px;pointer-events:auto}
body.gameplay #game .queue-glance{display:none}
body.gameplay #game .hanging-order{position:relative;box-sizing:border-box;width:208px;min-height:72px;padding:8px 11px;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:17px 19px 16px;column-gap:9px;row-gap:1px;align-items:center;border:1px solid #d5bd79;border-top:3px solid #e5b747;border-radius:7px 15px 15px 7px;background:#fffdf0;box-shadow:0 4px 0 #274f4930;text-align:start;color:#244b40}
body.gameplay #game .hanging-order::after,body.gameplay #game .order-pin{display:none}
body.gameplay #game .hanging-order .order-cup{grid-column:1;grid-row:1/4;width:30px;height:42px;filter:drop-shadow(0 2px #b3a88040)}
body.gameplay #game .hanging-order small{grid-column:2;font-size:10px;line-height:1.2;color:#756132;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.gameplay #game .hanging-order b{grid-column:2;font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#274b40}
body.gameplay #game .hanging-order .order-recipe{grid-column:2;font-size:11px;line-height:1.2;color:#526453;white-space:nowrap}
body.gameplay #game .hanging-order em{display:none}
body.gameplay #game .hanging-order>i{position:absolute;inset:auto 8px 0;height:3px;border-radius:3px;background:#e9e0bd}
body.gameplay #game .hanging-order>i>i{height:100%;display:block;background:#4f9a7a;border-radius:3px}
body.gameplay #game .hanging-order.urgent{background:#fff1db;border-color:#ba6a43;border-top-color:#ba6a43}
body.gameplay #game .rail-more{min-height:44px;border:1px solid #d7c79a;border-radius:12px;background:#fff7df;color:#645431;padding:8px 12px;font-size:12px;box-shadow:0 3px #355e4e24}
body.gameplay #game .rail-rest{min-height:44px;padding:8px 14px;border:1px solid #a9c6b2;border-radius:20px;background:#fffdf0;color:#416151;display:flex;gap:8px;align-items:center;box-shadow:0 3px #355e4e24}
body.gameplay #game .rail-rest span{font-size:18px}body.gameplay #game .rail-rest b{font-size:12px}body.gameplay #game .rail-rest small{display:none}
body.gameplay #game #goal-badge{display:block;position:absolute;left:16px;right:auto;top:auto;bottom:102px;width:auto;max-width:330px;min-height:44px;padding:10px 15px;border:1px solid #ead18e;border-radius:24px;background:#fff5cd;color:#635023;font-size:12px;line-height:1.35;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 3px #385f4f30;pointer-events:auto}
body.gameplay #game #assistant-bubble,body.gameplay #game #play-hint,body.gameplay #game #shop-sign{display:none!important}
body.gameplay #game #nav{position:absolute;inset:auto auto 14px 50%;transform:translateX(-50%);width:auto;max-width:calc(100% - 24px);height:68px;padding:5px;display:grid;grid-auto-flow:column;grid-auto-columns:66px;grid-template-columns:none;gap:5px;z-index:35;background:#fffdf0;border:1px solid #e5ebcd;border-radius:24px;box-shadow:0 5px 0 #38645a33,0 9px 24px #233f4920;box-sizing:border-box}
body.gameplay #game #nav button{position:relative;min-width:0;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:3px 4px;border:0;border-radius:17px;background:transparent;box-shadow:none;color:#41614d}
body.gameplay #game #nav button:nth-child(n){background:transparent}
body.gameplay #game #nav button.active{background:#1b7964;border:0;box-shadow:inset 0 1px #ffffff30,0 2px #13533f}
body.gameplay #game #nav button b{width:33px;height:33px;font-size:26px;line-height:1;filter:none}
body.gameplay #game #nav button b svg{width:100%;height:100%}
body.gameplay #game #nav button span{font-size:11px;line-height:1.2;font-weight:800}
body.gameplay #game #nav button small{display:none}
body.gameplay #game #nav [data-tab="shop"] small:not(:empty){display:block;position:absolute;right:-3px;top:-12px;width:auto;max-width:74px;min-height:18px;padding:1px 5px;border:1px solid #ba713b;border-radius:9px;background:#fff0ba;color:#705020;font-size:9px;line-height:16px;white-space:nowrap}
body.gameplay #game #next-action{position:absolute;inset:auto 16px 103px auto;width:min(420px,calc(100% - 32px));max-width:none;min-height:52px;box-sizing:border-box;padding:7px 9px 7px 11px;display:flex;gap:7px;align-items:center;background:#fffdf0;border:1px solid #b4cdb5;border-left:4px solid #2c8a6d;border-radius:16px;box-shadow:0 4px #365f4e29;z-index:27}
body.gameplay #game #next-action[hidden]{display:none}
body.gameplay #game #next-action>picture{width:27px;flex:none;align-self:center}
body.gameplay #game #next-action img{width:27px;height:34px;margin:0;object-fit:contain}
body.gameplay #game #next-action>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 9px;flex:1;min-width:0}
body.gameplay #game #next-action small,body.gameplay #game #next-action p{display:none}
body.gameplay #game #next-action h3{font-size:13px;line-height:1.4;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#284e3c;min-width:0}
body.gameplay #game #next-action button.primary{width:auto;min-height:44px;margin:0;padding:8px 12px;font-size:12px;line-height:1.25;border:0;border-radius:11px;background:#14765e;color:#fffdf1;box-shadow:0 2px #0f503d}
body.gameplay #game #next-action[data-tutorial="true"]{min-height:92px;max-width:440px}
body.gameplay #game #next-action[data-tutorial="true"] h3{white-space:normal}
body.gameplay #game #next-action[data-tutorial="true"] p{display:block;grid-column:1/3;font-size:12px;line-height:1.5;margin:0;color:#51624d;order:3}
body.gameplay #game #next-action .guide-later{grid-column:1/3;justify-self:end;min-height:32px;font-size:11px;margin:0;padding:4px 8px}
body.gameplay #game .time-tools{position:absolute;inset:80px 16px auto auto;display:flex;gap:5px;z-index:24;padding:0;pointer-events:auto}
body.gameplay #game .time-tools button{width:44px;min-height:44px;height:44px;padding:3px;border:1px solid #c7d4b9;border-radius:15px;background:#fffdf0;color:#2a604b;box-shadow:0 3px #2e605233;font-size:12px}
body.gameplay #game .time-tools #pause{width:62px}
body.gameplay #game #scene-tools{position:absolute;inset:auto auto 156px 16px;display:flex;gap:5px;z-index:24;pointer-events:none}
body.gameplay #game #scene-tools button{pointer-events:auto;width:44px;min-height:44px;height:44px;padding:4px;border:1px solid #c0d0b7;border-radius:13px;background:#fffcf0;color:#285744;box-shadow:0 2px #305e4f24;font-size:18px}
body.gameplay #game #scene-tools #photo-open{font-size:0}
body.gameplay #game #scene-tools #photo-open::after{content:'▣';font-size:21px}
body.gameplay #game #scene-tools small{display:none}
body.gameplay #game .scene-tag{position:absolute;inset:auto 16px 18px auto;z-index:20;font-size:11px;color:#e8f5de;pointer-events:none}
body.gameplay #game .scene-tag #district-name{pointer-events:auto;background:#345e5de8;border:1px solid #b6d2b266;border-radius:16px;color:#fffbe4;padding:5px 10px;min-height:32px;font-size:11px}
body.gameplay #game .scene-tag #area,body.gameplay #game .scene-tag>i{display:none}
body.gameplay #game .scene-dialogue:not([hidden]){position:absolute;inset:0 auto auto 0;z-index:23;width:224px;max-width:calc(100% - 20px);box-sizing:border-box;min-height:44px;padding:8px 11px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:2px 7px;align-items:center;border:1px solid #bbc7a8;border-left:3px solid #dca846;border-radius:15px 15px 15px 4px;background:#fffdf0;box-shadow:0 3px #375c4b2b;font-size:11px;line-height:1.45;text-align:start;transform:translate3d(var(--bubble-x,10px),var(--bubble-y,200px),0)}
body.gameplay #game .scene-dialogue .dialogue-portrait{grid-row:1/3;width:30px;height:34px}
body.gameplay #game .scene-dialogue .dialogue-portrait img{width:30px;height:34px;object-fit:contain}
body.gameplay #game .scene-dialogue b{font-size:10px;color:#2c6a51;margin:0}
body.gameplay #game .scene-dialogue>span{grid-column:2;font-size:11px;line-height:1.45;color:#435642;max-height:3em;overflow:hidden}
body.gameplay #game .scene-dialogue:not(.has-portrait) .dialogue-portrait{display:none}
body.gameplay #game .scene-dialogue:not(.has-portrait)>b,body.gameplay #game .scene-dialogue:not(.has-portrait)>span{grid-column:1/3}
body.gameplay #game #message{position:absolute;inset:144px 50% auto auto;transform:translateX(50%);max-width:min(440px,calc(100% - 24px));width:max-content;z-index:48;border:1px solid #ced4b6;border-radius:18px;background:#fff9e5;color:#354e3b;box-shadow:0 4px #345b4c26;font-size:12px;line-height:1.5;padding:9px 15px;pointer-events:none}
body.gameplay #game #message:not(.notice-visible){display:none}
body.gameplay #game #earnings{display:none}
.scene-reward{position:absolute;left:0;top:0;z-index:26;display:flex;gap:5px;align-items:center;padding:5px 10px;border:1px solid #e6c56a;border-radius:18px;background:#fff6cd;color:#735116;box-shadow:0 3px #315a4e25;font:800 19px/1.2 system-ui;pointer-events:none;white-space:nowrap}
.scene-reward small{font-size:10px;color:#725b29;max-width:112px;overflow:hidden;text-overflow:ellipsis}
body.gameplay #game #milestone-toast{position:absolute;inset:auto 16px 168px auto;width:min(340px,calc(100% - 32px));box-sizing:border-box;padding:13px 16px;border:2px solid #d9a847;border-radius:20px;background:#fff4ce;color:#5a4821;box-shadow:0 5px #48674530;z-index:43}
body.gameplay #game .desk{z-index:40;border:1px solid #d4d9b7;border-top:4px solid #ca9b3b;box-shadow:0 10px 36px #1a3e422e}
body.gameplay #game #build-exit{z-index:46;top:76px;left:16px;min-height:44px}
body.gameplay.studio-open #game #scene-tools{display:none}
body.gameplay.studio-open #game #order-rail,body.gameplay.drawer-open #game #order-rail{display:none}
body.gameplay #game button:focus-visible{outline:3px solid #0e5848;outline-offset:3px;box-shadow:0 0 0 5px #fff8d8}
@media(hover:hover) and (pointer:fine){body.gameplay #game #nav button:hover:not(.active){background:#eee7c7}body.gameplay #game .hanging-order:hover{background:#fff2c8}}
@media(max-width:1050px) and (min-width:761px){body.gameplay #game .top-stats small{display:none}body.gameplay #game .top-stats{margin-right:236px}body.gameplay #game .brand small{display:none}body.gameplay #game .hanging-order{width:186px}}
@media(max-width:760px){
 .gameplay #game>header{inset:calc(7px + var(--safe-top)) 10px auto;height:44px;gap:6px}
 body.gameplay #game .brand{gap:5px}body.gameplay #game .brand strong{font-size:16px}body.gameplay #game .brand small{display:none}
 body.gameplay #game .brand-icon,body.gameplay #game .brand-icon picture,body.gameplay #game .brand-icon img{width:28px;height:35px}
 body.gameplay #game .top-stats{gap:4px;margin-left:auto;margin-right:43px}
 body.gameplay #game .top-stats>div{padding:5px 8px;gap:3px;min-height:34px;border-radius:18px}
 body.gameplay #game .top-stats small{display:none}body.gameplay #game .top-stats strong{font-size:15px}
 body.gameplay #game .top-stats>div:first-child::before{width:18px;height:18px;font-size:12px;border-width:1px}
 body.gameplay #game  #help{right:0;top:0;width:44px;min-width:44px;height:44px;min-height:44px;border-radius:50%;font-size:18px}
 body.gameplay #game .clock-card{top:calc(61px + var(--safe-top));right:64px;width:96px;min-height:44px;padding:6px;gap:0 4px;border-radius:12px}
 body.gameplay #game .clock-card #clock{font-size:16px}body.gameplay #game .clock-card #day{font-size:10px}body.gameplay #game .clock-card #weather-badge{font-size:9px}
 body.gameplay #game #order-rail{inset:calc(61px + var(--safe-top)) auto auto 10px;width:calc(100% - 184px);max-width:none;display:block}
 body.gameplay #game .hanging-order{width:100%;min-height:52px;padding:6px 8px;column-gap:6px;grid-template-columns:24px minmax(0,1fr);grid-template-rows:15px 20px}
 body.gameplay #game .hanging-order .order-cup{width:23px;height:32px;grid-row:1/3}body.gameplay #game .hanging-order b{font-size:13px}body.gameplay #game .hanging-order small{font-size:10px}body.gameplay #game .hanging-order .order-recipe{display:none}
 body.gameplay #game .rail-more{display:none}body.gameplay #game .rail-rest{min-height:64px;padding:6px 10px;box-sizing:border-box;border-radius:13px}body.gameplay #game .rail-rest b{font-size:11px}
 body.gameplay #game .time-tools{inset:calc(61px + var(--safe-top)) 10px auto auto;gap:4px}
 body.gameplay #game .time-tools button{width:38px;min-height:44px;height:44px;font-size:11px;border-radius:13px}body.gameplay #game .time-tools #pause{width:48px}
 body.gameplay #game #goal-badge{inset:calc(121px + var(--safe-top)) auto auto 10px;width:auto;max-width:calc(100% - 82px);min-height:44px;padding:7px 10px;font-size:11px;line-height:1.3;border-radius:13px}
 body.gameplay #game #scene-tools{inset:calc(151px + var(--safe-top)) 10px auto auto;gap:4px}
 body.gameplay #game #scene-tools #rotate-left,body.gameplay #game #scene-tools #rotate-right{display:none}
 body.gameplay #game #scene-tools button{width:38px;min-height:44px;height:44px;border-radius:12px;font-size:17px}
 body.gameplay #game #scene-tools #photo-open::after{font-size:20px}
 body.gameplay #game #nav{inset:auto 8px calc(8px + var(--safe-bottom));transform:none;width:calc(100% - 16px);max-width:none;height:60px;grid-template-columns:none;grid-auto-columns:minmax(0,1fr);gap:3px;padding:4px;border-radius:22px}
 body.gameplay #game #nav button{min-height:50px;padding:3px 2px;border-radius:16px}body.gameplay #game #nav button b{width:27px;height:27px}body.gameplay #game #nav button span{font-size:11px}
 body.gameplay #game #next-action{inset:auto 10px calc(76px + var(--safe-bottom));width:calc(100% - 20px);min-height:50px;padding:6px 8px;gap:6px;border-radius:15px;border-left-width:3px}
 body.gameplay #game #next-action>picture{width:22px}body.gameplay #game #next-action img{width:22px;height:29px}
 body.gameplay #game #next-action>div{gap:3px 6px}body.gameplay #game #next-action h3{font-size:12px;max-width:none;margin:0;white-space:nowrap}
 body.gameplay #game #next-action button.primary{min-height:44px;max-width:158px;font-size:11px;padding:7px 9px;line-height:1.3}
 body.gameplay #game #next-action[data-tutorial="true"]{min-height:88px}body.gameplay #game #next-action[data-tutorial="true"] p{font-size:11px;max-height:3em;overflow:hidden}
 body.gameplay #game .scene-tag{display:none}
 body.gameplay #game .scene-dialogue:not([hidden]){width:214px;padding:7px 9px;font-size:11px}
 body.gameplay #game #message{top:calc(174px + var(--safe-top));max-width:calc(100% - 30px);font-size:11px}
 body.gameplay #game #milestone-toast{inset:auto 10px calc(148px + var(--safe-bottom));width:calc(100% - 20px);padding:10px 13px}
 body.gameplay #game #build-exit{top:calc(60px + var(--safe-top));left:10px}
 body.gameplay #game .desk{inset:calc(118px + var(--safe-top)) 8px calc(80px + var(--safe-bottom));width:auto;max-width:none;max-height:none;border-radius:22px;box-sizing:border-box}
 body.gameplay.drawer-open #game #goal-badge,body.gameplay.drawer-open #game #scene-tools{display:none}
}
@media(max-width:359px){body.gameplay #game .brand strong{font-size:14px}body.gameplay #game .brand-icon,body.gameplay #game .brand-icon picture,body.gameplay #game .brand-icon img{width:24px}body.gameplay #game .top-stats>div{padding:5px 6px}body.gameplay #game .top-stats strong{font-size:13px}body.gameplay #game .top-stats>div:first-child::before{display:none}body.gameplay #game #next-action>picture{display:none}body.gameplay #game #next-action h3{font-size:11px}}
@media(max-height:480px) and (min-width:761px){body.gameplay #game #order-rail{top:68px}body.gameplay #game #scene-tools{bottom:82px}body.gameplay #game #goal-badge{bottom:14px;max-width:210px}body.gameplay #game #next-action{bottom:88px;max-width:360px}body.gameplay #game #nav{height:60px}body.gameplay #game .desk{top:70px;bottom:82px}}
@media(prefers-reduced-motion:reduce){body.gameplay #game #nav button,body.gameplay #game #next-action,.scene-reward,body.gameplay #game .scene-dialogue{animation:none;transition:none}}
/* Keep camera recovery reachable alongside direct touch rotation. */
body.gameplay #game #scene-tools #reset-view,body.gameplay #game #scene-tools #overview-view{display:grid;place-items:center}
body.gameplay #game #play-hud::after{display:none;content:none}
body.gameplay.photography #game #nav,body.gameplay.photography #game #scene-tools{display:none}
body.gameplay.photography #game .scene{inset:0 310px 0 0;width:auto;height:auto}
@media(max-width:760px){body.gameplay.photography #game .scene{inset:0 0 285px;width:auto;height:auto}}
@media(max-width:760px) and (max-height:640px){
 body.gameplay #game #scene-tools{top:calc(151px + var(--safe-top));bottom:auto}
 body.gameplay #game #scene-tools #overview-view,body.gameplay #game #scene-tools #photo-open{display:none}
 body.gameplay #game .hanging-order{min-height:52px}
 body.gameplay #game #nav{height:60px}
 body.gameplay #game #nav button{min-height:50px}
 body.gameplay #game #nav button b{width:28px;height:28px}
}

/* Keep task controls in the drawer's scrollport, below the sticky heading. */
body.gameplay #game .desk{scroll-padding-block:90px 28px;scrollbar-gutter:stable}
body.gameplay #panel :is(button,input,select){scroll-margin-block:90px 28px;max-width:100%}
body.gameplay #panel button{white-space:normal;overflow-wrap:anywhere}
@media(min-width:761px) and (min-height:600px){
 body.gameplay #game .desk{top:80px;bottom:90px;width:min(440px,42vw)}
}
.collection-next{padding:14px;margin:0 0 16px;border:2px solid #73c7a3;border-radius:18px;background:#effced;color:#285541}
.collection-next h3{font-size:17px;line-height:1.45;margin:7px 0}
.collection-next p{font-size:13px;line-height:1.65;margin:8px 0}
.collection-next small{color:#416545;font-weight:700}
.collection-next button{width:100%;min-height:44px}
.lab-label-short{display:none}
@media(max-width:380px){
 body.gameplay #panel .lab-tabs{display:flex;gap:4px;flex-wrap:nowrap}
 body.gameplay #panel .lab-tabs button{flex:1 1 0;min-width:44px;min-height:44px;padding:6px 3px;font-size:12px;white-space:nowrap}
 .lab-label-full{display:none}.lab-label-short{display:inline}
}
.first-flavors .flavor-person{display:block;color:#356344;font-weight:700;margin-block:5px}
@media(min-height:501px){
 body.gameplay.studio-open #game .scene{bottom:calc(var(--fitting-height,300px) + 8px)!important}
}
body.gameplay.studio-open #game .scene{height:auto;width:auto}
.gameplay .view-menu{position:absolute;right:16px;top:138px;z-index:32;width:58px;pointer-events:auto}
.gameplay .view-menu>summary{list-style:none;display:grid;place-items:center;box-sizing:border-box;min-height:44px;width:58px;margin-left:auto;border:1px solid #abc6b2;border-radius:14px;background:#fffdf0;color:#285744;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 3px #305e4f24}
.gameplay .view-menu>summary::-webkit-details-marker{display:none}
.gameplay .view-menu[open]{width:248px}
body.gameplay #game .view-menu:not([open]) #scene-tools{display:none!important}
body.gameplay #game .view-menu #scene-tools{position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px;margin-top:7px;border:1px solid #abc6b2;border-radius:18px;background:#fffdf0;box-shadow:0 8px 24px #224b4129;pointer-events:auto}
body.gameplay #game .view-menu #scene-tools button{display:grid;width:auto;min-width:44px;min-height:48px;height:auto;place-items:center;font-size:12px;background:#f0f8e9;box-shadow:none}
body.gameplay #game .view-menu #scene-tools #photo-open{font-size:12px}
body.gameplay #game .view-menu #scene-tools #photo-open::after{display:none}
body.gameplay #game .view-menu #scene-tools :is(#overview-view,#photo-open,#rotate-left,#rotate-right){display:grid}
body.gameplay #game .view-menu #scene-tools small{display:block;grid-column:1/-1;text-align:center;font-size:11px;color:#47604a}
.gameplay .view-menu>summary:focus-visible{outline:3px solid #0e5848;outline-offset:3px}
body.gameplay.studio-open #view-menu,body.gameplay.drawer-open #view-menu,body.gameplay.photography #view-menu{display:none}
body.gameplay #world .work-cue{position:absolute;inset:0 auto auto 0;z-index:22;box-sizing:border-box;width:94px;min-height:44px;padding:4px 7px;display:grid;grid-template-columns:24px 1fr;grid-template-rows:28px 3px;gap:1px 4px;align-items:center;border:1px solid #67bda0;border-radius:14px 14px 14px 4px;background:#fffef1;color:#235b45;box-shadow:0 3px #174e3e24;pointer-events:auto;touch-action:manipulation}
body.gameplay #world .work-cue[hidden]{display:none}
.work-cue>span{width:24px;height:26px;background:#e1f7cf;border-radius:8px}
.work-cue svg{display:block;width:24px;height:26px}
.work-cue b{font-size:11px;line-height:1.2;white-space:nowrap}
.work-cue>i{grid-column:1/-1;display:block;height:3px;border-radius:3px;background:#d7e7c6;overflow:hidden}
.work-cue>i[hidden]{display:none}
.work-cue>i>i{display:block;width:100%;height:100%;background:#259775;transform-origin:left}
body.gameplay #world .work-cue{transition:none}
body.gameplay #panel .shop-shortcuts{display:flex;gap:6px;margin-block:14px;align-items:stretch}
body.gameplay #panel .shop-shortcuts button{flex:1;min-width:0;min-height:64px;padding:7px 5px;gap:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:14px;font-size:12px}
body.gameplay #panel .shop-shortcuts button>svg,body.gameplay #panel .shop-shortcuts button>picture,body.gameplay #panel .shop-shortcuts button>picture img{width:27px;height:27px;min-height:0;margin:0;object-fit:contain}
body.gameplay #panel .shop-shortcuts .restock-badge{font-size:10px;line-height:1.4;padding:2px 5px;margin:0}
body.gameplay #panel>h2{font-size:19px;margin-block:6px 10px}
body.gameplay #panel>.intro{font-size:13px;margin-block:0 12px}
@media(max-width:760px){
 .gameplay .view-menu{top:calc(121px + var(--safe-top));right:10px;width:54px}
 .gameplay .view-menu>summary{width:54px}
 .gameplay .view-menu[open]{width:min(248px,calc(100vw - 20px))}
 body.gameplay #game .clock-card #weather-badge{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 body.gameplay #game .clock-card #clock{grid-row:1}
 body.gameplay #game .clock-card #day{font-size:10px}
 body.gameplay #game #next-action>picture{display:none}
 body.gameplay #game #next-action h3{font-size:12px}
}
@media(max-height:480px) and (min-width:761px){.gameplay .view-menu{top:128px}}
@media(max-width:760px) and (min-height:501px) and (max-height:650px){
 body.gameplay #build-studio .studio-tray button svg{height:40px}
 body.gameplay #build-studio .studio-tray button{padding:7px 5px}
 body.gameplay #build-studio .studio-tray button small{font-size:10px}
}
/* Keep the existing controls reachable beneath the drawer's measured heading. */
body.gameplay #game .desk{scroll-padding-block-start:calc(var(--drawer-heading-height,72px) + 12px)}
body.gameplay #panel :is(button,input,select,#manual-workbench,[data-details]){scroll-margin-block-start:8px}
body.gameplay #panel .builder-controls{position:sticky;top:var(--drawer-heading-height,72px);z-index:15;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;background:#fff9eb;border:1px solid #e0c278;border-radius:12px;box-shadow:0 4px 8px #8c64251c}
body.gameplay #panel .builder-controls button{min-height:44px;min-width:0;margin:0}
body.gameplay #game .desk:has(.builder-controls){scroll-padding-block-start:calc(var(--drawer-heading-height,72px) + 118px)}
#loading.load-failed span{animation:none}
#loading .loading-retry{min-height:44px;margin-top:14px;padding:9px 20px;border-radius:14px;background:#137b65;color:#fffef0;border:2px solid #fff0b5;font:inherit;font-weight:700;cursor:pointer}
#loading.load-failed small{max-width:280px;line-height:1.7;text-align:center}
@media(max-width:760px){
 body.gameplay #game #milestone-toast{inset:auto 10px calc(82px + var(--safe-bottom)) 10px;width:calc(100% - 20px);max-width:none;min-width:0;transform:none;animation:none;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:5px 8px;align-items:center;padding:10px 12px;min-height:64px}
 body.gameplay #game #milestone-toast[hidden]{display:none}
 body.gameplay #game #milestone-toast>span{grid-row:1/3;font-size:27px}
 body.gameplay #game #milestone-toast>b{font-size:13px;line-height:1.4;min-width:0}
 body.gameplay #game #milestone-toast>small{grid-column:2;font-size:11px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
 body.gameplay #game #milestone-toast>button{grid-column:3;grid-row:1/3;margin:0;min-height:44px;max-width:95px;font-size:12px;padding:7px}
}
.trial-guidance{margin:10px 0 16px;padding:10px 12px;border-left:4px solid #24946b;background:#fff2b7;color:#235b45;border-radius:4px 12px 12px 4px}
.trial-guidance b,.trial-guidance small{display:block;line-height:1.6}
.trial-guidance small{font-size:12px}
.trial-in-progress h3{font-size:15px;line-height:1.5;margin-bottom:8px}
