@font-face{font-family:LXGW WenKai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/lxgw-wenkai-latin-500-normal-opG5z_Xo.woff2)format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/assets/cormorant-garamond-500-italic-Y14P-dkT.woff2)format("woff2")}@font-face{font-family:LXGW WenKai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/wenkai-ui-DkkXonzK.woff2)format("woff2");unicode-range:U+20,U+21,U+22,U+23,U+24,U+25,U+26,U+27,U+28,U+29,U+2A,U+2B,U+2C,U+2D,U+2E,U+2F,U+30,U+31,U+32,U+33,U+34,U+35,U+36,U+37,U+38,U+39,U+3A,U+3B,U+3C,U+3D,U+3E,U+3F,U+40,U+41,U+42,U+43,U+44,U+45,U+46,U+47,U+48,U+49,U+4A,U+4B,U+4C,U+4D,U+4E,U+4F,U+50,U+51,U+52,U+53,U+54,U+55,U+56,U+57,U+58,U+59,U+5A,U+5B,U+5C,U+5D,U+5E,U+5F,U+60,U+61,U+62,U+63,U+64,U+65,U+66,U+67,U+68,U+69,U+6A,U+6B,U+6C,U+6D,U+6E,U+6F,U+70,U+71,U+72,U+73,U+74,U+75,U+76,U+77,U+78,U+79,U+7A,U+7B,U+7C,U+7D,U+7E,U+B7,U+2014,U+2026,U+3002,U+300C,U+300D,U+4E00,U+4E0A,U+4E0B,U+4E0D,U+4E0E,U+4E13,U+4E16,U+4E2A,U+4E2D,U+4E3A,U+4E48,U+4E50,U+4E5F,U+4E86,U+4E8B,U+4E8C,U+4E91,U+4E9B,U+4EAE,U+4EBA,U+4EC0,U+4EC5,U+4ECA,U+4ECD,U+4ECE,U+4EE4,U+4EE5,U+4EEC,U+4EFB,U+4EFD,U+4F1A,U+4F4D,U+4F4F,U+4F55,U+4F5C,U+4F60,U+4F7F,U+4FDD,U+501F,U+503C,U+504F,U+505A,U+505C,U+5076,U+513F,U+5141,U+5148,U+5149,U+514B,U+5165,U+5173,U+5174,U+5177,U+518D,U+5199,U+51C6,U+51E0,U+51FA,U+521A,U+521B,U+522B,U+5230,U+5237,U+523B,U+524D,U+52A0,U+52A8,U+52C7,U+5341,U+539F,U+53BB,U+53D1,U+53E3,U+53EB,U+53EF,U+53F0,U+53F3,U+53F7,U+5408,U+540E,U+5411,U+5427,U+542F,U+5439,U+5448,U+544A,U+548C,U+5524,U+559C,U+5668,U+56DE,U+56FE,U+5728,U+5730,U+573A,U+58F0,U+5904,U+5907,U+590D,U+591A,U+591C,U+5927,U+5929,U+5934,U+5976,U+597D,U+5982,U+59CB,U+5B50,U+5B58,U+5B83,U+5B89,U+5B8C,U+5BF8,U+5BF9,U+5BFB,U+5C0F,U+5C14,U+5C31,U+5C3D,U+5C3E,U+5C55,U+5C5E,U+5C71,U+5C81,U+5DE5,U+5DE6,U+5DEE,U+5DF1,U+5DF2,U+5E03,U+5E26,U+5E2D,U+5E38,U+5E45,U+5E55,U+5E73,U+5E76,U+5E86,U+5EA6,U+5F00,U+5F0F,U+5F52,U+5F53,U+5F62,U+5F80,U+5F85,U+5F88,U+5F97,U+5FC3,U+5FC5,U+5FEB,U+6027,U+603B,U+6062,U+606F,U+60CA,U+60E6,U+60F3,U+610F,U+613F,U+6162,U+6210,U+6211,U+6216,U+624D,U+6253,U+627E,U+628A,U+62AC,U+62B5,U+62B9,U+62D6,U+62E2,U+62E8,U+62E9,U+6309,U+6362,U+63A5,U+6458,U+64A4,U+64AD,U+6512,U+6536,U+653E,U+6548,U+6574,U+65B0,U+65B9,U+65E0,U+65E5,U+65F6,U+65F7,U+660E,U+661F,U+662F,U+663E,U+6655,U+665A,U+666F,U+6682,U+6700,U+6708,U+6709,U+671B,U+671F,U+672A,U+6735,U+6743,U+674F,U+6765,U+677E,U+67D3,U+67D4,U+67E5,U+6837,U+683C,U+6843,U+68A6,U+68C0,U+69DF,U+6A21,U+6B21,U+6B22,U+6B3E,U+6B47,U+6B62,U+6B63,U+6B64,U+6B65,U+6BCF,U+6C14,U+6CA1,U+6CB9,U+6CD5,U+6D3B,U+6D4F,U+6D77,U+6D82,U+6D88,U+6DFB,U+6E05,U+6E38,U+6EE1,U+6F2B,U+706B,U+706D,U+70B9,U+70DB,U+70DF,U+70ED,U+7167,U+7184,U+7231,U+7247,U+7279,U+72B6,U+73A9,U+73B0,U+7406,U+74E3,U+751F,U+7528,U+753B,U+754C,U+7559,U+767D,U+7684,U+76DB,U+76F4,U+770B,U+771F,U+773C,U+7740,U+793A,U+795D,U+798F,U+79BB,U+79CD,U+79FB,U+7A7A,U+7B11,U+7B14,U+7B2C,U+7B49,U+7C89,U+7CD5,U+7D2B,U+7D2F,U+7EA6,U+7EB8,U+7ECF,U+7ED5,U+7ED9,U+7EE7,U+7EED,U+7EFD,U+7EFF,U+7F15,U+7F16,U+7F3A,U+7F6E,U+800C,U+805A,U+80CC,U+80FD,U+811A,U+81EA,U+81F3,U+8212,U+821F,U+8272,U+82B1,U+82BD,U+82DE,U+8349,U+83B7,U+843D,U+84DD,U+8537,U+8587,U+85CF,U+86CB,U+8721,U+88AB,U+8981,U+89C1,U+89C6,U+89C8,U+89D2,U+89E3,U+89E6,U+8BA4,U+8BA9,U+8BB0,U+8BB8,U+8BBE,U+8BC9,U+8BD5,U+8BF7,U+8C01,U+8C03,U+8D70,U+8D74,U+8D76,U+8DA3,U+8DEF,U+8DF3,U+8F66,U+8F6C,U+8F7B,U+8F7D,U+8F93,U+8FBE,U+8FC7,U+8FCE,U+8FD1,U+8FD8,U+8FD9,U+8FDB,U+8FDC,U+9001,U+9009,U+9047,U+90FD,U+9192,U+91CC,U+91CD,U+91CE,U+91CF,U+91D1,U+94FA,U+952E,U+957F,U+95ED,U+95F4,U+9650,U+9664,U+968F,U+9690,U+96FE,U+9760,U+9762,U+97F3,U+9897,U+989C,U+98CE,U+98DE,U+9999,U+9C9C,U+9E1F,U+9E22,U+9EA6,U+9F20,U+9F50,U+FF01,U+FF08,U+FF09,U+FF0C,U+FF1A,U+FF1B}.environment-fallback{--garden:0;--supper:0;--moon:1;--water:1;--flower-tint:236, 195, 205;z-index:var(--layer-canvas);pointer-events:none;background:linear-gradient(180deg, var(--color-ink), var(--color-midnight-soft) 70%, var(--color-midnight));position:fixed;inset:0;overflow:hidden}.environment-fallback__clouds{background:radial-gradient(at 22% 24%,#8290a521,#0000 40%),radial-gradient(at 82% 66%,#8290a51f,#0000 28%);position:absolute;inset:0}.environment-fallback__moon{aspect-ratio:1;width:clamp(30px,6dvh,60px);box-shadow:-8px 4px 0 -1px var(--color-cream);opacity:var(--moon);border-radius:50%;position:absolute;top:18%;left:77%;transform:rotate(-18deg)}.environment-fallback__water{opacity:var(--water);background:radial-gradient(ellipse at 78% 0%, #8290a53d, transparent 17%), linear-gradient(var(--color-midnight), var(--color-ink));border-top:1px solid #8290a51f;position:absolute;inset:82% 0 0}.environment-fallback__mist{background:radial-gradient(ellipse at 50% 50%, rgba(var(--flower-tint), .1), transparent 65%);opacity:var(--garden);position:absolute;inset:50% 0 0}.environment-fallback__lights{opacity:var(--supper);background:radial-gradient(circle at 9% 43%,#d8b36a99 0 2px,#0000 7px),radial-gradient(circle at 16% 58%,#d8b36a66 0 4px,#0000 11px),radial-gradient(circle at 91% 48%,#d8b36a99 0 3px,#0000 9px),radial-gradient(circle at 84% 61%,#d8b36a66 0 4px,#0000 11px);position:absolute;inset:0}.environment-fallback__foliage{object-fit:fill;width:100%;height:100%;opacity:calc(var(--garden) * .55 + var(--supper) * .22);mix-blend-mode:screen;position:absolute;inset:0}@media (max-width:767px){.environment-fallback__moon{left:80%}.environment-fallback__water{top:85%}.environment-fallback__foliage{object-fit:cover}}.scene-recovery{z-index:var(--layer-status);inset-inline:1rem;bottom:max(2rem, env(safe-area-inset-bottom));border-block-start:1px solid var(--color-gold-soft);background:var(--color-midnight);width:min(30rem,100% - 2rem);max-height:calc(100dvh - 6rem);color:var(--color-cream);text-align:center;margin-inline:auto;padding:1rem 1.25rem;position:fixed;overflow-y:auto}.scene-recovery>p[role=status]{color:var(--color-cream);overflow-wrap:anywhere;text-wrap:pretty;margin:0;font-size:1rem;line-height:1.8}.scene-recovery__actions{flex-wrap:wrap;justify-content:center;gap:.25rem 1.25rem;margin-block-start:.75rem;display:flex}.scene-recovery__actions button{border:0;border-block-end:1px solid var(--color-gold-soft);max-width:100%;min-height:44px;color:var(--color-gold);font:inherit;cursor:pointer;background:0 0;padding:.5rem 0;font-size:1rem}.scene-recovery__actions button:hover{color:var(--color-cream)}.scene-recovery__actions button:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.scene-recovery--inline{width:100%;max-height:none;margin-block-start:2rem;position:relative;inset:auto}@media (max-height:440px){.scene-recovery{bottom:max(.75rem, env(safe-area-inset-bottom))}}.intro-resume{color:#d8c7ae;max-width:28rem;margin:1.25rem auto 0}.intro .intro-resume p{color:#d8c7ae;text-wrap:pretty;margin:0;font-size:.875rem;line-height:1.8}.intro-resume__secondary{color:#e5cd9f;min-height:44px;font:inherit;text-underline-offset:.4em;cursor:pointer;background:0 0;border:0;padding:.4rem .6rem;font-size:.9375rem;-webkit-text-decoration:underline #84704b;text-decoration:underline #84704b}.intro-resume__secondary:hover{color:#fff4e2}.intro-resume__secondary:disabled{opacity:.5;cursor:default}.progress-storage-note{z-index:85;bottom:max(1rem, env(safe-area-inset-bottom));color:#f0dfc4;text-align:center;pointer-events:none;background:#101824;border:1px solid #6b5d45;width:min(34rem,100% - 2rem);margin:0;padding:.75rem 1rem;font-size:.875rem;line-height:1.7;position:fixed;left:50%;transform:translate(-50%)}.birthday-entry{z-index:20;isolation:isolate;background:var(--color-midnight);color:var(--color-cream);scrollbar-color:var(--color-gold-soft) var(--color-midnight);position:fixed;inset:0;overflow-y:auto}.birthday-entry__sky,.birthday-entry__shade{pointer-events:none;position:fixed;inset:0}.birthday-entry__sky img{object-fit:cover;object-position:50% 50%;width:100%;height:100%;display:block}.birthday-entry__shade{background:radial-gradient(at 50% 54%,#05070dc2,#05070d4d 45%,#05070d0f 76%)}.birthday-entry__layout{min-height:100%;min-height:100svh;padding:max(4.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));place-items:center;display:grid;position:relative}.birthday-entry__content{width:min(100%,25rem);padding:.75rem 0}.birthday-entry h1{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3rem);font-weight:var(--font-weight-copy);text-align:center;text-wrap:balance;margin:0;line-height:1.5}.birthday-entry h1 span{display:block}.birthday-entry__intro{color:var(--color-cream-muted);text-align:center;margin:1rem 0 0;font-size:1rem;line-height:1.8}.invitation-form{margin-top:2.75rem}.invitation-form label{color:var(--color-cream);margin-bottom:.75rem;font-size:.9375rem;display:block}.invitation-form__field{border-radius:var(--radius-interface);background:#05070dad;border:1px solid #d8b36a94;align-items:center;min-height:58px;transition:border-color .18s ease-out,background-color .18s ease-out;display:flex}.invitation-form__field:focus-within{border-color:var(--color-focus);outline:1px solid var(--color-focus);outline-offset:3px;background:#05070de0}.invitation-form input{width:100%;min-width:0;min-height:56px;color:var(--color-cream);caret-color:var(--color-gold);font:inherit;background:0 0;border:0;border-radius:0;outline:none;padding:.875rem 0 .875rem 1rem;font-size:1rem;line-height:1.5}.invitation-form input::placeholder{color:var(--color-cream-muted);opacity:1}.invitation-form input:-webkit-autofill{background:var(--color-midnight);color:var(--color-cream)}.invitation-form input:autofill{background:var(--color-midnight);color:var(--color-cream)}.invitation-form__visibility{width:52px;height:52px;color:var(--color-cream-muted);cursor:pointer;background:0 0;border:0;flex:0 0 52px;place-items:center;display:grid}.invitation-form__visibility svg{width:22px;height:22px}.invitation-form__visibility:hover{color:var(--color-cream)}.invitation-form__visibility:focus-visible{outline-offset:-6px}.invitation-form__feedback{min-height:3.5em;color:var(--color-cream-muted);margin:.75rem 0 0;font-size:.875rem;line-height:1.75}.invitation-form__feedback--error{color:#f3bfac}.invitation-form__field--error{border-color:#f3bfac}.invitation-form__submit{border-radius:var(--radius-interface);background:var(--color-gold);width:100%;min-height:56px;color:var(--color-ink);cursor:pointer;border:0;justify-content:center;align-items:center;gap:1rem;padding:.875rem 1.25rem;font-size:1.0625rem;transition:background-color .18s ease-out;display:flex}.invitation-form__submit svg{width:21px;height:21px}.invitation-form__submit:hover:not(:disabled){background:var(--color-focus)}.invitation-form__submit:active:not(:disabled){background:var(--color-cream)}.invitation-form__submit:disabled{cursor:wait;background:#c8b486}.invitation-form__visibility:disabled{cursor:default;opacity:.5}.birthday-entry__motion{right:max(1.5rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));border-radius:var(--radius-interface);min-height:44px;color:var(--color-cream-muted);cursor:pointer;background:#05070dad;border:0;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;display:inline-flex;position:absolute}.birthday-entry__motion svg{width:20px;height:20px}.birthday-entry__motion:hover{color:var(--color-cream)}.birthday-entry__motion:disabled{cursor:default}.birthday-entry--opening{animation:.85s ease-out both invitation-depart}@keyframes invitation-depart{0%,18%{opacity:1}to{opacity:0}}@media (max-width:600px){.birthday-entry__sky img{object-position:66% 50%}.birthday-entry__shade{background:radial-gradient(at 50% 53%,#05070dd1,#05070d61 57%,#05070d14 100%)}.birthday-entry__content{max-width:23rem}.invitation-form{margin-top:2.25rem}}@media (max-height:600px){.birthday-entry__layout{padding-top:2rem;padding-bottom:5rem}.birthday-entry h1{font-size:2rem;line-height:1.4}.birthday-entry__intro{margin-top:.5rem}.invitation-form{margin-top:1.5rem}}@media (prefers-reduced-motion:reduce){.birthday-entry--opening{animation:none}.birthday-entry *{transition:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-ink:#05070d;--color-midnight:#091426;--color-midnight-soft:#101c2e;--color-cream:#f4efe6;--color-cream-muted:#c6c1b8;--color-gold:#d8b36a;--color-gold-soft:#b48d4d;--color-ember:#ffb66e;--color-mist:#8290a5;--color-focus:#efca82;--font-display:"LXGW WenKai", "Kaiti SC", "KaiTi", serif;--font-body:"LXGW WenKai", "Kaiti SC", "KaiTi", serif;--font-latin:"Cormorant Garamond", "Times New Roman", serif;--font-weight-copy:500;--type-control:.9375rem;--content-max:86rem;--copy-max:37rem;--space-page:clamp(1.25rem, 5vw, 5.5rem);--section-space:clamp(7rem, 18vh, 13rem);--radius-interface:2px;--layer-canvas:0;--layer-atmosphere:1;--layer-content:2;--layer-finale-backdrop:3;--layer-celebration:4;--layer-finale:5;--layer-status:6}*{box-sizing:border-box}html{background:var(--color-ink);scroll-behavior:smooth;scrollbar-color:#d8b36a6b var(--color-ink);scrollbar-width:thin;min-width:0}body{background:radial-gradient(circle at 50% 12%, #182b4661, transparent 42%), var(--color-ink);min-width:0;min-height:100dvh;color:var(--color-cream);font-family:var(--font-body);font-size:1.125rem;font-weight:var(--font-weight-copy);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}body:after{z-index:var(--layer-atmosphere);content:"";pointer-events:none;background:radial-gradient(circle,#0000 36%,#0103086b 100%);position:fixed;inset:0}button,a{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--color-focus);outline-offset:5px}::selection{color:var(--color-ink);background:#d8b36ad1}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-ink)}::-webkit-scrollbar-thumb{border:2px solid var(--color-ink);background:#d8b36a7a;border-radius:8px}.experience{isolation:isolate;min-height:100dvh;position:relative}.experience--cinematic{height:100dvh;overflow:hidden}.night-sky{z-index:var(--layer-canvas);pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.celebration-canvas{z-index:var(--layer-celebration);pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.atmosphere{z-index:var(--layer-atmosphere);pointer-events:none;background:linear-gradient(#05070d05,#05070d29),radial-gradient(at 50% 42%,#0000 0%,#05070d1f 68%);position:fixed;inset:0}.atmosphere:before{content:"";opacity:.32;background-image:radial-gradient(circle,#f4efe68a 0 .75px,#0000 1.15px),radial-gradient(circle,#8290a56b 0 .6px,#0000 1px),radial-gradient(circle,#d8b36a4d 0 .7px,#0000 1.1px);background-position:37px 29px,121px 83px,211px 157px;background-size:233px 197px,317px 281px,431px 359px;position:absolute;inset:0}.rendering-note,.experience-status{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:fixed;overflow:hidden}.sound-control{z-index:var(--layer-status);top:max(1rem, env(safe-area-inset-top));right:max(var(--space-page), env(safe-area-inset-right));min-width:4.75rem;min-height:2.75rem;color:var(--color-cream-muted);cursor:pointer;opacity:0;pointer-events:none;visibility:hidden;background:#05070d3d;border:0;border-bottom:1px solid #d8b36a5c;border-radius:0;justify-content:center;align-items:center;gap:.55rem;padding:0 .35rem;transition:border-color .22s,color .22s,opacity .52s,transform .52s cubic-bezier(.16,1,.3,1);display:inline-flex;position:fixed;transform:translateY(-.35rem)}.sound-control--visible{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.sound-control:hover{color:var(--color-cream);border-color:#efca82c2}.sound-control:active{transform:translateY(1px)}.sound-control__icon{fill:currentColor;width:1.1rem;height:1.1rem;overflow:visible}.sound-control__wave{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.25px;opacity:.26;transform-origin:12px 12px}.sound-control--playing .sound-control__wave--near{animation:2.6s ease-in-out infinite sound-wave}.sound-control--playing .sound-control__wave--far{animation:2.6s ease-in-out .42s infinite sound-wave}.sound-control>span{letter-spacing:.14em;font-size:.875rem}.intro,.story{z-index:var(--layer-content);position:relative}.intro{min-height:100dvh;padding:max(2rem, env(safe-area-inset-top)) var(--space-page) max(2rem, env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);place-items:center;display:grid}.intro__content{text-align:center;width:min(100%,54rem);transform:translateY(-3vh)}.intro h1{color:var(--color-cream);font-family:var(--font-display);font-size:clamp(2.15rem,5.8vw,5.7rem);font-weight:var(--font-weight-copy);letter-spacing:.015em;text-wrap:balance;margin:0;line-height:1.35}.intro p{color:var(--color-cream-muted);font-size:clamp(1.0625rem,1.4vw,1.25rem);font-weight:var(--font-weight-copy);letter-spacing:.025em;margin:1.45rem 0 0}.opening-button{border-radius:var(--radius-interface);min-width:min(9.75rem,100%);max-width:100%;min-height:3.25rem;color:var(--color-cream);cursor:pointer;letter-spacing:.12em;background:#05070d85;border:1px solid #d8b36a94;margin-top:2.4rem;transition:border-color .24s,background-color .24s,transform .18s;position:relative;overflow:hidden;box-shadow:0 16px 42px #01030847}.opening-button:before{content:"";background:linear-gradient(110deg,#0000 22%,#d8b36a21,#0000 78%);transition:transform .62s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:translate(-110%)}.opening-button span{position:relative}.opening-button:hover{background:#151a23b3;border-color:#efca82e6}.opening-button:hover:before{transform:translate(110%)}.opening-button:active{transform:translateY(1px)scale(.99)}.opening-button:disabled{cursor:wait;opacity:.55}.intro--leaving .intro__content{filter:blur(8px);opacity:0;transition:opacity .52s,transform .62s cubic-bezier(.32,0,.67,0),filter .52s;transform:translateY(-4vh)scale(.985)}.intro--leaving{pointer-events:none}.story{animation:.9s cubic-bezier(.16,1,.3,1) backwards story-arrive}.experience--celebrating:before,.experience--finale:before{z-index:var(--layer-finale-backdrop);content:"";pointer-events:none;background:radial-gradient(circle at 50% 40%,#05070d26 0%,#05070d0f 52%,#05070d1f 100%);position:fixed;inset:0}.experience--celebrating:not(.experience--finale):before{animation:.9s both firework-night}.experience--celebrating .story{opacity:0;pointer-events:none;transition:opacity 1.1s .65s}@keyframes firework-night{0%{opacity:0}to{opacity:1}}.firework-skip{bottom:max(2rem, env(safe-area-inset-bottom));right:var(--space-page);z-index:6;border:0;border-bottom:1px solid var(--color-gold-soft);min-height:44px;color:var(--color-cream-muted);font:inherit;cursor:pointer;background:0 0;padding:.6rem 0;font-size:.8rem;position:fixed}.firework-skip:hover{color:var(--color-cream)}@media (prefers-reduced-motion:reduce){.experience--celebrating:before{animation:none}.experience--celebrating .story{transition:none}}.experience--finale .story{visibility:hidden}.arrival{min-height:100dvh;padding:var(--section-space) var(--space-page);place-items:center;display:grid}.arrival__copy{text-align:center;width:min(100%,76rem)}.arrival h1{color:var(--color-cream);font-family:var(--font-latin);letter-spacing:.015em;text-wrap:balance;margin:0;font-size:clamp(3.3rem,10vw,8rem);font-style:italic;font-weight:500;line-height:.96}.arrival h1:focus{outline:none}.arrival p{max-width:30rem;color:var(--color-cream-muted);font-family:var(--font-display);margin:2rem auto 0;font-size:clamp(1rem,1.7vw,1.35rem);line-height:1.8}.memory-sequence{width:min(100%, var(--content-max));padding:0 var(--space-page) var(--section-space);gap:clamp(6rem,14vh,11rem);margin:0 auto;display:grid;overflow-x:clip}.memory{align-items:center;min-height:100dvh;display:grid}.memory__image-wrap{isolation:isolate;perspective:1200px;transform-style:preserve-3d;position:relative}.memory__image-plane{z-index:1;border-radius:var(--radius-interface);background:var(--color-midnight-soft);backface-visibility:hidden;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 34px 90px #01040b75}.memory__image-plane:after{content:"";pointer-events:none;background:linear-gradient(#05070d08,#05070d38);position:absolute;inset:0}.memory__image{object-fit:cover;filter:saturate(.78)contrast(1.04)brightness(.86);backface-visibility:hidden;width:100%;height:100%;display:block}.memory__companion{z-index:0;border-radius:var(--radius-interface);background:var(--color-midnight-soft);width:47%;height:56%;position:absolute;top:-12%;right:-9%;overflow:hidden;transform:translateZ(-32px);box-shadow:0 24px 72px #01040b57}.memory__companion-image{object-fit:cover;filter:saturate(.62)contrast(1.02)brightness(.54);width:100%;height:100%;display:block}.memory__image-fallback{width:100%;height:100%;min-height:16rem;color:var(--color-cream-muted);letter-spacing:.05em;background:radial-gradient(circle at 72% 28%,#8290a51f,#0000 32%),linear-gradient(145deg,#101c2ef5,#05070dfa);place-items:center;padding:2rem;font-size:.9rem;display:grid}.memory__copy{max-width:var(--copy-max);position:relative}.memory__copy h2,.blessing h2,.wish h2,.finale h2{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,4.6rem);font-weight:var(--font-weight-copy);letter-spacing:.012em;text-wrap:balance;margin:0;line-height:1.35}.memory__copy p,.wish__copy p,.finale__copy p{max-width:34rem;color:var(--color-cream-muted);font-size:clamp(1.0625rem,1.5vw,1.25rem);font-weight:var(--font-weight-copy);letter-spacing:.02em;margin:1.4rem 0 0;line-height:1.9}.memory--portrait-right{grid-template-columns:minmax(18rem,.9fr) minmax(20rem,.72fr);gap:clamp(3rem,8vw,8.5rem)}.memory--portrait-right .memory__image-wrap{aspect-ratio:4/5;grid-column:2;justify-self:end;width:min(100%,34rem)}.memory--portrait-right .memory__copy{grid-area:1/1;align-self:center;padding-left:clamp(0rem,5vw,5rem)}.memory--wide-center{grid-template-rows:auto auto;justify-items:center;gap:2.75rem;padding-inline:clamp(0rem,4vw,4rem)}.memory--wide-center .memory__image-wrap{aspect-ratio:16/9;width:min(100%,65rem)}.memory--wide-center .memory__copy{width:min(100%,65rem);max-width:65rem;padding-left:clamp(0rem,10vw,12rem)}.memory--wide-center .memory__copy p{max-width:38rem}.memory--layered-left{grid-template-columns:minmax(21rem,.86fr) minmax(18rem,.64fr);gap:clamp(3rem,8vw,9rem)}.memory--layered-left .memory__image-wrap{aspect-ratio:3/4;width:min(100%,35rem);margin-left:clamp(0rem,3vw,3rem)}.memory--layered-left .memory__copy{align-self:end;margin-bottom:clamp(3rem,16vh,10rem)}.blessing{min-height:100dvh;padding:var(--section-space) var(--space-page);place-items:center;display:grid}.blessing__content{grid-template-columns:minmax(15rem,.65fr) minmax(21rem,1fr);align-items:start;gap:clamp(3rem,10vw,10rem);width:min(100%,68rem);display:grid}.blessing__lines{padding-top:.45rem}.blessing__lines p{color:var(--color-cream-muted);font-family:var(--font-display);margin:0;font-size:clamp(1.2rem,2.5vw,2rem);font-weight:350;line-height:1.75}.blessing__lines p+p{margin-top:clamp(2rem,5vh,3.5rem)}.wish{width:min(100%,72rem);min-height:100dvh;padding:var(--section-space) var(--space-page);grid-template-columns:minmax(20rem,.88fr) minmax(18rem,.72fr);align-items:center;gap:clamp(3rem,8vw,8rem);margin:0 auto;display:grid}.wish__visual{isolation:isolate;justify-self:center;width:min(70vw,31rem);height:min(78vw,36rem);position:relative}.candle-trigger{z-index:2;color:var(--color-cream-muted);cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.candle-trigger span{letter-spacing:.08em;white-space:nowrap;border-bottom:1px solid #d8b36a7a;place-items:center;min-width:8.8rem;min-height:2.75rem;transition:border-color .22s,color .22s,transform .16s;display:grid;position:absolute;bottom:.6rem;left:50%;transform:translate(-50%)}.candle-trigger:hover span{color:var(--color-cream);border-color:#efca82e6}.candle-trigger:active span{transform:translate(-50%)translateY(1px)scale(.99)}.candle-trigger:focus-visible{outline:none}.candle-trigger:focus-visible span{outline:2px solid var(--color-focus);outline-offset:5px}.wish--extinguished .candle-trigger{cursor:default}.wish--extinguished .candle-trigger span{color:var(--color-gold);border-color:#d8b36a3d}.candle-study{z-index:0;width:100%;height:100%;position:absolute;inset:0}.candle-study span{display:block;position:absolute;left:50%;transform:translate(-50%)}.candle-study__aura{filter:blur(14px);background:radial-gradient(circle,#ffb66e38,#0000 70%);border-radius:50%;width:10rem;height:10rem;transition:opacity .96s;top:6%}.candle-study__smoke{filter:blur(4px);opacity:0;background:radial-gradient(at 46% 78%,#8290a542,#0000 36%),radial-gradient(at 58% 42%,#8290a533,#0000 32%);width:1.7rem;height:5rem;top:7%}.candle-study__flame{background:linear-gradient(180deg, #fff6cf 0%, var(--color-ember) 48%, #b8521f 100%);transform-origin:50% 90%;border-radius:58% 42% 54% 46%/72% 70% 30% 28%;width:.95rem;height:2rem;transition:opacity .34s,transform .42s cubic-bezier(.32,0,.67,0);animation:2.7s ease-in-out infinite alternate flame-breathe;top:13%;transform:translate(-50%)rotate(3deg);box-shadow:0 8px 34px #ffb66e57}.candle-study__wick{background:#30241c;width:2px;height:1.15rem;top:19%}.candle-study__candle{background:linear-gradient(90deg,#bbad97,#f1e3ca 52%,#aa9a86);border-radius:1px;width:1.35rem;height:6.25rem;top:21%;box-shadow:0 16px 35px #ffb66e1a}.candle-study__upper-top{z-index:3;background:linear-gradient(#f2eadf,#bbae9b 92%);border-radius:50%;width:min(52%,15rem);height:2.4rem;top:42%;box-shadow:0 12px 30px #0103084d}.candle-study__upper-base{z-index:2;background:linear-gradient(90deg,#988a77 0%,#d6cab9 48%,#8d7e6c 100%);border-radius:0 0 48% 48%/0 0 13% 13%;width:min(49%,14.25rem);height:4.8rem;top:45.5%;box-shadow:0 18px 34px #01030857}.candle-study__lower-top{z-index:1;background:linear-gradient(#eee6da,#b5a793 92%);border-radius:50%;width:min(76%,22rem);height:3.65rem;top:57%;box-shadow:0 16px 42px #01030857}.candle-study__lower-base{background:linear-gradient(90deg,#8e806d 0%,#d4c7b4 48%,#827361 100%);border-radius:0 0 48% 48%/0 0 14% 14%;width:min(72%,21rem);height:6.3rem;top:61.5%;box-shadow:0 24px 54px #0103086b}.candle-study__plate{background:linear-gradient(90deg,#101827,#3a4556 48%,#111928);border-radius:50%;width:min(82%,23.5rem);height:1.15rem;top:77%;box-shadow:0 22px 42px #01030880}.candle-study--extinguished .candle-study__aura{opacity:0}.candle-study--extinguished .candle-study__flame{animation:.92s cubic-bezier(.22,.72,.16,1) both flame-out}.candle-study--extinguished .candle-study__smoke{animation:1.85s cubic-bezier(.16,1,.3,1) .58s both smoke-rise}.wish__copy{align-self:center}.wish__blow-control{border-radius:var(--radius-interface);min-width:8.8rem;min-height:2.75rem;color:var(--color-cream-muted);cursor:pointer;letter-spacing:.06em;background:#05070d57;border:1px solid #8290a575;margin-top:2rem;transition:border-color .22s,color .22s,transform .16s}.wish__blow-control:hover:not(:disabled){color:var(--color-cream);border-color:#d8b36a9e}.wish__blow-control:active:not(:disabled){transform:translateY(1px)scale(.99)}.wish__blow-control:disabled{cursor:default;opacity:.52}.wish__status{letter-spacing:.04em;min-height:3.4rem;color:var(--color-gold)!important;margin-top:1rem!important;font-size:.9rem!important;line-height:1.7!important}.finale-spacer{min-height:100dvh}.finale{z-index:var(--layer-finale);min-height:100dvh;padding:var(--section-space) var(--space-page) max(var(--section-space), env(safe-area-inset-bottom));text-align:center;visibility:hidden;pointer-events:none;grid-template-columns:minmax(0,1fr);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.finale--ready{visibility:visible;pointer-events:auto}.finale__copy{min-width:0;max-width:40rem;padding-bottom:max(2rem, env(safe-area-inset-bottom));opacity:0;transform:translateY(1.15rem)}.finale--ready .finale__copy{opacity:1;transition:opacity 1.2s cubic-bezier(.16,1,.3,1) .18s,transform 1.4s cubic-bezier(.16,1,.3,1) .18s;transform:translateY(0)}.experience--particle-finale .finale__copy{top:56%;right:var(--space-page);left:var(--space-page);margin-inline:auto;position:absolute}.experience--particle-finale .finale__copy h2{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:fixed;overflow:hidden}.finale__copy h2{font-family:var(--font-latin);letter-spacing:.01em;overflow-wrap:anywhere;font-size:clamp(3.4rem,10vw,8.5rem);font-style:italic;font-weight:500}.finale__copy h2:focus{outline:none}.finale__copy p{text-wrap:balance;margin-inline:auto}.finale__replay{min-width:min(7.5rem,100%);max-width:100%;min-height:48px;color:var(--color-cream-muted);cursor:pointer;overflow-wrap:anywhere;letter-spacing:.12em;background:0 0;border:0;border-bottom:1px solid #d8b36a75;border-radius:0;padding:.6rem .35rem;line-height:1.6;transition:border-color .22s,color .22s,transform .16s}.finale__flower{color:var(--color-gold);margin-top:1.75rem}.finale__actions{flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;margin-top:2rem;display:flex}.finale__flower+.finale__actions{margin-top:.75rem}.finale__replay:hover{color:var(--color-cream);border-color:#efca82e6}.finale__replay:active{transform:translateY(1px)}.finale__copy .finale__music-credit{letter-spacing:.02em;max-width:38rem;color:var(--color-cream-muted);margin-top:1.6rem;font-size:.75rem;line-height:1.7}.finale__music-credit a{color:inherit;text-underline-offset:.2em}@keyframes story-arrive{0%{filter:blur(8px);opacity:0;transform:translateY(1.5rem)}to{filter:blur();opacity:1;transform:translateY(0)}}@keyframes flame-breathe{0%{opacity:.9;transform:translate(-50%)rotate(-3deg)scaleY(.96)}to{opacity:1;transform:translate(-50%)rotate(4deg)scaleY(1.04)}}@keyframes flame-out{0%{opacity:1;filter:brightness();transform:translate(-50%)rotate(3deg)scale(1)}18%{opacity:1;filter:brightness(1.18);transform:translate(-50%)translateY(-.05rem)rotate(17deg)scale(1.05,.98)}48%{opacity:.96;filter:brightness(1.05);transform:translate(-50%)translateY(.06rem)rotate(-11deg)scale(.68,.84)}76%{opacity:.72;filter:brightness(.82);transform:translate(-50%)translateY(.24rem)rotate(6deg)scale(.32,.42)}to{opacity:0;filter:brightness(.62);transform:translate(-50%)translateY(.34rem)rotate(2deg)scale(.15,.06)}}@keyframes smoke-rise{0%{opacity:0;transform:translate(-50%)translateY(.4rem)scale(.76)}26%{opacity:.68}to{opacity:0;transform:translate(-42%)translateY(-2.2rem)scale(1.2)}}@keyframes sound-wave{0%,to{opacity:.24}50%{opacity:.86}}@media (max-width:767px){:root{--space-page:clamp(1.2rem, 5.8vw, 2rem);--section-space:clamp(6rem, 14vh, 8rem)}.intro__content{transform:translateY(-2vh)}.sound-control{right:max(1rem, env(safe-area-inset-right));min-width:4.35rem}.intro h1{font-size:clamp(2.2rem,11vw,3.6rem)}.arrival h1{overflow-wrap:anywhere;max-width:11ch;margin-inline:auto;font-size:clamp(3.2rem,16vw,5.2rem);line-height:.94}.memory-sequence{gap:5rem}.memory,.memory--portrait-right,.memory--layered-left{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:2.5rem;min-height:auto;padding-block:2.5rem 5rem}.memory--portrait-right .memory__image-wrap,.memory--portrait-right .memory__copy,.memory--layered-left .memory__image-wrap,.memory--layered-left .memory__copy{grid-area:auto/1;width:100%;margin:0;padding:0}.memory--portrait-right .memory__image-wrap,.memory--layered-left .memory__image-wrap{width:min(100%,28rem)}.memory--portrait-right .memory__image-wrap{justify-self:end}.memory--layered-left .memory__image-wrap{perspective:800px;justify-self:start}.memory__companion{width:44%;height:48%;top:-8%;right:0}.memory--wide-center{gap:2.5rem;min-height:auto;padding:4rem 0 6rem}.memory--wide-center .memory__image-wrap{aspect-ratio:4/3}.memory--wide-center .memory__copy{padding-left:0}.memory__copy h2,.blessing h2,.wish h2{font-size:clamp(2rem,9vw,3.25rem)}.blessing__content{grid-template-columns:minmax(0,1fr);gap:3.5rem}.wish{padding-inline:var(--space-page);grid-template-columns:minmax(0,1fr);gap:2rem}.wish__visual{width:min(92vw,26rem);height:min(105vw,28rem)}.candle-trigger span{bottom:0}.wish__copy{padding-bottom:4rem}.experience--particle-finale .finale__copy{top:52%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.sound-control__wave{opacity:.72;animation:none!important}}
