:root{--bg-blush: #fbe4e7;--bg-blush-deep: #f6c9d3;--bg-cream: #fdf3f1;--card-bg: #fffafc;--card-border: #f3bfd8;--pink-bar: #fbdff0;--pink-tab: #f9d0e5;--pink-strip: #f9d3e6;--pink-accent: #f48fb9;--pink-deep: #e9679f;--pink-highlight: #fbcfe4;--text-gray: #8f8f8f;--text-gray-dark: #6f6f6f;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-script: "Sacramento", cursive;--font-bubble: "Baloo 2", var(--font-ui);--font-pixel: "Press Start 2P", var(--font-ui)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-ui);color:var(--text-gray);background:var(--bg-blush);-webkit-font-smoothing:antialiased;zoom:.8}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}.scene{position:relative;min-height:100vh;overflow:hidden;padding:24px 16px;background:radial-gradient(52% 42% at 50% 34%,#f4a6babf,#f4a6ba00 70%),radial-gradient(40% 34% at 24% 22%,#f9cdd6e6,#f9cdd600 70%),radial-gradient(46% 40% at 82% 64%,#fbd8e2e6,#fbd8e200 72%),radial-gradient(60% 50% at 50% 96%,#fdece9,#fdece900 75%),linear-gradient(180deg,var(--bg-cream) 0%,var(--bg-blush) 38%,var(--bg-blush-deep) 62%,var(--bg-blush) 100%)}.sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.sparkle{position:absolute;filter:drop-shadow(0 0 6px rgba(255,255,255,.9))}@media(prefers-reduced-motion:no-preference){.sparkle{animation:twinkle 3.4s ease-in-out infinite}.sparkle:nth-child(2n){animation-delay:1.1s}.sparkle:nth-child(3n){animation-delay:2.2s}@keyframes twinkle{0%,to{transform:scale(1);opacity:.55}50%{transform:scale(1.25);opacity:1}}}.heart-rain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;overflow:hidden}.heart-rain__heart{position:absolute;top:-32px;display:block;animation:heart-fall 2.6s ease-in forwards}.heart-rain__heart svg{display:block;width:100%}@keyframes heart-fall{0%{transform:translateY(0) rotate(-8deg);opacity:1}to{transform:translateY(110vh) rotate(10deg);opacity:.85}}@media(prefers-reduced-motion:reduce){.heart-rain{display:none}}.stage{position:relative;z-index:2;max-width:950px;margin:0 auto}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 8px;margin-bottom:44px}.masthead__left{display:flex;flex-direction:column;gap:6px}.wordmark{font-family:var(--font-script);font-weight:400;font-size:clamp(60px,8vw,124px);line-height:.9;color:#fff;-webkit-text-stroke:1.5px #ffffff;text-shadow:0 2px 4px rgba(238,140,180,.45),0 6px 22px rgba(236,125,170,.75);padding-left:18px}.masthead__right{display:flex;align-items:flex-end;gap:14px}.masthead__heart{width:58px;margin-bottom:122px;filter:drop-shadow(0 2px 6px rgba(240,150,185,.35))}.masthead__cat{width:clamp(190px,26vw,310px);margin-bottom:-60px;filter:drop-shadow(0 4px 10px rgba(214,150,180,.25))}.card{position:relative;border-radius:0 17px 17px;background:var(--card-bg);box-shadow:0 0 0 1.5px var(--card-border),0 17px 48px #e296b847}.card__tab{position:absolute;bottom:100%;left:0;padding:12px 46px 10px 30px;background:var(--pink-tab);border-radius:17px 17px 0 0;box-shadow:0 0 0 1.5px var(--card-border);clip-path:inset(-4px -4px 0 -4px);font-family:var(--font-bubble);font-weight:800;font-size:22px;letter-spacing:.06em;color:#fff;text-shadow:-1px -1px 0 #f3b1d2,1px -1px 0 #f3b1d2,-1px 1px 0 #f3b1d2,1px 1px 0 #f3b1d2}.card__body{padding:0 0 28px}.card__marquee{padding:16px 28px;background:var(--pink-bar);border-bottom:1.5px solid #f6cfe3;border-radius:0 17px 0 0;font-size:23px;color:var(--text-gray)}.card__marquee-link{padding:0;text-decoration:underline;text-underline-offset:3px;color:var(--text-gray-dark)}.card__marquee-link:hover,.card__marquee-link:focus-visible{color:var(--pink-deep)}.card__columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:26px 28px 0}.panel{display:flex;flex-direction:column;gap:16px;min-width:0}.panel__imagebox{width:100%;max-width:320px;aspect-ratio:16 / 10;border-radius:6px;background:#fbdff0;display:grid;place-items:center}.panel__imagebox-label{font-family:var(--font-script);font-size:30px;color:#f2a9d0}.photo-frame{position:relative;flex:none;width:clamp(200px,30vw,270px);padding:10px;background:#fde9f2;border:2px solid #f0b6d3;border-radius:14px}.photo-frame__bow{position:absolute;top:-22px;left:50%;width:68px;transform:translate(-50%);z-index:3}.photo-frame__hearts{position:absolute;top:50%;left:-12px;transform:translateY(-50%);display:flex;flex-direction:column;gap:4px;z-index:3}.photo-frame__hearts svg{width:20px}.photo-frame__photo{position:relative;overflow:hidden;border-radius:10px;aspect-ratio:5 / 4;background:#f9dcea}.photo-frame__photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-frame__placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(60% 60% at 30% 30%,#fceef5,#fceef500 70%),radial-gradient(70% 70% at 75% 70%,#f6c3da,#f6c3da00 75%),linear-gradient(160deg,#fbe0ec,#f3b9d4)}.photo-frame__placeholder span{font-size:42px;color:#ffffffe6}.photo-frame__tulips{position:absolute;right:-14px;bottom:-16px;width:62px;z-index:3}.panel__rules{font-family:var(--font-bubble);font-weight:800;font-size:clamp(21px,2.4vw,30px);line-height:1.4;color:var(--pink-accent);padding:2px 2px 0}.panel__rules b{color:var(--pink-deep);font-weight:800}.card__footer-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:24px;padding:26px 28px 0}.footer-row__player-group{position:relative;flex:1;min-width:260px;display:flex;align-items:center;gap:20px;padding-top:22px;border-top:1.5px solid #f3dde9}.footer-row__sticker{position:absolute;z-index:3;filter:drop-shadow(0 2px 4px rgba(120,110,130,.22))}.footer-row__sticker--star{width:20px;top:-9px;left:6%}.footer-row__sticker--bunny{width:26px;top:-13px;left:16%}.footer-row__sticker--bow{width:30px;top:-12px;right:-6px}.footer-row__sticker--heart{width:16px;top:-8px;right:60px}.footer-row__kitty{position:relative;flex:none;display:flex;flex-direction:column;align-items:center}.footer-row__kitty-icon{width:62px}.footer-row__note{position:absolute;color:var(--pink-accent);font-size:15px}.footer-row__note--1{top:-6px;left:-14px}.footer-row__note--2{bottom:2px;right:-12px;font-size:12px}.card__credit{display:block;padding:22px 28px 0;font-size:13px;color:#b5b0b3}.card__footer{height:22px;background:var(--pink-strip);border-radius:0 0 17px 17px;box-shadow:inset 0 1.5px #f2c4dc}@media(max-width:720px){.masthead{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:44px}.masthead__right{justify-content:flex-end}.masthead__heart{width:34px;margin-bottom:56px}.masthead__cat{width:clamp(120px,32vw,180px);margin-bottom:-40px}.card__columns{grid-template-columns:1fr;gap:24px}.card__marquee{border-radius:0;font-size:15px}.photo-frame__hearts{left:-12px}.card__footer-row{flex-direction:column;align-items:stretch}.footer-row__player-group{padding-top:26px}}.player{display:flex;align-items:center;gap:16px;margin-left:auto;padding:14px;border-radius:18px;background:linear-gradient(160deg,#fce4f0,#f5b9d6);box-shadow:0 2px 4px #ffffffb3 inset,0 6px 16px #e296b84d}.player__screen{flex:none;width:112px;height:112px;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1.5px #eccbdc}.player__wheel{position:relative;flex:none;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff 0%,var(--pink-highlight) 55%,var(--pink-tab) 100%);box-shadow:0 2px 5px #ffffffb3 inset,0 -3px 8px #e296b826 inset,0 4px 10px #e296b847}.player__wheel-label{position:absolute;top:12px;left:50%;transform:translate(-50%);font-family:var(--font-bubble);font-weight:700;font-size:10px;letter-spacing:.1em;color:var(--pink-deep)}.player__wheel-btn{position:absolute;top:50%;width:22px;height:22px;display:grid;place-items:center;color:#c98aa8;transform:translateY(-50%)}.player__wheel-btn:hover,.player__wheel-btn:focus-visible{color:var(--pink-deep)}.player__wheel-btn svg{width:14px;height:14px}.player__wheel-btn--prev{left:8px}.player__wheel-btn--next{right:8px}.player__center{position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);border-radius:50%;background:linear-gradient(160deg,#f6a0c6 0%,var(--pink-deep) 100%);box-shadow:0 2px 6px #e296b859;display:grid;place-items:center;color:#fff}.player__center:hover,.player__center:focus-visible{filter:brightness(1.05)}.player__center svg{width:16px;height:16px}@media(max-width:560px){.player{flex-wrap:wrap;justify-content:center}}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:radial-gradient(52% 42% at 50% 34%,#f4a6babf,#f4a6ba00 70%),radial-gradient(40% 34% at 24% 22%,#f9cdd6e6,#f9cdd600 70%),radial-gradient(46% 40% at 82% 64%,#fbd8e2e6,#fbd8e200 72%),radial-gradient(60% 50% at 50% 96%,#fdece9,#fdece900 75%),linear-gradient(180deg,var(--bg-cream) 0%,var(--bg-blush) 38%,var(--bg-blush-deep) 62%,var(--bg-blush) 100%)}.intro__box{width:min(90vw,420px);border:12px solid #f0a8cf;border-radius:6px;background:#fbdff0;box-shadow:0 10px 30px #e296b859}.intro__header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#ec8fc0}.intro__header-hearts{display:flex;align-items:center;gap:10px}.intro__header-heart{width:20px}.intro__header-heart--purple{color:#a992e8}.intro__header-heart--pink{color:#f5b9d8}.intro__header-heart--white{color:#fff}.intro__checker{width:18px;height:18px;background:linear-gradient(45deg,#ffffff 25%,transparent 25%) -9px 0/18px 18px,linear-gradient(-45deg,#ffffff 25%,transparent 25%) -9px 0/18px 18px,linear-gradient(45deg,transparent 75%,#ffffff 75%) -9px 0/18px 18px,linear-gradient(-45deg,transparent 75%,#ffffff 75%) -9px 0/18px 18px;background-color:#f5b9d8}.intro__body{display:flex;flex-direction:column;align-items:center;gap:26px;padding:54px 24px}.intro__text{font-family:var(--font-pixel);font-size:clamp(16px,3vw,22px);color:#e478b3}.intro__button{width:84px;height:40px;border:2px solid #e478b3;border-radius:4px;background:#fdf0f7;display:grid;place-items:center}.intro__button:hover,.intro__button:focus-visible{background:#fff}.intro__button-heart{width:20px;color:#ec8fc0}
