@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-300-U1F001FFF.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-U1F001FFF.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-U1F001FFF.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-U1F001FFF.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-U1F001FFF.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-U1F001FFF.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U03700377U037A037FU0.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-U0460052FU1C801C8AU2.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/playfair-display-800-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/playfair-display-800-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/playfair-display-800-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/playfair-display-800-U0301U0400045FU04900.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-700-U000000FFU0131U01520.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-700-U010002BAU02BD02C5U0.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-700-U01020103U01100111U0.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-400.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2) format("woff2")}:root{--font-heading: "Playfair Display", "Georgia", serif;--font-nav: "Space Grotesk", "Inter", -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, "Segoe UI", sans-serif;--font-code: "JetBrains Mono", "Fira Code", monospace;--font-mono-alt: "Space Mono", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-5xl: 8rem;--nav-height: 80px;--container-max: 1200px;--container-narrow: 720px;--container-wide: 1400px;--container-padding: 1.5rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 8px 40px rgba(0,0,0,.12);--shadow-card: 0 2px 24px rgba(0,0,0,.06);--transition-fast: .2s ease;--transition-base: .35s cubic-bezier(.25, .46, .45, .94);--transition-slow: .6s cubic-bezier(.25, .46, .45, .94);--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300}:root{--color-terracotta: #C8674B;--color-rose: #D4607A;--color-gold: #D4764E;--color-botanical: #3A5A4A;--color-botanical-light: #5A7A6A;--color-accent-rose: var(--color-rose);--color-accent-gold: var(--color-gold);--color-accent-botanical: var(--color-botanical-light)}[data-theme=dark]{--color-primary: var(--color-terracotta);--color-primary-light: #D88468;--color-primary-dark: #A84F38;--color-primary-subtle: rgba(200,103,75,.06);--color-bg: #0D0A08;--color-bg-alt: #14100E;--color-bg-card: #1A1411;--color-bg-glass: rgba(20,16,14,.7);--color-text-primary: #EDE8E0;--color-text-secondary: #A89E94;--color-text-tertiary: #70665C;--color-text-on-primary: #0D0A08;--color-text-link: var(--color-terracotta);--hero-text-color: #EDE8E0;--hero-role-color: rgba(200,180,165,.6);--hero-overlay-color: rgba(0,0,0,.35);--hero-shadow-color: rgba(200,103,75,.12);--hero-top-gradient: rgba(0,0,0,.15);--color-text-code: #EDE8E0;--color-border: rgba(255,255,255,.06);--glass-bg: rgba(20,16,14,.5);--glass-border: rgba(255,255,255,.06);--glass-blur: 16px;--skeleton-base: rgba(255,255,255,.05);--skeleton-shine: rgba(255,255,255,.02);--code-bg: #14100E;--code-text: #EDE8E0;--toc-bg: rgba(20,16,14,.8);--toc-border: rgba(255,255,255,.06);--hero-bg: linear-gradient(170deg,#0A0806 0%,#14100C 25%,#1A1411 50%,#0D0A08 100%);--card-glow-color: rgba(200,103,75,.15);--shadow-glow: 0 0 30px rgba(200,103,75,.08), 0 0 60px rgba(200,103,75,.04)}[data-theme=light]{--color-primary: #2196F3;--color-primary-light: #42A5F5;--color-primary-dark: #1565C0;--color-primary-subtle: rgba(33,150,243,.06);--color-bg: #E3F2FD;--color-bg-alt: #D4E8F7;--color-bg-card: #FAFCFF;--color-bg-glass: rgba(255,255,255,.6);--color-text-primary: #0D2137;--color-text-secondary: #456A8A;--color-text-tertiary: #7A9AB8;--color-text-on-primary: #FFFFFF;--color-text-link: #1976D2;--color-text-code: #0D2137;--hero-text-color: #0D2137;--hero-role-color: rgba(13,33,55,.45);--hero-overlay-color: rgba(255,255,255,.1);--hero-shadow-color: rgba(33,150,243,.15);--hero-top-gradient: rgba(179,217,255,.5);--color-border: rgba(13,33,55,.08);--glass-bg: rgba(227,242,253,.65);--glass-border: rgba(255,255,255,.8);--glass-blur: 16px;--skeleton-base: rgba(13,33,55,.06);--skeleton-shine: rgba(13,33,55,.03);--code-bg: #D4E8F7;--code-text: #0D2137;--toc-bg: rgba(255,255,255,.8);--toc-border: rgba(13,33,55,.08);--hero-bg: linear-gradient(170deg,#B3D9FF 0%,#C8E6FF 30%,#D6ECFF 60%,#B8D4F0 100%);--card-glow-color: rgba(33,150,243,.12);--shadow-glow: 0 0 30px rgba(33,150,243,.08), 0 0 60px rgba(33,150,243,.04);--shadow-sm: 0 1px 3px rgba(13,33,55,.06);--shadow-md: 0 4px 16px rgba(13,33,55,.08);--shadow-lg: 0 8px 40px rgba(13,33,55,.1);--shadow-card: 0 2px 24px rgba(13,33,55,.04)}::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:circle-reveal var(--circle-reveal-speed, 1s) cubic-bezier(.25,.46,.45,.94) both;mix-blend-mode:normal}::view-transition-old(site-header),::view-transition-new(site-header){animation:none;mix-blend-mode:normal}html.no-theme-transition .site-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}@media (max-width: 768px){html.no-theme-transition .site-header{opacity:0!important}}@keyframes circle-reveal{0%{clip-path:circle(0% at var(--click-x, 50%) var(--click-y, 50%))}to{clip-path:circle(141.4% at var(--click-x, 50%) var(--click-y, 50%))}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:16px;line-height:1.8;color:var(--color-text-primary);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-base),color var(--transition-base);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.25;color:var(--color-text-primary)}h1{font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:-.02em}h2{font-size:clamp(1.6rem,3.5vw,2.8rem);letter-spacing:-.01em}h3{font-size:clamp(1.2rem,2.5vw,1.6rem)}h4{font-size:1.15rem}p{margin-bottom:1.25rem;color:var(--color-text-secondary);line-height:1.8}a{color:var(--color-text-link);text-decoration:none;transition:color var(--transition-fast)}code{font-family:var(--font-code);font-size:.85em}:not(pre)>code{background:var(--color-bg-alt);color:var(--color-text-code);padding:.15em .4em;border-radius:var(--radius-sm);font-size:.85em}pre{background:var(--code-bg);color:var(--code-text);padding:var(--space-lg);border-radius:var(--radius-md);overflow-x:auto;font-size:.875rem;line-height:1.6;margin:var(--space-lg) 0}img{max-width:100%;height:auto;display:block}blockquote{border-left:1px solid var(--color-primary);padding-left:var(--space-lg);margin:var(--space-lg) 0;color:var(--color-text-secondary);font-style:italic;font-family:var(--font-heading)}hr{border:none;height:1px;background:var(--color-border);margin:var(--space-2xl) 0}::selection{background:#c8674b33;color:var(--color-text-primary)}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--container-padding)}.container-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--container-padding)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.reveal{opacity:0;transform:translateY(30px)}.reveal-visible{opacity:1;transform:translateY(0)}.section-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:3px;color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.separator{width:40px;height:1px;background:var(--color-primary);margin:var(--space-lg) 0;opacity:.4}.site-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:transparent;transition:background var(--transition-base),backdrop-filter var(--transition-base)}.site-header.scrolled{background:transparent}.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max);margin:0 auto;padding:.8rem var(--container-padding)}.site-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--color-text-primary);z-index:2;flex-shrink:0}.logo-avatar-wrap{--s: 52px;position:relative;top:auto;left:auto;width:var(--s);height:var(--s);display:flex;align-items:center;justify-content:center}.site-header.scrolled .logo-avatar-wrap{--s: 42px}.avatar-light,.avatar-dark{width:var(--s);height:var(--s);object-fit:cover;position:absolute;z-index:100;transition:opacity .25s ease,transform .3s cubic-bezier(.34,1.56,.64,1);will-change:transform;transform:translateY(2px)}.main-nav{display:flex;align-items:center;justify-content:center;gap:.1rem;position:absolute;left:50%;transform:translate(-50%);padding:.25rem .25rem .35rem;border-radius:999px;background:transparent;border:1px solid rgba(255,255,255,.1);overflow:hidden;transition:border-color .4s ease;z-index:2}[data-theme=light] .main-nav{border-color:#6f8ba34d}.nav-link{position:relative;padding:.2rem 1rem;font-family:var(--font-heading);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;z-index:2;transition:color .25s ease}.nav-link:hover,.nav-link.active{color:var(--color-text-primary)}.nav-pill{position:absolute;top:3px;bottom:3px;left:0;height:auto;border-radius:999px;background:var(--color-text-primary);opacity:.08;pointer-events:none;transition:left .35s cubic-bezier(.34,1.56,.64,1),width .35s cubic-bezier(.34,1.56,.64,1)}.nav-indicator{position:absolute;bottom:.5rem;left:0;height:2px;pointer-events:none;transition:left .35s cubic-bezier(.34,1.56,.64,1),width .35s cubic-bezier(.34,1.56,.64,1)}.nav-indicator-dot{width:4px;height:4px;border-radius:50%;background:var(--color-primary);position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.nav-indicator-glow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:50%;height:6px;border-radius:26px;background:var(--color-primary);opacity:.35;filter:blur(4px)}.nav-actions{display:flex;align-items:center;gap:.4rem;z-index:2;flex-shrink:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease;padding:0}[data-theme=light] .icon-btn{background:transparent}.icon-btn:hover{background:#ffffff26;color:var(--color-primary);transform:translateY(-1px)}[data-theme=light] .icon-btn:hover{background:#0000001a}.icon-btn svg{width:18px;height:18px}.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:#ffffff1f;color:var(--color-text-secondary);cursor:pointer;transition:background .25s ease,color .25s ease;padding:0;z-index:2}[data-theme=light] .mobile-menu-btn{background:#0000000f}.mobile-menu-btn:hover{color:var(--color-primary)}.site-header.scrolled .mobile-menu-btn{width:28px;height:28px}.site-header.scrolled .mobile-menu-btn svg{width:18px;height:18px}.site-footer{position:relative;padding:var(--space-4xl) var(--container-padding);background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.08) 100%),repeating-linear-gradient(135deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 8px);border-top:1px solid var(--color-border)}.footer-inner{max-width:calc(1200px - var(--container-padding) * 2);margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:var(--space-xl);align-items:center}.footer-brand{display:flex;flex-direction:column;gap:.25rem}.footer-logo{font-family:var(--font-mono-alt);font-size:1.35rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-primary);display:inline-block;cursor:pointer;width:max-content}.footer-logo-char{display:inline-block;will-change:transform,color;text-shadow:0 0 0 rgba(0,0,0,0);position:relative;overflow:hidden}.footer-logo-char:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 50%,transparent 51%);background-size:100% 3px;mix-blend-mode:overlay;pointer-events:none;display:none}.footer-sub{font-family:var(--font-heading);font-size:.9rem;color:var(--color-text-tertiary);letter-spacing:.08em;margin-top:.25rem}.footer-tag{font-size:.8rem;color:var(--color-text-tertiary);letter-spacing:.05em;display:flex;align-items:center;gap:.5rem}.footer-heart{display:inline-block;color:var(--color-rose);cursor:pointer;position:relative;will-change:transform,opacity;perspective:200px;transform-style:preserve-3d}.footer-links{display:flex;gap:var(--space-lg)}.footer-links a{font-size:.85rem;color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-links a:hover{color:var(--color-primary)}.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:.75rem;color:var(--color-text-tertiary)}.footer-right{display:flex;flex-direction:column;gap:var(--space-sm);align-items:flex-end;height:100%;padding-top:1rem;justify-content:space-between}@media (max-width: 768px){.footer-inner{grid-template-columns:1fr;text-align:center;gap:var(--space-lg)}.footer-meta,.footer-right,.footer-brand{align-items:center}}.mobile-nav{display:none}.mobile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;z-index:998;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-overlay.visible{opacity:1;pointer-events:auto}.mobile-bottom-bar{display:none}.page-content{position:relative;z-index:1}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.reveal.revealed{opacity:1;transform:translateY(0)}@media (max-width: 768px){.main-nav,.nav-actions{display:none}.mobile-menu-btn{display:flex}.mobile-nav{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);opacity:0;pointer-events:none;transition:opacity .35s ease;padding-top:6rem;padding-bottom:6rem}.mobile-nav.scrolled{padding-top:4.5rem}.mobile-nav.open{opacity:1;pointer-events:auto}.mobile-nav-link{font-size:1.5rem;font-family:var(--font-heading);color:var(--color-text-primary);text-decoration:none;padding:.6rem 0;opacity:0;transform:translateY(15px)}[data-theme=light] .mobile-nav-link{color:#111}.mobile-nav-close{position:fixed;bottom:6rem;left:50%;transform:translate(-50%);z-index:1001;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(237,232,224,.25);background:transparent;color:var(--color-text-primary);cursor:pointer;transition:border-color .25s ease,background .25s ease;font-size:1.2rem}.mobile-nav-close:hover{background:var(--color-text-primary);color:var(--color-bg);border-color:var(--color-text-primary)}[data-theme=light] .mobile-nav-close{border-color:#0d213733;color:#0d2137}[data-theme=light] .mobile-nav-close:hover{background:#0d2137;color:#fff}.mobile-bottom-bar{position:fixed;bottom:2em;left:50%;transform:translate(-50%);z-index:997;display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border-radius:999px;background:#ffffff26;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #0000001a}[data-theme=light] .mobile-bottom-bar{background:#ffffffa6;border-color:#00000014}.mobile-bottom-bar .icon-btn{width:30px;height:30px;background:transparent}.mobile-bottom-bar .icon-btn svg{width:16px;height:16px}}[data-theme=dark] .avatar-light{opacity:0;pointer-events:none}[data-theme=dark] .avatar-dark{opacity:1}[data-theme=light] .avatar-dark{opacity:0;pointer-events:none}[data-theme=light] .logo-avatar-wrap:hover .avatar-light{animation:squash-horizontal .4s cubic-bezier(.34,1.56,.64,1) forwards}[data-theme=dark] .logo-avatar-wrap:hover .avatar-dark{animation:bounce-down-in .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes squash-in{0%{transform:translateY(2px) scale(1)}40%{transform:translateY(2px) scale(.88,1.08)}70%{transform:translateY(2px) scale(1.04,.96)}to{transform:translateY(2px) scale(1)}}@keyframes bounce-down-in{0%{transform:translateY(2px) scale(1)}30%{transform:translateY(2px) scale(1.15,.8)}60%{transform:translateY(2px) scale(.94,1.06)}to{transform:translateY(2px) scale(1)}}@keyframes squash-horizontal{0%{transform:translateY(2px) scaleX(1)}30%{transform:translateY(2px) scaleX(.8)}60%{transform:translateY(2px) scaleX(1.06)}to{transform:translateY(2px) scaleX(1)}}@keyframes avatar-enter{0%{transform:translateY(2px) scale(.85)}60%{transform:translateY(2px) scale(1.04)}to{transform:translateY(2px) scale(1)}}@keyframes ring-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#categories-filter a{position:relative;color:var(--color-text-secondary)}#categories-filter a:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--color-primary);transition:width .3s ease}#categories-filter a:hover{color:var(--color-primary)}#categories-filter a:hover:after{width:100%}.glass-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.5rem;font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--color-text-primary);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:all var(--transition-fast);outline:none}.glass-btn:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 30px var(--color-primary-subtle)}.glass-btn.primary{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary);box-shadow:0 0 30px #c8674b26}.glass-btn.primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:0 0 50px var(--color-primary-subtle)}.glass-btn.ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary)}.glass-btn.ghost:hover{color:var(--color-text-primary);background:var(--color-bg-alt)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:1.1rem;transition:all var(--transition-fast)}.post-card{position:relative;background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-slow);box-shadow:var(--shadow-card)}.post-card:hover{box-shadow:var(--shadow-lg)}.post-card-image{width:100%;aspect-ratio:16 / 11;object-fit:cover;display:block;background:var(--color-bg-alt);transition:transform var(--transition-slow)}.post-card:hover .post-card-image{transform:scale(1.03)}.post-card-body{padding:var(--space-lg)}.post-card-category{display:inline-block;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;color:var(--color-primary);margin-bottom:var(--space-sm)}.post-card-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;line-height:1.35;margin-bottom:var(--space-sm);color:var(--color-text-primary);transition:color var(--transition-fast)}.post-card:hover .post-card-title{color:var(--color-primary)}.post-card-excerpt{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);font-size:.78rem;color:var(--color-text-tertiary)}.skeleton{background:var(--skeleton-base);border-radius:var(--radius-sm);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,var(--skeleton-shine) 50%,transparent 100%);animation:skeleton-shimmer 1.8s infinite ease-in-out}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-card{background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}.skeleton-image{width:100%;aspect-ratio:16 / 11;background:var(--skeleton-base)}.skeleton-body{padding:var(--space-lg)}.skeleton-line{height:12px;width:100%;margin-bottom:.6rem;background:var(--skeleton-base);border-radius:var(--radius-sm)}.skeleton-line.short{width:40%}.skeleton-avatar{width:28px;height:28px;border-radius:50%;background:var(--skeleton-base)}.tag{display:inline-flex;align-items:center;padding:.15rem .5rem;font-size:.72rem;font-weight:500;border-radius:3px;background:var(--color-bg-alt);color:var(--color-text-tertiary);transition:all var(--transition-fast)}.tag.token{background:var(--color-primary-subtle)}.tag:hover{color:var(--color-primary)}.article-content{font-size:1.05rem;line-height:1.85;color:var(--color-text-primary)}.article-content h2,.article-content h3{margin-top:var(--space-2xl);margin-bottom:var(--space-md)}.article-content p{margin-bottom:var(--space-lg)}.article-content pre{margin:var(--space-lg) calc(-1 * var(--container-padding));border-radius:0}@media (min-width: 768px){.article-content pre{margin:var(--space-lg) 0;border-radius:var(--radius-md)}}.article-content img{margin:var(--space-lg) auto;border-radius:var(--radius-md)}.article-content ul,.article-content ol{margin-bottom:var(--space-lg);padding-left:1.25rem;color:var(--color-text-secondary)}.timeline{position:relative;padding-left:var(--space-xl)}.timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--color-border)}.timeline-item{position:relative;padding-bottom:var(--space-xl)}.timeline-item:before{content:"";position:absolute;left:calc(-1 * var(--space-xl) + 4px);top:6px;width:10px;height:10px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-bg)}.search-form{display:flex;gap:var(--space-sm);max-width:500px;margin:0 auto var(--space-xl)}.search-input{flex:1;padding:.75rem 1.1rem;font-family:var(--font-body);font-size:.95rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:all var(--transition-fast);outline:none}.search-input:focus{border-color:var(--color-primary)}.search-input::placeholder{color:var(--color-text-tertiary)}.search-result-count{margin-bottom:var(--space-lg);color:var(--color-text-tertiary);font-size:.9rem;font-family:var(--font-nav)}.search-result-card{display:flex;align-items:flex-start;gap:var(--space-lg);padding:var(--space-lg);margin-bottom:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-card);text-decoration:none;color:inherit;transition:all var(--transition-fast);cursor:pointer}.search-result-card:hover{border-color:var(--color-primary);background:var(--color-primary-subtle);transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.search-result-body{flex:1;min-width:0}.search-result-card h3{font-size:1rem;font-family:var(--font-body);font-weight:600;margin-bottom:.4rem;line-height:1.4;color:var(--color-text-primary)}.search-result-card p{font-size:.88rem;margin:0;color:var(--color-text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:.5rem;font-size:.78rem;color:var(--color-text-tertiary)}.search-result-meta .tag{font-size:.72rem;padding:.15rem .5rem}.search-result-thumb{flex-shrink:0;width:80px;height:60px;border-radius:6px;overflow:hidden;background:var(--color-bg-alt)}.search-result-thumb img{width:100%;height:100%;object-fit:cover}.search-highlight{background:var(--color-primary-subtle);color:var(--color-primary);border-radius:2px;padding:0 2px}.empty-state{text-align:center;padding:var(--space-4xl) var(--space-lg)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.25}.empty-state h3{font-size:1.1rem;margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.empty-state p{color:var(--color-text-tertiary);font-size:.9rem}.search-empty-state{text-align:center}.search-empty-box{display:flex;justify-content:center;align-items:center;margin-bottom:var(--space-sm);gap:.4rem}.search-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--color-primary-subtle);color:var(--color-primary);opacity:.6}.search-empty-state h3{font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.search-empty-state p{font-size:.9rem;color:var(--color-text-tertiary);margin-bottom:var(--space-xl)}.search-suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);max-width:500px;margin:0 auto}.search-suggestion-card{display:inline-block;padding:.5rem 1rem;font-size:.85rem;color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:999px;text-decoration:none;transition:all var(--transition-fast)}.search-suggestion-card:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-subtle)}@media (max-width: 640px){.search-result-card{flex-direction:column-reverse;gap:var(--space-sm)}.search-result-thumb{width:100%;height:120px}}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg)}.friend-link{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.friend-link:hover{border-color:var(--color-primary-subtle)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::selection{background:var(--color-primary-subtle)}.portfolio-hero{-webkit-user-select:none;user-select:none;position:relative;height:100vh;min-height:650px;overflow:hidden;display:flex;align-items:center;justify-content:center}.portfolio-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.portfolio-hero-bg{will-change:transform}.portfolio-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent 30%,var(--hero-overlay-color) 100%)}.portfolio-hero-overlay:before{content:"";position:absolute;inset:0 0 auto 0;height:120px;background:linear-gradient(180deg,var(--hero-top-gradient) 0%,transparent 100%);pointer-events:none}.hero-3d-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.portfolio-hero-content{pointer-events:none;position:relative;z-index:3;text-align:center;color:var(--hero-text-color);padding:2rem;max-width:800px}.portfolio-hero-name{font-family:var(--font-heading);font-size:clamp(3rem,10vw,7rem);font-weight:700;letter-spacing:-.04em;line-height:1.05;margin-bottom:.5rem;text-shadow:0 0 80px var(--hero-shadow-color),0 0 40px var(--hero-shadow-color)}.portfolio-hero-role{font-family:var(--font-body);font-size:clamp(.9rem,1.5vw,1.15rem);font-weight:300;letter-spacing:.4em;text-transform:uppercase;color:var(--hero-role-color);margin-bottom:1rem}.portfolio-hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--hero-role-color);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}.scroll-line{width:1px;height:40px;background:linear-gradient(180deg,var(--hero-role-color),transparent);animation:scrollPulse 2s ease-in-out infinite}@media (max-width: 768px){.portfolio-hero-scroll{bottom:5.5rem}}@keyframes scrollPulse{0%,to{transform:scaleY(1);opacity:.5}50%{transform:scaleY(.6);opacity:.2}}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;max-width:calc(1200px - var(--container-padding) * 2);margin:0 auto;padding:0}@media (max-width: 1200px){.portfolio-grid{padding:0 var(--container-padding)}}@media (max-width: 960px){.portfolio-grid{grid-template-columns:repeat(2,1fr);padding:0 var(--container-padding)}}@media (max-width: 768px){.portfolio-grid{grid-template-columns:1fr;padding:0 var(--container-padding)}}.portfolio-card{position:relative;overflow:hidden;cursor:pointer;background:var(--color-bg-alt);border-radius:0;will-change:transform;border:none;box-shadow:none;transition:transform .15s ease}.portfolio-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;border:3px solid transparent;pointer-events:none;transition:border-color .15s ease}.portfolio-card:after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-primary);z-index:5;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.portfolio-card:hover:after{transform:scaleX(1)}.portfolio-card:hover:before{border-color:var(--color-primary)}.portfolio-card>.portfolio-card-filigree,.portfolio-card>.portfolio-card-corner-tr,.portfolio-card>.portfolio-card-corner-bl{display:none}.portfolio-card>img{width:100%;aspect-ratio:2.35 / 1;object-fit:cover;display:block;filter:contrast(1.1) brightness(.9);transition:filter .3s ease,transform .4s ease;will-change:transform}.portfolio-card:hover>img{filter:contrast(1.15) brightness(.85);transform:scale(1.03)}.portfolio-card-overlay{position:relative;z-index:3;padding:.9rem 1rem;text-align:left;background:var(--color-bg-card, var(--color-bg-alt))}.portfolio-card-title-ornament{display:inline-block;width:12px;height:12px;background:var(--color-primary);margin-bottom:.4rem;vertical-align:middle}.portfolio-card-title{color:var(--color-text-primary);font-family:Space Grotesk,Inter,monospace;font-size:1.1rem;font-weight:700;line-height:1.15;letter-spacing:-.03em;margin-bottom:.2rem;text-transform:uppercase;max-width:95%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-card-excerpt{font-family:var(--font-body);font-size:.72rem;line-height:1.5;color:var(--color-text-secondary);margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:95%}.portfolio-card-cat{display:inline-block;color:var(--color-text-tertiary);font-family:JetBrains Mono,Space Mono,monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .45rem;background:var(--color-primary-subtle);border:1px solid transparent;border-radius:2px;transition:all .3s ease}.portfolio-card:hover .portfolio-card-cat{color:var(--color-primary);border-color:var(--color-primary);background:transparent;box-shadow:0 0 8px var(--color-primary-subtle)}.portfolio-card-cat:before{content:"// ";color:var(--color-primary)}.portfolio-card-cat:after{content:none}.portfolio-card-title-bottom-ornament{display:none}.portfolio-card:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--color-primary)}.portfolio-card-side-text{position:absolute;z-index:6;font-family:JetBrains Mono,Space Mono,monospace;font-size:.48rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);writing-mode:vertical-rl;pointer-events:none;mix-blend-mode:difference}.portfolio-card-side-text--left{left:8px;top:8px}.portfolio-card-side-text--right{right:8px;bottom:8px;transform:rotate(180deg)}[data-theme=dark] .portfolio-card{background:#1a1a1a}[data-theme=dark] .portfolio-card-overlay{background:#222;border-top-color:#d32f2f}[data-theme=dark] .portfolio-card:before{border-color:transparent}[data-theme=dark] .portfolio-card:hover:before{border-color:var(--color-primary)}[data-theme=dark] .portfolio-card>img{filter:contrast(1.05) brightness(.85)}[data-theme=dark] .portfolio-card:hover>img{filter:contrast(1.1) brightness(.9)}[data-theme=dark] .portfolio-card-title{color:#e0e0e0}[data-theme=dark] .portfolio-card-cat{color:#888}[data-theme=dark] .portfolio-card-title-ornament{background:#d32f2f}[data-theme=dark] .portfolio-card-side-text{color:#fff6}.portfolio-about{padding:var(--space-5xl) 0;position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,rgba(0,0,0,.08) 0px,rgba(0,0,0,.08) 2px,transparent 2px,transparent 10px),linear-gradient(180deg,#00000026,#0000000f)}.portfolio-about-inner{display:grid;grid-template-columns:1fr 1fr;gap:4rem;max-width:calc(1200px - var(--container-padding) * 2);margin:0 auto;padding:0 var(--container-padding);align-items:center}.portfolio-about-quote-wrap{grid-column:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;position:relative}.portfolio-about-quote-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,rgba(0,0,0,.1) 0px,rgba(0,0,0,.1) 1px,transparent 1px,transparent 6px),linear-gradient(180deg,rgba(0,0,0,.2) 0%,transparent 50%);pointer-events:none}.portfolio-about-quote-line{font-family:var(--font-mono-alt);font-size:clamp(2.4rem,6vw,5rem);font-weight:700;line-height:1.05;color:var(--color-text-primary);position:relative;text-align:center;will-change:transform;letter-spacing:-.02em;text-transform:uppercase;text-shadow:2px 2px 0 rgba(0,0,0,.25)}.portfolio-about-quote-line:before{content:"“";position:absolute;top:-1.2rem;left:-.6rem;font-size:6em;line-height:1;color:var(--color-primary);opacity:.35;font-family:var(--font-heading);pointer-events:none}.portfolio-about-attribution{display:block;margin-top:var(--space-md);font-size:.8rem;color:var(--color-text-tertiary);font-family:var(--font-mono-alt);letter-spacing:.08em;font-style:normal;text-align:center;text-transform:uppercase}.portfolio-about-attribution:before{content:"";display:inline-block;width:24px;height:1px;background:var(--color-primary);vertical-align:middle;margin-right:.6rem;opacity:.5}@media (max-width: 768px){.portfolio-about-inner{grid-template-columns:1fr;gap:2rem;text-align:center}.portfolio-about-quote-line:before{left:50%;transform:translate(-50%)}}.portfolio-contact{padding:var(--space-5xl) 0;position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,rgba(0,0,0,.08) 0px,rgba(0,0,0,.08) 2px,transparent 2px,transparent 10px),linear-gradient(180deg,#00000026,#0000000f)}.portfolio-contact-inner{max-width:calc(1200px - var(--container-padding) * 2);margin:0 auto;padding:0 var(--container-padding)}.portfolio-contact .portfolio-about-quote-wrap{min-height:240px}.portfolio-contact .portfolio-about-quote-line{font-family:var(--font-mono-alt);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;line-height:1.2;letter-spacing:-.02em;text-transform:uppercase;text-align:center;color:var(--color-text-primary);position:relative;will-change:transform}.portfolio-contact-links a{font-size:.9rem;color:var(--color-text-secondary);transition:color var(--transition-fast);position:relative}.portfolio-contact-links a:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--color-primary-light);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-fast)}.portfolio-contact-links a:hover{color:var(--color-primary)}.portfolio-contact-links a:hover:after{transform:scaleX(1);transform-origin:left}.contact-block{text-align:center;margin-bottom:var(--space-xl)}.section-label-large{font-family:Space Grotesk,Inter,monospace;font-size:clamp(2.4rem,6vw,4.5rem);font-weight:700;text-transform:uppercase;letter-spacing:-.04em;line-height:.95;color:var(--color-text-primary);margin-bottom:.5rem;text-align:left;position:relative;display:block;margin-left:auto;margin-right:auto}.section-label-large:after{content:"";display:block;width:100%;height:4px;background:var(--color-primary)}.section-label-sub{display:block;font-family:JetBrains Mono,Space Mono,monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:#888;text-align:left;margin-bottom:var(--space-xl);margin-left:auto;margin-right:auto}[data-theme=dark] .section-label-sub{color:#666}#gallery-section .section-label-large,#gallery-section .section-label-sub{max-width:calc(1200px - var(--container-padding) * 2);position:relative}#gallery-section .portfolio-grid{max-width:calc(1200px - var(--container-padding) * 2)}#gallery-section .gallery-more{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);margin:5rem auto 0;position:relative;left:50%;transform:translate(-50%);text-align:center}#gallery-section .gallery-more.hover{border-color:var(--color-primary);color:var(--color-primary)}#gallery-section .section-label-large:after{content:"";position:absolute}@media (max-width: 1199px){#gallery-section .section-label-large,#gallery-section .section-label-sub,#gallery-section .portfolio-grid{padding-left:var(--container-padding);padding-right:var(--container-padding)}}#gallery-bg-accent{position:absolute;top:18%;right:-5%;width:min(500px,60vw);height:min(500px,60vw);border-radius:50%;background:radial-gradient(circle,rgba(33,150,243,.18),transparent 70%);pointer-events:none}[data-theme=dark] #gallery-bg-accent{background:radial-gradient(circle,rgba(200,103,75,.2),transparent 70%)}@media (max-width: 768px){#gallery-bg-accent{top:-5%;right:-20%;width:min(300px,80vw);height:min(300px,80vw)}}.perspective-container{perspective:1200px}.glass-btn.glow{box-shadow:0 0 20px #4b9bff1a}.glass-btn.glow:hover{box-shadow:0 0 40px #4b9bff33}.featured-card:hover{box-shadow:var(--shadow-lg)!important}.featured-card:hover .featured-img{transform:scale(1.04)}@media (max-width: 768px){#gallery-section{padding:calc(var(--space-3xl) + .5rem) 0 calc(var(--space-2xl) + 1.5rem)}#gallery-section .section-label-large{font-size:clamp(1.6rem,8vw,2.2rem);padding:0 var(--container-padding)}#gallery-section .section-label-sub{font-size:.55rem;padding:0 var(--container-padding)}.portfolio-card-overlay{padding:.7rem .8rem}.portfolio-card-title{font-size:.9rem;max-width:90%}.portfolio-card-cat{font-size:.5rem}.portfolio-card-title-ornament{width:10px}}@media (max-width: 768px){.featured-card{flex-direction:column!important}.featured-card>div:first-child{min-height:200px!important}}body:not(.app-ready){opacity:0}body.app-ready{opacity:1;transition:opacity .3s ease}code[class*=language-],pre[class*=language-]{font-family:var(--font-code)!important;font-size:.9rem!important}@media (max-width: 480px){.hero-title{font-size:clamp(1.8rem,8vw,2.5rem)!important}.post-card-meta{flex-wrap:wrap;gap:.25rem}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@media print{.site-header,.site-footer,.glass-btn,.icon-btn{display:none!important}.page-content{padding-top:0!important}body{background:#fff!important;color:#000!important}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
