/* Compact game surface; legacy component styles remain reusable. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.sidebar{width:195px;background:#f0f2e8;padding:28px 16px}.sidebar nav{margin-top:62px;gap:14px}.sidebar .brand{font-size:25px}.sidebar .brand-icon{font-size:33px}.nav-button{min-height:64px}.nav-button small{font-size:14px}.topbar{height:78px}.top-actions{display:flex;align-items:center;gap:16px}.settings-button{border:0;background:transparent;font-size:23px;width:48px;height:48px}.name-button{font-size:18px;max-width:65%;overflow:hidden;text-overflow:ellipsis}.coin-pill{font-size:20px}main{margin-left:195px}.content{max-width:1320px;min-height:calc(100dvh - 78px);padding:24px 36px}.home-meta,.practice-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.home-meta>span{font-family:Georgia,serif;font-size:20px;color:#61765e}.unit-picker select{background:#fffdf4;min-width:135px;font-size:16px;border-color:#dce2d3}.home-room{max-width:960px;margin:0 auto;background:radial-gradient(ellipse at 50% 70%,#e4ead9,transparent 65%)}.home-room svg{display:block;width:100%;max-height:calc(100dvh - 245px);min-height:330px}.home-actions{display:flex;justify-content:center;gap:18px;margin:0 auto 12px}.home-actions button{font-size:21px;min-width:245px;min-height:66px;border-radius:18px}.party-title{display:flex;align-items:baseline;gap:17px}.party-title h1{font-size:27px;margin:0}.party-title>span{font-family:Georgia,serif;color:#7a856e;font-size:17px}.party-title small{margin-left:auto;color:#73876a}.party-room{position:relative;max-width:1000px;margin:auto;background:radial-gradient(ellipse at 50% 75%,#e4ead9,transparent 67%)}.party-room .room-stage svg{min-height:330px;max-height:calc(100dvh - 238px);width:100%}.party-tools{display:flex;justify-content:center;gap:15px;padding:12px 0}.party-tools>button{min-width:160px;font-size:19px;min-height:59px;border-radius:16px;box-shadow:0 5px 0 #e0e5d5}.floating-tools{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:7px;padding:8px;background:#fffef5f5;border:1px solid #d3dcc8;border-radius:18px;box-shadow:0 10px 35px #50644525;z-index:2;white-space:nowrap}.floating-tools button{font-size:16px;min-height:49px}.room-item{outline:none}.editing .room-item{cursor:grab}.editing .room-item:active{cursor:grabbing}.placement-grid{pointer-events:none}.placement-status{font-size:23px;font-weight:700;paint-order:stroke;stroke:#fffdf4;stroke-width:5px}.sheet-shade{position:fixed;inset:0;background:#30453138;z-index:10;animation:fade-in .2s}.party-sheet{position:fixed;bottom:0;left:calc(50% + 98px);transform:translateX(-50%);width:min(100% - 235px,940px);max-height:67dvh;background:#fbfaf4;border:1px solid #d9dfcd;border-radius:26px 26px 0 0;box-shadow:0 -14px 65px #34472c22;z-index:11;display:flex;flex-direction:column;animation:sheet-in .23s ease-out;overflow:hidden}.party-sheet>header{display:flex;align-items:center;gap:20px;padding:18px 24px;border-bottom:1px solid #e0e4d8;flex-shrink:0}.party-sheet>header h2{font-size:24px;margin:0}.party-sheet>header span{margin-left:auto;color:#9b7c43;font-size:20px}.party-sheet>header button{border:0;background:transparent;min-width:48px;font-size:20px}.sheet-body{padding:22px;overflow-y:auto;overscroll-behavior:contain;min-height:0}.sheet-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.sheet-product{background:#f0f1e7;border:1px solid #e0e4d6;border-radius:18px;padding:13px;display:flex;flex-direction:column;gap:7px;min-width:0}.sheet-product>svg{width:100%;height:132px}.sheet-product h3{font-size:16px;line-height:1.3;margin:0;min-height:40px}.sheet-product>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.sheet-product>small{color:#79866c;font-size:14px}.sheet-product button{font-size:16px;min-height:46px;padding:8px 13px}.sheet-product>div>span{font-size:15px;color:#9a7b42}.sheet-venues{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.sheet-venues article{border:1px solid #dce1d1;border-radius:16px;background:#f0f2e7;padding:16px;text-align:center}.sheet-venues article>span{font-size:45px;color:#809677}.sheet-venues h3{font-size:16px;min-height:48px}.sheet-empty{text-align:center;padding:25px}.purchase-success{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px;background:#e1ead8;border-radius:13px;margin-bottom:18px;position:sticky;top:0;z-index:2}.simple-practice{max-width:800px;margin:15px auto}.practice-heading{margin-bottom:30px}.practice-heading h1{margin:0}.simple-practice .skill-grid{grid-template-columns:1fr 1fr;gap:22px}.simple-practice .skill-card{align-items:center;justify-content:center;text-align:center;min-height:200px;border-radius:23px}.simple-practice .skill-card strong{font-size:26px}.skill-card .skill-icon{font-size:40px;margin:0 0 8px}.simple-practice .skill-card small{font-size:14px}.review-small{display:flex;min-width:240px;margin:24px auto;font-size:18px}.practice-extras{border-top:1px solid #dfe3d5;padding-top:15px;margin-top:20px}.practice-extras summary{cursor:pointer;color:#718066;font-size:15px;min-height:44px}.practice-extras .letter-grid{margin-top:18px}.question-focus .sidebar,.question-focus .topbar{display:none}.question-focus main{margin:0}.question-focus .content{padding:22px 24px;min-height:100dvh}.exercise-top{font-size:18px;padding:14px 24px}.exercise-top .text-btn{font-size:16px}.exercise .question-main{padding:24px 25px 18px}.exercise .options button{min-height:78px;font-size:24px}.exercise .question-display{margin:7px 0}.exercise .question-main h2{font-size:26px}.exercise .question-image{height:180px}.exercise .feedback{font-size:22px;min-height:58px}.exercise .feedback.success{animation:correct-pop .45s ease-out}.exercise-bottom .primary{min-height:56px;font-size:20px}.exercise-bottom{min-height:84px}.exercise-bottom .text-btn{font-size:18px}.earned-coins{font-size:64px;color:#a28645;font-family:Georgia,serif;margin:12px}.practice-result>p{font-size:22px}.practice-result .actions{max-width:550px;margin:30px auto;flex-direction:column;gap:15px}.practice-result .actions button{min-height:65px;font-size:22px}.summary-stats{grid-template-columns:repeat(5,1fr)}
@keyframes correct-pop{0%{transform:scale(.92);opacity:.2}75%{transform:scale(1.05)}100%{transform:scale(1)}}@keyframes sheet-in{from{translate:0 40px;opacity:0}to{translate:0 0;opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}
@media(max-width:1024px){.sidebar{position:fixed;top:auto;bottom:0;width:100%;height:calc(78px + env(safe-area-inset-bottom));padding:0 16px env(safe-area-inset-bottom);border:0;border-top:1px solid #dbe0d0;background:#fbfaf2;z-index:8}.sidebar .brand{display:none}.sidebar nav{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;height:78px;padding:6px 0}.nav-button{width:100%;min-width:0;min-height:60px;flex-direction:column;justify-content:center;gap:1px;padding:6px 2px;border-radius:12px}.nav-button>span:last-child{display:block;font-size:15px}.nav-button small{display:none}.nav-icon{font-size:25px;line-height:1.2}main{margin:0;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.content{min-height:calc(100dvh - 166px);padding:22px 28px}.topbar{padding:0 28px}.home-room svg{max-height:calc(100dvh - 325px);min-height:300px}.party-room .room-stage svg{max-height:calc(100dvh - 335px);min-height:320px}.party-sheet{left:50%;bottom:calc(78px + env(safe-area-inset-bottom));width:100%;max-height:65dvh}.sheet-products{grid-template-columns:repeat(4,minmax(0,1fr))}.question-focus main{padding-bottom:0}.summary-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.topbar{height:64px;padding:0 16px}.name-button{font-size:17px}.top-actions{gap:8px}.content{padding:15px 12px}.home-meta{gap:10px}.home-meta>span{font-size:14px;text-align:right;max-width:170px}.unit-picker select{min-width:116px;padding:10px;font-size:15px}.home-room svg{min-height:0;max-height:none;width:100%;margin:14px 0;aspect-ratio:1.25}.home-actions{flex-direction:column;gap:12px;padding:0 18px;margin:0}.home-actions button{width:100%;min-width:0;min-height:60px;font-size:21px}.party-title{gap:8px;flex-wrap:wrap}.party-title h1{font-size:23px}.party-title>span{font-size:13px}.party-title small{font-size:12px}.party-room .room-stage svg{min-height:0;max-height:none;aspect-ratio:1.12;margin:10px 0 8px}.party-tools{gap:8px;padding:8px 0}.party-tools button{min-width:0;flex:1;font-size:16px;min-height:56px;padding:10px 7px}.floating-tools{bottom:4px;padding:6px;gap:5px;border-radius:14px;max-width:100%}.floating-tools button{font-size:14px;min-height:47px;padding:8px 10px}.sheet-body{padding:13px}.party-sheet>header{padding:12px 17px}.party-sheet>header h2{font-size:22px}.sheet-products{grid-template-columns:1fr 1fr;gap:12px}.sheet-product{padding:10px}.sheet-product>svg{height:128px}.sheet-product h3{font-size:16px}.sheet-venues{grid-template-columns:1fr 1fr}.party-sheet{max-height:67dvh}.purchase-success{font-size:16px;padding:12px;gap:8px}.purchase-success button{font-size:15px}.simple-practice{margin:8px auto}.practice-heading{margin-bottom:20px}.practice-heading h1{font-size:27px}.simple-practice .skill-grid{gap:13px}.simple-practice .skill-card{padding:15px;min-height:160px;border-radius:19px}.simple-practice .skill-card strong{font-size:22px}.simple-practice .skill-card small{font-size:13px}.skill-card .skill-icon{font-size:34px}.question-focus .content{padding:12px 10px}.exercise-top{padding:10px 12px;font-size:16px}.exercise-top .text-btn{font-size:15px}.exercise .question-main{padding:16px 12px 8px}.exercise .question-main h2{font-size:22px;line-height:1.4}.exercise .question-image{height:150px}.exercise .options button{min-height:70px;padding:10px;font-size:20px;overflow-wrap:anywhere}.exercise .question-display{font-size:43px}.exercise .feedback{font-size:20px}.exercise .answer-area{padding:0 13px}.exercise .picture-options img{max-width:100%;height:116px}.exercise .hint{font-size:15px}.exercise-bottom{padding:13px;min-height:80px}.exercise-bottom .primary{font-size:18px}.exercise-bottom .text-btn{font-size:16px}.practice-result{padding:30px 10px}.practice-result .actions button{font-size:20px}.summary-stats{grid-template-columns:1fr 1fr}.home-actions{padding-bottom:8px}.sidebar nav{overflow:visible}.nav-button>span:last-child{font-size:14px}.letter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.nav-button>span:last-child{font-size:13px}.party-title>span{font-size:12px}.party-title h1{font-size:21px}.sheet-product button{padding:8px 10px}.sheet-product>div>span{font-size:14px}}
@media(prefers-reduced-motion:reduce){.party-sheet,.sheet-shade,.feedback.success{animation:none}}
#room .placement-grid{display:none}#room.editing.has-selection .placement-grid{display:block}.room-item:not(.selected) .selection-marker{display:none}.room-item .selection-marker{pointer-events:none}.room-item.invalid{opacity:.65}.object-hit{pointer-events:all}.home-room .object-hit{pointer-events:none}.home-room .room-item{pointer-events:none}

/* Traditional Chinese controls and sprite sizing. */
.home-actions{display:grid;grid-template-columns:1.3fr 1fr 1fr;max-width:850px}.home-actions button{min-width:0;padding:15px 18px}.nav-button small:empty{display:none}.review-small{flex-direction:column;gap:3px}.review-small small{font-size:14px;font-weight:400}.round-score{font-size:18px!important;color:#61765e}.picture-options .npc-image{width:130px;height:170px;display:block;overflow:hidden}.npc-image{overflow:hidden}.exercise .question-image.npc-image{height:225px;width:240px;display:block;margin:auto}.party-title{align-items:center}.sheet-product h3{min-height:24px}.sheet-body{padding-bottom:calc(22px + env(safe-area-inset-bottom))}.name-button{white-space:nowrap}.name-button .avatar{flex-shrink:0}.home-meta>span,.party-title>span{font-family:inherit}.sheet-product button,.floating-tools button{touch-action:manipulation}.settings-card p{font-size:16px}.simple-practice .letter-grid button{font-size:14px;min-height:44px}.party-sheet{isolation:isolate}.sheet-shade{touch-action:none}
@media(max-width:1024px){#toast{bottom:calc(94px + env(safe-area-inset-bottom))}.question-focus #toast{bottom:24px}}
@media(max-width:600px){.home-actions{grid-template-columns:1fr 1fr;padding:0 8px 10px;gap:10px}.home-actions .primary{grid-column:1/-1}.home-actions button{font-size:18px;min-height:56px}.picture-options .npc-image{height:140px;width:105px}.exercise .question-image.npc-image{height:180px;width:200px}.party-title small{font-size:13px}.top-actions{flex-shrink:0}.name-button{max-width:calc(100% - 140px)}.party-title>span{font-size:14px}.floating-tools button{font-size:16px}.home-room svg{aspect-ratio:1.35}}

/* All devices share one bottom navigation. No sidebar or room-covering shop. */
main{margin-left:0;padding-bottom:calc(90px + env(safe-area-inset-bottom))}.content{max-width:1440px;min-height:calc(100dvh - 170px);padding:18px 28px}.bottom-navigation{position:fixed;inset:auto 0 0;z-index:8;background:#fbfaf2;border-top:1px solid #dbe0d0;padding:5px 12px calc(5px + env(safe-area-inset-bottom))}.bottom-navigation nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:780px;margin:auto;gap:8px}.bottom-navigation .nav-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:7px 4px;min-height:66px;border:0;border-radius:12px;width:100%;font-size:16px}.bottom-navigation .nav-icon{font-size:24px;line-height:1.1}.bottom-navigation small{display:none}.bottom-navigation .active{background:#e3eadb}.question-focus .bottom-navigation{display:none}.question-focus main{padding-bottom:0}.party-room{max-width:1160px}.party-room .room-stage svg{min-height:0;max-height:calc(100dvh - 280px);width:100%;height:650px;display:block;margin:auto}.home-room{max-width:1100px}.home-room svg{min-height:0;max-height:calc(100dvh - 285px);height:620px}.party-tools{margin:0 auto;max-width:780px}.party-panel{position:static;width:100%;max-width:1160px;margin:20px auto 0;background:#fbfaf4;border:1px solid #d9dfcd;border-radius:20px;overflow:hidden;scroll-margin-top:16px}.party-panel>header{display:flex;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid #e0e4d8}.party-panel>header h2{font-size:23px;margin:0}.party-panel>header span{margin-left:auto;color:#95763f}.party-panel>header button{width:48px;min-height:48px}.panel-body{padding:20px}.purchase-success{position:static}.party-panel .sheet-products{grid-template-columns:repeat(4,minmax(0,1fr))}#toast{bottom:calc(94px + env(safe-area-inset-bottom))}
/* Serif capitals keep I distinct from lowercase l throughout the learning UI. */
.question-main,.answer-area,.letter-grid,.hint,.unit-picker,.practice-heading,.exercise-top,.progress-card .eyebrow{font-family:Georgia,'Times New Roman','Noto Serif TC',serif}.spell-row input{font-family:Georgia,'Times New Roman',serif}.picture-options .option-letter{font-family:inherit}.question-main h2,.options button{font-variant-ligatures:none}
@media(max-width:600px){.content{padding:14px 10px}.bottom-navigation .nav-button{font-size:14px;min-height:64px}.bottom-navigation nav{gap:3px}.party-room .room-stage svg{height:auto;max-height:none;aspect-ratio:790/685;margin:10px auto}.home-room svg{height:auto;max-height:none;aspect-ratio:790/685;margin:10px auto}.party-panel{margin-top:12px;border-radius:15px}.party-panel .sheet-products{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-body{padding:12px}.party-panel>header{padding:12px}.party-tools button{font-size:17px}.picture-options .npc-image{height:150px}.exercise .question-image.npc-image{height:205px}.exercise .options button{font-size:20px}}

.home-room svg{height:calc(100dvh - 205px);max-height:none}.home-room{max-width:1280px}.party-npc{pointer-events:none}.party-npc svg{overflow:hidden}.party-room .room-stage svg{height:calc(100dvh - 255px);max-height:none}.room-content{padding-bottom:12px}@media(max-width:600px){.home-room svg{height:calc(100dvh - 215px);aspect-ratio:auto;margin:0}.party-room .room-stage svg{height:calc(100dvh - 270px);aspect-ratio:auto;min-height:290px}.home-meta{min-height:42px}}

/* Account forms and teacher records only. */
.account-page{max-width:520px;margin:3vh auto;padding:20px}.account-page label{display:block;margin:14px 0}.account-page input{display:block;width:100%;box-sizing:border-box;min-height:48px;margin-top:5px}.account-page button{margin:8px 8px 0 0;min-height:48px}#account-error{color:#a43d34}#cloud-status{font-size:12px;max-width:180px}.top-actions{flex-wrap:wrap}.teacher-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.teacher-room svg{width:100%;max-height:400px}.student-history{max-height:200px;overflow:auto}@media(max-width:600px){#cloud-status{max-width:100px}.top-actions{gap:4px}.top-actions button{padding:8px}}

/* Scale the whole SVG together; pointer coordinates still use its screen CTM. */
.home-room,.party-room{width:100%;max-width:none;margin-inline:auto}
.home-room>svg#room,.party-room .room-stage>svg#room{display:block;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:790 / 685;margin:8px auto;overflow:visible}
/* Root-only sizing must not resize the nested NPC sprite viewport. */
.home-room .party-npc>svg,.party-room .room-stage .party-npc>svg{width:140px;height:125px;min-height:0;max-height:none;aspect-ratio:auto;margin:0}
.home-room .party-guest>svg,.party-room .room-stage .party-guest>svg{width:126px;height:112.5px;min-height:0;max-height:none;aspect-ratio:auto;margin:0;overflow:hidden}

@media(max-width:600px){.home-room>svg#room,.party-room .room-stage>svg#room{width:100%;margin:8px auto}}

/* Visible model geometry owns pointer selection; decorative bounds never intercept. */
.room-item,.room-item .selection-marker,.room-item>ellipse{pointer-events:none}.room-item .object-model{pointer-events:visiblePainted}.npc-image{object-fit:contain;max-width:100%}

/* Teacher maintenance and teaching pictures only. */
.profile-form label{display:block;margin:12px 0}.profile-form input{display:block;width:100%;box-sizing:border-box}.profile-form #profile-error{color:#a43d34}dialog:has(.student-room-preview){max-width:900px;width:calc(100% - 24px)}.student-room-preview .teacher-room svg{height:auto;max-height:65dvh;min-height:0;pointer-events:none}.student-room-preview .selection-marker{display:none}.exercise .question-image.npc-image{width:min(100%,360px);height:260px;object-fit:contain;border-radius:12px}.picture-options .npc-image{width:100%;height:180px;object-fit:contain;border-radius:10px}.picture-options button{min-width:0}.picture-options img[src*="cake-"]{width:100%;height:150px;object-fit:contain}.question-image[src*="cake-"]{width:min(100%,360px);height:220px}@media(max-width:600px){.exercise .question-image.npc-image{height:220px}.picture-options .npc-image{height:150px}.picture-options button{padding:28px 8px 8px}.picture-options img[src*="cake-"]{height:125px}}
/* Teacher-only, read-only views reuse the student's saved room renderer. */
dialog:has(.student-spaces-preview){max-width:900px;width:calc(100% - 24px);max-height:88dvh;overflow:auto}
dialog:has(.student-details-preview){max-height:88dvh;overflow:auto}
.student-space-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin:18px 0}
.student-space-card{padding:12px;border:1px solid #d5dece;border-radius:16px;background:#fbfaf2}
.student-space-card h3{font-size:17px;margin:10px 0 4px}.student-space-card small{color:#73806a}
.student-space-thumbnail{display:flex;align-items:center;justify-content:center;min-height:160px;background:#f3f1e7;border-radius:12px;overflow:hidden}
.student-space-thumbnail>span{color:#87917c}.student-space-thumbnail svg{width:100%;height:180px;pointer-events:none}
.student-space-card button{width:100%;min-height:44px}.space-status{font-size:13px;color:#687b5d}
.student-space-render{pointer-events:none}.student-space-render .selection-marker,.student-space-render .placement-grid{display:none}
.student-room-preview .actions,.student-spaces-preview>.actions{flex-wrap:wrap}
@media(max-width:600px){.student-space-list{grid-template-columns:1fr}.student-space-thumbnail svg{height:210px}dialog:has(.student-spaces-preview){padding:20px 14px}.student-room-preview .actions button{flex:1 1 45%;font-size:14px}}

.shop-filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.shop-filters button{padding:7px 10px;min-height:44px;font-size:13px}.shop-filters button[aria-pressed="true"]{background:#dbe6d7;color:#385745}.sheet-product button:disabled{opacity:.55}

/* A compact seasonal collection shares the existing shop, without changing room size. */
.festival-note,.festival-intro{padding:12px 16px;background:#f0e8d8;border:1px solid #ded2bc;border-radius:14px;color:#56634f}
.festival-note{font-size:13px;margin:0 0 14px}.festival-intro{margin:0 0 18px}.festival-intro h3{margin:0 0 6px;font-size:18px}.festival-intro p{margin:6px 0 10px;font-size:14px;line-height:1.6}.festival-intro>small{display:block;margin-top:12px;font-size:11px;line-height:1.5}.festival-intro summary{cursor:pointer;padding:8px 0;font-weight:700;font-size:14px}.festival-badge{display:block;min-height:30px;font-size:11px!important;line-height:1.4;color:#8d6240!important;margin:3px 0 8px}.festival-calendar-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;padding-top:8px}.festival-calendar-list article{display:flex;gap:10px;align-items:center;background:#faf7ef;border-radius:10px;padding:8px}.festival-calendar-list img{width:64px;height:64px;object-fit:contain}.festival-calendar-list strong{font-size:14px}.festival-calendar-list small{display:block;font-size:11px;line-height:1.5;margin-top:4px;color:#6f7566}

/* The label precedes artwork in every limited product card. */
.limited-card-top{display:flex!important;justify-content:flex-start!important;align-items:center;gap:7px;min-height:32px;margin:0 0 6px;flex-wrap:wrap}
.limited-label{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:5px 11px;border-radius:8px;background:#9b503f;color:#fffaf0;font-size:14px;font-weight:800;line-height:1.2;letter-spacing:.08em}
.limited-card-top>span{font-size:12px!important;color:#74573f!important;font-weight:700}
#festival-launch-notice{position:fixed;right:18px;top:78px;z-index:90;width:min(350px,calc(100vw - 28px));max-height:calc(100dvh - 180px);overflow-y:auto;padding:17px;background:#fffaf0;border:1px solid #d8bca0;border-radius:17px;box-shadow:0 8px 28px #4d47332b;color:#465440}
.festival-launch-heading{display:flex;gap:9px;align-items:center;font-size:17px}.festival-launch-heading .limited-label{font-size:12px}
#festival-launch-notice ul{list-style:none;padding:0;margin:12px 0 15px}#festival-launch-notice li{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #ebe1d0;font-size:13px}#festival-launch-notice li span{font-size:12px;color:#77705e}.festival-launch-actions{display:flex;gap:8px}.festival-launch-actions button{min-height:44px;font-size:14px;padding:8px 11px}.festival-launch-actions button:first-child{flex:1}
@media(max-width:600px){#festival-launch-notice{right:14px;top:72px;padding:14px}.limited-label{font-size:13px}.limited-card-top{gap:5px}}

/* Wardrobe preview and controls each own a bounded layout region. */
.wardrobe-editor{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;min-width:0;gap:10px}
.wardrobe-select{display:grid;gap:5px;min-width:0;margin-bottom:8px}.wardrobe-select label{font-size:12px;font-weight:700;color:#405a48}.wardrobe-select select{width:100%;box-sizing:border-box;min-width:0;min-height:44px;padding:8px 10px;font:inherit;color:#405a48;background:#fffdf5;border:1px solid #bdc9b6;border-radius:10px}
.wardrobe-closet{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;flex:1 1 auto;min-height:0;min-width:0}
.wardrobe-intro{min-width:0;overflow-y:auto;overscroll-behavior:contain}
.wardrobe-person{position:relative;isolation:isolate;box-sizing:border-box;width:100%;margin:0;overflow:hidden;background:#faf8ee;border:1px solid #e0e2d1;border-radius:14px;text-align:center}
.wardrobe-person>.wardrobe-avatar{display:block;width:100%;height:146px;max-width:100%;overflow:hidden;contain:paint}.wardrobe-person figcaption{margin:0;padding:0 4px 6px;font-size:13px;color:#536453;line-height:1.4}
.wardrobe-current{min-width:0;padding:10px 3px}.wardrobe-current h3{font-size:13px;margin:0 0 8px;color:#405a48}.wardrobe-current dl{display:grid;gap:8px;margin:0}.wardrobe-current dt{font-size:11px;color:#7a8572}.wardrobe-current dd{margin:2px 0 0;font-size:12px;line-height:1.5;color:#405a48;overflow-wrap:anywhere}
.wardrobe-picker{display:flex;flex-direction:column;min-width:0;min-height:0;gap:8px}.wardrobe-picker .wardrobe-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:none;gap:4px;margin:0}.wardrobe-filters button{min-width:0;min-height:44px;padding:6px 2px;font-size:13px}
.wardrobe-products{overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;align-content:start;min-height:0;min-width:0;flex:1;-webkit-overflow-scrolling:touch;padding:2px}
.wardrobe-product{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-areas:"art name" "art status" "wear wear";align-content:start;gap:4px 6px;min-width:0;padding:7px}.wardrobe-product>svg{grid-area:art;width:48px;height:52px}.wardrobe-product h3{grid-area:name;font-size:13px;line-height:1.4;margin:0;overflow-wrap:anywhere}.wardrobe-product>small{grid-area:status;font-size:11px;line-height:1.4;margin:0;overflow-wrap:anywhere}.wardrobe-product>button{grid-area:wear;width:100%;margin-top:2px;min-height:44px;padding:6px 2px;font-size:12px;white-space:normal}
.wardrobe-reset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:none}.wardrobe-reset button{min-width:0;min-height:44px;font-size:13px;padding:6px;touch-action:manipulation}.wardrobe-help{flex:none;margin:0;font-size:11px;line-height:1.5;color:#78816e}
.wardrobe-actor-hit{cursor:pointer}.wardrobe-actor-hit:focus-visible{stroke:#789576;stroke-width:2;rx:12;outline:none}
@media(max-width:420px){.wardrobe-closet{grid-template-columns:88px minmax(0,1fr);gap:8px}.wardrobe-person>.wardrobe-avatar{height:124px}.wardrobe-product{grid-template-columns:36px minmax(0,1fr);padding:5px}.wardrobe-product>svg{width:36px;height:48px}}
