:root{color-scheme:dark light;--bg: #0b0b0b;--text: #f2ece3;--muted: #8d867d;--muted-strong: #b4ab9f;--accent: #ffffff;--loader-base: #141414;--loader-shimmer: #1c1c1c;--font-display: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", serif;--font-body: "Source Serif 4", Georgia, serif}@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--bg: #FFF;--text: #1a1917;--muted: #918c85;--muted-strong: #5c5852;--accent: #0b0b0b;--loader-base: #f0f0f0;--loader-shimmer: #e4e4e4}}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light;--bg: #FFF;--text: #1a1917;--muted: #918c85;--muted-strong: #5c5852;--accent: #0b0b0b;--loader-base: #f0f0f0;--loader-shimmer: #e4e4e4}*,*:before,*:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{display:block;max-width:100%}[hidden]{display:none!important}a,button{color:inherit;font:inherit}a{text-decoration:none}button{background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:none;color:var(--accent);text-decoration:underline;text-underline-offset:.16em}.portfolio-shell{position:relative;display:grid;grid-template-columns:minmax(248px,284px) minmax(0,1fr);min-height:100vh}.sidebar-rail{position:relative;z-index:2;padding:1.25rem}.sidebar-inner{position:sticky;top:1.25rem;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 2.5rem);padding:1rem .85rem 1rem 0}.brand-mark,.mobile-brand{font-family:var(--font-display);font-size:clamp(1rem,1.4vw,1.4rem);font-weight:500;line-height:.9;color:var(--text)}.sidebar-nav{display:grid;gap:.65rem}.sidebar-link{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.25rem 0;color:var(--muted);transition:color .16s ease}.sidebar-link span{font-size:1.8rem;line-height:1}.sidebar-link small{font-size:.72rem;letter-spacing:.14em}.sidebar-link:hover,.sidebar-link:focus-visible,.sidebar-link.is-active{color:var(--text);text-decoration:none}.sidebar-page-link{margin-top:.55rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--muted) 35%,transparent)}.sidebar-page-link+.sidebar-page-link{margin-top:0;padding-top:0;border-top:0}.sidebar-footer{display:grid;gap:1rem}.portfolio-counter{margin:0;color:var(--muted-strong);font-size:.88rem;letter-spacing:.14em;text-transform:uppercase}.sidebar-contact{display:grid;gap:.55rem}.sidebar-contact a{width:fit-content;color:var(--muted);letter-spacing:.08em;transition:color .18s ease}.sidebar-contact a:hover,.sidebar-contact a:focus-visible{color:var(--accent)}.sidebar-bmc{margin-top:.45rem}.sidebar-bmc [data-bmc]{display:grid;justify-content:start}.sidebar-bmc .bmc-btn{font-size:.72rem!important;padding:6px 12px!important;border-radius:4px!important}.mobile-bar,.mobile-panel{display:none}.viewer-shell{position:relative;min-width:0;padding:1.25rem 1.25rem 1.25rem .25rem}.viewer-stage{position:relative;display:grid;min-height:calc(100vh - 2.5rem);background:var(--bg);overflow:clip}.viewer-stack{position:relative;min-height:calc(100vh - 2.5rem)}.photo-slide{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:clamp(4.5rem,7vw,6.75rem) clamp(3.4rem,6vw,5.5rem)}.photo-frame{display:grid;place-items:center;position:relative;width:100%;height:100%}.photo-frame picture,.photo-frame img{width:auto;height:auto;max-width:min(100%,1120px);max-height:min(82vh,920px);object-fit:contain}.photo-loader{position:absolute;inset:0;background:linear-gradient(110deg,var(--loader-base) 8%,var(--loader-shimmer) 18%,var(--loader-base) 33%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:2px;opacity:1;transition:opacity .5s ease;pointer-events:none}.photo-image{opacity:0;transform:scale(1.02);transition:opacity .6s cubic-bezier(.2,.9,.2,1),transform .7s cubic-bezier(.2,.9,.2,1)}.photo-image.is-loaded{opacity:1;transform:scale(1)}.photo-image.is-loaded+.photo-loader,.photo-frame:has(.photo-image.is-loaded) .photo-loader{opacity:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.viewer-controls{position:absolute;inset-inline:clamp(1rem,2vw,1.6rem);top:50%;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none}.viewer-arrow{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;background:transparent;color:var(--text);font-size:2rem;pointer-events:auto;transition:opacity .16s ease,color .16s ease}.viewer-arrow:hover:not(:disabled),.viewer-arrow:focus-visible:not(:disabled){color:var(--accent)}.viewer-arrow:disabled{opacity:.2;cursor:not-allowed}@media(max-width:960px){.portfolio-shell{grid-template-columns:1fr}.sidebar-rail{display:none}.mobile-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1rem 0}.mobile-brand{font-size:clamp(1.6rem,9vw,2.2rem)}.mobile-chrome{display:flex;align-items:center;gap:.8rem}.menu-toggle{padding:.2rem 0;letter-spacing:.08em;text-transform:uppercase}.mobile-panel{position:fixed;inset:4.8rem 1rem auto;z-index:6;display:block;padding:.8rem 0 1rem;background:var(--bg)}.mobile-menu-actions{display:grid;gap:.75rem;margin:1rem 0 .9rem;padding-top:.95rem;border-top:1px solid color-mix(in srgb,var(--muted) 45%,transparent)}.mobile-coffee-link{display:flex;align-items:center;justify-content:center;min-height:2.4rem;border:1px solid var(--muted);border-radius:3px;color:var(--text);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.mobile-coffee-link:hover,.mobile-coffee-link:focus-visible{border-color:var(--accent);color:var(--accent);text-decoration:none}.viewer-shell{padding:.8rem 1rem 1rem}.viewer-stage,.viewer-stack{min-height:calc(100vh - 7.2rem)}.photo-slide{padding:5rem 1.1rem 5.8rem}.photo-frame picture,.photo-frame img{max-height:min(72vh,780px)}.viewer-controls{top:auto;bottom:1rem;transform:none;inset-inline:1rem}.viewer-arrow{width:3rem;height:3rem}body>.theme-toggle,#bmc-wbtn,#bmc-wbtn-popup,.bmc-widget,.bmc-btn-container,iframe[src*=buymeacoffee]{display:none!important}}.theme-toggle{position:fixed;top:1rem;right:1.25rem;z-index:10;display:flex;border:1px solid var(--muted);border-radius:3px;background:var(--bg);opacity:.65;transition:opacity .2s ease}.theme-toggle:hover,.theme-toggle:focus-within{opacity:1}.theme-toggle button{padding:.35rem .6rem;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .16s ease,background .16s ease}.theme-toggle button+button{border-left:1px solid var(--muted)}.theme-toggle button.is-active{color:var(--text);background:#8080801f}.theme-toggle button:hover:not(.is-active){color:var(--muted-strong)}@media(max-width:960px){.mobile-panel .mobile-theme-toggle{position:static;width:100%;opacity:1}.mobile-panel .mobile-theme-toggle button{flex:1 1 0;min-width:0;padding-block:.5rem;text-align:center}}.blog-shell{display:grid;grid-template-rows:auto 1fr auto;width:min(100%,1540px);min-height:100vh;margin:0 auto;padding:0 2rem}.blog-header,.blog-footer{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:5.5rem;border-bottom:1px solid color-mix(in srgb,var(--muted) 32%,transparent)}.blog-brand{font-family:var(--font-display);font-size:1.55rem;font-weight:500;line-height:1}.blog-nav{display:flex;gap:1.75rem;margin-right:12rem}.blog-nav a,.blog-footer a,.article-back{color:var(--muted-strong);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;transition:color .16s ease}.blog-nav a:hover,.blog-nav a:focus-visible,.blog-nav a[aria-current=page],.blog-footer a:hover,.blog-footer a:focus-visible,.article-back:hover,.article-back:focus-visible{color:var(--text)}.blog-main{width:100%}.blog-index{padding:0 0 clamp(6rem,10vw,11rem)}.blog-index-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,32rem);align-items:end;gap:2rem;padding-bottom:clamp(2.5rem,5vw,4.5rem)}.blog-index-header h1,.article-header h1,.post-card h2,.prose h2,.prose h3,.prose h4{margin:0;font-family:var(--font-body);font-weight:500;letter-spacing:-.035em;text-wrap:balance}.blog-index-header h1{font-size:clamp(3.5rem,7vw,6.5rem);line-height:.95}.blog-index-header p{max-width:30rem;margin:0 0 .35rem;color:var(--muted-strong);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55}.post-list{margin:0;padding:0;border-top:1px solid color-mix(in srgb,var(--muted) 45%,transparent);list-style:none}.post-list>li{border-bottom:1px solid color-mix(in srgb,var(--muted) 45%,transparent)}.post-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,34%);align-items:center;gap:clamp(2rem,5vw,6rem);min-height:18rem;padding:2rem 0}.post-card-copy{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:clamp(1rem,3vw,3rem);align-items:start}.post-number,.post-card time{margin:0;color:var(--muted);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.post-card h2{margin:.65rem 0 .55rem;font-size:clamp(2.15rem,4vw,4rem);line-height:1.02;transition:color .16s ease}.post-card-copy div>p{max-width:42rem;margin:0;color:var(--muted-strong);line-height:1.55}.post-card-image{width:100%;max-height:15rem;object-fit:cover;filter:saturate(.88);transition:filter .3s ease,transform .35s ease}.post-card:hover,.post-card:focus-visible{text-decoration:none}.post-card:hover h2,.post-card:focus-visible h2{color:var(--accent)}.post-card:hover .post-card-image,.post-card:focus-visible .post-card-image{filter:saturate(1);transform:scale(1.012)}.blog-empty{margin:0;padding:3rem 0;border-top:1px solid color-mix(in srgb,var(--muted) 45%,transparent);border-bottom:1px solid color-mix(in srgb,var(--muted) 45%,transparent);color:var(--muted-strong)}.blog-article{padding:clamp(4rem,9vw,8rem) 0 clamp(6rem,10vw,10rem)}.article-header{width:min(100%,960px);margin:0 auto clamp(3rem,7vw,6rem)}.article-back{display:inline-block;margin-bottom:clamp(4rem,8vw,7rem)}.article-back:before{content:"←";margin-right:.65rem}.article-header h1{max-width:900px;font-size:clamp(3.25rem,6.5vw,6.5rem);line-height:.98}.article-description{max-width:42rem;margin:1.75rem 0 0;color:var(--muted-strong);font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.55}.article-dates{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;max-width:44rem;margin:0 0 1.25rem;color:var(--muted);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.article-cover{width:min(100%,1320px);margin:0 auto clamp(4rem,8vw,8rem)}.article-cover img{width:100%;max-height:82vh;object-fit:cover}.article-cover figcaption,.prose figcaption{margin-top:.75rem;color:var(--muted);font-size:.76rem;letter-spacing:.04em;line-height:1.45}.prose{width:min(100%,720px);margin:0 auto;font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.82}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h2,.prose h3,.prose h4{margin:2.5em 0 .65em;line-height:1.15}.prose h2{font-size:clamp(2rem,3.5vw,2.8rem)}.prose h3{font-size:clamp(1.55rem,2.5vw,2rem)}.prose h4{font-size:clamp(1.2rem,2vw,1.45rem)}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin:1.5em 0}.prose a{text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:.18em}.prose a:hover,.prose a:focus-visible{color:var(--accent);text-decoration-color:currentColor}.prose blockquote{margin-left:0;padding:.2rem 0 .2rem 1.5rem;border-left:1px solid var(--muted-strong);color:var(--muted-strong);font-family:var(--font-display);font-size:1.45em;line-height:1.35}.prose code{padding:.12em .3em;background:var(--loader-base);font-size:.86em}.prose pre{overflow-x:auto;padding:1.25rem;background:var(--loader-base);line-height:1.55}.prose pre code{padding:0;background:none}.prose img{width:auto;height:auto;max-height:85vh;margin:0 auto}.prose figure{margin:2.5rem 0}.prose table{display:block;width:100%;overflow-x:auto;border-collapse:collapse}.prose th,.prose td{padding:.65rem .9rem;border-bottom:1px solid color-mix(in srgb,var(--muted) 45%,transparent);text-align:left}.prose hr{margin:3.5rem 0;border:0;border-top:1px solid color-mix(in srgb,var(--muted) 45%,transparent)}.blog-footer{border-top:1px solid color-mix(in srgb,var(--muted) 32%,transparent);border-bottom:0;color:var(--muted);font-size:.78rem}.blog-footer p{margin:0}.blog-theme-toggle{display:none}@media(max-width:960px){.blog-shell{padding:0 1.25rem}.blog-header{flex-wrap:wrap;gap:1rem 1.5rem;padding:1rem 0}.blog-nav{margin:0 0 0 auto}.blog-theme-toggle{position:static;display:flex;flex:1 0 100%;width:100%;opacity:1}.blog-theme-toggle button{flex:1 1 0;text-align:center}}@media(max-width:720px){.blog-index-header{grid-template-columns:1fr;gap:1.25rem}.article-header h1{font-size:clamp(2.8rem,13vw,4.75rem)}.post-card{grid-template-columns:1fr;min-height:0;padding:2.25rem 0}.post-card-copy{grid-template-columns:2rem minmax(0,1fr)}.post-card-image{max-height:none;order:-1}.article-back{margin-bottom:4rem}.article-cover{width:calc(100% + 2.5rem);margin-left:-1.25rem}.blog-footer{min-height:4.75rem}}.gear-index{padding:0 0 clamp(6rem,10vw,11rem)}.gear-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,32rem);align-items:end;gap:2rem;padding-bottom:clamp(2.5rem,5vw,4.5rem)}.gear-header h1{margin:0;font-family:var(--font-body);font-size:clamp(3.5rem,7vw,6.5rem);font-weight:500;letter-spacing:-.035em;line-height:.95}.gear-header p{max-width:30rem;margin:0 0 .35rem;color:var(--muted-strong);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.55}.gear-content h2{margin:clamp(2.5rem,5vw,4rem) 0 1.5rem;padding-top:clamp(1.5rem,3vw,2.25rem);border-top:1px solid color-mix(in srgb,var(--muted) 45%,transparent);color:var(--muted-strong);font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.gear-content>h2:first-child{margin-top:0;padding-top:0;border-top:0}.gear-content p{max-width:42rem;margin:0 0 1.5rem;color:var(--muted-strong);line-height:1.6}.gear-content ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none}.gear-content li{padding:1.1rem 1.25rem 1.2rem;border:1px solid color-mix(in srgb,var(--muted) 32%,transparent);color:var(--muted-strong);line-height:1.5;transition:border-color .18s ease}.gear-content li:hover{border-color:color-mix(in srgb,var(--muted) 70%,transparent)}.gear-content li p{max-width:none;margin:0}.gear-content li strong{color:var(--text);font-weight:500}.gear-content a{text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:.18em}.gear-content a:hover,.gear-content a:focus-visible{color:var(--accent);text-decoration-color:currentColor}@media(max-width:720px){.gear-header{grid-template-columns:1fr;gap:1.25rem}}@media(prefers-reduced-motion:reduce){.post-card-image,.gear-content li{transition:none}}
