:root{--color-bg: #0a0a0b;--color-bg-warm: #0d0b0a;--color-surface: #141416;--color-surface-elevated: #1a1a1d;--color-surface-accent: #222226;--color-border: #2a2a2e;--color-border-subtle: #1e1e21;--color-border-accent: #3a3a40;--color-text: #faf9f7;--color-text-secondary: #d0cdc8;--color-text-muted: #b8b5b0;--color-text-accent: #e8e6e1;--color-primary: #e63946;--color-primary-hover: #d62839;--color-primary-dark: #b82d38;--color-primary-on-dark: #f25d68;--color-primary-muted: rgba(230, 57, 70, .12);--color-primary-glow: rgba(230, 57, 70, .35);--color-accent: #f4a261;--color-accent-hover: #e8923f;--color-accent-muted: rgba(244, 162, 97, .12);--color-success: #4ade80;--color-success-muted: rgba(74, 222, 128, .12);--color-error: #f87171;--color-error-muted: rgba(248, 113, 113, .12);--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Source Serif 4", Georgia, serif;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--text-7xl: 4.5rem;--leading-none: 1;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.7;--leading-loose: 1.9;--tracking-tighter: -.04em;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .02em;--tracking-wider: .05em;--tracking-widest: .12em;--space-px: 1px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--container-max: 1200px;--content-max: 720px;--sidebar-width: 280px;--header-height: 72px;--gutter: clamp(1rem, 4vw, 3rem);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .6);--shadow-md: 0 4px 8px -2px rgba(0, 0, 0, .5), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, .5), 0 4px 8px -4px rgba(0, 0, 0, .3);--shadow-xl: 0 24px 48px -8px rgba(0, 0, 0, .6), 0 12px 24px -8px rgba(0, 0, 0, .4);--shadow-glow: 0 0 40px var(--color-primary-glow);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--duration-slower: .6s;--transition-fast: var(--duration-fast) var(--ease-out-quart);--transition-base: var(--duration-base) var(--ease-out-expo);--transition-slow: var(--duration-slow) var(--ease-out-expo);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}::selection{background:var(--color-primary);color:var(--color-text)}::-moz-selection{background:var(--color-primary);color:var(--color-text)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border-accent);border-radius:var(--radius-full);border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.skip-link{position:absolute;top:-100%;left:var(--gutter);z-index:10000;padding:var(--space-3) var(--space-6);background:var(--color-primary);color:#fff;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;text-decoration:none;border-radius:0 0 var(--radius-md) var(--radius-md);transition:top var(--transition-fast)}.skip-link:focus{top:0;outline:2px solid var(--color-text);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:fadeIn var(--duration-slow) var(--ease-out-expo) forwards}.animate-fadeInUp{animation:fadeInUp var(--duration-slower) var(--ease-out-expo) forwards}.animate-fadeInScale{animation:fadeInScale var(--duration-slow) var(--ease-out-expo) forwards}.stagger-children>*{opacity:0;animation:fadeIn var(--duration-slow) var(--ease-out-expo) forwards}.stagger-children>*:nth-child(1){animation-delay:.05s}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.15s}.stagger-children>*:nth-child(4){animation-delay:.2s}.stagger-children>*:nth-child(5){animation-delay:.25s}.stagger-children>*:nth-child(6){animation-delay:.3s}.stagger-children>*:nth-child(7){animation-delay:.35s}.stagger-children>*:nth-child(8){animation-delay:.4s}.stagger-children>*:nth-child(9){animation-delay:.45s}.stagger-children>*:nth-child(10){animation-delay:.5s}.stagger-children>*:nth-child(n+11){animation-delay:.55s}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl)}.underline-reveal{position:relative;text-decoration:none}.underline-reveal:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:currentColor;transition:width var(--transition-base)}.underline-reveal:hover:after{width:100%}.img-zoom{overflow:hidden}.img-zoom img{transition:transform var(--transition-slow)}.img-zoom:hover img{transform:scale(1.05)}.glow-primary{transition:box-shadow var(--transition-base)}.glow-primary:hover{box-shadow:var(--shadow-glow)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.site-header{position:sticky;top:0;z-index:1000;height:var(--header-height);background:#0a0a0bd9;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border-bottom:1px solid var(--color-border-subtle)}.header-inner{display:flex;justify-content:space-between;align-items:center;height:100%}.logo{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;color:var(--color-text);transition:opacity var(--transition-fast)}.logo:hover{opacity:.85}.logo-mark{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;letter-spacing:var(--tracking-tight);color:var(--color-text)}.logo-divider{width:2px;height:28px;background:linear-gradient(180deg,transparent 0%,var(--color-primary) 20%,var(--color-primary) 80%,transparent 100%)}.logo-tagline{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-text-muted)}.main-nav{display:flex;align-items:center;gap:var(--space-10)}.nav-link{position:relative;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-secondary);text-decoration:none;padding:var(--space-2) 0;transition:color var(--transition-fast)}.nav-link:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-primary);transition:width var(--transition-base)}.nav-link:hover,.nav-link.is-active{color:var(--color-text)}.nav-link:hover:before,.nav-link.is-active:before{width:100%}.nav-link--highlight{color:var(--color-primary)}.nav-link--highlight:hover{color:var(--color-primary-hover)}.nav-link--highlight:before{background:var(--color-primary)}.site-main{min-height:calc(100vh - var(--header-height));padding:var(--space-12) 0 var(--space-20)}.logout-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.logout-btn:hover{color:var(--color-error);border-color:var(--color-error);background:var(--color-error-muted)}@media(max-width:768px){:root{--header-height: 64px}.logo-tagline,.logo-divider{display:none}.main-nav{gap:var(--space-6)}.nav-link{font-size:var(--text-sm)}}@media(max-width:480px){.main-nav{gap:var(--space-3)}.nav-link{letter-spacing:var(--tracking-normal)}.logout-btn{width:32px;height:32px}.logout-btn svg{width:16px;height:16px}}.site-footer{margin-top:auto;padding:var(--space-12) 0;background:var(--color-surface);border-top:1px solid var(--color-border)}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);text-align:center}.footer-brand{display:flex;flex-direction:column;gap:var(--space-1)}.footer-logo{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.footer-tagline{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.footer-nav{display:flex;gap:var(--space-8)}.footer-nav a{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.footer-nav a:hover{color:var(--color-primary)}.footer-legal{font-size:var(--text-sm);color:var(--color-text-muted)}.footer-legal a{color:var(--color-primary-on-dark);text-decoration:none}.footer-legal a:hover{text-decoration:underline}@media(max-width:480px){.footer-nav{flex-direction:column;gap:var(--space-4)}}.kicker{display:inline-block;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-primary-on-dark);padding:var(--space-2) var(--space-4);background:var(--color-primary-muted);border-radius:var(--radius-full)}.tag{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface-elevated);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.back-link{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);text-decoration:none;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;transition:color var(--transition-fast)}.back-link:hover{color:var(--color-primary)}.back-link svg{transition:transform var(--transition-fast)}.back-link:hover svg{transform:translate(-4px)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease}.icon-btn:hover{color:var(--color-primary);background:var(--color-surface-elevated);border-color:var(--color-primary)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.loading svg{animation:spin 1s linear infinite}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);background:var(--color-primary);color:#fff;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);text-decoration:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px)}.card,.sidebar-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-border-subtle)}.sidebar-card .sidebar-title{font-family:var(--font-ui);font-size:var(--text-base);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-text);margin-bottom:var(--space-4)}.sidebar-card .sidebar-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.prose{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--leading-loose);color:var(--color-text-accent);max-width:100%;overflow-wrap:break-word;word-wrap:break-word}.prose>p:first-of-type:first-letter{font-family:var(--font-display);font-size:4.5em;font-weight:700;float:left;line-height:.75;padding-right:var(--space-4);padding-top:var(--space-2);color:var(--color-primary)}.prose h1{font-family:var(--font-display);font-size:clamp(var(--text-4xl),5vw,var(--text-6xl));font-weight:700;line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter);margin-bottom:var(--space-8);color:var(--color-text)}.prose h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:600;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin-top:var(--space-14);margin-bottom:var(--space-6);color:var(--color-text)}.prose h3{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-snug);margin-top:var(--space-10);margin-bottom:var(--space-4);color:var(--color-text)}.prose h4{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;margin-top:var(--space-8);margin-bottom:var(--space-3);color:var(--color-text)}.prose p{margin-bottom:var(--space-6)}.prose strong{font-weight:600;color:var(--color-text)}.prose em{font-style:italic}.prose a{color:var(--color-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}.prose a:hover{color:var(--color-accent)}.prose ul,.prose ol{margin-bottom:var(--space-6);padding-left:var(--space-6)}.prose li{margin-bottom:var(--space-3);padding-left:var(--space-2)}.prose li::marker{color:var(--color-primary)}.prose ol li::marker{font-weight:600}.prose code{font-family:var(--font-mono);font-size:.9em}.prose p code,.prose li code{background:var(--color-surface-elevated);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-accent)}.prose pre{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6);margin:var(--space-8) 0;overflow-x:auto;max-width:100%}.prose pre code{background:transparent;padding:0;color:var(--color-text-accent);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre;display:block}.prose blockquote{position:relative;margin:var(--space-10) 0;padding:var(--space-6) var(--space-8);background:var(--color-surface);border-left:4px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0}.prose blockquote p{font-style:italic;font-size:var(--text-xl);color:var(--color-text-secondary);margin-bottom:0}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:none;height:1px;background:var(--color-border);margin:var(--space-12) 0}.prose table{width:100%;border-collapse:collapse;margin:var(--space-8) 0;font-size:var(--text-base)}.prose th,.prose td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-border)}.prose th{font-family:var(--font-ui);font-weight:600;text-transform:uppercase;font-size:var(--text-sm);letter-spacing:var(--tracking-wider);color:var(--color-text-muted);background:var(--color-surface)}.prose img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:var(--space-8) 0}@media(max-width:768px){.prose{font-size:var(--text-base)}.prose>p:first-of-type:first-letter{font-size:3.5em}.prose h1{font-size:var(--text-3xl)}.prose h2{font-size:var(--text-2xl)}.prose h3{font-size:var(--text-xl)}}@media(max-width:480px){.prose>p:first-of-type:first-letter{font-size:3em;padding-right:var(--space-2)}.prose h1{font-size:var(--text-2xl)}.prose h2{font-size:var(--text-xl);margin-top:var(--space-10)}.prose h3{font-size:var(--text-lg)}.prose blockquote{padding:var(--space-4) var(--space-5)}.prose blockquote p{font-size:var(--text-lg)}}
