﻿:root{--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary: var(--color-primary-500);--color-primary-contrast: #ffffff;--color-primary-alpha-10: rgba(59, 130, 246, 0.1);--color-primary-alpha-15: rgba(59, 130, 246, 0.15);--color-primary-alpha-20: rgba(59, 130, 246, 0.2);--color-accent-blue: #3b82f6;--color-accent-cyan: #00ffff;--color-accent-indigo: #6366f1;--color-slate-100: #f1f5f9;--color-slate-200: #e2e8f0;--color-slate-300: #cbd5e1;--color-slate-400: #94a3b8;--color-slate-500: #64748b;--color-slate-600: #475569;--color-slate-700: #334155;--color-slate-800: #1e293b;--color-slate-900: #0f172a;--color-slate-950: #020617;--color-success: #22c55e;--color-success-dark: #15803d;--color-warning: #f59e0b;--color-warning-dark: #d97706;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-info: #06b6d4;--color-info-dark: #0891b2;--color-retired: #808080;--color-retired-dark: #4b4b4b;--color-bg-body: #0f172a;--color-bg-card: #1e293b;--color-bg-card-hover: #2d3b4e;--color-bg-nav: #1a2845;--color-bg-nav-dark: #0f1825;--color-bg-primary: var(--color-bg-body);--color-border: rgba(255, 255, 255, 0.08);--color-border-subtle: rgba(255, 255, 255, 0.05);--color-text-primary: #ffffff;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-link: #3b82f6;--font-family-primary: 'Outfit', sans-serif;--font-family-mono: 'Space Mono', monospace;--font-family-heading: 'Outfit', sans-serif;--font-size-xs: 0.75rem;--font-size-sm: 0.875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--container-max: 1080px;--container-padding: 2rem;--header-height: 80px;--header-height-mobile: 70px;--header-max: 1400px;--border-radius-sm: 0.5rem;--border-radius-md: 0.75rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--border-radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);--transition-fast: 0.15s ease-in-out;--transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal: 1040;--z-popover: 1050;--opacity-0: 0;--opacity-25: 0.25;--opacity-50: 0.5;--opacity-75: 0.75;--opacity-100: 1;--color-machine-sailfish: #00ffff;--color-machine-thresher: #00bfff;--color-machine-lamprey: #1e90ff;--color-machine-barracuda: #60a5fa;--color-machine-remora: #f97316;--color-machine-krill: #a78bfa}*,*::before,*::after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;padding:0;min-height:100vh;font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg-body);overflow-x:hidden;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6,p,blockquote,figure,legend,ul,ol,dl{margin:0;padding:0}ul,ol{list-style:none}a{color:var(--color-text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-400)}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;padding:0;margin:0;outline:none}button{cursor:pointer;background:none;border:none;padding:0}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}::selection{background:var(--color-primary-500);color:#fff}html{scroll-padding-top:var(--header-height-mobile)}body{display:flex;flex-direction:column}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.text-center{text-align:center}.font-bold{font-weight:var(--font-weight-bold)}.text-xl{font-size:var(--font-size-xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-secondary{color:var(--color-text-secondary)}.bg-dark{background-color:var(--color-bg-nav-dark)}.mb-4{margin-bottom:var(--space-4)}.mb-8{margin-bottom:var(--space-8)}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}::placeholder{color:var(--color-text-muted);opacity:1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-body)}::-webkit-scrollbar-thumb{background:var(--color-slate-700);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-slate-600)}.footer{background:var(--color-bg-nav-dark);border-top:1px solid hsla(0,0%,100%,.05);padding:var(--space-12) 0;margin-top:auto}.footer-content{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-8);margin-bottom:var(--space-8)}.footer-section .footer-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.footer-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.6}.footer-links{list-style:none}.footer-links li{margin-bottom:var(--space-2)}.footer-links a{color:var(--color-text-secondary);font-size:var(--font-size-sm);transition:color var(--transition-fast)}.footer-links a:hover{color:var(--color-primary-400)}.footer-contact{list-style:none}.footer-contact li{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.footer-icon{color:var(--color-text-muted);font-size:1.1rem}.footer-contact a{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-contact a:hover{color:var(--color-primary-400)}.footer-bottom{padding-top:var(--space-6);border-top:1px solid hsla(0,0%,100%,.05);text-align:center}.footer-copyright{color:var(--color-text-muted);font-size:var(--font-size-sm)}main{flex:1;min-height:calc(100vh - 200px)}@media(max-width: 1024px){.container{padding:0 var(--space-6)}}@media(max-width: 768px){.container{padding:0 var(--space-4)}}input[id^=dropdown-toggle-],#menu-toggle{display:none;position:absolute}header{background:var(--color-bg-nav);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-dropdown);box-shadow:var(--shadow-md)}.header-container{max-width:var(--header-max);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between;height:var(--header-height)}.logo-section{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;transition:var(--transition-normal);z-index:calc(var(--z-dropdown) + 1)}.logo-section:hover .logo-icon{transform:scale(1.05)}.logo-icon{width:96px;height:48px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-2xl);color:#fff;font-weight:bold;transition:var(--transition-normal);box-shadow:0 4px 12px var(--color-primary-alpha-10)}@media(max-width: 991px){.logo-icon{width:48px;height:48px;font-size:20px}}.logo-text{display:flex;flex-direction:column;gap:var(--space-1)}.logo-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-family:var(--font-family-mono);letter-spacing:-0.02em}.logo-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-light);letter-spacing:.02em}.hamburger{display:none;flex-direction:column;gap:var(--space-2);background:none;border:none;cursor:pointer;z-index:calc(var(--z-dropdown) - 100)}.hamburger span{width:26px;height:3px;background:#fff;border-radius:2px;transition:transform var(--transition-normal),opacity var(--transition-fast)}.nav-overlay{position:fixed;inset:var(--header-height-mobile) 0 0 0;background:rgba(0,0,0,.5);z-index:calc(var(--z-dropdown) - 200);cursor:pointer;opacity:0;pointer-events:none;transition:all var(--transition-fast)}.nav{display:flex;align-items:center}.nav-list{display:flex;list-style:none;gap:var(--space-2);align-items:center}.nav-link{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-5);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);border-radius:var(--border-radius-sm);transition:var(--transition-normal);position:relative}.nav-link:hover{background:var(--color-primary-alpha-10);color:var(--color-primary-500)}.nav-link-content{display:flex;align-items:center;gap:var(--space-1)}@media(max-width: 991px){.header-container{padding:0 var(--space-4);height:var(--header-height-mobile)}.logo-icon{width:40px;height:40px;font-size:20px}.logo-title{font-size:var(--font-size-lg)}.logo-subtitle{display:none}.hamburger{background-color:var(--color-bg-nav-dark);padding:var(--space-3);border-radius:var(--border-radius-md);display:flex;position:absolute;right:var(--space-6);top:50%;transform:translateY(-50%)}.nav{z-index:calc(var(--z-dropdown) - 100);user-select:none;align-items:flex-start;justify-content:flex-start;position:fixed;top:var(--header-height-mobile);left:0;right:0;background:var(--color-bg-nav);border-bottom:1px solid var(--color-border);max-height:0;overflow:hidden;transition:all var(--transition-fast);box-shadow:0 10px 25px rgba(0,0,0,.3)}.nav-list{flex-direction:column;gap:0;width:100%;padding:var(--space-4) 0}.nav-list>li{width:100%}.nav-link{width:100%;padding:var(--space-4) var(--space-6);border-radius:0;border-bottom:1px solid hsla(0,0%,100%,.05)}#menu-toggle:checked~.nav-overlay{opacity:1;pointer-events:auto;transition:all var(--transition-fast)}#menu-toggle:checked~.hamburger span:nth-child(1){transform:translateY(9px) rotate(45deg)}#menu-toggle:checked~.hamburger span:nth-child(2){opacity:0;transition:none}#menu-toggle:checked~.hamburger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}#menu-toggle:checked~nav{max-height:calc(100vh - var(--header-height-mobile));overflow-y:auto;transition:all var(--transition-normal)}}.dropdown-group{position:relative}.navbar-dropdown-toggle{cursor:pointer}.navbar-dropdown-toggle .dropdown-arrow{font-size:18px;transition:transform var(--transition-normal)}.dropdown-group:hover .navbar-dropdown-toggle .dropdown-arrow{transform:rotate(180deg)}.navbar-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-2);background:var(--color-bg-nav);border:1px solid hsla(0,0%,100%,.1);border-radius:var(--border-radius-md);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:var(--transition-normal);box-shadow:0 10px 25px rgba(0,0,0,.4);overflow:hidden;list-style:none}.navbar-dropdown.show,.dropdown-group:hover .navbar-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:block;padding:var(--space-3) var(--space-5);color:var(--color-text-primary);text-decoration:none;font-size:var(--font-size-sm);transition:var(--transition-normal);border-bottom:1px solid hsla(0,0%,100%,.05)}.navbar-dropdown li:last-child .dropdown-item{border-bottom:none}.dropdown-item:hover{background:var(--color-primary-alpha-10);color:var(--color-primary-500);padding-left:var(--space-6)}@media(max-width: 991px){.dropdown-group .navbar-dropdown-toggle{width:100%}.navbar-dropdown{position:static;transform:none;opacity:1;visibility:visible;border-radius:0;border:none;box-shadow:none;margin-top:0;min-width:unset;max-height:0;overflow:hidden;transition:max-height var(--transition-normal)}.dropdown-group:hover .navbar-dropdown{opacity:1;visibility:visible;transform:none;max-height:0}.dropdown-group:hover .navbar-dropdown-toggle .dropdown-arrow{transform:none}.dropdown-toggle:checked~.navbar-dropdown{max-height:500px !important}.dropdown-toggle:checked~label .dropdown-arrow,.dropdown-toggle:checked~label .material-symbols-outlined{transform:rotate(180deg)}.dropdown-item{padding:var(--space-4) var(--space-8);border-bottom:1px solid hsla(0,0%,100%,.03)}.dropdown-item:hover{padding-left:calc(var(--space-8) + var(--space-2))}}.current{background:var(--color-bg-nav-dark);color:var(--color-primary-500)}.post-header{margin:0 0 var(--space-12) 0;padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border)}.post-header__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.post-header__back{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.05em;color:var(--color-text-muted);text-decoration:none;transition:color var(--transition-fast)}.post-header__back:hover{color:var(--color-text-primary)}.post-header__back .material-symbols-outlined{font-size:var(--font-size-sm)}.post-header__category{display:inline-block;font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary-400);background:var(--color-primary-alpha-10);border:1px solid var(--color-primary-alpha-20);border-radius:var(--border-radius-full);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-4)}.post-header__title{font-size:clamp(1.75rem,4vw,var(--font-size-4xl));font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.15;margin-bottom:var(--space-4)}.post-header__description{font-size:var(--font-size-lg);color:var(--color-text-secondary);line-height:1.65;margin-bottom:var(--space-5)}.post-header__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:var(--font-family-mono)}.post-header__meta .material-symbols-outlined{font-size:var(--font-size-sm)}.post-header__meta-sep{color:var(--color-border)}.post-header__tech{background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--border-radius-sm);padding:.1em var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media(max-width: 768px){.post-header{margin-bottom:var(--space-8);padding-bottom:var(--space-8)}}.card{background:var(--color-bg-card);border-radius:var(--border-radius-lg);padding:var(--space-6);border:1px solid hsla(0,0%,100%,.05)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--border-radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-normal);text-decoration:none;border:1px solid rgba(0,0,0,0)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--color-primary-500);color:#fff}.btn-primary:hover{background:var(--color-primary-600);color:#fff}.btn-secondary{background:var(--color-slate-700);color:var(--color-text-primary)}.btn-secondary:hover{background:var(--color-slate-600)}.btn-outline{border:1px solid var(--color-primary-500);color:var(--color-primary-500);background:rgba(0,0,0,0)}.btn-outline:hover{background:var(--color-primary-500);color:#fff}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.badge-primary{background:var(--color-primary-alpha-15);color:var(--color-primary-400);border:1px solid var(--color-primary-alpha-20)}.section{padding-top:var(--space-16);padding-bottom:var(--space-16)}.section-title{text-align:center;margin-bottom:var(--space-12)}.section-title h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.section-title p{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-24) 0;background:radial-gradient(circle at top, var(--color-primary-alpha-10), transparent 60%)}.hero h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:var(--font-weight-bold);line-height:1.1;margin-bottom:var(--space-6);background:linear-gradient(135deg, var(--color-text-primary), var(--color-primary-400));-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);background-clip:text}.hero p{font-size:clamp(1rem,2vw,1.25rem);color:var(--color-text-secondary);max-width:600px;line-height:1.6}@media(max-width: 768px){.container{padding:0 var(--space-4)}.card{padding:var(--space-4)}.hero{padding:var(--space-16) 0}.hero h1{font-size:2rem}.section{padding-top:var(--space-12);padding-bottom:var(--space-12)}}.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:var(--space-6)}.about__cell{background:var(--color-bg-card);padding:var(--space-8);transition:background var(--transition-fast)}.about__cell--wide{grid-column:1/-1}.cell__icon{font-size:var(--font-size-2xl);margin-bottom:var(--space-3);display:block}.cell__title{font-family:var(--font-family-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary-400);margin-bottom:var(--space-2)}.cell__body{font-size:var(--font-size-base);font-weight:var(--font-weight-light);line-height:1.7;color:var(--color-text-secondary)}#markdown-toc{background:var(--color-bg-card);border:1px solid var(--color-border);border-left:3px solid var(--color-primary-500);border-radius:var(--border-radius-md);padding:var(--space-4) var(--space-6);margin:0 0 var(--space-8) 0;list-style:none}#markdown-toc::before{content:"Contents";display:block;font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary-400);margin-bottom:var(--space-3)}#markdown-toc li{padding-left:0;margin-bottom:var(--space-1)}#markdown-toc li::before{display:none}#markdown-toc ul{list-style:none;padding-left:var(--space-4);margin:var(--space-1) 0 var(--space-1) 0}#markdown-toc a{color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-size-sm);transition:color var(--transition-fast)}#markdown-toc a:hover{color:var(--color-primary-400);text-decoration:none}.prose{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:1.85;color:var(--color-text-primary)}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.25;margin-top:2em;margin-bottom:.75em}.prose h1{font-size:var(--font-size-4xl);margin-top:0}.prose h2{font-size:var(--font-size-2xl);border-bottom:1px solid var(--color-border);padding-bottom:.4em;position:relative;margin-top:2.5em}.prose h2::after{content:"";position:absolute;bottom:-1px;left:0;width:2.5rem;height:2px;background:var(--color-primary-500);border-radius:var(--border-radius-full)}.prose h3{font-size:var(--font-size-xl)}.prose h4{font-size:var(--font-size-lg)}.prose h5{font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.08em}.prose h6{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.markdown-prose>h1:first-child{display:none}.prose p{margin-top:0;margin-bottom:1.25em}.prose p:last-child{margin-bottom:0}.prose a{color:var(--color-primary-400);text-decoration:underline;text-decoration-color:rgba(96,165,250,.35);text-underline-offset:3px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}.prose a:hover{color:var(--color-primary-400);text-decoration-color:var(--color-primary-400)}.prose strong{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.prose em{font-style:italic;color:var(--color-text-secondary)}.prose hr{border:none;height:1px;background:linear-gradient(to right, transparent, var(--color-border) 20%, var(--color-border) 80%, transparent);margin:var(--space-10) 0}.prose blockquote{border-left:3px solid var(--color-primary-500);margin:var(--space-6) 0;padding:var(--space-4) var(--space-6);background:var(--color-bg-card);border-radius:0 var(--border-radius-md) var(--border-radius-md) 0;color:var(--color-text-secondary);font-style:italic}.prose blockquote p{margin-bottom:0}.prose blockquote strong{color:var(--color-primary-400)}.prose ul,.prose ol{margin:0 0 1.25em 0}.prose ul{list-style:none;padding-left:var(--space-4)}.prose ol{list-style:decimal;padding-left:var(--space-6)}.prose ul li{position:relative;padding-left:var(--space-4);margin-bottom:var(--space-2)}.prose ul li::before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--color-primary-500)}.prose ol li{margin-bottom:var(--space-2)}.prose ul ul,.prose ol ol,.prose ul ol,.prose ol ul{margin-top:var(--space-2);margin-bottom:0}.prose ul ul li::before{background:var(--color-text-muted)}.prose code{font-family:var(--font-family-mono);font-size:.875em;color:var(--color-primary-400);background:var(--color-primary-alpha-10);border:1px solid var(--color-primary-alpha-20);border-radius:var(--border-radius-sm);padding:.15em .45em}.prose pre{background:var(--color-bg-nav-dark);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-6);overflow-x:auto;margin:var(--space-6) 0}.prose pre code{font-size:var(--font-size-sm);color:var(--color-text-secondary);background:none;border:none;padding:0;border-radius:0}.prose table{width:100%;border-collapse:collapse;margin:var(--space-6) 0;font-size:var(--font-size-sm);overflow:hidden;border-radius:var(--border-radius-lg);border:1px solid var(--color-border)}.prose thead{background:var(--color-bg-card)}.prose thead th{padding:var(--space-3) var(--space-4);text-align:left;font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary-400);border-bottom:1px solid var(--color-border)}.prose tbody tr{border-bottom:1px solid var(--color-border-subtle);transition:background var(--transition-fast)}.prose tbody tr:last-child{border-bottom:none}.prose tbody tr:hover{background:var(--color-bg-card)}.prose tbody td{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);vertical-align:top}.prose img{border-radius:var(--border-radius-lg);border:1px solid var(--color-border);margin:var(--space-6) 0;max-width:100%}.prose img+em{display:block;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:calc(var(--space-6)*-1 + var(--space-2));margin-bottom:var(--space-6)}.prose details{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-4) var(--space-6);margin:var(--space-6) 0}.prose details[open] summary{margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3)}.prose summary{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-400);cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--space-2)}.prose summary::-webkit-details-marker{display:none}.prose summary::before{content:"▶";font-size:.6em;transition:transform var(--transition-fast)}.prose details[open] summary::before{transform:rotate(90deg)}.prose>p:first-of-type{font-size:1.2em;color:var(--color-text-secondary);line-height:1.7}@media(max-width: 768px){.prose{font-size:var(--font-size-base)}.prose h1{font-size:var(--font-size-3xl)}.prose h2{font-size:var(--font-size-xl)}.prose h3{font-size:var(--font-size-lg)}.prose pre{padding:var(--space-4);border-radius:var(--border-radius-md)}.prose table{display:block;overflow-x:auto}}.lab-categories{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;margin-bottom:var(--space-12)}.lab-category{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-normal);border:1px solid rgba(0,0,0,0)}.lab-category:hover{transform:translateY(-2px)}.lab-category.active{background:var(--color-primary-500);color:#fff;box-shadow:var(--shadow-md)}.lab-category[data-category=homelab]{background:rgba(0,255,255,.15);color:var(--color-machine-sailfish);border-color:rgba(0,255,255,.3)}.lab-category[data-category=homelab]:hover{background:rgba(0,255,255,.25)}.lab-category[data-category=homeprod]{background:rgba(255,0,0,.15);color:var(--color-machine-thresher);border-color:rgba(255,0,0,.3)}.lab-category[data-category=homeprod]:hover{background:rgba(255,0,0,.25)}.lab-category[data-category=experiments]{background:rgba(255,165,0,.15);color:var(--color-machine-remora);border-color:rgba(255,165,0,.3)}.lab-category[data-category=experiments]:hover{background:rgba(255,165,0,.25)}.lab-category-section{display:none}.lab-category-section.active{display:block;animation:fadeInUp .4s ease-out}.lab-project-card{display:flex;flex-direction:column;background:var(--color-bg-card);border-radius:var(--border-radius-lg);padding:var(--space-6);border:1px solid hsla(0,0%,100%,.05);transition:all var(--transition-normal);text-decoration:none;color:var(--color-text-primary)}.lab-project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:hsla(0,0%,100%,.15)}.lab-project-card .card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.lab-project-icon{width:48px;height:48px;background:hsla(0,0%,100%,.05);border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.lab-project-type{width:32px;height:32px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;font-size:1.1rem}.lab-project-type .material-symbols-outlined{font-size:1.1rem}.lab-project-type--internal{background:var(--color-primary-alpha-10);color:var(--color-primary-400);border:1px solid var(--color-primary-alpha-20)}.lab-project-type--contract{background:rgba(167,139,250,.1);color:var(--color-machine-krill);border:1px solid rgba(167,139,250,.2)}.lab-project-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2);color:var(--color-text-primary)}.lab-project-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-4);flex:1}.lab-project-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid hsla(0,0%,100%,.05)}.lab-project-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.lab-project-badge.status{background:rgba(34,197,94,.15);color:var(--color-success)}.lab-project-badge.status.inactive{background:rgba(128,128,128,.15);color:var(--color-retired)}.lab-project-badge.category{background:rgba(96,165,250,.15);color:var(--color-primary-400)}.lab-project-technologies{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.lab-project-tech-tag{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:hsla(0,0%,100%,.05);padding:var(--space-1) var(--space-3);border-radius:var(--border-radius-sm)}.lab-projects-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(350px, 1fr));gap:var(--space-6)}@media(max-width: 768px){.lab-projects-grid{grid-template-columns:1fr}.lab-category{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}}.machine-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:var(--space-6);margin-top:var(--space-8)}.machine-card{display:flex;flex-direction:column;border-radius:var(--border-radius-md);border:1px solid hsla(0,0%,100%,.1);background:linear-gradient(90deg, var(--card-color, var(--color-primary-500)), var(--card-color, var(--color-primary-600)));transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.machine-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.3)}.machine-header{display:flex}.machine-details{display:flex;flex-direction:row;justify-content:space-between;width:100%;background:var(--color-bg-card);border-radius:var(--border-radius-md);transition:all var(--transition-normal);padding:var(--space-1)}.machine-icon{width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-5xl);color:var(--color-bg-card);box-shadow:var(--shadow-md)}.material-symbols-outlined.custom-size{padding:var(--space-4);font-size:2rem}.machine-info{display:flex;flex-direction:column;justify-content:space-between}.machine-info h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.machine-info p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.machine-status{display:flex;align-items:center;gap:var(--space-3)}.status-led{width:12px;height:12px;border-radius:var(--border-radius-full);background:var(--color-success);box-shadow:0 0 10px var(--color-success);animation:pulse 2s infinite}.status-led.warning{background:var(--color-warning);box-shadow:0 0 10px var(--color-warning)}.status-led.offline{background:var(--color-danger);box-shadow:0 0 10px var(--color-danger);animation:blink 1s infinite}.status-led.retired{background:var(--color-retired);box-shadow:none;animation:none}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}.status-text{font-weight:var(--font-weight-semibold);color:var(--color-success)}.status-text.warning{color:var(--color-warning)}.status-text.offline{color:var(--color-danger)}.status-text.retired{color:var(--color-retired)}.service-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-primary-alpha-10);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);color:var(--color-primary-400);font-family:var(--font-family-mono)}.service-tag .material-symbols-outlined{font-size:1rem}.machine-card.loading .machine-icon,.machine-card.loading .machine-info,.machine-card.loading .machine-metrics{opacity:.5}.machine-card.loading .machine-icon{background:linear-gradient(135deg, var(--color-slate-700), var(--color-slate-600))}@media(max-width: 768px){.machine-icon{width:48px;font-size:1.25rem}.machine-grid{grid-template-columns:1fr}}.drawer-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-dropdown);align-items:center;justify-content:center;padding:var(--space-6)}input[id^=drawer-]:checked~.drawer-overlay{display:none}.drawer-backdrop{position:absolute;inset:0;z-index:0;cursor:default}.drawer{position:relative;z-index:1;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);width:min(600px,100%);max-height:88vh;overflow-y:auto;box-shadow:0 32px 80px rgba(0,0,0,.6)}.drawer::before{content:"";display:block;height:3px;background:var(--card-color, var(--color-primary-500));border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.drawer__header{padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid hsla(0,0%,100%,.06);display:flex;align-items:center;gap:var(--space-4)}.drawer__icon{width:52px;height:52px;border-radius:var(--border-radius-md);background:color-mix(in srgb, var(--card-color, var(--color-primary-500)) 15%, transparent);border:1px solid color-mix(in srgb, var(--card-color, var(--color-primary-500)) 30%, transparent);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--card-color, var(--color-primary-400))}.drawer__icon .material-symbols-outlined{font-size:1.6rem}.drawer__title{flex-grow:1}.drawer__title h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:var(--space-1) 0 var(--space-1)}.drawer__title p{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.drawer__status{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.drawer__close{align-self:flex-start;padding:var(--space-1) var(--space-3);border:1px solid hsla(0,0%,100%,.1);border-radius:var(--border-radius-md, 6px);color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-xs);text-decoration:none;white-space:nowrap;transition:border-color var(--transition-normal),color var(--transition-normal)}.drawer__close:hover{border-color:hsla(0,0%,100%,.3);color:var(--color-text-secondary)}.drawer__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.drawer__info-list{display:flex;flex-direction:column;border:1px solid hsla(0,0%,100%,.06);border-radius:var(--border-radius-sm);overflow:hidden}.drawer__info-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid hsla(0,0%,100%,.06)}.drawer__info-row:last-child{border-bottom:none}.drawer__info-row .tile-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.drawer__info-row .tile-value{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-family-mono);text-align:right}.api-error-note{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-danger);opacity:.7;margin-bottom:var(--space-4);text-align:center}.machine-grid.stale{opacity:.6}.drawer-overlay:not([data-status=online]) .drawer__usage{display:none}.drawer__section-title{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.drawer__usage{display:flex;flex-direction:column;gap:var(--space-4)}.drawer__usage [data-machine-field=gpu-rows],.drawer__usage [data-machine-field=disk-rows]{display:contents}.drawer__usage-row{display:flex;flex-direction:column;gap:var(--space-2)}.drawer__usage-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.drawer__usage-header>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usage-pct{font-weight:var(--font-weight-semibold);font-family:var(--font-family-mono);flex-shrink:0;white-space:nowrap}.usage-detail{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:var(--space-2)}.bar-track{background:hsla(0,0%,100%,.05);border-radius:var(--border-radius-full);height:5px;overflow:hidden}.bar-fill{height:100%;border-radius:var(--border-radius-full);width:var(--bar-pct, 0%);background:var(--bar-color, var(--color-primary-400));transition:width .4s ease,background .4s ease}.drawer__service-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.drawer__service-tags .service-tag{background:color-mix(in srgb, var(--card-color, var(--color-primary-500)) 12%, transparent);color:var(--card-color, var(--color-primary-400));border-radius:var(--border-radius-full)}@media(max-width: 768px){.drawer{border-radius:var(--border-radius-md)}}/*# sourceMappingURL=index.css.map */