@font-face{font-family:Fin;src:url('assets/FIN.otf') format('opentype');font-display:swap}*{box-sizing:border-box} :root{--orange:#fe6602;--ink:#213126;--cream:#e8e7d6;--shell:#d8d8c9;--pixel:ui-monospace,SFMono-Regular,Consolas,monospace}body{margin:0;background:#202d23;color:var(--cream);font-family:Arial,Helvetica,sans-serif;min-height:100svh;background-image:radial-gradient(ellipse at 50% 30%,#3f5139 0,transparent 65%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button{touch-action:manipulation}button:disabled{cursor:wait}.masthead{max-width:1360px;margin:auto;padding:25px 40px;display:flex;align-items:center;gap:24px}.masthead img{display:block;width:140px;height:auto;image-rendering:auto}.edition{font:11px var(--pixel);letter-spacing:1.1px;border-left:1px solid #71816a;padding-left:23px;line-height:1.7}.edition span{display:block;color:#a6b09a}.sound-toggle{margin-left:auto;background:transparent;border:1px solid #67765d;border-radius:30px;padding:11px 15px;font:11px var(--pixel);color:var(--cream);letter-spacing:.7px}.sound-toggle span{font-size:16px;margin-right:6px}.sound-toggle[aria-pressed=true]{color:var(--orange);border-color:var(--orange)}main{max-width:1360px;margin:auto;padding:0 40px 20px}.console{border-radius:24px 24px 72px 24px;background:linear-gradient(135deg,#efefdf,#d6d6c8 65%,#c6c7bb);padding:25px 30px 15px;color:var(--ink);box-shadow:inset 0 2px 1px #fff9,inset -3px -7px 0 #0002,0 26px 60px #0005,0 7px 0 #b4b8a7;border:1px solid #f2f3e4}.console-heading{display:flex;justify-content:space-between;align-items:center;margin:0 8px 18px}.console-heading strong{font:italic 27px var(--pixel);font-weight:900;letter-spacing:-2px}.play{color:#bc4915;margin-left:6px}.console-sub{font:10px var(--pixel);letter-spacing:1.6px;margin-left:20px}.hardware-label{font:10px var(--pixel);letter-spacing:1px}.hardware-label i{display:inline-block;border-radius:100%;width:8px;height:8px;background:var(--orange);margin-left:6px}.console-body{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:27px}.bezel{min-width:0;background:#344338;border-radius:12px 12px 27px 12px;padding:14px 18px 12px;box-shadow:inset 0 2px 4px #0008,0 2px 0 #fff8}.bezel-top,.bezel-bottom{display:flex;justify-content:space-between;align-items:center;font:9px var(--pixel);letter-spacing:1.3px;color:#b9c2a7}.bezel-top{padding-bottom:12px}.power-light{display:inline-block;width:6px;height:6px;background:#fa6a20;border-radius:100%;box-shadow:0 0 8px #fc7307;margin-right:6px}.bezel-bottom{padding-top:12px;font-size:9px}.screen{position:relative;width:100%;aspect-ratio:3/2;background:#71844c;border:4px solid #15271b;box-shadow:inset 0 0 30px #132118;overflow:hidden;isolation:isolate}.screen:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,#18371c09 3px 4px);z-index:5}canvas{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none;outline:none!important}.screen-top{position:absolute;z-index:6;left:15px;right:15px;top:15px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.screen-top button{pointer-events:auto}.location-badge{display:flex;align-items:center;gap:9px;background:#f3efcd;color:#263a27;border:2px solid #263a27;box-shadow:3px 3px #263a2760;padding:9px 11px;font:11px var(--pixel)}.location-badge b{display:block;letter-spacing:.7px}.location-badge span:not(.pixel-marker){display:block;margin-top:3px;font-size:8px;letter-spacing:1.2px}.pixel-marker{color:var(--orange);font-size:16px}.journal-pill{border:2px solid #263a27;background:#f3efcd;color:#263a27;font:12px var(--pixel);padding:9px;box-shadow:3px 3px #263a2760;display:flex;gap:8px;align-items:center}.journal-pill>span:first-child{font-size:20px;line-height:16px}.welcome{position:absolute;z-index:9;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#16351de0;color:#f3efcd;backdrop-filter:blur(2px)}.welcome[hidden]{display:none}.eyebrow{font:11px var(--pixel);letter-spacing:3px;color:#ff9f53}.welcome h1{font-family:Fin,Impact,sans-serif;font-weight:400;font-size:clamp(36px,5vw,70px);line-height:.92;margin:18px 0 14px;letter-spacing:1px}.welcome p{font:14px/1.55 var(--pixel);margin:0 0 24px}.pixel-button{background:var(--orange);border:2px solid #142218;box-shadow:4px 4px #0c211c;color:#172c1b;padding:13px 15px;font:bold 13px var(--pixel);display:flex;align-items:center;gap:28px}.pixel-button span{border:1px solid #173421;border-radius:50%;width:24px;height:24px;display:grid;place-items:center}.pixel-button:hover{background:#ff8a2e;transform:translateY(-1px)}.welcome small{font:8px var(--pixel);letter-spacing:.7px;margin-top:22px;opacity:.7}.controls{display:flex;flex-direction:column;justify-content:space-around;align-items:center;padding:10px 0 5px;gap:16px}.control-caption{text-align:center;font:10px var(--pixel);letter-spacing:2px;line-height:1.6}.control-caption span{display:block}.control-caption b{font-size:13px}.dpad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,40px);filter:drop-shadow(0 5px 0 #0c181f);touch-action:none}.dpad button{border:0;color:#a8ae9c;background:#29322e;display:grid;place-items:center;padding:0;font-size:17px;touch-action:none;user-select:none;-webkit-user-select:none}.dpad button.pressed,.dpad button:active{background:#444d3e;color:var(--orange)}.dpad .up{grid-area:1/2;border-radius:5px 5px 0 0;box-shadow:inset 0 2px #ffffff30}.dpad .left{grid-area:2/1;border-radius:5px 0 0 5px;box-shadow:inset 0 2px #ffffff30}.dpad .right{grid-area:2/3;border-radius:0 5px 5px 0;box-shadow:inset 0 2px #ffffff30}.dpad .down{grid-area:3/2;border-radius:0 0 5px 5px}.dpad-center{grid-area:2/2;background:#29322e}.action-buttons{display:flex;align-items:center;gap:17px;transform:rotate(-13deg);padding:9px 0}.action-buttons>div{display:flex;flex-direction:column;align-items:center;gap:8px}.action-buttons button{width:53px;height:53px;border-radius:50%;background:var(--orange);border:1px solid #dc4c0d;box-shadow:inset 0 3px 0 #ff9d4b,0 5px 0 #a6360a,0 7px 10px #0003;font:bold 25px var(--pixel);color:#312b21;user-select:none}.action-buttons button:active{transform:translateY(3px);box-shadow:0 2px 0 #a6360a}.action-buttons span{font:9px var(--pixel);font-weight:bold;letter-spacing:1px}.system-buttons{display:flex;gap:20px}.system-buttons button{display:flex;flex-direction:column;align-items:center;background:none;border:0;font:9px var(--pixel);letter-spacing:.6px;color:#273d2e;padding:0;gap:5px}.system-buttons i{display:block;width:43px;height:12px;background:#858b7b;border-radius:10px;box-shadow:0 3px #616957,inset 0 2px #aeb3a4;margin-bottom:5px}.system-buttons span{font-size:8px;opacity:.7}.speaker{display:flex;gap:6px;transform:rotate(-22deg);padding:4px}.speaker i{height:40px;width:5px;border-radius:9px;background:#909887;box-shadow:1px 1px #fff8}.console-bottom{display:flex;justify-content:space-between;font:9px var(--pixel);letter-spacing:1px;color:#77806a;margin:19px 25px 3px 8px}.map-labels{position:absolute;inset:0;pointer-events:none;z-index:4}.place-label{position:absolute;transform:translate(-50%,-100%);background:#f8edc9;color:#243325;border:2px solid #243325;font:bold 10px var(--pixel);white-space:nowrap;padding:5px 8px;box-shadow:2px 2px #142b2166;pointer-events:auto;transition:background .2s}.place-label:hover,.place-label.near{background:#ff9c3a}.place-label.visited:before{content:'✓ ';color:#416636}.game-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:10px;white-space:nowrap;background:#f8edc9;color:#203b26;border:2px solid #203b26;padding:8px 12px;box-shadow:3px 3px #203b2655;font:11px var(--pixel);max-width:94%}.game-hint[hidden]{display:none}.keycap{border:1px solid currentColor;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;flex-shrink:0;font-weight:bold}.toast{position:absolute;top:75px;left:50%;transform:translate(-50%,-8px);z-index:8;opacity:0;transition:.2s;pointer-events:none;background:var(--orange);color:#203422;padding:9px 14px;border:2px solid #203422;font:bold 11px var(--pixel);white-space:nowrap}.toast.show{transform:translate(-50%,0);opacity:1}.loading{position:absolute;inset:0;background:#233c2c;z-index:12;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#f0e8c7;font:13px var(--pixel)}.loading b{font-size:28px;color:var(--orange)}.loading[hidden]{display:none}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 4px 0;font:9px var(--pixel);letter-spacing:1px;color:#a3af94}footer p{margin:0}.dot{display:inline-block;width:5px;height:5px;background:var(--orange);margin-right:7px}kbd{font:10px var(--pixel);border:1px solid #8c9b7c;padding:2px 4px;border-radius:3px;margin:0 2px}.concept{color:#849175;font-size:9px}dialog{padding:0;border:0;background:transparent;color:var(--ink);width:min(700px,calc(100vw - 30px));max-height:calc(100svh - 40px);overflow:visible}dialog::backdrop{background:#11231bdd;backdrop-filter:blur(5px)}.dialog-shell{background:#eeeccd;border:3px solid #182d21;box-shadow:8px 8px 0 #fe6602;max-height:calc(100svh - 50px);display:flex;flex-direction:column}.dialog-top{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #203a26;padding:12px 20px;background:#d3d9ac;font:bold 11px var(--pixel);letter-spacing:1px}.dialog-top button{border:1px solid #203a26;background:transparent;font:16px var(--pixel);width:32px;height:32px;color:var(--ink)}#dialog-content{padding:25px 28px;overflow-y:auto}.dialog-title{font:400 42px/.95 Fin,Impact,sans-serif;letter-spacing:1px;margin:6px 0 17px}.dialog-text{font:15px/1.6 var(--pixel);max-width:58ch;margin:0 0 16px}.dialog-eyebrow{font:bold 10px var(--pixel);letter-spacing:2px;color:#7a512d;display:block;margin-bottom:10px}.dialog-footer{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #203a26;padding:14px 20px;gap:10px;font:9px var(--pixel)}.dialog-footer button{border:0;background:transparent;font:bold 10px var(--pixel);color:var(--ink);padding:6px 0}.dialog-link{display:inline-block;padding:12px 15px;background:#213b29;color:#f2efd7;text-decoration:none;font:bold 12px var(--pixel);border:2px solid #203525;margin-top:6px}.bottles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.bottle{background:#e0dfbc;border:1px solid #b5b99a;padding:14px 9px;text-align:center}.bottle img{width:100%;height:170px;object-fit:contain;filter:drop-shadow(3px 4px 2px #182b2322)}.bottle h3{font:bold 12px var(--pixel);margin:13px 0 6px}.bottle p{font:11px/1.4 var(--pixel);margin:0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.info-block{padding:16px;background:#dce0b9;border:1px solid #aab394;font:14px/1.5 var(--pixel)}.info-block b{display:block;font-size:10px;letter-spacing:1px;margin-bottom:7px}.varieties{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.varieties span{padding:9px;border:1px solid #596b45;font:12px var(--pixel)}.map-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.map-card{text-align:left;border:2px solid #263c29;background:#dce0b9;padding:18px;color:var(--ink)}.map-card:hover{background:#f7ae57}.map-card small{display:block;font:10px var(--pixel);letter-spacing:1px;margin-bottom:9px}.map-card b{display:block;font:17px var(--pixel);margin-bottom:7px}.map-card span{font:11px var(--pixel)}.help-row{padding:12px 0;border-bottom:1px solid #b1b89a;font:14px/1.5 var(--pixel)}.help-row b{display:block;margin-bottom:5px}.stamp-note{border-top:1px solid #a5af8f;padding-top:15px;font:12px var(--pixel);color:#547049}.mobile-only{display:none}
@media(min-width:1500px){.masthead{padding-top:40px;padding-bottom:32px}main{padding-bottom:30px}}@media(max-width:1000px){main{padding:0 24px 16px}.masthead{padding:20px 24px}.console{padding:20px 20px 12px}.console-body{grid-template-columns:minmax(0,1fr) 125px;gap:16px}.bezel{padding:12px}.console-sub{font-size:8px;margin-left:12px}.screen{aspect-ratio:1.35}.control-caption{display:none}.dpad{grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,36px)}.action-buttons button{width:47px;height:47px}.action-buttons{gap:14px}.speaker i{height:25px}.concept{display:none}.edition{font-size:9px}}
@media(max-width:650px){body{background:#23382b}.masthead{padding:15px 18px;gap:12px}.masthead img{width:116px}.edition{display:none}.sound-toggle{font-size:9px;padding:8px 11px}main{padding:0 10px 15px}.console{border-radius:18px 18px 48px 18px;padding:17px 13px 12px;box-shadow:inset 0 2px 1px #fff9,inset -3px -7px 0 #0002,0 18px 35px #0005,0 5px 0 #b4b8a7}.console-heading{margin:0 4px 13px}.console-heading strong{font-size:23px}.console-sub{display:none}.hardware-label{font-size:8px}.console-body{display:flex;flex-direction:column;gap:0}.bezel{padding:10px 9px;border-radius:9px 9px 22px 9px}.bezel-top,.bezel-bottom{font-size:7px;letter-spacing:.6px}.bezel-top{padding-bottom:8px}.bezel-bottom{padding-top:8px}.screen{aspect-ratio:1/1.03;max-height:49svh;border-width:3px}.screen-top{left:8px;right:8px;top:8px}.location-badge{padding:6px 8px;gap:6px;font-size:9px}.location-badge span:not(.pixel-marker){font-size:7px}.journal-pill{font-size:10px;padding:7px}.welcome h1{font-size:45px;margin:15px 0 12px}.welcome p{font-size:12px;margin-bottom:18px}.welcome .eyebrow{font-size:9px}.welcome small{font-size:7px;margin-top:15px;max-width:230px;line-height:1.5}.pixel-button{font-size:11px;padding:10px 13px}.controls{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:132px 37px;gap:10px 20px;padding:18px 14px 0;align-items:center;justify-items:center}.dpad{grid-area:1/1;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px)}.action-buttons{grid-area:1/2;gap:17px}.action-buttons button{height:58px;width:58px;font-size:26px}.action-buttons span{font-size:8px}.system-buttons{grid-area:2/1/3/3;gap:24px;align-self:start}.system-buttons button{font-size:8px}.system-buttons i{height:10px;width:37px;margin-bottom:2px}.system-buttons span{display:none}.speaker{display:none}.console-bottom{margin:20px 5px 0;font-size:7px;letter-spacing:.6px}.game-hint{font-size:9px;bottom:9px;padding:6px 8px;gap:6px}.keycap{width:18px;height:18px}.place-label{font-size:8px;padding:4px 6px}.toast{top:62px;font-size:9px;padding:8px}.desktop-instructions{display:none}footer{padding:19px 7px 0;font-size:8px;justify-content:center}.dialog-title{font-size:34px}.dialog-text{font-size:13px}#dialog-content{padding:20px}.dialog-top,.dialog-footer{padding:10px 14px}.dialog-footer>span{display:none}.dialog-footer{justify-content:flex-end}.bottles{gap:6px}.bottle{padding:10px 5px}.bottle img{height:120px}.bottle h3{font-size:10px}.bottle p{font-size:9px}.map-list{gap:8px}.map-card{padding:13px}.map-card b{font-size:14px}.info-grid{grid-template-columns:1fr}.help-row{font-size:12px}.mobile-only{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Pixel lettering and a restrained interface. */
@font-face{font-family:Silkscreen;src:url('assets/Silkscreen-Regular.ttf') format('truetype');font-display:swap}
:root{--pixel:Silkscreen,ui-monospace,monospace}
.console-heading strong{font-family:ui-monospace,monospace}.screen{aspect-ratio:16/9}.welcome{background:#14231acc;backdrop-filter:none}.welcome h1{font:400 clamp(28px,4vw,62px)/1.3 var(--pixel);letter-spacing:-2px;margin:16px 0 28px}.welcome .eyebrow{letter-spacing:2px}.dialog-title{font:400 27px/1.3 var(--pixel);letter-spacing:-1px}.dialog-text{font:15px/1.7 ui-monospace,monospace}.dialog-shell{background:#f3f0da;box-shadow:6px 6px 0 #15261a;border:4px double #15261a}.dialog-top{background:#e7e4cb}.dialog-eyebrow{letter-spacing:1px}.dialog-footer{font-size:8px}.dialog-footer>span{display:none}.dialog-footer{justify-content:flex-end}.welcome small{line-height:1.7}.location-badge span:not(.pixel-marker){font-size:8px}.location-badge b{font-size:12px;font-weight:400}.place-label{font-size:11px;font-weight:400}.game-hint{font-size:10px}.bezel-top,.bezel-bottom{font-family:ui-monospace,monospace}.masthead .edition{font-family:ui-monospace,monospace}footer{justify-content:space-between}.console-bottom{min-height:5px}.private-sign{border:4px double #233522;background:#f6efce;padding:22px;margin:12px 0;text-align:center}.private-sign p{font:17px/1.7 var(--pixel);margin:0}.dialog-link{font-size:11px}.wine-action{display:block;margin:20px 0 0;background:#f66a14;color:#243424;border:2px solid #243424;padding:13px 18px;font:12px var(--pixel)}
@media(max-width:1000px){.screen{aspect-ratio:1.35}.dialog-title{font-size:25px}}
@media(max-width:650px){.screen{aspect-ratio:1/1.03}.welcome h1{font-size:36px;line-height:1.25}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-title{font-size:22px}.dialog-text{font-size:14px}.place-label{font-size:9px}.location-badge b{font-size:10px}.game-hint{font:10px ui-monospace,monospace}.private-sign p{font-size:14px}.console-bottom{margin-top:18px}footer{justify-content:center}.concept{display:none}}
@media(max-width:360px){.controls{padding:16px 2px 0;gap:8px}.dpad{grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,36px)}.action-buttons{gap:12px}.action-buttons button{width:46px;height:46px}.action-buttons span{font-size:7px}.console{padding:14px 9px 10px}.screen-top{left:5px;right:5px}.location-badge{padding:5px}.location-badge b{font-size:8px}.location-badge span:not(.pixel-marker){font-size:6px}.welcome h1{font-size:29px}.bezel{padding:8px 6px}.sound-toggle{font-size:8px;padding:8px}.masthead{padding:12px}.journal-pill{padding:5px}.game-hint{white-space:normal;max-width:90%;width:90%}}

dialog:has(.private-sign){width:min(480px,calc(100vw - 30px))}.private-sign{border:0;padding:10px 0 25px}.private-sign p{text-align:left}.info-block{font-family:ui-monospace,monospace}.welcome h1{color:#f5f2dc;text-shadow:4px 4px #163320}.dialog-title{color:#203727}.place-label{border:3px double #243325;box-shadow:2px 2px #24332555}.screen:after{opacity:.35}
.screen[data-scene=cellar],.screen[data-scene=winery]{aspect-ratio:4/3}
@media(max-width:650px){.screen[data-scene=cellar],.screen[data-scene=winery]{aspect-ratio:4/3}.dpad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}}

.wine-range{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wine-range .bottle{text-decoration:none;color:inherit;padding:14px 8px;background:#fff9e9;border:1px solid #d7cbbb}.wine-range .bottle img{height:135px;object-fit:contain}.wine-range .bottle span{font-size:9px;color:#92501b}@media(max-width:500px){.wine-range{grid-template-columns:repeat(2,minmax(0,1fr))}}

.question-list{display:grid;gap:10px}.question-list button{font-size:14px;line-height:1.5;text-align:left}.screen[data-scene=vineyard]{aspect-ratio:4/3}

.harvest-count{position:absolute;top:54px;left:12px;z-index:4;background:#f4edcc;border:2px solid #273a29;color:#273a29;padding:6px 9px;font:10px Silkscreen,monospace}.harvest-count[hidden]{display:none}

.screen[data-scene=balcony]{aspect-ratio:4/3}.food-menu{font:15px Silkscreen,monospace}.food-menu div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #bab99e;padding:16px 0}.food-menu dd{margin:0;white-space:nowrap}

.journal-pill .jobs-title{font-size:9px!important;line-height:1.2!important;text-align:left}.journal-pill #count{white-space:nowrap}.job-list{font:14px Silkscreen,monospace;line-height:1.8}.job-list p{padding:15px 0;border-bottom:1px solid #b8b99d}

.bottle-count{position:absolute;top:54px;right:12px;z-index:4;background:#f4edcc;border:2px solid #273a29;color:#273a29;padding:6px 9px;font:10px Silkscreen,monospace}.game-over{position:absolute;inset:0;z-index:20;background:#17241bed;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;color:#fff4d2;font-family:Silkscreen,monospace}.game-over[hidden]{display:none}.game-over h2{font-size:clamp(30px,6vw,64px);color:#fe6602;text-shadow:4px 4px #080e0a;margin:0 0 20px}.game-over p{font-size:13px}.game-over button{background:#fe6602;color:#19251c;border:4px double #f8efc4;padding:14px;margin:14px}.game-over small{font-size:10px}

/* Compact map captions; the transparent button keeps a comfortable touch target. */
.place-label{padding:8px!important;min-height:32px;font-size:9px!important;background:transparent!important;border:0!important;box-shadow:none!important;letter-spacing:0!important}.place-label>span{display:block;padding:3px 5px;background:#f6f0d9e8;border:1px solid #4c583a;box-shadow:1px 1px #14251a33;white-space:nowrap}.place-label.near>span{background:#ffc378;border-color:#ba4c0c}.place-label.visited>span{color:#50613e}.place-label:after{display:none!important}.place-label:focus-visible{outline:2px solid #fe6602;outline-offset:0}.task-label>span{font-size:8px}.dialogue-layout{display:grid;grid-template-columns:112px minmax(0,1fr);gap:22px;align-items:start}.speaker-card{position:sticky;top:0;text-align:center;font:11px Silkscreen,monospace;color:#273b29}.dialogue-portrait{width:112px;aspect-ratio:1;background-image:url('assets/dialogue-portraits.png');background-size:200% 100%;background-repeat:no-repeat;background-color:#e7dfc5;border:3px double #263b29;box-shadow:3px 3px #263b292b;margin-bottom:10px}.portrait-gus{background-position:left center}.portrait-jonjo{background-position:right center}.dialogue-copy{min-width:0}.dialogue-copy .dialog-title{margin-top:0}.dialogue-copy .wine-range{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.place-label{min-height:44px;padding:10px!important}.place-label>span{font-size:8px;padding:3px 4px}.dialogue-layout{grid-template-columns:70px minmax(0,1fr);gap:12px}.dialogue-portrait{width:70px}.speaker-card{font-size:9px}.dialogue-copy .dialog-title{font-size:18px}.dialogue-copy .dialog-text{font-size:13px}.dialogue-copy .wine-range{grid-template-columns:repeat(2,minmax(0,1fr))}.dialogue-copy .wine-range .bottle img{height:90px}.dialogue-copy .bottle h3{font-size:9px}}
@media(max-width:650px){.dialogue-layout{display:block}.speaker-card{position:static;float:left;margin:0 14px 10px 0}.dialogue-copy .wine-range,.dialogue-copy .question-list{clear:both}.dialogue-copy .wine-range{grid-template-columns:repeat(2,minmax(0,1fr))}.dialogue-layout:after{content:'';display:block;clear:both}}

/* Desktop console fills the viewport; the camera adapts without stretching art. */
@media(min-width:651px){
 body{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
 .masthead{max-width:none;width:100%;padding:12px 24px;flex:0 0 auto}
 .masthead img{width:116px}
 main{max-width:none;width:100%;margin:0;padding:0 14px 10px;flex:1;min-height:0;display:flex;flex-direction:column}
 .console{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 16px 8px;border-radius:18px 18px 38px 18px}
 .console-heading{margin:0 6px 8px}
 .console-heading strong{font-size:23px}
 .console-body{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 136px;gap:16px}
 .bezel{min-height:0;display:flex;flex-direction:column;padding:10px 12px}
 .bezel-top{padding-bottom:7px}.bezel-bottom{padding-top:7px}
 #screen.screen{flex:1;min-height:0;aspect-ratio:auto;max-height:none}
 .console-bottom{margin:7px 16px 0 6px}
 footer{padding:9px 4px 0;flex:0 0 auto}
 .controls{min-height:0;gap:10px;padding:8px 0}
}
@media(min-width:651px) and (max-height:600px){
 .masthead{padding:6px 16px}.masthead img{width:90px}
 .console-heading,.console-bottom,footer,.speaker{display:none}
 .console{padding:8px}.bezel{padding:6px}
 .bezel-top,.bezel-bottom{display:none}
 .controls{gap:8px}.dpad{grid-template-columns:repeat(3,34px);grid-template-rows:repeat(3,34px)}
}


/* Room changes keep the same viewport shape and character scale. */
@media(max-width:650px){#screen.screen{aspect-ratio:1/1.03;max-height:49svh}}

/* Breathing room around the responsive desktop console. */
@media(min-width:651px){
 body{padding:clamp(10px,2vh,24px) clamp(14px,2.2vw,44px)}
 .masthead{padding:8px 10px 14px}
 main{padding:0 0 10px}
}
@media(min-width:651px) and (max-height:600px){body{padding:8px 14px}.masthead{padding:4px 8px 8px}main{padding-bottom:6px}}

.portrait-arlo{background-image:url('assets/arlo-portrait.png');background-size:100% 100%;background-position:center}

.game-hint{cursor:pointer}

/* V2: prevent control long-press selection without changing editable fields. */
.console,.console *,.masthead button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.controls,.controls button,.controls button *{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#dialog input,#dialog textarea,#dialog select,#dialog [contenteditable],#dialog .dialog-text,#dialog .form-help{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;touch-action:auto}
#dialog input:focus-visible,#dialog textarea:focus-visible{outline:3px solid #ba480b;outline-offset:3px}
.screen[data-feedback]{outline:3px solid #ffc373;outline-offset:-6px}
.screen[data-feedback=reward]{outline-color:#fff8b0;outline-width:5px}
.game-hint{white-space:normal;text-align:left;line-height:1.4}
.toast{white-space:normal;text-align:center;max-width:92%;width:max-content;line-height:1.5}
.haptics-toggle{background:transparent;border:1px solid #65745b;border-radius:6px;padding:9px 6px;color:#273d2e;font:9px Silkscreen,monospace;min-height:44px}
.haptics-toggle[aria-pressed=true]{background:#ffc373}
.portrait-bronnie,.portrait-harry{background-image:none}
.dialogue-portrait canvas{width:100%;height:100%;image-rendering:auto;touch-action:auto}
.reward-form{display:grid;gap:12px;margin-top:20px;font:15px/1.5 ui-monospace,monospace}
.reward-form input:not([type=checkbox]),.reward-code{display:block;width:100%;min-width:0;border:2px solid #42503d;background:#fffdf3;color:#213126;border-radius:4px;padding:12px;font:16px/1.4 ui-monospace,monospace}
.consent-label{display:flex;align-items:flex-start;gap:12px;font:14px/1.6 ui-monospace,monospace;cursor:pointer;padding:8px 0}
.consent-label input{flex:none;width:22px;height:22px;accent-color:#bf4b12;margin:2px 0}
.preview-notice{padding:12px;border:1px solid #c17d33;background:#fff0d1;font:12px/1.6 ui-monospace,monospace}
.form-help{font:13px/1.6 ui-monospace,monospace;margin:5px 0 15px}
.reward-code-label{display:block;font:11px/1.6 Silkscreen,monospace;margin:20px 0 8px}
.reward-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.reward-actions .wine-action,.reward-actions .dialog-link{margin:0;min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.text-action{background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;padding:12px 0;color:#213126;font:12px/1.5 Silkscreen,monospace;min-height:44px}
#reward-status{font:14px/1.6 ui-monospace,monospace;color:#6f3514}
@media(max-width:650px){
 .controls{grid-template-rows:144px 44px;gap:12px;padding:14px 0 0}
 .dpad{grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px)}
 .system-buttons{grid-area:2/1;gap:12px;align-self:center}
 .system-buttons button{min-width:50px;min-height:44px;justify-content:center}
 .haptics-toggle{grid-area:2/2;font-size:8px;max-width:132px;width:100%}
 .action-buttons{gap:14px}.action-buttons button{height:58px;width:58px}
 .console-bottom{margin-top:12px}
 .dialog-top button{width:44px;height:44px}
 .reward-actions{flex-direction:column}
 .reward-actions>*{width:100%;text-align:center}
 .game-hint{font-size:8px;min-height:44px;width:max-content}
}
@media(max-height:500px) and (orientation:landscape){
 body{overflow:auto;height:auto;min-height:100svh}
 .console-body{display:grid;grid-template-columns:minmax(0,1fr) 144px;gap:10px}
 #screen.screen{height:65svh;aspect-ratio:auto;max-height:none;min-height:200px}
 .controls{display:flex;padding:0;gap:12px}.dpad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px)}
 .masthead{padding:8px 14px}.console-heading{margin-bottom:8px}
}

/* Optional secrets: motion respects the existing reduced-motion setting. */
#screen.secret-fall #game{animation:secret-fall .75s ease-in both}
@keyframes secret-fall{to{filter:brightness(.15);transform:scale(.94) translateY(14px)}}
@media(prefers-reduced-motion:reduce){#screen.secret-fall #game{animation:none;filter:brightness(.6)}}
.oil-preview,.first-preview{display:block;width:100%;max-height:58svh;object-fit:contain;margin:12px auto 20px;border:6px ridge #a88038}
.first-preview{width:auto;max-width:100%;border:0}
.archive-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.archive-gallery figure{margin:0;background:#e7dfce;border:1px solid #a28e70;padding:8px}
.archive-gallery img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain;background:#fff0f2}
.archive-gallery figcaption{font:10px/1.5 ui-monospace,monospace;overflow-wrap:anywhere;margin-top:8px}
@media(max-width:650px){.archive-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

.vince-preview{display:block;width:min(100%,280px);max-height:55svh;object-fit:contain;margin:12px auto 20px;border:6px solid #a88038;image-rendering:pixelated}
.first-preview{height:50svh;image-rendering:pixelated}
