/* =====================================================================
   MOTUS — independent financial advisory & management house
   Royal purple #4808E0 · AT Aero (web license) → Schibsted/Hanken fallback
   ===================================================================== */

/* AT Aero — drop the licensed .woff2 files in assets/fonts/ to activate */
@font-face{ font-family:"AT Aero"; src:url("assets/fonts/ATAero-Light.woff2") format("woff2"); font-weight:300; font-style:normal; font-display:swap; }
@font-face{ font-family:"AT Aero"; src:url("assets/fonts/ATAero-Retina.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:"AT Aero"; src:url("assets/fonts/ATAero-Semibold.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:"AT Aero"; src:url("assets/fonts/ATAero-Bold.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }

:root{
  --royal:#4808E0; --royal-700:#3705a6; --royal-300:#8a6cf4; --royal-50:#f2eefe;
  --blue:#0066ff; --indigo:#001489;
  --ink:#0c0a16; --night:#08060f; --night-2:#13102a;
  --paper:#faf9fd; --paper-2:#f1eef9; --paper-3:#e8e2f4;
  --line:rgba(12,10,22,.13); --line-2:rgba(12,10,22,.07);
  --line-dark:rgba(255,255,255,.14);
  --muted:#54506a; --paper-on-night:rgba(250,249,253,.64);
  --maxw:1320px; --gutter:clamp(22px,5vw,84px);

  --display:"AT Aero","Schibsted Grotesk","Helvetica Neue",Arial,sans-serif;
  --sans:"AT Aero","Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --e-out:cubic-bezier(.19,1,.22,1); --e-inout:cubic-bezier(.76,0,.24,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg{ display:block; max-width:100%; } a{ color:inherit; text-decoration:none; }
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); position:relative; z-index:2; }

.skip-link{ position:fixed; top:8px; left:8px; z-index:10000; background:var(--royal); color:#fff; padding:12px 20px; border-radius:4px; font-weight:600; transform:translateY(-160%); transition:transform .25s var(--e-out); }
.skip-link:focus{ transform:translateY(0); }
:focus-visible{ outline:2px solid var(--royal); outline-offset:3px; border-radius:2px; }
.section-dark :focus-visible,.cta-band :focus-visible,.site-footer :focus-visible,.topbar :focus-visible{ outline-color:#fff; }
main:focus{ outline:none; }

/* type */
h1,h2,h3,h4{ font-family:var(--display); font-weight:600; letter-spacing:-.02em; line-height:1.05; margin:0; }
.eyebrow{ font-family:var(--mono); font-size:.74rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--royal); margin:0 0 22px; display:inline-flex; align-items:center; gap:12px; }
.eyebrow::before{ content:attr(data-n); color:var(--royal); opacity:.55; }
.eyebrow.no-n::before{ content:""; width:28px; height:1px; background:var(--royal); }
.section-title{ font-size:clamp(1.9rem,4.2vw,3.2rem); }
.lead{ color:var(--muted); font-size:1.1rem; max-width:62ch; margin:22px 0 0; }
.kicker{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* buttons */
.btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--sans); font-weight:600; font-size:.95rem; padding:16px 30px; border-radius:2px; border:1px solid transparent; color:#fff; cursor:pointer; overflow:hidden; isolation:isolate; transition:color .5s var(--e-out),border-color .5s var(--e-out); will-change:transform; }
.btn::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--royal); transition:transform .6s var(--e-inout); }
.btn::after{ content:""; position:absolute; inset:0; z-index:-2; background:var(--ink); }
.btn:hover::before{ transform:translateY(-101%); }
.btn-sm{ padding:11px 20px; font-size:.85rem; }
.btn-ghost{ color:var(--ink); border-color:rgba(12,10,22,.28); }
.btn-ghost::before{ background:var(--royal); transform:translateY(101%); }
.btn-ghost::after{ background:transparent; }
.btn-ghost:hover{ color:#fff; border-color:var(--royal); } .btn-ghost:hover::before{ transform:translateY(0); }
.btn-light{ color:var(--royal); } .btn-light::before{ background:#fff; } .btn-light::after{ background:var(--royal-300); } .btn-light:hover{ color:var(--royal-700); }
.link-arrow{ font-weight:600; font-size:.95rem; color:var(--royal); display:inline-flex; align-items:center; gap:8px; width:max-content; }
.link-arrow svg{ width:18px; transition:transform .4s var(--e-out); } .link-arrow:hover svg{ transform:translateX(7px); }
.link-arrow.on-dark{ color:#fff; }

/* topbar */
.topbar{ background:var(--night); color:var(--paper-on-night); font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; padding:9px 0; position:relative; z-index:60; }
.topbar .container{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.topbar b{ color:#fff; font-weight:500; }
.topbar a{ color:var(--royal-300); }
.topbar a:hover{ color:#fff; }

/* header */
.site-header{ position:sticky; top:0; z-index:50; transition:transform .5s var(--e-inout),background .4s,border-color .4s,backdrop-filter .4s; border-bottom:1px solid transparent; }
.site-header.scrolled{ background:rgba(250,249,253,.82); backdrop-filter:saturate(160%) blur(16px); border-bottom-color:var(--line); }
.site-header.hide{ transform:translateY(-100%); }
.header-inner{ display:flex; align-items:center; gap:30px; height:84px; }
.brand{ display:inline-flex; align-items:center; gap:11px; }
.brand-img{ height:24px; width:auto; }
.main-nav{ display:flex; gap:32px; margin-left:auto; }
.main-nav a{ font-size:.93rem; font-weight:500; position:relative; padding:8px 0; }
.main-nav a::after{ content:""; position:absolute; left:0; bottom:2px; width:0; height:1.5px; background:var(--royal); transition:width .45s var(--e-out); }
.main-nav a:hover::after,.main-nav a[aria-current=page]::after{ width:100%; }
.header-actions{ display:flex; align-items:center; gap:18px; }
.lang-switch{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:.76rem; font-weight:500; color:var(--muted); }
.lang-switch button{ background:none; border:none; cursor:pointer; font:inherit; color:var(--muted); transition:color .3s; }
.lang-switch button.is-active{ color:var(--royal); }
.lang-switch button:hover{ color:var(--ink); }
.nav-toggle{ display:none; flex-direction:column; gap:6px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ width:26px; height:2px; background:var(--ink); transition:transform .4s var(--e-inout),opacity .3s; }
.nav-toggle[aria-expanded=true] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded=true] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded=true] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ---------------- HERO (asymmetric: statement + credentials panel) -------- */
.hero{ position:relative; overflow:hidden; padding:clamp(64px,9vw,118px) 0 clamp(48px,7vw,90px); }
.hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; background:
  radial-gradient(48% 70% at 90% -10%, rgba(72,8,224,.14), transparent 60%),
  radial-gradient(40% 60% at 4% 110%, rgba(0,102,255,.08), transparent 60%); }
.hero-inner{ position:relative; z-index:2; max-width:1040px; }
.hero-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1.55fr .85fr; gap:clamp(36px,5vw,72px); align-items:end; }
.trust-line{ margin-top:34px; padding-top:24px; border-top:1px solid var(--line); font-family:var(--mono); font-size:.73rem; letter-spacing:.06em; color:var(--muted); display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.trust-line .dot{ width:5px; height:5px; border-radius:50%; background:var(--royal); }
.trust-line a{ color:var(--royal); display:inline-flex; align-items:center; gap:6px; }
.trust-line a svg{ width:13px; }
.intro-statement{ font-family:var(--display); font-weight:600; font-size:clamp(1.7rem,3.4vw,2.7rem); letter-spacing:-.02em; line-height:1.18; max-width:24ch; }
.intro-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(36px,6vw,90px); align-items:start; }
@media (max-width:880px){ .intro-grid{ grid-template-columns:1fr; } }
.hero-title{ font-size:clamp(2.5rem,6.2vw,5rem); letter-spacing:-.03em; }
.hero-title .line{ display:block; overflow:hidden; } .hero-title .line>span{ display:block; }
.hero-title .accent{ color:var(--royal); }
.hero-sub{ color:var(--muted); font-size:clamp(1.05rem,1.6vw,1.28rem); max-width:52ch; margin:26px 0 34px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; }
/* credentials panel */
.panel{ border:1px solid var(--line); background:rgba(255,255,255,.5); backdrop-filter:blur(4px); }
.panel-row{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:18px 22px; border-bottom:1px solid var(--line); }
.panel-row:last-child{ border-bottom:none; }
.panel-row .k{ font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.panel-row .v{ font-family:var(--display); font-weight:600; font-size:1rem; text-align:right; }
.panel-row .v.big{ font-size:1.6rem; color:var(--royal); }
.panel-foot{ padding:16px 22px; background:var(--royal-50); }
.panel-foot a{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--royal); display:inline-flex; gap:7px; align-items:center; }
.panel-foot a svg{ width:14px; }

/* ticker */
.ticker{ background:var(--night); color:#fff; overflow:hidden; padding:15px 0; border-block:1px solid var(--line-dark); }
.ticker-track{ display:flex; width:max-content; animation:tick 46s linear infinite; }
.ticker:hover .ticker-track{ animation-play-state:paused; }
.ticker-track span{ font-family:var(--mono); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; padding:0 24px; display:inline-flex; align-items:center; gap:24px; white-space:nowrap; color:var(--paper-on-night); }
.ticker-track span b{ color:#fff; font-weight:500; }
.ticker-track span::after{ content:"/"; color:var(--royal-300); }
@keyframes tick{ to{ transform:translateX(-50%); } }

/* sections */
.section{ padding:clamp(70px,9vw,124px) 0; position:relative; }
.section-muted{ background:var(--paper-2); }
.section-head{ max-width:840px; margin-bottom:clamp(44px,6vw,66px); }

/* ---------------- CAPABILITIES INDEX (rows, not cards) ---------------- */
.cap-index{ border-top:1px solid var(--line); }
.cap-row{ display:grid; grid-template-columns:64px 1.1fr 1.6fr auto; gap:24px; align-items:center; padding:30px 8px; border-bottom:1px solid var(--line); position:relative; transition:background .4s var(--e-out), padding .4s var(--e-out); cursor:default; }
.cap-row::before{ content:""; position:absolute; left:0; top:0; height:100%; width:0; background:var(--royal); transition:width .45s var(--e-out); }
.cap-row:hover{ background:var(--royal-50); padding-left:22px; }
.cap-row:hover::before{ width:3px; }
.cap-n{ font-family:var(--mono); font-size:.86rem; color:var(--royal); }
.cap-row h3{ font-size:1.5rem; }
.cap-row p{ color:var(--muted); margin:0; font-size:.99rem; }
.cap-tags{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cap-tags span{ font-family:var(--mono); font-size:.66rem; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line); border-radius:100px; padding:5px 11px; white-space:nowrap; }
@media (max-width:880px){
  .cap-row{ grid-template-columns:48px 1fr; gap:8px 18px; align-items:start; padding:26px 6px; }
  .cap-row p{ grid-column:2; margin-top:6px; }
  .cap-tags{ grid-column:2; justify-content:flex-start; margin-top:12px; }
}

/* non-custody statement band */
.statement{ background:var(--royal); color:#fff; position:relative; overflow:hidden; }
.statement::before{ content:""; position:absolute; inset:0; background:radial-gradient(50% 120% at 90% 0%, rgba(0,102,255,.45), transparent 60%); opacity:.55; }
.statement-inner{ position:relative; z-index:2; padding:clamp(56px,7vw,92px) 0; display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; }
.statement h2{ font-size:clamp(1.7rem,3.4vw,2.6rem); color:#fff; }
.statement p{ color:rgba(255,255,255,.86); font-size:1.05rem; margin:0; }
.statement .mark{ width:54px; color:#fff; opacity:.9; margin-bottom:20px; }
@media (max-width:880px){ .statement-inner{ grid-template-columns:1fr; } }

/* dark section */
.section-dark{ background:var(--night); color:#fff; position:relative; overflow:hidden; }
.section-dark::before{ content:""; position:absolute; inset:0; opacity:.7; background:radial-gradient(46% 80% at 92% 8%, rgba(72,8,224,.3), transparent 60%); }
.section-dark .section-title{ color:#fff; } .section-dark .lead{ color:var(--paper-on-night); }
.section-dark .eyebrow,.section-dark .eyebrow::before{ color:var(--royal-300); }
.section-dark .eyebrow.no-n::before{ background:var(--royal-300); }

/* split */
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,90px); align-items:center; }
.stat-list{ list-style:none; margin:0; padding:0; }
.stat-list li{ padding:26px 0; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:7px; }
.stat-list li:last-child{ border-bottom:1px solid var(--line); }
.stat-list strong{ font-family:var(--display); font-weight:600; font-size:1.18rem; }
.stat-list span{ color:var(--muted); font-size:.98rem; }
.section-dark .stat-list li{ border-color:var(--line-dark); } .section-dark .stat-list span{ color:var(--paper-on-night); }

/* steps */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:32px; }
.steps li{ padding-top:28px; border-top:2px solid var(--ink); }
.step-n{ font-family:var(--mono); color:var(--royal); font-size:.9rem; }
.steps h3{ font-size:1.26rem; margin:16px 0 12px; } .steps p{ color:var(--muted); font-size:.95rem; margin:0; }

/* counters */
.counters{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.counter{ border-top:2px solid var(--royal); padding-top:20px; }
.counter .num{ font-family:var(--display); font-weight:600; font-size:clamp(2.5rem,5vw,3.6rem); line-height:1; font-variant-numeric:tabular-nums; }
.counter .lbl{ color:var(--muted); font-size:.93rem; margin-top:10px; }

/* page hero (subpages) */
.page-hero{ padding:clamp(60px,9vw,124px) 0 clamp(36px,5vw,64px); position:relative; overflow:hidden; }
.page-hero .hero-bg{ background:radial-gradient(50% 90% at 92% -20%, rgba(72,8,224,.12), transparent 60%); }
.page-hero-title{ font-size:clamp(2.3rem,5.6vw,4.2rem); letter-spacing:-.03em; max-width:18ch; }
.page-hero-sub{ color:var(--muted); font-size:clamp(1.04rem,1.5vw,1.22rem); max-width:58ch; margin:24px 0 0; }
.breadcrumb{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:24px; display:flex; gap:10px; }
.breadcrumb a:hover{ color:var(--royal); }

/* cta band */
.cta-band{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(55% 110% at 100% 0%, rgba(72,8,224,.5), transparent 60%); opacity:.7; }
.cta-band .mark{ position:absolute; left:-3%; top:50%; transform:translateY(-50%); width:clamp(220px,26vw,360px); color:#fff; opacity:.06; }
.cta-inner{ position:relative; z-index:2; text-align:center; padding:clamp(64px,9vw,112px) 0; max-width:840px; margin-inline:auto; }
.cta-inner h2{ font-size:clamp(1.9rem,3.8vw,2.8rem); color:#fff; }
.cta-inner p{ color:rgba(255,255,255,.82); margin:20px auto 36px; max-width:52ch; }

/* contact */
.contact-list{ list-style:none; margin:30px 0 0; padding:0; }
.contact-list li{ display:flex; flex-direction:column; gap:5px; padding:18px 0; border-top:1px solid var(--line); }
.contact-list .k{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--royal); }
.contact-list a{ font-weight:500; }
.contact-form{ background:var(--paper-2); border:1px solid var(--line); padding:clamp(30px,4vw,46px); }
.field{ margin-bottom:20px; } .field label{ display:block; font-size:.8rem; font-weight:600; margin-bottom:8px; }
.field input,.field textarea{ width:100%; font:inherit; font-size:.96rem; color:var(--ink); padding:13px 15px; border:1px solid rgba(12,10,22,.4); border-radius:3px; background:var(--paper); transition:border-color .3s,box-shadow .3s,background .3s; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--royal); box-shadow:0 0 0 3px rgba(72,8,224,.14); background:#fff; }
.field textarea{ resize:vertical; }
.contact-form .btn{ width:100%; }
.form-status{ font-size:.85rem; font-weight:600; color:var(--royal); margin:12px 0 0; min-height:1.2em; } .form-status:empty{ margin:0; }
.form-fine{ font-size:.78rem; color:var(--muted); margin:16px 0 0; }

/* footer */
.site-footer{ background:var(--night); color:var(--paper-on-night); padding-top:clamp(56px,7vw,84px); position:relative; z-index:2; }
.footer-inner{ display:grid; grid-template-columns:1.3fr 1.7fr; gap:52px 40px; padding-bottom:44px; border-bottom:1px solid var(--line-dark); }
.footer-brand .brand-img{ height:22px; }
.footer-tag{ color:rgba(255,255,255,.6); font-size:.93rem; margin:18px 0 0; max-width:34ch; }
.footer-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.footer-col h4{ font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--royal-300); margin:0 0 18px; }
.footer-nav{ display:flex; flex-direction:column; gap:13px; }
.footer-nav a{ font-size:.92rem; color:rgba(255,255,255,.76); transition:color .3s,padding-left .3s; } .footer-nav a:hover{ color:#fff; padding-left:5px; }
.footer-addr{ font-size:.9rem; line-height:1.6; color:rgba(255,255,255,.66); margin:0; } .footer-addr a:hover{ color:#fff; }
.footer-base{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:22px 0 34px; font-family:var(--mono); font-size:.7rem; letter-spacing:.04em; color:rgba(255,255,255,.5); }
.footer-base a{ color:rgba(255,255,255,.66); } .footer-base a:hover{ color:#fff; }

/* reveals */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--e-out),transform .9s var(--e-out); transition-delay:calc(var(--order,0)*60ms); }
.reveal.in{ opacity:1; transform:none; }
html.no-js .reveal,html.no-js .hero-title .line>span{ opacity:1!important; transform:none!important; }

/* page transition */
.page-transition{ position:fixed; inset:0; z-index:9999; background:var(--royal); display:flex; align-items:center; justify-content:center; transform:translateY(-100%); pointer-events:none; }
.page-transition .pt-mark{ width:58px; color:#fff; opacity:0; transition:opacity .3s; }
html.preload .page-transition{ transform:translateY(0); } html.preload .page-transition .pt-mark{ opacity:1; }
.page-transition.is-reveal{ transition:transform .7s var(--e-inout); transform:translateY(-100%); }

/* responsive */
@media (max-width:1000px){
  .hero-grid{ grid-template-columns:1fr; align-items:start; }
  .panel{ max-width:480px; }
  .steps,.counters{ grid-template-columns:repeat(2,1fr); }
  .split{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  body{ font-size:16px; }
  .main-nav{ display:none; } .nav-toggle{ display:flex; } .header-actions .btn-primary{ display:none; }
  .main-nav.open{ display:flex; flex-direction:column; gap:0; position:fixed; inset:84px 0 auto 0; background:var(--paper); border-bottom:1px solid var(--line); padding:10px var(--gutter) 26px; z-index:49; box-shadow:0 24px 60px rgba(12,10,22,.16); }
  .main-nav.open a{ padding:16px 0; border-bottom:1px solid var(--line-2); font-size:1.05rem; }
  .steps,.counters{ grid-template-columns:1fr; }
  .footer-cols{ grid-template-columns:1fr; }
  .topbar .container{ justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  .reveal,.hero-title .line>span{ opacity:1!important; transform:none!important; transition:none!important; }
  .ticker-track{ animation:none; } .page-transition{ display:none; }
}

/* ===================== MOTION & MONOGRAM (v2) ===================== */
/* scroll progress */
.scroll-progress{ position:fixed; top:0; left:0; height:2px; width:0; background:linear-gradient(90deg,var(--royal),var(--blue)); z-index:9998; }

/* page transition — show monogram on both enter and cover */
.page-transition .pt-mark{ width:80px; }
.page-transition.is-cover{ transition:transform .62s var(--e-inout); }
.page-transition.is-cover .pt-mark{ opacity:1; }

/* monogram watermarks (used sparingly) */
.wm{ position:absolute; pointer-events:none; z-index:0; }
.wm svg{ width:100%; height:auto; display:block; }
.hero .wm{ right:-3%; top:50%; transform:translateY(-50%); width:clamp(240px,33vw,480px); color:var(--royal); opacity:.06; will-change:transform; }
.cta-band .wm{ left:-3%; top:50%; transform:translateY(-50%); width:clamp(200px,24vw,360px); color:#fff; opacity:.08; }
.section-dark .wm{ right:-2%; bottom:-14%; width:clamp(220px,26vw,400px); color:#fff; opacity:.05; }
.page-hero .wm{ right:-3%; top:38%; width:clamp(200px,26vw,400px); color:var(--royal); opacity:.05; }
@keyframes floaty{ 0%,100%{ transform:translateY(-50%); } 50%{ transform:translateY(-56%); } }
.hero .wm.float{ animation:floaty 10s ease-in-out infinite; }

/* animated hero gradient drift */
.hero-bg, .page-hero .hero-bg{ animation:drift 20s ease-in-out infinite alternate; }
@keyframes drift{ from{ transform:translate3d(0,0,0) scale(1); } to{ transform:translate3d(2.5%,-2%,0) scale(1.06); } }

/* capability rows — richer hover */
.cap-row h3{ transition:transform .45s var(--e-out), color .3s; }
.cap-row:hover h3{ transform:translateX(6px); }
.cap-row .cap-n{ transition:color .3s, letter-spacing .4s var(--e-out); }
.cap-row:hover .cap-n{ letter-spacing:.06em; }

/* footer monogram */
.footer-mark{ width:26px; color:var(--royal-300); margin-bottom:18px; opacity:.9; }

/* link underline draw */
.ul-link{ position:relative; }
.ul-link::after{ content:""; position:absolute; left:0; bottom:-3px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .45s var(--e-out); }
.ul-link:hover::after{ transform:scaleX(1); transform-origin:left; }

/* reveal: clip variant for headlines/blocks */
.reveal-clip{ clip-path:inset(0 0 100% 0); opacity:0; transition:clip-path 1s var(--e-out), opacity 1s var(--e-out); transition-delay:calc(var(--order,0)*70ms); }
.reveal-clip.in{ clip-path:inset(0 0 0 0); opacity:1; }
html.no-js .reveal-clip{ clip-path:none!important; opacity:1!important; }

@media (prefers-reduced-motion:reduce){
  .hero .wm.float{ animation:none; }
  .hero-bg,.page-hero .hero-bg{ animation:none; }
  .reveal-clip{ clip-path:none!important; opacity:1!important; transition:none!important; }
}

/* fix: constrain footer monogram svg */
.footer-mark{ display:block; }
.footer-mark svg{ width:100%; height:auto; display:block; }

/* a11y fix: UI component borders >=3:1 (WCAG 1.4.11) */
.field input, .field textarea{ border-color:rgba(12,10,22,.5); }
.btn-ghost{ border-color:rgba(12,10,22,.5); }
