/* Generated by node studio/build.mjs from studio/css/*.css. Do not edit this file. */
/* base.css. Owner: package P1 (shell, global styles, images and publishing). Fonts, tokens, element defaults, buttons, links, sections, page heads, FAQ, closing band, legal pages. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 500;font-display:swap;src:url('assets/fonts/d80df8ff5aecd299a615.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/e48e58027030df56869b.woff2') format('woff2')}
@font-face{font-family:Jost;font-style:normal;font-weight:300 500;font-display:swap;src:url('assets/fonts/7726a5cd6f3c0e876c02.woff2') format('woff2')}
:root{--paper:#f1eee7;--ink:#252a25;--muted:#5a6055;--line:#cdcfc3;--moss:#4b5546;--sand:#e5dfd3;--serif:'Cormorant Garamond',Georgia,serif;--sans:Jost,Arial,sans-serif;--gutter:clamp(22px,5vw,80px);--header-height:88px;--chapter-nav-height:0px;--muted-large:#747e6a;--text-min:12px;--label-min:13px;--spec-min:14px;--target-min:24px;--touch-min:44px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button{color:inherit;cursor:pointer}
img{max-width:100%;display:block;height:auto}
button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:not-allowed}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.99;letter-spacing:-.035em}
h1{font-size:clamp(68px,7.5vw,116px)}
h2{font-size:clamp(44px,4.8vw,72px)}
h3{font-size:36px}
h4{font-size:18px;font-weight:400;line-height:1.5}
em{font-weight:400}
p{max-width:64ch}
p+p{margin-top:18px}
strong,b{font-weight:500}
::selection{background:#c1c8b3;color:var(--ink)}
:focus-visible{outline:2px solid var(--moss);outline-offset:5px}
.container{width:100%;max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-size:12px;font-weight:500;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}
.eyebrow+h1,.eyebrow+h2{margin-top:26px}
.fineprint{font-size:12px;line-height:1.65;color:var(--muted);max-width:82ch}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:34px;min-height:52px;padding:14px 22px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;line-height:1.4;transition:background .2s,color .2s;white-space:normal;text-align:left}
.button>span{font-size:19px;line-height:1}
.button:hover{background:var(--moss);border-color:var(--moss)}
.button.secondary{background:transparent;color:var(--ink);border-color:#a8ad9e}
.button.secondary:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:22px}
.text-link,.text-button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;border:0;border-bottom:1px solid #919888;background:none;font-size:13px;line-height:1.5;padding:0 0 7px;text-align:left}
.text-link:hover,.text-button:hover{color:#6c765e;border-color:currentColor}
.section{padding-block:112px}
.section-heading{display:flex;justify-content:space-between;gap:70px;align-items:flex-end;margin-bottom:54px}
.section-heading>div:first-child{flex:1}
.section-intro{width:min(100%,355px);padding-bottom:5px}
.section-intro .text-link{margin-top:24px}
.section-intro p{color:var(--muted);font-size:15px}
.soft-section{background:#e8e6de}
.ruled-section{border-top:1px solid var(--line)}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;transform:translateY(-150%);background:var(--ink);color:white;padding:10px 20px;display:inline-flex;align-items:center;min-height:var(--target-min)}
.skip-link:focus{transform:none}
.closing-cta{background:#dddccd;overflow:hidden}
.closing-cta>.container{position:relative;display:grid;grid-template-columns:1.5fr 1fr;gap:100px;align-items:center;padding-block:95px}
.closing-cta h2{font-size:clamp(50px,5.2vw,82px)}
.closing-cta .container>div{position:relative;z-index:1}
.closing-cta .container>div:last-of-type{padding-left:20px}
.closing-cta p:not(.eyebrow){font-size:16px;max-width:330px;margin-bottom:25px}
.cta-symbol{position:absolute;right:-70px;bottom:-115px;font-size:440px;line-height:1;color:#d2d3c2;pointer-events:none}
.page-head{padding-top:91px;padding-bottom:85px;display:grid;grid-template-columns:1.6fr 1fr;gap:9%;align-items:end}
.page-head h1{font-size:clamp(66px,7.5vw,110px);line-height:.96}
.page-head>div:last-child{padding-bottom:7px;max-width:380px}
.page-head>div:last-child p{font-size:15px;color:var(--muted)}
.page-head>div:last-child .fineprint{font-size:12px}
.page-head .button,.page-head .text-link{margin-top:27px}
.page-head.compact-head{padding-bottom:45px}
.faq-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;font-size:16px;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary>span{font-size:23px;line-height:1;transition:transform .2s}
.faq-list details[open] summary>span{transform:rotate(45deg)}
.faq-list details>div{padding:0 30px 24px 0;font-size:14px;color:var(--muted)}
.tool-fallback{padding:24px;border:1px solid var(--line);color:var(--muted)}
.back-row{display:flex;justify-content:space-between;gap:25px;padding-block:20px 65px}
.legal-head{padding-top:95px;padding-bottom:60px;max-width:1100px}
.legal-head h1{font-size:78px;margin-bottom:33px}
.legal-head>p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:740px}
.legal-content{max-width:1100px;padding-bottom:45px}
.legal-content article{display:grid;grid-template-columns:80px 1fr;gap:25px;border-top:1px solid var(--line);padding-block:35px}
.legal-content article>span{font-family:var(--serif);font-size:30px;color:var(--muted-large)}
.legal-content h2{font-size:32px;margin-bottom:17px;line-height:1.1}
.legal-content p{font-size:15px;color:var(--muted);max-width:760px}
.legal-content .back-row{border-top:1px solid var(--line);padding-top:35px}
.reveal-ready{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}
.reveal-ready.is-visible{opacity:1;transform:none}
@media(max-width:1250px){
  :root{--gutter:42px}
}
@media(max-width:1100px){
  :root{--header-height:78px}
  .section-heading{gap:40px}
  .section-intro{width:310px}
  .closing-cta>.container{gap:50px;grid-template-columns:1.4fr 1fr}
  .page-head{gap:55px;grid-template-columns:1.5fr 1fr}
  .page-head h1{font-size:77px}
}
@media(max-width:800px){
  :root{--gutter:25px;--header-height:72px}
  .section{padding-block:75px}
  h1{font-size:66px}
  h2{font-size:49px}
  .section-heading{display:block;margin-bottom:40px}
  .section-intro{width:auto;max-width:450px;padding:0;margin-top:28px}
  .section-intro p{font-size:14px}
  .section-intro .text-link{margin-top:20px}
  .closing-cta>.container{display:block;padding-block:65px}
  .closing-cta h2{font-size:60px}
  .closing-cta .container>div:last-of-type{padding:0;margin-top:35px}
  .closing-cta p:not(.eyebrow){font-size:14px}
  .cta-symbol{font-size:320px;bottom:-55px}
  .page-head{padding-top:65px;padding-bottom:60px;display:block}
  .page-head h1{font-size:75px}
  .page-head>div:last-child{margin-top:32px;max-width:550px}
  .page-head>div:last-child p{font-size:14px}
  .faq-section{display:block}
  .faq-list{margin-top:35px}
  .faq-list summary{font-size:15px}
  .legal-head{padding-top:65px;padding-bottom:45px}
  .legal-head h1{font-size:64px}
  .legal-head>p:not(.eyebrow){font-size:15px}
  .legal-content article{grid-template-columns:40px 1fr;gap:25px}
  .legal-content h2{font-size:30px}
  .legal-content p{font-size:14px}
}
@media(max-width:500px){
  :root{--gutter:21px}
  h2{font-size:46px}
  .section{padding-block:65px}
  .section-heading{margin-bottom:33px}
  .closing-cta h2{font-size:52px}
  .closing-cta>.container{padding-block:58px}
  .page-head h1{font-size:64px;letter-spacing:-.045em}
  .page-head{padding-top:50px;padding-bottom:48px}
  .page-head>div:last-child p{font-size:14px}
  .back-row{align-items:flex-start;flex-direction:column;gap:25px}
  .back-row .text-link{font-size:12px}
  .legal-head h1{font-size:58px}
  .legal-head>p:not(.eyebrow){font-size:14px}
  .legal-content article{grid-template-columns:27px 1fr;gap:17px;padding-block:28px}
  .legal-content h2{font-size:29px}
  .legal-content p{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal-ready{opacity:1;transform:none}
}
/* Cross-document view transitions (audit item 39): the opt-in is an inline <style> at the top of every page's head
   (studio/build/lib.mjs), so it is in force before this stylesheet loads. The header and named images carry over. */
/* Audit item 22, the general-layer share: .text-link/.text-button are already inline-flex, so this is a taller
   invisible box under a touch pointer, not a type-size change. Standalone links (every use on this site), not
   links inside a running sentence, which item 22 exempts. */
@media(pointer:coarse){
  .text-link,.text-button{min-height:var(--touch-min)}
}
/* Ruling 29: a small ft | m control wherever dimensions appear (floor plan, Studio, compare, plot readout, home
   specifications). A global atom (base.css) since it shows up beside content styled by several different owner
   files. Square, two-state, no pill: matches the CONTRACT's "no pill-heavy UI". */
.unit-toggle{display:inline-flex;border:1px solid var(--line);flex-shrink:0}
.unit-toggle button{border:0;background:none;padding:6px 14px;font-size:var(--label-min);min-height:var(--target-min);display:inline-flex;align-items:center;color:var(--muted)}
.unit-toggle button+button{border-left:1px solid var(--line)}
.unit-toggle button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
@media(pointer:coarse){.unit-toggle button{min-height:var(--touch-min);min-width:var(--touch-min);justify-content:center}}
/* Ruling 10: a labelled sample block ("What to expect") reused on home pages and Planning. */
.sample-block{border-top:2px solid var(--line);padding-top:8px}
.sample-tag{display:inline-flex;align-items:center;border:1px solid #a8ad9e;padding:6px 12px;font-size:var(--label-min);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.sample-block>.eyebrow{margin:34px 0 14px}
.sample-block>p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:640px}
.sample-block .three-columns{margin-top:10px}
.sample-block .three-columns p{max-width:none}
.stage-list{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:10px 0 0;list-style:none;counter-reset:stage}
.stage-list li{counter-increment:stage;border:1px solid var(--line);padding:9px 14px 9px 30px;font-size:13px;position:relative}
.stage-list li:before{content:counter(stage);position:absolute;left:12px;color:var(--muted-large);font-family:var(--serif)}
.sample-lead{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:10px}
.sample-lead article{text-align:left}
.sample-lead img{width:100%;aspect-ratio:1;object-fit:cover;filter:saturate(.65);margin-bottom:14px}
.sample-lead h3{font-size:20px;font-weight:400;font-family:var(--serif);margin-bottom:4px}
.sample-lead .lead-role{font-size:12px;color:var(--muted)}
.sample-lead .lead-tag{display:inline-block;margin-top:8px;font-size:var(--text-min);letter-spacing:.06em;text-transform:uppercase;color:var(--moss)}
@media(max-width:1100px){.sample-lead{grid-template-columns:repeat(2,1fr);gap:30px 20px}}
@media(max-width:500px){.sample-lead{grid-template-columns:1fr 1fr;gap:24px 16px}}
/* shell.css. Owner: package P1 (shell, global styles, images and publishing). Header, navigation, menu and footer. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
.site-header{height:var(--header-height);position:sticky;top:0;z-index:30;background:rgba(241,238,231,.95);backdrop-filter:blur(15px);border-bottom:1px solid rgba(37,42,37,.17);view-transition-name:site-header}
.header-inner{height:100%;max-width:1680px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);gap:24px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-mark{width:32px;height:38px;fill:none;stroke:currentColor;stroke-width:1.1}
.brand>span{font-family:var(--serif);font-size:20px;letter-spacing:.09em;line-height:1.1}
.brand small{display:block;font-family:var(--sans);font-size:6.7px;letter-spacing:.23em;margin-top:7px}
.site-header nav{display:flex;align-items:center;gap:clamp(22px,2.2vw,36px)}
.site-header nav>a{font-size:12px;white-space:nowrap;display:inline-flex;align-items:center;min-height:var(--target-min)}
.site-header nav>a:not(.button){position:relative}
.site-header nav>a[aria-current]:after{content:'';position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--ink)}
.site-header nav .button{min-height:42px;padding:11px 16px;gap:22px}
.site-header .nav-project{margin-left:12px;color:var(--muted)}
.menu-toggle{display:none;background:none;border:0}
.site-footer{background:var(--ink);color:var(--paper);padding:70px 0 0}
.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:54px;border-bottom:1px solid #505448}
.footer-wordmark{font-family:var(--serif);font-size:96px;letter-spacing:-.045em;line-height:1}
.footer-wordmark>span{font-family:var(--sans);font-size:14px;vertical-align:top;display:inline-block;margin-top:15px;margin-left:8px;letter-spacing:0}
.footer-top p{font-size:13px;line-height:1.7;color:#bfc6b6}
.footer-links{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:70px;padding-block:50px}
.footer-links>div{display:flex;align-items:flex-start;flex-direction:column;gap:10px;font-size:12px}
.footer-links .eyebrow{color:#9da78f;margin-bottom:8px}
.footer-links a{display:inline-flex;align-items:center;min-height:var(--target-min)}
.footer-links a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-note p{color:#aeb7a1;font-size:12px;max-width:345px}
.footer-note>a{margin-top:5px}
/* Fictional-studio disclosure moved out of the fixed .demo-ribbon and into the footer bottom band (audit item 33). */
.footer-bottom{border-top:1px solid #505448;padding-block:22px 35px;font-size:12px;color:#a8b29a}
.footer-disclosure{margin:0 0 14px;font-size:12px;letter-spacing:.02em}
.footer-meta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.footer-meta-links{display:flex;gap:28px}
.footer-meta-links a{display:inline-flex;align-items:center;min-height:var(--target-min)}
@media(max-width:1250px){
  .site-header nav{gap:20px}
  .site-header .nav-project{display:none}
}
@media(max-width:1100px){
  .site-header .header-inner{padding-inline:30px}
  .menu-toggle{display:flex;align-items:center;gap:14px;font-size:12px;padding:12px 0;min-height:var(--target-min)}
  .menu-toggle>span{width:23px;display:flex;flex-direction:column;gap:5px}
  .menu-toggle i{display:block;width:23px;height:1px;background:var(--ink);transition:transform .2s}
  .menu-open .menu-toggle i:first-child{transform:translateY(3px) rotate(45deg)}
  .menu-open .menu-toggle i:last-child{transform:translateY(-3px) rotate(-45deg)}
  .site-header nav{position:absolute;top:77px;left:0;right:0;background:var(--paper);padding:35px;display:flex;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);gap:25px}
  .site-header nav>a:not(.button){font-size:21px}
  .site-header nav .nav-project{display:block;margin-left:0}
  .menu-ready .site-header nav{display:none}
  .menu-ready .menu-open .site-header nav{display:flex}
  .footer-links{gap:40px}
}
@media(max-width:800px){
  .header-inner{padding-inline:25px!important}
  .site-header nav{top:71px}
  .brand-mark{width:28px;height:33px}
  .brand>span{font-size:18px}
  .brand small{font-size:6px}
  .site-footer{padding-top:55px}
  .footer-wordmark{font-size:78px}
  .footer-top{gap:25px;padding-bottom:35px}
  .footer-top p{font-size:12px}
  .footer-links{grid-template-columns:1fr 1fr;gap:38px;padding-block:38px}
  .footer-links .footer-note{grid-column:1/-1;max-width:440px}
  .footer-note p{max-width:440px}
  .footer-meta{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(max-width:500px){
  .header-inner{padding-inline:21px!important}
  .footer-top{align-items:flex-start;flex-direction:column;gap:25px}
  .footer-wordmark{font-size:80px}
  .footer-top p{font-size:12px}
  .footer-links{gap:32px}
  .footer-meta-links{gap:25px}
}
@media(pointer:coarse){
  .site-header nav>a,.site-header nav .button,.menu-toggle,.footer-links a{min-height:var(--touch-min)}
  .brand{min-height:var(--touch-min)}
  .footer-meta-links a{min-height:var(--touch-min);padding-inline:10px}
}
/* home.css. Owner: package P2 (content pages). Home page (hero, intro, collection cards, editorial split, craft preview, process preview) and the Homes collection story. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
/* Hero caption, status and photograph rules moved from scene.css (formerly the last-loaded overrides). */
.hero-model .model-caption{left:20px;right:20px;bottom:22px;z-index:4;background:rgba(246,244,237,.94);padding:8px 11px;color:#29372c;font-size:12px;line-height:1.4;gap:15px}
.hero-model .model-caption>span:last-child{font-size:12px;max-width:none}
.hero-model .hero-scroll{display:none}
@media(max-width:760px){
  .hero-model .model-caption{left:14px;right:14px;font-size:12px}
  .hero-model .model-caption>span:last-child{font-size:12px}
}
.hero-story{background:radial-gradient(ellipse at 72% 28%,#f8f6f0 0,#ece9df 61%,#e7e4db 100%);position:relative}
.hero-stage{height:calc(100svh - var(--header-height));min-height:640px;max-height:1000px;position:relative;display:grid;grid-template-columns:46% 54%;align-items:center;overflow:hidden}
.hero-copy{position:relative;z-index:3;padding-top:30px;padding-bottom:30px;pointer-events:none}
.hero-copy a{pointer-events:auto}
.hero-copy h1{font-size:clamp(64px,6.4vw,96px);line-height:.97;letter-spacing:-.045em;max-width:7em;margin-top:24px}
.hero-copy h1 em{white-space:nowrap}
.hero-copy .eyebrow{font-size:12px;letter-spacing:.135em;display:flex;gap:10px;align-items:center}
.small-cross{font-size:22px;line-height:.6}
.hero-description{margin-top:24px;color:#64685e;font-size:14px;line-height:1.6;max-width:365px}
.hero-copy .button-row{margin-top:27px;gap:26px;flex-wrap:nowrap}
.hero-copy .button{font-size:13px;gap:22px;min-width:205px;padding-left:18px;padding-right:18px}
.hero-copy .text-link{font-size:13px;gap:16px;white-space:nowrap}
.hero-planning{display:inline-flex;gap:20px;align-items:center;font-size:14px;margin-top:17px;border-bottom:1px solid #b0b6a6;padding-bottom:4px}
.hero-planning:hover{color:var(--moss);border-color:currentColor}
@media(pointer:coarse){.hero-planning{min-height:var(--touch-min)}}
.hero-footnote{display:flex;gap:35px;margin-top:25px;padding-top:16px;border-top:1px solid #c5c9bc;width:95%;max-width:370px;font-size:14px;line-height:1.5;color:var(--muted)}
.hero-footnote strong{color:var(--ink)}
.hero-model{align-self:stretch;position:relative;margin-left:-20px;margin-right:-45px;display:flex;align-items:center}
.hero-model .hero-photo{height:100%;max-height:none;width:100%;object-fit:cover}
.model-caption{position:absolute;bottom:80px;left:17%;right:35px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.12em;color:#6e7567}
.model-caption>span:last-child{font-size:12px;letter-spacing:0}
.hero-scroll{position:absolute;bottom:25px;right:40px;display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.09em;color:#6d7366}
.scroll-line{width:1px;height:30px;background:#959d8a}
.intro-section{padding-block:135px;display:grid;grid-template-columns:24% 58% 1fr;gap:24px;position:relative;border-bottom:1px solid var(--line)}
.intro-section>.eyebrow{padding-top:13px}
.intro-section h2{font-size:clamp(48px,5vw,78px);margin-bottom:35px}
.intro-section p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:600px}
.intro-section .text-link{margin-top:30px}
.intro-index{font-size:10px;letter-spacing:.1em;align-self:end;justify-self:end;writing-mode:vertical-rl}
.collection-lead{font-size:26px;margin-bottom:22px}
.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.home-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-card{position:relative}
.card-image{display:block;position:relative;overflow:hidden;background:#e4e3d8;aspect-ratio:1.27;pointer-events:none}
.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s}
.card-image-hover{position:absolute;inset:0;opacity:0;transition:opacity .3s ease}
.home-card:hover .card-image img,.home-card:focus-within .card-image img{transform:scale(1.035)}
@media(hover:hover) and (pointer:fine){
  .home-card:hover .card-image-hover,.home-card:focus-within .card-image-hover{opacity:1}
}
@media(prefers-reduced-motion:reduce){.card-image-hover{transition:none}}
.image-corner{position:absolute;top:16px;left:17px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;padding:4px 7px;background:#f1eee7ba;z-index:1}
.card-arrow{width:32px;height:32px;position:absolute;right:15px;bottom:15px;display:grid;place-items:center;background:var(--paper);font-size:18px;z-index:1}
.card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px}
.card-topline h3{font-size:31px}
.card-topline h3 a::after{content:'';position:absolute;inset:0}
@media(pointer:coarse){.card-topline h3 a{display:inline-flex;align-items:center;min-height:var(--touch-min)}}
.card-topline>span{font-size:14px;white-space:nowrap}
.home-card>p{margin-top:9px;color:var(--muted);font-size:13px}
.card-specs{display:flex;gap:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:11px;margin-top:20px;font-size:14px;color:var(--muted)}
.card-specs b{font-weight:inherit}
.home-grid+.fineprint{margin-top:36px}
/* Audit item 39: the card's own exterior photo shares a view-transition-name with the matching home
   page's hero photograph (detail.css), so a cross-document navigation carries the image across. */
.home-card[data-home="courtyard"] .card-image-exterior{view-transition-name:home-courtyard}
.home-card[data-home="ridge"] .card-image-exterior{view-transition-name:home-ridge}
.home-card[data-home="pavilion"] .card-image-exterior{view-transition-name:home-pavilion}
.editorial-split{display:grid;grid-template-columns:1fr 1fr;background:#e4e1d7}
.editorial-image{min-height:660px;overflow:hidden}
.editorial-image img{height:100%;width:100%;object-fit:cover}
.editorial-copy{padding:85px clamp(40px,6vw,100px);align-self:center}
.editorial-copy h2{font-size:clamp(56px,5.3vw,82px);margin-bottom:33px}
.editorial-copy>p:not(.eyebrow){font-size:15px;max-width:400px;opacity:.78}
.editorial-copy>.button{margin-top:35px}
.craft-preview{display:grid;grid-template-columns:1.08fr .8fr .8fr;gap:50px;align-items:center}
.craft-preview figure:first-child{align-self:start}
.craft-preview figure:last-child{align-self:end;padding-top:100px}
.craft-preview figure img{height:400px;object-fit:cover;width:100%}
.craft-preview figure:last-child img{height:335px}
.craft-preview figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:14px;font-size:12px;letter-spacing:.09em}
.craft-preview figcaption span:last-child{letter-spacing:0}
.craft-note h3{font-size:38px;line-height:1.05}
.craft-note p{margin-top:24px;font-size:14px;color:var(--muted)}
.craft-note .text-link{font-size:13px;margin-top:27px}
.process-preview{border-top:1px solid var(--line)}
.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin:65px 0 38px}
.step-grid article{border-top:1px solid var(--line);padding-top:25px}
.step-grid h3{margin-top:28px;margin-bottom:17px}
.step-grid p{font-size:14px;color:var(--muted);max-width:300px}
.collection-story{min-height:180vh;background:#e5e6dc;position:relative}
.collection-stage{position:sticky;top:var(--header-height);min-height:calc(100svh - var(--header-height));display:grid;grid-template-columns:.8fr 1.3fr;gap:65px;align-items:center;overflow:hidden;padding-block:35px}
.collection-copy h2{margin-bottom:27px}
.collection-copy p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:310px}
.mini-index{border-top:1px solid #bfc5b5;margin-top:40px;padding-top:16px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.mini-index-item{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;background:none;border:0;border-left:2px solid transparent;padding:9px 6px 9px 12px;font:inherit;text-align:left;color:var(--muted);cursor:pointer}
.mini-index-item[aria-current="true"]{color:var(--ink);border-left-color:var(--ink)}
@media(pointer:coarse){.mini-index-item{min-height:var(--touch-min)}}
.collection-stage>.house-scene{height:640px;max-height:77svh}
@media(min-width:1700px){
  .hero-model{margin-right:0}
  .hero-copy h1{font-size:103px}
}
@media(max-width:1250px){
  .hero-copy h1{font-size:76px}
  .hero-copy .button-row{gap:19px;flex-wrap:wrap}
  .hero-copy .button{min-width:190px}
  .hero-model{margin-left:0}
  .hero-description{font-size:13px;max-width:340px}
  .hero-footnote{margin-top:24px}
  .model-caption{left:14%;font-size:12px}
  .home-grid{gap:22px}
  .card-topline{align-items:flex-start;flex-direction:column;gap:7px}
  .card-specs{gap:11px}
  .craft-preview{gap:35px}
  .craft-note h3{font-size:32px}
}
@media(max-width:1100px){
  .hero-copy h1{font-size:68px}
  .hero-stage{min-height:630px}
  .hero-model{margin-left:-15px;margin-right:-65px}
  .hero-copy .button-row{align-items:flex-start;flex-direction:column;gap:19px;margin-top:24px}
  .hero-description{font-size:12px;max-width:300px}
  .hero-planning{gap:15px}
  .hero-footnote{max-width:300px;gap:25px}
  .model-caption>span:last-child{display:none}
  .model-caption{left:24%}
  .intro-section{grid-template-columns:23% 1fr}
  .intro-index{display:none}
  .home-grid{gap:18px}
  .home-card .card-image{aspect-ratio:1}
  .card-specs{gap:8px;flex-wrap:wrap}
  .editorial-image{min-height:620px}
  .editorial-copy{padding:60px 45px}
  .editorial-copy h2{font-size:64px}
  .craft-preview{grid-template-columns:1fr 1fr}
  .craft-note{padding:20px}
  .craft-preview figure:last-child{display:none}
  .craft-preview figure img{height:440px}
  .step-grid{gap:35px}
  .collection-stage{grid-template-columns:.9fr 1.2fr;gap:25px}
}
@media(max-width:800px){
  .hero-stage{height:calc(100svh - 72px);min-height:760px;max-height:950px;display:flex;align-items:stretch;flex-direction:column;padding-top:35px;padding-bottom:20px}
  .hero-copy{padding:0;flex:0 0 auto}
  .hero-copy h1{font-size:66px;margin-top:20px;max-width:8em}
  .hero-copy h1 br{display:block}
  .hero-copy h1 em{display:inline}
  .hero-description{margin-top:17px;font-size:13px;line-height:1.5;max-width:500px}
  .hero-description br{display:none}
  .hero-copy .button-row{margin-top:20px;flex-direction:row;align-items:center;gap:25px}
  .hero-copy .button{padding:12px 15px;min-height:45px;min-width:180px}
  .hero-copy .text-link{gap:15px}
  .hero-planning{margin-top:14px}
  .hero-footnote{display:none}
  .hero-model{margin:20px -30px 0;flex:1;min-height:300px}
  .hero-model .hero-photo{min-height:300px}
  .model-caption{bottom:27px;left:45px;right:45px;line-height:1.3}
  .model-caption>span:last-child{display:block;font-size:12px}
  .hero-scroll{bottom:0;right:45px;font-size:8px}
  .hero-scroll .scroll-line{height:16px}
  .intro-section{padding-block:80px;display:block}
  .intro-section>.eyebrow{margin-bottom:30px;padding:0}
  .intro-section h2{font-size:55px;margin-bottom:30px}
  .intro-section p:not(.eyebrow){font-size:15px;max-width:580px}
  .home-grid{grid-template-columns:1fr;gap:48px}
  .home-grid.two-up{grid-template-columns:1fr 1fr;gap:22px}
  .home-card .card-image{aspect-ratio:1.5}
  .card-topline{flex-direction:row;align-items:center}
  .card-topline h3{font-size:36px}
  .card-specs{gap:23px;margin-top:18px}
  .home-grid.two-up .card-topline{flex-direction:column;align-items:flex-start}
  .home-grid.two-up .card-topline h3{font-size:29px}
  .home-grid.two-up .card-specs{gap:12px}
  .home-grid.two-up .card-image{aspect-ratio:1.1}
  .editorial-split{grid-template-columns:1fr}
  .editorial-image{min-height:0;height:450px}
  .editorial-copy{padding:62px 40px}
  .editorial-copy h2{font-size:68px}
  .craft-preview{gap:35px;grid-template-columns:1.2fr 1fr}
  .craft-preview figure img{height:370px}
  .craft-preview figcaption{flex-direction:column;gap:3px}
  .craft-note{padding:0}
  .craft-note h3{font-size:34px}
  .craft-note p{font-size:13px}
  .step-grid{gap:30px;margin-top:40px}
  .step-grid h3{font-size:31px}
  .step-grid p{font-size:12px}
  .collection-stage{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:15px;padding-block:45px 20px;min-height:calc(100svh - 72px);height:calc(100svh - 72px);min-height:710px}
  /* Full bleed to the screen edges: exactly the gutter (as .chapter-stage in stories.css). */
  .collection-stage>.house-scene{height:auto;min-height:340px;max-height:none;flex:1;margin-inline:calc(-1*var(--gutter));width:calc(100% + 2*var(--gutter))}
  .collection-copy h2{font-size:48px;line-height:.98;margin-bottom:18px}
  .collection-copy p:not(.eyebrow){font-size:13px;max-width:390px}
  .mini-index{margin-top:25px;padding-top:11px;flex-direction:row;flex-wrap:wrap;gap:20px;font-size:13px;max-width:500px}
}
@media(max-width:500px){
  .hero-stage{min-height:735px;padding-top:28px}
  .hero-copy h1{font-size:53px;max-width:100%}
  .hero-copy .eyebrow{letter-spacing:.115em;gap:8px}
  .small-cross{font-size:19px}
  .hero-description{font-size:12px;max-width:340px}
  .hero-copy .button-row{gap:18px}
  .hero-copy .button{min-width:172px;padding-left:13px;padding-right:13px;gap:14px}
  .hero-copy .text-link{gap:10px}
  .hero-planning{margin-top:13px}
  .hero-model{min-height:300px;margin-top:12px}
  .hero-model .hero-photo{min-height:280px}
  .model-caption{left:40px;right:40px}
  .model-caption>span:last-child{max-width:95px;text-align:right}
  .hero-scroll{right:40px;font-size:7px}
  .intro-section{padding-block:65px}
  .intro-section h2{font-size:48px}
  .intro-section p:not(.eyebrow){font-size:14px}
  .card-topline h3{font-size:34px}
  .card-specs{gap:18px}
  .card-image{aspect-ratio:1.3!important}
  .home-grid.two-up{grid-template-columns:1fr;gap:40px}
  .home-grid.two-up .card-topline{flex-direction:row;align-items:center}
  .home-grid.two-up .card-topline h3{font-size:34px}
  .home-grid.two-up .card-specs{gap:20px}
  .editorial-image{height:350px}
  .editorial-copy{padding:55px 28px}
  .editorial-copy h2{font-size:59px}
  .craft-preview{grid-template-columns:1fr;gap:35px}
  .craft-preview figure img{height:360px}
  .craft-preview figcaption{flex-direction:row}
  .craft-note h3{font-size:37px}
  .craft-note p{font-size:14px;max-width:310px}
  .craft-note h3 br{display:none}
  .craft-note .text-link{margin-top:22px}
  .step-grid{grid-template-columns:1fr;gap:27px;margin-top:35px}
  .step-grid article{display:grid;grid-template-columns:45px 1fr;gap:10px 20px;padding-top:20px}
  .step-grid .step-number{grid-row:1/3;font-size:33px}
  .step-grid h3{margin:0;font-size:34px}
  .step-grid p{grid-column:2;font-size:13px;max-width:300px}
  .collection-stage{min-height:730px;padding-top:35px;padding-bottom:15px}
  .collection-stage>.house-scene{min-height:300px}
  .collection-copy h2{font-size:46px}
  .mini-index{gap:15px;margin-top:22px}
}
/* editorial.css. Owner: package P2 (content pages). Bespoke, Our approach, Materials and The studio page sections. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
.moss-section{background:var(--moss);color:var(--paper)}
.moss-section .eyebrow{color:#ced2c3}
.moss-section .button.secondary{color:var(--paper);border-color:#8d9882}
.moss-section .button.secondary:hover{background:var(--paper);color:var(--ink)}
.moss-section .section-intro p{color:#ced2c3}
.step-number{font-family:var(--serif);font-size:39px;line-height:1;color:var(--muted-large)}
.plot-workspace{display:grid;grid-template-columns:1.6fr 1fr;gap:50px;align-items:center;background:#e6e5db;padding:30px}
.plot-workspace>.house-scene{height:530px}
.numbered-list{border-top:1px solid #c1c4b6;margin-block:30px}
.numbered-list>div{display:flex;gap:23px;padding-block:18px;border-bottom:1px solid #c1c4b6;align-items:center}
.numbered-list span{font-family:var(--serif);font-size:25px;color:var(--muted-large)}
.numbered-list p{font-size:15px}
.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px}
.three-columns h3{font-size:35px;line-height:1.1;margin-bottom:22px}
.three-columns p{font-size:14px;color:var(--muted)}
.three-columns+.fineprint{margin-top:40px}
.journey-list{border-top:1px solid var(--line)}
.journey-step{padding:50px 0;display:grid;grid-template-columns:.4fr 1fr 1.5fr;gap:30px;border-bottom:1px solid var(--line)}
.journey-step h3{font-size:48px}
.journey-step h4{margin-bottom:15px}
.journey-step p{font-size:14px;color:var(--muted);max-width:530px}
.journey-outcome{margin-top:26px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid var(--line);padding-top:13px;max-width:530px}
.finish-picker{display:flex;gap:16px;margin-top:28px}
.finish-button{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;padding:4px;font-size:12px;color:var(--muted);cursor:pointer}
.finish-button img{width:40px;height:40px;object-fit:cover;border:2px solid transparent;border-radius:0}
.finish-button[aria-pressed="true"]{color:var(--ink)}
.finish-button[aria-pressed="true"] img{border-color:var(--ink)}
@media(pointer:coarse){.finish-button{min-height:var(--touch-min);min-width:var(--touch-min);justify-content:center}}
.material-editorial{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}
.material-editorial.reverse{direction:rtl;padding-top:20px}
.material-editorial.reverse>*{direction:ltr}
.material-image{height:650px}
.material-image img{height:100%;width:100%;object-fit:cover}
.material-editorial h2{margin-bottom:35px}
.material-editorial p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:430px}
.material-spec{display:grid;grid-template-columns:.8fr 1.2fr;gap:13px;font-size:12px;line-height:1.7;margin-top:33px;border-top:1px solid var(--line);padding-top:22px}
.material-spec span:nth-child(odd){color:var(--muted)}
.mineral-section{background:#e1e1d6;padding-block:100px}
.mineral-section>.container{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}
.mineral-swatch{position:relative;min-height:400px;background:url('assets/textures/swatch-mineral.webp') center/140px repeat;box-shadow:25px 30px 0 #d5d6c9,0 10px 50px #b7b9a728;margin-right:45px}
.mineral-swatch span{position:absolute;bottom:25px;left:25px;font-size:12px;letter-spacing:.12em;color:var(--ink);background:#f1eee7d9;padding:7px 11px}
.mineral-section h2{margin-bottom:30px}
.mineral-section p:not(.eyebrow){font-size:15px;color:var(--muted)}
.mineral-section .text-link{margin-top:30px}
.detail-rule{display:block;width:38px;height:2px;background:#8a977b;margin-bottom:32px}
.wide-editorial img{height:580px;width:100%;object-fit:cover}
.wide-caption{display:flex;justify-content:space-between;gap:30px;font-size:12px;letter-spacing:.1em;margin-top:16px}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.team-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.65)}
.team-grid h3{font-size:30px;margin-top:24px}
.team-grid .team-role{font-size:12px;color:var(--muted);margin-top:9px}
.team-grid p:last-child{font-family:var(--serif);font-size:22px;line-height:1.3;margin-top:21px;max-width:230px}
.values-section{padding-block:100px}
.values-section .three-columns p{color:#c6cdbb}
.values-section .step-number{display:block;margin-bottom:30px;color:#acb89a}
@media(max-width:1250px){
  .material-editorial,.mineral-section>.container{gap:65px}
}
@media(max-width:1100px){
  .plot-workspace{grid-template-columns:1.2fr 1fr;gap:25px;padding:20px}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:45px 28px}
  .team-grid img{aspect-ratio:1/.95}
  .team-grid p:last-child{max-width:300px}
}
@media(max-width:800px){
  .step-number{font-size:32px}
  .plot-workspace{display:block;padding:15px}
  .plot-workspace>.house-scene{height:430px;max-height:none}
  .three-columns{gap:32px}
  .three-columns h3{font-size:30px}
  .three-columns p{font-size:12px}
  .journey-step{grid-template-columns:50px .8fr 1.5fr;gap:25px;padding-block:35px}
  .journey-step h3{font-size:35px}
  .journey-step h4{font-size:16px}
  .journey-step p{font-size:12px}
  .journey-outcome{gap:15px}
  .material-editorial{gap:45px;padding-block:70px;grid-template-columns:1fr 1fr}
  .material-image{height:480px}
  .material-editorial h2{font-size:44px;margin-bottom:23px}
  .material-editorial p:not(.eyebrow){font-size:13px}
  .material-spec{display:flex;flex-direction:column;gap:8px;margin-top:23px;padding-top:18px}
  .material-spec span:nth-child(3){margin-top:9px}
  .mineral-section{padding-block:70px}
  .mineral-section>.container{gap:50px}
  .mineral-swatch{min-height:330px;margin-right:15px;box-shadow:15px 20px 0 #d5d6c9}
  .mineral-section h2{font-size:47px}
  .mineral-section p:not(.eyebrow){font-size:13px}
  .mineral-section .text-link{font-size:13px}
  .wide-editorial img{height:400px}
  .team-grid img{aspect-ratio:3/4}
  .values-section{padding-block:70px}
}
@media(max-width:500px){
  .plot-workspace{padding:10px}
  .plot-workspace>.house-scene{height:340px}
  .three-columns{grid-template-columns:1fr;gap:36px}
  .three-columns h3{font-size:34px;margin-bottom:15px}
  .three-columns p{font-size:14px;max-width:350px}
  .journey-step{grid-template-columns:35px 1fr;gap:16px}
  .journey-step>div{grid-column:2}
  .journey-step h3{font-size:40px}
  .journey-step h4{font-size:15px}
  .journey-step p{font-size:13px}
  .material-editorial,.material-editorial.reverse{display:flex;flex-direction:column;gap:35px;padding-block:55px}
  .material-image{height:450px;width:100%}
  .material-editorial h2{font-size:49px}
  .material-editorial p:not(.eyebrow){font-size:14px}
  .material-spec{display:grid;grid-template-columns:1fr 1.4fr;gap:14px}
  .material-spec span:nth-child(3){margin:0}
  .mineral-section>.container{grid-template-columns:1fr;gap:60px}
  .mineral-swatch{min-height:290px;margin-right:25px}
  .mineral-section h2{font-size:49px}
  .mineral-section p:not(.eyebrow){font-size:14px}
  .wide-editorial img{height:320px}
  .wide-caption{gap:18px}
  .team-grid{gap:35px 18px}
  .team-grid h3{font-size:28px;margin-top:20px}
  .team-grid p:last-child{font-size:19px;margin-top:17px}
  .team-grid img{aspect-ratio:3/4.3}
  .values-section .three-columns{gap:35px}
  .values-section .step-number{font-size:34px;margin-bottom:18px}
}
/* detail.css. Owner: package P2 (content pages). Home detail pages: title, specs, photograph, chapter navigation, intro, interior portrait, investment. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
.detail-head{padding-top:34px}
.breadcrumb{display:flex;align-items:center;gap:15px;font-size:12px;color:var(--muted)}
.breadcrumb a{display:inline-flex;align-items:center;padding-block:5px;border-bottom:1px solid #a8b29a}
@media(pointer:coarse){.breadcrumb a{min-height:var(--touch-min)}}
.detail-title{display:flex;justify-content:space-between;align-items:center;gap:50px;margin-block:48px}
.detail-title h1{font-size:clamp(70px,8.5vw,125px);margin-top:12px}
.detail-title>div:last-child{display:flex;align-items:flex-start;flex-direction:column;gap:16px}
.detail-title>div:last-child p{font-size:14px;color:var(--muted)}
.detail-title strong{color:var(--ink)}
.detail-title .text-link{font-size:13px}
.detail-specs{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);padding-block:23px 27px;gap:20px;font-size:14px;color:var(--muted)}
.detail-specs span{display:flex;align-items:baseline;gap:9px}
.detail-specs b{font-family:var(--serif);font-size:27px;font-weight:400;letter-spacing:-.03em;color:var(--ink)}
.detail-units{padding-bottom:23px}
.detail-image{position:relative;background:#e2e4d7;height:74vh;min-height:480px;max-height:850px;overflow:hidden}
.detail-image>img{height:100%;width:100%;object-fit:cover}
/* Audit item 39: pairs with the matching card's exterior photo (home.css) for a cross-document transition. */
body[data-home="courtyard"] .detail-image>img{view-transition-name:home-courtyard}
body[data-home="ridge"] .detail-image>img{view-transition-name:home-ridge}
body[data-home="pavilion"] .detail-image>img{view-transition-name:home-pavilion}
.detail-image-caption{position:absolute;bottom:24px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:20px}
.detail-image-caption>span{font-size:12px;letter-spacing:.13em;background:#f1eee7d9;padding:10px 15px}
.detail-image .scene-actions{padding:13px 16px;background:#f1eee7e8}
body[data-page="home-detail"]{--chapter-nav-height:60px}
:root:has(body[data-page="home-detail"]){scroll-padding-top:calc(var(--header-height) + var(--chapter-nav-height) + 16px)}
.chapter-nav{position:sticky;top:var(--header-height);z-index:20;min-height:var(--chapter-nav-height);display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--paper);border-bottom:1px solid var(--line);padding-inline:var(--gutter)}
.chapter-links{display:flex;gap:32px;overflow-x:auto;scrollbar-width:none;font-size:13px;white-space:nowrap}
.chapter-links::-webkit-scrollbar{display:none}
.chapter-links a{padding-block:19px;display:inline-flex;align-items:center}
.chapter-links a:hover{text-decoration:underline;text-underline-offset:5px}
.chapter-links a[aria-current="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(pointer:coarse){.chapter-links a{min-height:var(--touch-min)}}
.chapter-nav-cta{display:flex;align-items:center;gap:16px;flex-shrink:0;padding-block:10px}
.chapter-nav-cta>span{font-size:14px;color:var(--muted);white-space:nowrap}
.chapter-nav-cta .button{min-height:36px;padding:9px 16px;gap:12px;white-space:nowrap}
@media(pointer:coarse){.chapter-nav-cta .button{min-height:var(--touch-min)}}
/* Touch-sized links and button make the bar 65 px above 800 px wide (44 + 2 x 10 + 1). The sticky story stages sit
   under it through --chapter-nav-height (stories.css), and min-height keeps the bar and the variable equal. */
@media(pointer:coarse){body[data-page="home-detail"]{--chapter-nav-height:65px}}
.detail-intro{display:grid;grid-template-columns:.5fr 1.5fr .8fr;gap:40px;align-items:start;padding-block:105px}
.detail-intro h2{font-size:52px;line-height:1.05}
.detail-intro>.eyebrow{padding-top:8px;font-size:12px}
.detail-intro>p:not(.eyebrow){font-size:14px;color:var(--muted);padding-top:8px}
#investment .button-row{margin-top:28px}
#investment .fineprint{margin-top:25px}
@media(max-width:1250px){
  .detail-intro{grid-template-columns:.5fr 1.3fr 1fr;gap:26px}
  .detail-intro h2{font-size:44px}
  .detail-specs{gap:15px}
  .detail-specs span{flex-direction:column;gap:0}
  .detail-specs b{font-size:26px}
  .chapter-nav{gap:20px}
  .chapter-links{gap:22px}
}
@media(max-width:1100px){
  .detail-intro{grid-template-columns:1.2fr 1fr}
  .detail-intro>.eyebrow{grid-column:1/-1}
  .detail-title{gap:25px}
  .detail-title h1{font-size:90px}
  .detail-title .button{font-size:13px;gap:16px}
  .chapter-nav{gap:16px}
  .chapter-links{gap:18px}
}
@media(max-width:800px){
  .detail-head{padding-top:24px}
  .detail-title{display:block;margin-block:32px}
  .detail-title h1{font-size:83px}
  .detail-title>div:last-child{margin-top:28px;flex-direction:row;align-items:center;flex-wrap:wrap;gap:18px}
  .detail-title>div:last-child>p{width:100%;font-size:12px}
  .detail-title .button{min-height:46px}
  .detail-specs{grid-template-columns:repeat(5,1fr);gap:13px;padding-block:20px}
  .detail-specs b{font-size:24px;white-space:nowrap}
  .detail-specs span{font-size:14px}
  .detail-image{height:60vh;min-height:380px;max-height:650px}
  .detail-image-caption{bottom:15px;gap:12px;align-items:flex-end}
  .detail-image-caption>span{font-size:12px;padding:9px}
  .detail-image .scene-actions{padding:9px 12px;flex-direction:column;gap:9px}
  .detail-image .scene-actions .text-button{font-size:13px;padding-bottom:3px}
  body[data-page="home-detail"]{--chapter-nav-height:57px}
  .chapter-nav{gap:14px}
  /* Fix: scroll-snap-type here fought the native focus-scroll when Tabbing through these links, snapping to an
     adjacent link's start and leaving the actually-focused link mostly clipped by overflow-x. Snapping dropped. */
  .chapter-links{gap:20px}
  .chapter-links a{padding-block:14px}
  .chapter-nav-cta{gap:10px;padding-block:6px}
  .chapter-nav-cta>span{font-size:14px}
  .chapter-nav-cta .button{padding:8px 12px;gap:8px}
  .detail-intro{padding-block:65px;grid-template-columns:1fr;gap:25px}
  .detail-intro h2{font-size:48px;max-width:530px}
  .detail-intro>p:not(.eyebrow){padding:0;max-width:550px;font-size:14px}
  .detail-intro>.eyebrow{padding:0}
}
@media(max-width:500px){
  .detail-title h1{font-size:66px}
  .detail-title .eyebrow{font-size:12px}
  .detail-title>div:last-child{gap:15px}
  .detail-title .button{font-size:13px;gap:14px;padding-inline:15px}
  .detail-title .text-link{font-size:13px;max-width:135px}
  .detail-specs{grid-template-columns:repeat(3,1fr);gap:16px}
  .detail-specs b{font-size:27px}
  .detail-specs span{font-size:14px}
  .detail-specs span:nth-child(4),.detail-specs span:nth-child(5){display:none}
  .detail-image{height:51vh;min-height:340px}
  .detail-image-caption{left:18px;right:18px}
  .detail-image-caption>span{font-size:12px;padding:7px}
  .detail-image .scene-actions .text-button{font-size:13px}
  .detail-intro h2{font-size:43px}
  .detail-intro>p:not(.eyebrow){font-size:13px}
  /* Fix: chapter-nav-cta's price restatement (already shown in detail-title above) crowds the sticky bar to 79px
     at 375px wide, well under the 140px chapter-links needs. Drop it here only; the CTA button carries the action. */
  .chapter-nav-cta>span{display:none}
}
/* Ruling 24, revised by fix R4: the per-home gallery (5 images: exterior photo, interior photo, stone, timber,
   landscape) and its lightbox. One row of five above 800px; at 800px and below the exterior (first thumb) spans
   the full width and the other four sit in two columns. */
.home-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.gallery-thumb{display:block;border:0;padding:0;margin:0;background:#e4e3d8;cursor:pointer;position:relative;overflow:hidden;aspect-ratio:1.3}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery-thumb:hover img,.gallery-thumb:focus-visible img{transform:scale(1.045)}
@media(prefers-reduced-motion:reduce){.gallery-thumb img{transition:none}}
.gallery-lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:40px;border:0;background:#18241fe8;color:#f1eee7}
.gallery-lightbox::backdrop{background:#18241fe8}
.gallery-lightbox figure{margin:0;height:calc(100% - 70px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.gallery-lightbox img{max-width:100%;max-height:calc(100% - 40px);width:auto;height:auto;object-fit:contain;display:block}
.gallery-lightbox figcaption{font-size:13px;letter-spacing:.06em;color:#d7dbcb}
.gallery-controls{height:70px;display:flex;align-items:center;justify-content:center;gap:24px}
.gallery-controls button{border:1px solid #7c8570;background:transparent;color:inherit;padding:10px 16px;min-height:var(--target-min);min-width:var(--target-min);font:inherit;font-size:14px;cursor:pointer}
.gallery-controls button:hover{background:#ffffff1a}
.gallery-controls span{font-size:13px;color:#d7dbcb;min-width:50px;text-align:center}
@media(pointer:coarse){.gallery-controls button{min-height:var(--touch-min);min-width:var(--touch-min)}}
@media(max-width:800px){.home-gallery{grid-template-columns:repeat(2,1fr);gap:8px}.home-gallery .gallery-thumb:first-child{grid-column:1/-1}}
@media(max-width:600px){.gallery-lightbox{padding:16px}}
.interior-portrait{margin-top:0;margin-bottom:70px}
.interior-portrait img{width:100%;height:auto;max-height:78vh;object-fit:cover}
.interior-portrait figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:14px;font-size:12px;color:var(--muted)}
@media(max-width:760px){
  .interior-portrait{margin-bottom:35px}
  .interior-portrait figcaption{flex-direction:column;gap:4px;font-size:12px}
}
/* stories.css. Owner: package P4 (3D stories, models and stills). Scroll stories shared by every page: sticky chapter stage, chapter copy, progress, sliders, room shortcuts, 3D holder sizes. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
.house-scene{position:relative;min-width:0;width:100%;height:600px;max-height:76svh;isolation:isolate}
.house-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.house-scene canvas{display:block;max-width:100%}
.house-scene [data-scene-status]{position:absolute;bottom:12px;left:16px;font-size:12px;letter-spacing:.08em;color:var(--muted);z-index:2;pointer-events:none}
.land-story,.build-story,.material-story,.explode-story{min-height:180vh;background:#e5e6dc;position:relative}
/* Sticky offset: the stage sits below the header and, on home pages, P2's sticky chapter nav bar too. storyProgress()
   in stories.js reads the same two custom properties, so the story's 0 point always matches where this sticks. */
.chapter-stage{position:sticky;top:calc(var(--header-height) + var(--chapter-nav-height));min-height:calc(100svh - var(--header-height) - var(--chapter-nav-height));display:grid;grid-template-columns:.8fr 1.3fr;gap:65px;align-items:center;overflow:hidden;padding-block:35px}
.scene-actions{display:flex;gap:20px;flex-wrap:wrap}
.scene-actions .text-button{font-size:12px;gap:12px}
.detail-chapter{min-height:180vh;position:relative;background:#e6e5dc}
.detail-chapter:nth-of-type(even){background:#eae8e0}
.chapter-copy h2{font-size:clamp(44px,4.6vw,68px);line-height:1.02;margin-bottom:30px}
.chapter-copy>p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:365px}
.chapter-copy .text-link{margin-top:25px}
.chapter-copy>.fineprint{font-size:12px!important}
.chapter-progress{display:flex;align-items:center;gap:15px;width:140px;margin-top:40px;font-size:12px;color:var(--muted)}
.progress-rule{height:1px;background:#aab49b;flex:1}
.chapter-stage>.house-scene{height:660px;max-height:77svh}
.chapter-copy>.scene-actions{margin-top:24px}
.room-shortcuts{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.room-shortcuts button{border:1px solid #aeb7a1;background:transparent;padding:7px 12px;font-size:12px;min-height:24px;display:inline-flex;align-items:center}
.room-shortcuts button:hover{background:var(--ink);color:var(--paper)}
.scene-range{display:flex;flex-direction:column;gap:10px;margin-top:28px;max-width:285px;font-size:12px}
.scene-range input{width:100%;height:24px;accent-color:var(--moss)}
.scene-range>span{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
@media(pointer:coarse){
  .room-shortcuts button{min-height:44px}
  .scene-range input{height:44px}
}
/* Item 7 and 13's leader-line labels, and item 17's north tag (scene/labels.js). Decorative (aria-hidden), so they
   never take a tab stop or a contrast requirement, but stay legible against any render behind them. */
.scene-label{position:absolute;left:0;top:0;pointer-events:none;z-index:3;will-change:transform}
.scene-label-leader{position:absolute;left:0;top:0;height:1px;background:#f3f1e9;opacity:.8;transform-origin:0 50%}
.scene-label-text{position:absolute;left:0;top:0;transform:translate(0,-50%);white-space:nowrap;font-size:12px;line-height:1;letter-spacing:.02em;color:#f3f1e9;background:rgba(32,37,31,.74);padding:4px 8px}
@media(max-width:1250px){
  .chapter-stage{gap:30px}
}
@media(max-width:1100px){
  .chapter-stage{grid-template-columns:.9fr 1.2fr;gap:25px}
  .chapter-copy h2{font-size:48px}
  .chapter-copy p:not(.eyebrow){font-size:14px}
  .scene-actions{gap:15px}
}
@media(max-width:800px){
  .chapter-stage{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:15px;padding-block:45px 20px;min-height:calc(100svh - var(--header-height) - var(--chapter-nav-height));height:calc(100svh - var(--header-height) - var(--chapter-nav-height));min-height:710px}
  /* Full bleed to the screen edges: exactly the gutter. -25px against a 21px gutter put the panel 4px past each edge,
     where .chapter-stage clipped it (and a label anchor with it). */
  .chapter-stage>.house-scene{height:auto;min-height:340px;max-height:none;flex:1;margin-inline:calc(-1*var(--gutter));width:calc(100% + 2*var(--gutter))}
  .chapter-copy h2{font-size:49px;margin-top:20px;margin-bottom:20px;max-width:470px}
  .chapter-copy p:not(.eyebrow){font-size:13px;max-width:520px}
  .chapter-copy .fineprint{max-width:480px;font-size:12px!important}
  .chapter-copy .text-link{margin-top:17px;font-size:12px}
  .chapter-progress{display:none}
  .room-shortcuts{margin-top:20px}
  .chapter-copy>.scene-actions{margin-top:20px}
  .scene-range{margin-top:18px;max-width:360px;gap:5px}
}
@media(max-width:500px){
  .chapter-stage{min-height:730px;padding-top:35px;padding-bottom:15px}
  .chapter-stage>.house-scene{min-height:300px}
  .chapter-copy h2{font-size:46px;margin-bottom:19px}
  .chapter-copy p:not(.eyebrow){font-size:12px;max-width:340px}
  .chapter-copy .fineprint{font-size:12px!important}
  .chapter-copy>.scene-actions{margin-top:17px}
  .room-shortcuts{gap:8px}
  .room-shortcuts button{padding:6px 11px}
  .scene-range{max-width:280px}
}
/* R3: under reduced motion every scroll story collapses to its natural content height. No stage is pinned and
   no story keeps an empty scroll distance. Placed last so it wins over every width breakpoint above (same
   specificity, later source) at any viewport. .collection-story/-stage are F3's home.css selectors: this file is
   concatenated after home.css, so this equal-specificity rule wins there too (15.2 seam).
   height:auto on the stage matters at 800px and below: the breakpoint above sets an explicit
   height:calc(100svh - ...) on .chapter-stage/.collection-stage (a fixed viewport-based stage size for the pinned
   layout). Left in place it stretches .house-scene's flex:1 child to fill it, leaving dead space below the now
   auto-height caption. Measured and fixed 2026-09-25 after the first pass left up to 196px of empty box on phone. */
@media(prefers-reduced-motion:reduce){
  .land-story,.build-story,.material-story,.explode-story,.detail-chapter,.collection-story{min-height:0}
  .chapter-stage,.collection-stage{position:static;min-height:0;height:auto}
  .scene-range,.chapter-progress{display:none}
}
/* commerce.css. Owner: package P3 (tools, state and commerce pages). Design Studio, Planning, Project, Checkout and Contact page layouts. Concatenated into /style.css by node studio/build.mjs. Edit here, never in style.css. */
.studio-head{padding-top:70px;padding-bottom:50px;display:flex;align-items:end;justify-content:space-between;gap:35px}
.studio-head h1{font-size:80px}
.studio-head>p{font-size:14px;color:var(--muted)}
.studio-workspace{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:start;padding-bottom:75px}
/* H2 fix (2026-09-25 verification round): align-items:start left .studio-visual sized to its own content, so its
   sticky child had no room above 800px to stay pinned while the taller configurator column scrolled past it.
   align-self:stretch matches it to the row height (set by .studio-controls) instead. */
.studio-visual{min-width:0;align-self:stretch}
.studio-visual-sticky{position:sticky;top:110px}
.studio-visual-sticky>.house-scene{height:490px;max-height:65vh;background:#e7e7dc}
.studio-view-actions{display:flex;border-bottom:1px solid var(--line);padding:14px 0;gap:26px;justify-content:center}
.studio-view-actions button{background:none;border:0;padding:8px 4px;min-height:var(--target-min);font-size:var(--label-min);display:inline-flex;align-items:center}
.studio-view-actions button:hover{text-decoration:underline;text-underline-offset:5px}
@media(pointer:coarse){.studio-view-actions button{min-height:var(--touch-min);min-width:var(--touch-min);justify-content:center}}
/* Running total above the configurator options (audit item 6): sticky beside the model on wide layouts, a fixed
   bottom bar on phones and tablets (overridden at 800px, below). Created once by configurator.js; only its text
   and visibility class change afterwards. */
/* M12 fix: the box used to sit 16px below the header, leaving a gap its paper background never covered, so
   configurator text showed through while scrolling. Pinning flush to the header and moving the 16px inside as
   padding keeps the same visual spacing while the background now covers the whole band. */
.av-studio-total{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px;padding-top:16px;padding-bottom:22px;border-bottom:1px solid var(--line);position:sticky;top:var(--header-height);background:var(--paper);z-index:5}
.av-studio-total .av-kicker{margin-bottom:6px}
.av-studio-total .av-big-price{margin-bottom:4px;font-size:clamp(26px,2.4vw,38px)}
.av-studio-total .av-muted{margin:0;font-size:14px}
.studio-visual-sticky>.scene-actions{justify-content:center;margin-top:20px}
.studio-visual-sticky>.fineprint{text-align:center;margin-top:15px;font-size:var(--text-min)}
.studio-next{padding-block:95px;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.studio-next p:not(.eyebrow){margin-top:28px;font-size:15px;color:var(--muted);max-width:360px}
.studio-next>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.studio-next>div:last-child .fineprint{margin-top:0;font-size:var(--text-min)}
.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;align-items:stretch}
.package-card{padding:36px;border:1px solid #bfc5b4;display:flex;flex-direction:column}
.package-card.is-selected{background:#e2e4d8;border-color:#88987a}
.package-card[role="radio"]{cursor:pointer}
.package-card[role="radio"]:focus-visible{outline:3px solid #82734c;outline-offset:4px}
.package-card h3{font-size:45px;margin-top:34px;line-height:1}
.package-card .eyebrow{font-size:var(--label-min)}
.package-price{font-family:var(--serif);font-size:46px;line-height:1;margin-top:25px;margin-bottom:26px}
.package-price span{font-family:var(--sans);font-size:var(--spec-min);letter-spacing:.1em;margin-left:5px}
.package-card>p:not(.eyebrow):not(.package-price){font-size:14px;color:var(--muted);min-height:76px}
.package-card ul{list-style:none;padding:23px 0 0;margin:25px 0 35px;border-top:1px solid #c0c8b3;font-size:var(--text-min);flex:1}
.package-card li{position:relative;padding-left:18px;margin:11px 0}
.package-card li:before{content:'+';position:absolute;left:0;color:#7b8a69}
.package-card .button{font-size:var(--label-min);padding-inline:17px;gap:15px;min-height:var(--target-min)}
@media(pointer:coarse){.package-card .button{min-height:var(--touch-min)}}
/* Reserve roughly the rendered height of each JS tool before it mounts, so replacing the fallback text does not
   shift the page (audit item 26; CLS was 0.41-0.44 on these two routes). */
[data-package-builder]{min-height:900px}
[data-checkout-preview]{min-height:760px}
[data-project]{min-height:1500px}
.demo-notice{padding:19px 22px;background:#e5e6da;border-left:2px solid #879576;font-size:13px;line-height:1.65;color:#5d6854}
.demo-notice strong{display:block;color:var(--ink);margin-bottom:5px}
.demo-notice p{font-size:12px;margin:0}
.project-next{padding-block:75px}
.project-next>.container{display:flex;align-items:center;justify-content:space-between;gap:50px}
.project-next h2{font-size:55px}
.project-next p:not(.eyebrow){margin-top:25px;max-width:430px;font-size:15px;color:var(--muted)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:110px}
/* The shared .section padding in base.css wins at 800px and below; these top paddings apply only above it. */
@media(min-width:801px){
  .package-section{padding-top:10px}
  .project-section{padding-top:10px}
  .contact-layout{padding-top:5px}
}
.contact-context>img{height:300px;object-fit:cover;width:100%;margin-bottom:45px}
.contact-context h2{font-size:57px}
.contact-context>p{font-size:14px;color:var(--muted);margin-top:25px;max-width:400px}
.contact-context>.text-link{margin-top:25px}
.contact-context .demo-notice{margin-top:35px;max-width:430px}
.contact-form h2{font-size:45px}
.contact-form>.fineprint{margin-top:20px}
.contact-form form{margin-top:30px}
.contact-form fieldset{padding:0;margin:0;border:0}
.contact-form label{display:block;font-size:var(--label-min);margin-bottom:23px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;display:block;background:transparent;border:1px solid #b9c0ae;padding:13px 14px;font-size:13px;margin-top:8px;color:var(--muted);border-radius:0}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#909786}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-form .button:disabled{opacity:.55;width:100%}
/* Ruling 12: the consultation flow reuses .av-tool/.av-option-grid (tools.css) for its buttons and fieldsets; these
   rules only add what that shared styling does not already cover. */
.consult-flow{padding:0}
.consult-flow>h2{margin-bottom:8px}
/* Re-verification item 2: a group's own hint, filled only when a review finds that choice missing (js/pages/contact.js). */
.consult-hint{margin:-2px 0 12px;font-size:14px;line-height:1.45}
.consult-hint:empty{display:none}
.consult-flow .consult-days{grid-template-columns:repeat(5,minmax(0,1fr))}
.consult-saved{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:18px;margin-bottom:26px}
.consult-saved p{margin:0}
.consult-saved .text-link{margin-top:6px}
.consult-flow>.button{width:100%;justify-content:center}
.consult-confirmation{max-width:460px;width:calc(100% - 40px);padding:36px;border:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #00000030}
.consult-confirmation::backdrop{background:#18241fb3;backdrop-filter:blur(6px)}
.consult-confirmation h2{font-size:32px;margin-bottom:14px}
.consult-confirmation>p{font-size:14px;color:var(--muted);margin-bottom:22px}
.consult-confirmation dl{margin:0 0 26px}
@media(max-width:560px){
  .consult-flow .consult-days{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1250px){
  .package-card{padding:26px}
  .package-card h3{font-size:39px}
  .contact-layout{gap:70px}
}
@media(max-width:1100px){
  .studio-head h1{font-size:72px}
  .studio-workspace{gap:35px;grid-template-columns:1.1fr 1fr}
  .studio-view-actions{gap:23px}
  .package-grid{gap:17px}
  .package-card{padding:23px}
  .package-card h3{font-size:35px}
  .package-card .eyebrow{font-size:var(--label-min)}
  .package-card .button{font-size:var(--label-min);gap:8px}
  .package-card>p:not(.eyebrow):not(.package-price){font-size:13px}
  .project-next>.container{align-items:flex-start;flex-direction:column}
  .contact-layout{gap:45px}
}
@media(max-width:800px){
  .studio-head{padding-top:55px;padding-bottom:35px;display:block}
  .studio-head h1{font-size:67px}
  .studio-head>p{margin-top:23px;font-size:13px}
  /* H3, the phone Studio. Architect ruling, step 2 of the 2026-09-25 fix round. The model panel is position:sticky
     inside .studio-workspace, which holds the configurator, so it stays pinned under the header across every option
     group and is released by the end of the workspace, moving with the page on the way in and on the way out. The
     options are ordinary page flow with no inner scroller, so every touch gesture scrolls the page.
     This replaces a position:fixed panel over fixed, independently scrolling options, toggled by an
     IntersectionObserver. Judged with touch drags at 375 x 812 and 390 x 844, that version covered the page title
     from load, scrolled the page with nothing on screen moving, then jumped about 320 px when it released, and left
     the model and the options side by side in two narrow columns after release. The objection recorded against
     sticky, that the options pass under the panel, is the intended behavior: they pass beneath its paper background
     and each one is readable in the band between the panel and the bottom bar. A focused control is kept clear of
     the panel by scroll-margin-top, sized from the panel's measured height (--studio-visual-h, configurator.js). */
  .studio-workspace{display:block;padding-bottom:0}
  /* Re-verification item 7: at fractional device pixel ratios the panel's anti-aliased left edge let the 1 px border of
     an option card passing beneath show through. Paper-colored side shadows carry the panel's background across the
     empty gutters, so nothing beneath shows at either edge. The last shadow is the 1 px line under the panel. */
  .studio-visual{position:sticky;top:var(--header-height);z-index:4;background:var(--paper);box-shadow:calc(-1 * var(--gutter)) 0 0 var(--paper),var(--gutter) 0 0 var(--paper),0 1px 0 var(--line);margin-bottom:0;padding-bottom:4px}
  .studio-visual-sticky{position:static}
  .studio-visual .house-scene{height:max(28svh,220px);min-height:0}
  /* One row of view buttons and a tight action row keep the pinned panel near 40% of the screen. */
  .studio-view-actions{gap:35px;flex-wrap:nowrap;overflow-x:auto;padding:4px 0}
  .studio-visual-sticky>.scene-actions{margin-top:0}
  .studio-visual-sticky>.fineprint{display:none}
  /* The total becomes a fixed bottom bar, shown only while the workspace is in view (configurator.js). The space
     below the options lets the last of them rise clear of the bar before the panel releases. */
  .studio-controls{padding-top:24px;padding-bottom:calc(90px + env(safe-area-inset-bottom))}
  .studio-controls button,.studio-controls a,.studio-controls select,.studio-controls input{scroll-margin-top:calc(var(--studio-visual-h,300px) + 12px);scroll-margin-bottom:90px}
  body[data-page="design-studio"] #layout button,body[data-page="design-studio"] #layout [role="button"],body[data-page="design-studio"] #layout input{scroll-margin-bottom:90px}
  :root:has(body[data-page="design-studio"]){scroll-padding-bottom:90px}
  .av-studio-total{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:30;margin:0;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));min-height:var(--touch-min);border-bottom:0;border-top:1px solid var(--line);box-shadow:0 -6px 18px #0000001a;transform:translateY(100%);transition:transform .25s ease;visibility:hidden}
  .av-studio-total.is-visible{transform:translateY(0);visibility:visible}
  .av-studio-total .av-kicker{display:none}
  .av-studio-total .av-big-price{font-size:22px}
  .studio-next{padding-block:70px;gap:55px}
  .studio-next h2{font-size:47px}
  .studio-next p:not(.eyebrow){font-size:13px}
  .studio-next .button{font-size:var(--label-min);gap:15px}
  .package-grid{grid-template-columns:1fr;gap:25px}
  .package-card{padding:32px;display:grid;grid-template-columns:1.2fr 1fr;gap:18px 40px}
  .package-card .eyebrow{grid-column:1/-1;font-size:var(--label-min)}
  .package-card h3{font-size:44px;margin-top:5px}
  .package-price{font-size:42px;margin:5px 0 0;text-align:right}
  .package-card>p:not(.eyebrow):not(.package-price){font-size:14px;min-height:0;grid-column:1}
  .package-card ul{grid-column:2;grid-row:3/5;padding:0 0 0 25px;margin:0;border-top:0;border-left:1px solid #c0c8b3;align-self:stretch}
  .package-card .button{font-size:var(--label-min);align-self:end;grid-column:1}
  .project-next{padding-block:60px}
  .project-next h2{font-size:48px}
  .contact-layout{display:flex;flex-direction:column-reverse;gap:60px}
  .contact-form h2{font-size:42px}
  .contact-context>img{height:380px;max-width:600px}
  .contact-context{max-width:600px}
  .contact-context h2 br{display:none}
  /* Item 27 fix: the "Continue to review" action sat below all three package cards, at 2,065px on a 375-wide
     phone (target 1,624). Reordered with flex order so the same .av-actions block (one link, not a duplicate)
     renders directly under the intro paragraph and above the card grid. */
  [data-package-builder]{display:flex;flex-direction:column}
  [data-package-builder]>.av-kicker{order:1}
  [data-package-builder]>h2{order:2}
  [data-package-builder]>h2+p{order:3}
  [data-package-builder]>.av-actions{order:4}
  [data-package-builder]>.package-grid{order:5}
  [data-package-builder]>.av-muted{order:6}
}
@media(min-width:501px) and (max-width:800px){
  .package-section{padding-top:0}
  .contact-layout{padding-top:0}
}
@media(max-width:500px){
  .studio-head h1{font-size:59px}
  .studio-head>p{font-size:12px}
  .studio-view-actions{gap:25px}
  .studio-next{grid-template-columns:1fr;gap:35px;padding-block:65px}
  .studio-next h2{font-size:48px}
  .studio-next p:not(.eyebrow){font-size:14px}
  .studio-next>div:last-child{gap:14px}
  .package-card{display:flex;gap:0;padding:29px}
  .package-card h3{font-size:43px;margin-top:27px}
  .package-price{margin-block:25px;text-align:left}
  .package-card ul{border:0;border-top:1px solid #c0c8b3;padding:15px 0 0;margin:25px 0 30px}
  .package-card>p:not(.eyebrow):not(.package-price){min-height:0}
  .package-card .button{align-self:stretch}
  .contact-context>img{height:300px}
  .contact-context h2{font-size:48px}
  .form-two{grid-template-columns:1fr;gap:0}
  .contact-form .button{font-size:var(--label-min)}
}
/* One persistent canvas. Native document scrolling carries the story. */
body.journey-page{--journey-edge:clamp(24px,5vw,84px);--journey-bottom:94px;background:var(--paper)}
html:has(body.journey-page){scroll-padding-top:0}
.journey-page #main{position:relative;isolation:isolate}.journey-page [hidden]{display:none!important}
.journey-page .journey-stage{position:fixed;inset:0;z-index:-3;width:100%;height:100svh;min-height:0;max-height:none;overflow:hidden;background:#dce0d2;pointer-events:none}
.journey-page .journey-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% center}
.journey-page .journey-stage .architecture-canvas{touch-action:pan-y}
.journey-page .journey-stage>.scene-toolbar{display:none!important}
.journey-choice-summary{display:grid;gap:3px;margin-top:19px;padding-top:15px;border-top:1px solid #bbc2b1;font-size:12px;line-height:1.5;color:var(--muted)}.journey-choice-summary strong{font-size:14px;color:var(--ink)}.journey-choice-summary small{font-size:10px}
.journey-page .journey-atmosphere{position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,rgba(241,238,231,.98) 0%,rgba(241,238,231,.94) 24%,rgba(241,238,231,.67) 36%,rgba(241,238,231,0) 56%),linear-gradient(180deg,rgba(241,238,231,.65),transparent 22%,transparent 76%,rgba(241,238,231,.85))}
.journey-page .journey-stage .journey-scene-status{position:absolute;right:var(--journey-edge);bottom:calc(var(--journey-bottom) + 25px);left:auto;max-width:320px;padding:8px 12px;background:rgba(241,238,231,.8);color:var(--muted);font-size:12px;line-height:1.5;letter-spacing:.02em;pointer-events:none;z-index:2}
.journey-header{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px var(--journey-edge);pointer-events:none}.journey-header a,.journey-header button{pointer-events:auto}
.journey-brand{display:flex;align-items:center;gap:14px;color:var(--ink)}.journey-brand svg{width:42px;height:39px;fill:none;stroke:currentColor;stroke-width:1.5}.journey-brand>span{font-family:var(--serif);font-size:23px;letter-spacing:.08em;line-height:1}.journey-brand small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:.23em;margin-top:9px}
.journey-navigation{display:flex;align-items:center;gap:30px}.journey-nav-button{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0;border:0;background:none;font-size:13px}.journey-index-icon{display:grid;gap:4px;width:16px}.journey-index-icon i{display:block;width:16px;height:1px;background:currentColor}.journey-index-icon i:nth-child(2){width:11px}.journey-sound svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.1;fill:none}.journey-meeting-link{display:flex;align-items:center;gap:24px;min-height:44px;font-size:13px;border-bottom:1px solid var(--ink)}.journey-meeting-link span{font-size:21px}
.journey-story{position:relative;z-index:1;pointer-events:none}.journey-chapter{min-height:110svh;padding:130px var(--journey-edge) calc(var(--journey-bottom) + 58px);display:flex;align-items:center;scroll-margin-top:0;pointer-events:none}.journey-chapter--begin{min-height:100svh}.journey-copy{width:min(34vw,470px);pointer-events:none}.journey-copy a,.journey-copy button,.journey-copy input,.journey-copy textarea,.journey-copy select,.journey-copy label{pointer-events:auto}
.journey-eyebrow{display:flex;gap:17px;align-items:center;font-size:11px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--moss)}.journey-eyebrow>span{font-size:12px;letter-spacing:.03em;padding-right:16px;border-right:1px solid #a8ad9e}
.journey-copy h1,.journey-copy h2{font-size:clamp(51px,5.6vw,88px);line-height:.97;letter-spacing:-.04em;margin-top:25px}.journey-copy h2{font-size:clamp(47px,4.8vw,74px)}.journey-copy h1 em,.journey-copy h2 em{color:var(--moss)}.journey-description{font-size:16px;line-height:1.65;max-width:350px;margin-top:26px;color:#51574d}
.journey-begin{display:inline-flex;align-items:center;gap:42px;border-bottom:1px solid #8d9684;font-size:14px;padding:13px 0;margin-top:32px;min-height:48px}.journey-begin span{font-size:24px}.journey-hint{font-size:12px;line-height:1.6;color:#60665b;max-width:340px;margin-top:20px}
.journey-home-choices{display:grid;gap:0;border-top:1px solid #b9beae;margin-top:30px}.journey-home-choices button{display:flex;align-items:center;gap:17px;text-align:left;background:transparent;border:0;border-bottom:1px solid #b9beae;padding:14px 2px;min-height:56px;transition:padding .2s,color .2s}.journey-home-choices button[aria-pressed=true]{color:var(--moss);padding-left:12px;background:rgba(220,224,210,.5)}.journey-choice-number{font-size:11px;letter-spacing:.06em;color:var(--muted)}.journey-home-choices button>span:nth-child(2){font-family:var(--serif);font-size:27px;line-height:1}.journey-choice-arrow{margin-left:auto;font-size:21px}
.journey-text-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:44px;font-size:12px;border:0;border-bottom:1px solid #a0a794;background:transparent;padding:12px 0 5px;margin-top:18px}.journey-text-button span{font-size:19px}
.journey-room-choices,.journey-layout-choices{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.journey-room-choices button,.journey-layout-choices button{min-height:44px;border:1px solid #adb5a1;background:rgba(241,238,231,.65);font-size:13px;padding:10px 16px}.journey-room-choices button[aria-pressed=true],.journey-layout-choices button[aria-pressed=true]{background:var(--moss);border-color:var(--moss);color:var(--paper)}
.journey-range{display:block;margin-top:34px;font-size:12px;letter-spacing:.035em}.journey-range input{display:block;width:100%;height:44px;margin:7px 0;accent-color:var(--moss);cursor:ew-resize}.journey-range-marks{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);letter-spacing:0}
.journey-fieldset{border:0;margin:27px 0 0;padding:0;min-width:0}.journey-fieldset legend{font-size:12px;letter-spacing:.035em;padding:0}.journey-finishes{display:flex;gap:22px;margin-top:13px}.journey-finishes button{display:flex;flex-direction:column;align-items:center;gap:9px;border:0;background:transparent;padding:5px 0;font-size:11px;min-width:70px;min-height:74px}.journey-swatch{width:40px;height:40px;border-radius:50%;outline:1px solid transparent;outline-offset:4px;border:1px solid rgba(37,42,37,.13);background-size:cover}.journey-finishes button[aria-pressed=true] .journey-swatch{outline-color:var(--moss)}.journey-swatch--limestone{background:#c5b49a url('assets/textures/swatch-limestone.webp') center/cover}.journey-swatch--timber{background:#7b6047 url('assets/textures/swatch-oak.webp') center/cover}.journey-swatch--mineral{background:#d5d1c8 url('assets/textures/swatch-mineral.webp') center/cover}.journey-fieldset .journey-layout-choices{margin-top:12px}
.journey-next-steps{list-style:none;margin:27px 0 0;padding:0;display:grid;gap:18px}.journey-next-steps li{display:flex;gap:15px;border-top:1px solid #bec3b6;padding-top:15px}.journey-next-steps li>span{font-size:11px;color:var(--moss);padding-top:2px}.journey-next-steps strong{font-size:14px;font-weight:400}.journey-next-steps p{font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px}
.journey-bottom{position:fixed;inset:auto 0 0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:var(--journey-bottom);padding:20px var(--journey-edge);background:linear-gradient(0deg,rgba(241,238,231,.98),rgba(241,238,231,.85));border-top:1px solid rgba(150,159,138,.35);backdrop-filter:blur(10px)}.journey-position{width:200px;min-width:135px;font-size:11px;letter-spacing:.025em;color:var(--moss)}.journey-position progress{display:block;width:100%;height:2px;border:0;margin-top:12px;background:#ced2c4;color:var(--moss);appearance:none}.journey-position progress::-webkit-progress-bar{background:#ced2c4}.journey-position progress::-webkit-progress-value{background:var(--moss)}.journey-position progress::-moz-progress-bar{background:var(--moss)}
.journey-explore-controls{display:flex;align-items:center;gap:8px}.journey-explore-controls button{display:flex;gap:13px;align-items:center;min-height:44px;border:0;background:transparent;font-size:12px;padding:8px 14px}.journey-explore-button>span{font-size:26px;font-family:var(--serif)}.journey-resume-button{border-bottom:1px solid var(--moss)!important}.journey-zoom{display:flex;gap:4px}.journey-zoom button{min-width:44px;justify-content:center;padding:6px;border:1px solid #aab29f;font-size:20px}
.journey-step-controls{display:flex;align-items:center;gap:13px}.journey-step-controls button{display:flex;align-items:center;justify-content:center;gap:35px;min-height:44px;min-width:44px;border:1px solid #aab29f;background:transparent;font-size:12px;padding:11px 15px}.journey-step-controls button:last-child{background:var(--moss);border-color:var(--moss);color:var(--paper);min-width:130px}.journey-step-controls button:disabled{opacity:.3;cursor:default}.journey-step-controls button>span:last-child{font-size:20px;line-height:1}
.journey-page.journey-exploring .journey-stage,.journey-page[data-exploring=true] .journey-stage{z-index:5;pointer-events:auto}.journey-page.journey-exploring .journey-atmosphere,.journey-page[data-exploring=true] .journey-atmosphere{opacity:0}.journey-page.journey-exploring .journey-copy,.journey-page[data-exploring=true] .journey-copy{visibility:hidden}.journey-page.journey-exploring .architecture-canvas,.journey-page[data-exploring=true] .architecture-canvas{touch-action:none}.journey-exploration-hint{position:fixed;bottom:calc(var(--journey-bottom) + 18px);left:50%;transform:translateX(-50%);z-index:12;background:rgba(241,238,231,.94);padding:9px 16px;text-align:center;font-size:12px;width:max-content;max-width:calc(100vw - 40px)}
.journey-chapter--meeting{min-height:110svh;align-items:center;padding-top:130px}.journey-chapter--meeting .journey-copy{width:min(560px,48vw);padding:35px;background:rgba(241,238,231,.96);box-shadow:0 12px 55px rgba(37,42,37,.035);pointer-events:auto}.journey-chapter--meeting .journey-copy h2{font-size:clamp(48px,4.6vw,68px)}.journey-chapter--meeting .journey-description{margin-top:20px}[data-meeting-request]{margin-top:25px}.journey-request-fallback{padding:18px 0;font-size:14px;color:var(--muted)}.journey-request-fallback a{display:block;text-decoration:underline;text-underline-offset:4px;margin-top:10px}.journey-closing-note{margin-top:25px;padding-top:17px;border-top:1px solid var(--line);font-size:10px;line-height:1.6;color:var(--muted)}.journey-closing-note>div{display:flex;gap:16px;flex-wrap:wrap;margin-top:13px;font-size:11px}
.journey-meeting-form{font-size:13px}.meeting-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.meeting-field{display:grid;gap:6px;min-width:0;margin:0 0 16px}.meeting-field label,.meeting-field>span{font-size:12px}.meeting-field input,.meeting-field select,.meeting-field textarea{width:100%;min-height:44px;border:1px solid #b3bbab;border-radius:0;background:#f7f5ee;color:var(--ink);padding:10px 11px;font-size:14px}.meeting-field textarea{resize:vertical;min-height:90px}.meeting-field input:focus,.meeting-field select:focus,.meeting-field textarea:focus{outline:2px solid var(--moss);outline-offset:2px}.meeting-choices{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 20px}.meeting-choices>*{font-size:12px}.meeting-review{background:#e6e7dc;padding:17px;margin-block:18px;font-size:13px;line-height:1.6}.meeting-review h3{font-size:28px;margin-bottom:10px}.meeting-review dl{margin:0}.meeting-review dl>div{display:flex;justify-content:space-between;gap:20px;padding:6px 0}.meeting-review dd{margin:0}.meeting-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.meeting-actions button{min-height:44px;padding:11px 16px;border:1px solid var(--moss);background:var(--moss);color:var(--paper);font-size:12px}.meeting-actions button+button{background:transparent;color:var(--moss)}.meeting-status,.meeting-note{font-size:11px;line-height:1.55;color:var(--muted);margin-top:13px}.meeting-error{font-size:12px;line-height:1.5;color:#873e2d;margin-top:10px}.meeting-error:empty,.meeting-status:empty{display:none}
.journey-dialog{width:min(570px,calc(100vw - 32px));max-height:calc(100svh - 40px);overflow:auto;border:0;padding:36px;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px #151c1640}.journey-dialog::backdrop{background:#28342680;backdrop-filter:blur(7px)}.journey-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.journey-dialog-heading button{width:44px;height:44px;border:1px solid var(--line);background:transparent}.journey-dialog h2{font-size:54px;margin:20px 0 30px}.journey-chapters-dialog nav{display:grid}.journey-chapters-dialog nav>a{display:flex;align-items:center;gap:18px;min-height:54px;border-top:1px solid var(--line);font-size:16px;padding:10px 0}.journey-chapters-dialog nav>a>span:first-child{font-size:11px;color:var(--muted)}.journey-chapters-dialog nav>a>span:last-child{margin-left:auto}.journey-secondary-link{display:inline-block;font-size:12px;border-bottom:1px solid #aab39e;padding-bottom:6px;margin-top:26px}.journey-details-dialog article h3{font-size:32px;margin-bottom:14px}.journey-details-dialog article p{font-size:14px;color:var(--muted)}.journey-details-dialog dl{margin:25px 0 0}.journey-details-dialog dl>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:12px 0;font-size:12px}.journey-details-dialog dt{color:var(--muted)}.journey-details-dialog dd{margin:0;text-align:right}.journey-detail-fineprint{font-size:11px;line-height:1.6;color:var(--muted);margin-top:28px}.journey-page:has(.journey-dialog[open]){overflow:hidden}
.meeting-choices{display:block;padding:19px;background:#e6e7dc;margin:18px 0 20px}.meeting-choices h3{font-family:var(--serif);font-size:29px;line-height:1.1;margin-bottom:15px}.meeting-choices dl{margin:0}.meeting-choices dl>div{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:18px;padding:8px 0;border-top:1px solid #c9cebd;font-size:12px;line-height:1.5}.meeting-choices dt{color:var(--muted)}.meeting-choices dd{margin:0;text-align:right;overflow-wrap:anywhere}.meeting-choices .meeting-note{font-size:10px;margin-top:12px}.meeting-request-text{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;font-family:var(--sans);font-size:12px;line-height:1.7;margin:14px 0}.journey-meeting-form>.meeting-note{margin-bottom:17px}.meeting-field [aria-invalid=true]{border-color:#873e2d}
@media(min-width:1500px){.journey-copy{width:430px}.journey-chapter{padding-left:7vw}}
@media(max-width:1050px) and (min-width:761px){.journey-copy{width:40vw}.journey-copy h1{font-size:68px}.journey-copy h2{font-size:58px}.journey-page .journey-atmosphere{background:linear-gradient(90deg,rgba(241,238,231,.97),rgba(241,238,231,.9) 35%,transparent 70%)}.journey-navigation{gap:19px}.journey-explore-controls button{padding-inline:0}}
@media(max-width:760px){
 body.journey-page{--journey-edge:22px;--journey-bottom:116px}.journey-header{padding:17px 20px;gap:12px;background:linear-gradient(var(--paper),rgba(241,238,231,.7),transparent)}.journey-brand{gap:9px}.journey-brand svg{width:30px;height:29px}.journey-brand>span{font-size:17px}.journey-brand small{font-size:5px;margin-top:6px}.journey-navigation{gap:15px}.journey-nav-button{font-size:11px;gap:7px}.journey-nav-button>span:not(.journey-index-icon){display:none}.journey-sound svg{width:19px;height:19px}.journey-meeting-link{font-size:11px;gap:10px;min-height:38px}.journey-meeting-link span{font-size:19px}
 .journey-page .journey-stage{top:64px;height:49svh;width:100%;inset-inline:0;bottom:auto}.journey-page .journey-stage>img{object-position:60% center}.journey-page .journey-stage .journey-scene-status{bottom:12px;right:15px;max-width:calc(100% - 30px);font-size:10px;padding:5px 8px}.journey-page .journey-atmosphere{background:linear-gradient(180deg,transparent 37svh,rgba(241,238,231,.7) 45svh,var(--paper) 54svh);z-index:-2}
 .journey-chapter,.journey-chapter--begin{min-height:108svh;padding:55svh 22px calc(var(--journey-bottom) + 38px);align-items:flex-start}.journey-copy{width:100%;max-width:500px;margin-inline:auto}.journey-eyebrow{font-size:10px;gap:10px}.journey-eyebrow>span{font-size:10px;padding-right:10px}.journey-copy h1,.journey-copy h2{font-size:clamp(42px,10.8vw,58px);line-height:.98;margin-top:16px}.journey-copy h1 br{display:none}.journey-description{font-size:14px;line-height:1.55;margin-top:17px;max-width:390px}.journey-begin{margin-top:15px;min-height:44px;font-size:13px;padding:8px 0;gap:28px}.journey-hint{font-size:11px;margin-top:13px;max-width:390px}
 .journey-home-choices{margin-top:19px;display:flex;gap:7px;border:0}.journey-home-choices button{flex:1;min-width:0;min-height:48px;padding:10px 7px;border:1px solid #b9beae;justify-content:center}.journey-home-choices button[aria-pressed=true]{padding-left:7px}.journey-choice-number,.journey-choice-arrow{display:none}.journey-home-choices button>span:nth-child(2){font-family:var(--sans);font-size:12px;white-space:nowrap}.journey-text-button{margin-top:8px;font-size:11px}.journey-room-choices{margin-top:19px}.journey-room-choices button,.journey-layout-choices button{font-size:12px;padding:10px 14px}.journey-range{margin-top:23px}.journey-range input{margin-block:2px}.journey-fieldset{margin-top:19px}.journey-finishes{gap:24px;margin-top:9px}.journey-finishes button{min-height:63px}.journey-swatch{width:31px;height:31px}.journey-fieldset legend{font-size:11px}.journey-layout-choices{gap:7px}.journey-next-steps{gap:12px;margin-top:19px}.journey-next-steps li{padding-top:11px;gap:12px}.journey-next-steps strong{font-size:13px}.journey-next-steps p{font-size:11px}
 .journey-bottom{min-height:var(--journey-bottom);padding:11px 20px max(13px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto;gap:7px 15px}.journey-position{width:auto;min-width:0;font-size:10px}.journey-position progress{margin-top:7px}.journey-step-controls{grid-column:2;grid-row:1 / span 2;gap:7px}.journey-step-controls button{padding:10px;min-width:40px;min-height:43px}.journey-step-controls button:last-child{min-width:100px;gap:20px}.journey-explore-controls{grid-column:1;gap:5px}.journey-explore-controls button{font-size:10px;gap:7px;padding:3px 0;min-height:32px}.journey-explore-button>span{font-size:20px}.journey-exploration-hint{font-size:11px;bottom:calc(var(--journey-bottom) + 13px)}.journey-zoom button{min-width:30px;min-height:32px;font-size:18px}.journey-page.journey-exploring .journey-stage,.journey-page[data-exploring=true] .journey-stage{top:65px;height:calc(100svh - 65px - var(--journey-bottom))}
 .journey-chapter--meeting{padding-top:52svh;min-height:130svh}.journey-chapter--meeting .journey-copy{width:100%;padding:22px 0;background:var(--paper);box-shadow:none}.journey-chapter--meeting .journey-copy h2{font-size:clamp(44px,11vw,58px)}.meeting-grid{grid-template-columns:1fr;gap:0}.meeting-field input,.meeting-field select,.meeting-field textarea{font-size:16px}
 .journey-dialog{padding:24px;max-height:calc(100svh - 24px)}.journey-dialog h2{font-size:45px;margin-block:20px}.journey-chapters-dialog nav>a{min-height:50px;font-size:14px}.journey-details-dialog dl>div{font-size:11px}.journey-dialog-heading .journey-eyebrow{font-size:10px}
}
@media(max-width:380px){.journey-header{padding-inline:16px}.journey-brand>span{font-size:15px}.journey-brand svg{width:26px}.journey-brand{gap:7px}.journey-navigation{gap:10px}.journey-sound{font-size:10px;max-width:53px;line-height:1.2}.journey-meeting-link{gap:5px}.journey-copy h1,.journey-copy h2{font-size:43px}.journey-step-controls button:last-child{min-width:86px;gap:13px}.journey-bottom{padding-inline:15px;column-gap:9px}.journey-explore-controls button{font-size:9px}.journey-page.journey-exploring .journey-position{display:none}.journey-page.journey-exploring .journey-explore-controls{grid-column:1 / -1}.journey-page.journey-exploring .journey-step-controls{grid-column:2;grid-row:2}}
@media(max-height:850px) and (min-width:761px){.journey-chapter{padding-top:105px;padding-bottom:120px;min-height:100svh}.journey-copy h1{font-size:66px}.journey-copy h2{font-size:52px;margin-top:19px}.journey-description{margin-top:17px;font-size:14px;line-height:1.55}.journey-header{padding-block:18px}.journey-home-choices{margin-top:20px}.journey-home-choices button{min-height:48px;padding-block:11px}.journey-home-choices button>span:nth-child(2){font-size:25px}.journey-text-button{margin-top:10px;padding-top:7px}.journey-fieldset{margin-top:16px}.journey-fieldset .journey-layout-choices{margin-top:7px}.journey-finishes{margin-top:8px}.journey-finishes button{min-height:63px;gap:6px}.journey-swatch{width:30px;height:30px}.journey-hint{margin-top:12px;font-size:11px}.journey-choice-summary{grid-template-columns:1fr auto;gap:3px 10px;margin-top:12px;padding-top:10px;font-size:10px}.journey-choice-summary strong{font-size:12px}.journey-choice-summary>span:first-of-type{text-align:right}.journey-choice-summary small{font-size:9px;text-align:right}.journey-next-steps{gap:12px;margin-top:20px}.journey-next-steps li{padding-top:10px}.journey-chapter--meeting{padding-top:110px}.journey-chapter--meeting .journey-copy h2{font-size:52px}}
@media(max-height:650px) and (min-width:761px){.journey-copy h1{font-size:58px}.journey-copy h2{font-size:47px}.journey-chapter{align-items:flex-start}.journey-copy .journey-description{font-size:13px}.journey-chapter--meeting{padding-top:105px}}
@media(prefers-reduced-motion:reduce){.journey-home-choices button,.journey-atmosphere{transition:none}.journey-page .journey-stage img,.journey-page .architecture-canvas{transition:none}}
/* Keep long-form content readable while it passes beneath the fixed chrome. */
.journey-page[data-chapter=meeting] .journey-header{background:rgba(241,238,231,.97);backdrop-filter:blur(10px)}
.journey-page.journey-exploring .journey-scene-status{display:none}
.journey-copy h1:focus,.journey-copy h2:focus{outline:none}
@media(max-width:760px){.journey-copy{background:var(--paper);box-shadow:22px 0 var(--paper),-22px 0 var(--paper)}.journey-explore-controls button,.journey-zoom button{min-height:44px}.journey-zoom button{min-width:44px}.journey-nav-button{min-width:30px}}
@media(max-width:760px){
 .journey-page.journey-exploring .journey-bottom{display:flex;flex-direction:column;justify-content:center;gap:8px}
 .journey-page.journey-exploring .journey-position{display:block;width:100%}
 .journey-page.journey-exploring .journey-position progress{display:none}
 .journey-page.journey-exploring .journey-explore-controls{justify-content:center;gap:16px}
 .journey-page.journey-exploring .journey-resume-button{white-space:nowrap;font-size:12px}
 .journey-page.journey-exploring .journey-step-controls{display:none}
}
/* Scroll already provides the travel; soften each text handoff without hijacking it. */
.journey-copy{opacity:var(--copy-opacity,1);transition:opacity .38s cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){.journey-copy{opacity:1;transition:none}}
.journey-copy:focus-within{opacity:1}
