@charset "utf-8";
/* ==========================================================================
   Casadella Concierge
   ========================================================================== */

@font-face { font-family: 'Bodoni Moda'; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/bodoni-moda-italic-400-1.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Bodoni Moda'; font-style: italic; font-weight: 400; font-display: swap; src: url(../fonts/bodoni-moda-italic-400-2.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Bodoni Moda'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/bodoni-moda-normal-400-3.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Bodoni Moda'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/bodoni-moda-normal-400-4.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Bodoni Moda'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/bodoni-moda-normal-500-5.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Bodoni Moda'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/bodoni-moda-normal-500-6.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: italic; font-weight: 300; font-display: swap; src: url(../fonts/jost-italic-300-7.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: italic; font-weight: 300; font-display: swap; src: url(../fonts/jost-italic-300-8.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url(../fonts/jost-normal-300-9.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url(../fonts/jost-normal-300-10.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/jost-normal-400-11.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/jost-normal-400-12.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/jost-normal-500-13.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/jost-normal-500-14.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* --------------------------------------------------------- tokens */
:root {
  --ink:#12100D;
  --pit:#0B0A08;
  --umber:#1C1712;
  --raise:#171310;
  --ivory:#EBE2D0;
  --bone:#C9BFAC;
  --mute:#B4A88F;
  --taupe:#8B7C67;
  --champagne:#C2A15F;
  --champagne-hi:#E4C98C;

  --hair: rgba(235,226,208,.10);
  --hair-soft: rgba(235,226,208,.06);
  --gold-line: rgba(194,161,95,.42);
  --gold-dim: rgba(194,161,95,.16);

  --gut: 0px;                                      /* set by inline script on wide screens */
  --seam: calc(var(--gut) + clamp(18px, 3.4vw, 88px));
  --padL: calc(var(--gut) + clamp(46px, 9.4vw, 150px));
  --padR: calc(var(--gut) + clamp(24px, 6.2vw, 110px));

  --ease: cubic-bezier(.22,.61,.36,1);
  --slow: cubic-bezier(.16,1,.3,1);
}

/* --------------------------------------------------------- reset */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
html.js { scroll-behavior:auto; }
body {
  background:var(--ink); color:var(--ivory);
  font-family:'Jost', system-ui, sans-serif; font-weight:300;
  font-size:clamp(15px, .55vw + 13px, 17px); line-height:1.75;
  overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img, video, canvas { display:block; max-width:100%; }
img, video { height:auto; }
ul, ol { list-style:none; }
a { color:inherit; text-decoration:none; }
button, input { font:inherit; color:inherit; background:none; border:0; }
button { cursor:pointer; }
h1, h2, h3 { font-weight:400; }
.serif { font-family:'Bodoni Moda', 'Times New Roman', serif; }
em { font-style:italic; }

::selection { background:var(--champagne); color:#141109; }
:focus-visible { outline:2px solid var(--champagne); outline-offset:4px; border-radius:2px; }

.sr, .skip {
  position:absolute; width:1px; height:1px; padding:0; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip:focus {
  position:fixed; top:14px; left:14px; z-index:400; width:auto; height:auto; clip:auto;
  background:var(--champagne); color:#141109; padding:12px 20px;
  font-size:12px; letter-spacing:.24em; text-transform:uppercase;
}

/* --------------------------------------------------------- shared */
.kicker {
  font-size:clamp(10px,.9vw,13px); letter-spacing:.4em; text-transform:uppercase;
  color:var(--taupe);
}
.kicker i { font-style:normal; color:var(--champagne); }

.lede { color:var(--bone); font-size:clamp(15px,.62vw + 13px,18px); line-height:1.8; }
.lede b { color:var(--ivory); font-weight:400; }

h1.serif { font-size:clamp(52px, 7.1vw, 108px); line-height:1.01; letter-spacing:.004em; }
h2.serif { font-size:clamp(34px, 4.1vw, 64px); line-height:1.08; letter-spacing:.004em; }
h1 em, h2 em, h3 em { color:var(--champagne); }

/* buttons */
.btn {
  position:relative; display:inline-block; overflow:hidden;
  background:var(--champagne); color:#141109;
  font-size:clamp(11px,.72vw,13px); letter-spacing:.26em; text-transform:uppercase; font-weight:500;
  padding:20px 34px 18px; white-space:nowrap; text-align:center;
  transition:color .45s var(--ease);
}
.btn span { position:relative; z-index:2; }
.btn::before {
  content:""; position:absolute; inset:0; background:var(--champagne-hi);
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--slow);
}
.btn:hover::before, .btn:focus-visible::before { transform:scaleX(1); }

.btn-ghost {
  background:none; color:var(--champagne);
  border:1px solid var(--gold-line); padding:17px 30px 15px;
}
.btn-ghost::before { background:var(--champagne); }
.btn-ghost:hover, .btn-ghost:focus-visible { color:#141109; }

/* --------------------------------------------------------- grain + vignette */
.grain {
  position:fixed; inset:-120px; z-index:300; pointer-events:none; opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.1s steps(4) infinite; will-change:transform;
}
@keyframes grain {
  0%   { transform:translate(0,0); }
  25%  { transform:translate(-14px,9px); }
  50%  { transform:translate(11px,-12px); }
  75%  { transform:translate(-9px,-7px); }
  100% { transform:translate(0,0); }
}
.vignette {
  position:fixed; inset:0; z-index:299; pointer-events:none;
  background:radial-gradient(130% 90% at 50% 45%, transparent 52%, rgba(0,0,0,.55) 100%);
}

/* --------------------------------------------------------- cursor */
.cursor { position:fixed; top:0; left:0; z-index:310; pointer-events:none; opacity:0; }
.cursor i { position:absolute; display:block; border-radius:50%; transform:translate(-50%,-50%); }
.cursor-ring {
  width:36px; height:36px; border:1px solid var(--gold-line);
  transition:width .35s var(--ease), height .35s var(--ease), border-color .35s var(--ease), background-color .35s var(--ease);
}
.cursor-dot { width:4px; height:4px; background:var(--champagne); }
.cursor.is-on .cursor-ring { width:66px; height:66px; border-color:var(--champagne); background:rgba(194,161,95,.09); }
.cursor.is-on .cursor-dot { opacity:0; }
@media (hover:none), (pointer:coarse) { .cursor { display:none; } }

/* --------------------------------------------------------- loader */
/* The two panels ARE the curtain: they sit behind the wordmark and split apart at
   the end, so the page is revealed through them. The loader itself stays transparent. */
.loader {
  position:fixed; inset:0; z-index:350; display:grid; place-items:center;
  background:transparent; overflow:hidden;
}
.loader.is-gone { display:none; }
html:not(.js) .loader { display:none; }        /* never trap the page when scripts are off */
.loader-inner { position:relative; z-index:2; text-align:center; padding:0 24px; }
.loader-mark {
  font-family:'Bodoni Moda', serif; font-size:clamp(26px,4.4vw,44px);
  letter-spacing:.36em; color:var(--ivory); text-indent:.36em;
}
.loader-mark span { color:var(--champagne); }
.loader-rule { width:min(320px,60vw); height:1px; margin:26px auto 0; background:rgba(235,226,208,.12); }
.loader-rule i { display:block; height:100%; width:0; background:var(--champagne); }
.loader-sub {
  margin-top:22px; font-size:11px; letter-spacing:.42em; text-transform:uppercase; color:var(--taupe);
}
.loader-panel { position:absolute; left:0; width:100%; height:50.5%; background:var(--pit); z-index:1; }
.loader-panel-t { top:0; }
.loader-panel-b { bottom:0; }

/* --------------------------------------------------------- seam */
.seam {
  position:fixed; top:0; bottom:0; left:var(--seam); width:1px; z-index:120; pointer-events:none;
  background:linear-gradient(to bottom, transparent 0, var(--gold-dim) 12%, var(--gold-dim) 88%, transparent 100%);
}
.seam-fill {
  position:absolute; inset:0; transform-origin:top; transform:scaleY(0);
  background:linear-gradient(to bottom, transparent 0, var(--champagne) 8%, var(--champagne) 92%, transparent 100%);
  box-shadow:0 0 12px rgba(194,161,95,.5);
}
@media (max-width:800px) { .seam { opacity:.55; } }

.notch { position:absolute; left:var(--seam); top:0; width:1px; height:1px; z-index:121; }
.hero .notch { top:clamp(96px,10vw,140px); }   /* clear of the header, and never clipped at y=0 */
.notch::before {
  content:""; position:absolute; left:-7px; top:0; width:15px; height:1px;
  background:var(--champagne); opacity:.85;
}
.notch::after {
  content:""; position:absolute; left:14px; top:-4px; width:9px; height:9px;
  border:1px solid var(--gold-line); transform:rotate(45deg);
}
.notch-end::after { background:var(--champagne); border-color:var(--champagne); }

/* --------------------------------------------------------- header */
.hdr {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:clamp(20px,2.4vw,40px) var(--padR) clamp(18px,2.1vw,34px) var(--padL);
  transition:padding .5s var(--ease), background-color .5s var(--ease), border-color .5s var(--ease), backdrop-filter .5s var(--ease);
  border-bottom:1px solid transparent;
}
.hdr.is-stuck {
  padding-top:14px; padding-bottom:12px;
  background:rgba(11,10,8,.82); backdrop-filter:blur(14px) saturate(120%);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  border-bottom-color:var(--hair-soft);
}
.hdr.is-hidden { transform:translateY(-102%); }
.hdr { transition-property:padding, background-color, border-color, backdrop-filter, transform; }

.wordmark { display:block; line-height:1; }
.wordmark-name {
  display:block; font-family:'Bodoni Moda', serif; font-weight:500;
  font-size:clamp(17px,1.7vw,27px); letter-spacing:.34em; color:var(--ivory); text-indent:.34em;
}
.wordmark-name .dot { color:var(--champagne); }
.wordmark-sub {
  display:block; margin-top:7px; font-size:clamp(8px,.7vw,11px);
  letter-spacing:.42em; text-transform:uppercase; color:var(--taupe); text-indent:.42em;
}

.nav { display:flex; gap:clamp(16px,2.3vw,42px); }
.nav a {
  position:relative; font-size:clamp(10px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--taupe); padding-bottom:5px;
  transition:color .4s var(--ease);
}
.nav a::after {
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--champagne); transform:scaleX(0); transform-origin:right;
  transition:transform .5s var(--slow);
}
.nav a:hover, .nav a.is-active { color:var(--ivory); }
.nav a:hover::after, .nav a.is-active::after { transform:scaleX(1); transform-origin:left; }

.tag {
  position:relative; overflow:hidden; flex:none;
  font-size:clamp(9px,.7vw,12px); letter-spacing:.3em; text-transform:uppercase;
  color:var(--champagne); border:1px solid var(--gold-line); padding:11px 20px 9px;
  transition:color .45s var(--ease);
}
.tag span { position:relative; z-index:2; }
.tag::before {
  content:""; position:absolute; inset:0; background:var(--champagne);
  transform:scaleY(0); transform-origin:bottom; transition:transform .5s var(--slow);
}
.tag:hover { color:#141109; }
.tag:hover::before { transform:scaleY(1); }

.burger { display:none; width:44px; height:44px; position:relative; flex:none; }
.burger i {
  position:absolute; left:11px; width:22px; height:1px; background:var(--ivory);
  transition:transform .45s var(--ease), opacity .3s;
}
.burger i:nth-child(1) { top:19px; }
.burger i:nth-child(2) { top:25px; }
.burger.is-open i:nth-child(1) { transform:translateY(3px) rotate(45deg); }
.burger.is-open i:nth-child(2) { transform:translateY(-3px) rotate(-45deg); }

/* --------------------------------------------------------- mobile menu */
.menu {
  position:fixed; inset:0; z-index:190; background:var(--pit);
  display:flex; flex-direction:column; justify-content:center; gap:40px;
  padding:110px var(--padR) 48px var(--padL);
  clip-path:inset(0 0 100% 0);
}
.menu[hidden] { display:none; }
.menu-nav { display:flex; flex-direction:column; gap:clamp(10px,2.4vw,20px); }
.menu-nav a {
  font-family:'Bodoni Moda', serif; font-size:clamp(28px,7.4vw,46px); line-height:1.14;
  color:var(--ivory); display:flex; align-items:baseline; gap:18px;
}
.menu-nav a em {
  font-family:'Jost', sans-serif; font-style:normal; font-size:12px;
  letter-spacing:.24em; color:var(--champagne);
}
.menu-foot { display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.menu-foot p { font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--taupe); }
.menu-foot i { font-style:normal; color:var(--champagne); }

/* --------------------------------------------------------- hero */
.hero {
  position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,40%);
  min-height:100svh; background:
    radial-gradient(1100px 620px at 0% 100%, rgba(28,23,18,.92), transparent 62%),
    radial-gradient(760px 420px at 12% 8%, rgba(194,161,95,.05), transparent 60%),
    var(--ink);
}
.hero-copy {
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(130px,12vw,180px) clamp(30px,4.6vw,90px) clamp(60px,7vw,100px) var(--padL);
}
.hero-copy .kicker { margin-bottom:clamp(20px,2.6vw,34px); }
.hero-lede { max-width:34em; margin-top:clamp(22px,2.8vw,38px); color:var(--bone);
  font-size:clamp(15px,.66vw + 13px,19px); line-height:1.78; }
.hero-lede b { color:var(--ivory); font-weight:400; }

.access { margin-top:clamp(34px,4.4vw,58px); max-width:660px; }
.access-row { display:flex; gap:clamp(16px,2vw,30px); align-items:flex-end; flex-wrap:wrap; }
/* min-width:0 lets the inputs shrink past their intrinsic size so the button stays on the row */
.field { flex:1 1 150px; min-width:0; position:relative; }
.field label {
  display:block; font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--taupe); margin-bottom:11px; transition:color .4s var(--ease);
}
.field input {
  width:100%; border-bottom:1px solid rgba(235,226,208,.3); padding:6px 2px 11px;
  font-family:'Bodoni Moda', serif; font-size:16px; color:var(--ivory);
  transition:border-color .4s var(--ease);
}
.field input::placeholder { color:#8d8271; font-style:italic; }
.field-line {
  position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--champagne);
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--slow);
}
.field input:focus { outline:none; }
.field input:focus ~ .field-line { transform:scaleX(1); }
.field input:focus + label, .field:focus-within label { color:var(--champagne); }
.field.is-bad input { border-bottom-color:#B4674A; }
.field.is-bad label { color:#B4674A; }
.access .btn { flex:0 0 auto; padding-inline:clamp(20px,2.2vw,34px); }
.access-note { margin-top:24px; font-size:13px; color:var(--taupe); max-width:46em; }
.access-note.is-good { color:var(--champagne); }
.access-note.is-bad { color:#C4805F; }

.hero-media { position:relative; overflow:hidden; }
.hero-media-inner { position:absolute; inset:-8% 0 -8% 0; }
.hero-media .v { width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.hero-scrim {
  position:absolute; inset:0;
  background:
    linear-gradient(to right, var(--ink) 0%, rgba(18,16,13,.55) 12%, transparent 34%),
    linear-gradient(to top, rgba(18,16,13,.75) 0%, transparent 34%);
}
.hero-cap {
  position:absolute; left:clamp(20px,2.4vw,40px); bottom:clamp(24px,3vw,42px); z-index:3;
  font-size:clamp(9px,.7vw,11px); letter-spacing:.34em; text-transform:uppercase;
  color:rgba(235,226,208,.75);
}
.scroll-cue {
  position:absolute; right:clamp(18px,2.2vw,36px); bottom:clamp(24px,3vw,42px); z-index:3;
  display:flex; align-items:center; gap:12px;
  font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:var(--taupe);
}
.scroll-cue i { display:block; width:52px; height:1px; background:rgba(235,226,208,.25); overflow:hidden; position:relative; }
.scroll-cue i::after {
  content:""; position:absolute; inset:0; background:var(--champagne);
  animation:cue 2.4s var(--ease) infinite;
}
@keyframes cue {
  0%   { transform:translateX(-100%); }
  55%  { transform:translateX(0); }
  100% { transform:translateX(100%); }
}

/* --------------------------------------------------------- marquee */
.marquee {
  position:relative; overflow:hidden; background:var(--pit);
  border-top:1px solid var(--gold-dim); border-bottom:1px solid var(--gold-dim);
  padding:clamp(16px,1.7vw,24px) 0;
}
.marquee-track { display:flex; width:max-content; will-change:transform; }
.marquee-set { display:flex; align-items:center; gap:clamp(22px,2.6vw,42px); padding-right:clamp(22px,2.6vw,42px); }
.marquee-set span {
  font-size:clamp(11px,.86vw,15px); letter-spacing:.28em; text-transform:uppercase;
  color:var(--taupe); white-space:nowrap;
}
.marquee-set span.it {
  font-family:'Bodoni Moda', serif; font-style:italic; text-transform:none;
  letter-spacing:.02em; font-size:clamp(15px,1.2vw,21px); color:var(--ivory);
}
.marquee-set i { font-style:normal; color:var(--champagne); font-size:9px; }

/* --------------------------------------------------------- sourcing */
.sourcing {
  position:relative; display:grid; grid-template-columns:1fr clamp(300px,34vw,600px);
  background:var(--pit); border-bottom:1px solid var(--hair-soft); overflow:hidden;
}
.sourcing-copy { padding:clamp(66px,7.4vw,110px) clamp(26px,3.4vw,70px) clamp(66px,7vw,100px) var(--padL); }
.sourcing-copy .lede { margin-top:clamp(18px,2vw,28px); max-width:40em; }
.markets { margin-top:clamp(30px,3.6vw,50px); display:flex; align-items:baseline; flex-wrap:wrap; gap:14px 24px; }
.markets-lead {
  font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--ivory);
}
.markets ul { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px 22px; }
.markets li {
  position:relative; font-size:clamp(11px,.85vw,14px); letter-spacing:.22em;
  text-transform:uppercase; color:var(--taupe); transition:color .4s var(--ease);
}
.markets li + li::before {
  content:"\25C6"; position:absolute; left:-15px; top:0; color:var(--champagne);
  font-size:8px; letter-spacing:0;
}
.markets li:hover { color:var(--ivory); }

.sourcing-media { position:relative; overflow:hidden; min-height:clamp(280px,34vw,560px); }
.sourcing-media .v { position:absolute; inset:-6%; width:112%; height:112%; object-fit:cover; }
.sourcing-scrim {
  position:absolute; inset:0;
  background:linear-gradient(to right, var(--pit) 0%, rgba(11,10,8,.72) 26%, rgba(11,10,8,.25) 62%, transparent 100%);
}

/* --------------------------------------------------------- the house */
.house { position:relative; padding:clamp(74px,8.6vw,132px) var(--padR) clamp(74px,8.6vw,130px) var(--padL);
  background:
    radial-gradient(900px 520px at 100% 0%, rgba(28,23,18,.85), transparent 58%), var(--ink); }
.house-head {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,360px);
  gap:clamp(24px,4vw,80px); align-items:end; margin-bottom:clamp(44px,5.4vw,84px);
}
.house-intro { color:var(--taupe); font-size:clamp(14px,.5vw + 12px,16px); line-height:1.8; }

.house-body { display:grid; grid-template-columns:minmax(0,1fr) clamp(300px,36vw,620px); gap:clamp(30px,4.6vw,90px); align-items:start; }
.steps { display:flex; flex-direction:column; }
.step {
  position:relative; padding:clamp(24px,2.7vw,38px) 0 clamp(24px,2.7vw,38px) clamp(48px,4.6vw,86px);
  border-top:1px solid var(--hair-soft); opacity:.34;
  transition:opacity .6s var(--ease);
}
.step:last-child { border-bottom:1px solid var(--hair-soft); }
.step.is-on { opacity:1; }
.step-no {
  position:absolute; left:0; top:clamp(26px,2.9vw,42px);
  font-size:clamp(11px,.8vw,13px); letter-spacing:.24em; color:var(--champagne);
}
.step-no::after {
  content:""; position:absolute; left:0; top:-9px; width:0; height:1px; background:var(--champagne);
  transition:width .7s var(--slow);
}
.step.is-on .step-no::after { width:clamp(30px,3.2vw,54px); }
.step h3 { font-size:clamp(22px,2.2vw,32px); line-height:1.16; }
.step p { margin-top:12px; color:var(--mute); font-size:clamp(14px,.5vw + 12px,16px); line-height:1.8; max-width:36em; }

.house-media { position:sticky; top:clamp(96px,11vw,148px); }
.house-frame {
  position:relative; overflow:hidden; aspect-ratio:4/5;
  background:var(--umber); border:1px solid var(--hair-soft);
}
.house-frame .hs {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.06); transition:opacity .9s var(--ease), transform 1.4s var(--slow);
}
.house-frame .hs.is-on { opacity:1; transform:scale(1); }
.house-frame-rule {
  position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--gold-dim);
}
.house-frame-rule::after {
  content:""; position:absolute; inset:0; background:var(--champagne);
  transform:scaleX(var(--p,0)); transform-origin:left; transition:transform .7s var(--slow);
}
.house-count {
  margin-top:18px; font-size:12px; letter-spacing:.3em; text-transform:uppercase; color:var(--taupe);
}
.house-count b { color:var(--champagne); font-weight:400; }
.house-count i { font-style:normal; opacity:.5; margin:0 4px; }

/* --------------------------------------------------------- lookbook */
.lookbook { position:relative; padding:clamp(74px,8.6vw,130px) var(--padR) clamp(80px,9vw,140px) var(--padL); }
.lb-head {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,340px);
  gap:clamp(24px,4vw,80px); align-items:end; margin-bottom:clamp(40px,5.4vw,72px);
}
.lb-note { text-align:right; }
.lb-note b {
  display:block; color:var(--ivory); font-weight:400; font-size:clamp(11px,.8vw,13px);
  letter-spacing:.28em; text-transform:uppercase; margin-bottom:12px;
}
.lb-note p { color:var(--taupe); font-size:clamp(14px,.5vw + 12px,16px); line-height:1.78; }

.lb-grid {
  display:grid; gap:clamp(20px,2.6vw,48px);
  grid-template-columns:repeat(2, minmax(0,1fr));
  grid-template-areas:
    "main a"
    "main b"
    "c    d";
}
.card:nth-child(1) { grid-area:main; }
.card:nth-child(2) { grid-area:a; }
.card:nth-child(3) { grid-area:b; }
.card:nth-child(4) { grid-area:c; }
.card:nth-child(5) { grid-area:d; }

.card-media {
  position:relative; overflow:hidden; background:var(--umber);
  clip-path:inset(0 0 100% 0);
}
.card-media > img, .card-media > .v {
  width:100%; height:100%; object-fit:cover; transform:scale(1.1);
  transition:transform 1.1s var(--slow), filter .7s var(--ease);
}
/* the main card spans two rows: let its media stretch to whatever those rows total,
   so the left column never ends short of the right one */
.card-main { display:flex; flex-direction:column; }
.card-main .card-media { flex:1 1 auto; min-height:clamp(420px,46vw,760px); }
.card:not(.card-main) .card-media { aspect-ratio:16/11; }

.card-hover {
  position:absolute; inset:0; display:grid; place-items:center; opacity:0;
  background:linear-gradient(to top, rgba(11,10,8,.78), rgba(11,10,8,.18));
  transition:opacity .55s var(--ease);
}
.card-hover i {
  font-style:normal; font-size:clamp(10px,.75vw,12px); letter-spacing:.3em; text-transform:uppercase;
  color:var(--ivory); border-bottom:1px solid var(--champagne); padding-bottom:7px;
  transform:translateY(10px); transition:transform .6s var(--slow);
}
.card:hover .card-media > img, .card:hover .card-media > .v { transform:scale(1.04); }
.card:hover .card-hover { opacity:1; }
.card:hover .card-hover i { transform:translateY(0); }

.cap {
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  margin-top:16px; border-top:1px solid var(--hair); padding-top:14px;
}
.cap .name { font-style:italic; font-size:clamp(16px,1.25vw,21px); color:var(--ivory); }
.card-main .cap .name { font-size:clamp(18px,1.5vw,25px); }
.cap .pq {
  font-size:clamp(9px,.68vw,11px); letter-spacing:.3em; text-transform:uppercase;
  color:var(--champagne); white-space:nowrap;
}

/* --------------------------------------------------------- dressing */
.dressing {
  position:relative; display:grid; grid-template-columns:clamp(280px,34vw,600px) 1fr;
  background:var(--umber); border-top:1px solid var(--gold-dim);
}
.dressing-media { position:relative; overflow:hidden; min-height:clamp(380px,50vw,780px); }
.dressing-media .v { position:absolute; inset:-6%; width:112%; height:112%; object-fit:cover; }
.dressing-scrim {
  position:absolute; inset:0;
  background:linear-gradient(to left, var(--umber) 0%, rgba(28,23,18,.5) 26%, transparent 62%);
}
.dressing-copy {
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(60px,7.6vw,116px) var(--padR) clamp(60px,7vw,106px) clamp(26px,4.4vw,96px);
}
.dressing-copy .lede { margin-top:clamp(18px,2vw,28px); max-width:38em; }
.dressing-facts { margin-top:clamp(32px,4vw,54px); display:grid; gap:1px; background:var(--hair-soft); border-block:1px solid var(--hair-soft); }
.dressing-facts li { background:var(--umber); padding:clamp(16px,1.8vw,24px) 0 clamp(16px,1.8vw,24px) clamp(18px,2vw,32px);
  position:relative; }
.dressing-facts li::before {
  content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--gold-line);
  transform:scaleY(0); transform-origin:top; transition:transform .8s var(--slow);
}
.dressing-facts li.is-in::before { transform:scaleY(1); }
.dressing-facts b {
  display:block; font-family:'Bodoni Moda', serif; font-style:italic; font-weight:400;
  font-size:clamp(17px,1.4vw,23px); color:var(--ivory);
}
.dressing-facts span { display:block; margin-top:5px; color:var(--mute); font-size:clamp(13px,.45vw + 12px,15px); }

/* --------------------------------------------------------- style dna */
.dna {
  position:relative; overflow:hidden; background:var(--pit);
  border-top:1px solid var(--gold-dim); border-bottom:1px solid var(--gold-dim);
  padding:clamp(80px,9.4vw,150px) var(--padR) clamp(80px,9.4vw,150px) var(--padL);
}
.dna-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.9; }
.dna-inner {
  position:relative; z-index:2; display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,420px); gap:clamp(34px,5vw,96px); align-items:center;
}
.dna-copy .lede { margin-top:clamp(18px,2vw,28px); max-width:42em; }
.dna-traits { display:grid; gap:1px; background:var(--gold-dim); border:1px solid var(--gold-dim); }
.dna-traits li {
  background:rgba(11,10,8,.72); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  padding:clamp(18px,2vw,28px) clamp(18px,2vw,30px);
  transition:background-color .5s var(--ease);
}
.dna-traits li:hover { background:rgba(28,23,18,.9); }
.dna-key {
  display:block; font-family:'Bodoni Moda', serif; font-style:italic;
  font-size:clamp(19px,1.6vw,27px); color:var(--champagne);
}
.dna-val { display:block; margin-top:6px; color:var(--mute); font-size:clamp(13px,.45vw + 12px,15px); }

/* --------------------------------------------------------- concierge */
.concierge {
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:minmax(0,1fr) clamp(320px,36vw,600px);
  gap:clamp(36px,5.4vw,100px); align-items:center;
  padding:clamp(76px,9vw,136px) var(--padR) clamp(76px,9vw,136px) var(--padL);
  background:var(--ink);
}
/* velvet under the whole band so the section is never a flat panel */
.concierge::before {
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:url(../img/seam-poster.webp);
  background-size:cover; background-position:center;
  opacity:.3;
}
.concierge::after {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(900px 520px at 100% 0%, rgba(194,161,95,.09), transparent 58%),
    linear-gradient(to right, rgba(18,16,13,.94) 0%, rgba(18,16,13,.7) 48%, rgba(18,16,13,.9) 100%),
    linear-gradient(to bottom, var(--ink) 0%, transparent 22%, transparent 78%, var(--ink) 100%);
}
.con-copy, .chat { position:relative; z-index:2; }
.con-copy .lede { margin-top:clamp(18px,2vw,30px); max-width:40em; }
.con-copy .btn-ghost { margin-top:clamp(26px,3vw,42px); }

.con-does { margin-top:clamp(26px,3vw,40px); display:flex; flex-wrap:wrap; gap:10px 12px; }
.con-does li {
  position:relative; padding:10px 18px 9px 32px; border:1px solid var(--gold-dim);
  font-size:clamp(10px,.72vw,12px); letter-spacing:.22em; text-transform:uppercase; color:var(--mute);
  transition:border-color .45s var(--ease), color .45s var(--ease);
}
.con-does li::before {
  content:"\25C6"; position:absolute; left:14px; top:50%; transform:translateY(-50%);
  font-size:7px; letter-spacing:0; color:var(--champagne);
}
.con-does li:hover { border-color:var(--gold-line); color:var(--ivory); }

.chat { border:1px solid var(--hair); background:rgba(11,10,8,.5); }
.chat-head {
  display:flex; align-items:center; gap:14px; padding:16px clamp(16px,1.6vw,24px);
  border-bottom:1px solid var(--hair-soft); background:rgba(28,23,18,.6);
}
.chat-avatar {
  width:38px; height:38px; flex:none; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--gold-line); color:var(--champagne);
  font-family:'Bodoni Moda', serif; font-size:17px;
}
.chat-who b { display:block; font-weight:400; font-size:14px; letter-spacing:.06em; color:var(--ivory); }
.chat-who i {
  display:block; font-style:normal; font-size:10px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--taupe); margin-top:2px;
}
.chat-who i em { color:var(--champagne); font-style:normal; }
.chat-body { display:flex; flex-direction:column; gap:clamp(14px,1.6vw,22px); padding:clamp(20px,2.2vw,30px); }
.msg { max-width:88%; padding:clamp(15px,1.5vw,22px) clamp(16px,1.7vw,26px); font-size:clamp(14px,.45vw + 13px,15.5px); line-height:1.65; }
.msg.guest { align-self:flex-end; background:rgba(235,226,208,.07); border:1px solid rgba(235,226,208,.12); color:#D8CEBB; }
.msg.host { align-self:flex-start; background:rgba(194,161,95,.09); border:1px solid var(--gold-line); color:var(--ivory); }
.msg .who {
  display:block; font-size:10px; letter-spacing:.32em; text-transform:uppercase;
  color:var(--taupe); margin-bottom:9px;
}
.msg .who em { font-style:normal; }
.msg.host .who { color:var(--champagne); }
.typing { align-self:flex-start; display:flex; gap:6px; padding:16px 20px; border:1px solid var(--gold-line); background:rgba(194,161,95,.06); }
.typing i { width:5px; height:5px; border-radius:50%; background:var(--champagne); opacity:.4; }

/* --------------------------------------------------------- details / faq */
.details {
  position:relative; display:grid; grid-template-columns:clamp(240px,28vw,480px) minmax(0,1fr);
  gap:clamp(32px,5vw,96px);
  padding:clamp(74px,8.6vw,130px) var(--padR) clamp(74px,8.6vw,130px) var(--padL);
  border-top:1px solid var(--hair-soft);
  background:
    radial-gradient(820px 460px at 12% 6%, rgba(194,161,95,.08), transparent 62%),
    radial-gradient(700px 420px at 92% 94%, rgba(28,23,18,.9), transparent 58%),
    var(--pit);
}
.det-media, .det-copy { position:relative; z-index:2; }
.det-media { position:sticky; top:clamp(96px,11vw,148px); overflow:hidden; }
.det-media img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.faq { margin-top:clamp(30px,3.6vw,52px); border-top:1px solid var(--hair-soft); }
.faq-item { border-bottom:1px solid var(--hair-soft); }
.faq-q {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  text-align:left; padding:clamp(20px,2.2vw,30px) 0;
  font-family:'Bodoni Moda', serif; font-size:clamp(17px,1.4vw,24px); line-height:1.3;
  color:var(--ivory); transition:color .4s var(--ease);
}
.faq-q:hover { color:var(--champagne); }
.faq-q i {
  position:relative; flex:none; width:13px; height:13px;
}
.faq-q i::before, .faq-q i::after {
  content:""; position:absolute; background:var(--champagne); transition:transform .5s var(--slow);
}
.faq-q i::before { left:0; top:6px; width:13px; height:1px; }
.faq-q i::after  { left:6px; top:0; width:1px; height:13px; }
.faq-q[aria-expanded="true"] { color:var(--champagne); }
.faq-q[aria-expanded="true"] i::after { transform:scaleY(0); }
.faq-a { overflow:hidden; height:0; }
html:not(.js) .faq-a { height:auto; }           /* answers stay readable without scripts */
html:not(.js) .faq-q i { display:none; }
.faq-a p {
  color:var(--mute); font-size:clamp(14px,.5vw + 12px,16px); line-height:1.82;
  padding-bottom:clamp(22px,2.4vw,32px); max-width:44em;
}

/* --------------------------------------------------------- footer */
.foot {
  position:relative; background:var(--pit); border-top:1px solid var(--gold-dim);
  padding:clamp(72px,8.6vw,120px) var(--padR) clamp(30px,3.4vw,54px) var(--padL);
  overflow:hidden;
}
.foot::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(760px 420px at 8% 0%, rgba(194,161,95,.07), transparent 62%),
    radial-gradient(620px 380px at 96% 88%, rgba(194,161,95,.05), transparent 60%);
}
/* black velvet and a gold thread moving behind the closing line */
.foot-bg { position:absolute; inset:0; z-index:0; overflow:hidden; }
.foot-bg .v { width:100%; height:100%; object-fit:cover; opacity:.55; }
.foot-scrim {
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, var(--pit) 0%, rgba(11,10,8,.66) 34%, rgba(11,10,8,.82) 72%, var(--pit) 100%),
    linear-gradient(to right, rgba(11,10,8,.9) 0%, rgba(11,10,8,.45) 46%, rgba(11,10,8,.8) 100%);
}
.rope {
  position:relative; z-index:2; display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,480px);
  gap:clamp(34px,5vw,90px); align-items:center;
}
.rope h2 { font-size:clamp(32px,4.2vw,66px); line-height:1.1; }
.rope-right p { color:var(--mute); font-size:clamp(14px,.5vw + 12px,16px); line-height:1.8; }
.rope-form {
  display:flex; margin-top:clamp(22px,2.6vw,34px); border:1px solid rgba(235,226,208,.25);
  transition:border-color .45s var(--ease);
}
.rope-form:focus-within { border-color:var(--gold-line); }
.rope-form input {
  flex:1 1 auto; min-width:0; padding:18px 22px;
  font-family:'Bodoni Moda', serif; font-size:15px; color:var(--ivory);
}
.rope-form input::placeholder { color:#8d8271; font-style:italic; }
.rope-form input:focus { outline:none; }
.go {
  position:relative; overflow:hidden; flex:none; background:var(--champagne); color:#141109;
  font-size:clamp(10px,.72vw,12px); letter-spacing:.26em; text-transform:uppercase; font-weight:500;
  padding:18px clamp(18px,2vw,30px); transition:color .45s var(--ease);
}
.go span { position:relative; z-index:2; }
.go::before {
  content:""; position:absolute; inset:0; background:var(--champagne-hi);
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--slow);
}
.go:hover::before { transform:scaleX(1); }
.rope-note { margin-top:14px; font-size:12px; letter-spacing:.04em; color:var(--taupe); }
.rope-note.is-good { color:var(--champagne); }
.rope-note.is-bad { color:#C4805F; }

.socials {
  margin-top:clamp(20px,2.4vw,30px); display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px;
  font-size:clamp(10px,.72vw,12px); letter-spacing:.26em; text-transform:uppercase; color:var(--taupe);
}
.socials a { transition:color .4s var(--ease); }
.socials a:hover { color:var(--champagne); }
.socials i { font-style:normal; color:var(--champagne); }
.socials .slash { color:#5E5546; margin:0 4px; }

.legal {
  position:relative; z-index:2; margin-top:clamp(50px,7vw,90px); padding-top:clamp(22px,2.4vw,34px);
  border-top:1px solid var(--hair-soft);
  display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:14px 30px;
  font-size:clamp(10px,.7vw,12px); letter-spacing:.18em; text-transform:uppercase; color:#5E5546;
}
.legal-mark { font-size:clamp(13px,1vw,16px); letter-spacing:.34em; color:var(--taupe); text-indent:.34em; }
.legal-nav { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.legal-nav a { transition:color .4s var(--ease); }
.legal-nav a:hover { color:var(--ivory); }
.legal-nav i { font-style:normal; opacity:.6; }
.legal-by a { color:var(--taupe); border-bottom:1px solid var(--gold-dim); padding-bottom:2px; transition:color .4s var(--ease), border-color .4s var(--ease); }
.legal-by a:hover { color:var(--champagne); border-color:var(--champagne); }

/* --------------------------------------------------------- animation base state */
.js .split-lines { visibility:hidden; }
.js .split-lines.is-ready { visibility:visible; }
.line-mask { display:block; overflow:hidden; }
.js .anim-fade { opacity:0; }
.js .reveal { opacity:0; }

/* --------------------------------------------------------- responsive */
@media (max-width:1180px) {
  .nav { display:none; }
  .burger { display:block; }
  .tag { display:none; }
  .house-body { grid-template-columns:minmax(0,1fr) clamp(260px,32vw,420px); }
}

@media (max-width:980px) {
  .hero { grid-template-columns:1fr; min-height:0; }
  .hero-copy { padding-top:clamp(120px,26vw,160px); padding-bottom:clamp(40px,7vw,64px); }
  .hero-media { min-height:76svh; order:2; }
  .hero-media-inner { inset:0; }
  .hero-scrim {
    background:
      linear-gradient(to bottom, var(--ink) 0%, rgba(18,16,13,.35) 16%, transparent 42%),
      linear-gradient(to top, rgba(18,16,13,.72) 0%, transparent 40%);
  }

  .sourcing { grid-template-columns:1fr; }
  .sourcing-media { order:-1; min-height:clamp(230px,44vw,340px); }
  .sourcing-scrim {
    background:linear-gradient(to bottom, rgba(11,10,8,.35) 0%, rgba(11,10,8,.2) 45%, var(--pit) 100%);
  }

  .house-head { grid-template-columns:1fr; align-items:start; gap:18px; }
  /* stack, but keep the media pinned so the shot still changes with the step you are reading */
  .house { background:var(--ink); }
  /* align-items:start is inherited from the grid rule; in a column flex box it would
     shrink the media to its content width, so put it back to stretch */
  .house-body { display:flex; flex-direction:column; align-items:stretch; }
  .house-media {
    order:-1; position:sticky; top:clamp(54px,14vw,74px); z-index:2;
    background:var(--ink); padding-bottom:12px; margin-bottom:clamp(16px,3vw,26px);
  }
  .house-frame { aspect-ratio:2/1; }
  .house-count { margin-top:12px; }

  .lb-head { grid-template-columns:1fr; align-items:start; gap:20px; }
  .lb-note { text-align:left; }

  .dressing { grid-template-columns:1fr; }
  .dressing-media { min-height:clamp(340px,64vw,520px); }
  .dressing-scrim {
    background:linear-gradient(to bottom, rgba(28,23,18,.25) 0%, rgba(28,23,18,.3) 50%, var(--umber) 100%);
  }
  .dressing-copy { padding-left:var(--padL); padding-top:clamp(40px,7vw,64px); }

  .dna-inner { grid-template-columns:1fr; gap:clamp(28px,5vw,46px); }
  .concierge { grid-template-columns:1fr; }
  .details { grid-template-columns:1fr; }
  .det-media { position:relative; top:auto; }
  .det-media img { aspect-ratio:16/9; }
  .rope { grid-template-columns:1fr; align-items:start; }
}

@media (max-width:720px) {
  .lb-grid { grid-template-columns:1fr; grid-template-areas:"main" "a" "b" "c" "d"; }
  .card-main { display:block; }
  .card-main .card-media { aspect-ratio:4/5; min-height:0; }
  .card:not(.card-main) .card-media { aspect-ratio:4/3; }
  .access-row { gap:22px; }
  .access .btn { width:100%; }
  .rope-form { flex-direction:column; align-items:stretch; }
  .go { padding:17px 22px; }
  .legal { flex-direction:column; align-items:flex-start; gap:12px; }
  .marquee-set span.it { font-size:16px; }
}

@media (max-width:460px) {
  .wordmark-sub { display:none; }
  .step { padding-left:0; padding-top:44px; }
  .step-no { top:20px; }
}

/* --------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .grain { animation:none; }
  .cursor { display:none; }
  .js .split-lines, .js .anim-fade, .js .reveal { visibility:visible; opacity:1; }
  .card-media { clip-path:none; }
  .card-media > img, .card-media > .v { transform:none; }
  .house-frame .hs.is-on { transform:none; }
  .step { opacity:1; }
  .loader { display:none; }
}
