:root{color-scheme:dark;--bg:#201d29;--panel:#2a2533;--border:#443a48;--text:#f0e7d7;--muted:#aaa0af;--orange:#efab73;--green:#becd99;--lavender:#bbaacb;--serif:Georgia,'Times New Roman',serif;--mono:'Cascadia Code',Consolas,monospace;--sans:'Segoe UI',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 30% 0%,#342835 0%,transparent 60%),var(--bg);font-family:var(--sans);color:var(--text);font-size:14px}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button,a,input,canvas{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--orange)}button{transition:background .15s,border-color .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}.shell{max-width:1512px;margin:auto;padding:0 48px}.header{height:110px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:28px;letter-spacing:-1px;font-weight:bold;line-height:1}.brand-second{color:var(--orange);margin-left:5px}.brand small{display:block;font:9px var(--mono);letter-spacing:3px;margin-top:10px;color:var(--muted)}.brand-icon{width:45px;height:42px;background:var(--orange);border-radius:15px;color:#3b2937;display:grid;place-items:center;font-size:34px;box-shadow:inset 7px 0 #d99261,inset -7px 0 #d99261;position:relative}.brand-icon:before{content:'';position:absolute;width:7px;height:11px;background:#9bac7e;top:-8px;left:22px;transform:rotate(15deg)}nav{display:flex;align-items:center;gap:27px}.edition{font:9px var(--mono);letter-spacing:1.7px;color:#b9aaba}.quiet{border:0;background:none;color:#bfb2c2;padding:8px 0;font-size:12px}.quiet:hover{color:var(--orange)}.quiet span{margin-left:7px}.page-heading{display:flex;justify-content:space-between;align-items:center;padding:38px 0 30px}.eyebrow{font:10px var(--mono);letter-spacing:1.7px;color:var(--orange);display:flex;gap:8px;align-items:center}.live-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 8px #bfce9930}.page-heading h1{font:normal 38px/1.18 var(--serif);letter-spacing:-1.2px;margin:13px 0 10px}.page-heading em{font-weight:normal;color:var(--orange)}.page-heading p{color:var(--muted);margin:0;font-size:13px}.night-label{display:flex;gap:14px;align-items:center;font:9px var(--mono);letter-spacing:1.3px;color:var(--muted)}.night-label>span{font-size:42px;color:var(--orange)}.night-label small{display:block;font:12px var(--sans);letter-spacing:0;color:var(--text);margin-top:8px}.night-label b{color:var(--orange);padding:0 6px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:26px;align-items:start}.hud{display:grid;grid-template-columns:1fr 1fr 1.15fr;border:1px solid var(--border);background:#2a2533;border-radius:9px 9px 0 0;padding:17px 0}.hud-item{display:flex;align-items:center;gap:12px;padding:0 20px;border-right:1px solid var(--border)}.hud-item:last-child{border:0}.hud-icon{font-size:29px;color:var(--lavender)}.seed-icon{color:var(--orange)}.hud-item small{display:block;font:8px var(--mono);letter-spacing:1.2px;color:var(--muted);white-space:nowrap}.hud-item strong{display:block;font:22px var(--mono);margin-top:3px}.shared-tag{margin-left:auto;font:7px var(--mono);color:#aca1a9;border:1px solid #4d414e;border-radius:3px;padding:4px}.farmer{gap:10px}.farmer>div{width:100%}.farmer small{display:flex;justify-content:space-between;gap:4px;letter-spacing:.6px}.farmer b{color:var(--green);font-weight:normal}.sleep-track,.spirit-track{background:#1c1923;border-radius:3px;height:6px;overflow:hidden;margin-top:10px}.sleep-track i,.spirit-track i{background:var(--green);height:100%;display:block;transition:width .3s}.farm-frame{border:1px solid #51404c;border-top:0;border-radius:0 0 9px 9px;overflow:hidden;position:relative;background:#24212e;box-shadow:0 12px 32px #120f1826}.farm-top{display:flex;justify-content:space-between;align-items:center;padding:12px 17px;color:#d6c4c5;font:9px var(--mono);letter-spacing:1px;background:#322a38}.farm-top b{font-weight:normal;margin-left:7px}.farm-top>span:last-child{font-size:9px;color:#bcb0c0;letter-spacing:0}#farm{width:100%;display:block;image-rendering:pixelated;touch-action:none;cursor:crosshair;aspect-ratio:8/5;background:#414337}.scene-caption{position:absolute;bottom:57px;left:50%;transform:translateX(-50%);background:#231e2be6;border:1px solid #76605280;border-radius:30px;padding:9px 14px;font:8px var(--mono);letter-spacing:1.2px;white-space:nowrap;pointer-events:none;color:#e2cda9}.caption-dot{display:inline-block;width:4px;height:4px;background:var(--orange);margin-right:8px}.wave-strip{display:flex;gap:18px;align-items:center;padding:13px 18px;font:8px var(--mono);letter-spacing:1px;color:#b7a3b3;background:#2b2331}.wave-dots{display:flex;align-items:center;gap:6px;flex:1}.wave-dots i{height:4px;background:#483c4e;flex:1;border-radius:2px}.wave-dots i.done{background:#b1bc87}.wave-dots i.current{background:var(--orange);box-shadow:0 0 8px #efa66f44}.control-note{display:flex;align-items:center;justify-content:space-between;margin:12px 0 25px;color:#9f92a7;font-size:10px;gap:8px}.control-note i{font-style:normal;margin:0 9px;color:#6d5c72}kbd{font:9px var(--mono);border:1px solid #524653;border-bottom-width:2px;border-radius:3px;padding:2px 4px;margin-right:2px;color:#c9bacb}.tap-hint{display:none}.build-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.build-heading h2{font:22px var(--serif);margin:0 0 6px}.build-heading p{font-size:11px;color:var(--muted);margin:0}.section-number{font:8px var(--mono);color:#a999ac;letter-spacing:1.1px}.build-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.build-card{position:relative;padding:15px 12px 12px;text-align:left;background:linear-gradient(145deg,#342b3a,#292432);border:1px solid #4b3d4d;border-radius:7px;min-width:0}.build-card:hover,.build-card.selected{border-color:var(--orange);background:#3a2e3b}.build-card canvas{width:58px;height:50px;image-rendering:pixelated;display:block;margin:0 auto 12px}.build-card strong{font-size:11px;display:block;white-space:nowrap}.build-card p{font-size:9px;color:var(--muted);line-height:1.6;margin:5px 0 12px;min-height:28px}.build-card .cost{font:11px var(--mono);color:var(--orange)}.build-card .key{position:absolute;top:10px;left:10px;color:#a28eaa;font:8px var(--mono);border:1px solid #544457;padding:2px 4px;border-radius:2px}.build-card .build-arrow{float:right;color:#9f8aa5}.plot-actions{display:flex;align-items:center;gap:8px;padding:12px;margin-top:10px;background:var(--panel);border:1px solid var(--border);border-radius:7px;font-size:11px}.plot-actions>span{margin-right:auto}.panel{background:linear-gradient(140deg,#322a39,#282330);border:1px solid #4a3d4e;border-radius:10px;padding:23px}.panel-eyebrow{display:flex;justify-content:space-between;align-items:center;font:8px var(--mono);letter-spacing:1.1px;color:#d6c1d2}.panel-eyebrow>span{font-size:8px;color:#aa97ae}.welcome-art{margin:9px -10px 0;display:flex;justify-content:center}.welcome-art canvas{width:240px;height:102px;image-rendering:pixelated}.panel h2{font:25px/1.2 var(--serif);margin:8px 0 10px;letter-spacing:-.4px}.panel p{font-size:11px;line-height:1.7;color:#b9aabc;margin:0 0 22px}label{display:block;font:8px var(--mono);letter-spacing:1.2px;color:#b8a7bc;margin-bottom:8px}input{width:100%;background:#211e2a;border:1px solid #514253;border-radius:5px;color:var(--text);padding:12px 13px;font-size:12px;min-width:0}input::placeholder{color:#8c7e95}.skin-picker{display:flex;gap:8px;margin:10px 0 16px}.skin{width:50%;border:1px solid #514251;background:#2c2534;border-radius:5px;padding:9px 2px;color:#aa96b0;font-size:10px}.skin.active{border-color:#b67d56;color:#f0b98e;background:#47323b}.button{border:1px solid transparent;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;padding:12px 14px;font-weight:600;touch-action:manipulation}.primary{background:var(--orange);color:#342330;box-shadow:0 3px 0 #ad704c}.primary:hover{background:#f8bd8b}.primary span{margin-left:auto;font-size:17px}.secondary{background:#393040;border-color:#675169;color:#ead9e6}.secondary:hover{background:#48394d;border-color:#ae8697}.join-panel>.primary,#ready,#start,#rematch{width:100%}.divider{display:flex;align-items:center;gap:10px;color:#918298;font-size:9px;margin:22px 0 17px}.divider:before,.divider:after{content:'';height:1px;background:#4a3d4e;flex:1}.join-row{display:flex;gap:8px}.join-row input{font:14px var(--mono);letter-spacing:4px;text-transform:uppercase}.join-row button{flex-shrink:0}.practice{display:block;margin:17px auto 0;padding:0;border:0;background:none;color:#b1a0b7;font-size:9px;line-height:1.6;text-decoration:underline;text-underline-offset:3px}.practice:hover{color:var(--orange)}.charms-panel{margin-top:18px;padding:22px}.charms-panel h2{font-size:24px;margin-top:19px}.charms-panel p{margin-bottom:20px}.charm-teaser{display:flex;align-items:center;gap:12px;border:1px dashed #715d70;padding:13px 10px;border-radius:5px;background:#372c3e}.charm-teaser>span{background:#5a415d;color:#e8c7d7;border:1px solid #8d6a84;border-radius:4px;width:33px;height:41px;display:grid;place-items:center;font:24px var(--serif);transform:rotate(-8deg)}.charm-teaser strong{font:12px var(--serif);display:block}.charm-teaser small{font-size:8px;color:#b6a0bc;display:block;margin-top:5px}.charm-teaser i{font-style:normal;color:#c5a8bc;margin-left:auto}.charm-footer{font:7px var(--mono);letter-spacing:1.4px;color:#a390ae;margin-top:20px;display:flex;justify-content:space-between}.charm-footer span{color:#b49b83}.cozy-note{display:flex;align-items:center;justify-content:center;gap:12px;margin:23px 0}.cozy-note>span{font-size:24px;opacity:.7}.cozy-note p{font-size:9px;color:#96849e;line-height:1.8;margin:0}.cozy-note strong{font-weight:normal;color:#b5a2be}footer{border-top:1px solid var(--border);margin-top:36px;padding:23px 0 30px;display:flex;justify-content:space-between;align-items:center;font:8px var(--mono);letter-spacing:1px;color:#918095}footer>span:nth-child(2){font:italic 14px var(--serif);color:#b3a0ae;letter-spacing:0}.hidden{display:none!important}.text-button{background:none;border:0;padding:0;color:#af98b4;font-size:10px}.room-code-line{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.room-code-line small{font:8px var(--mono);color:var(--muted);letter-spacing:2px;display:block}.room-code-line strong{font:32px var(--mono);letter-spacing:5px;color:var(--orange);display:block;margin-top:7px}.small{font-size:10px;padding:8px 10px}.roster-heading{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;color:#b5a2bc;border-bottom:1px solid var(--border);padding-bottom:10px;margin-top:20px}.roster-player{display:flex;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid #413347;font-size:12px}.roster-avatar{font-size:19px}.roster-name{flex:1}.roster-name small{display:block;font-size:8px;color:#9f8aaa;margin-top:3px}.player-status{font-size:8px;color:var(--green)}#ready{margin-top:17px}#start{margin-top:10px}.panel .tiny{font-size:9px;margin:14px 0 0;text-align:center}.mission{border-top:1px solid var(--border);padding-top:22px;margin-top:22px}.mission .eyebrow{font-size:8px;letter-spacing:.5px}.mission h3{font:22px var(--serif);margin:12px 0}.mission p{font-size:11px;margin-bottom:18px}.health-line{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.health-line strong{color:#d2b2ca;font-weight:normal}.spirit-track i{background:#ba94bb}.owned-charm{padding:11px 0;border-bottom:1px solid #504053;display:flex;gap:10px;align-items:center}.owned-charm>span{font:22px var(--serif);width:28px;color:var(--orange)}.owned-charm strong{display:block;font-size:11px}.owned-charm small{font-size:9px;color:var(--muted);display:block;margin-top:4px}.owned-charm b{margin-left:auto;font:14px var(--mono);color:var(--orange)}.connection{position:absolute;inset:0;z-index:5;background:#211b2acb;display:grid;place-items:center;font-size:17px}.touch-controls{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.dpad{display:grid;grid-template-columns:repeat(3,42px);gap:4px}.dpad button{height:38px;border:1px solid #6c5370;border-radius:5px;background:#3b2e43;touch-action:none;font-size:18px;user-select:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.touch-controls>.button,#repair{touch-action:none;user-select:none}#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#eee1cc;color:#382a34;border:1px solid #fff0d0;border-radius:8px;box-shadow:0 4px 30px #0005;padding:12px 20px;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:var(--text);background:linear-gradient(135deg,#382c3e,#28232f);border:1px solid #86647b;border-radius:15px;padding:36px;width:min(650px,92vw);max-height:90dvh;overflow:auto;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#15101acf;backdrop-filter:blur(5px)}dialog h2{font:32px var(--serif);margin:16px 0}dialog p,dialog li{font-size:13px;color:#c2b0c7;line-height:1.7}dialog li{margin-bottom:12px}dialog ol{padding-left:22px}dialog strong{color:#ead6df}.dialog-close{position:absolute;right:17px;top:12px;font-size:25px;background:none;border:0;color:#b69fba}.help-score{background:#473340;padding:15px;border-radius:5px}.dialog-close-button{width:100%;margin-top:15px}#vote-dialog{width:min(890px,94vw)}#vote-options{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px}.vote-card{background:#403049;border:1px solid #84667f;border-radius:9px;padding:24px 18px;text-align:left;min-height:240px}.vote-card.chosen{border:2px solid var(--orange);background:#4c374b}.vote-card>span{font:40px var(--serif);display:block;margin-bottom:18px;color:var(--charm-color)}.vote-card small{font:8px var(--mono);letter-spacing:1px;color:var(--charm-color)}.vote-card h3{font:24px var(--serif);margin:10px 0}.vote-card p{font-size:12px}.vote-card b{font-size:10px;color:var(--orange)}.vote-bottom{display:flex;justify-content:space-between;margin-top:18px;font-size:12px;color:var(--orange)}#result-dialog{text-align:center;width:min(530px,94vw)}#result-dialog .eyebrow{justify-content:center}.result-sun{font-size:64px;color:var(--orange)}.result-score{padding:22px;background:#231e2b;border:1px solid #675165;border-radius:8px;margin:24px 0}.result-score small,.result-score span{display:block;font:9px var(--mono);letter-spacing:2px;color:var(--muted)}.result-score strong{display:block;font:42px var(--mono);color:var(--orange);margin:10px 0;overflow-wrap:anywhere}#contributions{font-size:12px;color:#c5abc5;line-height:2;margin-bottom:24px}.result-contribution{display:flex;justify-content:space-between;gap:10px}#result-close{margin-top:12px}.farm-frame:fullscreen{display:flex;flex-direction:column;justify-content:center;background:#18151e}.farm-frame:fullscreen #farm{max-height:88vh;max-width:140vh;width:100%;margin:auto}.farm-frame:fullscreen .farm-top,.farm-frame:fullscreen .wave-strip{flex-shrink:0}.farm-frame:fullscreen .scene-caption{display:none}
@media(min-width:1550px){.shell{padding:0 36px}}@media(max-width:1180px){.shell{padding:0 25px}.layout{grid-template-columns:minmax(0,1fr) 285px;gap:18px}.panel{padding:20px}.hud-item{padding:0 12px}.shared-tag{display:none}.build-card{padding:13px 9px}.build-card strong{font-size:10px}.edition{display:none}.page-heading h1{font-size:34px}.control-note{font-size:9px}.section-number{display:none}}@media(max-width:900px){.shell{padding:0 20px}.layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{margin:0}.cozy-note{display:none}.night-label{display:none}.build-card strong{font-size:13px}.build-card p{font-size:11px}.header{height:88px}.page-heading{padding:27px 0}.farm-frame{max-height:none}footer .version{display:none}.build-heading{margin-top:20px}.touch-controls:not(.hidden){display:flex}}@media(max-width:560px){.shell{padding:0 12px}.header{height:82px}.brand{font-size:23px}.brand-icon{width:34px;height:33px;font-size:26px}.brand small{font-size:7px;letter-spacing:2px}.brand-icon:before{left:16px}.header nav{gap:14px}.header .quiet{font-size:10px}#sound span{display:none}.page-heading h1{font-size:30px;letter-spacing:-1px}.page-heading p{font-size:11px}.eyebrow{font-size:8px;letter-spacing:1px}.page-heading{padding:24px 0}.hud{padding:12px 0}.hud-item{padding:0 10px;gap:7px}.hud-icon{font-size:22px}.hud-item small{font-size:7px;letter-spacing:.5px}.hud-item strong{font-size:18px}.farmer{padding:0 9px}.farmer .hud-icon{display:none}.farmer small{display:block;white-space:normal}.farmer b{margin-left:5px}.scene-caption{font-size:6px;padding:7px 10px;bottom:45px}.farm-top{padding:10px;font-size:7px;letter-spacing:.4px}.farm-top>span:last-child{font-size:7px}.wave-strip{padding:10px;font-size:7px}.control-note>span:first-child{display:none}.tap-hint{display:block;font-size:9px}.control-note{margin-bottom:12px}.control-note .quiet{font-size:10px}.build-grid{grid-template-columns:repeat(2,1fr);gap:9px}.build-card{padding:12px 12px 12px 68px;min-height:100px}.build-card canvas{position:absolute;left:6px;top:28px;width:58px;height:50px}.build-card strong{font-size:11px}.build-card p{font-size:9px;margin:5px 0 8px;min-height:25px}.build-card .key{left:10px;top:9px}.build-heading h2{font-size:22px}.build-heading p{font-size:10px}.sidebar{grid-template-columns:1fr;margin-top:8px}.charms-panel h2 br{display:none}.welcome-art{float:right;margin:10px -15px 0 0;width:120px;overflow:hidden;height:112px}.welcome-art canvas{width:220px;max-width:none;flex-shrink:0}.join-panel h2{font-size:27px;margin-top:22px}.join-panel>p{font-size:11px}.panel-eyebrow{font-size:9px}.join-panel{padding:22px}.skin-picker{margin-top:12px}.join-panel label{clear:both}.charms-panel{margin-top:0}.charm-footer{justify-content:flex-start;gap:14px}.cozy-note{display:none}footer{display:block;margin-top:25px;padding:20px 0;text-align:center}footer>span{display:block}footer>span:nth-child(2){margin-top:12px}.plot-actions{flex-wrap:wrap}.plot-actions>span{width:100%}dialog{padding:25px}dialog h2{font-size:27px}#vote-options{grid-template-columns:1fr;gap:9px}.vote-card{min-height:0;padding:14px 14px 14px 57px;position:relative}.vote-card>span{position:absolute;left:16px;top:20px;font-size:28px}.vote-card h3{font-size:21px;margin:7px 0}.vote-card p{font-size:11px;margin:5px 0}.vote-card small{font-size:7px}.touch-controls{position:sticky;bottom:8px;z-index:4;background:#211a2be8;border:1px solid #524156;border-radius:9px;padding:9px;backdrop-filter:blur(7px)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:901px) and (hover:hover) and (pointer:fine){.touch-controls{display:none!important}}
@media(max-width:560px){.playing .page-heading{display:none}.playing .header{height:65px;margin-bottom:12px}.playing .touch-controls{position:static;margin:0 0 12px;padding:7px}.playing .build-heading{margin-top:12px}.playing .control-note{margin:6px 0}.playing .scene-caption{max-width:92%;white-space:normal;text-align:center;line-height:1.5}.playing .build-card{min-height:91px}.playing .build-card p{margin-bottom:5px}#reopen-vote{margin-top:15px;width:100%}}

.join-panel>#practice,.join-panel>#create{width:100%}.join-panel .solo-note{margin:10px 0 17px;text-align:center;font-size:10px;color:var(--muted)}.solo-tools{margin:20px 0 0;padding:17px 0;border-top:1px solid var(--border)}.solo-tools strong{font:24px var(--serif);color:var(--orange)}.solo-tools p{margin:10px 0 15px}.solo-tools button{display:block;width:100%;margin-top:8px}

/* Game-first layout. Every gameplay control is anchored to the viewport. */
.shell{max-width:none;padding:0 24px}.header{height:78px;margin-bottom:18px}.brand{font-size:25px}.brand small{font-size:8px}.edition{display:none}.layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.sidebar{display:block}.sidebar .panel{padding:18px}.hud{padding:14px 0}.hud-item small{font-size:9px}.hud-item strong{font-size:23px}.farm-frame{overflow:visible}.game-stage{position:relative;height:clamp(580px,76vh,1000px);overflow:hidden;background:#414735;isolation:isolate}#farm{width:100%;height:100%;aspect-ratio:auto;display:block;cursor:crosshair}#farm.dragging{cursor:grabbing}.farm-top{padding:11px 16px}.wave-strip{border-radius:0 0 8px 8px}.control-note{margin:10px 0 18px;justify-content:center;font-size:11px}.scene-caption,.playing .scene-caption{top:88px;bottom:auto;max-width:55%;font-size:8px;padding:7px 10px;white-space:normal;text-align:center;z-index:2;line-height:1.5;opacity:.9}
.game-toolbar{position:absolute;top:14px;right:14px;display:flex;gap:7px;align-items:center;z-index:5}.hud-button,.game-toolbar .quiet{border:1px solid #79647a;background:#282330eF;border-radius:6px;padding:10px 11px;font:11px var(--sans);color:#ecdecf;box-shadow:0 2px 8px #0003;white-space:nowrap}.hud-button:hover,.hud-button[aria-expanded=true],.hud-button[aria-pressed=true]{background:#564052;border-color:var(--orange)}.hud-button span{font:9px var(--mono);color:var(--muted)}#charm-count{background:#6a4b62;color:#f3d7bc;padding:2px 5px;border-radius:4px;margin-left:3px}#camera-mode{font:8px var(--mono);color:#e1d2b3;text-shadow:1px 1px #211726}#pan-mode{display:none}.game-toolbar #sound span,.game-toolbar #fullscreen span{display:none}.game-toolbar #sound,.game-toolbar #fullscreen{font-size:15px;line-height:15px;padding:8px 10px}
.game-stage .mission{position:absolute;top:14px;left:14px;margin:0;padding:12px 14px;width:180px;background:#282330ee;border:1px solid #776173;border-radius:8px;z-index:4;box-shadow:0 2px 8px #0003}.mission>.eyebrow,.mission h3,.mission>p{display:none}.mission .health-line{font-size:10px}.mission .spirit-track{margin-top:7px}.mission #reopen-vote{margin-top:9px;font-size:10px;padding:7px;width:100%}
.game-stage .solo-tools{position:absolute;top:62px;right:14px;z-index:4;margin:0;padding:0;border:0;display:flex;gap:8px;align-items:center}.solo-tools>strong,.solo-tools>p{display:none}.solo-tools button{margin:0;width:auto;background:#282330ed;border:1px solid #6c5668;border-radius:6px;padding:8px 10px;font-size:10px}.solo-tools #restart-solo{color:#cbb2c5}
.plant-hud{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);width:min(590px,calc(100% - 32px));padding:11px 12px;background:#282330f2;border:1px solid #896d7e;border-radius:12px;box-shadow:0 6px 30px #160e2470;z-index:5;backdrop-filter:blur(8px)}.plant-hud .build-heading{margin:0 0 9px;display:block}.plant-hud .build-heading h2{font:17px var(--serif);margin:0 0 3px;color:#f0d7b8}.plant-hud .build-heading p{font-size:10px;line-height:1.4;color:#bfafc4}.plant-hud .build-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.plant-hud .build-card{padding:8px 5px 7px;text-align:center;min-height:0;background:#3a2e3e;border-color:#69506c}.plant-hud .build-card:disabled{opacity:.58}.plant-hud .build-card canvas{position:static;width:46px;height:40px;margin:0 auto 4px}.plant-hud .build-card strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plant-hud .build-card p,.plant-hud .build-arrow{display:none}.plant-hud .build-card .cost{font-size:10px;display:block;margin-top:4px}.plant-hud .build-card .key{top:6px;left:6px;font-size:8px}.plant-hud .plot-actions{padding:9px 0 0;margin-top:9px;border:0;border-top:1px solid #655169;border-radius:0;background:none;gap:6px;font-size:10px}.plant-hud .plot-actions>span{width:auto;flex:1}.plant-hud .plot-actions .button{font-size:9px;padding:7px}
.game-stage .charms-panel{position:absolute;top:60px;right:14px;z-index:8;width:min(340px,calc(100% - 28px));max-height:calc(100% - 240px);overflow:auto;margin:0;padding:23px;background:#292230f7;box-shadow:0 12px 35px #0008;border-color:#ab849b}.charms-panel h2{margin-top:18px}.menu-close{position:absolute;right:8px;top:7px;border:0;background:none;color:#d8bdd4;font-size:25px;line-height:1;cursor:pointer}.owned-charm small{font-size:11px;line-height:1.6;max-width:220px;color:#d1bccf}.owned-charm strong{font-size:13px}.charm-teaser small{font-size:10px;line-height:1.5}.charms-panel .panel-eyebrow{padding-right:15px}
.game-stage dialog[open]{position:absolute;inset:16px;z-index:12;margin:auto;width:min(850px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;padding:25px}.game-stage:has(dialog[open]):after{content:'';position:absolute;inset:0;background:#181221ce;z-index:11}.game-stage #result-dialog{width:min(520px,calc(100% - 32px))}.game-stage .touch-controls,.playing .game-stage .touch-controls{position:absolute;left:12px;bottom:218px;z-index:5;gap:8px;align-items:end;border:0;padding:0;background:none;margin:0;backdrop-filter:none}.game-stage .touch-controls>.button{padding:10px;font-size:10px;background:#382c43ed}.connection{z-index:20}.play-column:is(:fullscreen,.fullscreen-mode){padding:0;background:#1e1927;display:flex;flex-direction:column}.play-column:is(:fullscreen,.fullscreen-mode) .hud{flex-shrink:0;border-radius:0}.play-column:is(:fullscreen,.fullscreen-mode) .farm-frame{display:flex;flex-direction:column;flex:1;min-height:0;border-radius:0}.play-column:is(:fullscreen,.fullscreen-mode) .game-stage{flex:1;min-height:0;height:auto}.play-column:is(:fullscreen,.fullscreen-mode) .control-note{display:none}.play-column:is(:fullscreen,.fullscreen-mode) #farm{max-width:none;max-height:none}
@media(max-width:1200px){.shell{padding:0 14px}.layout{grid-template-columns:minmax(0,1fr) 240px;gap:12px}.game-stage{height:690px}#camera-mode{display:none}.game-stage .mission{width:145px;padding:10px}.hud-item{padding:0 12px}.hud-item small{font-size:8px}.scene-caption,.playing .scene-caption{top:110px;max-width:70%}.game-toolbar{gap:5px}.hud-button{padding:8px}.game-stage .solo-tools{top:58px}.game-stage .charms-panel{top:99px}}
@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:block}.sidebar #welcome{max-width:500px;margin:0 auto 24px}.sidebar #room-panel{margin:0 auto 20px;max-width:650px}.game-stage{height:670px}.header{height:68px;margin-bottom:12px}.sidebar .room-code-line{margin:14px 0}.sidebar .roster-player{padding:9px 0}#pan-mode{display:block}.scene-caption,.playing .scene-caption{top:98px;max-width:65%}}
@media(max-width:560px){.shell{padding:0 7px}.header,.playing .header{height:57px;margin-bottom:8px}.brand{font-size:21px}.brand-icon{width:28px;height:29px;font-size:23px}.brand small{display:none}.header nav{gap:0}.game-stage{height:550px;min-height:0}.hud{padding:10px 0}.hud-item strong{font-size:19px}.hud-item small{font-size:7px}.farm-top{padding:9px;font-size:7px}.farm-top>span:last-child{font-size:7px}.game-toolbar{top:8px;right:8px;gap:4px}.hud-button,.game-toolbar .quiet{font-size:10px;padding:7px}.hud-button span,#camera-mode,.game-toolbar #sound{display:none}.game-toolbar #fullscreen{font-size:13px;padding:6px}.game-stage .mission{left:8px;top:8px;width:105px;padding:8px}.mission .health-line{font-size:8px}.game-stage .solo-tools{right:8px;top:44px;gap:5px}.solo-tools button{font-size:8px;padding:6px}.scene-caption,.playing .scene-caption{top:83px;font-size:7px;max-width:90%;padding:5px 9px}.plant-hud{width:calc(100% - 16px);padding:8px;bottom:8px;border-radius:8px}.plant-hud .build-heading{margin-bottom:6px}.plant-hud .build-heading h2{font-size:14px;margin-bottom:2px}.plant-hud .build-heading p{font-size:8px;line-height:1.3}.plant-hud .build-grid{gap:4px;grid-template-columns:repeat(4,minmax(0,1fr))}.plant-hud .build-card{padding:6px 3px;min-height:0}.plant-hud .build-card canvas{width:37px;height:32px}.plant-hud .build-card strong{font-size:8px}.plant-hud .build-card .cost{font-size:9px}.plant-hud .build-card .key{font-size:6px;top:4px;left:4px}.plant-hud .plot-actions{flex-wrap:wrap;font-size:8px;margin-top:6px;padding-top:6px}.plant-hud .plot-actions>span{flex-basis:100%}.plant-hud .plot-actions .button{padding:5px 8px;font-size:9px}.game-stage .touch-controls,.playing .game-stage .touch-controls{bottom:210px;left:9px}.dpad{grid-template-columns:repeat(3,29px);gap:3px}.dpad button{height:28px;font-size:15px;background:#332b3edf}.game-stage .touch-controls>.button{font-size:8px;padding:8px}.game-stage .charms-panel{top:78px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 240px);padding:18px}.charms-panel h2{font-size:22px}.game-stage dialog[open]{inset:8px;padding:18px;max-height:calc(100% - 16px);width:calc(100% - 16px)}.game-stage dialog h2{font-size:24px}#vote-options{gap:6px;margin-top:12px}.vote-card{padding:10px 10px 10px 45px}.vote-card>span{left:10px}.control-note{margin:8px 0 12px}.game-stage .mission #reopen-vote{font-size:7px;padding:5px}.sidebar #room-panel{max-width:none}.hud .shared-tag{display:none}}

.game-stage #toast{position:absolute;bottom:195px;max-width:calc(100% - 32px);z-index:15;pointer-events:none}
@media(max-width:560px){.game-stage #toast{bottom:150px;font-size:11px;padding:10px}}

#gdx-host{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}#gdx-host canvas{width:100%!important;height:100%!important;display:block;image-rendering:pixelated}#gdx-host>div{width:100%!important;height:100%!important}.game-stage #farm{position:relative;z-index:1;background:transparent}

.engine-loading{position:absolute;inset:0;display:grid;place-items:center;background:#302b35;z-index:10;color:var(--orange);font-family:var(--serif);font-size:22px}

.farm-health-hud{position:absolute;top:58px;left:16px;background:#211d2aeb;border:1px solid #a58a61;border-radius:8px;padding:8px 12px;pointer-events:none;max-width:55%;z-index:4;color:#eedbb1}.farm-health-hud small{display:block;font-size:10px;margin-top:4px}.farm-health-hud strong{font-size:12px}.vote-card{border:2px solid var(--charm-color)!important;border-radius:12px!important;background:linear-gradient(145deg,#332a41,#201d2a)!important}.vote-card>span{display:block;border:1px solid var(--charm-color);margin:8px auto;padding:12px;border-radius:50%;width:64px}.owned-charm{border:1px solid #a58a61;border-radius:8px;background:#302638}.game-toolbar{flex-wrap:wrap}@media(max-width:600px){.farm-health-hud{top:96px;left:8px;padding:5px;max-width:65%}.farm-health-hud small{font-size:8px}}

@media(min-width:601px){.farm-health-hud{top:110px}}

body.game-expanded{overflow:hidden}
.play-column.fullscreen-mode{position:fixed;inset:0;z-index:1000;width:100vw;height:100dvh;margin:0}
.play-column:is(:fullscreen,.fullscreen-mode) .farm-frame{overflow:hidden}
.game-toolbar #fullscreen{display:inline-flex;align-items:center;gap:5px;border:1px solid #896d7e;border-radius:7px;background:#332b3edf;padding:8px 10px;color:#f0d7b8;font-size:12px;white-space:nowrap}
.game-toolbar #fullscreen span{display:inline;margin:0}
@media(max-width:560px){.game-toolbar #fullscreen{font-size:9px;padding:6px}.game-toolbar{max-width:calc(100% - 125px);justify-content:flex-end}.game-stage .solo-tools{top:77px}.scene-caption,.playing .scene-caption{top:115px}.farm-health-hud{top:145px}}

.tarot-card-controls{display:flex;align-items:center;gap:6px;margin-top:8px}.tarot-card-controls b{font-size:10px;flex:1}.tarot-card-controls button{padding:4px 10px}.tarot-inactive{opacity:.7}.tarot-inventory-card{align-items:start}.tarot-inventory-card>div{min-width:0;flex:1}

/* Expanded loadout stays compact so the map remains usable. */
.build-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.loadout-summary{display:none}
.score-formula{position:absolute;top:62px;left:16px;z-index:3;max-width:calc(100% - 32px);padding:7px 12px;border-radius:12px;background:#282432e8;color:#f3d9a8;font-size:12px;pointer-events:none}
.loadout-dialog{width:min(580px,94%);max-height:82%;overflow:auto;padding:28px;background:#302936;color:#eedcc1;border:1px solid #96795e;border-radius:20px;z-index:20}
.loadout-dialog p{font-size:13px;line-height:1.6}.loadout-dialog h3{margin-top:18px}
#loadout-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}
.loadout-choice{display:flex;align-items:center;gap:8px;font-size:13px;padding:9px;background:#ffffff08;border-radius:8px}
.loadout-choice input{width:18px;height:18px;accent-color:#bacb95}
#wildcard-choice{max-width:55%;padding:10px;background:#453a49;color:#eedcc1;border-radius:8px}
@media(max-width:700px){.score-formula{top:55px;font-size:10px;max-width:70%}.game-toolbar{flex-wrap:wrap}.build-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}.loadout-dialog{padding:20px}}

.farm-health-hud .score-formula{position:static;max-width:300px;padding:6px 0 0;background:none;border-radius:0;font-size:10px;line-height:1.4}
.plant-hud .build-grid{grid-template-columns:repeat(auto-fit,minmax(65px,1fr))!important}
@media(max-width:560px){.farm-health-hud .score-formula{font-size:9px;max-width:220px}.plant-hud .build-grid{grid-template-columns:repeat(auto-fit,minmax(52px,1fr))!important}}

.loadout-choice{align-items:flex-start;letter-spacing:0}.loadout-choice input{flex:0 0 18px;margin-top:2px}.loadout-choice small{display:block;font:11px/1.4 var(--sans);color:#beadc4;margin-top:4px}.loadout-choice strong{font:600 12px var(--sans)}

/* Endless run preparation and nonblocking live tarot voting. */
.prep-lobby{position:absolute;inset:0;z-index:20;overflow:auto;background:linear-gradient(145deg,#d9d9d9,#777 65%,#393939);color:#202020;padding:24px;overscroll-behavior:contain}.prep-content{max-width:1000px;margin:auto}.prep-content h2{font-size:32px;margin:8px 0}.prep-content p{font-size:14px;line-height:1.5}.prep-actions,#item-shop{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.prep-lobby .hud-button{background:#f2f2f2;color:#222;border-color:#666;padding:10px}.prep-lobby .hud-button:disabled{opacity:.45}.cat-card{background:#262626;color:#fafafa;border:1px solid #666;border-radius:14px;padding:14px}.cat-card h3{margin:5px 0}.cat-card p{min-height:42px}.cat-card small{display:block;margin-bottom:10px}.cat-card button{margin-right:5px;margin-top:5px}.cat-icon{font-size:28px}#cat-shop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.preparing #touch-controls,.preparing #plant-hud,.preparing #mission,.preparing #solo-tools{visibility:hidden}.preparing #charm-menu{z-index:24}.preparing #loadout-dialog{z-index:25}
#vote-panel{position:absolute;right:12px;top:95px;z-index:8;width:min(540px,calc(100% - 24px));padding:10px;background:#232426ec;border:1px solid #ad9c75;border-radius:12px;color:#f7eddb}#vote-panel .vote-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}#vote-panel #vote-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}#vote-panel .vote-card{padding:9px 7px;min-height:0;border-radius:8px}#vote-panel .vote-card>span{font-size:22px}#vote-panel .vote-card h3{font-size:12px;margin:5px 0}#vote-panel .vote-card p{font-size:11px;line-height:1.35;margin:5px 0}#vote-panel .vote-card small{font-size:8px}#vote-panel .vote-card b,#vote-timer{font-size:10px}#vote-panel.minimized #vote-options{display:none}#vote-panel.hidden,.prep-lobby.hidden{display:none}
@media(max-width:600px){.prep-lobby{padding:14px}.prep-content h2{font-size:24px}#cat-shop{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-card{padding:10px}.cat-card h3{font-size:15px}.cat-card p{font-size:12px}#vote-panel{top:85px;right:6px;width:calc(100% - 12px);padding:6px}#vote-panel .vote-card p{font-size:10px}#vote-panel .vote-card>span{display:none}}
.night-progress{position:absolute;top:55px;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:9px;width:min(400px,65%);padding:8px 12px;border:2px solid #685034;border-radius:20px;background:#26251ded;color:#f3ddaa;box-shadow:0 3px 8px #0006;font-size:12px}.night-progress.hidden{display:none}.night-progress-track{position:relative;flex:1;height:13px;border:1px solid #83704b;border-radius:8px;background:#171d18}.night-progress-track i{display:block;height:100%;background:linear-gradient(90deg,#698346,#b5c767);border-radius:8px;transition:width .12s linear}#night-progress-marker{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:21px;transition:left .12s linear}.night-progress-flag{position:absolute;right:-6px;top:-9px;font-size:23px;color:#f3cd65}.night-progress strong{min-width:28px;text-align:right}.night-progress-moon{font-size:20px}@media(max-width:600px){.night-progress{top:49px;width:72%;padding:6px 10px;gap:7px}}
#vote-panel .vote-card>span{position:static;width:auto;margin:0;padding:0;border:0}#vote-panel .vote-card{text-align:left}#vote-panel .vote-card p{max-height:64px;overflow:auto}#vote-panel .vote-card small{letter-spacing:.3px}#vote-panel .vote-card h3{line-height:1.15}#vote-panel .vote-card b{display:block;margin-top:6px}@media(max-width:600px){.night-progress{top:83px}#vote-panel{top:122px}#vote-panel .vote-card p{font-size:9px;line-height:1.2;max-height:54px}#vote-panel .vote-card h3{font-size:11px}#vote-panel .vote-card small{font-size:7px}.prep-lobby h3{color:#202020}.prep-lobby .cat-card h3{color:#fafafa}}
@media(max-width:600px){#vote-panel .vote-card{padding:6px 5px}#vote-panel .vote-card small{display:none}#vote-panel .vote-card p{max-height:38px;font-size:9px}#vote-panel .vote-card h3{font-size:10px}#vote-panel .vote-card b{font-size:9px;margin-top:3px}.voting .game-stage .touch-controls,.playing.voting .game-stage .touch-controls{bottom:160px}}
