:root{--font-display: "Newsreader", Georgia, "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--focus-ring: 0 0 0 2px var(--bg-primary), 0 0 0 4px var(--text-secondary)}:root{--bg-primary: #ffffff;--bg-secondary: #f7f7f7;--bg-tertiary: #efefef;--text-primary: #0d0d0d;--text-secondary: #555555;--text-muted: #888888;--accent: #0d0d0d;--accent-hover: #333333;--accent-subtle: rgba(0, 0, 0, .04);--border: #e5e5e5;--border-subtle: #f0f0f0;--code-bg: #fafafa;--code-text: #383a42;--selection-bg: #0d0d0d;--selection-text: #ffffff;--header-bg: rgba(255, 255, 255, .95);--skeleton-base: var(--bg-secondary);--skeleton-shine: var(--bg-tertiary);--pen: #c23b2a}[data-theme=ink]{--bg-primary: #0d0d0d;--bg-secondary: #171717;--bg-tertiary: #222222;--text-primary: #e5e5e5;--text-secondary: #a0a0a0;--text-muted: #666666;--accent: #e5e5e5;--accent-hover: #cccccc;--accent-subtle: rgba(255, 255, 255, .06);--border: #2a2a2a;--border-subtle: #1f1f1f;--code-bg: #060606;--code-text: #e5e5e5;--selection-bg: #e5e5e5;--selection-text: #0d0d0d;--header-bg: rgba(13, 13, 13, .95);--skeleton-base: var(--bg-secondary);--skeleton-shine: var(--bg-tertiary);--pen: #e8705e}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--selection-bg);color:var(--selection-text)}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;transition:background-color .3s ease,color .3s ease}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}.layout{min-height:100vh;display:flex;flex-direction:column}.header{border-bottom:1px solid var(--border);background-color:var(--header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;transition:background-color .3s ease,border-color .3s ease}.header-content{max-width:1280px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-ui);font-size:1.15rem;font-weight:700;color:var(--text-primary);text-decoration:none;transition:color .2s ease}.logo:hover{color:var(--text-secondary)}.nav{display:flex;align-items:center;gap:1.5rem}.nav-link{font-family:var(--font-ui);color:var(--text-secondary);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s ease}.nav-link:hover{color:var(--text-primary)}.main{flex:1;max-width:1280px;width:100%;margin:0 auto;padding:3rem 2rem}.footer{border-top:1px solid var(--border);background-color:transparent;padding:2rem 2rem 2.5rem;margin-top:auto}.footer-content{max-width:1280px;margin:0 auto;display:flex;justify-content:center;align-items:center;gap:1.5rem;color:var(--text-muted);font-family:var(--font-ui);font-size:.8rem}.footer-content a{color:var(--text-secondary);transition:color .2s ease}.footer-content a:hover{color:var(--text-primary)}.footer-links{display:flex;gap:1rem}.theme-toggle{background:none;border:1px solid var(--border);border-radius:6px;padding:.5rem;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.theme-toggle:hover{color:var(--text-primary);border-color:var(--text-muted)}.home{display:flex;flex-direction:column;gap:2rem}.hero{text-align:left;padding:2rem 0 0;display:flex;flex-direction:column;gap:.75rem}.hero h1{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:400;line-height:1.1;color:var(--text-primary)}.hero-subtitle{font-family:var(--font-body);font-size:1.05rem;color:var(--text-secondary);line-height:1.5;font-style:italic}.section-divider{border:none;border-top:1px solid var(--border);margin:0}.section-subheading{font-family:var(--font-display);font-size:1.75rem;font-weight:400;color:var(--text-primary);margin:0}.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.post-list-empty{text-align:center;padding:3rem;color:var(--text-muted);font-family:var(--font-body);grid-column:1 / -1}.post-list-empty code{background:var(--bg-tertiary);padding:.2rem .4rem;border-radius:4px;font-family:var(--font-mono);font-size:.875rem}.post-card{background:transparent;border:none;border-radius:12px;overflow:hidden;animation:fadeInUp .5s ease both;padding:.5rem}.post-card:nth-child(1){animation-delay:0s}.post-card:nth-child(2){animation-delay:.05s}.post-card:nth-child(3){animation-delay:.1s}.post-card:nth-child(4){animation-delay:.15s}.post-card:nth-child(5){animation-delay:.2s}.post-card:nth-child(6){animation-delay:.25s}.post-card:nth-child(7){animation-delay:.3s}.post-card:nth-child(8){animation-delay:.35s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.post-card-link{display:block;text-decoration:none;color:inherit}.post-card-image{aspect-ratio:16 / 10;border-radius:10px;margin-bottom:1rem;transition:transform .25s ease;position:relative;overflow:hidden}.post-card-illustration{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.post-card-link:hover .post-card-image{transform:scale(1.02)}.post-card-title{font-family:var(--font-display);font-size:1.15rem;font-weight:500;margin-bottom:.4rem;color:var(--text-primary);line-height:1.35;transition:color .2s ease}.post-card-link:hover .post-card-title{color:var(--text-secondary)}.post-card-description{font-family:var(--font-body);color:var(--text-secondary);margin-bottom:.5rem;line-height:1.5;font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card-meta{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-family:var(--font-ui);font-size:.8rem}.skeleton-card{animation:fadeInUp .5s ease both}.skeleton-card .post-card-image{background:var(--skeleton-base)}.skeleton-title{height:1.2rem;width:80%;border-radius:4px;margin-bottom:.5rem}.skeleton-description{height:.9rem;width:100%;border-radius:4px;margin-bottom:.5rem}.skeleton-meta{height:.75rem;width:50%;border-radius:4px}.skeleton-shimmer{background:linear-gradient(90deg,var(--skeleton-base) 0%,var(--skeleton-shine) 40%,var(--skeleton-base) 80%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.post-page{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary);text-decoration:none;font-family:var(--font-ui);font-size:.9rem;font-weight:500;transition:color .2s ease}.back-link:hover{color:var(--text-primary)}.error-page{text-align:center;padding:3rem}.error-page h1{font-family:var(--font-display);font-size:1.5rem;margin-bottom:.5rem}.error-page p{color:var(--text-secondary);margin-bottom:1rem}.home-link{color:var(--accent)}.reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:1000;transition:width .1s linear}.post-hero-banner{border-radius:12px;overflow:hidden;position:relative;aspect-ratio:16 / 9;margin-left:-3rem;margin-right:-3rem}.post-hero-illustration{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.blog-post{display:flex;flex-direction:column;gap:2rem}.blog-post-header{display:flex;flex-direction:column;gap:.75rem}.blog-post-title{font-family:var(--font-display);font-size:2.5rem;font-weight:700;line-height:1.2}.blog-post-meta{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-family:var(--font-ui);font-size:.85rem}.blog-post-separator{color:var(--text-muted)}.blog-post-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-post-tag{background:var(--accent-subtle);color:var(--text-secondary);padding:.25rem .75rem;border-radius:3px;font-family:var(--font-ui);font-size:.75rem;font-weight:500}.blog-post-content{font-family:var(--font-body);font-size:1.1rem;line-height:1.8}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{font-family:var(--font-display);margin-top:2.5rem;margin-bottom:1rem;font-weight:600;line-height:1.3}.blog-post-content h2{font-size:1.6rem}.blog-post-content h3{font-size:1.3rem}.blog-post-content p{margin-bottom:1.25rem}.blog-post-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;transition:color .2s ease}.blog-post-content a:hover{color:var(--accent-hover)}.blog-post-content ul,.blog-post-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.blog-post-content li{margin-bottom:.5rem}.blog-post-content blockquote{border-left:3px solid var(--border);background:var(--accent-subtle);padding:1.25rem 1.5rem;margin:2rem 0;border-radius:0 4px 4px 0;color:var(--text-secondary);font-style:italic;font-size:1.1rem;line-height:1.7}.blog-post-content blockquote p{margin-bottom:0}.blog-post-content blockquote p+p{margin-top:.75rem}.blog-post-content img{max-width:100%;height:auto;border-radius:4px;margin:1.5rem 0}.blog-post-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.blog-post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0}.blog-post-content th,.blog-post-content td{border:1px solid var(--border);padding:.75rem;text-align:left}.blog-post-content th{background:var(--bg-secondary);font-weight:600;font-family:var(--font-ui);font-size:.85rem}.blog-post-content aside.margin{font-family:var(--font-display);font-style:italic;font-size:.92rem;line-height:1.5;color:var(--text-secondary);border-left:2px solid var(--border);padding:.1rem 0 .1rem .9rem;margin:0 0 1.25rem 1.5rem}.blog-post-content aside.margin.ben{color:var(--pen);border-left-color:var(--pen)}.blog-post-content aside.margin.ben:before{content:"Ben: ";font-style:normal;font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.blog-post-content aside.margin.later:before{content:"Looking back\a" attr(data-when);white-space:pre-line;display:block;margin-bottom:.2rem;font-style:normal;font-family:var(--font-ui);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}@media(min-width:1280px){.blog-post-content aside.margin{float:right;clear:right;width:200px;margin:.35rem -240px 1rem 0;padding-left:.75rem}}.blog-post-content del{color:var(--text-muted);text-decoration-line:line-through;text-decoration-thickness:.09em;text-decoration-color:var(--text-secondary)}.blog-post-content details{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:2rem 0;padding:.75rem 0}.blog-post-content summary{cursor:pointer;list-style:none;font-family:var(--font-ui);font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.blog-post-content summary::-webkit-details-marker{display:none}.blog-post-content summary:before{content:"+";display:inline-block;width:1.25rem;font-weight:400}.blog-post-content details[open] summary:before{content:"−"}.blog-post-content details[open] summary{margin-bottom:1rem}.blog-post-content details>:last-child{margin-bottom:0}.blog-post-content .figure{margin:2rem 0}.blog-post-content .figure img{display:block;width:100%;margin:0;border-radius:8px}.blog-post-content img.theme-ink,[data-theme=ink] .blog-post-content img.theme-paper{display:none}[data-theme=ink] .blog-post-content img.theme-ink{display:block}.inline-code{background:var(--bg-tertiary);padding:.15rem .4rem;border-radius:3px;font-family:var(--font-mono);font-size:.88em}.code-block{border-radius:6px!important;margin:1.5rem 0!important;font-size:.88rem!important;font-family:var(--font-mono)!important;border:1px solid var(--border)!important}.fade-in-section{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.fade-in-section.is-visible{opacity:1;transform:translateY(0)}.stats-page{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.stats-page h1{font-family:var(--font-display);font-size:2.5rem;font-weight:700}.stats-description{color:var(--text-secondary);font-style:italic;margin-top:-1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:6px;padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:border-color .2s ease}.stat-card:hover{border-color:var(--text-muted)}.stat-icon{color:var(--text-secondary)}.stat-content{display:flex;flex-direction:column}.stat-value{font-family:var(--font-display);font-size:1.75rem;font-weight:700}.stat-label{font-family:var(--font-ui);font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.stats-section{display:flex;flex-direction:column;gap:1rem}.stats-section h2{font-family:var(--font-display);font-size:1.35rem;font-weight:600}.stats-table{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.stats-table-header{display:flex;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-tertiary);font-family:var(--font-ui);font-weight:600;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.stats-table-row{display:flex;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--border-subtle)}.stats-path{font-family:var(--font-mono);font-size:.85rem}.stats-count{font-weight:500}.stats-footer{color:var(--text-muted);font-family:var(--font-ui);font-size:.8rem;text-align:center}.loading{text-align:center;padding:2rem;color:var(--text-muted);font-family:var(--font-body);font-style:italic}.error{text-align:center;padding:2rem;color:#dc3545}@media(max-width:800px){.post-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.header-content{flex-direction:column;gap:1rem}.nav{flex-wrap:wrap;justify-content:center;gap:1rem}.hero h1{font-size:2.5rem}.blog-post-title{font-size:2rem}.footer-content{flex-direction:column;gap:1rem;text-align:center}.stats-grid{grid-template-columns:1fr}.stats-page h1{font-size:2rem}.post-hero-banner{border-radius:8px;margin-left:-1rem;margin-right:-1rem}}@media(max-width:500px){.post-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fade-in-section{opacity:1;transform:none}.reading-progress{transition:none}.skeleton-shimmer{animation:none;background:var(--skeleton-base)}}.art-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.post-card-image,.post-hero-banner{background:#f8f6f1}[data-theme=ink] .post-card-image,[data-theme=ink] .post-hero-banner{background:#121212}.studio-page{display:flex;flex-direction:column;gap:2.5rem}.studio-header{display:flex;flex-direction:column;gap:.75rem;padding-top:1rem}.studio-title{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:400;line-height:1.1;color:var(--text-primary)}.studio-intro{max-width:34rem;font-family:var(--font-body);font-size:1.05rem;line-height:1.6;color:var(--text-secondary)}.studio-empty{font-family:var(--font-body);color:var(--text-muted)}.studio-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem 2.5rem;align-items:start}.studio-frame{display:flex;flex-direction:column;gap:.25rem;min-width:0;color:inherit;text-decoration:none}.studio-mat{padding:1.25rem;margin-bottom:.75rem;background:var(--bg-secondary);border:1px solid var(--border);transition:border-color .2s ease}.studio-frame:hover .studio-mat{border-color:var(--text-muted)}.studio-frame:focus-visible{outline:none;box-shadow:var(--focus-ring)}.studio-caption-title{font-family:var(--font-display);font-size:1.3rem;font-weight:400;line-height:1.25;color:var(--text-primary)}.studio-caption-date{font-family:var(--font-ui);font-size:.8rem;color:var(--text-muted)}.painting-canvas{width:100%}.painting-canvas canvas{display:block;width:100%;margin:0 auto;box-shadow:0 1px 3px #0000002e}.studio-painting-page{display:flex;flex-direction:column;gap:1.5rem}.studio-painting-page .post-page{width:100%}.studio-hero{width:100%;max-width:1100px;margin:0 auto}.studio-details{margin-top:1rem}.studio-details .blog-post-meta{flex-wrap:wrap}.studio-details .blog-post-meta time{white-space:nowrap}@media(max-width:1000px){.studio-wall{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.studio-wall{grid-template-columns:1fr}.studio-mat{padding:.875rem}.studio-details .blog-post-meta{flex-direction:column;align-items:flex-start;gap:.15rem}.studio-details .blog-post-separator{display:none}}
