:root{color-scheme:dark;--ink:#111716;--cream:#ede6cc;--muted:#a8afa0;--lime:#d1df8a;--line:#374039;--orange:#dc815c}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font:14px 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}header{height:98px;padding:0 36px;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line)}.brand{font:800 33px/.9 'Barlow Condensed',Impact,sans-serif;letter-spacing:1px;color:var(--cream);text-decoration:none;transform:rotate(-2deg)}.brand span{display:block;font:600 10px 'DM Sans',sans-serif;letter-spacing:4.1px;margin-top:9px}.shift{font-size:11px;letter-spacing:1.5px;color:var(--muted);display:flex;gap:10px;align-items:center}.shift i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px #d1df8a66}nav{margin-left:auto;display:flex;gap:9px}nav button{background:none;border:1px solid var(--line);padding:10px 13px;font-size:11px}nav button:hover{background:#253027}#discoveries{color:var(--lime);margin-left:6px}main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(375px,1fr);min-height:680px;height:calc(100svh - 151px);max-height:1050px}.world{position:relative;overflow:hidden;background: url('assets/environment/composites/early_night.webp') center/cover;isolation:isolate}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#10171344,transparent 45%,#0b1512aa);z-index:-1}.location{position:absolute;top:28px;left:30px;font:600 13px 'Barlow Condensed',sans-serif;letter-spacing:3px}.location span{display:block;font:9px 'DM Sans',sans-serif;color:#c3c6b8;letter-spacing:2px;margin-top:6px}.act-label{position:absolute;top:100px;left:30px;font:500 italic 20px Georgia,serif;color:#e3e3cf;max-width:180px}.machine{position:absolute;bottom:40px;right:2%;width:57%;aspect-ratio:720/920;max-height:83%}.cabinet{position:absolute;width:100%;height:100%}.machine-brand{position:absolute;top:6%;left:10%;font:800 clamp(13px,2vw,28px) 'Barlow Condensed',sans-serif;letter-spacing:3px;color:#f7ce93;text-shadow:1px 2px #742e20}.board{position:absolute;left:7.8%;top:17.4%;width:62.2%;height:60.9%;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(5,1fr)}.product{position:relative;padding:0;background:transparent;border:1px solid transparent;display:flex;align-items:center;justify-content:center;min-width:0}.product img{width:92%;height:85%;object-fit:contain;filter:drop-shadow(0 2px 3px #000)}.product:hover:not(:disabled),.product.selected{background:#d2dd8b28;border:1px solid var(--lime);box-shadow:0 0 12px #d2dd8b44}.product .code{position:absolute;left:2px;bottom:0;font:9px monospace;background:#111b15ce;padding:2px;color:var(--cream)}.product .qty{position:absolute;right:1px;top:2px;font:9px monospace;color:#e6e9c8;background:#111b15ce;padding:2px}.product.locked{background:#202826b8;opacity:.85;font:11px monospace;color:#9d9f8c}.lcd{position:absolute;left:77%;top:17.5%;width:16%;height:8%;font:clamp(6px,.8vw,12px) monospace;color:#c3e9b9;text-align:center;padding-top:3%;text-shadow:0 0 4px #7cbe79}.vend-slot{position:absolute;bottom:5%;left:11%;height:12%;width:56%;text-align:center}.vend-slot img{height:100%;animation:vend .55s ease-out}.character-wrap{position:absolute;left:-2%;bottom:15px;width:51%;height:75%;pointer-events:none;z-index:2}#character{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 18px #0007);}.person-tag{position:absolute;bottom:55px;left:15%;background:#14201bdc;border:1px solid #738274;padding:8px 12px;font-size:9px;letter-spacing:1px;max-width:85%}.foreground{position:absolute;bottom:0;left:0;right:0;height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#141d19ed;border-top:3px solid #6c7560;font:9px monospace;letter-spacing:1px;z-index:3}.console{background:radial-gradient(ellipse at top right,#24302888,transparent 65%),#17201b;display:flex;flex-direction:column;border-left:1px solid #49503e;overflow:auto}.readout{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 30px;border-bottom:1px solid var(--line);gap:10px}.readout small{display:block;font-size:9px;letter-spacing:1.6px;color:var(--muted);margin-bottom:7px}.readout strong{font:500 26px 'Barlow Condensed',sans-serif}.readout>div:first-child strong{color:var(--lime)}.story{padding:30px 32px 12px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--lime);text-transform:uppercase;margin-bottom:13px}.story h1{font:800 clamp(42px,4.5vw,76px)/.93 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;margin:18px 0 24px;letter-spacing:-1px}.story h1 em{font-style:normal;color:var(--lime)}.story h2{font:600 34px/1.1 'Barlow Condensed',Impact,sans-serif;margin:10px 0 20px}.story p{font-size:15px;line-height:1.75;margin:12px 0;color:#d4d6c8}.story .speaker{font-size:11px;color:var(--orange);margin-bottom:12px}.story blockquote{padding:0;margin:0;font:18px/1.65 Georgia,serif;color:var(--cream)}.story .muted{color:var(--muted);font-size:12px}.selection{margin:6px 32px 12px;min-height:0}.selected-info{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid #75815b;background:#d1df8a09}.selected-info img{width:45px;height:45px;object-fit:contain}.selected-info strong{display:block;font-size:12px}.selected-info small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.hint{padding:13px 0;border-top:1px dashed #566048;font-size:12px;color:var(--lime)}.controls{padding:0 32px 25px;display:grid;gap:8px}.choice{background:#222c24;border:1px solid #45503d;text-align:left;padding:14px 15px;transition:background .15s,transform .15s;font-size:13px;line-height:1.5}.choice:hover:not(:disabled){background:#36422c;border-color:var(--lime);transform:translateX(2px)}.choice .num{flex-shrink:0;color:var(--lime);font:11px monospace;padding-right:10px}.primary{background:var(--lime);color:#182019;border:0;font-weight:700;padding:17px 18px;text-align:left}.primary:hover{background:#e5ecae}.secondary{background:transparent;border:1px solid #647052;padding:13px;text-align:left}.console-footer{margin-top:auto;padding:15px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:10px monospace;color:var(--muted)}.bottom{height:53px;padding:0 35px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.bottom b{font-size:9px;letter-spacing:1px;color:var(--cream);margin-right:15px}.dot{padding:0 8px}dialog{width:min(760px,92vw);max-height:85vh;border:1px solid #6d7957;background:#19231c;color:var(--cream);padding:30px;box-shadow:0 25px 80px #000a}dialog::backdrop{background:#060d0ad9;backdrop-filter:blur(5px)}dialog h2{font:600 38px 'Barlow Condensed',sans-serif;margin:0 0 15px}dialog p{line-height:1.7;color:#c6cbbb}.close{margin-top:24px;width:100%;background:var(--lime);color:#19231c;padding:13px;border:0}.ending-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ending-card{padding:15px;border:1px solid #48533f;background:#222c23}.ending-card small{display:block;color:var(--muted);margin-top:8px;font-size:11px;line-height:1.6}.history-item{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.7}.effects{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.effects span{border:1px solid #526145;padding:6px 8px;font:11px monospace;color:var(--lime)}.shop-item{display:flex;justify-content:space-between;align-items:center;gap:8px}.shop-item small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}.end-number{font:11px monospace;letter-spacing:3px;color:var(--orange)}.ending-title{font-size:52px!important}.play-meta{display:flex;gap:20px;font-size:10px;color:var(--muted);padding:8px 0 15px}.play-meta b{color:var(--cream);font-weight:400}.toast{color:var(--orange)!important}.danger .world{filter:sepia(.12)}@keyframes arrival{from{opacity:0;transform:translateX(-25px)}to{opacity:1;transform:none}}@keyframes vend{from{transform:translateY(-160px) rotate(-30deg);opacity:0}to{transform:none;opacity:1}}@media(min-width:1600px){.story{padding-top:45px}.story blockquote{font-size:21px}.choice{padding:18px}.machine{right:5%;width:53%}}@media(max-width:1000px){header{padding:0 20px;gap:15px}.shift{display:none}main{grid-template-columns:1fr 1fr}.story,.controls{padding-left:23px;padding-right:23px}.selection{margin-left:23px;margin-right:23px}.machine{width:69%;right:-8%}.character-wrap{width:60%;left:-8%}.bottom{padding:0 20px}.bottom>span:last-child{display:none}}@media(max-width:700px){header{height:77px;padding:0 16px}.brand{font-size:26px}.brand span{font-size:8px;letter-spacing:2.7px}nav{gap:5px}nav button{padding:8px;font-size:10px}#menu{display:none}main{display:flex;flex-direction:column;height:auto;max-height:none;min-height:0}.world{height:430px;flex-shrink:0}.machine{width:295px;max-height:94%;right:2%;bottom:26px}.character-wrap{width:245px;height:350px;left:-10px;bottom:8px}.person-tag{bottom:37px;font-size:8px}.location{top:20px;left:20px}.act-label{top:69px;left:20px;font-size:16px;max-width:120px}.foreground{height:30px;padding:0 14px;font-size:7px}.lcd{font-size:9px}.machine-brand{font-size:21px}.console{overflow:visible}.readout{padding:16px 23px}.readout strong{font-size:24px}.story{padding-top:24px}.story h1{font-size:58px}.story h2{font-size:32px}.story blockquote{font-size:18px}.bottom{height:auto;padding:20px;line-height:1.8}.ending-grid{grid-template-columns:1fr}dialog{padding:23px}.console-footer{padding:15px 23px}.product .code,.product .qty{font-size:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

@media(max-width:1100px){.readout small{font-size:8px;letter-spacing:.5px}.readout{padding-left:23px;padding-right:23px}}

/* Portraits enter only once the new image has decoded, never on a reply. */
#character.arriving{animation:arrival .45s ease-out}
#character[hidden]{display:none}
.product-name{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#101912;border:1px solid var(--lime);padding:7px 9px;white-space:nowrap;font:12px 'DM Sans',sans-serif;z-index:5;visibility:hidden;pointer-events:none}
.product:hover .product-name,.product:focus-visible .product-name{visibility:visible}
.product:has(.product-name):hover,.product:focus-visible{z-index:6}
.order-card{border:1px solid #65764b;background:#d1df8a08}
.order-top{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;background:#d1df8a10;font-size:10px;letter-spacing:.8px;color:var(--lime)}
.order-main{display:flex;gap:12px;align-items:center;padding:10px 12px}
.order-main img{width:45px;height:45px;object-fit:contain}
.order-main strong{font-size:13px;display:block}.order-main small{font-size:11px;display:block;color:var(--muted);margin-top:5px}
.change-snack{margin-left:auto;background:transparent;border:1px solid #61714d;padding:10px;font-size:11px;flex-shrink:0}
.change-snack:hover{background:#3b472e}
.reply-prompt{font-size:12px;color:var(--lime);margin:13px 0 2px}
.substitution-note{font-size:12px;padding:0 12px 12px;margin:0;color:#e4b997;line-height:1.5}
.substitute{border-color:#aa805d}.substitute .order-top{color:#e4b997;background:#aa805d15}
.choice{display:flex;align-items:baseline;gap:5px}
.snack-menu{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.snack-option{display:flex;gap:13px;align-items:center;padding:12px;text-align:left;border:1px solid #4d5c43;background:#253024;min-height:76px}
.snack-option img{width:44px;height:44px;object-fit:contain}
.snack-option strong{font-size:13px;display:block}.snack-option small{font-size:11px;display:block;color:var(--muted);margin-top:6px}
.snack-option.requested{border-color:var(--lime)}.snack-option:hover:not(:disabled){background:#3b472e}
.tap-water{margin-top:16px;width:100%}
@media(max-width:700px){.order-main{gap:9px}.order-top{font-size:9px}.change-snack{font-size:10px;padding:10px 8px}.snack-menu{grid-template-columns:1fr}.reply-prompt{font-size:13px}}
.choice:has(small){display:block}
.inquiry{margin-top:15px;padding:12px 14px;border-left:2px solid #768c59;background:#0f181249}.inquiry button{background:none;border:0;padding:0;text-align:left;color:var(--lime);font-size:13px;line-height:1.5}.inquiry small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.inquiry p{font-size:13px;line-height:1.6;margin:0}.inquiry .eyebrow{font-size:9px;margin-bottom:8px}.snack-reaction{margin-top:20px;padding:15px;border:1px solid #728653;background:#d1df8a09}.snack-reaction p{font-size:14px;margin:0}.snack-reaction .eyebrow{font-size:9px;letter-spacing:1px}.snack-reaction.risk{border-color:var(--orange)}.snack-reaction.neutral{border-color:var(--line)}.cause-note{font-size:12px!important;color:var(--orange)!important}.traits{color:var(--lime)!important}.window-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:23px}.window-tab{background:#101b15;border:1px solid #495a3d;padding:12px;text-align:left;font-size:11px}.window-tab.active{border-color:var(--lime)}.window-tab small{display:block;color:var(--orange);font:11px monospace;margin-top:7px}.draft-intro{color:var(--lime)!important;font-size:13px!important}.console:has(.window-tabs) .story{padding-top:18px}.console:has(.window-tabs) .story h2{font-size:29px}.console:has(.window-tabs) blockquote{font-size:16px}

.choice>small{display:block;margin-top:6px;font-size:11px;line-height:1.6;color:var(--muted)}
.break-steps{display:flex;align-items:center;gap:12px;margin-bottom:25px;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#7d8977}.break-steps .current{color:var(--lime)}.break-steps i{font-style:normal}.break-card{display:flex;gap:16px;align-items:center;position:relative;text-align:left;padding:17px 18px;background:linear-gradient(110deg,#354332,#202d23);border:1px solid #647052;border-left:3px solid #9aab73;box-shadow:inset 0 1px #d7dfac11,0 4px 12px #0002;min-height:106px;transition:background .15s,border-color .15s}.break-card:hover:not(:disabled){border-color:var(--lime);background:linear-gradient(110deg,#465439,#293729)}.break-card img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 5px 4px #0006)}.break-card-copy{display:grid;gap:6px}.break-card-badge{font:9px monospace;letter-spacing:1.5px;color:#c0cf8d}.break-card-copy strong{font:600 25px/1.1 'Barlow Condensed',sans-serif;color:#f2e8ce}.break-card-copy>span{font-size:12px;line-height:1.5;color:#c5cbb9}.break-card-arrow{margin-left:auto;font-size:22px;color:var(--lime)}.installed-slip{display:flex;gap:18px;align-items:center;padding:20px 18px;margin:12px 0 20px;background:#dfd5b8;color:#293223;border-top:3px solid #7e8c57;box-shadow:0 6px 20px #0003;transform:rotate(-1deg)}.installed-slip img{width:82px;height:82px;object-fit:contain}.installed-slip>span{display:grid;gap:8px}.installed-slip small{font:10px monospace;letter-spacing:1px}.installed-slip strong{font:600 28px 'Barlow Condensed',sans-serif}.installed-slip span span{font-size:12px;line-height:1.6}.maintenance-wallet{display:flex;gap:8px;align-items:center;font-size:12px!important}.maintenance-wallet b{color:var(--lime);font:600 24px 'Barlow Condensed',sans-serif}.maintenance-wallet>span{margin-left:auto;color:var(--muted);font-size:11px}.service-receipt{padding:10px 14px;background:#dbd4bb;color:#303a28;font:11px monospace;border-bottom:2px dashed #7e846d}.console:has(.break-steps) .story{padding-bottom:16px}.console:has(.break-steps) .controls{gap:12px}.console:has(.break-steps) .primary{display:flex;justify-content:space-between;gap:12px;margin-top:7px}@media(max-width:700px){.break-card{padding:14px;gap:12px;min-height:98px}.break-card img{width:55px;height:55px}.break-card-copy strong{font-size:23px}.break-card-copy>span{font-size:12px}.break-steps{font-size:9px;gap:8px}.installed-slip{padding:17px 14px}}
/* Readable scene captions, independent of the changing sky and forest art. */
.act-label{max-width:270px;padding:14px 17px;background:#101b16;border:1px solid #66735a;border-left:3px solid #d1df8a;border-radius:3px;color:#f4eedb;font:600 20px/1.45 'DM Sans',sans-serif;letter-spacing:.1px;text-wrap:pretty;box-shadow:0 4px 16px #0005;z-index:4;pointer-events:none}
@media(max-width:700px){.act-label{max-width:min(205px,calc(100% - 40px));padding:10px 12px;font-size:16px;line-height:1.45}}
