@font-face{font-family:Portfolio;src:url('/assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#171916;--paper:#f6f5f0;--lime:#dafa52;--line:#c7c8bf;--muted:#575c51;--gutter:clamp(1.25rem,5vw,5.5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;color:var(--ink);background:var(--paper);font-family:Portfolio,Arial,sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}::selection{background:var(--lime);color:var(--ink)}a{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #7e45cd;outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}img{display:block;max-width:100%}.skip{position:fixed;z-index:50;left:1rem;top:-5rem;background:var(--lime);padding:.7rem 1rem}.skip:focus{top:1rem}
.site-header{padding:1.75rem var(--gutter);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:1.3rem;font-weight:750;letter-spacing:-.065em;text-decoration:none;white-space:nowrap}.wordmark span{display:inline-block;color:inherit;font-size:1.8rem;margin-left:.6rem;vertical-align:middle;line-height:1}nav{display:flex;gap:2.4rem;font-size:.9rem}nav a{text-decoration:none;padding:.4rem 0}nav a:hover{text-decoration:underline;text-underline-offset:.4em}.hero{padding:3.5rem var(--gutter) 1.2rem}.hero-kicker,.hero-baseline{display:flex;justify-content:space-between;font-size:.75rem;font-weight:650;letter-spacing:.12em}.hero h1{font-size:clamp(4rem,9.2vw,9.6rem);letter-spacing:-.055em;line-height:1.07;margin:2.7rem 0 2.9rem;font-weight:500}.hero h1 em{letter-spacing:-.085em}.hero-last{white-space:nowrap}.hero-bottom{display:grid;grid-template-columns:1fr 1.4fr auto;align-items:center;gap:2rem}.hero-bottom p{font-size:clamp(1.05rem,1.6vw,1.45rem);line-height:1.6;max-width:34rem}.hero-mark{font-size:7rem;font-family:Arial,sans-serif;line-height:1;width:7rem;color:var(--ink);transform:rotate(-12deg);transition:transform .8s cubic-bezier(.2,.8,.3,1)}.hero-mark:hover{transform:rotate(78deg)}.round-link{display:grid;place-items:center;width:5rem;height:5rem;border:1px solid var(--ink);border-radius:50%;font-size:2rem;text-decoration:none;transition:background .2s,transform .2s}.round-link:hover{background:var(--lime);transform:translateY(4px)}.hero-baseline{margin-top:3.3rem;padding-top:1.1rem;border-top:1px solid var(--line);font-size:.7rem;letter-spacing:.08em}.hero-baseline span:last-child{color:var(--muted)}
.work{background:var(--ink);color:var(--paper);padding:4.5rem var(--gutter) 1rem}.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-bottom:2.5rem}.section-heading h2{font-size:1.5rem;letter-spacing:-.04em}.small-number{font-size:.75rem;letter-spacing:0;margin-left:.4rem;color:#b8bcae}.section-heading p{font-size:.9rem;color:#b8bcae}.project{padding:1.5rem 0 4.8rem;border-top:1px solid #484c42}.project-top{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:.75rem;letter-spacing:.045em}.status{border:1px solid #68705a;border-radius:2rem;padding:.3rem .75rem;font-size:.75rem;white-space:nowrap}.project-layout{display:grid;grid-template-columns:.87fr 1.25fr;gap:5%;margin-top:2.2rem;align-items:center}.project-name{color:var(--lime);font-weight:600;font-size:1rem;margin-bottom:1.15rem}.project h3{font-size:clamp(2.1rem,3.7vw,4.1rem);line-height:1.13;letter-spacing:-.065em;margin-bottom:1.4rem}.project-copy>p:not(.project-name){font-size:1rem;color:#c6c9bf;max-width:28rem;line-height:1.8}.text-link{font-size:.95rem;font-weight:600;display:flex;width:fit-content;align-items:center;gap:1.5rem;text-decoration:none;margin:1.8rem 0 2rem;border-bottom:1px solid #8f977c;padding-bottom:.4rem}.text-link span{transition:transform .2s}.text-link:hover{color:var(--lime)}.text-link:hover span{transform:translate(3px,-3px)}details{font-size:.9rem}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.project details{border-top:1px solid #484c42;max-width:29rem}.project summary{display:flex;justify-content:space-between;padding:.95rem 0;color:#d5d8cc;gap:1rem}.project summary span{color:var(--lime)}details[open]>summary span:last-child{transform:rotate(45deg)}.project details p{color:#c6c9bf;padding-bottom:1rem}.project details .project-note{font-size:.8rem;color:#a7b295}.project-visual{min-width:0;position:relative;aspect-ratio:1.2;background:#d1dde0;overflow:hidden;border-radius:3px;display:flex;align-items:center;justify-content:center}.project-visual img{object-fit:cover}.pulmolisten .project-visual{background:#b9cace;padding:7% 0 7% 5%;justify-content:flex-start}.pulmolisten .project-visual img{width:130%;margin-left:-15%;max-width:none;flex-shrink:0;transform:rotate(-3deg);box-shadow:0 22px 50px #142c3250;border-radius:8px}.project-visual figcaption{position:absolute;bottom:1rem;left:1.2rem;font-size:.7rem;color:#273334;background:#f6f5f0e8;padding:.2rem .5rem;border-radius:2px}.flux-orbit .project-layout{grid-template-columns:1.25fr .87fr}.flux-orbit .project-copy{grid-column:2;grid-row:1}.flux-orbit .project-visual{grid-column:1;grid-row:1;background:#131734;background-image:radial-gradient(ellipse at 50% 70%,#243cb3 0,transparent 62%);aspect-ratio:1.2;padding:2rem}.flux-orbit .project-visual img{height:95%;width:auto;max-height:32rem;border-radius:1.6rem;transform:rotate(8deg);box-shadow:0 25px 60px #0009}.little-responder .project-visual img{width:100%;height:100%;object-fit:cover}.little-responder .project-visual{background:#e8f0cd}.workshop{padding:5rem var(--gutter) 5.5rem;background:var(--ink);color:var(--paper)}.workshop .section-heading{margin-bottom:2rem}.workshop-item{border-top:1px solid #484c42}.workshop-item:last-child{border-bottom:1px solid #484c42}.workshop-item summary{padding:1.6rem 0;display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:center}.workshop-name{font-size:1.4rem;letter-spacing:-.045em}.workshop-type{font-size:.8rem;color:#b8bcae}.plus{font-size:1.3rem;color:var(--lime)}.workshop-item p{max-width:40rem;padding:0 0 1.6rem;color:#c6c9bf}
.about{padding:6rem var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:8%}.eyebrow{font-size:.75rem;font-weight:650;letter-spacing:.1em;margin-bottom:2rem}.about h2{font-size:clamp(2.2rem,4vw,4.3rem);letter-spacing:-.06em;line-height:1.16}.about-copy{padding-top:3rem}.about-copy p{font-size:1.1rem;margin-bottom:1.5rem;line-height:1.85}.about-copy .signature{font-family:Georgia,serif;font-style:italic;font-size:2rem;margin-top:1.5rem;margin-bottom:0}.about-mark{font-size:8rem;font-weight:700;line-height:1.2;letter-spacing:-.12em;margin-top:3rem;display:inline-block;border-bottom:6px solid var(--lime)}.contact{background:var(--lime);padding:5rem var(--gutter);position:relative}.contact h2{font-size:clamp(3.3rem,7vw,7.3rem);line-height:1.05;letter-spacing:-.07em}.contact-link{display:flex;width:fit-content;gap:4rem;align-items:center;font-size:1.7rem;letter-spacing:-.045em;font-weight:600;margin-top:2.5rem;border-bottom:1px solid var(--ink);text-decoration:none;padding-bottom:.3rem}.contact-link:hover span{transform:translate(4px,-4px)}.contact-link span{transition:transform .2s}.email{font-size:.9rem;margin-top:1rem}footer{padding:2rem var(--gutter);display:flex;gap:1.5rem;justify-content:space-between;align-items:center;font-size:.8rem}footer>a:last-child{text-decoration:none}.workshop-item summary:hover,.project summary:hover{color:var(--lime)}
@media(min-width:1550px){.site-header,.hero,.work,.workshop,.about,.contact,footer{padding-left:max(var(--gutter),calc((100vw - 1440px)/2));padding-right:max(var(--gutter),calc((100vw - 1440px)/2))}}
@media(max-width:850px){.hero h1{font-size:9.3vw}.hero-bottom{grid-template-columns:.5fr 2fr auto}.hero-mark{font-size:5rem;width:4rem}.round-link{width:3.5rem;height:3.5rem}.project-layout,.flux-orbit .project-layout{grid-template-columns:1fr;gap:2rem}.project-copy,.flux-orbit .project-copy{grid-column:1;grid-row:2}.project-visual,.flux-orbit .project-visual{grid-column:1;grid-row:1;aspect-ratio:1.45}.project h3{font-size:3rem}.project-copy>p:not(.project-name),.project details{max-width:42rem}.project{padding-bottom:3.5rem}.about{gap:5%}.about h2{font-size:2.4rem}.about-copy p{font-size:1rem}}
@media(max-width:540px){.site-header{padding-top:1.1rem;padding-bottom:1.1rem}.wordmark{font-size:1.05rem}.wordmark span{font-size:1.4rem;margin-left:.4rem}nav{gap:1.2rem;font-size:.8rem}nav a:last-child{display:none}.hero{padding-top:2rem}.hero-kicker{font-size:.625rem;letter-spacing:.08em}.hero h1{font-size:12.4vw;line-height:1.08;margin-top:2.2rem;margin-bottom:2rem}.hero-last{white-space:normal}.hero-bottom{grid-template-columns:1fr auto;gap:1rem}.hero-mark{display:none}.hero-bottom p{font-size:1rem;line-height:1.7}.round-link{width:2.7rem;height:2.7rem;font-size:1.5rem}.hero-baseline{margin-top:2rem;font-size:.6rem}.hero-baseline span:last-child{display:none}.work{padding-top:2.8rem}.section-heading{display:block;margin-bottom:1.7rem}.section-heading h2{font-size:1.35rem}.section-heading p{font-size:.8rem;margin-top:.5rem}.project-top{font-size:.65rem;letter-spacing:0}.status{font-size:.65rem;padding:.25rem .5rem}.project-layout{margin-top:1.4rem}.project h3{font-size:2.5rem}.project-visual,.flux-orbit .project-visual{aspect-ratio:1.12}.flux-orbit .project-visual{padding:1.1rem}.flux-orbit .project-visual img{max-height:22rem;height:90%}.project-visual figcaption{font-size:.6rem;bottom:.65rem;left:.7rem}.project-name{font-size:.9rem}.text-link{margin:1.4rem 0}.workshop{padding-top:2rem;padding-bottom:3rem}.workshop-item summary{grid-template-columns:1fr auto;gap:.2rem;padding:1.2rem 0}.workshop-name{font-size:1.25rem}.workshop-type{grid-column:1;grid-row:2;font-size:.75rem}.plus{grid-row:1 / 3;grid-column:2}.about{grid-template-columns:1fr;padding-top:3.5rem;padding-bottom:3rem;gap:0}.about h2{font-size:2.7rem}.eyebrow{margin-bottom:1.4rem}.about-mark{display:none}.about-copy{padding-top:2rem}.contact{padding-top:3rem;padding-bottom:3rem}.contact h2{font-size:3.4rem}.contact .eyebrow{font-size:.63rem;letter-spacing:.06em}.contact-link{font-size:1.5rem;margin-top:2rem}footer{flex-wrap:wrap;gap:1rem}footer .wordmark{width:100%}footer span{font-size:.7rem}footer>a:last-child{font-size:.75rem;margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.hero-mark:hover{transform:rotate(-12deg)}}

/* Keep compact metadata readable on narrow screens. */
@media(max-width:540px){nav{font-size:.875rem}.hero-kicker,.hero-baseline,.project-top,.status,.project-visual figcaption,.contact .eyebrow,footer span{font-size:.75rem}.hero-kicker{flex-wrap:wrap;gap:.5rem}.project-top{flex-wrap:wrap}.hero-baseline{line-height:1.5}.small-number{font-size:.75rem}}
/* Reflow, including a 200% browser text setting. */
.site-header{flex-wrap:wrap;gap:1rem}.site-header nav{flex-wrap:wrap}.project-copy,.about-copy,.about>div{min-width:0}.project-layout,.flux-orbit .project-layout{min-width:0}.text-link{max-width:100%;gap:1rem}h1,h2,h3,p,a,summary{overflow-wrap:anywhere}.project-top .status{white-space:normal}.workshop-item summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
@media(max-width:850px){.project-layout,.flux-orbit .project-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){.workshop-item summary{grid-template-columns:minmax(0,1fr) auto}.hero-bottom{grid-template-columns:minmax(0,1fr) auto}.contact h2{font-size:clamp(2rem,13.5vw,3.4rem)}}
