@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/dbbdd2d89d2ef0ef-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a06229eb79a83cfc-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c9e224327ce7933e-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d85064eaed4b8683-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db234bd00cda6a96-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Press Start\ 2P Fallback;src:local("Arial");ascent-override:44.58%;descent-override:0.00%;line-gap-override:0.00%;size-adjust:224.32%}.__className_ee06cb{font-family:Press Start\ 2P,Press Start\ 2P Fallback;font-weight:400;font-style:normal}.__variable_ee06cb{--font-pixel:"Press Start 2P","Press Start 2P Fallback"}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_c219ed{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_c219ed{--font-grotesk:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}:root{color-scheme:only light;--yellow:#ffff00;--green:#29d487;--purple:#c654e7;--magenta:#e92681;--pink:#ff00ff;--red:#ff1d25;--blue:#3fa9f5;--ink:#000;--paper:#fff9e6;--shade:var(--yellow);--border:3px solid var(--ink);--shadow:5px 5px 0 var(--shade);--font-display:var(--font-pixel),"Courier New",monospace;--font-body:var(--font-grotesk),system-ui,sans-serif;--font-primary:var(--font-inter),sans-serif;--cursor-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10' shape-rendering='geometricPrecision'%3E%3Cpath d='M1 1 L1 9.5 L9 7.5 Z' fill='%23F0438F' stroke='%23FFFF00' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E")}::selection{background:var(--magenta);color:var(--yellow)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--ink);color:var(--paper);font-family:var(--font-body);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:none;min-height:100vh;display:flex;flex-direction:column}main{flex:1 1}h1,h2,h3{font-family:var(--font-display);font-weight:400}a{color:inherit}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}dialog.contact :focus-visible{outline-color:var(--ink)}.wrap{max-width:min(1440px,94vw);margin:0 auto;padding:0 1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{border-bottom:1px solid rgb(255 255 0/.25);background:var(--ink);position:-webkit-sticky;position:sticky;top:0;z-index:20}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:1rem}.logo{font-family:var(--font-primary);color:var(--yellow);font-size:2rem;font-weight:800;text-decoration:none;letter-spacing:2px}.nav{display:flex;align-items:center;gap:1.5rem;color:var(--paper)}.nav a{font-family:var(--font-primary);font-size:.9rem;font-weight:600;text-decoration:none;--accent:var(--yellow);transition:color .15s}.nav a[href="/"]{--accent:var(--blue)}.nav a[href="/about"]{--accent:var(--red)}.nav a[href="/projects"]{--accent:var(--green)}.nav a:hover:not([aria-current]){color:var(--accent)}.nav a:focus-visible{color:var(--accent);outline:3px solid var(--accent);outline-offset:4px}.nav button{font-family:var(--font-primary);font-size:1rem;font-weight:600;text-decoration:none;background:var(--yellow);box-shadow:none;border-radius:999px;padding:.6rem 1.1rem}.nav button:hover{background:var(--magenta);color:var(--yellow);box-shadow:none;transform:translate(1px,1px)}.nav a[aria-current=page]{color:var(--accent);text-decoration:none}.menu-toggle{display:none}.btn{font-family:var(--font-display);font-size:.75rem;font-weight:400;line-height:1.4;background:var(--green);color:var(--ink);border:var(--border);box-shadow:var(--shadow);padding:.65rem 1.1rem;text-decoration:none;display:inline-block}.btn:hover{background:var(--magenta);color:var(--yellow);transform:translate(2px,2px);box-shadow:3px 3px 0 var(--shade)}.btn:active{transform:translate(5px,5px);box-shadow:0 0 0 var(--shade)}@media (max-width:720px){.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;background:transparent;border:1px solid var(--paper);border-radius:999px}.menu-toggle span{display:block;height:3px;background:var(--paper);transition:transform .2s ease,opacity .2s ease}.menu-toggle.open span:first-child{transform:translateY(8px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--ink);border-bottom:1px solid var(--yellow);padding:1.25rem}.nav.open{display:flex}.site-header .wrap{max-width:none;width:100%;margin:0;padding:0 max(1.25rem,env(safe-area-inset-left)) 0 max(1.25rem,env(safe-area-inset-right))}}.home-hero{padding:0}.home-hero img{width:100%;height:auto;display:block}.page-head{padding:3rem 0 2rem}.page-head h1{font-family:var(--font-display);font-size:clamp(1.5rem,4.5vw,2.5rem);line-height:1.25;margin:0 0 1rem}.page-head p{max-width:36rem;margin:0}.tag{display:inline-block;background:var(--purple);color:var(--yellow);font-family:var(--font-display);font-size:.65rem;font-weight:400;padding:4px 10px;margin-bottom:1rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.75rem;gap:1.75rem;padding-bottom:4rem}.card{display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border:3px solid var(--card-shadow,var(--shade));border-radius:20px;overflow:hidden;text-decoration:none;transition:transform .3s ease-out}.card:focus-visible,.card:hover{transform:translateY(-8px)}.card:active{transform:translateY(-2px)}.card .thumb{aspect-ratio:4/5;border-bottom:3px solid var(--card-shadow,var(--shade));display:grid;place-items:center;padding:1rem;text-align:center;font-family:var(--font-display);font-size:.9rem;line-height:1.4;overflow:hidden;word-break:break-word}.card .thumb.has-img{position:relative;padding:0}.card .thumb.has-img img{object-fit:cover;transition:transform .5s ease-out}.card:focus-visible .thumb.has-img img,.card:hover .thumb.has-img img{transform:scale(1.06)}.card .meta{padding:.9rem 1rem 1.1rem}.card .meta strong{font-family:var(--font-display);font-size:.7rem;font-weight:400;line-height:1.5;display:block}.card .meta span{font-size:.9rem;display:block;margin-top:.4rem}.thumb.c0{background:var(--green)}.thumb.c1{background:var(--purple);color:var(--yellow)}.thumb.c2{background:var(--magenta);color:var(--yellow)}.thumb.c3{background:var(--pink)}.detail{display:flex;flex-direction:column;gap:4rem;padding:3rem 1.25rem 5rem}.detail-top{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem;align-items:start}.detail-info{display:grid;justify-items:start}.detail-info p{margin:0;max-width:36rem}.detail h1{font-family:var(--font-display);font-size:clamp(1.25rem,3.2vw,2rem);line-height:1.3;margin:0 0 1rem}.detail .nav-links{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.viewer-trigger{display:block;width:100%;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left}.detail-media{border:3px solid var(--card-shadow,var(--shade));border-radius:20px;overflow:hidden;line-height:0}.detail-media img{width:100%;height:auto;display:block;transition:transform .5s ease-out}.detail-media:focus-visible img,.detail-media:hover img{transform:scale(1.06)}.detail .thumb{aspect-ratio:4/5;border:3px solid var(--shade);border-radius:20px;display:grid;place-items:center;padding:2rem;text-align:center;font-size:1.4rem;line-height:1.3;background:var(--paper);color:var(--ink)}.detail .thumb,.section-title{font-family:var(--font-display)}.section-title{font-size:.9rem;line-height:1.4;margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:3px solid var(--shade)}.gallery{columns:260px 3;column-gap:1.75rem}.gallery-item{margin:0 0 1.75rem;page-break-inside:avoid;break-inside:avoid;border:3px solid var(--card-shadow,var(--shade));border-radius:20px;overflow:hidden;background:var(--paper);line-height:0}.gallery-item:focus-visible img,.gallery-item:hover img{transform:scale(1.06)}.gallery-item img{width:100%;height:auto;display:block;transition:transform .5s ease-out}.cta{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:1.5rem 2rem;gap:1.5rem 2rem;background:var(--purple);color:var(--yellow);border:var(--border);box-shadow:10px 10px 0 var(--shade);padding:2.5rem}.cta-text{display:grid;grid-gap:.75rem;gap:.75rem}.cta h2{font-family:var(--font-display);font-size:clamp(1rem,2.6vw,1.5rem);line-height:1.4;margin:0}.cta p{margin:0;max-width:36rem}@media (max-width:860px){.detail{gap:3rem}.cta,.detail-top{grid-template-columns:1fr}.cta{padding:1.75rem}.cta .btn{justify-self:start}.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.grid{grid-template-columns:1fr}}.about{display:grid;grid-template-columns:1fr 1fr;grid-gap:3rem;gap:3rem;align-items:start;padding-top:3rem;padding-bottom:5rem}.about-text h1{font-family:var(--font-display);font-size:clamp(1.5rem,4.5vw,2.5rem);line-height:1.25;margin:0 0 1.5rem}.about-text p{margin:0 0 1.25rem;max-width:36rem}.about-text .lead{font-size:1.35rem;line-height:1.4}.about-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}.about-links .btn{display:grid;place-items:center;width:56px;height:56px;padding:0;font-size:1.6rem}.about-art img{width:100%;height:auto;display:block;border:var(--border);box-shadow:var(--shadow)}@media (max-width:860px){.about{grid-template-columns:1fr;gap:2rem;padding-top:2rem}}.site-footer{background:var(--green);padding:.8rem 0}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between}.site-footer .hex{font-family:var(--font-display);font-size:.65rem;color:var(--yellow)}.site-footer .links{display:flex;gap:1rem}.site-footer a{color:var(--yellow);background:var(--purple);display:grid;place-items:center;width:52px;height:52px;font-size:2rem;border-radius:50%;transition:transform .15s steps(3),background-color .15s,color .15s,box-shadow .15s}.site-footer a:focus-visible,.site-footer a:hover{background:var(--yellow);color:var(--purple);transform:translate(-3px,-3px);box-shadow:4px 4px 0 var(--ink)}.site-footer a:active{transform:translate(0);box-shadow:0 0 0 var(--ink)}@media (max-width:720px){.site-footer{padding:1.5rem 0}.site-footer .wrap{flex-direction:column;justify-content:center;text-align:center;gap:1rem}.site-footer .hex{font-size:.55rem}.site-footer .links{justify-content:center;gap:.75rem}.site-footer a{width:48px;height:48px;font-size:1.75rem}}@media (max-width:380px){.site-footer a{width:44px;height:44px;font-size:1.5rem}}@media (hover:none){.site-footer a:hover{background:transparent;color:var(--yellow);transform:none;box-shadow:none}.site-footer a:active{background:var(--magenta);color:var(--yellow)}}dialog.contact{--pad:1.5rem;border:var(--border);box-shadow:10px 10px 0 var(--magenta);background:var(--paper);padding:0;margin:auto;width:min(560px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}dialog.contact::-webkit-backdrop{background:rgba(0,0,0,.75)}dialog.contact::backdrop{background:rgba(0,0,0,.75)}.contact form{padding:var(--pad);display:grid;grid-gap:1rem;gap:1rem}.contact header{position:-webkit-sticky;position:sticky;top:calc(var(--pad) * -1);z-index:1;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:calc(var(--pad) * -1) calc(var(--pad) * -1) 0;padding:1rem var(--pad);background:var(--paper);border-bottom:var(--border)}.contact h2{font-family:var(--font-primary);font-size:1.5rem;font-weight:800;line-height:1.4;margin:0}.contact .close{flex:none;display:grid;place-items:center;width:44px;height:44px;background:none;border:var(--border);font-family:var(--font-display);font-size:.7rem}.contact .close:focus-visible,.contact .close:hover{background:var(--red);color:var(--paper)}.contact label{display:grid;grid-gap:.3rem;gap:.3rem;font-weight:700;font-size:.95rem}.contact input,.contact select,.contact textarea{font:inherit;font-size:max(16px,1rem);padding:.7rem;border:var(--border);background:#fff;border-radius:0;width:100%;min-width:0}.contact textarea{min-height:7rem;resize:vertical}.contact .phone{display:grid;grid-template-columns:7.5rem 1fr;grid-gap:.5rem;gap:.5rem}.contact .phone>*{min-width:0}.contact .note{font-size:.85rem;margin:0}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.25rem}.contact-actions .btn{font-family:var(--font-display);font-size:.7rem;font-weight:400;text-decoration:none;background:var(--green);box-shadow:5px 5px 0 var(--ink)}.contact-actions .btn:hover{background:var(--magenta);color:var(--yellow);transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}.contact-link{background:none;border:0;padding:.5rem 0;font-family:var(--font-primary);font-size:1rem;line-height:1.6;color:var(--ink);text-decoration:underline;text-underline-offset:8px}.contact-link:focus-visible,.contact-link:hover{color:var(--green)}@media (max-width:520px){dialog.contact{--pad:1.1rem;width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);box-shadow:5px 5px 0 var(--shade)}.contact form{gap:.85rem}.contact h2{font-size:.85rem}.contact .phone{grid-template-columns:6.25rem 1fr}.contact-actions{flex-direction:column;align-items:stretch;gap:.5rem}.contact-actions .btn{width:100%;text-align:center;padding:.9rem 1rem}.contact-link{text-align:center;padding:.75rem 0}}@media (max-height:520px){.contact textarea{min-height:4.5rem}.contact form{gap:.7rem}}body:has(.nf) .site-footer,body:has(.nf) .site-header{display:none}.nf{--y:#ffff00;min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem;text-align:center;background:var(--green)}.nf-inner{display:grid;justify-items:center;max-width:560px}.nf-icon{width:108px;height:108px;margin-bottom:2rem}.nf h1{font-family:var(--font-display);font-size:clamp(3rem,10vw,5rem);line-height:1;color:var(--y);margin:0 0 1.5rem}.nf h2{font-size:.9rem;line-height:1.5;margin:0 0 1.75rem}.nf h2,.nf p{font-family:var(--font-display);text-transform:uppercase;color:var(--y)}.nf p{font-size:.6rem;line-height:2.4;margin:0 0 2.5rem}.nf .btn{font-size:.7rem;background:var(--magenta);color:var(--yellow);border:none;border-radius:5px;box-shadow:none;padding:.85rem 1.75rem}.nf .btn:focus-visible,.nf .btn:hover{background:var(--yellow);color:var(--magenta)}dialog.viewer{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:rgba(0,0,0,.96);color:var(--yellow)}dialog.viewer[open]{display:grid;grid-template-rows:auto 1fr}dialog.viewer::-webkit-backdrop{background:rgba(0,0,0,.96)}dialog.viewer::backdrop{background:rgba(0,0,0,.96)}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;font-family:var(--font-display);font-size:.7rem}.viewer-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 4.5rem 1.5rem}.viewer-stage img{max-width:100%;max-height:calc(100dvh - 7rem);width:auto;height:auto;border-radius:20px;object-fit:contain;border:3px solid var(--card-shadow)}.viewer-btn{display:grid;place-items:center;width:44px;height:44px;background:var(--yellow);color:var(--ink);border:var(--border);font-size:1.1rem}.viewer-btn:focus-visible,.viewer-btn:hover{background:var(--magenta);color:var(--yellow)}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:.9rem}.viewer-nav.next{right:.9rem}@media (max-width:720px){.viewer-stage{padding:0 .75rem 1rem}.viewer-nav{top:auto;bottom:.5rem;transform:none}.viewer-nav.prev{left:1rem}.viewer-nav.next{right:1rem}.viewer-stage img{max-height:calc(100dvh - 11rem)}}body{cursor:var(--cursor-img) 1 1,auto}.btn,.contact .close,.contact-link,.menu-toggle,.viewer-btn,.viewer-trigger,[role=button],a,button{cursor:var(--cursor-img) 1 1,pointer}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}}