/* ===========================================================
   OROKYN — shared stylesheet
   =========================================================== */
:root{
  --gold:#f5b342;
  --gold-soft:#FAD98A;
  --gold-deep:#EF9F27;
  --ink:#16150F;
  --ink-2:#3D3D3D;
  --muted:#5F5E5A;
  --faint:#8A8880;
  --paper:#F7F5F0;
  --paper-2:#F1EEE7;
  --line:#E4E1D7;
  --line-soft:#EEEBE3;
  --white:#FFFFFF;
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;}
body{
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.6;
  overflow-x:hidden;
}
::selection{background:var(--gold-soft);color:var(--ink);}
a{color:inherit;text-decoration:none;}
html.js-scrollfade .reveal{backface-visibility:hidden;}

/* ---------- PAGE LOADER (logo pulse on navigation) ---------- */
.page-loader{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;
  background:var(--paper);opacity:1;visibility:visible;
  transition:opacity .55s var(--ease),visibility .55s var(--ease);}
.page-loader.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.page-loader .pl-mark{position:relative;width:88px;height:88px;display:grid;place-items:center;}
.page-loader .pl-logo{width:88px;height:88px;
  background:url('assets/orokyn-logo.png') no-repeat center/contain;
  transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden;
  animation:pl-pulse 2.2s cubic-bezier(.45,0,.55,1) infinite;}
@keyframes pl-pulse{0%,100%{transform:scale(.9) translateZ(0);opacity:.6;}50%{transform:scale(1.03) translateZ(0);opacity:1;}}
@media (prefers-reduced-motion:reduce){
  .page-loader .pl-logo{animation:none;opacity:1;transform:none;}
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.serif{font-family:'Newsreader',Georgia,serif;}
.eyebrow{
  font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);display:inline-flex;align-items:center;gap:9px;
}
.eyebrow::before{content:"";width:24px;height:1.5px;background:var(--gold);display:inline-block;}

/* ---------- NAV ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line-soft);box-shadow:0 1px 30px rgba(0,0,0,.03);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;}
.logo{display:flex;align-items:center;gap:11px;font-family:'Marcellus',serif;text-transform:uppercase;font-size:20px;font-weight:400;letter-spacing:.10em;}
.logo .mark{
  width:34px;height:34px;flex-shrink:0;
  background:url('assets/orokyn-logo.png') center/contain no-repeat;
  transition:transform .5s var(--ease);
}
.logo:hover .mark{transform:rotate(-12deg) scale(1.06);}
.nav-links{display:flex;align-items:center;gap:10px;}
.nav-links a{font-size:14.5px;color:var(--muted);font-weight:500;position:relative;padding:7px 14px;white-space:nowrap;transition:color .25s var(--ease);}
.nav-links a::after{content:"";position:absolute;inset:0;box-sizing:border-box;
  border:2px solid var(--gold);border-radius:9px;pointer-events:none;
  clip-path:inset(calc(100% - 2px) 0 0 0 round 9px);
  transition:clip-path .42s var(--ease);}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{clip-path:inset(0 0 0 0 round 9px);}
.nav-links a.current::after{clip-path:inset(0 0 0 0 round 9px);}
.nav-links a.current{color:var(--ink);}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:14.5px;font-weight:600;
  cursor:pointer;border:none;border-radius:100px;transition:transform .2s var(--ease),box-shadow .3s var(--ease),background .25s;
  white-space:nowrap;
}
.btn i{font-size:16px;transition:transform .3s var(--ease);}
.btn-gold{background:var(--gold);color:var(--ink);padding:11px 22px;box-shadow:0 1px 0 rgba(0,0,0,.04);}
.btn-gold:hover{background:var(--gold-deep);transform:translateY(-1px);box-shadow:0 10px 24px -8px rgba(239,159,39,.55);}
.btn-gold:hover i{transform:translateX(3px);}
.btn-dark{background:var(--ink);color:var(--gold-soft);padding:14px 28px;font-size:15px;}
.btn-dark:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px rgba(0,0,0,.4);}
.btn-dark:hover i{transform:translateX(3px);}
.btn-ghost{background:transparent;color:var(--ink);padding:13px 26px;font-size:15px;border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:#fff;}
.btn-lg{font-size:16px;padding:15px 30px;}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;font-size:26px;color:var(--ink);}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:99;background:var(--white);transform:translateX(100%);transition:transform .45s var(--ease);
  display:flex;flex-direction:column;padding:100px 32px 32px;gap:6px;}
.drawer.open{transform:translateX(0);}
.drawer a{font-family:'Newsreader',serif;font-size:34px;font-weight:400;letter-spacing:-.015em;padding:18px 2px;border-bottom:1px solid var(--line-soft);color:var(--ink);transition:color .25s var(--ease),padding-left .3s var(--ease);}
.drawer a:hover,.drawer a:active,.drawer a:focus{color:var(--gold-deep);padding-left:9px;}
.drawer .btn{margin-top:24px;justify-content:center;font-size:18px;padding:16px;}

/* ---------- HERO (home) ---------- */
.hero{position:relative;padding:170px 0 90px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(115% 80% at 92% -8%, rgba(245,179,66,.55), rgba(250,217,138,.30) 34%, transparent 60%),
    radial-gradient(70% 65% at 100% 105%, rgba(245,179,66,.16), transparent 62%);}
.hero-bg::before{content:"";position:absolute;inset:-20% -10% auto -10%;height:150%;
  background:repeating-conic-gradient(from 210deg at 96% -2%,
    rgba(245,179,66,.16) 0deg, rgba(245,179,66,.16) 3.2deg,
    transparent 3.2deg, transparent 9deg);
  -webkit-mask-image:radial-gradient(75% 70% at 92% 0%, #000, transparent 68%);
  mask-image:radial-gradient(75% 70% at 92% 0%, #000, transparent 68%);
  opacity:.9;animation:sunsway 16s ease-in-out infinite alternate;}
@keyframes sunsway{from{transform:rotate(-2deg) scale(1.02);}to{transform:rotate(3deg) scale(1.08);}}
@media (prefers-reduced-motion:reduce){.hero-bg::before{animation:none;}}
.hero-bg::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:64px 64px;-webkit-mask-image:radial-gradient(70% 60% at 80% 10%,#000,transparent 75%);mask-image:radial-gradient(70% 60% at 80% 10%,#000,transparent 75%);opacity:.4;}
.chips{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px;}
.chip{font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.7);
  border:1px solid var(--line);color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;}
.chip i{color:var(--gold-deep);font-size:14px;}
h1.hero-h{font-size:clamp(38px,5.6vw,72px);line-height:1.04;letter-spacing:-.025em;font-weight:600;max-width:14ch;}
h1.hero-h em{font-style:normal;}
h1.hero-h .accent{font-family:'Newsreader',serif;font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--gold-deep);}
.hero-sub{font-size:clamp(16px,1.5vw,19px);color:var(--muted);max-width:54ch;margin-top:48px;line-height:1.7;}
.hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:52px;}
.hero-cta .or{font-size:15px;color:var(--faint);}
.hero-cta .or a{color:var(--ink);font-weight:600;border-bottom:1.5px solid var(--gold);padding-bottom:1px;}

/* ---------- SUBPAGE HERO ---------- */
.subhero{position:relative;padding:148px 0 64px;overflow:hidden;}
.subhero-bg{position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(95% 78% at 100% -10%, rgba(245,179,66,.5), rgba(250,217,138,.26) 36%, transparent 62%),
    radial-gradient(60% 60% at -8% 100%, rgba(245,179,66,.10), transparent 60%);}
.subhero-bg::before{content:"";position:absolute;inset:-20% -10% auto -10%;height:150%;
  background:repeating-conic-gradient(from 205deg at 98% -2%, rgba(245,179,66,.15) 0deg, rgba(245,179,66,.15) 3.2deg, transparent 3.2deg, transparent 9deg);
  -webkit-mask-image:radial-gradient(72% 66% at 96% 0%,#000,transparent 66%);mask-image:radial-gradient(72% 66% at 96% 0%,#000,transparent 66%);
  opacity:.85;animation:sunsway 16s ease-in-out infinite alternate;}
.subhero-bg::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:64px 64px;-webkit-mask-image:radial-gradient(68% 60% at 82% 8%,#000,transparent 74%);mask-image:radial-gradient(68% 60% at 82% 8%,#000,transparent 74%);opacity:.4;}
.crumb{font-size:13px;color:var(--faint);display:flex;gap:9px;align-items:center;margin-bottom:18px;}
.crumb a{color:var(--muted);transition:color .2s;}
.crumb a:hover{color:var(--ink);}
.crumb i{font-size:14px;opacity:.6;}
.subhero h1{font-size:clamp(34px,5vw,60px);line-height:1.05;letter-spacing:-.025em;font-weight:600;max-width:17ch;margin-top:14px;}
.subhero h1 .accent{font-family:'Newsreader',serif;font-style:italic;font-weight:400;color:var(--gold-deep);}
.subhero .lead{font-size:clamp(16px,1.5vw,19px);color:var(--muted);max-width:58ch;margin-top:22px;line-height:1.7;}
.subhero .hero-cta{margin-top:30px;}

/* stat band */
.stats{margin-top:74px;border-top:1px solid var(--line);padding-top:28px;}
.stats .lbl{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:20px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.stat{background:var(--white);padding:24px 22px;position:relative;overflow:hidden;transition:background .5s var(--ease);}
.stat::before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;
  background:linear-gradient(180deg, rgba(250,217,138,.0), rgba(245,179,66,.16));
  transform:translateY(100%);transition:transform .55s var(--ease);}
.stat::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--gold);transition:width .55s var(--ease);}
.stat>*{position:relative;z-index:1;}
.stat:hover::before{transform:translateY(0);}
.stat:hover::after{width:100%;}
.stat .k{font-size:22px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:9px;transition:transform .5s var(--ease);}
.stat:hover .k{transform:translateX(3px);}
.stat .k i{color:var(--gold-deep);font-size:20px;transition:transform .5s var(--ease);}
.stat:hover .k i{transform:scale(1.18) rotate(-6deg);}
.stat .v{font-size:13.5px;color:var(--muted);margin-top:6px;}

/* ---------- SECTION SHELL ---------- */
section.band{padding:104px 0;position:relative;}
section.paper{background:var(--paper);}
.sec-head{max-width:640px;margin-bottom:48px;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.12;letter-spacing:-.02em;font-weight:600;margin-top:16px;}
.sec-head p{font-size:17px;color:var(--muted);margin-top:18px;line-height:1.7;}
.more-link{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--gold-deep);transition:gap .25s var(--ease);}
.more-link:hover{gap:13px;}
.more-link i{font-size:16px;transition:transform .25s var(--ease);}
.section-cta{margin-top:42px;}

/* what we do cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.scard{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:30px 28px 32px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s;position:relative;}
.scard .trace{position:absolute;inset:0;border-radius:18px;pointer-events:none;z-index:2;overflow:visible;width:100%;height:100%;}
.scard .trace rect{fill:none;stroke:var(--gold);stroke-width:2.5;
  stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .9s var(--ease);}
.scard:hover .trace rect{stroke-dashoffset:0;}
.scard:hover{transform:translateY(-5px);box-shadow:0 24px 50px -28px rgba(40,35,15,.28);border-color:transparent;}
.scard .ic{width:50px;height:50px;border-radius:13px;background:linear-gradient(150deg,var(--gold-soft),var(--gold));
  display:grid;place-items:center;font-size:24px;color:var(--ink);margin-bottom:22px;}
.scard h3{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:9px;}
.scard p{font-size:15px;color:var(--muted);line-height:1.65;}
.scard .num{position:absolute;top:26px;right:28px;font-family:'Newsreader',serif;font-size:18px;color:var(--line);font-weight:500;}

/* ---------- SERVICE FEATURE BLOCKS ---------- */
.feat{display:grid;grid-template-columns:0.86fr 1.14fr;gap:54px;align-items:center;padding:62px 0;border-bottom:1px solid var(--line);}
.feat:first-of-type{border-top:1px solid var(--line);}
.feat.flip .feat-visual{order:2;}
.feat-visual{position:relative;border-radius:24px;aspect-ratio:1/0.82;
  background:linear-gradient(150deg,var(--gold-soft),var(--gold) 62%,var(--gold-deep));
  display:grid;place-items:center;overflow:hidden;box-shadow:0 34px 64px -36px rgba(239,159,39,.55);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease);}
.feat:hover .feat-visual{transform:translateY(-7px);box-shadow:0 46px 80px -36px rgba(239,159,39,.62);}
.feat-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  transition:transform 1.1s var(--ease);}
.feat:hover .feat-visual img{transform:scale(1.06);}
.feat-visual .tint{position:absolute;inset:0;z-index:1;
  background:linear-gradient(150deg, rgba(245,179,66,.5), rgba(239,159,39,.12) 46%, rgba(22,21,15,.55));
  mix-blend-mode:multiply;}
.feat-visual .vic{position:absolute;left:22px;bottom:22px;z-index:4;width:56px;height:56px;border-radius:15px;
  background:rgba(255,255,255,.94);display:grid;place-items:center;font-size:27px;color:var(--ink);
  box-shadow:0 12px 26px -10px rgba(0,0,0,.45);transition:transform .55s var(--ease);}
.feat:hover .feat-visual .vic{transform:translateY(-3px) rotate(-5deg);}
.feat-visual .bignum{position:absolute;top:22px;left:28px;z-index:4;font-family:'Newsreader',serif;font-size:34px;color:rgba(255,255,255,.94);text-shadow:0 2px 12px rgba(0,0,0,.4);}
.feat-visual .shine{position:absolute;top:-40%;left:-38%;width:52%;height:180%;z-index:3;pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform:translateX(-90%) rotate(11deg);transition:transform 1s var(--ease);}
.feat:hover .feat-visual .shine{transform:translateX(380%) rotate(11deg);}
.feat-visual::after{content:"";position:absolute;inset:0;z-index:2;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:42px 42px;-webkit-mask-image:radial-gradient(70% 70% at 30% 20%,#000,transparent 75%);mask-image:radial-gradient(70% 70% at 30% 20%,#000,transparent 75%);}
.feat-body h2{font-size:clamp(24px,2.6vw,34px);line-height:1.12;letter-spacing:-.02em;font-weight:600;margin-top:14px;}
.feat-body .lead{font-size:17px;color:var(--muted);margin-top:15px;line-height:1.72;max-width:52ch;}
.feat-list{margin-top:24px;display:flex;flex-direction:column;gap:13px;}
.feat-list li{display:flex;gap:13px;align-items:flex-start;font-size:15.5px;color:var(--ink-2);list-style:none;line-height:1.5;}
.feat-list li i{color:var(--gold-deep);font-size:20px;margin-top:1px;flex-shrink:0;}

/* ---------- CALLOUT ---------- */
.callout{background:var(--white);border:1px solid var(--line);border-radius:26px;padding:56px 48px;text-align:center;position:relative;overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .4s;}
.callout::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 100% 110%, rgba(245,179,66,.2), transparent 60%);}
.callout::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:48px 48px;-webkit-mask-image:radial-gradient(60% 60% at 10% 0%,#000,transparent 72%);mask-image:radial-gradient(60% 60% at 10% 0%,#000,transparent 72%);opacity:.5;}
.callout:hover{transform:translateY(-4px);box-shadow:0 30px 60px -36px rgba(40,35,15,.28);border-color:var(--gold-soft);}
.callout>*{position:relative;z-index:1;}
.callout .eyebrow{justify-content:center;}
.callout h2{font-size:clamp(26px,3vw,38px);line-height:1.12;letter-spacing:-.02em;font-weight:600;margin:16px auto 14px;max-width:20ch;}
.callout h2 .accent{font-family:'Newsreader',serif;font-style:italic;font-weight:400;color:var(--gold-deep);}
.callout p{font-size:17px;color:var(--muted);max-width:48ch;margin:0 auto 28px;line-height:1.7;}
.callout-tags{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px;}
.callout-tags span{font-size:13px;font-weight:600;padding:8px 16px;border-radius:100px;background:var(--paper);border:1px solid var(--line);color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;}
.callout-tags span i{color:var(--gold-deep);font-size:16px;}

/* ---------- APPROACH STEPS ---------- */
.steps{display:flex;flex-direction:column;}
.step{display:grid;grid-template-columns:96px 1fr minmax(0,300px);gap:40px;padding:48px 0;border-top:1px solid var(--line);align-items:center;position:relative;}
.step::after{content:"";position:absolute;inset:16px -24px;border:1px solid transparent;border-radius:20px;
  pointer-events:none;transition:border-color .4s var(--ease),background .4s var(--ease);}
.step:hover::after{border-color:var(--gold-soft);background:rgba(245,179,66,.04);}
.step:last-child{border-bottom:1px solid var(--line);}
.step .sn{font-family:'Newsreader',serif;font-size:64px;color:var(--gold);line-height:.9;}
.step-visual{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 24px 48px -34px rgba(70,46,8,.5);
  border:1px solid var(--line);transition:border-color .4s var(--ease),box-shadow .4s var(--ease);}
.step:hover .step-visual{border-color:var(--gold);box-shadow:0 26px 52px -30px rgba(70,46,8,.46);}
.step-visual img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) contrast(1.02);transform:scale(1.03);transition:transform .85s var(--ease),filter .85s var(--ease);}
.step:hover .step-visual img{transform:scale(1.06);filter:saturate(1.03) contrast(1.02);}
.step-visual .tint{position:absolute;inset:0;background:linear-gradient(155deg, rgba(245,179,66,.22), rgba(22,21,15,.10) 48%, rgba(22,21,15,.34));transition:opacity .85s var(--ease);}
.step:hover .step-visual .tint{opacity:.6;}
.step-visual .vtag{position:absolute;left:14px;bottom:12px;z-index:1;color:#fff;font-size:12px;font-weight:600;letter-spacing:.04em;display:inline-flex;align-items:center;gap:7px;text-shadow:0 1px 10px rgba(0,0,0,.5);}
.step-visual .vtag i{color:var(--gold-soft);font-size:16px;}
.step h2{font-size:clamp(22px,2.4vw,30px);line-height:1.14;letter-spacing:-.01em;font-weight:600;}
.step .lead{font-size:16.5px;color:var(--muted);margin-top:13px;max-width:62ch;line-height:1.72;}
.step .expect{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px;}
.step .expect span{font-size:13px;font-weight:600;padding:8px 15px;border-radius:100px;background:var(--white);border:1px solid var(--line);color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;}
.step .expect span i{color:var(--gold-deep);font-size:15px;}

/* ---------- CASE CARDS (work) ---------- */
.cases{display:flex;flex-direction:column;gap:24px;}
.case{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--white);position:relative;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s var(--ease);}
.case::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(180deg,var(--gold-soft),var(--gold),var(--gold-deep));z-index:4;transition:width .45s var(--ease);}
.case:hover{transform:translateY(-6px);box-shadow:0 36px 70px -38px rgba(40,35,15,.36);border-color:var(--gold-soft);}
.case:hover::before{width:5px;}
.case-side{background:linear-gradient(160deg,var(--paper),var(--paper-2));padding:34px 30px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;min-height:300px;}
.case-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;
  filter:saturate(.95) contrast(1.03);transform:scale(1.04);transition:transform .8s var(--ease);}
.case:hover .case-img{transform:scale(1.1);}
.case-ov{position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg, rgba(20,15,6,.20) 0%, rgba(20,15,6,.34) 38%, rgba(18,13,4,.72) 78%, rgba(16,11,3,.86) 100%);
  transition:background .5s var(--ease);}
.case:hover .case-ov{background:linear-gradient(180deg, rgba(20,15,6,.16) 0%, rgba(20,15,6,.30) 38%, rgba(28,18,4,.68) 78%, rgba(24,16,4,.82) 100%);}
.case-side>:not(.case-img):not(.case-ov){position:relative;z-index:1;}
.case-side .cic{width:58px;height:58px;border-radius:16px;background:linear-gradient(150deg,var(--gold-soft),var(--gold));display:grid;place-items:center;font-size:27px;color:var(--ink);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
.case:hover .case-side .cic{transform:rotate(-6deg) scale(1.07);box-shadow:0 14px 26px -10px rgba(239,159,39,.6);}
.case-side h3{font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.25;color:#fff;transition:color .3s;text-shadow:0 2px 14px rgba(0,0,0,.7);}
.case:hover .case-side h3{color:var(--gold-soft);}
.case-side .loc{font-size:13.5px;color:rgba(255,255,255,.9);display:flex;align-items:center;gap:7px;text-shadow:0 1px 10px rgba(0,0,0,.6);}
.case-side .loc i{font-size:15px;color:var(--gold-soft);}
.case-side .tag{align-self:flex-start;font-size:12px;font-weight:600;padding:6px 14px;border-radius:100px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.32);margin-top:auto;backdrop-filter:blur(4px);transition:background .4s,color .4s,border-color .4s;}
.case:hover .case-side .tag{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.case-main{padding:36px 38px;}
.case-main .lab{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 7px;}
.case-main .lab:not(:first-child){margin-top:20px;}
.case-main p{font-size:15px;color:var(--muted);line-height:1.7;max-width:64ch;}
.case.soon-case{opacity:1;}
.case.soon-case .case-side .cic{background:linear-gradient(150deg,var(--gold-soft),var(--gold));}
.case-main .soon-body{display:flex;flex-direction:column;justify-content:center;height:100%;}

/* shared sub-components reused on multiple pages */
.stat-row{display:flex;gap:12px;margin:22px 0 6px;flex-wrap:wrap;}
.stat-pill{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 18px;flex:1;min-width:120px;}
.stat-pill .k{font-size:15px;font-weight:600;}
.stat-pill .v{font-size:12.5px;color:var(--faint);margin-top:3px;}
.quote{border-left:2.5px solid var(--gold);padding:4px 0 4px 20px;margin-top:24px;}
.quote p{font-family:'Newsreader',serif;font-style:italic;font-size:18px;color:var(--ink-2);line-height:1.6;max-width:60ch;}
.quote .by{font-family:'Hanken Grotesk',sans-serif;font-style:normal;font-size:13px;color:var(--faint);margin-top:10px;}
.soon{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 12px;border-radius:100px;
  background:var(--paper-2);color:var(--muted);border:1px solid var(--line);}

/* ---------- TIMELINE (home hover + about open) ---------- */
.timeline{display:grid;grid-template-columns:1fr;gap:0;position:relative;margin-top:10px;}
.tl-item{display:grid;grid-template-columns:200px 1fr;gap:40px;padding:30px 0;border-top:1px solid var(--line);position:relative;
  cursor:default;transition:padding .45s var(--ease);}
.tl-item:last-child{border-bottom:1px solid var(--line);}
.tl-phase{display:flex;flex-direction:column;gap:12px;}
.tl-marker{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.08em;transition:color .3s;}
.tl-dot{width:13px;height:13px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px rgba(245,179,66,.12);transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.tl-yr{font-family:'Newsreader',serif;font-size:34px;font-weight:400;letter-spacing:-.01em;color:var(--ink);padding-left:25px;transition:color .3s,transform .45s var(--ease);}
.tl-body{align-self:center;}
.tl-body h3{font-size:21px;font-weight:600;letter-spacing:-.01em;transition:color .35s var(--ease);}
/* smooth grid-rows reveal — collapses cleanly with no max-height easing artefacts */
.tl-rev{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease);}
.tl-rev>p{overflow:hidden;min-height:0;opacity:0;transform:translateY(6px);
  font-size:15.5px;color:var(--muted);line-height:1.72;max-width:62ch;
  transition:opacity .5s var(--ease),transform .55s var(--ease);}
.tl-item:hover h3,.tl-item:focus-within h3{color:var(--gold-deep);}
.tl-item:hover .tl-rev,.tl-item:focus-within .tl-rev{grid-template-rows:1fr;}
.tl-item:hover .tl-rev>p,.tl-item:focus-within .tl-rev>p{opacity:1;transform:none;margin-top:11px;}
.tl-item:hover .tl-yr,.tl-item:focus-within .tl-yr{transform:translateX(4px);}
.tl-item:hover .tl-dot,.tl-item:focus-within .tl-dot{transform:scale(1.18);box-shadow:0 0 0 6px rgba(245,179,66,.18);}
.tl-item:hover .tl-marker,.tl-item:focus-within .tl-marker{color:var(--gold-deep);}
.tl-hint{font-size:12px;color:var(--faint);display:flex;align-items:center;gap:6px;margin-top:6px;transition:opacity .35s var(--ease),transform .35s var(--ease);}
.tl-hint i{font-size:14px;}
.tl-item:hover .tl-hint,.tl-item:focus-within .tl-hint{opacity:0;transform:translateY(-3px);}
/* always-open variant */
.timeline.open .tl-rev{grid-template-rows:1fr;}
.timeline.open .tl-rev>p{opacity:1;transform:none;margin-top:12px;}
.timeline.open .tl-hint{display:none;}
.timeline.open .tl-item{cursor:default;}

/* ---------- CHAPTERS (about — stacked expanding boxes) ---------- */
.chapters{display:flex;flex-direction:column;gap:16px;margin-top:26px;}
.chap{position:relative;display:grid;grid-template-columns:300px 1fr;align-items:stretch;
  background:var(--white);border:1px solid var(--line);border-radius:20px;overflow:hidden;
  cursor:pointer;outline:none;will-change:transform;
  transition:border-color .85s cubic-bezier(.4,0,.2,1),box-shadow .85s cubic-bezier(.4,0,.2,1),transform .85s cubic-bezier(.4,0,.2,1);}
.chap:hover,.chap:focus-within{border-color:var(--gold-soft);
  box-shadow:0 24px 50px -32px rgba(22,21,15,.38);transform:translateY(-2px);}
/* accent rail */
.chap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;z-index:4;
  background:var(--accent,var(--gold));transform:scaleY(0);transform-origin:top;
  transition:transform .85s cubic-bezier(.4,0,.2,1);}
.chap:hover::before,.chap:focus-within::before{transform:scaleY(1);}

.chap-img{position:relative;min-height:160px;background-size:cover;background-position:center;
  filter:saturate(.88);transform:scale(1.03);
  transition:transform .85s cubic-bezier(.4,0,.2,1),filter .85s cubic-bezier(.4,0,.2,1);will-change:transform;}
.chap:hover .chap-img,.chap:focus-within .chap-img{transform:scale(1);filter:saturate(1.03);}
.chap-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 72%,var(--white) 100%);}

.chap-content{padding:30px 36px;min-width:0;}
.chap-head{display:flex;align-items:baseline;gap:14px;margin-bottom:12px;}
.chap-num{font-family:'Newsreader',serif;font-size:42px;font-weight:400;line-height:.9;
  color:var(--gold-deep);letter-spacing:-.02em;}
.chap-tag{position:relative;top:-2px;font-size:12px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink);padding-bottom:5px;
  border-bottom:2px solid var(--accent,var(--gold));}
.chap-phase{display:block;font-size:11.5px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint);margin-bottom:6px;}
.chap-title{font-family:'Newsreader',serif;font-size:26px;font-weight:400;line-height:1.18;
  letter-spacing:-.01em;color:var(--ink);text-wrap:balance;transition:color .55s cubic-bezier(.4,0,.2,1);}
.chap:hover .chap-title,.chap:focus-within .chap-title{color:var(--gold-deep);}
.chap-rev{max-height:0;overflow:hidden;
  transition:max-height .85s cubic-bezier(.4,0,.2,1);}
.chap-rev>p{opacity:0;transform:translateY(6px);margin-top:13px;
  font-size:15.5px;line-height:1.72;color:var(--muted);max-width:66ch;
  transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1);}
.chap:hover .chap-rev,.chap:focus-within .chap-rev{max-height:170px;}
.chap:hover .chap-rev>p,.chap:focus-within .chap-rev>p{opacity:1;transform:none;}
.chap-hint{display:inline-flex;align-items:center;gap:6px;height:16px;margin-top:14px;overflow:hidden;box-sizing:border-box;
  font-size:11.5px;font-weight:600;letter-spacing:.05em;color:var(--faint);
  transition:opacity .45s cubic-bezier(.4,0,.2,1),transform .45s cubic-bezier(.4,0,.2,1),margin-top .85s cubic-bezier(.4,0,.2,1),height .85s cubic-bezier(.4,0,.2,1);}
.chap-hint i{font-size:14px;color:var(--gold-deep);}
.chap:hover .chap-hint,.chap:focus-within .chap-hint{opacity:0;transform:translateY(-3px);
  height:0;margin-top:0;pointer-events:none;}

/* ---------- ACCORDION (home) ---------- */
.acc{display:flex;flex-direction:column;gap:14px;}
.acc-item{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  transition:border-color .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease);}
.acc-item.active{border-color:var(--gold-soft);box-shadow:0 24px 60px -34px rgba(40,35,15,.34);}
.acc-item.locked{opacity:.78;background:linear-gradient(180deg,var(--white),var(--paper));}
.acc-btn{width:100%;background:none;border:none;cursor:pointer;text-align:left;display:flex;align-items:center;gap:20px;padding:24px 28px;font-family:inherit;transition:background .3s;}
.acc-btn:hover{background:#FFFDF7;}
.acc-item.locked .acc-btn{cursor:default;}
.acc-item.locked .acc-btn:hover{background:none;}
.acc-ic{width:54px;height:54px;border-radius:14px;background:linear-gradient(150deg,var(--gold-soft),var(--gold));
  display:grid;place-items:center;font-size:25px;color:var(--ink);flex-shrink:0;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.acc-btn:hover .acc-ic{transform:translateY(-2px) rotate(-3deg);}
.acc-item.active .acc-ic{transform:scale(1.05);box-shadow:0 10px 22px -10px rgba(239,159,39,.6);}
.acc-meta{flex:1;min-width:0;}
.acc-meta h3{font-size:19px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;flex-wrap:wrap;transition:color .3s;}
.acc-item.active .acc-meta h3{color:var(--gold-deep);}
.acc-meta .loc{font-size:14px;color:var(--faint);margin-top:4px;}
.acc-tag{font-size:12px;font-weight:600;padding:5px 13px;border-radius:100px;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line);flex-shrink:0;transition:background .3s,color .3s,border-color .3s;}
.acc-item.active .acc-tag{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.acc-chev{font-size:22px;color:var(--faint);transition:transform .45s var(--ease),color .3s;flex-shrink:0;}
.acc-item.active .acc-chev{transform:rotate(180deg);color:var(--gold-deep);}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease);}
.acc-item.active .acc-body{grid-template-rows:1fr;}
.acc-body-inner{overflow:hidden;}
.acc-content{padding:6px 28px 30px 102px;}
.acc-content>*{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease);}
.acc-item.active .acc-content>*{opacity:1;transform:none;}
.acc-item.active .acc-content>*:nth-child(1){transition-delay:.12s;}
.acc-item.active .acc-content>*:nth-child(2){transition-delay:.17s;}
.acc-item.active .acc-content>*:nth-child(3){transition-delay:.22s;}
.acc-item.active .acc-content>*:nth-child(4){transition-delay:.27s;}
.acc-item.active .acc-content>*:nth-child(5){transition-delay:.32s;}
.acc-item.active .acc-content>*:nth-child(6){transition-delay:.37s;}
.acc-content .lab{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-deep);margin:18px 0 7px;}
.acc-content p{font-size:15px;color:var(--muted);line-height:1.7;max-width:64ch;}

/* ---------- PROCESS CARDS ---------- */
.proc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.proc{padding:34px 30px;border:1px solid var(--line);border-radius:18px;background:var(--white);position:relative;overflow:hidden;
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s var(--ease);}
.proc::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(165deg, var(--gold-soft), var(--gold) 60%, var(--gold-deep));
  opacity:0;transform:translateY(38%) scale(1.04);transition:opacity .6s var(--ease),transform .7s var(--ease);}
.proc>*{position:relative;z-index:1;}
.proc:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 26px 50px -24px rgba(239,159,39,.55);}
.proc:hover::before{opacity:1;transform:translateY(0) scale(1);}
.proc .pn{font-family:'Newsreader',serif;font-size:46px;color:var(--gold);line-height:1;margin-bottom:20px;font-weight:400;transition:color .55s var(--ease),transform .6s var(--ease);}
.proc:hover .pn{color:var(--ink);transform:translateY(-2px);}
.proc h3{font-size:19px;font-weight:600;letter-spacing:-.01em;margin-bottom:10px;transition:color .55s var(--ease);}
.proc p{font-size:15px;color:var(--muted);line-height:1.65;transition:color .55s var(--ease);}
.proc:hover h3{color:var(--ink);}
.proc:hover p{color:rgba(22,21,15,.78);}
.proc-line{position:absolute;top:54px;right:-24px;width:24px;height:1px;background:var(--line);z-index:1;}

/* ---------- COMMITMENTS ---------- */
.com-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.com{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:30px 28px;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);}
.com::before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;
  background:radial-gradient(120% 100% at 50% 120%, #1f1d14, var(--ink) 70%);
  transform:translateY(100%);transition:transform .5s var(--ease);z-index:0;}
.com>*{position:relative;z-index:1;}
.com:hover{transform:translateY(-4px);border-color:var(--ink);box-shadow:0 24px 50px -28px rgba(22,21,15,.5);}
.com:hover::before{transform:translateY(0);}
.com .ic{font-size:26px;color:var(--gold-deep);margin-bottom:18px;display:grid;width:52px;height:52px;border-radius:13px;
  background:var(--paper);place-items:center;transition:background .45s var(--ease),color .45s var(--ease),transform .45s var(--ease);}
.com:hover .ic{background:var(--gold);color:var(--ink);transform:rotate(-6deg) scale(1.05);}
.com h3{font-size:19px;font-weight:600;letter-spacing:-.01em;margin-bottom:9px;transition:color .4s var(--ease);}
.com p{font-size:15px;color:var(--muted);line-height:1.65;transition:color .4s var(--ease);}
.com:hover h3{color:#fff;}
.com:hover p{color:rgba(255,255,255,.72);}

/* ---------- CTA ---------- */
.cta-band{padding:110px 0;position:relative;}
.cta-card{background:radial-gradient(120% 130% at 0% 0%, #1f1d14, #16150F 60%);
  border-radius:28px;padding:72px 56px;text-align:center;position:relative;overflow:hidden;color:#fff;}
.cta-card::before{content:"";position:absolute;inset:0;
  background:radial-gradient(60% 80% at 80% 110%, rgba(245,179,66,.45), transparent 60%);}
.cta-card::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:54px 54px;-webkit-mask-image:radial-gradient(60% 60% at 50% 0%,#000,transparent 70%);mask-image:radial-gradient(60% 60% at 50% 0%,#000,transparent 70%);}
.cta-card>*{position:relative;z-index:1;}
.cta-card .eyebrow{color:var(--gold-soft);}
.cta-card .eyebrow::before{background:var(--gold);}
.cta-card h2{font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:-.02em;font-weight:600;margin:20px auto 18px;max-width:18ch;}
.cta-card h2 .accent{font-family:'Newsreader',serif;font-style:italic;font-weight:400;color:var(--gold-soft);}
.cta-card p{font-size:18px;color:rgba(255,255,255,.72);max-width:50ch;margin:0 auto 34px;line-height:1.65;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:#fff;padding:80px 0 40px;}
.ft-grid{display:grid;grid-template-columns:0.82fr 2fr;gap:clamp(36px,5vw,64px);align-items:start;}
.ft-brand{padding-top:6px;}
.ft-logo{display:flex;align-items:center;gap:14px;}
.ft-logo img{width:54px;height:54px;object-fit:contain;}
.ft-logo .ft-name{font-family:'Marcellus',serif;text-transform:uppercase;font-size:28px;font-weight:400;letter-spacing:.08em;color:#fff;}
.ft-desc{font-size:14px;color:rgba(255,255,255,.5);line-height:1.75;margin-top:24px;max-width:32ch;}
.ft-desc.ft-sig{font-family:'Newsreader',serif;font-style:italic;font-size:20px;color:rgba(255,255,255,.62);line-height:1.5;}
/* bordered card */
.ft-card{border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:clamp(32px,3.4vw,46px) clamp(28px,3.6vw,52px);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));}
.ft-cols{display:grid;grid-template-columns:1.5fr 1fr 1.25fr;gap:clamp(24px,3vw,40px);}
.ft-col h4{font-size:18px;font-weight:500;color:#fff;margin-bottom:20px;letter-spacing:-.01em;}
.ft-col a{display:block;font-size:15px;color:rgba(255,255,255,.6);padding:8px 0;transition:color .2s var(--ease),transform .2s var(--ease);width:fit-content;}
.ft-col a:hover{color:var(--gold-soft);transform:translateX(4px);}
.ft-quick h4{text-align:center;}
.ft-quick .ft-linklist{display:grid;grid-template-columns:auto auto;justify-content:center;column-gap:clamp(32px,4vw,68px);}
.ft-reach .ft-line{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:rgba(255,255,255,.6);padding:8px 0;transition:color .2s var(--ease);}
a.ft-line:hover{color:var(--gold-soft);}
.ft-reach .ft-line i{color:var(--gold);font-size:18px;margin-top:1px;flex-shrink:0;}
.ft-card-cc{text-align:center;margin-top:38px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);
  font-size:14px;color:rgba(255,255,255,.45);}
@media (max-width:900px){
  .ft-grid{grid-template-columns:1fr;gap:34px;}
  .ft-cols{grid-template-columns:1fr 1fr;gap:30px;}
  .ft-quick{grid-column:1 / -1;}
  .ft-quick h4{text-align:left;}
  .ft-quick .ft-linklist{justify-content:start;}
}
@media (max-width:560px){ .ft-cols{grid-template-columns:1fr;gap:24px;} }

/* ---------- WATERMARKS ---------- */
.band,.hero,.cta-band,.subhero{position:relative;}
.band.wm-band,.subhero.wm-band{overflow:hidden;}
.band>.wrap,.hero>.wrap,.cta-band>.wrap,.subhero>.wrap{position:relative;z-index:1;}
.wm{position:absolute;z-index:0;pointer-events:none;user-select:none;
  width:min(48vw,620px);opacity:.14;will-change:transform;top:0;
  filter:drop-shadow(0 0 1px rgba(239,159,39,.8)) drop-shadow(0 6px 22px rgba(239,159,39,.22));}
.wm.l{left:-9%;}
.wm.r{right:-11%;}
@media (prefers-reduced-motion:reduce){.wm{display:none;}}
@media (max-width:700px){.wm{width:78vw;opacity:.10;}}

/* ---------- SCROLL PROGRESS RAIL ---------- */
.scroll-rail{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;align-items:center;padding:6px 0;}
.scroll-rail .track{position:absolute;top:6px;bottom:6px;width:2px;background:var(--line);border-radius:2px;}
.scroll-rail .fill{position:absolute;top:6px;width:2px;height:0;border-radius:2px;
  background:linear-gradient(180deg,var(--gold-soft),var(--gold) 50%,var(--gold-deep));
  box-shadow:0 0 8px rgba(245,179,66,.5);transition:height .12s linear;}
.rail-dot{position:relative;width:11px;height:11px;border-radius:50%;background:var(--white);
  border:1.5px solid var(--line);margin:11px 0;cursor:pointer;z-index:1;
  transition:transform .35s var(--ease),border-color .35s,background .35s;}
.rail-dot::after{content:attr(data-label);position:absolute;right:24px;top:50%;transform:translateY(-50%) translateX(6px);
  white-space:nowrap;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--ink);
  background:var(--white);border:1px solid var(--line);border-radius:100px;padding:5px 12px;
  box-shadow:0 8px 22px -10px rgba(40,35,15,.3);opacity:0;pointer-events:none;
  transition:opacity .3s var(--ease),transform .3s var(--ease);}
.rail-dot:hover{border-color:var(--gold);transform:scale(1.25);}
.rail-dot:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
.rail-dot.passed{border-color:var(--gold);background:var(--gold-soft);}
.rail-dot.active{border-color:var(--gold);background:var(--gold);transform:scale(1.35);box-shadow:0 0 0 4px rgba(245,179,66,.18);}
@media (max-width:1040px){.scroll-rail{display:none;}}

/* ---------- REVEAL ---------- */
.js-anim .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.js-anim .reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}.reveal.d2{transition-delay:.16s;}.reveal.d3{transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){.js-anim .reveal{opacity:1;transform:none;transition:none;}}

/* ---------- COMPACT TEASER CARDS (home) ---------- */
.mini-grid{display:grid;gap:18px;}
.mini-grid.c4{grid-template-columns:repeat(4,1fr);}
.mini-grid.c3{grid-template-columns:repeat(3,1fr);}
.mini{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px 24px;position:relative;display:block;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s;}
.mini:hover{transform:translateY(-4px);box-shadow:0 22px 46px -30px rgba(40,35,15,.26);border-color:var(--gold-soft);}
.mini .mph{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);display:flex;align-items:center;gap:9px;}
.mini .mdot{width:11px;height:11px;border-radius:50%;flex-shrink:0;}
.mini .myr{font-family:'Newsreader',serif;font-size:25px;color:var(--ink);margin:12px 0 8px;letter-spacing:-.01em;}
.mini h3{font-size:16px;font-weight:600;letter-spacing:-.01em;margin-bottom:7px;}
.mini p{font-size:13.5px;color:var(--muted);line-height:1.6;}
.mini .mic{width:46px;height:46px;border-radius:12px;background:linear-gradient(150deg,var(--gold-soft),var(--gold));display:grid;place-items:center;font-size:22px;color:var(--ink);margin-bottom:16px;transition:transform .35s var(--ease);}
.mini:hover .mic{transform:rotate(-5deg) scale(1.05);}
.mini .mtag{font-size:11.5px;font-weight:600;color:var(--gold-deep);margin-top:10px;display:inline-flex;align-items:center;gap:5px;}

/* thumbnail variant — full-bleed image header on a teaser card */
.mini.has-thumb{padding:0;overflow:hidden;display:flex;flex-direction:column;}
.mini .mthumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2);}
.mini .mthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(.95) contrast(1.02);transform:scale(1.04);transition:transform .8s var(--ease);}
.mini.has-thumb:hover .mthumb img{transform:scale(1.1);}
.mini .mthumb-ov{position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(20,15,6,.04) 0%, rgba(20,15,6,.12) 55%, rgba(20,15,6,.34) 100%);}
.mini .mthumb-ic{position:absolute;left:16px;bottom:14px;width:42px;height:42px;border-radius:12px;
  background:linear-gradient(150deg,var(--gold-soft),var(--gold));display:grid;place-items:center;
  font-size:20px;color:var(--ink);box-shadow:0 12px 24px -10px rgba(0,0,0,.45);transition:transform .4s var(--ease);}
.mini.has-thumb:hover .mthumb-ic{transform:rotate(-5deg) scale(1.06);}
.mini .mbody{padding:22px 24px 26px;}
.mini.has-thumb .myr{margin-top:0;}
/* track-record market cards — slightly larger tags */
#track .mini .mtag{font-size:13px;gap:6px;}
#track .mini .mtag i{font-size:14px;}
/* bigger corner radius + warm shadowy highlight on hover */
#track .mini.has-thumb{border-radius:22px;}
#track .mini.has-thumb .mthumb{border-radius:22px 22px 0 0;}
#track .mini.has-thumb:hover{transform:translateY(-6px);border-color:var(--gold);
  box-shadow:0 30px 60px -22px rgba(150,100,15,.52),
             0 0 0 1px rgba(245,179,66,.5),
             0 0 34px 2px rgba(245,179,66,.32);}

/* ---------- HUMAN-PHOTO HEADER (service + process cards) ---------- */
.scard.has-photo{padding:0;}
.proc.has-photo{padding:0;overflow:hidden;}
.scard.has-photo .cphoto{border-radius:18px 18px 0 0;}
.cphoto{position:relative;aspect-ratio:16/9;overflow:hidden;
  background:linear-gradient(150deg,var(--gold-soft),var(--gold) 68%,var(--gold-deep));}
.cphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;
  filter:saturate(.97) contrast(1.02);transform:scale(1.04);transition:transform .8s var(--ease);}
.scard.has-photo:hover .cphoto img,.proc.has-photo:hover .cphoto img{transform:scale(1.1);}
.cphoto-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,6,.04),rgba(20,15,6,.24));}
.cbody{padding:30px 28px 32px;position:relative;}

/* service card with photo: gold icon becomes an overlapping badge, num sits white over the photo */
.scard.has-photo .cbody{padding-top:38px;}
.scard.has-photo .ic{position:absolute;top:-26px;left:28px;margin:0;z-index:3;
  box-shadow:0 14px 26px -10px rgba(0,0,0,.42);}
.scard.has-photo .num{color:rgba(255,255,255,.94);z-index:3;text-shadow:0 1px 10px rgba(0,0,0,.4);}

/* process card with photo: drop the gold fill-on-hover, keep the step number, calmer hover */
.proc.has-photo::before{display:none;}
.proc.has-photo:hover{border-color:var(--gold-soft);box-shadow:0 24px 50px -28px rgba(40,35,15,.3);}

/* heading underline + text pop on hover */
#what .scard.has-photo h3{position:relative;display:inline-block;transition:color .04s var(--ease);}
#what .scard.has-photo h3::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;border-radius:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .04s var(--ease);}
#what .scard.has-photo:hover h3{color:var(--gold-deep);transition:color .4s var(--ease);}
#what .scard.has-photo:hover h3::after{transform:scaleX(1);transition:transform .5s var(--ease);}

/* ---------- ANIMATED HOVER HIGHLIGHTS (varied direction per section) ---------- */
.hl{position:absolute;inset:1.5px;pointer-events:none;z-index:4;overflow:visible;}
.hl rect{fill:none;stroke:var(--gold);stroke-width:2.5;stroke-linecap:round;
  stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .05s var(--ease);}
.mini.has-thumb:hover .hl rect,.proc.has-photo:hover .hl rect{stroke-dashoffset:0;transition-duration:.95s;}
.hl.hl-ccwTR{transform:scaleX(-1);}     /* counter-clockwise, starts top-right */
.hl.hl-cwBR{transform:rotate(180deg);}  /* clockwise, starts bottom-right */
.hl.hl-ccwBL{transform:scaleY(-1);}     /* counter-clockwise, starts bottom-left */
/* bottom-to-top fill (track record) — confined to the text box only */
#track .mini.has-thumb .mbody{position:relative;flex:1;display:flex;flex-direction:column;}
#track .mini.has-thumb .mbody > :not(.hlfill):not(.hl-edge){position:relative;z-index:1;}
.hlfill{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(0deg, rgba(245,179,66,.28), rgba(245,179,66,.08) 60%, transparent 92%);
  clip-path:inset(100% 0 0 0);transition:clip-path .04s var(--ease);}
.mini.has-thumb:hover .hlfill{clip-path:inset(0 0 0 0);transition-duration:.7s;}
.mini.has-thumb .hl-edge{position:absolute;left:0;right:0;bottom:0;height:2.5px;z-index:2;
  background:var(--gold);transform:scaleX(0);transform-origin:center;
  transition:transform .04s var(--ease);pointer-events:none;}
.mini.has-thumb:hover .hl-edge{transform:scaleX(1);transition-duration:.5s;}
@media (prefers-reduced-motion:reduce){
  .hl rect,.hlfill,.hl-edge{transition:none;}
}

/* ---------- OUR STORY — narrative "chapter mark" hover (no border box) ---------- */
#story .mini.has-thumb:hover{border-color:var(--line);}
#story .mini.has-thumb .mbody{position:relative;}
/* gold marker line strikes across under the photo */
#story .mini.has-thumb .mbody::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft));transform:scaleX(0);transform-origin:left;
  transition:transform .04s var(--ease);z-index:2;}
#story .mini.has-thumb:hover .mbody::before{transform:scaleX(1);transition-duration:.55s;}
/* phase dot pulses a gold ring */
#story .mini .mph .mdot{position:relative;}
#story .mini .mph .mdot::after{content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1.5px solid var(--gold);opacity:0;transform:scale(.5);}
#story .mini.has-thumb:hover .mph .mdot::after{animation:storyPulse 1.7s var(--ease) infinite;}
@keyframes storyPulse{0%{opacity:.7;transform:scale(.55);}70%{opacity:0;transform:scale(2.1);}100%{opacity:0;transform:scale(2.1);}}
#story .mini.has-thumb:hover .mph{color:var(--gold-deep);}
/* chapter title gets an ink underline written left-to-right */
#story .mini .myr{position:relative;display:inline-block;}
#story .mini .myr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .04s var(--ease);}
#story .mini.has-thumb:hover .myr::after{transform:scaleX(1);transition:transform .6s var(--ease) .12s;}
@media (prefers-reduced-motion:reduce){
  #story .mini.has-thumb .mbody::before,#story .mini .myr::after{transition:none;}
  #story .mini.has-thumb:hover .mph .mdot::after{animation:none;}
}

/* ---------- OUR WORK — "viewfinder" hover (corner brackets + live-link arrow) ---------- */
#work .mini.has-thumb:hover{border-color:var(--line);}
#work .mini.has-thumb .mthumb::before,
#work .mini.has-thumb .mthumb::after{content:"";position:absolute;width:36px;height:36px;z-index:3;
  border:3px solid var(--gold);opacity:0;pointer-events:none;
  filter:drop-shadow(0 2px 8px rgba(245,179,66,.55));
  transition:opacity .04s var(--ease),transform .04s var(--ease);}
#work .mini.has-thumb .mthumb::before{top:13px;left:13px;border-right:none;border-bottom:none;border-radius:7px 0 0 0;
  transform:translate(-10px,-10px) scale(.85);}
#work .mini.has-thumb .mthumb::after{bottom:13px;right:13px;border-left:none;border-top:none;border-radius:0 0 7px 0;
  transform:translate(10px,10px) scale(.85);}
#work .mini.has-thumb:hover .mthumb::before,
#work .mini.has-thumb:hover .mthumb::after{opacity:1;transform:translate(0,0) scale(1);
  transition:opacity .4s var(--ease),transform .5s var(--ease);}
/* subtle darkening so the gold brackets pop off the photo */
#work .mini.has-thumb .mthumb-ov{transition:background .04s var(--ease);}
#work .mini.has-thumb:hover .mthumb-ov{background:linear-gradient(180deg, rgba(20,15,6,.22) 0%, rgba(20,15,6,.16) 50%, rgba(20,15,6,.42) 100%);transition:background .45s var(--ease);}
/* live-link arrow nudges up-and-out, label warms */
#work .mini .mtag i{transition:transform .04s var(--ease);}
#work .mini.has-thumb:hover .mtag i{transform:translate(4px,-4px) scale(1.12);transition:transform .4s var(--ease);}
/* text box responds to the focus: title slides + warms, tag underlines like a link */
#work .mini h3{transition:transform .04s var(--ease),color .04s var(--ease);}
#work .mini.has-thumb:hover h3{transform:translateX(5px);color:var(--gold-deep);
  transition:transform .45s var(--ease),color .45s var(--ease);}
#work .mini p{transition:transform .04s var(--ease);}
#work .mini.has-thumb:hover p{transform:translateX(5px);transition:transform .5s var(--ease) .04s;}
#work .mini .mtag{position:relative;}
#work .mini .mtag::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1.5px;border-radius:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .04s var(--ease);}
#work .mini.has-thumb:hover .mtag::after{transform:scaleX(1);transition:transform .5s var(--ease) .1s;}

/* ---------- OUR APPROACH — "step indicator" hover (progress ring sweeps the number) ---------- */
#process .proc.has-photo:hover{border-color:rgba(245,179,66,.32);
  box-shadow:0 34px 64px -26px rgba(150,100,15,.5), 0 8px 22px -12px rgba(150,100,15,.32);
  transform:translateY(-5px);}
#process .proc.has-photo .pn{position:relative;width:74px;height:74px;display:grid;place-items:center;
  border-radius:50%;font-size:34px;margin-bottom:18px;color:var(--gold);
  transition:color .04s var(--ease),transform .04s var(--ease);}
#process .proc.has-photo:hover .pn{color:var(--gold-deep);transform:scale(1.05);
  transition:color .5s var(--ease),transform .5s var(--ease);}
#process .proc.has-photo .pn .pring{position:absolute;inset:0;width:100%;height:100%;
  transform:rotate(-90deg);overflow:visible;pointer-events:none;}
#process .proc.has-photo .pn .pring .track{fill:none;stroke:rgba(228,225,215,.8);stroke-width:3;}
#process .proc.has-photo .pn .pring .bar{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round;
  stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .04s var(--ease);}
#process .proc.has-photo:hover .pn .pring .bar{stroke-dashoffset:0;
  filter:drop-shadow(0 0 5px rgba(245,179,66,.6));transition:stroke-dashoffset .9s var(--ease);}
@media (prefers-reduced-motion:reduce){
  #process .proc.has-photo .pn .pring .bar{transition:none;}
}
@media (prefers-reduced-motion:reduce){
  #work .mini.has-thumb .mthumb::before,#work .mini.has-thumb .mthumb::after{transition:none;}
  #work .mini.has-thumb:hover .mtag i{transform:none;}
}
.proc.has-photo:hover h3,.proc.has-photo:hover p{color:inherit;}
.proc.has-photo:hover .pn{color:var(--gold-deep);}
.proc.has-photo .cbody{padding-top:26px;}
.proc.has-photo .pn{margin-bottom:14px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .nav-links,.hero-cta .or{display:none;}
  .menu-toggle{display:block;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .grid-3,.grid-2,.proc-grid,.com-grid{grid-template-columns:1fr;}
  .tl-item{grid-template-columns:1fr;gap:16px;}
  .tl-yr{padding-left:25px;font-size:28px;}
  .chapters{gap:14px;}
  .chap{grid-template-columns:240px 1fr;}
  .chap-img::after{background:linear-gradient(90deg,transparent 80%,var(--white) 100%);}
  .proc-line{display:none;}
  .acc-content{padding-left:28px;}
  .cta-card{padding:54px 28px;}
  section.band{padding:76px 0;}
  .feat{grid-template-columns:1fr;gap:30px;padding:46px 0;}
  .feat.flip .feat-visual{order:0;}
  .feat-visual{aspect-ratio:1/0.6;}
  .feat-visual i{font-size:88px;}
  .case{grid-template-columns:1fr;}
  .case-side{flex-direction:row;align-items:center;flex-wrap:wrap;min-height:180px;}
  .case-side .tag{margin-top:0;}
  .case-side h3{flex:1;min-width:60%;}
  .step{grid-template-columns:1fr;gap:18px;padding:38px 0;}
  .step .sn{font-size:48px;}
  .step-visual{aspect-ratio:16/9;order:3;}
  .mini-grid.c4,.mini-grid.c3{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .stat-grid{grid-template-columns:1fr;}
  .acc-btn{padding:20px;gap:14px;}
  .acc-tag{display:none;}
  .case-main{padding:26px 24px;}
  .mini-grid.c4,.mini-grid.c3{grid-template-columns:1fr;}
  .chap{grid-template-columns:1fr;}
  .chap-img{min-height:150px;}
  .chap-img::after{background:linear-gradient(0deg,var(--white) 0%,transparent 36%);}
  .chap-content{padding:22px 24px 26px;}
  .chap-rev{max-height:240px;}
  .chap-rev>p{opacity:1;transform:none;margin-top:12px;}
  .chap-hint{display:none;}
  .chap::before{transform:scaleY(1);}
}
