/*! 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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y: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{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--black:#020508;--ice:#b9ebff;--cyan:#66d7ff;--gold:#ffad34;--paper:#edfaff;--muted:#c9e6f194}*{box-sizing:border-box}html,body{background:var(--black);min-height:100%;margin:0}body{color:var(--paper);font-family:var(--font-geist-sans), "Microsoft YaHei", "PingFang SC", sans-serif}button{font:inherit}.birthday-experience{isolation:isolate;background:radial-gradient(at 50% 58%,#0c536f2b 0%,#0000 36%),radial-gradient(circle at 16% 4%,#1c4d631a,#0000 24%),linear-gradient(#010305 0%,#02070a 58%,#010203 100%);min-height:100svh;position:relative;overflow:hidden}.birthday-experience:before{z-index:-1;opacity:.36;content:"";pointer-events:none;background-image:linear-gradient(#ffffff03 1px,#0000 1px),linear-gradient(90deg,#ffffff03 1px,#0000 1px);background-size:46px 46px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 80%);mask-image:radial-gradient(circle,#000,#0000 80%)}.fireworks-layer{z-index:20;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.star-noise,.star-noise:before,.star-noise:after{z-index:-1;content:"";pointer-events:none;position:fixed;inset:0}.star-noise{opacity:.72;background-image:radial-gradient(circle,#daf4ffe6 0 1px,#0000 1.5px),radial-gradient(circle,#6fcaf0bf 0 1px,#0000 1.6px),radial-gradient(circle,#ffffff8c 0 .7px,#0000 1.25px);background-position:13% 17%,67% 9%,81% 62%;background-size:181px 197px,239px 223px,103px 127px}.star-noise:before{background:radial-gradient(circle at 8% 42%,#d9f3ff 0 1.5px,#0000 2px),radial-gradient(circle at 91% 24%,#fff 0 1px,#0000 2px),radial-gradient(circle at 74% 81%,#a9e3ff 0 1.2px,#0000 2px),radial-gradient(circle at 27% 77%,#fff 0 .9px,#0000 1.8px);animation:3.5s ease-in-out infinite alternate star-breathe}.star-noise:after{opacity:.22;background-image:radial-gradient(circle,#fff 0 .8px,#0000 1.2px);background-size:61px 71px;transform:rotate(6deg)scale(1.08)}.blue-halo{z-index:-1;filter:blur(2px);background:#1589b90e;border:1px solid #57ccff14;border-radius:50%;width:min(88vw,72rem);height:45rem;position:fixed;bottom:-24rem;left:50%;transform:translate(-50%);box-shadow:0 0 120px #2298c71a,inset 0 0 100px #27aee10d}.site-header{z-index:8;color:#bee2f08c;width:100%;font-family:var(--font-geist-mono), monospace;letter-spacing:.2em;justify-content:space-between;align-items:center;padding:1.5rem clamp(1.2rem,4vw,4.5rem);font-size:.64rem;display:flex;position:absolute;top:0;left:0}.tiny-mark{align-items:center;gap:.75rem;display:flex}.tiny-mark i{background:var(--cyan);width:1.6rem;height:1px;box-shadow:0 0 8px var(--cyan)}.edition{color:#ffad34b8}.birthday-hero{z-index:3;grid-template-columns:minmax(16rem,.76fr) minmax(31rem,1.2fr) minmax(16rem,.76fr);align-items:center;gap:clamp(.5rem,2vw,2.6rem);min-height:100svh;padding:5.5rem clamp(1.5rem,5vw,5.5rem) 4.4rem;display:grid;position:relative}.title-lockup{align-self:center;padding-bottom:3rem}.micro-kicker{color:#a2daf194;font-family:var(--font-geist-mono), monospace;letter-spacing:.24em;margin:0 0 1.6rem;font-size:clamp(.55rem,.8vw,.68rem);line-height:1.8}.title-lockup h1{color:var(--ice);letter-spacing:-.07em;text-shadow:0 0 8px #7edcff73,0 0 36px #3ab1e13d;margin:0;font-family:Brush Script MT,Segoe Script,STKaiti,cursive;font-size:clamp(4.2rem,7.8vw,8.8rem);font-weight:500;line-height:.68;transform:rotate(-3deg)}.title-lockup h1 span{display:block}.title-lockup h1 span:last-child{margin-top:.32em;margin-left:.12em}.for-name{color:var(--gold);font-family:var(--font-geist-mono), monospace;letter-spacing:.45em;align-items:center;gap:.75rem;margin:2.3rem 0 0 1rem;font-size:clamp(.78rem,1.15vw,1rem);font-weight:600;display:flex}.for-name:before{content:"";background:#ffad348c;width:2rem;height:1px}.for-name strong{letter-spacing:.25em;font-family:STKaiti,KaiTi,serif;font-size:1.35em;font-weight:500}.cake-stage{align-self:center;place-items:center;height:min(72vh,45rem);min-height:34rem;display:grid;position:relative}.cake-canvas{z-index:3;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;filter:saturate(1.08);outline:none;width:100%;height:100%;display:block;position:relative}.cake-canvas.is-dragging{cursor:grabbing}.cake-orbit{z-index:1;pointer-events:none;border:1px solid #5ad3ff1f;border-radius:50%;position:absolute;top:54%;left:50%;transform:translate(-50%,-50%)rotateX(69deg)}.cake-orbit:before,.cake-orbit:after{content:"";border-radius:50%;position:absolute}.cake-orbit:before{border-top:1px solid #79e0ff59;animation:8s linear infinite orbit-spin;inset:-1px}.cake-orbit:after{background:#bdefff;width:5px;height:5px;top:-3px;left:50%;box-shadow:0 0 14px #53cfff}.cake-orbit-one{width:86%;height:42%}.cake-orbit-two{opacity:.55;width:62%;height:30%;transform:translate(-50%,-50%)rotateX(69deg)rotate(17deg)}.rotation-hint{z-index:5;color:#bee6f680;letter-spacing:.12em;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040f147a;border:1px solid #9ae2ff1f;border-radius:99px;align-items:center;gap:.65rem;width:max-content;padding:.5rem .85rem;font-size:.62rem;display:flex;position:absolute;bottom:2.3rem;left:50%;transform:translate(-50%)}.rotation-hint span{color:var(--cyan);font-size:1rem}.wish-panel{z-index:7;border-left:1px solid #66d7ff33;align-self:center;width:min(100%,21rem);padding:1.6rem 0 1.6rem 1.6rem;position:relative}.wish-panel:before{background:var(--cyan);content:"";width:3px;height:2.4rem;position:absolute;top:0;left:-2px;box-shadow:0 0 16px #66d7ffd9}.wish-line{color:#e7f7fccc;letter-spacing:.08em;margin:0 0 1.1rem;font-family:STKaiti,KaiTi,serif;font-size:1.25rem}.mic-status{min-height:2.8rem;color:var(--muted);grid-template-columns:auto 1fr;align-items:center;gap:.55rem;font-size:.71rem;line-height:1.55;display:grid}.status-dot{background:#7ac9e8;border-radius:50%;width:5px;height:5px;box-shadow:0 0 9px #5ecdf6bf}.mic-status[data-state=listening] .status-dot{background:#ffb13d;animation:.7s ease-in-out infinite alternate status-pulse;box-shadow:0 0 11px #ff8b26}.mic-status[data-state=denied] .status-dot,.mic-status[data-state=unsupported] .status-dot{box-shadow:none;background:#d5837a}.level-track{background:#9ddef71f;border-radius:99px;grid-column:2;width:100%;height:2px;overflow:hidden}.level-track i{border-radius:inherit;background:linear-gradient(90deg, var(--cyan), #ffd057, #ff8138);transform-origin:0;width:100%;height:100%;transition:transform 70ms linear;display:block}.action-row{flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:1.2rem;display:flex}.primary-action{color:#dff7ff;cursor:pointer;letter-spacing:.1em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#1f8db742,#0927347a);border:1px solid #91e2ff80;border-radius:3px;justify-content:center;align-items:center;gap:.7rem;min-height:3.1rem;padding:.75rem 1.2rem;font-size:.75rem;transition:border-color .18s,background .18s,transform .18s;display:inline-flex;box-shadow:inset 0 0 20px #3ebff10f,0 0 28px #41bceb12}.primary-action:hover:not(:disabled){background:linear-gradient(135deg,#26a8d961,#0a324394);border-color:#a4ebffd9;transform:translateY(-2px)}.primary-action:disabled{cursor:wait;opacity:.7}.mic-icon{border:1px solid;border-radius:8px;width:9px;height:14px;position:relative}.mic-icon:before{content:"";border-bottom:1px solid;border-left:1px solid;border-right:1px solid;border-radius:0 0 9px 9px;height:8px;position:absolute;bottom:-5px;left:-5px;right:-5px}.text-action{color:#ceecf88c;cursor:pointer;letter-spacing:.09em;background:0 0;border:0;border-bottom:1px solid #ceecf840;padding:.65rem .2rem;font-size:.7rem;transition:color .18s,border-color .18s}.text-action:hover{color:#e7f8ff;border-color:#ceecf8b8}.celebration-message{animation:.8s cubic-bezier(.2,.75,.2,1) both message-arrive}.celebration-message p{color:var(--gold);font-family:var(--font-geist-mono), monospace;letter-spacing:.19em;margin:0 0 1rem;font-size:.7rem}.celebration-message h2{color:#eaf9ff;letter-spacing:.05em;margin:0 0 1.6rem;font-family:STKaiti,KaiTi,serif;font-size:clamp(1.5rem,2.4vw,2.15rem);font-weight:400;line-height:1.55}.site-footer{z-index:7;color:#a3cfe057;width:100%;font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;justify-content:space-between;align-items:center;padding:1.25rem clamp(1.2rem,4vw,4.5rem);font-size:.55rem;display:flex;position:absolute;bottom:0;left:0}button:focus-visible{outline-offset:4px;outline:2px solid #b8efff}@keyframes star-breathe{0%{opacity:.35}to{opacity:.95}}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes status-pulse{to{opacity:.4;transform:scale(.7)}}@keyframes message-arrive{0%{opacity:0;filter:blur(4px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (max-width:1100px){.birthday-hero{grid-template-rows:1fr auto;grid-template-columns:minmax(14rem,.72fr) minmax(26rem,1.2fr);padding-top:6rem}.title-lockup{padding-bottom:0}.cake-stage{height:min(66vh,40rem);min-height:31rem}.wish-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#020a0e85;border:1px solid #66d7ff24;grid-column:1/-1;grid-template-columns:.8fr 1.2fr;justify-self:center;width:min(100%,42rem);margin-top:-4rem;padding:1rem 1.4rem;display:grid}.wish-panel:before{width:2.4rem;height:2px;top:-1px;left:1.4rem}.wish-line{align-self:center;margin:0}.action-row{margin-top:.7rem}.celebration-message{text-align:center;grid-column:1/-1}}@media (max-width:760px){.birthday-experience{min-height:100svh;overflow-y:auto}.site-header{padding:1.1rem 1rem;font-size:.52rem}.birthday-hero{flex-direction:column;gap:0;min-height:100svh;padding:5.2rem 1rem 5.4rem;display:flex}.title-lockup{z-index:4;text-align:center;width:100%;position:relative}.micro-kicker{margin-bottom:.9rem;font-size:.48rem}.title-lockup h1{font-size:clamp(4.1rem,22vw,6.5rem);line-height:.64}.title-lockup h1 span:last-child{margin-top:.37em;margin-left:0}.for-name{justify-content:center;margin:1.5rem 0 0}.cake-stage{width:100%;height:52vh;min-height:25rem;margin-top:-1.5rem}.cake-orbit-one{width:96%}.rotation-hint{bottom:1.3rem}.wish-panel{text-align:center;width:min(100%,28rem);margin-top:-1rem;padding:1.2rem;display:block}.wish-line{margin-bottom:.8rem}.mic-status{grid-template-columns:auto auto;justify-content:center}.level-track{grid-column:1/-1;justify-self:center;width:min(14rem,100%)}.action-row{justify-content:center}.site-footer{text-align:center;justify-content:center;padding:1rem;position:relative}.site-footer span:first-child{display:none}}@media (max-height:700px) and (min-width:761px){.birthday-hero{padding-top:4.6rem;padding-bottom:3.5rem}.cake-stage{height:82vh;min-height:28rem}.title-lockup h1{font-size:clamp(4rem,7vw,7.2rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
