/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#f8f0df;--muted:#cdbf9f;--gold:#d9ad5b;--deep:#0d1110}*{box-sizing:border-box}html,body{background:var(--deep);min-height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Georgia,Times New Roman,serif}button{font:inherit}.experience{isolation:isolate;background:radial-gradient(circle at 50% 35%,#314d3d6b,#0000 43%),linear-gradient(145deg,#0a0d0c,#111a15 58%,#080a09);min-height:100svh;position:relative;overflow:hidden}.grain{pointer-events:none;opacity:.18;z-index:10;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");position:absolute;inset:0}.orb{filter:blur(8px);opacity:.55;border-radius:50%;position:absolute}.orb-one{background:#c9943f2e;width:45vw;height:45vw;top:-20vw;left:-18vw}.orb-two{background:#43745838;width:32vw;height:32vw;bottom:-16vw;right:-10vw}.intro{place-items:center;padding:24px;display:grid}.birthday-sky{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.birthday-sky.is-subtle{opacity:.38}.balloon{--size:54px;width:var(--size);height:calc(var(--size) * 1.22);opacity:.86;background:radial-gradient(circle at 32% 25%,#ffffffb8,#0000 12%),linear-gradient(145deg,#f0c15d,#b46b38);border-radius:50% 50% 48% 48%;animation:13s linear infinite balloonRise;position:absolute;bottom:-180px;box-shadow:inset -8px -12px 18px #31110433,0 8px 24px #00000026}.balloon:after{content:"";background:inherit;width:9px;height:9px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.balloon i{transform-origin:top;background:#efdcb473;width:1px;height:105px;animation:2.8s ease-in-out infinite alternate stringSway;position:absolute;top:100%;left:50%}.balloon-1{--size:45px;animation-duration:15s;animation-delay:-4s;left:4%}.balloon-2{--size:60px;background:radial-gradient(circle at 32% 25%,#fff9,#0000 12%),linear-gradient(145deg,#6ea88e,#285e50);animation-delay:-10s;left:13%}.balloon-3{--size:38px;background:radial-gradient(circle at 32% 25%,#ffffffb3,#0000 12%),linear-gradient(145deg,#d99578,#934d57);animation-duration:17s;animation-delay:-1s;left:25%}.balloon-4{--size:51px;animation-duration:16s;animation-delay:-8s;left:38%}.balloon-5{--size:34px;background:radial-gradient(circle at 32% 25%,#ffffffb3,#0000 12%),linear-gradient(145deg,#9c87b8,#514371);animation-duration:18s;animation-delay:-12s;left:49%}.balloon-6{--size:58px;background:radial-gradient(circle at 32% 25%,#fff9,#0000 12%),linear-gradient(145deg,#6ea88e,#285e50);animation-delay:-6s;left:59%}.balloon-7{--size:43px;animation-duration:17s;animation-delay:-14s;left:69%}.balloon-8{--size:64px;background:radial-gradient(circle at 32% 25%,#ffffffb3,#0000 12%),linear-gradient(145deg,#d99578,#934d57);animation-duration:18s;animation-delay:-3s;left:78%}.balloon-9{--size:40px;background:radial-gradient(circle at 32% 25%,#ffffffb3,#0000 12%),linear-gradient(145deg,#9c87b8,#514371);animation-delay:-9s;left:88%}.balloon-10{--size:50px;background:radial-gradient(circle at 32% 25%,#fff9,#0000 12%),linear-gradient(145deg,#6ea88e,#285e50);animation-duration:19s;animation-delay:-16s;left:94%}.balloon-11{--size:42px;background:radial-gradient(circle at 32% 25%,#ffffffb3,#0000 12%),linear-gradient(145deg,#d99578,#934d57);animation-duration:20s;animation-delay:-15s;left:32%}.streamer{border:4px solid var(--gold);opacity:.75;border-bottom:0;border-left:0;border-radius:50%;width:12px;height:210px;animation:4s ease-in-out infinite alternate streamerDrop;position:absolute;top:-40px}.streamer-one{left:10%;transform:rotate(18deg)}.streamer-two{border-color:#7caa94;animation-delay:-2s;right:12%;transform:rotate(-22deg)}.spark{color:#f1ce81;animation:2.2s ease-in-out infinite twinkle;position:absolute}.spark-one{font-size:19px;top:20%;left:18%}.spark-two{font-size:13px;animation-delay:-.8s;top:28%;right:18%}.spark-three{font-size:23px;animation-delay:-1.4s;top:14%;left:72%}.intro-card{z-index:4;text-align:center;width:min(760px,100%);animation:1.1s cubic-bezier(.22,.8,.28,1) both reveal;position:relative}.eyebrow{color:var(--gold);letter-spacing:.34em;margin-bottom:28px;font:600 11px/1.2 Arial,sans-serif;display:block}.seal{color:#20190d;background:radial-gradient(circle at 35% 28%,#f0ce87,#bb8437 72%);border-radius:50% 46% 52% 48%;place-items:center;width:92px;height:92px;margin:0 auto 34px;display:grid;position:relative;transform:rotate(-4deg);box-shadow:0 12px 40px #00000070,inset 0 0 0 4px #fff5d533}.seal:before,.seal:after{content:"";border:1px solid #36250d80;border-radius:52% 47%;position:absolute;inset:7px}.seal:after{border-color:#dab05d47;inset:-5px}.seal span{font-size:35px;font-weight:700;transform:rotate(4deg)}.intro h1{letter-spacing:-.045em;margin:0;font-size:clamp(38px,7vw,76px);font-weight:500;line-height:.98}.intro-subtitle{color:var(--muted);margin:20px 0 36px;font-size:clamp(16px,2vw,20px)}.intro-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.intro-actions button,.replay{cursor:pointer;border:0;transition:transform .2s,background .2s}.intro-actions button:hover,.replay:hover{transform:translateY(-2px)}.primary{color:#17130b;background:var(--gold);border-radius:999px;padding:16px 24px;font:700 14px Arial,sans-serif!important}.primary span{margin-left:12px}.secondary{color:var(--ink);background:#ffffff0a;border-radius:999px;padding:15px 22px;border:1px solid #e6d3ae40!important;font:600 14px Arial,sans-serif!important}.play{color:var(--gold);margin-left:9px;font-size:10px}.hint{color:#dcd0b775;letter-spacing:.16em;text-transform:uppercase;margin-top:23px;font:10px Arial,sans-serif}.story{flex-direction:column;min-height:100svh;display:flex}.aurora{filter:blur(24px);background:radial-gradient(#3d664f3d,#0000 63%);animation:6s ease-in-out infinite breathe;position:absolute;inset:5% 8%}.progress{z-index:20;background:#ffffff14;height:3px;position:absolute;top:0;left:0;right:0}.progress-fill{background:linear-gradient(90deg,#a87731,#f1d390);height:100%;transition:width .6s;box-shadow:0 0 14px #dfb15c80}.story-header{z-index:20;justify-content:space-between;align-items:center;padding:26px 32px;display:flex;position:relative}.counter{color:var(--muted);text-transform:uppercase;letter-spacing:.22em;font:600 11px Arial,sans-serif}.header-actions{gap:8px;display:flex}.header-actions button,.back{width:38px;height:38px;color:var(--muted);cursor:pointer;background:#ffffff09;border:1px solid #ffffff1a;border-radius:50%}.tap-area{z-index:5;width:100%;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;place-items:center;padding:40px 22px 70px;display:grid;position:relative}.phrase-card{background:linear-gradient(150deg,#ffffff0c,#ffffff03);border:1px solid #deb97336;place-items:center;width:min(960px,92vw);min-height:430px;padding:clamp(38px,8vw,92px);animation:.72s cubic-bezier(.22,.8,.28,1) both cardIn;display:grid;position:relative;box-shadow:0 42px 100px #00000040}.phrase-card:before,.phrase-card:after{content:"";border-color:#deb97380;width:30px;height:30px;position:absolute}.phrase-card:before{border-top:1px solid;border-left:1px solid;top:16px;left:16px}.phrase-card:after{border-bottom:1px solid;border-right:1px solid;bottom:16px;right:16px}.phrase-card p{text-align:center;letter-spacing:-.035em;text-wrap:balance;max-width:830px;margin:0;font-size:clamp(32px,5.5vw,68px);line-height:1.08}.phrase-card p.long{font-size:clamp(26px,4.4vw,52px)}.phrase-card.photo-phrase{background:#050606;overflow:hidden}.phrase-photo{object-fit:cover;opacity:.66;filter:contrast(1.08);width:100%;height:100%;position:absolute;inset:0}.photo-shade{background:linear-gradient(#0000002e,#000000b3);position:absolute;inset:0}.photo-phrase p{z-index:2;text-shadow:0 3px 18px #000;position:relative}.photo-phrase .phrase-icon,.photo-phrase .phrase-number{z-index:3}.phrase-card.extra-wish{background:radial-gradient(circle,#5c8f6c42,#ffffff05 64%);border-color:#efc6707a}.extra-wish .phrase-icon{animation:1.8s ease-in-out infinite twinkle}.phrase-icon{min-width:50px;height:50px;color:var(--gold);background:#111814;border:1px solid #deb97361;border-radius:50%;place-items:center;padding:0 10px;font-size:19px;display:grid;position:absolute;top:-25px}.phrase-number{color:#d9ad5b73;letter-spacing:.16em;font:700 11px Arial,sans-serif;position:absolute;bottom:23px;right:28px}.tap-hint{color:#e6ddc86b;letter-spacing:.14em;text-transform:uppercase;font:10px Arial,sans-serif;position:absolute;bottom:28px}.tap-hint b{color:var(--gold);margin-left:8px}.back{z-index:30;position:absolute;bottom:24px;left:28px}.back:disabled{opacity:.2;cursor:default}.finale{background:radial-gradient(circle,#21382c 0,#101a15 46%,#080b09 100%);place-items:center;display:grid}.final-card{z-index:5;text-align:center;place-items:center;width:100%;min-height:100svh;padding:clamp(18px,4vw,52px);animation:1.2s both reveal;display:grid;position:relative}.final-small{color:var(--gold);letter-spacing:.25em;text-transform:uppercase;font:600 11px Arial,sans-serif}.final-message{background:radial-gradient(circle at 50% 42%,#4b7e5e6b,#0d1410e0 60%),linear-gradient(145deg,#19271f,#080b09);border:1px solid #e6c78859;border-radius:4px;place-items:center;width:min(880px,92vw);min-height:min(76svh,760px);display:grid;position:relative;overflow:hidden;box-shadow:0 40px 130px #0009}.final-message:before,.final-message:after{content:"";border:1px solid #daad5b29;border-radius:50%;width:210px;height:210px;animation:5s ease-in-out infinite breathe;position:absolute}.final-message:before{top:-90px;left:-80px}.final-message:after{animation-delay:-2.5s;bottom:-100px;right:-70px}.final-47{color:#0000;-webkit-text-stroke:1px #dfb35d29;letter-spacing:-.09em;font-size:clamp(240px,46vw,540px);font-weight:700;line-height:.8;position:absolute;transform:translate(-3%)}.final-copy{z-index:2;text-align:center;text-shadow:0 3px 20px #000;padding:42px 24px;position:relative}.final-card h2{letter-spacing:-.045em;text-wrap:balance;margin:14px 0 4px;font-size:clamp(38px,6.2vw,74px);font-weight:500;line-height:1}.infinity{color:var(--gold);margin:0 0 22px;font-size:48px}.replay{color:var(--ink);background:#ffffff0a;border:1px solid #e6d3ae40;border-radius:999px;padding:13px 20px;font:600 12px Arial,sans-serif}.confetti{pointer-events:none;position:fixed;inset:0}.confetti i{--x:calc((var(--i) * 37) % 100);top:-20px;left:calc(var(--x) * 1%);background:hsl(calc(38 + var(--i) * 3), 58%, 62%);width:7px;height:14px;animation:fall calc(4s + (var(--i) % 5) * .5s) calc((var(--i) % 8) * -.5s) linear infinite;transform:rotate(calc(var(--i) * 31deg));position:absolute}@keyframes reveal{0%{opacity:0;transform:translateY(22px)scale(.98)}to{opacity:1;transform:none}}@keyframes cardIn{0%{opacity:0;filter:blur(6px);transform:translateY(18px)scale(.97)}to{opacity:1;filter:blur();transform:none}}@keyframes breathe{50%{opacity:.55;transform:scale(1.12)}}@keyframes fall{to{transform:translateX(calc((var(--i) % 2) * 80px - 40px)) rotate(680deg);top:110%}}@keyframes balloonRise{0%{transform:translateY(0)rotate(-3deg)}50%{transform:translate(18px,-62vh)rotate(4deg)}to{transform:translate(-10px,-130vh)rotate(-4deg)}}@keyframes stringSway{to{transform:rotate(8deg)}}@keyframes streamerDrop{to{transform:translateY(38px)rotate(26deg)}}@keyframes twinkle{50%{opacity:.2;transform:scale(.65)rotate(45deg)}}@keyframes slowZoom{0%{transform:scale(1)}to{transform:scale(1.08)}}@media (width<=600px){.intro{padding:20px}.eyebrow{margin-bottom:20px}.seal{width:76px;height:76px;margin-bottom:26px}.seal span{font-size:29px}.intro h1{font-size:clamp(36px,11vw,54px)}.intro-subtitle{margin:16px 0 30px}.story-header{padding:21px 18px}.phrase-card{width:94vw;min-height:58svh;padding:48px 25px}.phrase-card p{font-size:clamp(30px,9.2vw,47px)}.phrase-card p.long{font-size:clamp(24px,7.1vw,35px)}.tap-area{padding-inline:10px}.back{bottom:15px;left:16px}.tap-hint{bottom:17px}.final-number{font-size:48vw}.final-message{width:94vw;min-height:78svh}.final-card h2{font-size:clamp(34px,10vw,49px)}.birthday-sky.is-subtle{opacity:.24}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
