:root{--theme-name:"Default";--theme-version:"1.0.0";--theme-author:"Kyle Blank Rollins";--color-primary:#2d2d2d;--color-primary-hover:#1a1a1a;--color-primary-active:#000;--color-primary-subtle:#f5f5f5;--color-on-surface:#2d2d2d;--color-on-surface-hover:#1a1a1a;--color-on-surface-active:#000;--color-secondary:#4a4a4a;--color-secondary-hover:#616161;--color-secondary-active:#757575;--color-secondary-subtle:#f8f8f8;--color-accent:#06c;--color-accent-hover:#0052a3;--color-accent-active:#004080;--color-accent-subtle:#e6f2ff;--color-success:#22c55e;--color-success-hover:#16a34a;--color-success-subtle:#dcfce7;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-subtle:#fef3c7;--color-error:#ef4444;--color-error-hover:#dc2626;--color-error-subtle:#fecaca;--color-info:#3b82f6;--color-info-hover:#2563eb;--color-info-subtle:#dbeafe;--color-accent-strong:#06c;--color-success-strong:#167d3c;--color-warning-strong:#956006;--color-error-strong:#b51010;--color-info-strong:#0a5ce1;--color-background:#fff;--color-background-secondary:#f8f9fa;--color-background-tertiary:#e9ecef;--color-surface:#fff;--color-surface-hover:#f8f9fa;--color-surface-active:#e9ecef;--color-text:#212529;--color-text-secondary:#6c757d;--color-text-tertiary:#adb5bd;--color-text-inverse:#fff;--color-text-disabled:#ced4da;--color-border:#dee2e6;--color-border-secondary:#e9ecef;--color-border-strong:#adb5bd;--color-border-interactive:#06c;--color-shadow-light:#0000000d;--color-shadow:#0000001a;--color-shadow-strong:#00000026;--color-shadow-dark:#00000040;--shadow-xs:0 1px 2px 0 var(--color-shadow-light);--shadow-sm:0 1px 3px 0 var(--color-shadow), 0 1px 2px -1px var(--color-shadow-light);--shadow-md:0 4px 6px -1px var(--color-shadow), 0 2px 4px -2px var(--color-shadow-light);--shadow-lg:0 10px 15px -3px var(--color-shadow-strong), 0 4px 6px -4px var(--color-shadow);--font-family-primary:"valkyrie_b", Georgia, Cambria, "Times New Roman", serif;--font-family-heading:"valkyrie_b_caps", Georgia, Cambria, "Times New Roman", serif;--font-family-mono:"IBM Plex Mono", "Cascadia Code", Monaco, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-size-4xl:3rem;--font-size-5xl:3.5rem;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.6;--line-height-loose:1.8;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--letter-spacing-tight:-.01em;--letter-spacing-normal:0;--letter-spacing-wide:.025em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.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;--space-32:8rem;--space-2xs:var(--space-1);--space-xs:var(--space-2);--space-sm:var(--space-4);--space-md:var(--space-6);--space-lg:var(--space-8);--space-xl:var(--space-12);--space-2xl:var(--space-16);--content-max-width:1200px;--content-narrow:800px;--content-wide:1600px;--sidebar-width:280px;--header-height:80px;--footer-height:120px;--radius-sm:.25rem;--radius:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--input-padding-x:var(--space-4);--input-padding-y:var(--space-3);--input-border-radius:var(--radius);--input-border-width:1px;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.35s;--duration-slower:.5s;--easing-ease:ease;--easing-ease-in:ease-in;--easing-ease-out:ease-out;--easing-ease-in-out:ease-in-out;--transition-fast:var(--duration-fast) var(--easing-ease);--transition-normal:var(--duration-normal) var(--easing-ease);--transition-slow:var(--duration-slow) var(--easing-ease);--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-color:var(--color-on-surface);--focus-ring-style:solid;--shadow-focus:0 0 0 var(--focus-ring-width) var(--focus-ring-color);--animation-duration:var(--duration-normal);--animation-easing:var(--easing-ease)}[data-color-scheme=dark]{--color-background:#0f172a;--color-background-secondary:#1e293b;--color-background-tertiary:#334155;--color-surface:#1e293b;--color-surface-hover:#334155;--color-surface-active:#475569;--color-text:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-text-inverse:#0f172a;--color-text-disabled:#64748b;--color-border:#334155;--color-border-secondary:#475569;--color-border-strong:#64748b;--color-primary:#e2e8f0;--color-primary-hover:#f8fafc;--color-primary-active:#fff;--color-primary-subtle:#334155;--color-on-surface:#e2e8f0;--color-on-surface-hover:#f8fafc;--color-on-surface-active:#fff;--color-secondary:#94a3b8;--color-secondary-hover:#cbd5e1;--color-secondary-active:#e2e8f0;--color-secondary-subtle:#1e293b;--color-accent:#3b82f6;--color-accent-hover:#60a5fa;--color-accent-active:#93c5fd;--color-accent-subtle:#1e3a8a;--color-success:#10b981;--color-success-hover:#34d399;--color-success-subtle:#064e3b;--color-warning:#f59e0b;--color-warning-hover:#fbbf24;--color-warning-subtle:#78350f;--color-error:#f87171;--color-error-hover:#fca5a5;--color-error-subtle:#7f1d1d;--color-info:#60a5fa;--color-info-hover:#93c5fd;--color-info-subtle:#1e3a8a;--color-accent-strong:#84b1f9;--color-success-strong:#12ce90;--color-warning-strong:#f7ad32;--color-error-strong:#fa9797;--color-info-strong:#78b3fb;--color-shadow-light:#0000004d;--color-shadow:#0006;--color-shadow-strong:#0009;--color-shadow-dark:#000c}@media (prefers-reduced-motion:reduce){:root{--animation-duration:0s;--transition-fast:0s;--transition-normal:0s;--transition-slow:0s}}@media (prefers-contrast:high){:root{--color-border:var(--color-text);--color-border-secondary:var(--color-text-secondary);--focus-ring-width:3px}}[data-theme=base]{--theme-name:"Basic Blue";--theme-version:"1.0.0";--color-primary:#e2e8f0;--color-primary-hover:#cbd5e1;--color-primary-active:#94a3b8;--color-primary-subtle:#f8fafc;--color-on-surface:#1e40af;--color-on-surface-hover:#1e3a8a;--color-on-surface-active:#172554;--color-secondary:#94a3b8;--color-secondary-hover:#64748b;--color-secondary-active:#475569;--color-secondary-subtle:#f1f5f9;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-accent-active:#1d4ed8;--color-accent-subtle:#eff6ff;--color-success:#22c55e;--color-success-hover:#16a34a;--color-success-subtle:#dcfce7;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-subtle:#fef3c7;--color-error:#ef4444;--color-error-hover:#dc2626;--color-error-subtle:#fecaca;--color-info:#3b82f6;--color-info-hover:#2563eb;--color-info-subtle:#dbeafe;--color-accent-strong:#0b63f1;--color-success-strong:#167d3c;--color-warning-strong:#956006;--color-error-strong:#b51010;--color-info-strong:#0a5ce1;--color-background:#fff;--color-background-secondary:#f8f9fa;--color-background-tertiary:#e9ecef;--color-surface:#fff;--color-surface-hover:#f8f9fa;--color-surface-active:#e9ecef;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#64748b;--color-text-inverse:#f8fafc;--color-text-disabled:#94a3b8;--color-border:#e2e8f0;--color-border-secondary:#f1f5f9;--color-border-strong:#cbd5e1;--color-border-interactive:#3b82f6;--color-shadow-light:#0000000d;--color-shadow:#0000001a;--color-shadow-strong:#00000026;--color-shadow-dark:#00000040;--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);--gradient-primary-light:linear-gradient(90deg, #e2e8f01a 0%, #94a3b81a 50%, #3b82f61a 100%);--gradient-accent:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);--gradient-surface:linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-hover) 100%);--glass-background:#f8f9fa40;--glass-border:#fff3;--glass-blur:24px}[data-theme=base][data-color-scheme=dark]{--color-background:#0f172a;--color-background-secondary:#1e293b;--color-background-tertiary:#334155;--color-surface:#1e293b;--color-surface-hover:#334155;--color-surface-active:#475569;--color-text:#e2e8f0;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-text-inverse:#0f172a;--color-text-disabled:#64748b;--color-primary:#1e293b;--color-primary-hover:#0f172a;--color-primary-active:#020617;--color-primary-subtle:#334155;--color-on-surface:#bfdbfe;--color-on-surface-hover:#dbeafe;--color-on-surface-active:#eff6ff;--color-secondary:#334155;--color-secondary-hover:#475569;--color-secondary-active:#64748b;--color-secondary-subtle:#1e293b;--color-accent:#1e40af;--color-accent-hover:#1d4ed8;--color-accent-active:#2563eb;--color-accent-subtle:#1e3a8a;--color-success:#10b981;--color-success-hover:#34d399;--color-success-subtle:#064e3b;--color-warning:#f59e0b;--color-warning-hover:#fbbf24;--color-warning-subtle:#78350f;--color-error:#f87171;--color-error-hover:#fca5a5;--color-error-subtle:#7f1d1d;--color-info:#60a5fa;--color-info-hover:#93c5fd;--color-info-subtle:#1e3a8a;--color-accent-strong:#9aaeee;--color-success-strong:#12ce90;--color-warning-strong:#f7ad32;--color-error-strong:#fa9797;--color-info-strong:#78b3fb;--color-border:#334155;--color-border-secondary:#475569;--color-border-strong:#64748b;--color-shadow-light:#0000004d;--color-shadow:#0006;--color-shadow-strong:#0009;--color-shadow-dark:#000c;--font-weight-normal:450;--font-size-base:1.0625rem;--line-height-normal:1.6;--line-height-relaxed:1.7;--letter-spacing-normal:.01em;--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);--gradient-primary-light:linear-gradient(90deg, #1e293b1a 0%, #3341551a 50%, #1e40af1a 100%);--gradient-accent:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);--gradient-surface:linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-hover) 100%);--glass-background:#1e293b26;--glass-border:#ffffff1a;--glass-blur:12px}.gradient-bar{background:var(--gradient-primary)}.gradient-bar-light{background:var(--gradient-primary-light)}.gradient-accent{background:var(--gradient-accent)}.gradient-surface{background:var(--gradient-surface)}.glass-surface{background:var(--glass-background);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius);padding:var(--space-sm);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}[data-theme=canney-valley]{--theme-name:"Canney Valley";--theme-version:"1.0.0";--theme-author:"Kyle Blank Rollins";--color-primary:#81c784;--color-primary-hover:#66bb6a;--color-primary-active:#4caf50;--color-primary-subtle:#e8f5e9;--color-on-surface:#1b5e20;--color-on-surface-hover:#14481a;--color-on-surface-active:#0d3d14;--color-secondary:#a5d6a7;--color-secondary-hover:#81c784;--color-secondary-active:#66bb6a;--color-secondary-subtle:#f1f8e9;--color-accent:#cab3bf;--color-accent-hover:#b39dac;--color-accent-active:#9c8799;--color-accent-subtle:#faf7f9;--color-success:#68b96b;--color-success-hover:#5aa65d;--color-success-active:#4d8850;--color-success-subtle:#f0f8f0;--color-warning:#e5a933;--color-warning-hover:#d4951f;--color-warning-active:#c2810c;--color-warning-subtle:#fdf6e8;--color-error:#f44336;--color-error-hover:#e53935;--color-error-active:#d32f2f;--color-error-subtle:#ffebee;--color-info:#66ab68;--color-info-hover:#5a9a5c;--color-info-active:#4d8850;--color-info-subtle:#f0f8f0;--color-accent-strong:#8d6278;--color-success-strong:#397b3b;--color-warning-strong:#916612;--color-error-strong:#d1190b;--color-info-strong:#437944;--color-background:#f4f5f2;--color-background-secondary:#eef0ec;--color-background-tertiary:#e8eae6;--color-surface:#fbfcf9;--color-surface-hover:#f4f5f2;--color-surface-active:#eef0ec;--color-text:#263238;--color-text-secondary:#546e7a;--color-text-tertiary:#78909c;--color-text-inverse:#f4f5f2;--color-text-disabled:#b0bec5;--color-border:#c8e6c9;--color-border-secondary:#e8f5e9;--color-border-strong:#81c784;--color-border-interactive:#cab3bf;--color-shadow-light:#2632380d;--color-shadow:#2632381a;--color-shadow-strong:#26323826;--color-shadow-dark:#26323840;--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);--gradient-primary-light:linear-gradient(90deg, #81c78433 2%, #cab3bf33 50%, #a5d6a733 98%);--gradient-accent:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);--gradient-surface:linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-hover) 100%);--glass-background:#eef0ec40;--glass-border:#fff3;--glass-blur:24px}[data-theme=canney-valley][data-color-scheme=dark]{--color-background:#1c2420;--color-background-secondary:#263238;--color-background-tertiary:#37474f;--color-surface:#263238;--color-surface-hover:#37474f;--color-surface-active:#455a64;--color-text:#ecf4ec;--color-text-secondary:#b2d5b3;--color-text-tertiary:#839097;--color-text-inverse:#263238;--color-text-disabled:#546e7a;--color-primary:#2e7d32;--color-primary-hover:#1b5e20;--color-primary-active:#0d3d14;--color-primary-subtle:#4caf50;--color-on-surface:#a5d6a7;--color-on-surface-hover:#c8e6c9;--color-on-surface-active:#e8f5e9;--color-secondary:#263238;--color-secondary-hover:#37474f;--color-secondary-active:#455a64;--color-secondary-subtle:#37474f;--color-accent:#6d4c5a;--color-accent-hover:#4a2c37;--color-accent-active:#2d1a23;--color-accent-subtle:#5d3043;--color-accent-strong:#c1a6b1;--color-success:#479a4a;--color-success-hover:#5fb562;--color-success-subtle:#204622;--color-success-strong:#72be75;--color-info:#539855;--color-info-hover:#6eb070;--color-info-subtle:#244625;--color-info-strong:#83bb84;--color-warning:#b47f17;--color-warning-hover:#e19f1d;--color-warning-subtle:#523a0a;--color-warning-strong:#e2a11f;--color-error:#f54c40;--color-error-hover:#f77a71;--color-error-subtle:#7f0f07;--color-error-strong:#f99089;--color-border:#455a64;--color-border-secondary:#546e7a;--color-border-strong:#78909c;--color-shadow-light:#0000004d;--color-shadow:#0006;--color-shadow-strong:#0009;--color-shadow-dark:#000c;--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);--gradient-primary-light:linear-gradient(90deg, #2e7d3233 2%, #6d4c5a33 50%, #26323833 98%);--gradient-accent:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);--gradient-surface:linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-hover) 100%);--glass-background:#2632380d;--glass-border:#ffffff1a;--glass-blur:12px}@font-face{font-family:IBM Plex Sans;src:url(../fonts/IBMPlexSans-Thin.woff2)format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../fonts/IBMPlexSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../fonts/IBMPlexSans-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../fonts/IBMPlexSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(../fonts/IBMPlexSans-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../fonts/IBMPlexMono-ExtraLight.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../fonts/IBMPlexMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../fonts/IBMPlexMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:valkyrie_b;font-style:normal;font-weight:400;font-stretch:100%;font-display:auto;src:url(../fonts/valkyrie_b_regular.woff2)format("woff2")}@font-face{font-family:valkyrie_b;font-style:italic;font-weight:400;font-stretch:100%;font-display:auto;src:url(../fonts/valkyrie_b_italic.woff2)format("woff2")}@font-face{font-family:valkyrie_b;font-style:normal;font-weight:700;font-stretch:100%;font-display:auto;src:url(../fonts/valkyrie_b_bold.woff2)format("woff2")}@font-face{font-family:valkyrie_b_caps;font-style:normal;font-weight:400;font-stretch:100%;font-display:auto;src:url(../fonts/valkyrie_b_caps_regular.woff2)format("woff2")}@font-face{font-family:valkyrie_b_caps;font-style:normal;font-weight:700;font-stretch:100%;font-display:auto;src:url(../fonts/valkyrie_b_caps_bold.woff2)format("woff2")}html,.root{font-family:var(--font-family-primary);font-size:18px;line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.article{font-family:var(--font-family-primary);font-size:1rem;line-height:var(--line-height-normal);margin:auto}h1,h2{font-family:var(--font-family-heading)}h3,h4,h5{font-family:var(--font-family-primary)}h1,.h1{margin-top:0;margin-bottom:1.81rem;font-size:3rem;line-height:3.63rem}h2,.h2{margin-top:.98rem;margin-bottom:.98rem;font-size:2rem;line-height:2.95rem}h3,.h3{margin-top:1.27778rem;margin-bottom:0;font-size:1.61111rem;line-height:2.55556rem}h4,.h4,h5,.h5{margin-top:1.27778rem;margin-bottom:0;font-size:1rem;line-height:1.27778rem}p,ul,ol,pre,table,blockquote{margin-top:0;margin-bottom:1.27778rem}ul ul,ol ol,ul ol,ol ul{margin-top:0;margin-bottom:0}hr,.hr{border:1px solid;margin:-1px 0}b,i,strong,em,small,code{line-height:0}sub,sup{vertical-align:baseline;line-height:0;position:relative}sup{top:-.5em}sub{bottom:-.25em}a{color:var(--color-text);transition:color var(--transition-normal);text-decoration:underline}a:hover{color:var(--color-on-surface-hover)}.ui-label{font-family:var(--font-family-heading);font-size:var(--font-size-base)}@media (max-width:768px){h1,.h1{margin-bottom:1.2rem;font-size:2.25rem;line-height:2.3rem}h2,.h2{margin-top:.8rem;margin-bottom:.8rem;font-size:1.5rem;line-height:1.6rem}h3,.h3{margin-top:1rem;font-size:1.3rem;line-height:1.4rem}h4,.h4,h5,.h5{margin-top:1rem;line-height:1.1rem}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html{color:var(--color-text);background:var(--gradient-primary);background-attachment:fixed}body{min-height:100vh;letter-spacing:var(--letter-spacing-normal);background:0 0;flex-direction:column;margin:0;padding:0;display:flex}[data-color-scheme=dark] body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.page-content{width:100%;max-width:var(--content-max-width);margin:var(--space-2xl) auto;padding-inline:var(--space-lg);flex:1 0 auto}.site-footer{width:100%;max-width:var(--content-max-width);padding:var(--space-md) var(--space-lg) var(--space-lg);border-top:1px solid var(--color-border);flex-shrink:0;margin:0 auto}.site-footer-nav ul{justify-content:center;gap:var(--space-lg);margin:0;padding:0;list-style:none;display:flex}.site-footer-nav a{color:var(--color-text);font-family:var(--font-family-heading);font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);text-decoration:none}.site-footer-nav a:hover{background-color:var(--color-on-surface);color:var(--color-text-inverse)}.site-footer-nav a:focus-visible{outline:var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.lead{font-size:var(--font-size-lg);max-width:65ch;line-height:1.4}.container{max-width:var(--content-max-width);padding:0 var(--space-md);margin:0 auto}.container.narrow{max-width:var(--content-narrow)}.grid{gap:var(--space-lg);min-width:0;display:grid}.grid.two-columns{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.grid.three-columns{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-lg);transition:all var(--transition-normal);container-type:inline-size}@container (width>=300px){.card{padding:var(--space-xl)}}.card .card-title{margin-bottom:var(--space-md);justify-content:center;align-items:center;display:flex}.card .card-title h2{margin:0}.card .card-icon{font-size:var(--font-size-lg);color:var(--color-text);margin-right:1em}.card .card-content{color:var(--color-text-secondary)}.card p{margin:0}.nav-card{color:var(--color-text);text-align:center;text-decoration:none}.nav-card,.nav-card:visited{color:var(--color-text)}.nav-card:hover,.nav-card:focus{color:var(--color-text);background-color:var(--color-background-secondary);text-decoration:none}.nav-card *{color:inherit}.nav-card h2{color:var(--color-text)}.nav-card p{color:var(--color-text-secondary)}.samples-section{margin-top:var(--space-xl)}.samples-section h3{margin-bottom:var(--space-lg);color:var(--color-on-surface);border-bottom:2px solid var(--color-border);padding-bottom:var(--space-sm)}.sample-card{flex-direction:column;height:100%;display:flex}.sample-card .sample-image-container{border-radius:var(--radius-sm);width:100%;height:200px;margin-bottom:var(--space-md);background:var(--color-background-secondary);overflow:hidden}.sample-card .sample-image{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-normal)}.sample-card .sample-content{flex-direction:column;flex:1;display:flex}.sample-card .sample-content h4{margin-bottom:var(--space-sm);font-size:var(--font-size-lg);color:var(--color-text);line-height:1.3}.sample-card .sample-content p{margin-bottom:var(--space-md);color:var(--color-text-secondary);flex:1}.sample-card .sample-link{color:var(--color-accent);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);align-items:center;margin-top:auto;text-decoration:none;display:inline-flex}.sample-card .sample-link:hover{color:var(--color-on-surface);text-decoration:underline}.sample-card:hover .sample-image{transform:scale(1.05)}.project-card{display:flex}.project-card .project-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:flex-start;display:flex}.project-card .project-header h4{font-size:var(--font-size-xl);color:var(--color-text);margin:0;line-height:1.3}.project-card .project-info{margin-left:var(--space-md);flex:2}.project-card .project-link{color:var(--color-accent);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:color var(--transition-fast);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.project-card .project-link:hover{color:var(--color-on-surface);text-decoration:underline}.project-card .project-image-container{flex:1;align-items:center;width:100%;height:auto;display:flex;overflow:hidden}.project-card .project-image{object-fit:contain;object-position:center;width:100%;height:auto;transition:transform var(--transition-normal)}.project-card .project-content{gap:var(--space-lg);flex-direction:column;display:flex}.project-card .project-features h5{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-md);color:var(--color-text);font-weight:var(--font-weight-semibold)}.project-card .project-features ul{margin:0;padding:0;list-style:none}.project-card .project-features ul li{margin-bottom:var(--space-sm);padding-left:var(--space-md);color:var(--color-text);line-height:1.5;position:relative}.project-card .project-features ul li:before{content:"•";color:var(--color-accent);font-weight:700;position:absolute;left:0}.project-card .project-description p{margin-bottom:var(--space-md);color:var(--color-text);line-height:1.6}.project-card .project-description p:last-child{margin-bottom:0}@media (min-width:1024px){.web-projects .project-card{gap:var(--space-xl);grid-template-columns:1fr 1fr;grid-template-areas:"header header""image content";align-items:start;display:grid}.web-projects .project-card .project-header{margin-bottom:var(--space-md);grid-area:header}.web-projects .project-card .project-image-container{grid-area:image;justify-content:center;align-self:center;align-items:center;height:auto;margin-bottom:0;display:flex}.web-projects .project-card .project-content{gap:var(--space-md);flex-direction:column;grid-area:content;justify-content:center;align-self:center;display:flex}.web-projects .project-card:nth-child(2n){grid-template-areas:"header header""content image"}}.portfolio-layout{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-xl);align-items:start;display:grid}.portfolio-toc{top:var(--space-lg);min-width:0;position:sticky}.portfolio-content{min-width:0}@media (max-width:1199px){.portfolio-layout{gap:var(--space-lg);grid-template-columns:1fr}.portfolio-toc{margin-bottom:var(--space-xl);position:static}.web-projects .project-card{display:block}.web-projects .project-card .project-image-container{height:auto;margin-bottom:var(--space-lg)}.web-projects .project-card .project-content{gap:var(--space-lg)}}@media (max-width:768px){.page-content{margin-block:var(--space-lg) var(--space-xl);padding-inline:var(--space-sm)}.container{padding:0 var(--space-sm)}.project-card .project-header{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.project-card .project-header h4{font-size:var(--font-size-lg)}.project-card .project-image-container{display:none}.project-card .project-info{margin-left:0}.project-card .project-content{gap:var(--space-md)}.project-card .project-features h5{font-size:var(--font-size-base);margin-bottom:var(--space-xs)}.project-card .project-features ul li{font-size:var(--font-size-sm);margin-bottom:var(--space-xs);padding-left:var(--space-sm)}.project-card .project-description p{font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.web-projects .project-card{display:block}}.hero{padding:calc(var(--space-2xl) * 2) 0 var(--space-2xl);text-align:center;font-size:var(--font-size-lg)}.hero .hero-content{max-width:var(--content-narrow);margin:0 auto}.hero .hero-content h1{margin-bottom:var(--space-lg)}.hero .hero-content .hero-subtitle{font-size:var(--font-size-xl);margin-bottom:var(--space-xl);opacity:.9}.hero.home .hero-content{text-align:left}.content-section{content-visibility:auto;contain-intrinsic-size:500px}@media (max-width:768px){.navigation .nav-links{gap:var(--space-md)}.hero{padding:var(--space-xl) 0}.container{padding:0 var(--space-sm)}}button{border-radius:var(--radius);font-size:1em;font-weight:var(--font-weight-medium);background-color:var(--color-on-surface);color:var(--color-text-inverse);cursor:pointer;border:1px solid #0000;padding:.6em 1.2em;font-family:inherit;transition:border-color .25s}button:hover{border-color:var(--color-accent);background-color:var(--color-accent)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (max-width:768px){.blog-post-tags{align-items:flex-start;gap:var(--space-xs);flex-direction:column}.tag-list{width:100%}}.blog-content{padding:0 var(--space-md)}.blog-layout{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-xl);max-width:var(--content-max-width);align-items:start;margin:0 auto;display:grid}.blog-sidebar{top:var(--space-lg);position:sticky}.blog-posts{min-width:0}@media (max-width:1024px){.blog-layout{gap:var(--space-lg);grid-template-columns:250px 1fr}}@media (max-width:768px){.blog-content{padding:0}.blog-layout{gap:var(--space-md);grid-template-columns:1fr}.blog-sidebar{order:2;position:static}.blog-posts{order:1}.grid.two-columns{gap:var(--space-md)}.sample-card .sample-image-container{height:150px;margin-bottom:var(--space-sm)}.sample-card .sample-content h4{font-size:var(--font-size-base);margin-bottom:var(--space-xs)}.sample-card .sample-content p{font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.project-card{padding:var(--space-md)}}.cards-container{justify-content:center;display:flex}.cards{width:100%;min-width:0;max-width:1200px}@media (max-width:768px){.cards-container{margin-top:var(--space-md)}}.blog-post-layout{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--space-lg);max-width:var(--content-max-width);padding:var(--space-lg);flex:1 0 auto;grid-template-areas:"sidebar content";margin:0 auto;display:grid}.blog-toc-sidebar{grid-area:sidebar;min-width:0}.blog-toc-sticky-container{top:var(--space-lg);max-height:calc(100vh - var(--space-xl));position:sticky;overflow-y:auto}.blog-post-content{min-width:0;max-width:none;padding:var(--space-xl) var(--space-lg);grid-area:content}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{margin-bottom:var(--space-sm)}.blog-post-content blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-on-surface);padding:var(--space-lg);color:var(--color-text-secondary);font-style:italic}.blog-post-content code{background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-family-mono);color:var(--color-on-surface);font-size:.875em;font-weight:var(--font-weight-medium);box-shadow:0 1px 2px var(--color-shadow-light);padding:0 .2em;transition:all .2s}.blog-post-content code:hover{background:var(--color-background-tertiary);box-shadow:0 2px 4px var(--color-shadow);transform:translateY(-1px)}.blog-post-content pre{background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-lg) var(--space-xl);margin:var(--space-lg) 0;box-shadow:0 2px 8px var(--color-shadow), 0 1px 4px var(--color-shadow-light);font-size:.9rem;line-height:1.6;transition:all .3s;position:relative;overflow-x:auto}.blog-post-content pre:hover{box-shadow:0 4px 16px var(--color-shadow), 0 2px 8px var(--color-shadow-light);transform:translateY(-2px)}.blog-post-content pre code{font-size:inherit;color:var(--color-text);box-shadow:none;background:0 0;border:none;padding:0;font-weight:400;transition:none}.blog-post-content pre code:hover{box-shadow:none;background:0 0;transform:none}.blog-post-content pre::-webkit-scrollbar{height:8px}.blog-post-content pre::-webkit-scrollbar-track{background:var(--color-background-tertiary);border-radius:var(--radius-sm)}.blog-post-content pre::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm);transition:background .2s}.blog-post-content pre::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.blog-post-content pre:focus-within{outline:2px solid var(--color-on-surface);outline-offset:2px}@media (max-width:768px){.blog-post-content pre{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);font-size:.85rem}.blog-post-content pre:hover{transform:none}}.blog-post-metadata{border-bottom:2px solid var(--color-text-secondary);padding:0 0 var(--space-sm) 0;margin-top:var(--space-md);margin-bottom:var(--space-lg)}.blog-post-date time{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.blog-post-tags{margin-top:var(--space-xl)}.tags-label{color:var(--color-text);font-weight:var(--font-weight-medium);margin-right:var(--space-sm)}.tag-list{gap:var(--space-xs);flex-wrap:wrap;display:inline-flex}.blog-tag{background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);cursor:pointer;padding:var(--space-xs) var(--space-sm);transition:all var(--transition-fast);font-size:.9rem}.blog-tag:hover{background:var(--color-on-surface);color:var(--color-text-inverse);border-color:var(--color-on-surface)}@media (max-width:1024px){.blog-post-layout{gap:var(--space-lg);padding:var(--space-md);grid-template-columns:1fr;grid-template-areas:"sidebar""content"}.blog-toc-sidebar{order:1}.blog-post-content{order:2}}@media (max-width:768px){.blog-post-layout{padding:var(--space-sm);gap:var(--space-md)}}@media (max-width:480px){.blog-post-layout{padding:var(--space-xs)}.blog-post-content{padding:var(--space-sm)}}.citation-ref{font-weight:var(--font-weight-semibold);color:var(--color-on-surface);transition:color var(--transition-fast);margin-left:.1em;text-decoration:none}.citation-ref:hover{color:var(--color-on-surface-hover);text-decoration:underline}.blog-citations-container{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:2px solid var(--color-border)}.citations h2{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-md);font-weight:var(--font-weight-semibold)}.citations-list{padding-left:var(--space-xl);list-style-type:decimal}.citations-list li{padding-left:var(--space-xs);line-height:1.6}.citations-list li:last-child{margin-bottom:0}.citations em{color:var(--color-text);font-style:italic;font-weight:var(--font-weight-medium)}.citation-links{margin-left:var(--space-sm);white-space:nowrap}.citations a{color:var(--color-text-secondary);transition:all var(--transition-fast);font-size:.9rem;text-decoration:none}.citations a:hover{color:var(--color-on-surface-hover);text-decoration:underline}.citation-separator{margin:0 var(--space-xs);color:var(--color-text-tertiary)}.citation-backrefs{margin-left:var(--space-sm);font-size:1.2rem}.citation-backref{color:var(--color-text-secondary);margin-left:var(--space-2xs);transition:color var(--transition-fast);text-decoration:none}.citation-backref:hover{color:var(--color-on-surface)}@media (max-width:768px){.citations-list{padding-left:var(--space-lg)}.citation-links,.citation-backrefs{margin-left:0;margin-top:var(--space-2xs);display:block}}.blog-post-content pre[class*=language-]{position:relative}.blog-post-content code[class*=language-]{color:var(--color-text);font-family:var(--font-family-mono);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;tab-size:4;-webkit-hyphens:none;hyphens:none;line-height:1.6}:root{--prism-comment:#5f6673;--prism-punctuation:#24292f;--prism-property:#cf222e;--prism-string:#116329;--prism-operator:#953800;--prism-keyword:#0550ae;--prism-function:#6f42c1;--prism-variable:#953800}[data-color-scheme=dark]{--prism-comment:#9ba7b0;--prism-punctuation:#c9d1d9;--prism-property:#ff7b72;--prism-string:#7ee787;--prism-operator:#ffa657;--prism-keyword:#79c0ff;--prism-function:#d2a8ff;--prism-variable:#ffa657}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--prism-comment);font-style:italic}.token.punctuation,.token.attr-equals{color:var(--prism-punctuation)}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:var(--prism-property)}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:var(--prism-string)}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:var(--prism-operator)}.token.atrule,.token.attr-value,.token.keyword{color:var(--prism-keyword);font-weight:var(--font-weight-medium)}.token.function,.token.class-name{color:var(--prism-function);font-weight:var(--font-weight-medium)}.token.regex,.token.important,.token.variable{color:var(--prism-variable)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.7}.language-json .token.property{color:var(--prism-keyword)}.language-json .token.string{color:var(--prism-string)}.language-css .token.selector{color:var(--prism-function)}.language-css .token.property{color:var(--prism-keyword)}.language-javascript .token.template-string,.language-typescript .token.template-string{color:var(--prism-string)}.language-javascript .token.template-punctuation,.language-typescript .token.template-punctuation,.token.interpolation-punctuation{color:var(--prism-property)}.token.interpolation{color:var(--color-text)}.language-bash .token.function{color:var(--prism-keyword)}.language-bash .token.parameter{color:var(--color-text)}.blog-post-content pre.language-javascript:before{content:"JS"}.blog-post-content pre.language-typescript:before{content:"TS"}.blog-post-content pre.language-css:before{content:"CSS"}.blog-post-content pre.language-scss:before{content:"SCSS"}.blog-post-content pre.language-json:before{content:"JSON"}.blog-post-content pre.language-bash:before{content:"BASH"}.blog-post-content pre.language-shell:before{content:"SHELL"}.blog-post-content pre.language-python:before{content:"PYTHON"}.blog-post-content pre.language-yaml:before{content:"YAML"}.blog-post-content pre.language-markdown:before{content:"MD"}.blog-post-content pre.language-sql:before{content:"SQL"}.blog-post-content pre.language-jsx:before{content:"JSX"}.blog-post-content pre.language-tsx:before{content:"TSX"}.blog-post-content pre.language-diff:before{content:"DIFF"}.blog-post-content pre[class*=language-]:before{background:var(--color-background-tertiary);color:var(--color-text-secondary);font-size:.7rem;font-weight:var(--font-weight-semibold);border-radius:0 var(--radius) 0 var(--radius-sm);text-transform:uppercase;letter-spacing:.75px;opacity:.6;font-family:var(--font-family-heading);padding:.25rem .5rem;transition:opacity .2s;position:absolute;top:0;right:0}.blog-post-content pre[class*=language-]:hover:before{opacity:.9}.blog-post-content pre.language-none:before,.blog-post-content pre.language-text:before,.blog-post-content pre.language-plain:before{display:none}[data-color-scheme=dark] .blog-post-content pre[class*=language-]:before{color:#fffc;background:#ffffff1a}[data-color-scheme=dark] .blog-post-content pre[class*=language-]:hover:before{color:#fffffff2}
