/* The house opens: a finite, user-directed motion layer. Core content stays visible without this file or JavaScript. */
.header{border-bottom:1px solid #163f3a0a}.header nav a,.header-case{position:relative}.header nav a:after,.header-case:after{content:'';height:1px;position:absolute;bottom:5px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .24s ease}.header nav a:hover:after,.header-case:hover:after{transform:scaleX(1)}.wordmark .door-icon:after{transform-origin:left;transition:transform .45s cubic-bezier(.22,1,.36,1)}.wordmark:hover .door-icon:after{transform:perspective(140px) rotateY(-35deg) skewY(-18deg)}
.hero{padding-top:40px;padding-bottom:48px;gap:5%;grid-template-columns:.92fr 1.08fr}.hero h1{font-size:clamp(54px,5.9vw,82px);letter-spacing:-.055em;margin-bottom:24px;line-height:1.025}.hero-line{display:block}.hero h1 em{background:linear-gradient(transparent 84%,var(--brass) 84%);padding-right:5px}.hero-copy>.eyebrow{letter-spacing:.035em;display:flex;gap:10px;align-items:center}.small-door{display:inline-flex;justify-content:center;align-items:center;width:24px;height:28px;background:var(--mint);border:1px solid #163f3a16;border-radius:14px 14px 1px 1px;font-family:Outfit;font-size:18px}.hero-copy>p:not(.eyebrow){max-width:36ch;font-size:15px;line-height:1.75}.hero-note{gap:32px;margin-top:32px;padding-top:22px}.hero-note>div{display:flex;align-items:center;gap:10px}.hero-note .note-icon{font-family:Outfit;color:var(--ink);width:30px;height:32px;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:18px 18px 2px 2px}.hero-note>div>div{font-size:11px}.hero-note>div>div>span{font-size:10px;margin-top:3px}.portal-annotation{display:flex;justify-content:space-between;align-items:center;padding:0 4px 14px;color:var(--muted)}.portal-annotation .mono{font-size:9px;letter-spacing:.08em}.portal-coordinate{font-family:Outfit;font-size:24px;color:var(--ink);line-height:1}.portal{position:relative;display:block;aspect-ratio:1.3;border-radius:48% 48% 3px 3px;overflow:hidden;background:var(--mint);isolation:isolate;text-decoration:none}.portal:focus-visible{outline-offset:7px}.hero-scenes{position:absolute;inset:0;overflow:hidden}.hero-media .hero-scene{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0;opacity:0;transition:opacity .42s ease;pointer-events:none}.hero-media .hero-scene.is-active{opacity:1}.hero-scenes:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#102d2670);pointer-events:none}.door-leaf{position:absolute;inset:0 auto 0 0;width:50%;background:var(--ink);opacity:0;transform-origin:left;pointer-events:none;border-right:1px solid #d6b56460}.door-leaf:before{content:'';position:absolute;inset:16% 12% 15%;border:1px solid #ffffff25;border-radius:100px 100px 0 0}.door-leaf>span{position:absolute;width:6px;height:30px;right:12%;top:58%;border-radius:6px;background:var(--brass)}.hero-media .photo-tag{position:absolute;left:20px;right:20px;bottom:20px;background:var(--paper);color:var(--ink);padding:15px 18px;border-radius:2px;align-items:center;gap:14px;box-shadow:0 4px 20px #0e2f1f10}.photo-tag>div{display:flex;flex-direction:column;gap:4px}.photo-tag .mono{font-size:8px;letter-spacing:.055em;color:var(--muted)}.photo-tag b{font-family:Outfit;font-size:23px;letter-spacing:-.025em;line-height:1.15}.photo-explore{font-size:11px;display:flex;align-items:center;gap:20px;white-space:nowrap}.photo-explore>span{font-size:21px;transition:transform .25s ease}.portal:hover .photo-explore>span{transform:translate(3px,-3px)}.room-switcher{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-top:0;border-radius:0 0 3px 3px;overflow:hidden}.room-switch{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted);min-height:54px;padding:12px 8px;background:transparent;border:0;border-right:1px solid var(--line);font-size:12px;transition:background-color .2s,color .2s}.room-switch:last-child{border-right:0}.room-switch .mono{font-size:9px}.room-switch[aria-pressed=true]{background:var(--ink);color:var(--white)}.room-switch:hover{background:var(--mint);color:var(--ink)}.room-switch[aria-pressed=true]:hover{background:#28574f;color:var(--white)}.switch-indicator{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0}.room-switch[aria-pressed=true] .switch-indicator{opacity:1}.room-switch:focus-visible{outline-offset:-5px;outline-color:var(--clay)}.preview-caption{margin:12px 0 0;font-size:10px;color:var(--muted);text-align:center;max-width:none;min-height:16px}.btn{transition:background-color .2s,color .2s,transform .2s}.btn>span:last-child{transition:transform .2s}.btn:hover>span:last-child{transform:translate(2px,-2px)}.btn:active{transform:translateY(1px)}
.spaces-section{padding-top:52px;padding-bottom:64px}.spaces-section>.section-heading{align-items:center;margin-bottom:32px}.room-card{background:#fffefa;border:1px solid #cdd3ca90;border-radius:85px 85px 4px 4px;overflow:hidden;padding-bottom:0;transition:box-shadow .3s ease,transform .3s ease}.room-card:hover{box-shadow:0 14px 32px #163f3a0b;transform:translateY(-4px)}.room-card>a{margin:10px 10px 0;border-radius:75px 75px 2px 2px}.room-card>a img{aspect-ratio:1.3;transition:transform .65s cubic-bezier(.22,1,.36,1)}.room-card>a:hover img{transform:scale(1.045)}.room-card>.room-top,.room-card>h3,.room-card>p,.room-card>.chips,.room-card>.card-bottom{margin-left:22px;margin-right:22px}.room-card>.room-top{margin-top:20px}.room-top .mono{font-size:9px}.room-card h3{font-size:27px}.room-card>p{font-size:12px;margin-bottom:20px}.room-card>.card-bottom{margin-top:20px;padding:14px 0 12px;border-top:1px solid var(--line);flex-wrap:wrap;gap:2px 8px}.card-bottom>a{gap:6px;min-height:44px}.room-card .chip{border:0;background:#edf0e9;padding:5px 8px;border-radius:2px;font-size:10px}.house-invitation{background:var(--ink);color:var(--paper);padding:48px 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;border-radius:3px;overflow:hidden;position:relative;margin-bottom:0}.house-invitation>.eyebrow,.house-invitation .eyebrow{font-size:9px;color:#bdcec4}.house-invitation h2{font-size:clamp(38px,4.1vw,58px);line-height:1.06;margin-bottom:20px}.house-invitation p:not(.eyebrow){font-size:13px;color:#d3dfd5;max-width:36ch}.invitation-button{background:var(--brass);color:var(--ink);border-color:var(--brass);margin-top:8px;font-size:12px}.invitation-button:hover{background:#f0d68c}.house-art{position:relative;height:290px;max-width:390px;width:100%;margin:0 auto;perspective:1100px}.house-arch{position:absolute;border:1px solid #f8f7f24a;width:57%;height:88%;top:0;border-radius:100px 100px 0 0;transform-origin:bottom left}.arch-back{left:34%;top:0;transform:rotate(8deg);background:#245249}.arch-mid{left:20%;top:7%;transform:rotate(-7deg);background:#d68f77}.arch-front{left:10%;top:12%;background:var(--mint);border-color:var(--mint);transform:rotate(-16deg)}.arch-front:before{content:'';position:absolute;inset:18px;border:1px solid #163f3a45;border-radius:90px 90px 0 0}.arch-front i{position:absolute;right:20px;top:60%;height:24px;width:5px;background:var(--ink)}.art-caption{position:absolute;bottom:-12px;right:0;font-size:8px;letter-spacing:.08em;color:#c5d6cb}.visit-journey{border-top:0;padding-top:64px}.journey article{position:relative;border-top:1px solid #a4b9ab;padding-top:24px}.journey article:before{content:'';width:6px;height:6px;background:var(--ink);position:absolute;top:-3px;left:0;border-radius:50%}.journey .number{font-size:10px;color:var(--muted)}.journey h3{font-size:26px}.preview-note{border:1px solid #c5d5c9;border-radius:3px;background:#e3ece3}.motion-toggle{appearance:none;border:1px solid var(--line);color:var(--muted);background:transparent;border-radius:20px;padding:10px 14px;font-size:10px;min-height:44px;width:max-content;align-self:start;cursor:pointer;grid-column:1/-1}.motion-toggle:hover{background:var(--mint)}.motion-toggle:disabled{opacity:1;cursor:default}.choice{position:relative;transition:background-color .15s,color .15s,border-color .15s}.choice[aria-pressed=true]{background:#dde9e2}.summary-card{border:1px solid #c6d6c9}.pass-banner{border-top:4px solid var(--ink);border-radius:3px}.door-strip{border-radius:3px;overflow:hidden}.door-strip li{background:#f0f3eb}.checks label{border-radius:3px;transition:background-color .2s}.checks label:has(input:checked){background:#e7efe7}.checks label{padding-left:8px}.host-card{border-radius:4px}.host-card[data-ready=true] .badge{background:var(--ink);color:var(--white)}
@media(min-width:1450px){.portal{aspect-ratio:1.4}.hero{gap:7%}}@media(max-width:950px){.hero h1{font-size:57px}.hero-note{gap:14px}.hero-note .note-icon{display:none}.hero{gap:4%;grid-template-columns:.95fr 1.05fr}.portal{aspect-ratio:1.1}.photo-tag b{font-size:21px}.photo-explore{font-size:10px;gap:8px}.room-card>.room-top,.room-card>h3,.room-card>p,.room-card>.chips,.room-card>.card-bottom{margin-left:16px;margin-right:16px}.room-card h3{font-size:24px}.room-top .mono{font-size:8px}.house-invitation{padding:40px}.house-art{height:260px}.room-card .card-bottom{display:block}.card-bottom>a{width:100%}}
@media(max-width:650px){.hero{grid-template-columns:1fr;gap:26px;padding-top:26px;padding-bottom:32px}.hero h1{font-size:52px;margin-bottom:18px}.hero-copy>p:not(.eyebrow){font-size:14px;line-height:1.65;max-width:34ch}.hero-copy>.eyebrow{font-size:10px;gap:8px;margin-bottom:18px}.small-door{width:20px;height:24px;font-size:16px}.hero-media{margin-top:0}.portal{aspect-ratio:1.33;border-radius:44% 44% 2px 2px}.portal-annotation{padding-bottom:12px}.portal-annotation .mono{font-size:8px}.portal-coordinate{font-size:20px}.hero-media .photo-tag{bottom:12px;left:12px;right:12px;padding:12px;gap:8px}.photo-tag b{font-size:22px}.photo-tag .mono{font-size:7px}.photo-explore{font-size:10px;gap:10px}.room-switch{min-height:48px;padding:10px 4px;gap:7px;font-size:11px}.room-switch .mono{font-size:8px}.preview-caption{font-size:9px;margin-top:10px;min-height:29px;line-height:1.5}.spaces-section{padding-top:36px;padding-bottom:40px}.spaces-section>.section-heading{margin-bottom:24px}.room-card{border-radius:85px 85px 4px 4px}.room-card>a img{aspect-ratio:1.5}.room-card>.room-top,.room-card>h3,.room-card>p,.room-card>.chips,.room-card>.card-bottom{margin-left:20px;margin-right:20px}.room-card h3{font-size:28px}.room-top .mono{font-size:9px}.room-card .card-bottom{display:flex}.room-card .card-bottom>a{width:auto}.room-card:hover{transform:none;box-shadow:none}.house-invitation{padding:30px 26px;grid-template-columns:1fr;gap:24px}.house-invitation h2{font-size:40px}.house-invitation p:not(.eyebrow){font-size:12px}.house-art{height:200px;width:260px;margin-left:auto;margin-right:auto}.art-caption{right:-10px;font-size:7px}.visit-journey{padding-top:40px}.journey article{padding-top:20px}.journey h3{font-size:24px}.journey .number{font-size:9px;grid-column:1/-1;padding-top:0;margin-bottom:12px}.journey article h3,.journey article p{grid-column:1/-1}.invitation-button{font-size:11px;padding:12px 14px;width:100%;justify-content:space-between}.motion-toggle{margin-top:4px}.hero-note{display:none}}
html[data-motion=reduced]{scroll-behavior:auto}html[data-motion=reduced] *,html[data-motion=reduced] *:before,html[data-motion=reduced] *:after{animation:none!important;transition:none!important}html[data-motion=reduced] .door-leaf{display:none}html[data-motion=reduced] .room-card:hover{transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.door-leaf{display:none}.room-card:hover{transform:none}}

html[data-motion=reduced] .btn:hover>span:last-child{transform:none}

/* Room character & legibility / November 2026 */
.portal-annotation .mono{font-size:11px;letter-spacing:.035em}.photo-tag .mono{font-size:11px;letter-spacing:.025em}.room-switch{font-size:14px}.room-switch .mono{font-size:11px}.preview-caption{font-size:12px;line-height:1.6;min-height:20px}.room-top .mono{font-size:12px;letter-spacing:0}.room-card>p{font-size:13px;min-height:42px}.room-card .chip{font-size:12px}.card-bottom>a{font-size:13px}.hero-note>div>div{font-size:12px}.hero-note>div>div>span{font-size:12px}.hero-media[data-current-room=quiet] .photo-tag{background:#edf1f4}.hero-media[data-current-room=workshop] .photo-tag{background:#fbf0dc}.room-card[data-room=quiet] .chip{background:#e4ebf0}.room-card[data-room=workshop] .chip{background:#f5e8d1}.room-card[data-room=making] .chip{background:#e5eee5}.photo-explore{font-size:12px}.screen-caption{font-size:12px}.source-list{font-size:13px}
@media(max-width:950px) and (min-width:651px){.room-top{flex-wrap:wrap;gap:6px 12px}.room-top .mono{font-size:11px}.photo-explore{font-size:11px}.photo-tag .mono{font-size:10px}}
@media(max-width:650px){.header{min-height:76px;padding-top:12px;padding-bottom:12px;gap:8px}.header .wordmark{font-size:24px;gap:8px}.header nav{gap:10px}.header nav a{font-size:12px}.header nav span{margin-left:5px;width:21px;height:21px}.wordmark-dot{font-size:17px}.hero{padding-top:20px;gap:16px;padding-bottom:30px}.hero h1{font-size:48px;margin-bottom:14px}.hero-copy>.eyebrow{margin-bottom:14px;font-size:11px}.hero-copy>p:not(.eyebrow){max-width:38ch;font-size:14px;line-height:1.6;margin-bottom:14px}.hero .actions{margin:16px 0 8px;gap:12px}.hero-media{display:flex;flex-direction:column}.portal-annotation{order:0;padding-bottom:10px}.portal-annotation .mono{font-size:10px}.room-switcher{order:1;border:1px solid var(--line);border-radius:3px}.room-switch{min-height:48px;font-size:13px;gap:7px}.room-switch .mono{font-size:11px}.preview-caption{order:2;text-align:left;font-size:12px;line-height:1.5;min-height:36px;margin:8px 0 12px}.portal{order:3;aspect-ratio:1.55;border-radius:35% 35% 2px 2px;width:100%;flex-shrink:0}.photo-tag .mono{font-size:10px}.photo-tag b{font-size:23px}.photo-explore{font-size:12px}.hero-media .photo-tag{left:10px;right:10px;bottom:10px;padding:12px}.room-top .mono{font-size:12px}.room-card>.room-top{gap:8px}.room-card .chip{font-size:12px}.room-card>p{font-size:13px;min-height:0}.card-bottom>a{font-size:13px}.card-bottom .muted{font-size:12px!important}.art-caption{font-size:10px;right:0}.invitation-button{font-size:12px}.journey .number{font-size:11px}footer small{font-size:11px}.motion-toggle{font-size:12px}}
.study-meta{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.study-task{padding:32px 0;border-bottom:1px solid var(--line)}.study-task h2{font-size:30px}.study-task .eyebrow{margin-bottom:12px}#study-form label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}#study-form select,#study-form textarea{width:100%;padding:12px 14px;background:var(--white);border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:14px;line-height:1.5}#study-form select{min-height:48px}#study-form textarea{resize:vertical}#study-form details{padding:14px;background:var(--mint);font-size:13px;margin:20px 0}#study-form summary{cursor:pointer;min-height:32px}#study-form details p{margin:12px 0 0}@media(max-width:650px){.study-meta{grid-template-columns:1fr;gap:0}.study-task h2{font-size:28px}}
.room-top .mono,.room-switch .mono,.photo-tag .mono{font-size:12px;letter-spacing:0}
@media(max-width:360px){.header .wordmark{font-size:22px;gap:7px}.header .wordmark-dot{display:none}.header .door-icon{width:18px;height:26px}.header .door-icon:after{height:23px}.header nav{gap:8px}}
/* Controls precede the preview in source order and visual order at every size. */
.hero-media{display:flex;flex-direction:column}.portal-annotation{order:0}.room-switcher{order:1;border:1px solid var(--line);border-radius:3px}.preview-caption{order:2;text-align:left;margin:8px 0 12px}.portal{order:3;width:100%;flex-shrink:0}

/* Room choice: the price and action precede the photograph in source order. */
.room-detail{grid-template-columns:1.05fr 1fr;column-gap:5%;row-gap:28px;align-items:start;padding-bottom:56px}.room-intro{grid-column:2;grid-row:1}.room-intro .eyebrow{margin:0 0 16px;font-size:12px}.room-intro h1{margin:0 0 12px;font-size:clamp(40px,4.5vw,58px)}.room-purpose{font-size:15px;margin-bottom:24px;color:var(--muted)}.room-booking-line{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.room-rate{display:flex;align-items:center;gap:10px;margin:0;white-space:nowrap}.room-rate strong{font-family:Outfit,sans-serif;font-size:36px;font-weight:600;line-height:1}.room-rate span{font-size:12px;line-height:1.5;color:var(--muted)}.room-primary{white-space:nowrap}.room-fit{font-size:12px;margin:14px 0 0;color:var(--muted)}.room-detail>.room-detail-photo{grid-column:1;grid-row:1/span 2;aspect-ratio:1.05;position:sticky;top:24px}.room-information{grid-column:2;grid-row:2}.room-info-title{font-size:24px;letter-spacing:-.025em;margin-bottom:12px}.room-information>p{font-size:14px}.room-information .facts{margin:20px 0}.room-repeat{margin:20px 0 12px;gap:16px}.room-repeat>span,.room-information>.room-demo{font-size:12px}.room-demo{margin-bottom:0}
.case-jumps{display:flex;flex-wrap:wrap;gap:8px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;margin:28px 0}.case-jumps a{min-height:44px;display:inline-flex;align-items:center;font-size:13px;font-weight:600}.case-summary{max-width:62ch}.case-phones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;max-width:650px;margin:32px auto 0}.case-phones figure{margin:0}.case-phones img{width:100%;border:1px solid var(--line);display:block;border-radius:3px}.case-phones figcaption{font-size:12px;line-height:1.6;margin-top:12px;color:var(--muted)}.case-phones figcaption strong{display:block;color:var(--ink);font-size:14px}.case-identity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:32px 0}.case-identity figure{margin:0}.case-identity img{width:100%;aspect-ratio:1.1;object-fit:cover;border-radius:70px 70px 3px 3px;display:block}.case-identity figcaption{font-size:13px;margin-top:12px}.case-identity b{display:block;font-family:Outfit;font-size:21px;margin-bottom:4px}.case-page .case-image{width:100%;height:auto}.case-page .project-boundary{font-size:13px;line-height:1.7;padding:24px;background:var(--mint);margin-top:32px}.case-page details{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.case-page summary{cursor:pointer;min-height:44px;font-size:14px;font-weight:600}.case-page details li{font-size:13px;margin-bottom:12px}.case-page .case-two{align-items:start}.case-page .case-two h3{font-size:24px}.case-page .case-meta p{font-size:12px}.study-setup{padding:20px;border:1px solid var(--line);margin:24px 0}.study-setup summary{font-weight:600;cursor:pointer;min-height:32px}.study-setup li{font-size:13px;margin-bottom:12px}.study-task .task-tools{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px}.task-tools a{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:900px){.room-booking-line{gap:12px;flex-wrap:wrap}.room-detail{column-gap:4%}.room-fit{max-width:35ch}}
@media(max-width:650px){.room-detail{display:flex;flex-direction:column;gap:24px;padding-bottom:36px}.room-intro,.room-information{width:100%}.room-intro .eyebrow{margin-bottom:10px;font-size:11px}.room-intro h1{font-size:40px;margin-bottom:8px}.room-purpose{font-size:14px;margin-bottom:16px}.room-booking-line{flex-wrap:nowrap;padding:16px 0;gap:12px}.room-rate strong{font-size:32px}.room-rate{gap:8px}.room-rate span{font-size:12px}.room-primary{padding:13px 16px;gap:16px;font-size:13px}.room-fit{font-size:12px;margin-top:12px;max-width:none}.room-detail>.room-detail-photo{position:static;aspect-ratio:1.35;border-radius:90px 90px 2px 2px}.room-info-title{font-size:25px}.room-repeat .btn{min-width:160px}.case-jumps{gap:0 22px}.case-phones{gap:14px;margin-top:24px}.case-phones figcaption{font-size:11px}.case-phones figcaption strong{font-size:13px}.case-identity{grid-template-columns:1fr;gap:28px}.case-identity img{aspect-ratio:1.5;border-radius:80px 80px 2px 2px}.case-page .project-boundary{padding:20px}.case-page .header nav a:first-child{display:inline-flex}.case-page .header nav a:last-child{display:none}.case-page .header .wordmark{font-size:26px}.case-page .case-hero h1{font-size:42px}.case-page .case-meta{gap:8px}}
@media(max-width:360px){.room-intro h1{font-size:36px}.room-primary{padding:13px 12px;gap:10px}.room-rate strong{font-size:29px}.room-rate span{font-size:11px}.room-booking-line{gap:8px}}
