/* ============================================================
   KUSHAEV — Founder brand site
   Design system: cinematic dark / platinum, editorial grotesk
   ============================================================ */

:root{
  /* ---- palette (dark, default) ---- */
  --bg:        #0b0c0e;
  --bg-2:      #101216;
  --surface:   #15171b;
  --glass:     rgba(18,20,24,0.55);
  --glass-2:   rgba(255,255,255,0.035);
  --glass-border: rgba(255,255,255,0.09);
  --hairline:  rgba(255,255,255,0.10);
  --hairline-strong: rgba(255,255,255,0.18);
  --text:      #f4f3ef;
  --text-2:    #a8aeb5;
  --text-3:    #6b7178;
  --text-4:    #474c52;
  --ink:       #0b0c0e;

  /* accent (platinum default) — tweakable */
  --accent:    #cfd4d8;
  --accent-soft: rgba(207,212,216,0.14);
  --accent-line: rgba(207,212,216,0.30);

  /* environment / cinematic light tint per-theme */
  --env-1: #1b2026;
  --env-2: #0c0d10;
  --env-warm: rgba(210,196,170,0.10);

  /* ---- type ---- */
  --font-display: "Golos Text", "IBM Plex Sans Arabic", "Manrope", system-ui, sans-serif;
  --font-body:    "Golos Text", "IBM Plex Sans Arabic", "Manrope", system-ui, sans-serif;
  --font-edit:    "Cormorant", "Amiri", Georgia, serif;

  /* ---- spacing (8pt) ---- */
  --s1: 8px;  --s2: 16px; --s3: 24px; --s4: 32px;
  --s5: 48px; --s6: 64px; --s7: 96px; --s8: 128px;

  --rail: 74px;          /* closed sidebar width (narrowed 20%) */
  --rail-open: 372px;    /* open sidebar width */

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-emph: cubic-bezier(.16,1,.3,1);
}

[data-theme="light"]{
  --bg:        #f3f2ee;
  --bg-2:      #eae8e2;
  --surface:   #ffffff;
  --glass:     rgba(255,255,255,0.6);
  --glass-2:   rgba(0,0,0,0.025);
  --glass-border: rgba(0,0,0,0.10);
  --hairline:  rgba(0,0,0,0.12);
  --hairline-strong: rgba(0,0,0,0.22);
  --text:      #14161a;
  --text-2:    #565b62;
  --text-3:    #878d94;
  --text-4:    #b4b9bf;
  --ink:       #14161a;
  --accent-soft: rgba(40,44,48,0.07);
  --accent-line: rgba(40,44,48,0.22);
  --env-1: #cfd4da;
  --env-2: #e7e5df;
  --env-warm: rgba(150,130,95,0.10);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ height:100%; }
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  overflow-x:clip;
  cursor:none;
  transition:background .6s var(--ease), color .6s var(--ease);
}
@media (max-width:760px){ body{ cursor:auto; } }

::selection{ background:var(--accent); color:var(--ink); }

a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:none; }
@media (max-width:760px){ button{ cursor:pointer; } }

/* ============================================================
   CURSOR — cursor-follow light + dot/ring
   ============================================================ */
.cursor-light{
  position:fixed; left:0; top:0; width:46vw; height:46vw;
  pointer-events:none; z-index:1;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,0.05), rgba(255,255,255,0) 60%);
  transform:translate3d(-50%,-50%,0);
  mix-blend-mode:screen;
  will-change:left,top;
}
[data-theme="light"] .cursor-light{ mix-blend-mode:multiply;
  background:radial-gradient(circle, rgba(60,70,90,0.06), rgba(0,0,0,0) 60%); }
.cursor-dot,.cursor-ring{
  position:fixed; left:0; top:0; z-index:9999; pointer-events:none;
  transform:translate3d(-50%,-50%,0); border-radius:50%;
}
.cursor-dot{ width:5px; height:5px; background:var(--text); }
.cursor-ring{
  width:34px; height:34px; border:1px solid var(--hairline-strong);
  transition:width .35s var(--ease), height .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease);
}
.cursor-ring.is-hover{ width:58px; height:58px; border-color:var(--accent-line); background:var(--accent-soft); }

/* ============================================================
   SIDEBAR
   ============================================================ */
.sidebar{
  position:fixed; left:0; top:0; bottom:0; width:74px;
  z-index:120;
  background:var(--glass);
  -webkit-backdrop-filter:blur(22px) saturate(120%);
  backdrop-filter:blur(22px) saturate(120%);
  border-right:1px solid var(--glass-border);
  display:flex; flex-direction:column;
  transition:background .6s var(--ease);
  overflow:hidden;
}
.sidebar.open{ width:372px; }

.sb-top{
  height:var(--rail); min-height:var(--rail);
  display:flex; align-items:center;
  padding-left:30px;
}
.burger{
  width:30px; height:30px; position:relative; flex:none;
}
.burger span{
  position:absolute; left:3px; right:3px; height:1.6px; background:var(--text);
  transform-origin:center;
}
.burger span:nth-child(1){ top:9px; }
.burger span:nth-child(2){ top:15px; }
.burger span:nth-child(3){ top:21px; }
/* open-state morph is JS-driven (tickSidebar) to avoid the backdrop transition freeze */

/* expanding content — only meaningful when open */
/* opacity / transform are JS-tweened each frame — NO css transition (it freezes
   inside the backdrop-filter subtree). Initial state set inline by tickSidebar. */
.sb-body{
  flex:1; display:flex; flex-direction:column;
  padding:0 30px;
  width:var(--rail-open);
  opacity:0; transform:translateX(-12px);
  pointer-events:none;
}

.sb-brand{
  display:flex; align-items:center; gap:14px;
  padding:8px 0 var(--s5);
}
.sb-mark{
  width:54px; height:54px; flex:none;
  border:1px solid var(--hairline-strong);
  display:grid; place-items:center;
  position:relative;
}
.sb-mark svg{ width:26px; height:26px; }
.sb-mark::after{ content:""; position:absolute; inset:5px; border:1px solid var(--hairline); }
.sb-word{ font-family:var(--font-display); font-weight:600; letter-spacing:.42em;
  font-size:13px; padding-left:4px; color:var(--text); }

.sb-search{
  display:flex; align-items:center; gap:12px;
  border:1px solid var(--hairline); border-radius:2px;
  padding:14px 16px; margin-bottom:var(--s6);
  transition:border-color .4s var(--ease), background .4s var(--ease);
}
.sb-search:focus-within{ border-color:var(--accent-line); background:var(--glass-2); }
.sb-search svg{ width:15px; height:15px; opacity:.55; flex:none; }
.sb-search input{
  flex:1; background:none; border:none; outline:none;
  color:var(--text); font-family:var(--font-body); font-size:14px; letter-spacing:.02em;
}
.sb-search input::placeholder{ color:var(--text-3); letter-spacing:.16em; text-transform:uppercase; font-size:11px; }

.sb-nav{ display:flex; flex-direction:column; gap:2px; }
.sb-link{
  position:relative; display:flex; align-items:baseline; gap:14px;
  padding:15px 0;
  font-family:var(--font-display); font-weight:400;
  font-size:23px; letter-spacing:.01em; color:var(--text-2);
  transition:color .45s var(--ease), font-weight .45s var(--ease), padding-left .55s var(--ease-emph);
  width:max-content;
}
.sb-link .idx{ font-size:11px; color:var(--text-4); letter-spacing:.1em;
  transition:color .45s var(--ease); transform:translateY(-2px); font-variant-numeric:tabular-nums; }
.sb-link::after{
  content:""; position:absolute; left:0; bottom:10px; height:1px; width:0;
  background:var(--accent); transition:width .55s var(--ease-emph);
}
.sb-link:hover, .sb-link.active{ color:var(--text); font-weight:600; padding-left:20px; }
.sb-link:hover .idx, .sb-link.active .idx{ color:var(--accent); }
.sb-link:hover::after, .sb-link.active::after{ width:30px; }

.sb-foot{ margin-top:auto; padding:var(--s5) 0 var(--s4);
  border-top:1px solid var(--hairline); }
.sb-foot .cta{
  display:inline-flex; align-items:center; gap:12px;
  font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--text-2);
  transition:color .4s var(--ease), gap .4s var(--ease);
}
.sb-foot .cta:hover{ color:var(--text); gap:18px; }
.sb-foot .cta svg{ width:16px; height:16px; }
.sb-social{ display:flex; gap:22px; margin-top:18px; }
.sb-social a{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-3);
  transition:color .4s var(--ease); }
.sb-social a:hover{ color:var(--accent); }

/* vertical signature on the closed rail */
.sb-sign{
  position:absolute; left:0; bottom:118px; width:var(--rail);
  display:flex; justify-content:center;
  opacity:1;
}
.sb-sign span{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:10.5px; letter-spacing:.46em; text-transform:uppercase; color:#ffffff;
  font-weight:600; -webkit-font-smoothing:antialiased; text-rendering:geometricPrecision;
}
/* mini mark on closed rail */
.sb-minimark{
  position:absolute; top:calc(var(--rail) + 14px); left:0; width:var(--rail);
  display:flex; justify-content:center; opacity:1;
}
.sb-minimark svg{ width:24px; height:24px; opacity:.85; }

/* scrim behind open sidebar on small screens */
.scrim{
  position:fixed; inset:0; z-index:110; background:rgba(0,0,0,0);
  pointer-events:none; transition:background .6s var(--ease);
}
.scrim.show{ background:rgba(0,0,0,0.45); pointer-events:auto; }
[data-theme="light"] .scrim.show{ background:rgba(20,20,24,0.22); }

/* ============================================================
   STAGE / SCROLL
   ============================================================ */
.scroll-root{ position:relative; height:400vh; }
.stage{
  position:sticky; top:0; height:100vh; width:100%;
  overflow:hidden; z-index:1;
}

/* ---- right diagonal visual zone ---- */
.visual{
  position:absolute; top:-6%; right:-4%; width:64%; height:112%;
  --cut-top: 35.92%;
  --cut-bot: 14.44%;
  clip-path:polygon(var(--cut-top) 0, 100% 0, 100% 100%, var(--cut-bot) 100%);
  z-index:2;
  will-change:transform;
}
.v-layer{ position:absolute; inset:-4%; }
.v-env{
  background:
    radial-gradient(75% 55% at 70% 6%, rgba(190,205,220,0.22), transparent 55%),
    radial-gradient(120% 90% at 78% 14%, var(--env-1), transparent 62%),
    radial-gradient(130% 120% at 18% 96%, var(--env-2), transparent 72%),
    linear-gradient(158deg, #20262d 0%, #14181d 42%, #070809 120%);
  will-change:transform;
}
/* faint architectural structure so the cut reads even before a photo is dropped */
.v-env::after{
  content:""; position:absolute; inset:0; opacity:.5;
  background:
    repeating-linear-gradient(92deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 78px),
    repeating-linear-gradient(2deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 150px);
  -webkit-mask-image:linear-gradient(120deg, transparent 18%, #000 60%);
  mask-image:linear-gradient(120deg, transparent 18%, #000 60%);
}
.v-warm{
  background:radial-gradient(60% 50% at 70% 20%, var(--env-warm), transparent 70%);
  mix-blend-mode:screen; will-change:transform;
}
.v-photo{ overflow:hidden; }
.v-photo image-slot{
  width:100%; height:100%; display:block;
  background:linear-gradient(160deg, var(--env-1), #060709);
}
/* cinematic per-chapter colour grade (sits over the photo) */
.v-chapter::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:2;
  background:
    radial-gradient(80% 50% at 72% 8%, rgba(255,255,255,0.10), transparent 60%),
    linear-gradient(180deg, transparent 38%, rgba(6,8,11,0.62));
}
.v-chapter[data-ch="0"]::after{ background:
  radial-gradient(80% 50% at 72% 8%, rgba(214,222,230,0.12), transparent 60%),
  linear-gradient(170deg, rgba(34,44,56,0.28), transparent 45%),
  linear-gradient(180deg, transparent 40%, rgba(6,8,11,0.6)); }
.v-chapter[data-ch="1"]::after{ background:
  radial-gradient(80% 50% at 70% 10%, rgba(150,180,210,0.14), transparent 60%),
  linear-gradient(170deg, rgba(26,40,58,0.4), transparent 50%),
  linear-gradient(180deg, transparent 40%, rgba(5,7,11,0.64)); }
.v-chapter[data-ch="2"]::after{ background:
  radial-gradient(80% 50% at 70% 12%, rgba(228,196,150,0.16), transparent 60%),
  linear-gradient(170deg, rgba(58,42,28,0.34), transparent 52%),
  linear-gradient(180deg, transparent 42%, rgba(9,7,6,0.62)); }
.v-chapter[data-ch="3"]::after{ background:
  radial-gradient(80% 50% at 70% 10%, rgba(150,214,196,0.16), transparent 60%),
  linear-gradient(170deg, rgba(20,46,42,0.4), transparent 52%),
  linear-gradient(180deg, transparent 40%, rgba(5,9,9,0.64)); }
.v-chapter{ position:absolute; inset:-4%; opacity:0;
  transition:opacity 1s var(--ease); will-change:opacity; }
.v-chapter.is-on{ opacity:1; }

/* fine diagonal architectural line + vignette over the cut */
.v-edge{
  position:absolute; top:0; bottom:0; left:0; width:100%;
  pointer-events:none; z-index:5; mix-blend-mode:screen;
  background:linear-gradient(105deg, transparent 0 calc(var(--cut-top, 30%) - 0.6%), var(--accent-line) calc(var(--cut-top,30%) - 0.6%) calc(var(--cut-top,30%) - 0.1%), transparent calc(var(--cut-top,30%)));
  opacity:.0;
}
.visual-frame{
  position:absolute; top:-6%; right:-4%; width:64%; height:112%; z-index:3;
  pointer-events:none;
  --cut-top:35.92%; --cut-bot:14.44%;
}
.visual-frame::before{
  content:""; position:absolute; inset:0;
  clip-path:polygon(var(--cut-top) 0, 100% 0, 100% 100%, var(--cut-bot) 100%);
  box-shadow:inset 0 0 160px 10px rgba(0,0,0,0.55);
}
/* the platinum hairline running along the diagonal */
.diag-line{
  position:absolute; top:-6%; right:-4%; width:64%; height:112%; z-index:4;
  pointer-events:none; overflow:visible;
}

/* grain */
.grain{
  position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ============================================================
   HERO CONTENT (left)
   ============================================================ */
.content{
  position:absolute; inset:0; z-index:6;
  pointer-events:none;
}
.content .inner{ position:absolute; inset:0; pointer-events:none; }

.content-chapter{ position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:center;
  padding-left:calc(var(--rail) + clamp(40px, 7vw, 150px));
  padding-right:46%;
  padding-bottom:24px;
  opacity:0; transform:translateY(30px);
  transition:opacity .85s var(--ease), transform 1s var(--ease-emph);
  pointer-events:none; }
.content-chapter.is-on{ opacity:1; transform:none; }
.content-chapter.is-on > *{ pointer-events:auto; }
.headline{ max-width:640px; }

.eyebrow{
  display:flex; align-items:center; gap:16px;
  font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--text-3);
  margin-bottom:var(--s4);
}
.eyebrow .ln{ width:46px; height:1px; background:var(--accent-line); }
.eyebrow b{ color:var(--accent); font-weight:600; font-variant-numeric:tabular-nums; }

.headline{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(3.1rem, 6.4vw, 6.6rem);
  line-height:0.99;
  letter-spacing:-0.022em;
  color:var(--text);
  text-wrap:balance;
}
.headline .em{
  font-family:var(--font-edit);
  font-weight:500; font-style:italic;
  letter-spacing:-0.01em;
  font-size:1.04em;
}
.headline .lead{ font-weight:600; }

.sub{
  margin-top:var(--s5);
  max-width:440px;
  font-size:clamp(1rem, 1.15vw, 1.18rem);
  line-height:1.62; color:var(--text-2); font-weight:400;
  text-wrap:pretty;
}

.cta-row{ display:flex; align-items:center; gap:var(--s4); margin-top:var(--s6); flex-wrap:wrap; }

.btn{
  position:relative; display:inline-flex; align-items:center; gap:14px;
  padding:18px 30px;
  font-family:var(--font-display); font-weight:600;
  font-size:13px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); background:var(--accent);
  border-radius:2px; overflow:hidden; isolation:isolate;
  transition:transform .5s var(--ease-emph), box-shadow .5s var(--ease);
  box-shadow:0 0 0 0 var(--accent-soft);
}
.btn:hover{ box-shadow:0 18px 50px -16px var(--accent-soft), 0 0 60px -10px var(--accent-soft); }
.btn .ico{ width:15px; height:15px; transition:transform .5s var(--ease-emph); }
.btn:hover .ico{ transform:translateX(5px); }
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.45), transparent);
  transform:translateX(-130%); transition:transform .8s var(--ease);
}
.btn:hover::before{ transform:translateX(130%); }

.btn-ghost{
  position:relative; display:inline-flex; align-items:center; gap:14px;
  padding:18px 6px;
  font-family:var(--font-display); font-weight:500;
  font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-2);
  transition:color .45s var(--ease), gap .45s var(--ease);
}
.btn-ghost .dot{ width:7px; height:7px; border-radius:50%; border:1px solid var(--accent-line);
  transition:background .45s var(--ease), border-color .45s var(--ease); }
.btn-ghost:hover{ color:var(--text); gap:18px; }
.btn-ghost:hover .dot{ background:var(--accent); border-color:var(--accent); }

.content-chapter.is-on{ pointer-events:auto; }

/* ============================================================
   HUD — top meta, progress rail, scroll cue
   ============================================================ */
.hud-top{
  position:fixed; top:0; right:0; left:var(--rail); z-index:70;
  display:flex; justify-content:space-between; align-items:center;
  padding:30px clamp(28px,4vw,56px);
  pointer-events:none; transition:left .8s var(--ease-emph);
}
.hud-top .meta{ display:flex; align-items:center; gap:14px;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--text-3); }
.hud-top .meta .pill{ display:flex; align-items:center; gap:8px; }
.hud-top .meta .gd{ width:6px; height:6px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 12px var(--accent); }
.hud-top .clock{ font-variant-numeric:tabular-nums; color:var(--text-2); }

/* progress rail */
.rail{
  position:fixed; right:clamp(26px,3.2vw,52px); top:50%; transform:translateY(-50%);
  z-index:70; display:flex; flex-direction:column; gap:22px; align-items:flex-end;
  pointer-events:auto;
}
.rail .r-item{ display:flex; align-items:center; gap:14px; cursor:none; }
@media (max-width:760px){ .rail .r-item{ cursor:pointer; } }
.rail .r-label{ font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-4);
  transition:color .4s var(--ease), opacity .4s var(--ease); opacity:0; transform:translateX(6px);
  transition:color .4s var(--ease), opacity .4s var(--ease), transform .5s var(--ease-emph); }
.rail .r-item:hover .r-label, .rail .r-item.on .r-label{ opacity:1; transform:none; color:var(--text-2); }
.rail .r-item.on .r-label{ color:var(--text); }
.rail .r-tick{ width:26px; height:1px; background:var(--hairline-strong); position:relative; flex:none; }
.rail .r-tick::after{ content:""; position:absolute; inset:0; width:0; background:var(--accent);
  transition:width .6s var(--ease-emph); }
.rail .r-item.on .r-tick{ width:42px; }
.rail .r-item.on .r-tick::after{ width:100%; }

/* scroll cue */
.cue{
  position:fixed; bottom:34px; left:calc(var(--rail) + clamp(40px,7vw,150px)); z-index:70;
  display:flex; align-items:center; gap:14px; pointer-events:none;
  transition:left .8s var(--ease-emph), opacity .6s var(--ease);
  font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--text-3);
}
.cue .bar{ width:54px; height:1px; background:var(--hairline); position:relative; overflow:hidden; }
.cue .bar::after{ content:""; position:absolute; inset:0; width:40%; background:var(--accent);
  animation:slide 2.6s var(--ease) infinite; }
@keyframes slide{ 0%{ transform:translateX(-110%);} 60%,100%{ transform:translateX(280%);} }
.cue.hide{ opacity:0; }

/* signature mark on visual */
.v-cap{
  position:absolute; right:clamp(40px,5vw,70px); bottom:42px; z-index:8;
  text-align:right; pointer-events:none;
  opacity:0; transform:translateY(10px);
  transition:opacity .6s var(--ease), transform .6s var(--ease-emph);
}
.v-cap.show{ opacity:1; transform:none; }
.v-cap .nm{ font-family:var(--font-display); font-weight:600; font-size:15px; letter-spacing:.05em; color:#fff;
  text-shadow:0 2px 24px rgba(0,0,0,.6); }
.v-cap .rl{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.62);
  margin-top:6px; text-shadow:0 2px 18px rgba(0,0,0,.7); }

/* intro reveal — content always visible; entrance is JS/transform-driven, never opacity-gated */
.reveal{ opacity:1; }

@media (prefers-reduced-motion: reduce){
  .cue .bar::after{ animation:none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .content-chapter{ padding-right:40%; }
  .visual, .visual-frame, .diag-line{ width:58%; }
}

/* tablets / large phones — drop the side nav, tighten the columns */
@media (max-width:900px){
  :root{ --rail:58px; --rail-open:320px; }
  .sidebar{ width:58px; }
  .sidebar.open{ width:320px; }
  .rail{ display:none; }
  .v-cap{ display:none; }
  .sb-top{ padding-left:calc((var(--rail) - 30px) / 2); }
  .content-chapter{ padding-right:12%;
    padding-left:calc(var(--rail) + clamp(26px,6vw,60px)); }
  .visual, .visual-frame, .diag-line{ top:-2%; right:-8%; width:74%; height:104%;
    --cut-top:46%; --cut-bot:26%; opacity:.62; }
  /* copy runs over the photo here — keep it legible */
  .content::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(90deg, rgba(8,9,11,.8) 0%, rgba(8,9,11,.55) 55%, rgba(8,9,11,0) 100%);
  }
  [data-theme="light"] .content::before{
    background:linear-gradient(90deg, rgba(243,242,238,.85) 0%, rgba(243,242,238,.6) 55%, rgba(243,242,238,0) 100%);
  }
}

/* ============================================================
   BRAND ACCENT (logo orange #F5B666) + requested tweaks
   ============================================================ */
:root{ --brand:#F5B666; }

/* (2) burger + side-menu text in the logo colour */
.burger span{ background:var(--brand); }
.sb-word{ color:var(--brand); }
.sb-search{ color:var(--brand); }
.sb-search input{ color:var(--brand); }
.sb-search input::placeholder{ color:var(--brand); opacity:.55; }
.sb-nav .sb-link{ color:var(--brand); }
.sb-nav .sb-link .idx{ color:var(--brand); opacity:.7; }
.sb-nav .sb-link:hover, .sb-nav .sb-link.active{ color:var(--brand); }
.sb-nav .sb-link:hover .idx, .sb-nav .sb-link.active .idx{ color:var(--brand); opacity:1; }
.sb-foot .cta, .sb-foot .cta:hover{ color:var(--brand); }
.sb-social a, .sb-social a:hover{ color:var(--brand); }
.sb-sign span{ color:var(--brand); }

/* (1) open-sidebar logo badge */
.sb-logo{ width:60px; height:60px; flex:none; display:block; }

/* (4)(5) top HUD + clock in logo colour; larger clock; pulsing live dot */
.hud-top .meta{ color:var(--brand); }
.hud-top .clock{ color:var(--brand); font-size:13px; }
.hud-top .meta .gd{ position:relative; background:var(--brand); box-shadow:0 0 10px var(--brand); }
.hud-top .meta .gd::after{ content:""; position:absolute; inset:0; border-radius:50%;
  background:var(--brand); animation:gdpulse 2.4s var(--ease) infinite; }
@keyframes gdpulse{ 0%{ transform:scale(1); opacity:.55; } 70%,100%{ transform:scale(3.4); opacity:0; } }

/* (6) cursor ring in logo colour */
.cursor-ring{ border-color:var(--brand); }
.cursor-ring.is-hover{ border-color:var(--brand); background:rgba(245,182,102,0.14); }

/* (7) scroll cue keeps a live page pager; the "Листайте" hint fades on scroll */
.cue .bar, .cue-hint{ transition:opacity .6s var(--ease); }
.cue.hide{ opacity:1; }
.cue.hide .bar, .cue.hide .cue-hint{ opacity:0; }
.cue-pager{ margin-left:14px; color:var(--brand); letter-spacing:.24em; font-variant-numeric:tabular-nums; }

@media (prefers-reduced-motion: reduce){ .hud-top .meta .gd::after{ animation:none; } }

/* ============================================================
   CONTACTS — final chapter + sidebar
   ============================================================ */
.contacts{ margin-top:var(--s5); max-width:460px; }
.ct-line{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding:16px 0; border-top:1px solid var(--hairline);
  transition:border-color .45s var(--ease);
}
.ct-line:last-of-type{ border-bottom:1px solid var(--hairline); }
.ct-k{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--text-3); flex:none; }
.ct-v{ font-family:var(--font-display); font-size:clamp(1.05rem, 1.4vw, 1.3rem); font-weight:500;
  color:var(--text); letter-spacing:.01em; font-variant-numeric:tabular-nums;
  transition:color .45s var(--ease); }
.ct-line:hover{ border-color:var(--accent-line); }
.ct-line:hover .ct-v{ color:var(--brand); }

.ct-msg{ display:flex; flex-wrap:wrap; gap:10px; margin-top:var(--s3); }
.ct-chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 20px; border:1px solid var(--hairline-strong); border-radius:2px;
  font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--text-2);
  transition:color .45s var(--ease), border-color .45s var(--ease), background .45s var(--ease);
}
.ct-chip:hover{ color:var(--brand); border-color:var(--brand); background:rgba(245,182,102,0.08); }
.ct-legal{ margin-top:var(--s3); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-3); }

.sb-contacts{ display:flex; flex-direction:column; gap:8px; margin-top:22px; }
.sb-contacts a{ font-size:15px; letter-spacing:.02em; color:var(--brand);
  font-variant-numeric:tabular-nums; transition:opacity .4s var(--ease); }
.sb-contacts a:hover{ opacity:.75; }
/* the contact chapter carries more copy — compact it on shorter desktop screens */
@media (max-height:880px) and (min-width:701px){
  .content-chapter[data-ch="3"] .headline{ font-size:clamp(2.6rem, 8.6vh, 5.6rem); }
  .content-chapter[data-ch="3"] .eyebrow{ margin-bottom:var(--s3); }
  .content-chapter[data-ch="3"] .sub{ margin-top:var(--s3); }
  .contacts{ margin-top:var(--s3); }
  .ct-line{ padding:12px 0; }
  .ct-msg{ margin-top:var(--s2); }
  .ct-legal{ margin-top:var(--s2); }
}

.sb-body{ min-height:0; overflow-y:auto; scrollbar-width:none; }
.sb-body::-webkit-scrollbar{ display:none; }
@media (max-height:820px) and (min-width:701px){
  .sb-brand{ padding-bottom:var(--s3); }
  .sb-search{ margin-bottom:var(--s4); }
  .sb-link{ padding:11px 0; }
  .sb-foot{ padding-top:var(--s3); }
}
.sb-legal{ margin-top:18px; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brand); opacity:.55; }

/* vertical copyright on the closed rail */
.rail-copy{
  position:fixed; left:0; bottom:24px; width:var(--rail); z-index:130;
  display:flex; justify-content:center; pointer-events:none;
}
.rail-copy span{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:11.5px; letter-spacing:.14em; color:var(--brand); font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:geometricPrecision;
}

/* ============================================================
   TOUCH DEVICES — no custom cursor, native taps, chapter paging
   ============================================================ */
@media (hover:none), (pointer:coarse){
  body{ cursor:auto; }
  button, a, .rail .r-item{ cursor:pointer; }
  .cursor-light, .cursor-dot, .cursor-ring{ display:none; }
  a, button{ -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
  /* iOS zooms into inputs under 16px */
  .sb-search input{ font-size:16px; }
  /* one swipe = one chapter (snap points are placed by app.js) */
  html{ scroll-snap-type:y mandatory; }
}
.snap-pt{ position:absolute; left:0; width:1px; height:1px; pointer-events:none;
  scroll-snap-align:start; scroll-snap-stop:always; }

/* stage fits the visible viewport on mobile browsers with toolbars */
@supports (height:100svh){ .stage{ height:100svh; } }

/* ============================================================
   PHONES — full-bleed visual, floating burger, copy over a veil
   ============================================================ */
@media (max-width:700px){
  :root{ --rail:60px; --rail-open:min(320px, 86vw); }

  /* sidebar: closed = just a floating burger, open = glass drawer */
  .sidebar{ width:var(--rail);
    background:transparent; border-right-color:transparent;
    -webkit-backdrop-filter:none; backdrop-filter:none;
    pointer-events:none;
    transition:background .35s var(--ease), border-color .35s var(--ease); }
  .sidebar .burger{ pointer-events:auto; }
  .sidebar.open{ width:var(--rail-open); pointer-events:auto;
    background:rgba(11,12,14,0.92); border-right-color:var(--glass-border);
    -webkit-backdrop-filter:blur(22px) saturate(120%); backdrop-filter:blur(22px) saturate(120%); }
  [data-theme="light"] .sidebar.open{ background:rgba(243,242,238,0.94); }
  .sb-top{ height:calc(var(--rail) + env(safe-area-inset-top, 0px));
    min-height:calc(var(--rail) + env(safe-area-inset-top, 0px));
    padding-top:env(safe-area-inset-top, 0px);
    padding-left:calc(15px + env(safe-area-inset-left, 0px)); }
  .burger{ width:44px; height:44px; margin-left:-7px; }
  .burger span{ left:10px; right:10px; }
  .sb-minimark, .rail-copy{ display:none; }
  .sb-body{ width:min(320px, 86vw); padding:0 24px env(safe-area-inset-bottom, 0px);
    padding-left:calc(24px + env(safe-area-inset-left, 0px));
    min-height:0; overflow-y:auto; overscroll-behavior:contain; }
  .sb-brand{ padding-bottom:var(--s4); }
  .sb-search{ margin-bottom:var(--s4); }
  .sb-link{ font-size:22px; padding:13px 0; }
  .sb-foot{ padding:var(--s4) 0 var(--s3); }
  .sb-social{ flex-wrap:wrap; gap:14px 22px; }
  .sb-social a{ padding:6px 0; }

  /* HUD sits to the right of the burger */
  .hud-top{ left:var(--rail);
    padding:calc(22px + env(safe-area-inset-top, 0px)) calc(20px + env(safe-area-inset-right, 0px)) 0 4px; }
  .hud-top .meta{ font-size:10px; letter-spacing:.18em; }
  .hud-top .meta .pill:not(:first-child){ display:none; }
  .hud-top .clock{ font-size:12px; }

  /* visual → full-bleed backdrop */
  .visual{ top:-6%; left:-6%; right:auto; width:112%; height:112%;
    clip-path:none; opacity:.9; }
  .visual-frame, .diag-line, .v-cap{ display:none; }

  /* readability veil between the art and the text */
  .content::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(180deg, rgba(8,9,11,.35) 0%, rgba(8,9,11,.55) 30%, rgba(8,9,11,.88) 62%, rgba(8,9,11,.96) 100%);
  }
  [data-theme="light"] .content::before{
    background:linear-gradient(180deg, rgba(243,242,238,.25) 0%, rgba(243,242,238,.6) 30%, rgba(243,242,238,.9) 62%, rgba(243,242,238,.97) 100%);
  }

  /* copy anchored to the lower part of the screen, photo breathes above */
  .content-chapter{
    justify-content:flex-end; justify-content:safe flex-end;
    padding:calc(84px + env(safe-area-inset-top, 0px))
            calc(22px + env(safe-area-inset-right, 0px))
            calc(92px + env(safe-area-inset-bottom, 0px))
            calc(22px + env(safe-area-inset-left, 0px));
  }
  .eyebrow{ gap:12px; font-size:10.5px; letter-spacing:.22em; white-space:nowrap;
    margin-bottom:var(--s3); }
  .eyebrow .ln{ width:26px; flex:none; }
  .headline{ font-size:clamp(2.3rem, 11vw, 3.4rem); line-height:1.02; max-width:none;
    -webkit-hyphens:auto; hyphens:auto; }
  .sub{ max-width:36em; margin-top:var(--s3); font-size:1rem; line-height:1.58; }
  .cta-row{ flex-direction:column; align-items:stretch; gap:6px; margin-top:var(--s4); }
  .btn{ justify-content:center; padding:18px 24px; }
  .btn-ghost{ justify-content:center; padding:14px 6px; }
  .contacts{ margin-top:var(--s3); max-width:none; }
  .ct-line{ padding:13px 0; }
  .ct-msg{ gap:8px; margin-top:var(--s2); }
  .ct-chip{ flex:1 1 0; padding:14px 8px; letter-spacing:.12em; }
  .ct-legal{ margin-top:var(--s2); }

  .cue{ left:calc(22px + env(safe-area-inset-left, 0px));
    bottom:calc(30px + env(safe-area-inset-bottom, 0px)); font-size:10px; }
  .cue .bar{ width:40px; }
}

/* small phones */
@media (max-width:374px){
  .headline{ font-size:clamp(2rem, 10.6vw, 2.5rem); }
  .content-chapter{ padding-left:18px; padding-right:18px; }
  .sub{ font-size:.94rem; }
  .eyebrow{ letter-spacing:.16em; }
  .hud-top .meta{ letter-spacing:.12em; }
}

/* short screens (phones in landscape, small iPhones) */
@media (max-height:640px) and (max-width:700px){
  .content-chapter{ padding-top:calc(72px + env(safe-area-inset-top, 0px));
    padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px)); }
  .headline{ font-size:clamp(2rem, 9vw, 2.6rem); }
  .sub{ font-size:.94rem; line-height:1.5; }
  .cta-row{ margin-top:var(--s3); }
  .btn{ padding:15px 22px; }
  .btn-ghost{ padding:10px 6px; }
  .cue{ bottom:calc(22px + env(safe-area-inset-bottom, 0px)); }
  .ct-line{ padding:10px 0; }
  .ct-chip{ padding:11px 8px; }
  .contacts{ margin-top:var(--s2); }
}
@media (max-height:500px) and (orientation:landscape){
  .hud-top{ padding-top:14px; padding-bottom:0; }
  .cue{ bottom:14px; }
  .content-chapter{ justify-content:center; padding-top:56px; padding-bottom:44px;
    padding-left:calc(var(--rail) + 24px + env(safe-area-inset-left, 0px));
    padding-right:calc(34% + env(safe-area-inset-right, 0px)); }
  .headline{ font-size:clamp(1.8rem, 10vh, 2.8rem); line-height:1; }
  .eyebrow{ margin-bottom:12px; }
  .sub{ margin-top:14px; font-size:.9rem; line-height:1.45; max-width:30em; }
  .cta-row{ flex-direction:row; align-items:center; margin-top:18px; gap:8px 20px; }
  .btn{ padding:13px 22px; }
  .btn-ghost{ padding:10px 6px; }
  .sb-body{ overflow-y:auto; min-height:0; }
  .content-chapter[data-ch="3"] .headline br{ display:none; }
  .content-chapter[data-ch="3"] .headline .em{ margin-right:.24em; }
  .content-chapter[data-ch="3"] .headline .lead{ margin-left:.24em; }
  .content-chapter[data-ch="3"] .headline{ font-size:clamp(1.6rem, 8.5vh, 2.3rem); }
  .content-chapter[data-ch="3"] .sub{ display:none; }
  .contacts{ margin-top:14px; max-width:none;
    display:grid; grid-template-columns:auto auto; column-gap:28px; justify-content:start; }
  .ct-line{ padding:8px 0; flex-direction:column; gap:2px; }
  .ct-line:last-of-type{ border-bottom:none; }
  .ct-msg, .ct-legal{ grid-column:1 / -1; }
  .ct-msg{ margin-top:10px; }
  .ct-chip{ flex:0 0 auto; padding:9px 14px; }
  .ct-legal{ margin-top:10px; }
  .sb-brand{ padding-bottom:16px; }
  .sb-search{ margin-bottom:16px; }
  .sb-link{ padding:8px 0; font-size:19px; }
}

/* production build: plain <img> replaces the <image-slot> editor component */
.v-photo img{ width:100%; height:100%; display:block; object-fit:cover;
  background:linear-gradient(160deg, var(--env-1), #060709); }
.v-photo picture{ display:block; width:100%; height:100%; }

/* ============================================================
   LANGUAGE SWITCHER (HUD, рядом с часами)
   ============================================================ */
.lang-sw{ position:relative; pointer-events:auto; }
.lang-sw summary{ list-style:none; display:flex; align-items:center; gap:7px;
  padding:6px 11px 6px 9px; border:1px solid var(--glass-border); border-radius:999px;
  color:var(--brand); font-size:11px; letter-spacing:.2em; line-height:1;
  transition:border-color .3s var(--ease), background .3s var(--ease); }
.lang-sw summary::-webkit-details-marker{ display:none; }
.lang-sw summary svg{ width:14px; height:14px; flex:none; }
.lang-sw summary:hover, .lang-sw[open] summary{ border-color:rgba(245,182,102,0.45); background:rgba(245,182,102,0.06); }
.lang-list{ position:absolute; top:calc(100% + 10px); right:0; z-index:5; min-width:184px;
  list-style:none; padding:6px; border-radius:14px;
  background:rgba(14,15,18,0.94); border:1px solid var(--glass-border);
  box-shadow:0 22px 48px rgba(0,0,0,.45);
  animation:langIn .28s var(--ease-emph); }
@keyframes langIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
.lang-list a{ display:flex; align-items:center; gap:14px; padding:11px 12px; border-radius:9px;
  color:var(--text-2); font-size:14px; letter-spacing:.01em; text-transform:none;
  transition:background .25s var(--ease), color .25s var(--ease); }
.lang-list a:hover{ background:rgba(255,255,255,0.05); color:var(--text); }
.lang-list a.on{ color:var(--text); }
.lang-list .lc{ width:24px; font-size:10.5px; letter-spacing:.16em; color:var(--text-4); }
.lang-list a.on .lc{ color:var(--brand); }
[data-theme="light"] .lang-list{ background:rgba(255,255,255,0.96); box-shadow:0 22px 48px rgba(0,0,0,.14); }
[data-theme="light"] .lang-list a:hover{ background:rgba(0,0,0,0.04); }
@media (max-width:760px){
  .lang-sw summary{ padding:6px 9px 6px 8px; letter-spacing:.14em; }
}
@media (prefers-reduced-motion: reduce){ .lang-list{ animation:none; } }

/* ============================================================
   RTL (арабская версия). Каркас — сайдбар слева, визуал справа —
   остаётся как в оригинале; текст, списки и строки читаются справа налево.
   ============================================================ */
[dir="rtl"] .sidebar, [dir="rtl"] .hud-top, [dir="rtl"] .rail, [dir="rtl"] .cue,
[dir="rtl"] .rail-copy, [dir="rtl"] .v-cap{ direction:ltr; }
[dir="rtl"] .sb-nav, [dir="rtl"] .sb-foot .cta, [dir="rtl"] .r-label,
[dir="rtl"] .cue-hint, [dir="rtl"] .v-cap .nm, [dir="rtl"] .v-cap .rl{ direction:rtl; }
/* у арабского письма нет прописных и разрядки — буквы должны соединяться */
[lang="ar"] body *{ letter-spacing:0 !important; }
[lang="ar"] .headline .em, [lang="ar"] .pg-title .em, [lang="ar"] .pg-h2 .em, [lang="ar"] .cs-title .em{ font-style:normal; }
/* телефоны, e-mail и ссылки — всегда слева направо */
[dir="rtl"] .ct-v, [dir="rtl"] .sb-contacts a, [dir="rtl"] .pg-foot-nap a{ direction:ltr; unicode-bidi:isolate; }
/* стрелки-иконки смотрят по ходу чтения */
[dir="rtl"] .btn .ico, [dir="rtl"] .cta svg, [dir="rtl"] .cc-more svg, [dir="rtl"] .svc-cta svg{ transform:scaleX(-1); }
[dir="rtl"] .btn:hover .ico{ transform:scaleX(-1) translateX(5px); }

/* ============================================================
   COOKIE CONSENT — плашка согласия (includes/consent.php + consent.js)
   ============================================================ */
.consent{
  position:fixed; z-index:140; bottom:24px; right:24px; width:min(440px, calc(100vw - var(--rail) - 48px));
  padding:22px 22px 20px; border-radius:14px;
  background:rgba(16,18,22,0.92); border:1px solid var(--glass-border);
  -webkit-backdrop-filter:blur(22px) saturate(120%); backdrop-filter:blur(22px) saturate(120%);
  box-shadow:0 28px 70px -20px rgba(0,0,0,.65);
  font-family:var(--font-body); color:var(--text-2); font-size:13.5px; line-height:1.6;
  opacity:0; transform:translateY(16px);
  transition:opacity .45s var(--ease), transform .45s var(--ease-emph);
}
.consent.is-on{ opacity:1; transform:none; }
.consent[hidden]{ display:none; }
.consent-title{ display:flex; align-items:center; gap:10px; margin-bottom:10px;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text); }
.consent-dot{ width:7px; height:7px; border-radius:50%; background:var(--brand, #F5B666); flex:none; }
.consent-text a{ color:var(--text); text-decoration:underline; text-decoration-color:var(--accent-line);
  text-underline-offset:3px; transition:text-decoration-color .3s var(--ease); }
.consent-text a:hover{ text-decoration-color:var(--text); }
.consent-actions{ display:grid; grid-template-columns:repeat(3, auto); gap:8px; margin-top:16px; }
.consent-btn{ padding:11px 12px; border-radius:8px; border:1px solid var(--hairline-strong);
  font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; line-height:1.3;
  color:var(--text); text-align:center;
  transition:background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); }
.consent-btn:hover{ background:rgba(255,255,255,0.06); border-color:var(--accent-line); }
.consent-btn.is-main{ background:var(--accent); border-color:var(--accent); color:var(--ink); font-weight:600; }
.consent-btn.is-main:hover{ background:var(--text); border-color:var(--text); }
.consent-btn:focus-visible, .consent-text a:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
[data-theme="light"] .consent{ background:rgba(255,255,255,0.94); box-shadow:0 22px 56px -18px rgba(0,0,0,.22); }
[data-theme="light"] .consent-btn:hover{ background:rgba(0,0,0,0.04); }
/* каркас в RTL не зеркалится — плашка остаётся справа, над визуалом; текст справа налево */
[dir="rtl"] .consent{ direction:rtl; }
@media (max-width:760px){
  .consent{ left:calc(var(--rail) + 12px); right:12px; bottom:12px; width:auto; padding:18px 16px 16px; font-size:13px; }
  .consent-actions{ grid-template-columns:1fr 1fr; }
  .consent-btn.is-main{ grid-column:1 / -1; }
  .consent-btn{ cursor:pointer; }
}
/* до 700px рейла нет — закрытое меню это только плавающий бургер */
@media (max-width:700px){ .consent{ left:12px; } }
@media (prefers-reduced-motion: reduce){ .consent{ transition:none; } }
