@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-ext-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-ext-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";src:url("/assets/fonts/source-serif-4/source-serif-4-latin-ext-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;src:url("/assets/fonts/montserrat/montserrat-latin-wght-normal.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Cinzel Decorative";src:url("/assets/fonts/cinzel-decorative/cinzel-decorative-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Cinzel Decorative Fallback";src:local("Georgia");size-adjust:142.06%;ascent-override:68.7%;descent-override:26.19%;line-gap-override:0%}@font-face{font-family:"Font Awesome 6 Free";src:url("/assets/fonts/fontawesome/fa-solid-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:block}@font-face{font-family:"Font Awesome 6 Free";src:url("/assets/fonts/fontawesome/fa-regular-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:"Font Awesome 6 Brands";src:url("/assets/fonts/fontawesome/fa-brands-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:block}.fa,.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-sun::before{content:""}.fa-moon::before{content:""}.fa-bars::before{content:""}.fa-times::before{content:""}.fa-xmark::before{content:""}.fa-chevron-left::before{content:""}.fa-chevron-right::before{content:""}.fa-chevron-up::before{content:""}.fa-chevron-down::before{content:""}.fa-arrow-left::before{content:""}.fa-arrow-right::before{content:""}.fa-search::before{content:""}.fa-magnifying-glass::before{content:""}.fa-envelope::before{content:""}.fa-phone::before{content:""}.fa-home::before{content:""}.fa-house::before{content:""}.fa-user::before{content:""}.fa-globe::before{content:""}.fa-link::before{content:""}.fa-external-link::before{content:""}.fa-external-link-alt::before{content:""}.fa-arrow-up-right-from-square::before{content:""}.fa-github::before{content:""}.fa-linkedin::before{content:""}.fa-linkedin-in::before{content:""}.fa-twitter::before{content:""}.fa-x-twitter::before{content:""}.fa-facebook::before{content:""}.fa-facebook-f::before{content:""}.fa-instagram::before{content:""}.fa-youtube::before{content:""}*,::after,::before{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin-block:0}ol[role=list],ul[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}button,h1,h2,h3,h4,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}:root{--color-background:#1a1814;--color-background-alt:#242019;--color-surface:#2a2520;--color-text:#e8e4dc;--color-text-light:#a8a49c;--color-text-muted:#918b84;--color-text-disabled:#7d7870;--color-accent:#c9a227;--color-accent-hover:#e4c04d;--color-accent-dark:#9a7b1c;--color-accent-subtle:#a28867;--color-accent-soft:rgba(201, 162, 39, 0.12);--color-on-accent:var(--color-background);--color-secondary:#c56742;--color-secondary-bg:#b65b37;--color-secondary-dark:#8f4528;--color-warning:#f59e0b;--color-success:var(--color-accent);--color-danger:var(--color-secondary);--color-border:#3d3730;--color-border-light:#4a433b;--color-white:#ffffff;--color-black:#0d0c0a;--font-serif:"Source Serif 4",Georgia,"Times New Roman",serif;--font-sans:"Montserrat",system-ui,-apple-system,sans-serif;--font-decorative:"Cinzel Decorative","Cinzel Decorative Fallback",serif;--font-body:var(--font-serif);--font-ui:var(--font-sans);--font-heading:var(--font-decorative);--text-xs:clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);--text-sm:clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);--text-base:clamp(1rem, 0.95rem + 0.25vw, 1.125rem);--text-lg:clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);--text-xl:clamp(1.5rem, 1.35rem + 0.75vw, 1.875rem);--text-2xl:clamp(1.875rem, 1.65rem + 1.1vw, 2.5rem);--text-3xl:clamp(2.25rem, 1.9rem + 1.75vw, 3.125rem);--text-4xl:clamp(2.75rem, 2.25rem + 2.5vw, 4rem);--leading-tight:1.15;--leading-snug:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--leading-loose:1.8;--measure:65ch;--measure-narrow:45ch;--measure-wide:75ch;--spacing-1:0.5rem;--spacing-2:1rem;--spacing-3:1.5rem;--spacing-4:2rem;--spacing-5:2.5rem;--spacing-6:3rem;--spacing-8:4rem;--spacing-10:5rem;--spacing-12:6rem;--spacing-unit:1.5rem;--container-width:75rem;--container-wide:90rem;--post-width:42rem;--sidenote-width:14rem;--header-height:4.5rem;--border-radius-sm:0.25rem;--border-radius:0.5rem;--border-radius-lg:1rem;--border-radius-xl:1.5rem;--border-radius-full:9999px;--card-bg:var(--color-surface);--card-border:var(--color-border);--card-radius:var(--border-radius);--card-padding:var(--spacing-4);--card-shadow:var(--shadow-sm);--card-shadow-hover:var(--shadow-lg);--card-lift:-4px;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.3);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.4),0 2px 4px -1px rgba(0, 0, 0, 0.3);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.45),0 4px 6px -2px rgba(0, 0, 0, 0.3);--shadow-xl:0 20px 25px -5px rgba(0, 0, 0, 0.5),0 10px 10px -5px rgba(0, 0, 0, 0.35);--shadow-glow:0 0 20px rgba(201, 162, 39, 0.15);--transition-fast:150ms;--transition-normal:250ms;--transition-slow:400ms;--ease-out:cubic-bezier(0.0, 0.0, 0.2, 1);--ease-in:cubic-bezier(0.4, 0.0, 1, 1);--ease-in-out:cubic-bezier(0.4, 0.0, 0.2, 1);--ease-bounce:cubic-bezier(0.68, -0.55, 0.265, 1.55);--z-dropdown:50;--z-sticky:60;--z-overlay:80;--z-nav:90;--z-modal:100;--z-toast:110;--z-progress:120;--overlay-soft:rgba(0, 0, 0, 0.5);--overlay-strong:rgba(0, 0, 0, 0.65);--overlay-scrim:rgba(0, 0, 0, 0.85);--gradient-primary:linear-gradient( 135deg, var(--color-accent), var(--color-accent-hover) );--gradient-dark:linear-gradient(180deg, rgba(0, 0, 0, 0.4), transparent);--gradient-surface:linear-gradient( 180deg, var(--color-surface), var(--color-background-alt) )}[data-theme=light]{--color-background:#f8f5f0;--color-background-alt:#f0ebe3;--color-surface:#ffffff;--color-text:#2c2825;--color-text-light:#5c5650;--color-text-muted:#6f6a64;--color-text-disabled:#9b958d;--color-secondary:#ae5735;--color-accent:#7a6316;--color-accent-hover:#5c4a10;--color-accent-dark:#4a3b0d;--color-accent-subtle:#6b5a42;--color-accent-soft:rgba(122, 99, 22, 0.1);--color-border:#ddd7cc;--color-border-light:#e8e3d9;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.04);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--shadow-xl:0 20px 25px -5px rgba(0, 0, 0, 0.12),0 10px 10px -5px rgba(0, 0, 0, 0.06);--shadow-glow:0 0 20px rgba(122, 99, 22, 0.1)}@media(prefers-color-scheme:light){html:not([data-theme]){--color-background:#f8f5f0;--color-background-alt:#f0ebe3;--color-surface:#ffffff;--color-text:#2c2825;--color-text-light:#5c5650;--color-text-muted:#6f6a64;--color-text-disabled:#9b958d;--color-secondary:#ae5735;--color-accent:#7a6316;--color-accent-hover:#5c4a10;--color-accent-dark:#4a3b0d;--color-accent-subtle:#6b5a42;--color-accent-soft:rgba(122, 99, 22, 0.1);--color-border:#ddd7cc;--color-border-light:#e8e3d9;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.04);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--shadow-xl:0 20px 25px -5px rgba(0, 0, 0, 0.12),0 10px 10px -5px rgba(0, 0, 0, 0.06);--shadow-glow:0 0 20px rgba(122, 99, 22, 0.1)}}.skip-link{position:absolute;top:-40px;left:0;padding:8px;background-color:var(--color-accent);color:var(--color-on-accent);z-index:100}.skip-link:focus{top:0}:focus{outline:3px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.block{display:block}body{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400;color:var(--color-text);margin-bottom:var(--spacing-unit);text-wrap:balance}h1{font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:.02em}h2{font-size:var(--text-2xl);line-height:var(--leading-tight);letter-spacing:.01em;color:var(--color-accent);margin-top:var(--spacing-8);margin-bottom:var(--spacing-4)}.post-content h2::after,.prose h2::after{content:"";display:block;width:3rem;height:2px;background:var(--color-accent-subtle);margin-top:var(--spacing-2);opacity:.5}h3{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600;line-height:var(--leading-snug);letter-spacing:0;margin-top:var(--spacing-6);margin-bottom:var(--spacing-3)}h4{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600;line-height:var(--leading-snug);margin-top:var(--spacing-5);margin-bottom:var(--spacing-2);font-variant-caps:small-caps;letter-spacing:.04em;color:var(--color-accent-subtle)}h5{font-family:var(--font-ui);font-size:var(--text-base);font-weight:600;line-height:var(--leading-normal);text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-subtle)}h6{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-normal);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}p{font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:var(--measure);margin-bottom:var(--spacing-3)}a{color:var(--color-accent);text-decoration:none;text-underline-offset:.2em;text-decoration-thickness:1px;transition:color var(--transition-fast) var(--ease-out),text-decoration-color var(--transition-fast) var(--ease-out)}a:hover{color:var(--color-accent-hover);text-decoration:underline;text-decoration-color:var(--color-accent-subtle)}a:not([class]):visited{color:var(--color-accent-subtle)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}.post-content a:not([class]),.prose a:not([class]){text-decoration:underline;text-decoration-color:var(--color-accent-subtle)}blockquote{font-family:var(--font-serif);font-style:italic;font-size:var(--text-lg);line-height:var(--leading-loose);border-left:3px solid var(--color-accent);margin:var(--spacing-5) 0;padding:var(--spacing-3) var(--spacing-4);color:var(--color-text-light);background-color:var(--color-background-alt);border-radius:0 var(--border-radius) var(--border-radius) 0;position:relative}blockquote p{margin-bottom:0}blockquote cite{display:block;margin-top:var(--spacing-2);font-size:var(--text-sm);font-style:normal;font-family:var(--font-ui);color:var(--color-text-muted)}blockquote cite::before{content:"— "}hr{border:none;margin:var(--spacing-8) auto;max-width:var(--post-width);text-align:center;overflow:visible;height:auto}hr::before{content:"◆ ◆ ◆";display:block;color:var(--color-accent-subtle);font-size:var(--text-sm);letter-spacing:.5em;opacity:.6}.separator--fleuron::before{content:"❧";font-size:var(--text-lg);letter-spacing:0}.separator--dots::before{content:"•  •  •"}.separator--line::before{content:"";display:block;width:4rem;height:1px;background:var(--color-border);margin:0 auto}ol,ul{margin:var(--spacing-3) 0;padding-left:var(--spacing-4);max-width:var(--measure)}li{margin-bottom:var(--spacing-1);line-height:var(--leading-relaxed)}li::marker{color:var(--color-accent)}ol ol,ol ul,ul ol,ul ul{margin-top:var(--spacing-1);margin-bottom:var(--spacing-1)}code{font-family:"JetBrains Mono","Fira Code",Consolas,monospace;font-size:.875em;background:var(--color-background-alt);padding:.125em .375em;border-radius:var(--border-radius-sm);border:1px solid var(--color-border)}pre{font-family:"JetBrains Mono","Fira Code",Consolas,monospace;font-size:var(--text-sm);line-height:var(--leading-relaxed);background:var(--color-background-alt);padding:var(--spacing-4);border-radius:var(--border-radius);border:1px solid var(--color-border);overflow-x:auto;-moz-tab-size:2;-o-tab-size:2;tab-size:2}pre code{background:0 0;padding:0;border:none;font-size:inherit}small{font-size:var(--text-sm);color:var(--color-text-light)}b,strong{font-weight:600}em,i{font-style:italic}mark{background-color:color-mix(in srgb,var(--color-accent) 20%,transparent);padding:.125em .25em;border-radius:var(--border-radius-sm)}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}::-moz-selection{background-color:var(--color-accent);color:var(--color-on-accent)}::selection{background-color:var(--color-accent);color:var(--color-on-accent)}.footnote-ref{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;color:var(--color-accent);text-decoration:none;vertical-align:super;line-height:0;margin-left:.1em}.footnote-ref:hover{color:var(--color-accent-hover);text-decoration:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInDown{from{opacity:0;transform:translateY(-1rem)}to{opacity:1;transform:translateY(0)}}.theme-transition,.theme-transition *,.theme-transition ::after,.theme-transition ::before{transition:background-color var(--transition-normal) var(--ease-in-out),color var(--transition-normal) var(--ease-in-out),border-color var(--transition-normal) var(--ease-in-out),fill var(--transition-normal) var(--ease-in-out)!important}@media(prefers-reduced-motion:reduce){.theme-transition,.theme-transition *,.theme-transition ::after,.theme-transition ::before{transition:none!important}}@media(prefers-reduced-motion:reduce){*,::after,::before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}body{padding-top:var(--header-height)}.container{--container-padding:clamp(var(--spacing-2), 5vw, var(--spacing-4));width:100%;max-width:var(--container-width);margin-inline:auto;padding-inline:var(--container-padding)}.container-wide{--container-padding:clamp(var(--spacing-2), 4vw, var(--spacing-6));width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--container-padding)}.container-narrow{--container-padding:clamp(var(--spacing-2), 5vw, var(--spacing-4));width:100%;max-width:var(--post-width);margin-inline:auto;padding-inline:var(--container-padding)}.grid{display:grid;gap:var(--spacing-4)}.grid-auto{display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.grid-2{display:grid;gap:var(--spacing-4)}@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr)}}.grid-3{display:grid;gap:var(--spacing-4)}@media(min-width:600px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.grid-3{grid-template-columns:repeat(3,1fr)}}.grid-4{display:grid;gap:var(--spacing-4)}@media(min-width:480px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr)}}.flex{display:flex;gap:var(--spacing-3)}.flex-center{display:flex;justify-content:center;align-items:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-start{display:flex;justify-content:flex-start;align-items:center}.flex-end{display:flex;justify-content:flex-end;align-items:center}.flex-column{display:flex;flex-direction:column;gap:var(--spacing-3)}.flex-wrap{display:flex;flex-wrap:wrap;gap:var(--spacing-3)}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-inline:auto}.my-auto{margin-block:auto}.section{padding-block:var(--spacing-8)}@media(min-width:768px){.section{padding-block:var(--spacing-12)}}.section-sm{padding-block:var(--spacing-4)}@media(min-width:768px){.section-sm{padding-block:var(--spacing-6)}}.w-full{width:100%}.max-w-prose{max-width:var(--measure)}.max-w-narrow{max-width:var(--measure-narrow)}.max-w-wide{max-width:var(--measure-wide)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.site-footer{margin-top:var(--spacing-8);padding:var(--spacing-6) var(--spacing-4) var(--spacing-4);background-color:var(--color-background-alt);border-top:1px solid var(--color-border);font-family:var(--font-ui)}.footer-columns{max-width:var(--container-width);margin-inline:auto;display:grid;grid-template-columns:1fr;gap:var(--spacing-4)}@media(min-width:768px){.footer-columns{grid-template-columns:repeat(3,1fr);gap:var(--spacing-6)}}.footer-columns h2{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-normal);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-light);margin:0 0 var(--spacing-2)}.footer-columns ul{list-style:none;margin:0;padding:0}.footer-columns a{display:inline-flex;align-items:center;min-height:2.75rem;padding-inline:0;color:var(--color-text-light);font-size:var(--text-sm);text-decoration:none;transition:color var(--transition-fast) var(--ease-out)}.footer-columns a:visited{color:var(--color-text-light)}.footer-columns a:hover{color:var(--color-accent);text-decoration:underline;text-underline-offset:.2em}.footer-columns a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius-sm)}.footer-bottom{max-width:var(--container-width);margin-inline:auto;margin-top:var(--spacing-4);padding-top:var(--spacing-2);border-top:1px solid var(--color-border);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);text-align:center}@media(min-width:768px){.footer-bottom{flex-direction:row;justify-content:space-between;text-align:left}}.footer-text{margin:0;color:var(--color-text-light);font-size:var(--text-sm)}.footer-text a{color:var(--color-text-light);text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--color-border-light);transition:color var(--transition-fast) var(--ease-out)}.footer-text a:visited{color:var(--color-text-light)}.footer-text a:hover{color:var(--color-accent);text-decoration-color:currentColor}body>header{position:fixed;top:0;left:0;right:0;background-color:var(--color-background);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:var(--z-nav);transition:transform var(--transition-normal),background-color var(--transition-normal)}body>header nav{margin:0 auto;min-height:var(--header-height);padding:0 var(--spacing-4);display:flex;justify-content:space-between;align-items:center}body>header.header-hidden{transform:translateY(-100%)}@media(min-width:1024px){body>header nav{max-width:var(--container-width)}}.site-brand{flex-shrink:0;display:inline-flex;align-items:center;min-height:2.75rem;margin-right:var(--spacing-4);font-family:var(--font-decorative);font-size:var(--text-lg);letter-spacing:.02em;color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}.site-brand:hover{color:var(--color-accent)}.main-navigation{flex:1}.main-navigation .menu-toggle{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-text);background:0 0;border:none;cursor:pointer}.main-navigation .menu-toggle .hamburger{display:flex;width:24px;height:2px;background-color:var(--color-text);position:relative;transition:background-color var(--transition-fast)}.main-navigation .menu-toggle .hamburger::after,.main-navigation .menu-toggle .hamburger::before{content:"";position:absolute;width:100%;height:100%;background-color:var(--color-text);transition:transform var(--transition-fast)}.main-navigation .menu-toggle .hamburger::before{transform:translateY(-8px)}.main-navigation .menu-toggle .hamburger::after{transform:translateY(8px)}.main-navigation .menu-toggle[aria-expanded=true] .hamburger{background-color:rgba(0,0,0,0)}.main-navigation .menu-toggle[aria-expanded=true] .hamburger::before{transform:rotate(45deg)}.main-navigation .menu-toggle[aria-expanded=true] .hamburger::after{transform:rotate(-45deg)}.main-navigation .nav-menu{position:fixed;top:var(--header-height);left:0;right:0;background-color:var(--color-background);padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-4);list-style:none;margin:0;box-shadow:var(--shadow-md);transform:translateY(-100%);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal),transform var(--transition-normal)}.main-navigation .nav-menu.visible{transform:translateY(0);opacity:1;visibility:visible}.main-navigation .nav-menu li{position:relative}.main-navigation .nav-menu a{display:block;font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-text);text-decoration:none;padding:var(--spacing-2);position:relative;transition:color var(--transition-fast)}.main-navigation .nav-menu a::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--gradient-primary);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-fast)}.main-navigation .nav-menu a:hover,.main-navigation .nav-menu a[aria-current=page]{color:var(--color-accent)}.main-navigation .nav-menu a:hover::after,.main-navigation .nav-menu a[aria-current=page]::after{transform:scaleX(1);transform-origin:left}@media(min-width:768px){.main-navigation{margin-right:var(--spacing-4)}.main-navigation .menu-toggle{display:none}.main-navigation .nav-menu{position:static;padding:0;flex-direction:row;gap:var(--spacing-6);transform:none;opacity:1;visibility:visible;box-shadow:none;background-color:rgba(0,0,0,0)}}.header-actions{display:flex;align-items:center;gap:var(--spacing-2)}@media(min-width:768px){.header-actions{gap:var(--spacing-3)}}.language-switcher{position:relative}.language-switcher .lang-toggle{display:flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text);background:0 0;border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:background-color var(--transition-fast)}.language-switcher .lang-toggle:hover{background-color:var(--color-background-alt)}.language-switcher .lang-toggle .arrow{border:solid var(--color-text);border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(45deg);transition:transform var(--transition-fast)}.language-switcher .lang-toggle[aria-expanded=true] .arrow{transform:rotate(-135deg)}.language-switcher .lang-menu{position:absolute;top:100%;right:0;min-width:150px;margin-top:var(--spacing-1);padding:var(--spacing-1);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity var(--transition-fast),visibility var(--transition-fast),transform var(--transition-fast)}.language-switcher .lang-menu.visible{opacity:1;visibility:visible;transform:translateY(0)}.language-switcher .lang-menu li{list-style:none}.language-switcher .lang-menu a{display:block;width:100%;padding:var(--spacing-2);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);transition:background-color var(--transition-fast);border-radius:var(--border-radius)}.language-switcher .lang-menu a:hover,.language-switcher .lang-menu a[aria-current=true]{background-color:var(--color-background-alt);color:var(--color-accent)}.theme-toggle{padding:var(--spacing-2);background:0 0;border:none;cursor:pointer;color:var(--color-text);transition:color var(--transition-fast);display:flex;align-items:center;justify-content:center}.theme-toggle:hover{color:var(--color-accent)}.theme-toggle i,.theme-toggle svg{width:20px;height:20px;font-size:20px;fill:currentColor}@media(min-width:768px){.theme-toggle i,.theme-toggle svg{width:24px;height:24px;font-size:24px}}.theme-toggle .moon-icon{display:none}.theme-toggle .sun-icon{display:block}[data-theme=light] .theme-toggle .sun-icon{display:none}[data-theme=light] .theme-toggle .moon-icon{display:block}.header-visible{animation:fadeInDown var(--transition-normal)}.pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--spacing-1);margin:var(--spacing-6) auto}.pagination ul{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--spacing-1);list-style:none;padding:0;margin:0;max-width:none}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-base);line-height:1;border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);text-decoration:none;transition:background-color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out),transform var(--transition-fast) var(--ease-out)}.pagination a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius)}.pagination a:visited{color:var(--color-text)}.pagination a:hover{background-color:var(--color-background-alt);border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.pagination a:active{transform:translateY(0)}.pagination li.active span{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);cursor:default;font-weight:600}.pagination li.disabled span{color:var(--color-text-disabled);cursor:not-allowed;pointer-events:none}.pagination-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-4);margin:var(--spacing-6) auto;max-width:var(--post-width);padding:0 var(--spacing-2)}.pagination-next,.pagination-prev{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);color:var(--color-accent);text-decoration:none;border-radius:var(--border-radius);transition:background-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out)}.pagination-next:hover,.pagination-prev:hover{background-color:var(--color-background-alt);color:var(--color-accent-hover)}.pagination-next:focus-visible,.pagination-prev:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius)}.pagination-prev::before{content:"←"}.pagination-next::after{content:"→"}.page-header{margin-block:var(--spacing-6);text-align:center}.page-header h1{font-size:var(--text-3xl);line-height:var(--leading-tight);margin-bottom:var(--spacing-3)}.page-header .page-description{font-size:var(--text-lg);color:var(--color-text-light);max-width:var(--measure);margin-inline:auto}.page-content{max-width:var(--container-width);margin-inline:auto;padding:var(--spacing-4)}@media(min-width:768px){.page-content{padding:var(--spacing-6)}}.prose{max-width:var(--post-width);margin-inline:auto}.prose>*+*{margin-top:var(--spacing-3)}.prose h2,.prose h3,.prose h4{margin-top:var(--spacing-6)}.prose img{max-width:100%;height:auto;border-radius:var(--border-radius)}.card{position:relative;display:flex;flex-direction:column;background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--card-shadow);overflow:hidden;transition:transform var(--transition-normal) var(--ease-out),box-shadow var(--transition-normal) var(--ease-out),border-color var(--transition-fast) var(--ease-out)}.card:hover{transform:translateY(var(--card-lift));box-shadow:var(--card-shadow-hover);border-color:var(--color-border-light,var(--card-border))}.card:focus-within{outline:2px solid var(--color-accent);outline-offset:2px}.card--primary{border-color:var(--color-accent)}.card--primary:hover{box-shadow:var(--card-shadow-hover),0 0 0 1px var(--color-accent)}.card--secondary{border-color:var(--color-secondary)}.card--secondary:hover{box-shadow:var(--card-shadow-hover),0 0 0 1px var(--color-secondary)}.card--elevated{border:none;box-shadow:var(--shadow-md)}.card--elevated:hover{transform:translateY(-6px);box-shadow:var(--card-shadow-hover)}.card--flat{border:none;background-color:var(--color-background-alt)}.card--flat:hover{transform:none;background-color:var(--color-border)}.card--interactive{cursor:pointer}.card--interactive:active{transform:translateY(-2px) scale(.99)}.card-header{padding-bottom:var(--spacing-3);margin-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border)}.card-body,.card-content{flex:1;display:flex;flex-direction:column}.card-content>time{font-size:var(--text-sm);color:var(--color-text-light);margin-bottom:var(--spacing-2)}.card .post-meta{font-size:var(--text-sm);color:var(--color-text-light);margin:0 0 var(--spacing-2)}.card-footer{padding-top:var(--spacing-3);margin-top:auto;border-top:1px solid var(--color-border)}.card-image{margin:calc(var(--card-padding)*-1);margin-bottom:var(--card-padding);border-bottom:1px solid var(--card-border)}.card-image:is(img){width:calc(100% + var(--card-padding)*2);max-width:none}.card-image img,.card-image:is(img){height:auto;display:block;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover}.card-image img{width:100%}.card-image img,.card-image:is(img){transition:transform var(--transition-slow) var(--ease-out)}.card:hover .card-image img,.card:hover .card-image:is(img){transform:scale(1.03)}.card-title{font-size:var(--text-xl);font-weight:600;line-height:var(--leading-snug);margin-top:0;margin-bottom:var(--spacing-2)}.card-title a{color:inherit;text-decoration:none}.card-title a:hover{color:var(--color-accent)}.card-title a::after{content:"";position:absolute;inset:0}.card-subtitle{font-size:var(--text-sm);color:var(--color-text-light);margin-bottom:var(--spacing-2)}.card-excerpt,.card-text{font-size:var(--text-base);color:var(--color-text-light);line-height:var(--leading-relaxed)}.card-excerpt{margin-bottom:var(--spacing-3);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.card-link{position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--spacing-1);margin-top:auto;min-height:2.75rem;font-weight:600;color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast) var(--ease-out)}.card-link::after{content:"→";transition:transform var(--transition-fast) var(--ease-out)}.card-link:focus,.card-link:hover{color:var(--color-accent-hover)}.card-link:focus::after,.card-link:hover::after{transform:translateX(4px)}.card-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius-sm)}.card-meta{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);color:var(--color-text-light)}.card-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-3)}.card-grid{display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}@media(min-width:600px){.card--horizontal{flex-direction:row}.card--horizontal .card-image{margin:calc(var(--card-padding)*-1);margin-right:var(--card-padding);width:200px;flex-shrink:0}.card--horizontal .card-image img{height:100%;aspect-ratio:auto}}.card--compact{padding:var(--spacing-3)}.card--compact .card-title{font-size:var(--text-lg)}.card--compact .card-image{margin:calc(var(--spacing-3)*-1);margin-bottom:var(--spacing-3)}.card--compact .card-image:is(img){width:calc(100% + var(--spacing-3)*2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-4);border:2px solid transparent;border-radius:var(--border-radius);font-family:var(--font-ui);font-size:var(--text-base);font-weight:600;text-decoration:none;text-align:center;line-height:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform var(--transition-fast) var(--ease-out),box-shadow var(--transition-fast) var(--ease-out),background-color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out)}.btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius)}.btn.disabled,.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn.btn-sm,.btn.small{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-sm);border-radius:var(--border-radius-sm)}.btn.btn-lg,.btn.large{padding:var(--spacing-3) var(--spacing-6);font-size:var(--text-lg);border-radius:var(--border-radius-lg)}.btn .icon,.btn i,.btn svg{flex-shrink:0;width:1.25em;height:1.25em}.btn.btn-icon{padding:var(--spacing-2);aspect-ratio:1}.btn-primary{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent)}.btn-primary:active{background-color:var(--color-accent-dark);border-color:var(--color-accent-dark)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--color-secondary-bg);border-color:var(--color-secondary-bg);color:var(--color-white)}.btn-secondary:hover{background-color:var(--color-secondary-dark);border-color:var(--color-secondary-dark);color:var(--color-white)}.btn-secondary:active{background-color:var(--color-secondary-dark);border-color:var(--color-secondary-dark)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-outline{background-color:rgba(0,0,0,0);border-color:var(--color-accent);color:var(--color-accent)}.btn-outline:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn-outline:active{background-color:var(--color-accent-dark);border-color:var(--color-accent-dark)}.btn-outline:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-outline:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-outline-secondary{background-color:rgba(0,0,0,0);border-color:var(--color-secondary);color:var(--color-secondary)}.btn-outline-secondary:hover{background-color:var(--color-secondary-bg);border-color:var(--color-secondary-bg);color:var(--color-white)}.btn-outline-secondary:active{background-color:var(--color-secondary-dark);border-color:var(--color-secondary-dark)}.btn-outline-secondary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-outline-secondary:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-ghost{background-color:rgba(0,0,0,0);border-color:transparent;color:var(--color-text)}.btn-ghost:hover{background-color:var(--color-background-alt);border-color:transparent;color:var(--color-accent)}.btn-ghost:active{background-color:var(--color-border);border-color:transparent}.btn-ghost:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-ghost:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-link{background-color:rgba(0,0,0,0);border-color:transparent;color:var(--color-accent)}.btn-link:hover{background-color:rgba(0,0,0,0);border-color:transparent;color:var(--color-accent-hover)}.btn-link:active{background-color:rgba(0,0,0,0);border-color:transparent}.btn-link{padding-inline:0}.btn-link:hover{text-decoration:underline}.btn-group{display:inline-flex;gap:0}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--border-radius) 0 0 var(--border-radius)}.btn-group .btn:last-child{border-radius:0 var(--border-radius) var(--border-radius) 0}.btn-group .btn:not(:first-child){margin-left:-2px}.btn-group .btn:hover{z-index:1}.btn.is-loading{position:relative;color:transparent;pointer-events:none}.btn.is-loading::after{content:"";position:absolute;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--border-radius-full);animation:spin .6s linear infinite}.gallery{max-width:var(--container-wide);margin:0 auto;padding:var(--spacing-6) var(--spacing-4)}.gallery header{text-align:center;margin-bottom:var(--spacing-8)}.gallery header h1{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.5rem);font-weight:400;color:var(--color-text);margin-bottom:var(--spacing-2)}.gallery header p{font-size:var(--text-lg);color:var(--color-text-muted)}.gallery-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-6);padding:0;margin:0;list-style:none}.gallery-list .gallery-item{position:relative;border:1px solid var(--card-border);border-radius:var(--card-radius);overflow:hidden;background:var(--card-bg);box-shadow:var(--card-shadow);transition:transform var(--transition-slow) var(--ease-out),box-shadow var(--transition-slow) var(--ease-out)}.gallery-list .gallery-item a{display:block;text-decoration:none;color:inherit}.gallery-list .gallery-item a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:var(--border-radius)}.gallery-list .gallery-item figure{margin:0;position:relative;overflow:hidden}.gallery-list .gallery-item img{width:100%;height:15rem;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:transform var(--transition-slow) var(--ease-out);display:block}.gallery-list .gallery-item figcaption{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-4);background:linear-gradient(to top,var(--overlay-scrim) 0,var(--overlay-soft) 60%,transparent 100%);color:var(--color-white);font-size:var(--text-base);font-weight:500;text-align:center;transform:translateY(100%);transition:transform var(--transition-slow) var(--ease-out)}.gallery-list .gallery-item:hover{transform:translateY(var(--card-lift));box-shadow:var(--card-shadow-hover),0 0 0 1px color-mix(in srgb,var(--color-accent) 10%,transparent)}.gallery-list .gallery-item:hover img{transform:scale(1.1)}.gallery-list .gallery-item:hover figcaption{transform:translateY(0)}@media(hover:none){.gallery-list .gallery-item figcaption{transform:translateY(0);background:var(--overlay-strong)}}.gallery-list>li:only-child:has(p){grid-column:1/-1;text-align:center;padding:var(--spacing-8);color:var(--color-text-muted);font-size:var(--text-lg)}@media(min-width:768px){.gallery-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-8)}.gallery-list .gallery-item img{height:17.5rem}}@media(min-width:1200px){.gallery-list{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.gallery-list .gallery-item img{height:20rem}}.gallery-image{max-width:var(--container-width);margin:0 auto;padding:var(--spacing-6) var(--spacing-4)}.gallery-image header{text-align:center;margin-bottom:var(--spacing-6)}.gallery-image header h1{font-family:var(--font-heading);font-size:clamp(1.5rem,4vw,2.5rem);font-weight:600;color:var(--color-text)}.gallery-image section{display:grid;gap:var(--spacing-8)}@media(min-width:768px){.gallery-image section{grid-template-columns:2fr 1fr;align-items:start}}.gallery-image figure{margin:0;border-radius:var(--card-radius);overflow:hidden;box-shadow:var(--shadow-md);background:var(--card-bg)}.gallery-image figure img{width:100%;height:auto;display:block}.gallery-image figure figcaption{padding:var(--spacing-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-background);border-top:1px solid var(--color-border)}.gallery-image .download-links{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--spacing-6);box-shadow:var(--card-shadow)}.gallery-image .download-links h2{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--spacing-4);color:var(--color-text);display:flex;align-items:center;gap:var(--spacing-2)}.gallery-image .download-links h2::before{content:"⬇️"}.gallery-image .download-links ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-3)}.gallery-image .download-links li a{display:flex;align-items:center;gap:var(--spacing-3);min-height:2.75rem;padding:var(--spacing-3) var(--spacing-4);background:var(--color-background);border:1px solid var(--card-border);border-radius:var(--card-radius);color:var(--color-text);text-decoration:none;font-weight:500;transition:background-color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out),transform var(--transition-fast) var(--ease-out)}.gallery-image .download-links li a:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);transform:translateX(4px)}.gallery-image .download-links li a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:var(--card-radius)}.gallery-image footer{margin-top:var(--spacing-8);text-align:center}.gallery-image footer a{display:inline-flex;align-items:center;gap:var(--spacing-2);color:var(--color-accent);text-decoration:none;font-weight:500;transition:color var(--transition-fast) var(--ease-out)}.gallery-image footer a:hover{text-decoration:underline}.gallery-image footer a::before{content:"←"}.recent-posts{padding:var(--spacing-8) var(--spacing-4)}.recent-posts h2{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--spacing-6)}.recent-posts .posts-grid{display:grid;gap:var(--spacing-6);margin-bottom:var(--spacing-8);max-width:var(--container-width);margin-inline:auto}@media(min-width:768px){.recent-posts .posts-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.recent-posts .posts-grid{grid-template-columns:repeat(3,1fr)}}.hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:80vh;padding:var(--spacing-8) var(--spacing-4);text-align:center;color:var(--color-white);background-size:cover;background-position:center;background-repeat:no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,var(--overlay-soft) 0,var(--overlay-strong) 100%);z-index:1}.hero-content{position:relative;z-index:2;padding:var(--spacing-6);width:min(90%,var(--container-width));max-width:var(--measure-wide)}.hero h1{font-family:var(--font-decorative);font-size:var(--text-4xl);line-height:var(--leading-tight);margin-bottom:var(--spacing-4);text-shadow:0 2px 4px rgba(0,0,0,.3)}.hero-description{font-size:var(--text-xl);line-height:var(--leading-relaxed);margin-bottom:var(--spacing-6);opacity:.95;max-width:var(--measure);margin-inline:auto}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-3);justify-content:center}.post-hero{min-height:60vh;text-align:center}.post-hero .hero-content{text-align:center;margin-inline:auto;padding:var(--spacing-6) var(--spacing-4)}.post-hero h1{font-size:var(--text-3xl)}.hero-small{min-height:40vh}.hero-small h1{font-size:var(--text-3xl)}.hero-small .hero-description{font-size:var(--text-lg)}@media(max-width:1024px){.hero{min-height:70vh}.post-hero{min-height:50vh}}@media(max-width:768px){.hero{min-height:60vh;padding:var(--spacing-6) var(--spacing-3)}.hero-content{padding:var(--spacing-4) var(--spacing-3)}.hero h1{font-size:var(--text-2xl)}.hero-description{font-size:var(--text-base);margin-bottom:var(--spacing-4)}.post-hero{min-height:auto;background-position:center top}.post-hero .hero-content{padding:var(--spacing-4) var(--spacing-3)}.post-hero h1{font-size:var(--text-2xl)}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}}.post{max-width:100%;margin:0 auto;padding:var(--spacing-4)}.post header{max-width:100%;margin-inline:var(--spacing-2);margin-bottom:var(--spacing-6)}.post header figure{max-width:var(--post-width);margin-inline:auto;margin-bottom:var(--spacing-4)}.post header img{width:100%;height:auto;margin-bottom:var(--spacing-3);border-radius:var(--border-radius)}.post header>h1{text-align:center;font-size:var(--text-3xl);font-family:var(--font-heading);margin-bottom:var(--spacing-3);max-width:var(--measure-wide);margin-inline:auto}.post header .post-excerpt,.post header hr,.post header p[data-info=reading-time]{max-width:var(--post-width);margin-inline:auto;margin-bottom:var(--spacing-2)}.post header .post-meta{max-width:var(--post-width);margin-inline:auto;padding:var(--spacing-3) 0;display:flex;flex-wrap:wrap;gap:var(--spacing-3);align-items:center;justify-content:center;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-light);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.post header .post-meta dt{margin:0;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs)}.post header .post-meta dd{margin:0}.post header .post-meta time{font-variant-numeric:tabular-nums}.post header .meta-item{display:inline-flex;align-items:center;gap:var(--spacing-1)}.post-content{max-width:100%;margin-inline:var(--spacing-2);margin-bottom:var(--spacing-6);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-loose)}.post-content>p:first-of-type::first-letter{font-family:var(--font-heading);float:left;font-size:4.5rem;line-height:.75;font-weight:400;padding-right:.6rem;padding-top:.15rem;color:var(--color-accent);text-shadow:2px 2px 0 var(--color-background-alt)}.post-content h2{text-align:center;margin-inline:auto;max-width:var(--post-width)}.post-content h2::after{margin-left:auto;margin-right:auto}.post-content h3,.post-content h4{max-width:var(--post-width);margin-inline:auto;text-align:left}.post-content p{max-width:var(--post-width);margin-inline:auto;margin-bottom:var(--spacing-4)}.post-content blockquote,.post-content ol,.post-content ul{max-width:var(--post-width);margin-inline:auto}.post-content img{max-width:100%;height:auto;margin:var(--spacing-4) auto;display:block;border-radius:var(--border-radius)}.post-content iframe{display:block;max-width:100%;margin:var(--spacing-4) auto;border:0}.post-content iframe[src*=vimeo],.post-content iframe[src*=youtube]{width:var(--post-width);aspect-ratio:16/9;height:auto}.post-content figure{max-width:var(--post-width);margin:var(--spacing-6) auto}.post-content figure img{margin:0 auto var(--spacing-2)}.post-content figure figcaption{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;font-style:italic}.post-content hr{max-width:var(--post-width)}.post-content .toc{max-width:var(--post-width);margin:var(--spacing-6) auto;padding:var(--spacing-3) var(--spacing-5);background:var(--color-background-alt);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--border-radius);font-family:var(--font-ui);font-size:var(--text-base)}.post-content .toc .toctitle{display:block;font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--spacing-2)}.post-content .toc ul{max-width:none;margin:0;padding-left:var(--spacing-4)}.post-content .toc ul ul{padding-left:var(--spacing-4);margin-top:var(--spacing-1)}.post-content .toc li{margin:var(--spacing-1) 0}.post-content .toc a{color:var(--color-accent);text-decoration:none}.post-content .toc a:hover{text-decoration:underline}.post footer{max-width:var(--post-width);margin-inline:auto;border-top:1px solid var(--color-border);padding-top:var(--spacing-4);font-family:var(--font-ui);font-size:var(--text-sm)}.post div[role=status]{background-color:var(--color-secondary-bg);color:var(--color-white);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-family:var(--font-ui);font-weight:600;text-align:center;margin-bottom:var(--spacing-2)}.post .featured-label{background:var(--gradient-primary);color:var(--color-on-accent);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius-lg);font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:600;display:inline-block;margin-top:var(--spacing-2)}.post p[data-info=reading-time]{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-2);text-align:center}@media(min-width:768px){.post{max-width:var(--container-width);padding:var(--spacing-8)}.post header{margin-inline:auto}.post header>h1{font-size:var(--text-4xl)}.post header .post-meta{font-size:var(--text-sm)}.post-content{margin-inline:auto;font-size:var(--text-lg);line-height:var(--leading-loose)}.post-content>p:first-of-type::first-letter{font-size:5.5rem;padding-right:.75rem}.post-content p{margin-bottom:var(--spacing-4)}.post footer{margin-inline:auto;font-size:var(--text-base)}}@media(min-width:1200px){.post-content{position:relative}}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:rgba(0,0,0,0);z-index:var(--z-progress);opacity:0;transition:opacity var(--transition-normal) var(--ease-out);pointer-events:none}.reading-progress.visible{opacity:1}.reading-progress__fill{height:100%;width:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--color-accent-dark),var(--color-accent),var(--color-accent-hover));box-shadow:0 0 10px var(--color-accent)}.posts{display:grid;grid-template-columns:1fr;gap:var(--spacing-3);padding:var(--spacing-2)}@media(min-width:600px){.posts{grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}}@media(min-width:1200px){.posts{max-width:var(--container-width);margin-inline:auto;gap:var(--spacing-6)}}.posts-header{text-align:center;margin-bottom:var(--spacing-6)}.posts-header h1{font-size:var(--text-3xl);margin-bottom:var(--spacing-2)}.posts-header .posts-description{font-size:var(--text-lg);color:var(--color-text-light);max-width:var(--measure);margin-inline:auto}.post-taxonomy{margin:var(--spacing-4) 0}.post-tags-categories{display:grid;gap:var(--spacing-4)}@media(min-width:768px){.post-tags-categories{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}.taxonomy-title{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--spacing-2);font-weight:600}.taxonomy-title .icon-wrapper{display:flex;align-items:center;justify-content:center}.taxonomy-title .taxonomy-icon{fill:var(--color-accent)}.taxonomy-list{display:flex;flex-wrap:wrap;gap:calc(var(--spacing-1)*1.5);list-style:none;padding:0}.taxonomy-item{transition:transform var(--transition-fast) var(--ease-out),box-shadow var(--transition-fast) var(--ease-out),background-color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out)}.taxonomy-item:hover{transform:translateY(-2px)}.taxonomy-item:active{transform:translateY(0)}.taxonomy-item:hover{box-shadow:var(--shadow-md)}.taxonomy-link{display:inline-flex;align-items:center;min-height:2.75rem;padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-accent-soft);color:var(--color-accent);text-decoration:none;border-radius:var(--border-radius);font-size:var(--text-sm);font-weight:500;transition:background-color var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out)}.taxonomy-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px}.taxonomy-link:hover{background-color:var(--color-accent);color:var(--color-on-accent)}.taxonomy-link span[aria-hidden=true]{opacity:.7;margin-right:calc(var(--spacing-1)/2)}.post-categories,.post-keywords{animation:fadeIn var(--transition-slow) var(--ease-out)}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.taxonomy-title:hover .taxonomy-icon{transform:scale(1.1);transition:transform var(--transition-fast) var(--ease-out)}