.theme-toggle{position:fixed;top:max(var(--space-4),env(safe-area-inset-top));right:max(var(--space-4),env(safe-area-inset-right));z-index:75;width:70px;height:38px;padding:4px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--surface-4);border-radius:var(--radius-full);background:#10131c94;box-shadow:0 12px 30px -22px #000000e6;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--duration-base) var(--ease-smooth),border-color var(--duration-base) var(--ease-smooth),box-shadow var(--duration-base) var(--ease-smooth)}.theme-toggle:hover{border-color:var(--accent-primary)}.theme-toggle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.theme-toggle__icon{position:relative;z-index:2;display:grid;place-items:center;width:28px;height:28px;line-height:0}.theme-toggle__icon svg{width:14px;height:14px}.theme-toggle__icon--sun{color:var(--text-tertiary)}.theme-toggle__icon--moon,.theme-toggle.is-light .theme-toggle__icon--sun{color:var(--text-inverse)}.theme-toggle.is-light .theme-toggle__icon--moon{color:var(--text-tertiary)}.theme-toggle__thumb{position:absolute;top:4px;left:4px;z-index:1;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));box-shadow:0 0 16px #e97ba559;transform:translate(32px);transition:transform .26s var(--ease-elastic),box-shadow var(--duration-base) var(--ease-smooth)}.theme-toggle.is-light .theme-toggle__thumb{transform:translate(0)}[data-theme=light] .theme-toggle{background:#fffaf8c7;box-shadow:0 12px 30px -22px #4a2f3a73}.theme-toggle--inline{position:relative;top:auto;right:auto;z-index:2;box-shadow:0 12px 24px -20px #000c}.opening{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--space-6) var(--space-4);background:radial-gradient(circle at 50% 78%,rgba(233,123,165,.16),transparent 58%),radial-gradient(circle at 18% 12%,rgba(192,132,252,.12),transparent 46%),var(--surface-0);overflow:hidden;transition:opacity .8s var(--ease-smooth),transform .8s var(--ease-smooth)}.opening--exit{opacity:0;transform:scale(1.06);pointer-events:none}.opening__vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 42%,rgba(0,0,0,.55) 100%);pointer-events:none}.opening__actions{position:absolute;top:max(var(--space-5),env(safe-area-inset-top));right:var(--space-5);z-index:5;display:flex;align-items:center;gap:var(--space-2)}.opening__skip{padding:var(--space-2) var(--space-5);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary);background:#ffffff0d;border:1px solid var(--surface-4);border-radius:var(--radius-full);cursor:pointer;backdrop-filter:blur(6px);transition:all var(--duration-base) var(--ease-smooth)}.opening__skip:hover{color:var(--text-primary);border-color:var(--accent-primary)}.opening__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--space-8);width:min(560px,100%);animation:fadeIn .7s var(--ease-smooth) both}.opening__header{text-align:center}.opening__title{font-size:var(--text-4xl);font-style:italic;background:linear-gradient(120deg,var(--accent-secondary),var(--accent-primary),var(--accent-tertiary));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.01em}.opening__subtitle{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:.04em;min-height:1.4em}.opening__cake{position:relative;width:min(320px,82vw);aspect-ratio:1 / 1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;filter:drop-shadow(0 30px 45px rgba(0,0,0,.55))}.cake__glow{position:absolute;bottom:26%;left:50%;width:240px;height:240px;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,rgba(244,164,96,.34),transparent 68%);animation:cakeGlow 3.6s ease-in-out infinite;pointer-events:none;transition:opacity .9s var(--ease-smooth)}.opening__cake.is-smoked .cake__glow{opacity:0}@keyframes cakeGlow{0%,to{opacity:.75;transform:translate(-50%) scale(.94)}50%{opacity:1;transform:translate(-50%) scale(1.06)}}.cake__candles{position:relative;z-index:3;display:flex;align-items:flex-end;justify-content:center;gap:clamp(14px,5vw,26px);margin-bottom:-6px}.candle{position:relative;width:12px;height:clamp(42px,12vw,56px);border:none;padding:0;border-radius:4px;cursor:pointer;background:repeating-linear-gradient(135deg,#fdf2f8 0 6px,var(--accent-primary) 6px 12px);box-shadow:inset -2px 0 3px #00000040;transform-origin:bottom center;transition:transform var(--duration-base) var(--ease-smooth),filter var(--duration-base)}.candle:hover{transform:translateY(-2px)}.candle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:4px}.candle.is-out{filter:grayscale(.6) brightness(.7);cursor:default}.candle__wick{position:absolute;top:-6px;left:50%;width:2px;height:7px;transform:translate(-50%);background:#2a2a2a;border-radius:1px}.candle__flame{position:absolute;top:-22px;left:50%;width:12px;height:20px;transform:translate(-50%);border-radius:50% 50% 46% 46%/62% 62% 38% 38%;background:radial-gradient(circle at 50% 78%,#fff8e1,#ffcf6b 42%,#ff8a3d 72%,#ff5e0026);animation:flameFlicker 1.4s ease-in-out infinite;will-change:transform,opacity;box-shadow:0 0 14px #ffaa3cbf}.candle__flame-inner{position:absolute;inset:34% 26% 8%;border-radius:50%;background:#fffdf5;filter:blur(.4px);animation:flameInner .9s ease-in-out infinite alternate}.candle__halo{position:absolute;top:-46px;left:50%;width:90px;height:90px;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,186,96,.42),transparent 66%);animation:haloPulse 2.4s ease-in-out infinite;pointer-events:none}@keyframes flameFlicker{0%,to{transform:translate(-50%) scale(1) rotate(-1.5deg);opacity:1}25%{transform:translate(-50%) scale(1.05,.95) rotate(1.5deg);opacity:.94}50%{transform:translate(-50%) scale(.94,1.08) rotate(-2deg);opacity:1}75%{transform:translate(-50%) scale(1.03,.97) rotate(2deg);opacity:.9}}@keyframes flameInner{0%{transform:scale(.9) translateY(1px);opacity:.85}to{transform:scale(1.05) translateY(-1px);opacity:1}}@keyframes haloPulse{0%,to{opacity:.55;transform:translate(-50%) scale(.9)}50%{opacity:.9;transform:translate(-50%) scale(1.1)}}.candle__smoke{position:absolute;top:-18px;left:50%;width:8px;height:8px;transform:translate(-50%);border-radius:50%;background:#c8c8d273;filter:blur(3px);animation:smokeRise 2.4s ease-out infinite}@keyframes smokeRise{0%{opacity:.5;transform:translate(-50%) scale(.6)}to{opacity:0;transform:translate(-50%,-58px) scale(2.4)}}.cake__tier{position:relative;width:100%;border-radius:12px 12px 6px 6px}.cake__tier--top{width:58%;height:clamp(38px,11vw,50px);background:linear-gradient(180deg,#f6c6d8,#d98bab 78%);z-index:3}.cake__tier--mid{width:78%;height:clamp(46px,13vw,60px);margin-top:-4px;background:linear-gradient(180deg,#f7dcb9,#d9a06f 82%);z-index:2}.cake__tier--base{width:96%;height:clamp(52px,15vw,70px);margin-top:-4px;background:linear-gradient(180deg,#f3b9c9,#b97490 84%);z-index:1}.cake__drip{position:absolute;inset:0 0 auto;height:42%;border-radius:12px 12px 40% 40%/12px 12px 26px 26px;background:#ffffff8c;box-shadow:0 6px #ffffff59}.cake__plate{width:108%;height:12px;margin-top:2px;border-radius:0 0 50% 50%/0 0 100% 100%;background:linear-gradient(180deg,var(--surface-4),var(--surface-2));box-shadow:0 10px 26px #00000080}.opening__controls{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;min-height:96px}.opening__mic-btn{padding:var(--space-3) var(--space-6);font-size:var(--text-sm)}.opening__hint{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary)}.opening__hint--warn{color:var(--accent-secondary);text-transform:none;letter-spacing:.02em;font-size:var(--text-sm)}.mic-meter{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:min(300px,100%)}.mic-meter__label{font-size:var(--text-xs);letter-spacing:.08em;color:var(--accent-primary)}.mic-meter__track{width:100%;height:6px;border-radius:var(--radius-full);background:var(--surface-4);overflow:hidden}.mic-meter__fill{height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,var(--accent-secondary),var(--accent-primary));transition:transform .12s linear}.mic-meter__stop{font-size:var(--text-xs);padding:var(--space-1) var(--space-4)}.opening__done{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--accent-secondary);animation:fadeIn .5s var(--ease-smooth) both}.confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.confetti{position:absolute;top:-8%;border-radius:2px;animation-name:confettiFall;animation-timing-function:cubic-bezier(.35,.15,.6,1);animation-fill-mode:forwards;will-change:transform,opacity}@keyframes confettiFall{0%{opacity:0;transform:translate3d(0,-10vh,0) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(720deg)}}@media (prefers-reduced-motion: reduce){.confetti{display:none}.candle__flame,.candle__halo,.cake__glow{animation:none}}.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding-block:var(--space-24)}.hero__aurora{position:absolute;inset:-20%;background:radial-gradient(closest-side at 30% 25%,rgba(233,123,165,.32),transparent),radial-gradient(closest-side at 72% 62%,rgba(192,132,252,.26),transparent),radial-gradient(closest-side at 50% 92%,rgba(244,164,96,.22),transparent);filter:blur(60px);animation:auroraDrift 22s ease-in-out infinite alternate;pointer-events:none}@keyframes auroraDrift{0%{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.12)}}.hero__stars{position:absolute;inset:0;background-image:radial-gradient(1.4px 1.4px at 12% 22%,rgba(255,255,255,.75),transparent),radial-gradient(1.2px 1.2px at 78% 16%,rgba(255,255,255,.6),transparent),radial-gradient(1.6px 1.6px at 62% 74%,rgba(255,255,255,.55),transparent),radial-gradient(1.1px 1.1px at 28% 82%,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 88% 58%,rgba(255,255,255,.48),transparent),radial-gradient(1px 1px at 42% 38%,rgba(255,255,255,.4),transparent);animation:twinkle 6s ease-in-out infinite alternate;pointer-events:none}@keyframes twinkle{0%{opacity:.45}to{opacity:.95}}.hero__inner{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.hero__eyebrow{font-size:var(--text-xs);letter-spacing:.42em;text-transform:uppercase;color:var(--accent-secondary);opacity:0;animation:fadeIn .9s var(--ease-smooth) .15s both}.hero__name{display:flex;flex-wrap:wrap;justify-content:center;gap:.02em;font-size:clamp(3rem,13vw,7rem);font-weight:700;line-height:1;letter-spacing:-.03em;background:linear-gradient(105deg,#fff 8%,var(--accent-primary) 42%,var(--accent-secondary) 74%,var(--accent-tertiary));-webkit-background-clip:text;background-clip:text;color:transparent}.hero__letter{display:inline-block;opacity:0;transform:translateY(38%) rotate(6deg);transition:opacity .6s var(--ease-smooth) var(--d),transform .6s var(--ease-elastic) var(--d);will-change:transform,opacity}.hero__letter.is-in{opacity:1;transform:none}.hero__subtitle{max-width:34ch;font-size:var(--text-lg);color:var(--text-secondary);font-weight:300;opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease-smooth),transform .7s var(--ease-smooth)}.hero__date{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--text-tertiary);border:1px solid var(--surface-4);border-radius:var(--radius-full);background:#ffffff08;opacity:0;transition:opacity .7s var(--ease-smooth) .12s}.hero__date-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);box-shadow:0 0 10px var(--accent-primary)}.hero__actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);margin-top:var(--space-6);opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease-smooth) .2s,transform .8s var(--ease-smooth) .2s}.hero__subtitle.is-in,.hero__date.is-in,.hero__actions.is-in{opacity:1;transform:none}.hero__cta{gap:var(--space-3);animation:glowPulse 4s ease-in-out infinite}.hero__share{gap:var(--space-2);font-size:var(--text-sm);opacity:.85}.hero__scroll{padding:var(--space-2);min-width:0}.hero__scroll-line{display:block;width:1px;height:46px;background:linear-gradient(180deg,transparent,var(--accent-primary));animation:scrollHint 2.2s ease-in-out infinite}@keyframes scrollHint{0%{opacity:0;transform:scaleY(.2);transform-origin:top}50%{opacity:1;transform:scaleY(1);transform-origin:top}to{opacity:0;transform:scaleY(.2) translateY(46px);transform-origin:top}}[data-theme=light] .hero__aurora{opacity:.55}[data-theme=light] .hero__stars{opacity:.25}[data-theme=light] .hero__name{background:linear-gradient(105deg,#2a1a24 8%,var(--accent-primary) 46%,var(--accent-secondary) 78%,var(--accent-tertiary));-webkit-background-clip:text;background-clip:text}@media (prefers-reduced-motion: reduce){.hero__aurora,.hero__stars,.hero__cta,.hero__scroll-line{animation:none}}.lovecounter{min-height:auto;padding-block:clamp(2.5rem,5vw,4rem);position:relative}.lovecounter__card{position:relative;max-width:680px;margin-inline:auto;padding:clamp(2rem,6vw,3.25rem) clamp(1.5rem,5vw,3rem);text-align:center;border-radius:var(--radius-2xl);border:1px solid rgba(233,123,165,.22);background:radial-gradient(closest-side at 50% 0%,rgba(233,123,165,.14),transparent),linear-gradient(160deg,#0f131ceb,#05070cf5);box-shadow:var(--shadow-xl),0 0 60px #e97ba514;overflow:hidden}.lovecounter__glow{position:absolute;inset:-40% -20% auto;height:140%;background:radial-gradient(closest-side,rgba(192,132,252,.18),transparent);pointer-events:none}.lovecounter__heart{position:absolute;top:1.1rem;right:1.25rem;font-size:1.1rem;color:var(--accent-primary);opacity:.7;animation:lovecounterBeat 2.6s ease-in-out infinite}@keyframes lovecounterBeat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.12)}56%{transform:scale(1)}}.lovecounter__eyebrow{position:relative;font-size:var(--text-xs);letter-spacing:.32em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-3)}.lovecounter__days{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1;margin-bottom:var(--space-3)}.lovecounter__days strong{font-family:var(--font-display);font-size:clamp(3.75rem,13vw,6.5rem);font-weight:600;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary) 55%,var(--accent-tertiary));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 24px rgba(233,123,165,.25))}.lovecounter__days span{margin-top:var(--space-2);font-size:var(--text-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--text-secondary)}.lovecounter__since{position:relative;font-size:var(--text-sm);color:var(--text-secondary)}.lovecounter__subtitle{position:relative;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.lovecounter__pill{position:relative;display:inline-block;margin-top:var(--space-5);padding:.5rem .95rem;border-radius:var(--radius-full);border:1px solid rgba(233,123,165,.25);background:#e97ba514;font-size:var(--text-xs);color:var(--text-secondary);letter-spacing:.02em}@media (max-width: 480px){.lovecounter__days strong{font-size:clamp(3rem,18vw,4.5rem)}}@media (prefers-reduced-motion: reduce){.lovecounter__heart{animation:none}}.gallery{background:linear-gradient(180deg,transparent,rgba(255,255,255,.015) 40%,transparent)}.gallery__grid{display:grid;gap:var(--space-4)}.gallery__grid--masonry{column-count:2;column-gap:var(--space-4)}@media (min-width: 720px){.gallery__grid--masonry{column-count:3}}@media (min-width: 1080px){.gallery__grid--masonry{column-count:4}}.gallery__grid--polaroid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-6)}.gallery__item{margin:0 0 var(--space-4);break-inside:avoid;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-2);border:1px solid var(--surface-3);transition:transform var(--duration-base) var(--ease-smooth),box-shadow var(--duration-base)}.gallery__item--polaroid{margin:0;padding:var(--space-3) var(--space-3) var(--space-6);background:#fdfbf7;border:none;border-radius:4px;box-shadow:0 14px 24px -14px #000000b3;transform:rotate(var(--tilt))}.gallery__item--polaroid:hover{transform:rotate(0) translateY(-4px) scale(1.02);box-shadow:0 20px 34px -16px #000000bf}.gallery__item:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.gallery__button{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;position:relative;line-height:0}.gallery__button img{width:100%;height:auto;display:block;object-fit:cover;transition:transform .6s var(--ease-smooth),filter .4s;background:var(--surface-3)}.gallery__item--polaroid .gallery__button img{aspect-ratio:1 / 1;object-fit:cover}.gallery__button:hover img{transform:scale(1.04)}.gallery__overlay{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:2px;padding:var(--space-6) var(--space-3) var(--space-3);background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));opacity:0;transition:opacity var(--duration-base) var(--ease-smooth);text-align:left}.gallery__button:hover .gallery__overlay,.gallery__button:focus-visible .gallery__overlay{opacity:1}.gallery__item--polaroid .gallery__overlay{position:static;opacity:1;background:none;padding:var(--space-3) 0 0;color:#3a3138}.gallery__caption{font-size:var(--text-xs);line-height:1.4;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery__item--polaroid .gallery__caption{color:#3a3138;font-family:var(--font-display);font-size:var(--text-sm)}.gallery__date{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#fff9}.gallery__item--polaroid .gallery__date{color:#8b7f86}.gallery__more{display:flex;justify-content:center;margin-top:var(--space-8)}.lightbox{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:var(--space-4);background:#05070cf0;backdrop-filter:blur(10px);animation:fadeIn .26s var(--ease-smooth) both}.lightbox__figure{margin:0;max-width:min(1100px,100%);max-height:86svh;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.lightbox__figure img{max-width:100%;max-height:74svh;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-xl)}.lightbox figcaption{text-align:center;display:flex;flex-direction:column;gap:2px}.lightbox__caption{color:var(--text-primary);font-size:var(--text-sm)}.lightbox__date{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary)}.lightbox__counter{font-size:.7rem;color:var(--text-tertiary);margin-top:var(--space-1)}.lightbox__close,.lightbox__nav{position:absolute;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--surface-4);background:#ffffff0f;color:var(--text-primary);font-size:1.4rem;cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);z-index:2}.lightbox__close:hover,.lightbox__nav:hover{background:var(--accent-primary);color:var(--text-inverse);border-color:transparent}.lightbox__close{top:max(var(--space-4),env(safe-area-inset-top));right:var(--space-4);font-size:1rem}.lightbox__nav--prev{left:var(--space-3)}.lightbox__nav--next{right:var(--space-3)}@media (max-width: 520px){.lightbox__nav{width:38px;height:38px;font-size:1.1rem}}.timeline__list{position:relative;list-style:none;margin:0 auto;padding:0;max-width:900px}.timeline__list:before{content:"";position:absolute;top:0;bottom:0;left:14px;width:1px;background:linear-gradient(180deg,transparent,var(--surface-4) 8%,var(--surface-4) 92%,transparent)}@media (min-width: 820px){.timeline__list:before{left:50%;transform:translate(-.5px)}}.timeline__item{position:relative;padding-left:44px;margin-bottom:var(--space-10)}.timeline__item:last-child{margin-bottom:0}@media (min-width: 820px){.timeline__item{width:50%;padding-left:0;padding-right:48px}.timeline__item.is-right{margin-left:50%;padding-right:0;padding-left:48px}}.timeline__marker{position:absolute;top:26px;left:7px;z-index:2}@media (min-width: 820px){.timeline__item .timeline__marker{left:auto;right:-7px}.timeline__item.is-right .timeline__marker{right:auto;left:-7px}}.timeline__dot{display:block;width:15px;height:15px;border-radius:50%;background:var(--surface-0);border:2px solid var(--accent-primary);box-shadow:0 0 0 4px #e97ba524,0 0 16px #e97ba580}.timeline__card{background:var(--surface-2);border:1px solid var(--surface-3);border-radius:var(--radius-xl);overflow:hidden;transition:border-color var(--duration-base) var(--ease-smooth),transform var(--duration-base) var(--ease-smooth)}.timeline__card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.timeline__media{aspect-ratio:16 / 10;overflow:hidden;background:var(--surface-3)}.timeline__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease-smooth)}.timeline__card:hover .timeline__media img{transform:scale(1.05)}.timeline__body{padding:var(--space-5)}.timeline__date{display:inline-block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-secondary);margin-bottom:var(--space-2)}.timeline__title{font-size:var(--text-xl);margin-bottom:var(--space-2)}.timeline__text{font-size:var(--text-sm);color:var(--text-secondary);white-space:pre-line}@media (prefers-reduced-motion: reduce){.timeline__card,.timeline__media img{transition:none}}.puzzle{background:radial-gradient(closest-side at 22% 18%,rgba(233,123,165,.08),transparent),radial-gradient(closest-side at 82% 72%,rgba(192,132,252,.07),transparent)}.puzzle__stage{scroll-margin-top:var(--space-6)}.puzzle__description{color:var(--text-secondary);max-width:52ch;margin:var(--space-2) auto 0;font-size:var(--text-sm)}.puzzle__deco{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-5);opacity:.9}.puzzle__deco-piece{width:20px;height:20px;border-radius:5px;background:linear-gradient(145deg,var(--accent-primary),var(--accent-tertiary));box-shadow:inset 0 0 0 1px #ffffff2e,var(--shadow-sm)}.puzzle__deco-piece:nth-child(1){transform:rotate(-10deg)}.puzzle__deco-piece:nth-child(2){transform:rotate(8deg) translateY(-3px)}.puzzle__deco-piece:nth-child(4){transform:rotate(-6deg) translateY(2px)}.puzzle__deco-heart{color:var(--accent-primary);font-size:.95rem;animation:heartbeat 1.8s var(--ease-smooth) infinite}.puzzle-empty{max-width:460px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-10) var(--space-6);border:1px dashed var(--surface-4);border-radius:var(--radius-xl);background:#ffffff05;color:var(--text-secondary)}.puzzle-empty__icon{font-size:1.8rem;color:var(--accent-primary);animation:heartbeat 1.6s var(--ease-smooth) infinite}.puzzle__loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-16) 0;color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.08em}.picker{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-8);animation:fadeIn .5s var(--ease-smooth) both}.picker__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.picker__session{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--surface-4);background:#ffffff08;color:var(--text-tertiary);font-size:var(--text-xs);letter-spacing:.04em}.picker__session-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);box-shadow:0 0 8px var(--accent-primary)}.picker__top-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.picker__collection{display:inline-flex;align-items:center;gap:6px;padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.picker__collection-count{min-width:1.4em;padding:0 .4em;border-radius:var(--radius-full);background:#e97ba52e;color:var(--accent-primary);font-size:.68rem;line-height:1.5;text-align:center;font-variant-numeric:tabular-nums}.picker__surprise{gap:var(--space-2)}.picker__block{display:flex;flex-direction:column;gap:var(--space-3)}.picker__block-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.picker__label{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.picker__count{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary)}.picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:var(--space-3)}@media (max-width: 420px){.picker__grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--space-2)}}.picker__more{display:flex;justify-content:center;margin-top:var(--space-4)}.picker__photo{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-2);cursor:pointer;transition:border-color var(--duration-base) var(--ease-smooth),transform var(--duration-base) var(--ease-smooth),box-shadow var(--duration-base);-webkit-tap-highlight-color:transparent}.picker__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease-smooth)}.picker__photo:hover{transform:translateY(-2px);border-color:var(--surface-5)}.picker__photo:hover img{transform:scale(1.04)}.picker__photo.is-selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px #e97ba533,var(--shadow-glow)}.picker__thumb-fallback{display:grid;place-items:center;width:100%;height:100%;color:var(--accent-primary);font-size:1.5rem;background:var(--surface-3)}.picker__check{position:absolute;top:6px;right:6px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);font-size:.7rem;font-weight:700;box-shadow:var(--shadow-md)}.picker__caption{position:absolute;inset:auto 0 0;padding:var(--space-6) var(--space-2) var(--space-2);background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));color:#fff;font-size:.68rem;line-height:1.35;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.picker__difficulties{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}@media (max-width: 560px){.picker__difficulties{grid-template-columns:1fr}}.picker__difficulty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--surface-3);background:var(--surface-2);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--duration-base) var(--ease-smooth),background var(--duration-base) var(--ease-smooth),box-shadow var(--duration-base),transform var(--duration-base) var(--ease-smooth);-webkit-tap-highlight-color:transparent}.picker__difficulty:hover{border-color:var(--surface-5);transform:translateY(-2px)}.picker__difficulty.is-selected{border-color:var(--accent-primary);background:linear-gradient(155deg,#e97ba529,#c084fc12);box-shadow:var(--shadow-glow)}.picker__difficulty-icon{display:grid;grid-template-columns:repeat(var(--n, 3),1fr);gap:2px;width:34px;height:34px}.picker__difficulty-icon i{display:block;border-radius:2px;background:var(--surface-5);transition:background var(--duration-base)}.picker__difficulty.is-selected .picker__difficulty-icon i{background:var(--accent-primary)}.picker__difficulty-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.picker__difficulty-desc{font-size:var(--text-xs);color:var(--text-tertiary)}.picker__difficulty-best{margin-top:2px;font-size:.66rem;letter-spacing:.04em;color:var(--accent-secondary);font-variant-numeric:tabular-nums}.picker__error{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid rgba(248,113,113,.35);background:#f8717114;color:#fca5a5;font-size:var(--text-sm);text-align:center}.picker__retry{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.picker__actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding-top:var(--space-2)}.picker__actions .btn{min-width:220px}.picker__hintline{color:var(--text-tertiary);font-size:var(--text-xs);text-align:center}.puzzle__preview{position:relative;width:min(100%,520px);margin:0 auto;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--surface-4);box-shadow:var(--shadow-xl);animation:fadeIn .4s var(--ease-smooth) both}.puzzle__preview img{display:block;width:100%;height:auto}.puzzle__preview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,7,12,.08),transparent 40%,rgba(5,7,12,.6));pointer-events:none}.puzzle__countdown{position:absolute;inset:0;display:grid;place-items:center;z-index:2;font-family:var(--font-display);font-size:clamp(3.4rem,14vw,6rem);font-weight:700;color:#fff;text-shadow:0 6px 40px rgba(0,0,0,.55),0 0 24px rgba(233,123,165,.55);animation:puzzleCountPop .65s var(--ease-elastic) both}@keyframes puzzleCountPop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.puzzle__preview-note{position:absolute;left:0;right:0;bottom:var(--space-4);z-index:2;text-align:center;color:#ffffffd9;font-size:var(--text-sm);padding:0 var(--space-4)}.puzzle__game{max-width:620px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-4);animation:fadeIn .4s var(--ease-smooth) both}.puzzle__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.puzzle__tool{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.puzzle__stats{display:flex;align-items:center;gap:var(--space-4)}.puzzle__stat{display:flex;flex-direction:column;line-height:1.15;text-align:center}.puzzle__stat span{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-tertiary)}.puzzle__stat strong{font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums}.puzzle__tools{display:flex;gap:var(--space-2)}.puzzle__help{text-align:center;color:var(--text-tertiary);font-size:var(--text-xs)}.puzzle-board{position:relative;width:min(100%,560px);width:min(100%,560px,calc(66svh * var(--ar, 1)));aspect-ratio:var(--ar, 1);margin:0 auto;border-radius:var(--radius-xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--surface-4);box-shadow:var(--shadow-xl),0 0 0 6px #ffffff05;isolation:isolate}.puzzle-tile{position:absolute;top:0;left:0;width:calc(100% / var(--cols));height:calc(100% / var(--rows));margin:0;padding:0;border:0;background-color:var(--surface-3);background-repeat:no-repeat;background-size:calc(var(--cols) * 100%) calc(var(--rows) * 100%);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-shadow:inset 0 0 0 1px #00000038;transition:transform .34s cubic-bezier(.22,1,.36,1),box-shadow .2s var(--ease-smooth),filter .2s var(--ease-smooth),scale .2s var(--ease-smooth);will-change:transform}.puzzle-board.is-shuffling .puzzle-tile{pointer-events:none;transition-duration:.72s;transition-delay:calc(var(--i, 0) * 14ms);animation:puzzleTileShuffle .62s var(--ease-smooth) both;animation-delay:calc(var(--i, 0) * 14ms)}@keyframes puzzleTileShuffle{0%{scale:1}40%{scale:1.05}to{scale:1}}.puzzle-tile.is-correct{box-shadow:inset 0 0 0 2px #e97ba58c}.puzzle-tile.is-selected{z-index:3;filter:brightness(1.08);box-shadow:inset 0 0 0 3px var(--accent-primary),0 0 22px #e97ba573}.puzzle-tile.is-dragging{z-index:4;cursor:grabbing;filter:brightness(1.12);scale:.94;box-shadow:inset 0 0 0 2px #ffffff80,0 12px 26px #00000073}.puzzle-tile.is-target{box-shadow:inset 0 0 0 3px var(--accent-secondary),0 0 18px #f4a46066}.puzzle-tile:focus-visible{outline:3px solid var(--accent-tertiary);outline-offset:-3px;z-index:5}.puzzle-board__hint{position:absolute;inset:0;z-index:6;pointer-events:none;animation:fadeIn .2s var(--ease-smooth) both}.puzzle-board__hint img{display:block;width:100%;height:100%;object-fit:cover}.puzzle-board__hint:after{content:"Hint";position:absolute;top:var(--space-3);left:var(--space-3);padding:2px 10px;border-radius:var(--radius-full);background:#05070cad;color:#fff;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase}.puzzle-result{position:relative;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-6);animation:fadeIn .5s var(--ease-smooth) both}.puzzle-result__photo{position:relative;z-index:1;margin:0;width:100%;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--surface-4);background:var(--surface-2);box-shadow:var(--shadow-xl),var(--shadow-glow);animation:puzzleMerge .75s var(--ease-elastic) both}.puzzle-result__photo img{display:block;width:100%;max-height:60svh;object-fit:contain;background:var(--surface-2)}.puzzle-result__photo figcaption{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-3) var(--space-4) var(--space-4);background:var(--surface-2);text-align:center}.puzzle-result__caption{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.puzzle-result__date{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary)}@keyframes puzzleMerge{0%{opacity:0;transform:scale(.9);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}.puzzle-result__panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center}.puzzle-result__eyebrow{font-size:var(--text-xs);letter-spacing:.32em;text-transform:uppercase;color:var(--accent-secondary)}.puzzle-result__title{font-size:var(--text-2xl);max-width:28ch}.puzzle-result__stats{display:flex;gap:var(--space-8);flex-wrap:wrap;justify-content:center;padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--surface-3);background:var(--surface-2)}.puzzle-result__stat{display:flex;flex-direction:column;gap:2px}.puzzle-result__stat span{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-tertiary)}.puzzle-result__stat strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.puzzle-result__actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.puzzle-result__actions .btn{padding:var(--space-3) var(--space-6);font-size:var(--text-sm)}.puzzle-result__record{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:var(--radius-full);border:1px solid rgba(244,164,96,.35);background:#f4a4601a;color:var(--accent-secondary);font-size:var(--text-sm);letter-spacing:.02em;font-variant-numeric:tabular-nums}.puzzle-result__record.is-new{border-color:#e97ba573;background:#e97ba524;color:#ffd6e7;box-shadow:0 0 22px #e97ba533;animation:puzzleRecordPop .6s var(--ease-elastic) both}@keyframes puzzleRecordPop{0%{opacity:0;transform:scale(.9) translateY(4px)}to{opacity:1;transform:none}}.puzzle-result__collection{padding:var(--space-1) var(--space-2);border:0;background:none;color:var(--text-secondary);font-size:var(--text-sm);text-decoration:underline;text-decoration-color:#e97ba566;text-underline-offset:4px;cursor:pointer;transition:color var(--duration-base) var(--ease-smooth)}.puzzle-result__collection:hover{color:var(--accent-primary)}.puzzle-result__confetti{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.puzzle-result__confetti span{position:absolute;top:-16px;left:var(--x);width:var(--w);height:var(--h);border-radius:2px;background:var(--c);opacity:0;transform:rotate(var(--rotate));animation:puzzleConfetti var(--dur) linear var(--delay) forwards}@keyframes puzzleConfetti{0%{opacity:1;transform:translateZ(0) rotate(var(--rotate))}to{opacity:0;transform:translate3d(var(--drift),78svh,0) rotate(calc(var(--rotate) + 540deg))}}.puzzle-result__hearts{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.puzzle-result__hearts span{position:absolute;bottom:-10px;left:var(--x);font-size:var(--size);color:var(--accent-primary);opacity:0;animation:puzzleHeartFloat var(--dur) ease-in var(--delay) forwards}@keyframes puzzleHeartFloat{0%{opacity:0;transform:translateZ(0) scale(.6)}15%{opacity:.9}to{opacity:0;transform:translate3d(20px,-72svh,0) scale(1.15)}}.puzzle-collection{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:var(--space-4);background:#05070cdb;backdrop-filter:blur(8px);animation:fadeIn .2s var(--ease-smooth) both}.puzzle-collection__card{width:min(880px,100%);max-height:min(86svh,760px);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--surface-4);background:var(--surface-2);box-shadow:var(--shadow-xl);-webkit-overflow-scrolling:touch}.puzzle-collection__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.puzzle-collection__title{font-size:var(--text-2xl)}.puzzle-collection__count{margin-top:4px;color:var(--text-tertiary);font-size:var(--text-xs)}.puzzle-collection__close{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--surface-4);background:var(--surface-3);color:var(--text-secondary);font-size:.78rem;line-height:1;cursor:pointer;transition:color var(--duration-base) var(--ease-smooth),border-color var(--duration-base) var(--ease-smooth)}.puzzle-collection__close:hover{color:var(--text-primary);border-color:var(--surface-5)}.puzzle-collection__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.puzzle-collection__item{display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--surface-3);background:#ffffff05;color:var(--text-primary);text-align:left;cursor:pointer;transition:transform var(--duration-base) var(--ease-smooth),border-color var(--duration-base) var(--ease-smooth),box-shadow var(--duration-base) var(--ease-smooth)}.puzzle-collection__item:hover{transform:translateY(-2px);border-color:#e97ba580;box-shadow:var(--shadow-glow)}.puzzle-collection__media{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--surface-3)}.puzzle-collection__media img{display:block;width:100%;height:100%;object-fit:cover}.puzzle-collection__badge{position:absolute;left:8px;bottom:8px;padding:2px 8px;border-radius:var(--radius-full);background:#05070cb8;color:#ffd6e7;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(4px)}.puzzle-collection__meta{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3) var(--space-3)}.puzzle-collection__best{color:var(--accent-primary);font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums}.puzzle-collection__sub{color:var(--text-tertiary);font-size:.66rem;letter-spacing:.02em}.puzzle-collection__empty{padding:var(--space-8) var(--space-4);border:1px dashed var(--surface-4);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);text-align:center}.puzzle-collection__note{color:var(--text-tertiary);font-size:var(--text-xs);text-align:center}.puzzle-confirm{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:var(--space-4);background:#05070cd6;backdrop-filter:blur(8px);animation:fadeIn .2s var(--ease-smooth) both}.puzzle-confirm__card{width:min(420px,100%);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8);border-radius:var(--radius-xl);border:1px solid var(--surface-4);background:var(--surface-2);box-shadow:var(--shadow-xl);text-align:center}.puzzle-confirm__title{font-size:var(--text-2xl)}.puzzle-confirm__text{color:var(--text-secondary);font-size:var(--text-sm)}.puzzle-confirm__actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.puzzle-confirm__actions .btn{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}@media (max-width: 640px){.puzzle__toolbar{gap:var(--space-2)}.puzzle__stats{order:3;width:100%;justify-content:space-around;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--surface-3)}.puzzle__stat strong{font-size:.8rem}.puzzle-result__stats{gap:var(--space-5);padding:var(--space-3) var(--space-4)}.puzzle-result__actions{flex-direction:column;width:100%}.puzzle-result__actions .btn{width:100%}}@media (prefers-reduced-motion: reduce){.puzzle__deco-heart,.puzzle-empty__icon{animation:none}.puzzle-tile{transition:none}.puzzle-board.is-shuffling .puzzle-tile{animation:none;transition:none}.puzzle-result__record.is-new{animation:none}}.letter{background:linear-gradient(180deg,transparent,rgba(192,132,252,.05),transparent)}.letter__stage{display:grid;place-items:center;min-height:320px}.envelope{position:relative;width:min(340px,86vw);aspect-ratio:3 / 2;border:none;padding:0;background:none;cursor:pointer;perspective:1200px;animation:float 7s ease-in-out infinite}.envelope__back{position:absolute;inset:0;background:linear-gradient(160deg,#e3b08a,#c58a63);border-radius:10px;box-shadow:0 26px 48px -22px #000000d9}.envelope__letter-peek{position:absolute;left:6%;right:6%;top:8%;height:78%;background:#fdf8f1;border-radius:6px;transform:translateY(14%);transition:transform .7s var(--ease-elastic)}.envelope:hover .envelope__letter-peek{transform:translateY(4%)}.envelope__front{position:absolute;inset:0;border-radius:10px;background:linear-gradient(200deg,#f0c9a4,#dda87f);clip-path:polygon(0 34%,50% 66%,100% 34%,100% 100%,0 100%)}.envelope__flap{position:absolute;inset:0 0 auto;height:62%;background:linear-gradient(180deg,#f7d7b6,#e5b78f);border-radius:10px 10px 0 0;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transition:transform .6s var(--ease-smooth);z-index:3}.envelope:hover .envelope__flap{transform:rotateX(24deg)}.envelope__seal{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-primary),#a4496c);box-shadow:0 0 22px #e97ba5a6;z-index:4;animation:glowPulse 3.4s ease-in-out infinite}.envelope__heart{color:#fff;font-size:1.05rem}.envelope__label{position:absolute;left:0;right:0;bottom:-44px;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-tertiary)}.letter__paper{position:relative;width:min(680px,100%);padding:clamp(var(--space-6),5vw,var(--space-12));background:linear-gradient(180deg,#fffffff5,#fdf8f1fa);border-radius:var(--radius-lg);box-shadow:0 40px 70px -40px #000000e6,0 0 0 1px #0000000d;color:#2e2830;animation:paperRise .8s var(--ease-elastic) both}@keyframes paperRise{0%{opacity:0;transform:translateY(60px) rotate(-2deg) scale(.94)}to{opacity:1;transform:none}}.letter__paper-edge{position:absolute;inset:10px;border:1px solid rgba(180,140,120,.28);border-radius:4px;pointer-events:none}.letter__text{font-family:var(--font-display);font-size:clamp(1rem,.95rem + .4vw,1.2rem);line-height:1.95;white-space:pre-wrap;min-height:8em;position:relative;z-index:1}.letter__caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--accent-primary);animation:caretBlink .9s steps(2,start) infinite}@keyframes caretBlink{0%,to{opacity:1}50%{opacity:0}}.letter__again{margin-top:var(--space-8);padding:var(--space-2) var(--space-5);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;background:none;border:1px solid rgba(46,40,48,.25);border-radius:var(--radius-full);color:#5a4f58;cursor:pointer;transition:all var(--duration-base) var(--ease-smooth)}.letter__again:hover{background:var(--accent-primary);border-color:transparent;color:#fff}@media (prefers-reduced-motion: reduce){.envelope,.letter__paper{animation:none}.letter__caret{display:none}}.openwhen{background:radial-gradient(closest-side at 18% 22%,rgba(192,132,252,.07),transparent),radial-gradient(closest-side at 82% 78%,rgba(233,123,165,.06),transparent)}.openwhen__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-4);max-width:960px;margin-inline:auto}.openwhen__card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:1.6rem 1.4rem 1.4rem;min-height:170px;text-align:left;border-radius:var(--radius-xl);border:1px solid rgba(233,123,165,.18);background:linear-gradient(155deg,#1e2636a6,#0a0d12e6);cursor:pointer;overflow:hidden;transition:transform var(--duration-base) var(--ease-smooth),border-color var(--duration-base),box-shadow var(--duration-base);-webkit-tap-highlight-color:transparent}.openwhen__card:hover,.openwhen__card:focus-visible{transform:translateY(-4px);border-color:#e97ba573;box-shadow:var(--shadow-lg),0 0 32px #e97ba51f;outline:none}.openwhen__flap{position:absolute;inset:0 0 auto;height:52%;background:linear-gradient(160deg,rgba(233,123,165,.16),transparent 70%);clip-path:polygon(0 0,100% 0,50% 100%);opacity:.8;pointer-events:none}.openwhen__emoji{position:relative;font-size:1.6rem;line-height:1}.openwhen__label{position:relative;font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.openwhen__hint{position:relative;margin-top:auto;font-size:var(--text-xs);letter-spacing:.08em;color:var(--text-tertiary);display:inline-flex;gap:.35rem;align-items:center}.openwhen__seal{position:absolute;right:1rem;bottom:1rem;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-circle);background:linear-gradient(135deg,var(--accent-primary),var(--accent-tertiary));color:#fff;font-size:.75rem;box-shadow:0 4px 14px #e97ba559;opacity:.9}.openwhen-modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:var(--space-5);background:#030408b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:openwhenFade .22s ease both}@keyframes openwhenFade{0%{opacity:0}to{opacity:1}}.openwhen-modal__card{position:relative;width:min(560px,100%);max-height:86vh;overflow-y:auto;padding:clamp(1.6rem,5vw,2.6rem);border-radius:var(--radius-2xl);border:1px solid rgba(233,123,165,.28);background:radial-gradient(closest-side at 50% 0%,rgba(233,123,165,.12),transparent),linear-gradient(165deg,#141824,#090b10);box-shadow:var(--shadow-xl),0 0 80px #e97ba524;animation:openwhenCard .32s var(--ease-smooth) both}@keyframes openwhenCard{0%{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.openwhen-modal__close{position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-circle);background:#ffffff0d;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.openwhen-modal__close:hover{background:#ffffff1f;color:var(--text-primary)}.openwhen-modal__emoji{display:inline-block;font-size:2rem;margin-bottom:var(--space-2)}.openwhen-modal__label{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-primary);margin-bottom:var(--space-4)}.openwhen-modal__message p{font-size:var(--text-base);line-height:1.75;color:var(--text-secondary);margin-bottom:var(--space-3)}.openwhen-modal__message p:first-child{color:var(--text-primary)}.openwhen-modal__sign{margin-top:var(--space-5);font-family:var(--font-display);font-style:italic;color:var(--accent-primary);text-align:right}@media (max-width: 560px){.openwhen__grid{grid-template-columns:repeat(2,1fr)}.openwhen__card{min-height:150px;padding:1.3rem 1.1rem 1.2rem}.openwhen__seal{width:26px;height:26px;right:.8rem;bottom:.8rem}}@media (prefers-reduced-motion: reduce){.openwhen-modal,.openwhen-modal__card{animation:none}.openwhen__card{transition:none}}.player{position:fixed;z-index:60;left:50%;bottom:max(var(--space-4),env(safe-area-inset-bottom));transform:translate(-50%);width:min(440px,calc(100% - var(--space-6)));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#10131cd1;border:1px solid var(--surface-4);border-radius:var(--radius-2xl);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 18px 40px -20px #000000e6;transition:border-color var(--duration-base) var(--ease-smooth)}.player:hover,.player.is-expanded{border-color:var(--accent-primary)}.player__cover{position:relative;width:44px;height:44px;padding:0;border:none;border-radius:var(--radius-md);overflow:hidden;background:linear-gradient(135deg,var(--surface-4),var(--surface-3));cursor:pointer;display:grid;place-items:center;flex-shrink:0}.player__cover img{width:100%;height:100%;object-fit:cover}.player__cover-fallback{font-size:1.2rem;color:var(--accent-primary)}.player__pulse{position:absolute;inset:0;border-radius:var(--radius-md);border:2px solid var(--accent-primary);animation:playerPulse 2s ease-out infinite}@keyframes playerPulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}.player__meta{display:flex;flex-direction:column;min-width:0}.player__title{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player__sub{font-size:.68rem;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player__controls{display:flex;align-items:center;gap:var(--space-1)}.player__icon{width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:color var(--duration-base)}.player__icon:hover{color:var(--accent-primary)}.player__play{width:40px;height:40px;display:grid;place-items:center;border:none;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--text-inverse);font-size:.8rem;cursor:pointer;box-shadow:0 0 18px #e97ba573;transition:transform var(--duration-base) var(--ease-smooth)}.player__play:active{transform:scale(.92)}.player__expanded{grid-column:1 / -1;display:none;flex-direction:column;gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-2)}.player.is-expanded .player__expanded{display:flex;animation:fadeIn .22s var(--ease-smooth) both}.player__progress{height:4px;border-radius:var(--radius-full);background:var(--surface-4);overflow:hidden;cursor:pointer}.player__progress-fill{height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,var(--accent-secondary),var(--accent-primary));transition:transform .2s linear}.player__volume{display:flex;align-items:center;gap:var(--space-2);font-size:.8rem;color:var(--text-tertiary)}.player__volume input[type=range]{padding:0;border:none;background:transparent;height:20px;accent-color:var(--accent-primary)}.player__volume input[type=range]:focus{box-shadow:none}@media (max-width: 420px){.player{width:calc(100% - var(--space-3));gap:var(--space-2);padding:var(--space-2)}.player__cover{width:40px;height:40px}.player__title{font-size:.8rem}.player__meta .player__sub{display:block;font-size:.62rem}.player__controls{gap:0}.player__icon{width:26px;height:26px}.player__play{width:36px;height:36px}}.gift__stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);min-height:260px;justify-content:center}.giftbox{position:relative;width:min(190px,56vw);aspect-ratio:1 / 1;border:none;background:none;padding:0;cursor:pointer;transition:transform var(--duration-base) var(--ease-smooth);animation:float 6s ease-in-out infinite}.giftbox:hover{transform:translateY(-4px) rotate(-1.5deg)}.giftbox:active{transform:scale(.97)}.giftbox__body{position:absolute;inset:32% 6% 6%;border-radius:8px;background:linear-gradient(160deg,#e97ba5,#b44b72);box-shadow:inset -10px 0 20px #00000038,0 22px 40px -20px #000000d9}.giftbox__ribbon{position:absolute;top:0;bottom:0;left:50%;width:18%;transform:translate(-50%);background:linear-gradient(180deg,#ffd88a,#f4a460);box-shadow:0 0 16px #f4a46099}.giftbox__lid{position:absolute;top:20%;left:2%;right:2%;height:20%;border-radius:6px;background:linear-gradient(160deg,#f790b3,#c85c84);box-shadow:0 10px 18px -10px #000c;z-index:2;transition:transform .5s var(--ease-elastic);transform-origin:center left}.giftbox:hover .giftbox__lid{transform:translateY(-6px) rotate(-3deg)}.giftbox__bow{position:absolute;top:-34%;left:50%;width:44%;height:60%;transform:translate(-50%);background:radial-gradient(circle at 22% 30%,#ffd88a,#f4a460 70%) left/48% 100% no-repeat,radial-gradient(circle at 78% 30%,#ffd88a,#f4a460 70%) right/48% 100% no-repeat;border-radius:50% 50% 40% 40%;filter:drop-shadow(0 0 10px rgba(244,164,96,.55))}.giftbox__shine{position:absolute;inset:0;border-radius:12px;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.28),transparent 52%);pointer-events:none}.gift__hint{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-tertiary)}.gift__reveal{position:relative;width:min(560px,100%);display:grid;place-items:center;padding:var(--space-10) var(--space-6);animation:fadeIn .5s var(--ease-smooth) both}.gift__message{position:relative;z-index:2;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.7;text-align:center;color:var(--text-primary);padding:var(--space-6) var(--space-5);background:#ffffff0a;border:1px solid var(--surface-4);border-radius:var(--radius-xl);backdrop-filter:blur(8px);box-shadow:0 0 44px -12px #e97ba58c;animation:messagePop .7s var(--ease-elastic) both}@keyframes messagePop{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}.gift__rays{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg 8deg,rgba(244,164,96,.16) 8deg 14deg,transparent 14deg 24deg);animation:raysSpin 16s linear infinite;pointer-events:none;mask-image:radial-gradient(circle,#000 20%,transparent 72%)}@keyframes raysSpin{to{transform:rotate(360deg)}}.gift__sparks span{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:var(--accent-secondary);box-shadow:0 0 12px var(--accent-secondary);animation:sparkFly 1s var(--ease-smooth) var(--delay) both}@keyframes sparkFly{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(.4)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-150px) scale(1)}}.gift__orb{position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(233,123,165,.5),transparent 68%);animation:orbGrow .9s var(--ease-elastic) both}@keyframes orbGrow{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.giftbox,.gift__rays,.gift__sparks span,.gift__orb{animation:none}}.wishes{position:relative;overflow:hidden;text-align:center;padding-bottom:calc(var(--space-20) + 160px)}@media (max-width: 767px){.wishes{padding-bottom:calc(var(--space-16) + 120px)}}.wishes__glow{position:absolute;bottom:-30%;left:50%;width:120%;height:90%;transform:translate(-50%);background:radial-gradient(closest-side,rgba(233,123,165,.24),transparent 72%);filter:blur(50px);pointer-events:none}.wishes__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-5);max-width:680px}.wishes__title{font-size:var(--text-4xl);font-style:italic;background:linear-gradient(110deg,var(--text-primary),var(--accent-primary));-webkit-background-clip:text;background-clip:text;color:transparent}.wishes__body{color:var(--text-secondary);font-size:var(--text-base);max-width:44ch}.wishes__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-2)}.wishes__actions .btn{padding:var(--space-3) var(--space-6);font-size:var(--text-sm)}.wishes__jar-area{display:flex;justify-content:center;margin-top:var(--space-2)}.wishes__jar-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-3);border:0;border-radius:var(--radius-xl);background:transparent;color:var(--text-primary);cursor:pointer;transition:transform var(--duration-base) var(--ease-smooth);-webkit-tap-highlight-color:transparent}.wishes__jar-btn:hover{transform:translateY(-3px)}.wishes__jar-btn:active{transform:translateY(-1px) scale(.98)}.wishes__jar-btn:focus-visible{outline:2px solid var(--accent-tertiary);outline-offset:6px}.wishes__jar-btn:disabled{cursor:not-allowed;opacity:.6}.wishes__jar-glow{position:absolute;top:16%;left:50%;width:200px;height:200px;transform:translate(-50%) scale(.8);border-radius:50%;background:radial-gradient(closest-side,rgba(244,164,96,.3),rgba(233,123,165,.14),transparent 75%);filter:blur(12px);opacity:.4;transition:opacity .3s var(--ease-smooth),transform .3s var(--ease-smooth);pointer-events:none}.wishes__jar-btn.is-opening .wishes__jar-glow{opacity:1;transform:translate(-50%) scale(1.15);animation:jarGlowPulse .9s var(--ease-smooth) both}.wishes__jar-scene{position:relative;display:block;width:136px;height:178px}.wishes__jar-btn.is-opening .wishes__jar-scene{animation:jarShake .9s var(--ease-smooth) both}.wishes__jar-lid{position:absolute;top:6px;left:50%;z-index:4;width:58px;height:16px;transform:translate(-50%);border-radius:6px 6px 4px 4px;background:linear-gradient(180deg,#f6d49b,#c98a4b 70%,#a86b35);box-shadow:0 3px #0003,inset 0 1px #ffffff80}.wishes__jar-btn.is-opening .wishes__jar-lid{animation:jarLidPop .95s var(--ease-elastic) both}.wishes__jar-neck{position:absolute;top:21px;left:50%;z-index:2;width:44px;height:16px;transform:translate(-50%);border-radius:4px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(180deg,#ffffff38,#ffffff14)}.wishes__jar-body{position:absolute;top:34px;left:50%;z-index:1;width:126px;height:136px;transform:translate(-50%);overflow:hidden;border-radius:24px 24px 32px 32px;border:1px solid rgba(255,255,255,.3);background:linear-gradient(150deg,#ffffff2e,#ffffff0a 42%,#e97ba517);box-shadow:inset 0 0 0 1px #ffffff0d,inset -10px -12px 24px #0003,inset 10px 12px 26px #ffffff0f,0 20px 38px #0000004d}.wishes__jar-fill{position:absolute;left:8px;right:8px;bottom:8px;height:64%;border-radius:16px 16px 26px 26px;background:radial-gradient(circle at 28% 24%,rgba(253,251,247,.3),transparent 58%),linear-gradient(180deg,#f4a46029,#e97ba547)}.wishes__jar-fill:after{content:"";position:absolute;inset:0;opacity:.35;background-image:radial-gradient(rgba(253,251,247,.5) 1px,transparent 1.5px);background-size:14px 14px}.wishes__jar-shine{position:absolute;top:52px;left:24px;z-index:3;width:12px;height:70px;transform:rotate(7deg);border-radius:var(--radius-full);background:linear-gradient(180deg,rgba(255,255,255,.55),transparent);filter:blur(1px);opacity:.5;pointer-events:none}.wishes__note{position:absolute;z-index:2;width:30px;height:22px;border-radius:4px;background:#fdfbf7;box-shadow:0 3px 8px #00000040;transform:rotate(var(--r, 0deg))}.wishes__note:after{content:"♥";position:absolute;inset:0;display:grid;place-items:center;color:#e97ba5b3;font-size:9px}.wishes__note--1{top:102px;left:18px;--r: -13deg;background:#ffe3ee}.wishes__note--2{top:112px;right:20px;--r: 10deg;background:#fff0d6}.wishes__note--3{top:82px;left:44px;--r: 5deg;background:#f1e7ff}.wishes__note--4{top:78px;right:36px;--r: -7deg;background:#e2f4ff}.wishes__note--5{top:126px;left:50px;--r: -3deg;background:#fff}.wishes__jar-btn.is-opening .wishes__note{animation:jarNoteFloat 1s var(--ease-smooth) both}.wishes__jar-btn.is-opening .wishes__note--1{animation-delay:40ms}.wishes__jar-btn.is-opening .wishes__note--2{animation-delay:.1s}.wishes__jar-btn.is-opening .wishes__note--3{animation-delay:.15s}.wishes__jar-btn.is-opening .wishes__note--4{animation-delay:.21s}.wishes__jar-btn.is-opening .wishes__note--5{animation-delay:.27s}.wishes__jar-spark{position:absolute;z-index:5;color:var(--accent-secondary);font-size:.72rem;line-height:1;opacity:0;pointer-events:none;text-shadow:0 0 10px rgba(244,164,96,.7)}.wishes__jar-spark--1{top:6px;right:6px;--sx: 10px;--sy: -14px}.wishes__jar-spark--2{top:44px;left:2px;--sx: -12px;--sy: -8px;font-size:.56rem}.wishes__jar-spark--3{top:30px;right:0;--sx: 14px;--sy: 6px;font-size:.5rem}.wishes__jar-btn.is-opening .wishes__jar-spark{animation:jarSpark .9s var(--ease-smooth) both}.wishes__jar-btn.is-opening .wishes__jar-spark--2{animation-delay:.12s}.wishes__jar-btn.is-opening .wishes__jar-spark--3{animation-delay:60ms}.wishes__jar-label{display:flex;flex-direction:column;gap:2px;text-align:center}.wishes__jar-label strong{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:.01em}.wishes__jar-label span{color:var(--text-tertiary);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}@keyframes jarShake{0%,to{transform:rotate(0) translateY(0)}12%{transform:rotate(-3deg) translateY(-2px)}24%{transform:rotate(2.5deg) translateY(0)}36%{transform:rotate(-2deg) translateY(-1px)}48%{transform:rotate(1.5deg)}60%{transform:rotate(-1deg)}}@keyframes jarLidPop{0%{transform:translate(-50%) translateY(0) rotate(0)}45%{transform:translate(-50%) translateY(-26px) rotate(-6deg)}70%{transform:translate(-50%) translateY(-18px) rotate(4deg)}to{transform:translate(-50%) translateY(0) rotate(0)}}@keyframes jarNoteFloat{0%{opacity:1;transform:rotate(var(--r, 0deg)) translateY(0) scale(1)}30%{opacity:1;transform:rotate(calc(var(--r, 0deg) - 4deg)) translateY(-22px) scale(1.06)}55%{opacity:.95;transform:rotate(calc(var(--r, 0deg) + 8deg)) translateY(-62px) scale(1.05)}78%{opacity:.85;transform:rotate(calc(var(--r, 0deg) - 2deg)) translateY(-30px) scale(1.02)}to{opacity:1;transform:rotate(var(--r, 0deg)) translateY(0) scale(1)}}@keyframes jarSpark{0%{opacity:0;transform:translate(0) scale(.4) rotate(0)}35%{opacity:1}to{opacity:0;transform:translate(var(--sx, 0),var(--sy, -10px)) scale(1.2) rotate(40deg)}}@keyframes jarGlowPulse{0%{opacity:.5}35%{opacity:1}to{opacity:.55}}.wishes__surprise{margin:var(--space-4) 0 0;padding:var(--space-5) var(--space-6);font-family:var(--font-display);font-size:var(--text-lg);font-style:italic;color:var(--accent-secondary);border-left:2px solid var(--accent-secondary);text-align:left;max-width:46ch;animation:wishReveal .52s var(--ease-elastic) both}@keyframes wishReveal{0%{opacity:0;transform:translateY(10px) scale(.98);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}.wishes__share-state{font-size:var(--text-xs);color:var(--text-tertiary);word-break:break-all}.wishes__closing{margin-top:var(--space-6);font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);max-width:34ch}.wishes__footer{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-8)}.wishes__footer .btn{padding:var(--space-3) var(--space-6);font-size:var(--text-sm)}.wishes__signature{margin-top:var(--space-10);font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--text-tertiary)}@media (prefers-reduced-motion: reduce){.wishes__jar-btn,.wishes__jar-glow,.wishes__surprise{transition:none}.wishes__jar-btn.is-opening .wishes__jar-scene,.wishes__jar-btn.is-opening .wishes__jar-lid,.wishes__jar-btn.is-opening .wishes__note,.wishes__jar-btn.is-opening .wishes__jar-spark,.wishes__jar-btn.is-opening .wishes__jar-glow,.wishes__surprise{animation:none}}.particles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.85}@media (max-width: 520px){.particles{opacity:.6}}.countdown{position:fixed;top:max(var(--space-3),env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:55;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);background:#10131cbf;border:1px solid var(--surface-4);border-radius:var(--radius-full);backdrop-filter:blur(12px);animation:fadeIn .6s var(--ease-smooth) both}.countdown--today{color:var(--accent-secondary);border-color:#f4a46066;text-transform:none;letter-spacing:.04em;font-size:var(--text-xs)}.countdown__label{color:var(--text-tertiary)}.countdown__value{color:var(--accent-primary);font-weight:500;font-variant-numeric:tabular-nums}@media (max-width: 767px){.countdown{left:max(var(--space-3),env(safe-area-inset-left));transform:none;max-width:calc(100% - 110px - env(safe-area-inset-right));flex-wrap:wrap;gap:2px var(--space-2);padding:var(--space-2) var(--space-3)}}@media (max-width: 380px){.countdown{font-size:.62rem;padding:var(--space-1) var(--space-3)}}:root{--surface-0: #05070C;--surface-1: #0A0D12;--surface-2: #0F131C;--surface-3: #161D2B;--surface-4: #1E2636;--surface-5: #2A3447;--accent-primary: #E97BA5;--accent-secondary: #F4A460;--accent-tertiary: #C084FC;--accent-glow: #FF69B4;--rose-muted: #9D7087;--amber-muted: #A67C52;--lavender-muted: #8B7AA8;--text-primary: #F8F9FA;--text-secondary: #C1C7CD;--text-tertiary: #8B92A0;--text-inverse: #0A0D12;--font-display: "Playfair Display", serif;--font-body: "Inter", sans-serif;--text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--text-sm: clamp(.875rem, .8rem + .375vw, 1rem);--text-base: clamp(1rem, .925rem + .375vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .625vw, 1.375rem);--text-xl: clamp(1.25rem, 1.1rem + .75vw, 1.625rem);--text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);--text-3xl: clamp(1.875rem, 1.6rem + 1.375vw, 2.625rem);--text-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 3.375rem);--text-5xl: clamp(3rem, 2.5rem + 2.5vw, 4.5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 999px;--radius-circle: 50%;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(233, 123, 165, .4);--shadow-glow-intense: 0 0 40px rgba(233, 123, 165, .6);--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--duration-slower: .6s;--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-elastic: cubic-bezier(.175, .885, .32, 1.275)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--text-primary);background:var(--surface-0);overflow-x:hidden;position:relative}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.02em}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}h3{font-size:var(--text-3xl)}h4{font-size:var(--text-2xl)}h5{font-size:var(--text-xl)}h6{font-size:var(--text-lg)}p{line-height:1.75;letter-spacing:.01em}a{color:var(--accent-primary);text-decoration:none;transition:color var(--duration-base) var(--ease-smooth)}a:hover{color:var(--accent-glow)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--space-4)}@media (min-width: 768px){.container{padding:0 var(--space-8)}}.section{position:relative;padding:var(--space-20) 0;min-height:100vh;display:flex;flex-direction:column;justify-content:center}@media (max-width: 767px){.section{padding:var(--space-16) 0;min-height:auto}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);position:relative;overflow:hidden}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:var(--text-inverse);box-shadow:var(--shadow-md)}.btn-primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-secondary{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--surface-4)}.btn-secondary:hover{background:var(--surface-4);border-color:var(--accent-primary)}.btn-ghost{background:transparent;color:var(--accent-primary)}.btn-ghost:hover{background:#e97ba51a}.card{background:var(--surface-2);border-radius:var(--radius-xl);padding:var(--space-6);border:1px solid var(--surface-3);transition:all var(--duration-base) var(--ease-smooth)}.card:hover{background:var(--surface-3);border-color:var(--accent-primary);box-shadow:var(--shadow-lg)}input,textarea,select{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--surface-2);border:1px solid var(--surface-4);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:all var(--duration-base) var(--ease-smooth);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #e97ba533}.spinner{width:40px;height:40px;border:3px solid var(--surface-4);border-top-color:var(--accent-primary);border-radius:var(--radius-circle);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px #e97ba566}50%{box-shadow:0 0 40px #e97ba5cc}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--surface-1)}::-webkit-scrollbar-thumb{background:var(--surface-4);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}::selection{background:var(--accent-primary);color:var(--text-inverse)}.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:radial-gradient(circle at 50% 40%,var(--surface-3),var(--surface-0) 70%);color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase}.boot-heart{font-size:2.5rem;color:var(--accent-primary);animation:heartbeat 1.4s var(--ease-smooth) infinite}@keyframes heartbeat{0%,to{transform:scale(1);opacity:.75}40%{transform:scale(1.18);opacity:1}60%{transform:scale(1.05);opacity:.9}}.section-heading{text-align:center;margin-bottom:var(--space-12)}.section-heading__eyebrow{display:inline-block;font-size:var(--text-xs);letter-spacing:.32em;text-transform:uppercase;color:var(--accent-primary);margin-bottom:var(--space-3)}.section-heading__title{font-size:var(--text-4xl);margin-bottom:var(--space-3)}.section-heading__subtitle{color:var(--text-tertiary);max-width:46ch;margin:0 auto;font-size:var(--text-base)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-smooth),transform .7s var(--ease-smooth)}.reveal.is-visible{opacity:1;transform:none}[data-theme=light]{--accent-primary-ink: #a35673;--accent-primary-ink: color-mix(in srgb, var(--accent-primary) 62%, #241c20);--accent-secondary-ink: #9a5b2c;--accent-secondary-ink: color-mix(in srgb, var(--accent-secondary) 54%, #3a2418);--accent-tertiary-ink: #7d56a4;--accent-tertiary-ink: color-mix(in srgb, var(--accent-tertiary) 64%, #241c20);--shadow-sm: 0 1px 2px rgba(74, 47, 58, .07);--shadow-md: 0 6px 18px rgba(74, 47, 58, .08);--shadow-lg: 0 14px 34px rgba(74, 47, 58, .1);--shadow-xl: 0 24px 60px rgba(74, 47, 58, .14);--shadow-glow: 0 0 24px rgba(233, 123, 165, .18);--shadow-glow-intense: 0 0 42px rgba(233, 123, 165, .28)}[data-theme=light] a{color:var(--accent-primary-ink)}[data-theme=light] a:hover{color:var(--accent-secondary-ink)}[data-theme=light] .btn-ghost{color:var(--accent-primary-ink)}[data-theme=light] .hero__eyebrow,[data-theme=light] .timeline__date,[data-theme=light] .countdown--today,[data-theme=light] .opening__hint--warn,[data-theme=light] .opening__done,[data-theme=light] .puzzle-result__eyebrow,[data-theme=light] .picker__difficulty-best,[data-theme=light] .puzzle-result__record,[data-theme=light] .wishes__surprise{color:var(--accent-secondary-ink)}[data-theme=light] .countdown__value,[data-theme=light] .mic-meter__label,[data-theme=light] .puzzle-collection__best,[data-theme=light] .openwhen-modal__sign,[data-theme=light] .puzzle-result__record.is-new{color:var(--accent-primary-ink)}[data-theme=light] .wishes__surprise{border-left-color:var(--accent-secondary-ink)}[data-theme=light] .hero__date{background:#241c2009}[data-theme=light] .hero__stars{opacity:.55;background-image:radial-gradient(1.4px 1.4px at 12% 22%,rgba(151,91,112,.35),transparent),radial-gradient(1.2px 1.2px at 78% 16%,rgba(151,91,112,.28),transparent),radial-gradient(1.6px 1.6px at 62% 74%,rgba(151,91,112,.26),transparent),radial-gradient(1.1px 1.1px at 28% 82%,rgba(151,91,112,.24),transparent),radial-gradient(1.3px 1.3px at 88% 58%,rgba(151,91,112,.22),transparent),radial-gradient(1px 1px at 42% 38%,rgba(151,91,112,.2),transparent)}[data-theme=light] .opening__vignette{background:radial-gradient(circle at 50% 50%,transparent 48%,rgba(61,39,50,.16) 100%)}[data-theme=light] .opening__skip{background:#241c200b}[data-theme=light] .opening__title{background:linear-gradient(120deg,var(--accent-secondary-ink),var(--accent-primary),var(--accent-tertiary-ink));-webkit-background-clip:text;background-clip:text}[data-theme=light] .countdown{background:#fffaf8d6;box-shadow:0 12px 30px -20px #4a2f3a73}[data-theme=light] .player{background:#fffaf8e0;box-shadow:0 20px 44px -26px #4a2f3a80}[data-theme=light] .player__icon:hover{color:var(--accent-primary-ink)}[data-theme=light] .lovecounter__card{border-color:#e97ba53d;background:radial-gradient(closest-side at 50% 0%,rgba(233,123,165,.14),transparent),linear-gradient(160deg,#fffaf8,#f8ebef);box-shadow:0 24px 60px -34px #4a2f3a52,0 0 60px #e97ba512}[data-theme=light] .lovecounter__glow{opacity:.55}[data-theme=light] .openwhen__card{border-color:#e97ba538;background:linear-gradient(155deg,#fffaf8,#f9edf1)}[data-theme=light] .openwhen__card:hover,[data-theme=light] .openwhen__card:focus-visible{border-color:#e97ba573;box-shadow:var(--shadow-lg),0 0 32px #e97ba514}[data-theme=light] .openwhen__flap{background:linear-gradient(160deg,rgba(233,123,165,.14),transparent 70%)}[data-theme=light] .openwhen-modal,[data-theme=light] .puzzle-confirm,[data-theme=light] .puzzle-collection{background:#36212c6b}[data-theme=light] .openwhen-modal__card{border-color:#e97ba542;background:radial-gradient(closest-side at 50% 0%,rgba(233,123,165,.12),transparent),linear-gradient(165deg,#fffaf8,#f8ebef);box-shadow:0 30px 80px -42px #2d18228c,0 0 80px #e97ba514}[data-theme=light] .openwhen-modal__close{border-color:var(--surface-4);background:#241c200d}[data-theme=light] .openwhen-modal__close:hover{background:#241c2017}[data-theme=light] .gift__message{background:#fffaf8c7;box-shadow:0 24px 60px -34px #4a2f3a52,0 0 44px -18px #e97ba56b}[data-theme=light] .lightbox{background:#f8f1ecf7}[data-theme=light] .lightbox__close,[data-theme=light] .lightbox__nav{border-color:var(--surface-4);background:#fffaf8bd;color:var(--text-primary);box-shadow:0 8px 20px -14px #4a2f3a73}[data-theme=light] .puzzle-empty{background:#241c2006}[data-theme=light] .picker__session{background:#241c2008}[data-theme=light] .puzzle-collection__item{background:#fffaf8b8}[data-theme=light] .puzzle-board{box-shadow:var(--shadow-xl),0 0 0 6px #4a2f3a09}[data-theme=light] .puzzle-result__record{border-color:#f4a46061;background:#f4a4601f}[data-theme=light] .puzzle-result__record.is-new{border-color:#e97ba56b;background:#e97ba521;box-shadow:0 0 22px #e97ba529}[data-theme=light] .picker__error{color:#b42318}[data-theme=light] .letter__paper{box-shadow:0 40px 70px -44px #4a2f3a80,0 0 0 1px #0000000d}
