:root{--bg-deep: #05060f;--bg-mid: #0c1030;--bg-accent: #1a1654;--gradient-bg: radial-gradient(120% 80% at 30% 10%, #1a1654 0%, #0c1030 45%, #05060f 100%);--glass-bg: rgba(255, 255, 255, .08);--glass-bg-strong: rgba(255, 255, 255, .14);--glass-border: rgba(255, 255, 255, .18);--glass-shadow: 0 12px 40px rgba(0, 0, 0, .45);--text-primary: #f5f7ff;--text-secondary: rgba(245, 247, 255, .72);--text-muted: rgba(245, 247, 255, .48);--accent-gold: #f6c66c;--accent-cyan: #7dd3fc;--accent-purple: #b196ff;--danger: #ff7a90;--ease-out: cubic-bezier(.22, .61, .36, 1);--transition-card: .38s var(--ease-out);--text-scale: 1}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;padding:0}body{font-family:Noto Sans KR,Noto Sans Khmer,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-primary);background:var(--bg-deep);background-image:var(--gradient-bg);background-attachment:fixed;background-size:cover;word-break:keep-all;overflow:hidden;overscroll-behavior:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.5),transparent 60%),radial-gradient(1px 1px at 70% 80%,rgba(255,255,255,.45),transparent 60%),radial-gradient(1px 1px at 40% 60%,rgba(255,255,255,.35),transparent 60%),radial-gradient(1px 1px at 80% 20%,rgba(255,255,255,.4),transparent 60%),radial-gradient(1px 1px at 10% 75%,rgba(255,255,255,.35),transparent 60%);opacity:.7;z-index:0}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}.app-shell{position:relative;z-index:1;display:flex;flex-direction:column;height:100dvh;max-width:980px;margin:0 auto;padding:16px clamp(14px,4vw,28px) 24px}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px}.brand{display:flex;align-items:baseline;gap:8px;min-width:0;flex-shrink:1}.brand-title{font-size:15px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.brand-subtitle{font-size:12px;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 420px){.brand-subtitle{display:none}}.top-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.step-counter{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--text-secondary);background:var(--glass-bg);border:1px solid var(--glass-border);padding:6px 10px;border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}.stage-area{flex:1;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:20px;padding:12px 0;min-height:0}.bottom-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:10px}.nav-btn{flex:1;padding:14px 18px;font-size:15px;font-weight:600;color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .12s var(--ease-out),background .2s var(--ease-out),opacity .2s var(--ease-out)}.nav-btn:hover{background:var(--glass-bg-strong)}.nav-btn:active{transform:scale(.96)}.nav-btn[disabled]{opacity:.35;cursor:not-allowed}.nav-btn.shake{animation:shake .32s var(--ease-out)}.glass-card{position:relative;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:24px;padding:clamp(18px,4.5vw,28px);box-shadow:var(--glass-shadow),inset 0 1px #ffffff1f;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);overflow:hidden;height:100%;width:100%;display:flex;flex-direction:column}.glass-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(140deg,rgba(246,198,108,.08),transparent 40%);pointer-events:none}.card-badge{position:absolute;top:16px;right:18px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent-gold);background:#f6c66c1f;border:1px solid rgba(246,198,108,.3);padding:4px 10px;border-radius:999px}.card-title{font-size:calc(clamp(18px,3.6vw,24px) * var(--text-scale));font-weight:700;margin:0 0 4px;background:linear-gradient(120deg,#ffffff 10%,var(--accent-gold) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.25}.card-subtitle{font-size:calc(clamp(11px,2.6vw,13px) * var(--text-scale));font-weight:500;color:var(--text-muted);margin:0 0 12px;letter-spacing:.02em}.card-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);margin:10px 0 14px}.verse-progress{display:flex;align-items:center;gap:8px;margin:4px 0 0}.verse-dot{width:7px;height:7px;border-radius:50%;background:#ffffff2e;transition:background .22s var(--ease-out),transform .22s var(--ease-out),box-shadow .22s var(--ease-out)}.verse-dot.is-on{background:var(--accent-gold);box-shadow:0 0 8px #f6c66c8c;transform:scale(1.08)}.verse-progress-text{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--text-muted)}.verse-list{list-style:none;margin:0;padding:0 4px 0 0;display:flex;flex-direction:column;gap:14px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.verse-list::-webkit-scrollbar{width:6px}.verse-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.verse-item{position:relative;padding:14px 16px 16px 18px;border-left:3px solid var(--accent-gold);border-radius:0 14px 14px 0;background:linear-gradient(90deg,#f6c66c14,#ffffff08 30%,#ffffff05);opacity:0;transform:translateY(8px);animation:verse-in .48s var(--ease-out) forwards;animation-delay:var(--delay, 0ms)}.verse-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.verse-ref{font-size:calc(clamp(14px,3vw,16px) * var(--text-scale));font-weight:700;color:var(--accent-gold);letter-spacing:.02em}.verse-label{font-size:calc(clamp(13px,3vw,15px) * var(--text-scale));font-weight:700;color:var(--accent-cyan);background:#7dd3fc24;border:1px solid rgba(125,211,252,.42);padding:4px 12px;border-radius:999px;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.35)}.verse-text{font-size:calc(clamp(17px,4.4vw,21px) * var(--text-scale));line-height:1.78;color:#fff;font-weight:400;letter-spacing:-.005em;margin:0;white-space:pre-wrap;text-shadow:0 1px 2px rgba(0,0,0,.4)}.translation-pending{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--danger);background:#ff7a901a;border:1px solid rgba(255,122,144,.3);padding:3px 8px;border-radius:999px;margin-left:8px;text-transform:uppercase}.card-anim-enter-forward{animation:card-enter-fwd var(--transition-card) both}.card-anim-enter-back{animation:card-enter-back var(--transition-card) both}.minimap{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.minimap-svg{width:clamp(120px,28vw,180px);height:auto;aspect-ratio:1 / 1}.minimap-label{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--text-secondary)}.minimap-current{color:var(--accent-gold)}.minimap-compact{width:44px;height:44px;padding:4px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.minimap-compact .minimap-svg{width:100%;height:100%;aspect-ratio:1 / 1}.progress-track{position:relative;width:100%;height:4px;background:#ffffff14;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-gold),var(--accent-cyan));border-radius:999px;transition:width .32s var(--ease-out);box-shadow:0 0 12px #f6c66c73}.lang-wrap{position:relative}.lang-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border);padding:6px 12px;border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .18s var(--ease-out)}.lang-btn:hover{background:var(--glass-bg-strong)}.lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:#0c1030db;border:1px solid var(--glass-border);border-radius:14px;padding:6px;box-shadow:var(--glass-shadow);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);display:flex;flex-direction:column;gap:2px;z-index:10;animation:menu-in .18s var(--ease-out)}.lang-option{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;color:var(--text-primary);border-radius:10px;text-align:left;transition:background .14s var(--ease-out)}.lang-option:hover:not([disabled]){background:#ffffff12}.lang-option[aria-current=true]{background:#f6c66c24;color:var(--accent-gold)}.lang-option[disabled]{color:var(--text-muted);cursor:not-allowed}.lang-option-tag{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--text-muted)}.font-wrap{position:relative}.font-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:32px;color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .18s var(--ease-out)}.font-btn:hover{background:var(--glass-bg-strong)}.font-btn-icon{font-size:14px;font-weight:700;letter-spacing:-.02em;line-height:1}.font-menu{position:absolute;top:calc(100% + 8px);right:0;display:flex;align-items:center;gap:6px;padding:8px;background:#0c1030db;border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--glass-shadow);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);z-index:10;animation:menu-in .18s var(--ease-out);white-space:nowrap}.font-step-btn{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:32px;padding:0 10px;font-size:14px;font-weight:700;color:var(--text-primary);background:#ffffff12;border:1px solid var(--glass-border);border-radius:10px;transition:background .14s var(--ease-out),opacity .14s var(--ease-out)}.font-step-btn:hover:not([disabled]){background:#f6c66c2e;color:var(--accent-gold)}.font-step-btn[disabled]{opacity:.35;cursor:not-allowed}.font-percent{min-width:50px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--accent-gold)}.font-reset-btn{height:32px;padding:0 12px;font-size:12px;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid var(--glass-border);border-radius:10px;transition:background .14s var(--ease-out),color .14s var(--ease-out),opacity .14s var(--ease-out)}.font-reset-btn:hover:not([disabled]){background:#ffffff0d;color:var(--text-primary)}.font-reset-btn[disabled]{opacity:.35;cursor:not-allowed}@keyframes verse-in{to{opacity:1;transform:translateY(0)}}@keyframes card-enter-fwd{0%{opacity:0;transform:translate(40px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes card-enter-back{0%{opacity:0;transform:translate(-40px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes pulse-marker{0%,to{r:4.5;opacity:1}50%{r:6.5;opacity:.85}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width: 768px){.stage-area{align-items:center}.stage-area>.glass-card{width:100%;max-width:720px}.nav-btn{flex:0 1 220px}}@media (min-width: 1280px){.app-shell{padding:24px 36px 32px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing-shell,.login-shell{position:relative;z-index:1;height:100dvh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;padding:clamp(20px,5vw,40px) clamp(16px,5vw,32px);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.landing-shell::-webkit-scrollbar,.login-shell::-webkit-scrollbar{width:6px}.landing-shell::-webkit-scrollbar-thumb,.login-shell::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.landing-inner{width:100%;max-width:560px;margin:auto 0;display:flex;flex-direction:column;align-items:center;gap:clamp(18px,4.5vw,28px);padding:8px 0 16px}.landing-cross{position:relative;display:flex;justify-content:center;opacity:0;animation:landing-rise .72s var(--ease-out) 60ms forwards}.landing-cross-svg{width:clamp(84px,22vw,128px);height:auto;filter:drop-shadow(0 0 24px rgba(246,198,108,.35));animation:landing-glow 5s ease-in-out infinite alternate}.landing-hero{text-align:center;opacity:0;animation:landing-rise .72s var(--ease-out) .16s forwards}.landing-title{margin:0;font-size:clamp(34px,9vw,52px);font-weight:700;letter-spacing:.06em;line-height:1.2;background:linear-gradient(120deg,#ffffff 20%,var(--accent-gold) 85%);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-subtitle{margin:10px 0 0;font-size:clamp(13px,3.4vw,16px);font-weight:600;letter-spacing:.14em;color:var(--accent-cyan);text-transform:none}.landing-desc{margin:14px 0 0;font-size:clamp(14px,3.6vw,16px);line-height:1.75;color:var(--text-secondary)}.landing-cta-wrap{display:flex;justify-content:center;width:100%;opacity:0;animation:landing-rise .72s var(--ease-out) .28s forwards}.landing-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:min(100%,300px);padding:16px 34px;font-size:clamp(16px,4vw,18px);font-weight:700;letter-spacing:.04em;color:#241a05;background:linear-gradient(135deg,#ffe3ae 0%,var(--accent-gold) 55%,#dfa447 100%);border:1px solid rgba(255,255,255,.35);border-radius:999px;box-shadow:0 8px 28px #f6c66c59,inset 0 1px #ffffff80;transition:transform .14s var(--ease-out),box-shadow .24s var(--ease-out),filter .24s var(--ease-out)}.landing-cta:hover{filter:brightness(1.06);box-shadow:0 10px 34px #f6c66c80,inset 0 1px #ffffff8c}.landing-cta:active{transform:scale(.97)}.landing-cta-cross{font-size:1.05em;line-height:1}.landing-features{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:12px}.landing-feature{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--glass-shadow),inset 0 1px #ffffff1a;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);opacity:0;transform:translateY(10px);animation:landing-feature-in .56s var(--ease-out) forwards;animation-delay:var(--delay, .4s);transition:background .2s var(--ease-out),transform .2s var(--ease-out)}.landing-feature:hover{background:var(--glass-bg-strong);transform:translateY(-2px)}.landing-feature-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:19px;background:#f6c66c1f;border:1px solid rgba(246,198,108,.3);border-radius:12px}.landing-feature-body{display:flex;flex-direction:column;gap:3px;min-width:0}.landing-feature-title{font-size:clamp(14px,3.6vw,15px);font-weight:700;color:var(--text-primary);letter-spacing:.01em}.landing-feature-desc{font-size:clamp(12px,3.2vw,13px);line-height:1.6;color:var(--text-muted)}.landing-footer{padding-top:4px;opacity:0;animation:landing-rise .72s var(--ease-out) .76s forwards}.landing-footer-text{font-size:clamp(11px,3vw,12.5px);font-weight:500;letter-spacing:.03em;color:var(--text-muted)}.login-shell{justify-content:center}.auth-card{position:relative;width:100%;max-width:420px;margin:auto 0;padding:clamp(26px,6vw,38px) clamp(22px,5.5vw,34px);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:26px;box-shadow:var(--glass-shadow),inset 0 1px #ffffff1f;backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);overflow:hidden;opacity:0;animation:landing-rise .64s var(--ease-out) 80ms forwards}.auth-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(150deg,rgba(246,198,108,.1),transparent 42%);pointer-events:none}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.auth-brand-cross{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:6px;font-size:24px;color:var(--accent-gold);background:#f6c66c1a;border:1px solid rgba(246,198,108,.32);border-radius:16px;box-shadow:0 0 22px #f6c66c40;text-shadow:0 0 12px rgba(246,198,108,.6)}.auth-brand-title{margin:0;font-size:clamp(20px,5.2vw,24px);font-weight:700;letter-spacing:.05em;background:linear-gradient(120deg,#ffffff 15%,var(--accent-gold) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-brand-subtitle{margin:0;font-size:clamp(11px,3vw,12.5px);font-weight:500;letter-spacing:.1em;color:var(--text-muted)}.auth-divider{height:1px;margin:18px 0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent)}.auth-heading{margin:0 0 4px;font-size:clamp(17px,4.4vw,20px);font-weight:700;color:var(--text-primary);letter-spacing:.02em}.auth-heading-en{margin-left:8px;font-size:.7em;font-weight:600;letter-spacing:.08em;color:var(--accent-gold);opacity:.85}.auth-welcome{margin:0 0 18px;font-size:clamp(12.5px,3.3vw,13.5px);line-height:1.6;color:var(--text-secondary)}.auth-welcome-en{display:block;margin-top:2px;font-size:.92em;color:var(--text-muted)}.auth-label-en{margin-left:4px;font-size:.86em;font-weight:500;letter-spacing:.04em;color:var(--text-muted);text-transform:none}.auth-btn-en{font-weight:700;opacity:.75}.auth-toggle-question-en{display:block;margin-top:1px;font-size:.9em;color:#f5f7ff57}.auth-error{display:flex;align-items:flex-start;gap:8px;margin:0 0 16px;padding:11px 14px;font-size:clamp(12.5px,3.3vw,13.5px);line-height:1.55;font-weight:500;color:var(--danger);background:#ff7a901a;border:1px solid rgba(255,122,144,.35);border-radius:12px;animation:auth-error-in .26s var(--ease-out)}.auth-error-icon{flex-shrink:0;line-height:1.55}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--text-secondary)}.auth-input{width:100%;padding:13px 15px;font-family:inherit;font-size:15px;color:var(--text-primary);background:#ffffff0f;border:1px solid var(--glass-border);border-radius:13px;outline:none;transition:border-color .18s var(--ease-out),background .18s var(--ease-out),box-shadow .18s var(--ease-out);-webkit-appearance:none;-moz-appearance:none;appearance:none}.auth-input::placeholder{color:var(--text-muted)}.auth-input:hover:not(:disabled){background:#ffffff17}.auth-input:focus{border-color:#f6c66c99;background:#ffffff17;box-shadow:0 0 0 3px #f6c66c2e}.auth-input:disabled{opacity:.55;cursor:not-allowed}.auth-input:-webkit-autofill{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px rgba(26,22,84,.9) inset;transition:background-color 9999s ease-out}.auth-submit{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin-top:6px;padding:15px 20px;font-size:16px;font-weight:700;letter-spacing:.04em;color:#241a05;background:linear-gradient(135deg,#ffe3ae 0%,var(--accent-gold) 55%,#dfa447 100%);border:1px solid rgba(255,255,255,.35);border-radius:15px;box-shadow:0 6px 22px #f6c66c4d,inset 0 1px #ffffff80;transition:transform .14s var(--ease-out),filter .22s var(--ease-out),opacity .22s var(--ease-out),box-shadow .22s var(--ease-out)}.auth-submit:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 8px 28px #f6c66c73,inset 0 1px #ffffff8c}.auth-submit:active:not(:disabled){transform:scale(.97)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-spinner{width:15px;height:15px;border:2px solid rgba(36,26,5,.25);border-top-color:#241a05;border-radius:50%;animation:auth-spin .8s linear infinite}.auth-toggle{margin:18px 0 0;text-align:center;font-size:clamp(12.5px,3.3vw,13.5px)}.auth-toggle-question{color:var(--text-muted)}.auth-toggle-btn{padding:4px 6px;font-size:inherit;font-weight:700;color:var(--accent-cyan);border-radius:8px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#7dd3fc66;transition:color .16s var(--ease-out),text-decoration-color .16s var(--ease-out)}.auth-toggle-btn:hover{color:var(--accent-gold);text-decoration-color:#f6c66c99}.auth-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.auth-form-compact{gap:11px}.auth-form-compact .auth-field{gap:5px}.auth-form-compact .auth-input{padding:11px 14px}.auth-hint{margin:0;font-size:11px;line-height:1.5;letter-spacing:.02em;color:var(--text-muted)}.auth-input:user-invalid{border-color:#ff7a908c}.account-badge{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:20;display:flex;align-items:center;gap:10px;max-width:min(70vw,360px);padding:7px 8px 7px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--glass-shadow);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}.account-badge-email{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;color:var(--text-secondary)}.account-badge-logout{flex-shrink:0;padding:6px 13px;font-size:12.5px;font-weight:700;color:var(--text-primary);background:#ffffff14;border:1px solid var(--glass-border);border-radius:999px;transition:background .16s var(--ease-out),color .16s var(--ease-out)}.account-badge-logout:hover{background:#ff7a9029;color:var(--danger)}.auth-loader{position:relative;z-index:1;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.auth-loader-text{font-size:13.5px;font-weight:500;letter-spacing:.04em;color:var(--text-secondary)}.auth-spinner-lg{width:34px;height:34px;border-width:3px;border-color:#f6c66c40;border-top-color:var(--accent-gold)}@keyframes landing-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-feature-in{to{opacity:1;transform:translateY(0)}}@keyframes landing-glow{0%{filter:drop-shadow(0 0 18px rgba(246,198,108,.28))}to{filter:drop-shadow(0 0 34px rgba(246,198,108,.5))}}@keyframes auth-error-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (min-width: 768px){.landing-inner{max-width:720px}.landing-features{flex-direction:row;align-items:stretch}.landing-feature{flex:1;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:20px 16px}.landing-feature-body{align-items:center}.auth-card{max-width:440px}}@media (prefers-reduced-motion: reduce){.landing-cross-svg{animation:none}.landing-cross,.landing-hero,.landing-cta-wrap,.landing-feature,.landing-footer,.auth-card{opacity:1;transform:none}.auth-spinner{animation-duration:1.5s!important;animation-iteration-count:infinite!important}}.pending-card{text-align:center}.pending-icon{display:inline-flex;align-items:center;justify-content:center;width:74px;height:74px;margin:2px auto 14px;font-size:34px;line-height:1;background:#f6c66c1a;border:1px solid rgba(246,198,108,.32);border-radius:22px;box-shadow:0 0 26px #f6c66c38;animation:pending-float 3.2s ease-in-out infinite alternate}.pending-icon-rejected{background:#ff7a901a;border-color:#ff7a9059;box-shadow:0 0 26px #ff7a9033;animation:none}.pending-heading{margin-bottom:6px}.pending-heading-rejected{color:var(--danger)}.pending-heading-en-rejected{color:var(--danger);opacity:.75}.pending-desc{margin-bottom:20px}.pending-profile{display:flex;flex-direction:column;gap:10px;margin:0 0 20px;padding:15px 17px;text-align:left;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:16px;box-shadow:inset 0 1px #ffffff14}.pending-profile-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.pending-profile-label{flex-shrink:0;margin:0;font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--text-secondary)}.pending-profile-value{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;color:var(--text-primary)}.pending-actions{display:flex;flex-direction:column;gap:10px}.pending-refresh-btn{margin-top:0;width:100%}.pending-signout-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px 20px;font-size:14.5px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary);background:#ffffff0f;border:1px solid var(--glass-border);border-radius:15px;transition:background .18s var(--ease-out),color .18s var(--ease-out),transform .14s var(--ease-out)}.pending-signout-btn:hover{background:#ff7a901f;color:var(--danger)}.pending-signout-btn:active{transform:scale(.97)}@keyframes pending-float{0%{transform:translateY(0)}to{transform:translateY(-5px)}}.admin-shell{position:relative;z-index:1;height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:clamp(18px,4.5vw,36px) clamp(14px,4.5vw,28px) max(24px,env(safe-area-inset-bottom));scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.admin-shell::-webkit-scrollbar{width:6px}.admin-shell::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.admin-inner{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-title{display:flex;align-items:center;gap:9px;margin:0;font-size:clamp(19px,5vw,24px);font-weight:700;letter-spacing:.03em;color:var(--text-primary)}.admin-title-cross{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;font-size:17px;color:var(--accent-gold);background:#f6c66c1a;border:1px solid rgba(246,198,108,.32);border-radius:11px;text-shadow:0 0 10px rgba(246,198,108,.55)}.admin-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.admin-tool-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .16s var(--ease-out),color .16s var(--ease-out),opacity .16s var(--ease-out)}.admin-tool-btn:hover:not(:disabled){background:var(--glass-bg-strong)}.admin-tool-btn:disabled{opacity:.5;cursor:not-allowed}.admin-tool-btn-signout:hover:not(:disabled){background:#ff7a9024;color:var(--danger)}.admin-filter{display:flex;gap:6px;padding:5px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}.admin-filter-tab{flex:1;padding:9px 8px;font-size:clamp(12px,3.2vw,13.5px);font-weight:600;letter-spacing:.02em;color:var(--text-secondary);border-radius:999px;white-space:nowrap;transition:background .18s var(--ease-out),color .18s var(--ease-out)}.admin-filter-tab:hover:not(.is-active){background:#ffffff12;color:var(--text-primary)}.admin-filter-tab.is-active{color:#241a05;font-weight:700;background:linear-gradient(135deg,#ffe3ae 0%,var(--accent-gold) 55%,#dfa447 100%);box-shadow:0 4px 16px #f6c66c4d}.admin-filter-tab-en{font-weight:500;opacity:.75}@media (max-width: 420px){.admin-filter-tab-en{display:none}}.admin-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.admin-user-card{display:flex;flex-direction:column;gap:14px;padding:clamp(16px,4vw,20px);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--glass-shadow),inset 0 1px #ffffff1a;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);transition:background .2s var(--ease-out)}.admin-user-card:hover{background:var(--glass-bg-strong)}.admin-user-card[aria-busy=true]{opacity:.75}.admin-user-info{display:flex;flex-direction:column;gap:9px;min-width:0}.admin-user-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.admin-user-username{font-size:clamp(15px,4vw,16.5px);font-weight:700;letter-spacing:.02em;color:var(--accent-gold)}.admin-user-fullname{font-size:clamp(13.5px,3.6vw,15px);font-weight:600;color:var(--text-primary)}.admin-user-meta{display:flex;flex-direction:column;gap:4px;margin:0}.admin-user-meta-row{display:flex;align-items:baseline;gap:10px;min-width:0}.admin-user-meta-label{flex-shrink:0;min-width:88px;margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--text-secondary)}.admin-user-meta-value{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;color:var(--text-primary)}.admin-badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.05em;border-radius:999px;white-space:nowrap}.admin-badge-pending{color:var(--accent-gold);background:#f6c66c1f;border:1px solid rgba(246,198,108,.35)}.admin-badge-approved{color:var(--accent-cyan);background:#7dd3fc1f;border:1px solid rgba(125,211,252,.4)}.admin-badge-rejected{color:var(--danger);background:#ff7a901a;border:1px solid rgba(255,122,144,.35)}.admin-user-actions{display:flex;gap:8px}.admin-user-actions:empty{display:none}.admin-approve-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;font-size:13.5px;font-weight:700;letter-spacing:.03em;color:#241a05;background:linear-gradient(135deg,#ffe3ae 0%,var(--accent-gold) 55%,#dfa447 100%);border:1px solid rgba(255,255,255,.35);border-radius:12px;box-shadow:0 4px 16px #f6c66c47,inset 0 1px #ffffff80;transition:transform .14s var(--ease-out),filter .2s var(--ease-out),opacity .2s var(--ease-out)}.admin-approve-btn:hover:not(:disabled){filter:brightness(1.06)}.admin-approve-btn:active:not(:disabled){transform:scale(.97)}.admin-reject-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;font-size:13.5px;font-weight:700;letter-spacing:.03em;color:var(--danger);background:#ff7a900f;border:1px solid rgba(255,122,144,.45);border-radius:12px;transition:background .18s var(--ease-out),transform .14s var(--ease-out),opacity .2s var(--ease-out)}.admin-reject-btn:hover:not(:disabled){background:#ff7a9029}.admin-reject-btn:active:not(:disabled){transform:scale(.97)}.admin-revoke-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;font-size:13.5px;font-weight:600;letter-spacing:.03em;color:var(--text-secondary);background:#ffffff0f;border:1px solid var(--glass-border);border-radius:12px;transition:background .18s var(--ease-out),color .18s var(--ease-out),transform .14s var(--ease-out),opacity .2s var(--ease-out)}.admin-revoke-btn:hover:not(:disabled){background:#ff7a901f;color:var(--danger)}.admin-revoke-btn:active:not(:disabled){transform:scale(.97)}.admin-approve-btn:disabled,.admin-reject-btn:disabled,.admin-revoke-btn:disabled{opacity:.55;cursor:not-allowed}.admin-revoke-spinner{border-color:#f5f7ff40;border-top-color:var(--text-primary)}.admin-skeleton-card{gap:10px}.admin-skeleton{height:14px;border-radius:7px;background:linear-gradient(90deg,#ffffff12 25%,#ffffff29,#ffffff12 75%);background-size:200% 100%;animation:admin-shimmer 1.4s ease-in-out infinite}.admin-skeleton-line-lg{height:18px;width:45%}.admin-skeleton-line{width:80%}.admin-skeleton-line-sm{width:60%}.admin-loading-text{display:flex;align-items:center;justify-content:center;gap:9px;margin:4px 0 0;font-size:13px;font-weight:500;letter-spacing:.03em;color:var(--text-secondary)}.admin-loading-spinner{border-color:#f6c66c40;border-top-color:var(--accent-gold)}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.admin-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:clamp(36px,9vw,56px) 20px;text-align:center;background:var(--glass-bg);border:1px dashed var(--glass-border);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.admin-empty-icon{font-size:32px;opacity:.8}.admin-empty-text{margin:0;font-size:clamp(13px,3.5vw,14.5px);line-height:1.6;font-weight:500;color:var(--text-secondary)}@media (min-width: 768px){.admin-user-card{flex-direction:row;align-items:center;justify-content:space-between;gap:20px}.admin-user-info{flex:1;min-width:0}.admin-user-actions{flex-shrink:0;width:auto}.admin-approve-btn,.admin-reject-btn,.admin-revoke-btn{flex:0 0 auto;min-width:132px}}@media (prefers-reduced-motion: reduce){.pending-icon{animation:none}.admin-skeleton{animation:none;background:#ffffff1a}}.profile-email-box{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 15px;background:#ffffff0a;border:1px dashed var(--glass-border);border-radius:13px;box-shadow:inset 0 1px #ffffff0f;cursor:default;-webkit-user-select:text;user-select:text}.profile-email-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;letter-spacing:.01em;color:var(--accent-cyan)}.profile-email-lock{flex-shrink:0;font-size:12px;line-height:1;opacity:.55}.profile-secondary{margin-top:12px}.profile-secondary .pending-signout-btn:disabled{opacity:.5;cursor:not-allowed}.profile-secondary .pending-signout-btn:disabled:hover{background:#ffffff0f;color:var(--text-secondary)}.profile-secondary .pending-signout-btn:disabled:active{transform:none}
