:root{--navy:#061b37;--pink:#ff4778;--paper:#f5f1e8;--muted:#f5f1e894;--line:#f5f1e838;color:var(--paper);background:var(--navy);font-synthesis:none;font-family:SFMono-Regular,Cascadia Code,Consolas,Liberation Mono,monospace}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}body{background:radial-gradient(circle at 50% 118%,#ff3169db 0%,#ff31694d 30%,#0000 57%),linear-gradient(#04172f 0%,#082b4f 67%,#181f46 100%);height:100svh;overflow:hidden}body:before{z-index:0;pointer-events:none;content:"";background-image:radial-gradient(circle,#ff477833 0 1px,#0000 1.5px),linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-position:7px 11px,0 0,0 0;background-size:48px 48px,32px 32px,32px 32px;position:fixed;inset:0;mask-image:linear-gradient(#0000 5%,#000 48%,#0000 100%)}#ascii-field,.vignette{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}#ascii-field{z-index:1;opacity:0;transition:opacity .24s}#ascii-field.is-ready{opacity:1}.vignette{z-index:2;background:linear-gradient(90deg,#020f2075,#0000 18% 82%,#020f2075),radial-gradient(circle at 50% 45%,#0000 30%,#010c1b42 100%)}a{color:inherit;text-decoration:none}main{z-index:3;grid-template-rows:76px minmax(0,1fr) auto 62px;width:min(100% - 48px,1900px);height:100svh;margin:0 auto;display:grid;position:relative}header,footer{letter-spacing:.08em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;font-size:12px;display:grid}header{border-bottom:1px solid var(--line)}.wordmark{letter-spacing:-.04em;text-transform:lowercase;width:max-content;font-size:19px;font-weight:700}.prompt{color:var(--pink)}a:focus-visible{outline:2px solid var(--pink);outline-offset:5px}.cursor{animation:1.05s step-end infinite blink}.header-tools{align-items:center;gap:20px;display:flex}.contact-link,footer a{justify-self:end;transition:color .16s}.contact-mobile{display:none}.contact-link:hover,.contact-link:focus-visible,footer a:hover,footer a:focus-visible{color:var(--pink)}.intro{flex-direction:column;justify-content:center;min-height:0;padding:clamp(24px,4vh,54px) 0 20px;display:flex}.system-line{max-width:660px;color:var(--muted);letter-spacing:.12em;justify-content:space-between;margin-bottom:clamp(12px,2.2vh,28px);font-size:12px;display:flex}h1{letter-spacing:-.075em;text-transform:lowercase;text-shadow:0 0 38px #04172f73;margin:0;font-size:clamp(31px,5.6vw,86px);font-weight:400;line-height:.95}h1>span{display:block}.hero-copy{color:#f5f1e8ad;letter-spacing:.025em;max-width:720px;margin:clamp(18px,2.8vh,30px) 0 0;font-size:clamp(11px,.82vw,14px);line-height:1.65}.rotator{white-space:nowrap;opacity:1;transition:opacity .22s,transform .22s;display:inline-block;transform:translateY(0)}.rotator.is-changing{opacity:0;transform:translateY(5px)}.projects{padding-bottom:clamp(12px,2.4vh,24px)}.projects h2{color:var(--pink);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:400}.project-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-inline:1px solid var(--line);background:#f5f1e82e;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;box-shadow:0 16px 48px #00071247}.project{background:#03142bd1;border-right:0;grid-template-columns:32px 1fr;align-content:space-between;min-width:0;min-height:clamp(74px,10.5vh,112px);padding:15px 42px 14px 16px;transition:color .22s,background .22s,box-shadow .22s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff06}.project:last-child{border-right:0}.project:hover,.project:focus-visible{color:#fff;background:#ff477829;outline:none;box-shadow:inset 0 0 0 1px #ff477875}.project-index{color:var(--pink);font-size:11px}.project-name{letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(17px,1.35vw,22px);font-weight:700;overflow:hidden}.project-type{color:#f5f1e8c2;letter-spacing:.05em;text-transform:uppercase;grid-column:2;font-size:11px}.project-arrow{color:var(--muted);font-size:16px;transition:color .18s,transform .18s;position:absolute;top:14px;right:16px}.project:hover .project-arrow,.project:focus-visible .project-arrow{color:var(--pink);transform:translate(3px,-3px)}footer{border-top:1px solid var(--line);color:var(--muted)}footer p{margin:0}.legal-links{align-items:center;gap:clamp(12px,2vw,28px);display:flex}.legal-links a{transition:color .16s}.legal-links a:hover,.legal-links a:focus-visible{color:var(--pink)}@keyframes blink{50%{opacity:0}}@media (width<=1100px) and (width>=701px){main{grid-template-rows:70px minmax(0,1fr) auto 56px;width:min(100% - 36px,1500px)}header,footer{font-size:11px}.wordmark{font-size:17px}.intro{padding:24px 0 16px}.system-line{max-width:58vw;font-size:10px}h1{font-size:clamp(36px,5.25vw,58px)}.project{grid-template-columns:28px 1fr;padding-inline:14px 38px}.project-name{font-size:clamp(15px,1.7vw,19px)}.project-type{font-size:9px}}@media (width<=900px) and (width>=701px){main{grid-template-rows:auto auto auto 1fr}.project-grid{grid-template-columns:repeat(3,1fr)}.project{min-height:76px}.project:last-child{grid-column:auto}.project-type{display:none}.projects{padding:10px 0 0}footer{align-self:end;min-height:50px}}@media (width<=700px){body{height:100dvh;min-height:0;overflow:hidden}main{grid-template-rows:auto auto auto 1fr;width:min(100% - 28px,1500px);height:100dvh;min-height:0}header,footer{grid-template-columns:1fr auto auto;column-gap:14px;min-height:0;padding-block:clamp(14px,2.5dvh,22px)}.header-tools{justify-self:center}.intro{justify-content:flex-start;min-height:0;padding:clamp(28px,5dvh,44px) 0 clamp(22px,4dvh,34px)}.system-line{display:none}h1{font-size:clamp(25px,7.1vw,42px)}.hero-copy{max-width:36em;margin-top:15px;font-size:10px;line-height:1.55}.project-grid{grid-template-rows:repeat(3,auto);grid-template-columns:1fr;min-height:0}.project{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:30px 1fr;align-content:center;min-height:0;padding:17px 38px 17px 12px}.project-name{font-size:clamp(15px,4.4vw,18px)}.project-type{display:none}.project-arrow{top:50%;transform:translateY(-50%)}.project:hover .project-arrow,.project:focus-visible .project-arrow{transform:translate(3px,calc(-50% - 3px))}.project:last-child{border-bottom:0}footer{padding-bottom:env(safe-area-inset-bottom);grid-template-columns:1fr auto;align-self:end;column-gap:0}footer>p,.github-link{display:none}.projects{min-height:0;padding-bottom:0}}@media (height<=500px) and (orientation:landscape){body{height:100dvh;min-height:0;overflow:hidden}main{grid-template-rows:auto auto auto 1fr;width:min(100% - 28px,1500px);height:100dvh;min-height:0}header,footer{grid-template-columns:1fr auto;padding-block:10px;font-size:9px}.wordmark{font-size:15px}footer>p,.github-link{display:none}.intro{justify-content:center;min-height:0;padding:12px 0 10px}.system-line{display:none}h1{font-size:clamp(27px,5.2vw,40px)}.hero-copy{max-width:58em;margin-top:7px;font-size:8px;line-height:1.4}.projects{min-height:0;padding-bottom:8px}.projects h2{margin-bottom:6px;font-size:9px}.project-grid{grid-template-rows:repeat(2,auto);grid-template-columns:repeat(2,1fr)}.project{grid-template-columns:24px 1fr;min-height:0;padding:9px 34px 8px 12px}.project:last-child{grid-column:1/-1}.project-name{font-size:14px}.project-index,.project-type{font-size:8px}.project-type{display:none}.project-arrow{font-size:13px;top:50%;right:12px;transform:translateY(-50%)}footer{align-self:end}}@media (height>=501px) and (height<=690px) and (width>=701px){main{grid-template-rows:62px minmax(0,1fr) auto 48px}.intro{padding-block:18px 12px}.projects{padding-bottom:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.language-toggle[data-astro-cid-ra2rg4ph]{color:var(--muted);font:inherit;letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:0;transition:color .16s}.language-toggle[data-astro-cid-ra2rg4ph]:before{content:"[ "}.language-toggle[data-astro-cid-ra2rg4ph]:after{content:" ]"}.language-toggle[data-astro-cid-ra2rg4ph]:hover,.language-toggle[data-astro-cid-ra2rg4ph]:focus-visible{color:var(--pink)}
