:root{
  --color-canvas:#f6f3ec;
  --color-surface:#ffffff;
  --color-surface-soft:#efe9dd;
  --color-ink:#1c2129;
  --color-ink-soft:#54596a;
  --color-ink-faint:#8a8f9c;
  --color-primary:#1e3a5f;
  --color-primary-dark:#122841;
  --color-primary-tint:#e4ebf2;
  --color-accent:#b35c2e;
  --color-accent-dark:#8f4722;
  --color-accent-tint:#f3ddc9;
  --color-line:#e2dcce;
  --shadow-1:0 1px 2px rgba(28,33,41,.06), 0 2px 6px rgba(28,33,41,.05);
  --shadow-2:0 4px 10px rgba(28,33,41,.08), 0 14px 32px rgba(28,33,41,.10);
  --shadow-3:0 10px 24px rgba(28,33,41,.14), 0 28px 56px rgba(28,33,41,.18);
  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;
  --gap:1.5rem;
  --container-max:1240px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:var(--color-canvas);
  color:var(--color-ink);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;color:var(--color-primary-dark);margin:0 0 .6em}
p{margin:0 0 1em}
button{font-family:inherit;cursor:pointer;border:none;background:none}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

.court{max-width:var(--container-max);margin:0 auto;padding:0 1.5rem;width:100%}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.85rem 1.6rem;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;
  min-height:48px;transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
  box-shadow:var(--shadow-1);
}
.btn--accent{background:var(--color-accent);color:#fff}
.btn--accent:hover{background:var(--color-accent-dark);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.btn--ghost{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-line)}
.btn--ghost:hover{background:var(--color-primary-tint);transform:translateY(-2px)}
.btn--lg{padding:1rem 2rem;font-size:1rem}


.bridge{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1.15rem 0;
  transition:background-color .4s ease, box-shadow .4s ease, padding .4s ease;
}
.bridge__inner{max-width:var(--container-max);margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.bridge__brand{display:flex;align-items:center;gap:.6rem;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.2rem;color:#fff;transition:color .3s ease}
.bridge__brand-mark{color:var(--color-accent);display:flex}
body.has-stage .bridge:not(.bridge--solid) .bridge__brand{color:#fff}
.bridge--solid-page.bridge{background:rgba(246,243,236,.97);box-shadow:var(--shadow-2);backdrop-filter:blur(10px)}
.bridge--solid-page .bridge__brand{color:var(--color-primary-dark)}
.bridge--solid-page .bridge__link{color:var(--color-ink-soft)}
.bridge--solid-page .bridge__toggle{color:var(--color-ink)}

.bridge__links{display:none;gap:2rem;align-items:center}
.bridge__link{position:relative;font-weight:500;font-size:.95rem;color:#fff;padding:.3rem 0;transition:color .3s ease}
.bridge__link::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--color-accent);transition:width .3s ease}
.bridge__link:hover::after{width:100%}
body.has-stage .bridge:not(.bridge--solid) .bridge__link{color:#fff}
.bridge.bridge--solid .bridge__link{color:var(--color-ink-soft)}
.bridge.bridge--solid .bridge__brand{color:var(--color-primary-dark)}
.bridge.bridge--solid{background:rgba(246,243,236,.97);box-shadow:var(--shadow-2);backdrop-filter:blur(10px);padding:.8rem 0}

.bridge__actions{display:flex;align-items:center;gap:.9rem}
.bridge__cta{display:none}
.bridge__toggle{
  width:46px;height:46px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.2rem;transition:background-color .25s ease, color .25s ease;
}
body.has-stage .bridge:not(.bridge--solid) .bridge__toggle{color:#fff}
.bridge.bridge--solid .bridge__toggle,.bridge--solid-page .bridge__toggle{color:var(--color-ink)}
.bridge__toggle:hover{background:rgba(0,0,0,.06)}


.drawer{
  max-height:0;overflow:hidden;transition:max-height .4s ease;
  background:var(--color-surface);
}
.drawer.drawer--open{max-height:420px;box-shadow:var(--shadow-2)}
.drawer__links{display:flex;flex-direction:column;padding:.5rem 1.5rem 1.25rem;gap:.2rem}
.drawer__link{padding:.9rem .25rem;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--color-ink);border-bottom:1px solid var(--color-line)}
.drawer__cta{margin-top:.75rem;width:100%}

@media (min-width:900px){
  .bridge__links{display:flex}
  .bridge__cta{display:inline-flex}
  .bridge__toggle{display:none}
  .drawer{display:none}
}


.stage{position:relative;min-height:92vh;display:flex;align-items:center;color:#fff;overflow:hidden}
.stage__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.stage__scrim{position:absolute;inset:0;background:linear-gradient(115deg, rgba(18,40,65,.92) 20%, rgba(18,40,65,.72) 55%, rgba(18,40,65,.4) 100%);z-index:1}
.stage__inner{position:relative;z-index:2;padding:9rem 0 4rem;display:grid;grid-template-columns:1fr;gap:2.5rem;width:100%}
.stage__eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:600;color:var(--color-accent-tint);margin-bottom:1rem}
.stage__title{font-size:clamp(2.5rem,5vw + 1rem,4.6rem);line-height:1.08;margin-bottom:1.2rem;color:var(--color-surface);}
.stage__lead{font-size:1.1rem;color:rgba(255,255,255,.86);max-width:52ch;margin-bottom:1.8rem}
.stage__actions{display:flex;flex-wrap:wrap;gap:1rem}
.stage__widgets{display:grid;grid-template-columns:1fr;gap:1.1rem;align-self:end}
.stage__widget{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);border-radius:var(--radius-lg);padding:1.5rem;
  box-shadow:var(--shadow-2);transition:transform .3s ease, box-shadow .3s ease;
}
.stage__widget:hover{transform:translateY(-4px);box-shadow:var(--shadow-3)}
.stage__widget i{font-size:1.5rem;color:var(--color-accent);margin-bottom:.6rem;display:block}
.stage__widget h3{color:#fff;font-size:1.05rem;margin-bottom:.4rem}
.stage__widget p{color:rgba(255,255,255,.78);font-size:.9rem;margin:0}
.stage__widget--wide{grid-column:1 / -1}

@media (min-width:960px){
  .stage__inner{grid-template-columns:1.35fr 1fr;align-items:center}
  .stage__widgets{grid-template-columns:1fr 1fr}
}


.stage--compact{min-height:44vh}
.stage--solid{background:var(--color-primary);color:#fff}
.stage--solid::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%, rgba(179,92,46,.35), transparent 55%)}
.stage__inner--compact{position:relative;z-index:2;padding:9rem 0 3rem;max-width:820px}
.stage__inner--compact .stage__lead{max-width:60ch}


.gallery{padding:5.5rem 0;container-type:inline-size;container-name:gallery}
.gallery__head{max-width:760px;margin-bottom:3rem}
.gallery__eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:600;color:var(--color-accent-dark);margin-bottom:.6rem}
.gallery__intro{color:var(--color-ink-soft);font-size:1.05rem}
.gallery h2{font-size:clamp(1.9rem,2.5vw + 1rem,2.9rem)}

.gallery__grid{
  display:grid;grid-template-columns:1fr;gap:var(--gap);
  grid-auto-rows:240px;
}
.gallery__cell{
  position:relative;background:var(--color-surface);border:1px solid var(--color-line);
  border-radius:var(--radius-lg);padding:1.8rem;box-shadow:var(--shadow-1);
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease;
}
.gallery__cell:hover{transform:translateY(-6px);box-shadow:var(--shadow-3)}
.gallery__cell-icon{font-size:1.6rem;color:var(--color-accent);margin-bottom:.7rem}
.gallery__cell-title{font-size:1.15rem;margin-bottom:.5rem}
.gallery__cell-text{color:var(--color-ink-soft);font-size:.95rem;margin:0}
.gallery__cell-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.gallery__cell-img + .gallery__cell-body{position:relative;z-index:1;background:linear-gradient(0deg, rgba(18,40,65,.92), rgba(18,40,65,.55) 65%, transparent);margin:-1.8rem;padding:1.8rem;color:#fff}
.gallery__cell:has(.gallery__cell-img) .gallery__cell-body h3,
.gallery__cell:has(.gallery__cell-img) .gallery__cell-body p{color:#fff}
.gallery__cell--xl{grid-row:span 2}
.gallery__cell--wide{grid-column:span 1}
.spotlight.gallery__cell{border-color:var(--color-accent-tint)}

@container gallery (min-width:700px){
  .gallery__grid{grid-template-columns:repeat(2,1fr)}
  .gallery__cell--xl{grid-column:span 2}
}
@container gallery (min-width:1000px){
  .gallery__grid{grid-template-columns:repeat(4,1fr)}
  .gallery__cell--xl{grid-column:span 2;grid-row:span 2}
  .gallery__cell--wide{grid-column:span 2}
}
.gallery__grid--faq{grid-auto-rows:auto}
.gallery__grid--faq .gallery__cell{grid-row:auto !important}
.gallery__grid--contact{grid-auto-rows:auto}
.gallery__grid--contact .gallery__cell{justify-content:flex-start;text-align:left}
.gallery__grid--compare{grid-auto-rows:auto}
.gallery__grid--compare .gallery__cell{justify-content:flex-start}


.shelf{padding:5.5rem 0;background:var(--color-surface-soft);container-type:inline-size;container-name:shelf}
.shelf__head{max-width:700px;margin-bottom:3rem}
.shelf__track{display:flex;flex-direction:column;gap:1.5rem}
.shelf__track--column{gap:1.5rem}
.shelf__item{
  background:var(--color-surface);border-radius:var(--radius-lg);padding:2rem;
  box-shadow:var(--shadow-1);border:1px solid var(--color-line);
  transition:transform .3s ease, box-shadow .3s ease;
}
.shelf__item:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.shelf__item-index{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:50%;background:var(--color-accent-tint);color:var(--color-accent-dark);
  font-weight:800;font-family:'Plus Jakarta Sans',sans-serif;margin-bottom:1rem;font-size:.95rem;
}
.shelf__item-title{font-size:1.1rem;margin-bottom:.5rem}
.shelf__item-text{color:var(--color-ink-soft);font-size:.95rem;margin:0}
.shelf__item--wide{display:block}

@container shelf (min-width:780px){
  .shelf--process .shelf__track{flex-direction:row}
  .shelf--process .shelf__item{flex:1}
  .shelf--materials .shelf__track{flex-direction:row}
  .shelf--materials .shelf__item{flex:1}
}


.pullquote{background:var(--color-primary);color:#fff;padding:6rem 0;position:relative;overflow:hidden}
.pullquote::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 10% 20%, rgba(179,92,46,.28), transparent 55%)}
.pullquote__inner{position:relative;z-index:1;max-width:820px;text-align:center}
.pullquote__mark{font-family:'Plus Jakarta Sans',sans-serif;font-size:6rem;line-height:1;color:var(--color-accent);display:block;margin-bottom:-1.5rem}
.pullquote__text{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-style:italic;font-size:clamp(1.4rem,2vw + 1rem,2.1rem);line-height:1.4;margin-bottom:1.2rem}
.pullquote__attr{color:rgba(255,255,255,.7);font-size:.95rem;font-weight:600}


.showcase{padding:5.5rem 0}
.showcase .swiper{padding-bottom:3rem}
.showcase__slide{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);border:1px solid var(--color-line)}
.showcase__slide img{width:100%;height:260px;object-fit:cover}
.showcase__slide p{padding:1.2rem 1.4rem;margin:0;color:var(--color-ink-soft);font-size:.95rem}
.swiper-pagination-bullet{background:var(--color-primary);opacity:.35}
.swiper-pagination-bullet-active{background:var(--color-accent);opacity:1}
.swiper-button-next,.swiper-button-prev{color:var(--color-primary)}


.plaza{background:var(--color-ink);color:#fff;padding:5.5rem 0}
.plaza__inner{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}
.plaza__text h2{color:#fff;font-size:clamp(1.9rem,2.5vw + 1rem,2.7rem)}
.plaza__text p{color:rgba(255,255,255,.78);max-width:48ch}
.plaza__action{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}
.plaza__note{color:rgba(255,255,255,.6);font-size:.85rem;margin:0}
@media (min-width:860px){.plaza__inner{grid-template-columns:1.3fr 1fr}.plaza__action{align-items:flex-end;text-align:right}}


.split{padding:5.5rem 0}
.split--reverse .split__inner{direction:rtl}
.split--reverse .split__inner > *{direction:ltr}
.split__inner{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}
.split__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-2);width:100%;height:100%;object-fit:cover;min-height:260px}
.split__media--map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2);min-height:320px}
.split__copy h2{font-size:clamp(1.8rem,2.5vw + 1rem,2.5rem)}
@media (min-width:900px){.split__inner{grid-template-columns:1fr 1fr}}


.ledger{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-1)}
.ledger__row{display:grid;grid-template-columns:1fr;gap:1.2rem;margin-bottom:1.2rem}
.ledger__field{display:flex;flex-direction:column;gap:.4rem}
.ledger__field--full{margin-bottom:1.2rem}
.ledger label{font-weight:600;font-size:.9rem;color:var(--color-primary-dark)}
.ledger input,.ledger textarea{
  border:1.5px solid var(--color-line);border-radius:var(--radius-sm);padding:.85rem 1rem;
  font-family:inherit;font-size:.95rem;background:var(--color-canvas);color:var(--color-ink);
  transition:border-color .25s ease, box-shadow .25s ease;min-height:48px;
}
.ledger textarea{min-height:120px;resize:vertical}
.ledger input:focus,.ledger textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-tint)}
.ledger__checkbox{display:flex;align-items:flex-start;gap:.7rem;font-size:.9rem;color:var(--color-ink-soft);margin-bottom:1.4rem;cursor:pointer}
.ledger__checkbox input{width:20px;height:20px;min-height:auto;flex-shrink:0;margin-top:.15rem}
.ledger__submit{width:100%}
.ledger__note{font-size:.8rem;color:var(--color-ink-faint);margin-top:.8rem}
.ledger input.invalid,.ledger textarea.invalid{border-color:#b23a3a;box-shadow:0 0 0 3px rgba(178,58,58,.15)}
@media (min-width:640px){.ledger__row{grid-template-columns:1fr 1fr}}


.harbor{background:var(--color-primary-dark);color:rgba(255,255,255,.82);padding:4.5rem 0 0}
.harbor__grid{display:grid;grid-template-columns:1fr;gap:2.5rem;padding-bottom:3rem}
.harbor__col{display:flex;flex-direction:column;gap:.7rem}
.harbor__col h4{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}
.harbor__col a{color:rgba(255,255,255,.72);font-size:.9rem;transition:color .25s ease}
.harbor__col a:hover{color:var(--color-accent-tint)}
.harbor__brand{color:#fff;margin-bottom:.4rem}
.harbor__col p{font-size:.85rem;margin:0}
.harbor__cookie-link{color:rgba(255,255,255,.72);font-size:.9rem;text-align:left;padding:0;transition:color .25s ease}
.harbor__cookie-link:hover{color:var(--color-accent-tint)}
.harbor__bottom{border-top:1px solid rgba(255,255,255,.12);padding:1.5rem 0;font-size:.8rem;color:rgba(255,255,255,.5)}
@media (min-width:720px){.harbor__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}


.legal-head{background:var(--color-primary);color:#fff;padding:8.5rem 0 3rem}
.legal-head h1{color:#fff;font-size:clamp(2rem,3vw + 1rem,3rem)}
.legal-head p{color:rgba(255,255,255,.8);max-width:70ch}
.legal{padding:4rem 0 6rem}
.scroll{display:flex;flex-direction:column;gap:2.4rem;max-width:820px}
.scroll__section h2{font-size:1.35rem;margin-bottom:.7rem}
.scroll__section p{color:var(--color-ink-soft)}
.scroll__table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}
.scroll__table th,.scroll__table td{border:1px solid var(--color-line);padding:.8rem 1rem;text-align:left}
.scroll__table th{background:var(--color-surface-soft);color:var(--color-primary-dark)}


.thanks{min-height:70vh;display:flex;align-items:center;padding:8.5rem 0 5rem;background:radial-gradient(circle at 20% 20%, var(--color-accent-tint) 0%, var(--color-canvas) 55%)}
.thanks__inner{display:flex;justify-content:center}
.spotlight--thanks{
  background:var(--color-surface);border-radius:var(--radius-xl);padding:3.5rem 2.5rem;
  text-align:center;max-width:520px;box-shadow:var(--shadow-3);border:1px solid var(--color-line);
}
.spotlight__icon{font-size:3.2rem;color:var(--color-accent);margin-bottom:1rem}
.spotlight--thanks h1{font-size:1.9rem}
.spotlight--thanks p{color:var(--color-ink-soft);margin-bottom:1.6rem}


.stage-curtain{
  position:fixed;inset:0;z-index:1000;background:rgba(18,22,29,.6);
  display:flex;align-items:center;justify-content:center;padding:1.5rem;
  backdrop-filter:blur(4px);
}
.stage-curtain[hidden]{display:none}
.spotlight--consent{
  background:var(--color-surface);border-radius:var(--radius-lg);padding:2.2rem;
  max-width:520px;width:100%;box-shadow:var(--shadow-3);max-height:90vh;overflow-y:auto;
}
.spotlight--consent h2{font-size:1.4rem}
.spotlight--consent > p{color:var(--color-ink-soft);font-size:.92rem}
.spotlight__toggles{display:flex;flex-direction:column;gap:.9rem;margin:1.4rem 0}
.spotlight__toggle{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 1rem;border:1px solid var(--color-line);border-radius:var(--radius-sm);
  font-size:.9rem;font-weight:600;color:var(--color-primary-dark);cursor:pointer;
}
.spotlight__toggle small{display:block;font-weight:400;color:var(--color-ink-soft);font-size:.78rem;margin-top:.2rem}
.spotlight__toggle input{width:20px;height:20px;flex-shrink:0}
.spotlight__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.spotlight__actions .btn{flex:1;min-width:140px}


.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.gallery__cell,.shelf__item,.stage__widget{animation:none}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}