:root{--ink:#173a40;--dark:#112d34;--forest:#174850;--cream:#f7f0dc;--muted:#d7d0b9;--mint:#b9e7bc;--yellow:#f5d578;--pink:#efa7a5;--white:#fffdf4;--shadow:#091d23;--pixel:2px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:ui-monospace,'SFMono-Regular',Menlo,Monaco,Consolas,monospace;color:var(--ink)}body{background:#f2eddd;background-image:radial-gradient(#d8d7bb 0.8px,transparent 0.8px);background-size:14px 14px}.hidden{display:none!important}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.48;cursor:default}.shell{max-width:1380px;margin:auto;padding:20px 30px 14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.brand{font-weight:1000;font-size:18px;letter-spacing:1px}.brand-star{color:#ef8f65;font-size:23px}.brand-dot{color:#c0bb9f}.edition{color:#7b918d;font-size:10px;letter-spacing:2px}.topright{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1px;font-weight:900}.status-dot{background:#7ab889;width:9px;height:9px;box-shadow:0 0 0 3px #d3e6d3;border-radius:50%}.icon-btn{background:#f9f6e9;border:2px solid #d9d7c3;border-radius:8px;padding:6px 12px;color:#426365}.layout{display:grid;grid-template-columns:minmax(0,840px) minmax(255px,1fr);gap:25px;align-items:start}.console{background:#e4e4d7;border:3px solid #cfd3c9;box-shadow:8px 9px 0 #d5d8cd,0 20px 42px #24372720;border-radius:27px 27px 67px 27px;padding:19px 22px 16px}.game-bezel{background:#193b43;border:6px solid #244c55;border-radius:14px 14px 23px 14px;padding:10px 11px 8px;box-shadow:inset 0 0 0 3px #12313a,0 5px 0 #a2aaa3;color:#d6e7d7}.screen-head,.screen-foot{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;padding:0 5px 8px;font-weight:900;color:#99b5b3}.screen-foot{padding:8px 5px 0;font-size:9px}.screen-frame{position:relative;border:5px solid #0c262c;background:#a3cc95;overflow:hidden;aspect-ratio:480/304}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.screen-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 65px #2246382b}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#22413cc4;color:#fdf9e7;padding:10px}.little-stars{color:#f5dc83;font-size:20px;letter-spacing:16px;margin-bottom:10px}.title-logo{display:flex;flex-direction:column;gap:7px;text-shadow:3px 3px 0 #1b4545,5px 5px 0 #11302d}.title-logo span{font-size:clamp(10px,2.7vw,15px);letter-spacing:4px;font-weight:900}.title-logo strong{font-size:clamp(25px,5vw,50px);line-height:1;letter-spacing:1px;color:#f9e8a9;white-space:nowrap;font-weight:1000}.title-sub{font-size:clamp(8px,1.45vw,11px);font-weight:900;letter-spacing:2px;margin:12px 0 8px}.title-pets{font-size:24px;margin:1px 0 11px}.primary-button,.secondary-button{padding:13px 17px;border:3px solid #284c4a;font-size:12px;font-weight:1000;letter-spacing:.6px;box-shadow:4px 4px 0 #102b30;border-radius:3px}.primary-button{background:#f3d678;color:#183739}.primary-button:hover{background:#ffe79a}.secondary-button{background:#b4e1c0;color:#183e41}.big-button{font-size:clamp(10px,2vw,14px);padding:14px 20px;animation:subtle 2.1s infinite}.start-overlay p{font-size:9px;letter-spacing:1px;opacity:.9;margin:16px 0 0}@keyframes subtle{50%{transform:translateY(-2px)}}.hud{position:absolute;top:9px;left:10px;right:10px;display:flex;justify-content:space-between;pointer-events:none;gap:5px}.hud-right{display:flex;gap:5px}.hud-pill{border:2px solid #204941;background:#fcf4d9ed;padding:5px 8px;color:#244440;font-size:10px;font-weight:1000;display:flex;align-items:center;gap:7px;box-shadow:2px 2px 0 #204941}.level-tag{background:#f9cf7b;padding:2px 3px}.coin{color:#76591e}.pet-count{color:#ac665a}.toast{position:absolute;top:45px;left:50%;transform:translateX(-50%);background:#fdf8dd;border:3px solid #284946;color:#254844;padding:7px 13px;font-size:11px;font-weight:900;max-width:84%;text-align:center;box-shadow:3px 3px 0 #183c35;z-index:3}.interact-prompt{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:#fff2c5;color:#21473e;border:3px solid #295247;font-weight:900;font-size:11px;padding:6px 12px;white-space:nowrap}.speech-cloud{position:absolute;top:51px;right:15px;color:#173e39;background:#fff8e0;border:2px solid #294e47;padding:8px 10px;max-width:190px;font-size:11px;font-weight:800;box-shadow:3px 3px 0 #193c38;z-index:3}.dialog{position:absolute;left:13px;right:13px;bottom:13px;background:#faf3d7;color:#183b38;border:4px double #24534a;padding:11px 12px;z-index:5;box-shadow:4px 4px 0 #193732}.dialog-text{font-size:12px;font-weight:800;line-height:1.6;white-space:pre-line}.dialog-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:9px}.dialog button{background:#e7c86f;border:2px solid #27514b;color:#183d3a;padding:6px 10px;font-size:11px;font-weight:900}.controller{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 12px 2px;min-height:130px}.dpad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,34px);align-items:stretch;justify-items:stretch;filter:drop-shadow(2px 4px 0 #a4aaa4)}.dpad button,.d-mid{background:#314b52;color:#e9e8d9;border:0;font-size:15px;font-weight:900;user-select:none;-webkit-user-select:none}.dpad button:active,.dpad button.pressed{background:#54717a}.d-up{grid-column:2;grid-row:1;border-radius:5px 5px 0 0}.d-left{grid-column:1;grid-row:2;border-radius:5px 0 0 5px}.d-right{grid-column:3;grid-row:2;border-radius:0 5px 5px 0}.d-down{grid-column:2;grid-row:3;border-radius:0 0 5px 5px}.d-mid{grid-column:2;grid-row:2}.controller-center{align-self:end;text-align:center;font-size:9px;color:#6e8385;font-weight:900;letter-spacing:1px;display:flex;flex-direction:column;gap:3px}.controller-center div{display:flex;gap:11px;margin:0 0 4px}.tiny-button{height:14px;width:35px;background:#85989d;transform:rotate(-25deg);border:0;border-radius:8px;box-shadow:1px 3px 0 #bdc9bd;font-size:1px;color:transparent}.action-buttons{display:flex;align-items:center;gap:11px}.action-buttons>div{display:flex;flex-direction:column;align-items:center;gap:8px;color:#62777c;font-size:9px;font-weight:1000}.action-buttons>div:first-child{transform:translateY(14px)}.circle-button{border-radius:50%;width:58px;height:58px;box-shadow:3px 5px 0 #a7a8a2,inset -4px -5px 0 #00000013;font-size:21px;font-weight:1000;color:#fff7e7;border:3px solid #e3e8da}.a-btn{background:#d97977}.b-btn{background:#cfac68}.circle-button:active{transform:translateY(3px);box-shadow:1px 2px 0 #a7a8a2}.console-tips{text-align:center;margin-top:15px;font-size:9px;letter-spacing:.2px;color:#8a9b98}.console-tips b{color:#557477}.sidebar{display:flex;flex-direction:column;gap:16px}.side-card{background:#fffdf2;border:2px solid #e4dfce;box-shadow:4px 5px 0 #e0dfd1;padding:21px;border-radius:5px}.kicker{font-size:10px;color:#b48b52;letter-spacing:2px;font-weight:1000}.intro-card h2{line-height:1.2;font-size:clamp(20px,2.5vw,31px);margin:14px 0;letter-spacing:-1px}.intro-card h2 i{font-style:normal;color:#d0826b}.side-card p{line-height:1.75;font-size:12px;color:#6b827c}.mini-rule{height:1px;background:#e8e4d2;margin:19px 0}.stats-list{display:flex;flex-direction:column;gap:13px}.stats-list>div{display:grid;grid-template-columns:31px 1fr;grid-template-rows:auto auto;column-gap:9px}.stats-list>div>span{grid-row:span 2;background:#eaf2d7;width:29px;height:29px;display:grid;place-items:center;border-radius:5px}.stats-list strong{font-size:11px}.stats-list small{font-size:10px;color:#8e9d94;margin-top:2px}.group-card h3{margin:13px 0;font-size:17px}.room-form{display:flex;gap:7px;margin:13px 0}.room-form input{width:0;flex:1;min-width:0;border:2px solid #dcd9c7;padding:10px 8px;background:#f8f7e9;font-weight:900;letter-spacing:2px;outline-color:#84b69b}.room-form .secondary-button{padding:7px 9px;font-size:10px;box-shadow:2px 3px 0 #d4d6c9}.room-info{font-size:10px;line-height:1.5;color:#85958e}.quick-chat{padding-top:12px}.chat-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chat-chips button{font-size:10px;background:#e9f1db;border:1px solid #c2d3b7;color:#426b5d;padding:7px;border-radius:2px}#legendList{display:flex;flex-direction:column;gap:11px;margin-top:16px}#legendList>div{display:flex;gap:10px;align-items:center;font-size:11px;font-weight:800}footer{text-align:center;font-size:9px;color:#b6b7a4;letter-spacing:1.4px;padding:28px 0 12px}footer span{color:#d79970}.modal-backdrop{position:fixed;inset:0;background:#0c2629cf;z-index:20;display:flex;align-items:center;justify-content:center;padding:15px;overscroll-behavior:contain}.modal{width:min(650px,100%);max-height:min(92vh,850px);overflow:auto;background:#fbf5e1;border:5px solid #23433d;box-shadow:10px 11px 0 #081d22;padding:24px;color:#284943;position:relative}.modal::after{content:'';position:absolute;inset:7px;border:2px solid #e7dcb8;pointer-events:none}.modal>*,.modal .modal-inner{position:relative;z-index:1}.modal-head{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:18px}.modal h2{margin:7px 0 2px;font-size:clamp(19px,3.7vw,30px);letter-spacing:-.5px}.modal h3{font-size:15px;margin:12px 0}.modal .eyebrow{font-size:10px;color:#b8834d;letter-spacing:2px;font-weight:1000}.modal .close{border:2px solid #34564e;background:#fff8e8;font-weight:1000;padding:6px 10px}.modal p{font-size:12px;line-height:1.6;color:#6b8075}.avatar-layout{display:grid;grid-template-columns:200px 1fr;gap:23px}.avatar-preview{border:4px solid #355b4d;background:#a9d4a9;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;gap:7px}.avatar-preview canvas{width:112px;height:168px;image-rendering:pixelated}.avatar-preview small{font-size:10px;color:#35634e;font-weight:900}.input-label{display:block;font-weight:1000;font-size:11px;margin-bottom:6px;letter-spacing:1px}.name-input{width:100%;padding:10px;border:2px solid #b4c5ab;background:#fffdf3;color:#26423e;outline-color:#629e87;font-size:15px;margin-bottom:15px}.choice-label{font-size:11px;font-weight:1000;margin:9px 0 6px}.choices{display:flex;gap:6px;flex-wrap:wrap}.choice{background:#fff9e8;border:2px solid #c8c7ae;padding:7px 10px;min-width:34px;font-size:11px;font-weight:900;color:#47665c}.choice.selected{background:#d0ecc6;border-color:#265847;box-shadow:2px 2px 0 #558a74}.swatch{width:33px;height:31px;padding:3px}.swatch span{display:block;width:100%;height:100%}.modal-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid #e3dbc2;margin-top:20px;padding-top:16px}.modal-bottom .primary-button{margin-left:auto}.mini-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.mini-option{min-height:80px;background:#fffcec;border:3px solid #a9bca6;box-shadow:3px 3px 0 #d6d7bb;font-size:21px;font-weight:1000;color:#244b41;display:flex;align-items:center;justify-content:center;gap:8px}.mini-option:hover{background:#edfad5}.mini-option.wrong{background:#f4c9c3}.mini-option.correct{background:#c8ebc5}.minigame-instructions{background:#e8efdb;border-left:5px solid #83aa8b;padding:11px;font-size:12px;line-height:1.5}.progress-track{height:12px;border:2px solid #346450;background:#fdfbf0;margin:12px 0}.progress-fill{height:100%;background:#eac86e;transition:width .2s}.game-feedback{min-height:30px;color:#608168;font-weight:1000;font-size:13px;margin-top:10px}.letter-slot{width:39px;height:43px;background:#e4edce;border-bottom:4px solid #326251;display:grid;place-items:center;font-size:21px;font-weight:1000}.letter-slots{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin:24px 0}.letter-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.letter-buttons button{font-size:19px;padding:10px 13px;background:#fff8df;border:3px solid #507162;min-width:44px;color:#234639;font-weight:1000}.letter-buttons button:disabled{opacity:.32}.memory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.memory-cell{background:#a7cba9;border:3px solid #315e53;aspect-ratio:1.35;display:grid;place-items:center;font-size:clamp(20px,4.5vw,36px);color:#fff8df;box-shadow:2px 3px 0 #a3b69c}.memory-cell.revealed{background:#fff8e7}.memory-cell.matched{background:#daf1b9;border-color:#79a06d}.pattern-sequence{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:27px 0}.pattern-gem{font-size:clamp(26px,6vw,42px);display:grid;place-items:center;width:53px;height:61px;background:#e9eddb;border:2px solid #c4d3bb}.rhythm-stage{text-align:center;background:#20434b;color:#f9e7a6;padding:15px;margin:13px 0;border:4px solid #426b64}.rhythm-target{font-size:48px;margin:12px auto;display:grid;place-items:center;width:110px;height:110px;border-radius:50%;border:7px solid #cbab77;background:#315d5c;transition:transform .11s}.rhythm-target.beat{transform:scale(1.15);background:#68a99a}.rhythm-tap{font-size:19px;min-height:65px;min-width:160px}.tiny-note{font-size:10px!important;color:#7d968b}.game-result{text-align:center}.game-result .big-star{font-size:65px;line-height:1;margin:12px 0}.reward{font-size:19px!important;font-weight:1000;color:#9c7b35!important}.map-mini{display:block;margin:10px auto;max-width:100%;image-rendering:pixelated;background:#9bcc99;border:3px solid #31564f}.notice{background:#f2ead0;border:2px dashed #b5aa82;padding:11px;margin:12px 0;font-size:12px;line-height:1.55}@media(max-width:1000px){.shell{padding:13px 17px}.layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:grid;grid-template-columns:1fr 1fr}.intro-card{grid-row:span 2}.console{max-width:830px;margin:auto;width:100%}}@media(max-width:580px){.shell{padding:8px 6px 2px}.topbar{padding:2px 6px;margin-bottom:9px}.brand{font-size:14px}.brand-star{font-size:17px}.edition{font-size:8px;letter-spacing:0}.topright{font-size:9px;gap:7px}.console{padding:8px 8px 12px;border-radius:17px 17px 38px 17px;box-shadow:4px 5px 0 #d5d8cd}.game-bezel{padding:5px;border-width:4px}.screen-head,.screen-foot{font-size:7px;letter-spacing:1px;padding-bottom:5px}.screen-foot{padding-top:5px}.screen-frame{border-width:3px}.controller{min-height:113px;padding:5px 5px 0}.dpad{grid-template-columns:repeat(3,33px);grid-template-rows:repeat(3,30px)}.circle-button{width:48px;height:48px}.action-buttons{gap:5px}.action-buttons>div{font-size:7px}.controller-center{font-size:7px}.tiny-button{width:26px}.console-tips{font-size:7px;margin-top:12px}.sidebar{grid-template-columns:1fr;gap:10px}.intro-card{grid-row:auto}.side-card{padding:15px}.intro-card h2{font-size:22px}.stats-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.stats-list>div{display:block;text-align:center}.stats-list>div>span{margin:auto auto 6px}.stats-list strong{display:block;font-size:9px}.stats-list small{font-size:8px}.modal{padding:15px;border-width:4px}.modal h2{font-size:20px}.avatar-layout{grid-template-columns:118px 1fr;gap:12px}.avatar-preview{min-height:196px}.avatar-preview canvas{width:75px;height:125px}.choice{padding:6px 7px}.swatch{width:29px}.title-logo strong{font-size:clamp(22px,7vw,36px)}.title-sub{font-size:8px}.title-pets{font-size:19px;margin:3px 0 8px}.big-button{padding:11px;font-size:9px}.little-stars{margin-bottom:8px}.hud-pill{font-size:8px;padding:3px 5px}.hud{top:4px;left:4px;right:4px}.toast{top:30px;font-size:9px}.interact-prompt{bottom:7px;font-size:8px;padding:4px 6px}.dialog{bottom:5px;left:5px;right:5px;padding:6px}.dialog-text{font-size:9px}.dialog button{font-size:9px;padding:4px 7px}.mini-option{min-height:65px;font-size:19px}.room-form .secondary-button{font-size:9px}footer{font-size:7px;line-height:1.8}}
/* Adventure-specific interactions */
.quest-indicator{display:inline-block;border:2px solid #365b4e;background:#f2dca5;color:#29463c;font-size:11px;font-weight:1000;letter-spacing:1px;padding:7px 12px;margin-bottom:12px}
.math-target{text-align:center;font-size:clamp(32px,7vw,51px);font-weight:1000;color:#31574e;letter-spacing:3px;padding:13px 0 18px;text-shadow:2px 2px 0 #e0cda1}.math-target span{color:#c67a6b}
.balloon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:8px 0 19px}.balloon{border:3px solid #426459;border-radius:55% 55% 48% 48%;background:#edb4a3;box-shadow:inset -7px -8px 0 #00000015,3px 4px 0 #9c9e8b;min-height:92px;font-weight:1000;font-size:27px;color:#28514a;position:relative}.balloon:after{content:'';position:absolute;left:50%;top:100%;width:1px;height:18px;background:#8e9e9a}.balloon span{display:block;font-size:15px;color:#fff8d7}.balloon-1{background:#efd39c}.balloon-2{background:#acdbc1}.balloon-3{background:#a9c6e2}.balloon.wrong{background:#ed958b;animation:shake .2s 2}
@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.word-emoji{text-align:center;font-size:64px;margin:8px 0 2px}.nature-question{text-align:center;font-size:18px!important;line-height:1.6;margin:7px 0 20px!important}.rhythm-pads{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:20px 0}.rhythm-pads button{height:75px;background:var(--pad);border:4px solid #426457;font-size:29px;box-shadow:3px 4px 0 #b2bda6;transition:transform .08s}.rhythm-pads button.active,.rhythm-pads button:active{transform:scale(1.07);filter:brightness(1.18)}.pet-row{padding:13px 6px;display:flex;gap:12px;align-items:center;border-bottom:2px dotted #d9d2ba;flex-wrap:wrap}.pet-row strong{flex:1;font-size:13px}.pet-row .choice{font-size:10px}.modal-bottom small{max-width:62%;color:#8b9282;font-size:10px;line-height:1.5}.avatar-settings{max-height:400px;overflow-y:auto;padding-right:5px}.avatar-settings .choice-label{margin-top:13px}.avatar-settings .choices{margin-bottom:5px}.avatar-preview{position:sticky;top:0;align-self:start}.modal .game-feedback{line-height:1.6}.side-card .room-info{min-height:24px}.screen-frame{touch-action:manipulation}.controller button{-webkit-tap-highlight-color:transparent}.start-overlay{backdrop-filter:blur(1.2px)}
@media(max-width:580px){.balloon-grid{gap:5px}.balloon{min-height:66px;font-size:20px}.rhythm-pads{gap:5px}.rhythm-pads button{height:57px;font-size:20px}.avatar-settings{max-height:66vh}.modal-bottom small{max-width:55%}.nature-question{font-size:15px!important}.pet-row{gap:7px}.pet-row .choice{padding:7px}.modal .choice{font-size:10px}}
@media(max-width:580px){.avatar-settings{max-height:none;overflow:visible}.modal-bottom{position:sticky;bottom:-16px;background:#fbf5e1;padding:12px 0 6px;margin-top:12px;border-top:2px solid #e3dbc2;z-index:3;box-shadow:0 -9px 11px #fbf5e1}.modal-bottom .primary-button{font-size:11px;padding:10px 9px}.modal-bottom small{max-width:50%}.modal .avatar-preview{position:sticky;top:6px}.modal{max-height:91dvh}}
.big-button{animation:none}.big-button:hover{transform:translateY(-2px)}

/* LEAFORIA AUTUMN EDITION — warm hand-held color palette */
:root{--ink:#50362b;--dark:#462b29;--forest:#69442c;--cream:#fff1d5;--muted:#e2bb92;--mint:#d0dc97;--yellow:#f6c95c;--pink:#ec9471;--shadow:#442d29}
body{background-color:#f9e6c4;background-image:radial-gradient(#e1bf92 1px,transparent 1px);}
.console{background:#f4d7a7;border-color:#d3a97f;box-shadow:8px 9px 0 #e7c29a,0 15px 40px #7b4f2c2c}
.game-bezel{background:#63483e;border-color:#7f5c49;box-shadow:inset 0 0 0 3px #462f2d;color:#fff0cc}
.screen-frame{border-color:#372b2d;background:#daa76a}
.screen-head,.screen-foot{color:#f1d39c}
.title-logo strong{color:#ffe2a1;text-shadow:4px 4px 0 #813e30,7px 7px 0 #472b29}
.overlay{background:#493524b5}.start-overlay{background:linear-gradient(0deg,#362821c9,#5e382bbb)}
.side-card{background:#fff8e8;border-color:#e6c9a4;box-shadow:4px 5px 0 #e8cba8}.kicker{color:#a85c3a}.intro-card h2 i{color:#a65535}
.primary-button{background:#f3be67;border-color:#704631;color:#573525}.primary-button:hover{background:#ffe09c}.secondary-button{background:#d9dfa3;border-color:#71523b;color:#554031}
.brand{color:#77462f}.brand-star{color:#df7d35}.topright{color:#79543b}
.hud-shop{pointer-events:auto;background:#ffe9b0ed;border:2px solid #6e4633;color:#6e4633;font-size:9px;font-weight:900;padding:4px 7px;box-shadow:2px 2px 0 #6e4633;cursor:pointer}
.touch-game-controls{position:absolute;inset:0;pointer-events:none;z-index:7;display:none;align-items:flex-end;justify-content:space-between;padding:0 12px 10px}
.virtual-joystick{pointer-events:auto;width:110px;height:110px;display:grid;place-items:center;touch-action:none;user-select:none;-webkit-user-select:none}
.joystick-ring{position:relative;width:96px;height:96px;border-radius:50%;background:#362d2880;border:3px solid #fff7d28a;box-shadow:inset 0 0 0 4px #261d1e40;backdrop-filter:blur(2px)}
.joystick-ring:before,.joystick-ring:after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff2c746}.joystick-ring:before{width:55px;height:2px}.joystick-ring:after{height:55px;width:2px}
.joystick-thumb{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;background:radial-gradient(circle at 40% 31%,#f8d99e,#bd7a59);border:3px solid #ffedc8;border-radius:50%;box-shadow:0 3px 0 #613c32,0 4px 10px #1f111166;pointer-events:none}
.touch-buttons{display:flex;align-items:end;gap:8px;pointer-events:auto;padding-bottom:12px}.touch-buttons button{width:47px;height:47px;border-radius:50%;border:3px solid #ffead0;box-shadow:2px 4px 0 #553d38a8;font-size:16px;font-weight:1000;color:white;background:#bd7357;touch-action:manipulation}.touch-buttons button:last-child{width:57px;height:57px;background:#cf8252}
#touchControls{opacity:.92}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin:15px 0}.shop-item{background:#fffaf0;border:2px solid #e0bc90;padding:12px 9px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;box-shadow:3px 3px 0 #eacb9d}.shop-item .icon{font-size:30px}.shop-item strong{font-size:12px;color:#663f2d}.shop-item small{font-size:10px;color:#966f55}.shop-item button{font-size:11px;padding:7px 10px;background:#e6dba5;border:2px solid #795039;color:#543a27;font-weight:900}.shop-item button:disabled{background:#d8e5c0}
.arcade-board{display:grid;gap:6px;margin:14px auto;width:min(100%,400px)}.arcade-board.ttt{grid-template-columns:repeat(3,1fr);max-width:280px}.arcade-board.connect{grid-template-columns:repeat(7,1fr);max-width:410px;background:#2d6d8c;padding:8px;border:5px solid #225069}.arcade-board.chess{grid-template-columns:repeat(8,1fr);gap:0;max-width:392px;border:5px solid #5a473b}
.arcade-cell{border:2px solid #7b5a40;background:#fff1cd;aspect-ratio:1;display:grid;place-items:center;min-width:0;font-size:clamp(16px,6vw,33px);font-weight:900;cursor:pointer}.arcade-board.ttt .arcade-cell{font-size:40px}.arcade-cell.light{background:#f1dbb4}.arcade-cell.dark{background:#ae805f}.arcade-cell.selected{outline:4px solid #d3b23c;outline-offset:-4px}.arcade-cell.legal{box-shadow:inset 0 0 0 4px #80b279}.arcade-board.connect .arcade-cell{border-radius:50%;background:#f6edce;border:3px solid #396f8f}.arcade-board.connect .arcade-cell.red{background:#e97858}.arcade-board.connect .arcade-cell.yellow{background:#f1cd69}
.arcade-note{font-size:12px;color:#6e4f3c;text-align:center;line-height:1.7;margin:10px auto}.arcade-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:13px 0}.arcade-actions button{background:#eccb8b;border:2px solid #75533b;color:#4d392f;font-weight:900;padding:9px}
.hang-word{font-size:clamp(21px,5vw,34px);font-weight:900;letter-spacing:7px;text-align:center;margin:20px auto;color:#64452f;word-break:break-word}.letter-keyboard{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.letter-keyboard button{font-weight:900;padding:7px 9px;background:#ffe1a1;border:2px solid #a17b51;min-width:32px}.letter-keyboard button:disabled{opacity:.34}
.guess-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px auto;max-width:440px}.guess-person{display:flex;align-items:center;flex-direction:column;gap:5px;border:3px solid #d9ae76;background:#fff0d2;padding:8px 2px;font-size:10px;font-weight:900;cursor:pointer}.guess-person .face{font-size:clamp(23px,6vw,39px)}.guess-person.eliminated{filter:grayscale(1);opacity:.35}.dice-path{display:grid;grid-template-columns:repeat(10,1fr);direction:rtl;gap:2px;border:5px solid #765b43;max-width:460px;margin:14px auto}.dice-tile{direction:ltr;aspect-ratio:1;background:#f3daa9;display:grid;place-items:center;font-size:clamp(9px,3vw,19px);font-weight:900;border:1px solid #c7a77e;position:relative}.dice-tile:nth-child(odd){background:#d8dea7}.dice-tile .occupant{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(16px,3.7vw,23px);text-shadow:1px 1px #fff}
@media (pointer:coarse){.touch-game-controls{display:flex}.controller .dpad{display:none}.console-tips{display:none}.controller{min-height:75px;padding:9px}.screen-frame{aspect-ratio:480/304}}
@media(max-width:700px){.touch-game-controls{display:flex;padding:0 5px 2px}.virtual-joystick{width:84px;height:84px}.joystick-ring{width:74px;height:74px}.joystick-thumb{width:35px;height:35px}.touch-buttons{gap:5px}.touch-buttons button{width:39px;height:39px}.touch-buttons button:last-child{width:45px;height:45px}.hud-pill{padding:3px;font-size:8px}.hud-shop{font-size:8px;padding:3px 5px}.screen-frame{min-height:238px;aspect-ratio:480/304}.console{padding:8px;border-radius:17px}.game-bezel{padding:4px}.screen-head,.screen-foot{font-size:7px}.title-logo strong{font-size:clamp(24px,7vw,38px)}.modal-backdrop{padding:6px}.modal{max-height:96dvh}}
@media(max-width:700px){html,body{overflow-x:hidden}.shell,.layout,.console,.game-bezel,.screen-frame{min-width:0;max-width:100%}.screen-frame{min-height:0;aspect-ratio:480/304}.touch-buttons{padding-bottom:2px}.controller{min-height:62px}.hud-shop{font-size:7px}.hud-right{gap:2px}}
@media(max-width:700px){.controller{min-height:49px;padding:7px 0 0;justify-content:center}.controller .action-buttons,.controller .dpad{display:none}.controller-center{width:100%;display:flex;align-items:center;justify-content:center}.controller-center div{display:flex;gap:8px;justify-content:center;margin:0;align-items:center}.controller-center .tiny-button{width:auto;min-width:66px;height:32px;padding:4px 9px;transform:none;box-shadow:0 3px 0 #d7b588;background:#eed39c;border:2px solid #a67b54;border-radius:8px;font-size:10px;font-weight:900;color:#61442c}}
/* LEAFORIA — DELUXE visual theme. All gameplay is still genuine HTML/canvas/JS. */
:root{--ink:#4d352c;--dark:#37281f;--forest:#536d49;--cream:#fff7e6;--muted:#b28d70;--yellow:#f5cd70;--pink:#e99580;--white:#fffdf6;--shadow:#432a1e}
html,body{font-family:ui-rounded,'Trebuchet MS',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink)}
body{background:radial-gradient(ellipse at 15% 0%,#ffe2ae 0,transparent 38%),radial-gradient(ellipse at 95% 65%,#e5a46d 0,transparent 40%),linear-gradient(135deg,#fdf4dd,#efdbbd 70%,#d7b18e);background-attachment:fixed}
.shell{max-width:1460px;padding:21px 26px 26px}
.topbar{margin-bottom:17px}.brand{color:#6b3b25;font-size:24px;font-family:Georgia,serif;letter-spacing:-.4px;text-shadow:0 2px #fff5d8}.brand-star{color:#d68a35}.edition{color:#976b50;font:700 10px ui-rounded,'Trebuchet MS',sans-serif;letter-spacing:2px}
.topright{color:#845538}.status-dot{background:#80b780}.icon-btn{border:1px solid #b68856;background:#fff5d9;box-shadow:0 3px 8px #6b442529;border-radius:50%;width:40px;height:40px;font-size:18px}
.layout{grid-template-columns:minmax(0,860px) minmax(265px,1fr);gap:26px}
.console{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}
.game-bezel{border:7px solid #6e4431;border-radius:24px;background:#76513d;padding:9px;box-shadow:0 18px 40px #4b322954,inset 0 0 0 2px #d4a36a}
.screen-head,.screen-foot{color:#fce4b5;letter-spacing:1.2px;font-size:10px;padding:5px 9px 8px;text-shadow:0 1px #3e241f}
.screen-foot{padding:8px 9px 3px}.screen-frame{border:3px solid #e3bf89;border-radius:14px;background:#96b57b;aspect-ratio:480/304;isolation:isolate}
#world{image-rendering:auto!important}
.screen-vignette{box-shadow:inset 0 0 46px #2a261b2c}
.overlay.start-overlay{background:linear-gradient(180deg,#26180f52,#21120ad5),url('assets/village.webp') center 50%/cover no-repeat;padding:20px}
.little-stars,.title-sub,.title-pets{filter:drop-shadow(0 2px 2px #382216)}
.title-logo{text-shadow:0 4px 1px #7a4329,0 7px 14px #2b1710}.title-logo strong{color:#fff0b2;font-family:Georgia,serif;font-weight:900;font-size:clamp(35px,6vw,71px);letter-spacing:1px}.title-logo span{color:#ffedc6}
.title-sub{font-size:11px;letter-spacing:2px;color:#fff4d9}.title-pets{font-size:36px}
.primary-button,.secondary-button{border-radius:14px;border:2px solid #976239;box-shadow:inset 0 2px #fff4cd99,0 4px 0 #8d542f,0 6px 16px #4e321a3b;font-weight:900;transition:transform .12s,box-shadow .12s}
.primary-button{background:linear-gradient(#ffe4a0,#edaa5e);color:#633c24}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button:active,.secondary-button:active{transform:translateY(3px);box-shadow:0 1px 0 #865033}
.big-button{padding:12px 22px;border-radius:999px;font-size:clamp(11px,2vw,16px)}
.secondary-button{background:#fff5e5;color:#754a32}
.hud{z-index:6;top:9px;left:9px;right:9px}.hud-pill{background:#fff0d9e8;border:2px solid #8c583d;color:#5e3b29;border-radius:999px;box-shadow:0 3px 8px #56351c42;font-size:10px}.hud-shop{border-radius:999px;background:#ffdf9b;color:#613b28;border-color:#835e41;box-shadow:0 3px 8px #56351c4d}
.toast,.interact-prompt{border-radius:15px;box-shadow:0 5px 15px #37211670;background:#fff4dfe8;color:#5c3828;border:2px solid #b27c58;font-weight:800}
.dialog{border-radius:18px;border:3px solid #ab764f;background:#fff7e9ee;box-shadow:0 5px 20px #3d271a78}.dialog button{border-radius:10px;background:#f2c688}
.controller{background:#f7e7ca;border:2px solid #be946e;border-radius:0 0 22px 22px;box-shadow:0 8px 20px #663b2242;margin-top:0;padding:12px}.dpad button{border-radius:8px;background:#977057;color:#fff5d8;border-color:#644a3c}.controller-center button{border:1px solid #b48a61;background:#fff5df;color:#77513a;border-radius:10px}.circle-button{box-shadow:inset 0 4px #ffffff52,0 5px #694634;border:3px solid #fff0cc;border-radius:50%}.a-btn{background:linear-gradient(#e39159,#b95836)}.b-btn{background:linear-gradient(#80ac68,#4e794f)}
.controller.hidden+.console-tips{display:none}.console-tips{color:#936c4c;line-height:1.6}
.virtual-joystick{width:108px;height:108px}.joystick-ring{border:3px solid #fff5deb8;background:#51362770;box-shadow:inset 0 0 0 5px #ffe9ad36,0 4px 12px #34231680;backdrop-filter:blur(3px)}.joystick-thumb{background:radial-gradient(circle at 35% 30%,#ffe7b1,#c9864e);border-color:#fff0cc}
.touch-buttons button{border:3px solid #fff1d2;box-shadow:0 4px 14px #4528169c,inset 0 3px #ffffff40}
.side-card{border:1px solid #d6b78e!important;border-radius:22px!important;background:#fff9ebdd!important;box-shadow:0 8px 22px #9c693023!important;padding:24px!important;backdrop-filter:blur(6px)}
.side-card h2,.side-card h3{color:#68452f;font-family:Georgia,serif;letter-spacing:-.3px}.side-card h2 i{color:#b86b43}.side-card p{color:#85684d;font-size:13px;line-height:1.7}.side-card .kicker{color:#bc804a}.stats-list>div{border-color:#ead6b5!important}.mini-rule{background:#dbad77!important}
.room-form input{border-radius:10px;background:#fffdf4;border:1px solid #d8b994;color:#70492e}.room-info{color:#9d765a}.chat-chips button{border-radius:99px}.legend-card #legendList>div{border-bottom-color:#e9d7bc!important}
.modal-backdrop{background:#302216d6;backdrop-filter:blur(7px);padding:10px}
.modal{width:min(755px,100%);max-height:min(94dvh,930px);padding:22px;background:linear-gradient(165deg,#fffaf0,#f6e5c9);border:3px solid #bb8e62;border-radius:24px;box-shadow:0 18px 65px #271a127c;color:#64442f;scrollbar-color:#d3a477 #f7e6ce}
.modal::after{display:none}.modal-head{border-bottom:1px solid #e5cbab;padding-bottom:17px}.modal .eyebrow{color:#bf7844;letter-spacing:1.4px}.modal h2{color:#63432f;font-family:Georgia,'Trebuchet MS',serif;font-size:clamp(23px,4vw,34px)}.modal p{color:#876c53;font-size:13px}.modal .close{background:#fff5e2;border:1px solid #d3ae8c;border-radius:50%;width:36px;height:36px}
.avatar-layout{grid-template-columns:minmax(145px,210px) 1fr}.avatar-preview{background:linear-gradient(160deg,#feeacf,#deb48b);border:2px solid #d1a06f;border-radius:20px;min-height:260px;box-shadow:inset 0 0 0 5px #fff2db60}.avatar-preview canvas{image-rendering:auto;width:112px;height:168px;border-radius:12px}.avatar-preview small{color:#88543a}.name-input,.choice{border:1px solid #d9b58c;border-radius:12px;background:#fffdf7;color:#67472f}.name-input{padding:13px 14px}.choice{padding:10px 13px}.choice.selected{border:2px solid #8d9953;box-shadow:0 2px 7px #938b4b3a;background:#f2e8bd;color:#52643f}.swatch{border-radius:50%;width:39px;height:39px}.swatch span{border-radius:50%}.choice-label{color:#986e4c;margin-top:16px}.notice{border-radius:13px;background:#f5e9d2!important;color:#79593e!important;border:1px solid #e0c69e!important}.modal-bottom{margin-top:20px;border-top:1px solid #e5cbaa;padding-top:16px}.modal-bottom .secondary-button{border-radius:12px}
.shop-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px}.shop-item{border:1px solid #d9b88b!important;border-radius:16px!important;background:linear-gradient(#fff9eb,#f9e8d1)!important;box-shadow:0 4px 10px #a9793720;padding:13px!important}.shop-item .icon{font-size:32px!important}.shop-item button{border-radius:9px!important;background:linear-gradient(#f6d992,#e3a65e)!important;color:#64412d!important;border:1px solid #b88a58!important}
/* mini-game art direction: illustrated room headers with playable, DOM-based boards below */
.modal:has(#chessBoard) .modal-head,.modal:has(#connectBoard) .modal-head,.modal:has(#ttBoard) .modal-head{
 min-height:177px;border:2px solid #bf8c5d;border-radius:17px;padding:21px;align-items:flex-end;background-size:cover;background-repeat:no-repeat;background-position:center 26%;box-shadow:inset 0 -84px 80px #30201aca;position:relative;overflow:hidden
}
.modal:has(#chessBoard) .modal-head{background-image:linear-gradient(0deg,#321c15d9,transparent 77%),url('assets/chess.webp')}
.modal:has(#connectBoard) .modal-head{background-image:linear-gradient(0deg,#321c15dd,transparent 77%),url('assets/connect4.webp')}
.modal:has(#ttBoard) .modal-head{background-image:linear-gradient(0deg,#321c15d9,transparent 77%),url('assets/tictactoe.webp')}
.modal:has(#chessBoard) .modal-head h2,.modal:has(#connectBoard) .modal-head h2,.modal:has(#ttBoard) .modal-head h2{color:#fff2cf;text-shadow:0 2px 6px #1c1009;font-size:clamp(25px,4vw,35px)}
.modal:has(#chessBoard) .modal-head p,.modal:has(#connectBoard) .modal-head p,.modal:has(#ttBoard) .modal-head p{color:#fff1d4;text-shadow:0 1px 3px #24170c}
.modal:has(#chessBoard) .modal-head .eyebrow,.modal:has(#connectBoard) .modal-head .eyebrow,.modal:has(#ttBoard) .modal-head .eyebrow{color:#ffdf9a}
.modal:has(#chessBoard) .modal-head .close,.modal:has(#connectBoard) .modal-head .close,.modal:has(#ttBoard) .modal-head .close{align-self:flex-start;flex:none;background:#fff7e7}
.arcade-note{background:#f4e1c6;color:#8c5e3c;font-weight:800;border-radius:999px;border:1px solid #e4c79c;padding:9px 14px;font-size:13px}
.arcade-board{margin:16px auto 19px}.arcade-board.ttt{max-width:345px;gap:9px;padding:12px;background:linear-gradient(135deg,#a56645,#6d4634);border:5px solid #d3a26b;border-radius:20px;box-shadow:0 8px 25px #6e3b223a}
.arcade-board.ttt .arcade-cell{border-radius:11px;border:2px solid #e9c797;background:linear-gradient(145deg,#fff2d6,#edd0a8);box-shadow:inset 0 -6px #daba8f,0 3px #593b2e;font:900 clamp(38px,8vw,66px) Georgia,serif;color:#bf6043;min-height:0}
.arcade-board.ttt .arcade-cell:disabled:not(:empty){opacity:1}.arcade-board.ttt .arcade-cell:nth-child(even){background:linear-gradient(145deg,#fff8e3,#f5ddb9)}
.arcade-board.ttt .arcade-cell:not(:disabled):hover{transform:scale(1.025);background:#fff8df}
.arcade-board.connect{max-width:500px;gap:7px;padding:15px;border-radius:21px;border:7px solid #9e663c;background:linear-gradient(#d2a16e,#9a603b);box-shadow:0 10px 0 #6d432e,0 22px 29px #5f392237,inset 0 2px #ffeac3}
.arcade-board.connect .arcade-cell{border:3px solid #835a38;box-shadow:inset 0 4px 7px #543a3482,0 1px #efc995;background:#714c37;border-radius:50%;transition:background .25s,transform .2s}
.arcade-board.connect .arcade-cell.red{border-color:#9e3828;background:radial-gradient(circle at 36% 24%,#ffc79e,#e56a4f 43%,#a53127 100%);box-shadow:inset 0 -4px 3px #922f32,0 1px 2px #582d26}
.arcade-board.connect .arcade-cell.yellow{border-color:#be8d2b;background:radial-gradient(circle at 36% 24%,#fff8bf,#f7cb53 48%,#c28623 100%);box-shadow:inset 0 -4px 4px #c08a25,0 1px 2px #5f4528}
.arcade-board.connect .arcade-cell:not(.red):not(.yellow):hover{background:#9d6b46}
.arcade-board.chess{width:min(100%,500px);max-width:500px;border:10px solid #a77444;border-radius:12px;box-shadow:0 8px 0 #67412d,0 16px 25px #5b3c2866;gap:0;background:#dfbb86}
.arcade-board.chess .arcade-cell{font-family:'DejaVu Sans','Segoe UI Symbol',Georgia,serif;font-size:clamp(19px,5vw,43px);font-weight:400;border:0;border-radius:0;line-height:1;color:#3d241c;text-shadow:0 1px 1px #fff0d1;box-shadow:inset 0 0 0 0 transparent}
.arcade-board.chess .arcade-cell.light{background:#f7e1b6}.arcade-board.chess .arcade-cell.dark{background:#b8895d}
.arcade-board.chess .arcade-cell.selected{box-shadow:inset 0 0 0 4px #e5cb57;background:#e1cc75}
.arcade-board.chess .arcade-cell.legal{box-shadow:inset 0 0 0 4px #819c52, inset 0 0 18px #b4d77a}
.arcade-actions button{border-radius:12px;padding:12px 17px;border:1px solid #c59561;background:linear-gradient(#f8deb0,#e7b36f);color:#744d35;box-shadow:0 3px #a77148}
.memory-cell,.balloon,.dice-tile,.guess-card{border-radius:12px!important;box-shadow:0 3px 9px #8b67422b}.dice-path{gap:5px}.dice-tile{border:1px solid #d1ac7c!important;background:#fff2d8!important}.game-result{background:linear-gradient(#fff2cc,#f2d6a0);border-radius:22px;padding:19px}
/* controls available on actual mobile screen */
@media(max-width:1000px){.layout{grid-template-columns:1fr}.console{max-width:860px;margin:auto;width:100%}.sidebar{grid-template-columns:1fr 1fr}.side-card{padding:17px!important}}
@media(max-width:640px){.shell{padding:8px 7px 20px}.brand{font-size:17px}.edition{font-size:8px;letter-spacing:.2px}.topbar{margin-bottom:8px;padding:0 5px}.game-bezel{padding:3px;border-width:4px;border-radius:13px}.screen-head,.screen-foot{font-size:7px;letter-spacing:.3px;padding:4px 5px}.screen-frame{border:2px solid #dbb37b;border-radius:9px}.controller{border-radius:0 0 12px 12px;padding:6px;min-height:0}.controller .dpad,.controller .action-buttons{display:none!important}.controller-center{width:100%}.controller-center>div{display:flex;gap:8px;justify-content:center}.controller-center .tiny-button{width:auto;min-width:90px;padding:9px;font-size:11px;border-radius:9px}.console-tips{display:none}.sidebar{grid-template-columns:1fr}.side-card{padding:16px!important}.modal{padding:13px;border-radius:17px;max-height:96dvh}.modal-head{gap:7px}.modal:has(#chessBoard) .modal-head,.modal:has(#connectBoard) .modal-head,.modal:has(#ttBoard) .modal-head{min-height:145px;padding:13px}.modal h2{font-size:22px}.modal p{font-size:12px}.avatar-layout{grid-template-columns:1fr}.avatar-preview{min-height:165px;flex-direction:row;gap:22px}.avatar-preview canvas{width:92px;height:138px}.avatar-settings{min-width:0}.arcade-board.ttt{max-width:330px}.arcade-board.connect{gap:5px;padding:8px;border-width:5px}.arcade-board.chess{border-width:6px}.modal:has(#chessBoard) .modal-head h2,.modal:has(#connectBoard) .modal-head h2,.modal:has(#ttBoard) .modal-head h2{font-size:23px}.touch-game-controls{display:flex!important;padding:0 6px 6px}.virtual-joystick{width:83px;height:83px}.joystick-ring{width:74px;height:74px}.joystick-thumb{width:37px;height:37px}.touch-buttons{gap:4px}.touch-buttons button{width:48px;height:48px}.hud{left:4px;right:4px;top:5px}.hud-pill{font-size:8px;padding:5px 6px}.hud-shop{font-size:8px;padding:5px}.title-logo strong{font-size:clamp(35px,9vw,55px)}.title-pets{font-size:26px}.little-stars{display:none}.title-sub{margin:6px 0}.big-button{margin-top:6px;padding:9px 13px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

#soundBtn{font-size:22px!important;white-space:nowrap;line-height:1;text-align:center;overflow:hidden;flex:none}
.arcade-board.ttt .arcade-cell svg.leaf-piece{width:75%;height:75%;filter:drop-shadow(1px 3px 1px #81513590);transition:transform .22s}
.arcade-board.ttt .arcade-cell:hover svg.leaf-piece{transform:scale(1.04)}
.arcade-board.chess .arcade-cell{font-size:clamp(24px,7.6vw,44px)}

/* LEAFORIA 1.1: genuine edge-to-edge responsive game viewport */
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#2d201a;margin:0}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.shell{width:100vw!important;max-width:none!important;height:100dvh!important;min-height:100dvh!important;padding:0!important;margin:0!important;overflow:hidden}
.topbar,.screen-head,.screen-foot,.controller,.console-tips,footer{display:none!important}
.layout{display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;gap:0!important}
.console{display:block!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:none!important;background:#785b42!important;box-shadow:none!important;border-radius:0!important}
.game-bezel{width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:none!important;background:#5a442f!important;box-shadow:none!important;border-radius:0!important}
.screen-frame{position:relative!important;width:100%!important;height:100%!important;min-height:100%!important;max-height:100%!important;border:none!important;border-radius:0!important;aspect-ratio:auto!important;overflow:hidden!important;touch-action:none!important}
#world{display:block;width:100%;height:100%;image-rendering:auto!important;touch-action:none}
.hud{top:calc(8px + env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));z-index:8;pointer-events:none;align-items:center}
.hud-pill,.hud-shop{border:1px solid #f4d59aaa!important;background:linear-gradient(155deg,#67442ce8,#3d3027ed)!important;color:#fff0d1!important;border-radius:13px!important;box-shadow:0 4px 15px #2d201a77!important;text-shadow:none;min-height:35px}
.hud-pill{padding:6px 10px!important;font-size:12px!important;max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hud-shop{font-size:15px!important;min-width:38px;padding:4px 8px!important;cursor:pointer;pointer-events:auto}
.hud-right{align-items:center;gap:6px}.hud .level-tag{border-radius:6px;font-weight:800;color:#50321e}
.touch-game-controls{display:flex!important;inset:0!important;z-index:9!important;align-items:flex-end!important;justify-content:space-between!important;padding:0 max(13px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(13px,env(safe-area-inset-left))!important;pointer-events:none}
.virtual-joystick{width:138px!important;height:138px!important;touch-action:none;pointer-events:auto!important;-webkit-tap-highlight-color:transparent}
.joystick-ring{width:118px!important;height:118px!important;border:3px solid #f8dfaf8a!important;box-shadow:0 5px 20px #32241c85,inset 0 0 0 11px #fff6dd21!important;background:#3e362c6a!important;backdrop-filter:blur(3px)}
.joystick-thumb{width:54px!important;height:54px!important;background:linear-gradient(#ffebb7cc,#dca96ecc)!important;border:3px solid #fff2cf!important;box-shadow:0 4px 11px #32251a77!important;transition:none!important}
.virtual-joystick.engaged .joystick-ring{border-color:#ffdd8e!important;background:#3e362c91!important}
.touch-buttons{gap:12px!important;align-items:end!important;pointer-events:auto}
.touch-buttons button,.touch-buttons button:last-child{width:66px!important;height:66px!important;border:3px solid #ffdfa7!important;box-shadow:0 6px 0 #3d241a99,0 6px 25px #2a1d1788!important;font-size:24px!important;font-weight:1000!important;color:#fff4cf!important}
.touch-buttons #touchA{width:76px!important;height:76px!important;background:linear-gradient(135deg,#d87850,#aa493b)!important}
.touch-buttons #touchB{background:linear-gradient(135deg,#92a86a,#476b50)!important}
.interact-prompt{bottom:calc(130px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#fff4dff2!important;color:#67432e!important;border:2px solid #b58453!important;border-radius:999px!important;padding:9px 15px!important;font-size:13px!important;z-index:6}
.dialog{bottom:calc(130px + env(safe-area-inset-bottom));background:#fdf0d4;border-radius:16px;border:2px solid #c19668;z-index:10}
.toast{z-index:11;top:calc(55px + env(safe-area-inset-top));border-radius:12px}
.screen-vignette{box-shadow:inset 0 0 30px #2e20182a!important}
.start-overlay{background:linear-gradient(180deg,#2b282273,#553a2baa),url('assets/village.webp') center center/cover no-repeat!important;backdrop-filter:none!important;justify-content:center!important}
.title-logo strong{font-family:Georgia,'Trebuchet MS',serif;font-size:clamp(43px,10.5vw,108px)!important;color:#ffe5a8!important;letter-spacing:2px!important;text-shadow:0 4px #603d29,0 8px 26px #28170dc4}
.title-logo span{font-size:clamp(12px,3vw,19px)!important}.title-sub{font-size:clamp(11px,2vw,16px)!important;max-width:300px;line-height:1.5!important}
.big-button{border-radius:15px!important;background:linear-gradient(130deg,#ffde85,#f6ac63)!important;color:#4c3329!important;box-shadow:0 7px 0 #9c573c,0 15px 30px #3120178a!important;font-size:clamp(12px,2vw,18px)!important;padding:15px 22px!important;max-width:min(92vw,390px)}
.sidebar{display:none!important}
.menu-shade{position:fixed;inset:0;background:#291f17a6;z-index:30}
.sidebar.is-open{display:flex!important;position:fixed!important;z-index:31!important;top:0;right:0;bottom:0;width:min(440px,96vw)!important;max-width:none!important;overflow-y:auto!important;padding:calc(16px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom))!important;flex-direction:column!important;gap:10px;background:#f4dfbb;box-shadow:-10px 0 35px #3020148c;scrollbar-width:thin}
.drawer-actions{display:flex;gap:7px;align-items:center;justify-content:space-between;padding:5px 5px 12px;color:#643d2e}.drawer-actions strong{font-size:16px}.drawer-actions button{font-size:11px;padding:7px 9px}
.sidebar .side-card{width:100%;flex-shrink:0}.sidebar .intro-card{grid-row:auto!important}
.modal-backdrop{z-index:45!important;background:#26180fb8!important;overscroll-behavior:contain}
.modal{max-height:calc(100dvh - 30px)!important;overscroll-behavior:contain}
@media(max-width:600px){.hud-pill.pet-count{display:none!important}.hud-pill{font-size:10px!important;min-height:32px}.hud-shop{min-width:36px}.hud-right{gap:4px}.virtual-joystick{width:116px!important;height:116px!important}.joystick-ring{width:105px!important;height:105px!important}.joystick-thumb{width:48px!important;height:48px!important}.touch-buttons{gap:8px!important}.touch-buttons button{width:58px!important;height:58px!important}.touch-buttons #touchA{width:67px!important;height:67px!important}.touch-game-controls{padding-bottom:calc(21px + env(safe-area-inset-bottom))!important}.interact-prompt{bottom:calc(124px + env(safe-area-inset-bottom))}}
@media(max-height:480px) and (orientation:landscape){.virtual-joystick{width:94px!important;height:94px!important}.joystick-ring{width:86px!important;height:86px!important}.joystick-thumb{width:43px!important;height:43px!important}.touch-buttons button{width:52px!important;height:52px!important}.touch-buttons #touchA{width:61px!important;height:61px!important}.interact-prompt{bottom:calc(80px + env(safe-area-inset-bottom))}.touch-game-controls{padding-bottom:calc(9px + env(safe-area-inset-bottom))!important}}
