.landing-page{background:radial-gradient(1200px 700px at 12% -8%, #1b5e7b40, transparent 60%), radial-gradient(900px 520px at 88% 6%, #27ae6026, transparent 64%), linear-gradient(153deg, var(--shu-bg-900) 0%, var(--shu-bg-700) 58%, var(--shu-bg-800) 100%);justify-content:center;align-items:center;min-height:100vh;padding:clamp(16px,4vw,36px);font-family:Noto Sans KR,sans-serif;display:flex}.landing-shell{border:1px solid var(--shu-border);border-radius:var(--shu-radius);background:linear-gradient(165deg, var(--shu-bg-glass-strong), #111827cc);-webkit-backdrop-filter:blur(20px)saturate(130%);backdrop-filter:blur(20px)saturate(130%);width:100%;max-width:560px;box-shadow:var(--shu-shadow-lg);padding:clamp(24px,5vw,40px)}.landing-hero{text-align:center;margin-bottom:28px}.landing-badge{border-radius:var(--shu-radius-pill);background:var(--shu-bg-glass-strong);border:1px solid var(--shu-border-active);color:var(--shu-accent-light);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;padding:4px 14px;font-size:.75rem;font-weight:700;display:inline-block}.landing-hero h1{background:linear-gradient(135deg, var(--shu-text-100), var(--shu-primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2rem,6vw,3rem);font-weight:700}.james-emoji{-webkit-text-fill-color:initial;font-size:.8em}.landing-school{color:var(--shu-text-300);letter-spacing:.05em;margin:4px 0 0;font-size:.85rem}.landing-subtitle{color:var(--shu-text-200);margin:12px 0 0;font-size:1rem;line-height:1.6}.lang-section{text-align:center}.lang-prompt{color:var(--shu-text-300);margin:0 0 16px;font-size:.9rem}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.lang-button{border:1px solid var(--shu-border);border-radius:var(--shu-radius-sm);background:var(--shu-bg-glass);color:var(--shu-text-100);font:inherit;cursor:pointer;align-items:center;gap:10px;padding:12px 16px;font-size:.9rem;transition:all .15s;display:flex}.lang-button:hover{border-color:var(--shu-border-active);background:var(--shu-bg-glass-strong);transform:translateY(-1px);box-shadow:0 4px 16px #1b5e7b33}.lang-flag{font-size:1.5rem}.lang-name{font-weight:500}.welcome-section{flex-direction:column;gap:14px;display:flex}.welcome-card{text-align:center;border:1px solid var(--shu-border);border-radius:var(--shu-radius-sm);background:var(--shu-bg-glass);padding:20px}.welcome-card h2{color:var(--shu-text-100);margin:0;font-size:1.3rem}.welcome-card p{color:var(--shu-text-200);margin:8px 0 0;line-height:1.5}.landing-cta{border-radius:var(--shu-radius-pill);background:linear-gradient(135deg, var(--shu-primary), var(--shu-primary-light));color:#fff;min-width:200px;font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;margin-top:18px;padding:12px 28px;font-size:1rem;font-weight:700;transition:transform .14s,box-shadow .14s;display:inline-flex;box-shadow:0 8px 24px #1b5e7b59}.landing-cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #1b5e7b73}.landing-cta:disabled{opacity:.7;cursor:not-allowed}.back-button{color:var(--shu-text-400);font:inherit;cursor:pointer;background:0 0;border:none;margin:12px auto 0;font-size:.85rem;transition:color .15s;display:block}.back-button:hover{color:var(--shu-text-200)}.info-card{border:1px solid var(--shu-border);border-radius:var(--shu-radius-sm);background:var(--shu-bg-glass);text-align:center;padding:14px 18px}.info-card h3{color:var(--shu-accent-light);margin:0;font-size:.9rem}.info-card p{color:var(--shu-text-100);margin:4px 0 0;font-size:.95rem;font-weight:600}.info-hours{color:var(--shu-text-400)!important;font-size:.8rem!important;font-weight:400!important}.landing-error{color:var(--shu-danger);margin-top:10px;font-size:.9rem}.landing-dots{align-items:center;gap:4px;display:inline-flex}.landing-dots span{background:#ffffffb3;border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite dot-bounce}.landing-dots span:nth-child(2){animation-delay:.14s}.landing-dots span:nth-child(3){animation-delay:.28s}@keyframes dot-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (max-width:560px){.landing-shell{border-radius:18px;padding:20px}.lang-grid{grid-template-columns:repeat(2,1fr)}.landing-cta{width:100%}}@media (prefers-reduced-motion:reduce){.landing-cta,.lang-button{transition:none}.landing-dots span{animation:none}}
