/* Homepage opening only. Shared sections retain their styles. */
.home-hero {
  --home-ink: #061a23;
  --home-mint: #c2ead4;
  --home-copy-left: max(16px,calc(var(--pad) - 28px));
  --home-x: 0px;
  --home-y: 0px;
  position: relative;
  display: grid;
  grid-template-rows: 1fr auto auto;
  min-height: clamp(690px, calc(100svh - 94px), 860px);
  color: #f7f5ed;
  background: var(--home-ink);
  overflow: hidden;
  isolation: isolate;
}
.home-gallery { position: absolute; inset: 0 0 0 17%; z-index: -3; overflow: hidden; }
.home-scene { position: absolute; inset: 0; visibility: hidden; opacity: 0; clip-path: inset(0 0 0 100%); z-index: 0; }
.home-scene.is-active { visibility: visible; opacity: 1; clip-path: inset(0); z-index: 2; transition: clip-path 1.65s cubic-bezier(.16,.65,.25,1); }
.home-scene.is-leaving { visibility: visible; opacity: 1; clip-path: inset(0); z-index: 1; }
.home-hero.is-opening .home-scene.is-active { clip-path: inset(0 0 0 100%); transition: none; }
.home-scene .home-image { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 56% 50%; max-width: none; animation: home-camera 18s ease-in-out infinite alternate; animation-play-state: paused; transform: scale(1.035); }
.home-scene.is-active .home-image { animation-play-state: running; }
.home-scene[data-home-scene="1"] .home-image { object-position: 59% 44%; }
.home-scene[data-home-scene="2"] .home-image { object-position: 56% 42%; }
.home-shade { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,#061a23 0%,#061a23fa 29%,#061a23ed 41%,#061a2390 56%,#061a2312 74%,#061a2308 100%),linear-gradient(0deg,#061a23f5 0%,#061a2355 15%,transparent 41%); }
.home-sheen { position: absolute; inset: -10% auto -10% 0; width: 27%; pointer-events: none; z-index: 3; opacity: 0; background: linear-gradient(90deg,transparent,#d6fff008 62%,#d6fff075 99%,#eaffedbb 100%); transform: translateX(430%) skewX(-12deg); }
.home-hero.is-changing .home-sheen { animation: home-light-pass 1.7s cubic-bezier(.16,.65,.25,1) both; }
.home-location { position: absolute; top: 35px; left: var(--home-copy-left); z-index: 3; display: flex; align-items: center; gap: 12px; color: #d4e4dc; font-size: 10px; font-weight: 600; line-height: 1.8; letter-spacing: .14em; }
.home-location > span { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--home-mint); box-shadow: 0 0 0 5px #c2ead411; }
.home-location i { color: #72908b; font-style: normal; margin-inline: 4px; }
.home-intro { width: min(65%,900px); min-width: 0; align-self: center; padding: 109px 0 68px var(--home-copy-left); }
.home-kicker { display: flex; align-items: center; gap: 11px; color: #bddecf; font-size: 10px; line-height: 1.8; font-weight: 600; letter-spacing: .2em; margin-bottom: 25px; }
.home-kicker > span { font-size: 17px; color: #bfe8d4; }
.home-hero h1 { font-family: var(--serif); font-size: clamp(71px,7.6vw,118px); line-height: .99; font-weight: 400; letter-spacing: -.048em; margin: 0 0 30px; text-wrap: initial; color: #f8f6ed; }
.home-title-line { display: block; white-space: nowrap; animation: home-copy-arrive 1s cubic-bezier(.2,.7,.2,1) both; }
.home-hero h1 em { display: block; width: fit-content; color: var(--home-mint); font-size: 1.015em; line-height: 1.06; letter-spacing: -.047em; animation: home-copy-arrive 1.15s .12s cubic-bezier(.2,.7,.2,1) both; }
.home-description { max-width: 440px; color: #d2dfd9; font-size: 15px; line-height: 1.9; }
.home-description strong { color: #fffaf0; font-weight: 500; }
.home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; margin-top: 30px; }
.home-hero .home-primary { min-height: 58px; background: #c2ead4; color: #0b2b32; border: 1px solid #d5f5e1; border-radius: 3px; font-size: 13px; padding: 18px 23px; gap: 27px; box-shadow: 0 8px 30px #0002; transition: background .25s,box-shadow .25s,transform .25s; }
.home-hero .home-primary:hover { background: #e1f7e8; box-shadow: 0 12px 38px #a4eac221; transform: translateY(-3px); }
.home-primary svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.5; transition: transform .25s; }
.home-primary:hover svg { transform: translateX(4px); }
.home-call { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; line-height: 1.8; color: #f1f1e7; border-bottom: 1px solid #b4d2c566; padding-block: 8px; }
.home-call svg { width: 16px; height: 16px; fill: none; stroke: #c2ead4; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.home-call:hover { border-color: #d5f5e1; }
.home-reassurance { display: flex; align-items: center; gap: 7px; color: #b0c7be; font-size: 10px; line-height: 1.7; margin-top: 22px; }
.home-reassurance svg { width: 15px; height: 15px; stroke: #bfe8d4; stroke-width: 1.8; }
.home-reassurance > span { margin-inline: 6px; color: #5d887e; }
.home-detail { position: absolute; right: var(--pad); bottom: 154px; width: 284px; padding: 21px 24px 23px; background: #08202ade; border: 1px solid #effff43d; border-radius: 4px; box-shadow: 0 14px 46px #03101940; backdrop-filter: blur(18px); transform: perspective(900px) rotateY(-5deg) rotateX(2deg); transition: transform .45s,background .3s; }
.home-detail:hover { background: #0b2a34f0; transform: perspective(900px) rotateY(0deg) translateY(-4px); }
.home-detail-top { display: flex; align-items: center; gap: 11px; color: #d2e9dc; font-size: 8px; line-height: 1.6; letter-spacing: .15em; }
.home-detail-star { font-size: 25px; color: #d1efdd; }
.home-detail-top svg { margin-left: auto; width: 20px; height: 20px; stroke: #deefe4; stroke-width: 1.3; }
.home-detail-title { display: block; margin-top: 15px; font: 31px/1.1 var(--serif); letter-spacing: -.025em; color: #f7f6eb; }
.home-detail-note { display: block; margin-top: 9px; font-size: 10px; color: #c3d7cd; line-height: 1.6; }
.home-bottom { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-inline: var(--pad); padding: 22px 0 20px; border-top: 1px solid #d5f5e136; }
.home-scenes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 31px; width: min(690px,72%); }
.home-scene-button { position: relative; display: flex; align-items: center; gap: 12px; padding: 10px 0 16px; min-height: 49px; background: none; color: #b3c8bd; border: 0; text-align: left; transition: color .3s; }
.home-scene-number { color: #90a9a0; font-size: 10px; font-weight: 400; letter-spacing: .05em; }
.home-scene-name { font-size: 11px; line-height: 1.6; }
.home-scene-button svg { width: 15px; height: 15px; margin-left: auto; stroke: currentColor; stroke-width: 1.2; opacity: .5; transition: transform .3s; }
.home-scene-button[aria-pressed="true"],.home-scene-button:hover { color: #f0f6e9; }
.home-scene-button[aria-pressed="true"] .home-scene-number { color: #c2ead4; }
.home-scene-button:hover svg { transform: translate(2px,-2px); }
.home-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: #d9f4e328; overflow: hidden; }
.home-progress i { display: block; width: 100%; height: 100%; background: #c2ead4; transform-origin: left; transform: scaleX(0); }
.home-hero[data-home-ready] .home-scene-button[aria-pressed="true"] .home-progress i { animation: home-progress 8.5s linear both; }
.home-scroll { display: flex; align-items: center; gap: 21px; color: #d1e2d9; font-size: 10px; line-height: 1.8; }
.home-scroll svg { width: 20px; height: 20px; stroke: #c2ead4; stroke-width: 1.2; animation: home-scroll-hint 3s ease-in-out infinite; }
.home-meta { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 0 var(--pad) 16px; color: #acc3b6; }
.home-meta small { font-size: 8px; letter-spacing: .025em; }
.home-meta #motion-toggle { border: 0; background: none; color: #b8cfc2; font-size: 9px; min-height: 34px; padding: 7px 0 7px 10px; }
.home-hero :is(a,button):focus-visible { outline: 2px solid #d5f5e1; outline-offset: 5px; }
@keyframes home-camera { from { transform: scale(1.035) translate3d(var(--home-x),var(--home-y),0); } to { transform: scale(1.095) translate3d(var(--home-x),var(--home-y),0); } }
@keyframes home-light-pass { 0% { opacity: 0; transform: translateX(430%) skewX(-12deg); } 12% { opacity: 1; } 86% { opacity: .6; } 100% { opacity: 0; transform: translateX(-110%) skewX(-12deg); } }
@keyframes home-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes home-scroll-hint { 0%,100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
@keyframes home-copy-arrive { from { opacity: .65; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media(min-width:1700px) {
  .home-intro { padding-top: 128px; padding-bottom: 90px; }
  .home-description { font-size: 16px; }
  .home-detail { width: 315px; bottom: 180px; }
  .home-detail-title { font-size: 35px; }
  .home-scenes { width: 760px; gap: 46px; }
}
@media(min-width:761px) and (max-width:1180px) {
  .home-hero { min-height: 720px; }
  .home-intro { width: 73%; padding-top: 118px; }
  .home-hero h1 { font-size: 8.1vw; }
  .home-detail { right: 25px; width: 220px; padding: 18px; bottom: 150px; }
  .home-detail-title { font-size: 27px; }
  .home-detail-note { font-size: 9px; }
  .home-actions { gap: 18px; }
  .home-hero .home-primary { padding-inline: 20px; gap: 22px; }
  .home-call { font-size: 11px; }
  .home-scenes { width: 72%; gap: 19px; }
  .home-scene-button { gap: 9px; }
  .home-scene-name { font-size: 10px; }
  .home-scroll { gap: 12px; font-size: 9px; }
}
@media(max-width:950px) and (min-width:761px) {
  .home-detail { bottom: 142px; width: 198px; }
  .home-detail-top { font-size: 7px; gap: 8px; }
  .home-detail-title { font-size: 25px; }
  .home-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
  .home-hero h1 { font-size: 8.6vw; }
  .home-description { font-size: 14px; }
}
@media(max-width:760px) {
  .home-hero { --home-copy-left: max(14px,calc(var(--pad) - 8px)); min-height: 0; display: block; }
  .home-gallery { inset: 0 0 auto; height: 342px; }
  .home-scene .home-image { object-position: 57% 51%; }
  .home-scene[data-home-scene="1"] .home-image { object-position: 50% 35%; }
  .home-scene[data-home-scene="2"] .home-image { object-position: 50% 30%; }
  .home-shade { height: 345px; inset: 0 0 auto; background: linear-gradient(180deg,#061a237d 0%,#061a2308 26%,#061a2320 43%,#061a23bc 76%,#061a23 100%); }
  .home-location { top: 20px; left: var(--home-copy-left); font-size: 9px; letter-spacing: .1em; gap: 9px; text-shadow: 0 1px 8px #000; }
  .home-intro { width: 100%; padding: 261px var(--pad) 29px var(--home-copy-left); }
  .home-kicker { font-size: 9px; letter-spacing: .16em; margin-bottom: 17px; gap: 9px; }
  .home-kicker > span { font-size: 15px; }
  .home-hero h1 { font-size: clamp(47px,13.6vw,88px); line-height: 1.02; margin-bottom: 23px; }
  .home-hero h1 em { font-size: 1.015em; }
  .home-description { font-size: 13px; line-height: 1.85; max-width: 470px; }
  .home-actions { gap: 17px; margin-top: 24px; align-items: center; }
  .home-hero .home-primary { min-height: 52px; padding: 14px 18px; font-size: 12px; gap: 21px; }
  .home-call { font-size: 11px; padding-block: 7px; gap: 7px; }
  .home-call svg { width: 14px; height: 14px; }
  .home-reassurance { font-size: 9px; margin-top: 18px; }
  .home-detail { top: 143px; right: var(--pad); bottom: auto; width: 206px; padding: 13px 16px 15px; background: #08202ae8; transform: perspective(900px) rotateY(-4deg); }
  .home-detail-top { font-size: 6px; gap: 8px; }
  .home-detail-star { font-size: 17px; }
  .home-detail-top svg { width: 15px; height: 15px; }
  .home-detail-title { margin-top: 8px; font-size: 23px; }
  .home-detail-note { margin-top: 6px; font-size: 8px; line-height: 1.4; }
  .home-bottom { margin-inline: var(--pad); padding: 15px 0 13px; gap: 0; display: block; }
  .home-scenes { width: 100%; gap: 18px; }
  .home-scene-button { min-height: 48px; flex-wrap: wrap; gap: 0 7px; align-content: center; padding: 5px 0 12px; }
  .home-scene-number { font-size: 9px; line-height: 1.6; }
  .home-scene-name { font-size: 9px; }
  .home-scene-button svg { display: none; }
  .home-scroll { display: none; }
  .home-meta { padding-bottom: 10px; }
  .home-meta small { font-size: 7px; }
  .home-meta #motion-toggle { font-size: 8px; min-height: 34px; }
}
@media(max-width:390px) {
  .home-intro { padding-top: 246px; }
  .home-gallery { height: 321px; }
  .home-shade { height: 324px; }
  .home-detail { top: 127px; width: 193px; }
  .home-hero h1 { font-size: 13.4vw; }
  .home-actions { flex-direction: column; align-items: flex-start; gap: 10px; }
  .home-scenes { gap: 13px; }
  .home-scene-number { flex: 1 1 100%; }
  .home-scene-name { font-size: 9px; }
}
html[data-motion=paused] .home-hero * { animation-play-state: paused !important; }
.home-hero[data-home-suspended] :is(.home-image,.home-progress i,.home-scroll svg) { animation-play-state: paused !important; }
html[data-motion=paused] .home-hero.is-changing .home-sheen { display: none; }
html[data-motion=paused] .home-scene { transition: none; }
@media(prefers-reduced-motion:reduce) {
  .home-hero *, .home-hero *::before, .home-hero *::after { animation: none !important; transition: none !important; }
  .home-sheen { display: none; }
  .home-scene .home-image { transform: none; }
  .home-detail { transform: none; }
  .home-scene-button[aria-pressed="true"] .home-progress i { transform: scaleX(1); }
}
