/* Shared design system for project pages — matches design-1-cinematic.html */
:root{
  --bg:#050505;
  --ink:#F2EFEA;
  --dim:#8f8a83;
  --ember:#FF6A2B;
  --ember-soft:color-mix(in srgb,var(--ember) 14%,transparent);
  --violet:rgba(108,74,255,.16);
  --hair:rgba(255,255,255,.09);
  --glass:rgba(255,255,255,.045);
  --panel:#0b0b0b;
  --pill:rgba(10,10,10,.55);
  --chip:rgba(8,8,8,.6);
  --scrim:rgba(5,5,5,.85);
  --shade:rgba(255,255,255,.05);
  --hover:rgba(255,255,255,.06);
  --ghost:rgba(255,255,255,.14);
  --media-bg:#000;
  --on-ink:#0a0a0a;
  --on-ember:#050505;
  --shadow:rgba(0,0,0,.55);
  --shadow-lg:rgba(0,0,0,.7);
  --ink-glow:rgba(242,239,234,.16);
  --ink-glow-soft:rgba(242,239,234,.08);
  --grain-op:.05;
  --ease:cubic-bezier(.32,.72,0,1);
}
/* ---------- светлая тема ---------- */
:root[data-theme="light"]{
  --bg:#F4F1EC;
  --ink:#17140F;
  --dim:#6E675E;
  --ember:#D2470E;
  --violet:rgba(108,74,255,.10);
  --hair:rgba(23,20,15,.14);
  --glass:rgba(255,255,255,.6);
  --panel:#FFFFFF;
  --pill:rgba(255,255,255,.78);
  --chip:rgba(255,255,255,.82);
  --scrim:rgba(244,241,236,.88);
  --shade:rgba(23,20,15,.04);
  --hover:rgba(23,20,15,.05);
  --ghost:rgba(23,20,15,.16);
  --media-bg:#E8E4DD;
  --on-ink:#F7F5F1;
  --on-ember:#FFF6F1;
  --shadow:rgba(23,20,15,.12);
  --shadow-lg:rgba(23,20,15,.18);
  --ink-glow:rgba(23,20,15,.14);
  --ink-glow-soft:rgba(23,20,15,.07);
  --grain-op:.03;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:'Instrument Sans',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--ember);color:var(--on-ember)}
a{color:inherit;text-decoration:none}

/* ambient */
.mesh{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.mesh i{position:absolute;border-radius:50%;filter:blur(120px)}
.mesh i:nth-child(1){width:60vw;height:60vw;left:-20vw;top:-18vw;background:var(--violet)}
.mesh i:nth-child(2){width:48vw;height:48vw;right:-16vw;top:34vh;background:var(--ember-soft)}
.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:var(--grain-op);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E")}

/* nav pill */
nav{
  position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:50;
  display:flex;align-items:center;gap:6px;
  padding:8px 10px 8px 12px;border-radius:999px;
  background:var(--pill);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--hair);
  box-shadow:inset 0 1px 1px var(--hover),0 20px 50px var(--shadow);
  white-space:nowrap;
}
nav a.back{
  display:flex;align-items:center;gap:8px;
  font:500 12px 'Instrument Sans',sans-serif;color:var(--dim);
  padding:9px 15px;border-radius:999px;
  transition:color .5s var(--ease),background .5s var(--ease);
}
nav a.back:hover{color:var(--ink);background:var(--hover)}
nav .brand{font:700 13px 'Syne',sans-serif;letter-spacing:.06em;margin:0 10px}
nav .brand em{color:var(--ember);font-style:normal}
nav a.cta{
  font:600 12px 'Instrument Sans',sans-serif;color:var(--on-ink);
  background:var(--ink);padding:9px 18px;border-radius:999px;
  transition:transform .5s var(--ease);
}
nav a.cta:active{transform:scale(.97)}

/* layout */
main{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:150px 40px 0}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font:500 10px 'JetBrains Mono',monospace;letter-spacing:.22em;text-transform:uppercase;
  color:var(--dim);border:1px solid var(--hair);border-radius:999px;padding:7px 14px;
  background:var(--pill);
}
.eyebrow b{width:6px;height:6px;border-radius:50%;background:var(--ember)}
h1{
  margin-top:24px;
  font:800 clamp(40px,6.4vw,84px)/1.02 'Syne',sans-serif;letter-spacing:-.02em;
}
h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--ember)}
.lead{margin-top:22px;max-width:640px;font:400 17px/1.7 'Instrument Sans',sans-serif;color:var(--dim)}
.lead b{color:var(--ink);font-weight:500}
.chips{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px}
.chips span{
  font:500 10.5px 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim);border:1px solid var(--hair);border-radius:999px;padding:8px 14px;
}
.chips span b{color:var(--ink);font-weight:500}

/* hero player */
.player{position:relative;margin-top:46px;border-radius:26px;padding:7px;background:var(--glass);border:1px solid var(--hair);
  box-shadow:inset 0 1px 1px var(--shade),0 30px 90px var(--shadow)}
.player video,.player img{display:block;width:100%;height:auto;border-radius:20px;background:var(--media-bg)}
.player.vert video{width:auto;max-width:100%;max-height:82vh;margin:0 auto}

/* ---- reel: мини-галерея под герой-видео ---- */
.reel-wrap{position:relative;margin-top:16px;padding:0 58px}
.reel-wrap .reel{display:flex;gap:12px;overflow-x:auto;scroll-behavior:smooth;
  scroll-snap-type:x proximity;padding:2px;scrollbar-width:none;-ms-overflow-style:none}
.reel-wrap .reel::-webkit-scrollbar{display:none}
.reel-wrap .reel .shot{flex:0 0 auto;width:230px;scroll-snap-align:start;margin:0;
  border-radius:16px;padding:5px;background:var(--glass);border:1px solid var(--hair);cursor:pointer;
  transition:transform .5s var(--ease),border-color .5s var(--ease)}
.reel-wrap .reel .shot:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ember) 35%,transparent)}
.reel-wrap .reel .shot img,.reel-wrap .reel .shot video{
  display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:11px;background:var(--media-bg)}
.reel-wrap .reel .shot.vert{width:152px}
.reel-wrap .reel .shot.vert img,.reel-wrap .reel .shot.vert video{aspect-ratio:9/16}
.reel-wrap .reel .shot figcaption{padding:8px 7px 2px;
  font:500 9px 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reel-wrap .reel-nav{position:absolute;top:50%;margin:0;transform:translateY(-50%);z-index:4;
  width:46px;height:46px;border-radius:50%;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--ember) 55%,transparent);background:var(--ember);color:var(--on-ink);
  display:flex;align-items:center;justify-content:center;font:600 24px/1 sans-serif;padding-bottom:3px;
  box-shadow:0 8px 28px color-mix(in srgb,var(--ember) 40%,transparent),0 2px 10px var(--shadow);
  transition:background .4s var(--ease),color .4s var(--ease),opacity .35s var(--ease),
             transform .4s var(--ease),box-shadow .4s var(--ease)}
.reel-wrap .reel-nav:hover{background:var(--ink);border-color:var(--ink);color:var(--on-ink);
  box-shadow:0 10px 34px var(--ink-glow),0 2px 10px var(--shadow)}
.reel-wrap .reel-prev{left:0}
.reel-wrap .reel-next{right:0}
.reel-wrap .reel-prev:hover{transform:translateY(-50%) translateX(-3px)}
.reel-wrap .reel-next:hover{transform:translateY(-50%) translateX(3px)}
.reel-wrap .reel-nav:active{transform:translateY(-50%) scale(.94)}
.reel-wrap .reel-nav[disabled]{opacity:0;pointer-events:none}

/* sections */
section{margin-top:110px}
.sec-tag{font:500 10px 'JetBrains Mono',monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--ember)}
h2{margin-top:14px;font:700 clamp(26px,3.4vw,44px)/1.08 'Syne',sans-serif;letter-spacing:-.015em}
.grid2{display:grid;grid-template-columns:7fr 5fr;gap:18px;margin-top:34px}
.panel{border-radius:26px;padding:7px;background:var(--glass);border:1px solid var(--hair);
  box-shadow:inset 0 1px 1px var(--shade)}
.panel .core{border-radius:20px;background:var(--panel);padding:32px 34px;height:100%}
.panel .body{font:400 15px/1.85 'Instrument Sans',sans-serif;color:var(--dim)}
.panel .body b{color:var(--ink);font-weight:500}
.panel .body + .body{margin-top:16px}
.facts p{
  display:flex;justify-content:space-between;gap:14px;
  font:400 11.5px/2.5 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);
  border-bottom:1px dashed var(--hair);
}
.facts p b{color:var(--ink);font-weight:500;text-align:right}
.facts p:last-child{border-bottom:none}

/* highlights */
.hl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.hl .core{padding:26px 28px}
.hl .num{font:400 12px 'JetBrains Mono',monospace;color:var(--ember);letter-spacing:.2em}
.hl h3{margin-top:12px;font:700 18px 'Syne',sans-serif;letter-spacing:-.01em}
.hl p{margin-top:9px;font:400 13.5px/1.65 'Instrument Sans',sans-serif;color:var(--dim)}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:34px}
.g-item{border-radius:26px;padding:7px;background:var(--glass);border:1px solid var(--hair);cursor:pointer;
  transition:transform .6s var(--ease),border-color .6s var(--ease)}
.g-item:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--ember) 35%,transparent)}
.g-item video,.g-item img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px;background:var(--media-bg)}
.g-item.vert video,.g-item.vert img{aspect-ratio:9/14;object-fit:cover}
.g-item .g-cap{padding:12px 14px 8px;font:500 10px 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

/* next project */
.next{margin-top:120px}
.next .panel .core{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;padding:44px 44px}
.next .label{font:500 10px 'JetBrains Mono',monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}
.next h2{margin-top:10px}
.next h2 em{font-style:normal;color:var(--ember)}
.next-cta{
  display:inline-flex;align-items:center;gap:14px;
  font:600 15px 'Instrument Sans',sans-serif;color:var(--on-ink);
  background:var(--ink);border-radius:999px;padding:14px 14px 14px 26px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.next-cta:hover{box-shadow:0 14px 50px var(--ink-glow)}
.next-cta:active{transform:scale(.97)}
.next-cta .dot{
  width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.1);
  display:flex;align-items:center;justify-content:center;font-size:16px;
  transition:transform .5s var(--ease);
}
.next-cta:hover .dot{transform:translate(3px,-2px) scale(1.08)}

footer{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:70px 40px 44px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font:400 10.5px 'JetBrains Mono',monospace;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:4vmin;
  background:var(--scrim);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
.lb.open{opacity:1;pointer-events:auto}
.lb .box{position:relative;max-width:min(1200px,94vw);border-radius:22px;padding:7px;
  background:var(--glass);border:1px solid var(--hair);box-shadow:0 40px 120px var(--shadow-lg);
  transform:scale(.95) translateY(16px);transition:transform .45s var(--ease)}
.lb.open .box{transform:none}
.lb .lb-media video,.lb .lb-media img{display:block;max-width:100%;max-height:80vh;border-radius:16px;background:var(--media-bg)}
.lb .x{position:absolute;top:-16px;right:-16px;z-index:2;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--hair);background:var(--panel);color:var(--ink);font:400 16px/1 sans-serif;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease),background .4s,color .4s}
.lb .x:hover{background:var(--ember);color:var(--on-ember);transform:rotate(90deg)}

/* reveals */
.rv{opacity:0;transform:translateY(40px);filter:blur(10px);
  transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}
.rv.in{opacity:1;transform:none;filter:none}

/* responsive */
@media(max-width:900px){
  main{padding:130px 18px 0}
  .reel-wrap .reel .shot{width:200px}
  .reel-wrap .reel .shot.vert{width:132px}
  .reel-wrap{padding:0 46px}
  .reel-wrap .reel-nav{width:38px;height:38px;font-size:20px}
  .reel-wrap .reel-prev{left:0}
  .reel-wrap .reel-next{right:0}
  .grid2{grid-template-columns:1fr}
  .hl-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .next .panel .core{padding:32px 24px}
  footer{padding:50px 18px 34px}
  nav{top:12px;max-width:calc(100vw - 24px)}
  .lb .x{top:10px;right:10px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none;filter:none}
  html{scroll-behavior:auto}
}

/* ---------- переключатели языка и темы ---------- */
.tools{display:flex;align-items:center;gap:4px;margin-left:2px}
.tools button{
  display:flex;align-items:center;justify-content:center;
  height:32px;min-width:32px;padding:0 9px;border-radius:999px;cursor:pointer;
  border:1px solid var(--hair);background:var(--shade);color:var(--dim);
  font:700 10.5px 'JetBrains Mono',monospace;letter-spacing:.1em;
  transition:color .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease),transform .3s var(--ease);
}
.tools button:hover{color:var(--ink);background:var(--hover);border-color:color-mix(in srgb,var(--ember) 40%,transparent)}
.tools button:active{transform:scale(.93)}
.tools .theme-btn{position:relative;overflow:hidden}
.tools .theme-btn svg{width:15px;height:15px;position:absolute;transition:transform .5s var(--ease),opacity .35s var(--ease)}
.tools .theme-btn .ic-moon{opacity:1;transform:none}
.tools .theme-btn .ic-sun{opacity:0;transform:rotate(-90deg) scale(.6)}
:root[data-theme="light"] .tools .theme-btn .ic-moon{opacity:0;transform:rotate(90deg) scale(.6)}
:root[data-theme="light"] .tools .theme-btn .ic-sun{opacity:1;transform:none}

/* узкие экраны: шапка не должна вылезать за пилюлю */
@media(max-width:620px){
  nav{padding:6px 8px 6px 8px;gap:2px}
  nav a.back{padding:8px 10px;font-size:11.5px}
  nav a.back:nth-of-type(2){display:none}     /* «Главная» дублирует логотип */
  nav .brand{margin:0 6px;font-size:12px}
  nav a.cta{padding:8px 13px;font-size:11.5px}
  .tools button{height:28px;min-width:28px;padding:0 7px;font-size:9.5px}
  .tools .theme-btn svg{width:13px;height:13px}
}

/* ---------- кнопка «включить звук» на герой-видео ---------- */
.sound-cue{
  position:absolute;top:20px;right:20px;z-index:4;display:none;align-items:center;gap:9px;
  padding:10px 16px;border-radius:999px;cursor:pointer;
  background:var(--chip);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid color-mix(in srgb,var(--ember) 55%,transparent);color:var(--ink);
  font:700 10px 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;
  animation:soundpulse 2.6s ease-in-out infinite;
  transition:background .4s var(--ease),color .4s var(--ease),transform .3s var(--ease);
}
.sound-cue.show{display:inline-flex}
.sound-cue:hover{background:var(--ember);color:var(--on-ember);animation:none}
.sound-cue:active{transform:scale(.95)}
.sound-cue svg{width:14px;height:14px;flex:none}
@keyframes soundpulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ember) 40%,transparent)}
  70%{box-shadow:0 0 0 13px transparent}
}
@media(max-width:620px){ .sound-cue{top:12px;right:12px;padding:8px 12px;font-size:9px} }
@media(prefers-reduced-motion:reduce){ .sound-cue{animation:none} }
