:root{--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--max-w: 1320px;--hero-max-w: 720px;--bg: oklch(100% 0 0);--bg-soft: oklch(98.5% 0 0);--fg: oklch(20.5% 0 0);--fg-muted: oklch(45% 0 0);--fg-faint: oklch(62% 0 0);--border: oklch(92.2% 0 0);--border-strong: oklch(85% 0 0);--ring: oklch(70% 0 0 / .4);--overlay: color-mix(in oklab, oklch(100% 0 0) 85%, transparent)}[data-theme=dark]{--bg: oklch(14.5% 0 0);--bg-soft: oklch(20.5% 0 0);--fg: oklch(98.5% 0 0);--fg-muted: oklch(72% 0 0);--fg-faint: oklch(55% 0 0);--border: oklch(100% 0 0 / .1);--border-strong: oklch(100% 0 0 / .2);--ring: oklch(80% 0 0 / .4);--overlay: color-mix(in oklab, oklch(0% 0 0) 75%, transparent)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{color-scheme:light dark}[data-theme=dark]{color-scheme:dark}[data-theme=light]{color-scheme:light}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);line-height:1.5;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-weight:400}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}img{max-width:100%;height:auto;display:block}code{font-family:var(--font-mono);font-size:.88em}h1,h2,h3,h4{font-family:var(--font-sans);font-weight:300;margin:0 0 .5em;line-height:1.1;letter-spacing:-.01em}h1{font-size:clamp(2rem,4vw,3.25rem);font-weight:300}h2{font-size:1.65rem}h3{font-size:1.2rem}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.site-header-inner{max-width:var(--max-w);margin:0 auto;padding:.85rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.brand{font-family:var(--font-sans);font-weight:500;font-size:1.18rem;letter-spacing:.02em}.brand:hover{text-decoration:none;opacity:.7}.site-header nav{display:flex;align-items:center;gap:1.25rem;font-size:.88rem}.site-header nav a{color:var(--fg-muted)}.site-header nav a:hover{color:var(--fg);text-decoration:none}.theme-toggle{background:none;border:1px solid var(--border);border-radius:999px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg)}.theme-toggle:hover{border-color:var(--border-strong)}[data-theme=light] .icon-moon,[data-theme=dark] .icon-sun{display:none}main{max-width:var(--max-w);margin:0 auto;padding:1.5rem}.site-footer{max-width:var(--max-w);margin:5rem auto 0;padding:1.5rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--fg-muted)}.site-footer p{margin:0 0 .5rem;max-width:60ch}.site-footer .fine{font-size:.76rem;color:var(--fg-faint)}.site-footer a{text-decoration:underline;text-decoration-color:color-mix(in oklab,currentColor 30%,transparent)}.img-fallback{width:100%;min-height:160px;background:var(--bg-soft);color:var(--fg-faint);font-size:.8rem;text-align:center;padding:1rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}.save-artwork-btn{border:1px solid var(--border-strong);background:color-mix(in oklab,var(--bg) 86%,transparent);color:var(--fg-muted);border-radius:999px;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:inherit;font-size:.88rem;cursor:pointer;backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px)}.save-artwork-btn svg{fill:none;stroke:currentColor;stroke-width:1.8;pointer-events:none}.save-artwork-btn:hover,.save-artwork-btn:focus-visible{color:var(--fg);border-color:var(--fg)}.save-artwork-btn.is-saved{color:var(--fg);background:var(--fg);border-color:var(--fg)}.save-artwork-btn.is-saved svg{color:var(--bg);fill:var(--bg)}.tile-save{position:absolute;top:.55rem;right:.55rem;z-index:4;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease}.tile-shell:hover .tile-save,.tile:focus-visible+.tile-save,.tile-save:focus-visible,.tile-save.is-saved{opacity:1;transform:translateY(0)}@media(hover:none){.tile-save{opacity:1;transform:none}}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
