:root{--black:#0a0506;--ink:#120809;--burgundy:#5a0f1f;--burgundy-2:#7d1a2e;--wine:#2a0710;--ivory:#f5ecdc;--ivory-2:#e9dcc4;--gold:#c99a3c;--gold-2:#e8c77a;--gold-3:#f6e2a8;--saffron:#d9822b;--peacock:#1f5c5a;--muted:#f5ecdcc7;--display:"DM Serif Display", Georgia, serif;--serif:"EB Garamond", Georgia, serif;--sans:"Manrope", system-ui, sans-serif;--script:"Great Vibes", cursive;--ease:cubic-bezier(.16, 1, .3, 1);--gutter:clamp(20px, 5vw, 64px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--black);color:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-synthesis:none;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0}:focus-visible{outline:1.5px solid var(--gold-2);outline-offset:4px}img{max-width:100%;display:block}.grain-overlay{z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.9s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}.particles{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.fullscreen{z-index:10;background:var(--black);position:fixed;inset:0}.btn{min-height:52px;font-family:var(--sans);letter-spacing:.24em;text-transform:uppercase;transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s;border-radius:999px;align-items:center;gap:.75em;padding:1em 1.9em;font-size:.78rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-gold{color:#1a0a05;background:linear-gradient(120deg,#a5782a,#f3d68c 45%,#c99a3c 70%,#8a6420) 0 0/200% 100%;animation:6s ease-in-out infinite goldshift;box-shadow:0 10px 40px -10px #c99a3c99,inset 0 1px #fff6}@keyframes goldshift{50%{background-position:100% 0}}@media (hover:hover){.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 50px -12px #c99a3cbf,inset 0 1px #fff6}.btn-ghost:hover{background:#e8c77a14}}.btn-ghost{color:var(--gold-2);border:1px solid #e8c77a66}.gate{z-index:20;text-align:center;background:radial-gradient(ellipse at 50% 40%, #2a0a12 0%, var(--black) 65%);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;display:flex;position:fixed;inset:0}.gate-emblem{opacity:.9;margin-bottom:10px;animation:60s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gate-eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--gold-2);margin:0;font-size:.72rem}.gate-title{max-width:16ch;font-family:var(--serif);margin:0 0 18px;font-size:clamp(1.9rem,6vw,3rem);font-style:italic;font-weight:400;line-height:1.12}.gate-note{color:var(--muted);margin:8px 0 0;font-size:.8rem}.emblem.draw path,.emblem.draw circle:not(.nodraw){stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 3.2s var(--ease) forwards}.emblem.draw path:nth-of-type(2n){animation-delay:.3s}@keyframes draw{to{stroke-dashoffset:0}}.logo{transform-style:preserve-3d;place-items:center;display:grid;position:relative}.logo-rays{pointer-events:none;background:repeating-conic-gradient(#e8c77a14 0deg 3deg,#0000 3deg 15deg);width:220vmax;height:220vmax;animation:80s linear infinite spin;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 32%);mask-image:radial-gradient(circle,#000 0%,#0000 32%)}.logo-emblem{opacity:.38;filter:drop-shadow(0 0 18px #e8c77a40);grid-area:1/1}.logo-emblem .emblem{width:min(360px,82vw);height:auto;animation:120s linear infinite spin}.logo-type{text-align:center;grid-area:1/1;position:relative}.logo-word{font-family:var(--display);letter-spacing:.06em;color:#0000;background:linear-gradient(#fff6d6 0%,#f3d68c 32%,#c99a3c 55%,#f0cf7d 72%,#8a6420 100%);-webkit-background-clip:text;background-clip:text;padding-left:.06em;font-size:clamp(3.1rem,15vw,9rem);font-weight:800;line-height:1;position:relative}.logo-word:before{content:attr(data-text);z-index:-1;color:#3d2608;text-shadow:0 1px #6b4a14,0 2px #5d3f10,0 3px #50360d,0 4px #432c0a,0 5px #382408,0 6px #2c1c06,0 14px 30px #000000e6,0 0 60px #e8a03c40;padding-left:.06em;position:absolute;inset:0}.logo-word:after{content:attr(data-text);color:#0000;background:linear-gradient(105deg,#0000 40%,#fffffff2 50%,#0000 60%) 150% 0/250% 100%;animation:sweep 4.5s var(--ease) 1.6s infinite;-webkit-background-clip:text;background-clip:text;padding-left:.06em;position:absolute;inset:0}@keyframes sweep{0%{background-position:150% 0}45%,to{background-position:-60% 0}}.logo-rule{color:var(--gold-2);justify-content:center;align-items:center;gap:14px;margin:.9em auto .7em;font-size:.8rem;display:flex}.logo-rule span{background:linear-gradient(90deg, transparent, var(--gold-2), transparent);width:clamp(40px,12vw,110px);height:1px}.logo-rule i{font-style:normal}.logo-sub{font-family:var(--sans);letter-spacing:.9em;color:var(--gold-3);padding-left:.9em;font-size:clamp(.8rem,2.6vw,1.2rem);font-weight:500}.logo-sm .logo-word{font-size:clamp(2.2rem,10vw,4.4rem)}.logo-sm .logo-sub{font-size:.72rem}.logo-sm .logo-emblem .emblem{width:min(220px,60vw)}.logo-sm .logo-rays{width:120vmax;height:120vmax}.intro{perspective:900px;background:radial-gradient(#170a0c 0%,#050203 70%);position:absolute;inset:0;overflow:hidden}.letterbox{z-index:5;background:#000;height:clamp(28px,7vh,70px);position:absolute;left:0;right:0}.letterbox.top{top:0}.letterbox.bottom{bottom:0}.flicker{z-index:4;pointer-events:none;background:radial-gradient(#0000 45%,#000000bf 100%);animation:.18s steps(2,end) infinite flicker;position:absolute;inset:0}@keyframes flicker{50%{opacity:.88}}.scene{padding:80px var(--gutter);text-align:center;place-items:center;display:grid;position:absolute;inset:0}.camera{transform-style:preserve-3d;will-change:transform}.presents{font-family:var(--serif);color:var(--ivory);text-transform:lowercase;margin:0;padding-left:.6em;font-size:clamp(1.6rem,5vw,2.6rem);font-style:italic}.credit{flex-direction:column;align-items:center;gap:14px;display:flex}.credit-small{font-family:var(--serif);color:var(--gold-2);font-size:clamp(1.1rem,3.6vw,1.6rem);font-style:italic}.credit-big{font-family:var(--display);text-transform:uppercase;color:var(--ivory);text-shadow:0 0 40px #e8c77a40;font-size:clamp(1.9rem,8vw,4.6rem);font-weight:500;line-height:1.05}.credit-star .credit-big{text-transform:none;color:#0000;background:linear-gradient(#fff6d6,#e8c77a 50%,#b0832d);-webkit-background-clip:text;background-clip:text;padding:0 .1em .12em;font-size:clamp(2.4rem,11vw,6rem);font-style:italic}.credit-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:min(320px,60vw);height:1px}.cert{background:#0e0607;border:1px solid #e8c77a80;width:min(560px,100%);max-height:calc(100svh - 2*clamp(28px,7vh,70px) - 20px);padding:8px;overflow:hidden;box-shadow:0 30px 80px #000000b3}.cert-inner{text-align:left;background:radial-gradient(at 20% 0,#7d1a2e59,#0000 60%),#120709;border:1px solid #e8c77a40;padding:clamp(16px,4vw,30px);position:relative}.cert-board{text-align:center;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);margin:0;font-size:clamp(.58rem,2vw,.7rem)}.cert-no{text-align:center;letter-spacing:.2em;color:var(--muted);margin:4px 0 14px;font-size:.72rem}.cert-head{border-bottom:1px solid #e8c77a33;align-items:center;gap:16px;padding-bottom:14px;display:flex}.cert-badge{aspect-ratio:1;border:2px solid var(--gold-2);text-align:center;width:clamp(64px,18vw,86px);line-height:1;font-family:var(--display);color:var(--gold-2);border-radius:50%;flex:none;place-content:center;display:grid;box-shadow:inset 0 0 0 4px #120709,inset 0 0 0 5px #e8c77a80}.cert-badge span{font-size:clamp(1.1rem,4vw,1.5rem);font-weight:700}.cert-badge b{margin-top:3px;font-size:.8rem}.cert-certified{letter-spacing:.4em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.7rem}.cert-rating{font-family:var(--display);color:var(--ivory);margin:0;font-size:clamp(2rem,9vw,3.4rem);font-weight:700;line-height:1}.cert-fields{gap:2px;margin:12px 0;font-size:clamp(.72rem,2.6vw,.85rem);display:grid}.cert-fields div{gap:10px;display:flex}.cert-fields dt{width:7.5em;color:var(--muted);flex:none}.cert-fields dd{font-family:var(--serif);margin:0;font-size:1.15em;font-style:italic}.cert-lines p{font-family:var(--serif);margin:0 0 8px;font-size:clamp(.98rem,3.4vw,1.15rem);line-height:1.35}.cert-lines p:first-child{color:var(--gold-3);font-weight:500}.cert-sign{color:var(--gold-2);letter-spacing:.18em;text-transform:uppercase;flex-direction:column;align-items:flex-end;margin-top:12px;font-size:.7rem;display:flex}.cert-sign svg{width:110px;height:28px}.cert-stamp{color:#d8404c;font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;text-align:center;mix-blend-mode:screen;border:3px double #c8323f;border-radius:6px;padding:6px 14px 4px;font-size:clamp(1.1rem,4vw,1.5rem);font-weight:700;line-height:1;position:absolute;bottom:clamp(14px,3vw,24px);left:clamp(16px,4vw,30px)}.cert-stamp small{font-family:var(--sans);letter-spacing:.3em;margin-top:3px;font-size:.6rem;display:block}.begin{max-width:14ch;font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);text-shadow:0 0 40px #e8c77a59;margin:0;font-size:clamp(1.9rem,7vw,4.2rem);font-weight:500;line-height:1.1}.leader{aspect-ratio:1;color:#f5ecdcb3;filter:sepia(.5);background:radial-gradient(circle,#3a2b22 0%,#1a1210 70%);border-radius:50%;place-items:center;width:min(68vmin,420px);display:grid;position:relative}.leader svg{z-index:2;width:100%;height:100%;position:absolute;inset:0}.leader-sweep{background:conic-gradient(from 0deg, #f5ecdc66 0deg, #f5ecdc66 var(--a,0deg), transparent var(--a,0deg));border-radius:50%;animation:1s linear forwards leaderSweep;position:absolute;inset:0}@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes leaderSweep{to{--a:360deg}}.leader-n{z-index:3;font-family:var(--display);color:var(--ivory);font-size:min(42vmin,260px);font-weight:700;line-height:1;position:relative}.flash{background:#fff4dc}.skip{z-index:30;right:var(--gutter);letter-spacing:.25em;text-transform:uppercase;color:#f5ecdcb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a050680;border:1px solid #f5ecdc33;border-radius:999px;min-height:42px;padding:10px 18px;font-size:.7rem;transition:color .3s,border-color .3s;position:absolute;bottom:max(6px,clamp(28px,7vh,70px)/2 - 21px)}.skip:hover{color:var(--gold-2);border-color:#e8c77a80}@media (width<=520px){.scene{padding:64px 14px}.cert{max-height:none;padding:6px;overflow:visible}.cert-inner{padding:16px 14px}.cert-board{letter-spacing:.2em}.cert-no{margin-bottom:10px}.cert-head{gap:12px;padding-bottom:10px}.cert-rating{white-space:nowrap;font-size:2rem}.cert-fields{margin:8px 0;font-size:.72rem}.cert-fields dt{width:6.6em}.cert-lines p{margin-bottom:6px;font-size:.98rem}.cert-sign{margin-top:6px}.cert-sign svg{width:80px;height:20px}.cert-stamp{padding:4px 10px 3px;font-size:1rem}}.controls{z-index:60;top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));left:max(14px, env(safe-area-inset-left));pointer-events:none;justify-content:flex-end;align-items:center;gap:8px;display:flex;position:fixed}.controls>*{pointer-events:auto}.mini-mark{font-family:var(--display);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);-webkit-backdrop-filter:blur(8px);background:#0a05068c;border:1px solid #e8c77a2e;border-radius:999px;align-items:center;height:44px;margin-right:auto;padding:0 16px;font-size:.72rem;display:inline-flex}.ctl{width:44px;height:44px;color:var(--gold-2);-webkit-backdrop-filter:blur(8px);transition:border-color .3s, transform .3s var(--ease);background:#0a05068c;border:1px solid #e8c77a47;border-radius:50%;place-items:center;display:grid}.ctl:active{transform:scale(.94)}.ctl svg{width:20px;height:20px}.cake-stage{padding:max(70px, calc(env(safe-area-inset-top) + 64px)) var(--gutter) max(24px, env(safe-area-inset-bottom));perspective:1100px;background:#070304;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);justify-items:center;transition:background 1.2s;display:grid;position:absolute;inset:0;overflow:hidden}.env{pointer-events:none;position:absolute;inset:-10%}.env-far{filter:blur(6px);background:radial-gradient(circle at 15% 25%,#e8a04638 0 2.5%,#0000 4%),radial-gradient(circle at 82% 18%,#e8c77a33 0 2%,#0000 3.5%),radial-gradient(circle at 70% 70%,#c8505a29 0 3%,#0000 5%),radial-gradient(circle at 28% 78%,#e8c77a24 0 2.2%,#0000 3.8%),radial-gradient(circle at 50% 10%,#e8c77a1f 0 1.5%,#0000 3%),radial-gradient(at 50% 100%,#2a0a12 0%,#0000 60%)}.env-near{filter:blur(14px);background:radial-gradient(circle at 8% 60%,#e8a0462e 0 4%,#0000 7%),radial-gradient(circle at 92%,#e8c77a29 0 5%,#0000 8%),radial-gradient(circle at 60% 6%,#c8505a1f 0 4%,#0000 7%)}.env-warm{pointer-events:none;background:radial-gradient(at 50% 58%,#ff963c2e 0%,#7d1a2e1f 35%,#0000 70%);transition:opacity .8s;position:absolute;inset:0}.phase-dim .env-warm{opacity:.05!important}.phase-done{background:radial-gradient(at 50% 55%,#3a0d17 0%,#12060a 60%,#070304 100%)}.cake-copy{text-wrap:balance;z-index:3;text-align:center;width:100%;max-width:34rem;min-height:7.5rem;position:relative}.cake-l1{font-family:var(--serif);margin:0 0 10px;font-size:clamp(1.25rem,4.6vw,1.75rem);font-style:italic;line-height:1.25}.cake-l2{letter-spacing:.04em;color:var(--gold-2);margin:0;font-size:clamp(.82rem,3.2vw,.95rem)}.cake-done{flex-direction:column;align-items:center;gap:10px;display:flex}.cake-easy{font-family:var(--serif);margin:0;font-size:clamp(1.2rem,4.4vw,1.6rem);font-style:italic}.cake-time{color:var(--gold-2);font-style:normal;font-family:var(--sans);letter-spacing:.1em;font-size:.7em}.cake-hbd{font-family:var(--display);color:#0000;background:linear-gradient(#fff6d6,#f3d68c 45%,#c99a3c);filter:drop-shadow(0 0 30px #e8a03c59);-webkit-background-clip:text;background-clip:text;margin:0;padding:0 .1em .14em;font-size:clamp(2.1rem,9vw,4.4rem);font-style:italic;font-weight:500;line-height:1.12}.cake-camera{z-index:2;width:min(100%,520px,100svh - 300px);min-width:240px;transform-style:preserve-3d;will-change:transform;align-self:center;position:relative}.cake-svg{touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block;overflow:visible}.phase-done .cake-svg{cursor:default}.candle{outline:none}.candle:focus-visible rect{stroke:var(--gold-2);stroke-width:1px}.medallion{font-family:var(--display);fill:#f0cf7d;font-size:19px;font-weight:700}.flame{transform-box:fill-box;transform-origin:50% 100%;animation-name:fa;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.flame.fb{animation-name:fb}.flame.fc{animation-name:fc}@keyframes fa{0%{transform:scale(1)skew(0)}30%{transform:scale(.93,1.1)skew(3deg)}60%{transform:scale(1.04,.94)skew(-2deg)}to{transform:scale(.97,1.05)skew(1.5deg)}}@keyframes fb{0%{transform:scale(1.02,.96)skew(-2deg)}40%{transform:scale(.95,1.12)skew(2deg)}70%{transform:scaleY(.98)skew(-3.5deg)}to{transform:scale(.96,1.08)skew(0)}}@keyframes fc{0%{transform:scale(.98,1.04)skew(1deg)}25%{transform:scale(1.03,.95)skew(-1deg)}55%{transform:scale(.94,1.14)skew(4deg)}to{transform:scale(1)skew(-1deg)}}.glow{transform-box:fill-box;transform-origin:50%;animation:ease-in-out infinite alternate glow}@keyframes glow{0%{opacity:.75;transform:scale(.92)}to{opacity:1;transform:scale(1.08)}}.ember{animation:1.4s ease-out forwards ember}@keyframes ember{0%{opacity:1}to{opacity:0}}.wisp{fill:none;stroke:#d2cdc88c;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:60px;transform-box:fill-box;transform-origin:50% 100%;animation:2.4s ease-out forwards wisp}.wisp.w2{stroke-width:1.6px;animation-delay:.15s}.wisp.w3{stroke-width:1.2px;animation-delay:.3s}@keyframes wisp{0%{stroke-dashoffset:60px;opacity:.9;transform:translateY(0)scale(1)}40%{opacity:.6}to{stroke-dashoffset:0;opacity:0;transform:translateY(-18px)scale(1.4,1.2)}}.cake-hud{z-index:3;place-items:center;min-height:64px;display:grid;position:relative}.progress{flex-direction:column;align-items:center;gap:10px;display:flex}.progress-dots{gap:6px;display:flex}.progress-dots span{background:linear-gradient(90deg,#ffb340,#ffe9a8);border-radius:2px;width:14px;height:3px;transition:background .4s,box-shadow .4s;box-shadow:0 0 8px #ffb34099}.progress-dots span.on{box-shadow:none;background:#f5ecdc2e}.progress-text{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.progress-text b{color:var(--gold-2);font-weight:600}.progress-time{font-variant-numeric:tabular-nums;border-left:1px solid #f5ecdc33;margin-left:12px;padding-left:12px}.burst{z-index:1}.story{background:var(--black);position:relative}.hero{min-height:100svh;padding:100px var(--gutter);text-align:center;background:radial-gradient(ellipse at 50% 120%, #7d1a2e8c, transparent 60%), radial-gradient(ellipse at 50% -20%, #c99a3c1f, transparent 50%), var(--black);place-items:center;display:grid;position:relative;overflow:hidden}.hero-inner{position:relative}.hero-kicker{text-transform:uppercase;color:var(--gold-2);margin:0 0 22px;font-size:.7rem}.hero-title{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:clamp(3.2rem,15vw,10rem);font-style:italic;font-weight:500;line-height:.95}.hero-sub{max-width:30ch;font-family:var(--serif);color:var(--muted);margin:28px auto 0;font-size:clamp(1.15rem,3.8vw,1.5rem);font-style:italic}.scroll-cue{bottom:max(28px, env(safe-area-inset-bottom));letter-spacing:.4em;text-transform:uppercase;color:var(--muted);flex-direction:column;align-items:center;gap:10px;font-size:.7rem;display:flex;position:absolute;left:50%;translate:-50%}.scroll-cue i{background:linear-gradient(var(--gold-2), transparent);width:1px;height:46px;animation:cue 2.2s var(--ease) infinite;transform-origin:top}@keyframes cue{0%{opacity:1;transform:scaleY(0)}70%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.border-motif{opacity:.55;width:100%;height:24px;display:block}.act{padding:clamp(80px, 14vw, 160px) var(--gutter);max-width:1240px;margin:0 auto;position:relative}.act-head{margin-bottom:clamp(44px,8vw,90px)}.act-label{letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 20px;font-size:.68rem;display:flex}.act-label i{background:var(--gold);width:36px;height:1px}.act-title{font-family:var(--display);letter-spacing:-.01em;max-width:16ch;margin:0;font-size:clamp(2.3rem,8vw,5.6rem);font-weight:500;line-height:1.02}.act-title em{color:var(--gold-2);font-style:italic;font-weight:400;display:block}.act-sub{max-width:36ch;font-family:var(--serif);color:var(--muted);margin:22px 0 0;font-size:clamp(1.1rem,3.4vw,1.35rem);font-style:italic}.cards{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=640px){.cards{grid-template-columns:repeat(2,1fr);gap:20px}}@media (width>=1000px){.cards{grid-template-columns:repeat(3,1fr)}.cards .card:nth-child(3n+2){margin-top:48px}}.card{text-align:left;perspective:1200px;-webkit-user-select:text;user-select:text;padding:0}.card-flip{transform-style:preserve-3d;transition:transform .9s var(--ease);display:grid}.card.flipped .card-flip{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border:1px solid #e8c77a38;border-radius:4px;flex-direction:column;grid-area:1/1;gap:14px;min-height:300px;padding:28px 26px 24px;display:flex;position:relative;overflow:hidden}.card-front{background:linear-gradient(160deg,#1a0a0d 0%,#0e0607 100%)}.card-0 .card-front{background:linear-gradient(160deg,#3a0b17,#14060a)}.card-1 .card-front{background:linear-gradient(160deg,#0f2b2a,#0a1212)}.card-2 .card-front{background:linear-gradient(160deg,#2b1a08,#110a05)}.card-3 .card-front{background:linear-gradient(160deg,#241028,#0e0710)}.card-front:after{content:"";border:1px solid #e8c77a2e;border-radius:50%;width:160px;height:160px;position:absolute;bottom:-40px;right:-40px;box-shadow:0 0 0 14px #e8c77a0a,0 0 0 28px #e8c77a08}.card-back{color:#2a0710;background:linear-gradient(160deg,#f5ecdc,#e6d6b8);border-color:#5a0f1f4d;justify-content:center;transform:rotateY(180deg)}.card-no{font-family:var(--display);color:var(--gold-2);letter-spacing:.2em;font-size:.85rem}.card-title{font-family:var(--display);font-size:clamp(1.6rem,5.4vw,2rem);font-weight:500;line-height:1.08}.card-text{font-family:var(--serif);color:#f5ecdce6;font-size:1.15rem;line-height:1.45}.card-more{letter-spacing:.28em;text-transform:uppercase;color:var(--gold-2);opacity:.8;margin-top:auto;font-size:.72rem}.card-back .card-more{color:var(--burgundy);margin-top:8px}.card-tag{letter-spacing:.3em;text-transform:uppercase;color:#b3202f;border:1.5px solid #b3202f;align-self:flex-start;padding:4px 10px;font-size:.7rem;font-weight:600;transform:rotate(-3deg)}.card-secret{font-family:var(--serif);font-size:clamp(1.35rem,4.6vw,1.6rem);font-style:italic;line-height:1.3}@media (hover:hover){.card:hover .card-face{border-color:#e8c77a80}}.chapters{gap:clamp(70px,12vw,140px);margin:0;padding:0;list-style:none;display:grid}.chapter{grid-template-columns:1fr;gap:10px;display:grid;position:relative}.chapter-num{font-family:var(--display);color:#0000;background:linear-gradient(#f3d68c8c,#7d1a2e40);-webkit-background-clip:text;background-clip:text;padding-right:.1em;font-size:clamp(5rem,26vw,15rem);font-style:italic;font-weight:400;line-height:.8}@media (width>=860px){.chapter{grid-template-columns:5fr 7fr;align-items:start;gap:60px}.chapter.alt{grid-template-columns:7fr 5fr}.chapter.alt .chapter-num{text-align:right;order:2}.chapter-num{position:sticky;top:120px}}.chapter-kicker{letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);margin:0 0 8px;font-size:.68rem}.chapter-title{font-family:var(--display);margin:0 0 22px;font-size:clamp(2rem,7vw,3.4rem);font-weight:500;line-height:1.05}.chapter-p{max-width:38em;font-family:var(--serif);color:#f5ecdcdb;margin:0 0 16px;font-size:clamp(1.15rem,3.6vw,1.35rem);line-height:1.55}.chapter-pull{border-left:2px solid var(--gold);font-family:var(--display);color:var(--gold-3);margin:26px 0 0;padding-left:20px;font-size:clamp(1.35rem,4.6vw,1.9rem);font-style:italic;line-height:1.25}.chapter-tender .chapter-p{color:var(--ivory)}.chapter-tender:before{content:"";inset:-40px calc(-1 * var(--gutter));pointer-events:none;z-index:-1;background:radial-gradient(at 60%,#7d1a2e47,#0000 70%);position:absolute}.egg{text-align:left;background:repeating-linear-gradient(-45deg,#e8c77a08 0 10px,#0000 10px 20px);border:1px dashed #e8c77a80;border-radius:4px;flex-direction:column;gap:8px;width:min(100%,380px);margin-top:28px;padding:18px 20px;transition:border-color .3s,background .3s;display:flex}.egg.shown{background:#e8c77a0f;border-style:solid}.egg-label{letter-spacing:.3em;text-transform:uppercase;color:var(--gold-2);font-size:.7rem}.egg-row{font-family:var(--serif);justify-content:space-between;align-items:baseline;gap:12px;font-size:1.15rem;display:flex}.egg-row b{font-family:var(--display);color:var(--gold-2);font-size:2.6rem;line-height:1}.egg-reveal{font-family:var(--serif);color:var(--muted);font-size:1.1rem;font-style:italic;display:block;overflow:hidden}.egg-hint{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.gallery{gap:clamp(60px,10vw,120px);display:grid}.shot{gap:18px;margin:0;display:grid}.shot-frame{cursor:zoom-in;background:#1a0d0f;border-radius:2px;width:100%;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 40px 90px -30px #000000e6}.shot-frame img{object-fit:cover;filter:saturate(.92)contrast(1.04)sepia(.08);width:100%;height:100%;transition:transform 1.6s var(--ease), filter 1s}@media (hover:hover){.shot-frame:hover img{filter:saturate()contrast(1.04);transform:scale(1.04)}}.shot-frame .grain{pointer-events:none;background:radial-gradient(#0000 55%,#00000073 100%),linear-gradient(#0000 70%,#0a05068c);position:absolute;inset:0}.shot-scene{letter-spacing:.32em;text-transform:uppercase;color:var(--ivory);font-size:.7rem;position:absolute;bottom:14px;left:16px}.shot figcaption{font-family:var(--serif);max-width:22ch;font-size:clamp(1.3rem,4.6vw,2rem);font-style:italic;line-height:1.25}.shot-frame{aspect-ratio:4/5}@media (width>=860px){.shot{grid-template-columns:7fr 5fr;align-items:end;gap:48px}.shot-1{grid-template-columns:5fr 7fr}.shot-1 .shot-frame{order:2}.shot-1 figcaption{text-align:right;justify-self:end}.shot-2{grid-template-columns:1fr;max-width:760px;margin:0 auto}.shot-2 .shot-frame{aspect-ratio:3/2}.shot figcaption{padding-bottom:20px}.shot-0 .shot-frame,.shot-1 .shot-frame{max-height:82vh}}.lightbox{z-index:100;-webkit-backdrop-filter:blur(10px);background:#050203f0;place-items:center;padding:64px 16px;display:grid;position:fixed;inset:0}.lightbox-fig{touch-action:pan-y;justify-items:center;gap:14px;margin:0;display:grid}.lightbox-fig img{object-fit:contain;pointer-events:none;width:auto;max-width:min(92vw,1100px);height:auto;max-height:76svh;box-shadow:0 30px 80px #000000b3}.lightbox-fig figcaption{font-family:var(--serif);text-align:center;color:var(--ivory);font-size:1.2rem;font-style:italic}.lb-close,.lb-nav{width:48px;height:48px;color:var(--ivory);background:#f5ecdc14;border:1px solid #f5ecdc33;border-radius:50%;place-items:center;font-size:1.4rem;line-height:1;display:grid;position:absolute}.lb-close{top:max(14px, env(safe-area-inset-top));font-size:1rem;right:14px}.lb-nav{top:50%;translate:0 -50%}.lb-nav.prev{left:12px}.lb-nav.next{right:12px}@media (width<=640px){.lb-nav{top:auto;bottom:max(14px, env(safe-area-inset-bottom));translate:none}.lb-nav.prev{left:calc(50% - 60px)}.lb-nav.next{right:calc(50% - 60px)}}.act-letter{text-align:center;max-width:900px}.act-letter .act-label{justify-content:center}.act-letter .act-title{margin:0 auto}.letter-wrap{place-items:center;min-height:360px;display:grid}.envelope{aspect-ratio:1.55;perspective:900px;filter:drop-shadow(0 40px 60px #000000b3);width:min(100%,440px);margin-top:50px;padding:0;position:relative}.env-back,.env-front,.env-flap,.env-paper{border-radius:4px;position:absolute;inset:0}.env-back{z-index:0;background:linear-gradient(160deg,#6a1426,#3a0b17)}.env-paper{z-index:2;transition:transform 1s var(--ease) .45s;background:linear-gradient(#fbf5ea,#efe3cc);border-radius:2px;inset:8% 6% 4%}.env-paper-lines{background:repeating-linear-gradient(#0000 0 14px,#5a0f1f26 14px 15px);position:absolute;inset:20% 12%}.envelope.opening .env-paper{transform:translateY(-48%)}.env-front{z-index:3;clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);background:linear-gradient(170deg,#7d1a2e,#4a0d1a);box-shadow:inset 0 0 0 1px #e8c77a33}.env-front:after{content:"";clip-path:inherit;border:1px solid #e8c77a59;position:absolute;inset:10px}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;height:58%;transition:transform .7s var(--ease), z-index 0s .3s;z-index:4;background:linear-gradient(#8c2338,#5a0f1f)}.envelope.opening .env-flap{z-index:1;transform:rotateX(180deg)}.env-seal{z-index:5;background:radial-gradient(circle at 35% 30%,#f6e2a8,#c99a3c 45%,#7a5418 100%);border-radius:50%;place-items:center;width:64px;height:64px;transition:opacity .4s,transform .4s;display:grid;position:absolute;top:58%;left:50%;translate:-50% -50%;box-shadow:0 4px 14px #00000080,inset 0 0 0 4px #7a541880}.env-seal span{font-family:var(--display);color:#5a3c0e;font-size:1.8rem;font-style:italic;font-weight:700}.envelope.opening .env-seal{opacity:0;transform:scale(1.4)}.env-to{z-index:5;font-family:var(--script);color:var(--gold-3);font-size:clamp(1.7rem,6vw,2.2rem);position:absolute;bottom:12%;left:0;right:0}.env-hint{letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);font-size:.72rem;animation:2.4s ease-in-out infinite pulse;position:absolute;bottom:-46px;left:0;right:0}.envelope.opening .env-hint{opacity:0}@keyframes pulse{50%{opacity:.4}}.paper{text-align:left;color:#2a1418;background:radial-gradient(at 0 0,#c99a3c1f,#0000 50%),radial-gradient(at 100% 100%,#7d1a2e14,#0000 50%),linear-gradient(#fbf6ec,#f1e6d0);border-radius:3px;width:min(100%,680px);padding:clamp(32px,7vw,72px) clamp(24px,7vw,76px);position:relative;box-shadow:0 50px 100px -30px #000000d9,0 0 0 1px #c99a3c4d}.paper:before{content:"";pointer-events:none;border:1px solid #c99a3c59;position:absolute;inset:12px}.paper-greet{font-family:var(--script);color:var(--burgundy);margin:0 0 20px;font-size:clamp(2.2rem,8vw,3rem);line-height:1}.paper-p{font-family:var(--serif);margin:0 0 18px;font-size:clamp(1.18rem,3.8vw,1.36rem);line-height:1.6}.paper-strong{color:var(--burgundy);font-size:clamp(1.3rem,4.4vw,1.6rem);font-style:italic;font-weight:500}.paper-close{font-family:var(--display);color:var(--burgundy);border-top:1px solid #5a0f1f33;margin:30px 0 0;padding-top:24px;font-size:clamp(1.2rem,4vw,1.5rem);font-style:italic;line-height:1.4}.paper-sign{text-align:right;font-family:var(--script);color:#2a1418;margin:22px 0 0;font-size:clamp(2rem,7vw,2.6rem);line-height:1}.finale{min-height:100svh;padding:120px var(--gutter) max(60px, env(safe-area-inset-bottom));text-align:center;background:radial-gradient(at 50% 30%,#5a0f1f80,#0000 60%),#050203;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.finale-logo{margin-bottom:50px;position:relative}.finale-title{font-family:var(--display);text-transform:uppercase;color:var(--ivory);margin:0;font-size:clamp(1.6rem,6.5vw,3.6rem);font-weight:500;line-height:1.15;position:relative}.finale-l1{max-width:28ch;font-family:var(--serif);color:var(--muted);margin:26px 0 0;font-size:clamp(1.25rem,4.2vw,1.7rem);font-style:italic;position:relative}.finale-l2{font-family:var(--script);color:var(--gold-2);margin:18px 0 0;font-size:clamp(2.6rem,10vw,4.4rem);line-height:1.1;position:relative}.end-credits{gap:18px;margin:70px 0 50px;display:grid;position:relative}.end-credits dt{letter-spacing:.32em;text-transform:uppercase;color:var(--gold-2);font-size:.7rem}.end-credits dd{font-family:var(--serif);margin:4px 0 0;font-size:1.15rem}.fin{letter-spacing:.32em;text-transform:uppercase;color:#f5ecdc99;margin:50px 0 0;font-size:.7rem;position:relative}.finale .btn{position:relative}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.flame,.glow{animation:none!important}}
