/* SENET · sources: docs/design-library/kanit/font-2026-09-09/OKU.md.
   23,688 + 50,008 + 20,332 = 94,028 B. Fraunces SOFT=25 remains baked in;
   optical sizing remains automatic. Martian's wdth 75 is selected with font-stretch. */
@font-face {
  font-family: "Big Shoulders";
  src: url("../assets/fonts/bigshoulders-versal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Fraunces";
  src: url("../assets/fonts/fraunces-imza.woff2") format("woff2");
  font-weight: 400 800;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Martian Mono";
  src: url("../assets/fonts/martianmono-kunye.woff2") format("woff2");
  font-weight: 100 800;
  font-stretch: 75% 112.5%;
  font-style: normal;
  font-display: block;
}

:root {
  color-scheme: light;
  --kagit: #EFEADD;
  --murekkep: #1E1913;
  --gravur-murekkep: var(--murekkep);
  --gravur-alfa: 1;
  --gravur-dpr-cap: 2;
  --gravur-tau-tam: 5;
  --gravur-tau-taban: 1.8;
  --gravur-kesim-ms: 900;
  --gravur-yeniden-kesim-ms: 520;
  --gravur-sukut-ms: 900;
  --murekkep-sonus: #5A5145;
  --cizgi: #D8D0BE;
  --arka-yuz: #16120C;
  --arka-yuz-metin: #EFEADD;
  --arka-yuz-sonus: #B8AE9A;
  --gold: #c9a86a;
  /* Brief §4'ün ölçülmüş değeri. Kâğıtta 4,947:1 (marj 0,447); motorun yazdığı
     #80602F 4,814:1 veriyordu — ikisi de AA'yı geçer ama pay bedava değil. */
  --gold-koyu: #7d5f24;
  --transparent: transparent;

  --surface: var(--kagit);
  --text: var(--murekkep);
  --muted: var(--murekkep-sonus);
  --register-odak: var(--gold-koyu);
  --status-error: var(--murekkep);

  --font-display: "Big Shoulders", "Arial Narrow", Impact, sans-serif;
  --font-body: "Fraunces", "Palatino Linotype", Palatino, Georgia, ui-serif, serif;
  --font-mono: "Martian Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --text-xs: 0.68rem;
  --text-sm: 0.78rem;
  --text-nav: 0.82rem;
  --text-base: 1rem;
  --text-body: clamp(1rem, 1.25vw, 1.18rem);
  --text-lede: clamp(1.15rem, 1.8vw, 1.55rem);
  --text-service: clamp(1.8rem, 3.4vw, 3.5rem);
  --text-work-quote: clamp(1.15rem, 2.1vw, 1.8rem);

  /* Offline hmtx calculation, Big Shoulders wght800, opsz10/36/48/64/72;
     tracking -0.015em. Widest sampled cut: opsz10. No browser/shaping claim.
     Hero EN mean advance: 21.126/47 - .015 = .43449em.
     Section TR mean: 16.2205/36 - .015 = .43557em.
     390 shell=390-2*20=350; 1440 hero 7/12 columns=776.64;
     1440 section 9/12 columns=1005.12 (gap23.04, shell1347.84).
     Hero line targets 12.5 / 13.5 average chars:
       floor(350/(.43449*12.5))=64; floor(776.64/(.43449*13.5))=132.
     Section longest word 7.6555em, with 2% width reserve:
       floor(350/(7.6555*1.02))=44.
     Desktop target 24 average chars: floor(1005.12/(.43557*24))=96.
     Slopes: (132-64)/(1440-390)*100=6.476190476vw;
       (96-44)/(1440-390)*100=4.952380952vw.
     Intercepts: (64-.06476190476*390)/16=2.421428571rem;
       (44-.04952380952*390)/16=1.542857143rem.
     Caps: section 96*1.25=120px; hero 120*(4/3)=160px, below 220px.
     At 16px rem, viewport : hero / largest h2 / ratio / mean chars hero, section
       390  : 64      / 44       / 1.4545 / 12.59,18.26
       768  : 88.48   / 62.72    / 1.4107 / 18.70,26.31
       1024 : 105.059 / 75.398   / 1.3934 / 19.22,21.76
       1440 : 132     / 96       / 1.3750 / 13.54,24.04
       1920 : 160     / 119.771  / 1.3359 / 14.85,25.62
     390 longest section word: 44*7.6555=336.842 < 350px.
     Real overflow, shaping, fallback and glyph clipping are for Claude to measure. */
  --text-hero: clamp(4rem, calc(2.421428571rem + 6.476190476vw), 10rem);
  --text-section: clamp(2.75rem, calc(1.542857143rem + 4.952380952vw), 7.5rem);
  --text-case: var(--text-section);
  --text-contact: var(--text-section);
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-heavy: 800;
  /* OKU.md glyph gate: 1.1667 * 1.02 = 1.190034 <= 1.20.
     1.20 / 1.1667 - 1 = 2.8542% actual reserve. */
  --leading-versal: 1.20;
  /* Small labels: 1.3787 * 1.02 = 1.406274, rounded up; opsz is size-dependent. */
  --leading-versal-kucuk: 1.41;
  --leading-heading: 1.20;
  --leading-body: 1.7;
  --tracking-display: -0.015em;
  --tracking-tight: -0.035em;
  --tracking-label: 0.22em;
  --tracking-nav: 0.035em;
  --tracking-wordmark: 0.18em;

  --space-0: 0;
  --space-hairline: 1px;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 2rem;
  --space-8: 2.5rem;
  --space-9: 3rem;
  --space-10: 4rem;
  --space-11: 5rem;
  --space-12: 6rem;
  --space-13: 7.5rem;
  --space-14: 9rem;
  --space-15: 11rem;
  --space-section: clamp(6rem, 12vw, 12rem);
  --space-gutter: clamp(1.25rem, 3.2vw, 4rem);
  --space-grid: clamp(0.75rem, 1.6vw, 2rem);
  --space-textarea: 9rem;
  --contact-padding-start: var(--space-10);
  --contact-padding-end: var(--space-8);
  --contact-form-offset: var(--space-10);
  --seal-width: 19rem;
  --text-seal: 0.78rem;
  --text-seal-title: 2.5rem;

  --shell-max: 112rem;
  --measure: 64ch;
  --measure-small: 46ch;
  --header-padding: var(--space-4);
  --header-layout-height: calc(var(--control-min-height) + var(--header-padding) * 2 + var(--border-width));
  --header-height: var(--header-measured-height, var(--header-layout-height));
  --hero-min-height: calc(100svh - var(--header-height));
  /* R4 K0: outer data-seviye=478.7167, 694 M/L vertices, bbox
     [-549.08,-530.72,530.48,564]. From q=(0,-80), exact segment-distance
     minimum=335.5315026938603. Reserve the largest half-stroke (2.894/2),
     then round inward: floor(335.5315026938603-2.894/2)=334.
     Fallback: radius 3*max(W,H)/4 bounds every half-diagonal;
     0.75 > 1.02/sqrt(2), so it is stricter even than the new safety margin.
     Without support for the expression below, keep this conservative D.
     D>=960 also prevents SVG downsampling.
     Inverse map: x=(X-W/2)*960/D; y=(Y-H/2)*960/D-80.
     No breakpoint changes this crop; cqw/cqh belong to hero-plaka-space. */
  --plaka-viewbox: 960;
  --plaka-safe-radius: 334;
  --plaka-center-y: -240;
  --plaka-side: max(960px, calc(max(100cqw, 100cqh) * var(--plaka-viewbox) * 3 / (4 * var(--plaka-safe-radius))));
  --plaka-shift-y: calc(var(--plaka-side) * var(--plaka-center-y) / var(--plaka-viewbox) * -1);
  /* Local Big Shoulders wght=800, default opsz=72, unitsPerEm=2000.
     H straight stem at y=400: x=83.876953125..358.6767578125,
     width=274.7998046875 units. hero-title-stack disables optical sizing
     so this measured cut stays invariant. Stroke/stem=3/10 <= 0.35;
     the visible outside ring is half that centred stroke (0.15 stem). */
  --hero-stem: calc(1em * 274.7998046875 / 2000);
  --tuzak: calc(var(--hero-stem) * 3 / 10);
  --viewport-width: 100vw;
  --control-min-height: 44px;
  --field-min-height: 3.4rem;
  --aura-card-width: 58%;
  --aura-orbit-width: 76%;
  --diag-card-width: 72%;
  --size-full: 100%;
  --border-width: 1px;
  --focus-width: 3px;
  --focus-offset: 3px;
  --radius-none: 0;
  --ratio-square: 1;
  --ratio-landscape: 4 / 3;
  --opacity-muted: 0.68;

  --visual-angle-a: -8deg;
  --v: 0;

  /* SENET §7 signature timings; micro-interactions retain their separate band. */
  --sure-kunye: 340ms;
  --sure-manset: 520ms;
  --sure-muhur: 240ms;
  --sure-murekkep: 380ms;
  --sure-cokuntu: var(--sure-muhur);
  --cikis-orani: 0.5;
  --sure-kunye-cikis: calc(var(--sure-kunye) * var(--cikis-orani));
  --sure-manset-cikis: calc(var(--sure-manset) * var(--cikis-orani));
  --sure-muhur-cikis: calc(var(--sure-muhur) * var(--cikis-orani));
  --sure-murekkep-cikis: calc(var(--sure-murekkep) * var(--cikis-orani));
  --sure-cokuntu-cikis: calc(var(--sure-cokuntu) * var(--cikis-orani));
  --egri-senet: cubic-bezier(.16,1,.3,1);
  --egri-muhur: cubic-bezier(.34,1.4,.64,1);
  --egri-murekkep: ease-out;
  --egri-cokuntu: var(--egri-senet);
  --gecikme-kunye: 80ms;
  --gecikme-kelime: 60ms;
  --gecikme-murekkep: 60ms;
  --sure-anlik: 0.001ms;
  --giris-mesafe: 8px;
  --muhur-hazirlik: 0.97;
  --muhur-anticipation: 0.96;
  --muhur-overshoot: 1.03;
  --murekkep-baslangic: 0.98;
  --murekkep-yayilim-opaklik: 0.24;
  --murekkep-yayilim: 0.35px;
  --muhur-cokuntu: 8px;
  --muhur-ic-golge: inset 0 0 var(--muhur-cokuntu) var(--arka-yuz);

  --layer-content: 2;
  --layer-header: 20;
  --layer-skip: 40;
}

/* Supported branch: d=0.5*sqrt(W*W+H*H), scale=max(1,d*PAY/334).
   PAY=1.02: reserve >=334*(1-1/1.02)=6.54902 SVG units,
   or 6.54902/2.894=2.26296 outer-contour stroke widths (~2.3).
   One full stroke requires PAY>=334/(334-2.894)=1.00874; 1.02 exceeds it.
   At W=1425,H=438: d=745.39738px, scale=2.27636325, D=2185.30872px.
   Measure from q=(0,-80): reserve=334-d/scale; positive means the entire
   crop lies inside the safe disk, so the outer silhouette cannot enter.
   sqrt() needs numbers: divide lengths by 1px, then restore px outside.
   Test the full expression on width (no var()), including typed division;
   only supporting browsers override the fallback above. */
@supports (width: max(960px, calc(0.5 * sqrt((100cqw / 1px) * (100cqw / 1px) + (100cqh / 1px) * (100cqh / 1px)) * 1px * 1.02 * 960 / 334))) {
  :root {
    --plaka-side: max(960px, calc(0.5 * sqrt((100cqw / 1px) * (100cqw / 1px) + (100cqh / 1px) * (100cqh / 1px)) * 1px * 1.02 * var(--plaka-viewbox) / var(--plaka-safe-radius)));
  }
}

/* Resolve focus at each register root; one --odak declaration for both faces. */
:root,
[data-register="arka-yuz"] {
  --odak: var(--register-odak);
}

/* One register switch for the entire subtree, including its focus indicator. */
[data-register="arka-yuz"] {
  color-scheme: dark;
  --surface: var(--arka-yuz);
  --text: var(--arka-yuz-metin);
  --muted: var(--arka-yuz-sonus);
  --cizgi: var(--arka-yuz-sonus);
  --status-error: var(--arka-yuz-metin);
  --register-odak: var(--gold);
}

@media (max-width: 48rem) {
  :root {
    --header-padding: var(--space-2);
  }
}
