@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;font-family:'Space Grotesk',system-ui,sans-serif;color:#e9f5ff;background:#0a1223;--mint:#74f3d0;--line:#2b405c}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 25%,#20344e 0,#101a31 42%,#0a1223 75%);min-height:100dvh}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#20334c;color:#e9f5ff;border-radius:12px;min-height:44px;padding:10px 14px;font-weight:600}button:hover{border-color:var(--mint)}button:disabled{opacity:.45;cursor:default}a{color:var(--mint);text-decoration:none}input,select{min-width:0;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;color:#edf5ff;background:#101c30;font-size:16px}input:focus,button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.world-app{max-width:1200px;margin:auto;padding:18px 24px 106px}.world-header{display:flex;align-items:center;gap:20px;padding:8px 0 20px;border-bottom:1px solid #23374f}.brand{font-size:20px;font-weight:700;letter-spacing:-.8px;color:#fff}.brand span{color:var(--mint);margin-left:5px}.world-tag{font-size:10px;letter-spacing:2px;color:#92b1c9}.coin-pill{margin-left:auto;border:1px solid #9c8653;background:#292b31;color:#ffdf8c;border-radius:24px;padding:10px 15px;font-size:13px;white-space:nowrap}.room-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 0 18px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mint);margin:0 0 7px}h1{font-size:clamp(22px,4vw,32px);letter-spacing:-1px;margin:0}#connectionStatus{font-size:12px;color:#a7bfd4;margin:7px 0 0}.small-button{font-size:12px;min-height:38px}.world-stage{position:relative;height:clamp(340px,59vh,640px);overflow:hidden;border:1px solid #385870;border-radius:24px;background:radial-gradient(ellipse at 50% 60%,#2b4960,#15283d 65%,#122235);box-shadow:0 25px 70px #02081788,inset 0 1px #88e5dd26}.world-stage canvas{width:100%;height:100%;display:block;image-rendering:pixelated;touch-action:none}.stage-label{position:absolute;top:16px;left:16px;font-size:11px;border:1px solid #4c7181;border-radius:20px;background:#172b3cd9;padding:7px 10px;display:flex;align-items:center;gap:6px;pointer-events:none}.live-dot{height:6px;width:6px;background:var(--mint);border-radius:50%}.stage-tools{position:absolute;right:12px;top:12px;display:flex;gap:5px}.stage-tools button{width:38px;min-height:38px;padding:5px;background:#172b3cdd}.stage-tip{position:absolute;bottom:12px;left:12px;right:12px;margin:0;text-align:center;font-size:11px;color:#bad0df;pointer-events:none}.world-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0 12px}.world-tools button{display:flex;gap:10px;align-items:center;justify-content:center;color:var(--mint);font-size:20px;background:#172a40;border-color:#355169;box-shadow:inset 0 1px #fff1}.world-tools span{font-size:13px;color:#e9f5ff}.chat-bar{display:flex;gap:8px;padding:7px;border:1px solid var(--line);border-radius:18px;background:#101d31}.chat-bar input{border:0;background:transparent}.chat-bar button,.primary{background:var(--mint);border-color:var(--mint);color:#0d2c31}.world-note{text-align:center;font-size:11px;color:#8ba4ba;margin:16px}.world-bottom{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:18px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:#0a1528f5;border-top:1px solid #283e55;z-index:15}.world-bottom a{display:grid;place-items:center;gap:2px;color:#8ea7bf;font-size:24px;min-width:64px;min-height:46px}.world-bottom span{font-size:10px}.world-bottom [aria-current]{color:var(--mint);background:#19354a;border-radius:12px}dialog{max-width:620px;width:calc(100% - 24px);max-height:85dvh;padding:0;border:1px solid #4d7385;border-radius:22px;background:#132238;color:#ecf5ff;box-shadow:0 24px 80px #0009}dialog::backdrop{background:#030b1bc2;backdrop-filter:blur(4px)}dialog>header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#193148;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}dialog h2{margin:0;font-size:20px}dialog header button{font-size:24px;line-height:1;padding:4px 12px;min-height:36px}#panelContent{padding:18px}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.item-card{min-width:0;border:1px solid #345269;background:linear-gradient(145deg,#203d50,#192b42);border-radius:16px;padding:12px}.item-card canvas{display:block;width:100%;height:105px;image-rendering:pixelated}.item-card h3{font-size:13px;margin:5px 0}.item-card p{font-size:11px;color:#b0c6d8;min-height:16px;margin:6px 0}.item-card button{width:100%;font-size:12px;min-height:40px;padding:8px}.panel-row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.panel-row strong{flex:1;min-width:80px}.panel-row button{font-size:11px;padding:8px 10px}.panel-form{display:flex;gap:8px;margin:14px 0}.muted{color:#a9c1d3;font-size:13px;line-height:1.6}.pill{font-size:10px;letter-spacing:.5px;padding:4px 7px;border:1px solid #aa914e;color:#ffe5a0;border-radius:6px}.filters{display:flex;gap:8px;overflow-x:auto;margin-bottom:15px;padding-bottom:5px}.filters button{font-size:11px;white-space:nowrap;min-height:34px;padding:7px 10px}.filters .selected{background:var(--mint);color:#103a38}.trade-offers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.trade-offers>div{padding:12px;background:#0e1c30;border-radius:12px;min-width:0}.trade-offers label{display:flex;gap:6px;align-items:center;font-size:12px;padding:7px 0}.trade-offers input{width:auto}.chat-message{padding:10px 0;border-bottom:1px solid #294156;font-size:13px;overflow-wrap:anywhere}.chat-message button{min-height:28px;padding:3px 7px;font-size:10px;margin-left:8px}#worldToast{pointer-events:none;position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:#244b51;border:1px solid var(--mint);border-radius:12px;padding:12px 18px;max-width:90%;z-index:40;font-size:13px}#placementHint{position:absolute;bottom:14px;left:10px;right:10px;background:#163b41ed;border:1px solid var(--mint);padding:10px;border-radius:12px;font-size:11px}#placementHint button{min-height:30px;font-size:11px;padding:4px 8px;margin-left:5px}.avatar-preview{height:200px;width:160px;margin:0 auto;position:relative}.avatar-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.world-app{padding:8px 12px 112px}.world-header{gap:8px;padding:12px 0}.world-tag{display:none}.brand{font-size:17px}.coin-pill{font-size:11px;padding:8px 10px}.room-heading{padding:17px 1px 13px}.world-stage{height:45dvh;min-height:310px;border-radius:19px}.world-tools{gap:6px;margin:12px 0 10px}.world-tools button{flex-direction:column;gap:3px;padding:9px 2px;font-size:19px}.world-tools span{font-size:10px}.world-bottom{gap:0;justify-content:space-around}.world-bottom a{min-width:0;flex:1;font-size:22px}.world-bottom span{font-size:9px}#panelContent{padding:14px}.world-note{font-size:10px;margin:12px 0}.chat-bar input{font-size:16px;padding:8px}.chat-bar button{font-size:12px;padding:9px}.stage-label{top:12px;left:12px;font-size:10px}}

.chat-bar button{white-space:nowrap;flex-shrink:0}.world-note{position:relative}.item-card button:disabled{opacity:.7}

/* Keep long presses on the room and controls out of iOS text selection. */
:where(.world-app,.world-bottom,dialog),:where(.world-app,.world-bottom,dialog) *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

.room-card{padding:8px 12px;margin:10px 0;border:1px solid #496075;border-radius:12px;background:#1a2b3f}.room-card .muted{margin:4px 0}.staff-greeting{padding:16px;border-radius:12px;background:#263b4b;color:#fff1d3;line-height:1.6}.world-tools{grid-template-columns:repeat(6,minmax(0,1fr))}

/* Room selection: a compact visual choice that works on phones. */
.room-picker-intro{color:#c1d7e5;font-size:14px;line-height:1.5;margin:0 0 16px}.room-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.room-layout-card{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;text-align:left;padding:10px;background:linear-gradient(150deg,#223b54,#101f35);border:1px solid #3b5871;border-radius:16px;transition:border-color .15s,background .15s}.room-layout-card[aria-pressed=true]{border:2px solid #7bf1d6;padding:9px;background:linear-gradient(150deg,#275650,#172a43);box-shadow:0 0 22px #74f3d018}.room-layout-card canvas{width:100%;height:auto;display:block;pointer-events:none}.room-layout-title{font-size:14px;font-weight:700;color:#f2fafb}.room-layout-detail{font-size:11px;line-height:1.5;color:#b7cfde;margin:4px 0 2px}.room-free{position:absolute;top:10px;right:10px;background:#163e3c;border:1px solid #579c8d;border-radius:20px;color:#a1ffe4;padding:3px 7px;font-size:9px;letter-spacing:1px}.room-name-label{display:block;font-size:12px;color:#b9d1df;margin:18px 0 7px}.room-create-button{display:block;width:100%;margin-top:18px;min-height:48px;box-shadow:0 5px 20px #61d9bd18}.room-layout-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center}.room-layout-card:last-child canvas{grid-row:1/4}.room-layout-card:last-child .room-layout-title{align-self:end}.room-layout-card:last-child .room-layout-detail{align-self:start}.room-layout-card:last-child .room-free{grid-column:2}.world-stage{box-shadow:0 24px 70px #02081788,inset 0 1px #b8fff22e}.live-dot{box-shadow:0 0 8px #74f3d077}
@media(prefers-reduced-motion:reduce){.room-layout-card{transition:none}}

/* A room-first layout: readable people and furnishings, compact hotel controls. */
.stage-tools{gap:4px;right:8px;top:8px}
.stage-tools button{width:auto;min-width:36px;min-height:40px;padding:5px 9px;font-size:12px;border-radius:8px}
.stage-tools button[aria-pressed=true]{color:#103b36;background:#8ef0cf;border-color:#b5ffe6}
.stage-label{top:12px;left:10px;padding:6px 8px}
.world-stage{border-radius:12px;background:radial-gradient(ellipse at 50% 60%,#304d58,#172e3b 70%,#102534)}
.world-tools button{border-radius:9px}
@media(max-width:600px){
 .world-app{padding:4px 8px 88px}
 .world-header{min-height:44px;padding:2px 0;gap:6px}
 .brand{font-size:16px}.coin-pill{padding:7px 9px;font-size:10px}
 .room-heading{min-height:66px;padding:7px 1px;gap:7px}
 .room-heading h1{font-size:22px;letter-spacing:-.6px}.eyebrow{font-size:9px;margin-bottom:2px}
 #connectionStatus{font-size:10px;line-height:1.3;margin:3px 0 0}
 #reconnect{min-height:40px;padding:7px 9px;font-size:11px;flex-shrink:0}
 .world-stage{height:calc(100svh - 294px - env(safe-area-inset-bottom));min-height:280px;max-height:720px;border-radius:12px}
 .stage-label{font-size:9px;max-width:120px}.stage-tools button{min-width:34px;padding:5px 8px}
 .stage-tip{font-size:10px;bottom:8px;line-height:1.35}
 .world-tools{gap:4px;margin:6px 0;height:48px}
 .world-tools button{min-height:44px;padding:4px 1px;font-size:16px;gap:1px}
 .world-tools span{font-size:clamp(8px,2.3vw,10px);letter-spacing:-.15px}
 .chat-bar{padding:3px 4px;gap:4px;border-radius:10px;min-height:44px}
 .chat-bar input{padding:6px;min-height:36px}.chat-bar button{min-height:36px;padding:6px 10px}
 .world-note{font-size:9px;line-height:1.4;margin:8px 0}
}

/* Comfortable iPhone controls, including while a piece is being arranged. */
.stage-tools button{min-width:44px;width:44px;min-height:44px}
#placementHint button{min-height:44px;min-width:64px;font-size:12px}
#placementHint{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
#placementHint[hidden]{display:none}
#placementInstructions{flex-basis:100%}
#placingName{flex-basis:100%;min-width:0;overflow-wrap:anywhere}
#placementHint button{flex:1;margin-left:0;white-space:nowrap}
@media(max-width:360px){.stage-tools{gap:3px;right:8px}.stage-label{top:64px;left:10px}}

[hidden]{display:none!important}.world-entry{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 20px;border:1px solid #41667c;border-radius:24px;background:radial-gradient(ellipse at top,#284b59,#132239 70%)}.world-entry h2{font-size:26px;margin:12px 0}.world-entry p{max-width:380px;color:#b5cddd;line-height:1.5}.world-entry p:last-child{font-size:12px}.world-entry .primary{min-width:230px;min-height:52px;font-size:17px}.entry-door{font-size:58px;color:#85f7d6;text-shadow:0 0 28px #74f3d066}#worldSignIn{margin-top:18px}#worldConnected .world-tools{grid-template-columns:repeat(6,minmax(0,1fr))}

#worldCanvas{touch-action:none;overscroll-behavior:contain;-webkit-touch-callout:none;user-select:none}.decor-room-preview{display:block;width:100%;max-width:360px;height:auto;margin:12px auto;border-radius:18px;border:1px solid #6cb8b7}.owned-label{color:#92ffe0;font-weight:700}

.world-shell button.danger, #worldPanel button.danger {color:#ffe9ef;border-color:#ff6b92;background:#542039;}

.world-wallet-balance{display:block;color:#ffe18b;font-size:40px;line-height:1.2;margin:8px 0}.world-wallet-buy{display:flex;justify-content:center;align-items:center;min-height:48px;padding:10px 18px;margin:16px 0;border-radius:14px;background:linear-gradient(110deg,#ffe5a0,#f8be59);color:#18243a;font-weight:800}.stage-tip{width:fit-content;max-width:calc(100% - 24px);margin:0 auto;padding:5px 9px;border-radius:8px;background:#102337dd;color:#e2f4f6}

.room-occupancy{color:#8ef3dd;font-size:13px;margin:6px 0;font-weight:700}

.first-visit-hint{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-bottom:10px;border:1px solid #55c9bf;border-radius:14px;background:#132d3b}.first-visit-hint[hidden]{display:none}.first-visit-hint p{margin:0;font-size:.85rem;line-height:1.4}.first-visit-hint button{flex-shrink:0}.room-heading{flex-wrap:wrap}#panelContent input[readonly]{width:100%;box-sizing:border-box}

/* Match the familiar app navigation without loading game-wide page styles. */
.world-bottom{gap:2px;padding:5px 7px max(5px,env(safe-area-inset-bottom));background:rgba(5,14,26,.96)}
.world-bottom a{position:relative;flex:1;min-width:0;max-width:140px;min-height:47px;gap:2px;padding:4px 1px;border-radius:11px;color:#91a4bb;font-weight:600;line-height:1.2}
.world-bottom .world-nav-icon{font-size:18px;line-height:1}
.world-bottom .world-nav-label{font-size:10px;letter-spacing:.01em}
.world-bottom [aria-current="page"]{color:#f7fbff;background:rgba(47,140,255,.14)}
.world-bottom [aria-current="page"]::after{content:"";position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:18px;height:2px;border-radius:2px;background:linear-gradient(90deg,#2e91ff,#57dfff)}

/* Collection previews use the same original isometric art as the room. */
.world-inspiration{width:min(100%,340px);height:auto;image-rendering:pixelated;filter:drop-shadow(0 12px 16px #06122444)}
.world-entry{padding-top:14px;gap:3px}.world-entry h2{margin:0 0 6px}.world-entry p{margin:7px 0 12px}.world-entry .browse-decor{background:transparent;border-color:#61877b;color:#b9f4df;margin-top:8px;font-size:13px}
.collection-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.collection-card{min-width:0;border:1px solid #4c6470;border-top:3px solid var(--collection-color);border-radius:14px;padding:10px;background:linear-gradient(#254351,#192d40);display:flex;flex-direction:column}.collection-card canvas{width:100%;height:auto;image-rendering:pixelated}.collection-card h3{font-size:17px;margin:5px 0}.collection-card .collection-tag{font-size:8px;letter-spacing:1px;color:var(--collection-color);margin:5px 0}.collection-card .muted{font-size:12px;line-height:1.5;margin:4px 0;flex:1}.collection-card .collection-meta{font-size:10px;color:#cce6dc;line-height:1.5}.collection-card button{font-size:12px;padding:8px;margin-top:6px;border-color:var(--collection-color)}
.catalog-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.65fr);gap:8px;margin:12px 0}.item-footprint{color:#b8d6c8!important;font-size:11px!important}.item-card{background:linear-gradient(145deg,#243e4d,#172a3e)}.item-card canvas{image-rendering:pixelated;background:radial-gradient(ellipse,#73c6ac18,transparent 70%);border-radius:12px}.item-card button{width:100%}.room-invitation{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid #4f746e;background:#1a343c;padding:12px;border-radius:14px;margin:10px 0}.room-invitation>div{flex:1 1 200px}.room-invitation strong{font-size:13px;color:#e7f2d8}.room-invitation p{font-size:11px;color:#b5cfc8;margin:5px 0}.room-invitation button{font-size:12px}
@media(max-width:600px){.collection-showcase{grid-template-columns:1fr}.collection-card{display:grid;grid-template-columns:105px minmax(0,1fr);column-gap:12px}.collection-card canvas{grid-column:1;grid-row:1/5;align-self:center}.collection-card h3,.collection-card .collection-tag,.collection-card .muted,.collection-card .collection-meta{grid-column:2}.collection-card button{grid-column:1/3}.catalog-search{grid-template-columns:1fr}.world-inspiration{max-width:270px}.world-entry h2{font-size:24px}}

/* Public hangouts: original decor vignettes, readable on narrow phones. */
.hangout-card{border-color:color-mix(in srgb,var(--hangout-accent) 45%,#344960);background:linear-gradient(135deg,#1c3045,#172136);overflow:hidden;padding:14px}
.hangout-preview{display:block;width:100%;height:160px;object-fit:contain;background:radial-gradient(ellipse at center,#34505a66,transparent 70%);border-radius:10px}
.hangout-tag{font-size:11px;letter-spacing:.15em;font-weight:800;color:var(--hangout-accent);margin:8px 0}
.hangout-caption{font-size:12px;color:#adc3d1;margin:10px 0 0}.hangout-card .panel-row{gap:10px}.hangout-card button{min-height:44px}
@media(min-width:600px){.hangout-preview{height:190px}}

/* Compact room discovery keeps visit actions and counts in reach. */
.hangout-card{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:12px;padding:12px}
.hangout-card .hangout-preview{grid-column:1;grid-row:1/5;width:112px;height:120px;align-self:center}
.hangout-card .hangout-tag,.hangout-card .panel-row,.hangout-card .room-occupancy,.hangout-card .muted{grid-column:2}
.hangout-card .hangout-tag{font-size:9px;letter-spacing:.08em;margin:0 0 4px}
.hangout-card .panel-row{padding:0;border:0;gap:6px}.hangout-card .panel-row strong{font-size:15px;flex-basis:100%}.hangout-card .panel-row button{padding:7px 12px;font-size:12px}
.hangout-card .room-occupancy{font-size:12px;margin:5px 0}.hangout-card .muted{font-size:12px;line-height:1.4;margin:0}.hangout-card .hangout-caption{grid-column:1/-1;font-size:10px;margin:8px 0 0;color:#9eb4c3}
.catalog-collections{border:1px solid #41616d;border-radius:12px;margin:12px 0;padding:10px 12px}.catalog-collections summary{cursor:pointer;color:#b8eadc;font-size:13px;font-weight:600;min-height:24px;line-height:24px}.catalog-collections .collection-showcase{margin-bottom:0}
@media(max-width:360px){.hangout-card{grid-template-columns:86px minmax(0,1fr);column-gap:8px}.hangout-card .hangout-preview{width:86px;height:100px}.hangout-card .muted{font-size:11px}}

/* Furniture showroom uses the same sprites as the live room. */
.furniture-inspect{display:flex;flex-direction:column;align-items:center;width:100%;padding:0 0 .45rem;background:transparent;border:1px solid transparent;gap:.15rem;color:#9ce5d6;font-size:.8rem}
.furniture-inspect:hover,.furniture-inspect:focus-visible{background:#213d50;border-color:#75efd2}
.furniture-inspect canvas{pointer-events:none}
.furniture-stage{padding:12px;border:1px solid #476779;border-radius:18px;background:radial-gradient(ellipse at top,#294e5a,#12243b 75%);text-align:center}
.furniture-stage .decor-room-preview{width:100%;max-width:460px;margin:0 auto;border-radius:12px;image-rendering:pixelated}
.furniture-preview-status{font-size:.85rem;color:#b6ccd8;margin:.4rem 0 .7rem}
.preview-tones{display:flex;gap:8px;margin:14px 0}.preview-tones button{flex:1;padding:12px 8px}.preview-tones button[aria-pressed=true]{border-color:#75efd2;background:#254b50;color:#bffff0}
.furniture-price{font-size:1.3rem;font-weight:700;color:#f0d396}

.wishlist-save{color:#addfd8;background:#172b40;border-color:#476779;font-size:.85rem;padding:10px 12px;min-height:44px}
.wishlist-save[aria-pressed=true],.wishlist-filter[aria-pressed=true]{color:#ffcfdf;border-color:#d58ba7;background:#382f49}
.catalog-search .wishlist-filter{grid-column:1/-1;min-height:44px;font-size:.9rem;padding:10px 14px}
.wishlist-note{font-size:.8rem;color:#9bb4c5;margin:.5rem 0 1rem}

.furniture-colors{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.furniture-swatch{display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 12px}.furniture-swatch::before{content:"";width:20px;height:20px;background:var(--swatch);border:1px solid #ffffff99;border-radius:50%}.furniture-swatch[aria-pressed="true"]{outline:2px solid #a5f4d2;background:#29465b}.furniture-color-label{margin:10px 0 4px;font-weight:700}

.room-browser-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.room-browser-tabs button{flex:1;padding:10px 8px;font-size:13px;white-space:nowrap}.room-browser-tabs button[aria-pressed="true"]{background:#7cf3d5;color:#103a36;border-color:#7cf3d5}.room-browser-search{box-sizing:border-box;width:100%;margin-bottom:10px}.room-browser-search[hidden]{display:none}.room-browser-status:empty{display:none}

/* Compact room browser: one clear purpose per section. */
.room-browser-intro{font-size:12px;line-height:1.4;color:#aac6d5;margin:0 0 12px}
.room-browser-card{padding:12px;border-radius:16px;margin-bottom:10px}
.room-browser-card .panel-row{padding:0;border:0;gap:8px;align-items:center}
.room-browser-card .panel-row strong{font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.room-browser-card .panel-row button{font-size:12px;padding:8px 12px;flex-shrink:0}
.room-browser-card .room-occupancy{font-size:12px;margin:8px 0 4px}
.room-browser-card>.muted{font-size:12px;line-height:1.4;margin:0}
.room-browser-card.hangout-card{grid-template-columns:92px minmax(0,1fr);gap:3px 12px;min-height:126px}
.room-browser-card.hangout-card .hangout-preview{width:92px;height:104px;grid-row:1/5}
.room-browser-card.hangout-card .panel-row{display:flex;flex-wrap:nowrap}
.room-browser-card.hangout-card .panel-row strong{flex-basis:auto;flex:1}
.room-browser-card.hangout-card .hangout-tag{font-size:9px;margin:0}
.room-browser-card.hangout-card .room-occupancy{margin:3px 0}
.room-browser-card .room-delete{background:transparent;color:#a9bdcc;border-color:transparent;font-size:11px;min-height:44px;padding:8px 0;margin-top:2px;text-decoration:underline;text-underline-offset:3px}
.room-refresh{font-size:12px;background:transparent;min-height:44px;margin:0 0 4px}
.room-browser-management{border-top:1px solid #2b405c;padding-top:12px;margin-top:8px}
.room-browser-management[hidden]{display:none}
.room-browser-management>.primary{width:100%}
.room-browser-management>.muted{font-size:12px;line-height:1.4;margin:8px 0}
.room-browser-management>button:not(.primary){font-size:12px}
@media(max-width:360px){.room-browser-card.hangout-card{grid-template-columns:72px minmax(0,1fr);gap:3px 8px}.room-browser-card.hangout-card .hangout-preview{width:72px;height:92px}.room-browser-card .panel-row strong{font-size:14px}.room-browser-card .panel-row button{padding:8px;font-size:11px}}

/* Camera tools belong to the frame, so zooming never moves them off screen. */
.world-stage{padding-top:60px;height:clamp(320px,52svh,520px)}
.world-stage canvas{height:100%}
.stage-tools{top:8px;right:8px;gap:4px}
.stage-label{top:17px;left:10px}
@media(max-width:413px){.stage-label{top:60px}}
.world-bottom{background:#071322}
.world-app{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
.room-invitation{gap:6px;padding:8px 10px;margin:6px 0}
.room-invitation>div{flex:1 1 100%;font-size:12px}
.room-invitation p{display:none}
.room-invitation button{flex:1;min-height:44px;padding:6px 8px;font-size:11px}
@media(max-width:600px){
 .world-stage{height:clamp(300px,48svh,440px);min-height:300px;max-height:440px}
 .stage-tools{left:8px;right:8px;justify-content:flex-end}
 .stage-tools button{flex:0 0 44px;min-width:44px}
 .stage-tip{font-size:9px}
 .world-app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}

#placementHint{position:static;margin:6px 0;width:100%;font-size:11px}

#viewLeft,#viewRight{font-size:23px;line-height:1}

/* A compact guide and daily route stay outside the play surface. */
.first-visit-hint{flex-wrap:wrap;gap:8px}.first-visit-hint>div{flex:1 1 180px}.first-visit-hint strong{font-size:12px;color:var(--mint)}.first-visit-hint button{font-size:12px;padding:6px 10px}
.world-discovery{display:flex;gap:8px;margin:8px 0}.world-discovery button{font-size:12px;min-height:44px}.world-discovery #worldDaily{flex:1;color:#ffdf8c;border-color:#7c714e;background:#2b302f}
.daily-world-card{border:1px solid #3b5967;border-radius:16px;padding:14px;margin:10px 0;background:linear-gradient(120deg,#203e45,#172a3e)}.daily-world-card h3{margin:0;font-size:16px}.daily-world-card strong{display:block;color:var(--mint);margin:10px 0}.daily-world-card button,.daily-game-link{display:block;width:100%;text-align:center;min-height:44px;padding:12px}
.world-vip-showcase{border:1px solid #9276b7;border-radius:16px;padding:14px;margin:12px 0;background:linear-gradient(135deg,#302c49,#1d3446)}.world-vip-showcase>strong{color:#e2c9ff}.world-vip-link{display:block;min-height:44px;padding:12px 0;font-size:13px}.world-vip-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.world-vip-previews button{min-width:0;padding:5px;font-size:10px;background:#18293d}.world-vip-previews canvas{width:100%;height:auto}.world-vip-previews span{display:block}
.catalog-grid .item-card{display:flex;flex-direction:column;gap:6px;padding:12px}.item-card .furniture-inspect{min-height:152px;background:radial-gradient(ellipse at center,#478b8138,#14293c);border-color:#486978}.item-card .furniture-inspect canvas{width:100%;height:auto;max-height:170px;object-fit:contain}.item-card h3{margin:5px 0}.item-card p{margin:3px 0}.item-card .owned-label{color:#a4ffdb}.item-card .owned-place{margin-top:auto}.world-stage button,#placementHint button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media(max-width:600px){.catalog-grid{gap:8px}.catalog-grid .item-card{padding:9px}.item-card .furniture-inspect{min-height:140px}.first-visit-hint p{font-size:12px}}

#roomView{font-size:11px;padding:5px 3px}.world-vip-showcase summary{cursor:pointer;color:#e2c9ff;font-size:13px;font-weight:700;min-height:24px}.world-vip-showcase[open] summary{margin-bottom:12px}

.catalog-collections{margin:8px 0;border:1px solid #4a6478;border-radius:12px;padding:10px}.catalog-collections>summary{min-height:24px;cursor:pointer;font-size:12px;color:var(--mint);font-weight:600}.catalog-search{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.catalog-search input{grid-column:1/-1}.catalog-search .wishlist-filter{grid-column:auto;padding:8px;font-size:12px}.catalog-search select{padding:8px;font-size:13px}.catalog-search{margin:8px 0}.catalog-backpack{font-size:12px;padding:8px 12px}
@media(max-width:600px){.first-visit-hint{display:grid;grid-template-columns:1fr auto;padding:9px}.first-visit-hint>div{grid-column:1/-1}.first-visit-hint button{min-height:44px}.first-visit-hint[hidden]{display:none}}

/* Community discovery stays below the canvas so room gestures stay clear. */
.world-discovery{display:flex;gap:8px}.world-discovery button{flex:1;min-width:0;min-height:44px;padding:8px 5px}.community-menu{display:grid;grid-template-columns:1fr 1fr;gap:12px}.community-menu button{padding:18px;text-align:left}.community-menu strong,.community-menu span{display:block}.community-menu span{font-size:13px;font-weight:400;line-height:1.5;margin-top:8px;color:#aec5d8}
.reaction-choices{display:flex;gap:10px;flex-wrap:wrap}.reaction-choices button[aria-pressed="true"]{background:#235c55;border-color:var(--mint)}
.featured-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.featured-room-card,.room-invite-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#14243a;min-width:0}.featured-room-card canvas{width:100%;height:170px;display:block;background:#0e1b2c;border-radius:10px}.featured-room-card h3,.room-invite-card h3{overflow-wrap:anywhere}.featured-room-card>button{width:100%}.weekly-entry-label{display:block;color:var(--mint);font-size:12px;font-weight:700;margin:8px 0}.weekly-theme{font-size:28px;margin:12px 0}.weekly-complete{display:block;color:var(--mint);margin:16px 0}.room-invite-card{margin:12px 0}.room-invite-card button{margin:4px 8px 4px 0}
@media(max-width:520px){.featured-room-grid{grid-template-columns:1fr}.featured-room-card canvas{height:185px}.world-discovery button{font-size:12px}.community-menu{grid-template-columns:1fr}}

.weekly-steps{display:grid;gap:10px;padding-left:24px;margin:16px 0}.weekly-steps li{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#102137}.weekly-steps li::marker{color:var(--mint);font-weight:700}.weekly-steps strong{font-size:15px}.weekly-steps p{margin:5px 0 0;font-size:13px;line-height:1.45}.weekly-steps .is-complete{border-color:#37665f}.weekly-steps .is-complete strong{color:var(--mint)}.weekly-actions{display:grid;gap:8px}.weekly-actions button{width:100%}.daily-world-card p{margin:8px 0;font-size:13px;line-height:1.45}.daily-world-card strong{margin:8px 0}.daily-world-card .daily-game-link{padding:10px}

.guide-progress{display:inline-block;font-size:10px;color:#acc9d4;margin-left:8px}.guide-piece-grid{margin:14px 0}.guide-piece-grid .item-card>canvas{width:100%;height:100px}.guide-piece-grid .owned-label{font-size:12px;line-height:1.4}#panelContent .guide-piece-grid~button{margin:4px 8px 4px 0}#guideAction{background:#74f3d0;color:#103a38}#dismissWorldHint{background:transparent}#guideStep{line-height:1.4}

.guide-piece-grid{grid-template-columns:1fr}.guide-piece-grid .item-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:5px 10px;align-items:center}.guide-piece-grid .item-card>canvas{grid-column:1;grid-row:1/4;height:86px}.guide-piece-grid .item-card>:not(canvas){grid-column:2;margin:0}.guide-piece-grid .item-card h3{font-size:15px}.guide-piece-grid .item-card p{font-size:12px}.guide-piece-grid .item-card button{font-size:12px;min-height:44px}

/* Keep browsing controls compact and ownership visible before buying. */
.catalog-ownership{display:flex;gap:6px;margin:10px 0}.catalog-ownership button{flex:1;min-width:0;min-height:44px;padding:8px 4px;font-size:12px}.catalog-ownership [aria-pressed="true"]{background:var(--mint);border-color:var(--mint);color:#103a38}.item-card.item-owned{border-color:#72c9ac}.item-card .furniture-inspect{position:relative;padding-top:20px}.item-card .catalog-owned-badge{position:absolute;left:7px;top:6px;border:1px solid #7edabd;background:#143e35;color:#baffde;border-radius:7px;padding:3px 6px;font-size:10px;line-height:1.2}.item-card .owned-label{font-size:12px}.owned-location{font-size:12px;color:#bfdbd5;line-height:1.5}.catalog-grid .item-card>button:last-child{margin-top:auto}.catalog-ownership button:focus-visible{outline-offset:1px}.filters button{min-height:44px}

/* Backpack keeps item location and next action visible on narrow phones. */
.backpack-summary{color:var(--mint);font-size:14px;font-weight:700;margin:0 0 6px}.backpack-tools{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0}.backpack-tools input,.backpack-tools select{min-height:44px}.backpack-results{font-size:12px;color:#abc7d6;margin:10px 0}.backpack-results+button{margin:0 0 12px;min-height:44px;font-size:12px}.backpack-card .backpack-location{border:1px solid #6481a3;border-radius:7px;padding:5px 7px;font-weight:700;font-size:10px;color:#c9ddf1;align-self:flex-start;line-height:1.3}.backpack-card .backpack-location.stored{border-color:#559e8c;color:#a4ffdb;background:#173c35}.backpack-card .backpack-room{color:#e3f1fa;font-weight:600;overflow-wrap:anywhere}.backpack-card .backpack-detail{color:#9fb7ca}.backpack-card>canvas{height:110px;object-fit:contain}.backpack-grid .item-card>button{min-height:44px}.backpack-card .muted{line-height:1.5}.backpack-catalog{margin-top:16px;width:100%}@media(min-width:420px){.backpack-tools{grid-template-columns:1fr 1fr}.backpack-tools input{grid-column:1/-1}}

.pet-card canvas{width:100%;height:140px;object-fit:contain}.pet-purchase-preview{width:180px;height:140px;display:block;margin:auto}.pet-card button{min-height:44px}

/* Calm storefront: primary navigation, search, then the things you came to see. */
.shop-nav{display:flex;gap:6px;margin:0 0 12px}.shop-nav button{flex:1;min-width:0;min-height:44px;font-size:12px;padding:8px 5px}.shop-nav .selected{background:var(--mint);color:#103a38;border-color:var(--mint)}
.catalog-content .catalog-search{display:block;margin:0 0 8px}.catalog-search input{width:100%;min-height:44px}.catalog-refine{margin:0 0 8px;border-bottom:1px solid var(--line);padding:4px 0 8px}.catalog-refine summary{cursor:pointer;min-height:32px;padding:7px 2px;color:#b9d3df;font-size:12px}.catalog-refinements{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 0}.catalog-refinements select,.catalog-refinements button{min-height:44px;font-size:12px;padding:8px;min-width:0}.catalog-refinements .catalog-ownership{grid-column:1/-1;margin:0}.catalog-count{font-size:11px;color:#9fbaca;margin:8px 0}.catalog-content>.filters{margin:0 0 6px}.catalog-content>.filters button{font-size:11px;padding:7px 11px;min-height:38px}.catalog-content .item-footprint,.catalog-content .item-footprint+p{display:none}.catalog-content .item-card h3{font-size:13px;line-height:1.35}.catalog-content .item-card .wishlist-save{font-size:11px;padding:5px;min-height:32px;background:transparent;border-color:transparent;color:#b3ced9}.catalog-content .item-card .furniture-inspect{min-height:120px;padding:9px}.catalog-content .furniture-inspect span:not(.catalog-owned-badge){font-size:10px}.catalog-content .catalog-collections{margin:4px 0 6px;padding:6px 9px;border-color:#2b405c}.catalog-content .catalog-collections>summary{font-size:11px}
.pet-grid{grid-template-columns:1fr;gap:10px}.pet-grid .pet-card{display:grid;grid-template-columns:106px minmax(0,1fr);gap:6px 12px;padding:14px;align-items:center;background:linear-gradient(135deg,#254454,#172c40)}.pet-grid .pet-card>canvas{grid-column:1;grid-row:1/6;width:106px;height:130px;background:radial-gradient(ellipse,#91dbc126,transparent 70%);border-radius:18px}.pet-grid .pet-card>:not(canvas){grid-column:2;margin:0}.pet-grid .pet-card h3{font-size:16px;line-height:1.3}.pet-grid .pet-card p{font-size:11px;line-height:1.4}.pet-grid .pet-card button{font-size:11px;padding:8px;min-height:40px}.pet-grid .pet-card>button:last-child{margin-top:0}.pet-grid .pet-card button:not(.primary){background:#1e3649}.pet-grid .pet-card .primary{box-shadow:0 3px 12px #061b3028}
@media(min-width:700px){.pet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:350px){.pet-grid .pet-card{grid-template-columns:82px minmax(0,1fr);gap:6px 8px;padding:10px}.pet-grid .pet-card>canvas{width:82px}}

.pet-interactions{display:flex;gap:10px;margin:14px 0}.pet-interactions button{flex:1;min-height:48px}.pet-interactions~button{margin:4px 8px 4px 0}

/* Friends keep visiting and talking within easy reach on a phone. */
.friends-summary{color:var(--mint);font-size:14px;font-weight:700;margin:0 0 12px}.friends-invitations{width:100%;margin-bottom:12px;min-height:44px}.friends-search{width:100%;min-height:44px}.friends-tabs{display:flex;gap:6px;margin:10px 0}.friends-tabs button{flex:1;min-width:0;min-height:44px;padding:8px 4px;font-size:12px}.friends-tabs [aria-pressed="true"]{background:var(--mint);border-color:var(--mint);color:#103a38}.friends-results{font-size:12px;color:#abc7d6;margin:8px 0}.friends-list{display:grid;gap:10px}.friend-card{min-width:0;padding:14px;border:1px solid #3d596d;border-radius:16px;background:linear-gradient(130deg,#203b4c,#14273b)}.friend-heading{display:flex;gap:10px;align-items:center;margin-bottom:12px}.friend-heading>div{min-width:0}.friend-initial{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:14px;background:#32536a;color:#c1ffe7;font-weight:700;font-size:20px}.friend-heading h3{margin:0;font-size:16px;overflow-wrap:anywhere}.friend-presence{margin:4px 0 0;font-size:12px;color:#b6c6d4}.friend-presence.is-online{color:#9ff3cc}.friend-presence.is-online::before{content:'● ';font-size:10px}.friend-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.friend-actions button{min-width:0;min-height:44px;font-size:12px;padding:8px}.friend-actions button:first-child{grid-column:1/-1}.friend-options{margin-top:8px;font-size:12px;color:#aec5d8}.friend-options summary{cursor:pointer;min-height:44px;padding:14px 0}.friend-options button{min-height:44px;color:#ffd0d0}.friends-add{margin:18px 0 12px;padding-top:14px;border-top:1px solid var(--line)}.friends-add h3{font-size:15px;margin:0 0 8px}.friends-add .panel-form{display:flex;flex-wrap:wrap;gap:8px}.friends-add input{flex:1 1 140px;min-width:0;min-height:44px}.friends-add button{min-height:44px;font-size:12px}

.mission-summary{font-size:18px;font-weight:750;line-height:1.4;color:var(--mint)}.mission-state{display:block;font-size:11px;font-weight:750;letter-spacing:.07em;margin-bottom:8px;color:#c4d4e4}.daily-world-card.is-ready{border:2px solid var(--mint)}.daily-world-card.is-claimed{background:#14243a;border-color:var(--line)}.daily-world-card.is-claimed .mission-state{color:var(--mint)}

.placement-success{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;margin:12px 0;border:1px solid var(--mint);border-radius:14px;background:#153b3c}.placement-success[hidden]{display:none}.placement-success p{flex:1 1 220px;margin:0}.placement-success strong,.placement-success span{display:block}.placement-success span{margin-top:5px;font-size:13px;line-height:1.45;color:#d6e5ec}.placement-success button{min-height:44px}

#placementStatus{display:block;flex-basis:100%;font-size:.8rem;color:#a6ffd0}#placementStatus[data-valid="false"]{color:#ffc0cb}

.catalog-reset{min-height:44px;margin:0 0 10px;font-size:12px;padding:8px 14px}.catalog-reset[hidden]{display:none}

/* Large placement actions stay below the room so every floor tile remains touchable. */
@media(max-width:600px){#placementHint{position:relative;bottom:auto;left:auto;right:auto;margin:12px 0;z-index:16;display:grid;grid-template-columns:1fr 1fr;padding:12px;gap:8px;background:#123340;box-shadow:0 8px 28px #0007}#placementHint[hidden]{display:none}#placingName{grid-column:1/-1;grid-row:1;font-size:14px}#placementInstructions,#placementStatus{grid-column:1/-1;line-height:1.4;margin:0}#placementHint button{min-height:48px;min-width:0;font-size:13px}#dropItem{grid-column:1/-1;font-size:15px!important}#returnItem{grid-column:1/-1;grid-row:7}#cancelPlace{border-color:#688591}#placementStatus[data-valid="false"]{color:#ffd4a4}}

/* Keep ownership actions compact so one purchase cannot stretch its neighbors. */
.catalog-content .catalog-grid{align-items:start}
.catalog-content .catalog-grid .item-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;align-content:start}
.catalog-content .catalog-grid .item-card>*{grid-column:1/-1;min-width:0}
.catalog-content .catalog-grid .item-card .owned-label{display:none}
.catalog-content .catalog-grid .item-card .owned-location{margin:0;font-size:10px;line-height:1.35;min-height:0}
.catalog-content .catalog-grid .item-card>button:last-child,.catalog-content .catalog-grid .item-card .owned-place{margin-top:0;min-height:44px}
.catalog-content .catalog-grid .has-owned-action>.owned-place{grid-column:1}
.catalog-content .catalog-grid .has-owned-action>.owned-place+button{grid-column:2;font-size:11px;padding:6px 3px}
.catalog-content .catalog-grid .item-card .furniture-inspect canvas{height:100px;max-height:100px;object-fit:contain}

/* Keep placement reachable without scrolling between the preview and Save. */
.room-rename{min-height:44px;margin:4px 8px 4px 0}.room-rename[hidden]{display:none}
#renameRoomName{width:100%;box-sizing:border-box;min-height:48px}
.is-guided-placing #firstVisitHint{display:none}
@media(max-width:600px){
 .is-guided-placing .world-stage{height:45dvh;min-height:250px}
 .is-guided-placing #placementHint{position:sticky;bottom:calc(62px + env(safe-area-inset-bottom));gap:6px;padding:10px}
 .is-guided-placing #placementInstructions{font-size:11px}.is-guided-placing #placementStatus{font-size:12px}
 .is-guided-placing #placementHint button{min-height:48px;padding:9px}
}
