:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#ffedc9;background:#510f1a;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 20%,#9b2832 0,#681320 48%,#350c16 100%)}button,input{font:inherit}button{border:1px solid #f0cd8545;border-radius:10px;background:#ffffff09;color:#ffedc9;padding:10px 18px;cursor:pointer}button:hover{background:#ffffff16}button:disabled{opacity:.4;cursor:default}.primary{background:linear-gradient(135deg,#ffe3a2,#d8a74d);color:#531324;border:none;font-weight:650;padding:15px 32px}.primary:hover{background:#ffe4aa}header{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:25px 4vw;border-bottom:1px solid #efd2a122}header>span{font-size:20px;font-weight:600}header b{color:#e5b665;margin:0 10px}header>div{display:flex;gap:10px;align-items:center}input[type=range]{width:85px;accent-color:#e5bd76}main{position:relative;z-index:1;max-width:1120px;margin:auto;padding:35px 28px 50px}h1{font-size:36px;margin:0 0 10px}p,.muted{color:#d5b3aa}.top{display:flex;justify-content:space-between;align-items:center;gap:20px}.counter{font-size:18px;color:#f0cc8d}.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.person{display:flex;align-items:center;gap:8px;border:1px solid #efcf9228;background:#ffffff05;border-radius:10px;padding:10px}.person.absent{opacity:.45}.person input[type=checkbox]{accent-color:#e8bd70;width:19px;height:19px}.person input[type=text]{width:100%;min-width:0;background:transparent;border:0;color:#ffebcb;padding:5px;outline-offset:3px}.person button{padding:1px 6px;border:0;font-size:20px;color:#cda0a0}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.add{background:#400d18;border:1px solid #e6c88c55;padding:12px;color:#fff1d7;border-radius:9px}.foot{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:22px}.stage{text-align:center}.steps{display:flex;justify-content:center;gap:32px;margin:5px 0 36px;color:#c9938d}.steps .active{color:#ffe1a1}.steps .done{color:#dcb77d}.stage h1{font-size:48px;font-weight:500;letter-spacing:8px}.stage .count{color:#e2ba7b;margin:12px 0 25px}.slots{display:flex;justify-content:center;gap:22px;min-height:255px;align-items:center;margin:12px 0 25px}.slot{display:flex;align-items:center;justify-content:center;width:280px;min-height:185px;padding:25px 12px;border-radius:18px;border:1px solid #e5bc7355;background:linear-gradient(145deg,#ffe1a10d,#ffe1a103);font-size:clamp(30px,4.4vw,66px);font-weight:600;box-shadow:0 15px 65px #18030a25;white-space:nowrap}.rolling .slot{animation:flip .13s infinite}.revealed .slot{animation:reveal .8s ease-out;border-color:#ffe0a4;box-shadow:0 0 70px #e6a13222}.stage .actions{justify-content:center}.history{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin:42px 0 25px}.history>div{background:#30071130;border:1px solid #efcf9220;border-radius:12px;padding:18px 28px}.history small{display:block;color:#d5a55e;margin-bottom:10px}.history strong{font-size:24px;font-weight:500}.subactions{display:flex;justify-content:center;gap:16px;margin-top:30px}.subactions button{font-size:13px;color:#c99e94;border:0}.lights{pointer-events:none;position:fixed;inset:0;overflow:hidden}.lights:before,.lights:after{content:'';position:absolute;top:-30%;width:20%;height:140%;background:linear-gradient(#fbe2a012,transparent);filter:blur(25px);transform:rotate(30deg);left:10%;animation:sway 7s ease-in-out infinite alternate}.lights:after{left:auto;right:10%;transform:rotate(-30deg);animation-delay:-3s}canvas{position:fixed;inset:0;pointer-events:none;z-index:5}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#201014;color:#ffe6b2;padding:12px 22px;border-radius:10px;z-index:10;display:none}dialog{background:#591624;color:#ffe6bb;border:1px solid #dfb56b;border-radius:16px;padding:28px}dialog::backdrop{background:#14030bbb}.storage-warning{color:#ffe0a0;text-align:center}@keyframes flip{50%{transform:translateY(-4px);opacity:.7}}@keyframes reveal{from{transform:scale(.8);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes sway{to{transform:rotate(-12deg)}}@media(max-width:750px){header{padding:18px}header>span{font-size:16px}header button{padding:7px 10px}#volume{width:50px}.roster{grid-template-columns:repeat(2,1fr)}main{padding:25px 16px}.slot{min-height:140px;width:30vw;padding:12px 3px;font-size:clamp(22px,5vw,40px)}.slots{gap:10px;min-height:220px}.stage h1{font-size:38px}.foot{align-items:start;flex-direction:column}.steps{gap:22px}.top{align-items:start}h1{font-size:28px}}@media(prefers-reduced-motion:reduce){.lights:before,.lights:after,.rolling .slot,.revealed .slot{animation:none}}

.gift{font-size:26px;color:#ffe0a1;margin-top:16px;letter-spacing:4px}

.steps>span{flex:1;max-width:310px;line-height:1.6}.step-gift{display:block;font-size:13px;margin-top:6px;letter-spacing:0}.gift{max-width:780px;margin:16px auto 0;line-height:1.65;letter-spacing:1px;text-wrap:balance}.history{align-items:stretch}.history>div{max-width:340px}.history small{line-height:1.7}.history strong{line-height:1.6}.steps{gap:20px}@media(max-width:750px){.steps{gap:10px}.step-gift{font-size:11px}.gift{font-size:21px}}

.bouncing-meme{position:fixed;top:0;left:0;z-index:8;width:clamp(140px,17vw,215px);padding:0;background:transparent;border-radius:0;will-change:transform}.bouncing-meme img{display:block;width:100%;filter:url(#meme-key) drop-shadow(0 7px 10px #0003)}.meme-close{position:absolute;right:-8px;top:-8px;border-radius:50%;width:30px;height:30px;padding:0;background:#5b1420;color:#ffe4ab;border:1px solid #e6bd76;font-size:22px}.meme-replay{background:#631b29;color:#fff;padding:7px;font-size:12px;width:100%;margin-top:6px}
.bouncing-meme{pointer-events:none}.meme-replay{pointer-events:auto}
