@import url('https://fonts.googleapis.com/css2?family=Mali:wght@400;500;700&family=Itim&display=swap');
:root{--bg1:#fff7fb;--bg2:#eef8ff;--card:#ffffffcc;--ink:#4b3d4f;--muted:#7b7180;--primary:#ff86b8;--primary2:#8ed8ff;--accent:#ffd166;--ok:#7bd88f;--danger:#ff6b6b;--shadow:0 18px 45px #9b7aa633;--radius:24px;}
:root[data-theme='mint']{--bg1:#effff8;--bg2:#eaf7ff;--primary:#60d6a7;--primary2:#79c7ff;--accent:#ffe08a;}
:root[data-theme='lavender']{--bg1:#fbf3ff;--bg2:#f0f4ff;--primary:#b69cff;--primary2:#ff9dcd;--accent:#ffe28a;}
:root[data-theme='cream']{--bg1:#fff9ed;--bg2:#fff2f7;--primary:#f6a86d;--primary2:#ffbed4;--accent:#ffe58a;}
*{box-sizing:border-box} body{margin:0;min-height:100vh;font-family:'Mali','Itim',cursive;color:var(--ink);background:radial-gradient(circle at top left,var(--bg2),transparent 35%),linear-gradient(135deg,var(--bg1),var(--bg2));overflow-x:hidden}.wrap{width:min(1120px,96vw);margin:auto;padding:14px}.hero{min-height:100vh;display:grid;place-items:center}.panel{background:var(--card);backdrop-filter:blur(14px);border:1px solid #fff;box-shadow:var(--shadow);border-radius:var(--radius);padding:20px}.compact{max-height:96vh;overflow:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.brand{display:flex;align-items:center;gap:10px}.logo{width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--primary2));display:grid;place-items:center;font-size:28px;box-shadow:0 10px 24px #0001}.site-title,h1,h2,h3{margin:.2rem 0}.site-title{font-size:clamp(30px,5vw,54px);font-weight:700}.site-subtitle{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn,button{border:0;border-radius:18px;padding:12px 16px;font-family:inherit;font-weight:700;cursor:pointer;background:linear-gradient(135deg,var(--primary),var(--primary2));color:white;box-shadow:0 8px 18px #0001;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.secondary,button.secondary{background:#fff;color:var(--ink);border:1px solid #eadfeb}.btn.danger,button.danger{background:linear-gradient(135deg,#ff8585,#ffb0b0)}button:disabled{opacity:.55;cursor:not-allowed}input,textarea,select{width:100%;border:1px solid #eadfeb;border-radius:16px;padding:12px 14px;font:inherit;background:#fff;color:var(--ink)}textarea{min-height:150px;resize:vertical}.small{font-size:13px;color:var(--muted)}.hidden{display:none!important}.card{background:#fff;border:1px solid #f1e8f1;border-radius:20px;padding:14px;box-shadow:0 8px 24px #0000000d}.list{display:grid;gap:10px}.pill{border-radius:999px;padding:6px 10px;background:#fff2f8;color:#a34871;font-weight:700;font-size:13px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.tab{background:#fff;color:var(--ink)}.tab.active{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#3c3141;color:#fff;padding:12px 18px;border-radius:999px;z-index:99;box-shadow:var(--shadow)}
.bingo{display:grid;gap:8px;margin:auto;max-width:min(74vh,560px)}.bingo.size3{grid-template-columns:repeat(3,1fr)}.bingo.size4{grid-template-columns:repeat(4,1fr)}.bingo.size5{grid-template-columns:repeat(5,1fr)}.cell{aspect-ratio:1/1;border-radius:18px;border:2px solid #fff;background:linear-gradient(145deg,#fff,#fff6fb);box-shadow:0 8px 18px #0001;display:grid;place-items:center;text-align:center;padding:8px;font-weight:700;cursor:pointer;transition:.18s;overflow:hidden}.cell.marked{background:linear-gradient(135deg,var(--accent),var(--ok));transform:scale(.96);color:#4b3d4f}.winner{font-size:28px;text-align:center;padding:12px;background:#fff7d6;border-radius:20px;margin:10px 0}.gachaBox{height:min(46vh,390px);border-radius:32px;background:linear-gradient(180deg,#fff,#fff5fb);border:3px solid #fff;box-shadow:inset 0 -10px 30px #ffc5dc55,var(--shadow);display:grid;place-items:center;position:relative;overflow:hidden}.gachaBox:before,.gachaBox:after{content:'✨';position:absolute;font-size:34px;animation:float 2.4s infinite ease-in-out}.gachaBox:before{left:12%;top:18%}.gachaBox:after{right:12%;bottom:18%;animation-delay:.7s}.capsule{width:min(260px,58vw);height:min(260px,58vw);border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff 0 8%,transparent 9%),linear-gradient(135deg,var(--primary) 0 50%,var(--primary2) 51%);display:grid;place-items:center;color:#fff;font-size:clamp(24px,5vw,44px);font-weight:700;text-align:center;padding:24px;box-shadow:0 20px 45px #0002;animation:bounce 1.8s infinite}.capsule.spin{animation:spin .7s linear infinite}.confetti{position:fixed;inset:0;pointer-events:none;z-index:50}.qr{background:#fff;padding:8px;border-radius:12px;display:inline-block}.settings-preview{min-height:130px;background:linear-gradient(135deg,var(--primary),var(--primary2));border-radius:22px;color:#fff;padding:18px}.footerNav{position:fixed;right:12px;bottom:12px;display:flex;gap:8px;z-index:20}.music{border-radius:999px;width:46px;height:46px;padding:0}.twoCols{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}@media(max-width:800px){.twoCols{grid-template-columns:1fr}.topbar{align-items:flex-start}.hideMobile{display:none}.panel{padding:14px}.wrap{padding:8px}.gachaBox{height:340px}.site-title{font-size:34px}}@keyframes bounce{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes spin{to{transform:rotate(360deg) scale(1.02)}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}

/* V4 cute compact update */
body:before{content:'🌸 ✨ 🧸 🎀 🌼';position:fixed;left:2vw;top:1vh;font-size:28px;opacity:.18;letter-spacing:18px;pointer-events:none}body:after{content:'☁️ 💖 ⭐ 🍬';position:fixed;right:2vw;bottom:2vh;font-size:30px;opacity:.16;letter-spacing:16px;pointer-events:none}.page-fit{min-height:100vh;display:flex;flex-direction:column}.player-wrap{max-width:920px}.join-card{max-width:520px;margin:8vh auto;text-align:center}.game-card{max-width:min(92vw,760px);margin:auto}.center{text-align:center}.draw-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,#fff7d6,#fff2fb);border:2px dashed #ffd1e3;border-radius:22px;padding:10px 16px;margin-bottom:12px}.draw-banner b{font-size:clamp(24px,5vw,42px);color:#d94c8b}.bingo{gap:clamp(5px,1.1vw,10px);max-width:min(82vh,660px)}.cell{font-size:clamp(12px,2.25vw,22px);line-height:1.18;word-break:break-word;hyphens:auto;position:relative}.cell span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cell:before{content:'';position:absolute;inset:5px;border:1px dashed #ffd6e8;border-radius:14px;pointer-events:none}.cell.marked:after{content:'✓';position:absolute;right:7px;top:4px;background:#fff;border-radius:99px;width:22px;height:22px;display:grid;place-items:center;color:#44a55c}.history-details{margin-top:10px}.draw-layout{display:grid;grid-template-columns:minmax(300px,1.05fr) minmax(260px,.95fr);gap:14px;align-items:stretch}.gachaMachine{margin-top:12px;border-radius:34px;background:linear-gradient(180deg,#ff9ac8,#ffd1e4 55%,#fff);border:4px solid #fff;box-shadow:var(--shadow);padding:14px;min-height:min(70vh,540px);display:flex;flex-direction:column;justify-content:space-between}.machineTop,.machineBase{text-align:center;font-weight:700;color:#fff;text-shadow:0 2px 6px #0002;letter-spacing:1px}.machineTop{font-size:clamp(20px,4vw,34px);background:#ffffff55;border-radius:22px;padding:10px}.gachaWindow{flex:1;margin:14px 0;border-radius:32px;background:radial-gradient(circle,#fff 0 34%,#fff4fb 35% 100%);display:grid;place-items:center;box-shadow:inset 0 0 24px #d94c8b22}.machineBase{color:#9d4770;background:#fff;border-radius:22px;padding:12px}.history-panel{max-height:82vh}.draw-history{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.draw-chip{display:inline-flex;background:#fff2f8;border:1px solid #ffd6e8;border-radius:999px;padding:8px 12px;font-weight:700;color:#a34871}.cute-create{position:relative;overflow:hidden}.cute-create:before{content:'📝';position:absolute;right:18px;top:10px;font-size:46px;opacity:.2}.activity-card{border:2px solid #fff;background:linear-gradient(135deg,#fff,#fff7fc)}@media(max-width:800px){.draw-layout{grid-template-columns:1fr}.gachaMachine{min-height:440px}.join-card{margin:4vh auto}.cell{border-radius:14px;padding:5px}.cell:before{inset:3px;border-radius:11px}.bingo{max-width:96vw}.topbar{position:sticky;top:0;z-index:10;background:linear-gradient(135deg,var(--bg1),var(--bg2));border-radius:0 0 22px 22px;padding:6px}.site-title{font-size:28px}.row .btn,.row button{padding:10px 12px}}

/* V5 player bingo card improvements */
.bingo { width:min(94vw, 620px); margin:14px auto; display:grid; gap:8px; }
.bingo.size3{grid-template-columns:repeat(3,1fr)}
.bingo.size4{grid-template-columns:repeat(4,1fr)}
.bingo.size5{grid-template-columns:repeat(5,1fr)}
.cell{min-height:clamp(70px,12vh,105px); border:2px solid rgba(255,137,177,.45); border-radius:18px; background:linear-gradient(145deg,#fff9fd,#fff0f7); box-shadow:0 8px 18px rgba(255,137,177,.16); font-family:inherit; color:#68415c; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:7px; cursor:pointer; transition:.18s; overflow:hidden;}
.cell span{font-weight:800; line-height:1.15; font-size:clamp(.76rem,2.1vw,1rem); word-break:break-word;}
.cell small{font-size:clamp(.52rem,1.5vw,.68rem); opacity:.68; margin-top:4px;}
.cell.locked{opacity:.82; filter:saturate(.88)}
.cell.callable{background:linear-gradient(145deg,#fff7bf,#ffe9f3); border-color:#ffb3cf; animation:softGlow 1.4s infinite alternate;}
.cell.marked{background:linear-gradient(145deg,#baf7d0,#fff4b8); border-color:#63d88b; transform:scale(.98);}
.cell.marked span::before{content:'✓ ';}
@keyframes softGlow{from{box-shadow:0 8px 18px rgba(255,137,177,.16)}to{box-shadow:0 10px 26px rgba(255,186,88,.35)}}
@media (max-width:520px){.bingo{gap:5px}.cell{border-radius:13px;min-height:68px;padding:4px}.cell small{display:none}}

/* V6 cute theme + activity selection stability update */
:root[data-theme='sakura']{--bg1:#fff3fa;--bg2:#eaf8ff;--primary:#ff7eb3;--primary2:#8fd7ff;--accent:#ffe07a;--card:#ffffffdd;--ink:#5a3d55;}
:root[data-theme='star']{--bg1:#fff9d9;--bg2:#ffeefa;--primary:#ffb84d;--primary2:#ff8dc7;--accent:#b9f6ff;--card:#ffffffdf;--ink:#594531;}
:root[data-theme='ocean']{--bg1:#edfaff;--bg2:#eafff7;--primary:#62c8ff;--primary2:#67dfc1;--accent:#ffe898;--card:#ffffffdf;--ink:#335060;}
:root[data-theme='peach']{--bg1:#fff0e8;--bg2:#fff6cf;--primary:#ff9a76;--primary2:#ffb7d5;--accent:#d5ffb8;--card:#ffffffdf;--ink:#654133;}
body{background:
 radial-gradient(circle at 15% 10%, color-mix(in srgb,var(--primary2) 35%,transparent), transparent 24%),
 radial-gradient(circle at 88% 18%, color-mix(in srgb,var(--primary) 28%,transparent), transparent 22%),
 radial-gradient(circle at 30% 90%, color-mix(in srgb,var(--accent) 28%,transparent), transparent 24%),
 linear-gradient(135deg,var(--bg1),var(--bg2));}
body:before{content:'🌸 🐰 ✨ 🎀 ☁️ 🍭 🧸 ⭐';position:fixed;left:0;top:0;width:100%;height:100%;font-size:30px;opacity:.11;letter-spacing:28px;line-height:72px;word-spacing:18px;padding:18px;pointer-events:none;z-index:-1;filter:saturate(1.1)}
:root[data-theme='mint'] body:before{content:'🌿 🐻 ☁️ ✨ 🍀 💚 ⭐'}
:root[data-theme='lavender'] body:before{content:'💜 🦄 ⭐ ☁️ ✨ 🎀 🌙'}
:root[data-theme='cream'] body:before{content:'🍪 🧸 ☁️ 🍯 ✨ 🌼'}
:root[data-theme='star'] body:before{content:'⭐ 🍬 🌈 ✨ 🐥 💫'}
:root[data-theme='ocean'] body:before{content:'🐻‍❄️ 🫧 🐳 ⭐ ☁️ 💙'}
:root[data-theme='peach'] body:before{content:'🍑 🐱 🌼 ✨ 🎀 ☁️'}
.panel,.card{border:2px solid rgba(255,255,255,.86);box-shadow:0 16px 42px rgba(170,110,150,.18), inset 0 0 0 1px rgba(255,255,255,.45)}
.panel{position:relative;overflow:hidden}.panel:after{content:'✦';position:absolute;right:18px;top:12px;color:var(--primary);opacity:.22;font-size:34px;pointer-events:none}.card:hover{transform:translateY(-1px);transition:.18s}
.logo{position:relative}.logo:after{content:'♡';position:absolute;right:-4px;top:-7px;background:#fff;border-radius:50%;width:22px;height:22px;font-size:13px;display:grid;place-items:center;color:var(--primary);box-shadow:0 5px 10px #0001}
button,.btn{position:relative;overflow:hidden}button:before,.btn:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 0 35%,rgba(255,255,255,.36) 45%,transparent 60%);transform:translateX(-120%)}button:hover:before,.btn:hover:before{animation:shine .75s ease}
@keyframes shine{to{transform:translateX(120%)}}
.activity-card h3:before{content:'🎀 ';}.draw-chip:before{content:'🍬 ';}.bingo{background:rgba(255,255,255,.45);border:3px solid #fff;border-radius:26px;padding:10px;box-shadow:var(--shadow)}.cell{background:linear-gradient(145deg,#fff,#fff6fb 55%,#fff0f8);border-style:solid}.cell:nth-child(odd){background:linear-gradient(145deg,#fff,#f2fbff 55%,#fff7fb)}.cell span:after{content:' ✨';font-size:.72em;opacity:.45}.cell.locked span:after{content:' ☁️';}.cell.callable span:after{content:' 🌟';opacity:.75}.winner{border:3px solid #fff;box-shadow:var(--shadow);animation:winnerPop 1.2s infinite alternate}@keyframes winnerPop{to{transform:scale(1.02)}}
.gachaMachine{position:relative;overflow:hidden}.gachaMachine:before{content:'🐰';position:absolute;left:16px;bottom:14px;font-size:42px;opacity:.38}.gachaMachine:after{content:'🧸';position:absolute;right:16px;bottom:14px;font-size:42px;opacity:.38}.gachaWindow{border:3px dashed rgba(255,126,179,.32)}.capsule{border:7px solid rgba(255,255,255,.76)}
select#activitySelect{font-weight:800;border:2px solid color-mix(in srgb,var(--primary) 30%,#fff);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ctext y='15'%3E🎀%3C/text%3E%3C/svg%3E") no-repeat 12px center;padding-left:42px}
@media(max-width:800px){body:before{font-size:24px;line-height:58px;letter-spacing:18px}.panel:after{display:none}.bingo{padding:6px;border-radius:18px}}
