:root{color:#eaf2f0;font-synthesis:none;text-rendering:optimizelegibility;--night:#06111e;--night-soft:#0a1a2b;--ink:#102018;--moon:#eef5e9;--sprout:#b8f26d;--sprout-deep:#6fbb42;--warm:#ffd978;--line:#ddefe529;--muted:#8ca29f;background:#06111e;font-family:SFMono-Regular,Consolas,Liberation Mono,Noto Sans SC,PingFang SC,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--night);min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--sprout);outline-offset:4px}a{color:inherit}.captain-opening{isolation:isolate;background:#02070d;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.captain-idle{z-index:4;background:radial-gradient(circle at 50% 42%, #9fe17e21, transparent 25%), radial-gradient(circle at 50% 50%, #0b2132 0, var(--night) 58%);place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.hero-backdrop,.greeting-backdrop{filter:blur(16px)saturate(.72);background:linear-gradient(#030c13a1,#030c13db),url(/media/opening/hero-avatar-poster.webp) 50%/cover;position:absolute;inset:-35px;transform:scale(1.05)}.captain-video{z-index:1;object-fit:contain;opacity:0;background:#02070d;width:100%;height:100%;transition:filter .45s,opacity .45s;position:absolute;inset:0}.phase-playing .captain-video,.phase-arrived .captain-video{opacity:1}.phase-arrived .captain-video{filter:brightness(.3)saturate(.72)}.captain-video-shade{z-index:2;pointer-events:none;opacity:0;background:linear-gradient(#01070c94,#0000 18% 70%,#01070cc7);transition:opacity .35s;position:absolute;inset:0}.phase-playing .captain-video-shade,.phase-arrived .captain-video-shade{opacity:1}.star-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.intro-orbit{pointer-events:none;border:1px solid #b8f26d21;border-radius:50%;position:absolute}.orbit-one{aspect-ratio:1;width:min(72vw,760px);animation:36s linear infinite orbit}.orbit-two{aspect-ratio:1;border-style:dashed;width:min(48vw,510px);animation:24s linear infinite reverse orbit}.orbit-one:after,.orbit-two:after{content:"";background:var(--sprout);width:7px;height:7px;box-shadow:0 0 20px var(--sprout);border-radius:50%;position:absolute;top:-4px;left:50%}.intro-content{z-index:2;text-align:center;grid-template-columns:minmax(320px,.85fr) 1fr;align-items:center;gap:clamp(35px,7vw,100px);width:min(1100px,100% - 80px);padding:80px 20px 55px;display:grid;position:relative}.intro-title{position:relative}.eyebrow{color:var(--sprout);letter-spacing:.26em;text-transform:uppercase;margin:0 0 18px;font-size:11px;font-weight:500;line-height:1.5}.intro-content h1{letter-spacing:.14em;text-indent:.14em;text-shadow:0 0 60px #b8f26d33;margin:8px 0 0;font-family:Noto Serif SC,serif;font-size:clamp(72px,12vw,144px);font-weight:600;line-height:1}.intro-content h1 span{color:var(--sprout);letter-spacing:0;vertical-align:top;margin-left:.25em;font-family:SFMono-Regular,Consolas,monospace;font-size:.22em}.intro-subtitle{color:#c8d5d2;letter-spacing:.36em;text-indent:.36em;font-family:Noto Serif SC,serif}.hero-figure{justify-self:end;width:min(100%,430px);position:relative}.hero-companion{aspect-ratio:1;background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #b8f26d4d;width:clamp(58px,6.2vw,82px);position:absolute;top:47%;transform:translateY(-50%);box-shadow:0 0 22px #b8f26d29,0 10px 28px #00000059}.hero-companion.cat{background-image:url(/media/fig/cat-avatar.webp);background-position:57% 51%;background-size:176%;border-radius:18px;left:calc(-1*clamp(58px,6.2vw,82px) + 6px)}.hero-companion.facai{background-image:url(/media/fig/facai-avatar.webp);border-radius:50%;right:calc(-1*clamp(58px,6.2vw,82px) + 6px)}.hero-avatar-frame{aspect-ratio:4/5;background:#102b31;border:1px solid #b8f26d42;border-radius:48% 48% 8px 8px;width:100%;position:relative;overflow:hidden;box-shadow:0 30px 90px #0006,0 0 70px #7ec15c1a}.hero-avatar-frame video{object-fit:cover;object-position:63% center;width:100%;height:100%}.hero-avatar-frame:after{content:"";pointer-events:none;background:linear-gradient(#0000,#040e14eb);position:absolute;inset:68% 0 0}.hero-avatar-frame>i{z-index:2;background:linear-gradient(90deg, transparent, var(--sprout), transparent);width:55%;height:1px;box-shadow:0 0 16px var(--sprout);position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.seed-mark{width:42px;height:34px;margin:30px auto 20px;position:relative}.seed-mark:after{content:"";background:linear-gradient(var(--sprout), transparent);width:2px;height:25px;position:absolute;bottom:0;left:20px}.seed-mark i{background:var(--sprout);width:22px;height:13px;position:absolute;top:0}.seed-mark i:first-child{border-radius:100% 0;left:1px;transform:rotate(20deg)}.seed-mark i:last-child{border-radius:0 100%;right:0;transform:rotate(-20deg)}.offline-status{border:1px solid var(--line);width:max-content;color:var(--muted);letter-spacing:.08em;border-radius:50px;margin:42px auto 15px;padding:9px 14px;font-size:12px}.offline-status span{background:#657675;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.intro-date{color:#829895;letter-spacing:.12em;margin-bottom:28px;font-size:12px}.intro-date b{color:var(--sprout);margin:0 8px}.primary-button{border:1px solid var(--sprout);min-width:210px;color:var(--night);background:var(--sprout);letter-spacing:.08em;cursor:pointer;border-radius:2px;justify-content:center;align-items:center;gap:24px;padding:16px 22px;font-size:12px;font-weight:500;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 10px 40px #71b94129}.primary-button:hover{background:#c9ff83;transform:translateY(-2px);box-shadow:0 14px 42px #8bdc5147}.sound-note{z-index:2;color:#647b79;letter-spacing:.08em;font-size:10px;position:absolute;bottom:25px}.countdown{color:var(--moon);font-size:clamp(100px,18vw,220px);font-weight:300;animation:.72s both count-pulse}.countdown.is-live{letter-spacing:.1em;color:var(--sprout);align-items:center;gap:24px;font-size:clamp(48px,10vw,110px);display:flex}.live-dot{background:#ff5264;border-radius:50%;width:9px;height:9px;animation:1.7s infinite live-pulse;display:inline-block;box-shadow:0 0 0 5px #ff52641f,0 0 18px #ff5264a6}.greeting-stage{z-index:4;background:#06111e;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.greeting-stage>video{z-index:1;object-fit:cover;object-position:63% center;filter:brightness(.78)saturate(.86);border-radius:50% 50% 6px 6px;width:min(520px,58vw);height:82vh;position:absolute;box-shadow:0 0 100px #91db6a29}.greeting-stage:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(90deg,#030a11d9,#0000 40% 62%,#030a11d1),linear-gradient(#0000 55%,#030a11db);position:absolute;inset:0}.greeting-copy{z-index:3;flex-direction:column;align-items:flex-start;animation:.42s both line-in;display:flex;position:absolute;bottom:15vh;left:max(6vw,28px)}.greeting-copy time{color:#718985;letter-spacing:.18em;font-size:9px}.greeting-copy strong{letter-spacing:.06em;margin:12px 0 9px;font-family:Noto Serif SC,serif;font-size:clamp(34px,5vw,68px);font-weight:500}.greeting-copy span{color:var(--sprout);letter-spacing:.2em;font-size:10px}.arrival-announcement{z-index:7;text-align:center;background:#041018;flex-direction:column;justify-content:center;align-items:center;animation:2.85s both arrival-in;display:flex;position:absolute;inset:0}.arrival-announcement>video{object-fit:cover;filter:blur(3px)brightness(.38)saturate(.74);width:calc(100% + 16px);height:calc(100% + 16px);position:absolute;inset:-8px;transform:scale(1.02)}.arrival-announcement:after{content:"";background:radial-gradient(circle,#2755433d,#03090f70 55%,#03090fb8);position:absolute;inset:0}.arrival-announcement>div:not(.facai-announcer){z-index:2;flex-direction:column;align-items:center;display:flex;position:relative}.arrival-announcement>div:not(.facai-announcer)>span{color:var(--sprout);filter:drop-shadow(0 0 18px var(--sprout));font-size:26px}.arrival-announcement strong{letter-spacing:.15em;text-indent:.15em;text-shadow:0 0 42px #b8f26d38;margin:16px 0 8px;font-family:Noto Serif SC,serif;font-size:clamp(58px,11vw,132px);font-weight:500}.arrival-announcement strong.name-long{letter-spacing:.06em;text-indent:0;word-break:break-word;overflow-wrap:anywhere;max-width:92vw;font-size:clamp(26px,5.8vw,66px);line-height:1.2}.arrival-announcement p{color:#b8cbc2;letter-spacing:.32em;text-indent:.32em;margin:0;font-size:11px}.arrival-announcement time{color:#c5d8cf8f;letter-spacing:.2em;margin-top:18px;font-size:9px}.facai-announcer{z-index:3;align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:78px;left:max(4vw,26px)}.facai-announcer img{background:#041018;border:1px solid #b8f26d59;border-radius:50%;width:74px;height:74px;box-shadow:0 0 26px #b8f26d33}.facai-announcer>span{color:#eaf2ee;letter-spacing:.05em;background:#0a1822e0;border:1px solid #b8f26d4d;border-radius:4px 14px 14px;max-width:250px;padding:12px 16px;font-family:Noto Serif SC,serif;font-size:13px;position:relative;box-shadow:0 10px 30px #0000004d}.facai-announcer>span:before{content:"";background:#0a1822e0;border-bottom:1px solid #b8f26d4d;border-left:1px solid #b8f26d4d;width:14px;height:14px;position:absolute;bottom:10px;left:-8px;transform:rotate(45deg)}.captain-controls{z-index:8;color:#dceae3a3;align-items:center;gap:18px;height:45px;font-size:9px;transition:opacity .4s;display:flex;position:absolute;bottom:22px;left:max(4vw,24px);right:max(4vw,24px)}.captain-controls.hidden{opacity:0;pointer-events:none}.captain-progress{background:#ffffff1f;height:2px;position:absolute;top:0;left:0;right:0}.captain-progress i{background:linear-gradient(90deg, #688c6a, var(--sprout));width:0;height:100%;transition:width .18s linear;display:block;box-shadow:0 0 10px #b8f26d73}.captain-controls>span{margin-top:12px;margin-right:auto}.captain-controls>button{color:#dceae3ad;cursor:pointer;background:0 0;border:0;margin-top:12px;padding:5px 0;font-size:9px}.captain-controls>button:hover{color:var(--sprout)}.playback-error{z-index:20;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02080dc7;place-items:center;animation:.26s both playback-error-in;display:grid;position:absolute;inset:0}.playback-error>div{text-align:center}.playback-error p{color:#9fb4ae;letter-spacing:.18em;margin:0 0 10px;font-size:12px}.playback-error strong{color:#eef5e9;font-family:Noto Serif SC,serif;font-size:clamp(22px,3.4vw,34px);font-weight:500;display:block}.playback-error strong:after{content:"";background:var(--sprout);width:46px;height:1px;box-shadow:0 0 12px var(--sprout);margin:16px auto 0;display:block}@keyframes playback-error-in{0%{opacity:0}to{opacity:1}}.skip-confirm{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#01060ad1;place-items:center;display:grid;position:absolute;inset:0}.skip-confirm>div{border:1px solid var(--line);text-align:center;background:#091722;width:min(390px,100% - 40px);padding:38px;box-shadow:0 24px 80px #00000073}.skip-confirm p{margin:0 0 28px;font-family:Noto Serif SC,serif;font-size:16px}.skip-now{color:#869b95;cursor:pointer;background:0 0;border:0;margin-left:10px;padding:9px 14px;font-size:10px}.site-shell{background:var(--night)}.section{min-height:100svh;padding:120px max(6vw,28px);position:relative;overflow:hidden}.top-nav{z-index:50;pointer-events:none;background:linear-gradient(#06111eed,#06111e00);justify-content:space-between;align-items:center;height:64px;padding:0 max(4vw,20px);display:flex;position:fixed;top:0;left:0;right:0}.top-nav button{pointer-events:auto}.brand,.nav-links button{cursor:pointer;background:0 0;border:0}.brand{color:#d7e6df;letter-spacing:.1em;align-items:center;gap:10px;font-size:11px;display:flex}.mini-seed{border:1px solid var(--sprout);border-radius:100% 0;width:14px;height:14px;position:relative;transform:rotate(-30deg)}.nav-links{gap:25px;display:flex}.nav-links button{color:#8ca29f;letter-spacing:.12em;font-size:10px}.nav-links button:hover{color:var(--sprout)}.live-hero{text-align:center;background:radial-gradient(circle at center 44%, #143044 0, #091a29 30%, var(--night) 67%);flex-direction:column;justify-content:center;align-items:center;display:flex}.hero-glow{aspect-ratio:1;border:1px solid #cbedb817;border-radius:50%;width:min(75vw,800px);position:absolute;box-shadow:inset 0 0 120px #a3de740d,0 0 100px #a3de7408}.live-badge{letter-spacing:.16em;color:#b8c8c3;align-items:center;gap:10px;font-size:10px;display:flex;position:absolute;top:95px;left:max(6vw,28px)}.moon-portrait{aspect-ratio:1;filter:drop-shadow(0 0 50px #8ed56b30);background:radial-gradient(circle at 42% 37%,#e7f1dd 0,#b8d6af 18%,#4e7e6a 42%,#173d3d 66%,#0000 67%);border-radius:50%;place-items:center;width:clamp(180px,26vw,290px);margin:35px 0 28px;display:grid;position:relative}.moon-ring{border:1px solid #b8f26d38;border-radius:50%;position:absolute;inset:-22px}.ring-a:after{content:"22";width:38px;height:38px;color:var(--night);background:var(--sprout);border-radius:50%;place-items:center;font-size:11px;display:grid;position:absolute;top:10%;right:-15px}.ring-b{border-style:dashed;animation:28s linear infinite orbit;inset:-45px}.portrait-sprout,.final-sprout{width:70px;height:105px;position:relative}.portrait-sprout b,.final-sprout b{background:linear-gradient(#aedf85,#37634d);border-radius:2px;width:3px;height:80px;position:absolute;bottom:0;left:34px}.portrait-sprout i,.final-sprout i{z-index:1;background:linear-gradient(135deg,#d5ff9b,#7cc259);width:46px;height:31px;position:absolute;top:14px;box-shadow:0 0 30px #b8f26d4d}.portrait-sprout i:first-child,.final-sprout i:first-child{border-radius:100% 0;left:0;transform:rotate(22deg)}.portrait-sprout i:nth-child(2),.final-sprout i:nth-child(2){border-radius:0 100%;right:-10px;transform:rotate(-24deg)}.hero-kicker{color:#839995;letter-spacing:.3em;margin:0;font-size:10px}.live-hero h1{letter-spacing:.12em;text-indent:.12em;margin:8px 0 4px;font-family:Noto Serif SC,serif;font-size:clamp(50px,8vw,96px);font-weight:600}.live-hero h1 em{color:var(--sprout);vertical-align:top;letter-spacing:0;font-family:DM Mono,monospace;font-size:.28em;font-style:normal}.hero-age{color:#aabdb7;letter-spacing:.22em;margin:0;font-family:Noto Serif SC,serif}.hero-age b{color:var(--sprout);font-size:1.3em}.hero-copy{color:#8ca29f;letter-spacing:.08em;margin:28px 0;font-family:Noto Serif SC,serif;font-size:13px;line-height:2}.text-button{color:var(--sprout);letter-spacing:.12em;cursor:pointer;background:0 0;border:0;padding:10px;font-size:11px}.text-button span{margin-left:12px;display:inline-block}.text-button:hover span{transform:translateY(3px)}.floating-wishes span,.birthday-danmu span,.ending-wishes span{white-space:nowrap;color:#dfeee761;letter-spacing:.06em;animation:15s linear infinite drift;animation-delay:calc(var(--i) * -2.9s);font-size:11px;position:absolute}.floating-wishes span:nth-child(odd){left:-20%;top:calc(15% + var(--i) * 12%)}.floating-wishes span:nth-child(2n){right:-20%;top:calc(10% + var(--i) * 13%);animation-direction:reverse}.rewind-section{text-align:center;background:#071522;flex-direction:column;justify-content:center;align-items:center;display:flex}.chapter-number{writing-mode:vertical-rl;color:#56706d;letter-spacing:.22em;font-size:9px;position:absolute;top:110px;left:max(5vw,24px)}.rewind-dates{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.rewind-dates span{color:#b5d6c609;letter-spacing:-.08em;font-size:clamp(70px,16vw,200px);line-height:1;animation:8s ease-in-out infinite rewind-date;position:absolute}.rewind-dates span:nth-child(2){animation-delay:-2s}.rewind-dates span:nth-child(3){animation-delay:-4s}.rewind-dates span:nth-child(4){animation-delay:-6s}.section-heading{z-index:1;max-width:780px;position:relative}.section-heading.centered{text-align:center;margin:0 auto}.section-heading h2{letter-spacing:.04em;margin:0;font-family:Noto Serif SC,serif;font-size:clamp(38px,6vw,75px);font-weight:500;line-height:1.35}.section-heading h2 i{color:var(--sprout);font-style:normal}.section-heading>p:last-child{color:var(--muted);font-family:Noto Serif SC,serif;font-size:13px;line-height:2}.signal-summary{z-index:1;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:58px 0 42px;display:flex;position:relative}.signal-summary div{border-right:1px solid var(--line);min-width:210px;padding:25px 38px}.signal-summary div:last-child{border:0}.signal-summary strong{color:var(--sprout);margin-bottom:8px;font-size:24px;font-weight:400;display:block}.signal-summary span{color:#718a86;font-size:10px}.archive-section{color:var(--ink);background:#e8eee7}.archive-section .eyebrow{color:#54823d}.archive-layout{grid-template-columns:70px 1fr;gap:24px;max-width:1240px;margin:65px auto 0;display:grid}.month-label{color:#5f746a;letter-spacing:.2em;flex-direction:column;align-items:center;gap:12px;padding-top:15px;font-size:9px;display:flex}.month-label i{background:#1d3d2b2e;width:1px;height:168px}.day-grid{background:#1f3d2c24;border:1px solid #1f3d2c24;grid-template-columns:repeat(6,minmax(125px,1fr));gap:1px;display:grid}.day-card{min-height:165px;color:var(--ink);text-align:left;cursor:pointer;background:#f2f5ef;border:0;padding:22px 18px;transition:background .18s,transform .18s;position:relative}.day-card:hover{z-index:1;background:#d8efc6;transform:translateY(-4px)}.day-signal{border:1px solid #79aa59;border-radius:50%;width:8px;height:8px;position:absolute;top:16px;right:16px}.day-signal i{background:#609545;border-radius:50%;width:2px;height:2px;margin:2px;display:block}.day-card time{color:#597064;letter-spacing:.16em;font-size:10px;display:block}.day-card b{margin:20px 0 2px;font-size:22px;font-weight:400;display:block}.day-card small{color:#788a81;font-size:9px}.day-card div{flex-wrap:wrap;gap:4px;margin-top:18px;display:flex}.day-card em{color:#567064;background:#42694914;padding:3px 5px;font-size:8px;font-style:normal}.privacy-note,.data-caption{color:#70847a;letter-spacing:.06em;font-size:9px;line-height:1.7}.privacy-note{text-align:center;margin-top:24px}.loading-line{color:#68806f;margin-top:60px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#02090ee0;place-items:center;padding:30px;display:grid;position:fixed;inset:0}.replay-modal{background:#091725;border:1px solid #b8f26d33;flex-direction:column;width:min(850px,100%);max-height:calc(100svh - 60px);display:flex;overflow:hidden;box-shadow:0 30px 100px #00000080}.replay-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:24px 28px;display:flex}.replay-header .eyebrow{margin-left:8px;display:inline}.replay-header h2{letter-spacing:.12em;margin:10px 0 0;font-size:18px;font-weight:400}.icon-button{border:1px solid var(--line);color:#a8bbb5;cursor:pointer;background:0 0;border-radius:50%;width:38px;height:38px;font-size:24px}.replay-stage{background:radial-gradient(circle,#40695c29,#0000 60%);flex-direction:column;justify-content:flex-end;gap:12px;min-height:430px;padding:32px;display:flex;position:relative;overflow:hidden}.signal-lines{opacity:.16;pointer-events:none;background:repeating-linear-gradient(0deg,#0000,#0000 4px,#ffffff09 5px);position:absolute;inset:0}.replay-line{grid-template-columns:58px 48px 1fr;align-items:baseline;gap:10px;max-width:80%;transition:opacity .3s;animation:.3s both line-in;display:grid;position:relative}.replay-line.audience{align-self:flex-end}.replay-line span{color:#647c79;font-size:9px}.replay-line strong{color:var(--sprout);font-size:10px;font-weight:400}.replay-line.audience strong{color:#f1d985}.replay-line.system{border:1px solid #b8f26d21;align-self:center;max-width:100%;margin-bottom:auto;padding:8px 14px}.replay-line.system strong{color:#7f9892}.replay-line.system p{color:#9db0ab;font-family:DM Mono,monospace;font-size:10px}.replay-line p{color:#e6efea;margin:0;font-family:Noto Serif SC,serif;font-size:14px;line-height:1.65}.replay-progress{background:#ffffff14;height:2px}.replay-progress i{background:var(--sprout);height:100%;transition:width .3s;display:block}.replay-controls{align-items:center;gap:8px;padding:18px 25px;display:flex}.small-button{color:var(--sprout);cursor:pointer;background:0 0;border:1px solid #b8f26d59;padding:9px 14px;font-size:10px}.speed-button{color:#607976;cursor:pointer;background:0 0;border:0;padding:8px;font-size:9px}.speed-button.active{color:#d9e8df}.record-counter{color:#607976;margin-left:auto;font-size:9px}.data-section{background:#0a1824}.stat-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:1100px;margin:70px auto 120px;display:grid}.stat-card{border:1px solid var(--line);background:#ffffff05;flex-direction:column;min-height:230px;padding:28px;display:flex}.stat-card.featured{background:linear-gradient(145deg,#b8f26d1f,#0000 65%);grid-row:span 2;justify-content:center;min-height:475px}.stat-card span{color:#839995;letter-spacing:.1em;font-size:10px}.stat-card strong{color:var(--sprout);letter-spacing:-.06em;margin:18px 0;font-size:clamp(34px,4vw,58px);font-weight:300}.stat-card p{color:#647b79;margin-top:auto;font-family:Noto Serif SC,serif;font-size:11px;line-height:1.8}.waveform{align-items:center;gap:3px;height:50px;margin-top:auto;display:flex}.waveform i{background:#b8f26d7a;flex:1;max-width:4px}.dictionary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:1000px;margin:0 auto 140px;padding:60px}.dictionary-title{align-items:center;gap:20px;margin-bottom:48px;display:flex}.dictionary-title>span{font-size:38px}.dictionary-title .eyebrow{margin:0}.dictionary-title h3{margin:5px 0 0;font-family:Noto Serif SC,serif;font-size:30px;font-weight:500}.phrase-row{border-bottom:1px solid #ffffff0f;grid-template-columns:30px minmax(100px,170px) 1fr 55px;align-items:center;gap:18px;padding:15px 0;display:grid}.phrase-row>span{color:#526b68;font-size:9px}.phrase-row strong{font-family:Noto Serif SC,serif;font-size:15px;font-weight:400}.phrase-row i{background:#ffffff12;height:2px;position:relative}.phrase-row i:after{content:"";width:var(--bar);background:linear-gradient(90deg, #557e58, var(--sprout));position:absolute;inset:0 auto 0 0}.phrase-row b{color:var(--sprout);text-align:right;font-size:11px;font-weight:400}.dictionary .data-caption{color:#526b68;margin-top:24px}.bottle-card{border:1px solid var(--line);background:#081521;grid-template-columns:.85fr 1.15fr;max-width:920px;min-height:440px;margin:0 auto;display:grid}.bottle-visual{background:radial-gradient(circle,#b8f26d21,#0000 48%);place-items:center;display:grid}.bottle-visual:before{content:"";border:2px solid #c2e6b56b;border-radius:22px 22px 45px 45px;width:100px;height:190px;transform:rotate(7deg);box-shadow:inset 0 -50px 60px #5d915c26,0 20px 60px #00000040}.bottle-visual i{color:var(--sprout);filter:drop-shadow(0 0 14px var(--sprout));font-size:26px;animation:3s ease-in-out infinite float;position:absolute}.bottle-content{border-left:1px solid var(--line);padding:55px 48px}.bottle-content h3{margin:0;font-family:Noto Serif SC,serif;font-size:34px;font-weight:500;line-height:1.45}.bottle-content blockquote{color:#dbe8e1;min-height:62px;margin:36px 0 8px;font-family:Noto Serif SC,serif;font-size:15px;line-height:1.8}.bottle-content time{color:#65807a;letter-spacing:.14em;margin-bottom:26px;font-size:9px;display:block}.stars-section{text-align:center;background:radial-gradient(circle at 50% 48%,#102e34,#06101d 58%);flex-direction:column;justify-content:center;align-items:center;min-height:125svh;display:flex}.star-copy{z-index:1;position:relative}.star-copy p{color:#96aaa5;letter-spacing:.12em;font-family:Noto Serif SC,serif;font-size:13px}.star-copy h2{text-shadow:0 0 50px #b8f26d2b;margin:20px 0;font-family:Noto Serif SC,serif;font-size:clamp(44px,7vw,90px);font-weight:500}.growing-mark{z-index:1;width:120px;height:160px;margin:65px 0 35px;position:relative}.growing-mark span{background:linear-gradient(transparent, var(--sprout));transform-origin:bottom;width:2px;height:145px;animation:3s ease-in-out infinite alternate grow-stem;position:absolute;bottom:0;left:59px}.growing-mark i{background:linear-gradient(135deg,#cfff8d,#5ba957);width:65px;height:39px;position:absolute;top:34px;box-shadow:0 0 34px #b8f26d47}.leaf-left{border-radius:100% 0;left:0;transform:rotate(24deg)}.leaf-right{border-radius:0 100%;right:-8px;transform:rotate(-24deg)}.text-button.light{z-index:1;color:#c8e7bf;position:relative}.birthday-section{text-align:center;min-height:110svh;color:var(--ink);background:#dfeadd;flex-direction:column;justify-content:center;align-items:center;display:flex}.birthday-section .eyebrow{color:#557d43}.birthday-number{color:#aedc80;letter-spacing:-.12em;text-indent:-.12em;text-shadow:0 20px 60px #4a6e3a1a;font-size:clamp(180px,36vw,520px);font-weight:300;line-height:.72}.birthday-section h2{margin:-2vw 0 20px;font-family:Noto Serif SC,serif;font-size:clamp(38px,6vw,72px);font-weight:600;position:relative}.birthday-section>p:not(.eyebrow){color:#5d7165;font-family:Noto Serif SC,serif;font-size:13px;line-height:2}.birthday-links{gap:25px;margin-top:35px;display:flex}.birthday-links a{color:#425842;border-bottom:1px solid #738b70;padding-bottom:5px;font-size:10px;text-decoration:none}.birthday-danmu span{z-index:0;color:#2c4b3561;top:calc(8% + var(--i) * 9%);animation-duration:18s;left:-25%}.letter-section{background:#101b19;place-items:center;display:grid}.letter-envelope{perspective:900px;place-items:center;width:min(760px,100%);min-height:480px;display:grid}.letter-envelope>button{aspect-ratio:1.7;color:#233229;cursor:pointer;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);background:#dcdccf;border:0;width:min(560px,100%);padding:60px;transition:transform .25s;box-shadow:0 25px 80px #0006}.letter-envelope>button:hover{transform:translateY(-8px)rotate(-1deg)}.letter-envelope>button span{color:#6d7b70;letter-spacing:.2em;font-size:10px;display:block}.letter-envelope>button strong{margin:10px 0 35px;font-family:Noto Serif SC,serif;font-size:54px;font-weight:500;display:block}.letter-envelope>button small{color:#5c6a61;font-family:Noto Serif SC,serif;font-size:12px;display:block}.letter-envelope>button i{color:#516057;border-bottom:1px solid #768278;margin-top:55px;padding-bottom:4px;font-size:10px;font-style:normal;display:inline-block}.letter-paper{color:#28372d;background:#e7e6d9;width:100%;padding:clamp(40px,8vw,90px);animation:.65s both paper-open;box-shadow:0 25px 90px #00000059}.letter-paper .letter-date{color:#78847b;letter-spacing:.12em;font-family:DM Mono,monospace;font-size:9px}.letter-paper h2{margin:38px 0;font-family:Noto Serif SC,serif;font-size:28px;font-weight:600}.letter-paper>p:not(.letter-date){text-align:justify;font-family:Noto Serif SC,serif;font-size:14px;line-height:2.2}.letter-paper footer{text-align:right;margin-top:50px;font-family:Noto Serif SC,serif;font-size:12px}.text-button.ink{color:#45643b;margin:45px auto 0;display:block}.wish-section{text-align:center;background:radial-gradient(circle at 50% 56%,#193532,#07141f 57%);flex-direction:column;justify-content:center;align-items:center;display:flex}.wish-section h2{margin:0 0 70px;font-family:Noto Serif SC,serif;font-size:clamp(36px,6vw,65px);font-weight:500}.ending-section{opacity:.18;filter:grayscale();background:#02070d;place-items:center;min-height:100svh;transition:opacity 1.2s,filter 1.2s;display:grid}.ending-section.revealed{opacity:1;filter:none}.ending-content{z-index:2;text-align:center;position:relative}.final-sprout{margin:0 auto 20px;transform:scale(.8)}.ending-content h2{letter-spacing:.08em;text-shadow:0 0 60px #b8f26d2e;margin:4px 0;font-size:clamp(42px,8vw,100px);font-weight:300}.ending-content h3{color:var(--sprout);letter-spacing:.16em;text-indent:.16em;margin:5px 0 30px;font-family:Noto Serif SC,serif;font-size:clamp(36px,6vw,70px);font-weight:500}.infinity{color:#718884;letter-spacing:.25em;font-size:11px}.ending-actions{flex-direction:column;align-items:center;gap:15px;margin-top:42px;display:flex}.ending-wishes span{top:calc(12% + var(--i) * 12%);animation-duration:17s;left:-25%}.audience-stage{z-index:6;background:radial-gradient(circle at 50% 38%,#0b2131,#040d16 60%,#02070d);flex-direction:column;padding:84px max(5vw,24px);display:flex;position:absolute;inset:0;overflow:hidden}.audience-head{z-index:2;text-align:center;flex:none;position:relative}.audience-head .eyebrow{margin-bottom:12px}.audience-head h2{letter-spacing:.05em;margin:0;font-family:Noto Serif SC,serif;font-size:clamp(24px,3.6vw,42px);font-weight:500}.audience-welcome{align-items:center;gap:16px;display:inline-flex}.audience-welcome img{border:1px solid #b8f26d52;border-radius:50%;width:62px;height:62px;box-shadow:0 0 22px #b8f26d2e}.audience-tally{justify-content:center;align-items:baseline;gap:10px;margin-top:20px;animation:.43s ease-in-out infinite tally-beat;display:flex}.audience-tally strong{color:var(--sprout);font-size:clamp(30px,4.4vw,50px);font-weight:400;line-height:1}.audience-tally span{color:#7e948f;letter-spacing:.16em;font-size:11px}.audience-feed{z-index:2;flex-direction:column;flex:auto;gap:8px;width:min(680px,100%);margin:26px auto 18px;padding:8px 12px 8px 4px;display:flex;position:relative;overflow-y:auto}.audience-entry{background:#ffffff07;border:1px solid #b8f26d17;border-radius:7px;align-items:center;gap:10px;padding:7px 14px;animation:.35s both entry-in;display:flex}.audience-entry i{background:var(--sprout);width:8px;height:8px;box-shadow:0 0 9px var(--sprout);border-radius:50%;flex:none}.audience-entry strong{color:#dbe8e1;font-family:Noto Serif SC,serif;font-size:14px;font-weight:400}.audience-entry span{color:#7e948f;letter-spacing:.04em;font-size:12px}.audience-foot{z-index:2;flex:none;justify-content:space-between;align-items:center;gap:20px;width:min(1180px,100%);margin:0 auto;display:flex;position:relative}.audience-foot>span{color:#5e7470;letter-spacing:.12em;font-size:9px}.audience-foot .primary-button{min-width:150px}.audience-music{color:#b8d6c2;letter-spacing:.08em;cursor:pointer;background:0 0;border:1px solid #b8f26d47;border-radius:50px;padding:7px 14px;font-size:10px}.audience-music:hover{color:var(--sprout);border-color:#b8f26d80}@keyframes entry-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.audience-entry.downbeat{animation:.45s both entry-in-strong}@keyframes entry-in-strong{0%{opacity:0;transform:translateY(10px)scale(.96)}40%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:1;transform:none}}@keyframes tally-beat{0%,to{transform:scale(1)}12%{transform:scale(1.05)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes live-pulse{50%{opacity:.45;transform:scale(.8)}}@keyframes count-pulse{0%{opacity:0;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}@keyframes arrival-in{0%{opacity:0;transform:scale(.94)}22%,72%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.035)}}@keyframes drift{0%{transform:translate(0)}to{transform:translate(145vw)}}@keyframes rewind-date{0%,16%{opacity:0;transform:translateY(-45px)scale(.94)}25%,42%{opacity:1;transform:translateY(0)scale(1)}52%,to{opacity:0;transform:translateY(45px)scale(1.05)}}@keyframes line-in{0%{opacity:0;transform:translate(-18px)}}@keyframes float{50%{transform:translateY(-14px)rotate(12deg)}}@keyframes grow-stem{0%{transform:scaleY(.84)}}@keyframes paper-open{0%{opacity:0;transform:rotateX(-8deg)translateY(25px)}}@keyframes flame{0%{transform:skew(-6deg)scaleY(.92)}to{transform:skew(7deg)scaleY(1.08)}}@media (width<=1200px){.hero-figure{width:min(100%,360px)}.hero-companion{width:64px}.hero-companion.cat{left:-70px}.hero-companion.facai{right:-70px}}@media (width<=900px){.day-grid{grid-template-columns:repeat(4,1fr)}.signal-summary div{min-width:170px;padding-inline:20px}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat-card.featured{grid-row:auto;min-height:230px}}@media (width<=640px){.section{min-height:100svh;padding:100px 22px}.intro-content{grid-template-columns:1fr;gap:20px;width:calc(100% - 30px);padding:66px 8px 78px}.hero-figure{justify-self:center;width:205px}.hero-avatar-frame{border-radius:46% 46% 5px 5px}.hero-companion{width:52px;top:46%}.hero-companion.cat{border-radius:13px;left:-46px}.hero-companion.facai{right:-46px}.intro-title .eyebrow{margin-bottom:10px;font-size:8px}.intro-title .offline-status{margin-top:18px}.intro-title .intro-date{margin-bottom:18px}.facai-announcer{gap:9px;bottom:72px;left:16px}.facai-announcer img{width:52px;height:52px}.facai-announcer>span{max-width:190px;font-size:11px}.audience-stage{padding:66px 16px 74px}.audience-head h2{font-size:18px}.audience-welcome{gap:10px}.audience-welcome img{width:44px;height:44px}.audience-tally{margin-top:14px}.audience-tally strong{font-size:30px}.audience-feed{gap:6px;width:100%;margin:16px auto 12px;padding:6px 8px 6px 2px}.audience-entry{gap:8px;padding:6px 11px}.audience-entry strong{font-size:12px}.audience-entry span{font-size:10px}.audience-entry i{width:6px;height:6px}.audience-foot{gap:10px}.audience-foot .primary-button{min-width:110px}.audience-music{padding:6px 10px;font-size:9px}.audience-hint{display:none}.greeting-stage>video{width:86vw;height:72vh}.greeting-copy{text-align:center;align-items:center;bottom:14vh;left:22px;right:22px}.greeting-copy strong{font-size:34px}.captain-video{object-fit:contain}.arrival-announcement strong{font-size:42px}.arrival-announcement strong.name-long{font-size:30px}.captain-controls{gap:13px;bottom:12px;left:16px;right:16px}.captain-controls>span,.captain-controls>button{font-size:8px}.top-nav{height:54px}.brand{font-size:9px}.nav-links{gap:12px}.nav-links button{font-size:9px}.orbit-one{width:115vw}.orbit-two{width:78vw}.intro-content h1{font-size:74px}.intro-subtitle{letter-spacing:.2em;text-indent:.2em;font-size:12px}.live-badge{top:75px}.moon-portrait{width:190px}.live-hero h1{font-size:52px}.floating-wishes{opacity:.6}.chapter-number{display:none}.signal-summary{width:100%;margin:45px 0 35px}.signal-summary div{flex:1;min-width:0;padding:18px 8px}.signal-summary strong{font-size:17px}.signal-summary span{font-size:8px}.archive-section .section-heading{text-align:center}.archive-layout{grid-template-columns:1fr;margin-top:45px}.month-label{display:none}.day-grid{grid-template-columns:repeat(2,1fr)}.day-card{min-height:145px;padding:18px 14px}.modal-backdrop{padding:0}.replay-modal{border:0;width:100%;height:100svh;max-height:none}.replay-stage{flex:1;min-height:0;padding:22px 16px}.replay-line{grid-template-columns:46px 36px 1fr;gap:6px;max-width:96%}.replay-line p{font-size:12px}.stat-grid{grid-template-columns:1fr;margin:50px 0 90px}.stat-card,.stat-card.featured{min-height:190px}.dictionary{margin-bottom:90px;padding:40px 8px}.phrase-row{grid-template-columns:24px 100px 1fr 38px;gap:8px}.bottle-card{grid-template-columns:1fr}.bottle-visual{min-height:280px}.bottle-content{border-left:0;border-top:1px solid var(--line);padding:38px 28px}.birthday-number{font-size:190px}.birthday-links{flex-direction:column;gap:15px}.letter-envelope>button{aspect-ratio:auto;min-height:360px;padding:40px 25px}.letter-paper{padding:42px 25px}.wish-section h2{margin-bottom:55px}.ending-content h2{font-size:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.flow{scroll-snap-type:y mandatory;background:#02070d;position:fixed;inset:0;overflow:hidden auto}.flow::-webkit-scrollbar{width:0}.scene{scroll-snap-align:start;place-items:center;min-height:100svh;padding:92px max(6vw,24px);display:grid;position:relative;overflow:hidden}.scene-enter,.scene-bottle{background:radial-gradient(circle at 50% 42%,#102b3d,#06101d 62%)}.scene-profile,.scene-year{background:#050f1a}.scene-inner{z-index:2;text-align:center;width:min(980px,100%);position:relative}.scene-inner.center{flex-direction:column;align-items:center;gap:14px;display:flex}.scene-title{letter-spacing:.06em;margin:6px 0;font-family:Noto Serif SC,serif;font-size:clamp(30px,5.4vw,62px);font-weight:600;line-height:1.3}.scene-h2{letter-spacing:.04em;margin:0 0 10px;font-family:Noto Serif SC,serif;font-size:clamp(26px,4.4vw,48px);font-weight:500;line-height:1.35}.scene-sub{color:#8ca29f;margin:0;font-family:Noto Serif SC,serif;font-size:13px;line-height:1.9}.scene-quote{color:var(--sprout);letter-spacing:.04em;margin-top:28px;font-family:Noto Serif SC,serif;font-size:15px}.scene-avatar{aspect-ratio:4/5;border:1px solid #b8f26d47;border-radius:46% 46% 8px 8px;width:min(300px,60vw);margin-bottom:20px;overflow:hidden;box-shadow:0 30px 90px #00000073,0 0 70px #7ec15c1f}.scene-avatar video{object-fit:cover;object-position:63% center;width:100%;height:100%}.scene-dots{z-index:40;flex-direction:column;gap:12px;display:flex;position:fixed;top:50%;right:max(14px,2.4vw);transform:translateY(-50%)}.scene-dots button{cursor:pointer;background:0 0;border:1px solid #b8f26d73;border-radius:50%;width:9px;height:9px;padding:0;transition:background .16s,box-shadow .16s}.scene-dots button.active{background:var(--sprout);box-shadow:0 0 12px var(--sprout)}.song-toggle{z-index:40;color:#b8d6c2;letter-spacing:.08em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06111e99;border:1px solid #b8f26d47;border-radius:50px;padding:7px 14px;font-size:10px;position:fixed;bottom:22px;right:max(14px,2.4vw)}.song-toggle:hover{color:var(--sprout);border-color:#b8f26d80}.profile-card{background:#b8f26d1f;border:1px solid #b8f26d1f;grid-template-columns:1fr 1fr;gap:1px;max-width:640px;margin:22px auto 38px;display:grid}.profile-card>div{text-align:left;background:#071522;justify-content:space-between;gap:12px;padding:14px 18px;display:flex}.profile-card span{color:#6f8783;letter-spacing:.08em;font-size:11px}.profile-card b{color:#dbe8e1;font-size:13px;font-weight:400}.phrase-cloud{flex-wrap:wrap;justify-content:center;gap:10px;max-width:740px;margin:14px auto 0;display:flex}.phrase-chip{color:#dbe8e1;cursor:pointer;background:#b8f26d0f;border:1px solid #b8f26d47;border-radius:40px;padding:10px 16px;font-family:Noto Serif SC,serif;font-size:15px;transition:transform .16s,background .16s}.phrase-chip:hover{background:#b8f26d29;transform:translateY(-2px)}.year-strip{grid-template-columns:repeat(6,1fr);gap:8px;max-width:940px;margin:26px auto;display:grid}.year-day{color:#cfe0d7;cursor:pointer;background:#071522;border:1px solid #b8f26d24;flex-direction:column;gap:6px;padding:14px 8px;transition:background .16s,transform .16s;display:flex}.year-day:hover{background:#b8f26d1f;transform:translateY(-3px)}.year-day time{color:#6f8783;letter-spacing:.1em;font-size:10px}.year-day b{font-size:13px;font-weight:400}.bottle-quote{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:130px;margin:26px 0;display:flex}.bottle-quote strong{color:#e6efea;font-family:Noto Serif SC,serif;font-size:clamp(20px,3vw,30px);font-weight:500}.bottle-quote time{color:#65807a;letter-spacing:.16em;font-size:10px}.bottle-meta{flex-direction:column;align-items:center;gap:4px;display:flex}.bottle-meta b{color:#b8d6c2;letter-spacing:.06em;font-family:Noto Serif SC,serif;font-size:13px;font-weight:400}.bottle-meta time{color:#65807a;letter-spacing:.14em;font-size:10px}.scene-wish{isolation:isolate;background:radial-gradient(circle at 50% 52%,#16332e 0,#0a1b23 45%,#030a12 78%)}.scene-wish:before{content:"";z-index:0;aspect-ratio:1;border:1px solid #b8f26d17;border-radius:50%;width:min(620px,94vw);position:absolute;top:51%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 100px #75a96914,0 0 80px #b8f26d0a}.scene-wish:after{content:"";z-index:0;filter:blur(25px);pointer-events:none;background:radial-gradient(#f5da7c21,#9fdd700e 42%,#0000 72%);border-radius:50%;width:min(440px,76vw);height:min(300px,42vh);position:absolute;top:53%;left:50%;transform:translate(-50%,-50%)}.scene-wish.is-active:after{animation:4.8s ease-in-out infinite wish-bloom}.wish-particles{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.birthday-cake{filter:drop-shadow(0 18px 30px #00000038);width:min(480px,91vw);margin:-4px auto 2px;position:relative}.birthday-cake:before{content:"";z-index:-1;filter:blur(52px);background:#f0d6911a;border-radius:50%;width:76%;height:62%;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.birthday-cake svg{width:100%;height:auto;display:block;overflow:visible}.scene-wish.is-active .birthday-cake{animation:5.2s ease-in-out 1s infinite cake-breathe}.scene-wish.is-active .birthday-cake svg{animation:.9s cubic-bezier(.2,.8,.25,1) both cake-arrive}.scene-wish.is-active :is(.cake-stand-stem,.cake-stand-foot,.cake-platter-rim,.cake-platter){animation:.52s ease-out 80ms both cake-detail-reveal}.scene-wish.is-active :is(.cake-body,.cake-top,.cake-cream-highlight){animation:.65s ease-out .22s both cake-detail-reveal}.scene-wish.is-active :is(.cake-top-piping,.cake-bottom-piping,.cake-vine,.cake-plaque,.cake-flowers){animation:.62s ease-out .44s both cake-detail-reveal}.scene-wish.is-active :is(.cake-berries,.cake-berry-leaves){animation:4.2s ease-in-out .76s infinite cake-berry-glint}.cake-leaves,.cake-berry-leaves{transform-box:fill-box;transform-origin:50% 70%}.scene-wish.is-active .cake-leaves{animation:3.8s ease-in-out .8s infinite alternate cake-leaf-sway}.scene-wish.is-active .number-candles{animation:3.2s ease-in-out .72s infinite cake-gold-glow}.cake-sweep-layer{opacity:.82;mix-blend-mode:screen;pointer-events:none}.scene-wish.is-active .cake-sweep{animation:5.8s cubic-bezier(.35,0,.22,1) 1.2s infinite cake-sweep-pass}.cake-ground-shadow{fill:#0000005c;filter:blur(5px)}.cake-stand-stem,.cake-stand-foot,.cake-platter{fill:url(#cake-plate)}.cake-stand-foot{stroke:#e4f2e538;stroke-width:1px}.cake-platter-rim{fill:#728879}.cake-platter{stroke:#f8fff77a;stroke-width:1.5px}.cake-body{fill:url(#cake-ivory);stroke:#ffffff6b;stroke-width:1px}.cake-top{fill:url(#cake-top);stroke:#ffffff94;stroke-width:1.3px}.cake-cream-highlight{fill:none;stroke:#ffffff80;stroke-width:2.2px;stroke-linecap:round}.cake-top-piping ellipse{fill:#f9f4e8;stroke:#bba47f38;stroke-width:1px}.cake-bottom-piping ellipse{fill:url(#cake-sage);stroke:#e8f6d84d;stroke-width:1px}.cake-vine{fill:none;stroke:#729069;stroke-width:3px;stroke-linecap:round}.cake-leaves ellipse,.cake-berry-leaves ellipse{fill:url(#cake-sage);stroke:#e0f4cd61;stroke-width:1px}.cake-plaque rect{fill:#fffbebdb;stroke:#b69755;stroke-width:1.3px}.cake-plaque text{fill:#78613c;letter-spacing:2px;font-family:DM Mono,monospace;font-size:11px}.cake-berries circle{fill:url(#cake-berry);stroke:#ffd6d37a;stroke-width:1px}.cake-flowers circle{fill:#fff8e8;stroke:#a5885b40;stroke-width:.8px}.cake-flowers .flower-heart{fill:#e8bd58;stroke:none}.number-candle{fill:none;stroke:url(#cake-gold);stroke-width:12px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 4px #4a2c0c52)}.candle-shine{fill:none;stroke:#ffffe0e0;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:10 22}.scene-wish.is-active .candle-shine{animation:2.4s linear infinite candle-light-travel}.candle-wick{fill:none;stroke:#3c332a;stroke-width:2.2px;stroke-linecap:round}.cake-flame{transform-box:fill-box;transform-origin:50% 100%;transition:opacity .38s,transform .38s;animation:.85s ease-in-out infinite alternate cake-flame-dance}.cake-flame.flame-two{animation-delay:-420ms}.cake-flame>path:first-child{fill:url(#cake-flame)}.cake-flame .flame-core{fill:#fffbd5}.cake-smoke{opacity:0;fill:none;stroke:#dae6dead;stroke-width:2.5px;stroke-linecap:round}.scene-wish.blown .cake-flame{opacity:0;animation:none;transform:translateY(-8px)scale(.18)}.scene-wish.blown .cake-smoke{animation:2.6s ease-out both cake-smoke-rise}.cake-sparkles{fill:#e9d582;stroke:#e9d582;stroke-width:1.3px;stroke-linecap:round;opacity:.68;animation:2.4s ease-in-out infinite cake-sparkle}@keyframes cake-flame-dance{0%{transform:rotate(-4deg)scaleX(.92)scaleY(1.03)}to{transform:rotate(5deg)scaleX(1.06)scaleY(.92)}}@keyframes cake-smoke-rise{0%{opacity:0;transform:translateY(4px)}16%{opacity:.75}to{opacity:0;transform:translateY(-32px)}}@keyframes cake-sparkle{50%{opacity:.24;transform:translateY(-2px)}}@keyframes cake-arrive{0%{opacity:0;filter:brightness(.72);transform:translateY(24px)scale(.965)}to{opacity:1;filter:none;transform:none}}@keyframes cake-detail-reveal{0%{opacity:0;filter:brightness(.68)}to{opacity:1;filter:none}}@keyframes cake-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-5px)scale(1.008)}}@keyframes cake-leaf-sway{0%{transform:rotate(-1.5deg)}to{transform:rotate(1.8deg)}}@keyframes cake-gold-glow{0%,to{filter:drop-shadow(0 0 #ffdc7400)}50%{filter:drop-shadow(0 0 7px #ffdc7480)}}@keyframes cake-berry-glint{0%,to{filter:brightness()}50%{filter:brightness(1.13)drop-shadow(0 0 3px #ff8f9d47)}}@keyframes cake-sweep-pass{0%,12%{opacity:0;transform:translate(0)}18%{opacity:.9}55%{opacity:.9;transform:translate(820px)}62%,to{opacity:0;transform:translate(820px)}}@keyframes candle-light-travel{to{stroke-dashoffset:-64px}}@keyframes wish-bloom{0%,to{opacity:.62;transform:translate(-50%,-50%)scale(.96)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}}.blow-controls{flex-direction:column;align-items:center;gap:12px;display:flex}.fallback-button{color:#819792;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #667d78;padding:8px 0;font-size:10px}.blow-controls small{color:#506966;font-size:9px}.listening{color:#b7dba8;font-size:11px}.listening span{background:var(--sprout);border-radius:50%;width:7px;height:7px;margin-right:7px;animation:1s infinite live-pulse;display:inline-block}.wish-sent{color:var(--sprout);letter-spacing:.15em;font-family:Noto Serif SC,serif}.scene-fireworks{background:#01050b;padding:0}.fireworks-canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.fireworks-sound,.fireworks-next{z-index:3;bottom:max(22px, env(safe-area-inset-bottom));color:#e5f1ebc2;letter-spacing:.12em;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02070d7a;border:1px solid #daefe238;border-radius:999px;min-width:112px;padding:10px 16px;font-size:9px;transition:color .18s,border-color .18s,background .18s,transform .18s;position:absolute}.fireworks-sound{left:max(22px, env(safe-area-inset-left))}.fireworks-next{right:max(22px, env(safe-area-inset-right))}.fireworks-next span{color:var(--sprout);margin-left:8px}.fireworks-sound:hover,.fireworks-next:hover{color:#eff8f2;background:#08181cb8;border-color:#b8f26d8f;transform:translateY(-2px)}.fireworks-static-scene{z-index:1;background:radial-gradient(circle at 17% 28%,#ffd36452 0 1px,#0000 2px) 0 0/37px 37px,radial-gradient(circle at 76% 21%,#8fd8ff47 0 1px,#0000 2px) 0 0/53px 53px,radial-gradient(circle at 52% 62%,#d3ff9640 0 1px,#0000 2px) 0 0/71px 71px,#01050b;position:absolute;inset:0;overflow:hidden}.fireworks-static-scene i{aspect-ratio:1;background:repeating-conic-gradient(from 4deg, transparent 0 4deg, currentColor 5deg 6deg, transparent 7deg 12deg);opacity:.62;filter:drop-shadow(0 0 8px);border-radius:50%;width:min(34vw,360px);position:absolute;-webkit-mask:radial-gradient(circle,#0000 0 10%,#000 12% 13%,#0000 15% 26%,#000 29% 31%,#0000 34% 48%,#000 52% 53%,#0000 56%);mask:radial-gradient(circle,#0000 0 10%,#000 12% 13%,#0000 15% 26%,#000 29% 31%,#0000 34% 48%,#000 52% 53%,#0000 56%)}.fireworks-static-scene i:first-child{color:#f6ca5b;top:8%;left:4%}.fireworks-static-scene i:nth-child(2){color:#9fdcff;width:min(27vw,290px);top:12%;right:3%;transform:rotate(9deg)}.fireworks-static-scene i:nth-child(3){color:#d8ff9d;width:min(38vw,400px);top:37%;left:34%;transform:rotate(-7deg)}.fireworks-static-scene i:nth-child(4){color:#ff9ec3;width:min(29vw,310px);bottom:-8%;left:9%}.fireworks-static-scene i:nth-child(5){color:#b8a7ff;width:min(32vw,340px);bottom:-5%;right:13%;transform:rotate(12deg)}.fireworks-static-scene strong{z-index:2;color:#fff9d5;letter-spacing:.08em;text-align:center;text-shadow:0 0 12px #fff6b9,0 0 38px #b8f26db3,0 0 80px #f5c84d73;width:90%;font-family:Noto Serif SC,serif;font-size:clamp(28px,6vw,72px);font-weight:700;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.scene-goodnight{background:radial-gradient(circle at 50% 45%,#102e34,#06101d 60%)}.final-sprout{width:70px;height:100px;margin:0 auto 8px;position:relative}.final-sprout b{background:linear-gradient(#aedf85,#37634d);border-radius:2px;width:3px;height:78px;position:absolute;bottom:0;left:34px}.final-sprout i{z-index:1;background:linear-gradient(135deg,#d5ff9b,#7cc259);width:46px;height:31px;position:absolute;top:12px;box-shadow:0 0 30px #b8f26d4d}.final-sprout i:first-child{border-radius:100% 0;left:0;transform:rotate(22deg)}.final-sprout i:nth-child(2){border-radius:0 100%;right:-10px;transform:rotate(-24deg)}.scene-links{gap:26px;margin-top:26px;display:flex}.scene-links a{color:#bcd6c2;border-bottom:1px solid #4d6a5a;padding-bottom:5px;font-size:11px;text-decoration:none}.infinity{color:#6f8783;letter-spacing:.2em;margin-top:30px;font-size:11px}@media (width<=720px){.scene{padding:78px 20px}.profile-card{grid-template-columns:1fr}.year-strip{grid-template-columns:repeat(3,1fr)}.scene-dots{gap:9px;right:8px}.scene-dots button{width:7px;height:7px}.birthday-cake{width:min(400px,100%);margin-block:-12px -4px}.fireworks-sound,.fireworks-next{bottom:max(16px, env(safe-area-inset-bottom));min-width:0;padding:9px 12px;font-size:8px}.fireworks-sound{left:14px}.fireworks-next{right:14px}.fireworks-static-scene strong{font-size:34px;line-height:1.5}.phrase-chip{padding:9px 13px;font-size:13px}.scene-links{gap:18px}}@media (prefers-reduced-motion:reduce){.scene-wish.is-active .birthday-cake,.scene-wish.is-active .birthday-cake svg,.scene-wish.is-active:after,.scene-wish.is-active :is(.cake-stand-stem,.cake-stand-foot,.cake-platter-rim,.cake-platter,.cake-body,.cake-top,.cake-cream-highlight,.cake-top-piping,.cake-bottom-piping,.cake-vine,.cake-plaque,.cake-flowers,.cake-berries,.cake-berry-leaves,.cake-leaves,.number-candles,.cake-sweep,.candle-shine){animation:none}.cake-sweep-layer{display:none}}
