/* Heavy automotive type, a consistent photo grid, and scroll-led atmosphere. */
@font-face {
  font-family: "Barlow Condensed";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/barlow-condensed-black.woff2") format("woff2");
}

:root { --md-font-heavy: "Barlow Condensed", "Arial Narrow", Impact, sans-serif; }
html { scrollbar-gutter: stable; }
html.gallery-open { overflow: hidden; }
body { font-weight: 400; }
h1, h2, .tier h3, .nav__logo, .terminal-title, .book-panel > h3 {
  font-family: var(--md-font-heavy);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -.015em;
}
h2 { font-size: clamp(54px, 6.4vw, 86px); line-height: .94; }
.nav__logo { font-size: 29px; letter-spacing: -.5px; }
.nav__logo small { font-size: 8px; font-weight: 500; letter-spacing: 1.8px; }
.nav { transition: background .3s, border-color .3s; }
.nav.is-scrolled { background: #060b0ff5; border-color: #78e3ef36; }
.nav__links { gap: 28px; }
.nav__links a { font-size: 13px; font-weight: 600; }
.nav__links .nav-book { border-radius: 5px; border-color: #75dce64a; }
.nav__links .nav-book:hover { background: #17353d; color: #ecfcff; }
.nav__links a:not(.nav-book) { position: relative; }
.nav__links a:not(.nav-book)::after {
  content: ""; position: absolute; inset: auto 0 3px; height: 2px;
  background: #6de4ee; transform: scaleX(0); transform-origin: left;
  transition: transform .35s;
}
.nav__links a[aria-current]:not(.nav-book)::after { transform: scaleX(1); }
/* Light lives behind the content; photographs never share its moving layers. */
.hero {
  padding-top: 54px;
  background: radial-gradient(ellipse at 90% 25%, #123f5166, transparent 60%),
    radial-gradient(ellipse at 12% 100%, #14616a45, transparent 65%), #060b10;
}
.hero::before {
  inset: -12%; opacity: .85; background-size: auto; mask-image: none;
  background: radial-gradient(ellipse at 75% 55%, #40dce02c, transparent 44%),
    conic-gradient(from 220deg at 75% 65%, transparent, #518ddd18 35deg, transparent 85deg);
  transform: translateY(var(--ambient-shift, 0px));
}
.section[data-scene], .reviews-section, footer { isolation: isolate; }
.section[data-scene]::after, .reviews-section::after, footer::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse at 95% 28%, #2988b320, transparent 54%),
    radial-gradient(ellipse at 2% 78%, #30cab61a, transparent 48%);
  opacity: var(--ambient-opacity, .65);
}
#gallery { background: linear-gradient(155deg, #071018, #080d12 50%, #0a161c); }
.shop-section { background: linear-gradient(120deg, #09191e, #080d13 65%); }
.services.g-grid, .booking-section.g-grid {
  background: radial-gradient(ellipse at 20% 15%, #18536833, transparent 65%),
    linear-gradient(155deg, #091218, #080c11 65%);
}
footer { background: radial-gradient(ellipse at 50% 100%, #19556955, transparent 70%), #060b10; }
.hero h1 em, .footer-top h2 em {
  background: linear-gradient(110deg, #b0f8ef, #67dbe7 55%, #6aabe1);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-grid { grid-template-columns: 1fr 1fr; gap: 46px; }
.hero h1 { font-size: clamp(58px, 6.8vw, 96px); line-height: .92; letter-spacing: -.025em; }
.hero h1 > span, .hero h1 > em { display: block; }
.hero h1 > em { margin-top: 8px; }
.hero .eyebrow { font-size: 10px; letter-spacing: 1.8px; margin-bottom: 28px; }
.hero-lead { font-size: 16px; line-height: 1.8; max-width: 410px; color: #b1c2cf; }
.hero-frame { border-radius: 14px; transform: none; }
.hero-frame > img { aspect-ratio: auto; height: auto; object-fit: contain; }
.hero-frame figcaption { position: static; padding: 17px 20px; background: linear-gradient(110deg, #102731, #0a1219); }
.frame-top { padding-block: 15px; }
.hero-foot { margin-top: 38px; }
.btn { font-weight: 700; border-radius: 5px; text-transform: uppercase; letter-spacing: .035em; font-size: 12px; }
.tier, .terminal {
  border-radius: 0;
  clip-path: polygon(13px 0, 100% 0, 100% calc(100% - 13px), calc(100% - 13px) 100%, 0 100%, 0 13px);
  box-shadow: inset 0 0 0 1px #a6e3f023;
}
.hero-frame { box-shadow: 0 28px 70px #0005, 0 0 85px #4ee3ed14; }
.btn-cyan { background: linear-gradient(115deg, #b4f6eb, #6bdfed 65%, #64bee5); box-shadow: 0 5px 30px #40cfe21a; }
.btn-cyan:hover { transform: none; box-shadow: 0 7px 36px #40cfe233; }
.tier, .book-panel { background: linear-gradient(135deg, #18344077, #0c151c 55%); }
.tier:hover, .book-panel:focus-within { border-color: #80dce871; }
.eyebrow { font-size: 10px; font-weight: 500; }
.section-head { gap: 46px; margin-bottom: 44px; }
.section-head > p { font-size: 15px; color: #a8bfce; }
.section-note { color: #9cb0bd; }
.section[data-scene], .reviews-section[data-scene] { position: relative; }
.section[data-scene]::before, .reviews-section[data-scene]::before {
  content: ""; position: absolute; inset: 0 auto auto 0; width: 100%; height: 1px;
  background: linear-gradient(90deg, transparent, #5bdbea80 25%, #5bdbea18 85%, transparent);
  transform: scaleX(var(--scene-line, .2)); transform-origin: left; pointer-events: none;
}
.finish-strip { overflow: hidden; padding: 32px 0 38px; background: #080d11; border-bottom: 1px solid #74dce51f; }
.finish-track {
  display: flex; align-items: center; gap: 38px; width: max-content; padding-inline: 5vw;
  font: 900 clamp(62px, 9vw, 124px)/1 var(--md-font-heavy); text-transform: uppercase;
  letter-spacing: -.02em; color: #c3ebee;
}
.finish-track b { color: #46b7ca; font: 400 .5em/1 var(--md-font-display); }
.outline-word { color: transparent; -webkit-text-stroke: 1px #719caa; }
.services { background-color: #080c10; }
.tier { padding: 30px; border-top-color: #7fcedc55; }
.tier-top { margin-bottom: 29px; }
.tier h3 { font-size: 43px; line-height: .98; margin-bottom: 23px; }
.tier > p { font-size: 14px; color: #adc0cc; }
.tier li { font-size: 12px; }
.tier-top .mono { color: #9db4c3; }
.tier-bottom > span { font-size: 11px; color: #9bb4c4; }

/* Reserved frames prevent layout shifts; contain preserves every supplied photo. */
.gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 22px; }
.gallery-item { display: flex; flex-direction: column; }
.gallery-item a { aspect-ratio: 1; flex: none; background: radial-gradient(ellipse at 50% 0, #1a3039, #080e13 80%); border-radius: 12px; isolation: isolate; }
.gallery-item img {
  position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto;
  object-fit: contain; object-position: center; filter: none; transition: none;
}
.gallery-item a::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 1px #b1e6f20a; background: linear-gradient(transparent 80%, #02090b40);
}
.gallery-item a:hover img { transform: none; filter: none; }
.gallery-item a:hover, .gallery-item a:focus-visible { border-color: #8ce7ef77; box-shadow: 0 8px 35px #36b3cc12; }
.gallery-item figcaption { display: block; padding: 15px 2px 0; }
.gallery-item figcaption strong { display: block; font-size: 14px; font-weight: 600; }
.gallery-item figcaption > span { display: block; font-size: 11px; margin-top: 5px; color: #8da8b9; }
.photo-open { z-index: 1; width: 36px; height: 36px; }
.shop-grid { gap: 65px; }
.shop-copy h2 { font-size: clamp(56px, 5.8vw, 78px); }
.shop-photo { border-radius: 14px; max-height: none; align-self: start; box-shadow: 0 20px 60px #0004; }
.shop-photo figcaption { position: static; padding: 18px 22px; background: linear-gradient(110deg, #14303a, #0b141b); }
.shop-photo img { aspect-ratio: auto; height: auto; filter: none; }
.process { position: relative; gap: 31px; }
.process::before {
  content: ""; position: absolute; left: 17px; top: 20px; bottom: 20px; width: 1px;
  background: linear-gradient(#5de2f1, #1e5261); transform: scaleY(var(--scene-line, .2));
  transform-origin: top; pointer-events: none;
}
.process li { position: relative; }
.process li > span { position: relative; background: #0a1720; box-shadow: 0 0 25px #3fc9db08; }
.process h3 { font-size: 16px; font-weight: 700; }
.process p { font-size: 13px; color: #a0b7c7; }
.reviews-section { padding-block: 96px; overflow: clip; background: radial-gradient(ellipse at 70% 100%, #0b303c44, transparent 65%), #070b10; }
.reviews-intro { max-width: 330px; font-size: 15px; color: #a8bfce; line-height: 1.8; }
.reviews-intro .quiet-link { margin-top: 12px; color: #b8e6ec; }
.review-carousel { position: relative; }
.review-stage { display: grid; gap: 24px; }
.review-card {
  position: relative; isolation: isolate; overflow: hidden; min-width: 0;
  min-height: 430px; padding: 0; border: 1px solid #a3e5ef2a; border-radius: 14px;
  background: #08131a; box-shadow: 0 22px 65px #0003;
}
.review-card::after {
  content: ""; position: absolute; pointer-events: none; inset: 0;
  border-radius: inherit; background: linear-gradient(120deg, #5ce0e908, transparent 40%);
  box-shadow: inset 0 1px #c6faff12;
}
.review-visual { position: absolute; z-index: -2; inset: 0 0 0 43%; overflow: hidden; }
.review-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 47%; filter: saturate(.65) brightness(.72); }
.review-visual::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, #08131a, #08131a4d 55%, #08131a22), linear-gradient(0deg, #08131adb, transparent 60%);
}
.review-visual > span { position: absolute; z-index: 1; bottom: 28px; right: 28px; font-size: 8px; color: #b1c8d1; }
.review-copy { min-height: inherit; padding: 48px 52px; width: 71%; display: flex; flex-direction: column; }
.review-meta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.review-stars { font-size: 20px; letter-spacing: 4px; line-height: 1; color: #f2c86f; text-shadow: 0 0 24px #ffca4b1c; }
.review-meta .mono { font-size: 9px; letter-spacing: 1.5px; color: #96b5c4; }
.review-card blockquote {
  margin: 34px 0 38px; font-size: clamp(24px, 2.75vw, 35px); font-weight: 500;
  line-height: 1.38; letter-spacing: -.035em; color: #f0f6f8; text-wrap: pretty;
}
.review-credit { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: auto; }
.review-author { display: flex; align-items: center; gap: 13px; }
.review-initials { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #6bc7dc0d; border: 1px solid #82cadf2e; font: 11px var(--md-font-mono); color: #bee7ef; }
.review-author strong { font-size: 14px; font-weight: 600; }
.review-author small { margin-top: 2px; font-size: 10px; color: #98adba; }
.review-credit > a { display: inline-flex; align-items: center; min-height: 44px; gap: 15px; color: #a6e8f0; font-size: 12px; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #8ddbdf50; }
.review-credit > a:hover { color: #fff; text-decoration-color: #8ddbdf; }
.reviews-ready .review-stage { gap: 0; touch-action: pan-y pinch-zoom; }
.reviews-ready .review-card {
  grid-area: 1 / 1; opacity: 0; visibility: hidden; pointer-events: none;
  transform: none;
  transition: opacity .4s ease, visibility 0s .4s;
}
.reviews-ready .review-card.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 1; transform: none; transition-delay: 0s; }
.review-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding-top: 25px; }
.review-controls { display: flex; align-items: center; gap: 12px; }
.review-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid #79c4d440; background: #0c1921; color: #bbeef3; font-size: 21px; transition: background .25s, border-color .25s; }
.review-arrow:hover { background: #1b3943; border-color: #8fdce7; }
.review-selectors { display: flex; gap: 2px; }
.review-selectors button { width: 46px; min-height: 46px; padding: 12px 5px; display: grid; place-items: center; border: 0; background: transparent; }
.review-selectors span { width: 100%; height: 3px; background: #3a5260; border-radius: 4px; transition: background .4s, box-shadow .4s; }
.review-selectors [aria-pressed="true"] span { background: #85e9f1; box-shadow: 0 0 15px #3acde638; }
.review-count { margin-left: 8px; color: #9ab5c2; font-size: 10px; }
.review-write { display: inline-flex; align-items: center; gap: 14px; min-height: 56px; color: #e4f4f8; font-size: 13px; font-weight: 600; }
.review-plus { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #88dce64a; border-radius: 50%; color: #8be6ee; font-size: 26px; font-weight: 400; transition: background .3s, color .3s; }
.review-write small { display: block; margin-top: 2px; color: #94aebd; font-size: 10px; font-weight: 400; }
.review-write > span:last-child { margin-left: 10px; color: #9adddf; }
.review-write:hover .review-plus { background: #82e5ee; color: #071218; }
.booking-section { background: radial-gradient(ellipse at 20% 65%, #124c6125, transparent 65%), #060a0e; }
.terminal-title { font-size: 34px; line-height: 1.1; letter-spacing: 0; }
.book-panel > h3 { font-size: 35px; letter-spacing: 0; }
.request-route { margin: 24px 0 28px; }
.request-route svg { display: block; width: 100%; height: auto; overflow: visible; }
.route-base { stroke: #275060; stroke-width: 1; stroke-dasharray: 3 6; }
.route-progress { stroke: #6de4f0; stroke-width: 1.4; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--scene-line, 0)); }
.route-node circle { fill: #08131b; stroke: #396c7e; }
.route-node path { stroke: #88dce9; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.request-route > div { display: flex; justify-content: space-between; margin-top: 6px; font-size: 10px; color: #9ab9c9; }
.form-group label { font-weight: 600; }
.small-note { max-width: 450px; }
.footer-top h2 { font-size: clamp(57px, 7vw, 94px); }
footer { position: relative; overflow: clip; }

/* These values change only while the associated section crosses the viewport. */
@media (prefers-reduced-motion: no-preference) and (min-width: 821px) {
  .motion-ready .hero-frame { transform: translateY(var(--hero-lift, 0px)) scale(var(--hero-scale, 1)); transform-origin: 50% 30%; }

}
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .finish-track { transform: translate3d(var(--ribbon-shift, 0px), 0, 0); }
}
@media (max-width: 1100px) {
  .hero-grid { gap: 30px; }
  .hero h1 { font-size: clamp(58px, 6.8vw, 80px); }
  .nav__links { gap: 22px; }
  .tier { padding: 25px; }
  .tier h3 { font-size: 37px; }
  .gallery { gap: 27px 17px; }
  .review-copy { padding: 38px; width: 76%; }
}
@media (max-width: 820px) {
  .hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .hero h1 { font-size: clamp(75px, 12.5vw, 110px); }
  .hero-copy { padding-top: 5px; }
  .hero-lead { max-width: 490px; }
  .hero-frame { max-width: 660px; }

  .nav__logo { font-size: 27px; }
  .nav__links { gap: 9px; }
  h2 { font-size: clamp(56px, 9vw, 76px); }
  .section-head > p { max-width: 300px; font-size: 14px; }
  .tier h3 { font-size: 40px; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-grid { gap: 30px; }
  .shop-copy h2 { font-size: 57px; }

  .booking-info .request-route { grid-column: 1 / -1; margin: 0 auto; width: min(440px, 100%); }
  .request-route + .booking-call { margin-top: 0; }
  .reviews-section { padding-block: 74px; }
  .reviews-intro { max-width: 270px; font-size: 14px; }
  .review-card { min-height: 400px; }
  .review-copy { padding: 34px; width: 82%; }
  .review-card blockquote { font-size: 28px; }
  .review-visual { inset-inline-start: 32%; }
  .review-visual > span { display: none; }
}
@media (max-width: 540px) {
  .hero { padding-top: 28px; }
  .hero h1 { font-size: clamp(44px, 13vw, 73px); letter-spacing: -.025em; }
  .hero .eyebrow { font-size: 9px; letter-spacing: 1px; margin-bottom: 24px; }
  .hero-lead { font-size: 15px; }

  .hero-actions { flex-wrap: wrap; gap: 14px 22px; }
  h2, .shop-copy h2 { font-size: clamp(49px, 11.8vw, 63px); letter-spacing: -.015em; }
  .section { padding-block: 66px; }
  .section-head { margin-bottom: 31px; }
  .section-head > p { max-width: 100%; margin-top: 22px; }
  .finish-strip { padding-block: 26px; }
  .finish-track { font-size: 64px; gap: 24px; padding-inline: 20px; }
  .tier h3 { font-size: 43px; }
  .gallery { grid-template-columns: 1fr; gap: 28px; }

  .gallery-item figcaption { padding-top: 12px; }
  .gallery-item figcaption strong { font-size: 14px; }
  .gallery-item figcaption > span { font-size: 11px; }

  .reviews-intro { max-width: 100%; margin-top: 23px; }
  .reviews-intro .quiet-link { margin-top: 7px; }
  .review-card { min-height: 432px; border-radius: 10px; }
  .review-copy { padding: 27px 24px; width: 100%; }
  .review-card blockquote { font-size: 26px; line-height: 1.4; margin: 28px 0 30px; }
  .review-meta { gap: 13px; }
  .review-stars { font-size: 18px; letter-spacing: 3px; }
  .review-meta .mono { font-size: 8px; letter-spacing: 1px; }
  .review-visual { inset: 0; opacity: .38; }
  .review-visual::after { background: linear-gradient(100deg, #08131af5, #08131aab 70%, #08131a66); }
  .review-credit { gap: 14px; }
  .review-credit > a { margin-left: 57px; }
  .review-toolbar { gap: 15px; justify-content: center; }
  .review-write { width: 100%; border-top: 1px solid #7fd6e51f; padding-top: 20px; justify-content: center; }

  .reviews-ready .review-card.is-active { transform: none; }
  .menu-ready .nav__links.is-open { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .nav__links a { justify-content: flex-start; padding-inline: 12px; font-size: 13px; border-radius: 5px; background: #10212b55; }
  .nav__links .nav-book { grid-column: 1 / -1; justify-content: space-between; padding-inline: 15px; }
  .nav__links a:not(.nav-book)::after { inset-inline: 12px; }
  .terminal-title, .book-panel > h3 { font-size: 34px; }
  .request-route { width: 100%; }
  .footer-top h2 { font-size: 58px; }
}

/* Definite modal tracks keep portrait photos and all controls inside the screen. */
dialog { width: min(1050px, calc(100% - 28px)); height: min(850px, 92dvh); max-height: 92dvh; overflow: hidden; }
dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.dialog-media { position: relative; min-height: 0; overflow: hidden; background: #03080c; }
#photo-status { position: absolute; inset: auto 16px 16px; margin: 0 auto; width: fit-content; max-width: calc(100% - 32px); padding: 10px 16px; border: 1px solid #81d6e640; border-radius: 8px; background: #071018f5; color: #d9f3f8; font-size: 13px; text-align: center; }
#dialog-image { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.dialog-top, .dialog-bottom { flex-shrink: 0; padding-block: 12px; }
.dialog-bottom { min-height: 78px; }
#photo-caption { line-height: 1.5; }
@media (max-width: 540px) {
  dialog { height: 88dvh; max-height: 88dvh; border-radius: 12px; }
  .dialog-top, .dialog-bottom { padding: 10px 12px; }
  #photo-caption { font-size: 11px; }
}
.motion-toggle { min-height: 44px; padding: 9px 15px; border: 1px solid #83d7e43d; border-radius: 24px; background: #112631; color: #b9ebee; font: inherit; white-space: nowrap; }
.motion-toggle:hover { background: #1c3b46; }
.footer-base { flex-wrap: wrap; }
html.motion-paused { scroll-behavior: auto; }
.motion-paused .hero-frame, .motion-paused .finish-track, .motion-paused .hero::before { transform: none !important; }
.motion-paused .section[data-scene]::before, .motion-paused .reviews-section::before, .motion-paused .process::before { transform: none; }
.motion-paused .route-progress { stroke-dashoffset: 0; }
.motion-paused .progress-rail { display: none; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  .hero::before { transform: none; }
  .finish-track, .hero-copy, .hero-frame, .shop-photo img, .gallery-item a:hover img { transform: none !important; }
  .reviews-ready .review-card, .review-visual img { transform: none !important; }
  .section[data-scene]::before, .reviews-section[data-scene]::before, .process::before { transform: none; }
  .route-progress { stroke-dashoffset: 0; }
}
@media print {
  .finish-strip, .request-route, .review-controls, .review-visual { display: none !important; }
  .gallery-item img { position: static; }
  .reviews-ready .review-stage { display: block; }
  .reviews-ready .review-card { opacity: 1; visibility: visible; transform: none; min-height: 0; margin-bottom: 24px; }
  .review-copy { width: 100%; min-height: 0; padding: 24px; }
  .review-card blockquote { color: inherit; }
}
