@font-face{font-family:Portfolio;src:local('Helvetica Neue');font-display:swap}
:root{--paper:#f7f7f3;--ink:#242622;--muted:#62645e;--line:#d5d7cf;--accent:#cc361f;--hover:#eeefe8;--mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Portfolio,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:7px}.page{max-width:1600px;margin:auto;padding:0 5.2%}.skip{position:absolute;top:-100px;background:var(--ink);color:var(--paper);padding:14px;z-index:10}.skip:focus{top:10px}header{min-height:115px;display:flex;align-items:center;gap:58px;border-bottom:1px solid var(--line)}.wordmark{font-size:46px;letter-spacing:-5px;font-weight:600;line-height:1;padding-right:6px}.wordmark span{color:var(--accent)}.header-caption{font-size:.875rem;line-height:1.5}nav{margin-left:auto;display:flex;gap:40px;font-size:.9375rem}nav a:hover,footer a:hover{color:var(--accent)}nav span{font-size:.75rem;color:var(--muted);vertical-align:super;margin-left:4px}.intro{padding:54px 0 78px}.intro-meta,.section-label,.eyebrow,.project-footnote,.category,.number{font-family:var(--mono)}.intro-meta{display:flex;justify-content:space-between;font-size:.75rem;line-height:1.6;color:var(--muted)}h1{font-weight:400;font-size:clamp(88px,16.1vw,244px);letter-spacing:-.075em;line-height:1.12;margin:30px 0 36px -0.012em}.period{color:var(--accent)}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end}.intro-bottom p{font-size:clamp(22px,2.25vw,34px);line-height:1.25;letter-spacing:-.035em;margin:0}.text-link{font-size:.875rem;border-bottom:1px solid var(--ink);padding:12px 0}.text-link span{margin-left:35px;display:inline-block;transition:transform .2s}.text-link:hover span{transform:translateY(4px)}.section-label{display:flex;justify-content:space-between;align-items:center;padding:0 0 21px;border-bottom:1px solid var(--ink);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.section-label h2{font:inherit;margin:0}.project{border-bottom:1px solid var(--line);scroll-margin-top:25px}.project summary{list-style:none;display:grid;grid-template-columns:70px 1fr 180px 30px;gap:12px;align-items:center;padding:34px 0;cursor:pointer;transition:background .18s}.project summary::-webkit-details-marker{display:none}.project summary:hover{background:var(--hover)}.number{align-self:start;padding-top:10px;font-size:.75rem;color:var(--muted)}.project-heading h3{font-weight:400;font-size:clamp(29px,3.1vw,46px);letter-spacing:-.045em;margin:0 0 8px;line-height:1.1}.project-heading p{margin:0;font-size:.9375rem;color:var(--muted);line-height:1.5}.bang{letter-spacing:0}.category{font-size:.75rem;color:var(--muted)}.toggle{position:relative;width:24px;height:24px}.toggle:before,.toggle:after{content:'';position:absolute;background:var(--ink);left:4px;top:11px;width:16px;height:1px}.toggle:after{transform:rotate(90deg);transition:transform .2s}.project[open] .toggle:after{transform:rotate(0)}.project[open] summary{padding-bottom:26px}.project[open] h3{color:var(--accent)}.project-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(200px,1fr);gap:8%;padding:12px 42px 42px 82px}.eyebrow{font-size:.75rem;font-weight:400;text-transform:uppercase;letter-spacing:.05em;line-height:1.7}.project-note p{font-size:1.25rem;line-height:1.5;letter-spacing:-.02em;margin:16px 0}.project-note .secondary{font-size:1rem}.secondary{color:var(--muted)}.project-spec{border-left:1px solid var(--line);padding:0 0 0 28px}.project-spec h4{font-size:.875rem;font-weight:500;margin:0 0 18px}.project-spec ul{list-style:none;margin:0 0 28px;padding:0;font-size:.875rem;line-height:2;color:var(--muted)}.project-footnote{font-size:.75rem;line-height:1.7;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 2fr .7fr;gap:36px;align-items:start;padding:104px 0 96px}.about h2{margin:5px 0}.about p{font-size:clamp(23px,2.4vw,34px);line-height:1.3;letter-spacing:-.035em;margin:0 0 24px}.about p.secondary{font-size:1.0625rem;line-height:1.6;letter-spacing:-.01em;max-width:480px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:28px 0 34px;gap:20px;font-size:.75rem;color:var(--muted)}
/* Small text controls keep their look but get a hit region of at least 44 by 44 px. */
.wordmark,nav a,.theme-toggle,.text-link,.contact-email,.sphere-controls button,.roblox-brand a,footer a{position:relative}.wordmark:after,nav a:after,.theme-toggle:after,.text-link:after,.contact-email:after,.sphere-controls button:after,.roblox-brand a:after,footer a:after{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
@media(min-width:1600px){h1{font-size:244px}}
@media(max-width:760px){.page{padding:0 6%}header{min-height:88px;gap:25px}.header-caption{font-size:.75rem}nav{gap:23px;font-size:.875rem}.intro{padding:35px 0 58px}.intro-meta{font-size:.75rem}.intro-meta span:last-child{display:none}h1{font-size:clamp(70px,16vw,122px);margin:35px 0}.intro-bottom p{font-size:23px}.text-link{font-size:.75rem}.text-link span{margin-left:12px}.project summary{grid-template-columns:32px 1fr 22px;padding:27px 0;gap:8px}.project-heading h3{font-size:31px}.project-heading p{font-size:.875rem;max-width:240px}.number{padding-top:5px}.category{grid-column:2;grid-row:2;font-size:.75rem}.toggle{grid-column:3;grid-row:1}.project-body{padding:10px 0 30px 40px;grid-template-columns:1fr;gap:22px}.project-note p{font-size:1.125rem}.project-spec{padding-left:18px}.project-spec ul{margin-bottom:14px}.about{grid-template-columns:1fr auto;padding:64px 0 45px;gap:24px}.about h2{grid-column:1/-1}.about p{font-size:25px}.about p.secondary{font-size:1rem}footer{flex-wrap:wrap;font-size:.75rem}footer span:nth-child(2){display:none}}
@media(max-width:390px){.header-caption{display:none}.intro-bottom{align-items:start;gap:22px;flex-direction:column}.project-heading h3{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.contact{display:grid;grid-template-columns:1fr 2.7fr;gap:36px;padding:48px 0 80px;border-top:1px solid var(--line)}.contact h2{margin:5px 0}.contact p{font-size:clamp(25px,3vw,42px);letter-spacing:-.04em;margin:0 0 22px}.contact-email{display:inline-block;font-size:clamp(19px,2.7vw,38px);letter-spacing:-.035em;border-bottom:1px solid var(--muted);padding-bottom:8px}.contact-email span{display:inline-block;margin-left:16px;color:var(--accent);transition:transform .2s}.contact-email:hover span{transform:translate(3px,-3px)}@media(max-width:760px){.contact{grid-template-columns:1fr;gap:20px;padding:36px 0 50px}.contact-email{font-size:clamp(18px,5.2vw,30px)}}
