*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#03133c url('/mio-blue-bg.png') center top/cover fixed no-repeat;color:#edf6ff;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.7}body:before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#03133c22,#03133c88 35%,#020e2bf2 70%)}.app{max-width:560px;margin:auto;padding:calc(20px + env(safe-area-inset-top)) 18px calc(30px + env(safe-area-inset-bottom))}header{position:relative;text-align:center;text-shadow:0 2px 12px #003b9d}.brand{letter-spacing:.2em;font-weight:800;font-size:17px}.version{position:absolute;right:0;font-size:11px;padding:3px 8px;border:1px solid #ffffff45;border-radius:20px}header p{font-size:11px;letter-spacing:.14em;margin:4px 0}.hero{padding:185px 5px 35px;text-shadow:0 3px 15px #001946}.hero>span{font-size:11px;letter-spacing:.1em;background:#02204d8c;border:1px solid #8ddbff70;padding:5px 10px;border-radius:20px}h1{font-size:34px;line-height:1.4;letter-spacing:.04em;margin:18px 0 12px}.hero p{font-size:14px;color:#d9efff;margin:0}.glass{margin-bottom:18px;border:1px solid #a5dfff65;background:linear-gradient(145deg,#092d60ea,#061735f5);backdrop-filter:blur(14px);border-radius:24px;padding:22px;box-shadow:0 20px 50px #000b2d55}h2{font-size:19px;margin:0 0 12px}h3{font-size:18px;margin:8px 0}.events{display:grid;gap:16px}.events article{padding:20px;border-radius:18px;border:1px solid #91d4ff45;background:#06193599}.icon{font-size:30px;display:inline-block}.events p{font-size:13px;color:#d5e8f8;margin:5px 0 14px}.deadline{display:inline-block;color:#aeeeff;font-size:12px;border:1px solid #76cbff45;border-radius:20px;padding:3px 9px;margin-bottom:9px}.button,.secondary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;font:inherit;font-size:14px;font-weight:700;border:0;border-radius:12px;text-decoration:none;padding:13px 10px;cursor:pointer}.button{color:#07234b;background:linear-gradient(120deg,#e4faff,#75d8ff)}.button span{margin-left:auto}.secondary{background:#76c9ff14;color:#e2f4ff;border:1px solid #76c9ff60}.events small{display:block;color:#abc4df;font-size:11px;margin-top:10px}.muted{font-size:12px;color:#bcd0e4}.message{font-size:13px;color:#c8eeff;min-height:1.7em}.error{color:#ffd1ce}label{display:block;font-size:13px;margin:12px 0 7px}input[type=text],input:not([type]){display:block;width:100%;background:#04152e;color:#fff;border:1px solid #75c4fa;padding:14px;border-radius:12px;font:inherit;font-size:16px}.check{display:flex;align-items:center;gap:8px;margin:14px 0}.check input{width:18px;height:18px;accent-color:#77d1ff}button:disabled{opacity:.55;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:4px}.counts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.counts>div{padding:14px;border:1px solid #91d4ff45;background:#06193599;border-radius:12px;font-size:12px;color:#bcd0e4}.counts b{display:block;font-size:23px;color:white}.badge{display:inline-block;background:#fff0b1;color:#4a3800;border-radius:20px;font-size:12px;padding:4px 10px}footer{text-align:center;font-size:11px;color:#819cb9;padding:10px}footer a{color:#bdd9ef;margin-right:16px}[hidden]{display:none!important}@media(min-width:520px){.hero{padding-top:220px}.glass{padding:26px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.music-controls{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(110px,1fr);gap:12px;align-items:center;margin-top:16px}.music-controls .button{margin:0}.music-controls input[type=range]{width:100%}@media(max-width:520px){.music-controls{grid-template-columns:1fr}.music-controls label{margin-top:2px}}

/* メンシプガチャ */
.gacha-balance{font-weight:800;font-size:17px;color:#e9fbff;text-align:center}.gacha-stage{position:relative;overflow:hidden;min-height:240px;border-radius:22px;margin:14px 0 18px;padding:26px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,#2e8eff55 0 15%,transparent 45%),linear-gradient(180deg,#0b2f6a,#07162f);border:1px solid #91d4ff66;box-shadow:inset 0 0 40px #54bfff20}.gacha-stage.is-fest{background:radial-gradient(circle at 20% 0,#fff3a866 0 13%,transparent 34%),radial-gradient(circle at 80% 0,#ffd24f55 0 13%,transparent 34%),linear-gradient(180deg,#4d360b 0%,#17325f 46%,#050c20 100%);border-color:#ffe49aaa;box-shadow:inset 0 -35px 80px #ffd34c22,0 0 30px #ffd65a2e}.stage-lights{position:absolute;inset:-15% -20% auto;height:85%;pointer-events:none;background:conic-gradient(from 160deg at 50% 0,transparent 0 19%,#dffaff30 20% 24%,transparent 25% 38%,#ffe59130 39% 43%,transparent 44% 56%,#ffd8f030 57% 61%,transparent 62%);filter:blur(1px);opacity:.8}.gacha-stage.is-fest:after{content:"♬   ✦   ♫   ✦   ♬";position:absolute;bottom:12px;left:0;right:0;text-align:center;letter-spacing:.55em;color:#ffeeb5aa;font-size:18px}.gacha-stage #crystal{position:relative;z-index:2;text-align:center;font-size:76px;margin:4px;filter:drop-shadow(0 0 18px #88ddff)}.spinning{animation:crystal-spin .85s linear infinite}@keyframes crystal-spin{50%{transform:scale(1.16) rotateY(180deg);filter:drop-shadow(0 0 38px #fff)}to{transform:scale(1) rotateY(360deg)}}.draw-result-card{position:relative;z-index:3;width:min(100%,360px);text-align:center;padding:14px 16px;border-radius:18px;background:#03122ee8;border:1px solid #ffffff66;box-shadow:0 14px 35px #0008}.draw-result-card img{width:120px;height:120px;border-radius:18px;object-fit:cover;margin:0 auto 10px;display:block;border:1px solid #ffffff88}.draw-rarity{display:block;font-size:13px;font-weight:800;letter-spacing:.12em;color:#ffe690}.draw-prize-name{display:block;font-size:25px;line-height:1.35;margin:4px 0;color:#fff}.draw-ordinal{display:block;font-size:12px;color:#bcd9f2}.gacha-mode-grid{display:grid;gap:14px}.gacha-mode{padding:16px;border-radius:18px;border:1px solid #8ad6ff50;background:#041832a8}.gacha-mode h3{margin:2px 0}.fest-mode{position:relative;background:linear-gradient(145deg,#5a420dc7,#0a214ac7 70%);border-color:#ffe39b88;box-shadow:inset 0 0 28px #ffd65a16}.fest-badge{display:inline-block;font-size:10px;letter-spacing:.16em;font-weight:900;padding:3px 8px;border-radius:20px;background:#ffeaa7;color:#4b3300}.fest-button{background:linear-gradient(120deg,#fff5bf,#ffd25c 52%,#fff0a1);color:#4b3300;box-shadow:0 0 18px #ffd65a35}.prize-list{margin-top:8px}.catalog-status{font-size:12px;color:#c8dded;margin:4px 0 8px}.prize{display:flex;align-items:center;gap:10px;border-bottom:1px solid #ffffff24;padding:9px 2px;font-size:13px}.prize img{width:52px;height:52px;object-fit:cover;border-radius:11px}.prize strong,.history-item strong{display:block;color:#fff}.prize span,.history-item small{display:block;color:#b9cde3;font-size:11px}.draw-history{list-style:none;padding:0;margin:8px 0}.history-item{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #ffffff20}.history-item img{width:46px;height:46px;object-fit:cover;border-radius:10px}.fest-history{background:linear-gradient(90deg,#7d3db21c,transparent)}details{padding:10px 0}summary{cursor:pointer}#drawPanel button{margin:9px 0}@media(prefers-reduced-motion:reduce){.spinning{animation:none}}
/* v1.8.3 dedicated gacha page + persistent status details */
.counts div small{display:block;margin-top:.35rem;font-size:.72rem;font-weight:500;line-height:1.35;color:#b9d8ff}
#gachaPageLink{display:inline-flex;margin:.55rem 0 .8rem}
.back-link{display:block;color:#c9e7ff;text-decoration:none;font-size:.86rem;margin-bottom:.4rem}
.gacha-page header{padding-bottom:.65rem}
.gacha-page .draw-result-card{min-height:150px}
.gacha-page .draw-result-card:not([hidden]){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem}
.gacha-page .draw-result-card img{max-width:220px;max-height:220px;border-radius:18px;object-fit:contain;box-shadow:0 0 28px rgba(122,205,255,.4)}
.gacha-page .draw-prize-name{font-size:1.28rem;text-align:center}
.gacha-page .draw-rarity{font-weight:800;letter-spacing:.08em}

/* v1.8.4 派手なガチャ演出 */
.gacha-stage{isolation:isolate;transition:filter .25s ease,box-shadow .25s ease,transform .25s ease}.effect-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.gacha-stage.draw-active{animation:stage-throb .72s ease-in-out infinite;box-shadow:inset 0 0 65px #71ddff4f,0 0 42px #58caff66}.gacha-stage.draw-active .stage-lights{animation:beam-spin 1.15s linear infinite;opacity:1}.gacha-stage.draw-active #crystal{z-index:5;animation:crystal-ultra .62s linear infinite}.gacha-stage.reveal{animation:stage-impact .72s cubic-bezier(.2,.85,.25,1)}.gacha-stage.rarity-r{box-shadow:inset 0 0 70px #62ffb866,0 0 45px #51ffb566}.gacha-stage.rarity-sr{box-shadow:inset 0 0 80px #ffb94d77,0 0 60px #ff9c346f}.gacha-stage.rarity-ur{box-shadow:inset 0 0 95px #dc6dff8c,0 0 78px #9f5cff99;animation:stage-impact .6s cubic-bezier(.2,.85,.25,1),ur-rainbow 1.1s linear 2}.gacha-flash{position:absolute;z-index:8;inset:-30%;pointer-events:none;background:radial-gradient(circle,#fff 0 8%,#bff4ffdf 13%,#ffd864aa 24%,transparent 52%);animation:flash-burst .9s ease-out forwards}.gacha-ring{position:absolute;z-index:7;width:60px;height:60px;border:5px solid #fff;border-radius:50%;box-shadow:0 0 20px #fff,0 0 55px #66dfff;animation:ring-burst 1.15s ease-out forwards}.gacha-particle{position:absolute;z-index:9;left:var(--x);top:48%;font-style:normal;font-size:17px;color:#dff8ff;text-shadow:0 0 8px currentColor;pointer-events:none;animation:particle-burst var(--dur) cubic-bezier(.12,.7,.25,1) var(--delay) both}.gacha-particle.r{color:#75ffc9}.gacha-particle.sr{color:#ffd76a;font-size:21px}.gacha-particle.ur{color:#ff8cff;font-size:24px;filter:drop-shadow(0 0 7px #76e9ff)}.draw-result-card.result-pop{animation:result-pop .72s cubic-bezier(.16,1.25,.3,1)}.rarity-ur .draw-result-card{border-color:#ffb3ff;box-shadow:0 0 22px #ff8cff,0 0 55px #66dfff80;background:linear-gradient(145deg,#2b0c45f2,#071b47f2)}.rarity-sr .draw-result-card{border-color:#ffd974;box-shadow:0 0 30px #ffb23f88}.rarity-r .draw-result-card{border-color:#7affe0;box-shadow:0 0 24px #42ffc080}.rarity-ur .draw-rarity{font-size:18px;color:#fff;animation:rarity-glow .65s ease-in-out infinite alternate}.rarity-sr .draw-rarity{font-size:17px;color:#ffe17b}.gacha-stage.is-fest.draw-active:before{content:"LUCKY FESTIVAL";position:absolute;z-index:4;top:15px;left:50%;transform:translateX(-50%);font-size:13px;font-weight:900;letter-spacing:.2em;color:#fff3ad;text-shadow:0 0 8px #ffd55c,0 0 20px #ffb000;animation:festival-title .55s ease-in-out infinite alternate;white-space:nowrap}@keyframes stage-throb{50%{transform:scale(1.018);filter:brightness(1.25) saturate(1.25)}}@keyframes beam-spin{to{transform:rotate(360deg) scale(1.2)}}@keyframes crystal-ultra{0%{transform:scale(.92) rotate(-10deg);filter:drop-shadow(0 0 18px #6fdcff)}50%{transform:scale(1.28) rotate(12deg);filter:drop-shadow(0 0 48px #fff) drop-shadow(0 0 70px #64dfff)}100%{transform:scale(.92) rotate(-10deg)}}@keyframes stage-impact{0%{transform:scale(.94);filter:brightness(2.2)}38%{transform:scale(1.035)}100%{transform:scale(1);filter:brightness(1)}}@keyframes flash-burst{0%{opacity:0;transform:scale(.2)}15%{opacity:1}100%{opacity:0;transform:scale(2.2)}}@keyframes ring-burst{0%{opacity:1;transform:scale(.25)}100%{opacity:0;transform:scale(7)}}@keyframes particle-burst{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0)}18%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-210px) scale(1.3) rotate(420deg)}}@keyframes result-pop{0%{opacity:0;transform:scale(.45) rotate(-3deg)}55%{opacity:1;transform:scale(1.09) rotate(1deg)}100%{transform:scale(1)}}@keyframes ur-rainbow{0%{filter:hue-rotate(0deg) brightness(1.15)}100%{filter:hue-rotate(360deg) brightness(1.15)}}@keyframes rarity-glow{from{text-shadow:0 0 6px #fff,0 0 13px #ff66ff}to{text-shadow:0 0 14px #fff,0 0 28px #65eaff}}@keyframes festival-title{to{transform:translateX(-50%) scale(1.07);filter:brightness(1.3)}}
@media(prefers-reduced-motion:reduce){.gacha-stage.draw-active,.gacha-stage.draw-active .stage-lights,.gacha-stage.draw-active #crystal,.gacha-stage.reveal,.gacha-particle,.gacha-flash,.gacha-ring,.draw-result-card.result-pop,.rarity-ur .draw-rarity,.gacha-stage.is-fest.draw-active:before{animation:none!important}}

/* v1.8.4b 追加演出 */
.gacha-stage.draw-active{background-size:140% 140%;animation:stage-throb .72s ease-in-out infinite,stage-pan 1.8s ease-in-out infinite alternate}
.gacha-stage.draw-active:after{filter:drop-shadow(0 0 8px currentColor)}
.gacha-stage.reveal{animation:stage-impact .72s cubic-bezier(.2,.85,.25,1),screen-shake .38s linear 1}
.gacha-stage.rarity-sr.reveal{animation:stage-impact .72s cubic-bezier(.2,.85,.25,1),screen-shake .38s linear 2}
.gacha-stage.rarity-ur.reveal{animation:stage-impact .6s cubic-bezier(.2,.85,.25,1),screen-shake .3s linear 3,ur-rainbow 1.1s linear 2}
@keyframes stage-pan{from{background-position:45% 35%,center}to{background-position:58% 15%,center}}
@keyframes screen-shake{0%,100%{transform:translate(0) scale(1)}20%{transform:translate(-5px,2px) scale(1.01)}40%{transform:translate(5px,-2px) scale(1.015)}60%{transform:translate(-3px,-1px) scale(1.01)}80%{transform:translate(3px,2px) scale(1.005)}}

/* 上の皆勤賞カードは表示専用。下の入力フォームには触れない */
.events article:nth-child(3){position:relative;overflow:hidden;isolation:isolate;border-color:#9feaff88;background:radial-gradient(circle at 18% 20%,#7ce7ff2b,transparent 30%),radial-gradient(circle at 82% 22%,#fff4a62b,transparent 28%),linear-gradient(145deg,#0a3067e8,#07183cec);box-shadow:inset 0 0 34px #80e8ff24,0 0 22px #79ddff25}
.events article:nth-child(3)::before{content:"💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳";position:absolute;inset:-18px -28px;z-index:0;pointer-events:none;font-size:25px;line-height:2.05;word-spacing:12px;letter-spacing:5px;opacity:.28;transform:rotate(-8deg) scale(1.12);filter:drop-shadow(0 0 8px #8de8ff);animation:attendance-jewel-float 4.5s ease-in-out infinite alternate}
.events article:nth-child(3)::after{content:"💎 🐳 💎 🐳 💎 🐳 💎 🐳";position:absolute;right:6px;top:8px;z-index:0;pointer-events:none;font-size:19px;letter-spacing:5px;opacity:.72;text-shadow:0 0 8px #fff,0 0 16px #78ddff;animation:attendance-jewel-glow 1.4s ease-in-out infinite alternate}
.events article:nth-child(3)>*{position:relative;z-index:1}
.events article:nth-child(3) .secondary{pointer-events:none;cursor:default;font-size:0;background:linear-gradient(120deg,#8fe8ff26,#fff1a51d,#8fe8ff26);border-color:#c7f4ff88;box-shadow:inset 0 0 15px #9deaff24,0 0 16px #8fe9ff24}
.events article:nth-child(3) .secondary::after{content:"💎 🐳 💎 🐳 💎 🐳 💎 🐳 💎 🐳";font-size:18px;color:#effbff;text-shadow:0 0 8px #8eeaff;letter-spacing:4px}
.events article:nth-child(3)>p{font-size:0;margin:8px 0 14px}
.events article:nth-child(3)>p::after{content:"入力は下にスクロール ↓";display:block;font-size:14px;font-weight:800;color:#f4fbff;text-align:center;letter-spacing:.04em;text-shadow:0 0 8px #80ddff,0 0 16px #5bc8ff}
@keyframes attendance-jewel-float{from{transform:rotate(-8deg) translateY(-4px) scale(1.12)}to{transform:rotate(-6deg) translateY(7px) scale(1.15)}}
@keyframes attendance-jewel-glow{from{opacity:.45;filter:brightness(.9)}to{opacity:.95;filter:brightness(1.35)}}
@media(prefers-reduced-motion:reduce){.events article:nth-child(3)::before,.events article:nth-child(3)::after{animation:none!important}}
