
#joystick{position:relative;width:88px;height:88px;border:2px solid #c6b89d99;border-radius:50%;background:#272331a6;touch-action:none;user-select:none;flex:none;box-shadow:inset 0 0 12px #0005}
#joystick-knob{position:absolute;left:50%;top:50%;width:36px;height:36px;border-radius:50%;background:#c4b78abb;border:2px solid #ece0b7;transform:translate(-50%,-50%);pointer-events:none}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 html,body{height:100%;overflow:hidden;overscroll-behavior:none}
 .shell{height:100dvh;max-width:none;padding:env(safe-area-inset-top,0px) max(4px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(4px,env(safe-area-inset-left,0px));display:flex;flex-direction:column}
 .header,.playing .header{height:32px;min-height:32px;margin:0}.brand{font-size:18px;gap:7px}.brand-icon{width:21px;height:21px;font-size:18px}.brand small,.edition{display:none}.header #help{padding:6px;font-size:10px}
 main,.layout,.play-column,.farm-frame,.sidebar{min-height:0;min-width:0}.shell>main{flex:1;display:flex;overflow:hidden}.layout{flex:1;display:flex;flex-direction:column;gap:3px;overflow:hidden}.play-column{flex:1;display:flex;flex-direction:column;overflow:hidden}.hud{padding:4px 0;flex:none;height:38px}.hud-item{padding:0 6px;gap:4px}.hud-icon{font-size:16px}.hud-item strong{font-size:15px;margin:0}.hud-item small{font-size:7px;letter-spacing:0}.hud .shared-tag{display:none}.sleep-track{margin-top:4px}
 .farm-frame{flex:1;display:flex;flex-direction:column;box-shadow:none}.farm-top{height:22px;flex:none;padding:4px 6px;font-size:7px;letter-spacing:0}.farm-top>span:last-child{font-size:7px}.farm-top b{margin-left:3px}.game-stage{height:auto!important;min-height:0;flex:1}.game-stage #farm{width:100%;height:100%;aspect-ratio:auto}.wave-strip,.control-note,.scene-caption{display:none!important}
 .sidebar{flex:none;max-height:30%;overflow:auto;overscroll-behavior:contain}.sidebar #room-panel{margin:0;padding:6px 8px;max-width:none}.sidebar .panel-eyebrow{font-size:8px;margin:0}.sidebar .room-code-line{margin:3px 0;display:flex;gap:8px;justify-content:flex-start}.room-code-line>div{display:flex;align-items:center;gap:8px}.room-code-line strong{font-size:17px;letter-spacing:2px}.room-code-line small{font-size:7px}.room-code-line .button{padding:5px 10px}.room-invite,.roster-heading,#lobby-note{display:none!important}#roster{display:flex;gap:12px;overflow:auto;max-width:100%;overscroll-behavior:contain}.sidebar .roster-player{flex:none;padding:3px 0;gap:5px}.roster-name{font-size:10px}.roster-name small{font-size:7px}.roster-avatar{font-size:17px}.player-status{font-size:8px}.sidebar #ready,.sidebar #start{width:auto;display:inline-flex;margin:3px 4px 0 0;padding:7px 10px;font-size:10px}.sidebar .button.hidden{display:none!important}
 .sidebar:has(#welcome:not(.hidden)){max-height:58%;flex:1}.sidebar #welcome{margin:0;max-width:none;padding:10px}.welcome-art,.join-panel h2,.join-panel>p,.divider{display:none}.join-panel label{margin:4px 0;font-size:8px}.join-panel input{padding:8px}.skin-picker{margin:6px 0}.join-panel .button{padding:9px;margin:5px 0}.skin{padding:7px}
 .game-toolbar{top:5px;right:5px;max-width:none;gap:4px;flex-wrap:nowrap;z-index:11}.game-toolbar .hud-button{padding:7px;font-size:10px}#camera-mode{display:none}.game-toolbar #fullscreen{font-size:10px;padding:7px}
 .game-stage .mission{left:5px;top:5px;width:100px;padding:5px;pointer-events:none}.mission .health-line{font-size:8px}.mission .spirit-track{margin-top:3px}.farm-health-hud{left:5px;top:45px;padding:4px 6px;font-size:9px;max-width:110px}.farm-health-hud strong{font-size:9px}.farm-health-hud #farm-status,.farm-health-hud .score-formula{display:none}.night-progress{top:43px;left:auto;right:5px;transform:none;width:calc(100% - 130px);max-width:270px;padding:3px 8px;gap:5px;font-size:9px}.night-progress-moon{font-size:14px}.night-progress-track{height:9px}#night-progress-marker{font-size:16px}.night-progress-flag{font-size:16px;top:-6px}
 .game-stage .touch-controls,.playing .game-stage .touch-controls,.playing.voting .game-stage .touch-controls{left:8px;bottom:8px;display:flex;align-items:flex-end;gap:5px;z-index:10;pointer-events:none}.touch-controls>*{pointer-events:auto;touch-action:none}.game-stage .touch-controls>.button{font-size:9px;padding:9px 6px;max-width:60px;white-space:normal}.touch-controls.hidden{display:none!important}
 .plant-hud{display:block;left:auto;right:8px;bottom:8px;transform:none;width:max-content;max-width:calc(100% - 110px);padding:4px;z-index:10;overflow:hidden}.plant-hud .build-heading{display:none}.plant-hud .build-grid{display:flex!important;overflow-x:auto;gap:3px;overscroll-behavior:contain}.plant-hud .build-card{flex:0 0 47px;padding:4px 2px}.plant-hud .build-card canvas{width:22px;height:20px}.plant-hud .build-card strong{font-size:7px}.plant-hud .build-card .cost{font-size:8px}.plant-hud .build-card .key,.plant-hud .build-card p{display:none}
 #vote-panel{top:76px;right:5px;width:calc(100% - 10px);max-height:calc(100% - 180px);overflow:auto;padding:5px;overscroll-behavior:contain}#vote-panel .vote-heading{font-size:9px}#vote-panel .vote-card{padding:5px}#vote-panel .vote-card p{max-height:38px;font-size:9px}#vote-panel .vote-card h3{font-size:10px}#vote-panel .vote-card small{display:none}#vote-panel .vote-card>span{display:none}#vote-panel #vote-options{margin:4px 0}
 .game-stage .charms-panel{top:40px;right:5px;width:min(330px,calc(100% - 10px));max-height:calc(100% - 48px);padding:15px;overscroll-behavior:contain}.game-stage .charms-panel h2{font-size:18px}.game-stage dialog[open]{inset:5px;width:calc(100% - 10px);max-height:calc(100% - 10px);padding:16px;overflow:auto;overscroll-behavior:contain}.game-stage dialog h2{font-size:20px}#loadout-options{gap:5px;margin:8px 0}.loadout-choice{padding:5px}.loadout-choice small{font-size:9px}.prep-lobby{padding:12px}.prep-content h2{font-size:22px}.prep-content p{font-size:12px}.prep-actions,#item-shop{gap:5px;margin:8px 0}.prep-lobby .hud-button,.prep-actions .button{padding:8px;font-size:11px}#cat-shop{gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}.cat-card{padding:8px}.cat-card p{font-size:11px}.cat-card h3{font-size:14px}.game-stage #toast{bottom:108px;padding:7px;font-size:10px}#help-dialog{max-height:90dvh;overflow:auto;overscroll-behavior:contain}
}
@media(max-width:900px) and (orientation:landscape), (pointer:coarse) and (max-height:600px) and (orientation:landscape){
 .layout{flex-direction:row}.sidebar,.sidebar:has(#welcome:not(.hidden)){flex:0 0 175px;max-height:100%;height:100%;overflow:auto}.header,.playing .header{height:28px;min-height:28px}.hud{height:32px}.sidebar #room-panel{height:100%}#roster{flex-direction:column;gap:3px}.sidebar .room-code-line{flex-wrap:wrap}.sidebar #ready,.sidebar #start{display:flex}#vote-panel{left:116px;right:5px;width:auto;top:75px;max-height:calc(100% - 80px)}.preparing #cat-shop{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){.game-stage #farm{position:absolute;inset:0;min-height:0}.game-stage{overflow:hidden}}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){.layout{align-items:stretch}}

/* Shared HUD: night progress in the header, settings behind the gear, direct target actions. */
#clock{display:none}.farm-top{position:relative;gap:8px;min-height:40px;padding:4px 8px}.farm-phase{flex:1}.night-progress{position:relative;top:auto;left:auto;right:auto;transform:none;flex:1;width:auto;max-width:none;margin:0;padding:3px 8px;border-width:1px;font-size:10px;height:27px}.night-progress-moon{font-size:16px}.night-progress-track{height:10px}.night-progress-flag{font-size:18px;top:-7px}#night-progress-marker{font-size:18px}
#settings-toggle{flex:none;min-width:32px;height:32px;padding:3px;font-size:20px;background:#332b3e;border:1px solid #896d7e;border-radius:7px}.settings-menu{position:absolute;right:5px;top:5px;z-index:30;width:200px;max-height:calc(100% - 10px);overflow:auto;display:flex;flex-direction:column;gap:6px;background:#292330f5;border:1px solid #796472;border-radius:8px;padding:10px;overscroll-behavior:contain}.settings-menu.hidden{display:none}.settings-menu #pan-mode,.settings-menu #sound{display:block}.settings-menu button{padding:9px;font-size:11px}.settings-menu .hud-button span{display:inline}
.game-toolbar #fullscreen{display:inline-flex}.voting #open-charms:after{content:'●';color:#efab73;margin-left:5px}#vote-panel.embedded-vote{position:static;inset:auto;transform:none;width:100%;max-height:none;margin-top:12px}.game-stage .charms-panel{max-height:calc(100% - 65px)}
.plant-hud{width:442px;padding:8px}.plant-hud .build-heading{display:none}.plant-hud .build-card{padding:6px}.plant-hud .build-card canvas{width:43px;height:37px}.plant-hud .build-card strong{font-size:9px}.plant-hud .build-card .cost{font-size:10px}.plant-hud .build-card.chosen{border-color:#efab73;box-shadow:inset 0 0 0 1px #efab73}#cancel-plant{float:right;padding:4px;font-size:9px;margin-top:3px}
#plot-actions{position:absolute;right:8px;bottom:145px;z-index:13;max-width:calc(100% - 16px);padding:9px;background:#292330ed;border:1px solid #896d7e;border-radius:9px;display:flex;flex-wrap:wrap;gap:6px;font-size:11px}#plot-actions.hidden{display:none}#plot-detail{flex-basis:100%}#plot-actions button{font-size:10px;padding:8px}#close-target{margin-left:auto}#begin-night{margin-top:8px}
@media(max-width:900px), (pointer:coarse) and (max-height:600px){
 .farm-top{height:40px;min-height:40px;font-size:8px}.game-toolbar #fullscreen{font-size:14px;padding:6px 10px;min-height:32px}.game-toolbar #fullscreen span{display:none}.game-toolbar{top:5px}.game-stage .mission{top:5px}.farm-health-hud{top:45px}.game-stage .charms-panel{top:42px;max-height:calc(100% - 48px)}
 .plant-hud{width:max-content;max-width:calc(100% - 110px);padding:4px}.plant-hud .build-card{padding:4px 2px}.plant-hud .build-card canvas{width:22px;height:20px}.plant-hud .build-card strong{font-size:7px}.plant-hud .build-card .cost{font-size:8px}
 #plot-actions{bottom:82px;right:8px;width:min(260px,calc(100% - 110px));max-height:calc(100% - 90px);overflow:auto;padding:6px;gap:4px;font-size:9px;overscroll-behavior:contain}#plot-actions button{padding:7px;font-size:9px}#begin-night{width:auto;display:inline-flex;padding:7px 10px;font-size:10px;margin:3px 0}.preparing #plant-hud,.preparing #plot-actions{visibility:hidden}
 #vote-panel{top:76px}#vote-panel.embedded-vote{position:static;width:100%;max-height:none}
}
