/* ──────────────────────────────────────────────────────────────
   Corb Capital — light theme with liquid-glass surfaces
   ────────────────────────────────────────────────────────────── */

:root{
  color-scheme: light;

  --paper:   #F6F5F1;
  --paper-2: #EFEDE6;
  --ink:     #15171C;
  --ink-2:   #33363D;
  --muted:   #5E616A;
  --faint:   #9A9CA3;
  --line:    rgba(21,23,28,.10);
  --line-2:  rgba(21,23,28,.18);
  --ember:   #C4581B;

  --serif: "Afacad", "Helvetica Neue", Helvetica, sans-serif;
  --sans:  "Afacad", "Helvetica Neue", Helvetica, sans-serif;

  --gutter: clamp(20px, 5vw, 72px);
  --max: 1320px;
  --section: clamp(120px, 18vw, 240px);

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

*,
*::before,
*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background:rgba(196,88,27,.18); }

:focus-visible{
  outline:2px solid var(--ink);
  outline-offset:3px;
  border-radius:6px;
}

.wrap{
  width:100%;
  max-width:calc(var(--max) + var(--gutter) * 2);
  margin:0 auto;
  padding:0 var(--gutter);
}

.skip{
  position:absolute; left:-9999px; top:12px;
  background:var(--ink); color:var(--paper);
  padding:10px 16px; border-radius:999px; z-index:100;
}
.skip:focus{ left:12px; }

/* ── Ambient light field (what the glass refracts) ── */

.ambient{
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
}
.ambient span{
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  opacity:.55;
  will-change:transform;
  animation:drift 38s var(--ease) infinite alternate;
}
.ambient .a1{ width:52vw; height:52vw; right:-12vw; top:-14vw; background:#F3B684; }
.ambient .a2{ width:44vw; height:44vw; right:18vw;  top:18vh;  background:#BCD5EE; animation-duration:46s; animation-delay:-12s; }
.ambient .a3{ width:38vw; height:38vw; left:-14vw;  top:62vh;  background:#EBDCC6; animation-duration:52s; animation-delay:-20s; }
.ambient .a4{ width:18vw; height:18vw; right:8vw;   top:34vh;  background:#E9854A; opacity:.35; animation-duration:30s; }

@keyframes drift{
  0%  { transform:translate3d(0,0,0) scale(1); }
  50% { transform:translate3d(-4vw,3vh,0) scale(1.08); }
  100%{ transform:translate3d(3vw,-2vh,0) scale(.96); }
}
@media (prefers-reduced-motion: reduce){
  .ambient span{ animation:none; }
}

/* ── Liquid glass ── */

.glass{
  position:relative;
  isolation:isolate;
  background:
    linear-gradient(135deg, rgba(255,255,255,.62) 0%, rgba(255,255,255,.22) 55%, rgba(255,255,255,.34) 100%);
  -webkit-backdrop-filter:blur(22px) saturate(175%);
          backdrop-filter:blur(22px) saturate(175%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(255,255,255,.35),
    0 1px 1px rgba(21,23,28,.03),
    0 12px 32px -12px rgba(21,23,28,.14),
    0 40px 80px -40px rgba(21,23,28,.18);
}
/* Chromium: real refraction through an SVG displacement map */
.refract .glass.lensing{
  -webkit-backdrop-filter:url(#liquid) blur(14px) saturate(180%);
          backdrop-filter:url(#liquid) blur(14px) saturate(180%);
}
/* Specular rim: bright top-left edge fading to a softer bottom-right */
.glass::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(145deg,
    rgba(255,255,255,1) 0%,
    rgba(255,255,255,.25) 32%,
    rgba(21,23,28,.06) 58%,
    rgba(255,255,255,.8) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  pointer-events:none;
  z-index:1;
}
/* Pointer-tracked sheen */
.glass::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), rgba(255,255,255,.55), transparent 45%);
  opacity:0;
  transition:opacity .5s var(--ease);
  pointer-events:none;
  z-index:-1;
}
.glass:hover::after{ opacity:1; }

/* ── Header ── */

.site-header{
  position:fixed;
  top:18px;
  left:0; right:0;
  z-index:50;
  pointer-events:none;
}
.nav{
  pointer-events:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  max-width:980px;
  margin:0 auto;
  padding:8px 8px 8px 20px;
  border-radius:999px;
  transition:transform .6s var(--ease-out);
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  font-family:var(--serif);
  font-size:22px;
  letter-spacing:-.01em;
  line-height:1;
  white-space:nowrap;
}
.brand img{
  width:30px; height:30px;
  object-fit:contain;
  filter:brightness(0);
  opacity:.9;
  margin-top:-4px;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:4px;
  list-style:none;
  margin:0; padding:0;
}
.nav-links a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border-radius:999px;
  font-size:14.5px;
  color:var(--ink-2);
  text-decoration:none;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.nav-links a:hover{ background:rgba(21,23,28,.05); color:var(--ink); }
.nav-links a.btn-ink,
.nav-links a.btn-ink:hover{ color:var(--paper); background:var(--ink); margin-left:6px; }
.nav-links a[aria-current="true"]{ color:var(--ink); background:rgba(255,255,255,.7); }

.menu-btn{
  display:none;
  width:44px; height:44px;
  border:0; border-radius:50%;
  background:transparent;
  cursor:pointer;
  position:relative;
}
.menu-btn span{
  position:absolute; left:13px; right:13px; height:1.5px;
  background:var(--ink);
  transition:transform .4s var(--ease-out), top .4s var(--ease-out);
}
.menu-btn span:first-child{ top:18px; }
.menu-btn span:last-child{ top:25px; }
.menu-open .menu-btn span:first-child{ top:21.5px; transform:rotate(45deg); }
.menu-open .menu-btn span:last-child{ top:21.5px; transform:rotate(-45deg); }

/* ── Buttons ── */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 24px;
  border-radius:999px;
  border:0;
  font:inherit;
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  cursor:pointer;
  transition:transform .4s var(--ease-out), background .3s var(--ease), box-shadow .3s var(--ease);
}
.btn:active{ transform:scale(.98); }
.btn-ink{
  background:var(--ink);
  color:var(--paper);
  box-shadow:0 8px 20px -8px rgba(21,23,28,.45), inset 0 1px 0 rgba(255,255,255,.14);
}
.btn-ink:hover{ background:#23262D; }
.btn-glass{ color:var(--ink); }
.btn-sm{ min-height:40px; padding:0 18px; font-size:14px; }
.btn .arrow{ transition:transform .4s var(--ease-out); }
.btn:hover .arrow{ transform:translateX(3px); }

/* ── Type ── */

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0;
}
.eyebrow::before{
  content:"";
  width:28px; height:1px;
  background:currentColor;
  opacity:.6;
}

.display{
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.035em;
  line-height:.94;
  margin:0;
}
.display em{
  font-style:italic;
  color:var(--ember);
  letter-spacing:-.02em;
}

h2.display{ font-size:clamp(44px, 6.4vw, 104px); }

.section-head{
  display:grid;
  grid-template-columns:minmax(180px, 1fr) 3fr;
  gap:32px var(--gutter);
  align-items:start;
  margin-bottom:clamp(64px, 9vw, 128px);
}
.section-head .eyebrow{ padding-top:14px; }

/* ── Hero ── */

.hero{
  position:relative;
  overflow-x:clip;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:clamp(140px, 22vh, 220px) 0 clamp(32px, 5vh, 56px);
}
.hero h1{
  font-size:clamp(64px, 12.5vw, 200px);
  max-width:11ch;
  margin-top:36px;
}
.hero-foot{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:40px;
  margin-top:clamp(48px, 7vw, 96px);
}
.hero-lede{
  max-width:40ch;
  font-size:clamp(18px, 1.5vw, 21px);
  line-height:1.55;
  color:var(--ink-2);
  margin:0;
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }

.hero-lens{
  position:absolute;
  right:clamp(-120px, -4vw, 0px);
  top:clamp(96px, 14vh, 160px);
  width:clamp(280px, 38vw, 560px);
  aspect-ratio:1;
  border-radius:50%;
  display:grid;
  place-items:center;
  z-index:-1;
  animation:float 14s var(--ease) infinite alternate;
}
.hero-lens img{
  width:46%;
  filter:brightness(0);
  opacity:.08;
}
@keyframes float{
  from{ transform:translate3d(0,0,0); }
  to  { transform:translate3d(0,-18px,0); }
}
@media (prefers-reduced-motion: reduce){
  .hero-lens{ animation:none; }
}

.facts{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  margin-top:clamp(56px, 8vh, 88px);
  border-radius:28px;
  padding:8px;
}
.fact{
  padding:22px 26px;
  border-left:1px solid var(--line);
}
.fact:first-child{ border-left:0; }
.fact dt{
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.fact dd{
  margin:6px 0 0;
  font-family:var(--serif);
  font-size:clamp(24px, 2.2vw, 32px);
  line-height:1.1;
  letter-spacing:-.01em;
}

/* ── Sections ── */

.section{ padding:var(--section) 0 0; }

/* About */
.statement{
  font-family:var(--serif);
  font-size:clamp(34px, 4.4vw, 68px);
  line-height:1.06;
  letter-spacing:-.025em;
  margin:0;
  max-width:20ch;
}
.statement .soft{ color:var(--faint); }
.about-body{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:32px 56px;
  margin-top:clamp(48px, 6vw, 80px);
  max-width:880px;
}
.about-body p{ margin:0; color:var(--muted); max-width:42ch; }

/* Focus */
.focus-list{
  list-style:none;
  margin:0; padding:0;
  border-top:1px solid var(--line-2);
}
.focus-item{
  display:grid;
  grid-template-columns:minmax(180px, 1fr) 1.4fr 1.6fr auto;
  gap:24px var(--gutter);
  align-items:baseline;
  padding:clamp(36px, 4.5vw, 56px) 0;
  border-bottom:1px solid var(--line-2);
  position:relative;
}
.focus-item::before{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:1px;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .9s var(--ease-out);
}
.focus-item:hover::before{ transform:scaleX(1); }
.focus-num{
  font-family:var(--serif);
  font-style:italic;
  font-size:20px;
  color:var(--faint);
}
.focus-item h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(32px, 3.4vw, 52px);
  line-height:1;
  letter-spacing:-.02em;
  margin:0;
}
.focus-item p{ margin:0; color:var(--muted); max-width:44ch; }
.focus-arrow{
  font-size:22px;
  color:var(--faint);
  transition:transform .6s var(--ease-out), color .3s var(--ease);
}
.focus-item:hover .focus-arrow{ transform:translateX(6px); color:var(--ember); }

/* Approach */
.approach{
  position:relative;
}
.approach-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.pillar{
  border-radius:32px;
  padding:clamp(32px, 3.4vw, 48px);
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:48px;
}
.pillar-icon{
  width:52px; height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--ink);
}
.pillar-icon svg{ width:22px; height:22px; }
.pillar h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(30px, 2.6vw, 40px);
  letter-spacing:-.02em;
  line-height:1;
  margin:0 0 14px;
}
.pillar p{ margin:0; color:var(--ink-2); max-width:30ch; }

.criteria{
  display:grid;
  grid-template-columns:minmax(180px, 1fr) 3fr;
  gap:24px var(--gutter);
  margin-top:clamp(80px, 10vw, 140px);
  align-items:baseline;
}
.criteria ul{
  list-style:none;
  margin:0; padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.criteria li{
  font-family:var(--serif);
  font-size:clamp(24px, 2.4vw, 36px);
  letter-spacing:-.015em;
  line-height:1.2;
}
.criteria li:not(:last-child)::after{
  content:"/";
  margin-left:12px;
  color:var(--faint);
}

/* Contact */
.contact-grid{
  display:grid;
  grid-template-columns:1fr minmax(0, 1.05fr);
  gap:clamp(48px, 6vw, 96px);
  align-items:start;
}
.contact-grid h2{ font-size:clamp(48px, 6vw, 96px); max-width:9ch; }
.contact-lede{
  color:var(--muted);
  max-width:38ch;
  margin:36px 0 48px;
}
.direct{
  display:grid;
  gap:0;
  border-top:1px solid var(--line-2);
  max-width:460px;
}
.direct a,
.direct div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--line-2);
  text-decoration:none;
  font-size:16px;
}
.direct span{ color:var(--muted); font-size:14px; }
.direct a:hover strong{ color:var(--ember); }
.direct strong{ font-weight:500; transition:color .3s var(--ease); }

.include{
  margin-top:48px;
  max-width:460px;
}
.include h3{
  font-size:13px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 14px;
}
.include ol{
  margin:0; padding-left:20px;
  color:var(--ink-2);
  font-size:15.5px;
}
.include li{ padding:3px 0; }
.include li::marker{ color:var(--faint); font-family:var(--serif); font-style:italic; }

.form-panel{
  border-radius:36px;
  padding:clamp(28px, 3.6vw, 52px);
}
.form{ display:grid; gap:22px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.field{ display:grid; gap:8px; }
.field label{
  font-size:13px;
  font-weight:500;
  color:var(--ink-2);
}
.field input,
.field textarea{
  width:100%;
  font:inherit;
  font-size:16px;
  color:var(--ink);
  background:rgba(255,255,255,.55);
  border:1px solid rgba(21,23,28,.12);
  border-radius:16px;
  padding:14px 16px;
  box-shadow:inset 0 1px 2px rgba(21,23,28,.04);
  transition:border-color .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.field textarea{ min-height:150px; resize:vertical; }
.field input::placeholder,
.field textarea::placeholder{ color:var(--faint); }
.field input:focus,
.field textarea:focus{
  outline:none;
  background:rgba(255,255,255,.9);
  border-color:rgba(21,23,28,.35);
  box-shadow:0 0 0 4px rgba(21,23,28,.06);
}
.form-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-top:6px;
}
.form-note{ font-size:13.5px; color:var(--muted); margin:0; }
.form-notice{
  font-size:14.5px;
  padding:14px 16px;
  border-radius:14px;
  margin:0;
}
.form-notice.ok { background:rgba(46,125,82,.10); color:#1F5A3A; }
.form-notice.err{ background:rgba(180,50,40,.09); color:#8A2A20; }

.hp{
  position:absolute;
  left:-10000px;
  width:1px; height:1px;
  overflow:hidden;
}
.turnstile{ min-height:65px; }

/* ── Cookie banner ── */

.cookie-banner{
  position:fixed;
  left:clamp(12px, 3vw, 28px);
  bottom:clamp(12px, 3vw, 28px);
  z-index:60;
  width:min(420px, calc(100vw - 24px));
  padding:24px 24px 22px;
  border-radius:26px;
  background:linear-gradient(135deg, rgba(255,255,255,.82) 0%, rgba(255,255,255,.6) 100%);
  animation:rise .8s var(--ease-out) both;
}
.cookie-banner[hidden]{ display:none; }
.cookie-title{
  margin:0 0 6px;
  font-size:19px;
  font-weight:600;
  letter-spacing:-.01em;
}
.cookie-text{
  margin:0;
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink-2);
}
.cookie-text a{ text-underline-offset:3px; }
.cookie-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
@keyframes rise{
  from{ opacity:0; transform:translate3d(0,16px,0); }
  to  { opacity:1; transform:none; }
}
@media (prefers-reduced-motion: reduce){
  .cookie-banner{ animation:none; }
}

.link-btn{
  background:none;
  border:0;
  padding:0;
  font:inherit;
  color:inherit;
  cursor:pointer;
}
.link-btn:hover{ color:var(--ink); }

/* ── Footer ── */

.site-footer{
  padding:var(--section) 0 32px;
  overflow:hidden;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  flex-wrap:wrap;
  padding-bottom:40px;
}
.footer-top p{ margin:0; color:var(--muted); max-width:32ch; }
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:4px 28px;
  list-style:none;
  margin:0; padding:0;
  font-size:15px;
}
.footer-links a{ text-decoration:none; color:var(--ink-2); }
.footer-links a:hover{ color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.wordmark{
  font-family:var(--serif);
  font-size:clamp(72px, 17.5vw, 290px);
  line-height:.8;
  letter-spacing:-.045em;
  margin:0;
  white-space:nowrap;
  color:var(--ink);
  user-select:none;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  border-top:1px solid var(--line-2);
  margin-top:36px;
  padding-top:22px;
  font-size:13.5px;
  color:var(--muted);
}
.footer-bottom a{ text-decoration:none; }
.footer-bottom a:hover{ color:var(--ink); }
.footer-bottom nav{ display:flex; gap:20px; }

/* ── Legal pages ── */

.legal{
  padding:clamp(160px, 24vh, 240px) 0 0;
}
.legal .wrap{ max-width:calc(760px + var(--gutter) * 2); }
.legal h1{
  font-size:clamp(52px, 8vw, 104px);
  margin:28px 0 12px;
}
.legal .updated{ color:var(--muted); margin:0 0 64px; }
.legal h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:30px;
  letter-spacing:-.015em;
  line-height:1.15;
  margin:56px 0 14px;
}
.legal h3{ font-size:17px; font-weight:600; margin:28px 0 8px; }
.legal p,
.legal li{ color:var(--ink-2); }
.legal ul{ padding-left:20px; }
.legal li{ margin:6px 0; }
.legal strong{ color:var(--ink); font-weight:600; }
.legal a{ text-underline-offset:3px; }
.legal table{ width:100%; border-collapse:collapse; margin:16px 0; font-size:15px; }
.legal th, .legal td{ text-align:left; padding:10px 12px 10px 0; border-bottom:1px solid var(--line-2); vertical-align:top; }

/* ── Reveal on scroll ── */

.js .reveal{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
  transition-delay:var(--d, 0s);
}
.js .reveal.in{
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion: reduce){
  .js .reveal{ opacity:1; transform:none; transition:none; }
}

/* ── Responsive ── */

@media (max-width: 980px){
  .section-head,
  .criteria{ grid-template-columns:1fr; }
  .section-head .eyebrow{ padding-top:0; }
  .focus-item{ grid-template-columns:auto 1fr; }
  .focus-item p{ grid-column:2; }
  .focus-arrow{ display:none; }
  .approach-grid{ grid-template-columns:1fr; }
  .pillar{ min-height:0; gap:36px; }
  .contact-grid{ grid-template-columns:1fr; }
  .hero-foot{ grid-template-columns:1fr; }
}

@media (max-width: 760px){
  body{ font-size:16px; }
  .site-header{ top:12px; padding:0 12px; }
  .nav{ padding:6px 6px 6px 16px; border-radius:28px; flex-wrap:wrap; }
  .menu-btn{ display:block; }
  .nav .nav-links{
    display:none;
    flex-basis:100%;
    flex-direction:column;
    align-items:stretch;
    padding:8px 4px 10px;
  }
  .menu-open .nav .nav-links{ display:flex; }
  .menu-open .nav{ background:rgba(246,245,241,.9); }
  .nav-links a{ min-height:48px; font-size:17px; padding:0 12px; }
  .nav-links a.btn-ink,
  .nav-links a.btn-ink:hover{ margin:8px 0 0; min-height:48px; justify-content:center; }
  .hero{ min-height:auto; padding-top:150px; }
  .hero-lens{ width:78vw; right:-22vw; top:90px; }
  .facts{ grid-template-columns:1fr; border-radius:24px; }
  .fact{ border-left:0; border-top:1px solid var(--line); padding:18px 20px; }
  .fact:first-child{ border-top:0; }
  .about-body{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
  .focus-item{ grid-template-columns:1fr; gap:12px; }
  .focus-item p{ grid-column:auto; }
  .footer-bottom{ flex-direction:column; }
}
