/* Oravia — dark grey and gold */
:root{color-scheme:dark;
  --ink:#1c1d1f; --ink-2:#232427; --ink-3:#2b2d30; --line:rgba(236,232,223,.12); --line-2:rgba(236,232,223,.22);
  --text:#ece8df; --muted:#aaa599; --gold:#c9a65f; --gold-2:#e3cb92; --gold-dim:rgba(201,166,95,.35);
  --serif:"Fraunces","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --head:#f6f2e9;
  --sans:"Manrope","Helvetica Neue",Arial,sans-serif;
  --wrap:1200px; --gut:clamp(16px,5vw,48px);
  --path:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 96C220 96 300 40 520 44S880 104 1100 70 1360 18 1440 22' fill='none' stroke='%23c9a65f' stroke-width='1.5'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-color:var(--gold-dim);text-underline-offset:3px}
a:hover{color:var(--gold-2)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:.5rem 1rem;z-index:100}
.skip:focus{left:8px}
h1,h2,h3{font-weight:400;text-wrap:balance}
h2{font-family:var(--serif);font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.1;letter-spacing:-.01em}
h3{font-family:var(--sans);font-weight:600;font-size:1.05rem;line-height:1.35}
p{max-width:68ch}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gold);color:#17181a;border:1px solid var(--gold);padding:.85rem 1.5rem;border-radius:2px;font:600 .95rem/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:var(--gold-2);border-color:var(--gold-2);color:#17181a}
.btn-line{background:transparent;color:var(--text);border-color:var(--line-2)}
.btn-line:hover{background:rgba(236,232,223,.06);color:var(--text);border-color:var(--gold)}
.btn-sm{padding:.6rem 1.05rem;font-size:.88rem}

/* Header */
.site-head{position:fixed;inset:0 0 auto;z-index:50;padding-top:env(safe-area-inset-top,0);transition:background .4s,border-color .4s,backdrop-filter .4s;border-bottom:1px solid transparent}
.site-head.scrolled{background:rgba(24,25,27,.78);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--line)}
.head-inner{display:flex;align-items:center;justify-content:space-between;height:84px;gap:1.5rem;transition:height .4s}
.scrolled .head-inner{height:68px}
.logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text)}
.logo span{font-family:var(--serif);font-size:1.55rem;letter-spacing:.02em}
.logo-mark{width:30px;height:30px;color:var(--gold)}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav-list{display:flex;list-style:none;gap:1.6rem}
.nav-list>li{position:relative}
.nav-list>li>a{text-decoration:none;font-size:.93rem;color:rgba(236,232,223,.86);padding:.5rem 0;display:inline-block}
.nav-list>li>a:hover{color:var(--gold-2)}
.sub-toggle{display:none}
.sub{list-style:none;position:absolute;top:100%;left:-1rem;min-width:250px;background:var(--ink-2);border:1px solid var(--line);border-top:2px solid var(--gold);padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.sub a{display:block;padding:.55rem 1.1rem;text-decoration:none;font-size:.9rem;color:var(--text)}
.sub a:hover{background:var(--ink-3);color:var(--gold-2)}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.nav-toggle{display:none;background:none;border:1px solid var(--line-2);width:44px;height:44px;border-radius:2px;cursor:pointer;position:relative}
.nav-toggle>span:first-child,.nav-toggle>span:first-child::before,.nav-toggle>span:first-child::after{position:absolute;left:11px;width:20px;height:1.5px;background:var(--text);content:"";transition:transform .2s}
.nav-toggle>span:first-child{top:21px}
.nav-toggle>span:first-child::before{left:0;top:-6px}.nav-toggle>span:first-child::after{left:0;top:6px}
.nav-toggle[aria-expanded="true"]>span:first-child{background:transparent}
.nav-toggle[aria-expanded="true"]>span:first-child::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"]>span:first-child::after{transform:translateY(-6px) rotate(-45deg)}

/* Hero */
.hero{position:relative;overflow:hidden;isolation:isolate;min-height:min(92svh,820px);display:flex;align-items:flex-end;padding:150px 0 clamp(80px,10vw,130px);background:var(--ink)}
.hero .scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero .scene .pl{will-change:transform}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(22,23,24,.94) 0%,rgba(22,23,24,.78) 34%,rgba(22,23,24,.2) 66%,rgba(22,23,24,0) 100%),linear-gradient(0deg,var(--ink) 0%,rgba(28,29,31,0) 22%)}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx,70%) var(--my,30%),rgba(227,203,146,.10),transparent 60%);transition:background .2s}
.hero-short{min-height:min(70svh,560px);padding-top:150px}
.hero-inner{position:relative;z-index:1;width:100%}
.hero h1{font-family:var(--serif);font-size:clamp(2.6rem,6.4vw,5.4rem);line-height:1.02;letter-spacing:-.015em;max-width:16ch}
.hero-short h1{font-size:clamp(2.3rem,5vw,4rem);max-width:20ch}
.hero .lede{margin-top:1.4rem;font-size:clamp(1.02rem,1.5vw,1.17rem);color:rgba(236,232,223,.84);max-width:52ch}
.hero-meta{color:var(--gold-2);font-size:.92rem;margin-bottom:.9rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.crumbs{display:flex;flex-wrap:wrap;gap:.35rem .55rem;font-size:.84rem;color:var(--muted);margin-bottom:1.4rem}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--gold-2)}
.crumbs>*:not(:last-child)::after{content:"/";margin-left:.55rem;color:rgba(236,232,223,.3)}
.crumbs [aria-current]{color:var(--text)}

/* Home hero */
.home-hero{min-height:min(100svh,940px);align-items:center}
.home-hero h1{font-size:clamp(2.8rem,6.6vw,6rem);max-width:12ch}
.scroll-cue{position:absolute;left:50%;bottom:26px;width:22px;height:36px;border:1.5px solid var(--line-2);border-radius:12px;transform:translateX(-50%);z-index:1}
.scroll-cue span{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--gold);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.hero-short .scroll-cue{display:none}

/* Hero entrance */
.hero-inner>*{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.hero-inner>*:nth-child(1){animation-delay:.1s}.hero-inner>*:nth-child(2){animation-delay:.2s}.hero-inner>*:nth-child(3){animation-delay:.32s}
.hero-inner>*:nth-child(4){animation-delay:.46s}.hero-inner>*:nth-child(5){animation-delay:.6s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero h1.split{animation:none}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .w>span{display:inline-block;animation:wordup 1.1s cubic-bezier(.2,.75,.15,1) both;animation-delay:calc(.15s + var(--i) * 70ms)}
@keyframes wordup{from{transform:translateY(105%);opacity:0}to{transform:none;opacity:1}}

/* Sections */
.sec{padding:clamp(72px,10vw,128px) 0;border-top:1px solid var(--line)}
.band-raised{background:var(--ink-2)}
.band-dark{background:#161718}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sec-lede{color:var(--muted);line-height:1.75}
.intro-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,6vw,96px)}
.intro-body p{color:rgba(236,232,223,.86);margin-bottom:1.1rem}
.intro-body p:first-child{font-size:1.14rem;color:var(--text)}
.intro-aside{margin-top:1.6rem;padding:1.2rem 1.4rem;border-left:2px solid var(--gold);background:var(--ink-2);color:var(--muted);font-size:.96rem}

.features{list-style:none;display:grid;gap:0;border-top:1px solid var(--line)}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.features li{padding:2rem 2rem 2.2rem 0;border-bottom:1px solid var(--line)}
.cols-3 li:not(:nth-child(3n)),.cols-2 li:not(:nth-child(2n)){border-right:1px solid var(--line)}
.cols-3 li:not(:nth-child(3n+1)),.cols-2 li:not(:nth-child(2n+1)){padding-left:2rem}
.features h3{font-family:var(--serif);font-weight:400;font-size:1.45rem;margin-bottom:.55rem;color:var(--text)}
.features p{color:var(--muted);font-size:.98rem}

.rows{list-style:none;border-top:1px solid var(--line-2)}
.rows li>a,.rows li>div{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.55fr) minmax(0,1.5fr);gap:2rem;align-items:baseline;padding:1.45rem 0;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit}
.rows .row-name{font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,2.05rem);line-height:1.12}
.rows .row-tag{color:var(--gold);font-size:.9rem}
.rows .row-note{color:var(--muted);font-size:.98rem}
.rows li>a{transition:padding .25s}
.rows li>a:hover .row-name{color:var(--gold-2);font-style:italic}
.rows li>a:hover{padding-left:.6rem}

.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2.4rem}
.steps li{counter-increment:s;border-top:1px solid var(--gold);padding-top:1.2rem}
.steps li::before{content:counter(s);display:block;font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--gold);margin-bottom:.9rem}
.steps h3{margin-bottom:.4rem}
.steps p{color:var(--muted);font-size:.97rem}

.incl-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.incl-grid h2{margin-bottom:1.2rem}
.incl-grid .btn{margin-top:1.8rem}
.bestfor{margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.bestfor h3{color:var(--gold);font-size:.92rem;margin-bottom:.3rem}
.checks{list-style:none;display:grid;gap:0}
.checks li{position:relative;padding:.95rem 0 .95rem 2rem;border-bottom:1px solid var(--line)}
.checks li::before{content:"";position:absolute;left:0;top:1.45rem;width:14px;height:1.5px;background:var(--gold)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px)}
.two-col h3{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin-bottom:.8rem}

.faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,6vw,96px)}
.faq details{border-bottom:1px solid var(--line-2)}
.faq details:first-child{border-top:1px solid var(--line-2)}
.faq summary{list-style:none;cursor:pointer;padding:1.25rem 2.5rem 1.25rem 0;position:relative;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.4rem;top:1.55rem;width:10px;height:10px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:1.85rem}
.faq details>div{padding:0 0 1.4rem;color:var(--muted)}

.statement{background:var(--ink-3)}
.statement blockquote{font-family:var(--serif);font-size:clamp(1.6rem,3.3vw,2.6rem);line-height:1.25;max-width:28ch}
.statement cite{display:block;margin-top:1.4rem;font-style:normal;color:var(--muted);font-size:.95rem}

/* Prose (articles, legal) */
.prose{max-width:760px}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:2.6rem 0 1rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.1rem;margin:1.8rem 0 .5rem;color:var(--gold-2)}
.prose p,.prose li{color:rgba(236,232,223,.88);line-height:1.8}
.prose p{margin-bottom:1.1rem}
.prose ul,.prose ol{margin:0 0 1.2rem 1.2rem}
.prose li{margin-bottom:.45rem}
.prose li::marker{color:var(--gold)}
.prose .note{border-left:2px solid var(--gold);padding:1rem 1.3rem;background:var(--ink-2);color:var(--muted);margin:1.6rem 0}
.prose a{color:var(--gold-2)}

/* Forms */
.form-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,96px)}
.form-grid h2{margin-bottom:1rem}
.contact-lines{list-style:none;margin-top:1.6rem;display:grid;gap:.45rem}
.contact-lines a{text-decoration:none;border-bottom:1px solid var(--gold-dim)}
.contact-lines a:hover{border-color:var(--gold)}
.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.3rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.full{grid-column:1/-1}
.quote-form label{font-size:.86rem;font-weight:600;color:var(--muted)}
.quote-form input,.quote-form select,.quote-form textarea{font:inherit;font-size:1rem;color:var(--text);background:var(--ink);border:1px solid var(--line-2);border-radius:2px;padding:.8rem .9rem;width:100%}
.quote-form textarea{min-height:130px;resize:vertical}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;color:var(--muted);font-size:.92rem}
.hp{position:absolute;left:-9999px}

/* CTA band + footer */
.cta-band{background:linear-gradient(120deg,#2a2519 0%,#232427 60%);border-top:1px solid var(--gold-dim);padding:clamp(56px,8vw,96px) 0}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.cta-inner p{color:var(--muted);margin-top:.5rem}
.cta-inner .hero-ctas{margin-top:0}
.site-foot{background:#151617;border-top:1px solid var(--line);padding:72px 0 calc(28px + env(safe-area-inset-bottom,0))}
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2.5rem}
.foot-brand p{color:var(--muted);font-size:.94rem;margin-top:1rem;max-width:32ch}
.site-foot h2{font-family:var(--sans);font-size:.9rem;font-weight:600;color:var(--gold);margin-bottom:.9rem}
.site-foot ul{list-style:none;display:grid;gap:.4rem}
.site-foot ul a{text-decoration:none;color:rgba(236,232,223,.78);font-size:.93rem}
.site-foot ul a:hover{color:var(--gold-2)}
.foot-legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}
.foot-legal a{margin-left:1.2rem;text-decoration:none}

/* Responsive */
@media (max-width:1020px){
  .nav-toggle{display:block}
  .nav{position:fixed;inset:0;top:0;background:var(--ink);flex-direction:column;align-items:stretch;padding:96px var(--gut) 40px;overflow-y:auto;gap:1.5rem;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:-1}
  .nav.open{opacity:1;visibility:visible}
  .site-head .nav-toggle,.site-head .logo{position:relative;z-index:2}
  .nav-list{flex-direction:column;gap:0}
  .nav-list>li{border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center}
  .nav-list>li>a{font-family:var(--serif);font-size:1.6rem;padding:.8rem 0;flex:1}
  .sub-toggle{display:block;width:44px;height:44px;background:none;border:0;cursor:pointer;position:relative}
  .sub-toggle::after{content:"";position:absolute;left:16px;top:14px;width:10px;height:10px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);transition:transform .2s}
  .sub-toggle[aria-expanded="true"]::after{transform:rotate(-135deg);top:19px}
  .sub{position:static;opacity:1;visibility:visible;transform:none;display:none;width:100%;border:0;background:none;padding:0 0 .8rem;min-width:0}
  .sub.open{display:block}
  .has-sub:hover .sub{display:none}.has-sub:hover .sub.open{display:block}
  .sub a{padding:.5rem 0 .5rem 1rem;color:var(--muted)}
  .nav .btn{align-self:flex-start}
  .foot-grid{grid-template-columns:1fr 1fr 1fr}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:820px){
  .sec-head,.intro-grid,.incl-grid,.faq-grid,.form-grid,.two-col{grid-template-columns:1fr;gap:1.4rem}
  .cols-3{grid-template-columns:1fr 1fr}
  .cols-3 li{padding:1.6rem 1.2rem 1.8rem 0!important;border-right:0!important}
  .cols-3 li:nth-child(odd){border-right:1px solid var(--line)!important}
  .cols-3 li:nth-child(even){padding-left:1.2rem!important}
  .rows li>a,.rows li>div{grid-template-columns:1fr auto;gap:.3rem 1rem}
  .rows .row-note{grid-column:1/-1}
  .hero{min-height:auto;padding-top:128px}
  .home-hero{flex-direction:column;align-items:stretch;padding-bottom:24px}
  .home-hero .hero-inner>*{max-width:100%}
  .route{position:relative;right:auto;top:auto;bottom:auto;width:100%;height:210px;margin-top:8px}
}
@media (max-width:560px){
  body{font-size:16px}
  .cols-3,.cols-2{grid-template-columns:1fr}
  .features li{padding:1.5rem 0!important;border-right:0!important}
  .quote-form{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .route text.sm{display:none}
  .hero-ctas .btn{flex:1 1 auto}
  .foot-legal a{margin:0 1rem 0 0}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important}
  html{scroll-behavior:auto}
  .route .line{animation:none;stroke-dashoffset:0}
  .route .dot,.route text{animation:none;opacity:1}
}

/* ===== Visual layer ===== */
@view-transition{navigation:auto}
::view-transition-old(root){animation:.32s ease both vt-out}
::view-transition-new(root){animation:.55s cubic-bezier(.2,.7,.2,1) both vt-in}
@keyframes vt-out{to{opacity:0;transform:translateY(-10px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}

.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--gold),var(--gold-2));z-index:60;pointer-events:none}

/* Buttons: shine + magnet */
.btn{position:relative;overflow:hidden;will-change:transform}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.btn:hover::after{transform:translateX(120%)}
.btn-line::after{background:linear-gradient(110deg,transparent 30%,rgba(227,203,146,.25) 50%,transparent 70%)}

/* Scroll reveal (only below-the-fold elements are hidden, and only when JS runs) */
.js .rv{opacity:0;transform:translateY(36px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
.js .sec-head.rv h2{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1) .1s}
.js .sec-head.rv.in h2{clip-path:inset(0 0 -10% 0)}

/* Section heading ornament */
.sec-head h2{position:relative}
.sec-head h2::after{content:"";display:block;width:56px;height:1.5px;margin-top:1.1rem;background:linear-gradient(90deg,var(--gold),transparent);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .3s}
.js .sec-head.rv h2::after{transform:scaleX(0)}
.js .sec-head.rv.in h2::after{transform:none}

/* Feature icons */
.ico-wrap{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:var(--gold);border:1px solid var(--gold-dim);margin-bottom:1.2rem;position:relative;transition:background .4s,color .4s,transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.ico{width:24px;height:24px}
.features li{transition:background .4s}
.features li:hover{background:linear-gradient(180deg,rgba(201,166,95,.06),transparent 70%)}
.features li:hover .ico-wrap{background:var(--gold);color:#17181a;transform:translateY(-4px) rotate(-8deg);box-shadow:0 10px 30px -8px rgba(201,166,95,.55)}

/* Cards */
.cards{display:grid;gap:clamp(16px,2vw,26px)}
.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{position:relative;display:flex;flex-direction:column;background:var(--ink-2);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--text);transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.7,.2,1),border-color .4s,box-shadow .5s;will-change:transform}
.card::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(420px circle at var(--gx,50%) var(--gy,0%),rgba(227,203,146,.16),transparent 55%);opacity:0;transition:opacity .4s}
.card:hover{border-color:var(--gold-dim);box-shadow:0 30px 60px -30px rgba(0,0,0,.8),0 0 0 1px rgba(201,166,95,.15);color:var(--text)}
.card:hover::before{opacity:1}
.card-art{position:relative;aspect-ratio:16/10;overflow:hidden;background:#151617}
.card-art::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink-2) 0%,transparent 45%)}
.card-art img{width:100%;height:100%;object-fit:cover;object-position:70% 100%;transform:scale(1.04);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-art img{transform:scale(1.12)}
.card-body{position:relative;padding:4px 24px 28px;display:flex;flex-direction:column;gap:.45rem;flex:1}
.card-tag{color:var(--gold);font-size:.82rem;font-weight:600}
.card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2vw,1.75rem);line-height:1.15}
.card p{color:var(--muted);font-size:.96rem;padding-right:2.6rem}
.card-go{position:absolute;right:22px;bottom:24px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--gold);transition:background .35s,color .35s,transform .45s cubic-bezier(.2,.7,.2,1),border-color .35s}
.card-go svg{width:18px;height:18px}
.card:hover .card-go{background:var(--gold);color:#17181a;border-color:var(--gold);transform:translateX(4px) rotate(-35deg)}
.cards-2 .card-art{aspect-ratio:16/9}
.cards-2 .card h3{font-size:clamp(2rem,3.4vw,2.9rem)}
.cards-2 .card-body{padding:0 32px 36px}

/* Marquee */
.marquee{overflow:hidden;background:var(--ink-2);border-block:1px solid var(--line);padding-block:26px;position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:1;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--ink-2),transparent)}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--ink-2),transparent)}
.mq-track{display:flex;width:max-content;animation:mq 46s linear infinite}
.marquee:hover .mq-track{animation-play-state:paused}
.mq-set{display:flex}
.mq-set span{display:flex;align-items:center;gap:2.4rem;padding-right:2.4rem;font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);white-space:nowrap;color:var(--text)}
.mq-set span:nth-child(even){font-style:italic;color:var(--gold-2)}
.mq-gem{width:10px;height:10px;fill:var(--gold);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* Facts */
.facts-sec{position:relative;overflow:hidden;background:radial-gradient(80% 120% at 50% 100%,#2a2519 0%,var(--ink) 70%)}
.facts{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;position:relative}
.facts li{border-left:1px solid var(--gold-dim);padding-left:1.4rem}
.fact-num{display:flex;align-items:baseline;gap:.25rem;line-height:1}
.fact-n{font-family:var(--serif);font-size:clamp(3rem,6vw,5rem);background:linear-gradient(180deg,#f3e3b6,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.fact-s{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.8rem);color:var(--gold-2)}
.facts p{color:var(--muted);font-size:.95rem;margin-top:.8rem;max-width:22ch}

/* Particles */
.particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.statement,.cta-band{position:relative;overflow:hidden}
.statement .wrap,.cta-band .wrap,.facts-sec .wrap{position:relative;z-index:1}
.qmark{display:block;font-family:var(--serif);font-size:8rem;line-height:.6;color:var(--gold);opacity:.5;margin-bottom:1rem}

/* Steps: line draws in */
.steps li{border-top:0;background:linear-gradient(var(--gold),var(--gold)) no-repeat 0 0/100% 1px;transition:background-size 1.2s cubic-bezier(.2,.7,.2,1) var(--d,0ms),opacity 1s,transform 1s}
.js .steps li.rv{background-size:0 1px}
.js .steps li.rv.in{background-size:100% 1px}
.steps li::before{transition:color .4s}
.steps li:hover::before{color:var(--gold-2)}

/* Rows hover underline */
.rows li{position:relative}
.rows li::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.rows li:hover::after{transform:scaleX(1)}

/* Checks grow */
.checks li::before{transition:width .5s}
.checks li:hover::before{width:22px}

/* Footer wordmark */
.site-foot{position:relative;overflow:hidden}
.foot-mark{font-family:var(--serif);font-size:clamp(5rem,22vw,20rem);line-height:.8;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(201,166,95,.28);letter-spacing:-.02em;margin-top:40px;user-select:none;background:linear-gradient(90deg,transparent,rgba(201,166,95,.22),transparent) no-repeat;background-size:40% 100%;-webkit-background-clip:text;background-clip:text;animation:markshine 7s ease-in-out infinite}
@keyframes markshine{0%{background-position:-60% 0}60%,100%{background-position:160% 0}}
.site-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}

@media (max-width:1020px){
  .cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4rem 1.6rem}
}
@media (max-width:820px){
  .hero{padding-bottom:min(62vw,340px);align-items:flex-start}
  .home-hero{padding-top:120px}
  .hero-short{padding-bottom:min(46vw,240px)}
  .hero-shade{background:linear-gradient(180deg,rgba(22,23,24,.9) 0%,rgba(22,23,24,.7) 50%,rgba(22,23,24,0) 82%),linear-gradient(0deg,var(--ink) 0%,rgba(28,29,31,0) 18%)}
  .cards-2{grid-template-columns:1fr}
  .scroll-cue{display:none}
}
@media (max-width:560px){
  .cards-3,.cards-4{grid-template-columns:1fr}
  .marquee::before,.marquee::after{width:40px}
}
@media (prefers-reduced-motion:reduce){
  .mq-track,.foot-mark,.scroll-cue span,.hero-inner>*,.hero h1 .w>span{animation:none!important}
  .js .rv{opacity:1;transform:none}
  .card,.card-art img{transition:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
.site-head.menu-open{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:transparent!important;border-bottom-color:transparent!important}
/* Statement emblem */
.statement-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:3rem;align-items:center}
.emblem{width:100%;max-width:300px;justify-self:end;fill:none;stroke:var(--gold)}
.em-ring{stroke-opacity:.35;stroke-dasharray:2 8;transform-origin:160px 160px;animation:spin 60s linear infinite}
.em-in{stroke-opacity:.6;stroke-width:1.2}
.em-path{stroke:var(--gold);stroke-width:2.5;stroke-linecap:round}
.em-glint{stroke:#fff6dc;stroke-width:3;stroke-linecap:round;stroke-dasharray:24 400;stroke-dashoffset:24;animation:emglint 4s ease-in-out infinite}
.em-dot{fill:var(--gold-2);stroke:none}
.emblem text{fill:var(--muted);stroke:none;font:600 11px var(--sans);letter-spacing:.3em}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes emglint{0%{stroke-dashoffset:24}70%,100%{stroke-dashoffset:-240}}
@media (max-width:820px){.statement-grid{grid-template-columns:1fr}.emblem{display:none}}
@media (prefers-reduced-motion:reduce){.em-ring,.em-glint{animation:none}.em-glint{display:none}}

/* Readable headings: sturdier serif, brighter, slightly heavier */
.hero h1{font-weight:500;letter-spacing:-.01em;color:var(--head);text-shadow:0 2px 24px rgba(0,0,0,.45)}
h2{font-weight:450;color:var(--head);letter-spacing:-.005em}
.features h3,.two-col h3,.card h3,.rows .row-name{font-weight:500;color:var(--head)}
.statement blockquote{font-weight:400;color:var(--head)}
.logo span{font-weight:500}
.hero .lede{color:rgba(246,242,233,.9)}
/* Keep strokes sturdy at large sizes (Fraunces thins its hairlines at display sizes) */
h1,h2,h3,.fact-n,.fact-s,.mq-set span,.rows .row-name,.statement blockquote,.logo span,.qmark,.steps li::before,.foot-mark{font-optical-sizing:none;font-variation-settings:"opsz" 40}
.hero h1{font-variation-settings:"opsz" 48}

/* Stronger text protection over busy scenes */
.hero-shade{background:linear-gradient(90deg,rgba(14,14,16,.95) 0%,rgba(14,14,16,.88) 36%,rgba(14,14,16,.5) 58%,rgba(14,14,16,0) 82%),linear-gradient(0deg,var(--ink) 0%,rgba(28,29,31,0) 22%)}
@media (max-width:820px){.hero-shade{background:linear-gradient(180deg,rgba(14,14,16,.93) 0%,rgba(14,14,16,.86) 58%,rgba(14,14,16,0) 86%),linear-gradient(0deg,var(--ink) 0%,rgba(28,29,31,0) 18%)}}

/* Phones: crop each scene around its subject instead of the center */
@media (max-width:820px){.hero .scene{width:auto;top:auto;bottom:0;height:min(58%,440px);aspect-ratio:1600/1020;left:50%;right:auto;transform:translateX(calc(-1 * var(--fx,50%)))}}

/* ===== Photo heroes ===== */
.hero-photo{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.08);filter:saturate(.92) brightness(.82) contrast(1.05);transition:opacity 1.6s ease,transform 10s cubic-bezier(.2,.7,.2,1)}
.hero-photo.ok{opacity:1;transform:scale(1)}
.hero-photo.ok.kb{animation:kb 26s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07) translate(-1%,-1%)}}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,18,10,.25),rgba(24,18,10,.35));mix-blend-mode:multiply}
.photo-credit{position:absolute;right:18px;bottom:12px;z-index:2;font-size:.72rem;color:rgba(236,232,223,.55);text-decoration:none;opacity:0;transition:opacity .6s}
.hero-photo.ok~.photo-credit{opacity:1}
.photo-credit:hover{color:var(--gold-2)}

/* ===== Icons on bullets, rows, steps, facts, FAQ ===== */
.checks li.has-ico{display:flex;align-items:center;gap:1rem;padding-left:0}
.checks li.has-ico::before{display:none}
.bi{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--gold);background:radial-gradient(circle at 30% 30%,rgba(227,203,146,.18),rgba(201,166,95,.04));border:1px solid var(--gold-dim);transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s,color .3s}
.bi .ico{width:18px;height:18px}
.checks li.has-ico:hover .bi{background:var(--gold);color:#17181a;transform:scale(1.1) rotate(-8deg)}

.rows li>a,.rows li>div{grid-template-columns:52px minmax(0,1.1fr) minmax(0,.55fr) minmax(0,1.5fr)}
.row-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--gold);border:1px solid var(--gold-dim);background:linear-gradient(145deg,rgba(201,166,95,.12),transparent);align-self:center;transition:background .35s,color .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.row-ico .ico{width:22px;height:22px}
.rows li>a:hover .row-ico{background:var(--gold);color:#17181a;transform:rotate(-8deg)}

.steps li{position:relative}
.step-ico{position:absolute;right:0;top:1.1rem;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--gold);border:1px solid var(--gold-dim)}
.step-ico .ico{width:22px;height:22px}

.fact-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#17181a;background:linear-gradient(145deg,var(--gold-2),var(--gold));margin-bottom:1rem;box-shadow:0 8px 24px -8px rgba(201,166,95,.6)}
.fact-ico .ico{width:22px;height:22px}

.faq summary{display:flex;align-items:center;gap:.9rem}
.faq-ico{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--gold);border:1px solid var(--gold-dim)}
.faq-ico .ico{width:16px;height:16px}
.faq details[open] .faq-ico{background:var(--gold);color:#17181a}

/* Intro illustration panel */
.intro-head{display:flex;flex-direction:column;gap:2rem}
.intro-art{position:relative;margin:0;border-radius:8px;overflow:hidden;border:1px solid var(--gold-dim);aspect-ratio:16/10;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.intro-art img{width:100%;height:100%;object-fit:cover;object-position:60% 100%;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.intro-art:hover img{transform:scale(1.06)}
.intro-art::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,29,31,.55),transparent 50%)}
.intro-art-badge{position:absolute;left:16px;bottom:16px;z-index:1;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#17181a;background:linear-gradient(145deg,var(--gold-2),var(--gold));box-shadow:0 10px 30px -8px rgba(0,0,0,.7)}
.intro-art-badge .ico{width:24px;height:24px}

/* Article bullets + headings */
.prose ul{list-style:none;margin-left:0}
.prose ul li{position:relative;padding-left:1.9rem}
.prose ul li::before{content:"";position:absolute;left:.2rem;top:.62em;width:9px;height:9px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 0 4px rgba(201,166,95,.15)}
.prose ol{counter-reset:po;list-style:none;margin-left:0}
.prose ol li{counter-increment:po;position:relative;padding-left:2.6rem}
.prose ol li::before{content:counter(po);position:absolute;left:0;top:.1em;width:1.8rem;height:1.8rem;border-radius:50%;display:grid;place-items:center;font:600 .85rem var(--sans);color:#17181a;background:var(--gold)}
.prose h2{display:flex;align-items:center;gap:.8rem}
.prose h2::before{content:"";flex:none;width:22px;height:2px;background:var(--gold)}

@media (max-width:820px){
  .rows li>a,.rows li>div{grid-template-columns:44px 1fr auto}
  .rows .row-note{grid-column:2/-1}
  .row-ico{grid-row:span 2;width:38px;height:38px}
  .photo-credit{right:12px;bottom:8px}
}
@media (prefers-reduced-motion:reduce){.hero-photo{transition:opacity .3s;transform:none!important;animation:none!important}}

@media (max-width:560px){.features li:nth-child(n){padding:1.5rem 0!important;border-right:0!important}}
