/* Layout: dark editorial one-pager. Flow-field hero, marquee, scroll-lit statement, glass cards, process rail, brass contact card. */
:root{
  --ink:#0a0b10;        /* page */
  --ink-2:#11131b;      /* raised surface */
  --line:rgba(236,230,218,.10);
  --line-2:rgba(236,230,218,.18);
  --paper:#ece6da;      /* text */
  --muted:#8d8a86;
  --brass:#d9bd86;      /* accent */
  --brass-deep:#8f7a55;
  --steel:#7b8bb0;      /* cool secondary */
  --serif:"Instrument Serif", "Times New Roman", Georgia, serif;
  --sans:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:"Geist Mono", ui-monospace, Menlo, Consolas, monospace;
  --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--paper);font:400 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%}
::selection{background:var(--brass);color:var(--ink)}
:focus-visible{outline:1.5px solid var(--brass);outline-offset:4px;border-radius:6px}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--brass)}

.wrap{max-width:1200px;margin:0 auto;padding-left:max(24px, env(safe-area-inset-left,0px));padding-right:max(24px, env(safe-area-inset-right,0px))}

/* film grain */
.grain{position:fixed;inset:-50%;z-index:100;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* nav */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--ink)}
.nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s}
.nav.scrolled{background:rgba(10,11,16,.72);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:18px}
.logo{display:flex;align-items:center;gap:10px;font:500 1.05rem/1 var(--sans);letter-spacing:-.01em}
.logo svg{width:28px;height:28px;color:var(--paper)}
.nav-links{display:flex;gap:34px;font-size:.9rem;color:var(--muted)}
.nav-links a{position:relative;transition:color .3s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav-links a:hover{color:var(--paper)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.pill{display:inline-flex;padding:10px 18px;border:1px solid var(--line-2);border-radius:999px;font-size:.88rem;transition:border-color .3s, background .3s}
.pill:hover{border-color:var(--brass);background:rgba(217,189,134,.06)}
@media (max-width:760px){.nav-links{display:none}}

/* hero */
.hero{position:relative;min-height:min(100svh,920px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}
#flow{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-glow{position:absolute;z-index:-1;width:70vmax;height:70vmax;right:-22vmax;top:-26vmax;border-radius:50%;
  background:radial-gradient(closest-side, rgba(217,189,134,.16), rgba(123,139,176,.06) 55%, transparent 72%);filter:blur(10px);animation:drift 18s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:40%;z-index:-1;background:linear-gradient(to top, var(--ink), transparent)}
@keyframes drift{to{transform:translate(-6vmax,6vmax) scale(1.08)}}
.hero-in{padding-block:140px 72px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:400 .78rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}
.dot{width:7px;height:7px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 0 rgba(217,189,134,.6);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(217,189,134,0)}100%{box-shadow:0 0 0 0 rgba(217,189,134,0)}}
.headline{font:400 clamp(3.4rem,11.5vw,10.5rem)/.9 var(--serif);letter-spacing:-.025em;margin:28px 0 0}
.headline .line{display:block;overflow:hidden;padding-bottom:.08em}
.headline .w{display:inline-block;transform:translateY(105%);animation:rise 1.1s var(--ease) forwards;animation-delay:var(--d)}
.headline .it{font-style:italic;background:linear-gradient(100deg,var(--brass-deep),var(--brass) 40%,#f3e2bd 55%,var(--brass) 70%);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:220% 100%;animation:rise 1.1s var(--ease) forwards, sheen 6s 1.6s linear infinite;animation-delay:var(--d), 1.6s}
@keyframes rise{to{transform:none}}
@keyframes sheen{to{background-position:-220% 0}}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 48px;flex-wrap:wrap;margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}
.lede{max-width:44ch;margin:0;color:#bdb7ad;font-size:clamp(1rem,1.4vw,1.12rem);font-weight:300}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.load{opacity:0;transform:translateY(14px);animation:fade .9s var(--ease) forwards;animation-delay:var(--d)}
@keyframes fade{to{opacity:1;transform:none}}

.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:16px 26px;border-radius:999px;font:500 .95rem/1 var(--sans);overflow:hidden;transition:transform .3s var(--ease), border-color .3s}
.btn span,.btn i{position:relative;z-index:1;font-style:normal}
.btn.gold{background:var(--brass);color:var(--ink)}
.btn.gold::before{content:"";position:absolute;inset:0;background:#f3e2bd;transform:translateY(101%);transition:transform .5s var(--ease)}
.btn.gold:hover::before{transform:none}
.btn.gold i{transition:transform .4s var(--ease)}
.btn.gold:hover i{transform:translateX(4px)}
.btn.ghost{border:1px solid var(--line-2)}
.btn.ghost:hover{border-color:var(--paper)}
.magnetic{will-change:transform}

.scroll-cue{position:absolute;left:50%;bottom:22px;width:22px;height:36px;margin-left:-11px;border:1px solid var(--line-2);border-radius:12px}
.scroll-cue span{position:absolute;left:50%;top:7px;width:2px;height:7px;margin-left:-1px;border-radius:2px;background:var(--brass);animation:cue 1.8s var(--ease) infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
@media (max-width:700px){.scroll-cue{display:none}.hero-in{padding-block:120px 56px}}

/* marquee */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:22px;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.track{display:flex;width:max-content;gap:34px;align-items:center;animation:marq 38s linear infinite}
.track span{font:400 clamp(1.4rem,2.6vw,2.1rem)/1 var(--serif);white-space:nowrap;color:#cfc8bc}
.track b{color:var(--brass);font-weight:400;font-size:.9rem}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
section{padding-block:clamp(88px,12vw,160px)}
.kicker{font:400 .76rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:0 0 22px;display:flex;align-items:center;gap:12px}
.kicker::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
h2{font:400 clamp(2.4rem,5.6vw,4.6rem)/1 var(--serif);letter-spacing:-.02em;margin:0;text-wrap:balance;max-width:16ch}
.sec-head{margin-bottom:clamp(44px,6vw,72px)}

.statement{font:400 clamp(1.7rem,3.9vw,3.3rem)/1.18 var(--serif);letter-spacing:-.012em;margin:0;max-width:24ch;text-wrap:pretty}
.statement .sw{color:var(--paper);opacity:.28;transition:opacity .5s var(--ease), color .5s}
.statement .sw.on{opacity:1}
.statement .sw.key.on{color:var(--brass);font-style:italic}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{--mx:50%;--my:0%;position:relative;min-width:0;padding:34px 30px 32px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));border:1px solid var(--line);display:flex;flex-direction:column;gap:16px;overflow:hidden;transition:transform .6s var(--ease), border-color .4s}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx) var(--my), rgba(217,189,134,.14), transparent 60%)}
.card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(300px circle at var(--mx) var(--my), rgba(217,189,134,.7), transparent 60%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.card:hover{transform:translateY(-6px)}
.card:hover::before,.card:hover::after{opacity:1}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.ico{width:46px;height:46px;color:var(--brass)}
.tag{font:400 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:7px 11px;border:1px solid var(--line);border-radius:999px}
.card h3{font:400 2rem/1.05 var(--serif);letter-spacing:-.01em;margin:0}
.card p{margin:0;color:var(--muted);font-weight:300}
.card ul{list-style:none;margin:auto 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 16px}
.card li{font:400 .8rem/1.6 var(--mono);color:#bdb7ad}
.card li::before{content:"↗ ";color:var(--brass)}
@media (max-width:900px){.cards{grid-template-columns:1fr}}

/* process */
.process{position:relative}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.step{min-width:0;position:relative;padding-top:30px}
.num{display:block;font:400 4.2rem/1 var(--serif);color:transparent;-webkit-text-stroke:1px var(--line-2);margin-bottom:22px;transition:color .6s var(--ease), -webkit-text-stroke-color .6s}
.step.lit .num{color:var(--brass);-webkit-text-stroke-color:var(--brass)}
.step h4{font:500 1.08rem/1.2 var(--sans);margin:0 0 8px;letter-spacing:-.005em}
.step p{margin:0;color:var(--muted);font-size:.95rem;font-weight:300}
.rail{height:1px;background:var(--line);margin-top:44px;position:relative;overflow:hidden}
.rail span{position:absolute;inset:0;background:linear-gradient(90deg,var(--brass-deep),var(--brass));transform:scaleX(0);transform-origin:left;transition:transform .2s linear}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:12px 28px}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* contact */
.contact-card{position:relative;overflow:hidden;border-radius:30px;padding:clamp(40px,7vw,96px) clamp(24px,6vw,80px);background:radial-gradient(120% 140% at 0% 0%, #1b1a1c 0%, var(--ink-2) 50%, #0c0d13 100%);border:1px solid var(--line)}
.contact-glow{position:absolute;width:640px;height:640px;right:-200px;bottom:-320px;border-radius:50%;background:radial-gradient(closest-side, rgba(217,189,134,.28), transparent);animation:drift 14s ease-in-out infinite alternate;pointer-events:none}
.big{font-size:clamp(2.8rem,8vw,7rem);max-width:12ch;position:relative}
.contact-lede{position:relative;color:#bdb7ad;font-weight:300;max-width:46ch;margin:24px 0 0}
.mail-row{position:relative;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:44px}
.mail{font:400 clamp(1.6rem,4.4vw,3.2rem)/1.1 var(--serif);letter-spacing:-.01em;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease), color .3s;word-break:break-all}
.mail:hover{background-size:100% 1px;color:var(--brass)}
.copy{font:400 .8rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:11px 16px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--paper);cursor:pointer;transition:border-color .3s, color .3s}
.copy:hover{border-color:var(--brass);color:var(--brass)}

.company{margin-top:18px}
.facts{margin:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:22px;overflow:hidden}
.facts div{padding:22px 24px;min-width:0}
.facts div + div{border-left:1px solid var(--line)}
.facts dt{font:400 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.facts dd{margin:0;font:400 .95rem/1.45 var(--mono);font-variant-numeric:tabular-nums;color:var(--paper)}
@media (max-width:900px){.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){border-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:520px){.facts{grid-template-columns:1fr}.facts div + div{border-left:0;border-top:1px solid var(--line)}}

/* footer */
.footer{border-top:1px solid var(--line);margin-top:clamp(40px,6vw,80px)}
.foot-in{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:30px;color:var(--muted);font-size:.85rem}
.foot-mark{font:400 1.6rem/1 var(--serif);color:var(--paper)}

/* scroll reveal: elements stay readable before the observer runs */
.reveal{transition:transform 1s var(--ease), opacity 1s var(--ease), filter 1s var(--ease);transition-delay:var(--rd,0s)}
.js .reveal:not(.in){opacity:.35;transform:translateY(28px);filter:blur(4px)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .headline .w{transform:none}
  .load{opacity:1;transform:none}
  .js .reveal:not(.in){opacity:1;transform:none;filter:none}
  .statement .sw{opacity:1}
  html{scroll-behavior:auto}
}
