/* Shared motion language; camera, pointer and colour live on separate layers. */
:root{--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-in-out-soft:cubic-bezier(.45,.05,.55,.95);--ease-spring:cubic-bezier(.34,1.56,.64,1)}
@keyframes heroLight{from{opacity:.15;transform:scale(1.08) translateY(2%)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes heroDrift{0%,100%{transform:scale(1) translate(0,0)}50%{transform:scale(1.04) translate(-1.2%,-.6%)}}
@keyframes heroEnter{from{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.hero-photo{animation:heroLight 6.5s var(--ease-out-expo) both,heroDrift 18s var(--ease-in-out-soft) 6.5s infinite;will-change:transform,opacity}
.hero-copy>*{animation:heroEnter 1.15s var(--ease-spring) both}.hero-copy .eyebrow{animation-delay:.35s}.hero-copy h1{animation-delay:.7s}.hero-copy .sub{animation-delay:1.15s}.hero-copy .actions{animation-delay:1.5s}
@keyframes rioLightsOn{from{opacity:.15}to{opacity:1}}
@keyframes rioCameraFloat{0%,100%{transform:scale(1) translate(0,0)}50%{transform:scale(1.045) translate(-1.5%,-.8%)}}
@keyframes rioTitleIn{from{opacity:0;transform:translateY(35px) scaleX(.86)}to{opacity:1;transform:translateY(0) scaleX(.86)}}
.rio-scenes{animation:rioLightsOn 2.4s var(--ease-out-expo) both,rioCameraFloat 16s var(--ease-in-out-soft) 2.4s infinite;transform-origin:70% 55%;will-change:transform,opacity}
.rio-scene{transition:opacity 1s var(--ease-out-expo)}
.rio-hero h1 span{animation-timing-function:var(--ease-out-expo)}
.rio-hero .hero-copy .sub{animation-timing-function:var(--ease-out-expo)}
.rio-finish-cards{padding-top:10px}
.rio-finish-card{animation-fill-mode:backwards;animation-timing-function:var(--ease-spring);transition:transform .4s var(--ease-spring)}
.rio-finish-card[aria-pressed=true]{transform:translateY(-6px) scale(1.015)}
@media(hover:hover){.rio-finish-card:hover{transform:translateY(-6px) scale(1.015)}}
.signature-canvas{transform:translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0);transition:transform 1s var(--ease-out-expo)}
.signature-wordmark{translate:calc(var(--pointer-x,0px)*-.3) calc(var(--pointer-y,0px)*-.3);transition:translate 1.3s var(--ease-out-expo)}
.signature-copy>*{animation:heroEnter 1.15s var(--ease-spring) backwards}
.signature-copy .signature-kicker{animation-delay:.35s}.signature-copy h2{animation-delay:.7s}.signature-copy .signature-intro{animation-delay:1.15s}.signature-copy .signature-link{animation-delay:1.5s}
.signature-construction{animation-timing-function:var(--ease-out-expo)}
.signature-colour-row button{transition:transform .4s var(--ease-spring)}
.signature-colour-row button[aria-pressed=true]{transform:translateY(-2px) scale(1.12)}
.signature-colour-row button:active{transform:scale(.92)}
.signature-link span{transition:transform .5s var(--ease-out-expo)}.signature-link:hover span{transform:translate(3px,-3px)}
.signature-journey.motion-paused *{animation-play-state:paused!important}.signature-journey.motion-paused .signature-canvas,.signature-journey.motion-paused .signature-wordmark{transition:none}
.reduced .signature-copy>*,.reduced .hero-copy>*{animation:none!important}
.reduced .signature-canvas,.reduced .signature-wordmark{transform:none;translate:none;transition:none}
.reduced .rio-finish-card,.reduced .signature-colour-row button{transition:none;transform:none}
@media(prefers-reduced-motion:reduce){.signature-copy>*,.hero-copy>*{animation:none!important}.signature-canvas,.signature-wordmark{transform:none;translate:none;transition:none}.rio-finish-card,.signature-colour-row button{transition:none;transform:none}}
@keyframes bossaWarmGlow{0%,100%{opacity:.65}50%{opacity:1}}
.signature-floor-glow{animation:bossaWarmGlow 10s var(--ease-in-out-soft) infinite}
.reduced .signature-floor-glow{animation:none}
@media(prefers-reduced-motion:reduce){.signature-floor-glow{animation:none}}
/* Approved Bossa Rio composition and four current rendered finishes. */
.signature-atmosphere{background:linear-gradient(90deg,#0c101327,transparent 70%),url('assets/signature/hero-room-v2.webp') center/cover no-repeat}
.signature-atmosphere:after{opacity:.12}
.signature-wordmark{top:13%;font-size:clamp(90px,20vw,350px);left:3%;width:94%}
.signature-copy{top:61%;left:4%;max-width:340px}
.signature-copy h2{font-size:clamp(32px,3vw,50px)}
.signature-copy .signature-kicker{display:none}
.signature-copy .signature-intro{font:9px Arial,sans-serif;letter-spacing:.25em;color:#eee7da}
.signature-copy .signature-link{background:#faf6ec;color:#111;padding:19px 25px;border:0;font-size:9px;letter-spacing:.14em}
.signature-approved-finishes{right:3%;bottom:5.5%;width:340px;background:none;border:0;backdrop-filter:none;padding:0}
.signature-approved-finishes>.signature-kicker{display:none}
.signature-finish-options{display:flex;justify-content:space-between;gap:14px}
.signature-finish-options button{display:flex;flex-direction:column;align-items:center;gap:12px;background:none;border:0;color:#eee7da;font:9px Arial,sans-serif;padding:5px;cursor:pointer}
.signature-finish-options button>span{display:block;width:30px;height:30px;border-radius:50%;background:var(--chip);border:1px solid #ffffff65;transition:transform .4s var(--ease-spring)}
.signature-finish-options button[aria-pressed=true]>span{outline:1px solid #fff;outline-offset:4px}
.signature-finish-options button:hover>span{transform:translateY(-4px) scale(1.08)}
.signature-approved-finishes .signature-colour-note{font-size:8px;text-align:right;color:#d7cbb7}
.signature-bottom{bottom:18px}.signature-chapters{top:30%}
/* Scroll-held rooms dissolve on one stage, with a slow camera push. */
.signature-rooms{position:relative;height:245svh;background:#181b19;--room-blend:0;--room-camera:1.07}
.signature-room-stage{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;isolation:isolate}
.signature-room-stage .signature-room{position:absolute;inset:0;height:100%;min-height:0;max-height:none;transform:scale(calc(1 - var(--room-blend)*.025));transform-origin:center}
.signature-room-stage .signature-room-studio{z-index:2;opacity:var(--room-blend);transform:translateY(calc((1 - var(--room-blend))*7%)) scale(calc(1.035 - var(--room-blend)*.035))}
.signature-room-stage .signature-room>img{transform:translateY(var(--room-drift,0px)) scale(var(--room-camera));transform-origin:center}
.signature-room-stage .signature-room:not(.signature-room-studio) .signature-room-copy{opacity:calc(1 - var(--room-blend));transform:translateY(calc(var(--room-blend)*-30px))}
.signature-room-stage .signature-room-studio .signature-room-copy{opacity:var(--room-blend);transform:translateY(calc((1 - var(--room-blend))*32px))}
.signature-room-stage .signature-room[aria-hidden=true]{pointer-events:none}
::view-transition-old(root){animation:bossaInteriorOut .5s var(--ease-in-out-soft) both}
::view-transition-new(root){animation:bossaInteriorIn .7s var(--ease-out-expo) both}
@keyframes bossaInteriorOut{to{opacity:0;transform:scale(1.025)}}
@keyframes bossaInteriorIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:800px){.signature-wordmark{top:15%;font-size:19vw}.signature-copy{top:27%;left:6%;max-width:52%}.signature-copy h2{font-size:27px}.signature-copy .signature-intro{display:block;font-size:7px}.signature-copy .signature-link{font-size:7px;letter-spacing:.08em;padding:13px 14px;gap:12px}.signature-approved-finishes{display:block;left:6%;right:6%;bottom:10%;width:auto;padding:12px;background:#10151585;border:1px solid #ffffff18}.signature-approved-finishes .signature-colour-note{text-align:center}.signature-chapters{top:28%}.signature-room-stage{min-height:600px}.signature-atmosphere{background-position:54% center}}
.reduced .signature-rooms{height:auto}.reduced .signature-room-stage{position:static;height:auto;overflow:visible}.reduced .signature-room-stage .signature-room{position:relative;height:90svh;min-height:600px;opacity:1;transform:none}.reduced .signature-room-stage .signature-room-copy{opacity:1!important;transform:none!important}.reduced .signature-room-stage .signature-room>img{transform:none}.reduced .signature-finish-options button>span{transition:none}
@media(prefers-reduced-motion:reduce){.signature-rooms{height:auto}.signature-room-stage{position:static;height:auto;overflow:visible}.signature-room-stage .signature-room{position:relative;height:90svh;min-height:600px;opacity:1;transform:none}.signature-room-stage .signature-room-copy{opacity:1!important;transform:none!important}.signature-room-stage .signature-room>img{transform:none}.signature-finish-options button>span{transition:none}::view-transition-old(root),::view-transition-new(root){animation:none}}
.signature-room-stage .signature-room:not(.signature-room-studio){transform:none}
.signature-room-stage .signature-room:not(.signature-room-studio) .signature-room-copy{opacity:clamp(0,calc(1 - var(--room-blend)*2),1)}
.signature-room-stage .signature-room-studio .signature-room-copy{opacity:clamp(0,calc((var(--room-blend) - .5)*2),1)}
/* Match the approved reference's high-contrast editorial typography. */
@font-face{font-family:BossaReferenceDisplay;src:url('assets/fonts/bodoni-moda-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.signature-wordmark{font-family:BossaReferenceDisplay,Didot,'Bodoni MT',Georgia,serif;font-weight:400;font-size:20vw;line-height:.86;letter-spacing:-.065em;top:12%;left:3.7%;width:100%;transform:scaleX(.955);transform-origin:left center}
.signature-copy{top:64%;left:3.7%;max-width:380px}
.signature-copy h2{font-family:'Times New Roman',Times,serif;font-weight:400;font-size:clamp(30px,2.65vw,46px);line-height:1.14;letter-spacing:-.035em;margin-bottom:18px}
.signature-copy .signature-intro{font-size:10px;letter-spacing:.28em;margin-bottom:29px}
.signature-copy .signature-link{min-width:292px;min-height:56px;justify-content:space-between;font:600 9px Arial,sans-serif;letter-spacing:.23em;padding:18px 32px}
.signature-copy .signature-link span{font:22px Arial,sans-serif;letter-spacing:0}
.signature-approved-finishes{width:450px;right:2.5%;bottom:6.6%}
.signature-finish-options{gap:12px}.signature-finish-options button{font-size:9px;padding:5px 0;gap:12px;white-space:nowrap}.signature-finish-options button>span{width:32px;height:32px}
.signature-approved-finishes .signature-colour-note{display:none}
.signature-chapters{right:2%;top:29%;gap:23px}.signature-chapters button{font-size:0;gap:0}.signature-chapters span{font:10px Arial,sans-serif;letter-spacing:.15em}.signature-chapters button:nth-child(2){height:48px;width:1px;background:#eee7da60;pointer-events:none;align-self:center}.signature-chapters button:nth-child(2) span{visibility:hidden}
@media(min-width:1101px){.home-hero header{padding:10px 5.2%;height:96px;align-items:flex-start}.home-hero header .brand img{width:142px;height:70px;max-height:70px}.home-hero header nav{position:absolute;left:50%;top:22px;transform:translateX(-50%);margin:0;gap:42px;white-space:nowrap}.home-hero header nav a{font:12px Arial,sans-serif;line-height:24px}.home-hero header .tools{margin-left:auto;margin-top:13px}.home-hero header .bag-icon{font-size:26px}}
@media(max-width:1100px) and (min-width:801px){.signature-copy .signature-link{min-width:230px}.signature-approved-finishes{width:410px}.signature-copy h2{font-size:32px}}
@media(max-width:800px){.signature-wordmark{font-size:20vw;top:16%;left:3.5%}.signature-copy{top:28%;left:6%;max-width:53%}.signature-copy h2{font-size:27px;line-height:1.1}.signature-copy .signature-intro{font-size:7px;letter-spacing:.17em;margin-bottom:15px}.signature-copy .signature-link{min-width:0;min-height:42px;padding:12px 14px;font-size:7px;letter-spacing:.1em;gap:15px}.signature-copy .signature-link span{font-size:17px}.signature-approved-finishes{left:5%;right:5%;width:auto;bottom:9.8%;padding:10px 9px}.signature-finish-options{gap:5px}.signature-finish-options button{font-size:7px;gap:9px}.signature-finish-options button>span{width:25px;height:25px}.signature-chapters{right:5%;top:29%;gap:13px}.signature-chapters button:nth-child(2){height:30px}}
@media(max-width:380px){.signature-finish-options button{font-size:6px}.signature-finish-options button>span{width:23px;height:23px}.signature-copy h2{font-size:23px}}
.signature-wordmark{font-size:19.05vw;transform:none;width:92.6%;letter-spacing:-.065em}
.signature-chapter-line{display:block;width:1px;height:54px;background:#eee7da65;align-self:center}
@media(max-width:800px){.signature-wordmark{font-size:19.05vw}.signature-chapter-line{height:30px}}
/* The approved wordmark has substantial Didone stems, not a light weight. */
@font-face{font-family:BossaReferenceDisplay;src:url('assets/fonts/bodoni-moda-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
.signature-wordmark{font-weight:700;font-size:18vw;letter-spacing:-.075em}
@media(max-width:800px){.signature-wordmark{font-size:18vw}}
