/* =========================================================
   ARiF — Design System
   Editorial, ink-and-paper, minimal Nordic.
   ========================================================= */

:root{
  /* Color */
  --paper:      #FBFAF6;
  --paper-dim:  #F1EEE6;
  --ink:        #16150F;
  --ink-soft:   #55503F;
  --ink-faint:  #8A8471;
  --line:       #E2DDCE;
  --accent:     #C81D25;
  --accent-ink: #8F1219;
  --accent-tint:#F7E4E1;
  --white:      #FFFFFF;
  --shadow-sm:  0 3px 10px rgba(22,21,15,.05);
  --shadow-md:  0 18px 38px -24px rgba(22,21,15,.34);

  /* Type */
  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Scale */
  --step--1: clamp(0.83rem, 0.8rem + 0.15vw, 0.9rem);
  --step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --step-1:  clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
  --step-2:  clamp(1.5rem, 1.3rem + 0.9vw, 1.9rem);
  --step-3:  clamp(1.9rem, 1.6rem + 1.5vw, 2.6rem);
  --step-4:  clamp(2.4rem, 1.9rem + 2.4vw, 3.6rem);
  --step-5:  clamp(3rem, 2.2rem + 4vw, 5.2rem);

  --container: 1180px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --radius: 6px;
  --radius-lg: 12px;
  --ease: cubic-bezier(.22,.61,.36,1);
  color-scheme: light dark;
}

:root[data-theme="dark"]{
  --paper:#161713;
  --paper-dim:#20221c;
  --ink:#F5F1E8;
  --ink-soft:#CDC6B7;
  --ink-faint:#9B9587;
  --line:#3A3B33;
  --accent:#F05A55;
  --accent-ink:#FF8A84;
  --accent-tint:#3B2322;
  --white:#24261F;
  --shadow-sm:0 3px 10px rgba(0,0,0,.22);
  --shadow-md:0 18px 38px -24px rgba(0,0,0,.7);
  color-scheme:dark;
}
:root[data-theme="light"]{ color-scheme:light; }
:root[data-theme="dark"] .site-header{ background:rgba(22,23,19,.94); }
:root[data-theme="dark"] .section-alt{ background:var(--paper-dim); }
:root[data-theme="dark"] .site-footer{ background:#11120F; }
:root[data-theme="dark"] .btn-ghost:hover,:root[data-theme="dark"] .venture-card:hover,:root[data-theme="dark"] .search-result:hover{ background:var(--white); }
:root[data-theme="dark"] .field input:focus,:root[data-theme="dark"] .field select:focus,:root[data-theme="dark"] .field textarea:focus,:root[data-theme="dark"] .search-field{ background:var(--white); }
:root[data-theme="dark"] .search-field{ border-color:var(--line); }
:root[data-theme="dark"] .project-art{ filter:saturate(.78) brightness(.78); }

@media (prefers-color-scheme: dark){
  :root:not([data-theme]){
    --paper:#161713;
    --paper-dim:#20221c;
    --ink:#F5F1E8;
    --ink-soft:#CDC6B7;
    --ink-faint:#9B9587;
    --line:#3A3B33;
    --accent:#F05A55;
    --accent-ink:#FF8A84;
    --accent-tint:#3B2322;
    --white:#24261F;
    --shadow-sm:0 3px 10px rgba(0,0,0,.22);
    --shadow-md:0 18px 38px -24px rgba(0,0,0,.7);
  }
  :root:not([data-theme]) .site-header{ background:rgba(22,23,19,.94); }
  :root:not([data-theme]) .section-alt{ background:var(--paper-dim); }
  :root:not([data-theme]) .site-footer{ background:#11120F; }
  :root:not([data-theme]) .btn-ghost:hover,:root:not([data-theme]) .venture-card:hover,:root:not([data-theme]) .search-result:hover{ background:var(--white); }
  :root:not([data-theme]) .field input:focus,:root:not([data-theme]) .field select:focus,:root:not([data-theme]) .field textarea:focus,:root:not([data-theme]) .search-field{ background:var(--white); }
  :root:not([data-theme]) .search-field{ border-color:var(--line); }
  :root:not([data-theme]) .project-art{ filter:saturate(.78) brightness(.78); }
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; max-width:100%; overflow-x:clip; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  max-width:100%;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
img{ max-width:100%; display:block; }
a{ color: inherit; }
h1,h2,h3,h4{ font-family: var(--font-display); font-weight: 600; line-height: 1.1; margin: 0 0 0.5em; letter-spacing: -0.01em; }
p{ margin: 0 0 1em; color: var(--ink-soft); }
p strong{ color: var(--ink); font-weight: 650; }
ul{ margin:0; padding:0; list-style:none; }
button{ font: inherit; }

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

button:disabled{ cursor:wait; opacity:.72; }

.container{
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
::selection{ background: var(--accent); color: var(--white); }

.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip: rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px;
}

.skip-link{
  position:absolute; left: 1rem; top:-3rem;
  background: var(--ink); color: var(--paper);
  padding: 0.6rem 1rem; z-index: 200; border-radius: var(--radius);
  transition: top .2s var(--ease);
}
.skip-link:focus{ top: 1rem; }

/* ---------- Eyebrow / labels ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-size: var(--step--1);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-soft);
  font-weight: 600;
}
.eyebrow::before{
  content:"";
  width: 7px; height:7px; border-radius:50%;
  background: var(--accent);
  flex: none;
}

/* ---------- Wordmark ---------- */
.wordmark{
  direction:ltr;
  unicode-bidi:isolate;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: -0.01em;
  text-decoration:none;
  color: var(--ink);
  display:inline-flex;
}
.wordmark .i{
  display:inline-block;
  color:var(--accent);
  font-style:normal;
  cursor:pointer;
  transform-origin:center 78%;
  animation:wordmark-i-wave 4.8s cubic-bezier(.22,.61,.36,1) infinite;
}
@keyframes wordmark-i-wave{
  0%,84%,100%{ transform:translateY(0) rotate(0); }
  89%{ transform:translateY(-.12em) rotate(-7deg); }
  94%{ transform:translateY(.025em) rotate(3deg); }
}
.wordmark .i:hover,
.wordmark .i.is-flipping{ animation:wordmark-i-flip .82s cubic-bezier(.22,.61,.36,1) both; }
@keyframes wordmark-i-flip{
  0%{ transform:translateY(0) rotate(0); }
  45%{ transform:translateY(-.08em) rotate(180deg); }
  70%{ transform:translateY(.02em) rotate(318deg); }
  100%{ transform:translateY(0) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce){ .wordmark .i{ animation:none !important; } }
.wordmark.lg{ font-size: clamp(2.4rem, 6vw, 4.2rem); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55em;
  min-height: 2.85rem;
  padding: 0.76em 1.35em;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--step--1);
  letter-spacing: 0.02em;
  text-decoration:none;
  border-radius: var(--radius);
  border: 1px solid var(--ink);
  cursor:pointer;
  transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease);
  white-space: nowrap;
}
.btn-primary{ background: var(--ink); color: var(--paper); box-shadow: 0 2px 0 var(--ink); }
.btn-primary:hover{ background: var(--accent); border-color: var(--accent); color: var(--white); box-shadow: 0 5px 14px rgba(200,29,37,.18); transform: translateY(-2px); }
.btn-ghost{ background: transparent; color: var(--ink); }
.btn-ghost:hover{ background: var(--white); border-color: var(--accent); color: var(--accent-ink); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.btn:active{ transform: translateY(0); box-shadow: none; }
.btn-arrow{ transition: transform .2s var(--ease); }
.btn:hover .btn-arrow{ transform: translateX(3px); }

/* ---------- Nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(251,250,246,0.92);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  min-height: 4.8rem;
  padding-block: .8rem;
}
.nav-links{
  display:flex; align-items:center; gap: clamp(1rem, 2.5vw, 2.2rem);
}
.nav-links a{
  text-decoration:none; font-size: var(--step--1); font-weight:600; color: var(--ink-soft);
  position:relative; padding: 0.2rem 0;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background: var(--accent); transition: right .25s var(--ease);
}
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after{ right:0; }
.nav-links a[aria-current="page"]{ color: var(--ink); }
.nav-cta{ display:flex; align-items:center; gap:1.4rem; }
.theme-toggle{
  display:grid;
  place-items:center;
  width:2.35rem;
  height:2.35rem;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--paper);
  color:var(--ink);
  cursor:pointer;
}
.theme-toggle:hover{ border-color:var(--ink-soft); background:var(--paper-dim); }
.theme-toggle:focus{ outline:2px solid var(--accent); outline-offset:3px; }
.theme-toggle svg{ width:1.1rem; height:1.1rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer; padding: .4rem;
  flex-direction:column; gap:5px;
}
.nav-toggle span{ width:22px; height:2px; background: var(--ink); display:block; transition: transform .2s var(--ease), opacity .2s var(--ease); }
.nav-toggle[aria-expanded="true"] span:first-child{ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:last-child{ transform:translateY(-7px) rotate(-45deg); }
.install-prompt{
  position:fixed;
  z-index:250;
  right:clamp(1rem,3vw,2rem);
  bottom:clamp(1rem,3vw,2rem);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.9rem;
  width:min(31rem,calc(100vw - 2rem));
  padding:1rem;
  border:1px solid var(--line);
  background:var(--paper);
  box-shadow:0 20px 45px rgba(22,21,15,.2);
  opacity:0;
  transform:translateY(1rem);
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.install-prompt.is-visible{ opacity:1; transform:translateY(0); }
.install-prompt-mark{ font:600 1.35rem/1 var(--font-display); color:var(--ink); }
.install-prompt-mark span{ color:var(--accent); }
.install-prompt-copy strong{ display:block; font-size:.9rem; }
.install-prompt-copy p{ margin:.15rem 0 0; color:var(--ink-soft); font-size:.78rem; line-height:1.4; }
.install-prompt-actions{ display:flex; align-items:center; gap:.45rem; }
.install-prompt-actions button{ border:0; padding:.62rem .7rem; font:700 .7rem var(--font-body); letter-spacing:.04em; cursor:pointer; }
.install-confirm{ background:var(--accent); color:#fff; }
.install-confirm:hover{ background:var(--accent-ink); }
.install-dismiss{ background:transparent; color:var(--ink-soft); }
.install-dismiss:hover{ color:var(--ink); text-decoration:underline; }
.install-prompt-actions button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

@media (max-width: 780px){
  body.menu-open{ overflow:hidden; }
  .site-header, main, .site-footer{ max-width:100%; overflow-x:clip; }
  .nav{ min-width:0; gap:.75rem; }
  .nav-cta{ min-width:0; gap:.45rem; }
  .theme-toggle{ width:2.15rem; height:2.15rem; }
  .nav-toggle{ display:flex; }
  .nav-links{
    position:fixed; inset: 4.8rem 0 0 auto; width:min(82vw, 24rem);
    max-width:100%;
    background: var(--paper);
    flex-direction:column; align-items:flex-start; justify-content:flex-start;
    padding: 2.25rem var(--gutter);
    border-left: 1px solid var(--line);
    transform: translateX(105%);
    box-shadow: -18px 0 35px rgba(22,21,15,.08);
    transition: transform .3s var(--ease);
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-links a{ font-size: 1.1rem; padding: .6rem 0; }
  .nav-cta .btn{ display:none; }
  .header-search span{ display:none; }
  .install-prompt{ grid-template-columns:auto minmax(0,1fr); }
  .install-prompt-actions{ grid-column:2; justify-content:flex-start; }
}

/* ---------- Hero ---------- */
.home-page .hero{
  position:relative;
  isolation:isolate;
}
.home-page .hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:min(45vw, 550px); height:min(45vw, 550px);
  right:max(2rem, 6vw); top:clamp(1.5rem, 5vw, 4.5rem);
  border:1px solid var(--line); border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(200,29,37,.12), transparent 48%);
}
.hero-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(260px, .55fr);
  align-items:center;
  gap:clamp(2rem, 7vw, 7rem);
}
.hero-copy{ position:relative; z-index:1; }
.hero-photo{
  position:relative; min-height:clamp(280px, 29vw, 390px); margin:0; overflow:hidden;
  border-radius:var(--radius-lg); background:var(--ink); box-shadow:0 26px 45px -31px rgba(22,21,15,.7);
}
.hero-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(22,21,15,.58)); pointer-events:none; }
.hero-photo img{ width:100%; height:100%; min-height:inherit; object-fit:cover; object-position:center; }
.hero-photo figcaption{ position:absolute; z-index:1; right:1rem; bottom:.9rem; color:var(--white); font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hero-mark{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  min-height:clamp(280px, 29vw, 390px);
  padding:1.35rem;
  background:var(--ink); color:var(--paper);
  border-radius:var(--radius-lg);
  box-shadow:0 26px 45px -31px rgba(22,21,15,.7);
  overflow:hidden;
}
.hero-mark::before, .hero-mark::after{
  content:""; position:absolute; pointer-events:none; border:1px solid rgba(251,250,246,.2); border-radius:50%;
}
.hero-mark::before{ width:220px; height:220px; right:-74px; bottom:-68px; }
.hero-mark::after{ width:100px; height:100px; right:28px; bottom:40px; border-color:var(--accent); }
.hero-mark-top, .hero-mark-bottom{
  position:relative; z-index:1;
  font-size:.67rem; font-weight:600; line-height:1.45; letter-spacing:.12em; text-transform:uppercase;
  color:#d6d0c1;
}
.hero-mark-name{
  position:relative; z-index:1;
  font-family:var(--font-display); font-size:clamp(4.8rem, 10vw, 8rem); font-weight:600;
  letter-spacing:-.1em; line-height:.8; margin-left:-.08em;
}
.hero-mark-name span{ color:var(--accent); font-style:italic; }
.hero-mark-line{ position:relative; z-index:1; display:block; width:100%; height:2px; background:var(--accent); }
.hero{
  padding-block: clamp(4rem, 9vw, 8rem) clamp(3rem, 7vw, 5.8rem);
}
.hero-headline{
  font-size: var(--step-5);
  max-width: 15ch;
  margin-bottom: 0.35em;
}
.hero-sub{
  font-size: var(--step-1);
  max-width: 52ch;
  color: var(--ink-soft);
  line-height: 1.7;
}
.hero-underline{
  display:block; width: min(420px, 60vw); height: 40px; margin: 0.05em 0 0.5em; overflow:visible;
}
.hero-underline > path{
  fill:none; stroke: var(--accent); stroke-width:5; stroke-linecap: round;
  stroke-dasharray: 420; stroke-dashoffset: 420;
  animation: draw 1.1s var(--ease) 0.3s forwards;
}
@keyframes draw{ to{ stroke-dashoffset: 0; } }
.hero-bouncing-ball{ --ball-bounce:3.8s; transform:translateX(7px); animation:hero-ball-travel 18s cubic-bezier(.42,0,.58,1) 1.35s infinite; }
.hero-ball-hop{ transform-box:fill-box; transform-origin:center bottom; animation:hero-ball-hop var(--ball-bounce) linear infinite; }
.hero-ball-spin{ transform-box:fill-box; transform-origin:center; animation:hero-ball-spin var(--ball-bounce) linear infinite; }
.hero-underline .hero-ball{ fill:#d8ee43; stroke:#4d5e0d; stroke-width:1; }
.hero-underline .hero-ball-seam{ fill:none; stroke:rgba(255,255,255,.92); stroke-width:.9; stroke-linecap:round; }
.hero-underline .hero-ball-shadow{ fill:rgba(22,21,15,.2); transform-box:fill-box; transform-origin:center; animation:hero-ball-shadow var(--ball-bounce) linear infinite; }
@keyframes hero-ball-travel{ 0%,100%{ transform:translateX(7px); } 46%{ transform:translateX(392px); } 54%{ transform:translateX(392px); } }
@keyframes hero-ball-hop{
  0%{ transform:translateY(-18px) scale(.82,1.2); animation-timing-function:cubic-bezier(.5,0,.9,.4); }
  18%{ transform:translateY(0) scale(1.42,.62); animation-timing-function:cubic-bezier(.12,.78,.22,1.25); }
  26%{ transform:translateY(-2px) scale(.91,1.1); animation-timing-function:cubic-bezier(.5,0,.9,.4); }
  43%{ transform:translateY(-11px) scale(.9,1.12); animation-timing-function:cubic-bezier(.5,0,.9,.4); }
  57%{ transform:translateY(0) scale(1.28,.76); animation-timing-function:cubic-bezier(.12,.78,.22,1.18); }
  64%{ transform:translateY(-1px) scale(.95,1.06); animation-timing-function:cubic-bezier(.5,0,.9,.4); }
  76%{ transform:translateY(-5px) scale(.96,1.06); animation-timing-function:cubic-bezier(.5,0,.9,.4); }
  87%{ transform:translateY(0) scale(1.16,.87); animation-timing-function:cubic-bezier(.12,.78,.22,1.08); }
  93%{ transform:translateY(-1px) scale(.98,1.03); }
  100%{ transform:translateY(-18px) scale(.82,1.2); }
}
@keyframes hero-ball-shadow{ 0%,100%{ transform:scaleX(.22); opacity:.12; } 18%,57%,87%{ transform:scaleX(1.4); opacity:.46; } 43%,76%{ transform:scaleX(.46); opacity:.18; } }
@keyframes hero-ball-spin{ 0%{ transform:rotate(0deg); } 18%{ transform:rotate(200deg); } 43%{ transform:rotate(385deg); } 57%{ transform:rotate(515deg); } 76%{ transform:rotate(635deg); } 87%{ transform:rotate(700deg); } 100%{ transform:rotate(900deg); } }
@media (prefers-reduced-motion: reduce){
  .hero-bouncing-ball{ animation:none !important; transform:translateX(196px); }
  .hero-ball-hop,.hero-ball-spin,.hero-ball-shadow{ animation:none !important; }
}

.hero-actions{ display:flex; gap: 1rem; flex-wrap:wrap; margin-top: 1.8rem; }

.credibility-strip{
  display:flex; flex-wrap:wrap; gap: .75rem 2.2rem;
  padding-top: 1.4rem; margin-top: 3.2rem; border-top: 1px solid var(--ink);
  color: var(--ink-faint); font-size: var(--step--1);
}
.credibility-strip strong{ color: var(--ink-soft); font-weight:600; }

.home-page .credibility-strip{ position:relative; z-index:1; }

/* ---------- Homepage practice and ventures ---------- */
.home-practice{ position:relative; overflow:hidden; }
.home-practice::after{
  content:""; position:absolute; width:360px; height:360px; right:-150px; bottom:-180px;
  border:1px solid rgba(22,21,15,.12); border-radius:50%; pointer-events:none;
}
.home-practice .section-head{ align-items:flex-end; }
.practice-lede{ margin:0; }
.practice-grid{ display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(1.5rem, 4vw, 4rem); }
.practice-group{ border-top:2px solid var(--ink); padding-top:1rem; }
.practice-label{ margin-bottom:1rem; color:var(--ink); font-size:var(--step--1); font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.practice-tags{ display:flex; flex-wrap:wrap; gap:.65rem; }
.practice-tags li{
  border:1px solid var(--ink); border-radius:999px; padding:.48rem .75rem;
  color:var(--ink); background:rgba(255,255,255,.45); font-size:var(--step--1); font-weight:600;
}
.practice-tags--soft li{ border-color:#b5ad9d; color:var(--ink-soft); font-weight:500; }
.venture-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1.2rem; }
.venture-card{
  position:relative; min-height:250px; display:flex; flex-direction:column; align-items:flex-start;
  padding:1.7rem; border:1px solid var(--ink); border-radius:var(--radius-lg); background:var(--paper);
  color:var(--ink); overflow:hidden; text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
.venture-card::after{ content:""; position:absolute; width:160px; height:160px; right:-54px; bottom:-76px; border:2px solid var(--accent); border-radius:50%; opacity:.7; transition:transform .25s var(--ease); }
.venture-card:hover{ background:var(--white); transform:translateY(-4px); box-shadow:var(--shadow-md); }
.venture-card:hover::after{ transform:scale(1.18); }
.venture-card h3{ font-size:var(--step-2); margin-top:1.7rem; }
.venture-card p{ max-width:34ch; font-size:var(--step--1); }
.venture-type{ position:relative; z-index:1; color:var(--accent-ink); font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.venture-link{ position:relative; z-index:1; margin-top:auto; color:var(--accent-ink); font-size:var(--step--1); font-weight:700; }

/* ---------- Section scaffolding ---------- */
.section{ padding-block: clamp(3.5rem, 8vw, 7rem); }
.awards-section{ padding-bottom:clamp(1.75rem,4vw,3rem); }
.awards-section + .section{ padding-top:clamp(2rem,4vw,3.5rem); }
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:2rem;
  margin-bottom: clamp(1.8rem, 4vw, 3rem);
  flex-wrap:wrap;
}
.section-head h2{ font-size: var(--step-3); max-width: 18ch; }
.section-lede{ max-width: 60ch; font-size: var(--step-1); color: var(--ink-soft); margin-bottom: 2rem; }
.section-alt{ background: linear-gradient(135deg, #f3f0e9 0%, var(--paper-dim) 100%); }
.rule{ border:0; border-top: 1px solid var(--line); margin: 0; }

/* reveal-on-scroll */
.reveal{ opacity:0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Cards / Work grid ---------- */
.work-grid{
  display:grid; gap: clamp(1.2rem, 3vw, 2rem);
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px){ .work-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px){ .work-grid{ grid-template-columns: 1fr; } }

.card{
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--white);
  overflow:hidden;
  text-decoration:none;
  color: var(--ink);
  display:flex; flex-direction:column;
  box-shadow: var(--shadow-sm);
  transition: border-color .2s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.card:hover{ border-color: #c6bead; transform: translateY(-5px); box-shadow: var(--shadow-md); }
.case-card{ cursor:default; }
.case-card:hover{ transform:none; border-color:var(--line); box-shadow:var(--shadow-sm); }
.card-media{
  aspect-ratio: 4/3; background: linear-gradient(145deg, #ece7db, #f8f6f0);
  display:flex; align-items:center; justify-content:center;
  color: var(--ink-faint); font-size: var(--step--1);
  border-bottom: 1px solid var(--line);
  position: relative;
}
.card-media .tag{
  position:absolute; top:.75rem; left:.75rem;
  background: var(--ink); color: var(--paper);
  font-size: .7rem; letter-spacing:.08em; text-transform:uppercase;
  padding: .3em .6em; border-radius: 999px;
}
.card-body{ padding: 1.45rem 1.5rem 1.55rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.card-body h3{ font-size: var(--step-1); margin:0; }
.card-body p{ margin:0; font-size: var(--step--1); }
.card-meta{ font-size: var(--step--1); color: var(--ink-faint); }
.card-more{ margin-top:auto; font-size: var(--step--1); font-weight:600; color: var(--accent-ink); display:flex; align-items:center; gap:.4em; }

/* Homepage project panels are intentional editorial placeholders until final artwork is supplied. */
.project-art{ flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:.65rem; padding:1.1rem; overflow:hidden; }
.project-art::before, .project-art::after{ content:""; position:absolute; pointer-events:none; }
.project-art-title{ position:relative; z-index:1; font-family:var(--font-display); font-size:clamp(2rem, 3.4vw, 3.3rem); font-weight:600; line-height:.8; letter-spacing:-.07em; }
.project-art-caption{ position:relative; z-index:1; max-width:18ch; margin:0; font-size:.68rem; font-weight:600; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; }
.project-art--toons{ background:#d9e6df; color:#12372f; }
.project-art--toons::before{ width:150px; height:150px; right:-36px; top:-44px; border:18px solid #c81d25; border-radius:50%; }
.project-art--toons::after{ width:67%; height:1px; left:-8%; bottom:20%; background:#12372f; transform:rotate(-16deg); }
.project-art--war{ background:#d0c9ba; color:#262119; }
.project-art--war::before{ width:105px; height:105px; right:13%; top:16%; background:var(--accent); border-radius:50%; box-shadow:-124px 85px 0 -26px #262119; }
.project-art--war::after{ width:110%; height:50%; left:-8%; bottom:-29%; border:1px solid rgba(38,33,25,.6); border-radius:50%; transform:rotate(-12deg); }
.project-art--rights{ background:#e7c6c4; color:#681318; }
.project-art--rights::before{ width:120px; height:120px; right:-14px; bottom:-18px; background:#f6eee6; border-radius:50% 50% 8px 50%; transform:rotate(28deg); }
.project-art--rights::after{ width:115%; height:1px; left:-10%; top:45%; background:#681318; transform:rotate(20deg); }

/* ---------- Stats / recognition ---------- */
.stat-grid{
  display:grid; grid-template-columns: repeat(4,1fr); gap: 1.5rem;
}
@media (max-width: 780px){ .stat-grid{ grid-template-columns: 1fr 1fr; } }
.stat{ border-top: 2px solid var(--ink); padding-top: .8rem; }
.stat .num{ font-family: var(--font-display); font-size: var(--step-3); display:block; }
.stat .label{ font-size: var(--step--1); color: var(--ink-soft); }

/* ---------- Quote ---------- */
.quote{
  padding: clamp(2rem,5vw,3.4rem) 0;
}
.quote blockquote{
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--step-3);
  line-height: 1.35;
  max-width: 26ch;
  margin: 0 0 1rem;
}
.quote cite{ font-style:normal; font-size: var(--step--1); color: var(--ink-soft); }
.principle{ display:grid; grid-template-columns:.75fr 1.35fr 1fr; gap:clamp(1.5rem, 4vw, 4rem); align-items:start; }
.principle .eyebrow{ margin-top:.5rem; }
.principle blockquote{ margin:0; font-family:var(--font-display); font-size:var(--step-3); font-style:italic; line-height:1.25; }
.principle-copy{ margin:0; font-size:var(--step-1); line-height:1.65; }

/* ---------- Services ---------- */
.service-list{ display:flex; flex-direction:column; }
.service-row{
  display:grid; grid-template-columns: 1.1fr 2fr 1fr;
  gap: 2rem; padding: 2.25rem 0; border-top: 1px solid var(--line);
  align-items:start;
}
.service-list .service-row:last-child{ border-bottom: 1px solid var(--line); }
.service-row h3{ font-size: var(--step-2); margin:0; }
.service-row .for{ font-size: var(--step--1); color: var(--ink-faint); }
@media (max-width: 820px){
  .service-row{ grid-template-columns: 1fr; gap:.6rem; }
}

.process-grid{
  display:grid; grid-template-columns: repeat(4,1fr); gap: 1.6rem;
  counter-reset: step;
}
@media (max-width: 780px){ .process-grid{ grid-template-columns: 1fr 1fr; } }
.process-step{ border-left: 2px solid var(--accent); padding-left: 1rem; }
.process-step .k{ font-family: var(--font-display); color: var(--accent); font-size: var(--step-1); display:block; margin-bottom:.3rem; }

/* ---------- Timeline (work page exhibitions) ---------- */
.timeline{ display:flex; flex-direction:column; }
.timeline-item{
  display:grid; grid-template-columns: 90px 1fr; gap: 1.5rem;
  padding: 2rem 0; border-top: 1px solid var(--line);
}
.timeline-item:last-child{ border-bottom: 1px solid var(--line); }
.timeline-item .year{ font-family: var(--font-display); font-size: var(--step-1); color: var(--accent-ink); }
.timeline-item h3{ font-size: var(--step-1); margin-bottom:.3em; }
.project-year{ color:var(--accent-ink); font-family:var(--font-body); font-size:var(--step--1); font-weight:700; letter-spacing:.06em; }
.kv-row{ display:flex; flex-wrap:wrap; gap: .5rem 1.4rem; margin-top:.8rem; font-size: var(--step--1); color: var(--ink-faint); }
.kv-row b{ color: var(--ink-soft); }
.project-links{ display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; margin:1rem 0 0; }
.project-links a{ color:var(--accent-ink); font-size:var(--step--1); font-weight:700; text-decoration:none; border-bottom:1px solid transparent; }
.project-links a:hover{ border-color:currentColor; }

@media (max-width: 620px){
  .timeline-item{ grid-template-columns: 1fr; gap:.4rem; }
}

/* ---------- Press list ---------- */
.press-list{ display:flex; flex-direction:column; }
.press-item{
  display:flex; justify-content:space-between; gap:1.5rem; align-items:baseline;
  padding: 1.1rem 0; border-top: 1px solid var(--line);
  text-decoration:none; color: var(--ink);
}
.press-list .press-item:last-child{ border-bottom: 1px solid var(--line); }
.press-item:hover .press-title{ color: var(--accent-ink); }
.press-title{ font-weight:600; transition: color .2s var(--ease); }
.press-outlet{ color: var(--ink-faint); font-size: var(--step--1); white-space:nowrap; }

/* ---------- About page specifics ---------- */
.about-grid{
  display:grid; grid-template-columns: 1.3fr 0.9fr; gap: clamp(2rem,5vw,4rem);
  align-items:start;
}
.about-biography p{ max-width:62ch; }
.about-biography .about-biography-lede{ max-width:34ch; color:var(--ink); font-family:var(--font-display); font-size:var(--step-1); line-height:1.45; }
@media (max-width: 900px){ .about-grid{ grid-template-columns:1fr; } }
@media (max-width: 900px){
  .hero-layout{ grid-template-columns:1fr; }
  .hero-mark{ min-height:250px; max-width:520px; }
  .hero-photo{ min-height:320px; max-width:640px; }
  .home-page .hero::before{ width:420px; height:420px; right:-180px; top:45%; }
  .principle{ grid-template-columns:1fr 2fr; }
  .principle-copy{ grid-column:2; }
  .practice-grid{ grid-template-columns:1fr; gap:2rem; }
}
.portrait{
  aspect-ratio: 3/4; background: var(--paper-dim);
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  display:flex; align-items:center; justify-content:center; text-align:center;
  color: var(--ink-faint); font-size: var(--step--1); padding: 1.5rem;
  background: linear-gradient(145deg, #e8e2d6, #f8f6ef);
  box-shadow: var(--shadow-sm);
}
.portrait-photo{ padding:0; background:var(--ink); }
.portrait-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
/* Keep the homepage introduction portrait personal: the face remains the focal point,
   while the figure's rounded frame matches the rest of the image language. */
.portrait-photo--about img{
  transform:scale(1.46);
  transform-origin:58% 43%;
  object-position:52% 32%;
}
.portrait-photo--studio img{ transform:scale(1.04); transform-origin:center; object-position:center 44%; }
.portrait-photo--about{ margin:0; border:0; border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
@media (min-width:901px){
  .home-page .about-grid{ align-items:stretch; }
  .home-page .about-grid > :first-child{ align-self:start; }
  .about-grid .portrait-photo--about{
    width:min(100%, 22rem);
    height:clamp(18rem,26vw,22rem);
    min-height:0;
    aspect-ratio:auto;
    justify-self:end;
    align-self:start;
  }
}
@media (max-width:900px){
  .portrait-photo--about{ width:min(100%,20rem); max-width:20rem; aspect-ratio:3/4; }
  .portrait-photo--about img{ transform:scale(1.3); transform-origin:58% 40%; }
  .home-page .portrait-photo--studio{
    width:100%;
    max-width:22rem;
    aspect-ratio:4/3;
    margin-inline:auto;
  }
  .home-page .portrait-photo--studio img{
    transform:scale(1);
    transform-origin:center;
    object-position:center 45%;
  }
}
.about-banner{ position:relative; margin:clamp(2rem, 5vw, 3.5rem) 0 0; overflow:hidden; border-radius:var(--radius-lg); background:var(--ink); box-shadow:var(--shadow-md); }
.about-banner img{ width:100%; max-height:440px; object-fit:cover; object-position:center; }
.about-banner::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(22,21,15,.5)); pointer-events:none; }
.about-banner figcaption{ position:absolute; z-index:1; right:1rem; bottom:.85rem; margin:0; color:var(--white); font-size:.72rem; font-weight:600; }
.about-side-photo{ aspect-ratio:1; margin:0 0 2rem; overflow:hidden; border-radius:var(--radius-lg); background:var(--paper-dim); box-shadow:var(--shadow-sm); }
.about-side-photo img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.about-moment-gallery{ display:grid; grid-template-columns:1.6fr .8fr; gap:clamp(1rem,3vw,2rem); margin-top:clamp(2rem,5vw,3.5rem); }
.about-moment-gallery figure{ position:relative; margin:0; overflow:hidden; border-radius:var(--radius-lg); background:var(--ink); box-shadow:var(--shadow-sm); }
.about-moment-gallery figure::after{ content:""; position:absolute; inset:35% 0 0; background:linear-gradient(180deg,transparent,rgba(0,0,0,.68)); pointer-events:none; }
.about-moment-gallery img{ display:block; width:100%; height:clamp(15rem,27vw,22rem); object-fit:cover; object-position:center; }
.about-moment-gallery figure:nth-child(2) img{ object-position:70% center; }
.about-moment-gallery figcaption,.award-archive figcaption{ padding:.75rem .9rem; color:var(--ink-soft); font-size:var(--step--1); }
.about-moment-gallery figcaption{ position:absolute; z-index:1; right:1rem; bottom:.85rem; padding:0; color:#fff; font-size:.72rem; font-weight:600; }
.about-moment-gallery figcaption a{ color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.about-moment-gallery figcaption a:hover{ text-decoration:underline; }
.about-public-gallery{ display:grid; grid-template-columns:1.2fr 1fr 1fr; grid-template-rows:repeat(2,minmax(11rem,1fr)); gap:clamp(.8rem,2vw,1.4rem); }
.about-public-gallery figure{ position:relative; margin:0; min-height:0; overflow:hidden; border-radius:var(--radius-lg); background:var(--ink); box-shadow:var(--shadow-sm); }
.about-public-gallery figure:first-child{ grid-row:span 2; }
.about-public-gallery figure::after{ content:""; position:absolute; inset:45% 0 0; background:linear-gradient(180deg,transparent,rgba(0,0,0,.64)); pointer-events:none; }
.about-public-gallery img{ display:block; width:100%; height:100%; min-height:13rem; object-fit:cover; object-position:center; }
.about-public-gallery figure:first-child img{ object-position:58% center; }
.about-public-gallery figcaption{ position:absolute; z-index:1; right:.8rem; bottom:.7rem; margin:0; color:#fff; font-size:.72rem; font-weight:600; text-align:right; }
.about-public-gallery figcaption a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.timeline-content-with-photo{ display:grid; grid-template-columns:minmax(0,1fr) 5.5rem; align-items:start; gap:1rem; }
.timeline-photo{ width:5.5rem; height:5.5rem; margin:0; justify-self:end; overflow:hidden; border-radius:var(--radius); background:var(--paper-dim); box-shadow:var(--shadow-sm); }
.timeline-photo img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center 19%; }
.timeline-photo figcaption{ display:none; }
.work-event-gallery{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; }
.work-event-gallery .work-event-photo{ margin:0; }
.work-event-gallery--single{ grid-template-columns:minmax(0,34rem); }
.work-event-photo{ margin:1.5rem 0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--paper-dim); box-shadow:var(--shadow-sm); }
.work-event-photo img{ display:block; width:100%; max-height:32rem; object-fit:cover; object-position:center 42%; }
.work-event-photo figcaption{ margin:0; padding:.7rem .9rem; color:var(--ink-soft); font-size:var(--step--1); }
.work-media-strip{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(12rem,.65fr); gap:1rem; max-width:54rem; margin:1.5rem 0 0; }
.work-media-strip .work-event-photo{ margin:0; }
.work-media-strip .work-event-photo img{ aspect-ratio:16/9; }
.news-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2.5vw,1.5rem); }
.news-card{ display:flex; flex-direction:column; min-height:100%; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--paper); box-shadow:var(--shadow-sm); transition:transform .25s var(--ease),box-shadow .25s var(--ease); }
.news-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.news-card-image{ display:block; overflow:hidden; }
.news-card img{ display:block; width:100%; height:clamp(12rem,18vw,14.5rem); object-fit:cover; object-position:center; background:var(--paper-dim); transition:transform .45s var(--ease); }
.news-card-image:hover img{ transform:scale(1.035); }
.news-card-image:focus-visible{ outline:3px solid var(--accent); outline-offset:-3px; }
.news-card-body{ display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:1.3rem; }
.news-card .meta,.article-meta{ margin:0 0 .7rem; color:var(--accent-ink); font-size:var(--step--1); font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.news-card h2{ margin:0; font-size:var(--step-1); }
.news-card-body > p:not(.meta){ margin:.7rem 0 1.25rem; }
.news-card .btn{ margin-top:auto; min-height:2.6rem; padding:.62em 1em; border-color:var(--line-strong); background:var(--paper); }
.news-card .btn:hover{ border-color:var(--accent); background:var(--accent); color:var(--white); }
.news-archive-section{ padding-top:0; padding-bottom:clamp(3rem,7vw,6rem); }
.news-pagination{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.5rem; margin-top:clamp(1.75rem,4vw,3rem); }
.pagination-number,.pagination-control{ display:inline-flex; align-items:center; justify-content:center; min-height:2.6rem; padding:.55rem .85rem; border:1px solid var(--line-strong); border-radius:var(--radius); color:var(--ink); font-weight:700; text-decoration:none; }
.pagination-number{ min-width:2.6rem; }
.pagination-number:hover,.pagination-control:hover,.pagination-number.is-current{ border-color:var(--accent); background:var(--accent); color:var(--white); }
.pagination-control[aria-disabled="true"]{ pointer-events:none; opacity:.42; }
.article-header{ max-width:52rem; padding-bottom:clamp(2rem,4vw,3.5rem); }
.article-header h1{ max-width:17ch; font-size:var(--step-4); }
.article-prose{ max-width:44rem; }
.article-prose p{ max-width:68ch; font-size:var(--step-0); }
.article-figure{ max-width:56rem; margin:clamp(1.75rem,4vw,3rem) 0; overflow:hidden; border-radius:var(--radius-lg); background:var(--paper-dim); box-shadow:var(--shadow-sm); }
.article-figure img{ display:block; width:100%; max-height:32rem; object-fit:cover; object-position:center; }
.article-figure figcaption{ margin:0; padding:.7rem .9rem; color:var(--ink-soft); font-size:var(--step--1); }
.news-article{ max-width:var(--content); padding-top:clamp(2.25rem,5vw,5rem); padding-bottom:clamp(3.5rem,8vw,7rem); }
.news-article .article-back{ display:inline-flex; align-items:center; gap:.45rem; margin-bottom:clamp(1.5rem,3vw,2.5rem); color:var(--ink-soft); font-size:var(--step--1); font-weight:700; text-decoration:none; }
.news-article .article-back:hover{ color:var(--accent-ink); }
.news-article .article-header{ max-width:56rem; margin-inline:auto; padding:0; }
.news-article .article-header h1{ max-width:19ch; margin-bottom:1.1rem; font-size:clamp(2.5rem,5.4vw,5.4rem); line-height:.98; letter-spacing:-.055em; }
.news-article .article-header .section-lede{ max-width:47rem; margin-bottom:0; font-size:var(--step-1); }
.article-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.article-action{ display:inline-flex; align-items:center; gap:.45rem; min-height:2.55rem; padding:.55rem .85rem; border:1px solid var(--line-strong); border-radius:999px; background:transparent; color:var(--ink); font:700 var(--step--1)/1 var(--font-body); cursor:pointer; transition:transform .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease); }
.article-action:hover{ transform:translateY(-2px); border-color:var(--accent); color:var(--accent-ink); background:var(--paper-dim); }
.article-action[aria-pressed="true"]{ border-color:var(--accent); background:var(--accent); color:var(--white); }
.love-mark{ color:var(--accent); font-size:1.05em; }
.article-action[aria-pressed="true"] .love-mark{ color:var(--white); }
.action-count{ display:inline-grid; min-width:1.35rem; min-height:1.35rem; place-items:center; padding:0 .26rem; border-radius:999px; background:var(--paper-dim); font-size:.78em; font-variant-numeric:tabular-nums; }
.article-action[aria-pressed="true"] .action-count{ background:rgba(255,255,255,.2); }
.news-article .article-figure{ max-width:min(68rem,100%); margin:clamp(2rem,5vw,4rem) auto clamp(1.75rem,4vw,3rem); border-radius:var(--radius-lg); }
.news-article .article-figure img{ width:100%; height:clamp(17rem,43vw,34rem); max-height:none; object-fit:cover; object-position:center 40%; }
.news-article .article-figure figcaption{ display:flex; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-top:1px solid var(--line); background:var(--paper); }
.article-reading{ max-width:44rem; margin-inline:auto; }
.article-reading p{ max-width:68ch; font-size:var(--step-0); }
.article-reading p:last-child{ margin-top:2rem; }
@media (max-width:620px){ .news-article .article-header h1{ max-width:100%; } .news-article .article-figure img{ height:clamp(14rem,70vw,22rem); } }
@media (max-width:800px){ .news-grid{ grid-template-columns:1fr; } .news-card img{ height:clamp(12rem,58vw,18rem); } }
.award-archive{ display:grid; grid-template-columns:minmax(16rem,22rem) minmax(0,1fr); align-items:center; gap:clamp(1.25rem,3vw,2.5rem); width:100%; margin:2.5rem 0 0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--paper); }
.award-archive img{ display:block; width:100%; height:100%; min-height:12rem; object-fit:cover; }
.award-archive figcaption{ padding:.9rem .9rem .9rem 0; }
@media (max-width:620px){ .about-moment-gallery,.about-public-gallery,.work-event-gallery,.work-media-strip{ grid-template-columns:1fr; } .about-public-gallery{ grid-template-rows:none; } .about-public-gallery figure:first-child{ grid-row:auto; } .about-public-gallery figure{ min-height:16rem; } .award-archive{ grid-template-columns:7.5rem minmax(0,1fr); } .timeline-content-with-photo{ grid-template-columns:minmax(0,1fr) 5rem; gap:.75rem; } .timeline-photo{ width:5rem; height:5rem; } }
.project-poster{ position:relative; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.5rem; overflow:hidden; text-align:left; }
.project-poster::after{ content:""; position:absolute; width:175px; height:175px; right:-62px; bottom:-66px; border:14px solid var(--accent); border-radius:50%; }
.project-poster span{ position:relative; z-index:1; font-family:var(--font-display); color:var(--ink); font-size:clamp(2.6rem, 5vw, 4.2rem); font-weight:600; letter-spacing:-.08em; line-height:.77; }
.project-poster small{ position:relative; z-index:1; max-width:16ch; color:var(--ink-soft); font-size:var(--step--1); font-weight:700; letter-spacing:.08em; line-height:1.35; text-transform:uppercase; }
.fact-list{ display:flex; flex-direction:column; gap: 1.4rem; }
.fact-list dt{ font-size: var(--step--1); text-transform:uppercase; letter-spacing:.08em; color: var(--ink-faint); }
.fact-list dd{ margin: .2rem 0 0; font-family: var(--font-display); font-size: var(--step-1); }
.values-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1.4rem; }
@media (max-width:620px){ .values-grid{ grid-template-columns:1fr; } }
.value-card{ border: 1px solid var(--line); padding: 1.55rem; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-sm); }
.value-card h3{ font-size: var(--step-1); }

/* ---------- Writing ---------- */
.writing-list{ display:flex; flex-direction:column; }
.writing-item{ padding: 1.8rem 0; border-top: 1px solid var(--line); display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.writing-list .writing-item:last-child{ border-bottom: 1px solid var(--line); }
.writing-item h3{ font-size: var(--step-1); margin:0 0 .3rem; }
.writing-item .date{ font-size: var(--step--1); color: var(--ink-faint); white-space:nowrap; }
.writing-item p{ max-width: 60ch; }
.placeholder-badge{
  display:inline-block; font-size: .68rem; text-transform:uppercase; letter-spacing:.08em;
  color: var(--ink-faint); border: 1px dashed var(--ink-faint); padding: .15em .5em; border-radius: 2px; margin-left:.5em;
}

/* ---------- CTA banner ---------- */
.cta-banner{
  background: var(--ink); color: var(--paper);
  border-radius: var(--radius-lg);
  padding: clamp(2.2rem,6vw,4rem);
  display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap;
  box-shadow: 0 22px 45px -30px rgba(22,21,15,.65);
}
.cta-banner h2{ color: var(--paper); font-size: var(--step-3); max-width: 16ch; margin:0; }
.cta-banner p{ color: #C9C4B4; margin: .5rem 0 0; }
.cta-banner .btn-primary{ background: var(--accent); border-color: var(--accent); }
.cta-banner .btn-primary:hover{ background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* ---------- Contact ---------- */
.contact-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,4rem);
  align-items:start;
}
@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-aside{ max-width:440px; }
.contact-portrait{ margin:0 0 2rem; overflow:hidden; border-radius:var(--radius-lg); background:var(--paper-dim); box-shadow:var(--shadow-sm); }
.contact-portrait img{ width:100%; aspect-ratio:1/1; object-fit:cover; object-position:center top; }
.field{ margin-bottom: 1.4rem; }
.field label{ display:block; font-size: var(--step--1); font-weight:600; margin-bottom:.4rem; }
.field input, .field select, .field textarea{
  width:100%; font: inherit; padding: .8em .9em;
  border: 1px solid #d7d0c1; border-radius: var(--radius);
  background: var(--white); color: var(--ink);
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
.field input:hover, .field select:hover, .field textarea:hover{ border-color: #aaa18f; }
.field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--accent); background: #fffefa; box-shadow: 0 0 0 3px rgba(200,29,37,.12); outline:none; }
.field textarea{ min-height: 140px; resize: vertical; }
.field-hint{ font-size: .8rem; color: var(--ink-faint); margin-top:.3rem; }
.form-note{ font-size: var(--step--1); color: var(--ink-faint); margin-top: 1rem; }
.contact-direct dt{ font-size: var(--step--1); text-transform:uppercase; letter-spacing:.08em; color: var(--ink-faint); margin-top:1.4rem; }
.contact-direct dt:first-child{ margin-top:0; }
.contact-direct dd{ margin:.25rem 0 0; font-size: var(--step-1); font-family: var(--font-display); }
.contact-direct a{ text-decoration:none; border-bottom: 1px solid var(--line); }
.contact-direct a:hover{ border-color: var(--accent); color: var(--accent-ink); }
.form-success{
  display:none; border: 1.5px solid var(--ink); border-radius: var(--radius); padding: 1.4rem; background: var(--paper-dim);
}
.form-success.show{ display:block; }
.form[hidden]{ display:none; }

/* ---------- Footer ---------- */
.site-footer{ border-top: 1px solid var(--line); padding-block: 3.5rem 2.5rem; margin-top: 3rem; background: #f7f4ed; }
.footer-grid{ display:flex; justify-content:space-between; gap: 2rem 2.8rem; flex-wrap:wrap; }
.footer-brand{ max-width:15rem; }
.footer-brand .wordmark{ margin-bottom:.65rem; }
.footer-brand-role{ margin:0 0 .35rem; color:var(--ink); font-size:var(--step--1); font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.footer-tagline{ margin:0; color:var(--ink-soft); font-family:var(--font-display); font-size:1rem; line-height:1.3; }
.footer-explore-group{ display:flex; flex-direction:column; align-items:flex-start; gap:1.8rem; }
.footer-links{ display:flex; align-content:flex-start; gap:.65rem 1.3rem; flex-wrap:wrap; max-width:15rem; }
.footer-nav-title{ width:100%; color:var(--ink-faint); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.footer-links a{ text-decoration:none; color: var(--ink-soft); font-size: var(--step--1); }
.footer-links[aria-label="Social"] a{ display:inline-flex; align-items:center; gap:.38rem; }
.social-favicon{ width:1rem; height:1rem; border-radius:3px; object-fit:contain; }
.footer-links a:hover{ color: var(--accent-ink); }
.language-switcher{ display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; }
.language-links{ display:flex; flex-wrap:wrap; gap:.35rem .7rem; max-width:18rem; }
.language-links a{ color:var(--ink-soft); font-size:var(--step--1); text-decoration:none; }
.language-links a:hover{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:.2em; }
.language-links a:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.footer-bottom{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line);
  font-size: .82rem; color: var(--ink-faint);
}
.footer-location{ display:inline-flex; align-items:center; gap:.45rem; }
.footer-location img{ width:1.35rem; height:.94rem; object-fit:cover; border:1px solid rgba(22,21,15,.12); border-radius:1px; }
.footer-location img:not(.norway-map){
  animation: footer-flag-wave 2.8s ease-in-out infinite;
  transform-origin: left center;
  will-change: transform;
}
.footer-location img.norway-map{ width:auto; height:1.55rem; object-fit:contain; border:0; border-radius:0; }
@keyframes footer-flag-wave{
  0%,100%{ transform:perspective(3rem) rotateY(0deg) rotateZ(0deg); }
  25%{ transform:perspective(3rem) rotateY(-10deg) rotateZ(-1deg); }
  55%{ transform:perspective(3rem) rotateY(8deg) rotateZ(1deg); }
  80%{ transform:perspective(3rem) rotateY(-5deg) rotateZ(-.5deg); }
}
.language-select{ width:100%; max-width:15rem; appearance:auto; border:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--ink); padding:.55rem .7rem; font:600 var(--step--1) var(--font-body); cursor:pointer; }
.language-select:focus{ outline:2px solid var(--accent); outline-offset:3px; }
.legal-page h1{ font-size:var(--step-4); max-width:18ch; }
.legal-prose{ max-width:65ch; }
.legal-prose h2{ margin-top:2rem; font-size:var(--step-1); }
html[lang="bn"] body,
html[lang="bn"] input,
html[lang="bn"] textarea,
html[lang="bn"] select,
html[lang="bn"] button{ font-family:"Tiro Bangla", var(--font-body), serif; }
html[lang="bn"] h1,
html[lang="bn"] h2,
html[lang="bn"] h3,
html[lang="bn"] .hero-headline{ font-family:"Tiro Bangla", var(--font-display), serif; letter-spacing:0; }
html[lang="bn"] .wordmark{ font-family:var(--font-display); }
.header-search{ display:inline-flex; align-items:center; gap:.4rem; color:var(--ink); font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
.header-search svg{ width:1.05rem; height:1.05rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.header-search:hover{ color:var(--red); }
.search-page{ min-height:calc(100svh - 5rem); padding:clamp(2.75rem,6vw,5rem) 0 clamp(3rem,7vw,5.5rem); background:var(--paper); }
.search-shell{ max-width:52rem; }
.search-intro{ max-width:37rem; }
.search-intro h1{ font-size:clamp(2.55rem,5vw,4.45rem); line-height:.94; letter-spacing:-.055em; margin:0 0 .85rem; }
.search-intro p:last-child{ font-family:var(--font-display); font-size:var(--step-1); color:var(--ink-soft); }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.search-form{ margin-top:1.85rem; }
.search-field{ display:flex; align-items:center; gap:.8rem; border:1px solid rgba(22,21,15,.32); background:#fffefa; box-shadow:0 12px 32px rgba(22,21,15,.08); padding:.45rem .5rem .45rem 1rem; transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
.search-field:focus-within{ border-color:var(--ink); box-shadow:0 15px 38px rgba(22,21,15,.14); }
.search-field svg{ flex:0 0 auto; width:1.25rem; height:1.25rem; fill:none; stroke:var(--ink-faint); stroke-width:1.7; stroke-linecap:round; }
.search-field input{ min-width:0; flex:1; border:0; outline:0; background:transparent; padding:.7rem 0; color:var(--ink); font:500 1.08rem var(--font-body); }
.search-field input::placeholder{ color:var(--ink-faint); }
.search-submit{ flex:0 0 auto; border:0; background:var(--ink); color:var(--paper); padding:.8rem 1.05rem; font:700 .76rem var(--font-body); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:background .2s var(--ease); }
.search-submit:hover{ background:var(--red); }
.search-suggestions{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:1.15rem 0 0; }
.search-suggestions span{ margin-right:.2rem; font-size:.73rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); }
.search-suggestions button{ border:1px solid var(--line); background:transparent; padding:.38rem .65rem; color:var(--ink-soft); cursor:pointer; font:600 .78rem var(--font-body); transition:background .2s var(--ease),color .2s var(--ease); }
.search-suggestions button:hover{ background:var(--ink); color:var(--paper); }
.search-status{ min-height:1.5em; margin:2.35rem 0 .3rem; font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink-soft); }
.search-results{ display:grid; gap:0; border-top:1px solid rgba(22,21,15,.2); }
.search-result{ position:relative; padding:1.55rem 1.5rem 1.55rem 0; border-bottom:1px solid rgba(22,21,15,.2); transition:padding .2s var(--ease),background .2s var(--ease); }
.search-result:hover{ background:rgba(255,255,255,.5); padding-left:1rem; }
.search-result h2{ margin:.18rem 0 .45rem; font-size:var(--step-1); }
.search-result h2 a{ text-decoration:none; }
.search-result p{ max-width:63ch; margin:0; }
.search-result .text-link{ display:inline-block; margin-top:.65rem; font-size:.83rem; font-weight:700; }
.contact-page-hero{ padding-bottom:clamp(2rem,4vw,3.5rem); }
.contact-page-hero-layout{ display:block; }
.contact-page-hero .hero-copy{ max-width:46rem; }
.contact-page-hero .hero-headline{ font-size:var(--step-4); max-width:18ch; }
.localized-about-intro{ display:block; }
.localized-about-hero .hero-copy{ max-width:46rem; }
.localized-about-hero .hero-headline{ font-size:var(--step-4); max-width:18ch; }
.localized-about-hero .about-banner{ margin-top:2rem; }
@media (max-width:620px){ .search-page{ padding-top:3.5rem; } .search-field{ padding-left:.75rem; } .search-submit{ padding:.8rem .75rem; } .search-suggestions{ gap:.4rem; } }

@media (hover:none){
  .card:hover, .venture-card:hover, .btn:hover{ transform:none; }
}

/* ---------- 404 ---------- */
.error-page{ text-align:center; padding-block: clamp(4rem,10vw,8rem); }
.error-page .big{ font-family: var(--font-display); font-size: clamp(4rem,14vw,8rem); margin:0; color: var(--accent); }

@media (max-width: 620px){
  .hero{ padding-top: 3.3rem; }
  .home-page .hero::before{ width:280px; height:280px; right:-150px; top:42%; }
  .hero-mark{ min-height:220px; padding:1.1rem; }
  .hero-photo{ min-height:240px; }
  .about-banner img{ min-height:220px; object-position:20% center; }
  .hero-mark-name{ font-size:5.7rem; }
  .section-head{ align-items:flex-start; gap: 1.2rem; }
  .section-head .btn{ width: 100%; justify-content:center; }
  .credibility-strip{ gap: .8rem; }
  .cta-banner{ padding: 2rem; }
  .cta-banner .btn{ width:100%; justify-content:center; }
  .press-item{ align-items:flex-start; flex-direction:column; gap:.25rem; }
  .language-switcher{ width:100%; }
  .language-links{ max-width:none; }
  .principle{ grid-template-columns:1fr; gap:1rem; }
  .principle-copy{ grid-column:auto; }
  .venture-grid{ grid-template-columns:1fr; }
  .venture-card{ min-height:220px; }
}
