@font-face{font-family:"Instrument Sans";src:url("/showcase/fonts/InstrumentSans-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/showcase/fonts/InstrumentSans-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/showcase/fonts/InstrumentSans-SemiBold.ttf") format("truetype");font-weight:600 900;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/showcase/fonts/InstrumentSerif-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/showcase/fonts/InstrumentSerif-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}
:root{--font-display:"Instrument Serif",Georgia,serif;--font-body:"Instrument Sans",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth;scroll-padding-top:6rem;-webkit-text-size-adjust:100%}body{margin:0;padding-top:var(--site-header-height,53px);background:var(--surface);color:var(--body);font-family:var(--font-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}p,h1,h2,h3,figure{margin:0}h1,h2,h3{color:var(--ink)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,summary{font:inherit;color:inherit;cursor:pointer}.site-header button,.filters button{background:none}a,button,summary{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}button,summary,a{touch-action:manipulation}:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:2px}::selection{background:var(--accent);color:var(--surface)}[hidden]{display:none!important}.wrap{width:100%;max-width:76rem;padding-inline:clamp(1.5rem,5.6vw,4.5rem);margin-inline:auto}.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;padding:.8rem 1rem;background:var(--ink);color:var(--surface);transform:translateY(-200%)}.skip-link:focus{transform:none}.eyebrow,.section-label{font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.6;font-weight:400;color:var(--muted)}.section-label{display:flex;align-items:baseline;gap:.8rem}.section-label>span{color:var(--accent)}.text-link{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;font-size:.875rem;text-decoration:underline;text-underline-offset:5px}.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:44px;border:1px solid var(--accent);color:var(--accent);padding:.7rem 1.1rem;border-radius:2rem;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase}.primary-link:hover{background:var(--accent);color:var(--surface)}
/* The portfolio's compact, transparent-to-backed masthead. */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}.site-header.scrolled{border-bottom-color:var(--rule)}.header-inner{max-width:80rem;margin-inline:auto;padding:.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.25rem 1.5rem}.brand{font-family:var(--font-display);font-size:1.4rem;color:var(--ink);display:flex;align-items:baseline;gap:.4rem;min-height:44px;line-height:44px;white-space:nowrap}.brand>span{font-family:var(--font-body);font-size:.5625rem;letter-spacing:.1em}.account-button{background:none;border:0;padding:0;color:var(--muted)}.account-button:hover{color:var(--accent)}.account-button:disabled{opacity:.55;cursor:wait}.theme-menu{position:relative}.theme-menu>summary{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;list-style:none;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}summary::-webkit-details-marker{display:none}.theme-menu[open]>summary{color:var(--accent)}.chevron{display:block;flex:none;width:12px;height:12px;transform-origin:center;transition:transform .15s ease}.theme-menu[open] .chevron{transform:rotate(180deg)}.theme-panel{position:absolute;top:calc(100% + .5rem);right:0;width:20rem;max-width:calc(100vw - 2rem);padding:1rem;background:var(--surface-raised);border:1px solid var(--rule);border-radius:3px;box-shadow:0 10px 25px #00000012}.theme-panel .eyebrow{font-size:.6875rem}.theme-families{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.8rem}.theme-families button{display:flex;align-items:center;gap:.6rem;text-align:left;border:1px solid var(--rule);border-radius:2px;min-height:44px;padding:.5rem .65rem;font-size:.8125rem}.theme-families button[aria-pressed=true]{border-color:var(--accent);background:var(--surface-sunken);color:var(--ink)}.theme-families button:hover{border-color:var(--accent)}.palette-mark{display:grid;grid-template-columns:1fr 1fr;width:20px;height:20px;flex-shrink:0;border:1px solid var(--rule);border-radius:50%;overflow:hidden}.palette-mark i:nth-child(1){background:var(--accent)}.palette-mark i:nth-child(2){background:var(--ink)}.palette-mark i:nth-child(3){background:var(--surface-sunken)}.palette-mark i:nth-child(4){background:var(--muted)}.theme-modes{display:flex;padding:3px;border:1px solid var(--rule);border-radius:2rem;margin-top:.85rem}.theme-modes button{flex:1;min-height:38px;border:0;border-radius:2rem;font-size:.6875rem;text-transform:uppercase;letter-spacing:.07em}.theme-modes button[aria-pressed=true]{background:var(--accent);color:var(--surface)}.theme-system-link{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;min-height:44px;font-size:.8125rem;color:var(--ink)}
/* A personal studio: generous type, a portrait, and a little paper-and-pencil character. */
.header-controls{display:flex;align-items:center;gap:1.25rem}
.sign-in-link{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:38px;padding:.4rem .9rem;border:1px solid var(--rule);border-radius:2rem;font-size:.75rem;color:var(--ink);white-space:nowrap;transition:background .16s,border-color .16s}
.sign-in-link:hover{background:var(--surface-sunken);border-color:var(--accent);color:var(--accent)}
.sign-in-link svg{flex:none}
.hero{position:relative;padding-top:5rem;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);column-gap:4rem;align-items:center}
.studio-eyebrow{display:flex;align-items:center;gap:.6rem;font-size:.6875rem;letter-spacing:.1em}
.studio-dot{width:6px;height:6px;flex:none;border-radius:50%;background:var(--accent)}
.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(4rem,7.1vw,6.5rem);letter-spacing:-.035em;line-height:.98;margin-top:1.4rem}
.hero h1 em{position:relative;font-weight:400;color:var(--accent);white-space:nowrap}
.hero h1 em:after{content:"";position:absolute;left:0;right:0;bottom:-.07em;height:.09em;border-top:1px solid currentColor;border-radius:50%;transform:rotate(-1.5deg);opacity:.55}
.hero-description{font-size:1.0625rem;line-height:1.8;margin-top:2rem;max-width:29rem}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:1.7rem}
.hero .primary-link{background:var(--accent);color:var(--surface);text-transform:none;font-size:.875rem;letter-spacing:0;padding:.75rem 1.2rem;min-height:48px}
.hero .primary-link:hover{background:var(--ink);border-color:var(--ink)}
.hero .text-link{font-size:.8125rem}
.hero-portrait{position:relative;max-width:22rem;width:100%;margin:2.5rem auto 0;padding:1.5rem 1rem 0}
.portrait-note{position:absolute;z-index:2;top:-2.75rem;left:-.8rem;font:italic 1.8rem/1 var(--font-display);color:var(--accent);transform:rotate(-8deg)}
.portrait-note svg{position:absolute;width:70px;height:42px;top:.3rem;left:100%;transform:rotate(8deg)}
.portrait-composition{position:relative;isolation:isolate}
.portrait-grid{position:absolute;z-index:-1;inset:-1.2rem -.8rem -.8rem -1.2rem;transform:rotate(5deg);border:1px solid var(--rule);border-radius:4px;background-color:var(--surface-sunken);background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:22px 22px}
.portrait-frame{aspect-ratio:1;overflow:hidden;border-radius:50% 50% 1rem 1rem;border:1px solid var(--rule);background:var(--surface-sunken);transform:rotate(-2deg)}
.portrait-frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.portrait-saguaro{position:absolute;z-index:2;left:-2.2rem;bottom:-1.8rem;width:6rem;height:auto;aspect-ratio:2/3;object-fit:contain;transform-origin:bottom;transition:transform .7s}
.portrait-sun{position:absolute;z-index:2;top:-2.8rem;right:-2.1rem;width:70px;height:70px;color:var(--accent);transform:rotate(10deg)}
.portrait-stamp{position:absolute;right:-1.2rem;bottom:-1.7rem;display:flex;flex-direction:column;justify-content:center;width:5.8rem;height:5.8rem;border:1px solid currentColor;outline:4px solid var(--surface-raised);border-radius:50%;background:var(--surface-raised);color:var(--accent);font-size:.625rem;line-height:1.3;letter-spacing:.06em;text-align:center;text-transform:uppercase;transform:rotate(12deg)}
.portrait-stamp>span{font-size:1.1rem;line-height:1.1}
.hero-portrait figcaption{position:relative;margin-top:3.2rem;font-size:.625rem;letter-spacing:.1em;text-align:center;text-transform:uppercase;color:var(--muted)}
.studio-line{grid-column:1/-1;margin-top:4.5rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:1.2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.6875rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.studio-line p>span{color:var(--accent);margin-inline:.35rem}
.studio-line .studio-aside{font:italic 1.25rem/1.3 var(--font-display);text-transform:none;letter-spacing:0;color:var(--accent)}
.projects-section{padding-block:3.5rem 4.5rem;position:relative}.about:before,.contact-section:before{content:"";position:absolute;top:0;left:clamp(1.5rem,5.6vw,4.5rem);right:clamp(1.5rem,5.6vw,4.5rem);height:1px;background:var(--rule)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}.section-heading h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2.75rem,4.2vw,3.75rem);letter-spacing:-.02em;line-height:1.05;margin-top:1.7rem}.section-heading h2 em{font-weight:400}.section-heading>p{max-width:18rem;font-size:1rem;line-height:1.75;color:var(--muted);padding-bottom:.2rem}.filter-bar{margin-block:2.5rem 1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.filters{display:flex;flex-wrap:wrap;gap:.35rem}.filters button{border:1px solid transparent;border-radius:2rem;padding:.5rem .85rem;min-height:44px;font-size:.8125rem;color:var(--muted)}.filters button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.filters button:hover{background:var(--surface-sunken)}.filters button span{font-size:.6875rem;margin-left:.35rem}.result-count{font-size:.75rem;color:var(--muted);white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.project{padding:1.6rem 1.7rem 1.5rem;border:1px solid var(--rule);border-radius:5px;background:var(--surface-raised);scroll-margin-top:5rem;min-width:0;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.project:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--rule))}.project-mark{display:grid;place-items:center;flex:none;width:3.7rem;height:3.7rem;border-radius:50%;background:var(--surface-sunken);color:var(--accent)}.project-mark svg{width:38px;height:38px}.project:nth-child(3n+2) .project-mark{border-radius:10px;transform:rotate(-5deg);color:var(--cool)}.project:nth-child(3n) .project-mark{border-radius:40% 60% 55% 45%;background:color-mix(in srgb,var(--accent) 9%,var(--surface-raised))}.project:target{border-top-color:var(--accent)}.project-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.project-number{font-size:.75rem;color:var(--accent);font-variant-numeric:tabular-nums}.status{color:var(--muted);font-size:.6875rem;letter-spacing:.04em;border:1px solid var(--rule);padding:.35rem .6rem;border-radius:2rem}.project-identity{display:flex;align-items:center;gap:.85rem}.monogram{display:grid;place-items:center;width:2.8rem;height:2.8rem;flex-shrink:0;background:var(--surface-sunken);border:1px solid var(--rule);border-radius:3px;color:var(--accent);font-family:var(--font-display);font-size:1.45rem;letter-spacing:-.025em}.discipline{font-size:.625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);line-height:1.5;margin-bottom:.3rem}.project h3{font-family:var(--font-display);font-size:1.95rem;font-weight:400;letter-spacing:-.02em;line-height:1.08;overflow-wrap:anywhere}.project-headline{font-size:1.0625rem;font-weight:500;line-height:1.5;color:var(--ink);margin-block:1.6rem .75rem;max-width:25rem}.project-description{font-size:.9375rem;line-height:1.75;max-width:30rem}.project-bottom{display:flex;flex-direction:column;gap:.4rem;padding-top:1rem;margin-top:auto}.project details{font-size:.875rem}.project summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;list-style:none;color:var(--muted)}.project summary:hover{color:var(--accent)}.project summary span{font-size:1.1rem}.project details[open] summary span{transform:rotate(45deg)}.project details p{font-size:.9375rem;line-height:1.75;margin-block:.4rem .8rem}.project-link{font-size:.8125rem;color:var(--accent);min-height:44px;display:inline-flex;align-items:center;align-self:flex-start;text-decoration:underline;text-underline-offset:5px}
.about{position:relative;padding-block:4rem 4.5rem}.about-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:8%;margin-top:2.5rem;align-items:center}.about-copy h3{font-family:var(--font-display);font-weight:400;font-size:clamp(2.7rem,4vw,3.5rem);line-height:1.08;letter-spacing:-.02em;margin-bottom:1.5rem}.about-copy h3 em{font-weight:400}.about-copy>p{font-size:1.0625rem;line-height:1.75;max-width:58ch;margin-top:1.25rem}.about-copy .text-link{margin-top:1rem}.process-note{padding:2rem;border:1px solid var(--rule);background:var(--surface-sunken);transform:rotate(2deg);max-width:22rem;margin-inline:auto}.process-note .eyebrow{font-size:.625rem}.process-note ol{list-style:none;padding:0;margin:1.6rem 0 0}.process-note li{font:400 2.1rem/1.6 var(--font-display);color:var(--ink);display:flex;align-items:baseline;gap:1rem;border-bottom:1px solid var(--rule)}.process-note li>span{font:400 .625rem/1 var(--font-body);color:var(--accent)}.process-note>svg{display:block;width:100px;height:33px;margin:1.1rem 0 0 auto;color:var(--accent)}
.contact-section{position:relative;padding-block:4rem 4.5rem}.contact-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:end;margin-top:2.5rem}.contact-layout h2{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,5vw,4.5rem);line-height:1.05;letter-spacing:-.02em}.contact-layout h2 em{font-weight:400}.contact-copy>p{font-size:1rem;line-height:1.75;max-width:30rem}.email-link{display:flex;align-items:center;gap:.75rem;justify-content:space-between;width:fit-content;max-width:100%;font-size:1.0625rem;color:var(--accent);padding-block:.5rem;min-height:44px;border-bottom:1px solid var(--rule);margin-top:1.4rem;overflow-wrap:anywhere}footer{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding-block:2rem 2.5rem;font-size:.8125rem;line-height:1.7;color:var(--muted);position:relative}footer:before{content:"";position:absolute;top:0;left:clamp(1.5rem,5.6vw,4.5rem);right:clamp(1.5rem,5.6vw,4.5rem);height:1px;background:var(--rule)}.footer-copyright{font-size:.6875rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.5rem}.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem 1.25rem;max-width:28rem}.footer-links a,.footer-links .account-button{display:flex;align-items:center;min-height:44px;font-size:.6875rem;text-transform:uppercase;letter-spacing:.07em}
@media(hover:hover) and (pointer:fine){.hero-portrait:hover .portrait-frame img{transform:scale(1.04)}.hero-portrait:hover .portrait-saguaro{transform:rotate(-3deg)}.project:hover{transform:translateY(-2px)}}
@media(max-width:1100px){.hero{column-gap:2.5rem}.hero-portrait{max-width:18.5rem}.portrait-note{left:0}.portrait-sun{width:56px;height:56px;right:-1.5rem;top:-2.1rem}.hero-description{font-size:1rem}.project{padding:1.4rem}.project h3{font-size:1.75rem}}
@media(max-width:850px){.hero{padding-top:3.5rem;column-gap:2rem;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.hero h1{font-size:clamp(3rem,7.1vw,4.5rem)}.hero-portrait{max-width:16rem;padding-inline:.5rem}.portrait-note{font-size:1.5rem}.portrait-note svg{width:55px}.portrait-saguaro{width:4.7rem;left:-1.3rem}.portrait-stamp{width:4.5rem;height:4.5rem;right:-.7rem;font-size:.5rem}.portrait-grid{inset:-.8rem -.4rem -.7rem -.7rem}.studio-line{margin-top:3rem;font-size:.625rem}.studio-line .studio-aside{font-size:1.125rem}.about-layout{gap:5%}.process-note{padding:1.5rem}.project-mark{width:3rem;height:3rem}.project-mark svg{width:32px;height:32px}}
@media(max-width:650px){
  html{scroll-padding-top:6rem}
  .header-inner{padding-inline:1rem;gap:.3rem .5rem;flex-wrap:wrap}.brand{font-size:1.3rem}.header-controls{gap:.5rem}.theme-menu>summary{min-width:36px;gap:.2rem}.theme-label{display:none}.sign-in-link{font-size:.6875rem;min-height:38px;gap:.35rem;padding:.4rem .7rem}.sign-in-link svg{display:none}
  .theme-panel{position:fixed;top:calc(var(--site-header-height,53px) + .5rem);left:1rem;right:1rem;width:auto;max-height:calc(100dvh - 5rem);overflow-y:auto}
  .hero{grid-template-columns:1fr;row-gap:3.5rem;padding-top:2.5rem}.studio-eyebrow{font-size:.5625rem;letter-spacing:.065em;gap:.45rem}.hero h1{font-size:clamp(2.8rem,13vw,4.6rem);margin-top:1.2rem}.hero-description{margin-top:1.5rem;max-width:32rem;font-size:1rem}.hero-actions{gap:.5rem 1rem;margin-top:1.3rem}.hero .primary-link{padding:.65rem 1rem;font-size:.8125rem}.hero .text-link{font-size:.75rem}.hero-portrait{max-width:17rem;margin:1.25rem auto 0}.portrait-note{left:0;top:-1.6rem;font-size:1.7rem}.portrait-note svg{width:65px}.portrait-sun{top:-2rem;right:-1.2rem}.portrait-saguaro{width:5.2rem;left:-1.1rem;bottom:-1.8rem}.portrait-stamp{right:-.5rem;bottom:-1.5rem}.hero-portrait figcaption{margin-top:2.8rem}.studio-line{margin:0;gap:.75rem;flex-wrap:wrap;justify-content:space-between;font-size:.55rem;padding-block:1rem}.studio-line p>span{margin-inline:.2rem}.studio-line .studio-aside{width:100%;text-align:center;font-size:1.2rem}
  .projects-section{padding-block:2.8rem 3rem}.section-heading{display:block}.section-heading h2{font-size:3.25rem;margin-top:1.3rem}.section-heading>p{max-width:25rem;margin-top:1rem}.filter-bar{display:block;margin-top:1.6rem}.filters{gap:0}.filters button{padding-inline:.55rem;font-size:.75rem}.result-count{margin-top:.7rem}.project-grid{grid-template-columns:1fr;gap:1rem}.project{padding:1.25rem}.project h3{font-size:1.8rem}.project-top{margin-bottom:1.3rem}.project-headline{margin-top:1.3rem;font-size:1rem}.project-bottom{margin-top:.5rem}
  .about,.contact-section{padding-block:3rem}.about-layout{grid-template-columns:1fr;gap:2.7rem;margin-top:1.7rem}.about-copy h3{font-size:3rem}.about-copy>p{font-size:1rem}.process-note{width:100%;max-width:20rem}.contact-layout{grid-template-columns:1fr;gap:1.5rem;margin-top:1.5rem}.contact-layout h2{font-size:3.5rem}.email-link{font-size:.9375rem}.email-link span{flex-shrink:0}footer{display:block;padding-block:1.5rem}.footer-links{justify-content:flex-start;margin-top:.8rem;gap:.1rem 1.15rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.project:hover{transform:none}}
