/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.contents{display:contents}.hidden{display:none}.table{display:table}.grow{flex-grow:1}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--night:#050510;--ink:#f8f5ef;--muted:#ece9f48f;--line:#ffffff21;--gold:#f4bf63;--pink:#ff6c9e;--cyan:#70dff7;--violet:#a78bfa}*{box-sizing:border-box}html,body{background:var(--night);min-height:100%;margin:0}body{color:var(--ink);font-family:Avenir Next,Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,a{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.experience{isolation:isolate;touch-action:none;background:radial-gradient(circle at 50% 48%,#603f8a2b,#0000 27%),radial-gradient(circle at 15% 88%,#3dc0d717,#0000 26%),radial-gradient(circle at 88% 18%,#e2538214,#0000 24%),#050510;width:100%;height:100svh;min-height:620px;position:relative;overflow:hidden}.experience:before{content:"";z-index:-1;pointer-events:none;opacity:.36;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:42px 42px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 88%);mask-image:linear-gradient(#000,#0000 88%)}.particle-canvas,.camera-feed,.camera-veil,.grain{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.particle-canvas{z-index:1}.camera-feed{z-index:-4;object-fit:cover;opacity:0;filter:grayscale()contrast(1.25);transition:opacity 1.2s;transform:scaleX(-1)}.mode-active .camera-feed{opacity:.075}.camera-veil{z-index:-3;background:linear-gradient(90deg,#050510f0,#050510c2 48%,#050510e6)}.grain{z-index:90;opacity:.07;mix-blend-mode:overlay;background:repeating-radial-gradient(circle at 14% 31%,#0000 0 1px,#ffffff7a 1px 2px) 0 0/7px 7px,repeating-linear-gradient(117deg,#0000 0 5px,#ffffff40 5px 6px) 0 0/13px 13px}.topbar{z-index:40;padding:max(25px, env(safe-area-inset-top)) 34px 0;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.wordmark{color:#fff;letter-spacing:.3em;align-items:center;gap:12px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.mark-orbit{border:1px solid #ffffff80;border-radius:50%;width:29px;height:29px;position:relative;transform:rotate(-22deg)}.mark-orbit:before,.mark-orbit:after{content:"";border:1px solid #f4bf63b3;border-radius:50%;position:absolute;inset:5px -5px}.mark-orbit:after{background:var(--gold);box-shadow:0 0 12px var(--gold);border:0;inset:12px}.live-status{color:#ffffffa8;letter-spacing:.12em;border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0a0a1861;border-radius:999px;align-items:center;gap:9px;padding:8px 13px;font-size:10px;display:flex}.status-dot{background:#ffffff59;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #ffffff0a}.status-dot.is-live{background:#69f7b3;animation:1.7s ease-in-out infinite status-pulse;box-shadow:0 0 0 3px #69f7b31f,0 0 13px #69f7b3b3}.intro,.loading-state,.gesture-stage,.reveal-sequence,.finale{z-index:10;position:relative}.intro{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:110px 24px 120px;animation:1.1s both scene-in;display:flex}.kicker,.stage-index,.finale-kicker{color:#ffffff8a;letter-spacing:.26em;margin:0;font-size:10px;font-weight:600}.kicker{align-items:center;gap:11px;display:flex}.kicker span{background:linear-gradient(90deg, transparent, var(--gold));width:26px;height:1px}.intro h1{letter-spacing:.07em;text-shadow:0 10px 50px #00000085;margin:24px 0 0;font-family:Songti SC,STSong,Times New Roman,serif;font-size:clamp(34px,4.7vw,72px);font-weight:300;line-height:1.06}.intro h1 strong{color:#0000;letter-spacing:.17em;-webkit-text-stroke:1px #ffffffbd;margin-top:12px;font-size:.7em;font-weight:300;display:block}.intro-copy{color:var(--muted);letter-spacing:.06em;margin:26px 0 0;font-family:Songti SC,STSong,serif;font-size:14px;line-height:1.9}.intro-actions{flex-direction:column;align-items:center;margin-top:33px;display:flex}.primary-button{color:#15101a;letter-spacing:.06em;cursor:pointer;background:#f6f1e7;border:0;border-radius:999px;align-items:center;gap:14px;min-height:57px;padding:0 18px 0 13px;font-size:13px;font-weight:700;transition:transform .25s,box-shadow .25s;display:flex;position:relative;box-shadow:0 10px 50px #0000004d,0 0 0 1px #ffffff6b}.primary-button:hover{transform:translateY(-3px);box-shadow:0 15px 55px #0000006b,0 0 28px #f4bf631f}.primary-button>span:last-child{margin-left:8px;font-size:16px}.button-orb{background:radial-gradient(circle at 38% 35%,#fff 0 5%,#0000 6%),radial-gradient(circle,#ffd36d,#ec739f 45%,#6359bf 72%,#161025 74%);border-radius:50%;width:34px;height:34px;animation:5s linear infinite orb-spin;box-shadow:inset 0 0 8px #fff9,0 0 12px #ed76a77a}.text-button{color:#ffffff70;letter-spacing:.06em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;margin-top:14px;padding:7px 10px;font-size:11px;transition:color .2s,border-color .2s}.text-button:hover{color:#fffc;border-color:#ffffff40}.loading-state{flex-direction:column;justify-content:center;align-items:center;min-height:100svh;display:flex}.loading-state p{letter-spacing:.13em;margin:27px 0 4px;font-family:Songti SC,serif;font-size:17px}.loading-state small{color:var(--muted);letter-spacing:.07em;font-size:10px}.loader-orbit{border:1px solid #ffffff1f;border-radius:50%;width:94px;height:94px;animation:4s linear infinite orb-spin;position:relative}.loader-orbit:before{content:"";border:1px dashed #f4bf6366;border-radius:50%;position:absolute;inset:17px}.loader-orbit i{background:var(--gold);border-radius:50%;width:7px;height:7px;position:absolute;box-shadow:0 0 15px}.loader-orbit i:first-child{top:7px;left:44px}.loader-orbit i:nth-child(2){background:var(--pink);bottom:18px;right:8px}.loader-orbit i:nth-child(3){background:var(--cyan);bottom:19px;left:7px}.gesture-stage{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:130px 24px 230px;display:flex}.stage-index{color:#f4bf63a3}.gesture-stage h2{letter-spacing:.1em;text-shadow:0 8px 30px #000000a6;margin:15px 0 6px;font-family:Songti SC,STSong,serif;font-size:clamp(30px,4.5vw,58px);font-weight:300}.gesture-stage>p:not(.stage-index){color:var(--muted);letter-spacing:.11em;margin:0;font-size:12px}.fist-progress{opacity:0;background:#ffffff1f;width:min(230px,54vw);height:2px;margin-top:22px;transition:opacity .2s;overflow:hidden}.fist-progress.is-visible{opacity:1}.fist-progress span{background:linear-gradient(90deg, var(--pink), var(--gold));height:100%;box-shadow:0 0 12px var(--gold);transition:width 80ms linear;display:block}.camera-error{color:#ffa0b6b8;max-width:420px;margin-top:14px;font-size:10px;line-height:1.6}.gesture-dock{z-index:45;border:1px solid var(--line);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#0b0a1a9e;border-radius:13px;grid-template-columns:repeat(3,1fr);width:min(710px,100vw - 44px);animation:.9s cubic-bezier(.16,1,.3,1) .15s both dock-in;display:grid;position:fixed;bottom:55px;left:50%;transform:translate(-50%);box-shadow:0 18px 60px #0000003d}.gesture-dock button{color:#ffffffb3;text-align:left;cursor:pointer;border:0;border-right:1px solid var(--line);background:0 0;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;min-height:72px;padding:10px 15px;transition:background .22s,color .22s;display:grid;position:relative}.gesture-dock button:first-child{border-radius:12px 0 0 12px}.gesture-dock button:last-child{border-right:0;border-radius:0 12px 12px 0}.gesture-dock button:hover,.gesture-dock button.is-active{color:#fff;background:linear-gradient(135deg,#ff6c9e1a,#70dff70d)}.gesture-dock button.is-active:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);height:1px;box-shadow:0 0 9px var(--gold);position:absolute;bottom:0;left:16px;right:16px}.gesture-dock button>span:nth-child(2){flex-direction:column;gap:3px;display:flex}.gesture-dock strong{letter-spacing:.07em;font-size:11px;font-weight:600}.gesture-dock small{color:#ffffff54;letter-spacing:.08em;font-size:9px}.gesture-dock em{color:#ffffff38;align-self:flex-start;font-family:Georgia,serif;font-size:9px;font-style:normal}.gesture-icon{border:1px solid #ffffff21;border-radius:50%;width:42px;height:42px;position:relative}.gesture-icon:before,.gesture-icon i{content:"";border:1px solid #ffffff8c;display:block;position:absolute}.open-icon:before{border-top:0;border-radius:9px 9px 12px 12px;height:13px;bottom:10px;left:12px;right:12px}.open-icon i{border-bottom:0;border-radius:4px;width:4px;height:13px;bottom:20px}.open-icon i:first-child{left:13px;transform:rotate(-12deg)}.open-icon i:nth-child(2){height:16px;left:19px}.open-icon i:nth-child(3){right:12px;transform:rotate(12deg)}.pinch-icon i{border-radius:9px;width:17px;height:7px}.pinch-icon i:first-child{top:13px;left:6px;transform:rotate(31deg)}.pinch-icon i:nth-child(2){bottom:12px;right:6px;transform:rotate(-31deg)}.pinch-icon:after{content:"";background:var(--gold);width:3px;height:3px;box-shadow:0 0 8px var(--gold);border-radius:50%;position:absolute;top:19px;left:19px}.fist-icon i{background:#ffffff08;border-radius:7px 7px 10px 10px;inset:12px 10px 9px}.fist-icon:before{border-radius:7px;width:20px;height:8px;top:9px;left:11px}.camera-card{z-index:42;opacity:.72;width:158px;position:fixed;bottom:62px;right:34px}.camera-frame{aspect-ratio:4/3;background:#090915;border:1px solid #ffffff1a;position:relative;overflow:hidden}.camera-preview{object-fit:cover;filter:grayscale(.82)contrast(1.13)brightness(.76);width:100%;height:100%;transform:scaleX(-1)}.corner{border-style:solid;border-color:#70dff7bf;width:13px;height:13px;position:absolute}.corner-one{border-width:1px 0 0 1px;top:6px;left:6px}.corner-two{border-width:1px 1px 0 0;top:6px;right:6px}.corner-three{border-width:0 0 1px 1px;bottom:6px;left:6px}.corner-four{border-width:0 1px 1px 0;bottom:6px;right:6px}.camera-card p{color:#ffffff57;letter-spacing:.13em;align-items:center;gap:6px;margin:6px 0 0;font-size:8px;display:flex}.camera-card p span{background:#69f7b3;border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #69f7b3}.screen-reader-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reveal-sequence{pointer-events:none;min-height:100svh}.birthday-particle-caption{color:#fff0d5bf;text-align:center;letter-spacing:.04em;margin:0;font-family:Georgia,serif;font-size:clamp(20px,3vw,30px);animation:.8s .5s both rise-in;position:absolute;top:76%;left:20px;right:20px}.countdown-halo{aspect-ratio:1;border:1px solid #f4bf631f;border-radius:50%;width:min(74vw,53svh,390px);position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 85px #a870ca14,inset 0 0 70px #f4bf6309}.countdown-halo:after{content:"";border:1px dashed #f4bf631a;border-radius:50%;animation:24s linear infinite orb-spin;position:absolute;inset:-14px}.countdown-caption{text-align:center;position:absolute;top:76%;left:20px;right:20px}.countdown-caption p{color:#fff0d5a8;letter-spacing:.22em;margin:0;font-family:Songti SC,serif;font-size:14px}.countdown-ticks{justify-content:center;gap:10px;margin-top:18px;display:flex}.countdown-ticks i{background:#ffffff24;width:25px;height:2px;transition:background .25s,box-shadow .25s}.countdown-ticks i.is-lit{background:var(--gold);box-shadow:0 0 12px #f4bf638c}.memory-loading{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:80px 20px 110px;display:flex}.memory-loading-message{color:#fff4e0d9;letter-spacing:.08em;margin:0;font-family:Songti SC,STSong,serif;font-size:clamp(23px,3vw,34px);font-weight:300;animation:.25s both memory-message-in}.animated-ellipsis{letter-spacing:0;width:1.1em;margin-left:.05em;display:inline-flex}.animated-ellipsis i{opacity:0;flex:1;font-style:normal;animation:1.2s step-end infinite loading-dot}.animated-ellipsis i:nth-child(2){animation-delay:.18s}.animated-ellipsis i:nth-child(3){animation-delay:.36s}.finale{text-align:center;pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;min-height:100svh;padding:92px 24px 76px;display:flex}.finale-kicker{color:#f4bf63b8;animation:.8s .45s both rise-in}.finale-rule{width:min(240px,55vw);color:var(--gold);align-items:center;margin:13px 0 0;animation:.8s .6s both line-in;display:flex}.finale-rule:before,.finale-rule:after{content:"";background:linear-gradient(90deg,#0000,#f4bf6399);flex:1;height:1px}.finale-rule:after{transform:scaleX(-1)}.finale-rule span{margin:0 10px;font-size:9px}.finale h1{color:#fff8e8;letter-spacing:.02em;white-space:pre-wrap;text-shadow:0 0 30px #ffc87440,0 12px 40px #000c;max-width:100%;margin:12px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,4.5vw,64px);font-weight:400;line-height:1.12;animation:1.2s cubic-bezier(.16,1,.3,1) .25s both finale-in}.finale-wish{color:#ffffffa8;letter-spacing:.08em;margin:12px 0 0;font-family:Songti SC,serif;font-size:clamp(12px,1.5vw,15px);line-height:1.9;animation:.9s .75s both rise-in}.replay-button{color:#ffffff80;letter-spacing:.13em;cursor:pointer;pointer-events:auto;background:0 0;border:0;border-bottom:1px solid #fff3;margin-top:16px;padding:8px 10px;font-size:10px;animation:.9s 1s both rise-in}.replay-button:hover{color:#fff}.finale.with-memories{justify-content:center;padding:84px 24px 42px}.with-memories h1{font-size:clamp(27px,3.1vw,46px)}.with-memories .finale-wish{margin-top:10px;font-size:12px}.with-memories .finale-rule{margin-top:8px}.with-memories .replay-button{margin-top:9px}.is-revealed .camera-card{visibility:hidden}.memory-gallery{pointer-events:auto;width:min(640px,133.333svh - 466.667px,100vw - 48px);margin-top:18px;animation:1.25s cubic-bezier(.16,1,.3,1) both memory-arrive}.memory-frame{aspect-ratio:4/3;isolation:isolate;background:#15131a;border:1px solid #f8dfb36b;border-radius:8px;width:100%;position:relative;overflow:hidden;box-shadow:0 24px 80px #0000008c,0 0 0 4px #ffeac309,0 0 60px #f4bf6312}.memory-frame:after{content:"";z-index:3;border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 35px #2d18101f}.memory-slide{opacity:0;margin:0;transition:opacity 1.1s;position:absolute;inset:0;overflow:hidden}.memory-slide.is-current{z-index:1;opacity:1}.memory-slide img{width:100%;height:100%;display:block}.memory-backdrop{object-fit:cover;filter:blur(22px)brightness(.6)saturate(.7);position:absolute;inset:0;transform:scale(1.15)}.memory-photo{object-fit:contain;filter:sepia(.1)saturate(.92)contrast(.99)brightness(1.01);position:relative}.tone-dinner .memory-photo{filter:sepia(.12)saturate(.88)contrast(.98)brightness(1.03)}.tone-wedding .memory-photo{filter:sepia(.1)saturate(.9)contrast(1.08)brightness(.99)}.tone-family .memory-photo{filter:sepia(.04)saturate(.9)contrast(.99)brightness(.99)}.memory-controls{justify-content:space-between;align-items:center;min-height:27px;padding-top:7px;display:flex}.memory-count{color:#f4e0bf8c;font-variant-numeric:tabular-nums;letter-spacing:.17em;text-align:left;width:72px;font-size:9px}.memory-pagination{align-items:center;gap:4px;display:flex}.memory-pagination button{cursor:pointer;background:0 0;border:0;place-items:center;width:29px;height:22px;padding:0;display:grid}.memory-pagination button span{background:#ffffff30;border-radius:3px;width:18px;height:2px;transition:background .3s,box-shadow .3s;display:block}.memory-pagination button.is-current span{background:#eac28c;box-shadow:0 0 10px #f4bf6380}.memory-playback{color:#ffffff80;letter-spacing:.06em;text-align:right;cursor:pointer;background:0 0;border:0;width:72px;padding:3px 0;font-size:9px}.memory-playback:hover{color:#fff5e4}.experience-footer{z-index:35;color:#fff3;letter-spacing:.2em;pointer-events:none;justify-content:center;gap:14px;font-family:Georgia,serif;font-size:8px;display:flex;position:fixed;bottom:17px;left:0;right:0}.experience-footer span:nth-child(2){color:#f4bf638c}@keyframes scene-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes dock-in{0%{opacity:0;transform:translate(-50%,22px)}to{opacity:1;transform:translate(-50%)}}@keyframes rise-in{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}@keyframes finale-in{0%{opacity:0;filter:blur(8px);transform:translateY(20px)scale(.9)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes line-in{0%{opacity:0;transform:scaleX(.2)}to{opacity:1;transform:scaleX(1)}}@keyframes orb-spin{to{transform:rotate(360deg)}}@keyframes status-pulse{50%{opacity:.45}}@keyframes memory-arrive{0%{opacity:0;filter:blur(5px);transform:translateY(16px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes memory-message-in{0%{opacity:0;filter:blur(3px);transform:translateY(9px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes loading-dot{0%,15%{opacity:0}25%,85%{opacity:1}95%,to{opacity:0}}@media (width<=980px){.camera-card{width:112px;bottom:152px;right:20px}.gesture-dock{bottom:52px}}@media (width<=680px){.experience{min-height:560px}.topbar{padding:max(18px, env(safe-area-inset-top)) 18px 0}.wordmark{font-size:9px}.mark-orbit{width:25px;height:25px}.live-status{padding:7px 10px;font-size:8px}.intro{padding:100px 21px 110px}.intro h1{font-size:clamp(38px,11.5vw,57px);line-height:1.13}.intro-title-recipient{margin-bottom:7px;font-size:.9em;display:block}.intro h1 strong{margin-top:9px;font-size:.64em}.intro-copy{margin-top:22px;font-size:12px}.primary-button{min-height:54px;padding-right:16px;font-size:11px}.gesture-stage{justify-content:flex-start;padding-top:24vh}.gesture-stage h2{font-size:30px}.camera-card{width:86px;top:71px;bottom:auto;right:18px}.camera-card p{font-size:6px}.gesture-dock{width:calc(100vw - 24px);bottom:44px}.gesture-dock button{text-align:center;flex-direction:column;justify-content:center;gap:5px;min-height:82px;padding:8px 4px;display:flex}.gesture-dock button>span:nth-child(2){gap:1px}.gesture-dock em{position:absolute;top:7px;right:8px}.gesture-icon{width:35px;height:35px;transform:scale(.82)}.gesture-dock strong{font-size:9px}.gesture-dock small{font-size:7px}.finale{justify-content:flex-end;padding-bottom:58px}.finale h1{font-size:clamp(28px,7.4vw,40px)}.finale-wish{font-size:11px}.finale.with-memories{padding:83px 20px 40px}.with-memories h1{max-width:340px;font-size:clamp(26px,7vw,35px)}.with-memories .finale-kicker{letter-spacing:.18em;max-width:290px;font-size:8px;line-height:1.7}.with-memories .finale-wish{font-size:10px}.memory-gallery{width:min(100vw - 40px,133.333svh - 453.333px);margin-top:16px}.experience-footer{font-size:6px;bottom:13px}.experience-footer span:first-child,.experience-footer span:last-child{display:none}}@media (height<=700px) and (width>=681px){.intro{padding-top:78px;padding-bottom:88px}.intro h1{font-size:clamp(34px,4.7vw,58px)}.intro-copy{margin-top:17px}.intro-actions{margin-top:22px}.gesture-stage{padding-bottom:180px}.gesture-dock{bottom:38px}.camera-card{bottom:48px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
