:root{color-scheme:light;--ink:#191919;--muted:#666;--line:#e4e4e4;--paper:#fff;--soft:#f7f7f7;--page:clamp(1.4rem,5vw,5.5rem);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}body.dialog-open{overflow:hidden}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:6px}img{display:block;width:100%;height:auto}figure,p{margin:0}h1,h2,h3{margin:0;font-weight:400}button:disabled{cursor:wait}::selection{background:#e3e3e3}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:20;padding:1rem;background:#fff;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{max-width:1700px;margin:auto;min-height:112px;padding:2rem var(--page);display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:center;gap:1rem}.brand-logo{width:64px;height:64px;max-width:64px;object-fit:contain;flex:none}.brand-type{display:flex;flex-direction:column;gap:.48rem}.wordmark{font-size:clamp(1.6rem,2.3vw,2.25rem);letter-spacing:.16em;line-height:1}.brand-detail{font-size:.55rem;letter-spacing:.37em;line-height:1.4}.site-header nav{display:flex;align-items:center;gap:clamp(1.2rem,3vw,3rem)}.site-header nav a{font-size:.79rem;min-height:44px;display:flex;align-items:center}.site-header nav a:hover{text-decoration:underline;text-underline-offset:.35rem}
main{max-width:1700px;margin:auto}.opening{padding:clamp(3.2rem,8vw,7rem) var(--page) clamp(4.5rem,8vw,8rem);min-height:calc(100dvh - 220px);display:flex;align-items:center}.opening-copy{max-width:790px;animation:arrive .65s ease-out both}.status-label{font-size:.69rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:2.5rem}.opening h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3.8rem,8.1vw,8.4rem);letter-spacing:-.065em;line-height:1.04;max-width:10ch;text-wrap:balance}.introduction{max-width:31ch;line-height:1.7;font-size:clamp(.95rem,1.3vw,1.08rem);color:var(--muted);margin-top:2.4rem}.opening-link{margin-top:2.2rem}.text-link{display:inline-flex;align-items:center;gap:1.5rem;min-height:44px;font-size:.8rem;border-bottom:1px solid var(--ink);padding-bottom:.2rem}.text-link:hover{color:var(--muted)}.opening.has-image{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,6rem);align-items:center;padding-top:2rem}.opening.has-image h1{font-size:clamp(3.8rem,6.4vw,6.9rem)}.opening-photo{background:var(--soft);overflow:hidden}.opening-photo img{aspect-ratio:1/1;object-fit:contain}.opening.has-image .status-label{margin-bottom:2rem}
.work-section,.about-section,.contact-section{padding:clamp(3rem,7vw,7rem) var(--page);border-top:1px solid var(--line)}.section-heading{margin-bottom:2.6rem}.section-heading h2,.about-section h2,.contact-section h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.1rem,4vw,3.4rem);letter-spacing:-.045em;line-height:1.15}.section-heading p{margin-top:1rem;color:var(--muted);font-size:.86rem;line-height:1.6}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,5vw,5rem) clamp(1rem,2.5vw,2.5rem)}.piece-card{width:100%;padding:0;background:none;border:0;text-align:left}.card-photo{display:block;overflow:hidden;background:var(--soft)}.card-photo img{aspect-ratio:4/5;object-fit:contain}.piece-card:hover .card-title{text-decoration:underline;text-underline-offset:.25em}.card-title{display:block;margin-top:1rem;font-size:.94rem;line-height:1.5}.card-material{display:block;margin-top:.25rem;font-size:.75rem;color:var(--muted);line-height:1.5}.about-section{display:grid;grid-template-columns:1fr 1.6fr;gap:2rem}.body-copy{max-width:64ch;font-size:1rem;color:var(--muted);line-height:1.9;white-space:pre-line;overflow-wrap:anywhere}.contact-links{display:flex;flex-wrap:wrap;gap:1.3rem 3rem;margin-top:2rem}.contact-links a{overflow-wrap:anywhere}
.site-footer{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;max-width:1700px;min-height:108px;padding:1.7rem var(--page);margin:auto;border-top:1px solid var(--line);font-size:.67rem;color:var(--muted)}.text-button{border:0;background:none;padding:.7rem 0;min-height:44px;font-size:.73rem;text-align:left;text-decoration:underline;text-underline-offset:.3rem}.text-button:hover{color:var(--ink)}.load-notice,.noscript{margin:0 var(--page) 2rem;font-size:.85rem;line-height:1.7;color:var(--muted)}.load-notice{padding:1.2rem;border:1px solid var(--line)}
dialog{border:0;padding:0;color:var(--ink);background:var(--paper)}dialog::backdrop{background:rgba(0,0,0,.42)}.piece-dialog{width:min(1250px,calc(100% - 3rem));max-height:calc(100dvh - 3rem);overscroll-behavior:contain}.dialog-close{position:sticky;top:0;margin-left:auto;display:flex;align-items:center;justify-content:center;gap:1rem;min-height:56px;padding:.6rem 1.4rem;border:0;background:#fff;z-index:1;font-size:.75rem}.dialog-close span{font-size:1.6rem;line-height:1}.piece-layout{display:grid;grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(1.5rem,4vw,4rem);padding:0 clamp(1.3rem,4vw,4rem) clamp(1.3rem,4vw,4rem)}.piece-gallery{display:grid;gap:1.5rem}.piece-gallery img{max-height:75dvh;object-fit:contain;background:var(--soft)}.piece-copy{padding:1rem 0 2rem}.piece-copy h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.3rem,4vw,3.7rem);letter-spacing:-.045em;line-height:1.12;overflow-wrap:anywhere}.piece-material{margin-top:1.2rem;font-size:.78rem;line-height:1.6;color:var(--muted)}.piece-copy .body-copy{margin-top:2rem;font-size:.92rem}.install-dialog{width:min(460px,calc(100% - 2rem));padding:0 1.8rem 2.6rem}.install-dialog .dialog-close{margin-right:-1rem}.install-dialog h2{font-family:Georgia,'Times New Roman',serif;font-size:2.4rem;letter-spacing:-.04em;margin:1rem 0 1.4rem}.install-dialog p{font-size:.9rem;line-height:1.8}.install-dialog .install-note{font-size:.76rem;color:var(--muted);margin-top:1rem}
@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:850px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opening.has-image{gap:2rem}.opening.has-image h1{font-size:clamp(3rem,7vw,5rem)}.about-section{grid-template-columns:1fr}.piece-layout{grid-template-columns:1fr}.piece-copy{padding-top:.5rem}}
@media(max-width:560px){.site-header{min-height:96px;padding-top:1.5rem;padding-bottom:1.5rem;gap:1rem}.brand{gap:.75rem}.brand-logo{width:48px;height:48px}.wordmark{font-size:1.52rem}.brand-detail{font-size:.48rem}.site-header nav{gap:.9rem}.site-header nav a{font-size:.7rem}.opening{min-height:calc(100dvh - 210px);padding-top:4rem;padding-bottom:5rem}.opening h1{font-size:clamp(3.6rem,16vw,5.5rem)}.status-label{font-size:.62rem;margin-bottom:2rem}.introduction{font-size:.94rem;margin-top:2rem}.opening.has-image{grid-template-columns:1fr;padding-top:2.2rem}.opening.has-image h1{font-size:clamp(3.6rem,15vw,5rem)}.opening.has-image .opening-photo{margin-top:1.2rem}.portfolio-grid{gap:2rem .85rem}.card-title{font-size:.83rem;margin-top:.7rem}.card-material{font-size:.68rem}.site-footer{align-items:flex-start;flex-direction:column;gap:.6rem;padding-top:1.5rem;padding-bottom:1.5rem}.piece-dialog{width:100%;max-height:100dvh;height:100dvh;margin:0}.piece-gallery{gap:1rem}.piece-copy{padding-bottom:1rem}.body-copy{font-size:.95rem}}
@media(max-width:440px){.site-header{flex-wrap:wrap;row-gap:.5rem}.site-header nav{width:100%;justify-content:flex-end}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
