@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('vendor/dm-sans-regular.ttf') format('truetype')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('vendor/dm-sans-bold.ttf') format('truetype')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('vendor/manrope-semibold.ttf') format('truetype')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('vendor/manrope-extrabold.ttf') format('truetype')}
:root{--ink:#3d4a3e;--muted:#899083;--paper:#faf9f3;--green:#6f8567;--sage:#e6ebdf;--orange:#d68e64;--line:#dfe3d7;--shadow:0 10px 40px #59664b0d;--font:'DM Sans',sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--font);color:var(--ink);background:#f1f0e6;font-size:14px}button,a,input{font:inherit}button{color:inherit;border:0;cursor:pointer;background:none;-webkit-tap-highlight-color:transparent}button{transition:background .18s,transform .18s,box-shadow .18s}button:hover{filter:brightness(.97)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d9a36d;outline-offset:4px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button svg{pointer-events:none}.symbol-library{display:none}[hidden]{display:none!important}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:24px;position:absolute;inset:0 0 auto;z-index:10;background:#faf9f2b3;border-bottom:1px solid #7d8d6510;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);min-width:230px}.brand-mark{background:#e7ac82;color:#fff8eb;width:43px;height:43px;display:grid;place-items:center;border-radius:15px;transform:rotate(-8deg)}.brand-mark svg{width:31px;height:31px;stroke-width:1.4}.brand strong{font-family:Manrope,sans-serif;font-size:19px;font-weight:800;letter-spacing:-.9px}.brand-dot{font-size:9px;vertical-align:top;margin-left:4px}.brand small{display:block;font-size:8px;font-weight:700;letter-spacing:3.1px;margin-top:5px;color:#93957f}.room-tabs{display:flex;background:#e8ebdf8c;padding:5px;border-radius:18px;gap:3px}.room-tabs button{display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:13px;color:#8b937f;font-size:12px;font-weight:600;white-space:nowrap}.room-tabs button.active{background:#fcfcf5;box-shadow:0 3px 9px #4b614b0c;color:#536b4e}.room-tabs svg{width:18px;height:18px}.top-actions{display:flex;align-items:center;gap:13px}.coin-pill,.day-pill{display:flex;align-items:center;gap:9px;height:40px;border:1px solid #d7decd;border-radius:13px;padding:0 14px;font-size:12px;background:#fcfcf4}.coin-pill b{font-weight:700}.coin{background:#e5c676;color:#fffdf0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #d8b36055;font-size:19px}.day-pill svg{width:17px;height:17px;color:#a9925a}.icon-btn{width:38px;height:38px;display:inline-grid;place-items:center;border-radius:12px;color:#7f8b77}.icon-btn:hover{background:#e6ebdf}.icon-btn svg{width:19px;height:19px}#game-shell{position:absolute;inset:90px 0 0}#canvas-wrap{position:absolute;inset:0;touch-action:none}#canvas-wrap canvas{display:block;width:100%;height:100%;outline:none}.scene-intro{position:absolute;left:43px;top:38px;pointer-events:none}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#89947d;display:flex;align-items:center;gap:7px}.eyebrow i{width:5px;height:5px;border-radius:50%;background:#a7b399}h1,h2,h3,p{margin:0}h1{font-family:Manrope,sans-serif;font-size:38px;line-height:1.2;letter-spacing:-1.7px;font-weight:650;margin:15px 0 13px}.scene-intro p{font-size:12px;line-height:1.9;color:#949a89}.room-number{display:block;font-size:8px;letter-spacing:2px;margin-top:23px;color:#a4a88f;font-weight:600}.weather-note{position:absolute;right:40px;top:39px;display:flex;gap:12px;align-items:center;pointer-events:none}.weather-note>span{font-size:27px;color:#c9b77c}.weather-note b{font-size:11px;font-weight:550;display:block}.weather-note div>span{font-size:9px;color:#969e8c;display:block;margin-top:5px}.joy-card{position:absolute;left:38px;bottom:145px;width:225px;padding:19px 18px 14px;background:#fcfcf7d9;border:1px solid #fffdf6;border-radius:20px;box-shadow:var(--shadow);backdrop-filter:blur(15px)}.joy-heading{display:flex;gap:8px;align-items:center}.tiny-flower{color:#d1a977;font-size:21px}.joy-heading h2{font-size:13px;font-weight:600;flex:1}.joy-heading>span:last-child{font-size:9px;color:#a1aa96;background:#eff2e8;padding:4px 6px;border-radius:5px}.joy-card>p{font-size:10px;color:#939d88;margin:9px 0 18px}.mini-quest{display:flex;align-items:center;gap:8px;font-size:11px;margin:12px 0}.check-circle{width:15px;height:15px;border:1.5px solid #d7decc;border-radius:50%;display:grid;place-items:center;color:white;font-size:10px}.mini-quest.done{color:#99a48e}.mini-quest.done .check-circle{background:#8d9d7b;border-color:#8d9d7b}.text-button{font-size:10px;color:#7a8b6e;padding:12px 0 2px;width:100%;text-align:left;border-top:1px solid #e8ecdf;margin-top:8px}.text-button span{float:right}.camera-tools{position:absolute;right:34px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;background:#fdfdf6c9;backdrop-filter:blur(15px);border:1px solid #fffdf8;border-radius:17px;padding:4px;box-shadow:var(--shadow)}.camera-tools>span{height:1px;background:#e2e6d8;margin:4px 8px}.player-card{position:absolute;left:38px;bottom:35px;display:flex;align-items:center;gap:11px;pointer-events:none}.player-portrait{height:49px;width:49px;background:#eee5d7;border:3px solid #fffdf7;border-radius:50%;display:grid;place-items:center;color:#c68e70;font-size:28px;box-shadow:0 3px 8px #8a7c5310;overflow:hidden}.player-portrait img{width:100%;height:100%;object-fit:cover}.player-info b{font-size:13px;font-weight:650;display:block}.player-info b span{font-size:9px;font-weight:400;color:#99a08e;margin-left:5px}.needs{display:flex;gap:10px;margin-top:8px}.needs>span{display:flex;gap:4px;align-items:center}.needs svg{height:12px;width:12px;color:#9f9f7b}.needs>span>i{width:34px;height:4px;background:#dbe1d1;overflow:hidden;border-radius:4px}.needs i i{display:block;height:100%;width:80%;background:#9eae89;transition:width .4s}.needs>span:nth-child(2) i i{background:#c8aa80}.needs>span:nth-child(3) i i{background:#c4a4a2}.bottom-center{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:14px}.walk-hint{font-size:10px;color:#8a9680;display:flex;align-items:center;gap:7px;white-space:nowrap}.mouse-dot{width:10px;height:14px;border:1px solid #9eaa92;border-radius:5px;position:relative}.mouse-dot:before{content:'';position:absolute;width:2px;height:3px;background:#9eaa92;left:3px;top:2px}.play-dock{display:flex;align-items:center;padding:7px;background:#fffff8e8;border:1px solid #fff;border-radius:23px;gap:4px;box-shadow:0 10px 35px #61715212;backdrop-filter:blur(20px)}.play-dock button{position:relative;min-width:82px;height:62px;border-radius:17px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#8b9782;font-size:10px;font-weight:500}.play-dock button.active{background:#e7eddf;color:#596f4c}.play-dock button:hover{background:#f0f3e8}.play-dock svg{width:22px;height:22px}.dock-divider{width:1px;height:26px;background:#e6ebdc;margin:0 4px}#journal-dot{position:absolute;width:5px;height:5px;background:#dcb085;top:9px;right:23px;border-radius:50%}.save-corner{position:absolute;right:35px;bottom:35px;display:flex;align-items:center;gap:18px}#save-label{font-size:9px;color:#a5ad98;display:flex;gap:6px;align-items:center}#save-label i{width:5px;height:5px;background:#a2b28c;border-radius:50%}#tooltip{position:absolute;pointer-events:none;z-index:8;background:#fcfdf6f5;padding:10px 14px;border:1px solid #fff;border-radius:12px;box-shadow:var(--shadow);font-size:11px;transform:translate(-50%,-100%);white-space:nowrap}#tooltip small{display:block;font-size:9px;color:#8d9c83;margin-top:3px}#toast{position:absolute;z-index:40;left:50%;top:18px;transform:translateX(-50%);background:#586c4d;color:#fffff5;border:1px solid #718666;padding:12px 20px;border-radius:15px;font-size:12px;box-shadow:var(--shadow);max-width:90%;text-align:center}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f1f0e6;z-index:50;transition:opacity .5s}.loading-flower{font-size:58px;color:#cda181;animation:breathe 2s infinite}#loading h2{font-size:19px;font-weight:500;margin:17px 0 10px}#loading p{font-size:12px;color:#96a187}@keyframes breathe{50%{transform:rotate(35deg) scale(1.1)}}#drawer{position:absolute;z-index:15;right:24px;top:108px;bottom:125px;width:330px;background:#fcfcf5f5;backdrop-filter:blur(20px);border:1px solid white;border-radius:25px;box-shadow:0 10px 60px #56634d18;padding:24px 20px;display:flex;flex-direction:column}.drawer-heading{display:flex;justify-content:space-between;align-items:center}.drawer-heading h2{font-size:18px;letter-spacing:-.6px;margin-top:8px;font-weight:600}.drawer-heading .eyebrow{font-size:8px}.drawer-description{font-size:11px;color:#929c85;margin:10px 0 20px}#shop-tabs{display:flex;gap:4px;margin-bottom:16px;flex-shrink:0}#shop-tabs button{font-size:9px;padding:8px 9px;border-radius:8px;color:#87927b;white-space:nowrap}#shop-tabs button.active{color:#5b7150;background:#e8eddf}#shop-items{display:grid;grid-template-columns:1fr 1fr;gap:10px;overflow:auto;padding:2px 3px 10px;scrollbar-width:thin;scrollbar-color:#dbe2d0 transparent}.shop-item{background:#f2f3e9;border:1px solid #e8ebdf;border-radius:15px;min-height:137px;text-align:left;padding:9px 11px;position:relative}.shop-item:hover{border-color:#a7b497;box-shadow:0 4px 15px #5b6e4710}.shop-item .item-art{height:73px;display:flex;align-items:center;justify-content:center;font-size:39px}.shop-item .item-art img{width:100%;height:100%;object-fit:contain}.shop-item b{font-size:10px;display:block;font-weight:550}.shop-item small{font-size:10px;color:#a59b6f;margin-top:6px;display:block}.shop-item .item-add{position:absolute;right:10px;bottom:12px;color:#8f9f7c}.shop-foot{display:flex;gap:10px;border-top:1px solid #e5eada;padding-top:16px;margin-top:10px;color:#9aa68b}.shop-foot svg{width:16px;height:16px}.shop-foot p{font-size:9px;line-height:1.7}#placement-bar{position:absolute;z-index:20;left:50%;bottom:140px;transform:translateX(-50%);background:#fafcf3ee;border:1px solid white;border-radius:16px;padding:13px 17px;box-shadow:var(--shadow);display:flex;gap:20px;align-items:center;max-width:95%;font-size:11px;backdrop-filter:blur(10px)}#placement-bar>div{display:flex;gap:6px}#placement-bar button{font-size:10px;white-space:nowrap;padding:8px 11px;border-radius:9px;background:#e9eedf}button.primary{background:#708560!important;color:#fffff7!important}#action-card{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);display:flex;gap:13px;align-items:center;padding:16px 22px;border:1px solid white;background:#fcfcf4f2;border-radius:20px;min-width:260px;box-shadow:var(--shadow)}#action-emoji{font-size:30px}#action-card>div{flex:1}#action-card strong{display:block;font-size:12px;font-weight:550}#action-card small{font-size:9px;color:#95a186;display:block;margin-top:5px}.action-track{height:3px;background:#e5ebda;border-radius:4px;margin-top:10px;overflow:hidden}#action-progress{height:100%;background:#97aa7e;width:0}#modal-backdrop{position:absolute;inset:0;background:#38433133;z-index:60;display:grid;place-items:center;backdrop-filter:blur(7px);padding:20px}#modal{position:relative;width:440px;max-width:100%;max-height:90dvh;overflow:auto;background:#fcfcf5;border:1px solid white;border-radius:28px;padding:35px;box-shadow:0 30px 100px #39472c26}#modal-close{position:absolute;right:16px;top:16px}#modal-title{font-size:26px;letter-spacing:-1px;font-weight:600;margin:8px 0 9px}.modal-subtitle{font-size:12px;color:#919b85;line-height:1.7;margin-bottom:24px}.modal-icon{font-size:35px;color:#cda181;margin-bottom:10px}.quest-row{display:flex;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #e6eadf}.quest-row .check-circle{width:23px;height:23px;flex-shrink:0}.quest-row .done{background:#8b9f77;color:white}.quest-row>div{flex:1}.quest-row b{font-size:12px;font-weight:550}.quest-row p{font-size:10px;color:#9aa58e;margin-top:5px}.quest-reward{font-size:11px;color:#b6a365}.modal-footer{padding:15px 0 0;font-size:10px;color:#a1aa95;line-height:1.6}.control-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e5eadc;font-size:11px}.control-row span{color:#8c997e}kbd{font-family:inherit;background:#eaf0df;padding:3px 6px;border-radius:4px;font-size:10px}.modal-primary{width:100%;padding:13px;border-radius:12px;background:#708560;color:white;margin-top:22px;font-size:12px}.avatar-preview{height:145px;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse,#e6ead9,transparent 65%);margin:7px 0 15px}.avatar-preview img{height:180px;width:180px;object-fit:contain}.avatar-options label{display:block;font-size:10px;color:#89987b;margin:16px 0 9px}.swatches,.choice-buttons{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;background:var(--swatch);border:3px solid #fcfcf5;border-radius:50%;box-shadow:0 0 0 1px #e5e9dc}.swatch.selected{box-shadow:0 0 0 2px #81966b}.choice-buttons button{font-size:10px;border:1px solid #e1e7d8;border-radius:9px;padding:8px 12px}.choice-buttons button.selected{background:#e5ecdc;border-color:#a2b391}.name-input{background:#f2f4e9;border:1px solid #dce4d1;border-radius:10px;padding:10px;color:var(--ink);width:100%;font-size:12px}.interact-options{display:flex;gap:8px;margin-top:18px}.interact-options button{padding:10px 12px;border-radius:10px;background:#e7eddf;font-size:12px;flex:1}.danger{color:#b37866}.night .topbar{background:#edf0e9e8}.night #game-shell{background:#dce3e0}.night .scene-intro h1{color:#4b5c59}.photo-mode .topbar,.photo-mode .scene-intro,.photo-mode .joy-card,.photo-mode .weather-note,.photo-mode .camera-tools{visibility:hidden}body.decorating .weather-note{visibility:hidden}body.decorating .camera-tools{right:370px}body.decorating .joy-card{display:none}body.decorating .scene-intro p{display:none}body.decorating .scene-intro h1{font-size:30px}body.decorating .room-number{margin-top:15px}
@media(min-width:1600px){h1{font-size:46px}.scene-intro{top:60px;left:55px}.joy-card{left:50px;bottom:170px;width:250px}.player-card{left:50px}}
@media(max-width:1150px){.topbar{padding:0 22px;gap:12px}.brand{min-width:190px}.brand strong{font-size:16px}.brand small{font-size:7px;letter-spacing:2.4px}.room-tabs button{padding:11px 12px}.top-actions{gap:7px}.day-pill{padding:0 10px}.scene-intro{left:28px;top:28px}h1{font-size:30px}.scene-intro p{font-size:10px}.joy-card{left:24px;width:194px;padding:15px;bottom:145px}.joy-card>p{font-size:9px}.mini-quest{font-size:10px}.weather-note{right:26px}.weather-note div>span{display:none}.player-card{left:24px}.player-info b span{display:none}.save-corner{right:24px}#save-label{display:none}.play-dock button{min-width:74px}.camera-tools{right:22px}}
@media(max-width:800px){.topbar{height:116px;padding:14px 18px 61px;align-items:center}.brand-mark{width:32px;height:32px;border-radius:11px}.brand-mark svg{width:24px;height:24px}.brand{min-width:0}.brand strong{font-size:15px}.brand small{font-size:6px;margin-top:3px}.room-tabs{position:absolute;top:66px;left:50%;transform:translateX(-50%);padding:3px;border-radius:13px}.room-tabs button{padding:9px 17px;font-size:10px;border-radius:10px;gap:6px}.room-tabs svg{width:15px;height:15px}.top-actions{gap:5px}.coin-pill,.day-pill{height:32px;border-radius:10px;padding:0 8px;font-size:11px;gap:6px}.day-pill span{display:none}.sound-btn{width:30px;height:30px}.coin{width:18px;height:18px;font-size:16px}#game-shell{top:116px}.scene-intro{top:22px;left:22px}.scene-intro h1{font-size:26px;margin:10px 0}.scene-intro p{display:none}.eyebrow{font-size:7px;letter-spacing:1.5px}.room-number{font-size:7px;margin-top:12px;letter-spacing:1.4px}.weather-note{right:18px;top:25px}.weather-note>span{font-size:23px}.weather-note div{display:none}.joy-card{left:18px;bottom:132px;width:178px;padding:12px 14px;background:#fcfcf7e0}.joy-card>p{display:none}.joy-heading h2{font-size:11px}.joy-heading .tiny-flower{font-size:17px}.mini-quest{font-size:9px;margin:10px 0}.text-button{font-size:9px;padding-top:8px}.check-circle{width:12px;height:12px}.player-card{bottom:24px;left:17px;gap:7px}.player-info{display:none}.player-portrait{width:38px;height:38px}.bottom-center{bottom:18px;gap:10px}.play-dock{padding:5px;gap:0;border-radius:18px}.play-dock button{min-width:59px;height:55px;font-size:9px;border-radius:13px}.play-dock svg{width:19px;height:19px}.dock-divider{margin:0 2px}.walk-hint{font-size:8px}.save-corner{right:13px;bottom:22px}.camera-tools{right:14px;padding:3px}.camera-tools .icon-btn{width:31px;height:34px}.camera-tools .icon-btn svg{width:16px;height:16px}#drawer{right:12px;top:128px;bottom:120px;width:min(310px,calc(100% - 24px));padding:20px 17px;border-radius:21px}body.decorating .scene-intro{display:none}body.decorating .camera-tools{display:none}#placement-bar{bottom:125px;gap:10px;padding:10px 12px;width:calc(100% - 24px);flex-wrap:wrap;justify-content:center}#placement-bar>span{font-size:10px}#placement-bar>div{justify-content:center}#action-card{bottom:130px;min-width:235px}#tooltip{font-size:10px}#modal{padding:28px;max-height:88dvh}#modal-title{font-size:23px}}
@media(max-height:700px) and (min-width:801px){.topbar{height:74px}#game-shell{top:74px}.scene-intro{top:25px}h1{font-size:29px}.scene-intro p{display:none}.joy-card{bottom:125px}.weather-note{top:26px}#drawer{top:86px;bottom:110px}.bottom-center{bottom:15px}.player-card,.save-corner{bottom:25px}.room-number{margin-top:14px}}
@media(max-height:700px) and (max-width:800px){.joy-card{display:none}.scene-intro h1{font-size:22px}.room-number{display:none}.scene-intro{top:12px}.camera-tools{top:45%}#action-card{bottom:120px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(max-width:800px){.joy-card{display:none}.camera-tools{top:130px;right:18px;transform:none;flex-direction:row;border-radius:13px;padding:2px}.camera-tools>span{height:20px;width:1px;margin:6px 4px}.camera-tools .icon-btn{height:32px;width:32px}}
@media(max-height:650px) and (max-width:800px){.camera-tools{top:60px}.scene-intro{max-width:140px}.scene-intro h1{font-size:19px}}
/* Touch play: generous targets, safe-area spacing, and controls away from the room. */
html,body{overscroll-behavior:none}button{touch-action:manipulation}#touch-controls{display:none}.direction-pad{position:relative;width:132px;height:132px;pointer-events:auto;background:#fbfcf4c9;border:1px solid #fffef7;border-radius:50%;backdrop-filter:blur(12px);box-shadow:var(--shadow);touch-action:none;user-select:none;-webkit-user-select:none}.direction-pad button{position:absolute;width:44px;height:44px;border-radius:16px;font-size:22px;color:#819171;touch-action:none}.direction-pad button.held{background:#cdd9bd;color:#4d6442}.direction-pad [data-direction=up]{top:0;left:44px}.direction-pad [data-direction=down]{bottom:0;left:44px}.direction-pad [data-direction=left]{left:0;top:44px}.direction-pad [data-direction=right]{right:0;top:44px}.pad-center{position:absolute;inset:44px;display:grid;place-items:center;font-size:24px;color:#c4b78d;pointer-events:none}.touch-actions{display:flex;align-items:center;gap:7px;pointer-events:auto}.touch-actions button{min-height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 13px;border-radius:16px;background:#fdfdf5ef;border:1px solid white;box-shadow:var(--shadow);font-size:11px}.touch-actions button:first-child{background:#768967;color:#fffdf1}.touch-actions svg{width:18px;height:18px}.activity-list{display:grid;gap:9px}.activity-list button{position:relative;min-height:59px;text-align:left;padding:12px 36px 12px 14px;background:#edf1e4;border:1px solid #e0e8d5;border-radius:13px}.activity-list button span{display:block;font-size:13px;font-weight:600}.activity-list button small{display:block;font-size:10px;color:#8e9d80;margin-top:5px}.activity-list button b{position:absolute;right:15px;top:18px;color:#8d9d7d;font-weight:400}body.decorating #touch-controls,body.modal-open #touch-controls,body.doing-activity #touch-controls{visibility:hidden}
@media(max-width:800px),(pointer:coarse){
#touch-controls{display:flex;position:absolute;inset:auto max(16px,env(safe-area-inset-right)) calc(108px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));align-items:center;justify-content:space-between;pointer-events:none;z-index:9}.topbar{padding-top:max(14px,env(safe-area-inset-top))}.bottom-center{bottom:calc(18px + env(safe-area-inset-bottom))}.player-card{bottom:calc(24px + env(safe-area-inset-bottom))}.save-corner{bottom:calc(22px + env(safe-area-inset-bottom))}#game-shell{bottom:0}.room-tabs button{min-height:44px}.top-actions .icon-btn,.day-pill{min-height:44px;min-width:44px}.camera-tools .icon-btn{height:44px;width:44px}.camera-tools{top:130px}.camera-tools>span{margin:12px 3px}.walk-hint{font-size:9px}.swatch{height:44px;width:44px}.choice-buttons button{min-height:44px;padding:10px 12px}.name-input{font-size:16px;min-height:44px}.icon-btn.close-drawer,#modal-close{height:44px;width:44px}.shop-item{min-height:140px}#shop-tabs button{min-height:44px;font-size:10px}#placement-bar{bottom:calc(110px + env(safe-area-inset-bottom))}#placement-bar button{min-height:44px;font-size:12px}#action-card{bottom:calc(125px + env(safe-area-inset-bottom))}#drawer{bottom:calc(112px + env(safe-area-inset-bottom))}#modal-backdrop{padding:12px;align-items:center}#modal{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#shop-items{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.interact-options button{min-height:48px}.control-row{gap:12px;line-height:1.6}.control-row span{text-align:right}
}
@media(max-width:800px){.topbar{height:126px}#game-shell{top:126px}.room-tabs{top:70px}.scene-intro{top:19px}.camera-tools{top:124px}.brand{gap:7px}.brand small{letter-spacing:1.8px}.top-actions{gap:3px}#drawer{top:138px}.player-card{left:12px}.save-corner{right:8px}.play-dock button{min-width:56px}.touch-actions{max-width:190px}.touch-actions button:first-child{max-width:133px}}
@media(max-width:360px){.brand-mark{width:27px;height:27px}.brand strong{font-size:13px}.brand small{font-size:5px}.coin-pill{padding:0 6px}.topbar{padding-left:12px;padding-right:12px}.sound-btn{display:none}.play-dock button{min-width:50px}.direction-pad{transform:scale(.9);transform-origin:left center}.touch-actions{gap:4px}.touch-actions button{padding:9px;font-size:10px}.touch-actions button:first-child{max-width:112px}.swatches{gap:6px}.swatch{width:42px;height:44px}#modal{padding:24px}}
@media(max-height:700px) and (max-width:800px) and (orientation:portrait){.scene-intro h1{font-size:22px}.room-number{display:none}.camera-tools{top:68px}.direction-pad{transform:scale(.86);transform-origin:left center}.touch-actions{transform:scale(.92);transform-origin:right center}#touch-controls{bottom:95px}.scene-intro{top:14px}.bottom-center{bottom:calc(12px + env(safe-area-inset-bottom))}.walk-hint{display:none}}
@media(max-height:550px) and (orientation:landscape){.topbar{height:68px;padding:8px max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));gap:10px}.brand{min-width:155px}.brand strong{font-size:14px}.brand small{font-size:6px}.brand-mark{width:30px;height:30px}.room-tabs{position:static;transform:none;padding:3px}.room-tabs button{padding:8px 11px;min-height:42px;font-size:10px}.top-actions{gap:4px}.day-pill span,.sound-btn{display:none}.top-actions .day-pill{min-width:42px}.coin-pill{height:35px;padding:0 10px}.top-actions .icon-btn{width:40px;height:40px}#game-shell{top:68px}.scene-intro{top:15px;left:max(18px,env(safe-area-inset-left))}.scene-intro h1{font-size:20px;letter-spacing:-.8px;margin-top:9px}.scene-intro p,.weather-note,.joy-card,.room-number,.player-card,.save-corner,.walk-hint{display:none}.camera-tools{top:12px;right:max(16px,env(safe-area-inset-right));transform:none;flex-direction:row}.camera-tools .icon-btn{width:40px;height:40px}.camera-tools>span{height:20px;width:1px;margin:10px 2px}.bottom-center{bottom:calc(8px + env(safe-area-inset-bottom))}.play-dock{border-radius:16px;padding:3px}.play-dock button{height:48px;min-width:59px;font-size:9px}.play-dock svg{height:18px;width:18px}#touch-controls{display:flex;bottom:calc(15px + env(safe-area-inset-bottom));inset-inline:max(16px,env(safe-area-inset-left));align-items:flex-end}.direction-pad{transform:scale(.8);transform-origin:left bottom}.touch-actions{gap:5px;flex-direction:column;align-items:flex-end}.touch-actions button{min-height:44px;padding:9px 12px;font-size:10px}.touch-actions button:first-child{max-width:145px}.touch-actions button:last-child{height:44px;min-width:44px}.camera-tools{top:12px}#drawer{top:78px;bottom:75px;width:300px;padding:15px}#shop-tabs{margin-bottom:8px}.drawer-description,.shop-foot{display:none}.drawer-heading h2{font-size:16px}.drawer-heading{margin-bottom:8px}#shop-items{grid-template-columns:repeat(2,1fr)}#placement-bar{bottom:76px;width:auto;min-width:330px;flex-wrap:nowrap;padding:8px 12px}#placement-label{max-width:180px}#action-card{bottom:78px}#modal{max-height:calc(100dvh - 20px);padding:25px}.avatar-preview{height:110px}.avatar-preview img{height:135px}.modal-subtitle{margin-bottom:15px}}

@media(max-height:550px) and (orientation:landscape){#touch-controls{position:absolute;z-index:9;pointer-events:none;justify-content:space-between;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}.direction-pad{transform:none}.touch-actions{pointer-events:auto}}
