:root{--color-primary: oklch(49% .095 48);--color-primary-hover: oklch(43% .105 48);--color-primary-contrast: oklch(98% .008 75);--color-primary-light: color-mix(in oklch, var(--color-primary) 12%, transparent);--color-accent: oklch(57% .09 78);--color-bg: oklch(98.4% .009 78);--color-bg-secondary: oklch(96.2% .011 78);--color-surface: oklch(99.4% .006 78);--color-surface-muted: oklch(97.1% .01 78);--color-bg-icon: color-mix(in oklch, var(--color-primary) 11%, var(--color-surface));--color-text: oklch(22% .018 70);--color-text-secondary: oklch(43% .016 70);--color-text-muted: oklch(58% .014 70);--color-border: oklch(87.5% .012 78);--color-border-light: oklch(91.5% .01 78);--color-border-soft: color-mix(in oklch, var(--color-border) 62%, transparent);--color-success: oklch(46% .11 150);--color-danger: oklch(50% .14 28);--color-cat-data: oklch(52% .085 210);--color-cat-color: oklch(56% .12 345);--color-cat-encoding: oklch(57% .11 82);--color-cat-text: oklch(49% .085 145);--color-cat-security: oklch(50% .13 28);--color-cat-dev: oklch(48% .075 255);--color-cat-api: oklch(52% .09 300);--color-cat-image: oklch(55% .12 58);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--shadow-subtle: 0 1px 2px rgba(75, 54, 33, .06);--shadow-card: 0 1px 2px rgba(75, 54, 33, .06), 0 8px 24px rgba(75, 54, 33, .045);--shadow-card-hover: 0 2px 3px rgba(75, 54, 33, .08), 0 16px 38px rgba(75, 54, 33, .08);--shadow-panel: 0 16px 46px rgba(75, 54, 33, .09), 0 1px 2px rgba(75, 54, 33, .06);--ease-out: cubic-bezier(.16, 1, .3, 1);--transition-fast: .16s var(--ease-out);--transition-med: .24s var(--ease-out);--header-height: 64px;--footer-height: 60px;--max-width: 1180px;--font-display: Georgia, "Times New Roman", ui-serif, serif;--font-mono: "SFMono-Regular", "Cascadia Code", "Fira Code", ui-monospace, monospace;--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary: oklch(70% .105 58);--color-primary-hover: oklch(76% .11 58);--color-primary-contrast: oklch(16% .012 65);--color-primary-light: color-mix(in oklch, var(--color-primary) 16%, transparent);--color-accent: oklch(72% .08 90);--color-bg: oklch(15% .012 65);--color-bg-secondary: oklch(19% .014 65);--color-surface: color-mix(in oklch, var(--color-bg) 88%, white 4%);--color-surface-muted: color-mix(in oklch, var(--color-bg) 84%, white 6%);--color-bg-icon: color-mix(in oklch, var(--color-primary) 16%, var(--color-bg));--color-text: oklch(92% .011 78);--color-text-secondary: oklch(76% .012 78);--color-text-muted: oklch(62% .012 78);--color-border: rgba(255,255,255,.1);--color-border-light: rgba(255,255,255,.06);--color-border-soft: rgba(255,255,255,.07);--color-success: oklch(76% .12 150);--color-danger: oklch(72% .14 28);--shadow-subtle: 0 1px 0 rgba(255,255,255,.04);--shadow-card: inset 0 1px 0 rgba(255,255,255,.04);--shadow-card-hover: inset 0 1px 0 rgba(255,255,255,.07), 0 18px 44px rgba(0,0,0,.22);--shadow-panel: inset 0 1px 0 rgba(255,255,255,.06), 0 22px 58px rgba(0,0,0,.28)}}[data-theme=dark]{--color-primary: oklch(70% .105 58);--color-primary-hover: oklch(76% .11 58);--color-primary-contrast: oklch(16% .012 65);--color-primary-light: color-mix(in oklch, var(--color-primary) 16%, transparent);--color-accent: oklch(72% .08 90);--color-bg: oklch(15% .012 65);--color-bg-secondary: oklch(19% .014 65);--color-surface: color-mix(in oklch, var(--color-bg) 88%, white 4%);--color-surface-muted: color-mix(in oklch, var(--color-bg) 84%, white 6%);--color-bg-icon: color-mix(in oklch, var(--color-primary) 16%, var(--color-bg));--color-text: oklch(92% .011 78);--color-text-secondary: oklch(76% .012 78);--color-text-muted: oklch(62% .012 78);--color-border: rgba(255,255,255,.1);--color-border-light: rgba(255,255,255,.06);--color-border-soft: rgba(255,255,255,.07);--color-success: oklch(76% .12 150);--color-danger: oklch(72% .14 28);--shadow-subtle: 0 1px 0 rgba(255,255,255,.04);--shadow-card: inset 0 1px 0 rgba(255,255,255,.04);--shadow-card-hover: inset 0 1px 0 rgba(255,255,255,.07), 0 18px 44px rgba(0,0,0,.22);--shadow-panel: inset 0 1px 0 rgba(255,255,255,.06), 0 22px 58px rgba(0,0,0,.28)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}a{color:var(--color-primary);text-decoration:none}@media(hover:hover){a:hover{text-decoration:underline}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.site-header{border-bottom:1px solid var(--color-border-light);background:var(--color-bg);position:sticky;top:0;z-index:100}.site-nav{max-width:var(--max-width);margin:0 auto;padding:0 1rem;height:var(--header-height);display:flex;align-items:center;gap:1rem}.site-brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.05rem;color:var(--color-text);white-space:nowrap;letter-spacing:-.012em}.site-brand:before{content:"";width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));box-shadow:inset 0 1px #ffffff52,0 1px 2px #4b36212e}.site-brand:hover{text-decoration:none}.nav-links{display:flex;gap:.35rem;flex:1 1 auto}.nav-links a{display:inline-flex;min-height:38px;align-items:center;border-radius:var(--radius-pill);color:var(--color-text-secondary);padding:0 .75rem;font-size:.88rem;font-weight:650;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}@media(hover:hover){.nav-links a:hover{background:var(--color-surface-muted);color:var(--color-primary);text-decoration:none}}.theme-toggle{width:40px;height:40px;justify-content:center;background:var(--color-surface);border:0;border-radius:var(--radius-sm);padding:0;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;flex-shrink:0;box-shadow:inset 0 0 0 1px var(--color-border-soft);transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast)}.theme-toggle:hover{color:var(--color-primary);background:var(--color-surface-muted)}.theme-toggle:active{transform:scale(.96)}.theme-icon{display:none}.theme-toggle[data-mode=light] .theme-icon--light,.theme-toggle[data-mode=dark] .theme-icon--dark{display:block}.theme-toggle[data-mode=system] .theme-icon--system,.theme-toggle:not([data-mode]) .theme-icon--system{display:block}.lang-switcher{flex-shrink:0;position:relative}.lang-trigger{display:flex;align-items:center;gap:.3rem;font-size:.85rem;font-family:var(--font-sans);color:var(--color-text-secondary);background:var(--color-surface);border:0;border-radius:var(--radius-pill);padding:0 .75rem;min-height:40px;cursor:pointer;white-space:nowrap;line-height:1;box-shadow:inset 0 0 0 1px var(--color-border-soft);transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast)}.lang-trigger:hover,.lang-trigger[aria-expanded=true]{color:var(--color-primary);background:var(--color-surface-muted)}.lang-trigger:active{transform:scale(.96)}.lang-chevron{transition:transform var(--transition-fast);flex-shrink:0}.lang-trigger[aria-expanded=true] .lang-chevron{transform:rotate(180deg)}.lang-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:130px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);outline:1px solid var(--color-border-soft);outline-offset:-1px;overflow:hidden;z-index:200}.lang-option{display:block;padding:.5rem .85rem;font-size:.875rem;color:var(--color-text-secondary);text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast)}.lang-option:hover{background:var(--color-bg-secondary);color:var(--color-primary);text-decoration:none}.lang-option--active{color:var(--color-primary);font-weight:600;background:var(--color-primary-light)}.lang-option--active:hover{background:var(--color-primary-light)}.nav-hamburger{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:var(--color-text);flex-shrink:0;min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.nav-hamburger:hover{background:var(--color-surface-muted);color:var(--color-primary)}.nav-hamburger:active{transform:scale(.96)}.nav-drawer{border-top:1px solid var(--color-border-light);padding:.75rem 1rem 1rem;background:var(--color-bg)}.nav-drawer-links{display:flex;flex-direction:column;gap:.25rem}.nav-drawer-links a{display:block;padding:.6rem .75rem;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.95rem;min-height:44px;display:flex;align-items:center}@media(hover:hover){.nav-drawer-links a:hover{background:var(--color-bg-secondary);color:var(--color-primary);text-decoration:none}}.nav-overlay{position:fixed;inset:0;top:var(--header-height);background:#160f0842;z-index:99}@media(max-width:640px){.nav-links{display:none}.nav-hamburger{display:flex}.site-nav{overflow-x:visible}}@media(min-width:641px){.nav-drawer,.nav-overlay{display:none!important}}main{min-height:calc(100vh - var(--header-height) - var(--footer-height))}.site-footer{border-top:1px solid var(--color-border-light);text-align:center;padding:1.35rem 1rem;font-size:.85rem;color:var(--color-text-muted);background:color-mix(in oklch,var(--color-bg) 86%,var(--color-bg-secondary))}.site-footer a{color:var(--color-text-muted)}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin-bottom:.5rem}.footer-links a{color:var(--color-text-muted);font-size:.82rem;transition:color var(--transition-fast)}@media(hover:hover){.footer-links a:hover{color:var(--color-primary);text-decoration:none}}.prose-container{max-width:720px;margin:0 auto;padding:2.5rem 1.25rem 5rem}.prose h1{font-family:var(--font-display);font-size:clamp(2.1rem,5vw,3.25rem);font-weight:600;line-height:1.25;margin:0 0 .5rem;color:var(--color-text);letter-spacing:-.024em}.prose .prose-meta{font-size:.85rem;color:var(--color-text-muted);margin:0 0 2rem}.prose h2{font-size:1.2rem;font-weight:600;margin:2rem 0 .75rem;color:var(--color-text)}.prose p{margin:0 0 1rem;color:var(--color-text-secondary);line-height:1.75}.prose a{color:var(--color-primary)}.prose a:hover{text-decoration:underline}.prose ul{margin:0 0 1rem 1.25rem;padding:0;color:var(--color-text-secondary);line-height:1.75}.prose ul li{margin-bottom:.25rem}.prose .prose-contact-email{display:inline-block;margin-top:1rem;font-size:1.1rem;font-weight:600;color:var(--color-primary)}
