/* =========================================================
     ТОКЕНЫ — «Крайний Север»
     Туман, камень, лёд. Один тревожный акцент — сигнальный
     оранжевый (цвет спасжилетов и буёв), используется скупо.
     ========================================================= */
  :root{
    --stone-dk: #21282b;
    --stone:    #3c464b;
    --fog:      #c6ccce;
    --ice:      #eef1f1;
    --frost:    #7ea3ac;
    --flag:     #cc5a2c;
    --bone:     #e4dac2;
    --bone-dk:  #cebd93;

    --display: 'PT Sans Narrow', 'Arial Narrow', sans-serif;
    --body:    'PT Sans', Arial, sans-serif;
    --mono:    'PT Mono', 'Consolas', 'Menlo', 'Courier New', monospace;

    --max: 980px;

    /* тонкое белое свечение — есть всегда, усиливается при наведении и ещё больше при нажатии */
    --neon-rest:   0 0 9px rgba(255,255,255,.18), 0 0 1px rgba(255,255,255,.35) inset;
    --neon-soft:   0 0 16px rgba(255,255,255,.32), 0 0 2px rgba(255,255,255,.55) inset;
    --neon-hover:  0 0 26px rgba(255,255,255,.48), 0 0 3px rgba(255,255,255,.8) inset;
    --neon-active: 0 0 36px rgba(255,255,255,.68), 0 0 4px rgba(255,255,255,.95) inset;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html, body{max-width:100%;overflow-x:hidden;}
  body{margin:0;background:var(--ice);color:var(--stone-dk);font-family:var(--body);line-height:1.6;-webkit-font-smoothing:antialiased;}
  img{max-width:100%;display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
  section{position:relative;padding:84px 0;}
  section.dark-vignette::before{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.045), transparent 60%);
  }
  @media(max-width:640px){ section{padding:52px 0;} }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  }
  a:focus-visible, button:focus-visible{outline:3px solid var(--flag);outline-offset:3px;}

  h1,h2,h3{font-family:var(--display);text-transform:uppercase;font-weight:700;letter-spacing:.01em;margin:0 0 .3em;line-height:1.02;}
  .field-tag{
    display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:.68rem;
    letter-spacing:.08em; text-transform:uppercase; color:var(--frost);
  }
  .field-tag::before{content:'';width:7px;height:7px;background:var(--flag);flex:none;}

  .btn{
    font-family:var(--display); font-size:1.05rem; text-transform:uppercase; letter-spacing:.02em;
    padding:14px 26px; border:2px solid var(--stone-dk); cursor:pointer;
    text-decoration:none; display:inline-flex; align-items:center; gap:10px;
    transition:transform .13s ease, background .13s ease, color .13s ease, box-shadow .25s ease;
    background:transparent; color:var(--stone-dk);
    box-shadow:var(--neon-rest);
  }
  .btn:hover, .btn:focus-visible{transform:translateY(-2px); box-shadow:var(--neon-soft);}
  .btn:active{transform:translateY(0); box-shadow:var(--neon-active);}
  .btn-flag{background:var(--bone); color:var(--stone-dk); border-color:var(--bone);}
  .btn-flag:hover, .btn-flag:focus-visible{background:var(--bone-dk); box-shadow:var(--neon-hover);}
  .btn-flag:active{box-shadow:var(--neon-active);}
  .btn-ghost-light{border-color:var(--ice);color:var(--ice);}
  .btn-ghost-light:hover, .btn-ghost-light:focus-visible{border-color:var(--flag);color:var(--flag); box-shadow:var(--neon-hover);}
  .btn-ghost-light:active{box-shadow:var(--neon-active);}

  /* crack divider */
  .divider{height:46px;position:relative;background:var(--ice);}
  .divider svg{width:100%;height:100%;}
  .divider path.main{stroke:var(--stone-dk);stroke-width:1.6;}
  .divider path.branch{stroke:var(--frost);stroke-width:1;opacity:.7;}

  /* =========== NAV =========== */
  nav{position:sticky;top:0;z-index:40;background:rgba(33,40,43,.95);color:var(--ice);border-bottom:1px solid rgba(238,241,241,.15);}
  nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;}
  .brand{font-family:var(--display);font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;}
  .brand span{color:var(--flag);}
  .navlinks{display:flex;gap:20px;font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;}
  .navlinks a{text-decoration:none;opacity:.8;padding-bottom:3px;border-bottom:1px solid transparent;transition:opacity .15s ease, border-color .15s ease, text-shadow .25s ease;}
  .navlinks a:hover{opacity:1;color:var(--flag);border-color:rgba(255,255,255,.5);text-shadow:0 0 8px rgba(255,255,255,.35);}

  .nav-toggle{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:32px; height:28px; background:none; border:none; cursor:pointer; padding:0;
  }
  .nav-toggle span{display:block;width:100%;height:2px;background:var(--ice);transition:transform .2s ease, opacity .2s ease;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* =========== WEATHER TICKER ============ */
  .ticker-bar{
    background:var(--stone-dk); border-bottom:1px solid rgba(238,241,241,.15);
    overflow:hidden; white-space:nowrap; position:relative;
  }
  .ticker-bar::before{
    content:'СВОДКА'; position:relative; z-index:2; display:inline-block; vertical-align:top;
    font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; color:var(--stone-dk);
    background:var(--flag); padding:6px 10px; margin-right:2px;
    box-shadow:var(--neon-rest);
  }
  .ticker-track{
    display:inline-block; white-space:nowrap; padding-left:100%;
    animation:ticker-scroll 130s linear infinite;
  }
  .ticker-track span{
    display:inline-block; font-family:var(--mono); font-size:.68rem; letter-spacing:.03em;
    color:var(--fog); padding:6px 26px 6px 0;
  }
  .ticker-track span.hl{color:var(--ice);}
  @keyframes ticker-scroll{ from{transform:translateX(0);} to{transform:translateX(-100%);} }
  @media (prefers-reduced-motion: reduce){ .ticker-track{animation:none; padding-left:12px;} }
  @media(max-width:760px){
    .nav-toggle{display:flex;}
    .navlinks{
      display:none; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; gap:0; background:rgba(33,40,43,.98);
      border-bottom:1px solid rgba(238,241,241,.15);
      padding:6px 0;
    }
    .navlinks.open{display:flex;}
    .navlinks a{padding:14px 24px;border-bottom:1px solid rgba(238,241,241,.08);}
    .navlinks a:last-child{border-bottom:none;}
  }

  /* =========== HERO — documentary ============ */
  .hero{min-height:92svh;display:flex;align-items:flex-end;position:relative;overflow:hidden;color:var(--ice);}
  .hero-photo{
    position:absolute; inset:0; z-index:0;
    background:
      linear-gradient(0deg, var(--stone-dk) 8%, rgba(33,40,43,.35) 55%, rgba(33,40,43,.6) 100%),
      linear-gradient(160deg, #4a565b 0%, #2c3437 55%, #1a2022 100%);
  }
  .hero-photo::after{
    content:''; position:absolute; inset:0;
    background-image:repeating-linear-gradient(100deg, rgba(238,241,241,.035) 0 2px, transparent 2px 60px);
  }
  .hero-cracks{position:absolute;inset:0;z-index:0;opacity:.5;}
  .hero-cracks path{stroke:var(--frost);stroke-width:1.2;fill:none;}
  .hero-cracks path.thick{stroke:var(--ice);stroke-width:1.6;opacity:.7;}

  .snowfall{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;display:none;}
  body.season-snow .snowfall{display:block;}
  .flake{position:absolute;top:-4%;border-radius:50%;background:#fff;opacity:0;animation:fall linear infinite;}
  @keyframes fall{
    0%{transform:translateY(0) translateX(0);opacity:0;}
    8%{opacity:.85;}
    92%{opacity:.6;}
    100%{transform:translateY(112vh) translateX(var(--drift,20px));opacity:0;}
  }

  /* Низкое полярное солнце — показывается вне снежного сезона */
  .sunlight{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;transition:opacity .6s ease;}
  body.season-snow .sunlight{opacity:.35;}
  .sun-glow{
    position:absolute; top:3%; right:-2%; width:280px; height:280px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,250,232,.95) 0%, rgba(255,224,164,.4) 38%, transparent 72%);
    filter:blur(1px); mix-blend-mode:screen; animation:sunpulse 7s ease-in-out infinite;
  }
  .sun-rays{position:absolute; top:3%; right:-2%; width:280px; height:280px; transform:translate(0,0); mix-blend-mode:screen; animation:sunrotate 90s linear infinite; opacity:.5;}
  .sun-rays line{stroke:rgba(255,247,222,.55);stroke-width:1.5;}
  .sun-sweep{
    position:absolute; inset:0;
    background:linear-gradient(115deg, rgba(255,247,225,.10) 0%, transparent 30%);
    mix-blend-mode:screen;
  }
  @keyframes sunpulse{ 0%,100%{opacity:.85; transform:scale(1);} 50%{opacity:1; transform:scale(1.05);} }
  @keyframes sunrotate{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
  .hero-inner{position:relative;z-index:1;width:100%;padding:56px 24px 50px;max-width:var(--max);margin:0 auto;}
  .hero h1{font-size:clamp(2.5rem,7.5vw,4.6rem);color:var(--ice);}
  .hero .coords{font-family:var(--mono);font-size:.78rem;color:var(--frost);margin:.7em 0 1.1em;letter-spacing:.02em;}
  .hero p.lede{max-width:48ch;color:var(--fog);font-size:1.03rem;}
  .hero-cta{margin-top:1.9em;display:flex;gap:14px;flex-wrap:wrap;}

  .field-strip{display:flex;gap:0;margin-top:2.3em;border-top:1px solid rgba(238,241,241,.3);max-width:600px;}
  .field-stat{padding:14px 22px 4px 0;flex:1;}
  .field-stat b{display:block;font-family:var(--display);font-size:1.9rem;color:var(--ice);}
  .field-stat span{font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:var(--fog);}

  /* =========== PHOTO SLOT (single, bio) =========== */
  .photo-slot{
    aspect-ratio:4/5; border:1px solid var(--stone);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
    background:repeating-linear-gradient(135deg, rgba(33,40,43,.06) 0 9px, transparent 9px 18px);
    color:var(--stone); text-align:center; padding:16px;
    overflow:hidden;
  }
  .photo-slot img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-slot b{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;}
  .photo-slot span{font-family:var(--mono);font-size:.6rem;line-height:1.5;}

  /* =========== BIO ============ */
  #bio{background:var(--ice);}
  .bio-grid{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:0;margin-top:1.8em;border:1px solid var(--stone);}
  @media(max-width:760px){ .bio-grid{grid-template-columns:minmax(0,1fr);} }
  .bio-grid .photo-slot{border:none;border-right:1px solid var(--stone);}
  @media(max-width:760px){ .bio-grid .photo-slot{border-right:none;border-bottom:1px solid var(--stone);} }

  .log-entry{padding:22px 26px;border-bottom:1px solid var(--fog);display:grid;grid-template-columns:minmax(0,74px) minmax(0,1fr);gap:16px;}
  .log-entry:last-child{border:none;}
  .log-entry .coord{font-family:var(--mono);font-size:.66rem;color:var(--frost);}
  .log-entry h3{font-size:1.2rem;text-transform:none;font-family:var(--body);font-weight:700;margin:.15em 0 .25em;}
  .log-entry p{margin:0;color:#333c3f;font-size:.94rem;}

  /* =========== MEMOIRS ============ */
  #memoirs{background:var(--stone-dk);color:var(--ice);}
  .chapters{margin-top:1.8em;}
  .chapter{
    display:grid; grid-template-columns:minmax(0,50px) minmax(0,1fr) auto; gap:16px; align-items:center;
    padding:17px 4px; text-decoration:none; color:var(--ice); border-bottom:1px solid rgba(238,241,241,.16);
  }
  .chapter:hover{background:rgba(238,241,241,.06);}
  .chapter .num{font-family:var(--display);font-size:1.6rem;color:var(--frost);}
  .chapter .title{font-family:var(--body);font-weight:700;font-size:1.02rem;}
  .chapter .len{font-family:var(--mono);font-size:.66rem;color:var(--fog);}
  .memoir-actions{display:flex;gap:12px;margin-top:1.9em;flex-wrap:wrap;}

  /* =========== GADIK: break the ice — single stacked screen ============ */
  #gadik{background:var(--ice);}
  .gadik-stage{max-width:520px;margin:1.8em auto 0;display:flex;flex-direction:column;align-items:center;}

  .ice-panel{
    position:relative; width:100%; background:linear-gradient(160deg,#f4f7f7,#dbe4e5);
    border:1px solid var(--stone); min-height:240px; padding:36px 30px;
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    transition:box-shadow .4s ease;
  }
  .ice-panel.shake{animation:panelshake .4s ease;}
  @keyframes panelshake{
    0%,100%{transform:translateX(0) rotate(0);}
    20%{transform:translateX(-7px) rotate(-.5deg);}
    40%{transform:translateX(6px) rotate(.4deg);}
    60%{transform:translateX(-4px) rotate(-.2deg);}
    80%{transform:translateX(3px);}
  }
  .ice-panel.cracked{box-shadow:0 0 26px rgba(255,255,255,.35), 0 0 3px rgba(255,255,255,.6) inset;}
  .ice-panel::after{
    content:''; position:absolute; top:0; bottom:0; width:40%; left:-45%; pointer-events:none;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,.55) 48%, transparent);
    opacity:0;
  }
  .ice-panel.cracked::after{animation:glint 1s ease .15s;}
  @keyframes glint{ 0%{left:-45%;opacity:0;} 15%{opacity:.8;} 60%{opacity:.15;} 100%{left:110%;opacity:0;} }
  .ice-panel svg.cracks{position:absolute;inset:0;width:100%;height:100%;}
  .ice-panel svg.cracks path{stroke:var(--stone-dk);stroke-width:1.8;fill:none;stroke-dasharray:420;stroke-dashoffset:420;opacity:0;}
  .ice-panel svg.cracks path.hair{stroke:var(--frost);stroke-width:1;stroke-dasharray:220;stroke-dashoffset:220;}
  .ice-panel.cracked svg.cracks path{animation:crack .55s ease forwards;}
  .ice-panel.cracked svg.cracks path.hair{animation:crackhair .5s ease .1s forwards;}
  @keyframes crack{ to{stroke-dashoffset:0;opacity:.7;} }
  @keyframes crackhair{ to{stroke-dashoffset:0;opacity:.55;} }
  /* fine permanent frost texture, always visible, independent of the click animation */
  .ice-panel::before{
    content:''; position:absolute; inset:0; pointer-events:none; opacity:.35;
    background-image:
      linear-gradient(115deg, transparent 46%, rgba(33,40,43,.12) 47%, transparent 48%),
      linear-gradient(25deg, transparent 63%, rgba(33,40,43,.09) 64%, transparent 65%),
      linear-gradient(75deg, transparent 30%, rgba(126,163,172,.14) 31%, transparent 32%);
  }
  .ice-text{position:relative;z-index:1;font-family:var(--body);font-weight:700;font-size:1.15rem;color:var(--stone-dk);white-space:pre-line;text-align:center;opacity:0;transition:opacity .4s ease .35s;line-height:1.5;}
  .ice-text.show{opacity:1;}
  .ice-text.long{font-size:.96rem;line-height:1.55;}
  .ice-prompt{
    position:relative; z-index:1; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em;
    color:var(--stone); text-align:center; opacity:.75; transition:opacity .3s ease;
  }
  .ice-panel.cracked .ice-prompt{opacity:0; position:absolute;}

  .ice-meta{display:flex;justify-content:space-between;width:100%;margin-top:12px;font-family:var(--mono);font-size:.64rem;color:var(--stone);}

  .ice-btn{
    font-family:var(--display); font-size:1.05rem; text-transform:uppercase; letter-spacing:.02em;
    background:var(--bone); color:var(--stone-dk); border:2px solid var(--stone-dk);
    padding:14px 32px; cursor:pointer; margin-top:20px; transition:transform .13s ease, box-shadow .25s ease, background .13s ease;
    box-shadow:var(--neon-rest);
  }
  .ice-btn:hover, .ice-btn:focus-visible{transform:translateY(-2px); box-shadow:var(--neon-hover); background:var(--bone-dk);}
  .ice-btn:active{box-shadow:var(--neon-active);}

  .ice-substrip{display:flex;align-items:center;gap:16px;margin-top:14px;font-family:var(--mono);font-size:.66rem;color:var(--stone);}
  .ice-share{background:none;border:none;color:var(--stone-dk);text-decoration:underline;font-family:var(--mono);font-size:.66rem;cursor:pointer;padding:0;}
  .ice-share:hover{color:var(--flag);}

  .warn-note{font-family:var(--mono);font-size:.64rem;color:var(--stone);border-left:3px solid var(--flag);padding-left:10px;margin-top:18px;text-align:left;}

  /* =========== VIDEO — old CRT set ============ */
  #video{background:var(--stone-dk);color:var(--ice);}
  #video .field-tag{color:var(--flag);}
  .tv-wrap{display:flex;justify-content:center;margin-top:2em;}

  .tv-set{
    width:100%; max-width:480px; background:linear-gradient(160deg,#5a4a38,#382c20);
    border-radius:22px; padding:22px 22px 16px;
    box-shadow:0 26px 50px -22px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.08);
    position:relative;
  }
  .tv-set::before{
    content:''; position:absolute; inset:6px; border-radius:18px; pointer-events:none;
    background-image:repeating-linear-gradient(90deg, rgba(0,0,0,.05) 0 2px, transparent 2px 5px);
    opacity:.4;
  }

  .tv-screen-frame{
    background:#100d0a; border-radius:14px; padding:16px;
    box-shadow:inset 0 2px 10px rgba(0,0,0,.7), inset 0 0 0 3px #050403;
  }
  .tv-screen{
    position:relative; aspect-ratio:4/3; border-radius:8px; overflow:hidden; background:#000;
    box-shadow:inset 0 0 40px rgba(0,0,0,.85);
  }
  .tv-screen video{
    width:100%; height:100%; object-fit:cover; display:block;
    filter:grayscale(1) contrast(1.15) brightness(.95);
  }
  .tv-scanlines{
    position:absolute; inset:0; pointer-events:none; z-index:2;
    background-image:repeating-linear-gradient(0deg, rgba(0,0,0,.35) 0 1px, transparent 1px 3px);
    mix-blend-mode:multiply;
  }
  .tv-vignette{
    position:absolute; inset:0; pointer-events:none; z-index:2;
    background:radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
  }
  .tv-noise{
    position:absolute; inset:0; z-index:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
    opacity:.5; animation:staticnoise .2s steps(2) infinite;
  }
  @keyframes staticnoise{ 0%{transform:translate(0,0);} 50%{transform:translate(-1%,1%);} 100%{transform:translate(1%,-1%);} }

  .tv-offscreen{
    position:absolute; inset:0; z-index:3; display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.25);
  }
  .tv-off-text{
    font-family:var(--mono); font-size:.75rem; letter-spacing:.15em; color:#e5e5e0;
    text-shadow:0 0 6px rgba(255,255,255,.5); animation:offblink 1.6s ease-in-out infinite;
  }
  @keyframes offblink{ 0%,100%{opacity:.9;} 50%{opacity:.35;} }

  .tv-screen.on .tv-noise, .tv-screen.on .tv-offscreen{display:none;}

  .tv-panel{display:flex;align-items:center;justify-content:space-between;padding:16px 8px 4px;gap:14px;}
  .tv-knob{
    width:38px;height:38px;border-radius:50%; flex:none; cursor:pointer;
    background:radial-gradient(circle at 35% 30%, #8a7255, #4a3c2a 70%);
    border:2px solid #2a2118; box-shadow:0 3px 6px rgba(0,0,0,.5);
    display:flex; align-items:center; justify-content:center; transition:box-shadow .25s ease;
  }
  .tv-knob span{width:2px;height:14px;background:#efe6d0;border-radius:1px;}
  .tv-knob:hover, .tv-knob:focus-visible{box-shadow:0 3px 6px rgba(0,0,0,.5), var(--neon-soft);}
  .tv-knob.deco{cursor:default;}
  .tv-speaker{display:flex;gap:5px;}
  .tv-speaker span{width:4px;height:22px;border-radius:2px;background:#1c1712;}

  .video-note{font-family:var(--mono);font-size:.66rem;color:var(--fog);margin-top:18px;max-width:60ch;line-height:1.7;}
  .video-note code{background:rgba(238,241,241,.1);padding:1px 5px;border-radius:2px;}

  /* =========== PHOTO GALLERY (full) ============ */
  #gallery{background:var(--ice);color:var(--stone-dk);}
  #gallery .field-tag{color:var(--flag);}
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; margin-top:1.8em;
  }
  @media(max-width:760px){ .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
  .gallery-item{
    position:relative; aspect-ratio:1/1; cursor:pointer; overflow:hidden; border:none; padding:0;
    background:linear-gradient(150deg,#4a565b,#232a2d); color:var(--fog);
  }
  .gallery-item:nth-child(3n+1){background:linear-gradient(150deg,#5a666b,#2a3134);}
  .gallery-item:nth-child(3n+2){background:linear-gradient(150deg,#3f4a4f,#1c2224);}
  .gallery-item::after{
    content:''; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(0deg, rgba(20,24,26,.8) 0%, rgba(20,24,26,.35) 38%, transparent 65%);
  }
  .gallery-item span{
    position:absolute; left:10px; bottom:10px; right:10px; font-family:var(--mono); font-size:.62rem;
    letter-spacing:.02em; text-align:left; color:var(--ice); opacity:.95; z-index:2;
  }
  .gallery-item::before{content:'+';position:absolute;top:10px;right:12px;font-family:var(--display);font-size:1.3rem;color:var(--ice);opacity:.75;z-index:2;}
  .gallery-item:hover{outline:2px solid var(--flag);outline-offset:-2px; box-shadow:0 0 20px rgba(255,255,255,.25) inset, 0 0 14px rgba(255,255,255,.2);}
  .gallery-item:hover::after{background:linear-gradient(0deg, rgba(20,24,26,.85) 0%, rgba(20,24,26,.4) 40%, rgba(20,24,26,.05) 70%);}
  .gallery-note{font-family:var(--mono);font-size:.66rem;color:var(--fog);margin-top:14px;}

  /* lightbox — full, unmasked view: no gradient over the photo, caption lives outside it */
  .lightbox{position:fixed;inset:0;background:rgba(20,24,26,.92);z-index:100;display:none;align-items:center;justify-content:center;padding:24px;}
  .lightbox.open{display:flex;}
  .lightbox-frame{max-width:640px;width:100%;display:flex;flex-direction:column;gap:12px;}
  .lightbox-inner{width:100%;background:linear-gradient(150deg,#4a565b,#232a2d);aspect-ratio:4/3;position:relative;}
  .lightbox-cap{font-family:var(--mono);color:var(--ice);font-size:.8rem;text-align:left;}
  .lightbox-close{align-self:flex-end;background:none;border:1px solid var(--ice);color:var(--ice);font-family:var(--mono);font-size:.7rem;padding:8px 14px;cursor:pointer;}
  .lightbox-close:hover{border-color:var(--flag);color:var(--flag);}

  /* =========== BOOK ============ */
  #book{background:var(--ice);}
  .book-box{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:0;align-items:stretch;margin-top:1.8em;border:1px solid var(--stone-dk);}
  @media(max-width:640px){ .book-box{grid-template-columns:minmax(0,1fr);} }
  .book-cover{
    background:linear-gradient(160deg,var(--stone),var(--stone-dk)); border-right:1px solid var(--stone-dk);
    display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;
    font-family:var(--display);color:var(--ice);font-size:1.08rem;text-transform:uppercase;line-height:1.15;
  }
  @media(max-width:640px){ .book-cover{border-right:none;border-bottom:1px solid var(--stone-dk);} }
  .book-info{padding:26px;}

  /* =========== CONTACT ============ */
  #contact{background:var(--ice);}
  .form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px;}
  @media(max-width:640px){ .form-row{grid-template-columns:minmax(0,1fr);} }
  input,textarea{width:100%;padding:13px 14px;border:1px solid var(--stone-dk);border-radius:0;background:#fff;color:var(--stone-dk);font-family:var(--body);font-size:.95rem;}
  textarea{min-height:100px;resize:vertical;}
  label{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--flag);margin-bottom:6px;}

  footer{padding:28px 0;text-align:center;font-family:var(--mono);font-size:.66rem;color:var(--fog);background:var(--stone-dk);border-top:1px solid rgba(238,241,241,.15);}

  .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease, transform .5s ease;}
  .reveal.show{opacity:1;transform:none;}

  /* =========== ГОСТЕВАЯ КНИГА ============ */
  #guestbook{background:var(--stone-dk);color:var(--ice);}
  #guestbook .field-tag{color:var(--flag);}
  .gb-form{display:flex;flex-direction:column;gap:14px;margin-top:1.8em;max-width:480px;}
  .gb-form textarea{min-height:100px;}
  .gb-form input, .gb-form textarea{width:100%;padding:12px 14px;border:1px solid rgba(238,241,241,.3);border-radius:0;background:rgba(238,241,241,.06);color:var(--ice);font-family:var(--body);font-size:.95rem;}
  .gb-form input::placeholder, .gb-form textarea::placeholder{color:var(--fog);}
  .gb-form .form-submit{margin:0;}
  .gb-list{margin-top:2em;display:grid;gap:10px;max-width:640px;}
  .gb-entry{background:rgba(238,241,241,.06);border:1px solid rgba(238,241,241,.18);padding:14px 16px;}
  .gb-entry .gb-name{font-family:var(--display);text-transform:uppercase;font-size:.95rem;color:var(--ice);}
  .gb-entry .gb-date{font-family:var(--mono);font-size:.62rem;color:var(--fog);margin-left:8px;}
  .gb-entry p{margin:.4em 0 0;font-size:.9rem;color:var(--fog);}
  .gb-empty{font-family:var(--mono);font-size:.7rem;color:var(--fog);margin-top:1.5em;}
  .gb-confirm{
    font-family:var(--body); font-size:.95rem; color:var(--stone-dk); background:var(--bone);
    border-left:3px solid var(--flag); padding:14px 18px; margin:1.4em 0; max-width:480px;
  }
  .gb-note{font-family:var(--mono);font-size:.64rem;color:var(--fog);border-left:3px solid var(--flag);padding-left:10px;margin-top:1.6em;max-width:60ch;line-height:1.7;}

  /* =========== ЖУРНАЛ (страница /gostevaya-kniga/) ============ */
  .logbook{position:relative;margin-top:1.8em;}
  .log-page{
    background:
      repeating-linear-gradient(180deg, transparent 0 38px, rgba(33,40,43,.055) 38px 39px),
      linear-gradient(170deg,#f4efdd,#e7dcc0);
    border:1px solid var(--stone);
    box-shadow:0 26px 50px -20px rgba(0,0,0,.55);
    padding:34px 38px 26px;
    height:560px;
    overflow-y:auto;
    position:relative;
    color:var(--stone-dk);
    display:none;
  }
  .log-page.active{display:block;}
  .log-page::before{
    content:''; position:absolute; left:0; top:0; bottom:0; width:50px;
    background:repeating-linear-gradient(180deg, transparent 0 30px, rgba(33,40,43,.14) 30px 31px);
    border-right:1px dashed rgba(33,40,43,.28);
  }
  .log-title{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-left:64px;margin-bottom:18px;display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(33,40,43,.2);}
  .log-row{
    display:grid; grid-template-columns:82px minmax(0,1fr) 150px; gap:20px;
    margin-left:64px; padding:14px 0 18px; border-bottom:1px dashed rgba(33,40,43,.16);
    align-items:start;
  }
  .log-row:last-child{border-bottom:none;}
  .log-date{font-family:var(--mono);font-size:.7rem;color:var(--stone);padding-top:4px;opacity:.75;}
  .log-text{font-size:1.28rem;line-height:1.35;}
  .log-sign{text-align:right;padding-top:2px;font-size:1.05rem;opacity:.92;}

  @media(max-width:640px){
    .log-page{padding:28px 20px 22px;height:640px;}
    .log-page::before{width:30px;}
    .log-title, .log-row{margin-left:38px;}
    .log-title{font-size:.58rem;}
    .log-row{grid-template-columns:minmax(0,1fr);gap:2px;padding:14px 0;}
    .log-date{padding-top:0;}
    .log-text{font-size:1.2rem;margin:2px 0;}
    .log-sign{text-align:left;font-size:1rem;opacity:.8;}
  }

  /* Шесть разных «почерков» — рукописные шрифты по кругу на записи,
     с лёгким разбросом наклона и цвета чернил, чтобы соседние записи
     не выглядели написанными одной рукой. */
  .hand-1 .log-text{font-family:'Caveat',cursive;color:#1c2a3a;transform:rotate(-.6deg);}
  .hand-1 .log-sign{font-family:'Caveat',cursive;color:#1c2a3a;font-weight:700;}
  .hand-1 .log-date{font-family:'Caveat',cursive;color:#1c2a3a;font-size:1rem;opacity:.85;}
  .hand-2 .log-text{font-family:'Marck Script',cursive;color:#2b2013;transform:rotate(.4deg);font-size:1.12rem;}
  .hand-2 .log-sign{font-family:'Marck Script',cursive;color:#2b2013;}
  .hand-2 .log-date{font-family:'Marck Script',cursive;color:#2b2013;font-size:.92rem;opacity:.85;}
  .hand-3 .log-text{font-family:'Neucha',cursive;color:#22344a;transform:rotate(-.3deg);font-size:1.3rem;}
  .hand-3 .log-sign{font-family:'Neucha',cursive;color:#22344a;}
  .hand-3 .log-date{font-family:'Neucha',cursive;color:#22344a;font-size:1.05rem;opacity:.85;}
  .hand-4 .log-text{font-family:'Kalam',cursive;color:#1a1a1a;transform:rotate(.7deg);font-size:1.15rem;}
  .hand-4 .log-sign{font-family:'Kalam',cursive;color:#1a1a1a;font-weight:700;}
  .hand-4 .log-date{font-family:'Kalam',cursive;color:#1a1a1a;font-size:.95rem;opacity:.85;}
  .hand-5 .log-text{font-family:'Comforter',cursive;color:#2e2416;transform:rotate(-.5deg);font-size:1.4rem;}
  .hand-5 .log-sign{font-family:'Comforter',cursive;color:#2e2416;font-size:1.2rem;}
  .hand-5 .log-date{font-family:'Comforter',cursive;color:#2e2416;font-size:1.1rem;opacity:.85;}
  .hand-6 .log-text{font-family:'Underdog',cursive;color:#26343f;transform:rotate(.3deg);font-size:1.05rem;}
  .hand-6 .log-sign{font-family:'Underdog',cursive;color:#26343f;}
  .hand-6 .log-date{font-family:'Underdog',cursive;color:#26343f;font-size:.9rem;opacity:.85;}
  .log-text, .log-sign{display:inline-block;}

  .log-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:22px;}
  .log-nav button{
    font-family:var(--display); font-size:.95rem; text-transform:uppercase; letter-spacing:.03em;
    background:var(--bone); color:var(--stone-dk); border:2px solid var(--stone-dk);
    padding:10px 20px; cursor:pointer; transition:background .15s ease, transform .15s ease;
  }
  .log-nav button:hover{background:var(--bone-dk); transform:translateY(-2px);}
  .log-nav button:disabled{opacity:.35;cursor:default;transform:none;background:var(--bone);}
  .log-page-num{font-family:var(--mono);font-size:.78rem;color:var(--fog);min-width:110px;text-align:center;}

  /* =========== ПЕЧАТЬ МЕМУАРОВ ============ */
  @media print{
    nav, .ticker-bar, .hero, #gadik, #video, #gallery, #book,
    #guestbook, footer, .divider, .sunlight, .snowfall{ display:none !important; }
    body{background:#fff; color:#000;}
    #memoirs{background:#fff; color:#000; padding:0;}
    #memoirs .field-tag{color:#000;}
    .chapters, .chapter{background:#fff; color:#000; border-color:#000;}
    .chapter .num, .chapter .len{color:#444;}
    .memoir-actions{display:none;}
    a[href]::after{content:"" ;}
  }
