:root{--color-white: rgba(255, 255, 255, 1);--color-black: rgba(0, 0, 0, 1);--color-cream-50: rgba(252, 252, 249, 1);--color-cream-100: rgba(255, 255, 253, 1);--color-gray-200: rgba(245, 245, 245, 1);--color-gray-300: rgba(167, 169, 169, 1);--color-gray-400: rgba(119, 124, 124, 1);--color-slate-500: rgba(98, 108, 113, 1);--color-brown-600: rgba(94, 82, 64, 1);--color-charcoal-700: rgba(31, 33, 33, 1);--color-charcoal-800: rgba(38, 40, 40, 1);--color-slate-900: rgba(19, 52, 59, 1);--color-teal-300: rgba(50, 184, 198, 1);--color-teal-400: rgba(45, 166, 178, 1);--color-teal-500: rgba(33, 128, 141, 1);--color-teal-600: rgba(29, 116, 128, 1);--color-teal-700: rgba(26, 104, 115, 1);--color-teal-800: rgba(41, 150, 161, 1);--color-red-400: rgba(255, 84, 89, 1);--color-red-500: rgba(192, 21, 47, 1);--color-orange-400: rgba(230, 129, 97, 1);--color-orange-500: rgba(168, 75, 47, 1);--color-brown-600-rgb: 94, 82, 64;--color-teal-500-rgb: 33, 128, 141;--color-slate-900-rgb: 19, 52, 59;--color-slate-500-rgb: 98, 108, 113;--color-red-500-rgb: 192, 21, 47;--color-red-400-rgb: 255, 84, 89;--color-orange-500-rgb: 168, 75, 47;--color-orange-400-rgb: 230, 129, 97;--color-bg-1: rgba(59, 130, 246, .08);--color-bg-2: rgba(245, 158, 11, .08);--color-bg-3: rgba(34, 197, 94, .08);--color-bg-4: rgba(239, 68, 68, .08);--color-bg-5: rgba(147, 51, 234, .08);--color-bg-6: rgba(249, 115, 22, .08);--color-bg-7: rgba(236, 72, 153, .08);--color-bg-8: rgba(6, 182, 212, .08);--color-background: var(--color-cream-50);--color-surface: var(--color-cream-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-500);--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-600);--color-primary-active: var(--color-teal-700);--color-secondary: rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover: rgba(var(--color-brown-600-rgb), .2);--color-secondary-active: rgba(var(--color-brown-600-rgb), .25);--color-border: rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text: var(--color-cream-50);--color-card-border: rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner: rgba(var(--color-brown-600-rgb), .12);--color-error: var(--color-red-500);--color-success: var(--color-teal-500);--color-warning: var(--color-orange-500);--color-info: var(--color-slate-500);--color-focus-ring: rgba(var(--color-teal-500-rgb), .4);--color-select-caret: rgba(var(--color-slate-900-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: 33, 128, 141;--color-error-rgb: 192, 21, 47;--color-warning-rgb: 168, 75, 47;--color-info-rgb: 98, 108, 113;--font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 30px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 550;--font-weight-bold: 600;--line-height-tight: 1.2;--line-height-normal: 1.5;--letter-spacing-tight: -.01em;--space-0: 0;--space-1: 1px;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--radius-sm: 6px;--radius-base: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .04), 0 2px 4px -1px rgba(0, 0, 0, .02);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .04), 0 4px 6px -2px rgba(0, 0, 0, .02);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .15), inset 0 -1px 0 rgba(0, 0, 0, .03);--duration-fast: .15s;--duration-normal: .25s;--ease-standard: cubic-bezier(.16, 1, .3, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px}@media (prefers-color-scheme: dark){:root{--color-gray-400-rgb: 119, 124, 124;--color-teal-300-rgb: 50, 184, 198;--color-gray-300-rgb: 167, 169, 169;--color-gray-200-rgb: 245, 245, 245;--color-bg-1: rgba(29, 78, 216, .15);--color-bg-2: rgba(180, 83, 9, .15);--color-bg-3: rgba(21, 128, 61, .15);--color-bg-4: rgba(185, 28, 28, .15);--color-bg-5: rgba(107, 33, 168, .15);--color-bg-6: rgba(194, 65, 12, .15);--color-bg-7: rgba(190, 24, 93, .15);--color-bg-8: rgba(8, 145, 178, .15);--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(var(--color-gray-300-rgb), .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover: rgba(var(--color-gray-400-rgb), .25);--color-secondary-active: rgba(var(--color-gray-400-rgb), .3);--color-border: rgba(var(--color-gray-400-rgb), .3);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(var(--color-teal-300-rgb), .4);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(var(--color-gray-400-rgb), .2);--color-card-border-inner: rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .15);--button-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-select-caret: rgba(var(--color-gray-200-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: var(--color-teal-300-rgb);--color-error-rgb: var(--color-red-400-rgb);--color-warning-rgb: var(--color-orange-400-rgb);--color-info-rgb: var(--color-gray-300-rgb)}}[data-color-scheme=dark]{--color-gray-400-rgb: 119, 124, 124;--color-teal-300-rgb: 50, 184, 198;--color-gray-300-rgb: 167, 169, 169;--color-gray-200-rgb: 245, 245, 245;--color-bg-1: rgba(29, 78, 216, .15);--color-bg-2: rgba(180, 83, 9, .15);--color-bg-3: rgba(21, 128, 61, .15);--color-bg-4: rgba(185, 28, 28, .15);--color-bg-5: rgba(107, 33, 168, .15);--color-bg-6: rgba(194, 65, 12, .15);--color-bg-7: rgba(190, 24, 93, .15);--color-bg-8: rgba(8, 145, 178, .15);--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(var(--color-gray-300-rgb), .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover: rgba(var(--color-gray-400-rgb), .25);--color-secondary-active: rgba(var(--color-gray-400-rgb), .3);--color-border: rgba(var(--color-gray-400-rgb), .3);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(var(--color-teal-300-rgb), .4);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(var(--color-gray-400-rgb), .15);--color-card-border-inner: rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .15);--color-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-select-caret: rgba(var(--color-gray-200-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: var(--color-teal-300-rgb);--color-error-rgb: var(--color-red-400-rgb);--color-warning-rgb: var(--color-orange-400-rgb);--color-info-rgb: var(--color-gray-300-rgb)}@font-face{font-family:FKGroteskNeue;src:url(https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2) format("woff2")}```css :root{--primary: var(--color-primary);--primary-light: var(--color-primary-hover);--primary-dark: var(--color-primary-active);--secondary: var(--color-primary);--accent: var(--color-warning);--success: var(--color-success);--warning: var(--color-warning);--error: var(--color-error);--bg-light: var(--color-background);--bg-white: var(--color-surface);--surface: var(--color-surface);--text-dark: var(--color-text);--text-light: var(--color-text-secondary);--text-lighter: var(--color-text-secondary);--border: var(--color-border);--shadow-sm: var(--shadow-sm);--shadow-md: var(--shadow-md);--shadow-lg: var(--shadow-lg);--transition: all var(--duration-normal) var(--ease-standard);--radius: var(--radius-base);--radius-lg: var(--radius-lg)}[data-theme=dark]{--bg-light: var(--color-background);--bg-white: var(--color-surface);--surface: var(--color-surface);--text-dark: var(--color-text);--text-light: var(--color-text-secondary);--text-lighter: var(--color-text-secondary);--border: var(--color-border)}html{scroll-behavior:smooth;font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased}body{font-family:var(--font-family-base);background-color:var(--color-background);color:var(--color-text);line-height:var(--line-height-normal);transition:var(--transition);margin:0;padding:0}.App{overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-8);color:var(--color-text);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-4xl);line-height:var(--line-height-tight)}h2{font-size:var(--font-size-3xl);margin-bottom:var(--space-12)}p{color:var(--color-text-secondary);margin-bottom:var(--space-16)}.container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-20)}.btn{padding:var(--space-10) var(--space-20);border:none;border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--duration-normal) var(--ease-standard);display:inline-flex;align-items:center;gap:var(--space-10);text-decoration:none;line-height:1.5}.btn-primary{background-color:var(--color-primary);color:var(--color-btn-primary-text)}.btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active{background-color:var(--color-primary-active)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-secondary-hover)}.btn-secondary:active{background-color:var(--color-secondary-active)}.navbar{background:var(--color-surface);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:1000;padding:var(--space-16) 0;transition:var(--transition);border-bottom:1px solid var(--color-border)}.nav-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-20);display:flex;justify-content:space-between;align-items:center}.nav-logo h1{font-size:var(--font-size-2xl);margin:0;color:var(--color-primary);font-weight:var(--font-weight-semibold)}.nav-subtitle{font-size:var(--font-size-xs);margin:0;color:var(--color-text-secondary)}.nav-links{display:flex;list-style:none;gap:var(--space-32);align-items:center}.nav-links li button{background:none;border:none;color:var(--color-text);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-standard);font-family:var(--font-family-base)}.nav-links li button:hover{color:var(--color-primary)}.nav-links li button:focus-visible{outline:var(--focus-outline);outline-offset:2px}.cv-download{background-color:var(--color-primary);color:var(--color-btn-primary-text)!important;padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);display:inline-flex;align-items:center;gap:var(--space-8);font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-standard)}.cv-download:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.cv-download:focus-visible{outline:none;box-shadow:var(--focus-ring)}.mobile-menu-btn{display:none;background:none;border:none;color:var(--color-text);font-size:var(--font-size-xl);cursor:pointer}.mobile-menu-btn:focus-visible{outline:var(--focus-outline)}.hero{padding:100px var(--space-20);background:var(--color-background);display:flex;align-items:center;min-height:auto;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(var(--color-teal-500-rgb),.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(var(--color-teal-500-rgb),.06) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(var(--color-teal-500-rgb),.04) 0%,transparent 40%);z-index:0;pointer-events:none}.hero:after{content:"";position:absolute;top:-50%;right:-20%;width:600px;height:600px;background:radial-gradient(circle,rgba(var(--color-teal-500-rgb),.1) 0%,transparent 70%);border-radius:50%;z-index:0;pointer-events:none;animation:heroGlow 15s ease-in-out infinite alternate}@keyframes heroGlow{0%{transform:translate(0) scale(1);opacity:.5}to{transform:translate(-10%,10%) scale(1.1);opacity:.8}}.hero>*{position:relative;z-index:1}.hero-content{max-width:var(--container-xl);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-32);align-items:center;width:100%}.hero-title{font-size:calc(var(--font-size-4xl) * 1.2);color:var(--color-primary);margin-bottom:var(--space-16);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.hero-subtitle{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--space-16);font-weight:var(--font-weight-medium)}.hero-description{font-size:var(--font-size-lg);margin-bottom:var(--space-24);line-height:1.8;color:var(--color-text-secondary)}.hero-stats{display:flex;gap:var(--space-32);margin-bottom:var(--space-32)}.stat{text-align:center}.stat h3{font-size:calc(var(--font-size-3xl) * 1.2);color:var(--color-primary);margin:0;font-weight:var(--font-weight-bold)}.stat p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.hero-buttons{display:flex;gap:var(--space-16);flex-wrap:wrap}.avatar{width:300px;height:300px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:calc(var(--font-size-4xl) * 2);font-weight:var(--font-weight-bold);color:var(--color-btn-primary-text);box-shadow:var(--shadow-lg)}.avatar-img{width:300px;height:300px;border-radius:var(--radius-full);object-fit:cover;object-position:center 15%;box-shadow:var(--shadow-lg);border:4px solid var(--color-primary);transition:transform var(--duration-normal) var(--ease-standard),box-shadow var(--duration-normal) var(--ease-standard)}.avatar-img:hover{transform:scale(1.03);box-shadow:0 20px 40px #00000026}.hero-image{display:flex;justify-content:center;align-items:center}section{padding:80px var(--space-20)}.section-header{text-align:center;margin-bottom:var(--space-32)}.section-header h2{color:var(--color-primary);margin-bottom:var(--space-16)}.section-header p{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto}.projects{background-color:var(--color-surface)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-24)}.project-card{background:var(--color-surface);border:1px solid var(--color-card-border);border-radius:var(--radius-lg);padding:var(--space-24);transition:all var(--duration-normal) var(--ease-standard);box-shadow:var(--shadow-sm)}.project-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px);border-color:var(--color-border)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-16)}.project-header h3{margin:0;color:var(--color-primary);font-size:var(--font-size-xl)}.status{display:inline-flex;align-items:center;padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);white-space:nowrap}.status-production-ready,.status-live{background-color:rgba(var(--color-success-rgb),var(--status-bg-opacity));color:var(--color-success);border:1px solid rgba(var(--color-success-rgb),var(--status-border-opacity))}.status-mvp,.status-complete{background-color:rgba(var(--color-warning-rgb),var(--status-bg-opacity));color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb),var(--status-border-opacity))}.status-poc{background-color:rgba(var(--color-info-rgb),var(--status-bg-opacity));color:var(--color-info);border:1px solid rgba(var(--color-info-rgb),var(--status-border-opacity))}.project-description{margin-bottom:var(--space-16);line-height:1.6;color:var(--color-text-secondary);font-size:var(--font-size-base)}.project-highlights{display:flex;flex-direction:column;gap:var(--space-8);margin-bottom:var(--space-16)}.highlight{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-8)}.tag{background-color:var(--color-secondary);color:var(--color-text);padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);font-size:var(--font-size-sm);border:1px solid var(--color-border);font-weight:var(--font-weight-medium)}.skills{background-color:var(--color-background)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-24)}.skill-category{background:var(--color-surface);padding:var(--space-24);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-card-border)}.skill-category h3{color:var(--color-primary);margin-bottom:var(--space-16);font-size:var(--font-size-xl)}.skill-list{display:flex;flex-wrap:wrap;gap:var(--space-8)}.skill-badge{background-color:var(--color-secondary);color:var(--color-text);padding:var(--space-8) var(--space-16);border-radius:var(--radius-full);font-size:var(--font-size-sm);border:1px solid var(--color-border);font-weight:var(--font-weight-medium)}.contact{background-color:var(--color-surface)}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-32);align-items:start}.contact-info{display:flex;flex-direction:column;gap:var(--space-24)}.info-item{display:flex;gap:var(--space-16);align-items:flex-start}.info-item svg{color:var(--color-primary);margin-top:var(--space-2)}.info-item a{display:flex;gap:var(--space-16);color:inherit;text-decoration:none}.info-item h4{margin:0;color:var(--color-primary);font-size:var(--font-size-lg)}.info-item p{margin:var(--space-8) 0 0 0;color:var(--color-text-secondary)}.contact-form{display:flex;flex-direction:column;gap:var(--space-16)}.contact-form input,.contact-form textarea{padding:var(--space-10) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-base);font-family:var(--font-family-base);font-size:var(--font-size-base);background-color:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);line-height:var(--line-height-normal)}.contact-form textarea{font-family:var(--font-family-base);resize:vertical;min-height:120px}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.downloads{background-color:var(--color-background);text-align:center}.downloads h2{color:var(--color-primary);margin-bottom:var(--space-24)}.download-items{display:flex;justify-content:center;gap:var(--space-24);flex-wrap:wrap}.download-btn{display:inline-flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-24);background-color:var(--color-primary);color:var(--color-btn-primary-text);border-radius:var(--radius-base);transition:all var(--duration-normal) var(--ease-standard);box-shadow:var(--shadow-sm);font-weight:var(--font-weight-medium);font-size:var(--font-size-base)}.download-btn:hover{background-color:var(--color-primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.download-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.footer{background-color:var(--color-primary-active);color:var(--color-btn-primary-text);padding:var(--space-32) var(--space-20) var(--space-16)}.footer-content{max-width:var(--container-xl);margin:0 auto var(--space-24);display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-24);margin-bottom:var(--space-24);padding-bottom:var(--space-24);border-bottom:1px solid rgba(255,255,255,.15)}.footer-section h3,.footer-section h4{color:var(--color-btn-primary-text);margin-bottom:var(--space-12);font-size:var(--font-size-lg)}.footer-section p{color:#ffffffb3;font-size:var(--font-size-sm)}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--space-8)}.footer-section ul li a{color:#ffffffb3;font-size:var(--font-size-sm);transition:color var(--duration-fast) var(--ease-standard)}.footer-section ul li a:hover{color:var(--color-btn-primary-text)}.footer-bottom{max-width:var(--container-xl);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-16)}.footer-bottom p{margin:0;color:#ffffffb3;font-size:var(--font-size-sm)}.social-links{display:flex;gap:var(--space-16)}.social-links a{color:var(--color-btn-primary-text);font-size:var(--font-size-xl);transition:all var(--duration-normal) var(--ease-standard)}.social-links a:hover{color:var(--color-primary-hover);transform:scale(1.2)}.social-links a:focus-visible{outline:var(--focus-outline);outline-offset:2px}@media (max-width: 768px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}.hero-content{grid-template-columns:1fr;gap:var(--space-24)}.hero-title{font-size:var(--font-size-3xl)}.hero-subtitle{font-size:var(--font-size-lg)}.avatar{width:200px;height:200px;font-size:calc(var(--font-size-4xl) * 1.3)}.avatar-img{width:200px;height:200px}.nav-links{display:none}.nav-links.active{display:flex;position:absolute;top:60px;right:0;flex-direction:column;background-color:var(--color-surface);width:100%;padding:var(--space-24);gap:var(--space-16);box-shadow:var(--shadow-md);border-top:1px solid var(--color-border)}.mobile-menu-btn{display:block}.contact-content{grid-template-columns:1fr}section{padding:60px var(--space-20)}.projects-grid{grid-template-columns:1fr}.hero-stats{gap:var(--space-16)}.hero{padding:80px var(--space-20)}.container{padding:0 var(--space-16)}.skills-grid{grid-template-columns:1fr}}@media (max-width: 480px){h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}.hero{padding:60px var(--space-16);min-height:auto}.hero-content{gap:var(--space-20)}.hero-title{font-size:var(--font-size-2xl)}.hero-subtitle{font-size:var(--font-size-md)}.hero-description{font-size:var(--font-size-base)}.hero-stats{gap:var(--space-12);flex-wrap:wrap}.stat h3{font-size:var(--font-size-2xl)}.stat p{font-size:var(--font-size-xs)}.nav-logo h1{font-size:var(--font-size-xl)}.btn{padding:var(--space-8) var(--space-16);font-size:var(--font-size-sm)}.hero-buttons{flex-direction:column;width:100%}.hero-buttons .btn{width:100%;justify-content:center}.avatar{width:180px;height:180px;font-size:var(--font-size-4xl)}.avatar-img{width:180px;height:180px}section{padding:50px var(--space-16)}.section-header{margin-bottom:var(--space-24)}.section-header p{font-size:var(--font-size-base)}.projects-grid{gap:var(--space-16)}.project-card{padding:var(--space-16)}.project-header{flex-direction:column;gap:var(--space-8);align-items:flex-start}.skill-category{padding:var(--space-16)}.contact-content{gap:var(--space-24)}.contact-info{gap:var(--space-16)}.download-items{gap:var(--space-12)}.download-btn{padding:var(--space-10) var(--space-16);font-size:var(--font-size-sm)}.footer{padding:var(--space-24) var(--space-16) var(--space-12)}.footer-content{grid-template-columns:1fr;gap:var(--space-16);margin-bottom:var(--space-16);padding-bottom:var(--space-16)}.footer-bottom{flex-direction:column;text-align:center;gap:var(--space-12)}.container{padding:0 var(--space-12)}.nav-container{padding:0 var(--space-16)}.nav-links.active{padding:var(--space-16)}}.legal-page{min-height:100vh;background:var(--color-background);padding:var(--space-32) var(--space-16)}.legal-container{max-width:800px;margin:0 auto;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-32);box-shadow:var(--shadow-md)}.back-link{display:inline-flex;align-items:center;gap:var(--space-8);color:var(--color-primary);text-decoration:none;font-weight:var(--font-medium);margin-bottom:var(--space-24);transition:color .2s ease}.back-link:hover{color:var(--color-primary-dark)}.legal-page h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text);margin-bottom:var(--space-32);border-bottom:3px solid var(--color-primary);padding-bottom:var(--space-16)}.legal-section{margin-bottom:var(--space-32)}.legal-section h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-16)}.legal-section h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin-top:var(--space-16);margin-bottom:var(--space-8)}.legal-section p{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary);margin-bottom:var(--space-12)}.legal-section ul{margin-left:var(--space-24);margin-bottom:var(--space-16)}.legal-section ul li{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary);margin-bottom:var(--space-8)}.legal-section a{color:var(--color-primary);text-decoration:none;transition:color .2s ease}.legal-section a:hover{color:var(--color-primary-dark);text-decoration:underline}.legal-section .contact-details{background:rgba(var(--color-teal-500-rgb),.05);padding:var(--space-16);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.legal-section .contact-details p{margin-bottom:var(--space-8)}.legal-section .icon{display:inline;margin-right:var(--space-8);color:var(--color-primary)}.legal-footer{margin-top:var(--space-32);padding-top:var(--space-24);border-top:1px solid var(--color-border);text-align:center}.legal-footer p{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-8)}.legal-footer a{color:var(--color-primary)}@media (max-width: 768px){.legal-page{padding:var(--space-16) var(--space-8)}.legal-container{padding:var(--space-20)}.legal-page h1{font-size:var(--text-2xl)}.legal-section h2{font-size:var(--text-xl)}}.downloads-page .section-icon{margin-right:var(--space-8);color:var(--color-primary)}.downloads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-16)}.download-card{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-16);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s ease}.download-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.download-card.primary{background:rgba(var(--color-teal-500-rgb),.05);border:2px solid var(--color-primary);padding:var(--space-24)}.download-icon{color:var(--color-primary);flex-shrink:0}.download-info{flex:1}.download-info h3{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-4)}.download-info h4{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text);margin-bottom:var(--space-4)}.download-info p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.download-info .file-type{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-surface);padding:var(--space-2) var(--space-8);border-radius:var(--radius-sm)}.download-action{display:inline-flex;align-items:center;gap:var(--space-8);white-space:nowrap}.download-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);transition:all .2s ease}.download-link:hover{background:var(--color-primary-dark);transform:scale(1.05)}@media (max-width: 768px){.downloads-grid{grid-template-columns:1fr}.download-card.primary{flex-direction:column;text-align:center}.download-card.primary .download-info{text-align:center}}.not-found-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:var(--space-32)}.not-found-container{text-align:center;max-width:500px}.not-found-icon{color:var(--color-primary);margin-bottom:var(--space-24);opacity:.8}.not-found-page h1{font-family:var(--font-display);font-size:120px;font-weight:var(--font-bold);color:var(--color-primary);line-height:1;margin-bottom:var(--space-8)}.not-found-page h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-16)}.not-found-page p{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-32)}.not-found-page .btn{display:inline-flex;align-items:center;gap:var(--space-8)}@media (max-width: 768px){.not-found-page h1{font-size:80px}}.contact-form-success{text-align:center;padding:var(--space-32);background:#22c55e1a;border:2px solid rgba(34,197,94,.3);border-radius:var(--radius-lg)}.contact-form-success .success-icon{color:#22c55e;margin-bottom:var(--space-16)}.contact-form-success h3{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text);margin-bottom:var(--space-8)}.contact-form-success p{color:var(--color-text-secondary)}.form-error{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#dc2626;margin-bottom:var(--space-16);font-size:var(--text-sm)}.btn:disabled{opacity:.7;cursor:not-allowed}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blog-page,.blog-post-page{min-height:100vh;background:var(--color-background);padding:var(--space-32) var(--space-16)}.blog-container,.blog-post-container{max-width:1000px;margin:0 auto}.blog-header{margin-bottom:var(--space-32);text-align:center}.blog-header h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text);margin-bottom:var(--space-8)}.blog-header p{font-size:var(--text-lg);color:var(--color-text-secondary)}.blog-filters{display:flex;flex-direction:column;gap:var(--space-16);margin-bottom:var(--space-32)}.search-box{position:relative}.search-box .search-icon{position:absolute;left:var(--space-16);top:50%;transform:translateY(-50%);color:var(--color-text-secondary)}.search-box input{width:100%;padding:var(--space-12) var(--space-16) var(--space-12) var(--space-48);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text)}.search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-teal-500-rgb),.2)}.category-filter{display:flex;gap:var(--space-8);flex-wrap:wrap}.filter-btn{padding:var(--space-8) var(--space-16);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.blog-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-24)}.blog-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-24);box-shadow:var(--shadow-sm);transition:all .2s ease;border:1px solid var(--color-border)}.blog-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.blog-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-12)}.blog-category{display:inline-block;padding:var(--space-4) var(--space-12);background:rgba(var(--color-teal-500-rgb),.1);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase}.blog-meta{display:flex;gap:var(--space-12);font-size:var(--text-xs);color:var(--color-text-secondary)}.blog-meta span{display:flex;align-items:center;gap:var(--space-4)}.blog-card h2{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-12)}.blog-card h2 a{color:inherit;text-decoration:none;transition:color .2s ease}.blog-card h2 a:hover{color:var(--color-primary)}.blog-excerpt{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-16)}.blog-tags{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-16)}.blog-tag{display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-background);padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm)}.read-more{color:var(--color-primary);font-weight:var(--font-medium);text-decoration:none;transition:color .2s ease}.read-more:hover{color:var(--color-primary-dark)}.no-posts{grid-column:1 / -1;text-align:center;padding:var(--space-48);color:var(--color-text-secondary)}.no-posts button{margin-top:var(--space-16);padding:var(--space-8) var(--space-16);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer}.blog-post-header{margin-bottom:var(--space-32);padding-bottom:var(--space-24);border-bottom:1px solid var(--color-border)}.blog-post-header h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text);margin:var(--space-16) 0;line-height:1.2}.blog-post-meta{display:flex;flex-wrap:wrap;gap:var(--space-16);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-16)}.blog-post-meta span{display:flex;align-items:center;gap:var(--space-6)}.blog-post-content{font-size:var(--text-base);line-height:1.8;color:var(--color-text)}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4{font-family:var(--font-display);font-weight:var(--font-semibold);color:var(--color-text);margin-top:var(--space-32);margin-bottom:var(--space-16)}.blog-post-content h1{font-size:var(--text-3xl)}.blog-post-content h2{font-size:var(--text-2xl)}.blog-post-content h3{font-size:var(--text-xl)}.blog-post-content h4{font-size:var(--text-lg)}.blog-post-content p{margin-bottom:var(--space-16)}.blog-post-content ul,.blog-post-content ol{margin-bottom:var(--space-16);padding-left:var(--space-24)}.blog-post-content li{margin-bottom:var(--space-8)}.blog-post-content strong{font-weight:var(--font-semibold)}.blog-post-content a{color:var(--color-primary);text-decoration:none}.blog-post-content a:hover{text-decoration:underline}.blog-post-content code{background:rgba(var(--color-teal-500-rgb),.1);padding:var(--space-2) var(--space-6);border-radius:var(--radius-sm);font-family:Consolas,Monaco,monospace;font-size:.9em}.blog-post-content pre{background:var(--color-charcoal-800);color:var(--color-cream-50);padding:var(--space-20);border-radius:var(--radius-md);overflow-x:auto;margin:var(--space-24) 0}.blog-post-content pre code{background:none;padding:0;color:inherit}.blog-post-content blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-16);margin:var(--space-24) 0;color:var(--color-text-secondary);font-style:italic}.related-posts{margin-top:var(--space-48);padding-top:var(--space-32);border-top:1px solid var(--color-border)}.related-posts h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-24)}.related-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-16)}.related-post-card{background:var(--color-surface);padding:var(--space-20);border-radius:var(--radius-md);border:1px solid var(--color-border);text-decoration:none;transition:all .2s ease}.related-post-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.related-post-card h4{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:var(--space-8) 0}.related-post-card p{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.blog-post-footer{display:flex;gap:var(--space-16);justify-content:center;margin-top:var(--space-48);padding-top:var(--space-32);border-top:1px solid var(--color-border)}@media (max-width: 768px){.blog-page,.blog-post-page{padding:var(--space-16) var(--space-8)}.blog-header h1,.blog-post-header h1{font-size:var(--text-2xl)}.blog-posts-grid{grid-template-columns:1fr}.blog-card-header,.blog-post-meta{flex-direction:column;gap:var(--space-8)}.blog-post-footer{flex-direction:column}}.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#13343b,#21808d);padding:var(--space-16)}.admin-login-container{width:100%;max-width:400px;background:#fff;border-radius:var(--radius-lg);padding:var(--space-32);box-shadow:var(--shadow-xl)}.admin-login-header{text-align:center;margin-bottom:var(--space-32)}.admin-logo{width:64px;height:64px;background:linear-gradient(135deg,#13343b,#21808d);color:#fff;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-16)}.admin-login-header h1{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);margin-bottom:var(--space-4)}.admin-login-header p{color:var(--color-text-secondary);font-size:var(--text-sm)}.admin-login-form .form-group{position:relative;margin-bottom:var(--space-16)}.admin-login-form .input-icon{position:absolute;left:var(--space-16);top:50%;transform:translateY(-50%);color:var(--color-text-secondary)}.admin-login-form input{width:100%;padding:var(--space-12) var(--space-16) var(--space-12) var(--space-48);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base)}.admin-login-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-teal-500-rgb),.2)}.admin-error{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-12);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#dc2626;margin-bottom:var(--space-16);font-size:var(--text-sm)}.admin-submit{width:100%}.admin-login-footer{text-align:center;margin-top:var(--space-24)}.admin-login-footer a{color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-sm)}.admin-login-footer a:hover{color:var(--color-primary)}.admin-dashboard{display:flex;min-height:100vh;background:#f5f7fa}.admin-sidebar{width:260px;background:#13343b;color:#fff;display:flex;flex-direction:column;transition:width .3s ease}.admin-dashboard.sidebar-closed .admin-sidebar{width:60px}.admin-dashboard.sidebar-closed .admin-sidebar span,.admin-dashboard.sidebar-closed .admin-sidebar h2,.admin-dashboard.sidebar-closed .admin-sidebar .badge{display:none}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-20);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h2{font-size:var(--text-lg);font-weight:var(--font-semibold)}.sidebar-toggle{background:none;border:none;color:#fff;cursor:pointer;padding:var(--space-8)}.sidebar-nav{flex:1;padding:var(--space-16)}.nav-item{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);color:#ffffffb3;text-decoration:none;border-radius:var(--radius-md);margin-bottom:var(--space-4);transition:all .2s ease}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#21808d;color:#fff}.nav-item .badge{margin-left:auto;background:#dc2626;color:#fff;font-size:var(--text-xs);padding:var(--space-2) var(--space-8);border-radius:var(--radius-full)}.sidebar-footer{padding:var(--space-16);border-top:1px solid rgba(255,255,255,.1)}.user-info{display:flex;align-items:center;gap:var(--space-8);color:#ffffffb3;font-size:var(--text-sm);margin-bottom:var(--space-12)}.logout-btn{display:flex;align-items:center;gap:var(--space-8);width:100%;padding:var(--space-12);background:#ffffff1a;border:none;color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease}.logout-btn:hover{background:#ef444480}.admin-main{flex:1;padding:var(--space-24);overflow-y:auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-24)}.admin-header h1{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text)}.view-site-btn{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);transition:all .2s ease}.view-site-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-16);margin-bottom:var(--space-32)}.stat-card{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-20);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:var(--text-xl)}.stat-icon.visits{background:#3b82f61a;color:#3b82f6}.stat-icon.messages{background:#22c55e1a;color:#22c55e}.stat-icon.blog{background:#a855f71a;color:#a855f7}.stat-icon.downloads{background:#f973161a;color:#f97316}.stat-info h3{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text)}.stat-info p{font-size:var(--text-sm);color:var(--color-text-secondary)}.admin-section{background:#fff;border-radius:var(--radius-lg);padding:var(--space-24);margin-bottom:var(--space-24);box-shadow:var(--shadow-sm)}.admin-section h2{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin-bottom:var(--space-16)}.activity-list{display:flex;flex-direction:column;gap:var(--space-12)}.activity-item{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-12);background:#f9fafb;border-radius:var(--radius-md)}.activity-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:var(--text-sm)}.activity-icon.contact{background:#22c55e1a;color:#22c55e}.activity-icon.visit{background:#3b82f61a;color:#3b82f6}.activity-icon.download{background:#f973161a;color:#f97316}.activity-info p{font-size:var(--text-sm);color:var(--color-text);margin:0}.activity-time{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary)}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-16)}.action-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-12);padding:var(--space-24);background:#f9fafb;border-radius:var(--radius-md);text-decoration:none;color:var(--color-text);transition:all .2s ease}.action-card:hover{background:rgba(var(--color-teal-500-rgb),.1);color:var(--color-primary)}.action-card svg{font-size:var(--text-2xl)}.action-card span{font-size:var(--text-sm);text-align:center}.admin-page{min-height:100vh;background:#f5f7fa;padding:var(--space-24)}.admin-page-header{display:flex;align-items:center;gap:var(--space-16);margin-bottom:var(--space-24)}.admin-page-header h1{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text)}.unread-badge{background:#dc2626;color:#fff;font-size:var(--text-xs);padding:var(--space-4) var(--space-12);border-radius:var(--radius-full)}.messages-layout{display:grid;grid-template-columns:350px 1fr;gap:var(--space-24);height:calc(100vh - 120px)}.messages-list{background:#fff;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.messages-filter{display:flex;padding:var(--space-12);border-bottom:1px solid var(--color-border);gap:var(--space-8)}.messages-filter button{flex:1;padding:var(--space-8);background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer;transition:all .2s ease}.messages-filter button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.message-item{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .2s ease;position:relative}.message-item:hover{background:#f9fafb}.message-item.selected{background:rgba(var(--color-teal-500-rgb),.1)}.message-item.unread{background:#3b82f60d}.message-avatar{width:40px;height:40px;background:var(--color-primary);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-preview{flex:1;min-width:0}.message-header{display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.message-header strong{font-size:var(--text-sm);color:var(--color-text)}.message-date{font-size:var(--text-xs);color:var(--color-text-secondary)}.message-excerpt{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{width:8px;height:8px;background:#3b82f6;border-radius:var(--radius-full);position:absolute;right:var(--space-16)}.message-detail{background:#fff;border-radius:var(--radius-lg);padding:var(--space-24);overflow-y:auto}.message-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-16)}.message-detail-header h2{font-size:var(--text-xl);color:var(--color-text)}.message-actions{display:flex;gap:var(--space-8)}.btn-danger{background:#dc2626;border-color:#dc2626}.btn-danger:hover{background:#b91c1c}.message-meta{display:flex;gap:var(--space-16);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-24)}.message-meta span{display:flex;align-items:center;gap:var(--space-4)}.message-body{font-size:var(--text-base);line-height:1.7;color:var(--color-text)}.no-selection,.no-messages{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);gap:var(--space-16)}.admin-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#f5f7fa;gap:var(--space-16);color:var(--color-text-secondary)}@media (max-width: 1024px){.messages-layout{grid-template-columns:1fr}.message-detail{display:none}}@media (max-width: 768px){.admin-dashboard.sidebar-open .admin-sidebar{position:fixed;left:0;top:0;height:100vh;z-index:1000}.stats-grid{grid-template-columns:1fr 1fr}}.faq-page .faq-intro{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-32);line-height:1.7}.faq-category{margin-bottom:var(--space-32)}.faq-category h2{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:var(--space-16);padding-bottom:var(--space-8);border-bottom:2px solid var(--color-border)}.faq-list{display:flex;flex-direction:column;gap:var(--space-8)}.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-standard)}.faq-item:hover{border-color:var(--color-primary)}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-16);background:var(--color-surface);border:none;cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text);text-align:left;transition:background var(--duration-fast) var(--ease-standard);font-family:var(--font-family-base)}.faq-question:hover{background:var(--color-secondary)}.faq-question.open{background:rgba(var(--color-teal-500-rgb),.1);color:var(--color-primary)}.faq-question svg{flex-shrink:0;color:var(--color-primary)}.faq-answer{padding:var(--space-16);background:var(--color-background);border-top:1px solid var(--color-border)}.faq-answer p{margin:0;font-size:var(--font-size-base);line-height:1.7;color:var(--color-text-secondary)}.faq-contact{text-align:center;padding:var(--space-32);background:rgba(var(--color-teal-500-rgb),.05);border-radius:var(--radius-lg);margin-top:var(--space-32)}.faq-contact h2{color:var(--color-primary);margin-bottom:var(--space-12)}.faq-contact p{color:var(--color-text-secondary);margin-bottom:var(--space-16)}.faq-contact .btn{display:inline-flex}@media (max-width: 768px){.faq-question{font-size:var(--font-size-sm);padding:var(--space-12)}.faq-answer{padding:var(--space-12)}}.gallery-page{min-height:100vh;background:var(--color-background)}.gallery-container{max-width:1200px;margin:0 auto;padding:var(--space-32)}.gallery-header{text-align:center;margin-bottom:var(--space-32)}.gallery-header h1{font-size:var(--font-size-4xl);color:var(--color-primary);margin-bottom:var(--space-16)}.gallery-header p{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--space-24);line-height:1.7}.gallery-filters{display:flex;justify-content:center;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-32)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-24);margin-bottom:var(--space-32)}.gallery-item{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--duration-normal) var(--ease-standard);border:1px solid var(--color-border)}.gallery-item:hover{box-shadow:var(--shadow-lg);transform:translateY(-5px)}.gallery-image{position:relative;aspect-ratio:4 / 3;cursor:pointer;overflow:hidden}.image-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));display:flex;align-items:center;justify-content:center;color:var(--color-btn-primary-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);text-align:center;padding:var(--space-16)}.image-placeholder.large{min-height:400px;font-size:var(--font-size-2xl)}.gallery-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);color:#fff}.gallery-image:hover .gallery-overlay{opacity:1}.gallery-info{padding:var(--space-16)}.gallery-info h3{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-8)}.gallery-category{display:inline-block;padding:var(--space-4) var(--space-12);background:rgba(var(--color-teal-500-rgb),.1);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;margin-bottom:var(--space-8)}.gallery-info p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-12);line-height:1.5}.gallery-resolutions{display:flex;gap:var(--space-8);flex-wrap:wrap}.resolution-badge{padding:var(--space-4) var(--space-8);background:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.gallery-notice{text-align:center;padding:var(--space-32);background:rgba(var(--color-teal-500-rgb),.05);border-radius:var(--radius-lg);margin-bottom:var(--space-32)}.gallery-notice h2{color:var(--color-primary);margin-bottom:var(--space-12)}.gallery-notice p{color:var(--color-text-secondary)}.no-artworks{grid-column:1 / -1;text-align:center;padding:var(--space-48);color:var(--color-text-secondary)}.lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--space-16)}.lightbox-content{background:var(--color-surface);border-radius:var(--radius-lg);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.lightbox-close{position:absolute;top:var(--space-16);right:var(--space-16);background:var(--color-secondary);border:none;color:var(--color-text);width:40px;height:40px;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:background var(--duration-fast) var(--ease-standard)}.lightbox-close:hover{background:var(--color-error);color:#fff}.lightbox-image{width:100%}.lightbox-info{padding:var(--space-24)}.lightbox-info h2{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--space-12)}.lightbox-info p{color:var(--color-text-secondary);margin-bottom:var(--space-24)}.resolution-selector{margin-bottom:var(--space-24)}.resolution-selector label{display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--space-12);color:var(--color-text)}.resolution-buttons{display:flex;gap:var(--space-8);flex-wrap:wrap}.resolution-btn{padding:var(--space-8) var(--space-16);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);color:var(--color-text)}.resolution-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.resolution-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-btn-primary-text)}.lightbox-actions{display:flex;gap:var(--space-16);flex-wrap:wrap}@media (max-width: 768px){.gallery-container{padding:var(--space-16)}.gallery-header h1{font-size:var(--font-size-2xl)}.gallery-grid{grid-template-columns:1fr}.lightbox-actions{flex-direction:column}.lightbox-actions .btn{width:100%;justify-content:center}}.chatbot-toggle{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #0003;transition:all .3s ease;z-index:1000}.chatbot-toggle:hover{transform:scale(1.1);box-shadow:0 6px 25px #0000004d}.chatbot-toggle.open{background:var(--color-error)}.chatbot-window{position:fixed;bottom:100px;right:24px;width:380px;max-width:calc(100vw - 48px);height:500px;max-height:calc(100vh - 150px);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;overflow:hidden;z-index:999;border:1px solid var(--color-border);animation:chatSlideIn .3s ease}@keyframes chatSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chatbot-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff}.chatbot-header-info{display:flex;align-items:center;gap:12px}.chatbot-header-info h4{margin:0;font-size:14px;font-weight:600;color:#fff}.chatbot-status{font-size:11px;opacity:.85;display:flex;align-items:center;gap:4px}.chatbot-status:before{content:"";width:8px;height:8px;background:#22c55e;border-radius:50%;display:inline-block}.chatbot-close{background:#ffffff26;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.chatbot-close:hover{background:#ffffff40}.chatbot-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--color-background)}.chatbot-message{display:flex;gap:10px;max-width:85%;animation:messageSlideIn .3s ease}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chatbot-message.user{align-self:flex-end;flex-direction:row-reverse}.chatbot-message.assistant{align-self:flex-start}.message-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-content{padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5}.chatbot-message.assistant .message-content{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:4px}.chatbot-message.user .message-content{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.message-content.typing{display:flex;align-items:center;gap:4px;padding:14px 18px}.message-content.typing .dot{width:8px;height:8px;background:var(--color-text-secondary);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.message-content.typing .dot:nth-child(1){animation-delay:0s}.message-content.typing .dot:nth-child(2){animation-delay:.2s}.message-content.typing .dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.chatbot-input{display:flex;gap:8px;padding:12px;background:var(--color-surface);border-top:1px solid var(--color-border)}.chatbot-input input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:20px;font-size:14px;background:var(--color-background);color:var(--color-text);transition:border-color .2s ease;font-family:var(--font-family-base)}.chatbot-input input:focus{outline:none;border-color:var(--color-primary)}.chatbot-input input::placeholder{color:var(--color-text-secondary)}.chatbot-input button{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.chatbot-input button:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.05)}.chatbot-input button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.chatbot-window{bottom:0;right:0;left:0;width:100%;max-width:100%;height:calc(100vh - 60px);max-height:calc(100vh - 60px);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.chatbot-toggle{bottom:16px;right:16px;width:56px;height:56px}}:root{--color-white: rgba(255, 255, 255, 1);--color-black: rgba(0, 0, 0, 1);--color-cream-50: rgba(252, 252, 249, 1);--color-cream-100: rgba(255, 255, 253, 1);--color-gray-200: rgba(245, 245, 245, 1);--color-gray-300: rgba(167, 169, 169, 1);--color-gray-400: rgba(119, 124, 124, 1);--color-slate-500: rgba(98, 108, 113, 1);--color-brown-600: rgba(94, 82, 64, 1);--color-charcoal-700: rgba(31, 33, 33, 1);--color-charcoal-800: rgba(38, 40, 40, 1);--color-slate-900: rgba(19, 52, 59, 1);--color-teal-300: rgba(50, 184, 198, 1);--color-teal-400: rgba(45, 166, 178, 1);--color-teal-500: rgba(33, 128, 141, 1);--color-teal-600: rgba(29, 116, 128, 1);--color-teal-700: rgba(26, 104, 115, 1);--color-teal-800: rgba(41, 150, 161, 1);--color-red-400: rgba(255, 84, 89, 1);--color-red-500: rgba(192, 21, 47, 1);--color-orange-400: rgba(230, 129, 97, 1);--color-orange-500: rgba(168, 75, 47, 1);--color-brown-600-rgb: 94, 82, 64;--color-teal-500-rgb: 33, 128, 141;--color-slate-900-rgb: 19, 52, 59;--color-slate-500-rgb: 98, 108, 113;--color-red-500-rgb: 192, 21, 47;--color-red-400-rgb: 255, 84, 89;--color-orange-500-rgb: 168, 75, 47;--color-orange-400-rgb: 230, 129, 97;--color-bg-1: rgba(59, 130, 246, .08);--color-bg-2: rgba(245, 158, 11, .08);--color-bg-3: rgba(34, 197, 94, .08);--color-bg-4: rgba(239, 68, 68, .08);--color-bg-5: rgba(147, 51, 234, .08);--color-bg-6: rgba(249, 115, 22, .08);--color-bg-7: rgba(236, 72, 153, .08);--color-bg-8: rgba(6, 182, 212, .08);--color-background: var(--color-cream-50);--color-surface: var(--color-cream-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-500);--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-600);--color-primary-active: var(--color-teal-700);--color-secondary: rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover: rgba(var(--color-brown-600-rgb), .2);--color-secondary-active: rgba(var(--color-brown-600-rgb), .25);--color-border: rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text: var(--color-cream-50);--color-card-border: rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner: rgba(var(--color-brown-600-rgb), .12);--color-error: var(--color-red-500);--color-success: var(--color-teal-500);--color-warning: var(--color-orange-500);--color-info: var(--color-slate-500);--color-focus-ring: rgba(var(--color-teal-500-rgb), .4);--color-select-caret: rgba(var(--color-slate-900-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: 33, 128, 141;--color-error-rgb: 192, 21, 47;--color-warning-rgb: 168, 75, 47;--color-info-rgb: 98, 108, 113;--font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 18px;--font-size-2xl: 20px;--font-size-3xl: 24px;--font-size-4xl: 30px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 550;--font-weight-bold: 600;--line-height-tight: 1.2;--line-height-normal: 1.5;--letter-spacing-tight: -.01em;--space-0: 0;--space-1: 1px;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--space-32: 32px;--radius-sm: 6px;--radius-base: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .04), 0 2px 4px -1px rgba(0, 0, 0, .02);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .04), 0 4px 6px -2px rgba(0, 0, 0, .02);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .15), inset 0 -1px 0 rgba(0, 0, 0, .03);--duration-fast: .15s;--duration-normal: .25s;--ease-standard: cubic-bezier(.16, 1, .3, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family-base);background-color:var(--color-background);color:var(--color-text);line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.section-container{max-width:1200px;margin:0 auto;padding:0 1rem;width:100%}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);margin-bottom:.5rem}h4{font-size:var(--font-size-lg)}p{margin-bottom:1rem;line-height:var(--line-height-normal)}a{color:var(--color-primary);text-decoration:none;transition:color .15s ease}button{cursor:pointer;border:none;background:none;font-family:inherit}@media (max-width: 767px){html{font-size:14px}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}}@media (min-width: 768px){html{font-size:16px}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}}@media (prefers-color-scheme: dark){:root{--color-gray-400-rgb: 119, 124, 124;--color-teal-300-rgb: 50, 184, 198;--color-gray-300-rgb: 167, 169, 169;--color-gray-200-rgb: 245, 245, 245;--color-bg-1: rgba(29, 78, 216, .15);--color-bg-2: rgba(180, 83, 9, .15);--color-bg-3: rgba(21, 128, 61, .15);--color-bg-4: rgba(185, 28, 28, .15);--color-bg-5: rgba(107, 33, 168, .15);--color-bg-6: rgba(194, 65, 12, .15);--color-bg-7: rgba(190, 24, 93, .15);--color-bg-8: rgba(8, 145, 178, .15);--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(var(--color-gray-300-rgb), .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover: rgba(var(--color-gray-400-rgb), .25);--color-secondary-active: rgba(var(--color-gray-400-rgb), .3);--color-border: rgba(var(--color-gray-400-rgb), .3);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(var(--color-teal-300-rgb), .4);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(var(--color-gray-400-rgb), .2);--color-card-border-inner: rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .15);--button-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-select-caret: rgba(var(--color-gray-200-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: var(--color-teal-300-rgb);--color-error-rgb: var(--color-red-400-rgb);--color-warning-rgb: var(--color-orange-400-rgb);--color-info-rgb: var(--color-gray-300-rgb)}}[data-color-scheme=dark]{--color-gray-400-rgb: 119, 124, 124;--color-teal-300-rgb: 50, 184, 198;--color-gray-300-rgb: 167, 169, 169;--color-gray-200-rgb: 245, 245, 245;--color-bg-1: rgba(29, 78, 216, .15);--color-bg-2: rgba(180, 83, 9, .15);--color-bg-3: rgba(21, 128, 61, .15);--color-bg-4: rgba(185, 28, 28, .15);--color-bg-5: rgba(107, 33, 168, .15);--color-bg-6: rgba(194, 65, 12, .15);--color-bg-7: rgba(190, 24, 93, .15);--color-bg-8: rgba(8, 145, 178, .15);--color-background: var(--color-charcoal-700);--color-surface: var(--color-charcoal-800);--color-text: var(--color-gray-200);--color-text-secondary: rgba(var(--color-gray-300-rgb), .7);--color-primary: var(--color-teal-300);--color-primary-hover: var(--color-teal-400);--color-primary-active: var(--color-teal-800);--color-secondary: rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover: rgba(var(--color-gray-400-rgb), .25);--color-secondary-active: rgba(var(--color-gray-400-rgb), .3);--color-border: rgba(var(--color-gray-400-rgb), .3);--color-error: var(--color-red-400);--color-success: var(--color-teal-300);--color-warning: var(--color-orange-400);--color-info: var(--color-gray-300);--color-focus-ring: rgba(var(--color-teal-300-rgb), .4);--color-btn-primary-text: var(--color-slate-900);--color-card-border: rgba(var(--color-gray-400-rgb), .15);--color-card-border-inner: rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm: inset 0 1px 0 rgba(255, 255, 255, .1), inset 0 -1px 0 rgba(0, 0, 0, .15);--color-border-secondary: rgba(var(--color-gray-400-rgb), .2);--color-select-caret: rgba(var(--color-gray-200-rgb), .8);--focus-ring: 0 0 0 3px var(--color-focus-ring);--focus-outline: 2px solid var(--color-primary);--status-bg-opacity: .15;--status-border-opacity: .25;--select-caret-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb: var(--color-teal-300-rgb);--color-error-rgb: var(--color-red-400-rgb);--color-warning-rgb: var(--color-orange-400-rgb);--color-info-rgb: var(--color-gray-300-rgb)}[data-color-scheme=light]{--color-brown-600-rgb: 94, 82, 64;--color-teal-500-rgb: 33, 128, 141;--color-slate-900-rgb: 19, 52, 59;--color-background: var(--color-cream-50);--color-surface: var(--color-cream-100);--color-text: var(--color-slate-900);--color-text-secondary: var(--color-slate-500);--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-600);--color-primary-active: var(--color-teal-700);--color-secondary: rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover: rgba(var(--color-brown-600-rgb), .2);--color-secondary-active: rgba(var(--color-brown-600-rgb), .25);--color-border: rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text: var(--color-cream-50);--color-card-border: rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner: rgba(var(--color-brown-600-rgb), .12);--color-error: var(--color-red-500);--color-success: var(--color-teal-500);--color-warning: var(--color-orange-500);--color-info: var(--color-slate-500);--color-focus-ring: rgba(var(--color-teal-500-rgb), .4);--color-success-rgb: var(--color-teal-500-rgb);--color-error-rgb: var(--color-red-500-rgb);--color-warning-rgb: var(--color-orange-500-rgb);--color-info-rgb: var(--color-slate-500-rgb)}html{font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;box-sizing:border-box}body{margin:0;padding:0}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin:0 0 var(--space-16) 0}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}a:hover{color:var(--color-primary-hover)}code,pre{font-family:var(--font-family-mono);font-size:calc(var(--font-size-base) * .95);background-color:var(--color-secondary);border-radius:var(--radius-sm)}code{padding:var(--space-1) var(--space-4)}pre{padding:var(--space-16);margin:var(--space-16) 0;overflow:auto;border:1px solid var(--color-border)}pre code{background:none;padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:500;line-height:1.5;cursor:pointer;transition:all var(--duration-normal) var(--ease-standard);border:none;text-decoration:none;position:relative}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn--primary{background:var(--color-primary);color:var(--color-btn-primary-text)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--primary:active{background:var(--color-primary-active)}.btn--secondary{background:var(--color-secondary);color:var(--color-text)}.btn--secondary:hover{background:var(--color-secondary-hover)}.btn--secondary:active{background:var(--color-secondary-active)}.btn--outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn--outline:hover{background:var(--color-secondary)}.btn--sm{padding:var(--space-4) var(--space-12);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn--lg{padding:var(--space-10) var(--space-20);font-size:var(--font-size-lg);border-radius:var(--radius-md)}.btn--full-width{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.form-control{display:block;width:100%;padding:var(--space-8) var(--space-12);font-size:var(--font-size-md);line-height:1.5;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}textarea.form-control{font-family:var(--font-family-base);font-size:var(--font-size-base)}select.form-control{padding:var(--space-8) var(--space-12);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--select-caret-light);background-repeat:no-repeat;background-position:right var(--space-12) center;background-size:16px;padding-right:var(--space-32)}@media (prefers-color-scheme: dark){select.form-control{background-image:var(--select-caret-dark)}}[data-color-scheme=dark] select.form-control{background-image:var(--select-caret-dark)}[data-color-scheme=light] select.form-control{background-image:var(--select-caret-light)}.form-control:focus{border-color:var(--color-primary);outline:var(--focus-outline)}.form-label{display:block;margin-bottom:var(--space-8);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.form-group{margin-bottom:var(--space-16)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--duration-normal) var(--ease-standard)}.card:hover{box-shadow:var(--shadow-md)}.card__body{padding:var(--space-16)}.card__header,.card__footer{padding:var(--space-16);border-bottom:1px solid var(--color-card-border-inner)}.status{display:inline-flex;align-items:center;padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.status--success{background-color:rgba(var(--color-success-rgb, 33, 128, 141),var(--status-bg-opacity));color:var(--color-success);border:1px solid rgba(var(--color-success-rgb, 33, 128, 141),var(--status-border-opacity))}.status--error{background-color:rgba(var(--color-error-rgb, 192, 21, 47),var(--status-bg-opacity));color:var(--color-error);border:1px solid rgba(var(--color-error-rgb, 192, 21, 47),var(--status-border-opacity))}.status--warning{background-color:rgba(var(--color-warning-rgb, 168, 75, 47),var(--status-bg-opacity));color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb, 168, 75, 47),var(--status-border-opacity))}.status--info{background-color:rgba(var(--color-info-rgb, 98, 108, 113),var(--status-bg-opacity));color:var(--color-info);border:1px solid rgba(var(--color-info-rgb, 98, 108, 113),var(--status-border-opacity))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--space-16);padding-left:var(--space-16)}@media (min-width: 640px){.container{max-width:var(--container-sm)}}@media (min-width: 768px){.container{max-width:var(--container-md)}}@media (min-width: 1024px){.container{max-width:var(--container-lg)}}@media (min-width: 1280px){.container{max-width:var(--container-xl)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.gap-16{gap:var(--space-16)}.m-0{margin:0}.mt-8{margin-top:var(--space-8)}.mb-8{margin-bottom:var(--space-8)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.p-0{padding:0}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.block{display:block}.hidden{display:none}.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}[data-color-scheme=dark] .btn--outline{border:1px solid var(--color-border-secondary)}@font-face{font-family:FKGroteskNeue;src:url(https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2) format("woff2")}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background)}body{margin:0;font-family:var(--font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background-color:var(--color-background)}code{font-family:var(--font-family-mono);font-size:calc(var(--font-size-base) * .95)}#root{min-height:100vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-secondary)}::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-hover)}::-webkit-scrollbar-thumb:active{background:var(--color-primary-active)}:focus-visible{outline:var(--focus-outline);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:var(--focus-outline);outline-offset:2px}@media print{body{background:var(--color-white);color:var(--color-black)}a{color:var(--color-primary)}}@media (max-width: 480px){html,body{font-size:var(--font-size-sm)}::-webkit-scrollbar{width:6px;height:6px}#root{min-height:100vh;min-height:-webkit-fill-available}}
