:root{--bg:oklch(98% .005 250);--surface:oklch(100% 0 0);--fg:oklch(22% .02 240);--muted:oklch(50% .018 240);--border:oklch(90% .008 240);--accent:oklch(58% .16 145);--accent-soft:color-mix(in oklch, var(--accent) 14%, transparent);--fg-soft:color-mix(in oklch, var(--fg) 6%, transparent);--accent-strong:color-mix(in oklch, var(--accent) 72%, black);--font-display:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", ui-monospace, Menlo, monospace;--fs-h1:clamp(40px, 5.4vw, 68px);--fs-h2:clamp(28px, 3.6vw, 44px);--fs-h3:21px;--fs-lead:18px;--fs-body:16px;--fs-meta:13px;--gap-xs:8px;--gap-sm:12px;--gap-md:20px;--gap-lg:32px;--gap-xl:56px;--gap-2xl:96px;--container:1120px;--gutter:32px;--radius:8px;--radius-lg:12px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}p{text-wrap:pretty}h1,h2,h3,h4{text-wrap:balance}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.container{max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(48px, 8vw, var(--gap-2xl))}.section+.section{border-top:1px solid var(--border)}.stack{flex-direction:column;display:flex}.stack>*+*{margin-top:var(--gap-md)}.row{align-items:center;gap:var(--gap-md);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--gap-md);display:flex}.grid-2{gap:var(--gap-lg);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--gap-lg);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--gap-md);grid-template-columns:repeat(4,1fr);display:grid}.grid-2-1{gap:var(--gap-xl);grid-template-columns:2fr 1fr;align-items:start;display:grid}.grid-1-2{gap:var(--gap-xl);grid-template-columns:1fr 2fr;align-items:start;display:grid}@media (width<=920px){.grid-2,.grid-3,.grid-4,.grid-2-1,.grid-1-2{grid-template-columns:1fr}}.h1,h1{font-family:var(--font-display);font-size:var(--fs-h1);letter-spacing:-.01em;margin:0;line-height:1.12}.h2,h2{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.015em;margin:0;line-height:1.12}.h3,h3{font-size:var(--fs-h3);letter-spacing:-.005em;margin:0;font-weight:600;line-height:1.3}.lead{font-size:var(--fs-lead);color:var(--muted);max-width:60ch;margin:0;line-height:1.6}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 var(--gap-md);font-size:12px}.meta{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--muted)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.topnav{z-index:10;background:color-mix(in oklch, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.topnav-inner{justify-content:space-between;align-items:center;gap:var(--gap-md);padding-block:12px;display:flex}.topnav .logo{font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap;font-size:17px;font-weight:600}.topnav nav{gap:var(--gap-lg);display:flex}.topnav nav a{color:var(--muted);align-items:center;min-height:44px;padding:10px 2px;font-size:14px;transition:color .15s;display:inline-flex}.topnav nav a:hover{color:var(--fg)}.topnav nav a[aria-current=page]{color:var(--fg);box-shadow:inset 0 -2px 0 var(--fg);font-weight:600}.pagefoot{padding-block:var(--gap-xl);color:var(--muted);border-top:1px solid var(--border);font-size:13px}.pagefoot .row-between{gap:var(--gap-md);flex-wrap:wrap}.btn{border-radius:var(--radius);letter-spacing:-.005em;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 20px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent-strong);color:var(--surface);border-color:var(--accent-strong)}.btn-primary:hover{background:color-mix(in oklch, var(--accent) 58%, black);border-color:color-mix(in oklch, var(--accent) 58%, black)}.btn-secondary{color:var(--fg);border-color:var(--border);background:0 0}.btn-secondary:hover{border-color:var(--fg)}.btn-ghost{color:var(--fg);background:0 0;border-color:#0000;padding-inline:8px}.btn-ghost:hover{color:var(--accent-strong)}.btn-arrow:after{content:"→";transition:transform .15s}.btn-arrow:hover:after{transform:translate(3px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px}.card-flat{background:0 0;border:0;padding:0}.feature .feature-mark{border:1px solid var(--border);width:36px;height:36px;color:var(--fg);margin-bottom:var(--gap-md);border-radius:8px;place-items:center;display:grid}.feature .feature-mark svg{width:18px;height:18px}.feature h3{margin-bottom:6px}.feature p{color:var(--muted);margin:0;font-size:15px}.log-row{gap:var(--gap-lg);border-top:1px solid var(--border);grid-template-columns:120px 1fr 100px;align-items:baseline;padding:22px 0;display:grid}.log-row .meta{color:var(--muted)}.log-row h3{font-size:19px}.log-row .pull{text-align:right}.pill{background:var(--accent-soft);color:var(--accent-strong);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.tag{background:var(--fg-soft);color:var(--fg);border:1px solid color-mix(in oklch, var(--fg) 22%, transparent);font-family:var(--font-mono);border-radius:999px;align-items:center;padding:5px 11px;font-size:12px;transition:border-color .15s,color .15s,background-color .15s;display:inline-flex}.tag:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.tag--strong{background:color-mix(in oklch, var(--accent) 16%, transparent);border-color:color-mix(in oklch, var(--accent) 45%, transparent);color:var(--accent-strong)}.tag--mid{background:var(--fg-soft);border-color:color-mix(in oklch, var(--fg) 30%, transparent);color:var(--fg)}.tag--soft{border-color:color-mix(in oklch, var(--fg) 16%, transparent);color:var(--muted);background:0 0}.hero{padding-block:clamp(72px,11vw,150px)}.hero-center{text-align:center;max-width:760px;margin-inline:auto}.hero h1{margin-bottom:var(--gap-md)}.hero .lead{margin-bottom:var(--gap-lg)}.hero-cta{gap:var(--gap-sm);flex-wrap:wrap;display:inline-flex}.hero-center .hero-cta{justify-content:center}.hero-split{gap:var(--gap-2xl);grid-template-columns:1fr 1fr;align-items:center;display:grid}@media (width<=920px){.hero-split{grid-template-columns:1fr}}.status-dot{background:var(--accent-strong);border-radius:50%;flex:none;width:8px;height:8px;animation:2.2s ease-out infinite status-pulse}@keyframes status-pulse{0%{box-shadow:0 0 0 0 color-mix(in oklch, var(--accent) 45%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.status-dot{animation:none}}.ph-img{background:linear-gradient(135deg, var(--accent-soft), var(--fg-soft)), var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);aspect-ratio:16/10;color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-align:center;place-items:center;padding:8px;font-size:12px;display:grid}.ph-img.square{aspect-ratio:1}.ph-img.portrait{aspect-ratio:3/4}.ph-img.wide{aspect-ratio:16/9}.project-card{padding:0;transition:border-color .2s,transform .3s;overflow:hidden}.project-card:hover{border-color:var(--fg);transform:translateY(-4px)}.project-card .ph-img{border:0;border-bottom:1px solid var(--border);border-radius:0}.project-card .card-body{padding:22px 24px 26px}.rule{border:0;border-top:1px solid var(--border);margin:0}.rule-strong{border:0;border-top:1px solid var(--fg);margin:0}.cursor-dot,.cursor-ring{z-index:200;pointer-events:none;border-radius:50%;display:none;position:fixed;top:0;left:0}.cursor-dot{background:var(--fg);width:6px;height:6px}.cursor-ring{border:1px solid color-mix(in oklch, var(--fg) 45%, transparent);width:30px;height:30px;transition:border-color .2s,background-color .2s}.cursor-ring.ring-hot{border-color:var(--accent);background-color:var(--accent-soft)}html.cursor-on body,html.cursor-on a,html.cursor-on button{cursor:none}html.cursor-on .cursor-dot,html.cursor-on .cursor-ring{display:block}@media (width<=920px){:root{--gutter:20px}.topnav nav{gap:14px}.topnav nav a{font-size:13px}.topnav .logo{font-size:15px}.btn{padding:10px 14px;font-size:14px}.log-row{grid-template-columns:84px 1fr}.log-row .pull{text-align:left;grid-column:2}}@media (width<=480px){.topnav nav{gap:8px}.hero-cta{width:100%}.hero-cta .btn{flex:auto}}.content-img{border-radius:var(--radius-lg);width:100%;height:auto}.project-card .content-img{border-bottom:1px solid var(--border);border-radius:0}.center-state{text-align:center;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-meta)}.error-state{color:var(--fg);border:1px solid var(--border);border-left:3px solid var(--accent-strong);border-radius:var(--radius);background:var(--surface);padding:14px 18px;font-size:15px}.prose{max-width:68ch}.prose p{margin:0 0 var(--gap-md);color:var(--fg)}.prose h3{margin:var(--gap-lg) 0 var(--gap-sm)}.prose ul{margin:0 0 var(--gap-md);color:var(--fg);padding-left:1.25em}.prose li{margin-bottom:6px}.prose code{font-family:var(--font-mono);background:var(--fg-soft);border-radius:4px;padding:2px 6px;font-size:.9em}.level{align-items:center;gap:10px;margin-top:16px;display:flex}.level__track{background:color-mix(in oklch, var(--fg) 10%, transparent);border-radius:999px;flex:1;height:4px;overflow:hidden}.level__fill{background:var(--accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block}@media (prefers-reduced-motion:reduce){.level__fill{transition:none}}.level__num{color:var(--muted);text-align:right;min-width:2ch;font-size:12px}.field{font:inherit;min-height:44px;color:var(--fg);background:var(--surface);border:1px solid color-mix(in oklch, var(--fg) 22%, transparent);border-radius:var(--radius);padding:10px 14px;font-size:15px;transition:border-color .15s}.field:hover{border-color:color-mix(in oklch, var(--fg) 38%, transparent)}.field:focus-visible{border-color:var(--accent)}.dropzone{text-align:center;background:var(--surface);border:1.5px dashed color-mix(in oklch, var(--fg) 28%, transparent);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;transition:border-color .15s,background-color .15s;display:flex}.dropzone--over{border-color:var(--accent);background:var(--accent-soft)}.filegrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.filecard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin:0;overflow:hidden}.filecard img{aspect-ratio:1;object-fit:cover;background:var(--fg-soft);width:100%;display:block}.filecard figcaption{padding:10px 12px 12px}.filecard__name{font-family:var(--font-mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.filecard .tag{cursor:pointer}.admin-login{max-width:460px;padding-block:clamp(48px,10vw,120px)}.admin{padding-block:40px 80px}.admin__header{justify-content:space-between;align-items:flex-start;gap:var(--gap-md);border-bottom:1px solid var(--border);padding-bottom:24px;display:flex}.admin__tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:24px;padding-block:16px;display:flex;overflow-x:auto}.admin__tab{border-radius:var(--radius);min-height:40px;color:var(--muted);background:0 0;border:1px solid #0000;flex:none;padding:9px 16px;font-size:14px;transition:color .15s,background-color .15s,border-color .15s}.admin__tab:hover{color:var(--fg);background:var(--fg-soft)}.admin__tab--active{color:var(--accent-strong);border-color:color-mix(in oklch, var(--accent) 45%, transparent);background:var(--accent-soft);font-weight:600}.admin__body{min-height:40vh}a.project-card{display:block}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
