html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid}h1,h2,h3,h4,h5,h6,p{margin:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,[type=button],[type=submit]{appearance:button;background:transparent;background-image:none}button{cursor:pointer}button:disabled{cursor:default}img,video{display:block;vertical-align:middle;max-width:100%;height:auto}audio{display:none}a{color:inherit;text-decoration:inherit}table{border-collapse:collapse}textarea{resize:vertical}ol,ul{list-style:none;margin:0;padding:0}blockquote,dl,dd{margin:0}:root{--file-pad-x:24px;--file-text:14px;--ds-font-text:sans-serif}@media (min-width:640px){:root{--file-pad-x:36px}}.file-card{box-sizing:border-box;width:100%;max-width:1040px;margin:0 auto;padding:24px var(--file-pad-x);background:var(--ds-page);color:var(--ds-ink);display:flex;flex-direction:column;gap:48px;font-family:var(--ds-font-text);font-size:var(--file-text);font-weight:350;line-height:24px;letter-spacing:-.01em}.file-card>*{min-width:0px}.file-card a{color:var(--ds-ink)}.file-card :focus-visible{outline:2px solid var(--ds-ink);outline-offset:2px}.file-group{display:flex;flex-direction:column;gap:24px}.file-group-label{margin:0;font:inherit;color:var(--ds-ink-2)}.file-group-heading{margin:0;font-family:var(--ds-font-display);font-weight:400;font-size:21px;line-height:1.1;letter-spacing:-.025em}.file-closing{margin:0;color:var(--ds-ink-2)}html,body{overflow-x:clip}#root{width:100%;overflow-x:clip}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}@font-face{font-family:Great Vibes;font-style:normal;font-weight:400;font-display:swap;src:url("/assets/great-vibes-latin-YJZSDIG6.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html{font-synthesis:none}html,body,#root{margin:0;min-height:100%}body{background:#0c0d12}.file-card{background:#0c0d12;--ds-page: #0c0d12;--ds-ink: #f4f0e7;--ds-ink-2: #a8a29a;--ds-ink-4: #6b665f;--ds-hairline: rgba(255, 255, 255, .12);--ds-raised: #17181f;--ds-teal: #ffc94d;--ds-font-display: "Great Vibes", "Noto Sans KR", "Noto Color Emoji", cursive, sans-serif;gap:40px}.lang-switch{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--ds-hairline);margin-bottom:-16px}.lang-btn{min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--ds-hairline);border-radius:999px;background:transparent;color:var(--ds-ink-2);font:inherit;font-size:13px;cursor:pointer}.lang-btn.is-active{border-color:var(--ds-teal);color:var(--ds-teal);font-weight:600}.page{display:flex;flex-direction:column;gap:44px}.hero{position:relative;margin:0 calc(-1 * var(--file-pad-x));min-height:min(78vh,620px);display:flex;align-items:flex-end;overflow:hidden}.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}@media (min-width: 768px){.hero{min-height:560px}.hero-img{object-position:center 32%}}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0c0d121a 34%,#0c0d12b8 68%,#0c0d12 96%)}.hero-content{position:relative;width:100%;padding:32px var(--file-pad-x) 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.hero-title{margin:0;font-family:var(--ds-font-display);font-weight:400;font-size:clamp(48px,14vw,92px);line-height:1.02;letter-spacing:0;color:#f4f0e7;text-shadow:0 4px 24px rgba(0,0,0,.55)}.hero-title .hl{color:var(--ds-teal)}.hero-sub{margin:0;font-size:16px;line-height:24px;color:#d9d4c9;font-weight:350;text-shadow:0 2px 10px rgba(0,0,0,.6)}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:10px}.file-card .file-button{background:#ffffff12;border-color:#ffffff3d;color:var(--ds-ink);box-shadow:none;min-height:44px}.file-card .file-button[data-variant=primary]{background:var(--ds-teal);border-color:var(--ds-teal);color:#1d1404;font-weight:600}.social-links{display:flex;flex-wrap:wrap;gap:10px}.social-links a{text-decoration:none}.children-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (min-width: 768px){.children-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.child-card{display:flex;flex-direction:column;gap:6px;min-width:0}.child-photo{aspect-ratio:1 / 1;border-radius:50%;background:var(--ds-raised);border:1px dashed rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0 auto;width:82%}.child-photo span{font-family:var(--ds-font-display);font-weight:400;font-size:44px;color:var(--ds-teal);opacity:.85}.child-name{margin:0;font-family:var(--ds-font-display);font-weight:400;font-size:22px;color:var(--ds-ink)}.child-soon{margin:0;font-size:12px;line-height:18px;color:var(--ds-ink-2)}.child-links{display:flex;flex-wrap:wrap;gap:8px}.child-links a{text-decoration:none}.child-photo-img{object-fit:cover;display:block;width:100%;height:100%;border:none;border-radius:50%;box-sizing:border-box;padding:3px;background:linear-gradient(135deg,#ffc94d,#ff7ac8 55%,#9fe870);box-shadow:0 0 18px #ffc94d59,0 8px 20px #00000080}.app-icon{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 14px #00000073;transition:transform .15s ease;flex:0 0 auto}.app-icon:hover{transform:translateY(-2px) scale(1.06)}.app-icon svg{width:22px;height:22px;display:block}.app-glyph{font-weight:800;color:#fff;line-height:1}.pay-icon-wrap{display:flex;align-items:center;justify-content:center;padding:30px 0 8px}.pay-icon-wrap .app-icon{width:54px;height:54px}.pay-icon-wrap .app-icon svg{width:26px;height:26px}.pay-icon-wrap .app-glyph{font-size:13px}.hero-title .hl{font-family:Noto Sans KR,sans-serif;font-weight:900}.page{font-family:var(--ds-font-body, system-ui),"Noto Color Emoji",sans-serif}.hero-title{font-family:var(--ds-font-display, "Noto Sans KR"),"Noto Sans KR","Noto Color Emoji",sans-serif}.birthday-list{display:flex;flex-direction:column;gap:8px}.birthday-row{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-radius:999px;background:var(--ds-raised);border:1px solid rgba(255,201,77,.25);box-shadow:0 0 14px #ffc94d1f}.birthday-name{font-family:var(--ds-font-display);font-weight:400;font-size:20px}.birthday-date{color:var(--ds-teal);font-weight:600;white-space:nowrap}.child-role{margin:0;font-size:12px;font-weight:600;color:#ff9ecb}.birthday-row.is-next{border-color:var(--ds-teal);box-shadow:0 0 20px #ffc94d73}.birthday-badge{margin-inline-start:8px;font-size:11px;font-weight:800;padding:2px 10px;border-radius:999px;background:linear-gradient(135deg,#ffc94d,#ff9ecb);color:#14141c;vertical-align:middle}.congrats-wrap{margin-top:12px}.celebrate-overlay{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0a0814c7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden}.celebrate-confetti{position:absolute;inset:0;pointer-events:none}.confetti-piece{position:absolute;top:-5%;border-radius:2px;opacity:.95;animation:confetti-fall linear infinite}.confetti-piece.round{border-radius:50%}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0)}to{transform:translateY(110vh) rotate(720deg)}}.celebrate-card{position:relative;text-align:center;padding:40px 32px;border-radius:28px;background:linear-gradient(160deg,#241a33,#171221);border:2px solid var(--ds-teal);box-shadow:0 0 60px #ffc94d73,0 24px 80px #0009;max-width:86vw;animation:celebrate-pop .6s cubic-bezier(.2,1.6,.4,1)}@keyframes celebrate-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.celebrate-close{position:absolute;top:10px;inset-inline-end:14px;background:none;border:none;color:#cfc4e0;font-size:26px;cursor:pointer;line-height:1}.celebrate-photo{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid var(--ds-teal);box-shadow:0 0 34px #ffc94da6;animation:celebrate-pulse 2s ease-in-out infinite}@keyframes celebrate-pulse{0%,to{box-shadow:0 0 24px #ffc94d80}50%{box-shadow:0 0 50px #ff9ecbcc}}.celebrate-greeting{font-family:var(--ds-font-display);font-size:36px;font-weight:400;margin:20px 0 22px;background:linear-gradient(135deg,#ffc94d,#ff9ecb);-webkit-background-clip:text;background-clip:text;color:transparent}.music-iframe{position:fixed;width:1px;height:1px;bottom:0;inset-inline-end:0;opacity:.01;pointer-events:none;border:0}.music-fab{position:fixed;bottom:18px;inset-inline-start:18px;z-index:95;width:56px;height:56px;border-radius:50%;border:2px solid var(--ds-teal);background:linear-gradient(135deg,#2a1f3d,#171221);color:#ffc94d;font-size:24px;cursor:pointer;box-shadow:0 0 22px #ffc94d73;display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.music-fab:hover{transform:scale(1.08)}.music-fab.playing{animation:music-pulse 1.6s ease-in-out infinite}@keyframes music-pulse{0%,to{box-shadow:0 0 16px #ffc94d66}50%{box-shadow:0 0 34px #ff9ecbcc}}.music-btn{width:52px;height:52px;border-radius:50%;border:2px solid var(--ds-teal);background:linear-gradient(135deg,#2a1f3d,#171221);color:#ffc94d;font-size:22px;cursor:pointer;box-shadow:0 0 20px #ffc94d80;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease;vertical-align:middle}.music-btn:hover{transform:scale(1.08)}.music-btn.playing{animation:music-pulse 1.6s ease-in-out infinite}.music-btn.loading{opacity:.75;animation:music-pulse 1.2s ease-in-out infinite;cursor:wait}.music-hint{color:#ffc94d;font-size:13px;margin:10px 0 0;opacity:.9}.spotlight{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:26px 10px 18px;overflow:hidden;border-radius:24px;background:radial-gradient(120% 90% at 50% 0%,rgba(255,122,200,.08),rgba(255,201,77,.05) 45%,transparent 75%)}.spot-stars{position:absolute;inset:0;pointer-events:none}.spot-star{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 6px 1px #ffffffbf;animation:spot-twinkle ease-in-out infinite}@keyframes spot-twinkle{0%,to{opacity:.12;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}.spot-ring{position:relative;width:min(62vw,230px);aspect-ratio:1 / 1;border-radius:50%;padding:5px;box-sizing:border-box;background:linear-gradient(135deg,#ffc94d,#ff7ac8 55%,#ff9ecb);box-shadow:0 0 26px #ffc94d73,0 0 64px #ff7ac847;animation:spot-breathe 4s ease-in-out infinite}@keyframes spot-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.spot-layer{position:absolute;inset:5px;border-radius:50%;overflow:hidden;background:var(--ds-raised)}.spot-layer.spot-in{animation:spot-fade .9s ease-out both}@keyframes spot-fade{0%{opacity:0}to{opacity:1}}.spot-img{width:100%;height:100%;object-fit:cover;display:block}.spot-img.spot-kenburns{animation:spot-kenburns 5.2s linear both}@keyframes spot-kenburns{0%{transform:scale(1.02)}to{transform:scale(1.16)}}.spot-initial{display:flex;align-items:center;justify-content:center}.spot-initial span{font-family:var(--ds-font-display);font-weight:400;font-size:64px;color:var(--ds-teal);opacity:.85}.spot-text{text-align:center;animation:spot-fade .8s ease-out both}.spot-name{margin:0;font-family:var(--ds-font-display);font-size:34px;font-weight:400;color:#ff9ecb;text-shadow:0 0 14px rgba(255,158,203,.4)}.spot-role{margin:2px 0 0;font-size:13px;font-weight:600;color:#ffc94d}.spot-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:4px}.spot-dot{width:8px;height:8px;border-radius:999px;border:none;padding:0;background:#ffffff38;cursor:pointer;transition:all .25s ease}.spot-dot.is-active{width:20px;background:linear-gradient(135deg,#ffc94d,#ff9ecb);box-shadow:0 0 8px #ffc94d99}.carousel{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.carousel-track{display:flex;gap:20px;width:max-content;direction:ltr;padding:8px 0;animation:carousel-scroll 24s linear infinite}.carousel:hover .carousel-track,.carousel:active .carousel-track{animation-play-state:paused}@keyframes carousel-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.carousel-item{display:flex;flex-direction:column;align-items:center;gap:5px;width:128px;flex:0 0 auto;text-align:center}.carousel-photo{width:106px;height:106px;border-radius:50%;object-fit:cover;box-sizing:border-box;padding:3px;background:linear-gradient(135deg,#ffc94d,#ff7ac8 55%,#9fe870);box-shadow:0 0 16px #ffc94d59,0 6px 16px #00000073}.carousel-initial{display:flex;align-items:center;justify-content:center;background-color:var(--ds-raised)}.carousel-initial span{font-family:var(--ds-font-display);font-weight:400;font-size:34px;color:var(--ds-teal);opacity:.85}.carousel-name{margin:0;font-weight:600;color:var(--ds-ink)}.carousel-role{margin:0;font-size:12px;font-weight:600;color:#ff9ecb}.carousel-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.carousel-links a{text-decoration:none}.carousel-soon{margin:0;font-size:12px;line-height:18px;color:var(--ds-ink-2)}.neon-stage{position:relative;overflow:hidden;border-radius:24px;padding:28px 4px;background:radial-gradient(120% 90% at 50% 0%,rgba(255,122,200,.08),rgba(255,201,77,.05) 45%,transparent 75%)}.neon-beam{position:absolute;top:0;width:130px;height:100%;pointer-events:none;background:linear-gradient(180deg,rgba(255,201,77,.22),transparent 70%);transform:skew(-18deg);animation:neon-sweep 5s ease-in-out infinite}.neon-beam.b2{background:linear-gradient(180deg,rgba(255,122,200,.2),transparent 70%);animation-delay:2.5s;transform:skew(18deg)}@keyframes neon-sweep{0%,to{left:-25%}50%{left:105%}}.neon-row{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:16px 10px}.neon-card{display:flex;flex-direction:column;align-items:center;gap:6px;width:160px;animation:neon-bob 3s ease-in-out infinite}.neon-card:nth-child(2){animation-delay:.4s}.neon-card:nth-child(3){animation-delay:.8s}.neon-card:nth-child(4){animation-delay:1.2s}.neon-card:nth-child(5){animation-delay:1.6s}@keyframes neon-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.neon-photo{width:160px;height:160px;border-radius:30px;object-fit:cover;box-sizing:border-box;padding:3px;background:linear-gradient(135deg,#ffc94d,#ff7ac8 55%,#9fe870);box-shadow:0 0 22px #ff7ac873}.neon-initial{display:flex;align-items:center;justify-content:center;background-color:var(--ds-raised)}.neon-initial span{font-family:var(--ds-font-display);font-weight:400;font-size:40px;color:var(--ds-teal);opacity:.85}.neon-name{margin:0;color:#ff9ecb;font-family:var(--ds-font-display);font-weight:400;font-size:24px;text-shadow:0 0 8px rgba(255,158,203,.9),0 0 22px rgba(255,158,203,.6);animation:neon-glow 2.2s ease-in-out infinite}@keyframes neon-glow{0%,to{opacity:1}50%{opacity:.55}}.neon-role{margin:0;color:#ffc94d;font-size:12px;font-weight:600}.neon-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.neon-links .app-icon{width:24px;height:24px}.neon-links .app-icon svg{width:13px;height:13px}.neon-links a{text-decoration:none}.neon-soon{margin:0;font-size:12px;line-height:18px;color:var(--ds-ink-2)}.like-btn{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 14px;border-radius:999px;border:1px solid rgba(255,158,203,.45);background:#ff9ecb14;color:#ff9ecb;font-size:15px;line-height:1;cursor:pointer;transition:transform .15s ease,background .15s ease}.like-btn:hover{transform:scale(1.08)}.like-btn.liked{background:#ff7ac838;border-color:#ff7ac8}.like-count{font-size:13px;font-weight:600;color:#f4f0e7}.spot-text .like-btn{margin-top:10px}.visits-count{text-align:center;font-size:13px;color:var(--ds-ink-2);margin:-20px 0 0}.guestbook{display:flex;flex-direction:column;gap:16px}.gb-form{display:flex;flex-direction:column;gap:10px}.gb-input{width:100%;box-sizing:border-box;padding:12px 16px;border-radius:16px;border:1px solid rgba(255,158,203,.35);background:#ffffff0d;color:var(--ds-ink);font:inherit;font-size:15px}.gb-input:focus{outline:none;border-color:#ff9ecb;box-shadow:0 0 12px #ff9ecb4d}.gb-input::placeholder{color:var(--ds-ink-2)}.gb-area{resize:vertical;min-height:72px}.gb-submit{align-self:center;padding:10px 28px;border-radius:999px;border:none;background:linear-gradient(135deg,#ffc94d,#ff7ac8);color:#1d1404;font:inherit;font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 4px 16px #ff7ac866;transition:transform .15s ease}.gb-submit:hover{transform:scale(1.05)}.gb-submit:disabled{opacity:.6;cursor:default;transform:none}.gb-error{margin:0;font-size:13px;color:#ff9e9e;text-align:center}.gb-empty{margin:0;text-align:center;color:var(--ds-ink-2);font-size:14px}.gb-list{display:flex;flex-direction:column;gap:10px}.gb-entry{position:relative;padding:12px 16px;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,201,77,.2)}.gb-name{margin:0 0 4px;font-family:var(--ds-font-display);font-size:22px;font-weight:400;color:#ff9ecb}.gb-msg{margin:0;font-size:14px;line-height:20px;color:var(--ds-ink)}.gb-date{position:absolute;top:10px;inset-inline-end:14px;margin:0;font-size:11px;color:var(--ds-ink-2)}.star-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.star-row{display:flex;align-items:center;justify-content:space-between;gap:4px;background:#ffffff0a;border:1px solid rgba(232,183,204,.25);border-radius:999px;padding:5px 5px 5px 11px;box-sizing:border-box;min-width:0}.star-name{color:#f5d9e4;font-family:var(--ds-font-display);font-weight:400;font-size:1.05rem;line-height:1.1;white-space:nowrap}.star-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(232,183,204,.35);background:#ffffff0f;color:#f5d9e4;border-radius:999px;padding:4px 10px;cursor:pointer;font-size:.9rem}.star-btn.liked{background:#ffd70026;border-color:#ffd70080}.cm{margin-top:8px}.cm-toggle{border:1px solid rgba(232,183,204,.45);background:linear-gradient(135deg,#ffb6d52e,#ffd7001a);color:#ffd9e8;border-radius:999px;padding:5px 12px;cursor:pointer;font-size:.85rem;box-shadow:0 0 10px #ffb6d526}.cm-toggle:active{transform:scale(.96)}.cm-count{margin-left:4px;font-size:.8rem;color:#f7c873}.cm-overlay{position:absolute;inset:0;background:#08040a99;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:40;display:flex;align-items:center;justify-content:center;border-radius:20px}.cm-sheet{width:min(92%,420px);max-height:90%;background:#1a0e18eb;border:1px solid rgba(232,183,204,.35);border-radius:20px;box-shadow:0 12px 44px #0000008c;display:flex;flex-direction:column;padding:14px 14px 18px;animation:cm-up .25s ease-out}@keyframes cm-up{0%{transform:translateY(24px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.cm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cm-title{font-family:var(--ds-font-display);font-size:1.4rem;color:#ffb6d5}.cm-x{border:none;background:#ffb6d526;color:#ffd9e8;border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:.9rem}.cm-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.cm-list::-webkit-scrollbar{width:4px}.cm-list::-webkit-scrollbar-thumb{background:#e8b7cc66;border-radius:4px}.cm-entry{margin:0;background:#ffb6d514;border:1px solid rgba(232,183,204,.18);border-radius:12px;padding:6px 10px;font-size:.85rem;color:#f0dde6;line-height:1.45}.cm-entry b{display:block;font-family:var(--ds-font-display);font-weight:400;font-size:1.05rem;color:#ffb6d5;margin-bottom:1px}.cm-empty{text-align:center;background:none;border:none}.cm-form{display:flex;flex-direction:column;gap:8px}.cm-name,.cm-msg{width:100%;font-size:.85rem;padding:9px 11px;border-radius:10px;border:1px solid rgba(232,183,204,.3);background:#ffffff0f;color:#f5e6ee}.cm-name::placeholder,.cm-msg::placeholder{color:#f5d9e480}.cm-name:focus,.cm-msg:focus{outline:none;border-color:#ffb6d599;box-shadow:0 0 0 2px #ffb6d526}.cm-sendrow{display:flex;gap:8px}.cm-sendrow .gb-submit{padding:8px 14px;font-size:.85rem;border-radius:10px;white-space:nowrap}.neon-card .like-btn{margin-top:2px;padding:3px 9px;font-size:12px;gap:4px}.neon-card .cm-toggle{padding:3px 9px;font-size:.72rem}.page:lang(ar){--ds-font-display: "Great Vibes", "Aref Ruqaa", "Noto Color Emoji", cursive, sans-serif;--ds-font-body: "Cairo", "Noto Color Emoji", sans-serif}.page:lang(ko){--ds-font-display: "Great Vibes", "Gaegu", "Noto Sans KR", "Noto Color Emoji", cursive, sans-serif;--ds-font-body: "Gowun Dodum", "Noto Sans KR", "Noto Color Emoji", sans-serif}.page:lang(ja){--ds-font-display: "Great Vibes", "Klee One", "Noto Sans JP", "Noto Color Emoji", cursive, sans-serif;--ds-font-body: "Klee One", "Noto Sans JP", "Noto Color Emoji", sans-serif}.page:lang(zh){--ds-font-display: "Great Vibes", "Ma Shan Zheng", "Noto Sans SC", "Noto Color Emoji", cursive, sans-serif;--ds-font-body: "Noto Sans SC", "Noto Color Emoji", sans-serif}.page:lang(tr),.page:lang(es),.page:lang(fil){--ds-font-display: "Great Vibes", "Noto Color Emoji", cursive, sans-serif}.star-row .like-btn{margin-top:0;padding:3px 7px;font-size:12px;gap:3px;flex:0 0 auto}.star-grid{gap:8px}.star-name,.birthday-name,.neon-name,.child-name,.spot-name,.gb-name,.cm-title,.cm-entry b{font-family:Great Vibes,Aref Ruqaa,Gaegu,Klee One,Ma Shan Zheng,Noto Sans KR,Noto Sans JP,Noto Sans SC,Cairo,"Noto Color Emoji",cursive,sans-serif}.bday-countdown{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--ds-raised);border:2px solid rgba(255,201,77,.55);border-radius:999px;box-shadow:0 0 18px #ffc94d47;padding:8px 18px;margin-bottom:14px}@keyframes cd-bounce{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-4px) rotate(6deg)}}.cd-cake{font-size:22px;animation:cd-bounce 1s ease-in-out infinite}.cd-name{font-family:var(--ds-font-display);font-size:26px;color:#ffc94d}.cd-t{font-weight:800;font-size:15px;color:#ff9ecb;font-variant-numeric:tabular-nums;letter-spacing:.5px}.bday-countdown.is-today{background:linear-gradient(135deg,#ffc94d,#ff9ecb)}.bday-countdown.is-today .cd-name,.bday-countdown.is-today .cd-t{color:#14141c}.birthday-row.is-next{background:linear-gradient(135deg,#1a1424,#2a1f3d 55%,#1a1424);border:2px solid #ffc94d;box-shadow:0 0 20px #ffc94d80}.bday-timer{display:inline-block;font-weight:800;font-size:13px;color:#ffc94d;background:#ffc94d1f;border:1.5px solid #ffc94d;border-radius:999px;padding:2px 10px;font-variant:tabular-nums;font-variant-numeric:tabular-nums;letter-spacing:.5px;white-space:nowrap}.bday-timer.is-now{background:linear-gradient(135deg,#ffc94d,#ff9ecb);color:#14141c;border-color:transparent}.bday-spark{margin-inline-end:4px;font-size:15px;display:inline-block;animation:spark-twinkle 1.2s ease-in-out infinite}@keyframes spark-twinkle{0%,to{transform:scale(.8) rotate(-10deg);opacity:.7}50%{transform:scale(1.15) rotate(10deg);opacity:1}}.birthday-row.is-next .bname-text{background:linear-gradient(90deg,#ffc94d,#fff3d6,#ff9ecb,#ffc94d);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:name-shine 3s linear infinite}@keyframes name-shine{to{background-position:300% 0}}.bday-celebrate{background:none;border:none;font-size:16px;cursor:pointer;padding:0 6px 0 0}.party-mode .birthday-row.is-next{box-shadow:0 0 28px #ffc94dcc}.party-crew{position:relative;z-index:1;margin:-10px 0 6px;padding:18px 10px 22px;background:linear-gradient(135deg,#ffc94d29,#ff7ac821);border:2px solid #ffc94d;border-radius:24px;box-shadow:0 0 26px #ffc94d59;overflow:visible}.party-crew-title{margin:0 0 14px;text-align:center;font-family:var(--ds-font-display);font-size:30px;color:#ffc94d;text-shadow:0 0 14px rgba(255,201,77,.5)}.party-crew-row{display:grid;grid-template-columns:repeat(3,1fr);justify-items:center;align-items:end;gap:16px 10px}.party-crew-card{position:relative;display:block;width:58px;animation:pc-float 3.6s ease-in-out infinite;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}.party-crew-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:3px solid #ffc94d;border-radius:18px;background:#1a1424}.pc-hat,.pc-cake{position:absolute}.party-crew-card .pc-hat{top:-14px;left:-8px;font-size:24px}@keyframes pc-float{0%,to{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-12px) rotate(var(--r))}}.party-crew-star{position:relative;width:170px;margin:10px auto 18px;animation:pcs-pulse 2.4s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(0,0,0,.5))}.party-crew-star img,.party-crew-star .pcs-initial{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:26px;border:4px solid #ffc94d;box-shadow:0 0 0 3px #ff9ecb99,0 0 30px #ffc94d8c;background:#1a1424}.party-crew-star .pcs-initial{display:flex;align-items:center;justify-content:center;font-family:var(--ds-font-display);font-size:64px;color:#ffc94d}.pcs-cake{position:absolute;top:-26px;left:50%;transform:translate(-50%);font-size:42px;z-index:2}.pcs-name{position:absolute;bottom:-14px;left:50%;transform:translate(-50%);white-space:nowrap;font-family:var(--ds-font-display);font-size:28px;color:#14141c;background:linear-gradient(135deg,#ffc94d,#ff9ecb);border-radius:999px;padding:0 16px;box-shadow:0 0 14px #ffc94d99;z-index:2}@keyframes pcs-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.party-mode{background:radial-gradient(rgba(255,201,77,.2) 2.5px,transparent 3px),radial-gradient(rgba(255,122,200,.18) 2.5px,transparent 3px),radial-gradient(rgba(140,77,255,.16) 2.5px,transparent 3px),linear-gradient(160deg,#171224,#1f1430 45%,#0c0d12);background-size:90px 90px,120px 120px,150px 150px,cover;background-position:0 0,35px 50px,65px 25px,0 0}.balloons{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}.balloon{position:absolute;bottom:-80px;animation:balloon-rise linear infinite;opacity:.9}@keyframes balloon-rise{0%{bottom:-80px;transform:translate(0) rotate(-6deg)}50%{transform:translate(var(--sway)) rotate(7deg)}to{bottom:110%;transform:translate(0) rotate(-6deg)}}.bday-sound-wrap{display:flex;align-items:center;justify-content:center;margin-top:16px}.bday-sound-pill{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;border:2px solid #ffc94d;background:linear-gradient(135deg,#ffc94d,#ff9ecb);color:#2a1f3d;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 0 20px #ffc94d80;transition:transform .15s ease}.bday-sound-pill:hover{transform:scale(1.05)}.bday-sound-pill.playing{animation:music-pulse 1.6s ease-in-out infinite}.bday-frame{position:relative;display:block;width:240px;height:254px;margin:0 auto 6px}.bf-ring{position:absolute;left:36px;top:58px;width:168px;height:168px;border-radius:50%;background:conic-gradient(#ffc94d,#ff7ac8,#ff9ecb,#ffe9a8,#ffc94d);animation:bf-spin 6s linear infinite;box-shadow:0 0 34px #ffc94da6,0 0 60px #ff7ac84d}@keyframes bf-spin{to{transform:rotate(360deg)}}.bday-frame .celebrate-photo{position:absolute;left:43px;top:65px;width:154px;height:154px;border-radius:50%;object-fit:cover;border:none;box-shadow:none;animation:none}.bf-crown{position:absolute;top:-4px;left:50%;transform:translate(-50%);font-size:30px;animation:bf-sway 3.2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,201,77,.8));z-index:3}@keyframes bf-sway{0%,to{transform:translate(-50%) rotate(-5deg)}50%{transform:translate(-50%) rotate(5deg)}}.bf-script{position:absolute;top:28px;left:0;right:0;text-align:center;font-family:Great Vibes,cursive;font-size:26px;color:#ffc94d;text-shadow:0 0 10px rgba(255,201,77,.8),0 0 22px rgba(255,122,200,.6);animation:bf-shimmer 2.4s ease-in-out infinite;z-index:3}@keyframes bf-shimmer{0%,to{text-shadow:0 0 8px rgba(255,201,77,.7),0 0 18px rgba(255,122,200,.45)}50%{text-shadow:0 0 14px rgba(255,201,77,1),0 0 30px rgba(255,122,200,.8)}}.bf-orn{position:absolute;pointer-events:none;z-index:2}.bf-balloon{font-size:24px;animation:bf-bob 3s ease-in-out infinite}@keyframes bf-bob{0%,to{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-8px) rotate(7deg)}}.bf-b1{left:14px;top:92px}.bf-b2{right:14px;top:84px;animation-delay:1s}.bf-b3{left:0;top:142px;font-size:20px;animation-delay:1.9s}.bf-heart{font-size:20px;animation:bf-bob 3.4s ease-in-out infinite}.bf-h1{right:2px;top:140px;animation-delay:.5s}.bf-h2{left:30px;top:66px;font-size:16px;animation-delay:1.4s}.bf-cake{left:20px;bottom:2px;font-size:27px;animation:bf-bob 3.6s ease-in-out infinite;animation-delay:.8s}.bf-gift{font-size:23px;animation:bf-bob 3.1s ease-in-out infinite}.bf-g1{right:22px;bottom:4px;animation-delay:1.2s}.bf-g2{right:0;bottom:24px;font-size:18px;animation-delay:2.1s}.bf-sparkle{color:#fff;text-shadow:0 0 8px #ffc94d,0 0 14px #ff9ecb;font-size:15px;animation:bf-twinkle 1.8s ease-in-out infinite}@keyframes bf-twinkle{0%,to{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}.bf-s1{top:56px;left:58px}.bf-s2{top:62px;right:54px;animation-delay:.45s}.bf-s3{bottom:30px;left:84px;animation-delay:.9s}.bf-s4{bottom:36px;right:80px;animation-delay:1.35s}.bf-confetti{position:absolute;width:7px;height:7px;border-radius:2px;animation:bf-float 2.6s ease-in-out infinite;pointer-events:none;z-index:2}@keyframes bf-float{0%,to{transform:translateY(0) rotate(0);opacity:.9}50%{transform:translateY(-6px) rotate(120deg);opacity:.5}}.bf-c1{background:#ffc94d;top:76px;right:34px}.bf-c2{background:#ff9ecb;bottom:44px;left:44px;animation-delay:.9s}.bf-c3{background:#fff;top:108px;right:6px;animation-delay:1.7s}.memory-photo-link{position:relative;display:block;color:inherit;line-height:0;border-radius:24px;isolation:isolate}.memory-photo-link:focus-visible{outline:3px solid #ffd34e;outline-offset:5px}.memory-photo-hint{position:absolute;right:9px;bottom:10px;width:27px;height:27px;border-radius:50%;background:#191323d9;color:#fff;display:grid;place-items:center;font:700 15px sans-serif;border:1px solid #ffffff88}.haan-app-link{overflow:hidden;border:1px solid #ffffff88}.haan-app-link img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.spot-layer .memory-photo-link{width:100%;height:100%;border-radius:inherit}.memory-page{max-width:760px;margin:0 auto;padding:20px 16px 40px!important;min-height:540px}.memory-back{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:2px solid #edc861;border-radius:999px;color:inherit;font-size:12px;text-decoration:none}.memory-person{display:flex;align-items:center;gap:14px;margin:23px 0 20px}.memory-person img{width:92px;height:92px;object-fit:cover;border-radius:24px;border:2px solid #ffc65e;box-shadow:4px 4px #cf659c}.memory-person p{font-size:12px;color:#dbc5d9;margin:0 0 5px}.memory-person h1{font-size:22px;line-height:1.25;margin:0;font-family:inherit;letter-spacing:0}.memory-person h1 span{color:#ed92be}.memory-video-section{padding:16px;border:2px solid #85658e;border-radius:20px;box-shadow:4px 4px #edc86144;background:#1b1621}.memory-video-section h2{font-size:17px;margin:0 0 13px;color:#f8db92;font-family:inherit}.memory-empty{padding:25px 16px;border:1px dashed #ae8aaf;border-radius:14px;text-align:center;background:#221b2a}.memory-film{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;border-radius:14px;background:#48304f;color:#ffd76d;font-size:25px}.memory-empty p{font-size:13px;line-height:1.7;margin:0 auto;max-width:330px;color:#e2d4df}@media (min-width:760px){.memory-page{padding:28px 26px 56px!important}.memory-person img{width:115px;height:115px}.memory-person h1{font-size:28px}}@media (max-width:359px){.memory-person{gap:10px}.memory-person img{width:74px;height:74px}.memory-person h1{font-size:19px}}.memory-videos{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}.memory-video{margin:0;min-width:0}.memory-video video{display:block;width:100%;max-height:560px;aspect-ratio:9/16;object-fit:contain;background:#0c090f;border:1px solid #ae8aaf77;border-radius:12px}.memory-video figcaption{padding:7px 2px;font-size:12px;color:#dfc8df;direction:ltr;text-align:center}@media (min-width:620px){.memory-videos{grid-template-columns:repeat(2,minmax(0,1fr))}}.rocka-music{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:900;width:46px;height:46px;font-size:20px}.rocka-birthday-window{height:304px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;touch-action:pan-y;overscroll-behavior-y:contain;padding:3px}.rocka-birthday-window::-webkit-scrollbar{display:none}.rocka-birthday-track{padding-bottom:9px}.rocka-birthday-track .birthday-row{flex-shrink:0}
