@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600;700;800&family=Press+Start+2P&display=swap";
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.0y1-r_vehenvp.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.10_7676vm7pyy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.0hck6o0i8wq3a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.0gq7fw9.sy_5..woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_90178cf-module__2pLAta__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_90178cf-module__2pLAta__variable{--font-instrument-serif:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a342834df7752944-s.10ev4cu2inrn-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.0i6ci0u~g4zml.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.0x1a9yg0jkq20.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.0dyk20wuvya7a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.0ctuso5mgh_i..woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.0kho-wj7-y-w1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_9f003831-module__HIT9Bq__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_9f003831-module__HIT9Bq__variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root,[data-theme=light]{--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .75vw, 1.5rem);--text-xl:clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);--text-2xl:clamp(2.2rem, 1.4rem + 3vw, 4.75rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--font-display:"Instrument Serif", Georgia, serif;--font-body:"Manrope", system-ui, sans-serif;--color-bg:#f5f0e7;--color-surface:#faf6ef;--color-surface-2:#fffaf3;--color-surface-offset:#ece3d6;--color-border:#2c22141f;--color-divider:#2c221414;--color-text:#241d14;--color-text-muted:#726557;--color-text-faint:#aa9d90;--color-primary:#b66a12;--color-primary-hover:#98560d;--color-primary-soft:#ead6bd;--color-text-inverse:#fff8ee;--shadow-sm:0 1px 2px #2b1f100f;--shadow-md:0 12px 32px #2b1f1014;--radius-sm:.5rem;--radius-md:.8rem;--radius-lg:1.25rem;--radius-full:9999px;--transition-interactive:.18s cubic-bezier(.16, 1, .3, 1);--content-default:1280px;--content-narrow:760px}[data-theme=dark]{--color-bg:#16120e;--color-surface:#1f1a15;--color-surface-2:#262019;--color-surface-offset:#30271d;--color-border:#f4eadb1f;--color-divider:#f4eadb14;--color-text:#f1e8da;--color-text-muted:#baa98f;--color-text-faint:#897a66;--color-primary:#e19a3a;--color-primary-hover:#f0b660;--color-primary-soft:#3a2c1b;--color-text-inverse:#1a140e;--shadow-sm:0 1px 2px #0003;--shadow-md:0 12px 32px #00000059}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);font-size:var(--text-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scrollbar-width:thin;scrollbar-color:var(--color-primary) transparent;margin:0;line-height:1.6}::-webkit-scrollbar-thumb{background:var(--color-primary);opacity:.6;border-radius:99px}::-webkit-scrollbar-thumb:hover{opacity:1}img,svg{max-width:100%;display:block}a{color:inherit;transition:color var(--transition-interactive), background var(--transition-interactive), border-color var(--transition-interactive);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;transition:color var(--transition-interactive), background var(--transition-interactive), border-color var(--transition-interactive), transform var(--transition-interactive);background:0 0;border:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.skip-link{background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-sm);z-index:1000;padding:.75rem 1rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.container{width:min(calc(100% - 4rem), var(--content-default));margin:0 auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--color-bg) 86%, transparent);border-bottom:1px solid var(--color-divider);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:4.5rem;display:flex}.brand{font-size:var(--text-sm);letter-spacing:.02em;align-items:center;gap:.85rem;font-weight:700;display:flex}.brand-mark{width:2.2rem;height:2.2rem;color:var(--color-primary)}.nav-links{font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;gap:clamp(.9rem,2vw,1.5rem);display:flex}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--color-text)}.theme-toggle{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);min-width:44px;min-height:44px;box-shadow:var(--shadow-sm);place-items:center;display:inline-grid}.hero{padding:clamp(var(--space-6), 4vw, var(--space-10)) 0 var(--space-8)}.hero-grid{gap:var(--space-8);padding:0 clamp(var(--space-4), 3vw, var(--space-8));align-items:end;display:grid}.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-primary);margin-bottom:var(--space-4);font-weight:800}.hero h1{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.03em;max-width:11ch;margin:0 0 var(--space-5);line-height:.98}.hero p{max-width:58ch;color:var(--color-text-muted);margin:0 0 var(--space-6)}.hero-actions{gap:var(--space-3);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.btn{border-radius:var(--radius-full);min-height:44px;font-size:var(--text-sm);border:1px solid #0000;justify-content:center;align-items:center;padding:.9rem 1.2rem;font-weight:700;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.btn-secondary:hover{background:var(--color-surface-offset)}.hero-meta{gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--color-divider);grid-template-columns:repeat(3,minmax(0,1fr));max-width:52rem;display:grid}.meta-item span{font-size:var(--text-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.45rem;display:block}.meta-item strong{font-size:var(--text-sm);color:var(--color-text)}.hero-card{background:linear-gradient(180deg, var(--color-surface), var(--color-surface-2));border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:clamp(var(--space-6), 4vw, var(--space-5));box-shadow:var(--shadow-md);flex-direction:column;justify-content:flex-start;height:580px;max-height:80vh;display:flex}.hero-card-top{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.mini-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-faint);margin-bottom:var(--space-2)}.hero-card h2,.section-title,.project-card h3,.about-copy h2,.contact-card h2{font-size:var(--text-xl);line-height:1.08;font-family:var(--font-display);margin:0;font-weight:400}.status-pill{border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.45rem;padding:.5rem .8rem;font-weight:800;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.project-preview{gap:var(--space-4);flex-direction:column;display:flex}.preview-panel{border:1px solid var(--color-border);border-radius:calc(var(--radius-lg) - .4rem);background:var(--color-bg);flex-direction:column;flex:1;display:flex;overflow:visible}.preview-topbar{padding:var(--space-3);border-bottom:1px solid var(--color-divider);background:var(--color-surface);gap:.4rem;display:flex}.preview-topbar span{background:var(--color-text-faint);opacity:.5;border-radius:50%;width:.55rem;height:.55rem}.preview-layout{grid-template-rows:auto auto;grid-template-columns:1fr;min-height:0;display:grid}.preview-main,.preview-side{padding:var(--space-5)}.preview-main{border-right:none;border-bottom:1px solid var(--color-divider);background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--color-primary) 5%, transparent));scrollbar-width:none;overflow-y:auto}.preview-main::-webkit-scrollbar{display:none}.preview-kicker{font-size:var(--text-xs);color:var(--color-primary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--space-4);font-weight:800}.preview-headline{max-width:30ch;margin-bottom:var(--space-4);font-size:clamp(1.85rem,1.5vw,1.6rem);line-height:1.05;font-family:var(--font-display)}.preview-copy{color:var(--color-text-muted);max-width:35ch;margin-bottom:var(--space-3);font-size:var(--text-sm)}.preview-chip-row,.tag-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip,.tag{border-radius:var(--radius-full);font-size:var(--text-xs);border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);padding:.4rem .75rem}.preview-side{gap:var(--space-4);background:color-mix(in srgb, var(--color-surface-offset) 70%, transparent);display:grid}.preview-block{border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-3);min-height:3.5rem}.preview-block strong,.project-card p strong,.contact-card p strong{margin-bottom:.4rem;display:block}.section{padding:clamp(var(--space-12), 8vw, var(--space-20)) 0;border-top:1px solid var(--color-divider)}.section-head{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-8);align-items:end;display:flex}.section-head p,.about-copy p,.project-card p,.contact-card p{color:var(--color-text-muted);max-width:56ch;margin:0}.projects-grid{gap:var(--space-5);display:grid}.project-card{gap:var(--space-5);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);display:grid}.project-visual{border-radius:calc(var(--radius-lg) - var(--space-3));border:1px solid var(--color-border);background:radial-gradient(circle at top left, color-mix(in srgb, var(--color-primary) 22%, transparent), transparent 38%), linear-gradient(180deg, var(--color-surface-2), var(--color-surface-offset));min-height:13rem;padding:var(--space-4);gap:var(--space-3);align-content:start;display:grid}.project-lines{gap:.7rem;display:grid}.project-lines span{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-text) 10%, transparent);height:.7rem;display:block}.project-lines span:first-child{width:58%}.project-lines span:nth-child(2){width:88%}.project-lines span:nth-child(3){width:68%}.about-layout,.contact-layout{gap:var(--space-6);display:grid}.about-copy,.contact-card,.principles{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border)}.principles ul,.contact-list{margin:var(--space-5) 0 0;gap:var(--space-4);padding:0;list-style:none;display:grid}.principles li,.contact-list li{gap:.35rem;display:grid}.principles li span,.contact-list span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint)}.contact-card a.inline-link,.about-copy a.inline-link{color:var(--color-primary);font-weight:700}.site-footer{padding:var(--space-8) 0 var(--space-10);border-top:1px solid var(--color-divider);color:var(--color-text-muted);font-size:var(--text-sm)}.footer-row{justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;display:flex}.fade-in{opacity:1}@supports (animation-timeline:view()){.fade-in{opacity:0;animation:linear both reveal;animation-timeline:view();animation-range:entry entry 35%}@keyframes reveal{to{opacity:1}}}@media (min-width:900px){.hero-grid{gap:clamp(var(--space-10), 6vw, var(--space-20));grid-template-columns:minmax(0,1.1fr) minmax(20rem,.9fr)}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout,.contact-layout{grid-template-columns:1.15fr .85fr;align-items:start}}@media (max-width:720px){.nav{flex-wrap:wrap;padding:.8rem 0}.nav-links{order:3;justify-content:space-between;width:100%;padding-bottom:.3rem}.hero-meta,.preview-layout,.section-head,.footer-row{grid-template-columns:1fr;display:grid}.hero-meta{grid-template-columns:1fr}.preview-main{border-right:none;border-bottom:1px solid var(--color-divider)}}.splash-overlay{z-index:50;background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;display:grid;position:fixed;inset:0}.splash-content{align-items:center;gap:var(--space-6);text-align:center;padding:var(--space-8);flex-direction:column;display:flex}.splash-role{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin:0;font-weight:700}.splash-name{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);margin:0;font-size:clamp(3.5rem,10vw,6.5rem);font-style:italic;line-height:.95}.splash-btn{margin-top:var(--space-2);letter-spacing:.06em;min-width:8rem}body:after{content:"";background:var(--color-bg);z-index:9999;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.4,0,.2,1);position:fixed;inset:0}body.page-transitioning:after{opacity:1;pointer-events:all}.skill-graph-wrapper{height:100vh;position:relative;overflow:hidden}@supports (animation-timeline:scroll()){.skill-graph-wrapper{animation:linear both skill-graph-fade;animation-timeline:view();animation-range:exit exit 40%}@keyframes skill-graph-fade{to{opacity:0;filter:blur(8px)}}}.skill-graph{background-image:linear-gradient(var(--color-divider) 1px, transparent 1px), linear-gradient(90deg, var(--color-divider) 1px, transparent 1px);background-size:52px 52px;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.skill-graph-svg{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.skill-graph-center{z-index:1;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;place-items:center;display:grid;position:relative}.skill-graph-name{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-text);cursor:default;-webkit-user-select:none;user-select:none;pointer-events:auto;font-size:clamp(4rem,12vw,10rem);font-weight:700;line-height:.92;display:block;position:relative}.skill-graph-name:before,.skill-graph-name:after{content:attr(data-text);opacity:0;pointer-events:none;width:100%;height:100%;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;white-space:nowrap;position:absolute;top:0;left:0}.skill-graph-name:hover:before{color:var(--color-primary);clip-path:polygon(0 20%,100% 20%,100% 45%,0 45%);animation:.35s steps(2,end) forwards glitch-1;transform:translate(-3px)}.skill-graph-name:hover:after{color:var(--color-text-muted);clip-path:polygon(0 55%,100% 55%,100% 80%,0 80%);animation:.35s steps(2,end) 50ms forwards glitch-2;transform:translate(3px)}@keyframes glitch-1{0%{opacity:0;transform:translate(0)}20%{opacity:.9;transform:translate(-4px)}40%{opacity:0;transform:translate(2px)}60%{opacity:.8;transform:translate(-2px)}80%{opacity:0;transform:translate(0)}to{opacity:0}}@keyframes glitch-2{0%{opacity:0;transform:translate(0)}20%{opacity:.8;transform:translate(4px)}40%{opacity:0;transform:translate(-2px)}60%{opacity:.7;transform:translate(2px)}80%{opacity:0}to{opacity:0}}.skill-label-anchor{z-index:1;position:absolute;transform:translate(-50%,-50%)}.skill-label{font-family:var(--font-display);font-style:italic;font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;display:block}.skill-graph-pulse{border:1px solid var(--color-primary);opacity:.15;pointer-events:none;z-index:-1;border-radius:50%;width:22rem;height:22rem;animation:4s ease-in-out infinite pulse-ring;position:absolute;top:50%;left:50%}.skill-graph-pulse:after{content:"";border:1px solid var(--color-primary);opacity:.07;border-radius:50%;animation:4s ease-in-out 1.4s infinite pulse-ring-inner;position:absolute;inset:-3rem}@keyframes pulse-ring{0%,to{opacity:.15;transform:translate(-50%,-50%)scale(1)}50%{opacity:.05;transform:translate(-50%,-50%)scale(1.14)}}@keyframes pulse-ring-inner{0%,to{opacity:.07;transform:scale(1)}50%{opacity:.02;transform:scale(1.1)}}.skill-graph-svg,.skill-label-anchor,.site-header{transition:filter .4s,opacity .4s}body[data-name-hover=true] .skill-graph-svg,body[data-name-hover=true] .skill-label-anchor{filter:blur(3px);opacity:.35}body[data-name-hover=true] .site-header{filter:blur(4px);opacity:.5}body[data-name-hover=true] .skill-graph-pulse{opacity:.4;border-width:1.5px;animation-duration:.7s}body[data-name-hover=true] .skill-graph-pulse:after{opacity:.2;animation-duration:.7s}.hero-tabs{border-bottom:1px solid var(--color-divider);margin-bottom:var(--space-6);gap:0;display:flex}.hero-tab{padding:var(--space-3) var(--space-4);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;font-weight:700;transition:color .18s,border-color .18s}.hero-tab:hover{color:var(--color-text-muted)}.hero-tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.hero-tabs-body{flex-direction:column;flex:1;min-height:0;display:flex}.hero-tab-panel{gap:var(--space-4);scrollbar-width:none;flex-direction:column;flex:1;min-height:0;max-height:100%;display:flex;overflow-y:auto}.hero-tab-panel::-webkit-scrollbar{display:none}.hero-photo-wrap{border-radius:var(--radius-lg);border:1px solid var(--color-border);max-height:420px;line-height:0;position:relative;overflow:hidden}.hero-photo{object-fit:cover;object-position:top center;filter:saturate(.9)contrast(1.04);border-radius:var(--radius-lg);width:100%;height:380px;display:block}.hero-photo-vignette{background:linear-gradient(to top, color-mix(in srgb, var(--color-surface) 55%, transparent), transparent);pointer-events:none;border-radius:0 0 var(--radius-lg) var(--radius-lg);height:40%;position:absolute;bottom:0;left:0;right:0}.hero-photo-corners{z-index:2;pointer-events:none;position:absolute;inset:0}.hpc{width:1.1rem;height:1.1rem;position:absolute}.hpc.tl{border-top:1.5px solid var(--color-primary);border-left:1.5px solid var(--color-primary);top:.6rem;left:.6rem}.hpc.tr{border-top:1.5px solid var(--color-primary);border-right:1.5px solid var(--color-primary);top:.6rem;right:.6rem}.hpc.bl{border-bottom:1.5px solid var(--color-primary);border-left:1.5px solid var(--color-primary);bottom:.6rem;left:.6rem}.hpc.br{border-bottom:1.5px solid var(--color-primary);border-right:1.5px solid var(--color-primary);bottom:.6rem;right:.6rem}.hero-profile-meta{padding:0 var(--space-2);flex-direction:column;gap:.3rem;display:flex}.hero-profile-name{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);letter-spacing:-.01em}.hero-profile-role{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full);transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--color-text-faint)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.project-card{transition:box-shadow .3s,transform .2s,border-color .3s}.project-card:hover,.project-card[data-expanded=true]{border-color:color-mix(in srgb, var(--color-primary) 35%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent), 0 8px 32px color-mix(in srgb, var(--color-primary) 12%, transparent), var(--shadow-md);transform:translateY(-2px)}.project-card:hover .project-visual,.project-card[data-expanded=true] .project-visual{background:radial-gradient(circle at top left, color-mix(in srgb, var(--color-primary) 32%, transparent), transparent 52%), linear-gradient(160deg, var(--color-surface-2), var(--color-surface-offset))}.project-visual{position:relative;overflow:hidden}.project-scanline{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-primary) 40%, transparent), transparent);opacity:0;pointer-events:none;z-index:1;height:2px;position:absolute;top:0;left:0;right:0}.project-card:hover .project-scanline{opacity:1;animation:1.8s ease-in-out infinite scanline-sweep}@keyframes scanline-sweep{0%{opacity:0;top:0%}10%{opacity:1}90%{opacity:1}to{opacity:0;top:100%}}.project-card-body{gap:var(--space-2);flex-direction:column;display:flex}.project-card-header{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.project-year{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.08em;white-space:nowrap;font-weight:600}.project-card-expanded{overflow:hidden}.project-card-expanded-inner{border-top:1px solid var(--color-divider);margin-top:var(--space-5);padding-top:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.project-expand-row{gap:var(--space-3);grid-template-columns:8rem 1fr;align-items:baseline;display:grid}.project-expand-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint);font-weight:700}.project-expand-value{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}.project-expand-hint{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.06em;text-align:right;opacity:.6}.project-card{--mouse-x:50%;--mouse-y:50%;transition:box-shadow .3s,transform .2s,border-color .3s;position:relative}.project-card:before{content:"";border-radius:inherit;background:radial-gradient(260px circle at var(--mouse-x) var(--mouse-y), color-mix(in srgb, var(--color-primary) 22%, transparent), transparent 70%);opacity:0;pointer-events:none;z-index:0;transition:opacity .4s;position:absolute;inset:-1px}.project-card:hover:before{opacity:1}.project-card:hover{border-color:color-mix(in srgb, var(--color-primary) 30%, transparent);transform:translateY(-2px)}.project-card>*{z-index:1;position:relative}.project-terminal{padding:var(--space-3) 0;flex-direction:column;gap:.5rem;font-family:Courier New,Courier,monospace;font-size:.78rem;display:flex}.pt-line{opacity:.5;white-space:nowrap;text-overflow:ellipsis;transition:opacity .3s;display:block;overflow:hidden}.project-card:hover .pt-line{opacity:1}.pt-line--cmd{color:var(--color-primary);font-weight:700}.pt-line--ok{color:#4ade80}.pt-line--info{color:var(--color-text-muted)}.pt-line--dim{color:var(--color-text-faint);font-style:italic}.pt-line--cursor{color:var(--color-primary);animation:1.1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.project-github-link{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.04em;align-items:center;gap:.4rem;width:fit-content;font-weight:700;transition:color .18s;display:inline-flex}.project-github-link:hover{color:var(--color-primary)}.project-card:not(:hover):before{transition:opacity .6s .12s}.project-image-wrap{border-radius:calc(var(--radius-lg) - var(--space-3));width:100%;height:100%;min-height:10rem;overflow:hidden}.project-image{object-fit:cover;object-position:top center;filter:saturate(.88)contrast(1.05);width:100%;height:100%;transition:filter .4s,transform .4s;display:block}.project-card:hover .project-image{filter:saturate()contrast();transform:scale(1.02)}.mc-overlay{z-index:100;color:#fff;background-color:#000;background-image:url(/images/Dirt.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;font-family:"Press Start 2P",monospace;display:flex;position:fixed;inset:0}.mc-container{flex-direction:column;width:100%;height:100%;display:flex}.mc-header{padding:1.25rem var(--space-4);z-index:2;justify-content:center;align-items:center;gap:2rem;display:flex;position:relative}.mc-header-title{color:#fff;text-shadow:2px 2px #000;letter-spacing:.08em;font-family:"Press Start 2P",monospace;font-size:.75rem}.mc-footer{padding:1.25rem var(--space-4);z-index:2;justify-content:center;display:flex;position:relative}.mc-content{z-index:1;flex-direction:column;flex:1;align-items:center;padding:2rem 1rem;display:flex;position:relative;overflow-y:auto}.mc-form{flex-direction:column;gap:1.5rem;width:min(100%,400px);display:flex}.mc-form-row{flex-direction:column;gap:.5rem;display:flex}.mc-label{color:#e0e0e0;text-shadow:2px 2px #000;font-size:.6rem}.mc-input{color:#fff;resize:none;background:#000;border:2px solid #8b8b8b;outline:none;width:100%;padding:.75rem;font-family:"Press Start 2P",monospace;font-size:.6rem;line-height:1.6}.mc-input:focus{border-color:#fff}.mc-input::placeholder{color:#555}.mc-textarea{min-height:5rem}.mc-btn-row{gap:1rem;width:min(100%,400px);display:flex}.mc-btn{color:#fff;cursor:pointer;text-shadow:2px 2px #222;text-align:center;background:#747474;border:2px solid #000;flex:1;padding:.8rem;font-family:"Press Start 2P",monospace;font-size:.6rem;box-shadow:inset 2px 2px #a8a8a8,inset -2px -2px #4a4a4a}.mc-btn:hover{filter:brightness(1.2)}.mc-btn:active{background:#747474;box-shadow:inset 2px 2px #4a4a4a,inset -2px -2px #a8a8a8}.mc-loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;width:100%;height:100%;display:flex}.mc-percent{color:#fff;text-shadow:1px 1px #000;letter-spacing:.04em;margin:0;font-family:"Press Start 2P",monospace;font-size:.65rem}.mc-loading-sub{color:#aaa;text-shadow:1px 1px #000;margin:0;font-family:"Press Start 2P",monospace;font-size:.5rem}.mc-world-icon{background:#8b8b8b;justify-content:center;align-items:center;width:160px;height:160px;display:flex;box-shadow:inset 3px 3px #c6c6c6,inset -3px -3px #474747}.mc-world-icon-panel{background:#000;border:4px solid #3a6e27;width:108px;height:108px;position:relative;overflow:hidden;box-shadow:0 0 0 2px #4a90d9}.mc-world-icon-fill{background:#fff;transition:height 80ms linear;position:absolute;bottom:0;left:0;right:0}.mc-done-btn{flex:none;width:200px;max-width:100%;margin-top:1rem;padding:.8rem;font-size:.6rem}.contact-terminal-section{padding-bottom:calc(var(--space-section) * 1.2)}@media (max-width:768px){.contact-terminal-section{padding-left:var(--space-4);padding-right:var(--space-4)}}.contact-terminal{border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface);max-width:680px;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 10%, transparent), 0 24px 48px -12px color-mix(in srgb, var(--color-primary) 6%, transparent);margin:0 auto;overflow:hidden}.ct-topbar{align-items:center;gap:var(--space-3);padding:.65rem var(--space-4);background:color-mix(in srgb, var(--color-text) 4%, transparent);border-bottom:1px solid var(--color-divider);display:flex}.ct-dots{gap:.4rem;display:flex}.ct-dot{border-radius:50%;width:.65rem;height:.65rem}.ct-dot--red{background:#ff5f57}.ct-dot--yellow{background:#febc2e}.ct-dot--green{background:#28c840}.ct-title-bar{text-align:center;font-family:var(--font-mono,"Courier New", monospace);font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.06em;flex:1;margin-right:3.5rem}@media (max-width:640px){.ct-title-bar{text-align:left;margin-right:0}}.ct-body{gap:var(--space-6);padding:var(--space-6);grid-template-columns:1fr auto;align-items:start;display:grid}@media (max-width:768px){.ct-body{padding:var(--space-4);grid-template-columns:1fr;gap:0}}.ct-lines{font-family:var(--font-mono,"Courier New", monospace);flex-direction:column;gap:.55rem;font-size:.82rem;display:flex}.ct-line{opacity:0;margin:0;animation:.4s forwards ct-fadein}.ct-line--delay-0{animation-delay:.2s}.ct-line--delay-1{animation-delay:.7s}.ct-line--delay-2{animation-delay:1.2s}.ct-line--delay-3{animation-delay:1.7s}.ct-line--delay-4{animation-delay:2.3s}@keyframes ct-fadein{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.ct-prompt{color:var(--color-primary);margin-right:.5em;font-weight:700}.ct-cmd{color:var(--color-text)}.ct-ok{color:#28c840;margin-right:.5em;font-weight:700}.ct-muted{color:var(--color-text-faint)}.ct-cursor{color:var(--color-primary);opacity:0;margin-left:.15em;animation:1.1s step-start 2.5s infinite forwards blink;display:inline-block}.ct-cta{align-items:flex-start;gap:var(--space-3);min-width:140px;padding-left:var(--space-4);border-left:1px solid var(--color-divider);flex-direction:column;display:flex}@media (max-width:768px){.ct-cta{border-left:none;border-top:1px solid var(--color-divider);width:100%;min-width:0;margin-top:var(--space-5);padding-left:0;padding-top:var(--space-4)}}.ct-cta-label{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.06em;text-align:left;margin:0;font-weight:600}.ct-connect-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-manrope,inherit);font-size:var(--text-xs);letter-spacing:.05em;cursor:pointer;text-transform:uppercase;border:none;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-weight:700;transition:filter .18s,transform .14s;display:inline-flex}.ct-connect-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.ct-connect-btn:active{filter:brightness(.95);transform:translateY(0)}.ct-connect-icon{opacity:.85;font-size:.5rem}.project-visual[data-discontinued=true]{filter:saturate(.25)contrast(.85);transition:filter .4s}.project-card:hover .project-visual[data-discontinued=true]{filter:saturate(.6)contrast(.95)}.project-visual[data-discontinued=true]:after{content:"";background:linear-gradient(135deg, transparent calc(50% - 1px), color-mix(in srgb, var(--color-text-faint) 35%, transparent) calc(50% - 1px), color-mix(in srgb, var(--color-text-faint) 35%, transparent) calc(50% + 1px), transparent calc(50% + 1px));pointer-events:none;z-index:2;width:100%;height:100%;transition:opacity .4s;position:absolute;top:0;left:0}.project-card:hover .project-visual[data-discontinued=true]:after{opacity:.4}.project-discontinued-stamp{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text-faint) 70%, transparent);border:2px solid color-mix(in srgb, var(--color-text-faint) 40%, transparent);pointer-events:none;z-index:3;white-space:nowrap;padding:.3rem .7rem;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.project-status-badge{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-faint);background:color-mix(in srgb, var(--color-text-faint) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-text-faint) 25%, transparent);border-radius:var(--radius-full);padding:.2rem .6rem;font-weight:700}.pt-line--error{color:#f87171}.ct-social-links{align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-divider);flex-wrap:wrap;width:100%;display:flex}@media (max-width:768px){.ct-social-links{margin-top:var(--space-3);border-top:none;padding-top:0}}.ct-social-link{color:var(--color-text-faint);justify-content:center;align-items:center;transition:color .2s,transform .2s;display:inline-flex}.ct-social-link:hover{color:var(--color-primary);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
