@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";@font-face{font-family:Nasalization;src:url(/nasalization.woff2)format("woff2");font-display:swap}:root{--bg-main:#0b0c10;--bg-sidebar:#111219cc;--bg-panel:#161823a6;--bg-card:#1e213073;--bg-paper:#161822;--border-color:#ffffff0f;--border-color-active:#db709366;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-paper:#fff;--accent-pink:#db7093;--accent-purple:#f1ddcf;--accent-green:#f3c2b1;--accent-plume:#db7093;--accent-feed:#ffa6d2;--accent-study:#f3c2b1;--accent-arcana:#a78bfa;--glow-shadow:0 0 20px #db709326;--glass-blur:blur(16px);--font-ui:"Outfit", "Inter", sans-serif;--font-fancy:"Playfair Display", serif}[data-theme=light]{--bg-main:#f5f4f0;--bg-sidebar:#f0ede6d9;--bg-panel:#fffc;--bg-card:#ffffffe6;--bg-paper:#fdfdfb;--border-color:#00000014;--border-color-active:#db709373;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-paper:#000;--accent-pink:#db7093;--accent-purple:#c9997e;--accent-green:#d99179;--accent-plume:#db7093;--accent-feed:#e07bb0;--accent-study:#d99179;--accent-arcana:#7c3aed;--glow-shadow:0 4px 20px #db709314}[data-theme=retro]{--bg-main:teal;--bg-sidebar:#dfdfdf;--bg-panel:#dfdfdf;--bg-card:#dfdfdf;--bg-paper:#fff;--border-color:gray;--border-color-active:#000;--text-primary:#000;--text-secondary:#000;--text-muted:gray;--text-paper:#000;--accent-pink:#df5f8f;--accent-purple:navy;--accent-green:teal;--accent-plume:#db7093;--accent-feed:#e07bb0;--accent-study:#d99179;--accent-arcana:#7c3aed;--glow-shadow:none;--glass-blur:none;--font-ui:"MS Sans Serif", Tahoma, "JetBrains Mono", Courier, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);background-color:var(--bg-main);color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;transition:background-color .4s,color .4s;display:flex;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle,#ffa6d214,#f1ddcf05,#0000 60%);position:absolute;inset:0}.container{background:var(--bg-panel);width:100%;max-width:420px;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);text-align:center;z-index:10;border-radius:12px;padding:3rem 2.5rem;transition:all .3s;box-shadow:0 20px 50px #0003}.container:hover{border-color:var(--border-color-active);box-shadow:0 20px 50px #00000040, var(--glow-shadow)}.brand{margin-bottom:2.25rem}.logo-icon{width:48px;height:48px;color:var(--accent-pink);filter:drop-shadow(0 0 6px #ffa6d24d);margin-bottom:.75rem;animation:4s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.title{font-family:"Nasalization", var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-bottom:.25rem;font-size:2.75rem;font-weight:700}.subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.15em;opacity:.8;font-size:.85rem;font-weight:500}.form-group{text-align:left;margin-bottom:1.25rem}.form-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:block}.input-wrapper{position:relative}.input-icon{color:var(--text-muted);pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-ui);background:#00000026;border-radius:8px;outline:none;padding:12px 14px 12px 42px;font-size:.95rem;transition:all .25s}[data-theme=light] .form-input{background:#ffffff73}.form-input:focus{border-color:var(--border-color-active);box-shadow:var(--glow-shadow);background:#00000040}[data-theme=light] .form-input:focus{background:#ffffffb3}.btn{background:var(--bg-card);width:100%;color:var(--text-primary);border:1px solid var(--border-color);font-family:var(--font-ui);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.95rem;font-weight:500;transition:all .25s;display:flex}.btn:hover{border-color:var(--border-color-active);box-shadow:var(--glow-shadow);color:var(--accent-pink);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.alert{text-align:left;border-radius:8px;align-items:center;gap:10px;margin-bottom:1.5rem;padding:10px 14px;font-size:.85rem;display:flex}.alert-danger{color:var(--accent-pink);background:#f43f5e1a;border:1px solid #f43f5e33}.theme-toggle{background:var(--bg-panel);border:1px solid var(--border-color);cursor:pointer;width:38px;height:38px;color:var(--text-primary);z-index:100;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:24px;right:24px;box-shadow:0 4px 15px #0000001a}.theme-toggle:hover{border-color:var(--border-color-active);color:var(--accent-pink);box-shadow:var(--glow-shadow)}.portal-container{z-index:10;flex-direction:column;gap:2.5rem;width:100%;max-width:1100px;padding:3rem 2rem;display:flex}.portal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.portal-title-area{text-align:left}.portal-welcome{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;font-weight:500}.portal-title{font-family:"Nasalization", var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-top:.25rem;font-size:2.85rem;font-weight:700}.user-badge{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:10px 20px;display:flex;box-shadow:0 10px 30px #0000001a}.avatar{background:var(--bg-card);border:1px solid var(--border-color-active);width:36px;height:36px;color:var(--accent-pink);border-radius:6px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.username{text-transform:capitalize;font-size:.95rem;font-weight:600}.btn-logout{color:var(--text-muted);cursor:pointer;font-family:var(--font-ui);background:0 0;border:none;align-items:center;gap:4px;margin-top:4px;padding:0;font-size:.8rem;font-weight:500;transition:color .2s;display:flex}.btn-logout:hover{color:var(--accent-pink)}.bento-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}@media (width<=992px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=680px){.bento-grid{grid-template-columns:1fr}}.card-plume{--card-accent:var(--accent-plume)}.card-feed{--card-accent:var(--accent-feed)}.card-study{--card-accent:var(--accent-study)}.card-roleplay{--card-accent:var(--accent-arcana)}.bento-card{background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-left:3px solid var(--card-accent);text-align:left;color:inherit;border-radius:12px;flex-direction:column;justify-content:space-between;min-height:240px;padding:2.25rem;text-decoration:none;transition:all .3s;display:flex;box-shadow:0 10px 30px #0000001a}.bento-card:hover{border-color:color-mix(in srgb, var(--card-accent) 40%, transparent);box-shadow:0 15px 40px #00000026, 0 0 20px color-mix(in srgb, var(--card-accent) 15%, transparent);transform:translateY(-3px)}.card-icon-wrapper{background:color-mix(in srgb, var(--card-accent) 10%, transparent);width:44px;height:44px;color:var(--card-accent);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;margin-bottom:1.5rem;transition:all .25s;display:flex}.bento-card:hover .card-icon-wrapper{border-color:color-mix(in srgb, var(--card-accent) 40%, transparent);color:var(--card-accent);box-shadow:0 0 10px color-mix(in srgb, var(--card-accent) 20%, transparent)}.card-title{font-family:"Nasalization", var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-bottom:.65rem;font-size:1.6rem;font-weight:700}.card-title .normal-bracket{font-family:var(--font-ui);text-transform:none;font-weight:500}.card-desc{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.card-footer{color:var(--card-accent);align-items:center;gap:8px;font-size:.85rem;font-weight:600;transition:color .2s;display:flex}.card-arrow{transition:transform .2s}.bento-card:hover .card-arrow{transform:translate(4px)}.spinner{border:2px solid #ffffff4d;border-top-color:var(--text-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.global-spinner{border:2px solid var(--border-color);border-top-color:var(--accent-pink);width:36px;height:36px}.theme-selector-bottom-left{z-index:999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#16182373;border:1px solid #ffffff0f;border-radius:30px;gap:8px;padding:6px;display:flex;position:fixed;bottom:20px;left:20px}[data-theme=light] .theme-selector-bottom-left{background:#ffffffd9;border:1px solid #00000014}[data-theme=retro] .theme-selector-bottom-left{padding:4px;position:fixed;bottom:10px;left:10px;background:#dfdfdf!important;border:2px solid gray!important;border-color:#fff gray gray #fff!important;border-radius:0!important;box-shadow:1px 1px #000!important}.theme-selector-bottom-left .theme-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.theme-selector-bottom-left .theme-btn:hover{color:var(--text-primary);background:#ffffff0d}[data-theme=light] .theme-selector-bottom-left .theme-btn:hover{background:#0000000d}.theme-selector-bottom-left .theme-btn.active{color:var(--accent-pink);background:#db709326}[data-theme=retro] .theme-selector-bottom-left .theme-btn{border:1px solid #0000;width:28px;height:28px;color:#000!important;border-radius:0!important}[data-theme=retro] .theme-selector-bottom-left .theme-btn:hover{background:#0000000d}[data-theme=retro] .theme-selector-bottom-left .theme-btn.active{background:silver!important;border:2px solid #fff!important;border-color:gray #fff #fff gray!important}[data-theme=retro] .bento-card{flex-direction:column;display:flex;position:relative;color:#000!important;background-color:#dfdfdf!important;border:2px solid gray!important;border-color:#fff gray gray #fff!important;border-radius:0!important;padding:4px!important;box-shadow:1px 1px #000!important}[data-theme=retro] .bento-card:before{content:"Application";color:#fff;text-align:left;background:linear-gradient(90deg,navy,#f355a0);margin-bottom:8px;padding:4px 6px;font-family:MS Sans Serif,Tahoma,sans-serif;font-size:11px;font-weight:700;display:block}[data-theme=retro] .bento-card.card-plume:before{content:"Plu:me - Text Editor v1.0";background:linear-gradient(90deg, navy, var(--accent-plume))!important}[data-theme=retro] .bento-card.card-feed:before{content:"Feed - News Reader v1.0";background:linear-gradient(90deg, navy, var(--accent-feed))!important}[data-theme=retro] .bento-card.card-study:before{content:"Study - Quiz Companion v1.0";background:linear-gradient(90deg, navy, var(--accent-study))!important}[data-theme=retro] .bento-card.card-roleplay:before{content:"Arcana - JdR Companion v1.0";background:linear-gradient(90deg, navy, var(--accent-arcana))!important}[data-theme=retro] .bento-card:hover{transform:none!important;box-shadow:1px 1px #000!important}[data-theme=retro] .card-icon-wrapper{color:navy!important;background:#fff!important;border:2px solid gray!important;border-radius:0!important;box-shadow:inset 1px 1px 2px #000!important}[data-theme=retro] .card-title{text-transform:none!important;letter-spacing:0!important;color:#000!important;font-family:MS Sans Serif,Tahoma,sans-serif!important;font-size:1.2rem!important;font-weight:700!important}[data-theme=retro] .card-desc{color:#222!important;font-family:MS Sans Serif,Tahoma,sans-serif!important;font-size:.85rem!important}[data-theme=retro] .card-footer{border-top:1px solid gray;margin-top:auto;padding-top:6px;color:navy!important;font-family:MS Sans Serif,Tahoma,sans-serif!important;font-size:.8rem!important}[data-theme=retro] .container{color:#000!important;background-color:#dfdfdf!important;border:2px solid gray!important;border-color:#fff gray gray #fff!important;border-radius:0!important;box-shadow:1px 1px #000!important}[data-theme=retro] .container:before{content:"Single Sign-On Authentication";color:#fff;text-align:left;background:linear-gradient(90deg,navy,#f355a0);margin:-1.5rem -1.5rem 1.5rem;padding:4px 6px;font-family:MS Sans Serif,Tahoma,sans-serif;font-size:11px;font-weight:700;display:block}[data-theme=retro] .form-input{color:#000!important;font-family:var(--font-ui)!important;background:#fff!important;border:2px solid #fff!important;border-color:gray #fff #fff gray!important;border-radius:0!important;box-shadow:inset 1px 1px 1px #000!important}[data-theme=retro] .btn{color:#000!important;font-family:var(--font-ui)!important;background-color:#dfdfdf!important;border:2px solid gray!important;border-color:#fff gray gray #fff!important;border-radius:0!important;font-weight:700!important;box-shadow:1px 1px #000!important}[data-theme=retro] .btn:active{box-shadow:none!important;border:2px solid #fff!important;border-color:gray #fff #fff gray!important}
