/* Hallmark · genre: playful · macrostructure: Map / Diagram / Index-First / Workbench · design-system: DESIGN.md · designed-as-app
 * Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 · contrast: pass · mobile: pass */
@import url('/tokens.css');
@import url('/inbox.css');
@import url('/member.css');
@import url('/broadcasts.css');
@font-face{font-family:"Cabin WenKai";src:url('/fonts/cabin-wenkai.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
html,body{overflow-x:clip}html:root{font-size:16px}
body.house-page{margin:0;min-height:100svh;background:var(--color-paper);color:var(--color-ink);font:var(--text-md)/1.65 var(--font-body)}
.house-page *{box-sizing:border-box}
.house-page [hidden]{display:none!important}
.house-page a{color:var(--color-accent)}
.house-page button,.house-page input,.house-page textarea{font:inherit}
.house-page button{cursor:pointer;white-space:nowrap}
.house-page{color-scheme:light;color-scheme:only light}
.house-page :is(button,a){-webkit-tap-highlight-color:transparent}
.house-page button:disabled{cursor:not-allowed;opacity:.6}
.house-page :is(button,a,input,textarea,select):focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}
.house-page h1,.house-page h2,.house-page h3{font-family:var(--font-display);font-style:normal;overflow-wrap:anywhere;line-height:1.3}
.house-page h1{font-size:var(--text-display);font-weight:700;margin:0}
.house-page h2{font-size:var(--text-xl);margin:0 0 var(--space-md)}
.house-page p{margin:0 0 var(--space-lg)}
.house-width{width:min(1180px,calc(100% - 80px));margin:auto}
.house-header{min-height:100px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);flex-wrap:wrap;padding-block:var(--space-lg)}
.house-brand{display:inline-flex;align-items:center;gap:var(--space-sm);text-decoration:none;white-space:nowrap;font:700 var(--text-lg)/1.4 var(--font-display);min-height:44px}
.house-brand img{width:40px;height:40px}
.house-header nav{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;max-width:100%;min-width:0}
.house-header nav a,.house-nav-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap;font-size:var(--text-sm)}
.house-header nav a[aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:7px}
.house-button,.house-page .house-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:48px;border:1px solid var(--color-accent);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-lg);background:var(--color-accent);color:var(--color-accent-ink);font-weight:600;text-decoration:none;white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out)}
.house-button.secondary{background:transparent;color:var(--color-accent)}
.house-button:active{transform:translateY(1px)}
@media(hover:hover){.house-button:hover{transform:translateY(-2px)}.house-header nav a:hover{text-decoration:underline;text-underline-offset:7px}}
.house-button[aria-busy=true]{opacity:.7}
.door-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);align-items:center;gap:var(--space-2xl);min-height:calc(100svh - 205px);padding-block:var(--space-2xl)}
.door-copy h1{max-width:7em;margin-bottom:var(--space-lg);letter-spacing:.025em}
.door-copy>p{color:var(--color-ink-2);font-size:var(--text-lg);max-width:24em}
.door-actions{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;margin-top:var(--space-xl)}
.door-note{margin-top:var(--space-2xl)!important;font-size:var(--text-sm)!important}
.house-scene{display:block;width:100%;height:auto;max-height:560px;overflow:visible}
.scene-ground{fill:var(--color-paper-2)}.scene-wall{fill:var(--color-surface)}.scene-roof{fill:var(--color-accent)}.scene-wood{fill:var(--color-wood)}.scene-wood-deep{fill:var(--color-wood-deep)}.scene-ink{fill:var(--color-ink)}.scene-water{fill:var(--color-water)}.scene-line{stroke:var(--color-rule);fill:none;stroke-width:2}
.house-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);padding-block:var(--space-xl);font-size:var(--text-sm);color:var(--color-ink-2)}
.house-skip{position:fixed;top:-100px;left:var(--space-md);z-index:5;background:var(--color-surface);padding:var(--space-md)}.house-skip:focus{top:var(--space-sm)}
.hall-intro{padding:var(--space-2xl) 0 var(--space-xl);display:flex;justify-content:space-between;align-items:end;gap:var(--space-lg);flex-wrap:wrap}
.hall-intro h1{font-size:clamp(1.7rem,4vw,3rem);margin-bottom:var(--space-md)}
.hall-intro p{color:var(--color-ink-2);margin:0;max-width:36em}
.hall-account{font-size:var(--text-sm);display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}
.hall-account button{min-height:44px;padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--color-rule);border-radius:var(--radius-input);color:var(--color-accent)}
.hall-status{min-height:1.65em;font-size:var(--text-sm);color:var(--color-ink-2)}.hall-status.error{color:var(--color-error)}
.hall-status:empty{display:none}
.room-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-lg)}
.room-card{border-radius:var(--radius-card);padding:var(--space-xl);min-width:0;background:var(--color-surface);display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:var(--space-lg);align-items:center;min-height:245px}
.room-card.wishes{background:var(--color-water);grid-template-columns:minmax(0,1fr) 120px}
.room-card h2{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}
.room-card p{color:var(--color-ink-2);font-size:var(--text-sm);max-width:25em;margin-bottom:var(--space-lg)}
.room-state{display:block;font-size:var(--text-xs);color:var(--color-ink-2);margin:0 0 var(--space-sm)}
.room-art{width:100%;height:150px;color:var(--color-accent)}
.room-request-note{margin-top:var(--space-md)!important;margin-bottom:0!important;overflow-wrap:anywhere}
.waiting-rooms{margin-top:var(--space-2xl)}.waiting-rooms h2{font-size:var(--text-lg)}
.waiting-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}
.waiting-room{padding:var(--space-lg);background:var(--color-paper-2);border-radius:var(--radius-card)}
.waiting-room h3{font-size:var(--text-lg);margin:0 0 var(--space-sm)}.waiting-room p{font-size:var(--text-sm);margin:0;color:var(--color-ink-2)}.waiting-room small{display:block;margin-top:var(--space-md);font-size:var(--text-xs);color:var(--color-ink-2)}
.hall-feedback{margin-top:var(--space-2xl);max-width:820px}.hall-feedback h2{font-size:var(--text-lg)}
.hall-message{padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule);overflow-wrap:anywhere}.hall-message p{margin:0;font-size:var(--text-sm)}.hall-message small{font-size:var(--text-xs);color:var(--color-ink-2)}
.house-dialog{width:min(490px,calc(100% - 32px));max-height:90svh;overflow:auto;border:0;border-radius:var(--radius-card);padding:var(--space-xl);background:var(--color-surface);color:var(--color-ink)}.house-dialog::backdrop{background:var(--color-overlay)}
.house-dialog h2{margin:0 0 var(--space-lg);font:700 var(--text-xl)/1.3 var(--font-display)}
.house-dialog label{display:block;font-size:var(--text-sm);margin-bottom:var(--space-sm)}
.house-dialog textarea{width:100%;background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius-input);padding:var(--space-md);resize:vertical}
.house-dialog .dialog-actions{display:flex;justify-content:end;gap:var(--space-md);margin-top:var(--space-lg);flex-wrap:wrap}.house-dialog .hall-status{margin-top:var(--space-md)}
.house-page.house-interior{--bg:var(--color-paper);--paper:var(--color-surface);--ink:var(--color-ink);--muted:var(--color-ink-2);--green:var(--color-accent);--green-light:var(--color-paper-2);--line:var(--color-rule)}
.house-interior .house-header{background:var(--color-surface);padding-inline:var(--space-xl);border-bottom:1px solid var(--color-rule);min-height:90px}
.house-interior .house-header nav{gap:var(--space-md)}
.house-interior .pool-shell>.house-header{padding-inline:0;background:transparent}
.house-interior .admin-shell>header{display:flex;gap:var(--space-lg);align-items:center;flex-wrap:wrap}
.house-interior .admin-shell{max-width:1120px}
.console-tabs{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin:var(--space-xl) 0}
.console-tabs button{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-rule);background:transparent;color:var(--color-accent);border-radius:var(--radius-input)}
.console-tabs button[aria-selected=true]{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}
.module-member,.module-request{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-rule);overflow-wrap:anywhere}
.module-member h3,.module-request h3{font:600 var(--text-md)/1.5 var(--font-body);margin:0 0 var(--space-sm)}
.module-member small,.module-request small{display:block;color:var(--color-ink-2);margin-bottom:var(--space-md)}
.permission-actions{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap}
.permission-actions button{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-input);background:var(--color-paper);color:var(--color-accent)}
.permission-actions button[data-allowed=true]{background:var(--color-paper-2)}
.error-page{max-width:700px;margin:10vh auto;padding:var(--space-xl);font-family:var(--font-body)}
.reading-account{display:flex;align-items:center;justify-content:end;gap:var(--space-md);padding:var(--space-sm) var(--space-xl);font-size:var(--text-xs);background:var(--color-paper)}
.reading-account a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none}
.house-interior .login-shell .intro h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:0;margin-top:var(--space-2xl)}
.login-house-art{width:min(100%,370px);height:auto;display:block;margin-top:var(--space-xl)}
.permissions-heading{margin-top:var(--space-xl)!important}
.house-interior :is(.hint,.list-row small,.empty,.code-box p){font-size:var(--text-sm);color:var(--color-ink-2)}
.house-interior .feedback{font-size:var(--text-sm);color:var(--color-error)}.house-interior .feedback.success{color:var(--color-accent)}
.house-interior label{font-size:var(--text-sm)}
.house-interior .list-row strong{font-size:var(--text-md)}
.house-interior .text-button{font-size:var(--text-sm);min-height:44px}
.house-interior :is(.row-actions button,.secondary,.primary,dialog button){min-height:44px;font-size:var(--text-sm)}
.house-interior .reading-area h1{font-size:clamp(1.8rem,3vw,2.4rem)}
.house-interior .pool-intro h1{font-size:clamp(2.2rem,4vw,3.5rem)}
@media(max-width:680px){.login-house-art{display:none}.house-interior .login-shell .intro h1{margin-top:var(--space-lg)}.house-interior .admin-shell .house-header{padding-inline:0}.house-interior .section-heading{flex-wrap:wrap}}
@media(max-width:950px){.room-grid{grid-template-columns:minmax(0,1fr)}.room-card,.room-card.wishes{grid-template-columns:minmax(0,1fr) 180px}.door-layout{gap:var(--space-lg)}}
@media(max-width:680px){.house-width{width:calc(100% - 40px)}.house-header{gap:var(--space-sm);padding-block:var(--space-md);min-height:80px}.house-brand{font-size:var(--text-md)}.house-brand img{width:32px;height:32px}.house-header nav{gap:var(--space-md)}.door-layout{grid-template-columns:minmax(0,1fr);padding-top:var(--space-xl);min-height:0;gap:var(--space-xl)}.door-copy h1{max-width:none;font-size:clamp(2rem,7.7vw,3rem)}.door-copy>p{font-size:var(--text-md)}.door-note{margin-top:var(--space-lg)!important}.house-scene{max-height:340px}.house-footer{flex-wrap:wrap;padding-block:var(--space-lg)}.hall-intro{padding-top:var(--space-xl)}.room-card,.room-card.wishes{padding:var(--space-lg);grid-template-columns:minmax(0,1fr) 95px;gap:var(--space-sm)}.room-card h2{font-size:var(--text-xl)}.room-art{height:100px}.room-card p{font-size:var(--text-sm)}.waiting-list{grid-template-columns:minmax(0,1fr)}.house-interior .house-header{padding-inline:var(--space-md)}.house-interior .house-header nav{gap:var(--space-sm)}.house-header nav a{font-size:var(--text-xs)}.hall-account{gap:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){.house-page *, .house-page *::before,.house-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.house-button:hover,.house-button:active{transform:none}}

/* Shared cabin UI: quiet surfaces, a rounded character mark and clear controls. */
.house-page h1,.house-page h2,.house-page h3{letter-spacing:-.025em;text-wrap:balance}
.house-width{width:min(1240px,calc(100% - 64px))}
.house-brand{gap:12px;font-family:var(--font-display);font-weight:700}
.house-header nav{gap:var(--space-sm)}
.house-header nav a{padding:var(--space-sm) 14px;border-radius:var(--radius-pill);font-size:var(--text-sm)}
.house-header nav a[aria-current=page]{background:var(--color-paper-2);text-decoration:none}
.house-button,.house-page .house-button{border-radius:var(--radius-pill);min-height:48px;font-size:var(--text-sm);padding:12px 23px}
.house-button.secondary{background:var(--color-surface);border-color:var(--color-rule)}
.house-interior .house-header{background:var(--color-paper);border:0;padding-block:var(--space-lg)}
.house-interior .auth-card{background:var(--color-surface);border:0;box-shadow:none}
.house-interior :is(input,select,textarea){border-color:var(--color-rule);background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-input)}
.house-interior :is(.primary,.primary-button){background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent);border-radius:var(--radius-pill);min-height:48px;padding:12px 23px;font-size:var(--text-sm)}
.house-interior :is(.secondary,.quiet-button,.row-actions button){background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-pill);min-height:44px;color:var(--color-accent);padding:8px 16px}
.house-interior button.danger{color:var(--color-error)}
.house-interior :is(.primary,.primary-button):active{transform:translateY(1px)}
.house-interior .invitation-confirmation{background:var(--color-paper-2);border:0}
.house-interior .invitation-confirmation label{font-size:14px;color:var(--color-ink)}
.house-interior :is(.feedback,.hint){line-height:1.7}
.console-tabs{gap:var(--space-sm);padding:var(--space-xs);background:var(--color-paper-2);border-radius:var(--radius-pill);width:fit-content}
.console-tabs button{border:0;background:transparent;border-radius:var(--radius-pill);font-size:var(--text-sm);padding-inline:var(--space-lg)}
.console-tabs button[aria-selected=true]{background:var(--color-surface);color:var(--color-ink)}
.hall-intro{padding-top:var(--space-2xl)}
.hall-intro h1{font-size:clamp(2rem,4vw,3.2rem)}
.hall-account a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.room-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-xl)}
.room-card{padding:var(--space-2xl);min-height:300px;background:var(--color-paper-2);grid-template-columns:minmax(0,1fr) 170px}
.room-card.wishes{background:var(--color-water);grid-template-columns:minmax(0,1fr) 145px}
.room-card h2{font-weight:750;font-size:clamp(1.9rem,3vw,2.6rem)}
.room-state{font-size:14px;color:var(--color-ink-2)}
.room-card p{font-size:var(--text-md);color:var(--color-ink)}
.room-art{transition:transform var(--dur-short) var(--ease-out)}
@media(hover:hover){.room-card:has(.house-button:hover) .room-art{transform:rotate(-3deg)}.house-header nav a:hover{background:var(--color-paper-2);text-decoration:none}.house-button:not(:disabled):hover{transform:translateY(-2px)}}
.waiting-room{background:transparent;padding:var(--space-lg) 0;opacity:.82}
.waiting-room small{font-size:14px}
.hall-feedback{padding:var(--space-xl);background:var(--color-surface);border-radius:var(--radius-card);max-width:none}
.hall-message:last-child{border:0}
.house-interior :is(.panel,.wish-card){border:0;background:var(--color-surface);border-radius:var(--radius-card)}
.house-interior .pool-intro{padding-inline:0}
.house-interior .pool-intro h1{font-weight:750;letter-spacing:-.035em}
.house-interior .pool-toolbar{border-color:var(--color-rule)}
.house-interior .view-tabs button{font-size:var(--text-md);min-height:48px;color:var(--color-ink-2)}
.house-interior .view-tabs [aria-selected=true]{color:var(--color-accent);border-color:var(--color-accent)}
.house-interior :is(.wish-body,.wish-target,.event p,.wish-meta){font-size:var(--text-sm);color:var(--color-ink)}
.house-interior :is(.wish-category,.status-pill,.event-heading,.event small,.unread,.pool-footer){font-size:14px}
.house-interior .status-pill{border:0;background:var(--color-paper-2);color:var(--color-ink-2)}
.house-interior .status-pill.fulfilled{background:var(--color-water);color:var(--color-accent)}
.house-interior .reading-account{background:var(--color-paper-2);gap:var(--space-md);min-height:50px}
.house-interior .reading-account :is(a,button){font-size:14px}
.house-interior .reading-area{background:var(--color-surface)}
.house-interior .notes-panel,.house-interior .sidebar{background:var(--color-paper)}
.house-interior .book-heading h1{letter-spacing:-.02em;font-family:var(--font-reading)}
.house-interior :is(.reader-text,.manuscript h2){font-family:var(--font-reading)}
.house-interior .reading-toolbar :is(label,button,select){font-size:14px;min-height:44px}
.house-interior :is(.chapter-navigation button,.composer-footer button){min-height:44px;font-size:14px}
.house-interior .chapter-button{min-height:44px;font-size:14px}
.house-interior .note-card{background:var(--color-surface);border-color:var(--color-rule);border-radius:var(--radius-card)}
.house-interior.writing-shell{--green-soft:var(--color-paper-2);--bg:var(--color-paper);--paper:var(--color-surface);--ink:var(--color-ink);--muted:var(--color-ink-2);--green:var(--color-accent);--line:var(--color-rule);--sidebar:var(--color-paper-2)}
.house-interior.dark{--color-paper:oklch(23% .013 168);--color-paper-2:oklch(28% .023 168);--color-surface:oklch(26% .012 166);--color-ink:oklch(92% .012 164);--color-ink-2:oklch(74% .02 164);--color-rule:oklch(41% .02 164);--color-accent:oklch(77% .06 167);--color-accent-ink:oklch(22% .02 168);--color-focus:oklch(78% .08 166)}
.house-interior :is(.book-button small,.eyebrow,.chapter-meta,.selection-hint,.notes-intro,.note-meta,.quote-label,.reading-footnote,.chapter-navigation>span){font-size:14px;color:var(--color-ink-2)}
.house-interior :is(.notes-heading .eyebrow,.sidebar-heading .eyebrow){font-size:14px}
.house-interior .comment-composer textarea{font-size:var(--text-md);line-height:1.8}
.house-interior .note-card :is(p,blockquote){font-size:14px}
.house-interior .book-heading p{font-size:14px}
.writing-shell .brand{font:700 var(--text-lg)/1.4 var(--font-display);white-space:nowrap;flex-shrink:0}
.writing-shell .brand-mark{border:0;width:34px;height:34px}
.writing-shell .topbar{gap:var(--space-xl)}
.writing-shell .topbar nav{gap:var(--space-lg)}
.writing-shell .topbar :is(button,a,select){font-size:14px;min-height:44px}
.writing-shell .topbar .brand{font-size:var(--text-lg)}
.writing-shell :is(.document-meta,.save-status,.panel-heading,.progress-title,.sidebar-bottom p,.volume-heading,.chapter .name,.issue-card p,.issue-card h3,.issue-card details,.issue-footer,.document-footer){font-size:14px}
.writing-shell :is(.segmented button,.document-actions button,.panel-tabs button,.filter-row select,.issue-footer select,.issue-footer button,.reference-group button){min-height:44px;font-size:14px}
.writing-shell .document-header h1{font-family:var(--font-reading);line-height:1.5}
.writing-shell .reader{font-family:var(--font-reading)}
.writing-shell .review-panel{background:var(--color-paper)}
.writing-shell .chapter-search{background:var(--color-paper-2)}
.writing-shell .chapter{min-height:44px}
@media(max-width:1200px){
 .writing-shell .topbar{height:auto;min-height:116px;padding:var(--space-sm) var(--space-lg);flex-wrap:wrap;gap:var(--space-sm) var(--space-lg)}
 .writing-shell .topbar nav{margin-left:auto;height:44px}
 .writing-shell .header-actions{width:100%;margin:0;justify-content:end;gap:var(--space-sm);flex-wrap:wrap}
 .writing-shell .app-shell{height:calc(100svh - 116px)}
}
@media(max-width:760px){
 .writing-shell .topbar{display:block;padding:var(--space-md);min-height:0}
 .writing-shell .topbar nav{justify-content:space-between;margin:var(--space-sm) 0;gap:var(--space-sm);height:auto}
 .writing-shell .header-actions{justify-content:start;gap:var(--space-xs);margin:0}
 .writing-shell .book-picker{display:flex;max-width:100%}
 .writing-shell .header-actions .icon-button{padding-inline:10px}
 .writing-shell .app-shell{display:flex;flex-direction:column;height:auto;overflow:visible}
 .writing-shell .sidebar{max-height:none;min-height:0;border-right:0;border-bottom:1px solid var(--color-rule)}
 .writing-shell .sidebar-title{padding:var(--space-md)}
 .writing-shell .chapter-search{margin:0 var(--space-md) var(--space-sm)}
 .writing-shell .chapter-list{max-height:180px;flex:none;padding-inline:var(--space-md)}
 .writing-shell .chapter .name{font-size:14px}
 .writing-shell .volume-heading{padding:var(--space-sm) 0}
 .writing-shell .sidebar-bottom{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center;padding:var(--space-sm) var(--space-md)}
 .writing-shell .sidebar-bottom .progress-track{display:none}
 .writing-shell .sidebar-bottom p{margin:0}.writing-shell .sidebar-bottom .progress-title{margin:0;gap:var(--space-sm)}
 .writing-shell main{height:80svh;min-height:560px;flex:none}
 .writing-shell .document-header{padding:var(--space-lg) var(--space-md)}
 .writing-shell .document-actions{flex-wrap:wrap;justify-content:start;gap:var(--space-sm)}
 .writing-shell .reader{padding:var(--space-lg) var(--space-md) var(--space-2xl)}
 .writing-shell .workspace-toolbar{gap:var(--space-sm);padding-inline:var(--space-md)}
 .writing-shell .segmented{flex-wrap:wrap}
 .writing-shell .review-panel{min-height:340px;border:0;border-top:1px solid var(--color-rule)}
 .writing-shell .issue-list{display:block;padding:var(--space-md)}
 .writing-shell .issue-card{margin-bottom:var(--space-md)}
 .writing-shell.focus-mode .app-shell,.writing-shell.focus-mode main{height:100svh;min-height:0}
}
@media(max-width:1050px){.room-grid{grid-template-columns:minmax(0,1fr)}.room-card,.room-card.wishes{grid-template-columns:minmax(0,1fr) 170px;padding:var(--space-xl)}}
@media(max-width:680px){.house-width{width:calc(100% - 36px)}.house-header nav a{padding-inline:10px;font-size:14px}.house-interior .house-header{padding-inline:var(--space-md);gap:var(--space-sm)}.house-interior .house-header nav{gap:var(--space-xs)}.room-card,.room-card.wishes{padding:var(--space-lg);grid-template-columns:minmax(0,1fr) 88px;min-height:270px;gap:var(--space-sm)}.room-card p{font-size:var(--text-sm)}.room-art{height:105px}.room-card .house-button{padding-inline:18px}.hall-feedback{padding:var(--space-lg)}.console-tabs{border-radius:var(--radius-card);width:100%}.console-tabs button{flex:1;padding-inline:10px;font-size:14px}.house-interior .reading-toolbar{align-items:start;gap:var(--space-sm);flex-wrap:wrap}.house-interior .reading-toolbar .tools{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.house-page .house-button,.house-page .room-art{transform:none!important;transition:none!important}}
.room-card .room-book-page{transform-origin:90px 90px}.room-card .room-bookmark{transform-origin:127px 32px}.room-card .room-pond-rings{transform-origin:90px 105px}.room-card .room-book-spark{opacity:.65}
@keyframes room-page-turn{0%,100%{transform:skewY(0deg)}45%{transform:skewY(-7deg)}}
@keyframes room-bookmark-sway{0%,100%{transform:rotate(0deg)}45%{transform:rotate(8deg)}}
@keyframes room-coin-float{0%,100%{transform:translateY(0)}50%{transform:translateY(7px) rotate(6deg)}}
@keyframes room-pond-wave{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.55}}
@media(prefers-reduced-motion:no-preference){.room-card:is(:hover,:focus-within) .room-book-page{animation:room-page-turn 1.6s var(--ease-in-out) 2}.room-card:is(:hover,:focus-within) .room-bookmark{animation:room-bookmark-sway 1.6s var(--ease-in-out) 2}.room-card:is(:hover,:focus-within) .room-pond-coin{animation:room-coin-float 1.8s var(--ease-in-out) 2}.room-card:is(:hover,:focus-within) .room-pond-rings{animation:room-pond-wave 1.8s var(--ease-in-out) 2}}
@media(prefers-reduced-motion:reduce){.room-art *{animation:none!important;transition:none!important}}
@media(max-width:360px){.room-card .house-button{font-size:14px;padding-inline:14px}}
