@font-face{font-family:Fredoka;src:url(/assets/fonts/fredoka-variable-latin-ext.woff2)format("woff2");font-style:normal;font-weight:300 700;font-display:swap;unicode-range:U+100-24F,U+259,U+1E??,U+2020,U+20A0-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka;src:url(/assets/fonts/fredoka-variable-latin.woff2)format("woff2");font-style:normal;font-weight:300 700;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text-main:#f8fafc;--text-soft:#cbd5e1;--surface:#0a0e1ccc;--surface-soft:#94a3b824;--stroke:#94a3b83d;--accent:#f97316;--accent-strong:#ea580c}html,body{width:100%;height:100%;color:var(--text-main);background-color:#0000;background-image:linear-gradient(#121026bd,#12102685),url(/assets/ui/bg-auth.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;margin:0;padding:0;font-family:Fredoka,Sora,Nunito Sans,sans-serif;overflow:hidden}#app-root,#game-root{position:fixed;inset:0}#app-root{-webkit-overflow-scrolling:touch;overflow:auto}#game-root{display:none}.auth-layout{background:radial-gradient(circle,#08091138,#06080f94);place-items:center;min-height:100dvh;padding:clamp(14px,2.8vw,28px);display:grid}.auth-card{background:var(--surface);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-sizing:border-box;border-radius:18px;width:min(460px,100%);padding:28px 24px;animation:.18s ease-out auth-fade-in;box-shadow:0 26px 55px #02061766,inset 0 1px #ffffff14}.auth-card--credentials{width:min(460px,100%);max-height:min(calc(100dvh - max(28px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 16px)), 760px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-sizing:border-box;overflow:auto}.auth-title{letter-spacing:-.02em;text-align:center;margin:2px 0 18px;font-size:28px;line-height:1.1}.auth-note{text-align:left;color:var(--text-soft);margin:0 0 12px;font-size:14px;line-height:1.35}.auth-form,.character-create{gap:0;display:grid}.auth-form label,.character-create label,.character-create-inline label{color:var(--text-soft);margin:12px 0 7px;font-size:13px;font-weight:600}.auth-form input,.character-create input,.character-create-inline input,.auth-form button,.character-create button,.character-create-inline button,.character-actions>button,#logout-button{color:var(--text-main);background:#0f172a80;border:1px solid #94a3b847;border-radius:12px;padding:12px;font-size:15px}.auth-form input,.character-create input,.character-create-inline input{margin-bottom:4px}.auth-form button,.character-create button,.character-create-inline button,.character-actions>button,#logout-button{cursor:pointer;font-weight:700}.auth-form>button,.character-create>button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;border-color:#0000;min-height:46px;margin-top:16px;box-shadow:0 10px 20px #ea580c40}button:disabled{opacity:.5;cursor:not-allowed}.field-error{color:#b91c1c;margin:5px 0 3px;font-size:12px;display:none}.error-message{color:#c2410c;background:#7f1d1d33;border:1px solid #ef44448c;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:14px;display:none}.field-error.is-visible,.error-message.is-visible{display:block}.character-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.character-header h1{letter-spacing:-.01em;margin:0;font-size:28px;line-height:1.1}.character-card{width:min(980px,100%)}.character-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.character-slot{background:radial-gradient(circle at 100% 0,#fb923c1a,#0000 42%),linear-gradient(#0f172ab8,#020617e0);border:1px solid #94a3b838;border-radius:16px;flex-direction:column;justify-content:space-between;gap:14px;min-height:176px;padding:14px;transition:border-color .12s,background-color .12s,transform .12s,box-shadow .12s;display:flex;box-shadow:inset 0 1px #ffffff0a,0 18px 32px #02061747}.character-slot.is-occupied{border-color:#94a3b852}.character-slot.is-empty{background:radial-gradient(circle at 100% 0,#94a3b814,#0000 44%),linear-gradient(#0f172a7a,#020617bd);border-style:dashed;border-color:#94a3b85c}.character-slot:hover{border-color:#fb923c61;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff0a,0 22px 40px #02061757}.character-slot.is-deleting{background:#7f1d1d2e;border-color:#ef444480}.character-slot.is-deleting .character-slot-head p{color:#fecaca}.character-slot-head h3{color:#f8fafc;margin:0 0 6px;font-size:21px;line-height:1.1}.character-slot-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.character-slot-head p{color:#94a3b8;margin:0;font-size:13px}.character-slot-body{width:100%}.character-meta{gap:10px;margin-top:10px;display:grid}.character-meta-header{gap:6px;display:grid}.character-meta-top{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.character-level{letter-spacing:.08em;text-transform:uppercase;background:#0f172a61;border:1px solid #94a3b833;border-radius:999px;align-self:flex-start;min-width:0;margin:0;padding:4px 8px;font-size:12px;font-weight:700;color:#cbd5e1!important}.character-activity-card{background:#02061747;border:1px solid #94a3b829;border-radius:12px;gap:8px;padding:10px;display:grid}.character-activity-card.is-idle{background:#1e293b3d;border-color:#94a3b82e}.character-activity-card.is-combat{background:#7f1d1d29;border-color:#f871712e}.character-activity-card.is-resource{background:#14532d29;border-color:#4ade802e}.character-activity-card.is-refining,.character-activity-card.is-craft{background:#78350f29;border-color:#fbbf242e}.character-activity-badge{letter-spacing:.04em;text-transform:uppercase;text-align:center;overflow-wrap:anywhere;color:#e2e8f0;background:#0f172ab3;border:1px solid #94a3b859;border-radius:999px;flex-shrink:1;justify-content:center;align-items:center;min-width:0;max-width:100%;min-height:26px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.character-activity-remaining{color:#cbd5e1;text-align:right;flex:none;font-size:11px;font-weight:700}.character-activity-badge.is-idle{color:#cbd5e1;background:#33415566;border-color:#94a3b852}.character-activity-badge.is-combat{color:#fecaca;background:#7f1d1d47;border-color:#f8717173}.character-activity-badge.is-resource{color:#bbf7d0;background:#14532d4d;border-color:#4ade806b}.character-activity-badge.is-refining,.character-activity-badge.is-craft{color:#fde68a;background:#78350f47;border-color:#fbbf246b}.character-task{margin:0;font-weight:700;color:#f8fafc!important;font-size:16px!important}.character-activity-time{margin:0;color:#94a3b8!important;font-size:12px!important}.character-actions{align-items:center;gap:8px;display:flex}.character-actions>button{min-height:44px}.character-play-btn,.character-create-btn,.character-danger-btn,.character-secondary-btn{flex:1}.character-actions>.character-play-btn{box-shadow:none;border-radius:7px;font-weight:600;color:#fff!important;background:#ff7a1a!important;border:none!important}.character-actions>.character-play-btn:hover{background:#f26f0f!important}.character-actions>.character-create-btn,.character-actions>.character-secondary-btn{background:#0f172aa6;border-color:#94a3b873}.character-actions>.character-danger-btn{color:#fee2e2;box-shadow:none;background:#991b1b8c;border:1px solid #f8717173;border-radius:8px;font-weight:700}.character-actions>.character-danger-btn:hover{background:#7f1d1db3}.character-delete-btn{color:#fca5a5;background:#7f1d1d33;border-color:#ef4444a6;border-radius:12px;justify-content:center;align-items:center;width:44px;min-width:44px;padding:0;display:inline-flex}.character-delete-btn>span{font-size:18px;line-height:1}.character-delete-btn:hover{background:#7f1d1d5c;border-color:#ef4444e6}.character-logout-btn{flex:none;justify-content:center;align-items:center;gap:6px;width:auto;min-width:106px;padding:0 10px;display:inline-flex!important}.character-logout-icon{font-size:16px;line-height:1}.character-logout-label{font-size:12px;font-weight:700}.character-create-inline{gap:8px;display:grid}.character-delete-inline{gap:10px}.delete-confirm-label{color:#fecaca;margin:0;font-size:12px}.character-create-inline input{box-sizing:border-box;width:100%;margin-bottom:0}.character-actions--delete{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.auth-switch{color:var(--text-soft);text-align:center;margin:16px 0 2px}.auth-switch--forgot{text-align:right;margin:1px 0 2px;font-size:13px}.auth-switch .auth-link,.auth-switch .auth-text-link{color:var(--accent);font-size:inherit;min-height:0;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #f973168c;border-radius:0;padding:0 0 2px;font-weight:700}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block}@keyframes auth-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.auth-layout{padding:clamp(12px,2.4vw,24px)}.auth-card--credentials{max-height:calc(100dvh - max(24px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 12px))}.auth-title{font-size:26px}}@media (width<=820px){.auth-card--credentials{border-radius:16px;max-height:calc(100dvh - 20px);padding:22px 18px}.auth-title{font-size:24px}.auth-note{text-align:left}.character-slots{grid-template-columns:1fr}.character-actions{width:100%}.character-slot-head h3{font-size:18px}}@media (width<=1100px){.character-card{width:min(760px,100%)}.character-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.auth-layout{padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));place-items:center}.auth-card--credentials{width:100%;max-height:calc(100dvh - max(24px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));border-radius:14px;padding:18px 14px}.auth-title{margin-bottom:14px;font-size:22px}.auth-form input,.character-create input,.character-create-inline input,.auth-form button,.character-create button,.character-create-inline button,.character-actions>button,#logout-button{min-height:46px;padding:11px;font-size:16px}.character-slot{min-height:132px}.character-header{flex-direction:column;align-items:stretch}.character-logout-btn{width:100%;min-width:0}.character-actions{gap:10px}.character-actions--delete{grid-template-columns:1fr;gap:8px}.character-meta-top{flex-direction:column;align-items:flex-start}.character-activity-badge{max-width:100%}.character-activity-remaining{text-align:left}}@media (width<=480px){.auth-layout{padding:max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom))}.auth-card--credentials{max-height:calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));border-radius:12px;padding:16px 12px}.auth-title{font-size:21px}.auth-note,.auth-switch{font-size:13px}}
