:root{--ink:#23343b;--dusk:#243d49;--deep:#172c36;--paper:#f3eddd;--muted:#b8c7c8;--amber:#f4c76e;--coral:#cf715e;--teal:#88b9ae;--line:#405761;--panel:#2d4651;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--mono:"SFMono-Regular",Consolas,monospace;color-scheme:dark;font-family:var(--sans);color:var(--paper);background:var(--dusk);font-synthesis:none;scrollbar-color:#657b7f #243d49;scrollbar-width:thin}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#657b7f #243d49}*::-webkit-scrollbar{width:7px;height:7px}*::-webkit-scrollbar-thumb{background:#657b7f;border-radius:4px}*::-webkit-scrollbar-track{background:#243d49}body{margin:0;min-width:320px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;transition:background .15s,transform .15s;border:1px solid transparent}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--amber);outline-offset:4px}h1,h2,h3,p{margin:0}button,summary{touch-action:manipulation}img{display:block;max-width:100%}small{font-size:12px}h2{font-family:var(--serif);font-size:24px;font-weight:600}h3{font-size:16px}button:not(:disabled):hover{filter:brightness(1.09)}a:hover{color:var(--amber)}.masthead{height:88px;max-width:1504px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:23px;letter-spacing:3px}.brand small{display:block;font:9px var(--mono);letter-spacing:2.7px;margin-top:6px;color:var(--muted)}.brand-mark{border:1px solid var(--amber);color:var(--amber);font:11px/1.35 var(--sans);text-align:center;letter-spacing:1px;padding:6px 5px;transform:rotate(-4deg)}nav{display:flex;align-items:center;gap:22px;font-size:13px;color:var(--muted)}#save-status{font-size:11px}.icon-button{width:38px;height:38px;border:1px solid var(--line);background:transparent;border-radius:50%;font-size:19px}.home{white-space:nowrap}#app{max-width:1504px;margin:0 auto;padding:0 40px}.boot{padding:60px;text-align:center}.eyebrow{font:10px var(--mono);letter-spacing:2px;color:var(--muted)}.primary{background:var(--amber);color:var(--ink);border-color:var(--amber);font-weight:650;border-radius:5px;min-height:46px;padding:12px 20px}.secondary{background:transparent;border:1px solid #60747b;border-radius:5px;padding:11px 16px;min-height:44px}.text-button{background:transparent;color:var(--muted);padding:10px 4px;min-height:40px;font-size:12px}.text-button:hover{color:var(--paper);text-decoration:underline}.muted{color:var(--muted)}.warning{color:#ffc295;font-size:13px;line-height:1.7}.big{font-size:16px;min-height:56px;display:flex;gap:50px;align-items:center;justify-content:space-between}.big span{font-size:23px;font-weight:400}.intro{padding:64px 0 28px;display:grid;grid-template-columns:.8fr 1.2fr;gap:35px 24px;align-items:center}.intro-copy{padding:15px 0 20px 16px;position:relative;z-index:1}.intro .eyebrow{color:var(--amber);letter-spacing:3px;font-family:var(--sans);font-size:11px}.lit-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px #f4c76e88;margin-right:8px}.intro h1{font-family:var(--serif);font-size:clamp(44px,5.2vw,74px);font-weight:500;line-height:1.24;letter-spacing:5px;margin:26px 0}.intro h1 span{color:var(--amber)}.intro-description{font-size:14px;color:var(--muted);line-height:2}.intro-actions{margin-top:32px;display:flex;align-items:flex-start;flex-direction:column;gap:9px}.intro-meta{font-size:11px;color:var(--muted);margin-top:19px;letter-spacing:.5px}i{font-style:normal;margin:0 7px;opacity:.55}.intro-art{position:relative;isolation:isolate}.intro-art img{width:100%;border-radius:130px 10px 10px 10px;border:1px solid #4d626a;box-shadow:0 25px 60px #10273055}.shop-stamp{position:absolute;right:22px;top:24px;padding:12px;border:1px solid #daca9d;transform:rotate(8deg);font-size:12px;line-height:1.6;color:#eadab0;background:#31485399}.shop-stamp strong{font-size:15px;font-weight:500}.art-caption{display:flex;justify-content:space-between;font-size:11px;color:#afbfbc;padding:13px 2px;letter-spacing:1px}.intro-rules{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:24px;border-top:1px solid var(--line);padding:28px 16px}.intro-rules b{font:12px var(--mono);color:var(--amber)}.intro-rules b span{font:15px var(--sans);color:var(--paper);margin-left:14px}.intro-rules p{font-size:12px;color:var(--muted);line-height:1.9;margin:10px 0 0 32px;max-width:280px}.panel{border:1px solid var(--line);border-radius:9px;background:var(--panel);min-width:0;overflow:hidden}.status-strip{display:flex;gap:28px;align-items:center;padding:24px 0}.day-tile{display:flex;align-items:center;gap:13px}.day-tile small{color:var(--muted);writing-mode:vertical-rl;letter-spacing:3px;font-size:10px}.day-tile b{font:38px var(--mono);color:var(--amber)}.day-tile em{font:12px var(--mono);color:var(--muted);margin-left:6px}.day-progress{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:187px}.day-progress>span{width:21px;height:5px;background:#405963;font-size:0}.day-progress>span.done{background:var(--amber)}.day-progress small{width:100%;color:var(--muted);margin-top:5px;font-size:11px}.vouchers{margin-left:auto;border-left:1px solid var(--line);padding-left:28px;display:flex;align-items:center;gap:14px}.vouchers small{font-size:12px;color:var(--muted)}.vouchers b{font:28px var(--mono);color:var(--amber)}.vouchers em{font:11px var(--sans);color:var(--muted);margin-left:6px}.stat{width:112px}.stat>span{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:9px}.stat b{font:13px var(--mono);color:var(--paper)}meter{display:block;width:100%;height:5px;border:0;background:#405b64;border-radius:0}meter::-webkit-meter-bar{height:5px;border:0;background:#405b64;border-radius:0}meter::-webkit-meter-optimum-value{background:var(--teal)}meter::-moz-meter-bar{background:var(--teal)}.stat.low meter::-webkit-meter-optimum-value{background:var(--coral)}.stat.low b{color:#ffc295}.shop-grid{display:grid;grid-template-columns:minmax(240px,.95fr) minmax(390px,1.85fr) minmax(220px,.9fr);gap:18px;align-items:stretch}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:22px 20px 10px}.section-heading h2{margin-top:7px;font-size:23px}.stock-total{font:12px var(--mono);color:var(--muted)}.panel-hint{color:var(--muted);font-size:11px;padding:0 20px 17px}.stock-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 15px 15px}.stock-item{position:relative;display:flex;flex-direction:column;align-items:center;background:#243b46;min-width:0;border:1px solid #4a5e64;border-bottom:4px solid #5a6968;border-radius:5px;padding:14px 5px 9px;min-height:137px;gap:7px}.stock-item.requested{border-color:var(--amber);background:#3c4b4a}.stock-item strong{font-size:12px;font-weight:500}.stock-item .item-count{position:absolute;right:7px;top:6px;font:10px var(--mono);color:#c8d3cc}.item-price{font-size:10px;color:#bdc7c4}.need-label{color:var(--amber)}.product{position:relative;display:inline-flex;width:40px;height:51px;background:var(--item);border-radius:5px 5px 7px 7px;align-items:center;justify-content:center;box-shadow:inset -8px 0 #00000018,inset 0 4px #ffffff33,0 5px 5px #142b352f;margin:8px 0 1px}.product>span{font:15px var(--serif);font-weight:bold;border-block:1px solid #ffffff55;background:#f4eccfa8;color:#3c4a45;padding:3px 8px;min-width:100%;text-align:center}.product-water{width:25px;height:49px;border-radius:7px 7px 4px 4px;margin-top:10px}.product-water:before{content:"";position:absolute;top:-6px;width:15px;height:8px;background:#e1debe;border-radius:2px}.product-water>span{font-size:12px;padding-inline:0}.product-food{height:37px;border-radius:6px 6px 8px 8px;margin-top:22px}.product-medicine{width:45px;height:33px;border-radius:2px;margin-top:26px}.product-medicine>span{color:#975045}.product-battery{width:25px;border-radius:3px}.product-battery:before{content:"";position:absolute;top:-3px;left:8px;width:10px;height:4px;background:#aaa}.product-battery>span{font-size:11px;padding-inline:0;background:#293d4299;color:var(--amber)}.product-bread{width:42px;height:40px;border-radius:2px;margin-top:18px;transform:rotate(-5deg)}.product-bandage{width:44px;height:32px;margin-top:26px;border-radius:14px;box-shadow:inset -10px 0 #a09e8d,inset -14px 0 #e0d9c4}.product-bandage>span{min-width:22px;font-size:11px;padding:0;background:none;border:0}.product-soap{width:45px;height:25px;margin-top:33px;border-radius:8px;transform:rotate(7deg)}.product-soap>span{font-size:11px;padding:0;background:none;border:0}.product-tools{width:44px;height:32px;margin-top:26px;border-radius:2px}.product-candy{width:35px;height:43px;margin-top:15px;border-radius:9px 3px 9px 3px;transform:rotate(7deg)}.product-fuel{height:45px;margin-top:13px;border-radius:8px 3px 4px 4px}.ration-note{padding:13px 16px;font-size:10px;line-height:1.6;border-top:1px solid var(--line);color:var(--muted)}.ration-note b{font-weight:500;color:#dfdbbc}.ration-note>span{margin-right:6px}.counter-panel{background:var(--deep);display:flex;flex-direction:column}.counter-top{height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted);letter-spacing:1px}.open-sign{color:var(--amber)}.open-sign:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin-right:7px}.closed{color:var(--teal)}.customer-scene{height:187px;min-height:145px;position:relative;background:#324b51;display:flex;align-items:flex-end;overflow:hidden;border-bottom:6px solid #786f58;isolation:isolate;padding:0 24px}.window-lines{position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,transparent 35%,#66837516 35%,#66837516 49%,transparent 49%),linear-gradient(90deg,transparent 48%,#1c353d 48%,#1c353d 50%,transparent 50%)}.window-lines:after{content:"";position:absolute;top:21px;right:22px;width:78px;height:130px;background:repeating-linear-gradient(0deg,#243e4390,#243e4390 5px,transparent 5px,transparent 31px);border-inline:5px solid #263e42}.portrait{width:60px;height:65px;flex-shrink:0;border-radius:5px}.portrait.large{height:172px;width:160px;margin-left:6px;border-radius:80px 80px 0 0}.visitor-name{padding:0 0 22px 21px;align-self:flex-end}.visitor-name small{font-size:11px;color:#c9cfbd}.visitor-name h2{font-size:29px;letter-spacing:3px;margin:7px 0 9px}.visitor-name>span{font-size:10px;padding:3px 8px;border:1px solid #758980;color:#cad7c9}.weather-tag{position:absolute;right:16px;top:14px;font-size:10px;color:#aec4bd}.conversation{padding:20px 24px 10px}.customer-detail{color:#aabdbd;font-size:11px}.conversation blockquote{font-family:var(--serif);font-size:20px;line-height:1.75;margin:12px 0 15px;color:#f0ead7;min-height:36px}.request-line{display:flex;align-items:center;gap:12px;font-size:12px}.request-line>span:first-child{color:var(--muted)}.request-line>b{font-weight:550}.request-line .offer{margin-left:auto;color:var(--muted)}.offer strong{font:21px var(--mono);color:var(--amber);margin:0 5px}.customer-tools{display:flex;align-items:center;gap:17px;margin-top:6px}.customer-tools .text-button{font-size:11px;color:var(--teal)}.customer-tools>small{margin-left:auto;font-size:9px;color:#9eb4b5}.clue{padding:10px 12px;border-left:2px solid var(--amber);margin-top:12px;font-size:11px;line-height:1.7;background:#4a4e3d66;color:#e2d5ac}.trading{padding:0 24px 18px;margin-top:auto}.trade-tray{display:flex;align-items:center;gap:12px;min-height:76px;padding:13px;border:1px dashed #6d7a74;background:#283e4190;border-radius:5px}.trade-tray.ready{border-style:solid;border-color:#99b8a0;background:#384c4299}.trade-tray b{display:block;font-size:13px;font-weight:500}.trade-tray small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:5px}.tray-mark{font-size:27px;color:#98a68e}.tray-count{font:10px var(--mono);white-space:nowrap;margin-left:auto;color:var(--muted)}.trade-tray>.text-button{margin-left:auto;white-space:nowrap}.trade-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.trade-actions .primary{grid-column:1/3;display:flex;justify-content:space-between;gap:7px;align-items:center}.trade-actions .primary span{font:12px var(--mono)}.trade-actions .secondary{padding:9px 8px;font-size:12px;min-height:42px}.trade-actions .refuse{grid-column:3;grid-row:2;color:#c4b6a6}.trade-note{font-size:10px;color:#aebdb9;line-height:1.65;margin-top:11px;min-height:32px}.receipt{position:relative;padding:20px 22px;background:var(--paper);color:var(--ink);margin:0 24px 20px;border-top:3px dashed #cfbfa5;box-shadow:0 5px 14px #00121d33}.receipt .eyebrow{color:#66796f}.receipt h3{font:23px var(--serif);margin:8px 0 10px;padding-right:42px}.receipt p:not(.eyebrow){font-size:12px;line-height:1.85;color:#465a5b}.receipt .primary{width:100%;margin-top:15px;background:var(--dusk);border-color:var(--dusk);color:var(--paper);font-size:13px}.receipt-stamp{position:absolute;right:20px;top:22px;border:2px solid #ae664e;color:#ae664e;font-size:11px;padding:5px;transform:rotate(12deg)}.ledger-panel{background:#f0e8d6;color:var(--ink);display:flex;flex-direction:column;border-color:#d4c8ab}.ledger-panel details{min-height:0;display:flex;flex-direction:column}.ledger-panel summary{font-family:var(--serif);font-size:20px;padding:22px 19px 14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.ledger-panel summary::-webkit-details-marker{display:none}.ledger-dot{color:#c58859;font-size:9px}.ledger-caption{font-size:10px;line-height:1.7;color:#61706a;margin-bottom:16px}.ledger-inner{padding:0 19px 16px}.ledger-entries article{padding:0 0 17px 12px;margin-left:2px;border-left:1px solid #c3b89d;position:relative}.ledger-entries article:before{content:"";position:absolute;left:-3px;top:4px;width:5px;height:5px;border-radius:50%;background:#af9671}.ledger-entries small{font:9px var(--mono);color:#6a796d}.ledger-entries h3{font-size:12px;font-weight:650;margin:5px 0}.ledger-entries p{font-size:11px;line-height:1.9;color:#5b6b66}.radio-card{display:flex;gap:11px;align-items:center;margin-top:auto;padding:17px;border-top:1px solid #cfc3a8}.radio-card>span{font-size:33px;color:#738074}.radio-card b{font-size:11px;font-weight:600}.radio-card small{display:block;font-size:10px;color:#6e796a;margin-top:6px}.radio-bars{display:flex;gap:3px;align-items:flex-end;margin-left:auto}.radio-bars i{width:4px;height:9px;margin:0;background:#c9c1ab}.radio-bars i:nth-child(2){height:13px}.radio-bars i:nth-child(3){height:17px}.radio-bars i:nth-child(4){height:21px}.radio-bars i.on{background:#466962}.notebook-button{border:0;border-top:1px solid #cfc3a8;background:#e5dcc5;padding:15px;text-align:left;font-size:11px;color:#415b58}.game-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#adc0be;min-height:46px}.game-footer>div{display:flex;gap:20px}.game-footer .text-button{font-size:10px}.night-panel{background:var(--deep)}.night-illustration{height:145px;overflow:hidden;position:relative}.night-illustration img{width:100%;height:100%;object-fit:cover;object-position:center 61%;opacity:.8}.night-body{padding:21px 24px}.night-body h2{font-size:28px;margin:9px 0 13px}.night-body>p:not(.eyebrow){font-size:12px;line-height:1.9;color:var(--muted)}.night-options{display:grid;grid-template-columns:1fr;gap:9px;margin-top:18px}.night-option{display:flex;gap:14px;padding:13px 14px;align-items:center;background:#29414a;border:1px solid #556b6c;border-radius:5px;text-align:left;min-height:72px}.night-option b{display:block;font-weight:500;font-size:14px;color:#efdfb9}.night-option small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:6px}.task-symbol{font-size:24px;color:var(--amber);min-width:23px;text-align:center}.task-arrow{font-size:21px;color:var(--amber);margin-left:auto}.night-body .night-warning{border-top:1px solid var(--line);padding-top:13px;margin-top:17px;font-size:10px;color:#e2cc9f}.ending{display:grid;grid-template-columns:1fr 1fr;margin:44px 0}.ending-art img{width:100%;height:100%;object-fit:cover;min-height:540px}.ending-copy{padding:45px 40px}.ending h1{font:clamp(32px,3vw,46px)/1.45 var(--serif);margin:20px 0}.ending-text{font-size:14px;line-height:2;color:var(--muted)}.ending-tags{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 30px}.ending-tags span{font-size:10px;border:1px solid #7a8877;color:#cfd4b8;padding:5px 9px}.ending-numbers{display:flex;gap:32px;padding-block:20px;border-block:1px solid var(--line);margin-bottom:30px}.ending-numbers b{font:27px var(--mono);display:block;color:var(--amber)}.ending-numbers span{display:block;font-size:11px;color:var(--muted);margin-top:8px}.ending-actions{display:flex;gap:10px;flex-wrap:wrap}.ending-actions button{font-size:13px}.back-link{display:inline-block;color:var(--muted);font-size:12px;margin-top:25px}dialog{padding:26px;border:1px solid #6f8079;border-radius:12px;background:var(--dusk);color:var(--paper);width:min(550px,calc(100% - 32px));max-height:90dvh;overflow:auto;box-shadow:0 20px 80px #00162399}dialog::backdrop{background:#061821bc;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.dialog-top h2{font-size:22px;line-height:1.5}.dialog-top .icon-button{flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.dialog-actions button{font-size:13px}#dialog-content>p,.help-copy p{font-size:13px;line-height:1.9}.help-copy p+p{margin-top:16px}.help-copy b{color:var(--amber);font-weight:500}.people-list{display:grid;gap:16px}.people-list article{display:flex;gap:16px;align-items:center}.people-list h3{font-weight:500;font-size:15px}.people-list h3 small{font-size:10px;color:var(--muted);margin-left:8px}.people-list p{font-size:11px;color:var(--muted);margin-top:7px}.people-list article span{font:10px var(--mono);color:var(--amber);display:block;margin-top:7px}.full-journal article{padding:15px 0;border-bottom:1px solid var(--line)}.full-journal small{color:var(--amber)}.full-journal h3{margin:6px 0;font-size:14px}.full-journal p{font-size:12px;line-height:1.8;color:var(--muted)}.announcement{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:5;width:max-content;max-width:calc(100% - 32px);padding:10px 18px;border:1px solid #617d78;background:#16363bf2;color:#edf0d9;border-radius:6px;font-size:12px;line-height:1.6;pointer-events:none;box-shadow:0 4px 20px #071c3255}.announcement:empty{display:none}.conflict{display:flex;gap:20px;padding:12px;background:#514c37;color:var(--paper);font-size:13px;align-items:center}.conflict button{background:var(--amber);color:var(--ink);padding:9px;border-radius:4px}
@media(min-width:1100px) and (min-height:620px){body.in-game #app{height:calc(100dvh - 88px);display:flex;flex-direction:column;overflow:hidden}.status-strip{flex-shrink:0}.shop-grid{flex:1;min-height:0}.shelf-panel{display:flex;flex-direction:column}.stock-grid{overflow:auto;min-height:0;flex:1;grid-auto-rows:minmax(128px,1fr);align-content:start}.ration-note{flex-shrink:0}.counter-panel,.night-panel{overflow-y:auto}.ledger-panel details{flex:1;overflow:auto}.game-footer{flex-shrink:0}.counter-panel .conversation{flex-shrink:0}.customer-scene{flex-shrink:0;height:clamp(135px,19vh,187px)}.trading{padding-bottom:14px}.conversation{padding-top:16px}.conversation blockquote{font-size:18px;margin:10px 0}.game-footer{min-height:43px}}
@media(min-width:1100px) and (max-height:850px){.masthead{height:72px}body.in-game #app{height:calc(100dvh - 72px)}.status-strip{padding:16px 0}.customer-scene{height:132px;min-height:132px}.portrait.large{width:132px;height:142px}.visitor-name{padding-bottom:16px}.visitor-name h2{font-size:24px}.conversation{padding-top:13px}.trade-tray{min-height:64px}.trade-actions{gap:7px;margin-top:11px}.receipt{margin-bottom:14px;padding:16px 20px}.night-illustration{height:95px}.night-body{padding:17px 24px}.night-option{padding:10px 12px;min-height:64px}}
@media(max-width:1200px){.masthead,#app{padding-inline:24px}.shop-grid{grid-template-columns:230px minmax(340px,1.7fr) minmax(205px,1fr);gap:13px}.status-strip{gap:18px}.stat{width:94px}.vouchers{padding-left:18px}.intro{padding-top:40px}.intro-copy{padding-left:0}.intro h1{font-size:58px}.intro-description{font-size:13px}.conversation,.trading{padding-inline:19px}.counter-top{padding-inline:19px}.receipt{margin-inline:19px}}
@media(max-width:1000px){.shop-grid{grid-template-columns:220px 1fr}.ledger-panel{grid-column:1/-1}.ledger-panel details{max-height:270px;overflow:auto}.ledger-entries{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.radio-card{margin-top:0}.day-progress{display:none}.intro{grid-template-columns:.9fr 1.1fr;gap:24px}.intro h1{font-size:47px}.intro-actions .big{font-size:14px;gap:22px}.intro-description br{display:none}.shop-stamp{font-size:10px;right:15px;top:15px}.intro-rules{padding-inline:0;gap:20px}.intro-rules p{margin-left:0}.intro-rules b span{margin-left:7px}.ending-copy{padding:30px}.ending-numbers{gap:22px}.announcement{bottom:10px}}
@media(max-width:760px){.masthead{height:75px;padding-inline:18px;gap:10px}.brand{font-size:18px;letter-spacing:2px;gap:10px}.brand small{font-size:7px;letter-spacing:1.5px}.brand-mark{font-size:9px;padding:5px}.masthead nav{gap:12px}.home{font-size:11px}#save-status{display:none}.icon-button{width:33px;height:33px;font-size:17px}#app{padding:0 15px}.intro{display:flex;flex-direction:column;padding-top:25px;gap:24px}.intro-copy{width:100%;padding:5px 9px 0}.intro h1{font-size:50px;line-height:1.15;margin:19px 0;letter-spacing:3px}.intro-description{font-size:13px;line-height:1.9;max-width:360px}.intro-actions{margin-top:22px}.intro-actions .big{width:100%;font-size:15px;min-height:51px}.intro-art{width:100%;order:-1}.intro-art img{aspect-ratio:1.9;object-fit:cover;object-position:center 57%;border-radius:60px 6px 6px 6px}.art-caption{display:none}.shop-stamp{padding:7px;top:13px;right:15px;font-size:9px}.shop-stamp strong{font-size:11px}.intro-meta{font-size:10px}.intro-rules{margin-top:0;display:flex;flex-direction:column;width:100%;padding:24px 9px;gap:22px}.intro-rules p{max-width:none;margin:7px 0 0 29px;font-size:11px}.intro-rules b span{font-size:14px;margin-left:13px}.status-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:15px 22px;padding:17px 3px}.day-tile{grid-column:1/2;gap:9px}.day-tile b{font-size:29px}.day-tile small{font-size:9px;letter-spacing:1px}.day-tile em{font-size:10px}.vouchers{grid-column:2/4;border:0;justify-self:end;padding:0;gap:10px}.vouchers b{font-size:26px}.vouchers small{font-size:11px}.stat{width:100%}.stat>span{font-size:10px;margin-bottom:6px}.stat b{font-size:12px}.shop-grid{display:flex;flex-direction:column;gap:15px}.counter-panel,.night-panel{order:0;scroll-margin-top:14px}.shelf-panel{order:1}.ledger-panel{order:2}.counter-top{height:39px;padding-inline:17px;font-size:9px}.customer-scene{height:137px;min-height:137px;padding-inline:17px}.portrait.large{height:136px;width:127px}.visitor-name{padding:0 0 16px 16px}.visitor-name h2{font-size:25px;margin:6px 0}.visitor-name small{font-size:10px}.visitor-name>span{font-size:9px}.weather-tag{font-size:9px;right:12px;top:10px}.conversation{padding:15px 17px 7px}.customer-detail{font-size:10px}.conversation blockquote{font-size:18px;line-height:1.7;margin:9px 0 13px}.request-line{font-size:11px;gap:10px}.offer strong{font-size:19px}.customer-tools{gap:13px}.customer-tools .text-button{font-size:10px;min-height:36px}.customer-tools>small{font-size:8px}.clue{font-size:10px;padding:8px}.trading{padding:0 17px 15px}.trade-tray{min-height:72px;padding:11px;gap:9px}.trade-tray b{font-size:12px}.trade-tray small{font-size:10px}.tray-mark{font-size:23px}.trade-actions .primary{padding:11px;font-size:12px}.trade-actions .primary span{font-size:11px}.trade-actions .secondary{font-size:11px;min-height:44px}.trade-note{font-size:9px;min-height:29px}.section-heading{padding:17px 16px 8px}.section-heading h2{font-size:21px;margin-top:5px}.section-heading .eyebrow{font-size:8px}.panel-hint{padding:0 16px 14px;font-size:10px}.stock-grid{grid-template-columns:repeat(5,1fr);gap:7px;padding:0 12px 12px}.stock-item{min-height:112px;padding:9px 2px 7px;border-bottom-width:3px;gap:5px}.stock-item strong{font-size:10px;white-space:nowrap}.item-price{font-size:8px}.stock-item .item-count{font-size:9px;right:4px;top:4px}.product{scale:.8;margin-block:1px -4px}.stock-item.requested:after{content:"";position:absolute;bottom:0;width:70%;height:2px;background:var(--amber)}.ration-note{font-size:10px;padding:11px 14px}.ledger-panel summary{font-size:20px;padding:16px}.ledger-panel details{max-height:310px}.ledger-inner{padding-inline:16px}.ledger-caption{font-size:10px}.ledger-entries{display:block}.ledger-entries h3{font-size:12px}.ledger-entries p{font-size:11px}.radio-card{padding:13px 16px}.notebook-button{min-height:44px}.game-footer{padding:6px 2px 58px;align-items:flex-start;gap:12px;min-height:100px;flex-direction:column;font-size:9px}.game-footer>span{padding-top:12px}.game-footer>div{justify-content:space-between;width:100%}.receipt{margin:3px 17px 17px;padding:17px}.receipt h3{font-size:22px}.receipt p:not(.eyebrow){font-size:12px}.night-illustration{height:124px}.night-body{padding:20px 17px}.night-body h2{font-size:27px}.night-body>p:not(.eyebrow){font-size:11px}.night-option{min-height:78px;padding:12px}.night-option b{font-size:13px}.night-option small{font-size:10px}.night-warning{font-size:10px!important}.ending{display:flex;flex-direction:column;margin:20px 0}.ending-art img{min-height:0;height:210px;object-fit:cover;object-position:center 55%}.ending-copy{padding:28px 22px}.ending h1{font-size:32px}.ending-text{font-size:13px}.ending-numbers{gap:28px}.ending-numbers b{font-size:26px}.ending-numbers span{font-size:10px}.ending .primary,.ending .secondary{font-size:12px;padding:12px}.announcement{font-size:11px;max-width:calc(100% - 30px);padding:9px 13px}.conflict{font-size:11px;gap:10px;align-items:flex-start}.conflict button{flex-shrink:0}dialog{padding:21px}.dialog-top h2{font-size:21px}.people-list article{gap:12px}.people-list p{font-size:10px}.people-list h3 small{display:block;margin:4px 0 0}.people-list .portrait{width:54px;height:59px}}
@media(max-width:380px){.masthead{padding-inline:13px}.masthead nav{gap:8px}.home{font-size:10px}.brand{font-size:16px}.brand small{font-size:6px}.brand-mark{display:none}.stock-grid{grid-template-columns:repeat(5,1fr);gap:5px;padding-inline:8px}.stock-item strong{font-size:9px}.stock-item{min-height:107px}.item-price{font-size:7px}.product{scale:.7}.stat{min-width:0}.status-strip{gap:14px}.trade-actions{gap:6px}.trade-actions .primary{font-size:11px}.trade-actions .primary span{font-size:10px}.conversation,.trading{padding-inline:13px}.request-line{gap:7px}.conversation blockquote{font-size:17px}.customer-tools{gap:10px}.intro h1{font-size:44px}.ending-numbers{gap:19px}.dialog-actions{flex-direction:column-reverse}.people-list article{gap:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){button,.panel,.trade-tray{border:1px solid ButtonText}meter{forced-color-adjust:auto}.stock-item.requested{outline:2px solid Highlight}*{scrollbar-color:auto}}

.take-item{flex-shrink:0;margin-left:auto;background:#57716a;border:1px solid #81998b;border-radius:4px;min-height:40px;padding:8px 10px;font-size:11px;color:#f1ebd6}.trade-tray .take-item+.text-button{margin-left:0}
@media(min-width:1100px) and (max-height:760px){.masthead{height:62px}body.in-game #app{height:calc(100dvh - 62px)}.status-strip{padding:12px 0}.customer-scene{height:101px;min-height:101px}.portrait.large{height:114px;width:109px}.visitor-name{padding-bottom:12px}.visitor-name h2{font-size:22px;margin:5px 0}.counter-top{height:35px}.conversation{padding-top:10px;padding-bottom:5px}.conversation blockquote{font-size:17px;line-height:1.6;margin:7px 0 10px}.customer-detail{font-size:10px}.customer-tools{margin-top:3px}.customer-tools button{min-height:32px;padding-block:8px}.trade-actions{margin-top:9px;gap:6px}.trade-actions .primary{min-height:40px;padding:9px 13px;font-size:12px}.trade-actions .secondary{min-height:38px}.trade-tray{min-height:63px;padding:9px 12px}.trade-note{margin-top:7px;min-height:16px;font-size:9px}.clue{padding:6px 9px;margin-top:8px;font-size:10px}.game-footer{min-height:35px}.game-footer button{min-height:32px}.receipt{padding:12px 17px;margin-bottom:12px}.receipt h3{font-size:21px}.receipt .primary{margin-top:11px;min-height:40px}.night-illustration{height:65px}.night-body{padding:14px 20px}.night-body h2{font-size:23px;margin:7px 0}.night-options{gap:6px;margin-top:12px}.night-option{min-height:58px;padding:8px 12px}.night-option small{margin-top:4px}.night-body .night-warning{margin-top:10px;padding-top:9px}}

/* The shop is a playable space; HUD and controls stay outside its viewport. */
body.in-game{height:100dvh;overflow:hidden;background:#182e38}
body.in-game .masthead{height:64px;max-width:1600px;padding-inline:28px}
body.in-game #app{height:calc(100dvh - 64px);max-width:1600px;padding:0 28px;display:flex;flex-direction:column;min-height:0}
body.in-game .status-strip{flex:none;padding:12px 0;gap:28px}
body.in-game .day-tile b{font-size:28px}
body.in-game .stat{max-width:160px;flex:1}
.store-play{display:flex;flex-direction:column;min-height:0;flex:1;border:1px solid #455c60;border-radius:10px;overflow:hidden;background:#1c333c}
.scene-brief{display:flex;gap:10px;align-items:center;padding:12px 20px;min-height:64px;background:#2d454b;border-bottom:1px solid #50605b;flex:none}
.scene-brief>.lit-dot{margin:0 4px 0 0;flex-shrink:0}
.scene-brief>div{display:flex;gap:18px;align-items:center;flex:1;min-width:0}
.scene-brief b{font-size:14px;font-weight:600}.scene-brief div>span{font-size:12px;color:#c8cebd}
.route-button{min-height:40px;background:#354e52;color:var(--amber);border:1px solid #66776a;padding:8px 15px;border-radius:4px;white-space:nowrap;font-size:12px}
.scene-viewport{position:relative;flex:1;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#385454,#182d37 80%)}
#store-scene{display:block;width:100%;height:100%;touch-action:none;outline-offset:-5px;cursor:crosshair}
.scene-caption{position:absolute;left:24px;top:20px;pointer-events:none;font:17px var(--serif);letter-spacing:3px;color:#c7c7ad}
.scene-caption span{display:block;font:7px var(--mono);letter-spacing:1.4px;margin-top:7px;color:#829b99}
.scene-dock{flex:none;display:flex;align-items:center;gap:20px;padding:12px 20px;background:#243e47;border-top:1px solid #496064}
.direction-pad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,34px);gap:4px;touch-action:none;user-select:none}
.direction{border:1px solid #526d70;background:#304e57;border-radius:5px;font:17px var(--sans);touch-action:none;padding:0}
.direction.up{grid-column:2}.direction.left{grid-row:2;grid-column:1}.direction.down{grid-row:2;grid-column:2}.direction.right{grid-row:2;grid-column:3}
.nearby-status{display:flex;flex:1;flex-direction:column;gap:8px;min-width:0}.nearby-status small{font-size:10px;color:#aec1c0}.nearby-status span{font-size:13px;color:var(--paper)}
.interact-button{min-width:116px;min-height:50px;font-size:14px}.store-shortcuts{display:flex;align-items:center;gap:16px}.store-shortcuts .secondary{font-size:12px;white-space:nowrap}
body.in-game .game-footer{flex:none;min-height:36px;padding:0 2px;display:flex;align-items:center;justify-content:space-between;flex-direction:row;font-size:10px}
body.in-game .game-footer>div{width:auto;display:flex;gap:16px}.game-footer button{min-height:32px;font-size:10px}
body.in-game .conflict{flex:none;padding:8px;font-size:12px}
dialog:has(.counter-panel),dialog:has(.night-panel),dialog:has(.shelf-panel){width:min(600px,calc(100vw - 24px));padding:20px;max-height:calc(100dvh - 24px)}
dialog .counter-panel,dialog .night-panel,dialog .shelf-panel{display:block;max-height:none;overflow:visible}
dialog .stock-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:14px}
dialog .stock-item{min-height:114px}dialog .stock-item strong{font-size:11px}dialog .item-price{font-size:9px}dialog .product{transform:scale(.8)}
dialog .customer-scene{height:105px;min-height:105px}dialog .portrait.large{width:112px;height:118px}dialog .conversation{padding:14px 18px 6px}dialog .conversation blockquote{font-size:18px;margin:10px 0;line-height:1.5}dialog .trading{padding:8px 18px 16px}dialog .customer-detail{font-size:10px}dialog .trade-actions{gap:7px;margin-top:10px}dialog .trade-actions .primary{font-size:13px}dialog .trade-tray{padding:10px;gap:9px;min-height:72px}dialog .trade-tray b{font-size:12px}dialog .trade-tray small{font-size:10px}dialog .trade-note{font-size:10px;margin-top:8px}dialog .dialog-top{margin-bottom:14px}dialog .dialog-top h2{font-size:23px}dialog .night-illustration{display:none}dialog .night-body{padding:18px}dialog .night-body h2{font-size:25px}dialog .night-option{min-height:68px;padding:10px}
@media(max-width:900px){.scene-caption{left:14px;top:14px;font-size:13px}.scene-caption span{display:none}.scene-brief>div{flex-direction:column;align-items:flex-start;gap:5px}.scene-dock{gap:12px;padding:10px 14px}.store-shortcuts{gap:10px}.store-shortcuts .text-button{font-size:11px}.nearby-status small{display:none}body.in-game .day-progress{display:none}}
@media(max-width:600px){
 body.in-game .masthead{height:56px;padding:0 14px}.brand{font-size:18px}body.in-game .brand-mark{display:none}body.in-game .brand small{font-size:6px;letter-spacing:1.4px}body.in-game .masthead nav{gap:14px}body.in-game .home{font-size:10px}
 body.in-game #app{height:calc(100dvh - 56px);padding:0 10px;padding-bottom:env(safe-area-inset-bottom)}
 body.in-game .status-strip{gap:12px;min-height:61px;padding:10px 3px;display:flex;flex-wrap:nowrap}body.in-game .day-tile{gap:3px}body.in-game .day-tile small{display:none}body.in-game .day-tile b{font-size:24px}body.in-game .day-tile em{font-size:9px;margin-left:2px}body.in-game .vouchers{border:0;padding:0;margin:0}body.in-game .vouchers small{font-size:8px}body.in-game .vouchers b{font-size:19px}body.in-game .vouchers em{font-size:9px}body.in-game .stat{min-width:0;max-width:none;flex:1}body.in-game .stat span{font-size:8px;gap:2px}body.in-game .stat b{font-size:10px}body.in-game .stat meter{height:3px;margin-top:5px}
 .store-play{border-radius:6px}.scene-brief{min-height:66px;padding:9px 11px;gap:6px}.scene-brief b{font-size:12px}.scene-brief div>span{font-size:10px;line-height:1.5}.route-button{font-size:10px;padding:7px;min-height:38px}.scene-brief>.lit-dot{width:4px;height:4px;margin-right:0}.scene-caption{font-size:11px;letter-spacing:2px;opacity:.7}
 .scene-dock{display:grid;grid-template-columns:112px 1fr 94px;gap:7px 10px;padding:10px}.direction-pad{grid-template-columns:repeat(3,34px);grid-template-rows:repeat(2,36px);gap:4px}.nearby-status span{font-size:10px;line-height:1.6}.interact-button{min-width:0;min-height:54px;padding:9px 5px;font-size:12px}.store-shortcuts{grid-column:1/-1;justify-content:space-between;padding-top:5px;border-top:1px solid #45606a;gap:4px}.store-shortcuts .secondary{font-size:11px;min-height:34px;padding:7px 12px}.store-shortcuts .text-button{min-height:34px;padding:6px 10px}
 body.in-game .game-footer{min-height:28px;font-size:8px}body.in-game .game-footer>span{display:none}body.in-game .game-footer>div{width:100%;justify-content:space-between}.game-footer button{min-height:28px;font-size:9px}
 dialog:has(.counter-panel),dialog:has(.night-panel),dialog:has(.shelf-panel){padding:12px}dialog .dialog-top h2{font-size:19px}dialog .conversation blockquote{font-size:17px}dialog .conversation,dialog .trading{padding-inline:12px}dialog .trade-tray{flex-wrap:wrap}dialog .take-item{min-height:40px}dialog .stock-grid{gap:5px;padding:8px}dialog .stock-item{min-height:111px}dialog .stock-item strong{font-size:9px}dialog .night-option small{font-size:10px}dialog .night-body{padding:13px}.announcement{bottom:172px;max-width:calc(100% - 30px);pointer-events:none}
}
@media(max-width:360px){.scene-dock{grid-template-columns:104px 1fr 85px;padding:8px;gap:7px}.direction-pad{grid-template-columns:repeat(3,32px)}body.in-game .status-strip{gap:8px}.scene-brief b{font-size:11px}.scene-brief div>span{font-size:9px}.scene-caption{display:none}}
@media(max-height:500px) and (min-width:601px){body.in-game .masthead{height:44px}body.in-game #app{height:calc(100dvh - 44px)}body.in-game .status-strip{padding:5px 0}.scene-brief{min-height:42px;padding:4px 12px}.scene-dock{padding:5px 12px}.direction-pad{grid-template-rows:repeat(2,26px)}body.in-game .game-footer{display:none}.scene-caption{display:none}}
