:root{
    --ink:#0E0E10;
    --ink-2:#2A2A2E;
    --muted:#6B6B70;
    --hair:#E6E6E1;
    --paper:#FAFAF7;
    --white:#FFFFFF;
    --crimson:#C8133A;
    --crimson-2:#A50F30;
    --amber: oklch(0.82 0.18 75);
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    font-size:16px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    font-feature-settings:'ss01','cv11';
  }
  .wrap{width:1440px;margin:0 auto;position:relative}
  .mono{font-family:'JetBrains Mono',monospace;font-weight:500;letter-spacing:.02em}
  .display{font-family:'Inter Tight',sans-serif;letter-spacing:-0.035em;line-height:0.96;font-weight:700}
  .h2{font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-weight:700;font-size:56px;line-height:1.02}
  .h3{font-family:'Inter Tight',sans-serif;letter-spacing:-0.02em;font-weight:600;font-size:28px;line-height:1.15}
  .eyebrow{
    font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--muted);font-weight:500;
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:18px;height:1px;background:var(--ink);display:inline-block}
  a{color:inherit;text-decoration:none}

  /* ---------- top bar ---------- */
  .nav{
    position:sticky;top:0;z-index:20;background:transparent;isolation:isolate;
  }
  /* progressive blur: nested layers so the blur radius compounds toward the top,
     giving a smooth ramp from max-blur (top) to clear (bottom) */
  .nav-blur{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
  .nav-blur .nb{position:absolute;inset:0}
  .nav-blur .nb1{backdrop-filter:blur(0.6px);-webkit-backdrop-filter:blur(0.6px);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%)}
  .nav-blur .nb2{backdrop-filter:blur(1.2px);-webkit-backdrop-filter:blur(1.2px);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 66%,transparent 90%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 66%,transparent 90%)}
  .nav-blur .nb3{backdrop-filter:blur(2.4px);-webkit-backdrop-filter:blur(2.4px);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 46%,transparent 74%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 46%,transparent 74%)}
  .nav-blur .nb4{backdrop-filter:blur(4.8px);-webkit-backdrop-filter:blur(4.8px);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 28%,transparent 56%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 28%,transparent 56%)}
  .nav-blur .nb5{backdrop-filter:blur(9px) saturate(140%);-webkit-backdrop-filter:blur(9px) saturate(140%);
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 14%,transparent 40%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 14%,transparent 40%)}
  /* faint tint that follows the same top-heavy falloff for legibility */
  .nav-blur .nb-tint{background:linear-gradient(to bottom,color-mix(in srgb,var(--paper) 60%,transparent) 0%,transparent 82%)}
  .nav-inner{
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
    padding:14px 40px 44px;width:100%;
  }
  .logo{display:flex;align-items:center;gap:10px;font-family:'Inter Tight';font-weight:700;font-size:18px;letter-spacing:-.01em}
  .logo .mk{
    width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--paper);
    display:grid;place-items:center;font-family:'Inter Tight';font-weight:800;font-size:15px;
    border:1px solid var(--ink);
  }
  .logo .mk svg{display:block}
  .logo em{font-style:normal;font-weight:500;color:var(--ink-2)}
  .navlinks{display:flex;gap:32px;font-size:14px;font-weight:500}
  .navlinks a{padding:6px 2px;border-bottom:1.5px solid transparent}
  .navlinks a.active{border-color:var(--ink)}
  .navlinks a:hover{color:var(--crimson)}
  .nav-desc{display:none}
  .nav-right{display:flex;gap:10px;justify-content:flex-end;align-items:center;font-size:13px}
  .nav-burger{display:none;width:38px;height:38px;padding:0;border:none;background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--ink)}
  .nav-burger .bar{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .28s ease,opacity .18s ease}
  .nav.menu-open .nav-burger .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.menu-open .nav-burger .bar:nth-child(2){opacity:0}
  .nav.menu-open .nav-burger .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .pill{
    border:1px solid var(--ink);border-radius:999px;padding:9px 16px;
    display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:13px;
    background:transparent;cursor:pointer;transition:all .18s ease;
  }
  .pill:hover{background:var(--ink);color:var(--paper)}
  .pill.solid{background:var(--ink);color:var(--paper)}
  .pill.solid:hover{background:var(--crimson);border-color:var(--crimson)}
  .pill.crimson{background:var(--crimson);color:var(--white);border-color:var(--crimson)}
  .pill.crimson:hover{background:var(--crimson-2);border-color:var(--crimson-2)}
  .lang{display:flex;align-items:center;gap:2px;color:var(--muted);font-size:12px;font-family:'JetBrains Mono',monospace}
  .lang .lg{padding:3px 6px;border-radius:5px;cursor:pointer;transition:color .15s ease,background .15s ease;position:relative}
  .lang .lg:not(:last-child){margin-right:7px}
  .lang .lg:not(:last-child)::after{content:"·";position:absolute;right:-6px;color:var(--muted);pointer-events:none}
  .lang .lg:hover{color:var(--ink)}
  .lang .lg.active{color:var(--ink);font-weight:600}
  [data-theme="dark"] .lang .lg.active{color:#E7E7E2}

  /* ---------- HERO variants ---------- */
  .hero{padding:0 64px;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}

  /* --- variant A: the grid-engineered hero --- */
  .heroA{display:grid;grid-template-columns:1.35fr 1fr;gap:72px;padding-top:72px;padding-bottom:80px;align-items:end}
  .heroA .meta{display:flex;justify-content:space-between;align-items:center;grid-column:1/-1;margin-bottom:32px;padding-bottom:18px;border-bottom:1px solid var(--hair)}
  .heroA h1{font-size:128px;margin:0}
  .heroA h1 .prog{color:var(--crimson);font-style:italic;font-weight:800}
  .heroA h1 .tick{display:inline-block;position:relative}
  .heroA h1 .tick::after{
    content:"";position:absolute;right:-14px;bottom:14px;width:14px;height:14px;background:var(--amber);
  }
  .heroA .sub{font-size:18px;color:var(--ink-2);max-width:460px;margin:0 0 28px}
  .heroA .cta-row{display:flex;gap:10px;align-items:center}
  .heroA .right{display:flex;flex-direction:column;gap:18px;padding-bottom:8px}
  .heroA .stat-card{
    border:1px solid var(--hair);background:var(--white);padding:22px 24px;
    display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;
  }
  .heroA .stat-card .n{font-family:'Inter Tight';font-weight:700;font-size:56px;letter-spacing:-.04em;line-height:1}
  .heroA .stat-card .n .u{color:var(--crimson);font-size:34px;vertical-align:top}
  .heroA .stat-card .l{font-size:13px;color:var(--muted);line-height:1.4}
  .heroA .stat-card .l b{display:block;color:var(--ink);font-weight:600;font-size:15px;margin-bottom:2px;font-family:'Inter Tight'}

  /* --- variant B: typographic slab --- */
  .heroB{padding-top:64px;padding-bottom:72px;position:relative}
  .heroB .stack{font-family:'Inter Tight';font-weight:800;letter-spacing:-.05em;font-size:180px;line-height:.88;color:var(--ink)}
  .heroB .stack .ghost{color:#D9D9D3;-webkit-text-stroke:1px var(--ink);color:transparent}
  .heroB .stack .red{color:var(--crimson);font-style:italic}
  .heroB .rowB{display:flex;align-items:flex-end;justify-content:space-between;margin-top:24px;gap:48px}
  .heroB .bcard{
    background:var(--crimson);color:var(--white);padding:28px 32px;max-width:420px;
    position:relative;
  }
  .heroB .bcard p{margin:0;font-size:17px;line-height:1.45}
  .heroB .bcard .dot{position:absolute;top:22px;right:22px;width:16px;height:16px;border-radius:50%;background:var(--ink)}
  .heroB .bcard .tag{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;opacity:.85}
  .heroB .right{text-align:right}
  .heroB .right .sub{font-size:17px;color:var(--ink-2);max-width:360px;margin:0 0 20px auto}

  /* --- variant C: split with terminal --- */
  .heroC{display:grid;grid-template-columns:1fr 620px;gap:64px;padding-top:64px;padding-bottom:80px}
  .heroC h1{font-size:96px;margin:16px 0 24px}
  .heroC h1 em{font-style:normal;color:var(--crimson)}
  .heroC .sub{font-size:19px;color:var(--ink-2);max-width:520px;margin:0 0 32px}
  .heroC .cta-row{display:flex;gap:12px;margin-bottom:48px}
  .heroC .ticks{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;max-width:520px}
  .heroC .ticks li{display:flex;gap:10px;font-size:14px;color:var(--ink-2);align-items:flex-start;list-style:none}
  .heroC .ticks li svg{flex-shrink:0;margin-top:3px}
  .heroC .term{
    background:#0E0E10;color:#E7E7E2;border-radius:2px;
    font-family:'JetBrains Mono',monospace;font-size:13.5px;line-height:1.75;
    padding:0;border:1px solid #1C1C1F;overflow:hidden;align-self:end;
  }
  .heroC .term-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;border-bottom:1px solid #1C1C1F;background:#141418}
  .heroC .term-bar .d{width:10px;height:10px;border-radius:50%;background:#2A2A2E}
  .heroC .term-bar .d.r{background:#C8133A}
  .heroC .term-bar .t{margin-left:auto;font-size:11px;color:#6B6B70;letter-spacing:.08em}
  .heroC .term pre{margin:0;padding:22px 22px 26px;white-space:pre-wrap}
  .heroC .term .c{color:#6B6B70}
  .heroC .term .k{color:#C8133A}
  .heroC .term .s{color:#E9B84C}
  .heroC .term .v{color:#9FC8FF}
  .heroC .term .p{color:#E7E7E2}
  .heroC .term .cur::after{content:"▌";color:var(--amber);margin-left:2px;animation:bl 1s steps(1) infinite}
  @keyframes bl{50%{opacity:0}}

  /* ---------- proof strip ---------- */
  .proof{border-bottom:1px solid var(--hair);padding:28px 64px;display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
  .proof .label{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);max-width:160px;line-height:1.4}
  .proof .logos{display:flex;justify-content:space-between;align-items:center;gap:40px}
  .logo-mark{font-family:'Inter Tight';font-weight:700;font-size:20px;color:#8A8A8F;letter-spacing:-.02em;opacity:.85}
  .logo-mark:hover{color:var(--ink);opacity:1}
  .logo-mark .svc{font-weight:400;color:#B0B0B3}

  /* ---------- services ---------- */
  .services{padding:120px 64px;border-bottom:1px solid var(--hair)}
  .sec-head{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-bottom:72px;align-items:end}
  .sec-head h2{margin:16px 0 0}
  .sec-head .desc{font-size:17px;color:var(--ink-2);max-width:460px;margin:0}
  .svc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
  .svc-card{
    grid-column:span 2;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
    padding:32px 28px 28px;background:var(--white);min-height:280px;display:flex;flex-direction:column;
    position:relative;cursor:pointer;transition:background .2s ease;
  }
  .svc-card:hover{background:#F3F3EE}
  .svc-card .num{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;color:var(--muted)}
  .svc-card .arrow{position:absolute;top:28px;right:24px;transition:transform .2s ease}
  .svc-card:hover .arrow{transform:translate(4px,-4px)}
  .svc-card h3{font-family:'Inter Tight';font-weight:700;font-size:26px;letter-spacing:-.02em;margin:auto 0 12px;line-height:1.1}
  .svc-card h3 b{color:var(--crimson);font-weight:700}
  .svc-card p{font-size:14px;color:var(--muted);margin:0 0 18px;line-height:1.5;max-width:280px}
  .svc-card .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
  .svc-card .tag{
    font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
    border:1px solid var(--hair);padding:4px 8px;color:var(--ink-2);border-radius:2px;background:var(--paper)
  }
  .svc-card.feat{background:var(--ink);color:var(--paper)}
  .svc-card.feat .num{color:#8A8A8F}
  .svc-card.feat p{color:#B0B0B3}
  .svc-card.feat .tag{background:transparent;border-color:#2A2A2E;color:#B0B0B3}
  .svc-card.feat h3 b{color:var(--amber)}
  .svc-card.feat:hover{background:#1A1A1E}

  /* ---------- metrics / process ---------- */
  .metrics{padding:120px 64px;background:var(--ink);color:var(--paper);border-bottom:1px solid var(--ink)}
  .metrics .eyebrow{color:#8A8A8F}
  .metrics .eyebrow::before{background:var(--paper)}
  .metrics h2{color:var(--paper);max-width:900px;margin:16px 0 64px}
  .metrics .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #2A2A2E}
  .metrics .m{padding:32px 24px 32px 0;border-right:1px solid #2A2A2E;border-bottom:1px solid #2A2A2E}
  .metrics .m:last-child{border-right:none}
  .metrics .n{font-family:'Inter Tight';font-weight:700;font-size:80px;letter-spacing:-.04em;line-height:.95;margin-bottom:12px}
  .metrics .n .u{font-size:40px;color:var(--amber);vertical-align:top}
  .metrics .l{font-size:14px;color:#B0B0B3;max-width:220px;line-height:1.5}
  .metrics .l b{display:block;color:var(--paper);font-weight:600;font-family:'Inter Tight';font-size:16px;margin-bottom:4px}

  /* ---------- process ---------- */
  .process{padding:120px 64px;border-bottom:1px solid var(--hair)}
  .proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:64px}
  .proc{border-top:1px solid var(--ink);padding-top:24px}
  .proc .n{font-family:'JetBrains Mono';font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:16px}
  .proc h3{font-family:'Inter Tight';font-weight:700;font-size:24px;letter-spacing:-.02em;margin:0 0 12px;line-height:1.15}
  .proc p{font-size:14px;color:var(--muted);margin:0;line-height:1.55}
  .proc .dur{margin-top:16px;font-family:'JetBrains Mono';font-size:11px;letter-spacing:.08em;color:var(--crimson)}

  /* ---------- case study ---------- */
  .cases{padding:120px 64px;border-bottom:1px solid var(--hair)}
  .case-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-top:64px}
  .case{border:1px solid var(--hair);background:var(--white);padding:0;overflow:hidden}
  .case .img{
    aspect-ratio:16/10;background:
      repeating-linear-gradient(135deg,#EDEDE6 0 10px, #F5F5EF 10px 20px);
    position:relative;border-bottom:1px solid var(--hair);
  }
  .case .img .logo-big{
    position:absolute;inset:0;display:grid;place-items:center;
    font-family:'Inter Tight';font-weight:800;font-size:72px;color:var(--ink);letter-spacing:-.04em;
  }
  .case .img .logo-big .a{color:var(--crimson)}
  .case .body{padding:28px 30px 30px}
  .case .sector{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
  .case h3{font-family:'Inter Tight';font-weight:700;font-size:32px;letter-spacing:-.025em;margin:0 0 14px;line-height:1.1}
  .case .lede{font-size:15px;color:var(--ink-2);margin:0 0 24px;max-width:480px}
  .case .stats{display:flex;gap:28px;padding-top:20px;border-top:1px solid var(--hair)}
  .case .stat .n{font-family:'Inter Tight';font-weight:700;font-size:32px;letter-spacing:-.03em;line-height:1}
  .case .stat .l{font-size:12px;color:var(--muted);margin-top:4px;font-family:'JetBrains Mono';letter-spacing:.06em;text-transform:uppercase}
  .case .small-img{aspect-ratio:4/3}
  .case .small-img .logo-big{font-size:48px}

  /* ---------- team ---------- */
  .team{padding:120px 64px;border-bottom:1px solid var(--hair);display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}
  .team .portrait{
    aspect-ratio:4/5;background:
      repeating-linear-gradient(135deg,#EDEDE6 0 8px, #F5F5EF 8px 16px);
    border:1px solid var(--hair);position:relative;
  }
  .team .portrait::after{
    content:"PORTRAIT — OLEKSANDR KHANTIL";position:absolute;left:20px;bottom:20px;
    font-family:'JetBrains Mono';font-size:10px;letter-spacing:.14em;color:var(--muted);
  }
  .team .pquote{
    font-family:'Inter Tight';font-weight:600;font-size:44px;letter-spacing:-.025em;line-height:1.12;
    margin:16px 0 32px;text-wrap:pretty;
  }
  .team .pquote::before{content:"";display:block;width:32px;height:3px;background:var(--crimson);margin-bottom:28px}
  .team .sig{display:flex;align-items:center;gap:16px;margin-bottom:32px}
  .team .sig .mk{width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:'Inter Tight';font-weight:800}
  .team .sig b{display:block;font-family:'Inter Tight';font-weight:600;font-size:16px}
  .team .sig span{font-size:13px;color:var(--muted);font-family:'JetBrains Mono';letter-spacing:.04em}
  .team .bio{font-size:15px;color:var(--ink-2);max-width:520px;margin:0 0 28px;line-height:1.6}
  .team .fine{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;max-width:520px;border-top:1px solid var(--hair);padding-top:24px}
  .team .fine .k{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
  .team .fine .v{font-size:14px;color:var(--ink)}

  /* ---------- blog ---------- */
  .blog{padding:120px 64px;border-bottom:1px solid var(--hair)}
  .blog-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;margin-top:56px}
  .post{display:flex;flex-direction:column;cursor:pointer}
  .post .img{aspect-ratio:4/3;background:
      repeating-linear-gradient(135deg,#EDEDE6 0 8px, #F5F5EF 8px 16px);
    position:relative;overflow:hidden;margin-bottom:16px;border:1px solid var(--hair)}
  .post.lead .img{aspect-ratio:16/11}
  .post .img .ph{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;color:var(--muted)}
  .post .meta{display:flex;gap:10px;align-items:center;margin-bottom:10px}
  .post .cat{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:4px 8px;border-radius:2px}
  .post .date{font-family:'JetBrains Mono';font-size:11px;color:var(--muted);letter-spacing:.04em}
  .post h3{font-family:'Inter Tight';font-weight:600;font-size:22px;letter-spacing:-.02em;margin:0 0 10px;line-height:1.2}
  .post.lead h3{font-size:32px;line-height:1.08}
  .post p{font-size:14px;color:var(--muted);margin:0;max-width:420px;line-height:1.55}
  .post:hover h3{color:var(--crimson)}
  .blog-head{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}
  .blog-search{display:flex;align-items:center;gap:8px;border:1px solid var(--hair);background:var(--white);padding:10px 14px;min-width:320px;border-radius:2px}
  .blog-search input{border:none;outline:none;background:transparent;font-family:inherit;font-size:14px;flex:1}
  .blog-tabs{display:flex;gap:8px;margin-top:32px}
  .tab{
    font-family:'JetBrains Mono';font-size:11px;letter-spacing:.12em;text-transform:uppercase;
    border:1px solid var(--hair);padding:8px 14px;border-radius:999px;background:var(--white);cursor:pointer;color:var(--ink-2)
  }
  .tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

  /* ---------- contact ---------- */
  .contact{padding:120px 64px;background:var(--ink);color:var(--paper)}
  .contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:start}
  .contact h2{color:var(--paper);margin:16px 0 28px}
  .contact .eyebrow{color:#8A8A8F}
  .contact .eyebrow::before{background:var(--paper)}
  .contact .lede{font-size:17px;color:#B0B0B3;max-width:440px;margin:0 0 40px}
  .contact .dl{display:grid;grid-template-columns:1fr 1fr;gap:32px 48px;border-top:1px solid #2A2A2E;padding-top:28px;max-width:500px}
  .contact .dl .k{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8A8A8F;margin-bottom:6px}
  .contact .dl .v{font-size:15px;color:var(--paper);font-family:'Inter Tight';font-weight:500}
  .contact form{display:grid;gap:16px;background:#141418;padding:32px;border:1px solid #1C1C1F}
  .contact .f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .contact label{display:block}
  .contact .lab{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8A8A8F;margin-bottom:8px}
  .contact input,.contact select,.contact textarea{
    width:100%;background:transparent;border:none;border-bottom:1px solid #2A2A2E;
    color:var(--paper);font-family:inherit;font-size:15px;padding:8px 0 10px;outline:none;
  }
  .contact input::placeholder,.contact textarea::placeholder{color:#5A5A5E}
  .contact input:focus,.contact select:focus,.contact textarea:focus{border-bottom-color:var(--crimson)}
  .contact textarea{resize:none;height:64px}
  .contact .budget{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
  .contact .budget button{
    background:transparent;border:1px solid #2A2A2E;color:#B0B0B3;
    font-family:'JetBrains Mono';font-size:11px;letter-spacing:.1em;text-transform:uppercase;
    padding:7px 12px;border-radius:999px;cursor:pointer
  }
  .contact .budget button.on{background:var(--crimson);border-color:var(--crimson);color:var(--white)}
  .contact .submit{
    display:flex;justify-content:space-between;align-items:center;border-top:1px solid #1C1C1F;
    padding-top:20px;margin-top:8px
  }
  .contact .submit .note{font-family:'JetBrains Mono';font-size:11px;color:#6B6B70;letter-spacing:.04em}

  /* ---------- footer ---------- */
  footer{padding:64px 64px 40px;background:var(--ink);color:#8A8A8F;border-top:1px solid #1C1C1F}
  .foot{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;margin-bottom:56px}
  .foot h4{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#E7E7E2;margin:0 0 18px;font-weight:500}
  .foot ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:14px}
  .foot a:hover{color:var(--paper)}
  .foot .brand p{font-size:14px;color:#8A8A8F;max-width:360px;line-height:1.55;margin:16px 0 0}
  .foot-bot{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid #1C1C1F;font-family:'JetBrains Mono';font-size:11px;letter-spacing:.08em;color:#6B6B70}
  .foot-bot .legal{display:flex;gap:24px}

  /* ---------- annotations ---------- */
  .annot{
    position:fixed;right:24px;bottom:24px;z-index:50;
    background:var(--ink);color:var(--paper);border-radius:2px;
    max-width:340px;border:1px solid #2A2A2E;
    box-shadow:0 20px 60px rgba(0,0,0,.3);
    font-family:'JetBrains Mono';font-size:12px;
  }
  .annot.collapsed .abody{display:none}
  .annot-hd{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #2A2A2E;letter-spacing:.1em;text-transform:uppercase;font-size:11px;cursor:pointer}
  .annot-hd .dot{width:8px;height:8px;border-radius:50%;background:var(--crimson);margin-right:8px;display:inline-block;vertical-align:middle}
  .annot .abody{padding:4px 0}
  .annot .item{padding:10px 16px;border-bottom:1px solid #1C1C1F;font-family:'Inter';font-size:13px;color:#B0B0B3;line-height:1.5}
  .annot .item:last-child{border-bottom:none}
  .annot .item b{font-family:'Inter Tight';color:var(--paper);font-weight:600;display:block;margin-bottom:4px;font-size:13.5px}
  .annot .item .k{color:var(--amber);font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin-right:6px}

  /* ---------- hero switcher (tweaks shows it too) ---------- */
  .hero-switch{
    display:flex;gap:6px;position:absolute;top:88px;right:64px;z-index:10;
    font-family:'JetBrains Mono';font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  }
  .hero-switch .lab{color:var(--muted);padding:6px 0;margin-right:6px}
  .hero-switch button{
    border:1px solid var(--hair);background:var(--white);padding:6px 10px;
    font-family:inherit;font-size:11px;letter-spacing:.1em;cursor:pointer;border-radius:2px;
    color:var(--ink-2)
  }
  .hero-switch button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

  .hidden{display:none !important}

  /* tweaks panel */
  .tweaks{
    position:fixed;top:80px;right:24px;z-index:60;width:280px;
    background:var(--white);border:1px solid var(--hair);
    font-family:'Inter';font-size:13px;box-shadow:0 20px 60px rgba(0,0,0,.1);
  }
  .tweaks h5{margin:0;padding:12px 16px;border-bottom:1px solid var(--hair);font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;display:flex;justify-content:space-between}
  .tweaks .trow{padding:12px 16px;border-bottom:1px solid var(--hair)}
  .tweaks .trow:last-child{border-bottom:none}
  .tweaks .tlab{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
  .tweaks .tchips{display:flex;gap:6px;flex-wrap:wrap}
  .tweaks .tchips button{border:1px solid var(--hair);background:var(--paper);padding:6px 10px;font-family:inherit;font-size:12px;cursor:pointer;border-radius:2px}
  .tweaks .tchips button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}


/* ── DARK THEME ── */
[data-theme="dark"] {
  --ink: #E7E7E2;
  --ink-2: #B0B0B3;
  --muted: #8A8A8F;
  --hair: #2A2A2E;
  --paper: #0E0E10;
  --white: #141418;
  --crimson: #E8294E;
  --crimson-2: #C8133A;
}

/* Nav glass in dark mode */
[data-theme="dark"] .nav {
  background: transparent;
}

/* Cards & white surfaces */
[data-theme="dark"] .svc-card { background: #141418; }
[data-theme="dark"] .svc-card:hover { background: #1A1A1E; }
[data-theme="dark"] .svc-card.feat { background: #1C1C1F; }
[data-theme="dark"] .svc-card.feat:hover { background: #222226; }
[data-theme="dark"] .post .img { background: repeating-linear-gradient(135deg,#1A1A1E 0 8px,#141418 8px 16px); }
[data-theme="dark"] .blog-search { background: #141418; border-color: #2A2A2E; }
[data-theme="dark"] .tab { background: #141418; }

/* Dark accent sections — lift slightly off the page */
[data-theme="dark"] .section.dark,
[data-theme="dark"] .metrics,
[data-theme="dark"] .contact,
[data-theme="dark"] .stack-dark,
[data-theme="dark"] .quote-s,
[data-theme="dark"] footer {
  background: #141418;
}

/* Hairline borders adapt via var(--hair) automatically */

/* Page hero */
[data-theme="dark"] .page-hero { background: var(--paper); }

/* Bio strip */
[data-theme="dark"] .bio-strip .bs { border-color: #2A2A2E; }

/* Portrait placeholder */
[data-theme="dark"] .portrait,
[data-theme="dark"] .case .img,
[data-theme="dark"] .prod .art {
  background: repeating-linear-gradient(135deg,#1A1A1E 0 8px,#141418 8px 16px);
}

/* Case cards */
[data-theme="dark"] .case { background: #141418; }

/* Form elements */
[data-theme="dark"] .contact input,
[data-theme="dark"] .contact select,
[data-theme="dark"] .contact textarea { border-bottom-color: #3A3A3E; }
[data-theme="dark"] .contact form { background: #0E0E10; border-color: #2A2A2E; }

/* Pill button default */
[data-theme="dark"] .pill { border-color: #3A3A3E; color: var(--ink); }
[data-theme="dark"] .pill:hover { background: var(--ink); color: var(--paper); }
[data-theme="dark"] .pill.solid { background: var(--ink); color: var(--paper); }

/* Theme toggle button */
.theme-toggle {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--hair); background: transparent;
  cursor: pointer; display: grid; place-items: center;
  color: var(--ink); transition: all .18s ease; flex-shrink: 0;
}
.theme-toggle:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.theme-toggle svg { display: block; }

/* ---------- additions for multi-page site ---------- */
.page-hero{padding:80px 40px 100px;border-bottom:1px solid var(--hair);position:relative}
.page-hero .wrap-inner{max-width:none}
.page-hero .crumb{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:40px;display:flex;gap:10px;align-items:center}
.page-hero h1{font-family:'Inter Tight';font-weight:700;font-size:clamp(52px,7.8vw,112px);letter-spacing:-.04em;line-height:.94;margin:0}
.page-hero h1 em{font-style:normal;color:var(--crimson)}
.page-hero .lede{font-size:20px;color:var(--ink-2);max-width:620px;margin:36px 0 0;line-height:1.4}

/* ---------- gooey morphing headline accent ---------- */
.gmorph{display:block;position:relative;height:.94em;color:var(--crimson);filter:url(#gooey-threshold);will-change:filter}
.gmorph .g1,.gmorph .g2{position:absolute;left:0;top:0;white-space:nowrap;line-height:.94}
.gmorph .g2{opacity:0}
@media (prefers-reduced-motion: reduce){.gmorph{filter:none}.gmorph .g2{display:none}}

.section{padding:120px 40px;border-bottom:1px solid var(--hair)}
.section.dark{background:var(--ink);color:var(--paper)}
.section.dark .eyebrow{color:#8A8A8F}
.section.dark .eyebrow::before{background:var(--paper)}
.section.dark h2{color:var(--paper)}

.wrap-inner{max-width:1360px;margin:0 auto}

/* single-developer / about specific */
.me{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:start}
.me .portrait{aspect-ratio:4/5;background:repeating-linear-gradient(135deg,#EDEDE6 0 8px,#F5F5EF 8px 16px);border:1px solid var(--hair);position:relative}
.me .portrait::after{content:"PORTRAIT — OLEKSANDR KHANTIL";position:absolute;left:20px;bottom:20px;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.14em;color:var(--muted)}
.me .bio-body p{font-size:17px;color:var(--ink-2);line-height:1.65;margin:0 0 18px;max-width:560px}
.me h2{margin:0 0 12px}
.me .quick{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;margin-top:36px;padding-top:28px;border-top:1px solid var(--hair);max-width:560px}
.me .quick .k{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.me .quick .v{font-size:14px;color:var(--ink)}

/* timeline */
.timeline{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-top:56px;position:relative}
.timeline .year{font-family:'Inter Tight';font-weight:700;font-size:40px;letter-spacing:-.025em;color:var(--crimson);border-top:2px solid var(--crimson);padding-top:12px}
.timeline .item{border-top:1px solid var(--hair);padding:12px 0 36px}
.timeline .item .t{font-family:'Inter Tight';font-weight:600;font-size:22px;letter-spacing:-.02em;margin:0 0 8px}
.timeline .item p{font-size:15px;color:var(--ink-2);line-height:1.55;margin:0;max-width:600px}

/* stack chips */
.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px}
.stack-col h4{font-family:'JetBrains Mono';font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 16px;font-weight:500;padding-bottom:12px;border-bottom:1px solid var(--hair)}
.stack-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.stack-col li{font-family:'Inter Tight';font-size:18px;font-weight:500;letter-spacing:-.01em}
.stack-col li span{font-family:'JetBrains Mono';font-size:11px;color:var(--muted);margin-left:8px;letter-spacing:.04em}

/* products */
.prod-hero{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border-top:1px solid var(--hair);margin-top:64px}
.prod{border:1px solid var(--hair);border-left:none;padding:0;background:var(--white);display:flex;flex-direction:column;min-height:560px;position:relative;overflow:hidden}
.prod:first-child{border-left:1px solid var(--hair)}
.prod .pmeta{padding:28px 32px 0;display:flex;justify-content:space-between;align-items:center}
.prod .pbadge{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:4px 10px;border-radius:2px;background:var(--paper);border:1px solid var(--hair)}
.prod .pbadge.live{background:var(--crimson);color:var(--white);border-color:var(--crimson)}
.prod .pbadge.beta{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.prod .pbadge.soon{background:transparent;color:var(--muted)}
.prod .ver{font-family:'JetBrains Mono';font-size:11px;color:var(--muted);letter-spacing:.06em}
.prod .art{flex:1;margin:24px 32px;border:1px solid var(--hair);background:repeating-linear-gradient(135deg,#F5F5EF 0 8px,#FAFAF7 8px 16px);display:grid;place-items:center;position:relative;overflow:hidden;min-height:200px}
.prod .art .mock{font-family:'Inter Tight';font-weight:800;font-size:46px;color:var(--ink);letter-spacing:-.04em;text-align:center;padding:0 12px}
.prod .art .mock em{font-style:normal;color:var(--crimson)}
.prod h3{font-family:'Inter Tight';font-weight:700;font-size:32px;letter-spacing:-.025em;margin:0 32px 10px;line-height:1.1}
.prod p{font-size:15px;color:var(--ink-2);margin:0 32px 18px;max-width:400px;line-height:1.5}
.prod .pfoot{display:flex;justify-content:space-between;align-items:center;padding:18px 32px 24px;border-top:1px solid var(--hair);margin-top:auto}
.prod .pfoot .price{font-family:'Inter Tight';font-weight:600;font-size:18px}
.prod .pfoot .price span{font-family:'JetBrains Mono';font-size:11px;color:var(--muted);font-weight:500;margin-left:6px}

.prod-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.prod-s{border:1px solid var(--hair);background:var(--white);padding:24px 26px;display:flex;flex-direction:column;gap:14px}
.prod-s .head{display:flex;justify-content:space-between;align-items:center}
.prod-s h4{font-family:'Inter Tight';font-weight:700;font-size:22px;letter-spacing:-.02em;margin:0;line-height:1.15}
.prod-s p{font-size:14px;color:var(--muted);margin:0;line-height:1.5}
.prod-s .tags{display:flex;gap:6px;flex-wrap:wrap}

/* blog large archive */
.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px;margin-top:48px}
.archive-grid .post{border-top:1px solid var(--hair);padding-top:20px}
.archive-grid .post .img{display:none}
.archive-grid .post h3{font-size:22px;line-height:1.2}
.archive-grid .post p{font-size:14px;max-width:100%}

/* ============================================================
   RESPONSIVE  —  tablet (≤1024) and phone (≤680)
   ============================================================ */
@media (max-width: 1024px){
  .wrap-inner{max-width:100%}

  /* nav — hamburger menu: full-page frosted overlay */
  .nav-blur{display:block;background:color-mix(in srgb, var(--paper) 70%, transparent);
    -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}
  .nav-blur .nb,.nav-blur .nb-tint{display:none}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:0 12px;padding:14px 24px;background:transparent}
  .logo{position:relative;z-index:2}
  .nav-right{position:relative;z-index:2}
  .nav-burger{display:flex}
  .nav-right > .lang{display:none}
  /* full-screen overlay; header logo + close button float above it (z-index:2) */
  .navlinks{
    position:fixed;inset:0;z-index:1;overflow-y:auto;
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    padding:calc(env(safe-area-inset-top,0px) + 14vh) 28px calc(env(safe-area-inset-bottom,0px) + 32px);
    background:color-mix(in srgb, var(--paper) 78%, transparent);
    -webkit-backdrop-filter:blur(26px) saturate(150%);backdrop-filter:blur(26px) saturate(150%);
    opacity:0;visibility:hidden;transform:translateY(-10px);
    transition:opacity .32s ease,transform .4s cubic-bezier(.22,1,.36,1),visibility .32s;
    pointer-events:none;
  }
  .nav.menu-open .navlinks{opacity:1;visibility:visible;transform:none;pointer-events:auto}
  .navlinks > a{position:relative;width:100%;padding:11px 0;border:0;font-family:'Inter Tight',sans-serif;font-size:22px;font-weight:600;letter-spacing:-.02em;transition:color .18s ease,padding-left .22s cubic-bezier(.22,1,.36,1)}
  .navlinks > a.active{color:var(--crimson);padding-left:24px;border:0}
  .navlinks > a.active::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:24px;border-radius:2px;background:var(--crimson)}
  .navlinks > a:hover{color:var(--crimson)}
  /* language pills carry no underline (reset the desktop nav-link border) */
  .navlinks .lang .lg,.navlinks .lang .lg.active{border:0}
  /* per-item entrance stagger */
  .navlinks > a,.navlinks .lang{opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .34s cubic-bezier(.22,1,.36,1)}
  .nav.menu-open .navlinks > a,.nav.menu-open .navlinks .lang{opacity:1;transform:none}
  .nav.menu-open .navlinks > a:nth-child(1){transition-delay:.08s}
  .nav.menu-open .navlinks > a:nth-child(2){transition-delay:.13s}
  .nav.menu-open .navlinks > a:nth-child(3){transition-delay:.18s}
  .nav.menu-open .navlinks > a:nth-child(4){transition-delay:.23s}
  .nav.menu-open .navlinks .lang{transition-delay:.3s}
  /* language selector pinned to the bottom, same look as the desktop version */
  .navlinks .lang{margin-top:auto;align-self:center;justify-content:center}
  /* lock scroll + hide the floating CTA while the full-page menu is open */
  body.nav-open{overflow:hidden}
  body.nav-open #floating-cta,body.nav-open .glass-cta{opacity:0 !important;pointer-events:none !important}

  .page-hero{padding:56px 24px 64px}
  .page-hero .lede{font-size:18px}

  .section,.services,.metrics,.process,.cases,.team,.blog,.contact{padding:80px 24px}
  .sec-head{gap:32px;margin-bottom:48px}

  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-card{grid-column:span 1;min-height:240px}

  .metrics .grid{grid-template-columns:repeat(2,1fr)}
  .metrics .m{border-right:1px solid #2A2A2E}
  .metrics .m:nth-child(2n){border-right:none}

  .proc-grid{grid-template-columns:repeat(2,1fr)}
  .stack-grid{grid-template-columns:repeat(2,1fr)}

  .prod-hero{grid-template-columns:1fr}
  .prod{min-height:auto}
  .prod:first-child{border-left:1px solid var(--hair)}
  .prod-list{grid-template-columns:repeat(2,1fr)}

  .archive-grid{grid-template-columns:repeat(2,1fr)}

  .case-grid{grid-template-columns:1fr;gap:32px}
  .team{grid-template-columns:1fr;gap:48px}
  .me{grid-template-columns:1fr;gap:48px}
  .timeline{grid-template-columns:1fr;gap:12px}
  .contact-grid{grid-template-columns:1fr;gap:48px}
}

/* ---------- tablet (768–1024): two-panel menu with a description pane ---------- */
@media (min-width: 768px) and (max-width: 1024px){
  /* links pinned to the left half, vertically centred as a group */
  .navlinks{
    justify-content:center;align-items:flex-start;
    padding:0 46% 0 clamp(40px,8vw,110px);
  }
  .navlinks > a{font-size:clamp(28px,4vw,38px);padding:13px 0}
  .navlinks > a.active{padding-left:24px}
  /* languages pinned to the bottom, horizontally centred */
  .navlinks .lang{
    position:absolute;
    left:0;right:0;
    bottom:clamp(32px,6vh,56px);
    margin-top:0;align-self:auto;justify-content:center;
  }

  /* description pane occupies the right half, tied to the hovered/active link */
  .nav-desc{
    display:flex;flex-direction:column;gap:16px;
    position:absolute;top:50%;transform:translateY(-50%);
    right:clamp(40px,8vw,110px);
    width:min(40%,420px);
    padding-left:clamp(32px,4vw,52px);
    border-left:1px solid var(--hair);
    opacity:0;transition:opacity .4s ease;
  }
  .nav.menu-open .nav-desc{opacity:1;transition-delay:.26s}
  .nav-desc-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .nav-desc-inner{display:flex;flex-direction:column;gap:12px;transition:opacity .2s ease,transform .28s cubic-bezier(.22,1,.36,1)}
  .nav-desc-inner.swapping{opacity:0;transform:translateY(7px)}
  .nav-desc-title{font-family:'Inter Tight',sans-serif;font-size:clamp(22px,2.6vw,28px);font-weight:600;letter-spacing:-.02em;color:var(--ink);line-height:1.18}
  .nav-desc-body{font-size:16px;line-height:1.6;color:var(--ink-2);margin:0}
}

@media (max-width: 640px){
  body{overflow-x:hidden}

  /* nav bar padding tightens on phones (overlay menu itself is handled at ≤1024px) */
  .nav-inner{padding:14px 20px}

  /* hero */
  .page-hero{padding:36px 20px 44px}
  .page-hero .crumb{margin-bottom:22px;flex-wrap:wrap}
  .page-hero h1{font-size:clamp(30px,8.6vw,58px)}
  .page-hero .lede{font-size:16px;margin-top:22px;max-width:none}

  /* sections */
  .section,.services,.metrics,.process,.cases,.team,.blog,.contact{padding:52px 20px}
  .sec-head{grid-template-columns:1fr;gap:16px;margin-bottom:32px}
  .sec-head .desc{max-width:none}
  .h2{font-size:clamp(32px,9vw,44px)}
  .h3{font-size:24px}

  /* collapse all multi-column layouts */
  .svc-grid,.metrics .grid,.proc-grid,.stack-grid,.prod-hero,.prod-list,
  .archive-grid,.blog-grid,.case-grid,.team,.me,.timeline,.contact-grid{grid-template-columns:1fr}
  .svc-card{grid-column:auto;min-height:auto}
  .metrics .m{border-right:none}
  .metrics .n{font-size:52px}
  .team .pquote{font-size:30px}
  .prod .art .mock{font-size:36px}
  .contact .f-row{grid-template-columns:1fr}
  .contact .dl{grid-template-columns:1fr}

  /* footer */
  .foot{grid-template-columns:1fr;gap:32px}
  .foot-bot{flex-direction:column;gap:12px;align-items:flex-start}

  /* generic inline-styled grids → single column */
  .page-hero .wrap-inner > div[style*="grid-template-columns"],
  section .wrap-inner > div[style*="grid-template-columns"],
  section > div[style*="grid-template-columns"]{grid-template-columns:1fr !important;gap:28px !important;align-items:start !important}

  /* floating CTA */
  #floating-cta{bottom:20px !important;right:20px !important;padding:12px 18px !important;font-size:14px !important}
  .glass-cta{ right:16px !important; bottom:16px !important; }
  .glass-cta .g-label{ padding:8px 15px !important; font-size:13px !important; }
}
