/* Header variant A «Скляний док» (prototype, TMA_NAV=glass): a fixed glass capsule over the page, no band behind it.
   Glass surface: glass.css (.lg). Behaviour: nav.js. */
:root{--gn-h:76px}
body.gn-on{padding-top:var(--gn-h)}
body.gn-on.cx-page{padding-top:0}                       /* case heroes run under the capsule, no dark band above them */
body.gn-on main.cx{margin-top:0}
body.gn-on.cx-page main.cx>:first-child{padding-top:max(var(--cx-pad,0px),calc(var(--gn-h) + 20px))}
.gn{position:fixed;z-index:40;top:12px;left:0;right:0;display:flex;justify-content:center;padding:0 12px;pointer-events:none;
}
.gn>*{pointer-events:auto}
.gn-cap{--gl-bg:rgba(16,16,18,.70);display:flex;align-items:center;gap:22px;border-radius:999px;padding:7px 7px 7px 22px;max-width:100%;color:#f4f4ef;
  transition:padding .35s cubic-bezier(.2,.7,.2,1),background-color .35s}
/* scrolled past ~80 px: a touch slimmer and denser (the bar never hides) */
.gn.gn-up .gn-cap{--gl-bg:rgba(16,16,18,.80);padding-top:4px;padding-bottom:4px}
/* case pages: a light tint of the case colour (nav.js sets --gl-tint with a contrast check) */
.gn-brand{font:500 19px var(--sans);letter-spacing:-.02em;white-space:nowrap}.gn-brand b{font-weight:800}

.gn-nav{position:relative;display:flex;gap:2px}
.gn-it{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 14px;border:0;border-radius:999px;
  background:none;color:inherit;font:600 14px var(--sans);cursor:pointer;opacity:.82;transition:opacity .2s}
.gn-it:hover,.gn-it[aria-expanded=true],.gn-it[aria-current]{opacity:1}
.gn-caret{width:10px;height:10px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.gn-it[aria-expanded=true] .gn-caret{transform:rotate(180deg)}
/* liquid drop (nav.js): the current item and UA|EN. --l/--r are the edges in px, --sy the squash while stretched;
   ::before is the lit rim, ::after the glass body 1px inside it; the pointer light comes from glass.js (--lx/--ly/--la) */
.gn-drop{position:absolute;z-index:0;inset:0;pointer-events:none;--l:0;--r:0;--sy:1;opacity:0;transform:scaleY(var(--sy));
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.45));transition:opacity .25s}
.gn-drop.on{opacity:1}
.gn-drop::before,.gn-drop::after{content:"";position:absolute;inset:0}
.gn-drop::before{clip-path:inset(0 calc(100% - var(--r) * 1px) 0 calc(var(--l) * 1px) round 999px);
  background:radial-gradient(90px circle at var(--lx,50%) var(--ly,-40%),rgba(255,255,255,calc(var(--la,0) * .7)),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.10) 55%,rgba(0,0,0,.28))}
.gn-drop::after{clip-path:inset(1px calc(100% - var(--r) * 1px + 1px) 1px calc(var(--l) * 1px + 1px) round 999px);
  background:radial-gradient(70px circle at var(--lx,50%) var(--ly,-40%),rgba(255,255,255,calc(var(--la,0) * .18)),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.06) 60%,rgba(255,255,255,.03))}
/* UA|EN: a light drop with dark text on it; without JS the plain .on pill stays */
.gn-lang{position:relative}
.gn-lang a{position:relative;z-index:1;transition:color .2s}
.gn-lang.gn-live a.on{background:none;color:#0b0b0c}
.gn-drop-l{inset:3px 0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.gn-drop-l::before{background:linear-gradient(180deg,#fff,rgba(255,255,255,.55))}
.gn-drop-l::after{background:radial-gradient(60px circle at var(--lx,50%) var(--ly,-40%),rgba(255,255,255,calc(var(--la,0) * .6)),transparent 70%),
  linear-gradient(180deg,#f7f7f2,#dcdcd6)}

.gn-lang{display:flex;background:rgba(255,255,255,.08);border-radius:999px;padding:3px;font:500 12px var(--mono)}
.gn-lang a{padding:6px 10px;border-radius:999px;color:rgba(244,244,239,.7)}
.gn-lang a.on{background:#f4f4ef;color:#0b0b0c}
.gn-cta{white-space:nowrap}
.gn :focus-visible,.gn-sheet :focus-visible{outline:2px solid var(--lime);outline-offset:2px}

/* dropdown panels */
.gn-panel{position:absolute;top:calc(100% + 10px);left:50%;width:min(760px,calc(100vw - 24px));border-radius:28px;padding:18px;color:#f4f4ef;
  --gl-bg:rgba(16,16,18,.86);transform:translateX(-50%);transform-origin:50% 0;
  animation:gn-in .32s cubic-bezier(.2,.8,.2,1)}
.gn-panel[hidden]{display:none}
@keyframes gn-in{from{opacity:0;transform:translateX(-50%) translateY(-6px) scale(.98)}}
.gn-ph{display:flex;justify-content:space-between;align-items:center;padding:2px 6px 14px}
.gn-big{display:none}
.gn-v2 .gn-big{display:block}
.gn-ph .mono{font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:rgba(244,244,239,.6)}
.gn-pf{padding:14px 6px 2px;justify-content:flex-end}
.gn-all{font:600 14px var(--sans);color:var(--lime)}
.gn-all:hover{text-decoration:underline;text-underline-offset:.2em}
.gn-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gn-case{display:flex;flex-direction:column;gap:6px;padding:8px 8px 12px;border-radius:20px;transition:background .2s}
.gn-case:hover,.gn-svc:hover{background:rgba(255,255,255,.07)}
.gn-cov{display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#e9e9e4}
.gn-cov img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.gn-cov.light img{object-fit:contain;padding:8%}
.gn-case:hover .gn-cov img{transform:scale(1.04)}
.gn-case b{font:700 15px/1.2 var(--sans);padding:4px 4px 0}
.gn-case>span:last-child{font-size:13px;line-height:1.35;color:rgba(244,244,239,.66);padding:0 4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gn-svcs{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
.gn-svc{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:16px;transition:background .2s}
.gn-svc b{font:700 15px var(--sans)}
.gn-svc span{font-size:13px;color:rgba(244,244,239,.66)}

/* phones: compact capsule (logo + burger), full-screen glass menu */
.gn-burger{display:none;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.1);cursor:pointer;
  flex-direction:column;justify-content:center;align-items:center;gap:5px}
.gn-burger i{display:block;width:16px;height:1.6px;background:#f4f4ef;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.gn-open .gn-burger i:first-child{transform:translateY(3.3px) rotate(45deg)}
.gn-open .gn-burger i:last-child{transform:translateY(-3.3px) rotate(-45deg)}
.gn-sheet{position:fixed;z-index:39;inset:0;border-radius:0;padding:calc(var(--gn-h) + 24px) 20px 28px;display:flex;flex-direction:column;
  justify-content:space-between;gap:24px;overflow-y:auto;color:#f4f4ef;--gl-bg:rgba(12,12,14,.88);animation:gn-fade .3s ease}
.gn-sheet[hidden]{display:none}
@keyframes gn-fade{from{opacity:0}}
.gn-mnav{display:flex;flex-direction:column;gap:4px}
.gn-mnav>a{font:800 44px/1.1 var(--sans);letter-spacing:-.04em;padding:4px 0}
.gn-mnav>a[aria-current]{color:var(--lime)}
.gn-mnav sup{font:500 13px var(--mono);letter-spacing:0;vertical-align:super;margin-left:6px;color:rgba(244,244,239,.55)}
.gn-mcases{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 14px}
.gn-mcase{display:flex;flex-direction:column;gap:6px;font:600 12px/1.2 var(--sans)}
.gn-mcase .gn-cov{border-radius:12px}
.gn-mfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.gn-open{overflow:hidden}
.gn-sheet>*{animation:gn-up .45s cubic-bezier(.2,.8,.2,1) both}
.gn-sheet>*:nth-child(2){animation-delay:.06s}
@keyframes gn-up{from{opacity:0;transform:translateY(14px)}}

@media (max-width:980px){
  .gn-nav,.gn-cap>.gn-lang,.gn-cta{display:none}
  .gn-burger{display:flex}
  .gn-cap{width:100%;justify-content:space-between;padding:6px 6px 6px 20px}
  .gn-panel{display:none!important}
}
@media (min-width:981px){.gn-sheet{display:none!important}}

@media (prefers-reduced-motion:reduce){
  .gn-cap,.gn-drop,.gn-caret,.gn-burger i,.gn-cov img{transition:none}
  .gn-panel,.gn-sheet,.gn-sheet>*{animation:none}
}

/* bar and panel follow the page's content column (owner 26.10): the grid (.shell) on most pages, the case column on cases */
.gn-v2{--gn-w:1392px}
.gn-v2.cx-page{--gn-w:980px}
/* ===== variant A2 (owner 26.10: «на ширину контента», «глубина, не плоские блоки»): body.gn-v2 ===== */
.gn-scrim{display:none}
.gn-v2 .gn{padding:0 clamp(12px,2vw,24px)}
.gn-v2 .gn-cap{width:100%;max-width:var(--gn-w);justify-content:flex-start;border-radius:999px;padding:8px 8px 8px 24px;min-height:58px;
  /* thick glass: a lit top edge, a dark lower lip, an inner glow under the top, a contact shadow and a long ambient one */
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),inset 0 -1px 0 rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.07),
    inset 0 14px 22px -16px rgba(255,255,255,.22),0 1px 2px rgba(0,0,0,.35),0 10px 24px -12px rgba(0,0,0,.5),0 36px 70px -34px rgba(0,0,0,.55);
  transition:box-shadow .5s ease,background-color .5s ease,padding .35s cubic-bezier(.2,.7,.2,1),min-height .35s cubic-bezier(.2,.7,.2,1)}
.gn-v2 .gn-nav{position:absolute;left:50%;transform:translateX(-50%)}
.gn-v2 .gn-cap>.gn-lang{margin-left:auto}
/* past ~80 px: slimmer, denser, lifted higher off the page */
.gn-v2 .gn.gn-up .gn-cap{--gl-bg:rgba(14,14,16,.80);min-height:50px;padding-top:4px;padding-bottom:4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 14px 22px -16px rgba(255,255,255,.24),0 2px 4px rgba(0,0,0,.4),0 18px 40px -14px rgba(0,0,0,.6),0 60px 110px -40px rgba(0,0,0,.7)}

/* the panel grows out of the bar, full bar width; the page behind dims and blurs */
.gn-v2 .gn-panel{left:50%;width:min(var(--gn-w),calc(100vw - 2 * clamp(12px,2vw,24px)));top:calc(100% + 8px);border-radius:30px;padding:22px;
  --gl-bg:rgba(14,14,16,.84);transform:translateX(-50%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 0 rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.07),
    0 30px 80px -24px rgba(0,0,0,.75),0 80px 160px -60px rgba(0,0,0,.7);
  animation:gn-grow .5s cubic-bezier(.2,.85,.2,1)}
@keyframes gn-grow{from{clip-path:inset(0 0 100% 0 round 30px);transform:translateX(-50%) translateY(-10px)}to{clip-path:inset(0 0 0 0 round 30px)}}
.gn-v2 .gn-panel>*{animation:gn-up .5s .08s cubic-bezier(.2,.8,.2,1) both}
.gn-v2 .gn-scrim{display:block;position:fixed;z-index:38;inset:0;pointer-events:none;opacity:0;background:rgba(6,6,8,.42);
  -webkit-backdrop-filter:blur(6px) saturate(80%);backdrop-filter:blur(6px) saturate(80%);transition:opacity .4s ease}
.gn-v2.gn-po .gn-scrim{opacity:1}
.gn-v2 #gn-work{display:grid;grid-template-columns:minmax(200px,1fr) 3fr;gap:22px;align-items:stretch}
.gn-v2 #gn-work[hidden]{display:none}
.gn-v2 #gn-work .gn-ph{flex-direction:column;align-items:flex-start;justify-content:space-between;padding:10px 6px}
.gn-v2 #gn-work .gn-ph .gn-big{font:800 34px/1.02 var(--sans);letter-spacing:-.04em;color:#f4f4ef;margin-top:10px}
.gn-v2 .gn-cases{perspective:1100px;gap:14px}
/* cards: tilt towards the pointer, the cover floats above the card */
.gn-v2 .gn-case{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .5s cubic-bezier(.2,.7,.2,1),background .25s;background:rgba(255,255,255,.035);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.gn-v2 .gn-case:hover{transition:transform .12s linear,background .25s;background:rgba(255,255,255,.07)}
.gn-v2 .gn-case .gn-cov{transform:translateZ(0);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;
  box-shadow:0 2px 6px rgba(0,0,0,.25)}
.gn-v2 .gn-case:hover .gn-cov{transform:translateZ(36px);box-shadow:0 24px 40px -16px rgba(0,0,0,.8)}
.gn-v2 .gn-svcs{grid-template-columns:repeat(3,1fr);gap:8px}
.gn-v2 .gn-svc{padding:16px 18px;background:rgba(255,255,255,.035);box-shadow:inset 0 1px 0 rgba(255,255,255,.07);transition:background .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}
.gn-v2 .gn-svc:hover{transform:translateY(-2px)}
@media (max-width:980px){.gn-v2 .gn-cap{border-radius:999px;padding:6px 6px 6px 20px}.gn-v2 .gn-burger{margin-left:auto}.gn-v2 .gn-nav{position:static;transform:none}}
@media (prefers-reduced-motion:reduce){
  .gn-v2 .gn-panel,.gn-v2 .gn-panel>*{animation:none}
  .gn-v2 .gn-case,.gn-v2 .gn-case .gn-cov{transform:none!important;transition:none}
  .gn-v2 .gn-scrim{transition:none}
}
