/* FIN controller: one connected cross, generous diagonal A/B, adaptive grip. */
main,main *,.masthead,.masthead *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
main::selection,main *::selection,.masthead::selection,.masthead *::selection{background:transparent}
.controls button{-webkit-appearance:none;appearance:none}
/* The modal is outside main. Keep text and form selection available there. */
#dialog input,#dialog textarea,#dialog [contenteditable],#dialog .dialog-text,#dialog .form-help{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.dpad{position:relative;isolation:isolate;gap:0;cursor:pointer}
.dpad::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(145deg,#455044,#25342c 65%);clip-path:polygon(36% 0,64% 0,67% 3%,67% 33%,97% 33%,100% 36%,100% 64%,97% 67%,67% 67%,67% 97%,64% 100%,36% 100%,33% 97%,33% 67%,3% 67%,0 64%,0 36%,3% 33%,33% 33%,33% 3%)}
.dpad button,.dpad-center{background:transparent!important;box-shadow:none!important}
.dpad-center{position:relative;pointer-events:none}
.dpad-center::after{content:"";position:absolute;inset:18%;border-radius:50%;background:#243329;box-shadow:inset 0 2px 4px #101e1a99,0 1px #66705a66}
.dpad button{color:#b9c2a7;font-size:20px}
.dpad button.pressed{background:#697351!important;color:#ff9444;box-shadow:inset 0 2px 5px #14201988!important}
.dpad button:focus-visible{outline-offset:-4px;position:relative;z-index:2}
.action-buttons button:active{filter:brightness(1.1)}
/* A pale studio backdrop frames the FIN handheld as one physical object. */
body{color:#25392b;background:#e6e2d7;background-image:radial-gradient(ellipse at 50% 28%,#faf8f0 0,#e6e2d7 62%,#d5d2c7 100%)}
.masthead .sound-toggle{color:#314434;border-color:#77816c;background:#f5f2e67a}
.masthead .sound-toggle[aria-pressed=true]{color:#ad450a;border-color:#bd5720;background:#fff5df}
.edition{color:#41503d;border-color:#9aa28d}
footer{color:#53614c}

@media(max-width:650px) and (orientation:portrait){
 body{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overscroll-behavior:none}
 .masthead{flex:none;width:100%;padding:0 5px 10px;min-height:44px;gap:12px}
 .masthead img{width:112px}.sound-toggle{min-height:36px;padding:7px 10px}.edition{display:none}
 main{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;padding:0;margin:0}
 .console{flex:1;min-height:0;display:flex;flex-direction:column;padding:12px 12px 10px;border-radius:20px 20px 36px 20px;box-shadow:inset 0 2px 1px #fff9,inset -3px -5px 0 #0002,0 4px 0 #a9ad9e,0 8px 16px #343d2926}
 .console-heading{flex:none;margin:0 3px 9px}.console-heading strong{font-size:22px}.hardware-label{font-size:7px}
 .console-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:0}
 .bezel{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px}
 .bezel-top{padding-bottom:6px}.bezel-bottom{padding-top:6px}
 #screen.screen{flex:1;height:auto;min-height:0;max-height:none;aspect-ratio:auto}
 .controls{--pad-size:clamp(138px,43vw,176px);flex:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:var(--pad-size) 44px;gap:10px 8px;padding:12px 0 0;align-items:center;justify-items:center}
 .dpad{grid-area:1/1;width:var(--pad-size);height:var(--pad-size);grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}
 .action-buttons{grid-area:1/2;display:grid;grid-template-columns:repeat(2,clamp(58px,16.4vw,70px));gap:10px;transform:none;padding:0;height:var(--pad-size);align-items:start}
 .action-buttons>div{gap:7px}.action-buttons>div:first-child{align-self:end;margin-bottom:9px}.action-buttons>div:last-child{margin-top:9px}
 .action-buttons button{width:clamp(58px,16.4vw,70px);height:clamp(58px,16.4vw,70px);font-size:29px}
 .action-buttons span{font-size:8px;letter-spacing:.6px}
 .system-buttons{grid-area:2/1;gap:10px;align-self:center}.system-buttons button{min-width:54px;min-height:44px;justify-content:center;font-size:8px}.system-buttons i{width:40px;height:11px;margin-bottom:2px}.system-buttons span{display:none}
 .haptics-toggle{grid-area:2/2;font-size:8px;width:100%;max-width:142px;min-height:44px;padding:7px}
 .console-bottom,.speaker,footer{display:none}
 .game-hint{font:9px/1.35 ui-monospace,monospace;min-height:44px;bottom:8px;max-width:94%}
 .location-badge b{font-size:9px}.journal-pill{font-size:9px;padding:6px}.bottle-count,.harvest-count{font-size:8px;top:50px;padding:5px 6px}
 .toast{top:80px;font-size:8px}
}
@media(max-width:360px) and (orientation:portrait){
 .console{padding:10px 8px 8px}.console-heading{margin-bottom:7px}.console-heading strong{font-size:20px}
 .controls{gap:8px 4px;padding-top:10px;--pad-size:138px}.action-buttons{gap:8px}.action-buttons button{width:58px;height:58px}
 .bezel{padding:6px}.bezel-top,.bezel-bottom{font-size:6px;padding-top:4px;padding-bottom:4px}
 .location-badge{padding:5px}.location-badge b{font-size:8px}.location-badge span:not(.pixel-marker){font-size:6px}.screen-top{left:5px;right:5px;top:5px}.game-hint{font-size:8px}
 .welcome h1{font-size:27px;margin:10px 0}.welcome .eyebrow{font-size:8px}.welcome small{font-size:6px;margin-top:10px}
}
@media(max-width:1100px) and (max-height:600px) and (orientation:landscape){
 body{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
 .masthead{flex:none;min-height:30px;width:100%;padding:0 8px 5px}.masthead img{width:90px}.edition{display:none}.sound-toggle{padding:2px 9px;font-size:8px;min-height:26px}.sound-toggle span{font-size:12px}
 main{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;margin:0;padding:0}
 .console{flex:1;min-height:0;padding:8px;border-radius:18px 18px 25px 18px;display:flex;flex-direction:column;box-shadow:inset 0 2px 1px #fff9,inset -3px -4px 0 #0002,0 3px 0 #b4b8a7}
 .console-heading,.console-bottom,.speaker,footer{display:none}
 .console-body{--pad-size:clamp(132px,18vw,176px);flex:1;min-height:0;display:grid;grid-template-columns:var(--pad-size) minmax(0,1fr) var(--pad-size);grid-template-rows:minmax(0,1fr) 44px;gap:8px}
 .bezel{grid-area:1/2/3/3;display:flex;min-height:0;padding:6px;border-radius:9px 9px 16px 9px}.bezel-top,.bezel-bottom{display:none}
 #screen.screen{flex:1;height:auto;min-height:0;max-height:none;aspect-ratio:auto;border-width:3px}
 .controls{display:contents}
 .dpad{grid-area:1/1;width:var(--pad-size);height:var(--pad-size);grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);align-self:center;justify-self:center}
 .action-buttons{grid-area:1/3;display:grid;grid-template-columns:repeat(2,clamp(58px,8vw,70px));height:var(--pad-size);gap:8px;transform:none;padding:0;align-self:center;justify-self:center;align-items:start}
 .action-buttons>div{gap:6px}.action-buttons>div:first-child{align-self:end;margin-bottom:3px}.action-buttons>div:last-child{margin-top:3px}
 .action-buttons button{width:clamp(58px,8vw,70px);height:clamp(58px,8vw,70px);font-size:28px}.action-buttons span{font-size:8px}
 .system-buttons{grid-area:2/1;gap:8px;justify-self:center;align-self:center}.system-buttons button{min-height:44px;min-width:54px;font-size:8px;justify-content:center}.system-buttons i{height:10px;width:38px;margin-bottom:2px}.system-buttons span{display:none}
 .haptics-toggle{grid-area:2/3;min-height:44px;width:100%;max-width:150px;justify-self:center;font-size:8px;padding:6px}
 .screen-top{left:5px;right:5px;top:5px}.location-badge{padding:5px;gap:4px}.location-badge b{font-size:8px}.location-badge span:not(.pixel-marker){font-size:6px}.pixel-marker{font-size:11px}.journal-pill{padding:5px;font-size:8px;gap:5px}.journal-pill .jobs-title{font-size:7px!important}.bottle-count,.harvest-count{top:45px;font-size:7px;padding:4px 5px;right:6px}.harvest-count{left:6px;right:auto}
 .game-hint{font:9px/1.3 ui-monospace,monospace;min-height:40px;max-width:94%;bottom:6px;padding:5px 6px;gap:5px}.keycap{width:18px;height:18px}.toast{top:73px;font-size:8px;padding:6px}
 .welcome h1{font-size:clamp(24px,4vw,38px);margin:10px 0;line-height:1.2}.welcome .eyebrow{font-size:8px}.welcome small{font-size:6px;max-width:240px;margin-top:9px}.pixel-button{padding:9px 12px;font-size:10px}
}

/* Nearby actions remain available to assistive technology without a gameplay overlay. */
.game-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;pointer-events:none}
.dialog-footer #return-game{min-height:44px;padding:10px 4px}

.variety-label{pointer-events:none}

footer{justify-content:flex-end}
