/* The family rooms share the same calm palette and spacing as the garden. */
body.has-site-shell{--ink:#35473b;--muted:#66745f;--primary:#416b50;--primary-dark:#31553d;--lavender:#edf2e5;--line:#e2e6da;--cream:#f8f6ef;background:#f8f6ef;padding:0;color:var(--ink);font-size:16px}
.has-site-shell .app-shell,.has-site-shell .app-shell.is-editor{width:min(100%,1440px);margin:auto;min-height:calc(100dvh - 80px);border-radius:0;box-shadow:none;background:#f8f6ef;overflow:clip}
.has-site-shell .topbar{position:relative;top:auto;min-height:58px;padding:8px 4%;background:transparent;backdrop-filter:none;justify-content:flex-end;gap:12px}
.has-site-shell .topbar .brand,.has-site-shell .topbar .game-entry{display:none}
.has-site-shell #bottom-nav{display:none!important}
.has-site-shell #app-main{padding:0 4% 36px;max-width:none}
.has-site-shell .dashboard,.has-site-shell .family-view,.has-site-shell .rewards-view{gap:20px;align-items:start}
.has-site-shell :is(.child-card,.avatar-studio,.reward-invite,.access-card,.setup-card,.reward-card,.reward-summary,#editor-controls-slot,.placement-controls){border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:none}
.has-site-shell :is(.avatar-studio,.reward-invite,.access-card,.setup-card,.reward-card){padding:22px;margin:0;min-width:0}
.has-site-shell :is(h1,h2,h3,p){overflow-wrap:break-word}
.has-site-shell :is(.welcome-row,.family-page-heading,.editor-heading){margin:0;min-width:0}
.has-site-shell :is(.family-page-heading,.welcome-row) h1{font-size:clamp(26px,3vw,32px);line-height:1.3;margin:4px 0}
.has-site-shell .eyebrow{font-size:13px;color:var(--primary);letter-spacing:.025em}
.has-site-shell .vrm-help{font-size:14px;line-height:1.7;color:var(--muted)}
.has-site-shell :is(.primary-button,.upload-button,.text-button){min-height:48px;font-size:16px;box-shadow:none;line-height:1.4}
.has-site-shell :is(.primary-button,.upload-button){border-radius:12px}
.has-site-shell :is(.space-option,.editor-tabs button,.interaction-modes button,.camera-controls button,.greeting-controls select,.studio-actions button,.greeting-controls button){border-color:var(--line);font-size:16px;min-height:48px}
.has-site-shell :is(.space-option.selected,.editor-tabs [aria-pressed="true"],.interaction-modes [aria-pressed="true"]){background:#edf2e5;border-color:#416b50;color:#31553d}
.has-site-shell :is(.interaction-hint,.placement-controls){background:#eef3e9;border-color:#b9cbae}
.has-site-shell .onboarding{max-width:1000px;margin:0 auto}
.has-site-shell .hero-art{height:140px;margin:0 auto;transform:scale(.75);transform-origin:center center}
.has-site-shell .onboarding h1{font-size:clamp(28px,4vw,36px);margin-top:8px}
.has-site-shell .onboarding .lead{font-size:16px;margin:12px auto 28px;max-width:42em}
.has-site-shell .access-card,.has-site-shell .setup-card{width:100%;min-width:0}
.has-site-shell .family-game-card{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid #dbe4d2;border-radius:18px;background:#eef3e5;text-decoration:none;color:#31553d;margin:0}
.family-game-card>span:first-child{font-size:32px}.family-game-card>div{flex:1;min-width:0}.family-game-card strong{font-size:19px;display:block;margin-bottom:6px}.family-game-card small{font-size:15px;line-height:1.7;display:block}.family-game-card>span:last-child{font-size:22px}
.has-site-shell .avatar-studio>.section-heading{margin:0}.has-site-shell .avatar-studio>h2,.has-site-shell .avatar-studio h2{font-size:23px}
.has-site-shell .avatar-studio>.vrm-help{margin:8px 0 16px}
.has-site-shell .avatar-result{margin:0}.has-site-shell .avatar-stage{height:clamp(340px,43vw,650px);width:100%;min-width:0;border-radius:18px}
.has-site-shell :is(.space-controls,.space-surface,.studio-viewport){min-width:0}
.has-site-shell .studio-viewport{gap:12px}
.has-site-shell .studio-viewport.is-ready>#vrm-status:not(.is-error){display:none}
.has-site-shell .studio-viewport.is-ready:not(.has-avatar-error)>#avatar-default{display:none}
.has-site-shell .home-decorate-link{margin-top:16px;width:100%}
.has-site-shell .reward-invite h2{font-size:21px;margin:0 0 8px}.has-site-shell .reward-invite p{font-size:16px;line-height:1.7;margin:0 0 16px}
.has-site-shell .points-pill{border-color:#dfe5d3}
.has-site-shell .app-shell[data-view="rewards"] .topbar{min-height:26px;padding-top:0;padding-bottom:0}
.has-site-shell .app-shell[data-view="rewards"] .points-pill{display:none}
/* Native disclosure controls remain keyboard and screen reader accessible. */
.has-site-shell .family-panel{display:block;min-width:0;padding:0;margin:0;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:none}
.has-site-shell .family-panel>summary{display:flex;position:relative;flex-wrap:wrap;gap:4px;padding:18px 46px 18px 18px;min-height:58px;list-style:none;font-size:17px;line-height:1.5;font-weight:800;color:var(--ink);cursor:pointer}
.has-site-shell .family-panel>summary::-webkit-details-marker{display:none}
.has-site-shell .family-panel>summary::after{content:'＋';position:absolute;right:17px;top:19px;font-size:20px;line-height:1.2;font-weight:500;color:var(--primary)}
.has-site-shell .family-panel[open]>summary::after{content:'−'}
.has-site-shell .family-panel>summary small{display:block;flex-basis:100%;font-size:14px;line-height:1.5;font-weight:400;color:var(--muted)}
.has-site-shell .family-panel>summary:focus-visible{outline:3px solid #416b50;outline-offset:2px;border-radius:16px}
.has-site-shell .family-panel[open]>summary{border-bottom:1px solid var(--line)}
.has-site-shell .family-panel-body,.has-site-shell .model-tools-content{padding:18px;display:grid;gap:12px;min-width:0}
.has-site-shell .family-panel-body>p{margin:0;line-height:1.7}.has-site-shell .family-panel-body>h2{font-size:20px;margin:0}
.has-site-shell .family-panel-body .upload-button{width:100%}
.has-site-shell .family-panel.compact-panel{border-radius:12px;background:#fafbf7}
.has-site-shell .compact-panel>summary{font-size:16px;padding:14px 42px 14px 14px;min-height:48px}
.has-site-shell .compact-panel>summary::after{top:15px;right:14px}
.has-site-shell .compact-panel .family-panel-body{padding:14px}
.has-site-shell .avatar-help{margin-top:12px}
.has-site-shell .avatar-help .avatar-scene-controls{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.has-site-shell .avatar-help .avatar-scene-controls button{font-size:15px;min-height:48px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink)}
.has-site-shell .avatar-help .avatar-model-info{font-size:14px;width:fit-content;background:#eef3e9;border-color:var(--line);color:#416b50}
.has-site-shell #avatar-description{font-size:14px;color:var(--muted)}
.has-site-shell .is-editor .avatar-help{display:none}
.has-site-shell .guardian-upload-card .upload-illustration{display:none}
.has-site-shell .guardian-upload-card .upload-copy p{font-size:14px;line-height:1.7}.has-site-shell .guardian-upload-card .upload-copy h2{font-size:19px}
.has-site-shell .family-profile-label{font-size:14px;color:var(--muted);white-space:nowrap}
.has-site-shell .child-card{padding:18px;margin:0;gap:14px}.has-site-shell .child-avatar{width:58px;height:58px;font-size:38px;flex-shrink:0;background:#edf2e5}.has-site-shell .child-card h2{font-size:24px;margin:7px 0}.has-site-shell .child-card p{font-size:14px;line-height:1.6}
.has-site-shell .privacy-badge{background:#edf2e5;color:#416b50}
.has-site-shell .family-view>.access-card{display:grid;gap:12px}.has-site-shell .family-view>.access-card>p{margin:0}
.has-site-shell .family-view>.access-card h2{font-size:21px;margin:0}
.has-site-shell .reward-summary{background:#edf2e5;padding:22px}.has-site-shell .reward-summary strong{color:#31553d;font-size:30px}
.has-site-shell .reward-reset-help{margin:0}.has-site-shell #reward-status{margin:0;font-size:16px;min-height:24px}
.has-site-shell .reward-card h2{font-size:21px}.has-site-shell .reward-card p{font-size:16px;line-height:1.7}
.has-site-shell .reward-card .vrm-help{font-size:14px}
.has-site-shell .reward-card .play-mission{padding:14px 0;margin:0;gap:12px}.has-site-shell .play-mission h3{font-size:17px}.has-site-shell .play-mission p{font-size:14px;line-height:1.6}
.has-site-shell .reward-card .play-mission .upload-button{width:auto;min-width:104px}
.has-site-shell .reward-badge{background:#edf2e5;color:#416b50}
.has-site-shell .attendance-days li{background:#fafbf7}.has-site-shell .attendance-days .is-claimed{background:#eef3e5;border-color:#c7d5bb}
.has-site-shell .reward-rules>p{padding:0 18px 18px;margin:18px 0 0;font-size:14px;line-height:1.7}
.has-site-shell .ledger-list{margin:0}.has-site-shell .ledger-copy strong{font-size:16px;line-height:1.5}.has-site-shell .ledger-copy small{font-size:13px;line-height:1.5}.has-site-shell .ledger-item{gap:14px}
.has-site-shell .editor-heading{position:relative;top:auto;background:transparent;padding:0 0 8px;grid-column:1/-1;gap:16px}
.has-site-shell .editor-heading h1{font-size:clamp(23px,3vw,30px);line-height:1.3}.has-site-shell .editor-heading .eyebrow{margin:0 0 4px}
.has-site-shell .editor-heading .primary-button{font-size:16px;min-height:48px;padding:10px 16px}
.has-site-shell #editor-stage-slot{top:18px;background:#f8f6ef}
.has-site-shell #editor-controls-slot{padding:16px;min-width:0}
.has-site-shell .is-editor .space-controls{padding:0;border:0;background:transparent;gap:14px}
.has-site-shell .space-summary{font-size:15px}.has-site-shell .space-options{gap:8px}
.has-site-shell .space-option{font-size:16px;min-width:0}.has-site-shell .space-option span:first-child{font-size:25px}
.has-site-shell .editor-tabs button{font-size:16px;word-break:keep-all}
.has-site-shell .interaction-hint{font-size:15px;line-height:1.6}
.has-site-shell .space-dialog .avatar-stage{height:100%;aspect-ratio:auto}
@media(min-width:1000px){
 .has-site-shell .onboarding{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;align-items:start}
 .has-site-shell .onboarding>.hero-art,.has-site-shell .onboarding>.eyebrow,.has-site-shell .onboarding>h1,.has-site-shell .onboarding>.lead{grid-column:1/-1}
 .has-site-shell .onboarding>.access-card{grid-column:1}.has-site-shell .onboarding>.setup-card{grid-column:2;grid-row:5 / span 2;margin-top:0}
 .has-site-shell .dashboard{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}
 .has-site-shell .dashboard>.welcome-row{grid-column:1/-1}
 .has-site-shell .dashboard>.avatar-studio{grid-column:1;grid-row:2 / span 3}
 .has-site-shell .dashboard>.family-game-card{grid-column:2;grid-row:2;align-items:flex-start}.has-site-shell .dashboard>.reward-invite{grid-column:2;grid-row:3}
 .has-site-shell .dashboard>.family-game-card>span:first-child{font-size:25px}.has-site-shell .dashboard>.family-game-card>span:last-child{display:none}
 .has-site-shell .avatar-stage{height:clamp(430px,45vw,610px)}
 .has-site-shell .editor-view{grid-template-columns:minmax(0,1.8fr) minmax(320px,1fr);gap:14px 24px}
 .has-site-shell .is-editor .avatar-stage{height:clamp(400px,44vw,600px);aspect-ratio:auto}
 .has-site-shell .rewards-view{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px 24px}
 .has-site-shell .rewards-view>.family-page-heading,.has-site-shell .rewards-view>.reward-summary,.has-site-shell .rewards-view>.reward-reset-help,.has-site-shell #reward-status{grid-column:1/-1}
 .has-site-shell #family-missions-panel{grid-column:1;grid-row:5 / span 3}
 .has-site-shell .rewards-view>article.reward-card{grid-column:2;grid-row:5}
 .has-site-shell #family-demo-panel{grid-column:2;grid-row:6}.has-site-shell #rewards-history-slot{grid-column:2;grid-row:7}
 .has-site-shell .rewards-view>.reward-rules{grid-column:1/-1}.has-site-shell .rewards-view>.upload-button{grid-column:1/-1}
 .has-site-shell .family-view{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
 .has-site-shell .family-view>.family-page-heading{grid-column:1/-1}.has-site-shell .family-view>.access-card{grid-column:1;grid-row:2}.has-site-shell #family-details-slot{grid-column:2;grid-row:2 / span 2;grid-template-columns:1fr;gap:16px}
 .has-site-shell #family-session-panel{grid-column:1;grid-row:3}
}
@media(min-width:781px) and (max-width:999px){.has-site-shell .app-shell{width:100%}.has-site-shell #family-details-slot{grid-template-columns:1fr 1fr}.has-site-shell #family-details-slot>.child-card{grid-column:1/-1}}
@media(max-width:780px){
 body.has-site-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 .has-site-shell #app-main,.has-site-shell .is-editor #app-main{padding:0 14px 24px}
 .has-site-shell .topbar{padding:8px 16px;min-height:50px}
 .has-site-shell .onboarding .lead{font-size:16px}.has-site-shell .hero-art{height:110px;transform:scale(.6);margin:0 auto}
 .has-site-shell :is(.avatar-studio,.reward-invite,.access-card,.setup-card,.reward-card){padding:16px}
 .has-site-shell .family-panel{padding:0}
 .has-site-shell .family-game-card{padding:16px;gap:12px}.family-game-card strong{font-size:18px}.family-game-card small{font-size:14px}
 .has-site-shell .avatar-stage{height:clamp(325px,92vw,500px)}
 .has-site-shell .editor-view{display:grid;grid-template-columns:minmax(0,1fr)}
 .has-site-shell #editor-stage-slot,.has-site-shell #editor-controls-slot,.has-site-shell .placement-controls{grid-column:1;grid-row:auto;position:relative;top:auto}
 .has-site-shell .editor-heading{grid-template-columns:minmax(0,1fr) auto;gap:8px}
 .has-site-shell .editor-heading>.text-button{grid-column:1/-1;justify-self:start;padding:4px 0;min-height:44px}
 .has-site-shell .editor-heading>div{grid-column:1;grid-row:2}.has-site-shell .editor-heading>.primary-button{grid-column:2;grid-row:2;max-width:118px;min-width:0;font-size:16px;padding:8px 12px}
 .has-site-shell .editor-heading h1{font-size:23px}
 .has-site-shell .is-editor .avatar-stage{height:clamp(310px,84vw,450px);aspect-ratio:auto}
 .has-site-shell .editor-tabs button{font-size:15px;min-height:48px}.has-site-shell .space-option{font-size:15px}
 .has-site-shell .status-toast{bottom:calc(86px + env(safe-area-inset-bottom))}
 .has-site-shell .studio-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.has-site-shell .studio-actions #space-expand{grid-column:1/-1}.has-site-shell .studio-actions button{word-break:keep-all;font-size:16px}
 .has-site-shell .greeting-controls{grid-template-columns:minmax(0,1fr)}.has-site-shell .space-dialog .greeting-controls{grid-template-columns:minmax(0,1fr) auto}.has-site-shell .space-dialog .greeting-controls select,.has-site-shell .space-dialog .greeting-controls button{font-size:14px}
 .has-site-shell .avatar-help .avatar-scene-controls{grid-template-columns:minmax(0,1fr)}
 .has-site-shell .family-profile-label{display:none}.has-site-shell .family-panel-body{padding:16px}
 .has-site-shell .reward-card .play-mission{display:grid;grid-template-columns:minmax(0,1fr)}.has-site-shell .reward-card .play-mission .upload-button{width:100%}
 .has-site-shell .reward-summary{padding:18px;gap:14px}.has-site-shell .reward-summary strong{font-size:28px}
}
/* Preserve legible profile text after replacing the old purple profile card. */
.has-site-shell .child-card{color:var(--ink);grid-template-columns:58px minmax(0,1fr) auto;min-height:128px}
.has-site-shell .child-copy{min-width:0}.has-site-shell .child-copy p{color:var(--muted)}
.has-site-shell .upload-button{border:1px solid var(--line);padding:10px 14px;background:#fff;color:var(--primary-dark);text-decoration:none;text-align:center}
.has-site-shell .reward-card .play-mission{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.has-site-shell .reward-card .play-mission h3{margin:0;color:var(--ink)}
.has-site-shell .reward-card .play-mission .upload-button{grid-column:auto}
@media(max-width:780px){.has-site-shell .child-card{grid-template-columns:58px minmax(0,1fr)}.has-site-shell .reward-card .play-mission{grid-template-columns:minmax(0,1fr)}.has-site-shell .reward-card .play-mission .upload-button{grid-column:1}}
/* A single page heading carries its wallet; the shared navigation stays above it. */
.has-site-shell .topbar,.has-site-shell .app-shell[data-view="rewards"] .topbar{display:none}
.has-site-shell #app-main{padding-top:24px}
.has-site-shell .welcome-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px}
.has-site-shell .points-pill{white-space:nowrap;align-self:center;justify-self:end;width:fit-content}
.has-site-shell .family-view>.family-page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 16px}
.has-site-shell .family-view>.family-page-heading>.vrm-help{grid-column:1/-1;grid-row:2;margin:8px 0 0}
.has-site-shell .family-view>.family-page-heading>.points-pill{grid-column:2;grid-row:1}
.has-site-shell .editor-heading{grid-template-columns:auto minmax(0,1fr) auto auto}
.has-site-shell .app-shell[data-view="rewards"] .points-pill{display:none}
@media(max-width:780px){
 .has-site-shell #app-main,.has-site-shell .is-editor #app-main{padding-top:18px}
 .has-site-shell .welcome-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
 .has-site-shell .welcome-row>div:first-child{grid-column:1/-1}
 .has-site-shell .welcome-row>.text-button{justify-self:start}
 .has-site-shell .editor-heading{grid-template-columns:minmax(0,1fr) auto}
 .has-site-shell .editor-heading>.text-button{grid-column:1;grid-row:1}
 .has-site-shell .editor-heading>.points-pill{grid-column:2;grid-row:1}
 .has-site-shell .editor-heading>div:not(.points-pill){grid-column:1;grid-row:2}
}
/* Decorating keeps only framing tools; companion actions remain in the home and large view. */
.has-site-shell .is-editor #surface-slot :is(#avatar-sit,#photo-take,.greeting-controls){display:none}
.has-site-shell .is-editor #surface-slot .studio-actions{grid-template-columns:minmax(0,1fr)}
.has-site-shell .vrm-status:not(.is-error){background:#eef3e9;color:#31553d}

/* Keep account recovery visible without interrupting the play space. */
.has-site-shell .access-setup-note{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid #d8e1ca;border-radius:16px;background:#eef3e7}
.has-site-shell .access-setup-note[hidden]{display:none}
.has-site-shell .access-setup-note h2{font-size:18px;line-height:1.5;margin:0 0 4px}
.has-site-shell .access-setup-note p{margin:0;font-size:15px;line-height:1.65;color:var(--muted)}
.has-site-shell .access-setup-note .upload-button{flex-shrink:0;min-height:48px}
.has-site-shell .access-readiness{display:grid;gap:10px;margin:0;padding:14px;border-radius:12px;background:#f7f8f2}
.has-site-shell .access-readiness>div{display:grid;gap:4px}
.has-site-shell .access-readiness dt{font-size:14px;color:var(--muted)}
.has-site-shell .access-readiness dd{margin:0;font-size:16px;font-weight:700;color:#835821;line-height:1.6}
.has-site-shell .access-readiness dd[data-ready="true"]{color:var(--primary-dark)}
.has-site-shell #recovery-result{display:grid;gap:12px;min-width:0}
.has-site-shell #recovery-result[hidden]{display:none}
.has-site-shell #recovery-output{width:100%;min-width:0;box-sizing:border-box;font-family:ui-monospace,monospace;font-size:15px}
.has-site-shell #recovery-result .access-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.has-site-shell #recovery-result .vrm-help{margin:0}
@media(min-width:1000px){
 .has-site-shell .dashboard>.access-setup-note{grid-row:2}
 .has-site-shell .dashboard:has(>.access-setup-note:not([hidden]))>.avatar-studio{grid-row:3 / span 3}
 .has-site-shell .dashboard:has(>.access-setup-note:not([hidden]))>.family-game-card{grid-row:3}
 .has-site-shell .dashboard:has(>.access-setup-note:not([hidden]))>.reward-invite{grid-row:4}
}
@media(max-width:780px){.has-site-shell .access-setup-note{align-items:stretch;flex-direction:column;gap:12px;padding:14px}.has-site-shell .access-setup-note .upload-button{width:100%}}

.beta-family #family-photo-panel{display:none !important}
.has-site-shell #setup-status{font-size:15px;line-height:1.65;margin:12px 0 0;color:var(--muted)}
.has-site-shell #setup-status:empty{display:none}
.has-site-shell #setup-form input[readonly]{background:#f2f4ed;color:var(--muted)}

.has-site-shell .access-storage-notice{grid-column:1/-1;padding:18px;margin:0 0 18px;border:1px solid #d9ddc7;border-radius:16px;background:#eef3e7}
.has-site-shell .access-storage-notice[hidden]{display:none}
.has-site-shell .access-storage-notice h2{font-size:20px;line-height:1.5;margin:0 0 8px}
.has-site-shell .access-storage-notice p{font-size:16px;line-height:1.7;margin:0 0 10px}
.has-site-shell .access-storage-notice>div{display:flex;flex-wrap:wrap;gap:8px}
.has-site-shell .onboarding>noscript{grid-column:1/-1}
@media(min-width:1000px){.has-site-shell .onboarding:has(>.access-storage-notice:not([hidden]))>.access-card{grid-row:6}.has-site-shell .onboarding:has(>.access-storage-notice:not([hidden]))>.setup-card{grid-row:6 / span 2}}
