:root{
    --bg: oklch(0.985 0.005 255);
    --panel: oklch(0.998 0.002 255);
    --ink: oklch(0.21 0.035 264);
    --ink-2: oklch(0.43 0.03 264);
    --ink-3: oklch(0.60 0.022 264);
    --line: oklch(0.915 0.011 264);
    --line-2: oklch(0.855 0.015 264);
    --accent: oklch(0.52 0.18 256);
    --accent-d: oklch(0.45 0.18 256);
    --accent-soft: oklch(0.955 0.04 256);
    --accent-ink: oklch(0.38 0.15 256);
    --gold: oklch(0.72 0.11 78);
    --grad: linear-gradient(135deg, oklch(0.50 0.19 268), oklch(0.52 0.19 240));
    --screen: oklch(0.18 0.035 266);
    --screen-2: oklch(0.24 0.04 266);
    --sans: "Manrope", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
    --mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
    --pad: clamp(16px, 3.5vw, 48px);
    --solid-hover: oklch(0.30 0.02 262);
    --dim: oklch(0.7 0.02 262);
    --r: 12px; --r-lg: 20px;
    --shadow-sm: 0 1px 2px oklch(0.4 0.05 262 / .06), 0 2px 6px oklch(0.4 0.05 262 / .05);
    --shadow: 0 1px 2px oklch(0.4 0.05 262 / .05), 0 14px 40px oklch(0.4 0.08 262 / .10);
    --shadow-accent: 0 8px 24px oklch(0.52 0.18 256 / .32);
  }
  html[data-theme="dark"]{
    --bg: oklch(0.17 0.022 264);
    --panel: oklch(0.21 0.024 264);
    --ink: oklch(0.96 0.008 264);
    --ink-2: oklch(0.72 0.018 264);
    --ink-3: oklch(0.56 0.02 264);
    --line: oklch(0.32 0.022 264);
    --line-2: oklch(0.40 0.024 264);
    --accent: oklch(0.70 0.15 252);
    --accent-d: oklch(0.76 0.14 252);
    --accent-soft: oklch(0.28 0.06 258);
    --accent-ink: oklch(0.82 0.11 252);
    --gold: oklch(0.78 0.10 80);
    --grad: linear-gradient(135deg, oklch(0.52 0.18 268), oklch(0.50 0.18 240));
    --screen: oklch(0.15 0.022 264);
    --screen-2: oklch(0.20 0.026 264);
    --solid-hover: oklch(0.82 0.02 262);
    --dim: oklch(0.5 0.02 262);
    --shadow-sm: 0 1px 2px oklch(0 0 0 / .3), 0 2px 6px oklch(0 0 0 / .25);
    --shadow: 0 1px 2px oklch(0 0 0 / .3), 0 16px 44px oklch(0 0 0 / .45);
    --shadow-accent: 0 8px 24px oklch(0.45 0.20 258 / .5);
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    background:var(--bg); color:var(--ink); font-family:var(--mono);
    -webkit-font-smoothing:antialiased; line-height:1.45; overflow-x:hidden;
    font-size:14px;
  }
  a{ color:inherit; text-decoration:none; }
  ::selection{ background:var(--accent); color:#fff; }
  :focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
  html{ scroll-padding-top:74px; }
  #mods, #servers, #clients, #stack, #contact, #approach{ scroll-margin-top:74px; }
  .cnt{ font-variant-numeric:tabular-nums; }
  .sans{ font-family:var(--sans); }
  .lbl{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); }

  .shell{ max-width:1280px; margin:0 auto; border-left:1px solid var(--line); border-right:1px solid var(--line); min-height:100vh; background:var(--panel); }

  /* utility bar */
  .utilbar{ display:flex; align-items:center; justify-content:space-between; gap:16px;
    height:38px; padding:0 var(--pad); background:var(--ink); color:oklch(0.82 0.02 264);
    font-family:var(--mono); font-size:11px; letter-spacing:0.04em; }
  html[data-theme="dark"] .utilbar{ background:oklch(0.13 0.025 266); }
  .utilbar .ub-l{ display:flex; align-items:center; gap:20px; }
  .utilbar .ub-l .crumb{ display:flex; align-items:center; gap:8px; color:oklch(0.66 0.02 264); }
  .utilbar .ub-l .crumb b{ color:#fff; font-weight:500; }
  .utilbar .ub-r{ display:flex; align-items:center; gap:22px; }
  .utilbar a{ color:oklch(0.82 0.02 264); transition:color .15s; }
  .utilbar a:hover{ color:#fff; }
  .utilbar .lang{ display:flex; gap:2px; }
  .utilbar .lang a{ padding:2px 7px; border-radius:4px; }
  .utilbar .lang a.on{ background:oklch(1 0 0 / .14); color:#fff; }
  .utilbar .login{ display:inline-flex; align-items:center; gap:7px; color:#fff; padding:4px 12px; border:1px solid oklch(1 0 0 / .22); border-radius:6px; transition:.15s; }
  .utilbar .login:hover{ background:oklch(1 0 0 / .1); border-color:oklch(1 0 0 / .4); }
  @media(max-width:780px){ .utilbar .ub-l .crumb{ display:none; } }
  @media(max-width:560px){ .utilbar .phone{ display:none; } }

  /* top bar */
  .topbar{ position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between;
    height:72px; padding:0 var(--pad); border-bottom:1px solid var(--line);
    background:color-mix(in oklch, var(--panel) 88%, transparent); backdrop-filter:blur(14px); }
  .tb-left{ display:flex; align-items:center; gap:13px; }
  .tb-mark{ display:block; flex:none; }
  .tb-lock{ display:flex; flex-direction:column; gap:2px; line-height:1; }
  .tb-name{ font-family:var(--sans); font-weight:800; font-size:17px; letter-spacing:0.02em; color:var(--ink); }
  .tb-tag{ font-family:var(--mono); font-size:9.5px; letter-spacing:0.16em; color:var(--ink-3); text-transform:uppercase; }
  .tb-nav{ display:flex; gap:30px; }
  .tb-nav a{ font-family:var(--sans); font-size:14px; font-weight:500; color:var(--ink-2); transition:color .15s; position:relative; padding:6px 0; }
  .tb-nav a:hover{ color:var(--ink); }
  .tb-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--accent); transition:right .22s cubic-bezier(.2,.7,.2,1); }
  .tb-nav a:hover::after{ right:0; }
  .tb-nav a.active{ color:var(--ink); font-weight:600; }
  .tb-nav a.active::after{ right:0; }
  .tb-status{ display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; color:var(--ink-2); }
  .blink{ width:7px; height:7px; background:oklch(0.66 0.16 150); border-radius:50%; animation:bl 1.4s steps(1) infinite; box-shadow:0 0 0 3px oklch(0.66 0.16 150 / .18); }
  @keyframes bl{ 50%{ opacity:0; } }
  .tb-right{ display:flex; align-items:center; gap:18px; }
  /* binary theme toggle */
  .tgl{ display:flex; align-items:center; border:1px solid var(--line-2); cursor:pointer; user-select:none; background:transparent; padding:0; border-radius:999px; overflow:hidden; }
  .tgl span{ font-family:var(--mono); font-size:11px; width:26px; height:24px; display:grid; place-items:center; color:var(--ink-3); transition:.16s; }
  .tgl span.on{ background:var(--accent); color:#fff; font-weight:700; }
  .tgl .tgl-lbl{ font-size:9.5px; letter-spacing:0.1em; color:var(--ink-3); width:auto; padding:0 10px; background:transparent; }
  @media(max-width:520px){ .tgl .tgl-lbl{ display:none; } }
  @media(max-width:980px){ .tb-nav{ display:none; } }
  @media(max-width:1080px){ .tb-status{ display:none; } }

  /* hero */
  .hero{ padding:clamp(20px,3vw,32px) var(--pad) clamp(36px,5vw,64px); border-bottom:1px solid var(--line);
    background-image:radial-gradient(var(--line) 1px, transparent 1px); background-size:22px 22px;
    background-position:-1px -1px;
    display:grid; grid-template-columns:1.25fr 0.9fr; gap:clamp(28px,4vw,56px); align-items:start;
    position:relative; overflow:hidden;
  }
  .hero-wm{ position:absolute; left:-3%; bottom:-30%; width:min(42%, 420px); opacity:.05; z-index:0; pointer-events:none; }
  .hero-wm svg{ width:100%; height:auto; display:block; }
  .hero-main{ min-width:0; position:relative; z-index:1; }
  .eyebrow{ display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-ink);
    background:var(--accent-soft); border:1px solid color-mix(in oklch, var(--accent) 26%, transparent); padding:7px 14px; border-radius:999px; margin-bottom:24px; }
  .eyebrow .ico{ width:6px; height:6px; background:var(--accent); border-radius:50%; }
  .prompt{ font-family:var(--mono); font-size:12.5px; color:var(--ink-2); margin-bottom:26px; }
  .prompt .pfx{ color:var(--ink); font-weight:700; }
  /* trust / credential strip */
  .trust{ margin-top:40px; display:flex; flex-wrap:wrap; gap:10px; }
  .trust .cred{ display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11.5px; color:var(--ink-2);
    background:var(--panel); border:1px solid var(--line); border-radius:var(--r); padding:10px 14px; box-shadow:var(--shadow-sm); }
  .trust .cred svg{ flex:none; color:var(--accent); }
  .trust .cred b{ color:var(--ink); font-weight:600; }
  .hero h1{ font-family:var(--serif); font-weight:600; letter-spacing:-0.02em; line-height:1.0;
    font-size:clamp(40px,5.8vw,80px); max-width:15ch; color:var(--ink); }
  .hero h1 .bin{ font-family:var(--mono); font-weight:600; color:#fff; font-size:0.26em; letter-spacing:0.04em;
    display:inline-block; vertical-align:middle; background:var(--grad); padding:7px 13px; margin-left:6px; transform:translateY(-0.18em); border-radius:999px; box-shadow:var(--shadow-accent); }
  .hero p.lead{ font-family:var(--sans); margin-top:28px; max-width:54ch; font-size:clamp(15px,1.6vw,18px); color:var(--ink-2); line-height:1.55; }
  .hero-cmd{ margin-top:36px; display:flex; flex-wrap:wrap; gap:12px; }
  .cmd{ font-size:13px; padding:14px 22px; border:1px solid transparent; border-radius:var(--r); display:inline-flex; gap:10px; align-items:center; transition:transform .16s, box-shadow .16s, background .16s, color .16s; cursor:pointer; font-weight:500; }
  .cmd.solid{ background:var(--accent); color:#fff; box-shadow:var(--shadow-accent); }
  .cmd.solid:hover{ background:var(--accent-d); transform:translateY(-2px); }
  .cmd.line{ background:var(--panel); color:var(--ink); border-color:var(--line-2); box-shadow:var(--shadow-sm); }
  .cmd.line:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
  /* live terminal log card */
  .term{ background:var(--screen); border:1px solid var(--screen-2); border-radius:var(--r-lg); font-family:var(--mono); box-shadow:var(--shadow);
    display:flex; flex-direction:column; min-width:0; position:relative; z-index:1; overflow:hidden; }
  .term-bar{ display:flex; align-items:center; gap:8px; padding:11px 15px; border-bottom:1px solid oklch(1 0 0 / .08); background:oklch(1 0 0 / .03); }
  .term-bar i{ width:10px; height:10px; border-radius:50%; display:block; }
  .term-bar i:nth-child(1){ background:oklch(0.68 0.18 25); }
  .term-bar i:nth-child(2){ background:oklch(0.80 0.15 85); }
  .term-bar i:nth-child(3){ background:oklch(0.74 0.17 150); }
  .term-bar .ttl{ margin-left:6px; font-size:10.5px; color:oklch(0.7 0.02 264); letter-spacing:0.08em; }
  .term-body{ padding:14px 16px; height:248px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; background:var(--screen);
    -webkit-mask-image:linear-gradient(180deg, transparent 0, #000 22%, #000 100%);
            mask-image:linear-gradient(180deg, transparent 0, #000 22%, #000 100%); }
  .term-line{ font-size:11.5px; line-height:1.85; color:oklch(0.78 0.02 264); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums; }
  .term-line .ts{ color:oklch(0.52 0.03 264); }
  .term-line .tag{ font-weight:700; }
  .term-line .tag.ok{ color:oklch(0.78 0.16 150); }
  .term-line .tag.net{ color:oklch(0.72 0.15 250); }
  .term-line .tag.sec{ color:oklch(0.82 0.14 85); }
  .term-line .tag.mon{ color:oklch(0.70 0.13 300); }
  .term-line .tag.bak{ color:oklch(0.78 0.13 195); }
  .term-line .tag.svc{ color:oklch(0.74 0.15 150); }
  .term-line .tag.db{ color:oklch(0.72 0.15 330); }
  .term-cursor{ display:inline-block; width:7px; height:13px; background:oklch(0.78 0.16 150); vertical-align:middle; animation:bl 1.1s steps(1) infinite; margin-left:2px; }
  @media(max-width:860px){ .hero{ grid-template-columns:1fr; } .term{ order:2; } }

  /* live status strip */
  .strip{ display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line);
    background:linear-gradient(180deg, var(--accent-soft), transparent 90%); }
  .strip .s{ padding:clamp(26px,3vw,38px) var(--pad); border-right:1px solid var(--line); text-align:center; display:flex; flex-direction:column; align-items:center; gap:9px; }
  .strip .s:last-child{ border-right:none; }
  .strip .s .v{ font-family:var(--sans); font-size:clamp(30px,4.2vw,46px); font-weight:700; letter-spacing:-0.025em; line-height:0.95;
    background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
  .strip .s .v .u{ font-size:0.42em; font-weight:600; -webkit-text-fill-color:var(--ink-3); color:var(--ink-3); margin-left:2px; }
  .strip .s .k{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-3); }
  @media(max-width:700px){ .strip{ grid-template-columns:1fr 1fr; } .strip .s:nth-child(2){ border-right:none; } .strip .s:nth-child(1), .strip .s:nth-child(2){ border-bottom:1px solid var(--line); } }

  /* section header */
  .sh{ display:grid; grid-template-columns:1fr auto; align-items:end; gap:20px; padding:clamp(48px,6vw,86px) var(--pad) clamp(22px,3vw,34px); overflow:hidden; }
  .sh-l{ display:flex; flex-direction:column; gap:14px; min-width:0; }
  .kick{ display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-3); }
  .kick b{ color:var(--accent); font-weight:600; }
  .kick::before{ content:""; width:26px; height:1px; background:var(--accent); display:inline-block; }
  .sh-title{ font-family:var(--serif); font-weight:600; font-size:clamp(28px,4vw,48px); letter-spacing:-0.02em; line-height:1.02; color:var(--ink); max-width:20ch; text-wrap:balance; }
  .sh-num{ font-family:var(--serif); font-size:clamp(50px,8vw,104px); font-weight:600; line-height:0.78; letter-spacing:-0.04em;
    color:transparent; -webkit-text-stroke:1.2px var(--line-2); opacity:.8; user-select:none; white-space:nowrap; }
  .sh-sub{ display:none; }
  @media(max-width:640px){ .sh-num{ -webkit-text-stroke-width:1px; font-size:clamp(44px,12vw,70px); } }

  /* legacy thin header (kept for any remaining) */
  .sh.thin{ display:flex; align-items:center; gap:14px; }
  .sh.thin .bar{ flex:1; height:1px; background:var(--line); }
  .sh.thin .t{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-2); }
  .sh.thin .t b{ color:var(--accent); }

  /* services as file tree / modules */
  .mods{ border-top:1px solid var(--line); }
  .mod{ display:grid; grid-template-columns:54px 1fr; border-bottom:1px solid var(--line); position:relative; }
  .mod::after{ content:"→"; position:absolute; right:calc(var(--pad) + 2px); top:50%; transform:translateY(-50%) translateX(-6px); font-size:18px; color:var(--ink); opacity:0; transition:opacity .2s, transform .2s; pointer-events:none; }
  .mod:hover::after{ opacity:1; transform:translateY(-50%) translateX(0); }
  @media(max-width:760px){ .mod::after{ display:none; } }
  .mod .gut{ border-right:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--ink-3); transition:background .18s, color .18s; }
  .mod:hover .gut{ background:var(--accent); color:#fff; }
  .mod .body{ padding:24px var(--pad); padding-right:calc(var(--pad) + 34px); display:grid; grid-template-columns:1fr 1.3fr; gap:24px; align-items:center; transition:background .2s; }
  .mod:hover .body{ background:var(--accent-soft); }
  .mod:hover h3{ color:var(--accent-ink); }
  .mod:hover .path{ color:var(--accent); }
  .mod:hover .badge{ color:var(--accent-ink); border-color:color-mix(in oklch, var(--accent) 40%, transparent); background:var(--panel); }
  .mod:hover::after{ color:var(--accent); }
  .mod h3{ font-family:var(--sans); font-size:clamp(18px,2.3vw,26px); font-weight:700; letter-spacing:-0.01em; }
  .mod .path{ margin-top:8px; font-size:11.5px; color:var(--ink-3); }
  .mod p{ font-family:var(--sans); font-size:14.5px; color:var(--ink-2); line-height:1.55; }
  .mod .badge{ display:inline-block; margin-top:12px; font-size:10.5px; padding:4px 9px; border:1px solid var(--line-2); color:var(--ink-2); letter-spacing:0.06em; }
  @media(max-width:760px){ .mod .body{ grid-template-columns:1fr; gap:12px; padding-right:var(--pad); } }

  /* approach: binary panel */
  .appr{ display:grid; grid-template-columns:1.1fr 1fr; border-bottom:1px solid var(--line); }
  .appr .txt{ padding:clamp(34px,4vw,56px) var(--pad); }
  .appr h2{ font-family:var(--serif); font-size:clamp(26px,3.6vw,42px); font-weight:600; letter-spacing:-0.02em; line-height:1.06; color:var(--ink); }
  .appr .txt > p{ font-family:var(--sans); margin-top:20px; color:var(--ink-2); font-size:16px; line-height:1.6; max-width:42ch; }
  .appr ul{ margin-top:28px; list-style:none; display:grid; gap:1px; }
  .appr li{ display:grid; grid-template-columns:auto 1fr; gap:14px; padding:16px 0; border-top:1px solid var(--line); align-items:baseline; }
  .appr li .b{ font-family:var(--mono); font-size:13px; color:var(--accent); font-weight:700; }
  .appr li .sans{ font-size:14px; color:var(--ink-2); }
  .appr li b{ color:var(--ink); }
  .binwall{ border-left:1px solid var(--line); padding:0; overflow:hidden; position:relative;
    background:var(--screen); }
  .binwall .wbar{ display:flex; align-items:center; gap:8px; padding:11px 15px; border-bottom:1px solid oklch(1 0 0 / .08); background:oklch(1 0 0 / .03); }
  .binwall .wbar i{ width:10px; height:10px; border-radius:50%; display:block; }
  .binwall .wbar i:nth-child(1){ background:oklch(0.68 0.18 25); }
  .binwall .wbar i:nth-child(2){ background:oklch(0.80 0.15 85); }
  .binwall .wbar i:nth-child(3){ background:oklch(0.74 0.17 150); }
  .binwall .wbar .wt{ margin-left:6px; font-family:var(--mono); font-size:10.5px; color:oklch(0.62 0.02 264); letter-spacing:0.08em; }
  .binwall .mtx{ padding:clamp(20px,2.5vw,30px) clamp(20px,2.5vw,30px) calc(clamp(20px,2.5vw,32px) + 72px); font-size:13px; line-height:1.55; color:oklch(0.58 0.09 162); word-break:break-all; letter-spacing:0.1em; user-select:none; }
  .binwall .mtx .hot{ color:oklch(0.84 0.17 150); font-weight:700; }
  .binwall .mtx .hot2{ color:oklch(0.74 0.15 235); font-weight:700; }
  .binwall .tagline{ position:absolute; bottom:clamp(20px,2.5vw,30px); left:clamp(20px,2.5vw,30px); right:clamp(20px,2.5vw,30px);
    font-family:var(--sans); font-weight:700; font-size:clamp(18px,2.4vw,28px); letter-spacing:-0.02em; color:#fff; background:oklch(1 0 0 / .06); padding:14px 16px; border:1px solid oklch(1 0 0 / .14); border-radius:var(--r); }
  @media(max-width:820px){ .appr{ grid-template-columns:1fr; } .binwall{ border-left:none; border-top:1px solid var(--line); min-height:320px; } }

  /* stack grid — logo cards */
  .stack{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; padding:6px var(--pad) clamp(24px,3.5vw,44px); }
  .stack .c{ border:1px solid var(--line); border-radius:var(--r); padding:22px 10px 16px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; background:var(--panel); transition:transform .18s, box-shadow .18s, border-color .18s; }
  .stack .c:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--accent); }
  .stack .c img{ width:36px; height:36px; object-fit:contain; }
  .stack .c .ph{ width:36px; height:36px; border-radius:8px; display:grid; place-items:center; font-family:var(--mono); font-weight:700; font-size:13px; background:var(--accent-soft); color:var(--accent-ink); }
  .stack .c .nm{ font-family:var(--mono); font-size:11.5px; color:var(--ink-2); }
  @media(max-width:900px){ .stack{ grid-template-columns:repeat(4,1fr); } }
  @media(max-width:560px){ .stack{ grid-template-columns:repeat(3,1fr); } }

  /* CTA */
  .cta{ padding:clamp(48px,6vw,90px) var(--pad);
    background:var(--screen); color:oklch(0.92 0.012 264);
    background-image:radial-gradient(oklch(1 0 0 / .05) 1px, transparent 1px); background-size:22px 22px; }
  .cta .sh{ padding:0 0 clamp(28px,4vw,44px); }
  .cta .kick{ color:oklch(0.6 0.02 264); }
  .cta .kick b{ color:var(--accent); }
  .cta .sh-title{ color:#fff; }
  .cta .sh-num{ -webkit-text-stroke-color:oklch(1 0 0 / .16); }
  .cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
  .cta-aside .lead{ font-family:var(--sans); font-size:clamp(16px,1.7vw,19px); line-height:1.6; color:oklch(0.82 0.015 264); max-width:42ch; }
  .cta-points{ margin-top:28px; list-style:none; display:grid; gap:0; }
  .cta-points li{ display:flex; align-items:center; gap:13px; padding:15px 0; border-top:1px solid oklch(1 0 0 / .1); font-family:var(--sans); font-size:14.5px; color:oklch(0.86 0.015 264); }
  .cta-points li:last-child{ border-bottom:1px solid oklch(1 0 0 / .1); }
  .cta-points li svg{ flex:none; color:var(--accent); }
  .cta-contacts{ margin-top:30px; display:flex; flex-wrap:wrap; gap:22px; }
  .cta-contacts a, .cta-contacts span{ font-family:var(--mono); font-size:13px; color:oklch(0.7 0.02 264); }
  .cta-contacts a:hover{ color:#fff; }
  .form-card{ background:oklch(1 0 0 / .04); border:1px solid oklch(1 0 0 / .12); border-radius:var(--r-lg); padding:clamp(24px,3vw,36px); box-shadow:0 24px 60px oklch(0 0 0 / .35); }
  .form-card h3{ font-family:var(--sans); font-weight:700; font-size:20px; color:#fff; }
  .form-card .fcsub{ margin-top:8px; font-family:var(--sans); font-size:13.5px; color:oklch(0.66 0.02 264); }
  .form-card form{ margin-top:24px; display:grid; gap:16px; }
  .form-card .fld{ display:grid; gap:8px; }
  .form-card label{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; color:oklch(0.6 0.02 264); }
  .form-card input, .form-card textarea{ font-family:var(--sans); font-size:15px; padding:13px 15px; border:1px solid oklch(1 0 0 / .14); border-radius:var(--r); background:oklch(1 0 0 / .03); color:#fff; outline:none; transition:.16s; resize:vertical; }
  .form-card input::placeholder, .form-card textarea::placeholder{ color:oklch(0.55 0.02 264); }
  .form-card input:focus, .form-card textarea:focus{ border-color:var(--accent); background:oklch(1 0 0 / .06); }
  .form-card button{ margin-top:4px; font-family:var(--sans); font-weight:600; font-size:15px; padding:15px; background:var(--accent); color:#fff; border:none; border-radius:var(--r); cursor:pointer; transition:.16s; box-shadow:var(--shadow-accent); }
  .form-card button:hover{ background:var(--accent-d); transform:translateY(-2px); }
  .form-card .note{ font-family:var(--sans); font-size:11.5px; color:oklch(0.55 0.02 264); line-height:1.5; }
  @media(max-width:820px){ .cta-grid{ grid-template-columns:1fr; } }

  /* clients / cases */
  .clients{ border-bottom:1px solid var(--line); }
  .logo-wall{ display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); }
  .logo-wall .lg{ aspect-ratio:16/7; border-right:1px solid var(--line); border-bottom:1px solid var(--line);
    display:grid; place-items:center; position:relative; overflow:hidden; transition:background .2s; }
  .logo-wall .lg:hover{ background:var(--accent-soft); }
  .logo-wall .lg:nth-child(5n){ border-right:none; }
  .logo-wall .lg span{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em; color:var(--ink-3); transition:color .2s; }
  .logo-wall .lg:hover span{ color:var(--accent-ink); }
  @media(max-width:820px){ .logo-wall{ grid-template-columns:repeat(3,1fr); } .logo-wall .lg:nth-child(5n){ border-right:1px solid var(--line); } .logo-wall .lg:nth-child(3n){ border-right:none; } }
  @media(max-width:520px){ .logo-wall{ grid-template-columns:repeat(2,1fr); } .logo-wall .lg:nth-child(3n){ border-right:1px solid var(--line); } .logo-wall .lg:nth-child(2n){ border-right:none; } }
  .ph-note{ padding:14px var(--pad); font-family:var(--mono); font-size:11px; color:var(--ink-3); border-bottom:1px solid var(--line); }

  /* tariff / servers */
  .tariff{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .plan{ padding:clamp(28px,3.5vw,44px) var(--pad); border-right:1px solid var(--line); display:flex; flex-direction:column; }
  .plan:last-child{ border-right:none; }
  .plan .pk{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); }
  .plan h3{ font-family:var(--sans); font-size:clamp(22px,2.8vw,30px); font-weight:700; letter-spacing:-0.01em; margin-top:8px; }
  .plan .price{ margin-top:20px; display:flex; align-items:baseline; gap:8px; }
  .plan .price .num{ font-family:var(--sans); font-size:clamp(34px,4.6vw,52px); font-weight:700; letter-spacing:-0.03em; }
  .plan .price .per{ font-size:13px; color:var(--ink-3); }
  .plan .specs{ margin-top:26px; list-style:none; display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
  .plan .specs li{ background:var(--panel); display:flex; justify-content:space-between; gap:14px; padding:13px 16px; font-size:13px; }
  .plan .specs li .sk{ color:var(--ink-3); }
  .plan .specs li .sv{ color:var(--ink); font-weight:500; }
  .plan .pcta{ margin-top:auto; padding-top:26px; }
  .plan .pcta a{ display:inline-flex; align-items:center; gap:10px; font-size:13px; padding:14px 24px; border:1px solid var(--line-2); border-radius:var(--r); transition:transform .16s, box-shadow .16s, background .16s, color .16s; }
  .plan .pcta a:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
  .plan.flag{ background:linear-gradient(180deg, var(--accent-soft), transparent 60%); box-shadow:inset 5px 0 0 var(--accent); }
  .plan.flag .pcta a{ background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:var(--shadow-accent); }
  .plan.flag .pcta a:hover{ background:var(--accent-d); color:#fff; transform:translateY(-2px); }
  .plan .tag-flag{ display:inline-block; margin-left:10px; font-size:10px; padding:4px 9px; background:var(--accent); color:#fff; border-radius:999px; vertical-align:middle; letter-spacing:0.08em; font-weight:600; }
  .plan .gauge{ margin-top:20px; }
  .gauge .grow{ display:flex; justify-content:space-between; font-size:10.5px; color:var(--ink-3); margin-bottom:5px; }
  .gauge .bar{ height:6px; background:var(--line); position:relative; overflow:hidden; border-radius:999px; }
  .gauge .bar i{ position:absolute; left:0; top:0; bottom:0; background:var(--accent); width:0; transition:width 1.1s cubic-bezier(.2,.7,.2,1); border-radius:999px; }
  @media(max-width:760px){ .tariff{ grid-template-columns:1fr; } .plan{ border-right:none; border-bottom:1px solid var(--line); } .plan:last-child{ border-bottom:none; } }

  /* footer */
  .site-foot{ background:var(--screen); color:oklch(0.66 0.02 264); border-top:1px solid oklch(1 0 0 / .08); }
  .foot-top{ padding:clamp(40px,5vw,64px) var(--pad) clamp(28px,3.5vw,40px); display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:32px; }
  .fb-mark{ display:flex; align-items:center; gap:11px; }
  .fb-mark svg{ display:block; }
  .fb-mark b{ color:#fff; font-size:15px; letter-spacing:0.04em; }
  .foot-brand p{ margin-top:16px; font-size:13px; line-height:1.6; max-width:34ch; color:oklch(0.6 0.02 264); }
  .foot-brand .fcta{ margin-top:20px; display:inline-flex; align-items:center; gap:9px; font-family:var(--mono); font-size:12.5px; color:var(--accent); border:1px solid oklch(1 0 0 / .16); border-radius:var(--r); padding:11px 18px; transition:.16s; }
  .foot-brand .fcta:hover{ border-color:var(--accent); background:oklch(1 0 0 / .04); transform:translateY(-2px); }
  .foot-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:oklch(0.52 0.02 264); margin-bottom:15px; font-weight:500; }
  .foot-col a, .foot-col span{ display:block; font-size:13.5px; color:oklch(0.72 0.02 264); margin-bottom:11px; transition:color .15s; }
  .foot-col a:hover{ color:var(--accent); }
  .foot-bottom{ padding:18px var(--pad); border-top:1px solid oklch(1 0 0 / .08); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; font-family:var(--mono); font-size:11.5px; color:oklch(0.5 0.02 264); }
  .foot-bottom .on{ display:inline-flex; align-items:center; gap:7px; }
  .foot-bottom .dotg{ width:7px; height:7px; border-radius:50%; background:oklch(0.74 0.17 150); box-shadow:0 0 0 3px oklch(0.74 0.17 150 / .18); }
  @media(max-width:760px){ .foot-top{ grid-template-columns:1fr 1fr; } .foot-brand{ grid-column:1 / -1; } }
  @media(max-width:460px){ .foot-top{ grid-template-columns:1fr; } }

  /* topbar scrolled state */
  .topbar{ transition:height .25s ease, box-shadow .25s ease, background .25s ease; }
  .topbar.scrolled{ height:60px; box-shadow:0 1px 0 var(--line), 0 10px 30px oklch(0.4 0.06 262 / .08); }
  html[data-theme="dark"] .topbar.scrolled{ box-shadow:0 1px 0 var(--line), 0 12px 34px oklch(0 0 0 / .5); }

  /* tariff card lift */
  .plan{ transition:transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s; }
  .plan.flag:hover{ transform:translateY(-4px); box-shadow:inset 5px 0 0 var(--accent), var(--shadow); }
  .plan:not(.flag):hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
  .plan .price .num{ transition:color .2s; }

  /* scroll reveal */
  .rv{ opacity:0; transform:translateY(18px); transition:opacity .65s cubic-bezier(.2,.7,.2,1), transform .65s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d, 0s); }
  .rv.in{ opacity:1; transform:none; }

  /* mobile menu */
  .burger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:38px; border:1px solid var(--line-2); border-radius:10px; background:transparent; cursor:pointer; padding:0; }
  .burger span{ display:block; width:18px; height:2px; background:var(--ink); margin:0 auto; border-radius:2px; transition:transform .25s, opacity .2s; }
  html.nav-open .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  html.nav-open .burger span:nth-child(2){ opacity:0; }
  html.nav-open .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  @media(max-width:980px){
    .burger{ display:flex; }
    .tb-nav{ display:flex; position:fixed; top:110px; left:0; right:0; z-index:49;
      flex-direction:column; gap:0; padding:8px var(--pad) 16px;
      background:var(--panel); border-bottom:1px solid var(--line); box-shadow:var(--shadow);
      transform:translateY(-12px); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; }
    html.nav-open .tb-nav{ opacity:1; transform:none; pointer-events:auto; }
    .tb-nav a{ padding:15px 4px; border-bottom:1px solid var(--line); font-size:16px; }
    .tb-nav a::after{ display:none; }
    .topbar.scrolled .tb-nav{ top:98px; }
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.001s !important; scroll-behavior:auto !important; }
    .blink, .term-cursor{ animation:none; opacity:1; }
    .rv{ opacity:1 !important; transform:none !important; }
  }