@font-face{font-family:Rounded;src:local('Arial Rounded MT Bold')}*{box-sizing:border-box} :root{font-family:'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;color:#44504b;background:#f8f6ef;font-synthesis:none;--ink:#44504b;--muted:#8c958c;--accent:#d98c75;--green:#719980;--line:#e7e9df;--panel:#fcfbf7}body{margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.36;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #609890;outline-offset:3px}button{border:0;background:none}a{color:inherit;text-decoration:none}#app{height:100dvh;min-height:420px;display:flex;flex-direction:column}.topbar{height:88px;flex-shrink:0;background:#fcfbf7;padding:0 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eaece3;z-index:5;gap:16px}.brand{display:flex;gap:13px;align-items:center}.brand-mark{background:#d88d76;color:white;font-size:40px;line-height:45px;text-align:center;border-radius:16px;width:49px;height:49px;box-shadow:0 3px 0 #b9766333}.brand b{display:block;font-size:26px;letter-spacing:-1.2px}.brand small{font-size:10px;letter-spacing:1.2px;color:#96958b;display:block;margin-top:2px}.top-center{font-size:12px;color:#92988d;display:flex;align-items:center;gap:8px}.sun-dot{width:10px;height:10px;background:#efc981;border-radius:50%;box-shadow:0 0 0 4px #f8eed9}.top-actions{display:flex;align-items:center;gap:8px}.save-status{font-size:11px;color:#7f9983;margin-right:15px}.icon-button{font-size:24px;background:#f1f2ec;border-radius:13px;width:42px;height:42px;transition:.2s}.icon-button:hover{background:#e5e9dd}main{display:flex;min-height:0;flex:1}#sidebar{width:296px;background:var(--panel);border-right:1px solid var(--line);flex-shrink:0;padding:30px 22px 16px;display:flex;flex-direction:column;z-index:3}.shelf-heading{position:relative}.eyebrow{display:block;font-size:8px;font-weight:700;letter-spacing:1.8px;color:#a6ad9b;margin-bottom:10px}h1{font-size:19px;letter-spacing:-.8px;margin:0 0 15px;font-weight:750}.free-badge{display:inline-block;background:#edf2e8;border:1px solid #e2e9d9;border-radius:20px;padding:5px 10px;color:#819276;font-size:10px;margin-bottom:19px}#shelf-content{display:flex;flex-direction:column;min-height:0;flex:1}.categories{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:19px;border-bottom:1px solid var(--line);margin-bottom:16px}.category{background:#f0f1eb;border-radius:10px;padding:9px 11px;font-size:11px;min-height:36px;color:#899180}.category.active{background:#e8c0ae;color:#674b40;font-weight:700}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow-y:auto;padding:1px 4px 10px 0;align-content:start;scrollbar-width:thin;scrollbar-color:#dcded4 transparent}.item-card{position:relative;background:#f1f2ea;border:1px solid #e8e9e0;border-radius:17px;padding:5px 5px 12px;min-height:130px;text-align:center;transition:.18s}.item-card:hover{transform:translateY(-2px);border-color:#bdc9af}.item-card.chosen{background:#f6e5d7;border:2px solid #d99073;padding:4px 4px 11px}.item-card img{width:100%;height:86px;object-fit:contain;display:block;pointer-events:none}.item-card b{font-size:11px;display:block;font-weight:600}.item-card .mini-plus{position:absolute;right:8px;top:8px;width:18px;height:18px;border-radius:50%;background:#fff9;color:#9aa18f;font-size:14px}.catalog-note{font-size:10px;color:#9caa93;display:flex;align-items:center;gap:6px;margin:15px 0 0;line-height:1.7}.catalog-note i{width:5px;height:5px;background:#b0c599;border-radius:50%}#world{position:relative;flex:1;min-width:0;overflow:hidden;background:#e7eee3}#scene{width:100%;height:100%;display:block;touch-action:none;outline:none}#world-caption{position:absolute;top:32px;left:34px;display:flex;align-items:center;gap:11px;pointer-events:none}#world-caption .sparkle{font-size:28px;color:#8b9c80}#world-caption b{display:block;font-size:15px;color:#697a62;letter-spacing:-.6px}#world-caption small{display:block;font-size:10px;color:#96a18b;margin-top:5px}#room-count{font-size:10px;background:#ffffff60;color:#88987d;border:1px solid #ffffff90;border-radius:20px;padding:5px 9px;margin-left:5px}.mode-switch{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);background:#fffdf7ed;padding:7px;border:1px solid #fff;border-radius:22px;display:flex;gap:4px;box-shadow:0 6px 24px #53624814;z-index:4;white-space:nowrap}.mode-switch button{padding:13px 20px;border-radius:15px;color:#989b8e;font-size:12px;display:flex;align-items:center;gap:8px}.mode-switch button span{font-size:19px;line-height:19px}.mode-switch button.active{background:#759b82;color:white;box-shadow:0 3px 6px #67867520}.camera-tools{position:absolute;right:23px;top:31px;display:flex;flex-direction:column;background:#fffdf8c9;padding:5px;border:1px solid #ffffffa0;border-radius:17px;box-shadow:0 4px 16px #8292770b;gap:3px}.camera-tools button{font-size:21px;width:36px;height:36px;border-radius:11px}.camera-tools button:hover{background:#dfe8d9}.camera-tools span{height:1px;background:#e5e7dc;margin:3px}#hint{position:absolute;top:97px;left:50%;transform:translateX(-50%);font-size:11px;color:#84937b;background:#fbfbf5a6;border:1px solid #fff8;padding:9px 17px;border-radius:30px;white-space:nowrap;pointer-events:none;z-index:2}.world-footer{position:absolute;bottom:16px;left:25px;right:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;font-size:10px;color:#8b9c80}.world-footer>span{display:flex;align-items:center;gap:6px}.world-footer i{width:5px;height:5px;background:#9bb18d;border-radius:50%}#help-button{pointer-events:auto;color:#7e9074}#help-button>span{margin-left:4px}#selection-panel{position:absolute;bottom:108px;left:50%;transform:translateX(-50%);min-width:330px;max-width:calc(100% - 36px);border-radius:20px;background:#fffdf8f5;border:1px solid white;box-shadow:0 8px 25px #43523f20;padding:14px 17px;z-index:4}.selection-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px}.selection-heading small{font-size:10px;color:#9b9e90}.selection-buttons{display:flex;gap:7px;align-items:center}.selection-buttons button{background:#edf0e5;border-radius:11px;padding:11px 12px;font-size:11px;white-space:nowrap;min-height:40px}.selection-buttons button.primary{background:#759b82;color:white;flex:1}.selection-buttons button.danger{color:#ba7a68}.color-options{display:flex;gap:7px;margin-top:12px}.color-options button{height:24px;width:24px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #e8e6de}.color-options button.active{box-shadow:0 0 0 2px #82977b}.panel-description{font-size:11px;line-height:1.8;color:#989f8f;margin:0 0 20px}.room-options{display:flex;flex-direction:column;gap:9px}.room-option{border:1px solid #e8e9df;border-radius:14px;padding:13px;display:flex;align-items:center;gap:12px;text-align:left;background:#f3f3ea}.room-option>span{display:grid;place-items:center;width:35px;height:35px;background:#fff9;border-radius:10px;font-size:20px}.room-option b{font-size:12px;display:block}.room-option small{font-size:10px;color:#a0a492;display:block;margin-top:4px}.room-option.active{border-color:#c4a28d;background:#f2e2d3}.sidebar-section-label{font-size:10px;font-weight:700;color:#9ba38f;letter-spacing:1px;margin:24px 0 11px}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.theme-button{padding:12px 6px;background:#f1f2ea;border-radius:11px;font-size:10px;border:1px solid #e8eadf}.theme-button.active{border-color:#aabb96;background:#e8eedf}.theme-dots{display:flex;justify-content:center;margin-bottom:7px;gap:3px}.theme-dots i{width:16px;height:16px;border-radius:50%;border:2px solid #fff9}.build-plus{position:absolute;border:2px dashed #89a77b;background:#eff6e7e0;color:#729563;border-radius:14px;width:48px;height:48px;font-size:27px;transform:translate(-50%,-50%);z-index:2;box-shadow:0 3px 12px #68835710}.build-plus:hover{background:#fff}.room-remove{font-size:11px;color:#bb806c;margin-top:15px;padding:10px;background:#f3e9e1;border-radius:10px;width:100%}.room-limit{font-size:10px;color:#999f8d;margin-top:14px}.play-intro{background:#eff0e7;border-radius:18px;padding:20px 16px;font-size:12px;line-height:1.8;text-align:center}.play-intro .big-bunny{font-size:58px;display:block;margin-bottom:12px}.play-intro h3{font-size:16px;margin:0 0 10px}.play-intro p{color:#8c9681;margin:0}.play-cards{display:grid;gap:10px;margin-top:16px}.play-card{padding:15px;background:#f4f1e7;border-radius:13px;font-size:11px;line-height:1.8}.play-card b{display:block;margin-bottom:3px}.play-card span{color:#929b85}#joystick{position:absolute;left:35px;bottom:111px;width:113px;height:113px;border:2px solid #fff9;border-radius:50%;background:#fcfff93d;touch-action:none;z-index:4;box-shadow:0 3px 12px #5166460b}.joystick-arrows{position:absolute;inset:5px;text-align:center;line-height:32px;color:#9aaf8e;font-size:20px;pointer-events:none}#joystick-knob{position:absolute;width:46px;height:46px;border-radius:50%;left:32px;top:32px;background:#fffdf2d9;border:1px solid #fff;box-shadow:0 4px 12px #6c856d20;pointer-events:none}.pill-button{background:#fffdf1ef;border:1px solid white;border-radius:20px;font-size:13px;padding:14px 19px;box-shadow:0 4px 16px #52644812}#interact{position:absolute;right:29px;bottom:175px;z-index:4;background:#e8bc9e;color:#674b39}.wave-button{position:absolute;right:29px;bottom:117px;z-index:4}.walk-tip{position:absolute;left:31px;bottom:92px;font-size:10px;color:#8d9d80}#loading{position:absolute;inset:0;background:#e9efe3;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}#loading .loading-house{font-size:60px;color:#ca8d74;animation:bob 1s ease-in-out infinite alternate}#loading b{font-size:15px}#loading span{font-size:12px;color:#9aa58d}@keyframes bob{to{transform:translateY(-9px)}}[hidden]{display:none!important}#toast{position:fixed;left:50%;top:105px;transform:translate(-50%,-15px);z-index:40;background:#536750ed;color:white;border-radius:17px;padding:13px 22px;font-size:12px;max-width:calc(100% - 28px);text-align:center;opacity:0;pointer-events:none;transition:.25s;line-height:1.6}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid white;border-radius:28px;box-shadow:0 18px 80px #40564440;background:#fffdf7;color:var(--ink);width:460px;max-width:calc(100% - 30px);padding:32px;text-align:center;max-height:calc(100dvh - 40px);overflow-y:auto}dialog::backdrop{background:#40513b66;backdrop-filter:blur(5px)}.close-dialog{position:absolute;right:15px;top:11px;font-size:27px;color:#a4aa9b;width:36px;height:36px}.dialog-icon{display:block;font-size:41px;color:#bd917c;margin-bottom:12px}dialog h2{font-size:21px;letter-spacing:-.9px;margin:0 0 13px}dialog>p{font-size:12px;line-height:1.9;color:#919b85}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0}.menu-grid>button,.menu-grid>a{background:#f1f2e8;border-radius:15px;padding:18px 9px;display:block}.menu-grid span{font-size:25px;color:#92a286;display:block;margin-bottom:9px}.menu-grid b{font-size:12px;display:block}.menu-grid small{font-size:9px;color:#98a08d;display:block;margin-top:5px}.small-note{font-size:10px!important;color:#a0a691!important;line-height:1.8!important}.text-button{font-size:11px;padding:12px}.danger{color:#bc8172}.primary-button{background:#779c82;color:white;padding:14px 20px;border-radius:14px;font-size:13px;font-weight:600}.secondary-button{background:#ecefe2;padding:14px 20px;border-radius:14px;font-size:13px}.help-steps{padding:0;list-style:none;text-align:left;margin:23px 0}.help-steps li{display:flex;align-items:flex-start;gap:12px;margin:17px 0}.help-steps li>span{width:27px;height:27px;background:#ebd8c5;border-radius:9px;display:grid;place-items:center;flex-shrink:0;font-size:12px;color:#9b755e}.help-steps b{font-size:12px}.help-steps p{font-size:11px;line-height:1.7;color:#919b85;margin:5px 0}.dialog-actions{display:flex;justify-content:center;gap:9px;margin-top:22px}#start-playing{width:100%;margin-top:12px}


/* Keep the editing tools in the page layout, never over the placement target. */
#app{height:100dvh;min-height:0;overflow:hidden;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.topbar{height:72px;min-height:72px;padding:8px 20px;gap:16px;z-index:5}
.brand{flex-shrink:0;gap:10px}.brand-mark{width:42px;height:42px;line-height:40px;font-size:35px;border-radius:13px}.brand b{font-size:24px}.brand small{font-size:9px;letter-spacing:.7px}
.top-actions{gap:6px;flex-shrink:0}.save-status{font-size:10px;margin-right:5px}.icon-button{width:44px;height:44px;min-width:44px;border-radius:12px}.catalog-toggle{font-size:12px;font-weight:700}.catalog-toggle[aria-expanded="false"]{background:#e5eee2;color:#55765b;box-shadow:inset 0 0 0 1px #bacdb5}
.mode-switch{position:static;left:auto;bottom:auto;transform:none;box-shadow:none;background:#f0f2e9;border:0;padding:4px;border-radius:16px;gap:3px;margin:0 auto}
.mode-switch button{height:44px;min-height:44px;padding:0 16px;border-radius:12px;gap:6px;font-size:12px;color:#788471}.mode-switch button span{font-size:19px}
.scene-status{display:flex;align-items:center;gap:16px;flex-shrink:0;min-height:30px;padding:4px 20px;background:#eff2e8;border-bottom:1px solid #e1e7d9;overflow:hidden}
#world-caption{position:static;display:flex;gap:7px;flex-shrink:0;pointer-events:none;min-width:0}#world-caption .sparkle{font-size:16px;line-height:20px}#world-caption b{font-size:11px;letter-spacing:-.3px}#world-caption small{display:none}#room-count{font-size:9px;padding:2px 7px;margin-left:1px;white-space:nowrap}
#hint{position:static;transform:none;background:none;border:0;padding:0;color:#73826b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:20px;border-radius:0}
main{flex:1;min-height:0;min-width:0;overflow:hidden}#sidebar{position:relative;width:266px;padding:20px 16px 14px;overflow:hidden}#app.catalog-collapsed #sidebar{display:none!important}#world{min-height:0;min-width:0}#scene{width:100%;height:100%;cursor:grab;user-select:none;-webkit-user-select:none}#scene.camera-dragging{cursor:grabbing}#scene.camera-panning{cursor:move}
.eyebrow{margin-bottom:8px}.free-badge{margin-bottom:15px}h1{font-size:18px;margin-bottom:12px}.categories{gap:5px;padding-bottom:12px;margin-bottom:12px}.category{min-height:44px;padding:8px 10px}.catalog{gap:9px}.item-card{min-height:121px}.item-card img{height:80px}.catalog-note{font-size:9px;margin-top:10px}
.camera-tools{position:absolute;right:10px;top:10px;display:flex;flex-direction:row;gap:2px;padding:3px;max-width:calc(100% - 20px);border-radius:14px;background:#fffdf6eb;box-shadow:0 2px 10px #60724d14;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#c8d6bd transparent;z-index:3;overscroll-behavior-x:contain}
.camera-tools button{width:44px;height:44px;min-width:44px;flex:0 0 44px;font-size:22px;border-radius:10px;line-height:1}.camera-tools span{display:none}.camera-tools button[aria-pressed="true"]{background:#759b82;color:white}.camera-tools button:focus-visible{outline-offset:-3px}
.world-footer{bottom:8px;left:14px;right:10px;font-size:9px}.world-footer>span{display:none}#help-button{display:grid;place-items:center;width:44px;height:44px;background:#fffdf5db;border:1px solid #fff8;border-radius:50%;font-size:17px;margin-left:auto}#help-button>span{display:none}
#selection-panel{position:static;left:auto;bottom:auto;transform:none;flex-shrink:0;width:100%;max-width:none;min-width:0;max-height:38dvh;overflow-y:auto;padding:8px max(16px,calc((100% - 700px)/2)) calc(8px + env(safe-area-inset-bottom));border:0;border-top:1px solid #dce4d6;border-radius:0;background:#fcfbf7;box-shadow:0 -3px 14px #5264420a;z-index:4}
.selection-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;line-height:18px;margin:0 0 5px;min-width:0}.selection-heading b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-heading small{color:#819076;font-size:10px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-buttons{display:flex;align-items:center;gap:6px;min-width:0}.selection-buttons button{height:44px;min-height:44px;min-width:44px;padding:0 13px;font-size:12px;border-radius:11px;white-space:nowrap}.selection-buttons button.primary{flex:1}.selection-buttons #color-toggle,.selection-buttons .color-toggle{background:#f4ecdf;color:#857057}.selection-buttons button[aria-expanded="true"]{box-shadow:inset 0 0 0 2px #c7b6a0}
.color-options{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;padding:4px}.color-options button{position:relative;width:36px;height:36px;min-width:36px;border-width:4px}.color-options button:after{position:absolute;content:"";inset:-5px}.color-options[hidden],[hidden]{display:none!important}
.room-option{min-height:58px}.theme-button{min-height:44px}.room-remove{min-height:44px}.room-limit{line-height:1.6}.build-plus{width:44px;height:44px;font-size:26px}.panel-description{margin-bottom:13px}.sidebar-section-label{margin:18px 0 9px}
#joystick{left:20px;bottom:34px;width:104px;height:104px}#joystick-knob{width:42px;height:42px;left:29px;top:29px}.joystick-arrows{line-height:29px}.walk-tip{left:17px;bottom:15px;font-size:9px}.wave-button{right:65px;bottom:20px;min-height:44px}#interact{right:18px;bottom:76px;min-height:44px}
#toast{top:116px;font-size:12px;max-width:calc(100% - 28px)}.close-dialog{min-width:44px;min-height:44px}.text-button{min-height:44px}

@media(min-width:1500px){#sidebar{width:304px;padding:26px 23px}.item-card{min-height:142px}.item-card img{height:100px}}
@media(max-width:1150px){.save-status{display:none}.topbar{padding:8px 14px;gap:10px}.mode-switch button{padding:0 12px}.brand small{display:none}#sidebar{width:244px;padding:18px 14px}.item-card img{height:74px}.item-card{min-height:114px}}
/* Portrait tablets and phones get one short, horizontally scrolling shelf. */
@media(max-width:900px){
 .topbar{height:108px;min-height:108px;padding:6px 12px;display:grid;grid-template-columns:1fr auto;grid-template-rows:44px 44px;gap:7px 8px}
 .brand{grid-column:1;grid-row:1;gap:8px}.brand-mark{width:34px;height:34px;line-height:32px;font-size:29px;border-radius:10px}.brand b{font-size:21px}.brand small{display:none}.top-actions{grid-column:2;grid-row:1;gap:4px}
 .mode-switch{grid-column:1 / -1;grid-row:2;width:100%;padding:0;gap:4px;background:none;border-radius:12px}.mode-switch button{flex:1;justify-content:center;padding:0 10px;border-radius:11px;font-size:12px;background:#f0f2e9}.mode-switch button.active{background:#759b82}
 .scene-status{min-height:27px;gap:10px;padding:3px 12px}#world-caption{gap:5px}#world-caption b{font-size:10px}#world-caption .sparkle{font-size:13px}#room-count{display:none}#hint{font-size:10px;line-height:20px}
 main{flex-direction:column-reverse}#sidebar{width:100%;height:186px;min-height:186px;padding:9px 12px 10px;border-right:0;border-top:1px solid var(--line);box-shadow:0 -3px 12px #52644208}.shelf-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;min-height:22px}.eyebrow{display:none}h1{font-size:13px;margin:0}.free-badge{font-size:9px;margin:0;padding:3px 8px}
 #shelf-content{display:block;min-height:0;overflow:auto;scrollbar-width:thin}.categories{flex-wrap:nowrap;gap:5px;border:0;margin:0 0 6px;padding:0;overflow-x:auto;scrollbar-width:none}.category{flex:0 0 auto;min-height:44px;padding:0 13px;font-size:10px;border-radius:9px}.catalog{display:flex;gap:7px;padding:0 0 4px;overflow-x:auto;overflow-y:hidden;align-items:stretch;scrollbar-width:none}.item-card{min-width:91px;width:91px;min-height:83px;padding:0 4px 7px;border-radius:12px;flex:0 0 91px}.item-card img{height:56px}.item-card b{font-size:10px}.item-card.chosen{padding:0 3px 6px}.item-card .mini-plus{right:5px;top:5px;width:17px;height:17px;font-size:13px}.catalog-note{display:none}
 #world{width:100%;min-height:0}.camera-tools{top:8px;right:8px;max-width:calc(100% - 16px)}
 #selection-panel{padding:7px 12px calc(7px + env(safe-area-inset-bottom));max-height:40dvh}.selection-heading{font-size:11px;line-height:17px;margin-bottom:4px}.selection-heading small{font-size:9px}.selection-buttons{gap:5px}.selection-buttons button{font-size:11px;padding:0 11px}.color-options{margin-top:6px}
 .panel-description{font-size:10px;line-height:1.5;margin:0 0 7px}.panel-description br{display:none}.room-options{flex-direction:row;gap:6px;overflow-x:auto}.room-option{flex:1;min-width:125px;min-height:48px;padding:6px 9px;gap:7px;border-radius:11px}.room-option>span{width:26px;height:28px;font-size:18px}.room-option b{font-size:10px}.room-option small{font-size:8px;margin-top:3px}.sidebar-section-label{margin:7px 0 5px;font-size:9px}.theme-options{display:flex;gap:5px}.theme-button{padding:5px 9px;display:flex;align-items:center;gap:5px;font-size:9px;flex:0 0 auto}.theme-dots{margin:0;gap:0}.theme-dots i{width:13px;height:13px;border-width:1px}.room-remove{font-size:10px;margin-top:7px;padding:8px}.room-limit{font-size:9px;margin:6px 0 0}
 .play-intro{padding:9px 12px;text-align:left;display:flex;gap:9px;align-items:center;border-radius:13px;font-size:10px}.play-intro .big-bunny{font-size:35px;margin:0}.play-intro h3{font-size:12px;margin:0 0 3px}.play-intro p{font-size:10px}.play-cards{display:flex;gap:7px;margin-top:7px}.play-card{flex:1;padding:7px 10px;font-size:9px;line-height:1.5}.play-card b{margin:0}.play-card span{font-size:9px}
 #joystick{left:16px;bottom:34px;width:92px;height:92px}#joystick-knob{width:38px;height:38px;left:25px;top:25px}.joystick-arrows{line-height:26px;font-size:17px}.walk-tip{left:13px;font-size:8px}.wave-button{right:62px;bottom:12px;font-size:11px;padding:10px 14px}#interact{right:15px;bottom:65px;font-size:11px;padding:10px 14px}.world-footer{right:8px;bottom:8px}
 #toast{top:145px;font-size:11px;padding:10px 14px;min-width:0}dialog{padding:28px 23px;border-radius:22px}dialog h2{font-size:19px}
}
@media(max-width:390px){.topbar{padding-left:8px;padding-right:8px;column-gap:4px}.brand{gap:5px}.brand-mark{width:29px;height:31px;font-size:27px;line-height:29px}.brand b{font-size:18px}.top-actions{gap:2px}.icon-button{font-size:23px;border-radius:10px}.catalog-toggle{font-size:11px}.scene-status{padding-left:9px;padding-right:9px;gap:8px}#world-caption{display:none}.selection-buttons button{padding:0 9px;font-size:10px}#selection-panel{padding-left:9px;padding-right:9px}.selection-heading small{max-width:68%}.mode-switch button{font-size:11px;gap:5px}.mode-switch button span{font-size:17px}}
/* Landscape keeps the shelf beside the canvas, and uses one header row. */
@media(max-height:560px) and (orientation:landscape){
 .topbar{display:flex;height:58px;min-height:58px;padding:6px 10px;gap:8px}.brand{gap:5px}.brand-mark{width:30px;height:32px;line-height:29px;font-size:28px}.brand b{font-size:18px}.brand small{display:none}.top-actions{gap:3px}.mode-switch{width:auto;padding:0;gap:3px;margin-left:auto}.mode-switch button{padding:0 10px;flex:none;font-size:11px}.mode-switch button span{font-size:17px}.scene-status{min-height:25px;padding:2px 10px;gap:10px}#world-caption b{font-size:10px}#hint{font-size:10px;line-height:20px}
 main{flex-direction:row}#sidebar{width:205px;height:auto;min-height:0;padding:10px;border-top:0;border-right:1px solid var(--line)}.shelf-heading{margin-bottom:7px}.eyebrow,.free-badge{display:none}.categories{flex-wrap:nowrap;margin-bottom:7px}.category{padding:0 10px}.catalog{display:grid;grid-template-columns:1fr 1fr;overflow-x:hidden;overflow-y:auto;gap:7px}.item-card{width:auto;min-width:0;min-height:83px}.item-card img{height:54px}#shelf-content{display:flex;min-height:0;overflow:auto}.panel-description{font-size:10px;margin-bottom:7px}.room-options{flex-direction:column;overflow:visible}.room-option{flex:none;min-height:48px}.theme-options{flex-wrap:wrap}.theme-button{min-height:44px}.play-intro{display:block}.play-intro .big-bunny{display:none}.play-cards{display:block}.play-card{margin-top:7px}
 .camera-tools{top:7px;right:7px;max-width:calc(100% - 14px);padding:2px;gap:1px;border-radius:12px}#selection-panel{padding:5px max(12px,calc((100% - 700px)/2)) calc(5px + env(safe-area-inset-bottom));max-height:40dvh}.selection-heading{margin-bottom:3px;font-size:11px;line-height:15px}.selection-heading small{font-size:9px}.selection-buttons button{font-size:11px}.color-options{margin-top:4px}
 #joystick{bottom:15px;left:15px;width:82px;height:82px}#joystick-knob{width:34px;height:34px;left:22px;top:22px}.joystick-arrows{line-height:23px}.walk-tip{display:none}.wave-button{bottom:9px;right:60px}#interact{bottom:61px;right:12px}.world-footer{bottom:7px;right:7px}#toast{top:87px}
}
@media(max-height:560px) and (max-width:700px) and (orientation:landscape){.brand b{display:none}.mode-switch button{padding:0 9px}.mode-switch button span{display:none}#sidebar{width:182px}.scene-status #world-caption{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Life controls stay outside the 3D canvas; inputs remain usable on touch screens. */
#life-panel{flex-shrink:0;background:#fcfbf7;border-top:1px solid #dce4d6;padding:5px max(16px,calc((100% - 840px)/2)) calc(7px + env(safe-area-inset-bottom));max-height:34dvh;overflow-y:auto}
.life-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.life-heading b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.life-heading .text-button{padding:0 10px;min-height:32px;font-size:11px}
#life-status{font-size:11px;line-height:1.5;margin:0 0 5px;color:#697b62;min-height:17px}.life-controls{display:flex;align-items:center;gap:12px}.needs{display:flex;gap:12px;flex:1;min-width:0}.needs label{font-size:10px;display:grid;grid-template-columns:auto auto;gap:2px 7px;flex:1;min-width:0}.needs meter{grid-row:2;grid-column:1/-1;width:100%;height:9px;accent-color:#759b82}.needs span{text-align:right;color:#819076;font-variant-numeric:tabular-nums}.auto-label{display:flex;align-items:center;gap:5px;min-height:44px;font-size:11px;white-space:nowrap}.auto-label input{width:19px;height:19px;accent-color:#759b82}#activity-cancel{min-height:44px;padding:0 12px;font-size:11px}#activity-progress{display:block;width:100%;height:5px;margin-top:5px;accent-color:#d5a787}
.resident-form{display:flex;flex-direction:column;gap:12px;margin:8px 0 14px}.resident-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}.resident-form input,.resident-form select,.quality-setting select{box-sizing:border-box;min-height:44px;width:100%;border:1px solid #dce4d6;border-radius:10px;background:#fffdf7;color:#536750;padding:8px 10px;font:inherit;font-size:16px}.resident-form button{min-height:44px}.life-help{font-size:12px;line-height:1.8;color:#788471}.quality-setting{display:flex;align-items:center;gap:12px;font-size:12px;text-align:left;margin:16px 0}.quality-setting select{flex:1;min-width:0;font-size:12px}
@media(max-width:900px){#life-panel{padding-left:12px;padding-right:12px}.life-controls{gap:8px}.needs{gap:8px}.needs label{font-size:9px}.resident-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0}.resident-form label{font-size:10px;min-width:0;gap:3px}.resident-form button{grid-column:1/-1;padding:6px}.life-help{font-size:10px;margin:8px 0}.life-heading .text-button{min-height:32px}.auto-label{font-size:10px}#activity-cancel{padding:0 9px}#sidebar:has(.resident-form){height:220px;min-height:220px}}
@media(max-width:390px){.life-controls{flex-wrap:wrap;gap:0 10px}.needs{flex-basis:100%}.auto-label{margin-right:auto}#life-panel{max-height:36dvh}#life-status{font-size:10px}}
@media(max-height:560px) and (orientation:landscape){#life-panel{padding-top:3px;padding-bottom:3px;max-height:32dvh}.life-heading{float:left;max-width:34%;margin-right:12px}.life-heading .text-button{min-height:26px}.life-controls{clear:both}.life-controls .auto-label,#activity-cancel{min-height:32px}#sidebar:has(.resident-form){height:auto;min-height:0}.resident-form{display:flex}.life-help{font-size:10px}}

#life-panel.not-moved-in .life-controls{display:none}
@media(max-width:700px) and (max-height:700px) and (orientation:portrait){
 #sidebar:has(.resident-form){height:140px;min-height:140px;padding-top:5px;padding-bottom:5px}
 #sidebar:has(.resident-form) .shelf-heading{min-height:18px;margin-bottom:2px}
 .resident-form{gap:4px;margin:0}.resident-form label{gap:2px;font-size:9px}.resident-form input,.resident-form select{min-height:36px;padding:5px 8px}.resident-form button{min-height:36px;padding:5px;font-size:11px}.life-help{font-size:10px;line-height:1.5;margin:5px 0}
 #life-panel{padding-top:2px;padding-bottom:4px}.life-heading .text-button{min-height:32px}.life-heading b{font-size:11px}#life-status{margin-bottom:2px;font-size:10px;line-height:1.35}
 #app:not(.catalog-collapsed) #life-panel .needs{display:none}#app:not(.catalog-collapsed) #life-panel .life-controls{flex-wrap:nowrap}.auto-label{min-height:36px}#activity-cancel{min-height:36px}
}

/* Short landscape screens keep one compact dock and generous touch targets. */
@media(max-height:560px) and (orientation:landscape){
 .topbar{height:52px;min-height:52px;padding:4px 8px;gap:6px}
 .scene-status{height:20px;min-height:20px;padding:0 10px}
 #app:has(#life-panel:not([hidden])) .scene-status{display:none}
 #sidebar{width:190px;padding:6px 8px}
 #sidebar:has(.resident-form){height:auto;min-height:0}
 .shelf-heading{margin-bottom:4px;min-height:20px}
 #shelf-content{overscroll-behavior:contain}
 .resident-form{flex:0 0 auto;gap:8px;margin:3px 0 8px}
 .resident-form input,.resident-form select,.resident-form button{min-height:44px}
 .resident-form label{gap:3px}.life-help{line-height:1.6}
 .camera-tools{width:184px;max-width:calc(100% - 112px);top:6px;right:6px;gap:1px;padding:2px;scrollbar-width:thin;overscroll-behavior-x:contain;touch-action:pan-x}
 .camera-tools button{flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px}
 #joystick{width:82px;height:82px;left:10px;bottom:10px}
 #joystick-knob{width:34px;height:34px;left:23px;top:23px}
 .wave-button{right:58px;bottom:6px;min-height:44px;padding:0 12px}
 #interact{right:8px;bottom:56px;min-height:44px;padding:0 12px}
 .world-footer{bottom:6px;right:6px}
 #life-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:44px auto;gap:2px 10px;max-height:none;padding:3px 8px 4px;overflow:visible}
 .life-heading{float:none;max-width:none;margin:0;grid-column:2;grid-row:1;gap:6px}
 .life-heading b{max-width:110px;font-size:10px}.life-heading .text-button{min-width:44px;min-height:44px;padding:0 8px}
 .life-controls{grid-column:1;grid-row:1;clear:none;min-width:0;gap:10px;flex-wrap:nowrap}
 .life-controls .auto-label,#activity-cancel{min-width:44px;min-height:44px;margin:0}
 .needs{gap:10px;min-width:0}.needs label{font-size:9px}.needs meter{height:10px}
 #life-status{grid-column:1/-1;grid-row:2;min-height:15px;margin:0;font-size:10px;line-height:15px;overflow-wrap:anywhere;white-space:normal}
 #activity-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;margin:0}
 #life-panel.not-moved-in .life-heading{grid-column:1/-1;justify-content:space-between}
 #selection-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:2px 10px;padding:3px 10px;max-height:none;overflow:visible}
 .selection-heading{grid-column:1/-1;font-size:10px;line-height:14px;min-height:14px;margin:0}
 .selection-heading small{font-size:9px;max-width:75%}
 .selection-buttons{min-width:0;gap:5px}.selection-buttons button{min-width:44px;min-height:44px;height:44px;padding:0 9px}
 #selection-panel:has(.color-options:not([hidden])){grid-template-columns:minmax(280px,1fr) minmax(140px,.7fr)}
 .color-options{gap:5px;justify-content:flex-start;min-width:0;margin:0;padding:0;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-width:thin}
 .color-options button{flex:0 0 44px;width:44px;min-width:44px;height:44px}.color-options button:after{inset:0}
 #toast{top:58px;max-width:min(480px,calc(100% - 24px));padding:7px 12px}
}
@media(max-height:560px) and (max-width:700px) and (orientation:landscape){
 #sidebar{width:176px}.life-heading b{display:none}#life-panel.not-moved-in .life-heading b{display:block;max-width:none}
 .life-controls{gap:8px}.needs{gap:8px}.life-heading .text-button{font-size:10px;padding:0 6px}
 #selection-panel{padding-left:8px;padding-right:8px;column-gap:8px}
}
@media(max-height:560px) and (orientation:landscape){
 .catalog-toggle{width:56px;min-width:56px;white-space:nowrap;padding:0 4px;font-size:10px}
 #toast{left:8px;top:58px;max-width:calc(100% - 210px);transform:translateY(-10px);text-align:left;line-height:1.45}
 #toast.show{transform:translateY(0)}
 #app:not(.catalog-collapsed) + #toast{left:198px;max-width:calc(100% - 408px)}
 #app:has(#life-panel[hidden]) + #toast{top:78px}
}
@media(max-height:560px) and (max-width:700px) and (orientation:landscape){
 #app:not(.catalog-collapsed) + #toast{left:184px;max-width:calc(100% - 394px)}
}
