/* A's original hero, with B's current image and visual language. */
h1,h2,h3,h4{line-height:1.18}
.hero.shell{width:min(1280px,calc(100% - 112px));display:grid;grid-template-columns:.88fr 1.12fr;grid-template-rows:auto auto;grid-template-areas:'copy photo' 'actions photo';column-gap:60px;row-gap:0;padding:30px 0 60px;min-height:0}
.hero-copy{grid-area:copy;align-self:end;padding-top:45px;display:block}
.hero h1{font-size:clamp(52px,5.6vw,86px);line-height:1.15;letter-spacing:-.043em;margin:0;overflow:visible}
.hero h1 br{display:block}.hero-first-line{white-space:nowrap}
.hero-inline-brand{display:inline-block;width:2.38em;height:.63em;vertical-align:-.013em;line-height:0;color:var(--green)}
.hero-inline-brand svg{display:block;width:100%;height:100%;overflow:visible}
.hero-copy .eyebrow{margin-bottom:25px}.hero-copy .intro{font-size:16px;line-height:1.7;margin-top:26px;max-width:490px;color:var(--muted)}
.hero-actions{grid-area:actions;align-self:start;padding:28px 0 16px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.hero-actions .text-link{margin-left:3px;font-size:14px}.hero-actions .button{font-size:14px;padding:14px 23px}
.hero-visual{grid-area:photo;height:650px;min-height:0;align-self:start;aspect-ratio:auto;overflow:hidden;border-radius:140px 5px 5px 5px}
.hero-visual img{object-position:center 53%}.hero-visual figcaption{left:24px;right:24px;bottom:16px;align-items:flex-end;font-size:12px;line-height:1.5}.hero-visual:after{inset:75% 0 0}.hero-visual figcaption span:first-child{display:block}
.manifesto-title{font-size:clamp(48px,5.9vw,88px);max-width:900px;line-height:1.17;letter-spacing:-.04em}
.collection-intro{align-items:center}.collection-intro-detail{padding-top:0}
.delivery-copy h2,.room-copy h2,.closing h2,#materialsTitle{line-height:1.2;letter-spacing:-.035em}
.delivery-copy h2{font-size:clamp(42px,4.8vw,70px)}
.config-section h3{line-height:1.25}.config-panel .note,.config-panel .micro{font-size:14px;line-height:1.65}
.config-panel legend,.config-panel label{font-size:14px;line-height:1.5}.config-panel .note{margin-bottom:24px}
.config-panel .segmented{flex-wrap:wrap}.config-panel .segmented .choice-button{line-height:1.45;padding:11px 14px;min-height:46px}
.config-panel .material-description{font-size:14px;line-height:1.6;padding:15px 18px}.config-panel .material-description strong{margin-bottom:3px}
.module-details{margin-top:18px}.module-details>summary{cursor:pointer;font-size:14px;line-height:1.5;padding:10px 0}.module-details .module-recap{margin-top:12px}
.config-panel .size-note{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.config-panel .size-note .text-link{font-size:14px}
.scroll-cursor{position:fixed;top:0;left:0;z-index:90;pointer-events:none;opacity:0;visibility:hidden;will-change:transform;transition:opacity .18s,visibility .18s}
.scroll-cursor-disc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:132px;height:132px;border-radius:50%;background:var(--green);color:var(--paper);box-shadow:0 2px 18px #182c2020;font:500 13px/1.2 var(--body);transform:translate(-50%,-50%) scale(.75);transition:transform .25s}
.scroll-cursor.is-active{opacity:1;visibility:visible}.scroll-cursor.is-active .scroll-cursor-disc{transform:translate(-50%,-50%) scale(1)}
.scroll-mouse{position:relative;display:block;width:17px;height:25px;border:1.5px solid currentColor;border-radius:12px}.scroll-mouse i{position:absolute;width:2px;height:5px;background:currentColor;left:6px;top:4px;border-radius:2px;animation:scroll-wheel 1.6s ease-in-out infinite}
@keyframes scroll-wheel{0%,100%{transform:translateY(0);opacity:.3}35%{opacity:1}65%{transform:translateY(8px);opacity:0}}
@media(hover:hover) and (pointer:fine){.build-story.has-scroll-cursor{cursor:none}.build-story.has-scroll-cursor a,.build-story.has-scroll-cursor button{cursor:pointer}}
@media(prefers-reduced-motion:reduce){.scroll-cursor{display:none}}
@media(max-width:1100px){.hero.shell{width:calc(100% - 64px);gap:0 32px}.hero h1{font-size:clamp(45px,5.5vw,68px)}.hero-visual{height:600px;border-top-left-radius:100px}.hero-copy{padding-top:24px}.hero-copy .intro{font-size:15px}}
@media(max-width:760px){.hero.shell{width:calc(100% - 40px);padding:32px 0 45px;grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:'copy' 'photo' 'actions';row-gap:26px}.hero-copy{padding-top:0}.hero h1{font-size:clamp(40px,10.7vw,68px);line-height:1.18}.hero-copy .eyebrow{margin-bottom:18px}.hero-copy .intro{margin-top:22px;font-size:16px;max-width:490px}.hero-visual{height:460px;border-radius:82px 4px 4px 4px}.hero-visual img{object-position:center 50%}.hero-visual figcaption{left:18px;right:18px;font-size:12px}.hero-actions{padding:0;gap:12px}.hero-actions .button{min-height:49px}.hero-actions .text-link{margin:0}.manifesto-title{font-size:clamp(43px,9.8vw,65px);line-height:1.2}.collection-intro-detail{padding-top:0}.delivery-copy h2,.room-copy h2{font-size:clamp(36px,9.5vw,50px);line-height:1.23}.config-panel .segmented .choice-button{font-size:14px}.config-section .section-heading h2{line-height:1.2}.scroll-cursor{display:none}}
@media(max-width:380px){.hero h1{font-size:10.7vw}.hero-visual{height:400px}.hero-copy .intro{font-size:15px}.hero-inline-brand{width:2.3em;height:.61em}}

.scroll-cursor-disc{text-align:center;padding:16px;box-sizing:border-box;line-height:1.3}.scroll-cursor-hint{display:block;max-width:102px;margin-top:4px;font-size:11px;font-weight:400;line-height:1.35}.handle-field{margin-bottom:16px}

/* Keep the room registered and every curved door fully opaque. */
.scene-open-interior{clip-path:inset(0 39.55% 12% 42.25%)}
.scene-open-final{clip-path:inset(0 33.9% 12% 36.3%);mask-image:none}

/* The final scroll beat hands the left column to the storage promise while the cabinet stays still. */
.build-copy{position:relative;display:block!important;min-height:0!important;max-height:none!important;align-content:initial!important}
.build-copy-primary,.build-copy-after{width:100%;transition:opacity .12s linear,transform .12s linear;will-change:opacity,transform}
.build-copy-primary{opacity:clamp(0,calc(1 - var(--copy-after,0) * 8),1);transform:translateY(calc(var(--copy-after,0) * -90px));pointer-events:none}
.build-copy-after{position:absolute;inset:0 auto auto 0;opacity:var(--copy-after,0);transform:translateY(calc((1 - var(--copy-after,0)) * 90px));pointer-events:none}
.build-copy-after .eyebrow{margin-bottom:22px}
.build-copy-after h2{font-size:clamp(38px,3.8vw,60px);line-height:1.05;margin:0}
.build-copy-after p:not(.eyebrow):not(.micro){font-size:16px;line-height:1.45;margin:18px 0 14px;max-width:390px;color:#d3d8cb}
.build-copy-after .storage-actions{margin-top:12px}
.build-copy-after .button{font-size:13px;min-height:46px;padding:11px 16px}
.build-copy-after .micro{font-size:11px;line-height:1.4;margin-top:10px;max-width:330px;color:#b9c3b5}
.build-copy .build-progress{position:absolute;left:0;bottom:0;margin:0}
@media(max-width:760px){.build-copy{display:block!important;flex-basis:205px!important;min-height:205px!important;max-height:205px!important;padding:0 20px!important}.build-copy-primary,.build-copy-after{width:calc(100% - 0px)}.build-copy-after .eyebrow{margin-bottom:11px}.build-copy-after h2{font-size:30px;line-height:1.04}.build-copy-after p:not(.eyebrow):not(.micro){font-size:13px;line-height:1.35;margin:11px 0 9px;max-width:100%}.build-copy-after .storage-actions{margin-top:7px}.build-copy-after .button{min-height:42px;font-size:11px;padding:9px 12px}.build-copy-after .micro{font-size:10px;margin-top:6px;line-height:1.3}.build-copy .build-progress{bottom:0;left:20px;width:calc(100% - 40px)}}

/* Make the final scroll message unmistakable, readable and actionable. */
.build-copy-after{z-index:3;color:var(--ink);overflow:visible}
.build-copy-after .eyebrow{color:#66715f;text-shadow:none}
.build-copy-after h2{color:#30483b;text-shadow:none}
.build-copy-after p:not(.eyebrow):not(.micro){color:#435247}
.build-copy-after .micro{color:#5c685d}
.build-copy-after::before{content:"";display:block;width:clamp(58px,7vw,110px);height:4px;margin:0 0 18px;border-radius:9px;background:linear-gradient(90deg,#344d40 0%,#8ca070 52%,#c4936b 100%);transform:scaleX(var(--copy-after,0));transform-origin:left center;transition:transform .28s ease-out;box-shadow:0 0 0 rgba(140,160,112,0)}
.build-copy-after.is-active{pointer-events:auto}
.build-copy-after.is-visible h2{animation:storage-focus .72s cubic-bezier(.2,.82,.2,1) both}
.build-copy-after .button{position:relative;z-index:2;min-width:min(100%,330px);font-size:13px;font-weight:650;letter-spacing:.045em;text-transform:uppercase;background:linear-gradient(110deg,#344d40 0%,#617c61 48%,#c18b67 100%);border-color:transparent;box-shadow:0 10px 24px rgba(52,77,64,.18);transform-origin:left center;transform:scale(calc(1 + clamp(0,var(--copy-after,0),1) * .3));transition:transform .18s ease-out,box-shadow .18s ease-out,filter .18s ease-out}
.build-copy-after .button:hover{background:linear-gradient(110deg,#3f5d4e 0%,#789570 48%,#d09b75 100%);transform:scale(calc(1 + clamp(0,var(--copy-after,0),1) * .3)) translateY(-2px);box-shadow:0 14px 30px rgba(52,77,64,.25);filter:saturate(1.08)}
@keyframes storage-focus{0%{opacity:.1;transform:translateY(30px) scale(.92);filter:blur(5px)}55%{opacity:1;transform:translateY(-3px) scale(1.035);filter:blur(0);text-shadow:0 0 22px rgba(195,216,153,.65)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);text-shadow:0 0 0 rgba(0,0,0,0)}}

/* The FAQ now has an intro column plus two readable question columns. */
.faq{grid-template-columns:.68fr 1fr 1fr;gap:clamp(28px,4vw,72px)}
.faq-list{min-width:0}
.faq-intro{min-width:0}
.footer-contact{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.5}
.footer-contact a{color:var(--green);font-weight:600;text-decoration:none}
.footer-contact span{color:var(--muted)}
.footer-links{display:flex;gap:22px;align-items:flex-start}
.closing h2{color:#fffdf6;text-shadow:0 2px 18px rgba(0,0,0,.12)}
 #configTitle{display:flex;align-items:center;flex-wrap:wrap;gap:.14em .24em}
@media(max-width:980px){.faq{grid-template-columns:1fr 1fr;gap:34px}.faq-intro{grid-column:1/-1}.faq>div:first-child{position:static}}
@media(max-width:760px){.build-copy-after::before{height:3px;margin-bottom:10px}.build-copy-after .button{min-width:0;font-size:10px;letter-spacing:.025em}.faq{grid-template-columns:1fr;gap:28px}.faq-intro{grid-column:auto}.footer{grid-template-columns:1fr 1fr}.footer-contact{font-size:11px;text-align:right;align-items:flex-end}.footer-links{grid-column:1/-1;justify-content:space-between;width:100%;gap:14px}.footer-links .text-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){.build-copy-after.is-visible h2{animation:none}.build-copy-after .button{transform:none!important;transition:none}}

/* Give the final copy room to breathe and remove the progress rule once the CTA takes over. */
.build-copy-after .storage-actions{margin-top:21px}
.build-copy-after .micro{margin-top:14px}
.build-copy-after.is-active~.build-progress{opacity:0;visibility:hidden}
.closing{background:linear-gradient(125deg,#24392f 0%,#344d40 52%,#5a5145 100%);color:#f8f5ef;padding-block:112px 106px}
.closing .eyebrow{color:#d9e4cf}
.closing h2{color:#fffdf6;text-shadow:0 2px 18px rgba(0,0,0,.22)}
.closing h2 span{color:#dbe9b4}
.closing .button{background:#f8f5ef;color:#344d40;border-color:#f8f5ef;box-shadow:0 10px 24px rgba(0,0,0,.16)}
.closing .button:hover{background:#dbe9b4;border-color:#dbe9b4;color:#24392f}
.footer{padding-top:48px;padding-bottom:32px}
@media(max-width:760px){.build-copy-after .storage-actions{margin-top:13px}.build-copy-after .micro{margin-top:9px}.closing{padding-block:76px 72px}.footer{padding-top:38px;padding-bottom:28px}}

/* Mobile QA: give the final scroll message enough vertical room so it never
   collides with or gets clipped by the cabinet scene. The sticky panel's
   padding, copy block and scene now add up to one complete viewport. */
@media(max-width:760px){
  .build-copy{
    flex-basis:250px!important;
    min-height:250px!important;
    max-height:250px!important;
  }
  .build-scene{
    height:calc(var(--story-vh) - 367px)!important;
    min-height:250px;
  }
  .faq summary{font-size:13px;line-height:1.45}
  .faq details p{font-size:13px;line-height:1.65}
}
@media(max-width:380px){
  .build-copy{
    flex-basis:260px!important;
    min-height:260px!important;
    max-height:260px!important;
  }
  .build-scene{height:calc(var(--story-vh) - 377px)!important}
  .custom-colour-fields{grid-template-columns:1fr;gap:10px}
  .preview-caption{flex-direction:column;gap:8px}
  .preview-caption p{max-width:none}
}

/* Every gallery item, including the invitation, is a real snap destination. */
.carousel-end{scroll-snap-align:start;scroll-snap-stop:always}
.mobile-scroll-hint{display:none}
/* Calm CTA sizing and generous spacing, consistent with the other buttons. */
.build-copy-after .button,.build-copy-after .button:hover{transform:none;min-width:0;max-width:100%;min-height:48px;padding:13px 22px;font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;background:var(--green);border:1px solid var(--green);box-shadow:none;filter:none}
.build-copy-after .button:hover{background:#49634f}
.build-copy-after .storage-actions{margin-top:28px}
.build-copy-after .micro{margin-top:22px;font-size:14px;line-height:1.65}
@media(max-width:760px){
 .build-copy{flex-basis:205px!important;min-height:205px!important;max-height:205px!important}
 .build-copy-primary{opacity:1;transform:none;pointer-events:auto}
 .build-scene{height:calc(var(--story-vh) - 343px)!important;min-height:0}
 .build-story + .build-copy-after{--copy-after:1;position:relative;inset:auto;width:100%;padding:42px 24px 56px;background:#e9e8df;opacity:1;transform:none;pointer-events:auto;transition:none}
 .build-story + .build-copy-after::before{margin-bottom:24px;transform:none}
 .build-story + .build-copy-after .eyebrow{margin-bottom:18px}
 .build-story + .build-copy-after h2{font-size:clamp(32px,8.5vw,44px);line-height:1.15;animation:none}
 .build-story + .build-copy-after p:not(.eyebrow):not(.micro){font-size:16px;line-height:1.65;margin:24px 0 0;max-width:460px}
 .build-story + .build-copy-after .storage-actions{margin-top:28px}
 .build-story + .build-copy-after .micro{margin-top:24px;max-width:380px;font-size:14px;line-height:1.65}
 .mobile-scroll-hint{position:absolute;right:16px;bottom:16px;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:84px;height:84px;padding:10px;border-radius:50%;background:var(--green);color:var(--paper);text-align:center;font-size:12px;line-height:1.3;pointer-events:none;transition:opacity .25s}
 .mobile-scroll-hint>span:first-child{font-size:24px;line-height:1.1;animation:mobile-scroll-nudge 1.6s ease-in-out infinite}
 .mobile-scroll-hint.is-done{opacity:0}
}
@keyframes mobile-scroll-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
@media(prefers-reduced-motion:reduce){.mobile-scroll-hint{display:none}}
