*,:after,:before{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary:#13111A;--bg-secondary:#1a1721;--accent:#913FE2;--accent-glow:rgba(145, 63, 226, .4);--text-primary:#ffffff;--text-secondary:#9ca3af}html{height:100%}body{font-family:Noto Sans JP,sans-serif;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;align-items:center;position:relative;min-height:100vh;overflow-y:auto}.bg-slashes{position:fixed;inset:0;overflow:hidden;opacity:.03;pointer-events:none}.bg-slashes:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:repeating-linear-gradient(-45deg,transparent,transparent 40px,var(--text-primary) 40px,var(--text-primary) 42px)}.scanline{position:fixed;inset:0;background:linear-gradient(to bottom,transparent 0,rgba(145,63,226,.03) 50%,transparent 100%);height:200px;animation:scanline 4s ease-in-out infinite;pointer-events:none}@keyframes scanline{0%,to{transform:translateY(-200px)}50%{transform:translateY(100vh)}}.particles{position:fixed;inset:0;overflow:hidden;pointer-events:none}.particle{position:absolute;width:2px;height:2px;background:var(--accent);border-radius:50%;opacity:0;animation:float 8s ease-in-out infinite}.particle:nth-child(1){left:10%;animation-delay:0s}.particle:nth-child(2){left:20%;animation-delay:1s}.particle:nth-child(3){left:30%;animation-delay:2s}.particle:nth-child(4){left:40%;animation-delay:3s}.particle:nth-child(5){left:50%;animation-delay:4s}.particle:nth-child(6){left:60%;animation-delay:5s}.particle:nth-child(7){left:70%;animation-delay:6s}.particle:nth-child(8){left:80%;animation-delay:7s}.particle:nth-child(9){left:90%;animation-delay:.5s}.particle:nth-child(10){left:15%;animation-delay:2.5s}.particle:nth-child(11){left:45%;animation-delay:4.5s}.particle:nth-child(12){left:75%;animation-delay:6.5s}@keyframes float{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(-100px) scale(1);opacity:0}}.corner{position:fixed;width:60px;height:60px;border:2px solid rgba(145,63,226,.15);z-index:5}.corner-tl{top:20px;left:20px;border-right:none;border-bottom:none}.corner-tr{top:20px;right:20px;border-left:none;border-bottom:none}.corner-bl{bottom:20px;left:20px;border-right:none;border-top:none}.corner-br{bottom:20px;right:20px;border-left:none;border-top:none}.content{position:relative;z-index:10;text-align:center;padding:4vh 2rem 2rem;max-width:480px;width:100%}.logo{margin-bottom:1.5rem;position:relative}.logo-img-wrapper{position:relative;width:90px;height:90px;margin:0 auto .75rem}.logo-circle{position:absolute;inset:0;border:2px solid rgba(145,63,226,.5);border-radius:50%;background:#913fe21a}.logo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:10px;z-index:1}.logo-text{font-family:Bebas Neue,sans-serif;font-size:clamp(1.5rem,5vw,2rem);letter-spacing:.15em;background:linear-gradient(135deg,#a855f7,#7c3aed,#913fe2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-glow{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;background:radial-gradient(ellipse,var(--accent-glow) 0,transparent 70%);filter:blur(40px);animation:pulse-glow 3s ease-in-out infinite;z-index:-1}@keyframes pulse-glow{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.2)}}.heading h1{font-family:Bebas Neue,sans-serif;font-size:3.5rem;line-height:.9;letter-spacing:.05em;text-transform:uppercase}.heading h1 .line-1{color:var(--text-primary);display:block}.heading h1 .line-2{color:var(--accent);text-shadow:0 0 40px var(--accent-glow);display:block}.divider{width:80px;height:3px;background:linear-gradient(90deg,transparent,var(--accent),transparent);margin:1.5rem auto;position:relative}.divider:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background:var(--accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.subtitle{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:2rem}.premium-badge{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#913fe233,#7c3aed33);border:1px solid rgba(145,63,226,.3);padding:.5rem 1.25rem;border-radius:999px;margin-bottom:2rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#c084fc}.premium-badge svg{width:16px;height:16px;fill:#c084fc}.login-card{background:#ffffff08;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:2rem;text-align:left;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d inset}.alert-box{display:none;padding:1rem 1.25rem;border-radius:12px;font-size:.875rem;line-height:1.6;margin-bottom:1.5rem;align-items:flex-start;gap:.75rem}.alert-box.error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#fca5a5}.alert-box.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#fcd34d}.alert-box.visible{display:flex}.alert-box svg{width:20px;height:20px;flex-shrink:0;margin-top:2px}.alert-box a{color:#c084fc;text-decoration:underline;text-underline-offset:2px}.alert-box a:hover{color:#a855f7}.input-group{margin-bottom:1.25rem}.input-group label{display:block;font-size:.8125rem;font-weight:500;color:#fff9;margin-bottom:.5rem}.input-wrapper{position:relative}.input-wrapper svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#ffffff40;pointer-events:none}.input-field{width:100%;background:#ffffff0a;color:#fff;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:.875rem 1rem .875rem 2.75rem;font-size:16px;font-family:inherit;outline:0;transition:all .3s ease}.input-field::placeholder{color:#ffffff40}.input-field:focus{border-color:#913fe280;box-shadow:0 0 0 3px #913fe21a;background:#ffffff0f}.submit-btn{width:100%;position:relative;overflow:hidden;background:linear-gradient(135deg,#913fe2,#7c3aed);color:#fff;font-weight:600;font-size:.9375rem;font-family:inherit;padding:.875rem;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #913fe240;margin-top:.5rem}.submit-btn:hover{box-shadow:0 6px 25px #913fe259;transform:translateY(-1px)}.submit-btn:active{transform:translateY(0)}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.submit-btn .spinner{display:none;width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.submit-btn.loading .btn-label{display:none}.submit-btn.loading .spinner{display:block}.or-divider{display:flex;align-items:center;gap:1rem;margin:.75rem 0}.or-divider span{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:#ffffff40}.or-divider:after,.or-divider:before{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.875rem;background:#fff;color:#374151;font-weight:500;font-size:.9375rem;font-family:inherit;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;text-decoration:none}.google-btn:hover{background:#f3f4f6;transform:translateY(-1px)}.google-btn:active{transform:translateY(0)}.hidden{display:none!important}.toggle-text{text-align:center;color:#ffffff60;font-size:.8125rem;margin-top:1rem}.toggle-link{background:0 0;border:none;color:#c084fc;cursor:pointer;font-size:.8125rem;font-family:inherit;padding:0;text-decoration:none;font-weight:500;transition:color .2s}.toggle-link:hover{color:#a855f7}.terms-group{margin-bottom:1.25rem}.terms-label{display:flex;align-items:flex-start;gap:.625rem;cursor:pointer;font-size:.8125rem;color:#ffffff80;line-height:1.5}.terms-label input[type=checkbox]{display:none}.terms-label .checkmark{flex-shrink:0;width:18px;height:18px;border-radius:5px;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;position:relative;transition:all .2s;margin-top:1px}.terms-label input[type=checkbox]:checked+.checkmark{background:#913fe2;border-color:#913fe2}.terms-label input[type=checkbox]:checked+.checkmark:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.terms-label .terms-text a{color:#c084fc;text-decoration:none;transition:color .2s}.terms-label .terms-text a:hover{color:#a855f7}.not-premium-view{text-align:center}.not-premium-view .lock-icon{width:64px;height:64px;margin:0 auto 1.5rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:50%;display:flex;align-items:center;justify-content:center}.not-premium-view .lock-icon svg{width:28px;height:28px;color:#f87171}.not-premium-view h2{font-family:Bebas Neue,sans-serif;font-size:1.75rem;letter-spacing:.05em;color:#f87171;margin-bottom:1rem}.not-premium-view p{color:var(--text-secondary);font-size:.9rem;line-height:1.7;margin-bottom:1.5rem}.not-premium-view a.subscribe-link{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:linear-gradient(135deg,#913fe2,#7c3aed);color:#fff;font-weight:600;font-size:1rem;padding:1.25rem 2rem;border-radius:12px;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 15px #913fe240;box-sizing:border-box}.not-premium-view a.subscribe-link:hover{box-shadow:0 6px 25px #913fe259;transform:translateY(-1px)}.not-premium-view .try-again-btn{display:block;width:100%;margin-top:.75rem;padding:.875rem 1.5rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text-secondary);font-size:.875rem;font-family:inherit;cursor:pointer;transition:all .2s ease;box-sizing:border-box}.not-premium-view .try-again-btn:hover{background:#ffffff1a;color:#fff}.footer{text-align:center;padding:2rem 0 1.5rem;font-size:.75rem;color:var(--text-secondary);opacity:.5;letter-spacing:.05em}@media(min-width:768px){.logo{margin-bottom:.75rem}.logo-img-wrapper{width:70px;height:70px;margin-bottom:.5rem}.logo-circle{width:70px;height:70px}.heading h1{font-size:3.5rem}.divider{margin:1rem auto}.premium-badge{margin-bottom:1rem}.subtitle{margin-bottom:1.25rem;font-size:.875rem}.not-premium-view .lock-icon{width:50px;height:50px;margin-bottom:1rem}.not-premium-view .lock-icon svg{width:24px;height:24px}.not-premium-view h2{font-size:1.5rem;margin-bottom:.75rem}.not-premium-view p{margin-bottom:1.25rem}.footer{padding:1.25rem 0 1rem}}@media(max-width:480px){.corner{width:40px;height:40px}.content{padding:1rem 1rem}.logo{margin-bottom:.75rem}.logo-circle,.logo-img-wrapper{width:70px;height:70px}.logo-img{width:70px}.logo-text{font-size:1.25rem}.heading h1{font-size:3.5rem}.divider{width:60px;margin:.75rem auto}.premium-badge{font-size:.7rem;padding:.4rem 1rem;margin-bottom:.75rem}.subtitle{font-size:.85rem;margin-bottom:1rem}.login-card{padding:1.5rem}}@media(max-width:400px){.content{padding:1.25rem .75rem}.login-card{padding:1.25rem}.logo{margin-bottom:1rem}.logo-circle,.logo-img-wrapper{width:70px;height:70px}.logo-img{width:70px}.logo-text{font-size:1.25rem}.heading h1{font-size:3.5rem}.divider{width:60px;margin-bottom:1rem}.premium-badge{font-size:.7rem;padding:.4rem 1rem;margin-bottom:1rem}.subtitle{font-size:.8rem;margin-bottom:1.25rem}.not-premium-view .lock-icon{width:50px;height:50px;margin-bottom:1rem}.not-premium-view .lock-icon svg{width:22px;height:22px}.not-premium-view h2{font-size:1.4rem;margin-bottom:.75rem}.not-premium-view p{font-size:.8rem;margin-bottom:1rem}.not-premium-view a.subscribe-link{font-size:.875rem;padding:1rem 1.5rem}.not-premium-view .try-again-btn{font-size:.8rem;padding:.75rem 1rem}.footer{padding:1.25rem 0 1rem;font-size:.65rem}}@media(max-width:360px){.content{padding:1rem .5rem}.login-card{padding:1rem}.logo-circle,.logo-img-wrapper{width:60px;height:60px}.logo-img{width:60px}.logo-text{font-size:1.1rem}.heading{margin-bottom:.75rem}.heading h1{font-size:3rem}.premium-badge{font-size:.65rem;padding:.35rem .75rem}.subtitle{font-size:.75rem;line-height:1.5}.not-premium-view h2{font-size:1.25rem}.not-premium-view p{font-size:.75rem;line-height:1.5}.not-premium-view a.subscribe-link{font-size:.8125rem;padding:.875rem 1rem}}
