:root{
  --ink:#17231B;
  --ink-soft:#54604F;
  --paper:#F6F7F5;
  --paper-dim:#EAEDE7;
  --card:#FFFFFF;
  --line:rgba(23,35,27,0.12);
  --accent:#0E7A3D;
  --accent-ink:#0A4D27;
  --accent-2:#B32A32;
  --accent-2-ink:#7E1E24;
  --promo-tint:#F7DCD7;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EFF3EF;
    --ink-soft:#A9B6AC;
    --paper:#0B120D;
    --paper-dim:#101B12;
    --card:#16221A;
    --line:rgba(239,243,239,0.12);
    --accent:#3FC073;
    --accent-ink:#CBEFD9;
    --accent-2:#F0616A;
    --accent-2-ink:#FBD8DA;
    --promo-tint:#3A1E1C;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --ink:#EFF3EF;
  --ink-soft:#A9B6AC;
  --paper:#0B120D;
  --paper-dim:#101B12;
  --card:#16221A;
  --line:rgba(239,243,239,0.12);
  --accent:#3FC073;
  --accent-ink:#CBEFD9;
  --accent-2:#F0616A;
  --accent-2-ink:#FBD8DA;
  --promo-tint:#3A1E1C;
  color-scheme: dark;
}

*{box-sizing:border-box;}
html,body{margin:0;}
html{font-size:112.5%;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  padding-inline:20px;
  line-height:1.55;
  font-size:1.05rem;
  -webkit-font-smoothing:antialiased;
  position:relative;
}
body::before{
  content:'';position:fixed;inset:0;z-index:2147483000;pointer-events:none;
  opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.crest-lockup{margin-bottom:22px;}
.crest-img{height:64px;width:auto;display:block;}
.foot-logo{height:52px;width:auto;display:block;}
h1,h2,h3{
  font-family:'Archivo', 'IBM Plex Sans', system-ui, sans-serif; letter-spacing:-.025em;
  text-wrap:balance;
  line-height:1.08;
  margin:0;
  color:var(--ink);
}
p{margin:0;}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:1120px;margin-inline:auto;}
.wrap-narrow{max-width:760px;margin-inline:auto;}
.policy-section{padding-block:22px;border-top:1px solid var(--line);}
.policy-section:first-of-type{border-top:none;padding-top:0;}
.policy-section h3{font-size:1.05rem;font-weight:700;margin-bottom:10px;}
.policy-section p{color:var(--ink-soft);font-size:.95rem;}
.eyebrow{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}

/* ---- Nav ---- */
header.site{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:color-mix(in srgb, var(--paper) 86%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:16px;
}
.brand{
  display:flex;align-items:center;gap:10px;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:1.08rem;letter-spacing:-.01em;
  text-decoration:none;color:var(--accent);
}
.mark-img{
  width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none;
}
nav.links{display:flex;gap:28px;}
nav.links a{
  font-size:.88rem;color:var(--ink-soft);text-decoration:none;
  transition:color .15s ease;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
nav.links a:hover{color:var(--ink);}
nav.links a.active{color:var(--ink);border-bottom-color:var(--accent);}
.nav-actions{display:flex;align-items:center;gap:14px;}
.menu-btn{
  display:none;background:none;border:1px solid var(--line);border-radius:8px;
  width:36px;height:36px;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);
}
.mobile-panel{
  display:none;flex-direction:column;gap:2px;padding-block:6px 16px;
  border-top:1px solid var(--line);
}
.mobile-panel a{
  padding:10px 4px;font-size:.94rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);
}
.mobile-panel a:last-child{border-bottom:none;}
.mobile-panel a.active{color:var(--accent);}
@media (max-width:760px){
  nav.links{display:none;}
  .menu-btn{display:flex;}
  .mobile-panel.open{display:flex;}
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.88rem;font-weight:700;text-decoration:none;
  padding:12px 24px;border-radius:100px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
  font-family:'IBM Plex Sans',sans-serif;
  letter-spacing:-.005em;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{
  background:var(--accent);color:#fff;
  box-shadow:0 10px 26px -12px color-mix(in srgb, var(--accent) 55%, transparent);
}
.btn-primary:hover{background:var(--accent-ink);box-shadow:0 14px 30px -12px color-mix(in srgb, var(--accent) 65%, transparent);}
.btn-ghost{border-color:var(--accent);color:var(--accent);}
.btn-ghost:hover{background:color-mix(in srgb, var(--accent) 8%, transparent);}
.btn-accent{background:var(--accent);color:#fff;box-shadow:0 10px 26px -12px color-mix(in srgb, var(--accent) 60%, transparent);}
.btn-accent:hover{box-shadow:0 14px 30px -12px color-mix(in srgb, var(--accent) 70%, transparent);}

/* ---- Badges ---- */
.badge{
  font-family:'Archivo',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:-.01em;
  width:38px;height:38px;border-radius:11px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg, var(--accent-2), var(--accent));
  color:#fff;
}
.badge-lg{width:52px;height:52px;border-radius:14px;font-size:1rem;}

/* ---- Breadcrumb ---- */
.crumb{
  font-family:'IBM Plex Sans',sans-serif;font-size:.78rem;color:var(--ink-soft);
  display:flex;gap:8px;align-items:center;margin-bottom:18px;
}
.crumb a{color:var(--ink-soft);text-decoration:none;}
.crumb a:hover{color:var(--accent);}

/* ---- Hero (home) ---- */
section{padding-block:88px;}
section.hero{
  padding-block:76px 88px;position:relative;overflow:hidden;
  border-radius:0 0 28px 28px;
}
.hero-mark{
  position:absolute;top:-70px;right:-70px;width:380px;height:380px;
  opacity:.07;z-index:-1;pointer-events:none;
}
@media (max-width:760px){ .hero-mark{display:none;} }
section.hero::before{
  content:'';position:absolute;top:-160px;right:-160px;width:440px;height:440px;z-index:-1;
  border-radius:50%;
  border:36px solid color-mix(in srgb, var(--accent) 16%, transparent);
  pointer-events:none;
}
section.hero::after{
  content:'';position:absolute;top:38px;right:96px;width:120px;height:120px;z-index:-1;
  border-radius:50%;
  background:color-mix(in srgb, var(--accent-2) 20%, transparent);
  pointer-events:none;
}
@media (max-width:760px){
  section.hero::before,section.hero::after{display:none;}
}
.hero-top{display:flex;flex-direction:column;gap:22px;max-width:760px;}
.hero h1{font-size:clamp(2.4rem, 6vw, 4.4rem);font-weight:800;}
.hero .sub{font-size:1.2rem;color:var(--ink-soft);max-width:620px;font-weight:400;}
.hero .summary{font-size:1.02rem;color:var(--ink-soft);max-width:660px;}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;}
.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  margin-top:56px;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:var(--line);
  box-shadow:0 24px 60px -32px color-mix(in srgb, var(--ink) 35%, transparent);
}
.hero-stats div{
  background:linear-gradient(165deg, var(--card), var(--paper-dim));
  padding:24px 20px 22px;position:relative;
}
.hero-stats div::before{
  content:'';position:absolute;top:0;left:0;width:28px;height:3px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius:0 0 3px 0;
}
.hero-stats .num{
  font-family:'Archivo',sans-serif;font-size:2rem;font-weight:800;letter-spacing:-.03em;
  background:linear-gradient(160deg, var(--accent), var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
/* ---- Promo cards (homepage split hero cards) ---- */
.promo-row{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-top:8px;}
@media (max-width:800px){.promo-row{grid-template-columns:1fr;}}
.promo-card{
  border-radius:20px;padding:34px 32px;text-decoration:none;
  display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;
  min-height:220px;justify-content:flex-end;
  transition:transform .18s ease, box-shadow .18s ease;
}
.promo-card:hover{transform:translateY(-3px);}
.promo-card h3{font-size:1.5rem;font-weight:700;line-height:1.15;max-width:420px;}
.promo-card p{font-size:.94rem;max-width:420px;}
.promo-eyebrow{
  font-family:'IBM Plex Sans',sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
}
.promo-btn{width:fit-content;margin-top:4px;}
.promo-dark{
  background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--accent-2) 55%, transparent) 0%, transparent 32%),
             radial-gradient(circle at 0% 100%, color-mix(in srgb, var(--accent) 50%, transparent) 0%, transparent 32%),
             #0A120C;
  color:#FFFFFF;box-shadow:0 26px 60px -30px rgba(0,0,0,.55);
}
.promo-dark h3{color:#FFFFFF;}
.promo-dark .promo-eyebrow{color:color-mix(in srgb, var(--accent-2) 45%, white);}
.promo-dark p{color:color-mix(in srgb, #FFFFFF 78%, transparent);}
.promo-dark .promo-btn{background:#FFFFFF;color:#0A120C;box-shadow:none;}
.promo-light{
  background:var(--promo-tint);
  border:1px solid color-mix(in srgb, var(--promo-tint) 60%, black 8%);color:var(--ink);
}
.promo-light h3{color:var(--ink);}
.promo-light .promo-eyebrow{color:var(--accent-2-ink);}
.promo-light p{color:color-mix(in srgb, var(--ink) 75%, transparent);}

.hero-stats .lbl{
  font-family:'IBM Plex Sans',sans-serif;font-size:.72rem;letter-spacing:.03em;
  color:var(--ink-soft);margin-top:10px;
}
@media (max-width:700px){ .hero-stats{grid-template-columns:1fr 1fr;} }

/* ---- Story grid (homepage company-history stats) ---- */
.story-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
  margin-top:64px;
}
.story-card{
  background:linear-gradient(165deg, var(--card), var(--paper-dim));
  border:1px solid var(--line);border-radius:22px;
  padding:34px 28px 30px;position:relative;overflow:hidden;
  box-shadow:0 28px 64px -34px color-mix(in srgb, var(--ink) 40%, transparent);
  transition:transform .25s ease;
}
.story-card::before{
  content:'';position:absolute;top:0;left:0;width:100%;height:5px;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}
.story-card:nth-child(2n){transform:translateY(22px);}
.story-card:nth-child(3n){transform:translateY(-8px);}
.story-num{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:3.1rem;line-height:1;
  letter-spacing:-.03em;
  background:linear-gradient(160deg, var(--accent), var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.story-label{
  font-family:'IBM Plex Sans',sans-serif;font-size:1.05rem;line-height:1.4;
  color:var(--ink-soft);margin-top:16px;
}
@media (max-width:900px){
  .story-grid{grid-template-columns:1fr 1fr;}
  .story-card:nth-child(2n){transform:none;}
  .story-card:nth-child(3n){transform:none;}
}
@media (max-width:520px){ .story-grid{grid-template-columns:1fr;} }

/* ---- Simple page hero (inner pages) ---- */
.page-hero{padding-block:56px 48px;border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(2rem,4.5vw,2.9rem);font-weight:700;}
.page-hero .sub{color:var(--ink-soft);font-size:1.08rem;margin-top:14px;max-width:640px;}

/* ---- Venture hero (detail pages) ---- */
.venture-hero{padding-block:52px 46px;}
.venture-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;margin-top:8px;}
@media (max-width:860px){.venture-layout{grid-template-columns:1fr;}}
.venture-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.venture-head h1{font-size:clamp(2.1rem,5vw,3.2rem);font-weight:800;}
.venture-tagline{font-size:1.15rem;color:var(--ink-soft);max-width:600px;margin-top:6px;}
.venture-desc{font-size:1rem;color:var(--ink-soft);max-width:660px;margin-top:18px;}
.venture-proof{
  font-family:'IBM Plex Sans',sans-serif;font-size:.82rem;color:var(--accent-ink);
  max-width:600px;margin-top:14px;padding:10px 14px;border-radius:10px;
  background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);
}
.venture-cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.domain-pill{
  font-family:'IBM Plex Sans',sans-serif;font-size:.8rem;color:var(--ink-soft);
  border:1px solid var(--line);border-radius:100px;padding:8px 14px;
}

/* ---- Temporary device-frame placeholder (until real screenshots) ---- */
.device-frame{
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);
  box-shadow:0 20px 50px -28px color-mix(in srgb, var(--ink) 45%, transparent);
}
.device-bar{
  display:flex;align-items:center;gap:6px;padding:12px 14px;
  background:var(--paper-dim);border-bottom:1px solid var(--line);
}
.device-bar .dot{width:8px;height:8px;border-radius:50%;background:var(--line);}
.device-bar .url-pill{
  margin-left:10px;font-family:'IBM Plex Sans',sans-serif;font-size:.72rem;color:var(--ink-soft);
  background:var(--card);border:1px solid var(--line);border-radius:100px;padding:3px 12px;flex:1;
}
.device-body{
  padding:40px 32px;display:flex;flex-direction:column;align-items:center;gap:14px;
  position:relative;min-height:220px;
}
.device-body .badge-lg{margin-bottom:6px;}
.skeleton-line{height:10px;border-radius:6px;background:color-mix(in srgb, var(--ink) 8%, transparent);}
.skeleton-line.w70{width:70%;}
.skeleton-line.w45{width:45%;}
.skeleton-block{
  width:100%;height:64px;border-radius:10px;margin-top:6px;
  background:color-mix(in srgb, var(--ink) 5%, transparent);
}
.preview-tag{
  font-family:'IBM Plex Sans',sans-serif;font-size:.68rem;color:var(--ink-soft);
  margin-top:10px;letter-spacing:.02em;
}

/* ---- Real concept-preview screenshots (venture pages) ---- */
.shot-frame{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  background:var(--paper-dim);border:1px solid var(--line);border-radius:18px;
  padding:24px;box-shadow:0 20px 50px -28px color-mix(in srgb, var(--ink) 45%, transparent);
}
.shot-img{max-width:100%;max-height:460px;width:auto;height:auto;display:block;border-radius:10px;}
.shot-frame .preview-tag{margin-top:0;}

/* ---- Founder photo ---- */
.avatar-img{
  width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid var(--line);
}
.crest-img, .foot-logo{border-radius:8px;}

/* ---- Section headers ---- */
.sec-head{max-width:640px;margin-bottom:44px;}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:700;margin-top:8px;}
.sec-head p{color:var(--ink-soft);margin-top:12px;font-size:1rem;}

/* ---- Venture grid (cards) ---- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:900px){.grid{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.grid{grid-template-columns:1fr;}}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  text-decoration:none;
}
.card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 14px 30px -18px rgba(18,22,31,.35);}
.card.core{background:linear-gradient(160deg, var(--paper-dim), var(--card));border-color:var(--accent);}
.card-image{
  width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;flex:none;
  overflow:hidden;background:var(--paper-dim);
}
.card-image svg{width:34%;height:34%;}
.card-image img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px;flex:1;}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.card h3{font-size:1.18rem;font-weight:700;}
.tag{
  font-family:'IBM Plex Sans',sans-serif;font-size:.66rem;letter-spacing:.05em;
  padding:4px 9px;border-radius:100px;white-space:nowrap;
  background:color-mix(in srgb, var(--accent-2) 16%, transparent);
  color:var(--accent-2-ink);
}
.card.core .tag{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent-ink);}
.tag-stage{background:color-mix(in srgb, var(--ink-soft) 22%, transparent);color:var(--ink-soft);}

/* ---- Platform filter banner ---- */
.filter-banner{
  background:linear-gradient(110deg, var(--accent) 0%, var(--accent-ink) 45%, var(--accent-2) 100%);
  border-radius:22px;padding:36px 32px 30px;color:#fff;margin-bottom:32px;
  box-shadow:0 30px 60px -34px color-mix(in srgb, var(--ink) 55%, transparent);
}
.filter-banner h2{color:#fff;font-size:clamp(1.4rem,2.6vw,1.9rem);}
.filter-banner p{color:rgba(255,255,255,.85);margin-top:8px;font-size:.98rem;max-width:520px;}
.filter-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.pill{
  font-family:'IBM Plex Sans',sans-serif;font-size:.86rem;font-weight:600;
  padding:10px 18px;border-radius:100px;border:1.5px solid transparent;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--ink);transition:background .15s ease, color .15s ease;
}
.pill.active{background:var(--ink);color:#fff;}
.pill:hover:not(.active){background:#fff;}
.card .domain{font-family:'IBM Plex Sans',sans-serif;font-size:.76rem;color:var(--ink-soft);}
.card .focus{font-size:.92rem;color:var(--ink-soft);}
.card .go{font-size:.84rem;color:var(--accent);font-weight:500;margin-top:auto;display:flex;align-items:center;gap:6px;}

/* ---- Feature list (venture pages) ---- */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media (max-width:640px){.feature-grid{grid-template-columns:1fr;}}
.feature{
  border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:var(--card);
  display:flex;gap:12px;align-items:flex-start;
}
.feature .check{
  flex:none;width:20px;height:20px;border-radius:50%;margin-top:2px;
  background:color-mix(in srgb, var(--accent) 18%, transparent);
  display:flex;align-items:center;justify-content:center;
}
.feature .check svg{width:11px;height:11px;stroke:var(--accent);}
.feature p{font-size:.92rem;color:var(--ink-soft);}

/* ---- Services ---- */
.services-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:44px;align-items:start;}
@media (max-width:820px){.services-layout{grid-template-columns:1fr;}}
.svc-list{display:flex;flex-direction:column;gap:14px;}
.svc{
  border:1px solid var(--line);border-radius:14px;padding:20px 22px;background:var(--card);
  display:flex;gap:16px;align-items:flex-start;
}
.svc .idx{font-family:'IBM Plex Sans',sans-serif;color:var(--accent);font-size:.85rem;flex:none;margin-top:3px;}
.svc h3{font-size:1.02rem;font-weight:600;margin-bottom:5px;}
.svc p{font-size:.88rem;color:var(--ink-soft);}

.process-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px;}
@media (max-width:700px){.process-row{grid-template-columns:1fr;}}
.process-step{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--card);}
.process-step .n{font-family:'IBM Plex Sans',sans-serif;color:var(--accent);font-size:.8rem;}
.process-step h4{font-family:'Archivo',sans-serif;font-size:1.05rem;font-weight:700;margin-top:8px;}
.process-step p{font-size:.86rem;color:var(--ink-soft);margin-top:6px;}

/* ---- Company / operations ---- */
.company-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
@media (max-width:760px){.company-layout{grid-template-columns:1fr;}}
.company-card{border:1px solid var(--line);border-radius:16px;padding:30px 28px;background:var(--card);}
.company-card h3{font-size:1.05rem;font-weight:600;margin-bottom:12px;}
.company-card p{font-size:.95rem;color:var(--ink-soft);}
.founder-line{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line);}
.founder-line .avatar{
  width:38px;height:38px;border-radius:50%;flex:none;
  background:linear-gradient(150deg,var(--accent-2),var(--accent));
  display:flex;align-items:center;justify-content:center;color:#fff;font-family:'IBM Plex Sans',sans-serif;font-size:.78rem;
}
.founder-line .who{font-size:.85rem;color:var(--ink-soft);}
.founder-line .who b{color:var(--ink);font-weight:600;}
.timeline{display:flex;flex-direction:column;gap:0;margin-top:10px;}
.timeline-row{display:flex;gap:16px;padding-block:14px;border-top:1px solid var(--line);}
.timeline-row:first-child{border-top:none;}
.timeline-row .yr{font-family:'IBM Plex Sans',sans-serif;color:var(--accent);font-size:.82rem;flex:none;width:52px;}
.timeline-row p{font-size:.9rem;color:var(--ink-soft);}

/* ---- Contact page ---- */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr;}}
.contact-card{border:1px solid var(--line);border-radius:16px;padding:26px 24px;background:var(--card);}
.contact-card h3{font-size:1.05rem;font-weight:600;margin-bottom:8px;}
.contact-card p{font-size:.9rem;color:var(--ink-soft);margin-bottom:16px;}
.copy-row{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Sans',sans-serif;font-size:.88rem;flex-wrap:wrap;}
.copy-btn{border:1px solid var(--line);background:none;border-radius:6px;padding:4px 10px;font-size:.74rem;cursor:pointer;color:var(--ink-soft);}
.copy-btn:hover{color:var(--ink);border-color:var(--accent);}

/* ---- Message form ---- */
.message-form{
  max-width:560px;display:flex;flex-direction:column;gap:16px;
  border:1px solid var(--line);border-radius:18px;padding:32px;background:var(--card);
}
.form-row{display:flex;flex-direction:column;gap:6px;}
.form-row label{font-size:.82rem;font-weight:600;color:var(--ink-soft);}
.form-row input, .form-row select, .form-row textarea{
  font-family:inherit;font-size:.94rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:11px 14px;outline:none;resize:vertical;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{border-color:var(--accent);}
.message-form .btn{width:fit-content;}
.form-note{font-size:.78rem;color:var(--ink-soft);}

/* ---- CTA banner ---- */
.cta-banner{
  border:1px solid var(--line);border-radius:18px;padding:40px 36px;
  background:linear-gradient(150deg,var(--paper-dim),var(--card));
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.cta-banner h3{font-size:1.4rem;font-weight:600;max-width:420px;}
.cta-banner p{color:var(--ink-soft);font-size:.92rem;max-width:420px;margin-top:8px;}

/* ---- Footer ---- */
footer{border-top:1px solid var(--line);padding-block:56px 40px;margin-top:40px;}
.foot-grid{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;align-items:flex-start;}
.foot-col h4{
  font-family:'IBM Plex Sans',sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:12px;
}
.foot-col a, .foot-col p{font-size:.9rem;display:block;text-decoration:none;color:var(--ink);margin-bottom:6px;}
.fine{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.8rem;color:var(--ink-soft);}

/* ---- reveal ---- */
.reveal{opacity:1;transform:none;}
@media (prefers-reduced-motion:no-preference){
  .reveal-init{opacity:0;transform:translateY(14px);}
  .reveal{transition:opacity .6s ease, transform .6s ease;}
}
