:root{--color-background: #f8fafc;--color-surface: #ffffff;--color-surface-container-lowest: #ffffff;--color-surface-container-low: #f1f5f9;--color-surface-container: #e2e8f0;--color-surface-container-high: #cbd5e1;--color-on-background: #0f172a;--color-on-surface: #1e293b;--color-on-surface-variant: #475569;--color-primary: #4f46e5;--color-on-primary: #ffffff;--color-secondary: #6366f1;--color-secondary-container: #e0e7ff;--color-on-secondary-container: #4338ca;--color-accent: #0ea5e9;--color-outline: #94a3b8;--color-outline-variant: #e2e8f0;--color-error: #ef4444;--color-success: #10b981;--color-primary-05: rgb(79 70 229 / .05);--color-primary-10: rgb(79 70 229 / .1);--color-primary-15: rgb(79 70 229 / .15);--color-primary-20: rgb(79 70 229 / .2);--color-primary-90: rgb(79 70 229 / .9);--space-page: clamp(1.25rem, 5vw, 4rem);--space-gutter: clamp(1rem, 3vw, 2rem);--container-max: 1280px;--radius: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-card: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -1px rgb(0 0 0 / .04);--shadow-card-hover: 0 12px 20px -4px rgb(79 70 229 / .15), 0 4px 8px -2px rgb(0 0 0 / .06);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .18s;--dur-base: .35s;--dur-slow: .6s;color-scheme:light}:root[data-theme=dark],:root.theme-dark{--color-background: #0f172a;--color-surface: #1e293b;--color-surface-container-lowest: #1e293b;--color-surface-container-low: #263044;--color-surface-container: #2d3748;--color-surface-container-high: #374151;--color-on-background: #f1f5f9;--color-on-surface: #e2e8f0;--color-on-surface-variant: #94a3b8;--color-primary: #818cf8;--color-on-primary: #1e1b4b;--color-secondary: #a5b4fc;--color-secondary-container: #312e81;--color-on-secondary-container: #c7d2fe;--color-accent: #38bdf8;--color-outline: #475569;--color-outline-variant: #334155;--color-primary-05: rgb(129 140 248 / .05);--color-primary-10: rgb(129 140 248 / .1);--color-primary-15: rgb(129 140 248 / .15);--color-primary-20: rgb(129 140 248 / .2);--color-primary-90: rgb(129 140 248 / .85);--shadow-card: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -1px rgb(0 0 0 / .2);--shadow-card-hover: 0 12px 20px -4px rgb(129 140 248 / .2), 0 4px 8px -2px rgb(0 0 0 / .3);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-background: #0f172a;--color-surface: #1e293b;--color-surface-container-lowest: #1e293b;--color-surface-container-low: #263044;--color-surface-container: #2d3748;--color-surface-container-high: #374151;--color-on-background: #f1f5f9;--color-on-surface: #e2e8f0;--color-on-surface-variant: #94a3b8;--color-primary: #818cf8;--color-on-primary: #1e1b4b;--color-secondary: #a5b4fc;--color-secondary-container: #312e81;--color-on-secondary-container: #c7d2fe;--color-accent: #38bdf8;--color-outline: #475569;--color-outline-variant: #334155;--color-primary-05: rgb(129 140 248 / .05);--color-primary-10: rgb(129 140 248 / .1);--color-primary-15: rgb(129 140 248 / .15);--color-primary-20: rgb(129 140 248 / .2);--color-primary-90: rgb(129 140 248 / .85);--shadow-card: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -1px rgb(0 0 0 / .2);--shadow-card-hover: 0 12px 20px -4px rgb(129 140 248 / .2), 0 4px 8px -2px rgb(0 0 0 / .3);color-scheme:dark}}html,body{margin:0;width:100%;min-height:100%;background:var(--color-background);color:var(--color-on-background);font-family:Hanken Grotesk,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;scroll-behavior:smooth;transition:background .4s ease,color .4s ease}[data-astro-cid-sckkx6r4],*,*:before,*:after{box-sizing:border-box}[data-astro-cid-sckkx6r4]::selection{background:var(--color-secondary-container);color:var(--color-on-secondary-container)}body{overflow-x:hidden}a[data-astro-cid-sckkx6r4]{color:inherit}button[data-astro-cid-sckkx6r4],input[data-astro-cid-sckkx6r4],textarea[data-astro-cid-sckkx6r4]{font:inherit}button[data-astro-cid-sckkx6r4]{cursor:pointer}.material-symbols-outlined[data-astro-cid-sckkx6r4]{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-lg);border:0;font-weight:800;line-height:1;text-align:center;text-decoration:none;transition:background .2s ease,color .2s ease,transform .2s var(--ease-out),box-shadow .2s ease}.button:active{transform:scale(.97)}.button-primary{background:var(--color-primary);color:var(--color-on-primary)}.button-primary:hover{background:var(--color-primary-90);transform:translateY(-2px);box-shadow:0 8px 18px -6px var(--color-primary-20)}.button-outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.button-outline:hover{background:var(--color-primary-05);transform:translateY(-2px)}.button-small{padding:.75rem 1.5rem}.button-large{padding:1rem 2.5rem;font-size:1.125rem}.full-width{width:100%}.academic-card{background:var(--color-surface);border:1px solid var(--color-outline-variant);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);transition:transform .25s var(--ease-out),box-shadow .25s ease,border-color .25s ease}.academic-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);border-color:var(--color-primary-20)}label{display:grid;gap:.375rem}label span{color:var(--color-primary);font-size:.875rem;font-weight:800}input,textarea{width:100%;box-sizing:border-box;border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);background:var(--color-surface-container-lowest);color:var(--color-on-surface);padding:.875rem 1rem;transition:border-color .2s ease,box-shadow .2s ease}input:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-15);outline:none}.login-form{position:relative}.auth-theme-toggle{position:absolute;top:1rem;right:1rem}.login-brand{text-align:center;margin-bottom:.25rem}.login-brand .brand{color:var(--color-primary);font-size:2rem;font-weight:800;text-decoration:none}.login-brand p{margin:.25rem 0 0;color:var(--color-on-surface-variant);font-size:.9375rem}.login-error{padding:.75rem 1rem;border-radius:var(--radius-lg);background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.875rem;font-weight:600}.login-submit{padding:.875rem 1rem;font-size:1rem}.google-button{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1rem;font-size:1rem;font-weight:700;background:#fff;color:#3c4043;border:1px solid var(--color-outline-variant);box-shadow:0 1px 3px #00000014;transition:background .2s ease,box-shadow .2s ease}.google-button:hover{background:#f8faff;box-shadow:0 2px 6px #0000001f}.google-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.login-form--loading{min-height:12rem}.register-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:480px){.register-row{grid-template-columns:1fr}}.register-signin{margin:0;text-align:center;color:var(--color-on-surface-variant);font-size:.875rem}.register-signin a{color:var(--color-primary);font-weight:700;text-decoration:none}.register-signin a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,.button:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-15);border-radius:var(--radius)}.anim-fade-up{animation:fade-up var(--dur-base) var(--ease-out) both}.anim-fade-in{animation:fade-in var(--dur-base) ease both}.anim-scale-in{animation:scale-in var(--dur-base) var(--ease-spring) both}.anim-slide-in{animation:slide-in-right var(--dur-base) var(--ease-out) both}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity var(--dur-slow) ease var(--reveal-delay, 0s),transform var(--dur-slow) var(--ease-out) var(--reveal-delay, 0s);will-change:opacity,transform}[data-reveal=left]{transform:translate(-32px)}[data-reveal=right]{transform:translate(32px)}[data-reveal=scale]{transform:scale(.92)}[data-reveal].is-visible{opacity:1;transform:none}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;border:1px solid var(--color-outline-variant);background:var(--color-surface-container-low);color:var(--color-on-surface-variant);transition:background .2s ease,color .2s ease,transform .3s var(--ease-spring),border-color .2s ease}.theme-toggle:hover{background:var(--color-primary-10);color:var(--color-primary);border-color:var(--color-primary-20);transform:rotate(15deg)}.theme-toggle .material-symbols-outlined{font-size:1.25rem;transition:transform .4s var(--ease-spring)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}[data-reveal]{opacity:1!important;transform:none!important}}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes draw-line{to{stroke-dashoffset:0}}
