:root{--paper:#e9e4d8;--ink:#263027;--muted:#646d61;--dark:#20271e;--accent:#87603e;--gutter:clamp(22px,5vw,76px);font-family:Arial,sans-serif;color:var(--ink);background:var(--paper);scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}figure{margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #c59e6e;outline-offset:5px}.skip-link{position:fixed;left:20px;top:12px;z-index:20;padding:12px 20px;background:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.experience{height:520svh;position:relative;background:var(--dark)}.start-anchor{position:absolute;top:0}.stage{height:100svh;position:sticky;top:0;overflow:hidden;color:#fff;background:var(--dark);isolation:isolate}.stage #scene,.scene-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% center}.scene-poster[hidden]{display:none}.ambient{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;filter:blur(28px) brightness(.65);opacity:0;transition:opacity .25s;pointer-events:none}.stage.is-complete-view .ambient,.stage.is-plan .ambient{opacity:1}.stage.is-complete-view #scene,.stage.is-complete-view .scene-poster,.stage.is-plan #scene{object-fit:contain}.stage-shade{position:absolute;inset:0;background:linear-gradient(180deg,#151d19aa,transparent 24%,transparent 47%,#101a13bb);pointer-events:none}
.site-header{position:absolute;top:0;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:25px;padding:28px 0;border-bottom:1px solid #ffffff35}.wordmark{font-size:1.3rem;font-weight:600;letter-spacing:-.055em}.site-header nav{display:flex;gap:32px;font-size:.75rem}.site-header nav a:hover,.text-link:hover,footer a:hover{text-decoration:underline;text-underline-offset:5px}.header-note{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:#ebe4d5}.stage-top{position:absolute;top:116px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:.65rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.light{color:#f2e4cc}.stage-top .eyebrow{margin:0}.view-mode{border:1px solid #ffffff50;border-radius:999px;background:#17201665;color:#fff;font-size:.68rem;padding:10px 14px;backdrop-filter:blur(8px)}.view-mode:hover{background:#eee8d8;color:#243124}.view-mode[aria-pressed=true]{background:#eee8d8;color:#243124}
.hero-copy{position:absolute;bottom:170px;left:var(--gutter);right:var(--gutter);opacity:var(--intro-opacity,1);pointer-events:none}.hero-copy .eyebrow{margin-bottom:20px}.hero-copy h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(3.6rem,7.5vw,7.3rem);line-height:.96;letter-spacing:-.065em;margin:0;max-width:900px;text-wrap:balance;text-shadow:0 2px 35px #1118}.stage-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:170px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px;opacity:var(--chapter-opacity,0);pointer-events:none}.stage-kicker,.stage-counter{font-size:.66rem;text-transform:uppercase;letter-spacing:.17em;color:#ebd8b9}.stage-kicker{margin-bottom:10px}.stage h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(2rem,3.4vw,3.7rem);line-height:1.05;letter-spacing:-.04em;max-width:650px;margin:0}.stage-counter{white-space:nowrap}
.journey-footer{position:absolute;left:var(--gutter);right:var(--gutter);bottom:max(25px,env(safe-area-inset-bottom));font-size:.69rem}.journey-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#f2e6d2;letter-spacing:.09em}.journey-meta p{margin-bottom:18px}.journey-meta p span{display:inline-block;margin-left:9px}.journey-controls{display:flex;align-items:center;gap:24px}.chapter-links{display:flex;gap:7px}.chapter-links button{border:1px solid #ffffff50;border-radius:999px;padding:10px 15px;background:#14201755;color:#fff;font-size:.7rem;backdrop-filter:blur(8px)}.chapter-links button:hover,.chapter-links button[aria-pressed=true]{background:#e9e4d8;color:var(--ink)}.journey-controls input{accent-color:#e9e4d8;flex:1;min-width:50px;height:30px;cursor:pointer}.skip-tour{white-space:nowrap;font-size:.7rem}.skip-tour:hover{text-decoration:underline}.progress{height:1px;background:#ffffff40;margin-top:21px}.progress i{display:block;height:2px;width:0;background:#e8d7b8}.load-status{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);background:#152016d9;border-radius:30px;padding:10px 17px;font-size:.75rem;max-width:85%;text-align:center}.load-status[hidden]{display:none}
.project-intro{display:grid;grid-template-columns:1fr 2.5fr 1fr;gap:45px;align-items:start;padding:110px var(--gutter) 130px;border-bottom:1px solid #c4c5b8}.section-number{font-size:.72rem;letter-spacing:.13em;white-space:nowrap}.section-number span{display:block;margin-top:12px;color:var(--muted);letter-spacing:0}.project-intro h2,.editorial h2,.details h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.055em;line-height:1.07}.project-intro h2{font-size:clamp(2.5rem,4.1vw,5rem);margin:20px 0 30px}.lead{font-size:1rem;line-height:1.8;color:#596157;max-width:600px;margin-bottom:0}.text-link{font-size:.78rem;display:inline-block;border:0;background:none;padding:0;text-align:left;color:inherit}.project-intro>.text-link{align-self:end;white-space:nowrap}.editorial{display:grid;grid-template-columns:1fr 1.65fr 1.35fr;gap:clamp(24px,4vw,65px);padding:clamp(100px,11vw,165px) var(--gutter)}.editorial-main h2{font-size:clamp(3rem,4.5vw,6rem);margin:20px 0 32px}.editorial-main>p:last-child{line-height:1.8;max-width:590px;color:#576157}.editorial-aside{align-self:center}.editorial-aside img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.editorial-aside figcaption{margin:14px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}.details{padding:clamp(70px,9vw,130px) var(--gutter) 60px;background:#d8d5c8}.details h2{font-size:clamp(3rem,4.5vw,5.8rem);max-width:860px;margin:65px 0}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #b5b7aa}.detail-card{padding:32px 36px 55px 0;border-right:1px solid #b5b7aa}.detail-card+.detail-card{padding-left:36px}.detail-card:last-child{border-right:0}.detail-card span{color:var(--accent);font-size:.72rem;letter-spacing:.18em}.detail-card h3{font-weight:400;letter-spacing:-.04em;font-size:clamp(1.5rem,2.1vw,2.4rem);margin:35px 0 17px}.detail-card p{line-height:1.7;color:#5e665b;font-size:.91rem}.closing{display:flex;justify-content:space-between;gap:25px;align-items:end;border-top:1px solid #b5b7aa;padding-top:28px;margin-top:55px}.closing p{margin:0;max-width:690px;line-height:1.6}.closing button{white-space:nowrap}footer{display:flex;justify-content:space-between;gap:20px;padding:30px var(--gutter);background:var(--dark);color:#e6e7db;font-size:.73rem}.noscript-note{padding:24px;text-align:center}.noscript-note a{text-decoration:underline}
@media(max-width:850px){.site-header{padding:23px 0}.site-header nav{gap:20px}.site-header nav a:last-child,.header-note{display:none}.stage-top{top:93px}.hero-copy{bottom:200px}.hero-copy h1{font-size:clamp(3.4rem,10vw,5rem);max-width:550px}.hero-copy .eyebrow{max-width:280px;line-height:1.6}.stage-bottom{bottom:205px}.stage h2{font-size:clamp(2.5rem,7vw,3.4rem)}.stage-counter{display:none}.journey-controls{flex-wrap:wrap;gap:10px}.journey-controls input{order:3;flex-basis:100%;height:26px}.skip-tour{margin-left:auto}.progress{margin-top:14px}.journey-meta p{margin-bottom:15px}.project-intro{grid-template-columns:1fr;gap:35px;padding:75px var(--gutter)}.project-intro h2{font-size:clamp(2.8rem,7vw,4.2rem)}.project-intro>.text-link{justify-self:start}.editorial{grid-template-columns:1fr 1fr;gap:35px}.editorial .section-number,.editorial-main,.editorial-aside{grid-column:1/-1}.editorial-aside{max-width:650px}.details h2{margin:45px 0}.detail-grid{grid-template-columns:1fr}.detail-card,.detail-card+.detail-card{border-right:0;border-bottom:1px solid #b5b7aa;padding:28px 0}.detail-card h3{margin:15px 0}.closing{display:block}.closing button{margin-top:25px}}
@media(max-width:530px){.wordmark{font-size:1.1rem}.site-header nav{font-size:.7rem}.stage-top .eyebrow{font-size:.55rem;letter-spacing:.16em}.view-mode{font-size:.62rem;padding:9px 11px}.hero-copy h1{font-size:clamp(3.4rem,14vw,4.5rem);max-width:300px}.hero-copy{bottom:210px}.stage-bottom{bottom:210px}.chapter-copy h2{font-size:2.45rem;max-width:320px}.chapter-links button{padding:10px 12px}.skip-tour{font-size:.62rem}.hero-copy .eyebrow{font-size:.58rem;max-width:220px}.editorial-main h2,.details h2{font-size:3rem}footer{display:block}footer span{display:block;margin:7px 0}footer a{display:inline-block;margin-top:15px}.stage.is-complete-view #scene,.stage.is-plan #scene{inset:150px 0 auto;height:calc(100svh - 365px)}.stage.is-complete-view .scene-poster{inset:150px 0 auto;height:calc(100svh - 365px)}}
@media(max-height:600px) and (min-width:600px){.site-header{padding:16px 0}.stage-top{top:76px}.hero-copy,.stage-bottom{bottom:150px}.hero-copy h1{font-size:3.5rem}.stage h2{font-size:2rem}.hero-copy .eyebrow{margin-bottom:10px}.journey-footer{bottom:18px}.journey-meta p{margin-bottom:8px}.progress{margin-top:8px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.experience{height:100svh}.stage{position:relative}.ambient{transition:none}.hero-copy{opacity:1}.stage-bottom{opacity:0}.stage:not(.is-start) .hero-copy{opacity:0}.stage:not(.is-start) .stage-bottom{opacity:1}}

/* Desktop direction: the room leads, captions accompany. */
@media(min-width:1000px){
  .hero-copy{bottom:150px;right:auto;max-width:520px}
  .hero-copy h1{font-size:clamp(2.6rem,3.8vw,4.2rem);max-width:500px;letter-spacing:-.04em}
  .hero-copy .eyebrow{display:none}
  .stage-top>.eyebrow{display:none}
  .stage-top{justify-content:flex-end}
  .stage-bottom{bottom:148px}
  .stage h2{font-size:clamp(1.45rem,2vw,2rem);max-width:390px}
  .stage-kicker{font-size:.59rem;margin-bottom:7px;letter-spacing:.13em}
  .stage-counter{opacity:.65}
  .site-header{padding:23px 0;border-bottom-color:#ffffff22}
  .header-note{font-size:.59rem}
}

/* A single, measured preparation before the desktop scroll journey. */
.experience.is-preparing{height:100svh}.is-preparing .stage{position:relative}
.journey-loader{position:absolute;z-index:4;left:50%;top:52%;transform:translate(-50%,-50%);width:min(330px,calc(100% - 48px));padding:20px 23px 17px;background:#172018e6;border:1px solid #e5dcc12e;border-radius:4px;backdrop-filter:blur(14px);box-shadow:0 12px 40px #0002;color:#f0eade}
.journey-loader[hidden],.loader-actions button[hidden]{display:none}
.loader-heading{display:flex;justify-content:space-between;gap:16px;font-size:.73rem;letter-spacing:.035em;line-height:1.5}
#loader-percent{font-variant-numeric:tabular-nums;color:#dbcfb5}
.loader-progress{height:1px;background:#eadfc530;margin-top:15px}.loader-progress i{display:block;height:1px;width:0;background:#e6d6b7;transition:width .16s linear}
.loader-actions{display:flex;gap:18px;align-items:center;margin-top:13px;font-size:.63rem;color:#d3cdbf}.loader-actions a:hover{text-decoration:underline}.loader-actions button{background:transparent;border:0;color:inherit;padding:0;cursor:pointer;text-decoration:underline;font:inherit}
.is-preparing .journey-controls input,.is-preparing .chapter-links{opacity:.35}.is-preparing .journey-meta{visibility:hidden}
button:disabled,input:disabled{cursor:default}
@media(prefers-reduced-motion:reduce){.loader-progress i{transition:none}}



/* v10 · C+ loader: the floor plan draws itself over the blurred living room. */
.soft-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% center;filter:blur(16px) saturate(.9);transform:scale(1.06);opacity:0;transition:opacity .9s ease;pointer-events:none}
.is-preparing .soft-preview{opacity:1}
.is-preparing #hero-image{opacity:0}#hero-image{transition:opacity .9s ease}
.is-preparing .stage-shade{background:#0d140f6b}
.is-preparing .site-header,.is-preparing .hero-copy,.is-preparing .stage-top,.is-preparing .journey-footer{opacity:0;pointer-events:none}
.is-revealing .site-header,.is-revealing .stage-top,.is-revealing .journey-footer,.is-revealing .hero-copy{transition:opacity .8s ease .2s}
.journey-loader{inset:0;left:0;top:0;transform:none;width:auto;padding:0;background:none;border:0;border-radius:0;backdrop-filter:none;box-shadow:none;display:grid;place-items:center;opacity:1;transition:opacity 1s ease,transform 1.2s ease}
.journey-loader.is-leaving{opacity:0;transform:scale(1.04);pointer-events:none}
.loader-box{display:flex;flex-direction:column;align-items:center;width:min(640px,calc(100% - 48px))}
.loader-plan{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 1px 6px #0a0e0a73)}
.loader-plan rect{fill:none;stroke:#f4ede0;stroke-width:.035;stroke-dasharray:1;stroke-dashoffset:var(--o,1)}
.loader-plan rect.w{stroke-width:.07}.loader-plan rect.p{stroke:#9cc3c0}
.loader-box .loader-heading{margin-top:26px;justify-content:center;align-items:baseline;gap:14px;color:#efe6d4}
#loader-percent{font-family:Georgia,serif;font-size:1.15rem;min-width:3.2ch;text-align:left}
.loader-box .loader-progress{width:min(260px,70%)}
.loader-box .loader-actions{justify-content:center}

/* v10 · the plan sheet lifts off the island and lands in the next section. */
.paper-layer{position:absolute;inset:0;background:var(--paper);opacity:0;pointer-events:none}
.plan-sheet{max-width:none;position:absolute;left:0;top:0;transform-origin:0 0;opacity:0;pointer-events:none;will-change:transform;filter:drop-shadow(0 calc(var(--lift,0)*28px) calc(var(--lift,0)*40px) rgba(30,25,15,calc(var(--lift,0)*.35)))}
.plan-head{position:absolute;left:var(--gutter);top:clamp(96px,14vh,150px);opacity:0;max-width:420px;color:var(--ink);pointer-events:none}
.plan-head h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(2rem,3.6vw,3.4rem);letter-spacing:-.04em;line-height:1;margin:0 0 12px}
.plan-head p{margin:0;color:var(--muted);line-height:1.55;font-size:.95rem}
.plan-tag{position:absolute;font-size:.78rem;letter-spacing:.06em;color:var(--ink);background:#e9e4d8e6;padding:5px 9px;border-radius:2px;opacity:0;white-space:nowrap;transform:translate(-50%,-50%);pointer-events:none}
.plan-tag::before{content:'';position:absolute;left:50%;top:100%;width:1px;height:14px;background:var(--accent)}
.stage.is-paper{color:var(--ink)}
.stage.is-paper .site-header{border-bottom-color:#26302726}
.stage.is-paper .journey-meta,.stage.is-paper .header-note,.stage.is-paper .skip-tour{color:var(--ink)}
.stage.is-paper .chapter-links button{border-color:#26302755;background:#e9e4d8aa;color:var(--ink)}
.stage.is-paper .chapter-links button[aria-pressed=true]{background:var(--dark);color:var(--paper)}
.stage.is-paper .progress{background:#26302730}.stage.is-paper .progress i{background:var(--accent)}
.stage.is-paper .stage-top{opacity:0;pointer-events:none}
.stage.is-paper .view-mode{opacity:0;pointer-events:none}
.stage.is-paper .journey-controls input{accent-color:var(--dark)}

.experience{height:760svh}
@media(max-width:999px){.experience{height:470svh}}
@media(prefers-reduced-motion:reduce){.experience,.experience.is-preparing{height:100svh}.soft-preview,#hero-image,.journey-loader{transition:none}.plan-head{position:static}}
@media(max-width:530px){.plan-head{top:96px;max-width:280px}.plan-head p{font-size:.85rem}.plan-tag{font-size:.66rem;padding:4px 7px}}

/* v11: restore C+ soft room; the canvas must not cover the preview while preparing. */
.is-preparing #scene{opacity:0}
#scene{transition:opacity .9s ease}
.is-preparing .chapter-copy,.is-preparing .stage-counter{opacity:0}
/* Match the approved SVG's proportion in the hero. */
.loader-box{width:min(46vw,640px)}
@media(max-width:700px){.loader-box{width:min(88vw,640px)}}
/* Keep the v9 room pace after replacing its 81-frame sequence with 97 poses. */
@media(min-width:1000px){.experience{height:770svh}}
@media(prefers-reduced-motion:reduce){#scene{transition:none}.experience{height:100svh}}

/* Client presentation: a quiet invitation, with the render filling the stage. */
.journey-footer{pointer-events:none;bottom:max(32px,env(safe-area-inset-bottom))}
.journey-footer p{margin:0;color:#f2e6d2;font-size:.68rem;letter-spacing:.1em}
.hero-copy{bottom:110px}
@media(max-width:530px){.hero-copy{bottom:115px}}
