*{box-sizing:border-box;margin:0;padding:0}:root{--color-red:#c0392b;--color-red-light:#e74c3c;--color-green:#1a7a3c;--color-green-light:#27ae60;--color-gold:#d4ac0d;--color-gold-light:#f1c40f;--color-cream:#fdf6e3;--color-dark:#1a1a2e;--color-snow:#f0f4f8;--font-main:"Noto Sans JP", sans-serif;--border-radius:12px;--border-radius-lg:20px;--shadow:0 4px 20px #00000026;--shadow-lg:0 8px 40px #00000040}html,body{height:100dvh;overflow:hidden}body{font-family:var(--font-main);background:var(--color-dark);color:#fff;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}#root{flex-direction:column;height:100dvh;display:flex}.page{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.btn{font-family:var(--font-main);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50px;justify-content:center;align-items:center;gap:8px;padding:14px 28px;font-size:16px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg, var(--color-red-light), var(--color-red));color:#fff;box-shadow:0 4px 15px #c0392b66}.btn-primary:active{box-shadow:0 2px 8px #c0392b4d}.btn-gold{background:linear-gradient(135deg, var(--color-gold-light), var(--color-gold));color:#fff;box-shadow:0 4px 15px #d4ac0d66}.btn-green{background:linear-gradient(135deg, var(--color-green-light), var(--color-green));color:#fff;box-shadow:0 4px 15px #1a7a3c66}.btn-outline{color:#fff;background:0 0;border:2px solid #ffffff80}@keyframes snowfall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:.3;transform:translateY(100vh)rotate(360deg)}}.snowflake{pointer-events:none;z-index:0;color:#fffc;font-size:14px;animation:linear infinite snowfall;position:fixed;top:-10px}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)rotate(0)}50%{opacity:1;transform:scale(1)rotate(180deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px #f1c40f4d}50%{box-shadow:0 0 25px #f1c40fcc,0 0 40px #f1c40f66}}@keyframes bounce-in{0%{opacity:0;transform:scale(0)rotate(-10deg)}60%{opacity:1;transform:scale(1.2)rotate(5deg)}80%{transform:scale(.9)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@keyframes ripple{0%{opacity:.8;transform:scale(0)}to{opacity:0;transform:scale(4)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes spin-grow{0%{opacity:0;transform:scale(0)rotate(-180deg)}60%{opacity:1;transform:scale(1.15)rotate(15deg)}80%{transform:scale(.92)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes flash-white{0%{opacity:0}30%{opacity:.6}to{opacity:0}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px 2px #ffdc3266}50%{box-shadow:0 0 22px 8px #ffdc32d9,0 0 40px 12px #ffb4004d}}@keyframes flip-in{0%{opacity:0;transform:rotateY(-90deg)scale(.8)}60%{opacity:1;transform:rotateY(10deg)scale(1.05)}to{opacity:1;transform:rotateY(0)scale(1)}}@keyframes hint-slide-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes progress-ring{0%{stroke-dashoffset:220px}}@keyframes hint-timer{0%{width:100%}to{width:0%}}@keyframes page-slide-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.page-enter{animation:.25s both page-slide-in}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.snow-spinner{font-size:32px;animation:1.5s linear infinite spin;display:inline-block}@keyframes trumpet-in{0%{opacity:0;transform:scale(0)rotate(-20deg)}50%{opacity:1;transform:scale(1.3)rotate(8deg)}75%{transform:scale(.9)rotate(-3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.scrollable{-webkit-overflow-scrolling:touch;overflow-y:auto}.overlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--border-radius-lg);width:100%;max-width:340px;color:var(--color-dark);box-shadow:var(--shadow-lg);background:#fff;padding:24px;animation:.4s bounce-in}
