:root{
      --wine:#2a0d14;
      --cherry:#6d1827;
      --red:#9e3342;
      --cream:#f4eee9;
      --paper:#ebe1da;
      --ink:#21171a;
      --muted:#a79399;
    }
    *{box-sizing:border-box}
    :focus-visible{outline:2px solid #d79aa6;outline-offset:4px}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      color:var(--cream);
      background:
        radial-gradient(circle at 20% 0%, #5a1724 0%, transparent 35%),
        linear-gradient(180deg,#16090d 0%,#260c13 50%,#13080b 100%);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
      overflow-x:hidden;
    }
    body::before{
      content:"";
      position:fixed; inset:0; pointer-events:none; z-index:50;
      opacity:.06;
    }
    .serif{font-family: Georgia, "Times New Roman", serif}
    .caps{text-transform:uppercase; letter-spacing:.18em}
    .screen{min-height:100svh; position:relative}
    .cover{
      display:grid; grid-template-columns:1.05fr .95fr;
      background:var(--cream); color:var(--ink);
    }
    .cover-copy{
      min-height:100svh;
      padding:clamp(28px,5vw,74px);
      display:flex; flex-direction:column; justify-content:space-between;
      position:relative;
    }
    .edition{font-size:12px; opacity:.62}
    h1{
      margin:0;
      font-size:clamp(64px,9vw,150px);
      font-weight:400;
      line-height:.77;
      letter-spacing:-.065em;
    }
    .dream{
      display:block; color:var(--cherry); margin-left:.12em;
    }
    .lead{
      font-family:Georgia, "Times New Roman", serif;
      font-size:clamp(20px,2vw,30px);
      line-height:1.25;
      max-width:690px;
    }
    .enter{
      width:max-content; border:1px solid #30161e; color:#30161e;
      padding:14px 22px; background:transparent; cursor:pointer;
      text-transform:uppercase; letter-spacing:.18em; font-size:11px;
      transition:.25s ease;
    }
    .enter:hover{background:#30161e;color:white;transform:translateY(-2px)}
    .enter:active{transform:translateY(0)}
    .cover-photo{
      min-height:100svh; background:#fff;
      position:relative; overflow:hidden;
    }
    .cover-photo img{
      width:100%; height:100%; object-fit:cover; object-position:center 14%;
      display:block;
    }
    .cover-photo::after{
      content:"31 / 08";
      position:absolute; right:24px; bottom:20px;
      color:white; mix-blend-mode:difference;
      font-size:12px; letter-spacing:.24em;
    }
    section.content{
      max-width:1240px; margin:0 auto; padding:110px 28px;
    }
    .kicker{
      color:#d79aa6; font-size:11px; letter-spacing:.22em;
      text-transform:uppercase; margin-bottom:18px;
    }
    h2{
      font-family:Georgia, "Times New Roman", serif;
      font-weight:400; margin:0 0 30px;
      font-size:clamp(42px,7vw,92px); line-height:.95;
      letter-spacing:-.045em;
    }
    p.big{
      font-family:Georgia, "Times New Roman", serif;
      font-size:clamp(22px,3vw,38px); line-height:1.3;
      max-width:920px; color:#efe5e0;
    }
    .split{
      display:grid; grid-template-columns:1fr 1fr; gap:42px; align-items:center;
    }
@media (min-width:821px){
      .split{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:stretch}
      .split > div:first-child{display:flex}
      .split > div:first-child .book-shelf{width:100%;height:100%;align-content:start}
      .split > .photo-card{height:100%}
      .split > .photo-card img{height:100%;max-height:none;object-fit:cover}
    }
    .photo-card{
      border:1px solid rgba(255,255,255,.15);
      padding:12px; background:rgba(255,255,255,.04);
      box-shadow:0 30px 80px rgba(0,0,0,.22);
    }
    .photo-card img{display:block;width:100%;max-height:760px;object-fit:cover}
    .books{
      display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:34px;
    }

    .book-grid{
      display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:34px;
    }
    .book-shelf{
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:18px;
      margin-top:42px;
      padding:34px 18px 18px;
      perspective:1400px;
      background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0));
      border-top:1px solid rgba(255,255,255,.16);
      border-bottom:1px solid rgba(255,255,255,.12);
    }
    .book-shelf .book-card{
      min-width:0;
      border:0;
      background:transparent;
      overflow:visible;
      transform:rotateY(-8deg) rotateX(2deg);
      transition:transform .35s ease,filter .35s ease;
    }
    .book-shelf .book-card:nth-child(even){transform:rotateY(7deg) rotateX(2deg) translateY(12px)}
    .book-shelf .book-card:hover{transform:rotateY(0) rotateX(0) translateY(-12px);filter:brightness(1.08)}
    .book-shelf .book-cover{
      aspect-ratio:3 / 4.35;
      position:relative;
      overflow:visible;
      background:#211216;
    
    }
    .book-shelf .book-cover::after{
      content:"";
      position:absolute;inset:0 -10px -5px 100%;
      transform:skewY(-28deg);transform-origin:left top;
      background:linear-gradient(90deg,#3a1c24,#17090d);
      opacity:.85;pointer-events:none;
    }
    .book-shelf .book-info{padding:22px 2px 0;gap:9px}
    .book-shelf .book-info strong{font-size:clamp(18px,1.7vw,26px)}
    .book-shelf .book-info p{margin:0;color:#cdb9bd;font-size:13px;line-height:1.45}
    .book-shelf .book-info span{font-size:9px}
    .book-card{
      border:1px solid rgba(255,255,255,.16);
      background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
      overflow:hidden;
      min-height: 100%;
    }
    .book-cover{
      aspect-ratio: 3 / 4;
      background:rgba(255,255,255,.03);
      display:flex; align-items:center; justify-content:center;
      overflow:hidden;
    }
    .book-cover img{
      width:100%; height:100%; object-fit:cover; display:block;
    }
    .book-info{
      padding:18px 18px 20px;
      display:flex; flex-direction:column; gap:10px;
    }
    .book-info span{
      font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#d4a2ac
    }
    .book-info strong{
      font-family:Georgia,serif;font-size:26px;font-weight:400; line-height:1.05;
    }
    .book-placeholder{
      aspect-ratio:3/4;
      display:grid; place-items:center;
      color:#d3b5bb;
      text-align:center;
      padding:20px;
      font-family:Georgia,serif;
      font-size:30px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.01)),
        radial-gradient(circle at top left, rgba(158,51,66,.26), transparent 40%);
    }
    .book{
      padding:24px; min-height:170px;
      border:1px solid rgba(255,255,255,.16);
      background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
      display:flex;flex-direction:column;justify-content:space-between;
    }
    .book span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#d4a2ac}
    .book strong{font-family:Georgia,serif;font-size:27px;font-weight:400}
    .status{display:inline-flex;gap:8px;align-items:center;color:#f0b9c2}
    .dot{width:8px;height:8px;border-radius:50%;background:#d66374;box-shadow:0 0 14px #d66374}
    .freedom{
      margin-top:60px;
      display:grid; grid-template-columns:repeat(3,1fr); gap:14px;
    }
    .tile{
      min-height:300px; position:relative; overflow:hidden;
      border-radius:2px;
    }
    .tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.04)}
    .tile::after{
      content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(20,4,9,.68));
    }
    .tile label{position:absolute;left:18px;bottom:16px;z-index:2;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
    .psycho{
      background:var(--paper); color:#1b1114;
      padding:100px 28px;
    }
    .dossier{
      max-width:1050px;margin:0 auto;border:1px solid #372127;padding:clamp(24px,5vw,60px);
      position:relative;background:#f3ebe6;
    }
    .stamp{
      position:absolute;right:25px;top:20px;border:2px solid #7d1e2d;
      color:#7d1e2d;padding:10px 15px;transform:rotate(4deg);
      letter-spacing:.16em;text-transform:uppercase;font-size:12px;
    }
    .members{
      display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:35px;
    }

    .psych-members{
      display:grid;
      grid-template-columns:repeat(5,1fr);
      gap:14px;
      margin-top:42px;
    }
    .psych-card{
      border-top:1px solid #6e5b60;
      padding-top:12px;
    }
    .psych-photo{
      aspect-ratio:3/4;
      background:#ddd4cf;
      overflow:hidden;
      margin-bottom:12px;
      box-shadow:0 12px 30px rgba(0,0,0,.08);
    }
    .psych-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      filter:saturate(.88) contrast(1.02);
    }
    .psych-label{
      font-size:10px;
      letter-spacing:.16em;
      text-transform:uppercase;
      color:#8a656f;
      margin-bottom:4px;
    }
    .psych-name{
      font-size:16px;
      letter-spacing:.03em;
      text-transform:uppercase;
    }
    .member{border-top:1px solid #6e5b60;padding-top:10px;font-size:13px}
    .final{
      min-height:100svh;display:grid;place-items:center;text-align:center;
      padding:70px 25px;position:relative;overflow:hidden;
    }
    .final::before{
      content:"";position:absolute;inset:0;
      background:url('../images/tori-final-background.webp') center/cover no-repeat;
      opacity:.23;filter:grayscale(.2) saturate(.7);
    }
    .final::after{content:"";position:absolute;inset:0;background:rgba(23,7,11,.62)}
    .final-inner{position:relative;z-index:2;max-width:920px}
    .final-kicker{position:relative;z-index:2;margin-bottom:4px}
    .final h2{font-size:clamp(52px,8vw,110px)}
    .to-be{
      margin-top:40px;font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:#d8a9b2
    }
    .birthday-cake{position:relative;width:min(650px,96vw);height:min(650px,96vw);margin:26px auto 4px;aspect-ratio:1/1;filter:drop-shadow(0 18px 18px rgba(0,0,0,.42));animation:cakeFloat 4s ease-in-out infinite}
    .birthday-cake-image{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
    .birthday-cake{cursor:pointer;outline:none}
    .birthday-cake:focus-visible{filter:drop-shadow(0 18px 18px rgba(0,0,0,.42)) drop-shadow(0 0 12px rgba(255,190,222,.55))}
    .cake-wind{position:absolute;inset:0;z-index:12;overflow:hidden;pointer-events:none}
    .cake-wind i{position:absolute;left:calc(var(--wind-x) - 22%);top:105%;width:44%;height:30px;border-top:3px solid rgba(255,242,248,.72);border-bottom:1px solid rgba(255,211,233,.3);border-radius:50%;background:linear-gradient(90deg,transparent 0%,rgba(255,229,242,.13) 42%,rgba(255,255,255,.52) 75%,transparent 100%);filter:blur(.35px) drop-shadow(0 0 7px rgba(255,196,225,.5));animation:cakeWind 1s cubic-bezier(.15,.7,.2,1) var(--wind-delay) both}
    .cake-wind i:after{content:"";position:absolute;right:2%;top:7px;width:32%;height:13px;border-radius:50%;background:rgba(255,218,235,.38);filter:blur(7px)}
    .cake-celebration{position:fixed;inset:0;width:100vw;height:100vh;z-index:1000;overflow:hidden;pointer-events:none}
    .cake-message{position:absolute;left:50%;top:17%;padding:14px 24px;border:1px solid rgba(255,228,239,.5);border-radius:999px;background:rgba(54,14,29,.78);color:#fff2f5;font:clamp(18px,3vw,30px) Georgia,serif;box-shadow:0 0 25px rgba(255,170,208,.35);transform:translate(-50%,-22px) scale(.7);opacity:0;animation:cakeMessage 4.7s cubic-bezier(.22,1,.36,1) both}
    .cake-confetti{position:absolute;left:50%;top:45%;width:8px;height:15px;background:var(--confetti-color);border-radius:2px;animation:confettiFly 5.8s cubic-bezier(.15,.7,.2,1) var(--confetti-delay) both}
    .cake-balloon{position:absolute;left:var(--balloon-x);top:38%;width:27px;height:35px;border-radius:50% 50% 45% 45%;background:var(--balloon-color);box-shadow:inset -5px -6px 8px rgba(50,8,25,.18),0 0 12px rgba(255,211,231,.2);animation:balloonFall 6.8s ease-in var(--balloon-delay) both}
    .cake-balloon:after{content:"";position:absolute;left:50%;top:100%;width:1px;height:58px;background:rgba(255,225,237,.55);transform:rotate(7deg);transform-origin:top}
    @keyframes cakeMessage{0%{opacity:0;transform:translate(-50%,-28px) scale(.7)}18%,68%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,12px) scale(.96)}}
    @keyframes confettiFly{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.5)}12%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(620deg) scale(1)}}
    @keyframes balloonFall{0%{opacity:0;transform:translateY(-20px) rotate(-8deg)}12%{opacity:1}100%{opacity:0;transform:translateY(78vh) rotate(14deg)}}
    .birthday-cake.is-blowing .cake-flame-image b{animation:flameBlown 1.25s cubic-bezier(.2,.7,.3,1) both}
    .cake-flame-image b:after{content:"";position:absolute;left:50%;top:-5px;width:9px;height:9px;border-radius:50%;background:rgba(226,221,224,.5);opacity:0;filter:blur(3px);transform:translateX(-50%)}
    .birthday-cake.is-blowing .cake-flame-image b:after{animation:smokeRise 1.8s ease-out .72s both}
    .cake-smoke{position:absolute;z-index:14;width:10px;height:10px;border-radius:50%;background:rgba(226,221,224,.62);filter:blur(4px);transform:translate(-50%,-7px);animation:smokeRise 1.8s ease-out .72s both;pointer-events:none}
    .birthday-cake.is-extinguished .cake-flame-image b{opacity:0;animation:none}
    @keyframes cakeWind{0%{opacity:0;transform:translateY(0) scale(.25,.7) rotate(-8deg)}14%{opacity:.88}45%{transform:translateY(-120%) scale(1,.9) rotate(3deg)}100%{opacity:0;transform:translateY(-390%) scale(1.65,.75) rotate(-4deg)}}
    @keyframes smokeRise{0%{opacity:0;transform:translate(-50%,0) scale(.4)}18%{opacity:.55}55%{opacity:.28;transform:translate(calc(-50% + 6px),-23px) scale(1.45)}100%{opacity:0;transform:translate(calc(-50% - 9px),-52px) scale(2.3)}}
    @keyframes flameBlown{0%{opacity:1;transform:translateX(-50%) scale(.9,1) rotate(0)}25%{opacity:1;transform:translateX(-50%) scale(1.25,.7) rotate(28deg)}62%{opacity:.55;transform:translateX(-50%) scale(.7,.42) rotate(55deg)}100%{opacity:0;transform:translateX(-50%) scale(.08,.15) rotate(75deg)}}
    .cake-plate{position:absolute;left:2%;bottom:4px;width:96%;height:18px;border-radius:50%;background:linear-gradient(#f8d9e3,#a65a72 55%,#572039);box-shadow:0 4px 0 #351321,0 0 24px rgba(239,149,188,.25)}
    .cake-layer{position:absolute;left:7%;width:86%;height:75px;border-radius:18px 18px 25px 25px;background:linear-gradient(110deg,#3b1420,#6c2631 30%,#9d3d48 58%,#35101b);box-shadow:inset 0 -9px 0 rgba(35,7,15,.5),inset 0 6px 12px rgba(255,190,170,.2)}
    .cake-layer-top{bottom:111px}.cake-layer-bottom{bottom:30px;height:82px}
    .cake-layer span{position:absolute;bottom:7px;width:10px;height:20px;border-radius:0 0 8px 8px;background:#f2c2cf;box-shadow:0 2px 4px rgba(57,10,23,.35)}
    .cake-layer span:nth-child(1){left:18%;height:16px}.cake-layer span:nth-child(2){left:49%;height:24px}.cake-layer span:nth-child(3){right:17%;height:13px}
    .cake-cream{position:absolute;left:5%;width:90%;height:29px;border-radius:50%;background:radial-gradient(ellipse at 25% 45%,#fff5f5 0 18%,transparent 19%),linear-gradient(#fff8f5,#edb4c5 70%,#c9778e);z-index:3;box-shadow:0 3px 5px rgba(52,10,24,.3)}
    .cake-cream-top{bottom:171px}.cake-cream-middle{bottom:99px}
    .cake-glaze{position:absolute;z-index:4;left:8%;bottom:159px;width:84%;height:34px;border-radius:12px 12px 50% 50%;background:linear-gradient(#5c1d29,#2a0b15);box-shadow:inset 0 4px 7px rgba(255,170,150,.25),0 4px 5px rgba(25,4,12,.35)}
    .cake-glaze:after{content:"";position:absolute;left:9%;right:9%;top:9px;height:4px;border-radius:50%;background:rgba(255,207,185,.45);filter:blur(2px)}
    .cake-berries{position:absolute;z-index:7;left:13%;right:13%;bottom:180px;display:flex;justify-content:space-between}
    .cake-berries b{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#ffd5d1 0 8%,#e94665 12%,#7b102f 72%);box-shadow:0 3px 6px rgba(25,3,12,.45),0 0 8px rgba(232,65,101,.3)}
    .cake-berries b:nth-child(even){transform:scale(.78) translateY(7px);background:radial-gradient(circle at 35% 28%,#fff1c0 0 8%,#df9a45 12%,#70301e 72%)}
    .cake-candles{position:absolute;z-index:8;left:23%;right:23%;bottom:183px;display:flex;justify-content:space-between}
    .cake-candles i{display:block;width:9px;height:39px;border-radius:4px 4px 2px 2px;background:repeating-linear-gradient(-35deg,#fff0a9 0 5px,#c86478 5px 9px);box-shadow:0 0 4px rgba(255,227,157,.55)}
    .cake-flame-image{position:absolute;z-index:9;inset:0;pointer-events:none}
    .cake-flame-image b{position:absolute;display:block;transform:translateX(-50%)}
    .cake-flame-image b{touch-action:none}
    .cake-flame-image b:nth-child(1){left:27.33%!important;top:3.2%!important}
    .cake-flame-image b:nth-child(2){left:35.44%!important;top:2.48%!important}
    .cake-flame-image b:nth-child(3){left:42.51%!important;top:9.64%!important}
    .cake-flame-image b:nth-child(4){left:49.9%!important;top:0%!important}
    .cake-flame-image b:nth-child(5){left:63.23%!important;top:3.29%!important}
    .cake-flame-image b:nth-child(6){left:71.95%!important;top:6.77%!important}
    .cake-flame-image b:nth-child(7){left:56.05%!important;top:8.52%!important}
    .cake-flame b{width:10px;height:17px;border-radius:60% 40% 60% 40%;background:#fff6ba;box-shadow:0 0 6px 3px #ffd45b,0 0 17px 7px rgba(255,121,50,.75);transform-origin:bottom center;animation:flameDance .42s ease-in-out infinite alternate}
    .cake-flame b:nth-child(2){animation-delay:-.18s}.cake-flame b:nth-child(3){animation-delay:-.31s}.cake-flame b:nth-child(4){animation-delay:-.08s}.cake-flame b:nth-child(5){animation-delay:-.24s}
    @keyframes cakeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
    @keyframes flameDance{from{transform:scale(.8,.95) rotate(-7deg);filter:brightness(.9)}to{transform:scale(1.05,1.18) rotate(8deg);filter:brightness(1.25)}}
    footer{padding:26px;text-align:center;font-size:11px;letter-spacing:.15em;color:#927c83}
    @media (max-width:820px){
      .cover{grid-template-columns:1fr}
      .cover-copy{min-height:56svh}
      .cover-photo{min-height:64svh}
      .split{grid-template-columns:1fr}
      .books{grid-template-columns:1fr}
      .book-shelf{grid-template-columns:repeat(2,1fr);padding-inline:6px}
      .freedom{grid-template-columns:1fr}
      .tile{min-height:430px}
      .members{grid-template-columns:repeat(2,1fr)}
      .psych-members{grid-template-columns:repeat(2,1fr)}
    }
    @media (max-width:480px){
      .book-shelf{grid-template-columns:1fr 1fr;gap:22px 14px}
      .book-shelf .book-card:nth-child(even){transform:rotateY(4deg) translateY(8px)}
      .book-shelf .book-info p{font-size:12px}
    }
  
    .guest-letter-section{
      max-width:1240px;
      margin:0 auto;
      padding:110px 28px;
    }
    .guest-letter-wrap{
      display:grid;
      grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);
      gap:34px;
      align-items:stretch;
      margin-top:36px;
    }
    .guest-polaroid{
      background:#f3ebe6;
      padding:12px 12px 46px;
      color:#21171a;
      transform:rotate(-1.4deg);
      box-shadow:0 28px 70px rgba(0,0,0,.22);
      align-self:start;
    }
    .guest-polaroid img{
      width:100%;
      aspect-ratio:4/3;
      object-fit:cover;
      display:block;
      filter:saturate(.9) contrast(1.02);
    }
    .guest-polaroid .caption{
      margin-top:14px;
      font-family:Georgia,serif;
      font-size:18px;
      text-align:center;
    }
    .secret-letter{
      border:1px solid rgba(255,255,255,.17);
      background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
      padding:clamp(22px,4vw,42px);
      position:relative;
      overflow:hidden;
    }
    .secret-letter::before{
      content:"ЛИЧНОЕ";
      position:absolute;
      top:18px;
      right:18px;
      border:1px solid rgba(215,154,166,.7);
      color:#d79aa6;
      padding:8px 11px;
      font-size:10px;
      letter-spacing:.18em;
      transform:rotate(3deg);
    }
    .secret-letter h3{
      margin:0 0 16px;
      font-family:Georgia,serif;
      font-weight:400;
      font-size:clamp(34px,5vw,62px);
      line-height:1;
    }
    .letter-state{
      color:#caaab1;
      font-size:11px;
      letter-spacing:.16em;
      text-transform:uppercase;
      margin-bottom:22px;
    }
    .open-letter-btn{
      appearance:none;
      border:1px solid rgba(255,255,255,.35);
      background:transparent;
      color:var(--cream);
      padding:13px 18px;
      min-height:44px;
      cursor:pointer;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-size:11px;
    }
    .open-letter-btn:hover{}
    .letter-body{
      display:none;
      margin-top:28px;
      padding-top:26px;
      border-top:1px solid rgba(255,255,255,.15);
      font-family:Georgia,serif;
      font-size:clamp(19px,2.1vw,27px);
      line-height:1.52;
      color:#efe4e0;
    }
    .letter-body.open{display:block;animation:letterReveal .45s ease both}
    .letter-sign{
      margin-top:26px;
      color:#d7a4ad;
      font-style:italic;
    }
    @keyframes letterReveal{
      from{opacity:0;transform:translateY(8px)}
      to{opacity:1;transform:none}
    }
    @media (max-width:820px){
      .guest-letter-wrap{grid-template-columns:1fr}
      .guest-polaroid{transform:none;max-width:540px}
    }

  
    .friends-secret-section{
      max-width:1240px;
      margin:0 auto;
      padding:110px 28px;
    }
    .secret-intro{
      max-width:900px;
      margin-bottom:36px;
    }
    .friend-letters{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:18px;
    }
    .friend-letter-card{
      border:1px solid rgba(255,255,255,.16);
      background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02));
      overflow:hidden;
    }
    .friend-letter-head{
      display:grid;
      grid-template-columns:140px minmax(0,1fr);
      min-height:190px;
    }
    .friend-letter-photo{
      min-height:190px;
      background:#1d0b10;
      overflow:hidden;
    }
    .friend-letter-photo img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      filter:saturate(.9) contrast(1.03);
    }
    .friend-letter-meta{
      padding:20px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      min-width:0;
    }
    .friend-letter-meta .mini{
      font-size:10px;
      letter-spacing:.17em;
      text-transform:uppercase;
      color:#c49aa4;
    }
    .friend-letter-meta h3{
      margin:8px 0 4px;
      font-family:Georgia,serif;
      font-weight:400;
      font-size:clamp(30px,4vw,52px);
      line-height:1;
    }
    .friend-letter-status{
      color:#d8b7be;
      font-size:11px;
      letter-spacing:.12em;
      text-transform:uppercase;
    }
    .friend-letter-action{
      appearance:none;
      border:1px solid rgba(255,255,255,.3);
      background:transparent;
      color:var(--cream);
      min-height:44px;
      padding:11px 14px;
      cursor:pointer;
      font-size:11px;
      letter-spacing:.14em;
      text-transform:uppercase;
      width:max-content;
      max-width:100%;
    }
    .friend-letter-action:hover{background:rgba(255,255,255,.07)}
    .friend-letter-action[disabled]{
      cursor:not-allowed;
      opacity:.48;
    }
    .friend-letter-body{
      display:none;
      border-top:1px solid rgba(255,255,255,.13);
      padding:24px;
      font-family:Georgia,serif;
      font-size:clamp(18px,2vw,25px);
      line-height:1.5;
      color:#efe4e0;
    }
    .friend-letter-body.open{display:block;animation:letterReveal .4s ease both}
    .friend-letter-sign{
      margin-top:24px;
      color:#d7a4ad;
      font-style:italic;
    }
    .friend-letter-card.full{
      grid-column:1;
    }
    .friend-letter-card:nth-child(6){grid-column:2;grid-row:1}
    @media (max-width:820px){
      .friend-letters{grid-template-columns:1fr}
      .friend-letter-card.full{grid-column:auto}
      .friend-letter-card:nth-child(6){grid-column:auto;grid-row:auto}
      .friend-letter-head{grid-template-columns:110px minmax(0,1fr)}
    }
    @media (max-width:520px){
      .friend-letter-head{grid-template-columns:1fr}
      .friend-letter-photo{min-height:280px}
    }

  
    .wrapped-section,
    .future-section,
    .oracle-section{
      max-width:1240px;
      margin:0 auto;
      padding:110px 28px;
    }
    .wrapped-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:14px;
      margin-top:34px;
    }
    .wrapped-card{
      border:1px solid rgba(255,255,255,.15);
      background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018));
      padding:24px;
      min-height:180px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }
    .wrapped-card .value{
      font-family:Georgia,serif;
      font-size:clamp(38px,5vw,72px);
      line-height:.9;
      color:#f2dedf;
    }
    .wrapped-card .label{
      margin-top:24px;
      font-size:11px;
      letter-spacing:.15em;
      text-transform:uppercase;
      color:#c79ca5;
    }
    .future-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:14px;
      margin-top:32px;
    }
    .future-card{
      appearance:none;
      text-align:left;
      border:1px solid rgba(255,255,255,.16);
      background:rgba(255,255,255,.03);
      color:var(--cream);
      padding:24px;
      min-height:220px;
      cursor:pointer;
      position:relative;
      overflow:hidden;
    }
    .future-card:hover{background:rgba(255,255,255,.055)}
    .future-card .chapter{
      font-size:10px;
      letter-spacing:.17em;
      text-transform:uppercase;
      color:#c79ca5;
    }
    .future-card h3{
      font-family:Georgia,serif;
      font-weight:400;
      font-size:clamp(28px,3vw,42px);
      margin:12px 0;
    }
    .future-card .closed{
      font-size:12px;
      color:#bca7ac;
    }
    .future-card .reveal{
      display:none;
      margin-top:20px;
      font-family:Georgia,serif;
      font-size:19px;
      line-height:1.45;
      color:#eadedb;
    }
    .future-card.open .closed{display:none}
    .future-card.open .reveal{display:block;animation:letterReveal .35s ease both}
    .oracle-box{
      margin-top:34px;
      border:1px solid rgba(255,255,255,.16);
      background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
      padding:clamp(24px,5vw,56px);
      text-align:center;
    }
    .oracle-symbol{
      font-family:Georgia,serif;
      font-size:58px;
      color:#d6a6af;
      line-height:1;
      margin-bottom:16px;
    }
    .oracle-result{
      min-height:110px;
      display:grid;
      place-items:center;
      max-width:800px;
      margin:0 auto 24px;
      font-family:Georgia,serif;
      font-size:clamp(24px,3vw,38px);
      line-height:1.3;
    }
    .oracle-btn{
      appearance:none;
      border:1px solid rgba(255,255,255,.34);
      background:transparent;
      color:var(--cream);
      min-height:46px;
      padding:12px 18px;
      cursor:pointer;
      letter-spacing:.14em;
      text-transform:uppercase;
      font-size:11px;
    }
    .oracle-btn:hover{background:rgba(255,255,255,.07)}
    .english-easter{
      margin-top:30px;
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      align-items:center;
    }
    .english-easter button{
      appearance:none;
      border:1px solid rgba(255,255,255,.25);
      background:transparent;
      color:#d5b0b7;
      min-height:44px;
      padding:10px 14px;
      cursor:pointer;
      font-size:11px;
      letter-spacing:.12em;
      text-transform:uppercase;
    }
    .english-easter span{
      display:none;
      font-family:Georgia,serif;
      font-size:18px;
      color:#eadedb;
    }
    .english-easter span.show{display:inline}
    @media(max-width:820px){
      .wrapped-grid,.future-grid{grid-template-columns:1fr 1fr}
    }
    @media(max-width:560px){
      .wrapped-grid,.future-grid{grid-template-columns:1fr}
    }

  
    .poem-section{
      background:#f2e9e3;
      color:#21171a;
      padding:110px 28px;
    }
    .poem-shell{
      max-width:1240px;
      margin:0 auto;
      display:grid;
      grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
      border:1px solid #5d454b;
      background:#f7f0eb;
      overflow:hidden;
    }
    .poem-visual{
      min-height:100%;
      position:relative;
      background:#2a0d14;
      overflow:hidden;
    }
    .poem-visual img{
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center 18%;
      display:block;
      filter:saturate(.8) contrast(1.04);
    }
    .poem-visual::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg,rgba(32,7,13,.02),rgba(32,7,13,.38));
      pointer-events:none;
    }
    .poem-visual-label{
      position:absolute;
      left:24px;
      bottom:22px;
      z-index:2;
      color:#fff7f2;
      font-size:11px;
      letter-spacing:.18em;
      text-transform:uppercase;
    }
    .poem-paper{
      padding:clamp(30px,5vw,72px);
      position:relative;
    }
    .poem-paper::before{
      content:"ЛИЧНОЕ";
      position:absolute;
      top:26px;
      right:28px;
      color:#8d2638;
      border:1px solid #8d2638;
      padding:8px 12px;
      font-size:10px;
      letter-spacing:.18em;
      transform:rotate(3deg);
    }
    .poem-kicker{
      color:#8d2638;
      font-size:11px;
      letter-spacing:.2em;
      text-transform:uppercase;
      margin-bottom:14px;
    }
    .poem-title{
      margin:0 0 34px;
      font-family:Georgia,"Times New Roman",serif;
      font-weight:400;
      font-size:clamp(46px,6vw,86px);
      line-height:.92;
      letter-spacing:-.04em;
    }
    .poem-text{
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(19px,2vw,27px);
      line-height:1.62;
      max-width:760px;
    }
    .poem-stanza{
      margin:0 0 28px;
    }
    .poem-sign{
      margin-top:40px;
      padding-top:26px;
      border-top:1px solid #aa959a;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(20px,2.2vw,28px);
    }
    .poem-ps{
      margin-top:26px;
      padding:20px 22px;
      border-left:3px solid #8d2638;
      background:#eee2dc;
      font-size:15px;
      line-height:1.55;
    }
    @media(max-width:820px){
      .poem-shell{grid-template-columns:1fr}
      .poem-visual{min-height:520px}
    }
    @media(max-width:520px){
      .poem-section{padding:80px 18px}
      .poem-visual{min-height:420px}
      .poem-paper::before{position:static;display:inline-block;margin-bottom:22px}
    }

  
    /* v14: floral redesign for poem section */
    .poem-section {
      background:
        radial-gradient(circle at 10% 18%, rgba(160, 46, 73, 0.18), transparent 22%),
        radial-gradient(circle at 84% 26%, rgba(196, 119, 141, 0.18), transparent 20%),
        radial-gradient(circle at 70% 82%, rgba(141, 38, 56, 0.12), transparent 18%),
        linear-gradient(180deg, #f7efea 0%, #f2e4e0 100%);
      color:#21171a;
      padding:120px 28px;
      position:relative;
      overflow:hidden;
    }
    .poem-section::before {
      content:"";
      position:absolute;
      inset:0;
      background-image:none;
      background-size:320px 320px;
      opacity:.24;
      pointer-events:none;
    }
    .poem-shell {
      position:relative;
      z-index:1;
      max-width:1240px;
      margin:0 auto;
      display:grid;
      grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
      border:1px solid rgba(93,69,75,.75);
      box-shadow:0 18px 50px rgba(61,26,34,.08);
      background:rgba(250,245,242,.92);
      backdrop-filter: blur(2px);
      overflow:hidden;
    }
    .poem-visual {
      position:relative;
      min-height:100%;
      background:
        linear-gradient(180deg, rgba(28,6,12,.08), rgba(28,6,12,.35)),
        radial-gradient(circle at 50% 8%, rgba(255,255,255,.16), transparent 28%),
        #240b12;
    }
    .poem-visual img {
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center 18%;
      display:block;
      filter:saturate(.9) contrast(1.03);
    }
    .poem-visual::after {
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg, rgba(36,11,18,.0) 60%, rgba(36,11,18,.18) 100%);
      pointer-events:none;
    }
    .poem-visual-label {
      position:absolute;
      left:26px;
      bottom:24px;
      z-index:2;
      color:#fff7f2;
      font-size:11px;
      letter-spacing:.18em;
      text-transform:uppercase;
      padding:10px 14px;
      border:1px solid rgba(255,255,255,.35);
      background:rgba(23,5,10,.22);
      backdrop-filter: blur(3px);
    }
    .poem-paper {
      padding:clamp(34px,5vw,78px);
      position:relative;
      background:
        linear-gradient(180deg, rgba(255,248,243,.96), rgba(250,240,234,.96));
      overflow:hidden;
      isolation:isolate;
    }
    .poem-paper::before {
      content:"ЛИЧНОЕ";
      position:absolute;
      top:28px;
      right:30px;
      color:#8d2638;
      border:1px solid #8d2638;
      padding:8px 12px;
      font-size:10px;
      letter-spacing:.18em;
      transform:rotate(3deg);
      background:rgba(255,247,243,.9);
      z-index:3;
    }
    .poem-paper::after {
      content:"";
      position:absolute;
      inset:18px;
      border:1px solid rgba(141,38,56,.18);
      pointer-events:none;
      z-index:0;
    }
    .poem-kicker {
      color:#8d2638;
      font-size:11px;
      letter-spacing:.2em;
      text-transform:uppercase;
      margin-bottom:14px;
      position:relative;
      z-index:1;
    }
    .poem-title {
      margin:0 0 34px;
      font-family:Georgia,"Times New Roman",serif;
      font-weight:400;
      font-size:clamp(48px,6vw,88px);
      line-height:.92;
      letter-spacing:-.04em;
      color:#32181f;
      text-shadow:0 1px 0 rgba(255,255,255,.55);
      position:relative;
      z-index:1;
    }
    .poem-title::after {
      content:"";
      display:block;
      width:150px;
      height:2px;
      margin-top:18px;
      background:linear-gradient(90deg, #8d2638 0%, rgba(141,38,56,.18) 100%);
    }
    .poem-text {
      position:relative;
      z-index:1;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(19px,2vw,27px);
      line-height:1.66;
      max-width:760px;
      padding:34px 34px 22px;
      margin-right:18px;
      background:
        linear-gradient(180deg, rgba(255,252,250,.9), rgba(250,242,237,.82));
      border:1px solid rgba(141,38,56,.16);
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
    }
    .poem-text::before {
      content:"";
      position:absolute;
      left:-18px;
      top:-18px;
      width:170px;
      height:170px;
      background:none no-repeat left top / contain;
      opacity:.9;
      pointer-events:none;
    }
    .poem-text::after {
      content:"";
      position:absolute;
      right:-18px;
      bottom:-18px;
      width:170px;
      height:170px;
      background:none no-repeat right bottom / contain;
      opacity:.9;
      pointer-events:none;
    }
    .poem-stanza {
      margin:0 0 20px;
      padding:12px 18px 12px 20px;
      background:rgba(255,255,255,.36);
      border-left:2px solid rgba(141,38,56,.34);
      position:relative;
    }
    .poem-stanza:first-child::first-letter {
      font-size:2.35em;
      line-height:.8;
      float:left;
      padding-right:8px;
      color:#8d2638;
    }
    .poem-sign {
      position:relative;
      z-index:1;
      margin-top:34px;
      padding:22px 24px 0 0;
      border-top:1px solid rgba(141,38,56,.22);
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(22px,2.2vw,30px);
      color:#35191f;
    }
    .poem-ps {
      position:relative;
      z-index:1;
      margin-top:24px;
      padding:18px 20px;
      border-left:3px solid #8d2638;
      background:linear-gradient(90deg, rgba(141,38,56,.09), rgba(141,38,56,.03));
      font-size:15px;
      line-height:1.58;
    }
    @media(max-width:820px) {
      .poem-shell{grid-template-columns:1fr}
      .poem-visual{min-height:540px}
      .poem-text{margin-right:0;padding:28px 24px 18px}
      .poem-text::before,.poem-text::after{width:120px;height:120px}
    }
    @media(max-width:520px) {
      .poem-section{padding:84px 16px}
      .poem-visual{min-height:420px}
      .poem-paper::before{position:static;display:inline-block;margin-bottom:22px}
      .poem-title{font-size:46px}
      .poem-text{padding:22px 16px 14px}
      .poem-stanza{padding:10px 12px 10px 14px}
    }

  
    .poem-art-section{
      padding:110px 28px;
      background:
        radial-gradient(circle at 12% 18%, rgba(143,38,56,.10), transparent 24%),
        radial-gradient(circle at 88% 78%, rgba(143,38,56,.08), transparent 22%),
        linear-gradient(180deg,#f7efea 0%,#f1e5df 100%);
    }
    .poem-art-wrap{
      max-width:1320px;
      margin:0 auto;
    }
    .poem-art-kicker{
      color:#8d2638;
      font-size:11px;
      letter-spacing:.2em;
      text-transform:uppercase;
      margin-bottom:18px;
    }
    .poem-art-frame{
      border:1px solid rgba(93,69,75,.38);
      background:#f7eee8;
      padding:10px;
      box-shadow:0 22px 70px rgba(61,26,34,.10);
    }
    .poem-art-frame img{
      display:block;
      width:100%;
      height:auto;
    }
    @media(max-width:620px){
      .poem-art-section{padding:78px 14px}
      .poem-art-frame{padding:5px}
    }

  
    .psycho-art-section{
      padding:110px 28px;
      background:
        radial-gradient(circle at 12% 16%, rgba(143,38,56,.10), transparent 22%),
        radial-gradient(circle at 87% 78%, rgba(143,38,56,.08), transparent 22%),
        linear-gradient(180deg,#f7efea 0%,#f1e4df 100%);
    }
    .psycho-art-wrap{
      max-width:1320px;
      margin:0 auto;
    }
    .psycho-art-kicker{
      color:#8d2638;
      font-size:11px;
      letter-spacing:.20em;
      text-transform:uppercase;
      margin-bottom:18px;
    }
    .psycho-art-frame{
      border:1px solid rgba(93,69,75,.38);
      background:#f7eee8;
      padding:10px;
      box-shadow:0 22px 70px rgba(61,26,34,.10);
    }
    .psycho-art-frame img{
      display:block;
      width:100%;
      height:auto;
    }
    @media(max-width:620px){
      .psycho-art-section{padding:78px 14px}
      .psycho-art-frame{padding:5px}
    }

  
    /* v17: high-quality artwork cover */
    .cover-art-section{
      background:
        radial-gradient(circle at 15% 20%, rgba(143,38,56,.08), transparent 24%),
        linear-gradient(180deg,#f7efea 0%,#f1e5df 100%);
      padding:34px 24px 70px;
      text-align:center;
    }
    .cover-art-wrap{
      width:min(100%,1536px);
      margin:0 auto;
    }
    .cover-art-frame{
      border:1px solid rgba(93,69,75,.34);
      background:#f7eee8;
      padding:8px;
      box-shadow:0 24px 70px rgba(61,26,34,.10);
    }
    .cover-art-frame img{
      display:block;
      width:100%;
      height:auto;
      image-rendering:auto;
    }
    .cover-open{
      margin-top:28px;
      border:1px solid #5a1d29;
      color:#5a1d29;
      background:rgba(255,250,246,.55);
      padding:14px 22px;
      min-height:46px;
      cursor:pointer;
      text-transform:uppercase;
      letter-spacing:.18em;
      font-size:11px;
      transition:.2s ease;
    }
    .cover-open:hover{
      background:#5a1d29;
      color:#fff8f4;
    }
    @media(max-width:620px){
      .cover-art-section{padding:18px 10px 52px}
      .cover-art-frame{padding:4px}
      .cover-open{width:100%}
    }

  
    /* ===== v18 HYBRID REDESIGN: sharp HTML + original photos + raster decoration only ===== */
    .hybrid-paper{
      --paper:#f4e9e1;
      --paper-2:#fbf5f1;
      --ink:#241719;
      --wine:#7d1f31;
      --wine-dark:#4a101c;
      --gold:#aa876c;
    }

    .hybrid-cover{
      padding:28px;
      background:
        radial-gradient(circle at 12% 12%, rgba(125,31,49,.08), transparent 25%),
        linear-gradient(180deg,#f7efe9 0%,#efe2da 100%);
    }
    .hybrid-cover-inner{
      max-width:1500px;
      min-height:920px;
      margin:0 auto;
      display:grid;
      grid-template-columns:1fr 1fr;
      background:#f8f1eb;
      border:1px solid rgba(93,69,75,.44);
      position:relative;
      overflow:hidden;
      box-shadow:0 28px 80px rgba(56,20,29,.09);
    }
    .hybrid-rose{
      position:absolute;
      z-index:5;
      width:clamp(150px,18vw,285px);
      height:auto;
      pointer-events:none;
      user-select:none;
    }
    .hybrid-rose.tl{left:-8px;top:-10px}
    .hybrid-rose.tr{right:-8px;top:-10px;transform:scaleX(-1)}
    .hybrid-rose.bl{left:-8px;bottom:-10px;transform:scaleY(-1)}
    .hybrid-rose.br{right:-8px;bottom:-10px;transform:scale(-1)}
    .hybrid-cover-copy{
      padding:clamp(56px,7vw,108px);
      display:flex;
      flex-direction:column;
      justify-content:center;
      position:relative;
      z-index:2;
      border-right:1px solid rgba(170,135,108,.38);
      background:
        linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.14));
    }
    .hybrid-cover-copy::after{
      content:"";
      position:absolute;
      inset:24px;
      border:1px solid rgba(170,135,108,.38);
      pointer-events:none;
    }
    .hybrid-meta{
      position:relative;
      z-index:2;
      color:#8b4a56;
      font-size:12px;
      letter-spacing:.24em;
      text-transform:uppercase;
      margin-bottom:42px;
    }
    .hybrid-cover-title{
      position:relative;
      z-index:2;
      margin:0;
      color:#241719;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(72px,8.4vw,142px);
      font-weight:400;
      line-height:.76;
      letter-spacing:-.065em;
    }
    .hybrid-cover-title span{
      display:block;
      color:#821f32;
      margin-left:.03em;
    }
    .hybrid-cover-rule{
      position:relative;
      z-index:2;
      width:180px;
      height:1px;
      margin:42px 0 28px;
      background:linear-gradient(90deg,#8b2637,rgba(139,38,55,.1));
    }
    .hybrid-cover-lead{
      position:relative;
      z-index:2;
      max-width:630px;
      color:#312225;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(21px,2vw,31px);
      line-height:1.42;
    }
    .hybrid-cover-open{
      position:relative;
      z-index:2;
      width:max-content;
      margin-top:36px;
      min-height:46px;
      padding:13px 21px;
      border:1px solid #6f2232;
      color:#6f2232;
      background:rgba(255,255,255,.26);
      cursor:pointer;
      text-transform:uppercase;
      letter-spacing:.17em;
      font-size:11px;
    }
    .hybrid-cover-open:hover{background:#6f2232;color:#fff8f4}
    .hybrid-cover-photo{
      min-width:0;
      position:relative;
      background:#fff;
      overflow:hidden;
    }
    .hybrid-cover-photo img{
      width:100%;
      height:100%;
      min-height:920px;
      object-fit:cover;
      object-position:center 10%;
      display:block;
    }
    .hybrid-cover-photo::after{
      content:"";
      position:absolute;
      inset:20px;
      border:1px solid rgba(170,135,108,.42);
      pointer-events:none;
    }

    .hybrid-psycho,
    .hybrid-poem{
      padding:112px 28px;
      background:
        radial-gradient(circle at 10% 12%, rgba(125,31,49,.07), transparent 25%),
        radial-gradient(circle at 92% 82%, rgba(125,31,49,.06), transparent 22%),
        linear-gradient(180deg,#f4e9e1 0%,#efe0d7 100%);
      color:#241719;
    }
    .hybrid-panel{
      max-width:1320px;
      margin:0 auto;
      position:relative;
      background:
        linear-gradient(rgba(253,248,244,.94),rgba(249,239,233,.94));
      border:1px solid rgba(91,60,67,.48);
      box-shadow:0 24px 70px rgba(61,26,34,.08);
      overflow:hidden;
      padding:clamp(44px,6vw,82px);
    }
    .hybrid-panel::before{
      content:"";
      position:absolute;
      inset:22px;
      border:1px solid rgba(170,135,108,.44);
      pointer-events:none;
    }
    .hybrid-panel > *:not(.hybrid-rose){position:relative;z-index:2}
    .hybrid-chapter{
      color:#8b2637;
      font-size:11px;
      letter-spacing:.2em;
      text-transform:uppercase;
      margin-bottom:18px;
    }
    .hybrid-display{
      margin:0;
      font-family:Georgia,"Times New Roman",serif;
      color:#2b1a1e;
      font-weight:400;
      font-size:clamp(54px,7vw,102px);
      line-height:.9;
      letter-spacing:-.045em;
    }
    .hybrid-stamp{
      position:absolute !important;
      right:clamp(34px,5vw,78px);
      top:clamp(34px,5vw,62px);
      color:#8b2637;
      border:2px solid #8b2637;
      padding:10px 16px;
      transform:rotate(3deg);
      font-size:11px;
      letter-spacing:.17em;
      text-transform:uppercase;
      background:rgba(251,244,239,.84);
      z-index:4 !important;
    }
    .hybrid-psycho-intro{
      max-width:850px;
      margin:28px 0 22px;
      font-family:Georgia,"Times New Roman",serif;
      font-size:clamp(21px,2.4vw,30px);
      line-height:1.4;
    }
    .hybrid-facts{
      display:grid;
      gap:8px;
      margin:26px 0 40px;
      font-size:17px;
    }
    .hybrid-facts b{color:#3c2027}
    .hybrid-members{
      display:grid;
      grid-template-columns:repeat(5,minmax(0,1fr));
      gap:14px;
      margin-top:32px;
    }
    .hybrid-member{
      background:#f9efe9;
      border:1px solid rgba(107,77,84,.28);
      padding:9px 9px 18px;
      box-shadow:0 14px 30px rgba(53,25,31,.06);
    }
    .hybrid-member-photo{
      aspect-ratio:3/4;
      overflow:hidden;
      background:#ddd1ca;
      border:1px solid rgba(121,87,94,.23);
    }
    .hybrid-member-photo img{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
    }
    .hybrid-member-num{
      margin-top:12px;
      color:#9a5764;
      text-align:center;
      font-size:9px;
      letter-spacing:.14em;
      text-transform:uppercase;
    }
    .hybrid-member-name{
      margin-top:8px;
      text-align:center;
      font-family:Georgia,"Times New Roman",serif;
      font-size:22px;
      text-transform:uppercase;
    }
    .hybrid-member-mark{
      width:44px;height:1px;background:#a7747f;margin:12px auto 0;
    }

    .hybrid-poem-layout{
      display:grid;
      grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
      gap:0;
      align-items:stretch;
    }
    .hybrid-poem-photo{
      margin:-1px 0 -1px -1px;
      position:relative;
      min-height:970px;
      background:#fff;
      overflow:hidden;
      border-right:1px solid rgba(170,135,108,.36);
    }
    .hybrid-poem-photo img{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      object-position:center 12%;
    }
    .hybrid-poem-copy{
      padding:clamp(38px,5vw,72px);
      background:
        linear-gradient(180deg,rgba(255,252,249,.86),rgba(249,239,233,.90));
    }
    .hybrid-poem-title{
      margin:0 0 32px;
      font-family:"Segoe Script","Monotype Corsiva",Georgia,serif;
      font-weight:400;
      color:#7a2032;
      font-size:clamp(43px,5vw,72px);
      line-height:1.06;
    }
    .hybrid-poem-rule{
      display:flex;
      align-items:center;
      gap:14px;
      margin:0 0 30px;
      color:#9d5361;
    }
    .hybrid-poem-rule::before,
    .hybrid-poem-rule::after{
      content:"";
      height:1px;
      flex:1;
      background:rgba(141,38,56,.28);
    }
    .hybrid-poem-text{
      font-family:Georgia,"Times New Roman",serif;
      color:#2a1b1e;
      font-size:clamp(19px,1.7vw,25px);
      line-height:1.58;
    }
    .hybrid-poem-text p{margin:0 0 24px}
    .hybrid-poem-sign{
      margin-top:30px;
      font-family:"Segoe Script","Monotype Corsiva",Georgia,serif;
      color:#7a2032;
      font-size:clamp(27px,3vw,42px);
      line-height:1.35;
    }
    .hybrid-poem-ps{
      margin-top:28px;
      padding:18px 20px;
      border:1px solid rgba(125,31,49,.26);
      background:rgba(125,31,49,.055);
      font-family:Georgia,"Times New Roman",serif;
      font-size:15px;
      line-height:1.6;
    }

    @media(max-width:980px){
      .hybrid-cover-inner{grid-template-columns:1fr;min-height:auto}
      .hybrid-cover-copy{border-right:0;border-bottom:1px solid rgba(170,135,108,.38)}
      .hybrid-cover-photo img{min-height:680px}
      .hybrid-members{grid-template-columns:repeat(3,1fr)}
      .hybrid-poem-layout{grid-template-columns:1fr}
      .hybrid-poem-photo{min-height:720px;border-right:0;border-bottom:1px solid rgba(170,135,108,.36)}
    }
    @media(max-width:640px){
      .hybrid-cover,.hybrid-psycho,.hybrid-poem{padding:16px}
      .hybrid-cover-copy{padding:68px 30px 52px}
      .hybrid-cover-photo img{min-height:520px}
      .hybrid-cover-title{font-size:68px}
      .hybrid-panel{padding:72px 24px 38px}
      .hybrid-stamp{position:relative !important;right:auto;top:auto;display:inline-block;margin-bottom:24px}
      .hybrid-members{grid-template-columns:repeat(2,1fr)}
      .hybrid-poem-copy{padding:34px 24px 42px}
      .hybrid-poem-photo{min-height:560px}
      .hybrid-rose{width:150px;opacity:.8}
    }

  
    /* ===== v19 CLEAN FLORAL HYBRID ===== */
    .floral-corner {
      position:absolute;
      width:clamp(145px,14vw,235px);
      aspect-ratio:330/380;
      background:none center/contain no-repeat;
      z-index:8;
      pointer-events:none;
      user-select:none;
      filter:drop-shadow(0 6px 12px rgba(72,28,38,.08));
    }
    .fc-tl { left:-18px; top:-22px; }
    .fc-tr { right:-18px; top:-22px; transform:scaleX(-1); }
    .fc-bl { left:-18px; bottom:-22px; transform:scaleY(-1); }
    .fc-br { right:-18px; bottom:-22px; transform:rotate(180deg); }

    .hybrid-cover {
      padding:36px 28px 72px;
      background:
        radial-gradient(circle at 15% 12%, rgba(125,31,49,.055), transparent 28%),
        linear-gradient(180deg,#f7f0eb,#eee2db);
    }
    .hybrid-cover-inner {
      min-height:820px;
      background:#faf5f1;
      border:1px solid rgba(117,82,89,.34);
      box-shadow:0 22px 60px rgba(55,24,31,.075);
    }
    .hybrid-cover-copy {
      padding:clamp(76px,7vw,118px);
      background:
        radial-gradient(circle at 18% 18%, rgba(139,38,55,.035), transparent 35%),
        linear-gradient(180deg,rgba(255,255,255,.46),rgba(255,255,255,.14));
    }
    .hybrid-cover-copy::after {
      inset:28px;
      border-color:rgba(170,135,108,.27);
    }
    .hybrid-cover-title {
      font-size:clamp(78px,8vw,132px);
      line-height:.78;
    }
    .hybrid-cover-lead {
      max-width:580px;
      font-size:clamp(20px,1.8vw,28px);
    }
    .hybrid-cover-photo img {
      min-height:820px;
      object-position:center 9%;
    }
    .hybrid-cover-photo::after {
      inset:28px;
      border-color:rgba(170,135,108,.25);
    }

    .hybrid-psycho,
    .hybrid-poem {
      background:
        radial-gradient(circle at 14% 12%, rgba(125,31,49,.045), transparent 30%),
        linear-gradient(180deg,#f5ece6,#eee1da);
    }
    .hybrid-panel {
      border-color:rgba(102,72,79,.34);
      box-shadow:0 20px 56px rgba(54,25,31,.065);
      background:
        radial-gradient(circle at 84% 10%, rgba(125,31,49,.026), transparent 30%),
        linear-gradient(180deg,rgba(255,251,247,.96),rgba(249,240,234,.97));
    }
    .hybrid-panel::before {
      inset:28px;
      border-color:rgba(170,135,108,.30);
    }
    .hybrid-stamp {
      border-width:1px;
      background:rgba(253,247,242,.93);
    }
    .hybrid-members {
      gap:18px;
      margin-top:42px;
    }
    .hybrid-member {
      padding:11px 11px 20px;
      background:rgba(251,244,239,.92);
      border-color:rgba(107,77,84,.20);
      box-shadow:0 10px 24px rgba(53,25,31,.045);
    }
    .hybrid-member-photo {
      border-color:rgba(121,87,94,.16);
    }
    .hybrid-member-name {
      font-size:21px;
    }

    .hybrid-poem-photo {
      min-height:900px;
    }
    .hybrid-poem-copy {
      padding:clamp(50px,5.5vw,82px);
    }
    .hybrid-poem-title {
      font-family:Georgia,"Times New Roman",serif;
      font-style:italic;
      letter-spacing:-.025em;
      color:#7b2031;
    }
    .hybrid-poem-text {
      font-size:clamp(18px,1.55vw,23px);
      line-height:1.64;
    }
    .hybrid-poem-text p {
      padding-left:20px;
      border-left:1px solid rgba(125,31,49,.18);
    }

    @media(max-width:980px) {
      .floral-corner { width:170px; }
      .hybrid-cover-photo img { min-height:660px; }
      .hybrid-poem-photo { min-height:680px; }
    }
    @media(max-width:640px) {
      .floral-corner { width:130px; opacity:.9; }
      .fc-tl,.fc-tr { top:-12px; }
      .fc-bl,.fc-br { bottom:-12px; }
      .hybrid-cover-copy { padding:74px 32px 54px; }
      .hybrid-cover-photo img { min-height:500px; }
      .hybrid-panel::before { inset:14px; }
    }

  
    /* ===== v20 CLEAN NO ROSES ===== */
    .floral-corner,
    .hybrid-rose{
      display:none !important;
      background:none !important;
    }

    .hybrid-cover{
      padding:36px 28px 72px;
      background:linear-gradient(180deg,#f7f0eb 0%,#eee2db 100%);
    }

    .hybrid-cover-inner{
      background:#faf5f1;
      border:1px solid rgba(117,82,89,.34);
      box-shadow:0 22px 60px rgba(55,24,31,.07);
    }

    .hybrid-cover-copy{
      background:linear-gradient(180deg,rgba(255,255,255,.52),rgba(255,255,255,.18));
    }

    .hybrid-cover-copy::after,
    .hybrid-cover-photo::after{
      border-color:rgba(170,135,108,.26);
    }

    .hybrid-psycho,
    .hybrid-poem{
      background:linear-gradient(180deg,#f5ece6 0%,#eee1da 100%);
    }

    .hybrid-panel{
      background:linear-gradient(180deg,rgba(255,251,247,.97),rgba(249,240,234,.98));
      border-color:rgba(102,72,79,.34);
      box-shadow:0 20px 56px rgba(54,25,31,.06);
    }

    .hybrid-panel::before{
      border-color:rgba(170,135,108,.28);
    }

    .hybrid-member{
      background:rgba(251,244,239,.95);
      box-shadow:0 10px 24px rgba(53,25,31,.04);
    }

    .hybrid-poem-copy{
      background:linear-gradient(180deg,rgba(255,252,249,.92),rgba(249,239,233,.94));
    }

  


/* ===== v24 VIRGO ARTICLE ===== */
.virgo-section{
  padding:110px 28px;
  background:
    radial-gradient(circle at 82% 14%, rgba(125,31,49,.055), transparent 28%),
    linear-gradient(180deg,#f4e9e2 0%,#eee1da 100%);
  color:#26191c;
}
@media (min-width:821px){
  .prologue-split{align-items:start;min-height:0}
  .prologue-split > .photo-card{height:auto;max-width:430px;margin-left:auto}
  .prologue-split > .photo-card img{height:auto;max-height:520px;object-fit:cover}
  .prologue-split > div:first-child{padding-top:4px}
  section.content:has(.book-shelf){padding-top:56px}
  section.content:has(.book-shelf) .book-shelf{margin-top:18px}
}
@media (min-width:821px){
  section.content:has(.book-shelf){margin-top:-150px;padding-top:0}
  section.content:has(.book-shelf) .book-shelf{margin-top:38px}
}

@media(max-width:760px){
  .book-fx-race .race-car{top:auto;bottom:10vh;left:-24vw;width:84vw}
  .book-fx-race .race-track{top:auto;bottom:9vh;height:3px}
  .book-fx-race .race-flag{top:auto;bottom:14vh;left:82vw;font-size:clamp(34px,10vw,58px)}
}
.virgo-shell{
  max-width:1240px;
  margin:0 auto;
  border:1px solid rgba(97,68,75,.34);
  background:linear-gradient(180deg,rgba(255,251,247,.97),rgba(249,240,234,.98));
  box-shadow:0 20px 56px rgba(54,25,31,.055);
  padding:clamp(34px,5vw,72px);
  position:relative;
}
.virgo-shell::before{
  content:"";
  position:absolute;
  inset:22px;
  border:1px solid rgba(170,135,108,.25);
  pointer-events:none;
}
.virgo-head,
.virgo-groups{
  position:relative;
  z-index:1;
}
.virgo-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:30px;
  align-items:start;
  margin-bottom:44px;
}
.virgo-kicker{
  color:#8b2637;
  font-size:11px;
  letter-spacing:.20em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.virgo-title{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(52px,7vw,94px);
  line-height:.9;
  letter-spacing:-.04em;
}
.virgo-intro{
  max-width:850px;
  margin:24px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(20px,2vw,28px);
  line-height:1.48;
}
.virgo-sign{
  min-width:150px;
  text-align:center;
  padding:20px 22px;
  border:1px solid rgba(125,31,49,.28);
  background:rgba(125,31,49,.035);
}
.virgo-symbol{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  color:#7d1f31;
  font-size:64px;
  line-height:1;
}
.virgo-date{
  display:block;
  margin-top:12px;
  color:#8b5661;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.virgo-group + .virgo-group{
  margin-top:46px;
  padding-top:42px;
  border-top:1px solid rgba(125,31,49,.16);
}
.virgo-group-title{
  margin:0 0 18px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(28px,3vw,42px);
  font-weight:400;
  color:#5e1c2a;
}
.virgo-forecast-period{
  margin:-6px 0 22px;
  color:#9a6972;
  font-size:11px;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.virgo-accordion{
  display:grid;
  gap:10px;
}
.virgo-item{
  border:1px solid rgba(97,68,75,.20);
  background:rgba(255,255,255,.28);
}
.virgo-item summary{
  list-style:none;
  cursor:pointer;
  min-height:64px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(19px,1.7vw,24px);
  color:#2d1c20;
  transition:background .2s ease,color .2s ease;
}
.virgo-item summary::-webkit-details-marker{display:none}
.virgo-item summary::before{
  content:"✦";
  color:#8b2637;
  font-size:14px;
}
.virgo-item summary::after{
  content:"+";
  margin-left:auto;
  color:#8b2637;
  font-family:Arial,sans-serif;
  font-size:24px;
  font-weight:300;
}
.virgo-item[open] summary{
  background:rgba(125,31,49,.045);
  color:#701e2e;
}
.virgo-item[open] summary::after{content:"−"}
.virgo-copy{
  padding:4px 24px 24px 48px;
  max-width:980px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:18px;
  line-height:1.62;
  color:#3a292d;
}
.virgo-copy p{
  margin:0 0 16px;
}
.virgo-copy p:last-child{margin-bottom:0}
.virgo-lines{
  margin:14px 0 16px;
  line-height:1.8;
}
.virgo-quote{
  margin:14px 0;
  padding:12px 18px;
  border-left:2px solid rgba(125,31,49,.45);
  background:rgba(125,31,49,.035);
  font-style:italic;
}
.virgo-emphasis{
  color:#742033;
  font-weight:700;
}
@media(max-width:760px){
  .virgo-section{padding:78px 16px}
  .virgo-shell{padding:48px 22px 28px}
  .virgo-shell::before{inset:12px}
  .virgo-head{grid-template-columns:1fr}
  .virgo-sign{width:max-content;min-width:130px}
  .virgo-copy{padding:4px 18px 20px;font-size:17px}
  .virgo-item summary{padding:15px 16px}
}

@media (min-width:821px){
  section.content:has(.book-shelf){margin-top:-150px;padding-top:0}
  section.content:has(.book-shelf) .book-shelf{margin-top:38px}
}

/* ===== v28 SOFT CORNERS ===== */
:root{--soft-radius:8px}
.photo-card,
.photo-card img,
.tile,
.tile img,
.book-cover,
.book-cover img,
.book-card,
.wrapped-card,
.future-card,
.friend-letter-card,
.hybrid-panel,
.virgo-shell,
.virgo-item,
.oracle-box{border-radius:var(--soft-radius)}
.photo-card,
.photo-card img,
.tile,
.tile img,
.book-cover img{overflow:hidden}
.book-cover{overflow:visible}
.book-cover::before,
.book-cover::after{border-radius:0 0 5px 5px}

/* Портреты и фотографии показываем полностью, без случайного обрезания. */
.photo-card img,
.tile img,
.psych-photo img,
.friend-letter-photo img,
.hybrid-member-photo img,
.hybrid-poem-photo img,
.poem-visual img{
  object-fit:cover;
  object-position:center top;
  background:transparent;
}
.prologue-split > .photo-card img{object-fit:contain;background:transparent}
.photo-card img{height:auto;max-height:none}
.psych-photo img{object-position:center center}
.friend-letter-photo img{object-position:center 18%}
.hybrid-member-photo img{object-position:center top}

/* Все рамки проекта используют единый мягкий радиус. */
*:where([class]){border-radius:var(--soft-radius)}
.dot,.oracle-symbol,.virgo-symbol{border-radius:50%}
.hybrid-cover-inner,.hybrid-cover-copy,.hybrid-cover-photo{border-radius:var(--soft-radius)}
.hybrid-cover{background:linear-gradient(180deg,#f4e2e5 0%,#ecd0d7 100%)}
.hybrid-cover-inner{background:#f7e7e9}
.hybrid-cover-copy{background:linear-gradient(180deg,#f8e8ea 0%,#f0d9de 100%);color:#241719}
.psycho,.dossier,.virgo-section,.virgo-shell,.hybrid-psycho,.hybrid-poem,
.wrapped-section,.future-section,.hybrid-panel,.hybrid-poem-copy,
.poem-section,.poem-visual{background:linear-gradient(180deg,#f8e8ea 0%,#efd4da 100%)}
.dossier,.virgo-shell,.hybrid-panel{color:#2d1b20}
.dossier p,.virgo-intro,.virgo-copy,.hybrid-poem-text{color:#3c252c}
.hybrid-member,.virgo-item,.future-card{background:rgba(255,242,244,.58)}
.hybrid-cover-photo{background:linear-gradient(180deg,#f8e8ea 0%,#f0d9de 100%);border:0;border-left:0}
.hybrid-cover-copy{border-right:0;border-left:0}
.hybrid-cover-inner{border-left:0;border-right:0}
.hybrid-cover-inner{border-bottom:0}
.hybrid-cover-copy{border-bottom:0}
.hybrid-cover{padding-bottom:0}
.hybrid-cover-inner{box-shadow:none}
.hybrid-cover-inner{border-top:0}
.hybrid-cover-inner,
.hybrid-cover-copy,
.hybrid-cover-photo{border-radius:0}
.hybrid-cover{border-radius:0}
.hybrid-poem-photo{background:transparent;border:0;border-right:0;border-bottom:0}
@media(min-width:981px){
  .hybrid-poem-layout{grid-template-columns:minmax(460px,1.08fr) minmax(0,.92fr)}
}
.hybrid-poem-photo img{background:transparent;display:block;width:100%;height:100%;min-height:100%;max-height:none;object-fit:contain;object-position:center top}
.future-section .future-card:hover,
.future-section .future-card.open:hover{
  background:rgba(255,242,244,.92);
  color:#351d25;
  border-color:rgba(92,35,49,.42);
}
.future-section .future-card.open:hover h3,
.future-section .future-card.open:hover .reveal,
.future-section .future-card.open:hover .chapter{color:#351d25}
.future-section .future-card.open:hover .reveal{opacity:1}
.english-easter #englishVersionBtn{
  position:relative;
  overflow:hidden;
  border-color:rgba(214,166,175,.55);
  color:#f1dce0;
  transition:color .3s ease,background .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
.english-easter #englishVersionBtn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.22) 48%,transparent 76%);
  transform:translateX(-120%);
  transition:transform .65s ease;
}
.english-easter #englishVersionBtn:hover,
.english-easter #englishVersionBtn:focus-visible{
  color:#fff;
  background:rgba(139,38,55,.45);
  border-color:#d6a6af;
  transform:translateY(-3px);
  box-shadow:0 10px 26px rgba(0,0,0,.2),0 0 0 3px rgba(214,166,175,.1);
}
.english-easter #englishVersionBtn:hover::before,
.english-easter #englishVersionBtn:focus-visible::before{transform:translateX(120%)}
.english-easter #englishVersionBtn:active{transform:translateY(-1px) scale(.98)}
.english-easter #englishVersionMsg{
  display:inline-block;
  width:620px;
  max-width:0;
  overflow:hidden;
  opacity:0;
  transform:translateX(-18px);
  clip-path:inset(0 100% 0 0 round 4px);
  filter:blur(5px);
  white-space:nowrap;
  transition:width .75s cubic-bezier(.22,1,.36,1),max-width .75s cubic-bezier(.22,1,.36,1),opacity .45s ease .12s,transform .75s cubic-bezier(.22,1,.36,1),clip-path .75s cubic-bezier(.22,1,.36,1),filter .6s ease .12s;
}
.english-easter #englishVersionMsg.show{
  display:inline-block !important;
  max-width:620px;
  opacity:1;
  transform:translateX(0);
  clip-path:inset(0 0 0 0 round 4px);
  filter:blur(0);
  animation:englishMessageReveal .82s cubic-bezier(.22,1,.36,1) both;
}
@keyframes englishMessageReveal{
  0%{max-width:0;opacity:0;transform:translateX(-24px);clip-path:inset(0 100% 0 0 round 4px);filter:blur(6px)}
  55%{opacity:1}
  100%{max-width:620px;opacity:1;transform:translateX(0);clip-path:inset(0 0 0 0 round 4px);filter:blur(0)}
}
@media(max-width:560px){
  .english-easter #englishVersionMsg{width:100%;}
  .english-easter #englishVersionMsg.show{white-space:normal;max-width:100%;}
}
@media(prefers-reduced-motion:reduce){
  .english-easter #englishVersionBtn,.english-easter #englishVersionBtn::before,.english-easter #englishVersionMsg{transition:none;animation:none}
}
.psycho button,.dossier button,.virgo-section button,.virgo-shell button,
.hybrid-psycho button,.hybrid-poem button,.wrapped-section button,.future-section button{
  color:#4b1724;
  border-color:rgba(75,23,36,.42);
  background:rgba(255,247,248,.42);
}
.psycho button:hover,.dossier button:hover,.virgo-section button:hover,
.virgo-shell button:hover,.hybrid-psycho button:hover,.hybrid-poem button:hover,
.wrapped-section button:hover,.future-section button:hover{
  color:#fff8f6;
  background:#6d2639;
  border-color:#6d2639;
}
.psycho .book-card,.dossier,.virgo-shell,.virgo-item,.hybrid-panel,
.future-card,.wrapped-card,.friend-letter-card{border-color:rgba(92,35,49,.3)}
.wrapped-section,.future-section,.oracle-section{color:#351d25}
.wrapped-section h2,.future-section h2,.oracle-section h2{color:#3f1b28}
.wrapped-section p.big,.future-section p.big{color:#552c38}
.wrapped-card{background:rgba(255,242,244,.48)}
.wrapped-card .value{color:#6d263d}
.wrapped-card .label,.future-card .chapter{color:#8d5362}
.future-card{color:#3f2029;background:rgba(255,242,244,.48)}
.future-card h3{color:#4d1f2c}
.future-card .closed{color:#79505b}
.future-card .reveal{color:#4b2a33}
.oracle-box{background:rgba(255,242,244,.48);color:#3f2029}
.oracle-section .kicker{color:#d6a6af}
.oracle-section h2{color:#f8e8e5}
.oracle-section p.big{color:#f4e8e5}
.oracle-section .oracle-box{background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.035));border-color:rgba(255,255,255,.20);color:#f8e8e5}
.oracle-section .oracle-result{color:#f8e8e5}
.oracle-section .oracle-symbol{color:#e3aeb8}
.oracle-section .oracle-btn{color:#f8e8e5;border-color:rgba(255,255,255,.38)}
.oracle-section .oracle-btn:hover{background:rgba(255,255,255,.10)}
.oracle-box{position:relative;overflow:hidden;isolation:isolate}
.oracle-magic-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.oracle-box>*:not(.oracle-magic-canvas){position:relative;z-index:2}
.oracle-result{transition:opacity .28s ease,transform .28s ease,filter .28s ease}
.oracle-result--casting{opacity:0;transform:translateY(9px) scale(.97);filter:blur(7px)}
.oracle-result--revealed{animation:oracleTextReveal .9s cubic-bezier(.22,1,.36,1) both}
.oracle-btn[aria-busy="true"]{pointer-events:none;cursor:wait;opacity:.66}
@keyframes oracleTextReveal{0%{opacity:0;transform:translateY(15px) scale(.96);filter:blur(9px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
/* Изображения не получают отдельную заливку: фон задаёт сама секция. */
img,
.cover-photo,
.photo-card,
.book-cover,
.psych-photo,
.friend-letter-photo,
.tile{background-color:transparent}
.virgo-item[open] .virgo-copy{width:100%;max-width:none;margin:0;box-sizing:border-box;padding-left:24px;padding-right:24px;border-radius:0 0 var(--soft-radius) var(--soft-radius);background:rgba(232,190,201,.34)}
.virgo-item[open] .virgo-copy p{color:#3b2029}
button,
[role="button"]{
  border-radius:var(--soft-radius);
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.book-card--one,.book-card--two,.book-card--three,.book-card--four,.book-card--five{cursor:pointer}
.book-fx{position:fixed;z-index:100;pointer-events:none;user-select:none;font-size:clamp(22px,3vw,42px);animation:book-fx-float 2.3s cubic-bezier(.2,.75,.3,1) var(--delay) both}
body{-webkit-user-select:none;user-select:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text}
img,picture,svg,video,canvas{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none}
@media(max-width:760px){
  .cover-photo img,
  .photo-card img,
  .psych-photo img,
  .friend-letter-photo img,
  .hybrid-member-photo img,
  .hybrid-cover-photo img,
  .hybrid-poem-photo img{
    object-fit:contain;
    object-position:center top;
  }
  .cover-photo img{height:auto;min-height:100%;}
  .photo-card,.psych-photo,.friend-letter-photo,.hybrid-member-photo,.hybrid-cover-photo,.hybrid-poem-photo{height:auto;min-height:0;}
  .virgo-sign{margin-inline:auto;text-align:center;}
}
.book-fx,.book-fx-meteor,.book-fx-kiss,.book-fx-blood,.book-fx-glitter,.book-fx-casing,.book-fx-impact,.book-fx-spark,.book-fx-sparkler{will-change:transform,opacity;backface-visibility:hidden}
.book-fx-canvas,.book-fx-butterfly-canvas,.cake-burst-canvas{contain:strict;isolation:isolate}
.book-fx-butterfly-swarm{position:fixed;inset:0;z-index:100;width:100vw;height:100vh;pointer-events:none;background:transparent!important;mix-blend-mode:normal}
.book-cover .book-fx-local,
.book-cover .book-fx-glitter{position:absolute;z-index:4}
.book-cover .book-fx-blood{position:absolute}
.book-cover .book-fx-butterfly-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:9999!important;pointer-events:none;display:block}
.book-cover .book-fx-sparkler{position:absolute;z-index:4}
.book-fx-butterfly{filter:drop-shadow(0 5px 10px rgba(255,190,215,.35))}
.book-fx-local.book-fx-butterfly{filter:drop-shadow(0 0 12px rgba(88,190,255,.95))}
.book-fx-glitter{position:fixed;z-index:101;width:4px;height:4px;border-radius:50%;pointer-events:none;background:#fff7c7;box-shadow:0 0 5px 2px #fff1a3,0 0 12px 4px rgba(131,190,255,.8);animation:glitter-twinkle 1.1s ease-in-out var(--delay) infinite alternate}
@keyframes glitter-twinkle{0%{opacity:.12;transform:scale(.35)}45%{opacity:1;transform:scale(1.35)}100%{opacity:.2;transform:scale(.5)}}
.book-fx-star{color:#ffeab0;text-shadow:0 0 14px #fff1a8}
.book-fx-firework{color:#ffd166;text-shadow:0 0 12px #ff7b54}
.book-fx-shell{color:#d9c0b8;font-size:28px;text-shadow:0 0 8px #f8d7c8}
.book-fx-shot{color:#fff4cf;text-shadow:0 0 18px #ffb347;font-size:34px}
.book-fx-casing{position:fixed;z-index:100;top:-10vh;width:clamp(28px,4vw,58px);height:auto;pointer-events:none;filter:drop-shadow(0 3px 7px rgba(0,0,0,.55));animation:casing-rain 2.65s cubic-bezier(.2,.55,.45,1) var(--delay) both}
.book-fx-casing img,.book-fx-impact img{display:block;width:100%;height:auto}
.book-fx-impact{position:fixed;z-index:100;width:clamp(75px,13vw,220px);pointer-events:none;filter:drop-shadow(0 0 16px rgba(255,220,185,.45));animation:impact-pop 1.35s ease var(--delay) both}
@keyframes casing-rain{0%{opacity:0;transform:translateY(0) rotate(0) scale(.6)}8%{opacity:1}100%{opacity:0;transform:translateY(var(--fall)) rotate(var(--spin)) scale(1)}}
@keyframes impact-pop{0%,100%{opacity:0;transform:scale(.15) rotate(-30deg)}20%{opacity:1;transform:scale(1.35) rotate(8deg)}48%{opacity:.75;transform:scale(.7) rotate(25deg)}}
.book-fx-rocket{position:fixed;z-index:100;bottom:-5vh;pointer-events:none;color:var(--color);font-size:22px;text-shadow:0 0 12px var(--color);animation:rocket-rise 1.05s cubic-bezier(.35,.05,.65,1) var(--delay) both}
.book-fx-spark{position:fixed;z-index:100;pointer-events:none;color:var(--color);font-size:clamp(20px,3.2vw,54px);text-shadow:0 0 12px var(--color),0 0 28px var(--color),0 0 52px var(--color);animation:spark-burst 1.75s cubic-bezier(.12,.6,.2,1) both}
@keyframes rocket-rise{0%{opacity:0;transform:translateY(0) scale(.5)}12%{opacity:1}100%{opacity:1;transform:translateY(calc(-1 * var(--target))) scale(1)}}
@keyframes spark-burst{0%{opacity:1;transform:rotate(var(--angle)) translateX(0) scale(.12)}12%{opacity:1;transform:rotate(var(--angle)) translateX(8px) scale(1.25)}65%{opacity:.95}100%{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) scale(.65)}}
.book-fx-meteor{position:fixed;z-index:100;left:-18vw;width:clamp(90px,16vw,260px);height:var(--size);pointer-events:none;border-radius:999px;background:linear-gradient(90deg,transparent,#b9efff 54%,#fff);box-shadow:0 0 8px #8de8ff,0 0 24px rgba(75,193,255,.85);transform:rotate(18deg);animation:meteor-flight 2.05s cubic-bezier(.2,.1,.1,1) var(--delay) both}
.book-fx-canvas{position:fixed;inset:0;z-index:100;width:100vw;height:100vh;pointer-events:none}
.book-fx-butterfly-canvas{position:fixed;inset:0;z-index:101;width:100vw;height:100vh;pointer-events:none}
.cake-burst-canvas{position:fixed;inset:0;z-index:99;width:100vw;height:100vh;pointer-events:none!important;touch-action:none}
.book-fx-sparkler{position:fixed;z-index:101;width:5px;height:125px;transform:rotate(18deg);transform-origin:bottom center;pointer-events:none;background:linear-gradient(90deg,#3b241a,#c58b42,#fff1a1,#74451f);box-shadow:0 0 6px #ffd36b;animation:sparkler-rise .8s ease-out both}
.book-fx-sparkler i{position:absolute;left:50%;top:-16px;width:34px;height:34px;transform:translateX(-50%);border-radius:50%;background:#fff5a8;box-shadow:0 0 10px 6px #ffcf54,0 0 35px 15px rgba(255,135,42,.65);animation:sparkler-glow .16s ease-in-out infinite alternate}
.book-fx-sparkler b{position:absolute;color:#ffe37b;font-size:20px;opacity:0;animation:sparkler-spark 1s ease-out infinite}
.book-fx-sparkler b:nth-of-type(1){top:-25px;left:-18px}.book-fx-sparkler b:nth-of-type(2){top:-34px;left:12px;animation-delay:.2s}.book-fx-sparkler b:nth-of-type(3){top:-8px;left:20px;animation-delay:.4s}
@keyframes sparkler-rise{from{transform:rotate(18deg) translateY(80px);opacity:0}to{transform:rotate(18deg) translateY(0);opacity:1}}
@keyframes sparkler-glow{from{transform:translateX(-50%) scale(.8)}to{transform:translateX(-50%) scale(1.2)}}
@keyframes sparkler-spark{0%{opacity:0;transform:translate(0,0) scale(.4)}30%{opacity:1}100%{opacity:0;transform:translate(-20px,-45px) scale(1)}}
@keyframes meteor-flight{0%{opacity:0;transform:translate(0,0) rotate(18deg) scale(.45)}8%{opacity:1}82%{opacity:1}100%{opacity:0;transform:translate(var(--travel),var(--drop)) rotate(18deg) scale(1.15)}}
.book-fx-kiss{position:fixed;z-index:100;pointer-events:none;font-size:clamp(22px,3vw,48px);filter:drop-shadow(0 0 10px rgba(255,120,160,.7));animation:kiss-float 3.1s ease-out var(--delay) both}
@keyframes kiss-float{0%{opacity:0;transform:translate(0,0) rotate(-18deg) scale(.3)}12%{opacity:1}100%{opacity:0;transform:translate(var(--drift),calc(-1 * var(--rise))) rotate(22deg) scale(1.15)}}
.book-fx-blood{position:fixed;z-index:100;top:-8vh;width:var(--size);height:calc(var(--size) * 1.65);pointer-events:none;border-radius:55% 45% 60% 40%;background:linear-gradient(120deg,#ff5364,#920e20 55%,#35030b);box-shadow:0 0 13px rgba(160,0,20,.8);animation:blood-fall 2.8s cubic-bezier(.2,.5,.35,1) var(--delay) both}
.book-fx-blood i{position:absolute;left:35%;top:70%;width:35%;height:40%;border-radius:50%;background:#6f0715;filter:blur(2px)}
@keyframes blood-fall{0%{opacity:0;transform:translateY(0) scale(.35) rotate(0)}10%{opacity:1}100%{opacity:.12;transform:translateY(var(--fall)) scale(1.15) rotate(180deg)}}
@keyframes book-fx-float{0%{opacity:0;transform:translate(0,0) scale(.35) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(1) rotate(var(--spin))}}
.book-fx-race{position:fixed;z-index:100;inset:0;pointer-events:none;overflow:hidden}
.race-track{position:absolute;left:0;right:0;top:58vh;height:5px;background:linear-gradient(90deg,transparent,#ec3345,transparent);box-shadow:0 0 24px #ec3345;opacity:.8;animation:track-flash 2.4s ease both}
.race-car{position:absolute;z-index:2;left:-32vw;top:38vh;width:clamp(480px,95vw,1600px);max-width:none;height:auto;animation:race-across 2.4s cubic-bezier(.7,0,.2,1) both;filter:drop-shadow(0 18px 20px rgba(0,0,0,.45))}
.race-flag{position:absolute;top:42vh;left:86vw;font-size:clamp(48px,8vw,130px);opacity:0;animation:flag-wave 2.4s ease both}
@keyframes race-across{0%{transform:translateX(0) scale(.85);opacity:0}12%{opacity:1}100%{transform:translateX(125vw) scale(1.08);opacity:1}}
@keyframes flag-wave{0%,72%{opacity:0;transform:translateY(10px)}78%,100%{opacity:1;transform:translateY(0)}}
@keyframes track-flash{0%,15%{opacity:0}22%,82%{opacity:1}100%{opacity:0}}
button:not(:disabled),
summary{cursor:pointer}
@media (hover:none){
  .book-shelf .book-card:hover,
  .book-shelf .book-card:hover .book-cover,
  .future-card:hover{transform:none;filter:none}
}

/* ===== v29 COMPACT SECTION RHYTHM ===== */
section.content,
.guest-letter-section,
.virgo-section,
.oracle-section,
.hybrid-psycho,
.hybrid-poem,
.wrapped-section,
.future-section{padding-top:clamp(42px,5vw,62px);padding-bottom:clamp(42px,5vw,62px)}
section.content + section.content{padding-top:clamp(30px,3.5vw,48px)}
.book-shelf,.freedom,.wrapped-grid,.future-grid,.friend-letters{margin-top:24px}
.virgo-head{margin-bottom:30px}
section.content:has(.book-shelf){padding-top:18px}
section.content:has(.book-shelf) > h2{margin-bottom:18px}
section.content:has(.book-shelf) > p{margin-bottom:0}
section.content:has(.book-shelf) .book-shelf{margin-top:42px}
@media(max-width:760px){
  section.content,
  .guest-letter-section,
  .virgo-section,
  .oracle-section,
  .hybrid-psycho,
  .hybrid-poem,
  .wrapped-section,
  .future-section{padding-top:42px;padding-bottom:42px}
  section.content:has(.book-shelf){padding-top:34px}
  section.content:has(.book-shelf) .book-shelf{margin-top:28px}
}

/* ===== v25 BOOKSHELF REFINEMENT ===== */
.book-shelf{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:end;
  gap:clamp(14px,2vw,30px);
  margin-top:46px;
  padding:clamp(30px,5vw,62px) clamp(10px,2vw,28px) 0;
  border:0;
  background:transparent;
}
.split > div:first-child{min-width:0}
.book-shelf .book-card,
.book-shelf .book-card:nth-child(even){
  display:flex;
  min-width:0;
  flex-direction:column;
  transform:none;
  border:0;
  background:transparent;
  overflow:visible;
  filter:none;
}
.book-shelf .book-card:hover{transform:translateY(-8px);filter:none}
.book-shelf .book-cover{
  width:100%;
  aspect-ratio:3 / 4.25;
  overflow:visible;
  isolation:isolate;
  background:transparent;
  box-shadow:none;
  transition:box-shadow .3s ease;
}
.book-shelf .book-card:hover .book-cover{}
.book-shelf .book-cover::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:6%;right:-14%;bottom:-13px;height:18px;
  transform:skewX(-24deg) rotate(-2deg);
  transform-origin:left center;
  border-radius:50%;
  background:rgba(10,2,5,.58);
  filter:blur(5px);
}
.book-shelf .book-cover::after{
  content:"";
  position:absolute;
  z-index:-2;
  left:7%;right:-12%;bottom:-12px;height:18px;
  transform:skewX(-38deg);
  
  background:transparent;
  filter:none;
}
.book-shelf .book-info{
  min-height:174px;
  padding:22px 2px 24px;
  gap:9px;
}
.book-shelf .book-info span{font-size:9px;line-height:1.3}
.book-shelf .book-info strong{font-size:clamp(17px,1.55vw,24px);line-height:1.08}
.book-shelf .book-info strong,.book-shelf .book-info p{overflow-wrap:anywhere;word-break:normal}
.book-shelf .book-info p{margin:0;color:#cdb9bd;font-size:clamp(12px,1vw,14px);line-height:1.45;max-width:25ch}

.book-shelf .book-info strong{min-height:2.2em}
@media(max-width:1120px){
  .book-shelf{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:34px;max-width:760px;margin-inline:auto}
  .book-shelf .book-info{min-height:132px}
}
@media(max-width:680px){
  .book-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;padding-inline:4px}
  .book-shelf .book-info{min-height:140px;padding-top:17px}
  .book-shelf .book-info strong{font-size:20px}
}
@media(max-width:390px){
  .book-shelf{grid-template-columns:1fr;max-width:260px;margin-inline:auto}
  .book-shelf .book-info{min-height:0;padding-bottom:26px}
  .book-shelf .book-info p{max-width:32ch}
}

/* ===== v26 LARGE SCREEN BALANCE ===== */
@media (min-width:1200px){
  section.content,
  .guest-letter-section{max-width:1320px;padding-left:clamp(36px,4vw,72px);padding-right:clamp(36px,4vw,72px)}
  .split{gap:clamp(36px,4vw,72px)}
  .book-shelf{padding-left:0;padding-right:0;gap:clamp(16px,1.55vw,28px)}
  .book-shelf .book-info{padding-left:0;padding-right:0}
}
@media (min-width:1500px){
  section.content,
  .guest-letter-section{max-width:1380px}
  .split{grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr)}
  .book-shelf .book-info strong{font-size:22px}
  .book-shelf .book-info p{font-size:13px}
}

/* ===== v27 CONTINUOUS EDITORIAL FLOW ===== */
.photo-card,
.dossier,
.hybrid-panel,
.virgo-shell{border:0;box-shadow:none}
.hybrid-panel::before,
.hybrid-cover-copy::after,
.hybrid-cover-photo::after{border:0}
.content,
section.content,
.guest-letter-section,
.virgo-section,
.oracle-section,
.hybrid-psycho,
.hybrid-poem{padding-top:clamp(68px,7vw,92px);padding-bottom:clamp(68px,7vw,92px)}
.photo-card{padding:0;background:transparent}
.photo-card img{display:block}
.book-shelf{margin-top:30px}
.freedom{margin-top:42px}
.virgo-group + .virgo-group{margin-top:34px;padding-top:30px}
@media(max-width:760px){
  section.content,
  .guest-letter-section,
  .virgo-section,
  .oracle-section,
  .hybrid-psycho,
  .hybrid-poem{padding-top:58px;padding-bottom:58px}
}

@media (min-width:821px){
  section.content:has(.book-shelf){margin-top:-150px;padding-top:0}
  section.content:has(.book-shelf) .book-shelf{margin-top:38px}
}
