:root{--bg: #f8fbff;--panel: rgba(255, 255, 255, .82);--panel-strong: #ffffff;--ink: #07111f;--muted: #617086;--line: rgba(14, 165, 233, .2);--blue: #00b7ff;--blue-strong: #0077ff;--cyan: #67e8f9;--violet: #7c3aed;--shadow: 0 24px 80px rgba(0, 119, 255, .14);font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;color:var(--ink);background:radial-gradient(circle at 16% 16%,rgba(0,183,255,.2),transparent 22rem),radial-gradient(circle at 86% 10%,rgba(103,232,249,.26),transparent 24rem),linear-gradient(135deg,#fff,#f4fbff 52%,#eef7ff);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(0,183,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,183,255,.08) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 82%);mask-image:linear-gradient(to bottom,black,transparent 82%)}body[data-auth=locked] .topbar,body[data-auth=locked] .page{visibility:hidden}button,input{font:inherit}a{color:inherit}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0;letter-spacing:0}h1{font-size:clamp(2.75rem,8vw,7rem);line-height:.92}h2{font-size:clamp(2rem,5vw,4rem);line-height:1}h3{font-size:clamp(1.45rem,4vw,2.1rem);line-height:1.08}.neon-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;width:100vw;height:100vh;pointer-events:none}.topbar{position:sticky;top:0;z-index:5;width:min(1180px,calc(100% - 28px));min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto;padding:12px 0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{color:#be185d;font-weight:900;text-decoration:none}.brand span{color:#f472b6}.nav{display:flex;gap:8px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8;box-shadow:0 12px 40px #0077ff14}.nav a,.nav__logout{min-height:36px;display:inline-flex;align-items:center;border-radius:7px;padding:0 12px;border:0;color:var(--muted);background:transparent;cursor:pointer;font-size:.92rem;font-weight:800;text-decoration:none}.nav a:hover,.nav a.is-active,.nav__logout:hover{color:var(--blue-strong);background:#00b7ff17}.nav__logout{color:var(--blue-strong)}.page{position:relative;z-index:1;width:min(1180px,calc(100% - 28px));margin:0 auto;padding:18px 0 70px}.page--center{min-height:calc(100vh - 70px);display:grid;align-items:center}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 22% 18%,rgba(249,168,212,.34),transparent 20rem),radial-gradient(circle at 80% 12%,rgba(251,113,133,.24),transparent 22rem),linear-gradient(135deg,#fff1f7f5,#f0f9fff0);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-gate.is-unlocking{animation:authLeave .52s ease both}.auth-card{position:relative;width:min(100%,480px);overflow:hidden;border:1px solid rgba(244,114,182,.34);border-radius:8px;padding:clamp(24px,6vw,42px);background:linear-gradient(135deg,#fffffff0,#fff1f7d6),radial-gradient(circle at 100% 0%,rgba(249,168,212,.26),transparent 14rem);box-shadow:0 26px 90px #be185d29,0 0 44px #f9a8d433}.auth-card h1{color:#be185d;font-size:clamp(2.1rem,8vw,4.5rem)}.auth-card>p:not(.eyebrow):not(.hint){margin:16px 0 24px;color:var(--muted);line-height:1.6}.auth-card .button{width:100%;margin-top:6px}.auth-card__petal{position:absolute;top:18px;right:20px;width:34px;height:52px;border-radius:80% 20%;background:linear-gradient(145deg,#f472b6,#fbcfe8);box-shadow:-24px 16px #fb7185b3,-48px 4px #f9a8d48c;transform:rotate(24deg);animation:petalFloat 4s ease-in-out infinite}.eyebrow{margin:0 0 14px;color:var(--blue-strong);font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.home-hero,.wide-panel,.letter-panel,.quest-head,.finale-panel,.final-unlock{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.home-hero{min-height:calc(100vh - 110px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,410px);gap:clamp(22px,6vw,70px);align-items:center;padding:clamp(24px,6vw,70px)}.home-hero__copy p:not(.eyebrow),.quest-head p,.final-unlock p,.finale-panel p,.wide-panel>p,.letter-text{max-width:720px;color:var(--muted);font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.7}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.countdown-card{width:min(100%,430px);margin-top:28px;border:1px solid rgba(0,183,255,.52);border-radius:8px;padding:18px 20px;background:linear-gradient(135deg,#0077ff29,#00b7ff14),radial-gradient(circle at 100% 0%,rgba(103,232,249,.28),transparent 12rem),#07111fbd;box-shadow:0 18px 52px #07f3,0 0 30px #00b7ff1f}.countdown-card span{display:block;color:#a9c3e8;font-size:.82rem;font-weight:900;text-transform:uppercase}.countdown-card strong{display:block;margin-top:6px;color:#3b82ff;text-shadow:0 0 26px rgba(0,183,255,.22);font-size:clamp(1.8rem,5vw,3.1rem);line-height:1}.countdown-card.is-today{border-color:#7c3aed57;background:linear-gradient(135deg,#ffffffe6,#f0f9ffad),radial-gradient(circle at 100% 0%,rgba(124,58,237,.2),transparent 12rem);animation:softPulse 2.4s ease-in-out infinite}.button{min-height:48px;border:1px solid transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;cursor:pointer;font-weight:900;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.button:hover{transform:translateY(-2px)}.button--primary{color:#fff;background:linear-gradient(135deg,var(--blue-strong),var(--blue),var(--cyan));box-shadow:0 16px 42px #0077ff47,0 0 34px #00b7ff38}.button--ghost{color:var(--blue-strong);border-color:var(--line);background:#ffffffb8}.button--music{color:var(--blue-strong);border-color:#00b7ff47;background:linear-gradient(135deg,#fffffff5,#f0f9ffdb),radial-gradient(circle at 88% 15%,rgba(0,183,255,.18),transparent 8rem);box-shadow:0 14px 36px #0077ff1f}.neon-card{position:relative;min-height:410px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border:1px solid rgba(103,232,249,.54);border-radius:8px;padding:28px;color:#fff;background:linear-gradient(145deg,#0077fff0,#00b7ffdb),radial-gradient(circle at 28% 20%,rgba(255,255,255,.42),transparent 10rem);box-shadow:0 28px 90px #0077ff47,0 0 60px #00b7ff52;animation:floatCard 6s ease-in-out infinite}.neon-card:before{content:"";position:absolute;width:230px;height:230px;top:-70px;right:-70px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.neon-card__line{position:absolute;top:-45%;right:-45%;bottom:-45%;left:-45%;background:linear-gradient(100deg,transparent 36%,rgba(255,255,255,.32),transparent 62%);transform:translate(-42%) rotate(14deg);animation:shine 5s ease-in-out infinite}.neon-card p,.neon-card strong,.neon-card small{position:relative;margin:0}.neon-card strong{margin-top:10px;font-size:clamp(2rem,5vw,3.45rem);line-height:.98}.neon-card small{margin-top:18px;opacity:.86;line-height:1.5}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.feature-card{min-height:210px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:22px;background:#ffffffc7;box-shadow:0 18px 54px #0077ff1a;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 26px 70px #0077ff29}.feature-card span{color:var(--blue-strong);font-weight:900}.feature-card strong{margin-top:auto;font-size:1.25rem}.feature-card p{margin:10px 0 0;color:var(--muted);line-height:1.55}.wide-panel,.letter-panel,.finale-panel{padding:clamp(24px,6vw,68px)}.compliment-machine{min-height:270px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-top:28px;border:1px solid rgba(0,183,255,.28);border-radius:8px;padding:clamp(22px,5vw,42px);background:linear-gradient(135deg,#ffffffc7,#ffffff70),radial-gradient(circle at 94% 10%,rgba(0,183,255,.18),transparent 18rem)}.compliment-machine p{margin:0;font-size:clamp(1.6rem,4.6vw,3.5rem);font-weight:900;line-height:1.1}.compliment-machine.is-changing p{animation:textPop .42s ease both}.date-line{margin:24px 0 10px;color:var(--blue-strong);font-weight:900}.future-note{margin-top:24px;border-left:3px solid var(--blue);padding:14px 0 14px 18px;color:var(--muted);line-height:1.6}.quest-head{display:grid;grid-template-columns:1fr minmax(220px,300px);gap:22px;align-items:end;padding:clamp(22px,5vw,44px)}.progress-card{border:1px solid var(--line);border-radius:8px;padding:18px;background:#ffffffb8;color:var(--blue-strong);font-size:2rem;font-weight:900}.progress-track{height:10px;margin-top:12px;overflow:hidden;border-radius:999px;background:#0077ff1f}.progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue-strong),var(--blue),var(--cyan));transition:width .42s cubic-bezier(.22,1,.36,1)}.boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:18px}.box{position:relative;min-height:178px;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:18px;color:var(--ink);text-align:left;background:#ffffffc7;box-shadow:0 16px 44px #0077ff1a;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.box:hover{transform:translateY(-5px);box-shadow:0 25px 70px #0077ff2b,0 0 35px #00b7ff29}.box:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(0,183,255,.22),transparent 52%);opacity:0;transition:opacity .18s ease}.box:hover:before,.box.is-open:before{opacity:1}.box__month,.box__text,.box__status{position:relative}.box__month{display:block;color:var(--blue-strong);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.box__text{display:block;margin-top:12px;font-size:1.05rem;font-weight:900;line-height:1.35}.box__status{position:absolute;right:14px;bottom:12px;color:var(--muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.box.is-open .box__status{color:var(--blue-strong)}.box.is-unlocking{z-index:2;animation:giftOpen .9s cubic-bezier(.22,1,.36,1) both}.box.is-unlocking:after{content:"подарок открыт";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-size:1.05rem;font-weight:900;text-transform:uppercase;background:linear-gradient(135deg,#0077ffeb,#00b7ffdb),radial-gradient(circle at center,rgba(255,255,255,.34),transparent 12rem);animation:giftMessage .9s ease both}.final-unlock{margin-top:18px;padding:clamp(22px,5vw,44px)}.final-unlock[hidden],.song-link[hidden]{display:none}.song-link{display:inline-flex;margin-top:18px;color:var(--blue-strong);font-weight:900}.modal{width:min(560px,calc(100vw - 28px));border:0;padding:0;background:transparent}.modal::backdrop{background:#07111f57;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal__panel{position:relative;border:1px solid var(--line);border-radius:8px;padding:28px;background:#fffffff5;box-shadow:var(--shadow)}.modal.is-success .modal__panel{animation:modalGlow .9s ease both}.modal__close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.modal__question{color:var(--muted);line-height:1.6}.field{display:grid;gap:8px;margin-top:18px;font-weight:900}.field input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:8px;padding:0 14px;color:var(--ink);background:#fff;outline:none}.field input:focus{border-color:#00b7ffb3;box-shadow:0 0 0 4px #00b7ff24}.hint{min-height:25px;margin:12px 0 0;color:var(--blue-strong);font-weight:900;line-height:1.45}.modal.is-success .hint{animation:textPop .42s ease both}.mood-modal__panel{overflow:hidden;border-color:#f472b652;background:linear-gradient(135deg,#fffffffa,#fff1f7eb),radial-gradient(circle at 94% 6%,rgba(249,168,212,.28),transparent 14rem);box-shadow:0 28px 90px #be185d29,0 0 46px #f9a8d438}.mood-modal__panel h3{color:#be185d}.mood-modal__petals{position:absolute;top:18px;right:22px;width:34px;height:52px;border-radius:80% 20%;background:linear-gradient(145deg,#f472b6,#fbcfe8);box-shadow:-24px 16px #fb7185b3,-48px 4px #f9a8d48c;transform:rotate(24deg);animation:petalFloat 4s ease-in-out infinite}.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.final-letter{display:grid;gap:14px;margin:24px 0 0}.final-letter p{margin:0}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes floatCard{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}@keyframes shine{0%,58%{transform:translate(-44%) rotate(14deg)}to{transform:translate(42%) rotate(14deg)}}@keyframes textPop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes softPulse{0%,to{box-shadow:0 16px 44px #0077ff1f}50%{box-shadow:0 22px 62px #7c3aed33,0 0 30px #00b7ff33}}@keyframes giftOpen{0%{transform:translateY(0) scale(1);box-shadow:0 16px 44px #0077ff1a}35%{transform:translateY(-8px) scale(1.04) rotate(-1deg);box-shadow:0 28px 80px #0077ff42,0 0 40px #67e8f957}to{transform:translateY(0) scale(1);box-shadow:0 16px 44px #0077ff1a}}@keyframes giftMessage{0%{opacity:0;transform:scale(.92)}24%,76%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes modalGlow{0%,to{box-shadow:var(--shadow)}45%{box-shadow:0 26px 90px #0077ff3d,0 0 44px #67e8f947}}@keyframes petalFloat{0%,to{transform:translateY(0) rotate(24deg)}50%{transform:translateY(-8px) rotate(30deg)}}@keyframes authLeave{to{opacity:0;transform:scale(1.03)}}@media (max-width: 850px){.topbar{position:static;align-items:flex-start;flex-direction:column}.nav{width:100%;overflow-x:auto}.home-hero,.quest-head,.compliment-machine,.menu-grid{grid-template-columns:1fr}.neon-card{min-height:280px}}@media (max-width: 560px){.page,.topbar{width:min(100% - 20px,1180px)}.home-hero,.wide-panel,.letter-panel,.quest-head,.finale-panel,.final-unlock{padding:20px}.actions,.modal__actions{flex-direction:column}.button{width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
