.sp-page{--sp-space:clamp(4rem, 7vw, 7rem)}.sp-page h1,.sp-page h2,.sp-page p{margin-top:0}.sp-page h1,.sp-page h2{text-wrap:balance}.sp-text-link{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1.6rem;width:fit-content;min-height:44px;font-size:.82rem;transition:color .18s,border-color .18s;display:inline-flex}.sp-text-link:hover{color:var(--accent);border-color:var(--accent)}.sp-text-link span,.sp-next-arrow{transition:transform .22s var(--ease-out-quint);display:inline-block}.sp-text-link:hover span,.sp-text-link:focus-visible span{transform:translate(2px,-2px)}.sp-actions{flex-wrap:wrap;align-items:center;gap:1rem 2rem;display:flex}.sp-action-primary{background:var(--accent);min-height:48px;color:var(--accent-foreground);justify-content:space-between;align-items:center;gap:2rem;padding:.8rem 1.2rem;font-size:.9rem;display:inline-flex}.sp-section{padding-block:var(--sp-space);scroll-margin-top:6rem}.sp-section-heading{margin-bottom:2.5rem}.sp-section-heading .meta-label{margin-bottom:1rem}.sp-section-heading h2,.sp-about-interests h2{letter-spacing:-.065em;margin-bottom:0;font-size:clamp(2.3rem,4.5vw,4.8rem);font-weight:550;line-height:1}.sp-closing{border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:2rem;padding-block:2.5rem 3.5rem;display:flex}.sp-closing p{color:var(--muted);margin:0}.sp-closing a{letter-spacing:-.05em;align-items:center;gap:2rem;min-height:44px;font-size:clamp(1.3rem,2.8vw,2.6rem);display:inline-flex}.sp-closing a:hover{color:var(--accent)}.sp-about-opening{padding-block:clamp(2.5rem, 5vw, 5rem) var(--sp-space);grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.sp-about-intro h1{letter-spacing:-.07em;margin-block:1.8rem 2rem;font-size:clamp(3.5rem,5.6vw,6rem);font-weight:580;line-height:.98}.sp-about-intro h1 span{color:var(--muted)}.sp-lede{letter-spacing:-.03em;max-width:35ch;font-size:clamp(1.2rem,1.6vw,1.6rem);line-height:1.45}.sp-about-position{color:var(--muted);margin-block:1.5rem;font-size:.9rem;line-height:1.75}.sp-about-portrait{aspect-ratio:3/4;min-width:0;margin:0 0 2rem;position:relative}.sp-about-portrait img{object-fit:cover;object-position:50% 34%;filter:saturate(.6)}.sp-about-portrait figcaption{width:100%;font:.65rem var(--font-geist-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;gap:1rem;display:flex;position:absolute;top:calc(100% + .8rem)}.sp-about-statement{padding-block:var(--sp-space);border-block:1px solid var(--border);grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:3rem;display:grid}.sp-about-statement h2{letter-spacing:-.055em;max-width:24ch;margin-bottom:2rem;font-size:clamp(2rem,3.8vw,3.8rem);font-weight:500;line-height:1.1}.sp-about-statement div>p{max-width:56ch;color:var(--muted);margin-bottom:0;font-size:1.05rem;line-height:1.8}.sp-about-interests{padding-block:1rem var(--sp-space);grid-template-columns:1fr 1fr;gap:4rem;display:grid}.sp-about-interests h2{margin-block:1.3rem 1.7rem}.sp-about-interests dl{margin:0}.sp-about-interests dl>div{border-top:1px solid var(--border);padding-block:1rem}.sp-about-interests dt{color:var(--foreground);letter-spacing:-.025em;text-transform:none;font-family:inherit;font-size:1.05rem}.sp-about-interests dd{color:var(--muted);margin:.4rem 0 0;font-size:.9rem}.sp-work-opening{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:end;gap:4rem;padding-block:clamp(3rem,6vw,6rem) clamp(3rem,6vw,5rem);display:grid}.sp-work-opening h1{letter-spacing:-.075em;margin-block:1.8rem 0;font-size:clamp(4rem,9.5vw,9rem);font-weight:600;line-height:.86}.sp-work-opening h1 span{color:var(--muted)}.sp-work-intro{max-width:35ch;padding-bottom:.5rem}.sp-work-intro p{color:var(--muted);font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.65}.sp-work-index{scroll-margin-top:6rem}.sp-work-page .sp-section{padding-top:calc(var(--sp-space) * 1.25)}.sp-case{padding-top:clamp(1.5rem,3vw,3rem)}.sp-case-topline{justify-content:space-between;align-items:center;gap:2rem;display:flex}.sp-case-topline p{text-align:right;margin:0}.sp-case-opening h1{letter-spacing:-.075em;max-width:16ch;margin-block:clamp(2.5rem,5vw,4.5rem) 2rem;font-size:clamp(4rem,10vw,9.5rem);font-weight:600;line-height:.88}.sp-case-summary{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem;display:flex}.sp-case-summary>p{max-width:38ch;color:var(--muted);letter-spacing:-.025em;margin:0;font-size:clamp(1.15rem,2vw,1.7rem);line-height:1.45}.sp-case-summary .sp-actions{flex-shrink:0}.sp-case-meta{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.5rem 2.5rem;margin:0;padding-block:1.8rem;display:grid}.sp-case-meta dd{max-width:38ch;margin:.6rem 0 0;font-size:.86rem;line-height:1.65}.sp-case-cover{margin:0}.sp-case-image{aspect-ratio:16/10;background:var(--surface);border:1px solid var(--border);position:relative;overflow:hidden}.sp-case-image img{object-fit:cover;object-position:center top}.sp-case-cover figcaption,.sp-case-gallery figcaption{color:var(--muted);font:.68rem var(--font-geist-mono);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;gap:1.5rem;margin-top:.85rem;line-height:1.6;display:flex}.sp-case-diagram{border:1px solid var(--border);background:#292320;min-height:380px}.sp-case-diagram .cant-fake-diagram{justify-content:center;min-height:380px;padding:clamp(3rem,6vw,6rem)}.sp-case-diagram .cant-fake-steps{width:100%;max-width:760px}.sp-case-diagram .cant-fake-step-label{font-size:clamp(1.2rem,2vw,2rem)}.sp-case-story{padding-block:var(--sp-space);grid-template-columns:minmax(180px,.32fr) minmax(0,1fr);align-items:start;gap:clamp(3rem,7vw,8rem);display:grid}.sp-case-guide{position:sticky;top:6rem}.sp-case-guide>p{margin-bottom:1.3rem}.sp-case-guide nav{flex-direction:column;display:flex}.sp-case-guide nav a{border-top:1px solid var(--border);min-height:44px;color:var(--muted);align-items:center;gap:.9rem;font-size:.8rem;display:flex}.sp-case-guide nav a:hover,.sp-case-guide nav a:focus-visible{color:var(--accent)}.sp-case-guide nav a span{font:.66rem var(--font-geist-mono)}.sp-case-chapter{border-top:1px solid var(--border);grid-template-columns:2rem minmax(0,1fr);gap:1.3rem;padding-block:2.5rem;scroll-margin-top:6rem;display:grid}.sp-case-chapter>.meta-label{color:var(--accent);padding-top:.6rem}.sp-case-chapter h2{letter-spacing:-.045em;margin-bottom:1.1rem;font-size:clamp(1.7rem,3vw,2.8rem);font-weight:500;line-height:1.1}.sp-case-chapter div>p,.sp-case-chapter li{max-width:56ch;color:var(--muted);font-size:clamp(1rem,1.3vw,1.13rem);line-height:1.8}.sp-case-chapter div>p{margin-bottom:0}.sp-case-chapter ul{margin-bottom:0;padding-left:1.2rem}.sp-case-chapter li{margin-bottom:.6rem;padding-left:.35rem}.sp-case-chapter li::marker{color:var(--accent)}.sp-case-details{padding-bottom:var(--sp-space);scroll-margin-top:6rem}.sp-case-gallery{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;display:grid}.sp-case-gallery figure{min-width:0;margin:0}.sp-case-detail-image{aspect-ratio:4/5;border:1px solid var(--border);background:#f4f0e8;display:block;position:relative;overflow:hidden}.sp-case-detail-image img{object-fit:cover;object-position:top center;transition:transform .45s var(--ease-out-quint)}.sp-case-detail-image:hover img,.sp-case-detail-image:focus-visible img{transform:scale(1.025)}.sp-image-expand{min-height:44px;color:var(--foreground);background:var(--background);font:.65rem var(--font-geist-mono);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:.7rem 1rem;display:inline-flex;position:absolute;bottom:1rem;right:1rem}.sp-case-recognition{margin-bottom:var(--sp-space);background:var(--surface);border:1px solid var(--border);grid-template-columns:.6fr .6fr 1fr;align-items:center;gap:2rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.sp-case-recognition p{margin-bottom:0}.sp-case-recognition strong{color:var(--accent);letter-spacing:-.07em;font-size:clamp(2rem,4vw,4rem);line-height:1}.sp-case-recognition .muted{margin-top:.7rem;font-size:.85rem}.sp-next-project{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:2rem;padding-block:clamp(2.5rem,6vw,5rem);display:flex}.sp-next-project h2{letter-spacing:-.06em;margin-block:1.1rem 1rem;font-size:clamp(2.6rem,6vw,6rem);font-weight:550;line-height:.98}.sp-next-project div>p:last-child{max-width:44ch;color:var(--muted);margin:0;font-size:.95rem}.sp-next-arrow{color:var(--accent);font-size:clamp(3rem,8vw,8rem);font-weight:300}.sp-next-project:hover .sp-next-arrow,.sp-next-project:focus-visible .sp-next-arrow{transform:translate(5px,-5px)}.sp-not-found,.sp-loading{flex-direction:column;justify-content:center;align-items:flex-start;min-height:72dvh;padding-block:4rem;display:flex}.sp-not-found h1,.sp-loading-title{letter-spacing:-.065em;margin-block:1.7rem 2rem;font-size:clamp(3.5rem,8vw,8rem);font-weight:550;line-height:.95}.sp-not-found>p:not(.meta-label){max-width:45ch;color:var(--muted);margin-bottom:2rem}.sp-loading-rule{background:var(--border);width:min(600px,100%);height:2px;margin-bottom:1.5rem;overflow:hidden}.sp-loading-rule:after{content:"";background:var(--accent);width:40%;height:100%;animation:sp-loading-progress .9s var(--ease-out-quint) both;display:block}@keyframes sp-loading-progress{0%{transform:translate(-100%)}to{transform:translate(150%)}}@media (max-width:900px){.sp-about-opening{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem}.sp-about-intro h1{font-size:clamp(2.8rem,6vw,4rem)}.sp-about-portrait{aspect-ratio:3/5}.sp-about-statement{grid-template-columns:1fr;gap:1rem}.sp-about-statement h2{max-width:30ch}.sp-about-interests{gap:2.5rem}.sp-work-opening{gap:2rem}.sp-case-summary{flex-direction:column;align-items:flex-start}.sp-case-story{grid-template-columns:1fr;gap:2rem}.sp-case-guide{position:static}.sp-case-guide nav{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:1.5rem;display:grid}.sp-case-recognition{grid-template-columns:1fr 1fr}.sp-case-recognition>.meta-label{grid-column:1/-1}}@media (max-width:640px){.sp-about-opening{grid-template-columns:1fr;gap:2.5rem;padding-top:2rem}.sp-about-intro h1{max-width:12ch;margin-block:1.5rem;font-size:clamp(3.2rem,12vw,4.5rem)}.sp-about-position{font-size:.83rem}.sp-about-portrait{aspect-ratio:4/5}.sp-about-interests{grid-template-columns:1fr;gap:2rem}.sp-section-heading{margin-bottom:2rem}.sp-closing{flex-direction:column;gap:1rem;padding-block:2rem 3rem}.sp-work-opening{grid-template-columns:1fr;gap:2rem;padding-block:2rem 3rem}.sp-work-opening h1{font-size:clamp(4.3rem,19vw,6rem)}.sp-work-intro{max-width:36ch}.sp-work-intro p{margin-bottom:.5rem}.sp-case-topline{align-items:flex-start;gap:1rem}.sp-case-topline>.meta-label{max-width:22ch;padding-top:.7rem;font-size:.6rem}.sp-case-opening h1{margin-block:2rem 1.5rem;font-size:clamp(3.3rem,14vw,5rem);line-height:.94}.sp-case-summary{gap:1rem;margin-bottom:2rem}.sp-case-meta{grid-template-columns:1fr;gap:1.1rem;padding-block:1.5rem}.sp-case-meta>div{grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline;gap:1rem;display:grid}.sp-case-meta dd{margin:0;font-size:.8rem}.sp-case-meta dt{font-size:.6rem}.sp-case-cover figcaption,.sp-case-gallery figcaption{font-size:.62rem}.sp-case-guide nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}.sp-case-guide nav a{gap:.6rem;font-size:.73rem}.sp-case-chapter{grid-template-columns:1.2rem minmax(0,1fr);gap:.8rem;padding-block:2rem}.sp-case-diagram,.sp-case-diagram .cant-fake-diagram{min-height:370px}.sp-case-diagram .cant-fake-diagram{padding:3.5rem 1.3rem 1.5rem}.sp-case-gallery{grid-template-columns:1fr}.sp-image-expand{padding-inline:.7rem;font-size:.6rem;bottom:.6rem;right:.6rem}.sp-case-recognition{grid-template-columns:1fr;gap:1.3rem}.sp-next-project{gap:1rem}.sp-next-project h2{overflow-wrap:anywhere;font-size:clamp(2.2rem,9vw,3rem)}.sp-next-project div>p:last-child{font-size:.85rem}.sp-next-arrow{flex-shrink:0;font-size:3rem}.sp-not-found,.sp-loading{min-height:72dvh}}@media (prefers-reduced-motion:reduce){.sp-text-link,.sp-text-link span,.sp-next-arrow,.sp-case-detail-image img{transition:none}.sp-text-link:hover span,.sp-text-link:focus-visible span,.sp-next-project:hover .sp-next-arrow,.sp-next-project:focus-visible .sp-next-arrow,.sp-case-detail-image:hover img,.sp-case-detail-image:focus-visible img{transform:none}.sp-loading-rule:after{animation:none;transform:translate(100%)}}
