:root{--color-academic: #717E87;--color-academic-light: #8a96a0;--color-academic-dark: #5a666e;--color-creative: #B57FF4;--color-creative-light: #c999f7;--color-creative-dark: #9966e8;--color-purple: #B57FF4;--color-purple-dark: #9966e8;--color-blue: #717E87;--color-blue-dark: #5a666e;--color-orange: #c999f7;--color-orange-dark: #9966e8;--color-cyan: #8a96a0;--color-yellow: #c999f7;--gradient-academic: linear-gradient(135deg, #717E87 0%, #5a666e 100%);--gradient-creative: linear-gradient(135deg, #B57FF4 0%, #9966e8 100%);--gradient-mixed: linear-gradient(135deg, #717E87 0%, #938dbd 50%, #B57FF4 100%);--gradient-purple: linear-gradient(135deg, #B57FF4 0%, #9966e8 100%);--gradient-blue: linear-gradient(135deg, #717E87 0%, #5a666e 100%);--gradient-orange: linear-gradient(135deg, #c999f7 0%, #B57FF4 100%);--gradient-hero: linear-gradient(135deg, rgba(113, 126, 135, .08) 0%, rgba(147, 141, 189, .08) 50%, rgba(181, 127, 244, .08) 100%);--bg-primary: #ffffff;--bg-secondary: #fafbfc;--bg-tertiary: #f3f4f6;--bg-card: #ffffff;--bg-overlay: rgba(255, 255, 255, .98);--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--text-light: #d1d5db;--text-inverse: #ffffff;--border-color: #e5e7eb;--border-light: #f3f4f6;--border-dark: #d1d5db;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-display: "Playfair Display", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--spacing-5xl: 8rem;--radius-none: 0;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .08);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .12);--shadow-2xl: 0 25px 50px rgba(0, 0, 0, .15);--shadow-card: 0 4px 12px rgba(0, 0, 0, .08);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .12);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .04);--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-slower: .6s cubic-bezier(.4, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--header-height: 80px;--footer-height: 200px;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px;--opacity-0: 0;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1}@media(prefers-color-scheme:dark){:root{--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--bg-tertiary: #3a3a3a;--bg-card: #2a2a2a;--bg-overlay: rgba(26, 26, 26, .95);--text-primary: #ffffff;--text-secondary: #cccccc;--text-tertiary: #999999;--text-light: #666666;--text-inverse: #1a1a1a;--border-color: #3a3a3a;--border-light: #2a2a2a;--border-dark: #4a4a4a;--shadow-card: 0 8px 16px rgba(0, 0, 0, .3);--shadow-card-hover: 0 16px 32px rgba(0, 0, 0, .4)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleDown{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes gradientShift{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(-20px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.animate-fade-in{animation:fadeIn .5s var(--ease-out) forwards}.animate-fade-in-up{animation:fadeInUp .6s var(--ease-out) forwards}.animate-fade-in-down{animation:fadeInDown .6s var(--ease-out) forwards}.animate-scale-up{animation:scaleUp .3s var(--ease-out) forwards}.animate-scale-down{animation:scaleDown .3s var(--ease-out) forwards}.animate-slide-in-left{animation:slideInLeft .4s var(--ease-out) forwards}.animate-slide-in-right{animation:slideInRight .4s var(--ease-out) forwards}.animate-pulse{animation:pulse 2s var(--ease-in-out) infinite}.animate-bounce{animation:bounce 1s var(--ease-in-out) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-float{animation:float 3s var(--ease-in-out) infinite}.animate-wiggle{animation:wiggle .5s var(--ease-in-out)}.animate-shimmer{background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--bg-tertiary) 50%,var(--bg-secondary) 100%);background-size:1000px 100%;animation:shimmer 2s infinite}.animate-gradient{background-size:200% 200%;animation:gradientShift 3s ease infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 16px #b57ff44d}.hover-brighten{transition:filter var(--transition-base)}.hover-brighten:hover{filter:brightness(1.1)}.hover-underline{position:relative;transition:color var(--transition-base)}.hover-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:currentColor;transition:width var(--transition-base)}.hover-underline:hover:after{width:100%}.hover-gradient-underline{position:relative}.hover-gradient-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--gradient-mixed);transition:width var(--transition-base)}.hover-gradient-underline:hover:after{width:100%}.animate-on-scroll{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}.stagger-item{opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.stagger-item.is-visible{opacity:1;transform:translateY(0)}.stagger-item:nth-child(1){transition-delay:0ms}.stagger-item:nth-child(2){transition-delay:.1s}.stagger-item:nth-child(3){transition-delay:.2s}.stagger-item:nth-child(4){transition-delay:.3s}.stagger-item:nth-child(5){transition-delay:.4s}.stagger-item:nth-child(6){transition-delay:.5s}.spinner{width:40px;height:40px;border:4px solid var(--border-light);border-top-color:var(--color-purple);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-dots{display:flex;gap:8px}.loading-dots span{width:8px;height:8px;background:var(--color-purple);border-radius:var(--radius-full);animation:bounce 1.4s infinite ease-in-out}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.transition-all{transition:all var(--transition-base)}.transition-colors{transition:color var(--transition-base),background-color var(--transition-base),border-color var(--transition-base)}.transition-opacity{transition:opacity var(--transition-base)}.transition-transform{transition:transform var(--transition-base)}.transition-shadow{transition:box-shadow var(--transition-base)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.gap-2xl{gap:var(--spacing-2xl)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.m-2xl{margin:var(--spacing-2xl)}.m-3xl{margin:var(--spacing-3xl)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-2xl{margin-top:var(--spacing-2xl)}.mt-3xl{margin-top:var(--spacing-3xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-2xl{margin-bottom:var(--spacing-2xl)}.mb-3xl{margin-bottom:var(--spacing-3xl)}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-2xl{padding:var(--spacing-2xl)}.p-3xl{padding:var(--spacing-3xl)}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pt-2xl{padding-top:var(--spacing-2xl)}.pt-3xl{padding-top:var(--spacing-3xl)}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pb-2xl{padding-bottom:var(--spacing-2xl)}.pb-3xl{padding-bottom:var(--spacing-3xl)}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}.font-light{font-weight:var(--font-light)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.text-5xl{font-size:var(--text-5xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-card{background-color:var(--bg-card)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-card{box-shadow:var(--shadow-card)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.z-0{z-index:var(--z-base)}.z-10{z-index:var(--z-dropdown)}.z-20{z-index:var(--z-sticky)}.z-30{z-index:var(--z-fixed)}.z-40{z-index:var(--z-modal-backdrop)}.z-50{z-index:var(--z-modal)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-default{cursor:default}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:text-lg{font-size:var(--text-lg)}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-xl{font-size:var(--text-xl)}.md\:text-2xl{font-size:var(--text-2xl)}.md\:text-3xl{font-size:var(--text-3xl)}.md\:block{display:block}.md\:hidden{display:none}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-2xl{font-size:var(--text-2xl)}.lg\:text-3xl{font-size:var(--text-3xl)}.lg\:text-4xl{font-size:var(--text-4xl)}.lg\:text-5xl{font-size:var(--text-5xl)}.lg\:block{display:block}.lg\:hidden{display:none}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:text-5xl{font-size:var(--text-5xl)}.xl\:text-6xl{font-size:var(--text-6xl)}}.skip-link{position:absolute;top:-40px;left:0;background:var(--text-primary);color:var(--text-inverse);padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;z-index:var(--z-tooltip);border-radius:0 0 var(--radius-md) 0;font-weight:var(--font-semibold);transition:top var(--transition-fast)}.skip-link:focus{top:0}*:focus-visible{outline:3px solid var(--color-purple);outline-offset:2px}*:focus:not(:focus-visible){outline:none}@media(prefers-contrast:high){:root{--text-primary: #000000;--text-secondary: #1a1a1a;--bg-primary: #ffffff;--border-color: #000000}}@media print{.no-print{display:none!important}body{background:#fff;color:#000}a[href]:after{content:" (" attr(href) ")"}}:root{font-family:var(--font-primary);line-height:var(--leading-normal);font-weight:var(--font-normal);color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;color:var(--text-primary);background-color:var(--bg-primary)}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-purple);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-purple-dark)}h1,h2,h3,h4,h5,h6{line-height:var(--leading-tight);font-weight:var(--font-semibold);color:var(--text-primary)}h1{font-size:var(--text-5xl);font-family:var(--font-display)}h2{font-size:var(--text-4xl);font-family:var(--font-display)}h3{font-size:var(--text-3xl)}p{line-height:var(--leading-relaxed);color:var(--text-secondary)}button{border-radius:var(--radius-lg);border:1px solid transparent;padding:.75em 1.5em;font-size:var(--text-base);font-weight:var(--font-medium);font-family:inherit;background:var(--gradient-purple);color:var(--text-inverse);cursor:pointer;transition:all var(--transition-base)}button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}button:active{transform:translateY(0)}button:focus,button:focus-visible{outline:2px solid var(--color-purple);outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed;transform:none}input,textarea,select{font-family:inherit;font-size:var(--text-base);padding:.75em;border:1px solid var(--border-color);border-radius:var(--radius-lg);background-color:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-base)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-purple);box-shadow:0 0 0 3px #9b87f51a}img{max-width:100%;height:auto;display:block}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.text-center{text-align:center}.text-muted{color:var(--text-tertiary)}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}@media(max-width:768px){h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}}.loading-container,.error-container{display:flex;justify-content:center;align-items:center;min-height:50vh;padding:var(--spacing-xl)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--color-purple);outline-offset:2px;border-radius:var(--radius-sm)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-xl);background:var(--bg-color)}.error-boundary-content{text-align:center;max-width:600px}.error-boundary-title{font-size:2.5rem;margin-bottom:var(--spacing-lg);color:var(--danger-color)}.error-boundary-message{font-size:1.125rem;color:var(--text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6}.error-boundary-details{text-align:left;margin:var(--spacing-lg) 0;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.error-boundary-details summary{cursor:pointer;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-color)}.error-boundary-details pre{margin:var(--spacing-sm) 0;padding:var(--spacing-sm);background:var(--bg-color);border-radius:var(--radius-sm);overflow-x:auto;font-size:.875rem;color:var(--text-secondary)}.error-boundary-button{padding:.75rem 2rem;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.error-boundary-button:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #007bff4d}@media(max-width:768px){.error-boundary-title{font-size:2rem}.error-boundary-message{font-size:1rem}}.navigation{position:sticky;top:0;z-index:var(--z-sticky);background:transparent;transition:all var(--transition-base);height:var(--header-height);display:flex;align-items:center}.navigation.scrolled{background:#fffffffa;-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border-light)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;width:100%}.nav-logo{font-size:var(--text-2xl);font-family:var(--font-display);font-weight:var(--font-bold);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;transition:transform var(--transition-base)}.nav-logo:hover{transform:scale(1.05)}.mobile-menu-toggle{display:none;flex-direction:column;gap:6px;background:none;border:none;cursor:pointer;padding:var(--spacing-sm);z-index:var(--z-fixed)}.hamburger-line{width:24px;height:2px;background:var(--text-primary);border-radius:var(--radius-full);transition:all var(--transition-base)}.mobile-menu-toggle.open .hamburger-line:nth-child(1){transform:rotate(45deg) translateY(8px)}.mobile-menu-toggle.open .hamburger-line:nth-child(2){opacity:0}.mobile-menu-toggle.open .hamburger-line:nth-child(3){transform:rotate(-45deg) translateY(-8px)}.nav-links{display:flex;list-style:none;gap:var(--spacing-lg);margin:0;padding:0;align-items:center}.nav-link{color:var(--text-primary);text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);font-weight:var(--font-medium);font-size:var(--text-base);transition:all var(--transition-base);position:relative}.nav-link:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background:var(--gradient-mixed);transition:width var(--transition-base)}.nav-link:hover{color:var(--color-purple)}.nav-link:hover:after{width:80%}.nav-link.active{background:var(--gradient-purple);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.nav-link.active:after{display:none}.admin-link{background:var(--gradient-orange);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.admin-link:hover{color:var(--text-inverse);box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-link:after{display:none}.mobile-overlay{display:none}@media(max-width:768px){.navigation{background:#fffffff2;-webkit-backdrop-filter:blur(var(--blur-lg));backdrop-filter:blur(var(--blur-lg));box-shadow:var(--shadow-sm)}.nav-container{padding:0 var(--spacing-md)}.mobile-menu-toggle{display:flex}.nav-links{position:fixed;top:var(--header-height);right:0;bottom:0;width:280px;flex-direction:column;background:var(--bg-primary);box-shadow:var(--shadow-xl);padding:var(--spacing-2xl) var(--spacing-xl);gap:var(--spacing-md);transform:translate(100%);transition:transform var(--transition-base);align-items:stretch;overflow-y:auto}.nav-links.mobile-open{transform:translate(0)}.nav-links.mobile-open li{animation:slideInRight .3s ease-out forwards;opacity:0}.nav-links.mobile-open li:nth-child(1){animation-delay:.05s}.nav-links.mobile-open li:nth-child(2){animation-delay:.1s}.nav-links.mobile-open li:nth-child(3){animation-delay:.15s}.nav-links.mobile-open li:nth-child(4){animation-delay:.2s}.nav-links.mobile-open li:nth-child(5){animation-delay:.25s}.nav-links.mobile-open li:nth-child(6){animation-delay:.3s}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.nav-link{display:block;width:100%;text-align:center;padding:var(--spacing-md)}.mobile-overlay{display:block;position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));z-index:calc(var(--z-sticky) - 1)}}@media(prefers-color-scheme:dark){.navigation.scrolled{background:#1a1a1af2}@media(max-width:768px){.navigation{background:#1a1a1af2}}}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);margin-top:var(--spacing-5xl);padding:var(--spacing-4xl) 0 var(--spacing-xl)}.footer .container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl)}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--spacing-3xl);margin-bottom:var(--spacing-3xl);padding-bottom:var(--spacing-3xl);border-bottom:1px solid var(--border-light)}.footer-brand{max-width:360px}.footer-logo{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-bold);margin:0 0 var(--spacing-xs) 0;background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--leading-tight)}.footer-tagline{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0;font-weight:var(--font-medium)}.footer-description{font-size:var(--text-sm);color:var(--text-tertiary);line-height:var(--leading-relaxed);margin:0}.footer-section{display:flex;flex-direction:column}.footer-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-primary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 var(--spacing-md) 0}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.footer-links a{color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--spacing-xs);line-height:var(--leading-normal)}.footer-links a:hover{color:var(--color-purple);transform:translate(2px)}.footer-social-link{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.social-icon{font-size:var(--text-base);display:inline-flex;align-items:center;justify-content:center;width:20px}.footer-bottom{padding-top:0}.footer-bottom-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md)}.footer-copyright,.footer-tech{font-size:var(--text-xs);color:var(--text-tertiary);margin:0;line-height:var(--leading-normal)}@media(max-width:1024px){.footer-content{grid-template-columns:1fr 1fr;gap:var(--spacing-2xl)}.footer-brand{grid-column:1 / -1;max-width:100%;margin-bottom:var(--spacing-lg)}}@media(max-width:768px){.footer{margin-top:var(--spacing-4xl);padding:var(--spacing-3xl) 0 var(--spacing-lg)}.footer .container{padding:0 var(--spacing-md)}.footer-content{grid-template-columns:1fr;gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}.footer-brand{text-align:center;margin-bottom:0}.footer-section{text-align:center;align-items:center}.footer-links{align-items:center}.footer-bottom-content{flex-direction:column;text-align:center;gap:var(--spacing-xs)}.footer-logo{font-size:var(--text-lg)}}@media(max-width:480px){.footer{padding:var(--spacing-2xl) 0 var(--spacing-md)}.footer-content{gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-xl)}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;min-height:300px}.spinner{width:50px;height:50px;border:4px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #646cff);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner p{margin-top:1rem;color:var(--color-text-secondary, #666)}.error-message{padding:2rem;margin:2rem 0;background:#fee;border:2px solid #fcc;border-radius:8px;text-align:center}.error-message h2{color:#c33;margin-bottom:1rem}.error-message p{color:#666;margin-bottom:1.5rem}.error-message button{padding:.75rem 1.5rem;background:#c33;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .2s}.error-message button:hover{background:#a22}@media(prefers-color-scheme:dark){.error-message{background:#3a1a1a;border-color:#5a2a2a}.error-message h2{color:#ff6b6b}.error-message p{color:#ccc}}.hero-section{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;overflow:hidden}.hero-section--full{min-height:100vh}.hero-section--large{min-height:80vh}.hero-section--medium{min-height:60vh}.hero-section__background{position:absolute;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0}.hero-section__overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.hero-section--gradient .hero-section__overlay{background:var(--gradient-hero);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px)}.hero-section__content{position:relative;z-index:2;text-align:center;max-width:900px;padding:var(--spacing-2xl);animation:fadeInUp 1s var(--ease-out) forwards}.hero-section__title{font-size:var(--text-6xl);font-family:var(--font-display);font-weight:var(--font-bold);line-height:var(--leading-tight);margin-bottom:var(--spacing-lg);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeInUp 1s var(--ease-out) .2s forwards;opacity:0;animation-fill-mode:forwards}.hero-section__subtitle{font-size:var(--text-2xl);font-weight:var(--font-light);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0;animation:fadeInUp 1s var(--ease-out) .4s forwards;opacity:0;animation-fill-mode:forwards}.hero-section__scroll-indicator{position:absolute;bottom:var(--spacing-3xl);left:50%;transform:translate(-50%);z-index:2;animation:bounce 2s infinite}.hero-section__scroll-arrow{width:24px;height:24px;border-left:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:rotate(-45deg)}@media(max-width:1024px){.hero-section__title{font-size:var(--text-5xl)}.hero-section__subtitle{font-size:var(--text-xl)}}@media(max-width:768px){.hero-section--full{min-height:100svh}.hero-section__content{padding:var(--spacing-xl)}.hero-section__title{font-size:var(--text-4xl)}.hero-section__subtitle{font-size:var(--text-lg)}.hero-section__scroll-indicator{bottom:var(--spacing-2xl)}}@media(max-width:480px){.hero-section__title{font-size:var(--text-3xl)}.hero-section__subtitle{font-size:var(--text-base)}}.stat-card{background:var(--bg-card);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-card);transition:all var(--transition-base);position:relative;overflow:hidden;border:1px solid var(--border-light)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:.05;z-index:0;transition:opacity var(--transition-base)}.stat-card--purple:before{background:var(--gradient-purple)}.stat-card--blue:before{background:var(--gradient-blue)}.stat-card--orange:before{background:var(--gradient-orange)}.stat-card--mixed:before{background:var(--gradient-mixed)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--border-color)}.stat-card:hover:before{opacity:.08}.stat-card__header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);position:relative;z-index:1}.stat-card__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xl);font-size:var(--text-2xl);background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-card--purple .stat-card__icon{color:var(--color-purple)}.stat-card--blue .stat-card__icon{color:var(--color-blue)}.stat-card--orange .stat-card__icon{color:var(--color-orange)}.stat-card--mixed .stat-card__icon{background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.stat-card__content{position:relative;z-index:1}.stat-card__value{font-size:var(--text-5xl);font-weight:var(--font-bold);font-family:var(--font-display);line-height:var(--leading-none);margin-bottom:var(--spacing-sm);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card--purple .stat-card__value{background:var(--gradient-purple);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card--blue .stat-card__value{background:var(--gradient-blue);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card--orange .stat-card__value{background:var(--gradient-orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card__subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.stat-card__progress{margin-top:var(--spacing-lg);height:8px;background:var(--bg-secondary);border-radius:var(--radius-full);overflow:hidden}.stat-card__progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.stat-card--purple .stat-card__progress-bar{background:var(--gradient-purple)}.stat-card--blue .stat-card__progress-bar{background:var(--gradient-blue)}.stat-card--orange .stat-card__progress-bar{background:var(--gradient-orange)}.stat-card--mixed .stat-card__progress-bar{background:var(--gradient-mixed)}.stat-card__extra{margin-top:var(--spacing-lg)}@media(max-width:768px){.stat-card{padding:var(--spacing-xl)}.stat-card__value{font-size:var(--text-4xl)}.stat-card__icon{width:40px;height:40px;font-size:var(--text-xl)}}.gradient-card{background:var(--bg-card);border-radius:var(--radius-2xl);padding:0;box-shadow:var(--shadow-card);transition:all var(--transition-base);position:relative;overflow:hidden;border:1px solid var(--border-light)}.gradient-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;z-index:0;transition:opacity var(--transition-base)}.gradient-card--purple:before{background:var(--gradient-purple)}.gradient-card--blue:before{background:var(--gradient-blue)}.gradient-card--orange:before{background:var(--gradient-orange)}.gradient-card--hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:var(--border-color)}.gradient-card--hover:hover:before{opacity:.06}.gradient-card--clickable{cursor:pointer}.gradient-card--clickable:active{transform:translateY(-1px)}.gradient-card>*{position:relative;z-index:1}@media(max-width:768px){.gradient-card--hover:hover{transform:translateY(-2px)}}.progress-bar-container{width:100%}.progress-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.progress-bar-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.progress-bar-value{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-secondary)}.progress-bar{width:100%;background:var(--bg-secondary);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar--sm{height:4px}.progress-bar--md{height:8px}.progress-bar--lg{height:12px}.progress-bar__fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow);position:relative;overflow:hidden}.progress-bar__fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.progress-bar__fill--purple{background:var(--gradient-creative)}.progress-bar__fill--blue{background:var(--gradient-academic)}.progress-bar__fill--orange{background:var(--gradient-creative)}.progress-bar__fill--cyan{background:linear-gradient(135deg,var(--color-academic-light) 0%,var(--color-academic) 100%)}.progress-bar__fill--yellow{background:linear-gradient(135deg,var(--color-creative-light) 0%,var(--color-creative) 100%)}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.about{min-height:100vh;padding:var(--spacing-2xl) 0}.profile-section{margin-bottom:var(--spacing-4xl);padding:var(--spacing-3xl) 0}.profile-content{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-3xl);align-items:center}.profile-image-wrapper{display:flex;justify-content:center;align-items:center}.profile-image-container{position:relative;width:250px;height:250px;border-radius:50%;padding:6px;background:var(--gradient-mixed);box-shadow:var(--shadow-card);transition:all var(--transition-base)}.profile-image-container:hover{transform:scale(1.05);box-shadow:var(--shadow-card-hover)}.profile-image-placeholder{width:100%;height:100%;border-radius:50%;background:var(--bg-card);display:flex;align-items:center;justify-content:center;overflow:hidden}.profile-icon{font-size:6rem;opacity:.3}.profile-text{display:flex;flex-direction:column;gap:var(--spacing-lg)}.profile-name{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--font-bold);margin:0;background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--leading-tight)}.profile-introduction{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--text-secondary);margin:0}.profile-contact{display:flex;align-items:center;gap:var(--spacing-md);margin:0;font-size:var(--text-base)}.contact-label{font-weight:var(--font-semibold);color:var(--text-primary)}.contact-link{color:var(--color-purple);text-decoration:none;transition:all var(--transition-base);font-weight:var(--font-medium)}.social-links{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.social-link{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);text-decoration:none;font-weight:var(--font-medium);font-size:var(--text-sm);transition:all var(--transition-base)}.social-link:hover{background:var(--gradient-purple);color:var(--text-inverse);border-color:transparent;transform:translateY(-2px);box-shadow:var(--shadow-md)}.social-icon{font-size:var(--text-lg)}.about-stats-section{margin-bottom:var(--spacing-4xl)}.stats-grid-about{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-xl)}.courses-section{margin-bottom:var(--spacing-4xl)}.section-title-about{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 0 var(--spacing-2xl) 0;background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.course-category{margin-bottom:var(--spacing-3xl)}.category-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--spacing-xl) 0;padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border-color)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg)}.course-card{padding:var(--spacing-lg);height:100%;display:flex;flex-direction:column;gap:var(--spacing-md)}.course-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.course-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);line-height:var(--leading-snug)}.course-semester{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium)}.course-meta{display:flex;gap:var(--spacing-md);font-size:var(--text-sm);color:var(--text-secondary)}.course-credits,.course-grade{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-sm);font-weight:var(--font-medium)}.course-description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--text-secondary);margin:0;flex:1}@media(max-width:1024px){.profile-content{grid-template-columns:250px 1fr;gap:var(--spacing-2xl)}.profile-image-container{width:220px;height:220px}.profile-icon{font-size:5rem}.profile-name{font-size:var(--text-4xl)}}@media(max-width:768px){.about{padding:var(--spacing-xl) 0}.profile-section{padding:var(--spacing-2xl) 0;margin-bottom:var(--spacing-3xl)}.profile-content{grid-template-columns:1fr;gap:var(--spacing-xl);text-align:center}.profile-image-container{width:200px;height:200px}.profile-icon{font-size:4.5rem}.profile-name{font-size:var(--text-3xl)}.profile-introduction{font-size:var(--text-base)}.profile-contact{flex-direction:column;gap:var(--spacing-sm)}.social-links{justify-content:center}.stats-grid-about{grid-template-columns:1fr;gap:var(--spacing-lg)}.section-title-about{font-size:var(--text-3xl)}.category-title{font-size:var(--text-xl)}.course-grid{grid-template-columns:1fr}}@media(max-width:480px){.profile-image-container{width:180px;height:180px}.profile-icon{font-size:4rem}.profile-name{font-size:var(--text-2xl)}.social-link{font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-md)}}.skills-section{margin-bottom:var(--spacing-4xl);padding:var(--spacing-3xl);background:var(--bg-secondary);border-radius:var(--radius-2xl)}.skills-cloud{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;align-items:center;padding:var(--spacing-2xl)}.skill-tag{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-full);font-weight:var(--font-medium);transition:all var(--transition-base);cursor:default;opacity:0;animation:fadeInScale .4s ease-out forwards;white-space:nowrap}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.skill-tag.technical{background:linear-gradient(135deg,#717e871f,#5a666e1f);color:var(--color-academic);border:1.5px solid rgba(113,126,135,.3)}.skill-tag.creative{background:linear-gradient(135deg,#b57ff41f,#9966e81f);color:var(--color-creative);border:1.5px solid rgba(181,127,244,.3)}.skill-tag:hover{transform:translateY(-2px) scale(1.05);box-shadow:var(--shadow-md)}.skill-tag.technical:hover{background:var(--gradient-academic);color:var(--text-inverse);border-color:transparent}.skill-tag.creative:hover{background:var(--gradient-creative);color:var(--text-inverse);border-color:transparent}@media(max-width:768px){.skills-section{padding:var(--spacing-2xl) var(--spacing-lg)}.skills-cloud{padding:var(--spacing-lg);gap:var(--spacing-sm)}.skill-tag{font-size:.875rem!important;padding:var(--spacing-xs) var(--spacing-md)}}.search-bar{position:relative;width:100%;max-width:600px}.search-input{width:100%;padding:var(--spacing-md) var(--spacing-lg);padding-right:var(--spacing-3xl);border:2px solid var(--border-color);border-radius:var(--radius-xl);font-size:var(--text-base);font-family:var(--font-primary);background:var(--bg-card);color:var(--text-primary);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.search-input:focus{outline:none;border-color:var(--color-purple);box-shadow:0 0 0 4px #9b87f51a,var(--shadow-md);transform:translateY(-1px)}.search-input::placeholder{color:var(--text-tertiary)}.clear-button{position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);background:var(--bg-secondary);border:none;border-radius:var(--radius-full);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);transition:all var(--transition-base)}.clear-button:hover{background:var(--gradient-purple);color:var(--text-inverse);transform:translateY(-50%) scale(1.1)}@media(max-width:768px){.search-input{font-size:var(--text-sm);padding:var(--spacing-sm) var(--spacing-md);padding-right:var(--spacing-2xl)}.clear-button{width:24px;height:24px;font-size:var(--text-xs)}}.tag-filter{width:100%}.tag-filter h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.tag-filter-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tag-filter-button{padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.tag-filter-button:hover{background:var(--bg-tertiary);border-color:var(--color-purple);color:var(--text-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.tag-filter-button.active{background:var(--gradient-purple);border-color:transparent;color:var(--text-inverse);box-shadow:var(--shadow-md)}.tag-filter-button.active:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media(max-width:768px){.tag-filter h3{font-size:var(--text-lg)}.tag-filter-button{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-xs)}}.projects-page{min-height:100vh;padding:var(--spacing-2xl) 0}.page-header{text-align:center;margin-bottom:var(--spacing-3xl);padding:var(--spacing-2xl) 0}.page-title{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--font-bold);margin:0 0 var(--spacing-md) 0;background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--leading-tight)}.page-subtitle{font-size:var(--text-lg);color:var(--text-secondary);margin:0;line-height:var(--leading-relaxed)}.filter-section{position:sticky;top:calc(var(--header-height) + var(--spacing-md));z-index:var(--z-sticky);background:#fffffff2;-webkit-backdrop-filter:blur(var(--blur-lg));backdrop-filter:blur(var(--blur-lg));border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-3xl);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-xl);animation:fadeInUp .5s ease-out}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);animation:fadeIn .6s ease-out}.portfolio-card-link{text-decoration:none;color:inherit;display:block;height:100%}.portfolio-thumbnail{width:100%;height:220px;object-fit:cover;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transition:transform var(--transition-base)}.portfolio-card-link:hover .portfolio-thumbnail{transform:scale(1.05)}.portfolio-card-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0;line-height:var(--leading-tight)}.tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tag{padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-secondary);white-space:nowrap}.portfolio-card-date{font-size:var(--text-sm);color:var(--text-tertiary);margin:0;font-weight:var(--font-medium)}.no-results{text-align:center;font-size:var(--text-lg);color:var(--text-secondary);padding:var(--spacing-3xl);background:var(--bg-secondary);border-radius:var(--radius-xl);margin:var(--spacing-2xl) 0}@media(max-width:1024px){.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}}@media(max-width:768px){.projects-page{padding:var(--spacing-xl) 0}.page-header{padding:var(--spacing-xl) 0;margin-bottom:var(--spacing-2xl)}.page-title{font-size:var(--text-4xl)}.page-subtitle{font-size:var(--text-base)}.filter-section{position:static;padding:var(--spacing-lg);gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.portfolio-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.portfolio-thumbnail{height:200px}.portfolio-card-content{padding:var(--spacing-lg)}.portfolio-card-title{font-size:var(--text-xl)}}@media(max-width:480px){.page-title{font-size:var(--text-3xl)}.portfolio-thumbnail{height:180px}.portfolio-card-title{font-size:var(--text-lg)}.portfolio-card-description{font-size:var(--text-sm)}}.music-page{min-height:100vh;padding:var(--spacing-2xl) 0}.instruments{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.instrument{padding:var(--spacing-xs) var(--spacing-md);background:linear-gradient(135deg,#6eb5d41a,#6eb5d433);border:1px solid var(--color-blue);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-blue-dark);white-space:nowrap}@media(max-width:768px){.music-page{padding:var(--spacing-xl) 0}}.publications-page{min-height:100vh;padding:var(--spacing-2xl) 0}.publication-content{padding:var(--spacing-2xl)}.publication-authors{font-size:var(--text-base);color:var(--text-secondary);font-weight:var(--font-medium);margin:0;line-height:var(--leading-normal)}.publication-venue{font-size:var(--text-sm);color:var(--color-purple);font-weight:var(--font-semibold);font-style:italic;margin:0;padding:var(--spacing-sm) 0}.publication-abstract{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin:var(--spacing-md) 0}@media(max-width:768px){.publications-page{padding:var(--spacing-xl) 0}.publication-content{padding:var(--spacing-lg)}.publication-authors{font-size:var(--text-sm)}.publication-venue{font-size:var(--text-xs)}}.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin:1.5rem 0}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:8px;cursor:pointer;transition:transform .2s}.gallery-item:hover{transform:scale(1.05)}.gallery-item:focus{outline:2px solid #007bff;outline-offset:2px}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-close{position:absolute;top:1rem;right:1rem;background:#fff3;border:none;color:#fff;font-size:2.5rem;width:50px;height:50px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:1002}.modal-close:hover{background:#ffffff4d}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:#fff3;border:none;color:#fff;font-size:3rem;width:60px;height:60px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:1002}.modal-nav:hover{background:#ffffff4d}.modal-prev{left:2rem}.modal-next{right:2rem}.modal-content{max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center;gap:1rem}.modal-content img{max-width:100%;max-height:calc(90vh - 4rem);object-fit:contain;border-radius:4px}.modal-counter{color:#fff;font-size:1rem;background:#00000080;padding:.5rem 1rem;border-radius:20px}@media(max-width:768px){.image-gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}.gallery-modal{padding:1rem}.modal-close{top:.5rem;right:.5rem;width:40px;height:40px;font-size:2rem}.modal-nav{width:50px;height:50px;font-size:2rem}.modal-prev{left:.5rem}.modal-next{right:.5rem}.modal-counter{font-size:.875rem;padding:.375rem .75rem}}@media(max-width:480px){.image-gallery{grid-template-columns:repeat(2,1fr)}}.audio-player{background:#f5f5f5;border-radius:8px;padding:1rem;margin:1rem 0}.audio-title{font-weight:600;margin-bottom:.5rem;color:#333}.audio-controls{display:flex;align-items:center;gap:.75rem}.play-button{width:40px;height:40px;border-radius:50%;border:none;background:#007bff;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.play-button:hover{background:#0056b3}.play-button:active{transform:scale(.95)}.progress-bar{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ddd;border-radius:3px;outline:none}.progress-bar::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#007bff;cursor:pointer}.progress-bar::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#007bff;cursor:pointer;border:none}.time-display{font-size:.875rem;color:#666;min-width:40px;text-align:center}@media(max-width:768px){.audio-controls{gap:.5rem}.time-display{font-size:.75rem;min-width:35px}.play-button{width:36px;height:36px}}.detail-page-wrapper{width:100%;padding:var(--spacing-5xl) 0;min-height:calc(100vh - var(--header-height))}.detail-page{max-width:1200px;margin:0 auto}.back-button{background:none;border:none;color:var(--color-purple);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);margin-bottom:var(--spacing-2xl);padding:var(--spacing-sm) 0;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--spacing-sm)}.back-button:hover{color:var(--color-purple-dark);transform:translate(-4px)}.detail-hero{text-align:center;margin-bottom:var(--spacing-4xl)}.detail-title{font-size:var(--text-5xl);font-family:var(--font-display);font-weight:var(--font-bold);margin-bottom:var(--spacing-lg);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--leading-tight)}.detail-meta{display:flex;justify-content:center;align-items:center;gap:var(--spacing-xl);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.detail-date{color:var(--text-tertiary);font-size:var(--text-base);margin:0}.detail-description{font-size:var(--text-xl);line-height:var(--leading-relaxed);color:var(--text-secondary);max-width:800px;margin:0 auto}.detail-gallery{margin-bottom:var(--spacing-4xl)}.detail-content-grid{display:grid;grid-template-columns:1fr 350px;gap:var(--spacing-3xl);margin-bottom:var(--spacing-5xl)}.detail-main{min-width:0}.detail-sidebar{display:flex;flex-direction:column;gap:var(--spacing-xl)}.sidebar-card{padding:var(--spacing-xl)}.sidebar-heading{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--spacing-lg) 0}.tech-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.tech-item{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium)}.link-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm)}.link-button{display:block;padding:var(--spacing-md);background:var(--gradient-purple);color:var(--text-inverse);text-decoration:none;border-radius:var(--radius-lg);font-weight:var(--font-medium);text-align:center;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.link-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.detail-section{margin-bottom:var(--spacing-3xl)}.section-heading{font-size:var(--text-3xl);font-family:var(--font-display);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--spacing-lg)}.section-text{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--text-secondary);margin:0}.related-section{padding-top:var(--spacing-4xl);border-top:2px solid var(--border-color)}.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-2xl);margin-top:var(--spacing-2xl)}.related-card-link{display:block;text-decoration:none;color:inherit;height:100%}.related-thumbnail{width:100%;height:180px;object-fit:cover;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.related-content{padding:var(--spacing-lg)}.related-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0;line-height:var(--leading-tight)}.related-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.publication-detail .detail-meta{flex-direction:column;gap:var(--spacing-sm)}.publication-authors{font-size:var(--text-lg);color:var(--text-secondary);font-style:italic;margin:0;font-weight:var(--font-medium)}.publication-venue{font-size:var(--text-base);color:var(--color-purple);font-weight:var(--font-semibold);margin:0}.publication-related-content{padding:var(--spacing-xl)}.publication-related-authors{font-size:var(--text-xs);color:var(--text-secondary);font-style:italic;margin:var(--spacing-sm) 0}.publication-related-venue{font-size:var(--text-xs);color:var(--text-tertiary);margin:0}.detail-audio{margin-bottom:var(--spacing-4xl);padding:var(--spacing-2xl);background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}@media(max-width:1024px){.detail-content-grid{grid-template-columns:1fr}.detail-sidebar{flex-direction:row}.related-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.detail-page-wrapper{padding:var(--spacing-3xl) 0}.detail-title{font-size:var(--text-4xl)}.detail-meta{flex-direction:column;gap:var(--spacing-md)}.detail-description{font-size:var(--text-lg)}.detail-content-grid{gap:var(--spacing-2xl)}.detail-sidebar{flex-direction:column}.section-heading{font-size:var(--text-2xl)}.section-text{font-size:var(--text-base)}.related-grid{grid-template-columns:1fr;gap:var(--spacing-xl)}.related-thumbnail{height:200px}}@media(max-width:480px){.detail-title{font-size:var(--text-3xl)}}.not-found{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:var(--spacing-xl)}.not-found-content{text-align:center;max-width:600px}.not-found-title{font-size:8rem;font-weight:700;margin:0;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.not-found-subtitle{font-size:2rem;margin:var(--spacing-lg) 0 var(--spacing-md);color:var(--text-color)}.not-found-message{font-size:1.125rem;color:var(--text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6}.not-found-actions{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.75rem 2rem;border-radius:var(--radius-md);text-decoration:none;font-weight:500;transition:all var(--transition-base);display:inline-block}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #007bff4d}.btn-secondary{background:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-secondary:hover{background:var(--primary-color);color:#fff;transform:translateY(-2px)}@media(max-width:768px){.not-found-title{font-size:5rem}.not-found-subtitle{font-size:1.5rem}.not-found-message{font-size:1rem}.not-found-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.admin-login{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:var(--spacing-xl)}.admin-login-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-2xl);max-width:450px;width:100%;box-shadow:var(--shadow-lg)}.admin-login-card h1{margin:0 0 var(--spacing-sm) 0;text-align:center;color:var(--text-primary);font-family:var(--font-display);font-weight:var(--font-bold);font-size:var(--text-4xl);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.admin-login-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.admin-login-form,.form-group{margin-bottom:var(--spacing-lg)}.form-group input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-base)}.form-group input:focus{outline:none;border-color:var(--color-purple);box-shadow:0 0 0 3px #9b87f51a}.error-message{padding:var(--spacing-md);background:#ef44441a;border:1px solid #ef4444;border-radius:var(--radius-md);color:#dc2626;margin-bottom:var(--spacing-lg);text-align:center;font-weight:var(--font-medium)}.login-button{width:100%;padding:.875rem;background:var(--gradient-purple);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.login-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.admin-login-note{text-align:center;font-size:.875rem;color:var(--text-tertiary);margin:0;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md)}@media(max-width:768px){.admin-login-card{padding:var(--spacing-xl)}}.admin-dashboard{min-height:70vh;padding:var(--spacing-lg)}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color)}.admin-header h1{margin:0;color:var(--text-primary);font-family:var(--font-display);font-weight:var(--font-bold);font-size:var(--text-4xl);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logout-button{padding:.5rem 1.5rem;background:linear-gradient(135deg,#ef4444,#dc2626);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.logout-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.admin-content{display:grid;grid-template-columns:250px 1fr;gap:var(--spacing-xl)}.admin-sidebar{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);height:fit-content;position:sticky;top:var(--spacing-lg);box-shadow:var(--shadow-sm)}.admin-nav{display:flex;flex-direction:column;gap:var(--spacing-sm)}.admin-nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-align:left;color:var(--text-secondary);font-size:1rem;font-weight:var(--font-medium)}.admin-nav-item:hover{background:var(--bg-secondary);color:var(--text-primary);transform:translate(4px)}.admin-nav-item.active{background:var(--gradient-purple);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.nav-icon{font-size:1.5rem}.nav-text{font-weight:var(--font-medium)}.admin-main{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl);box-shadow:var(--shadow-sm)}.admin-section h2{margin:0 0 var(--spacing-md) 0;color:var(--text-primary);font-family:var(--font-display);font-weight:var(--font-bold)}.section-description{color:var(--text-secondary);margin-bottom:var(--spacing-xl);line-height:1.6}.edit-button{padding:.75rem 2rem;background:var(--gradient-blue);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.edit-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media(max-width:768px){.admin-content{grid-template-columns:1fr}.admin-sidebar{position:static}.admin-nav{flex-direction:row;overflow-x:auto}.admin-nav-item{flex-direction:column;min-width:80px;text-align:center}.nav-text{font-size:.875rem}.admin-main{padding:var(--spacing-lg)}}.header-actions{display:flex;gap:var(--spacing-md);align-items:center}.reset-button{padding:.5rem 1.5rem;background:linear-gradient(135deg,#f59e0b,#d97706);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.reset-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.storage-info{margin-top:var(--spacing-xl);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--color-purple)}.info-text{margin:0 0 var(--spacing-xs) 0;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.info-subtext{margin:0;font-size:var(--text-xs);color:var(--text-tertiary);line-height:1.4}.admin-edit{min-height:70vh;padding:var(--spacing-2xl);max-width:1400px;margin:0 auto}.admin-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-xl);border-bottom:2px solid var(--border-color)}.admin-edit-header h1{margin:0;color:var(--text-primary);font-size:var(--text-4xl);font-family:var(--font-display);font-weight:var(--font-bold);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.back-button{padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);font-weight:var(--font-medium)}.back-button:hover{background:var(--border-color);transform:translateY(-2px);box-shadow:var(--shadow-md)}.create-button{padding:var(--spacing-sm) var(--spacing-xl);background:var(--gradient-purple);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.create-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.admin-edit-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}.items-list{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);max-height:80vh;overflow-y:auto}.items-list h2{margin:0 0 var(--spacing-lg) 0;color:var(--text-primary);position:sticky;top:0;background:var(--bg-card);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.item-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.item-info{flex:1}.item-info h3{margin:0 0 var(--spacing-sm) 0;font-size:1.125rem;color:var(--text-primary)}.item-info p{margin:0 0 var(--spacing-sm) 0;color:var(--text-secondary);font-size:.9375rem;line-height:1.4}.item-meta{display:flex;gap:var(--spacing-md);font-size:.875rem;color:var(--text-tertiary)}.item-actions{display:flex;gap:var(--spacing-sm)}.btn-edit,.btn-delete{padding:.375rem .75rem;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.btn-edit{background:var(--gradient-blue);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-edit:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-delete:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.edit-form{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-height:80vh;overflow-y:auto}.edit-form h2{margin:0 0 var(--spacing-xl) 0;color:var(--text-primary);font-family:var(--font-display);font-weight:var(--font-bold)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-base)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-purple);box-shadow:0 0 0 3px #9b87f51a}.form-group textarea{resize:vertical;min-height:80px}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl)}.btn-save,.btn-cancel{padding:.75rem 2rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-base)}.btn-save{background:linear-gradient(135deg,#10b981,#059669);color:var(--text-inverse);flex:1;box-shadow:var(--shadow-sm)}.btn-save:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-cancel{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-cancel:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.form-note{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border-left:4px solid var(--color-blue);border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-secondary);line-height:1.6}.form-note code{background:var(--bg-primary);padding:.125rem .375rem;border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--color-purple)}@media(max-width:1024px){.admin-edit-content{grid-template-columns:1fr}.items-list,.edit-form{max-height:none}}@media(max-width:768px){.admin-edit-header{flex-direction:column;gap:var(--spacing-md);align-items:stretch}.admin-edit-header h1{text-align:center}.item-card{flex-direction:column}.item-actions{width:100%}.btn-edit,.btn-delete{flex:1}.form-actions{flex-direction:column}}.section-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.section-header h2{margin:0;color:var(--text-primary);font-family:var(--font-display)}.section-actions{display:flex;gap:var(--spacing-sm)}.btn-download{padding:.5rem 1rem;background:var(--gradient-orange);color:var(--text-inverse);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.btn-download:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.bio-preview{padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md)}.bio-preview p{margin:var(--spacing-sm) 0;color:var(--text-primary);line-height:1.6}.bio-preview strong{color:var(--text-primary);font-weight:var(--font-semibold)}.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base)}.form-group select:focus{outline:none;border-color:var(--color-purple);box-shadow:0 0 0 3px #9b87f51a}@media(max-width:768px){.section-header{flex-direction:column;gap:var(--spacing-md);align-items:stretch}.section-actions{width:100%}.section-actions button{flex:1}}.form-note-container{margin-top:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-warning{padding:var(--spacing-md);background:#ef44441a;border-left:4px solid #ef4444;border-radius:var(--radius-sm);font-size:.875rem;color:#dc2626;line-height:1.6;margin:0}.btn-save:disabled,.btn-cancel:disabled,.btn-download:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.app{width:100%;min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;width:100%}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl)}@media(max-width:768px){.container{padding:0 var(--spacing-md)}}.project-grid,.music-grid,.publication-list{display:grid;gap:2rem;margin-top:2rem}.project-grid,.music-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.projects-page,.music-page,.publications-page{width:100%;padding:var(--spacing-5xl) 0}.page-header{text-align:center;margin-bottom:var(--spacing-4xl)}.page-title{font-size:var(--text-5xl);font-family:var(--font-display);font-weight:var(--font-bold);margin-bottom:var(--spacing-md);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-subtitle{font-size:var(--text-xl);color:var(--text-secondary);margin:0}.filter-section{margin-bottom:var(--spacing-3xl)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl)}.portfolio-card-link{display:block;text-decoration:none;color:inherit;height:100%;transition:transform var(--transition-base)}.portfolio-card-link:hover{transform:translateY(-2px)}.portfolio-thumbnail{width:100%;height:240px;object-fit:cover;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.portfolio-card-content{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.portfolio-card-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;line-height:var(--leading-tight)}.portfolio-card-description{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.portfolio-card-date{font-size:var(--text-sm);color:var(--text-tertiary);margin:auto 0 0}.publication-content{min-height:300px}.publication-authors{font-size:var(--text-sm);color:var(--text-secondary);font-style:italic;margin:0}.publication-venue{font-size:var(--text-base);color:var(--text-primary);font-weight:var(--font-medium);margin:0}.publication-abstract{-webkit-line-clamp:4}.instruments{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.instrument{padding:var(--spacing-xs) var(--spacing-md);background:var(--gradient-blue);color:var(--text-inverse);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium)}@media(max-width:1024px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.projects-page,.music-page,.publications-page{padding:var(--spacing-3xl) 0}.page-header{margin-bottom:var(--spacing-2xl)}.page-title{font-size:var(--text-4xl)}.page-subtitle{font-size:var(--text-lg)}.filter-section{margin-bottom:var(--spacing-2xl)}.portfolio-grid{grid-template-columns:1fr;gap:var(--spacing-xl)}.portfolio-thumbnail{height:200px}.portfolio-card-content{padding:var(--spacing-lg)}}.project-card,.music-card,.publication-card{display:block;padding:1.5rem;background:var(--color-surface, #f5f5f5);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;overflow:hidden}.project-card:hover,.music-card:hover,.publication-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.project-thumbnail,.music-thumbnail,.recent-thumbnail{width:100%;height:200px;object-fit:cover;border-radius:6px;margin-bottom:1rem}.project-card h2,.music-card h2,.publication-card h2{margin-top:0;margin-bottom:.5rem;font-size:1.5rem}.description{margin:.5rem 0;color:var(--color-text-secondary, #666)}.tags,.instruments{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tag,.instrument{padding:.25rem .75rem;background:var(--color-primary, #007bff);color:#fff;border-radius:4px;font-size:.875rem}.instrument{background:var(--color-secondary, #6c757d)}.date{margin-top:1rem;font-size:.875rem;color:var(--color-text-secondary, #666)}.about{width:100%;padding:var(--spacing-5xl) 0}.profile-section{padding:var(--spacing-4xl) 0;text-align:center}.profile-content{max-width:800px;margin:0 auto}.profile-name{font-size:var(--text-5xl);font-family:var(--font-display);font-weight:var(--font-bold);margin-bottom:var(--spacing-lg);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.profile-introduction{font-size:var(--text-xl);line-height:var(--leading-relaxed);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.profile-contact{font-size:var(--text-lg);margin-bottom:var(--spacing-xl)}.contact-label{font-weight:var(--font-semibold);color:var(--text-primary);margin-right:var(--spacing-sm)}.contact-link{color:var(--color-purple);text-decoration:none;transition:color var(--transition-base)}.contact-link:hover{color:var(--color-purple-dark);text-decoration:underline}.social-links{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.social-link{padding:var(--spacing-sm) var(--spacing-xl);background:var(--gradient-purple);color:var(--text-inverse);text-decoration:none;border-radius:var(--radius-lg);font-weight:var(--font-medium);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.social-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.about-stats-section{padding:var(--spacing-4xl) 0;background:var(--bg-secondary);margin:0 calc(-1 * var(--spacing-xl));padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.stats-grid-about{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-2xl);max-width:1200px;margin:0 auto}.balance-bars{margin-top:var(--spacing-lg)}@media(max-width:1024px){.stats-grid-about{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.about{padding:var(--spacing-3xl) 0}.profile-section{padding:var(--spacing-2xl) 0}.profile-name{font-size:var(--text-4xl)}.profile-introduction{font-size:var(--text-lg)}.about-stats-section{padding:var(--spacing-2xl) 0;margin:0 calc(-1 * var(--spacing-md));padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.stats-grid-about{grid-template-columns:1fr;gap:var(--spacing-xl)}}.courses-section{padding:var(--spacing-4xl) 0}.section-title-about{font-size:var(--text-4xl);font-family:var(--font-display);font-weight:var(--font-bold);text-align:center;margin-bottom:var(--spacing-3xl);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.course-category{margin-bottom:var(--spacing-4xl)}.category-title{font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border-color)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-xl)}.course-card{padding:var(--spacing-xl)}.course-header{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.course-name{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);line-height:var(--leading-tight)}.course-semester{font-size:var(--text-sm);color:var(--text-secondary);font-style:italic}.course-meta{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);font-size:var(--text-sm)}.course-credits,.course-grade{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-secondary);font-weight:var(--font-medium)}.course-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0}@media(max-width:768px){.courses-section{padding:var(--spacing-2xl) 0}.section-title-about{font-size:var(--text-3xl);margin-bottom:var(--spacing-2xl)}.course-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.course-card{padding:var(--spacing-lg)}}.bio-content{max-width:800px}.bio-content h2{margin-bottom:1rem}.introduction{font-size:1.125rem;line-height:1.6;margin:1rem 0}.contact{margin:1rem 0}.social-links{margin-top:2rem}.social-links h3{margin-bottom:1rem}.social-links a{display:inline-block;margin-right:1rem;padding:.5rem 1rem;background:var(--color-primary, #007bff);color:#fff;text-decoration:none;border-radius:4px;transition:background .2s}.social-links a:hover{background:var(--color-primary-dark, #0056b3)}.courses-section{margin-top:3rem}.courses-section h2{margin-bottom:2rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color, #e0e0e0)}.course-category{margin-bottom:2rem}.course-category h3{font-size:1.25rem;margin-bottom:1rem;color:var(--primary-color, #646cff)}.course-list{list-style:none;padding:0}.course-item{padding:1rem;margin-bottom:.75rem;background:var(--card-bg, #f9f9f9);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;display:flex;flex-direction:column;gap:.5rem}.course-item strong{font-size:1.1rem;color:var(--text-color, #213547)}.course-item .semester{font-size:.875rem;color:var(--color-text-secondary, #666);font-style:italic}.course-item p{margin:0;color:var(--color-text-secondary, #666);line-height:1.5}@media(max-width:768px){.course-item{padding:.75rem}}.detail-page{max-width:900px}.back-button{padding:.5rem 1rem;margin-bottom:2rem;background:var(--color-surface, #f5f5f5);border:1px solid var(--color-border, #ddd);border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.back-button:hover{background:var(--color-border, #ddd)}.detail-page h1{margin-bottom:1rem}.detail-page .full-description,.detail-page .abstract,.detail-page .full-content{margin:2rem 0;line-height:1.6}.detail-page .technologies ul,.detail-page .instruments ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.detail-page .technologies li,.detail-page .instruments li{padding:.5rem 1rem;background:var(--color-surface, #f5f5f5);border-radius:4px}.detail-page .links{margin-top:2rem}.detail-page .links a{display:inline-block;margin-right:1rem;padding:.5rem 1rem;background:var(--color-primary, #007bff);color:#fff;text-decoration:none;border-radius:4px;transition:background .2s}.detail-page .links a:hover{background:var(--color-primary-dark, #0056b3)}.authors{font-style:italic;color:var(--color-text-secondary, #666);margin:.5rem 0}.venue{font-weight:500;margin:.5rem 0}.home{width:100%}.stats-section{padding:var(--spacing-5xl) 0;background:var(--bg-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl)}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.stats-section{padding:var(--spacing-3xl) 0}.stats-grid{grid-template-columns:1fr;gap:var(--spacing-xl)}}.featured-section{padding:var(--spacing-5xl) 0}.section-title{font-size:var(--text-4xl);font-family:var(--font-display);font-weight:var(--font-bold);text-align:center;margin-bottom:var(--spacing-3xl);background:var(--gradient-mixed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:var(--leading-tight)}.featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl);margin-bottom:var(--spacing-3xl)}.featured-item{opacity:1;transform:translateY(0)}.featured-card{display:flex;flex-direction:column;height:100%}.featured-thumbnail{width:100%;height:240px;object-fit:cover;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.featured-content{padding:var(--spacing-xl);flex:1;display:flex;flex-direction:column}.featured-content h3{font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0 0 var(--spacing-md) 0;color:var(--text-primary)}.featured-content p{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-relaxed);margin:0 0 var(--spacing-lg) 0;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.view-all-container{text-align:center}.view-all-button{display:inline-block;padding:var(--spacing-md) var(--spacing-2xl);background:var(--gradient-purple);color:var(--text-inverse);text-decoration:none;border-radius:var(--radius-xl);font-weight:var(--font-medium);font-size:var(--text-base);transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.view-all-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}@media(max-width:1024px){.featured-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.featured-section{padding:var(--spacing-3xl) 0}.section-title{font-size:var(--text-3xl);margin-bottom:var(--spacing-2xl)}.featured-grid{grid-template-columns:1fr;gap:var(--spacing-xl)}.featured-thumbnail{height:200px}}.hero-links{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap;margin-top:var(--spacing-2xl)}.hero-link{padding:var(--spacing-md) var(--spacing-2xl);background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-primary);text-decoration:none;border-radius:var(--radius-xl);font-weight:var(--font-medium);font-size:var(--text-base);transition:all var(--transition-base);border:1px solid rgba(255,255,255,.3);box-shadow:var(--shadow-sm)}.hero-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-purple);background:#fff}@media(max-width:768px){.hero-links{gap:var(--spacing-md)}.hero-link{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-base)}}.no-results{text-align:center;padding:3rem;color:var(--color-text-secondary, #666);font-size:1.125rem}
