:root{color-scheme:dark;--c0:#120a1f;--c1:#5c1d5e;--c2:#ff6b4a;--c3:#ffe8a3;--ink:var(--c3);--dim:color-mix(in srgb, var(--c3) 64%, var(--c0));--accent:var(--c2);--line:var(--c1);--display:"Silkscreen", "Courier New", monospace;--mono:"Martian Mono", ui-monospace, "SF Mono", Menlo, monospace;--px:2px}*{box-sizing:border-box}html{background:var(--c0)}body{background:var(--c0);color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;font-stretch:87.5%;line-height:1.75;overflow-x:hidden}::selection{background:var(--accent);color:var(--c0)}.sky,.fallback{z-index:0;width:100%;height:100lvh;display:block;position:fixed;top:0;left:0;overflow:hidden}.fallback{display:none}#sky{image-rendering:pixelated;display:block}main{z-index:1;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));gap:34vh;padding-block:0 24vh;display:grid;position:relative}section,header{width:min(100%,40rem);margin-left:max(0px,6vw - 16px)}a{color:var(--ink);text-decoration:underline dotted var(--accent);text-decoration-thickness:var(--px);text-underline-offset:5px}a:hover{background:var(--accent);color:var(--c0);text-decoration-color:#0000}a:focus-visible,button:focus-visible{outline:var(--px) solid var(--accent);outline-offset:3px}.hero{flex-direction:column;justify-content:flex-end;gap:1.4rem;width:min(100%,56rem);min-height:min(100svh,62rem);padding-block:6rem 9vh;display:flex}.hero h1{font-family:var(--display);text-transform:uppercase;margin:0;font-size:clamp(48px,9.5vw,136px);font-weight:700;line-height:1.12}.hero h1 span,.dock span{--o:max(2px, .034em);--k:var(--c0);text-shadow:calc(var(--o) * -1) calc(var(--o) * -1) var(--k), 0 calc(var(--o) * -1) var(--k), var(--o) calc(var(--o) * -1) var(--k), calc(var(--o) * -1) 0 var(--k), var(--o) 0 var(--k), calc(var(--o) * -1) var(--o) var(--k), 0 var(--o) var(--k), var(--o) var(--o) var(--k), calc(var(--o) * -2) calc(var(--o) * -1) var(--k), calc(var(--o) * -1) calc(var(--o) * -2) var(--k), 0 calc(var(--o) * -2) var(--k), var(--o) calc(var(--o) * -2) var(--k), calc(var(--o) * 2) calc(var(--o) * -1) var(--k), calc(var(--o) * -2) 0 var(--k), calc(var(--o) * 2) 0 var(--k), calc(var(--o) * -2) var(--o) var(--k), calc(var(--o) * 2) var(--o) var(--k), calc(var(--o) * -1) calc(var(--o) * 2) var(--k), 0 calc(var(--o) * 2) var(--k), var(--o) calc(var(--o) * 2) var(--k), calc(var(--o) * 2) calc(var(--o) * 2) var(--k);filter:drop-shadow(var(--o) var(--o) 0 var(--line)) drop-shadow(var(--o) var(--o) 0 var(--line));display:inline-block}.dock{z-index:2;top:calc(16px + env(safe-area-inset-top,0px));left:max(16px, env(safe-area-inset-left,0px));font:700 22px/1 var(--display);text-transform:uppercase;opacity:0;visibility:hidden;margin-left:max(0px,6vw - 16px);text-decoration:none;transition:opacity .18s steps(3,end),transform .18s steps(3,end),visibility 0s .18s;position:fixed;transform:translateY(-6px)}.dock:hover{color:var(--accent);background:0 0}body:before{content:"";z-index:2;height:calc(72px + env(safe-area-inset-top,0px));pointer-events:none;background:linear-gradient(var(--c0) 0 0) 0 0 / 100% calc(100% - 16px) no-repeat, conic-gradient(var(--c0) 25%, transparent 0 50%, var(--c0) 0 75%, transparent 0) 0 calc(100% - 8px) / 8px 8px repeat-x, conic-gradient(var(--c0) 25%, transparent 0) 0 100% / 8px 8px repeat-x;opacity:0;visibility:hidden;transition:opacity .18s steps(3,end),visibility 0s .18s;position:fixed;top:0;left:0;right:0}.dock,.controls{z-index:3}body.docked:before,body.docked .dock{opacity:1;visibility:visible;transition-delay:0s;transform:none}@media (prefers-reduced-motion:reduce){.dock,body:before{transition:visibility;transform:none}}.hero p span{background:var(--c0);box-decoration-break:clone;position:relative}.hero p span:after{content:"";z-index:-1;pointer-events:none;background:conic-gradient(var(--c0) 25%, transparent 0 50%, var(--c0) 0 75%, transparent 0) 0 0 / 4px 4px;position:absolute;inset:-4px}.hero p{color:var(--ink);margin:0;font-size:clamp(13px,1.25vw,15px);line-height:2.3}.hero p span{padding:.3em .6em}.win{--n:6px;background:var(--line);padding:var(--px);clip-path:polygon(0 var(--n), var(--n) var(--n), var(--n) 0, calc(100% - var(--n)) 0, calc(100% - var(--n)) var(--n), 100% var(--n), 100% calc(100% - var(--n)), calc(100% - var(--n)) calc(100% - var(--n)), calc(100% - var(--n)) 100%, var(--n) 100%, var(--n) calc(100% - var(--n)), 0 calc(100% - var(--n)))}.win>.in{--m:calc(var(--n) - var(--px));background:var(--c0);clip-path:polygon(0 var(--m), var(--m) var(--m), var(--m) 0, calc(100% - var(--m)) 0, calc(100% - var(--m)) var(--m), 100% var(--m), 100% calc(100% - var(--m)), calc(100% - var(--m)) calc(100% - var(--m)), calc(100% - var(--m)) 100%, var(--m) 100%, var(--m) calc(100% - var(--m)), 0 calc(100% - var(--m)));padding:clamp(1.1rem,3vw,1.8rem)}h2{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:10px;margin:0 0 1.2rem;font-size:16px;font-weight:400;line-height:1;display:flex}h2:after,.rule{content:"";border-top:var(--px) dotted var(--line);flex:1}.projects{margin:0;padding:0;list-style:none;display:grid}.projects>li{grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1.5rem;margin-inline:-.75rem;padding:.95rem .75rem;display:grid;position:relative}.projects>li+li:before{content:"";border-top:var(--px) dotted var(--line);position:absolute;top:0;left:.75rem;right:.75rem}.projects:not(.jobs)>li:hover{background:conic-gradient(at 50% 50%, color-mix(in srgb, var(--line) 70%, var(--c0)) 0 25%, var(--c0) 0) 0 0 / 4px 4px}.projects h3{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:16px;font-weight:400;line-height:1.4}.projects h3 a{text-decoration:none}.projects h3 a:after{content:" ↗";font-family:var(--mono);color:var(--accent);font-size:12px}.projects h3 a:hover:after{color:var(--c0)}.projects .meta{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;text-align:right;align-self:center;font-size:11px;line-height:1.4}.projects p{color:var(--dim);grid-column:1/-1;max-width:60ch;margin:0}.jobs .meta{color:var(--dim)}.jobs .role{color:var(--accent);grid-column:1/-1;margin:0;font-weight:600}.jobs .about{color:var(--dim);grid-column:1/-1;max-width:60ch;margin:0}.jobs+h2{margin-top:2.4rem}.jobs ul{color:var(--dim);grid-column:1/-1;gap:.35rem;max-width:60ch;margin:.2rem 0 0;padding:0;list-style:none;display:grid}.jobs ul li{padding-left:1.1rem;position:relative}.jobs ul li:before{content:"";background:var(--accent);width:4px;height:4px;position:absolute;top:.75em;left:0}.links{gap:.9rem;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.links li{align-items:center;gap:.8rem;display:flex}.links a{align-items:center;gap:.8rem;text-decoration:none;display:inline-flex}.links a span{text-decoration:underline dotted var(--accent);text-decoration-thickness:var(--px);text-underline-offset:5px}.links a:hover{color:var(--accent);background:0 0}.links a:hover span{text-decoration-color:#0000}.icon{flex:none;width:32px;height:32px}.icon .l{fill:var(--ink)}.icon .d,.links a:hover .icon .l{fill:var(--accent)}.links a:hover .icon .d{fill:var(--ink)}.copy{font:400 11px/1 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--c0);background:var(--accent);cursor:pointer;border:0;padding:5px 7px 4px}.copy:hover{background:var(--ink)}.controls{z-index:2;top:calc(11px + env(safe-area-inset-top,0px));right:max(16px, calc(env(safe-area-inset-right,0px) + 14px));background:var(--c0);align-items:flex-start;gap:16px;padding:6px;display:flex;position:fixed}.motion{cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:22px;padding:0;display:grid}.motion:before{content:"";background:linear-gradient(90deg, var(--ink) 0 4px, transparent 0 6px, var(--ink) 0);width:10px;height:12px}.motion[aria-pressed=true]:before{background:var(--ink);clip-path:polygon(0 0,100% 50%,0 100%)}.motion:hover:before{background-color:var(--accent)}body.no-gl .motion,body.no-gl .sky{display:none}body.no-gl .fallback{display:block}.fb-planet{aspect-ratio:1;background:radial-gradient(circle at 30% 30%, var(--c3), var(--c2) 24%, var(--c1) 52%, var(--c0) 76%);border-radius:50%;width:44vmin;position:absolute;top:20vh;right:14vw}.fb-planet:after{content:"";background:conic-gradient(at 50% 50%, var(--c0) 0 25%, transparent 0) 0 0 / 6px 6px, conic-gradient(at 50% 50%, transparent 50%, var(--c0) 0 75%, transparent 0) 0 0 / 6px 6px;opacity:.55;border-radius:50%;position:absolute;inset:0}.fb-ring{border:6px dotted var(--c2);border-radius:50%;position:absolute;inset:36% -62%;transform:rotate(-22deg)}@media (width<=720px){main{gap:22vh}.hero{padding-block:0 7vh}.projects>li{grid-template-columns:minmax(0,1fr)}.projects .meta{text-align:left;grid-row:2}.fb-planet{width:62vw;top:14vh;right:19vw}}
