/* Entry screen: Matrix inspired, with the existing app dashboard revealed after login. */
body:not(.logged-in){overflow:hidden;background:#020704}
body:not(.logged-in) #matrix-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;opacity:.47;pointer-events:none}
body:not(.logged-in)::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(0,12,4,.13) 0,rgba(0,5,2,.78) 76%),repeating-linear-gradient(0deg,transparent 0 3px,rgba(32,255,86,.018) 4px);}
body:not(.logged-in) .shell{display:block;position:relative;z-index:1;min-height:100vh}
body:not(.logged-in) .sidebar,body:not(.logged-in) .topbar,body:not(.logged-in) .welcome-row{display:none}
body:not(.logged-in) .main{min-height:100vh}
body:not(.logged-in) .content{max-width:none;min-height:100vh;padding:28px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center}
body:not(.logged-in) .content>footer{display:none}
body:not(.logged-in) .login-panel{width:min(420px,calc(100vw - 34px));display:block;margin:0;padding:31px 32px 18px;border:1px solid rgba(51,255,104,.4);border-radius:5px;background:rgba(2,12,6,.91);box-shadow:0 0 30px rgba(0,255,65,.12),inset 0 0 34px rgba(0,255,65,.035);backdrop-filter:blur(7px);position:relative;overflow:hidden}
body:not(.logged-in) .login-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#37ff65;box-shadow:0 0 13px #38ff69}
body:not(.logged-in) .login-copy{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;margin:0 0 27px}
body:not(.logged-in) .matrix-emblem{width:106px;height:106px;object-fit:contain;margin:17px 0 2px;filter:drop-shadow(0 0 7px rgba(53,255,94,.65)) drop-shadow(0 0 22px rgba(33,255,75,.2));animation:matrix-emblem-glow 4s ease-in-out infinite}
body:not(.logged-in) .matrix-overline{position:relative;z-index:8;font:9px var(--mono);letter-spacing:.24em;color:#a6f5b5;display:flex;align-items:center;gap:8px}
body:not(.logged-in) .matrix-overline span{width:6px;height:6px;border-radius:50%;background:#58ff7d;box-shadow:0 0 10px #58ff7d;animation:matrix-pulse 1.8s infinite}
body:not(.logged-in) .matrix-wordmark{font:800 clamp(28px,7vw,39px)/1 var(--mono);letter-spacing:.14em;color:#e0ffe5;margin:7px 0 10px;position:relative;text-shadow:0 0 8px #44ff6b,0 0 25px #13d74688;animation:matrix-flicker 5s infinite}
body:not(.logged-in) .matrix-wordmark::before,body:not(.logged-in) .matrix-wordmark::after{content:attr(data-text);position:absolute;inset:0;overflow:hidden;pointer-events:none}
body:not(.logged-in) .matrix-wordmark::before{color:#53ff74;transform:translateX(2px);clip-path:inset(0 0 72% 0);animation:matrix-glitch 3.4s infinite steps(1)}
body:not(.logged-in) .matrix-wordmark::after{color:#b5ffc3;transform:translateX(-2px);clip-path:inset(75% 0 0 0);animation:matrix-glitch 2.8s infinite steps(1) reverse}
body:not(.logged-in) .matrix-subtitle{font:10px var(--mono);letter-spacing:.27em;color:#58d875}
body:not(.logged-in) .matrix-typing{min-height:30px;margin-top:16px;max-width:100%;color:#36ff36;font:700 clamp(13px,3.5vw,18px)/1.45 var(--mono);letter-spacing:.015em;text-shadow:0 0 5px #00ff22,0 0 13px #00ed27,0 0 25px #00dc2488;overflow-wrap:anywhere}
body:not(.logged-in) .typing-cursor{display:inline-block;margin-left:3px;color:#74ff84;animation:typing-blink .75s steps(1) infinite;text-shadow:0 0 8px #00ff28}
body:not(.logged-in) .login-copy p{margin:14px 0 0;color:#8ca794;font-size:11px;line-height:1.6}
body:not(.logged-in) #login-form{display:grid;grid-template-columns:1fr;gap:13px}
body:not(.logged-in) #login-form label{font:9px var(--mono);letter-spacing:.16em;color:#8dbb98}
body:not(.logged-in) #login-form input,body:not(.logged-in) #login-form select{margin-top:7px;padding:12px 13px;background:rgba(0,5,2,.75);border:1px solid #285837;border-radius:2px;color:#e7ffeb;font:12px var(--mono);box-shadow:inset 0 0 12px rgba(0,255,75,.025)}
body:not(.logged-in) #login-form input:focus{border-color:#54ff79;box-shadow:0 0 10px rgba(51,255,92,.16);outline:none}
body:not(.logged-in) #login-form input::placeholder{color:#526f59}
body:not(.logged-in) .site-language-login{position:fixed;top:18px;right:20px;z-index:5;min-width:116px;padding:9px 12px;border:1px solid rgba(66,209,104,.38);border-radius:9px;background:rgba(4,20,9,.94);color:#b8e8c1;font:600 11px var(--sans);cursor:pointer;outline:none;backdrop-filter:blur(8px)}
body:not(.logged-in) .site-language-login:focus{border-color:#5be37a;box-shadow:0 0 12px rgba(50,255,93,.16)}
body.logged-in .site-language-login{display:none}
body:not(.logged-in) #login-form .primary{grid-column:auto;margin-top:3px;padding:13px;background:#28d84f;color:#001c07;border-radius:2px;font:700 10px var(--mono);letter-spacing:.18em;box-shadow:0 0 16px rgba(35,239,76,.2);transition:.18s}
body:not(.logged-in) #login-form .primary:hover{background:#61ff79;box-shadow:0 0 23px rgba(35,239,76,.38)}
body:not(.logged-in) #login-form .primary span{float:right;padding:0}
body:not(.logged-in) .form-note{grid-column:auto;color:#65816b;font:9px var(--mono);letter-spacing:.04em}
body:not(.logged-in) .login-error{margin-top:12px;text-align:center;font:11px var(--mono)}
body:not(.logged-in) .login-card-foot{display:flex;justify-content:space-between;border-top:1px solid rgba(87,173,104,.2);padding-top:12px;margin-top:15px;color:#55735b;font:8px var(--mono);letter-spacing:.1em}
body.logged-in .brand-logo{width:35px;height:35px;object-fit:contain;filter:drop-shadow(0 0 5px rgba(53,255,94,.45))}
body.logged-in #matrix-canvas{display:none}
body:not(.logged-in) #login-form .login-password-wrap{position:relative;display:block;width:100%;margin-top:7px}
body:not(.logged-in) #login-form .login-password-wrap input{box-sizing:border-box;width:100%;height:43px;margin:0;padding:12px 43px 12px 13px}
body:not(.logged-in) #login-form .login-password-toggle{position:absolute;right:5px;top:50%;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);padding:6px;border:1px solid rgba(72,137,86,.36);border-radius:7px;background:#07100a;color:#8dbb98;cursor:pointer}
body:not(.logged-in) #login-form .login-password-toggle:hover{border-color:#54ff79;color:#baffc5}
body:not(.logged-in) #login-form .login-password-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body:not(.logged-in) #login-form{gap:16px}
body:not(.logged-in) #login-form>label{display:block;font:600 10px var(--sans);letter-spacing:.09em;color:#9caf9f}
body:not(.logged-in) #login-form>label>input,body:not(.logged-in) #login-form>label>select,body:not(.logged-in) #login-form .login-password-wrap input{display:block;width:100%;min-height:46px;margin-top:8px;padding:12px 14px;border:1px solid #293d30;border-radius:11px;background:linear-gradient(145deg,rgba(20,29,23,.97),rgba(13,20,16,.98));color:#e8f3ea;font:500 13px var(--sans);letter-spacing:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 5px 14px rgba(0,0,0,.12);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
body:not(.logged-in) #login-form>label>input::placeholder{color:#718276}
body:not(.logged-in) #login-form>label>input:focus,body:not(.logged-in) #login-form>label>select:focus,body:not(.logged-in) #login-form .login-password-wrap input:focus{border-color:#39b95a;background:#111e15;box-shadow:0 0 0 3px rgba(51,205,91,.12),0 7px 18px rgba(0,0,0,.16);outline:none}
body:not(.logged-in) #login-form>label>select{appearance:none;cursor:pointer}
body:not(.logged-in) #login-form .login-password-wrap{margin-top:8px}
body:not(.logged-in) #login-form .login-password-wrap input{padding-right:51px}
body:not(.logged-in) #login-form .login-password-toggle{right:7px;width:34px;height:34px;border-color:#2d4635;border-radius:9px;background:#142019;color:#a5c5ac;transition:color .18s,border-color .18s,background .18s}
body:not(.logged-in) #login-form .login-password-toggle:hover{border-color:#39b95a;background:#1a2b1f;color:#c6ffd0}
body:not(.logged-in) #login-form .primary{min-height:47px;margin-top:2px;border-radius:11px;font:750 12px var(--sans);letter-spacing:.08em}
@keyframes matrix-pulse{50%{opacity:.35;box-shadow:0 0 2px #58ff7d}}
@keyframes matrix-flicker{0%,94%,96%,100%{opacity:1}95%{opacity:.76}}
@keyframes matrix-glitch{0%,91%,100%{clip-path:inset(100% 0 0 0)}92%{clip-path:inset(15% 0 69% 0)}94%{clip-path:inset(70% 0 10% 0)}}
@keyframes matrix-emblem-glow{50%{filter:drop-shadow(0 0 11px rgba(53,255,94,.82)) drop-shadow(0 0 28px rgba(33,255,75,.3));transform:translateY(-2px)}}
@keyframes typing-blink{50%{opacity:0}}
@media(max-width:480px){body:not(.logged-in) .content{padding:17px}body:not(.logged-in) .login-panel{padding:25px 22px 16px}body:not(.logged-in) .matrix-emblem{width:88px;height:88px;margin-top:13px}body:not(.logged-in) .matrix-wordmark{font-size:30px}}
@media(max-height:700px){body:not(.logged-in){overflow-y:auto}body:not(.logged-in) .content{min-height:100svh}body:not(.logged-in) .login-panel{margin:16px auto}body:not(.logged-in) .matrix-emblem{width:78px;height:78px;margin-top:9px}body:not(.logged-in) .login-copy{margin-bottom:18px}}

.brand .brand-wordmark{display:block;background:linear-gradient(100deg,#18a83c 0%,#42ff70 20%,#c6ffd1 35%,#20e652 50%,#078c2c 66%,#7dff98 82%,#18a83c 100%);background-size:300% 100%;background-position:0% 50%;color:transparent!important;-webkit-text-fill-color:transparent!important;background-clip:text;-webkit-background-clip:text;animation:arcturus-word-wave 2.4s linear infinite}.brand .brand-wordmark small{background:none;color:#70a27a;-webkit-text-fill-color:#70a27a!important}.brand:hover .brand-wordmark{text-shadow:0 0 16px #35ff6744}@keyframes arcturus-word-wave{from{background-position:0% 50%}to{background-position:100% 50%}}@media(prefers-reduced-motion:reduce){.brand .brand-wordmark{animation:none;background-position:50% 50%}}

.brand{gap:13px}.brand .brand-logo{width:43px;height:43px}.brand .brand-wordmark{font-size:16px}.brand .brand-wordmark small{font-size:10px;letter-spacing:.18em;margin-top:6px}

body.logged-in .brand .brand-logo{width:50px;height:50px;flex:none}
.brand .brand-wordmark{font-size:20px;letter-spacing:.13em;color:#48ed6d!important;-webkit-text-fill-color:initial!important;background:none!important;animation:none!important;text-shadow:0 0 8px #20d84b66}
.brand .brand-wave-word{display:inline-flex;white-space:nowrap}
.brand .brand-wave-letter{display:inline-block;color:#36d95a;-webkit-text-fill-color:#36d95a;animation:arcturus-letter-wave 1.7s ease-in-out infinite;text-shadow:0 0 7px #25e85b55}
.brand .brand-wave-letter:nth-child(2){animation-delay:.12s}.brand .brand-wave-letter:nth-child(3){animation-delay:.24s}.brand .brand-wave-letter:nth-child(4){animation-delay:.36s}.brand .brand-wave-letter:nth-child(5){animation-delay:.48s}.brand .brand-wave-letter:nth-child(6){animation-delay:.60s}.brand .brand-wave-letter:nth-child(7){animation-delay:.72s}.brand .brand-wave-letter:nth-child(8){animation-delay:.84s}
@keyframes arcturus-letter-wave{0%,100%{color:#159a37;-webkit-text-fill-color:#159a37;text-shadow:0 0 2px #159a3744}50%{color:#9dffad;-webkit-text-fill-color:#9dffad;text-shadow:0 0 12px #39ff68,0 0 22px #20d84b}}
.brand .brand-wordmark small{display:block;margin-top:7px;font-size:11px;letter-spacing:.2em;color:#83a68a;-webkit-text-fill-color:#83a68a!important}
@media(prefers-reduced-motion:reduce){.brand .brand-wave-letter{animation:none;color:#53e978;-webkit-text-fill-color:#53e978}}

.brand .brand-wave-word{display:inline-block;background:linear-gradient(105deg,#079b31 0%,#19ce4b 18%,#b4ffc4 34%,#35f668 47%,#078c2c 61%,#9bffae 78%,#16c944 91%,#079b31 100%);background-size:300% 100%;background-position:0% 50%;background-clip:text;-webkit-background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important;animation:arcturus-flowing-color 2.2s linear infinite;text-shadow:none}
@keyframes arcturus-flowing-color{from{background-position:0% 50%}to{background-position:100% 50%}}

.brand .brand-wave-word{background-image:repeating-linear-gradient(90deg,#0a8d2f 0px,#1bc94a 34px,#91ffac 58px,#36e95e 82px,#0a8d2f 128px,#0a8d2f 160px);background-size:auto;background-position:0 0;animation:arcturus-smooth-flow 5.5s linear infinite}
@keyframes arcturus-smooth-flow{from{background-position:0 0}to{background-position:-160px 0}}

.brand .brand-wordmark small{background-image:repeating-linear-gradient(90deg,#c83240 0px,#f04a58 34px,#ffc0c5 58px,#ff6874 82px,#c83240 128px,#c83240 160px);background-size:auto;background-position:0 0;background-clip:text;-webkit-background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent!important;animation:arcturus-smooth-flow 5.5s linear infinite}
.matrix-click-ripple{position:fixed;z-index:4;width:12px;height:12px;border:1px solid rgba(94,255,127,.8);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.2);box-shadow:0 0 12px rgba(48,255,80,.38),inset 0 0 8px rgba(48,255,80,.24);animation:matrix-click-wave .68s ease-out forwards}
.matrix-click-ripple:after{content:"";position:absolute;inset:-7px;border:1px solid rgba(58,255,95,.32);border-radius:inherit}
@keyframes matrix-click-wave{0%{opacity:.85;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(8)}}
@media(prefers-reduced-motion:reduce){.matrix-click-ripple{animation-duration:.2s}}
.matrix-cursor-trail{position:fixed;inset:0;z-index:2;pointer-events:none}
body.logged-in .matrix-cursor-trail{display:none}

body:not(.logged-in) .login-active-counter{position:absolute;top:15px;right:16px;z-index:8;display:flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid rgba(66,209,104,.52);border-radius:999px;background:rgba(4,24,11,.96);color:#a6f5b5;font:8px var(--mono);letter-spacing:.13em}body:not(.logged-in) .login-active-counter strong{color:#dcffe4;font-size:11px;letter-spacing:.04em}body:not(.logged-in) .login-active-counter .green-dot{width:6px;height:6px}
footer:not([class]){display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
footer:not([class]) span{float:none;margin:0}
@media(max-width:480px){body:not(.logged-in) .site-language-login{top:10px;right:10px;min-width:100px;padding:8px 9px}}

body:not(.logged-in) .discord-join-button{position:fixed;top:18px;left:20px;z-index:5;display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border:1px solid rgba(66,209,104,.38);border-radius:9px;background:rgba(4,20,9,.94);color:#b8e8c1;font:600 12px var(--sans);backdrop-filter:blur(8px);box-shadow:0 0 14px rgba(0,255,65,.07);cursor:default}
body:not(.logged-in) .discord-join-button svg{width:17px;height:17px;fill:#75e991;flex:none}
body:not(.logged-in) .discord-join-button:hover{border-color:rgba(66,255,116,.65);background:rgba(8,31,15,.96);color:#dcffe3}
body.logged-in .login-discord-button{display:none}
@media(max-width:480px){body:not(.logged-in) .discord-join-button{top:10px;left:10px;padding:8px 10px;font-size:10px}}

body:not(.logged-in) .login-discord-button{position:fixed;top:18px;left:20px}
body.logged-in .header-discord-join{position:static;display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(66,209,104,.38);border-radius:9px;background:rgba(4,20,9,.94);color:#b8e8c1;font:600 11px var(--sans);backdrop-filter:blur(8px);box-shadow:0 0 14px rgba(0,255,65,.07);cursor:default}
body.logged-in .header-discord-join svg{width:16px;height:16px;fill:#75e991;flex:none}
body.logged-in .header-discord-join:hover{border-color:rgba(66,255,116,.65);background:rgba(8,31,15,.96);color:#dcffe3}
@media(max-width:620px){body.logged-in .top-right{gap:9px}body.logged-in .header-discord-join{padding:8px 9px;font-size:10px}}
body:not(.logged-in) .login-music-toggle{position:fixed;top:62px;right:20px;z-index:5;width:116px;height:38px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(66,209,104,.38);border-radius:9px;background:rgba(4,20,9,.94);color:#b8e8c1;backdrop-filter:blur(8px);box-shadow:0 0 14px rgba(0,255,65,.07);cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s}
body:not(.logged-in) .login-music-toggle:hover{border-color:rgba(66,255,116,.65);background:rgba(8,31,15,.96);box-shadow:0 0 15px rgba(0,255,65,.14)}
.login-music-toggle span{font:700 9px var(--mono);letter-spacing:.08em}.login-music-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-music-toggle .speaker{fill:currentColor;stroke:none}
.login-music-toggle .sound-muted{display:none}
.login-music-toggle[aria-pressed="false"] .sound-wave,.login-music-toggle[aria-pressed="true"] .sound-muted{display:none}
.login-music-toggle[aria-pressed="false"] .sound-muted{display:block}
body.logged-in .login-music-toggle{display:none}
#login-theme-audio{display:none}
@media(max-width:480px){body:not(.logged-in) .login-music-toggle{top:54px;right:10px;width:100px;height:34px}}

body.logged-in .header-music-toggle{position:static;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 11px;border:1px solid rgba(66,209,104,.38);border-radius:9px;background:rgba(4,20,9,.94);color:#b8e8c1;font:600 10px var(--sans);backdrop-filter:blur(8px);box-shadow:0 0 14px rgba(0,255,65,.07);cursor:pointer}
body.logged-in .header-music-toggle:hover{border-color:rgba(66,255,116,.65);background:rgba(8,31,15,.96);color:#dcffe3}

body:not(.logged-in) .login-twofa-notice{position:fixed;top:69px;left:20px;z-index:5;box-sizing:border-box;width:min(380px,calc(100vw - 40px));margin:0;padding:9px 12px;border:1px solid rgba(66,209,104,.35);border-radius:9px;background:rgba(4,20,9,.9);color:#a8d9b1;font:500 11px/1.5 var(--sans);backdrop-filter:blur(8px);box-shadow:0 0 12px rgba(0,255,65,.05)}
body.logged-in .login-twofa-notice{display:none}
@media(max-width:480px){body:not(.logged-in) .login-twofa-notice{top:58px;left:10px;width:min(350px,calc(100vw - 20px));padding:8px 10px;font-size:10px}}
.site-music-toggle span{font:700 9px var(--mono);letter-spacing:.08em}
.site-music-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.site-music-toggle .speaker{fill:currentColor;stroke:none}
.site-music-toggle .sound-muted{display:none}
.site-music-toggle[aria-pressed="false"] .sound-wave,.site-music-toggle[aria-pressed="true"] .sound-muted{display:none}
.site-music-toggle[aria-pressed="false"] .sound-muted{display:block}
body:not(.logged-in) .header-music-toggle{display:none}
body.logged-in .login-music-toggle{display:none}
@media(max-width:620px){body.logged-in .top-right{gap:8px}body.logged-in .header-music-toggle{min-height:34px;padding:7px 8px;gap:5px}body.logged-in .header-music-toggle span{font-size:8px}}
