:root{--paper:#f7f1e8;--ink:#322d26;--muted:#665b50;--accent:#ac3025;--border:#d9cec3;--gutter:clamp(1.25rem,5vw,5rem);color-scheme:light;scrollbar-color:var(--ink) var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:1rem;line-height:1.65}::selection{background:#e6bea6;color:var(--ink)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent)}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-.035em;line-height:1.05;text-wrap:balance}h1{font-size:clamp(3rem,6.4vw,6rem)}h2{font-size:clamp(2.25rem,4vw,4rem)}h3{font-size:1.2rem;font-weight:500;letter-spacing:-.02em;line-height:1.4}p{max-width:68ch}p+p{margin-top:1.1rem}.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}.skip-link{position:absolute;left:1rem;top:-10rem;background:var(--paper);padding:.7rem;z-index:10}.skip-link:focus{top:1rem}
.site-header{display:flex;align-items:center;justify-content:space-between;padding-block:1.75rem;border-bottom:1px solid var(--border);gap:2rem}.brand{display:block;width:158px;flex-shrink:0}.brand img{width:100%}nav{display:flex;align-items:center;gap:2.4rem}nav a{display:flex;gap:.5rem;align-items:center;text-decoration:none;font-size:.95rem}nav a[aria-current]{text-decoration:underline}nav svg{width:18px}.menu-toggle{border:0;background:none;color:var(--ink);padding:.6rem}
.cover{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:5vw;padding-block:4.75rem 5rem}.cover-text h1{max-width:9ch}.cover-text p{margin-top:1.75rem;max-width:30ch;color:var(--muted);font-size:1.1rem}.text-link{display:inline-flex;align-items:center;gap:1rem;font-size:.95rem;text-decoration:none;border-bottom:1px solid;padding-bottom:.45rem}.cover-text .text-link{margin-top:2rem}.cover-photo{display:block;position:relative;overflow:hidden;text-decoration:none}.cover-photo img{width:100%;max-height:620px;aspect-ratio:4/5;object-fit:cover;object-position:center 48%;transition:clip-path .24s cubic-bezier(.16,1,.3,1);clip-path:inset(0)}.cover-photo:hover img{clip-path:inset(1%)}.cover-photo span{display:block;margin-top:.85rem;font-size:.85rem;color:var(--muted)}
.work-section{padding-block:3rem 6rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.5rem}.empty-work{padding-block:3rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);max-width:100%}.empty-work p{color:var(--muted);max-width:44ch}.empty-work h2{font-size:2rem;margin-bottom:1rem}.empty-work a{display:inline-block;margin-top:1rem}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem 2.5rem;align-items:start}.project-tile:nth-child(even){margin-top:4rem}.project-tile a{text-decoration:none}.project-tile img{width:100%;aspect-ratio:4/5;object-fit:cover}.project-tile:nth-child(3n) img{aspect-ratio:4/3}.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1rem}.project-caption span{font-size:.85rem;color:var(--muted)}
.hello-section{background:#e9d5c6;padding-block:4.5rem}.hello-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem}.contact-button{display:inline-flex;align-items:center;gap:2.5rem;padding:1rem 1.5rem;background:var(--accent);color:#fff;text-decoration:none}.contact-button:hover{background:var(--ink);color:white}.site-footer{display:flex;gap:2rem;align-items:center;padding-block:2.5rem;color:var(--muted);font-size:.85rem}.footer-name{font-size:1rem;color:var(--ink);text-decoration:none;margin-right:auto}
.page-intro{padding-block:5rem 3rem}.page-intro p{margin-top:1.5rem;color:var(--muted)}.page-intro a{margin-top:2rem}.portfolio-section{padding-bottom:6rem;min-height:40vh}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;padding-block:5rem}.about-copy h1{margin-bottom:2rem}.about-copy p{color:var(--muted)}.about-copy a{margin-top:2rem}.portrait img{width:100%;aspect-ratio:3/4;object-fit:cover}.second-portrait{padding-bottom:5rem;display:flex;justify-content:center}.second-portrait img{max-width:660px;max-height:800px;object-fit:contain}.contact-page{padding-block:6rem 2rem;min-height:65vh}.contact-page p{margin-top:2rem;color:var(--muted)}.email-link{display:flex;align-items:center;gap:1.5rem;width:fit-content;font-size:clamp(1.1rem,3.3vw,2.9rem);margin-top:2rem;overflow-wrap:anywhere}.contact-page>.text-link{margin-top:2rem}.contact-mark{margin-top:5rem;opacity:.16;max-width:850px}.contact-mark img{width:100%}.project-detail{padding-block:3rem 5rem}.back-link{font-size:.9rem}.project-intro{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-block:3rem}.project-intro p{color:var(--muted)}.project-intro span{font-size:.85rem;display:block;margin-top:1rem}.project-photos{display:grid;gap:3rem;margin-bottom:3rem}.project-photos img{max-height:1100px;object-fit:contain;margin-inline:auto}.project-photos figcaption{margin-top:.75rem;font-size:.85rem;color:var(--muted)}
@media(max-width:700px){.site-header{padding-block:1rem;flex-wrap:wrap;gap:.75rem}.brand{width:126px}nav{gap:1.2rem;width:100%;justify-content:space-between}nav a{font-size:.85rem}body.js .menu-toggle{display:block}body.js nav{display:none}body.js nav.is-open{display:flex}.cover{grid-template-columns:1fr;gap:2.5rem;padding-block:3rem}.cover-text h1{max-width:12ch}.cover-photo img{max-height:530px;aspect-ratio:4/5}.cover-text p{max-width:40ch}.work-section{padding-block:1rem 3rem}.section-heading{align-items:start}.section-heading .text-link{font-size:.8rem;white-space:nowrap}.project-grid{grid-template-columns:1fr;gap:2.5rem}.project-tile:nth-child(even){margin-top:0}.project-caption{flex-wrap:wrap;gap:.2rem}.hello-section{padding-block:3rem}.hello-inner{align-items:start;flex-direction:column}.about-layout,.project-intro{grid-template-columns:1fr;gap:2.5rem;padding-block:3rem}.about-copy h1{margin-bottom:1.5rem}.page-intro{padding-block:3rem 2rem}.contact-page{padding-block:3rem 2rem}.site-footer{gap:1rem;font-size:.8rem}.site-footer .footer-name{font-size:.9rem}.project-intro{padding:0;margin-block:2rem}.project-photos{gap:2rem}.email-link svg{width:20px}}
.menu-toggle{display:none}
@media(max-width:700px){body.js .menu-toggle:not([hidden]){display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover-photo img{transition:none}}

/* Atelier homepage: identity and garments share the opening. */
.atelier-home{--paper:#faf7f1;--ink:#483e37;--muted:#706258;--accent:#483e37;--border:#ded6cb}
.atelier-home::selection{background:#f5b530;color:#483e37}
.atelier-wrap{width:calc(100% - 80px);max-width:1160px;margin-inline:auto}
.masthead{padding-top:20px;padding-bottom:52px}
.masthead-nav{justify-content:flex-end;gap:30px;min-height:44px}
body.js .masthead-nav{display:flex}
.masthead-nav a{min-height:44px;align-items:center;font-size:14px}
.masthead-nav a:hover,.atelier-header a:hover,.atelier-footer a:hover{text-decoration:underline}
.masthead-mark{display:block;width:40vw;max-width:600px;margin:18px auto 0;color:var(--ink)}
.atelier-mark{display:block;width:100%;height:auto;stroke:none;overflow:visible}
.atelier-heading{border-top:1px solid var(--border);padding-top:28px;margin-bottom:32px}
.atelier-heading h1{font-size:clamp(2.25rem,3.5vw,3rem);letter-spacing:-.03em;line-height:1.1}
.atelier-section{scroll-margin-top:100px}
.atelier-gallery{display:grid;grid-template-columns:1.55fr 1fr;column-gap:64px;row-gap:64px;align-items:start}
.atelier-photo{min-width:0}
.atelier-photo:first-child{grid-column:1;grid-row:1 / span 2}
.atelier-photo:nth-child(2){grid-column:2;grid-row:1;padding-top:104px}
.atelier-photo:nth-child(3){grid-column:2;grid-row:2}
.atelier-photo img{width:100%;height:auto}
.atelier-photo figcaption{margin-top:14px;color:var(--muted);font-size:14px;line-height:1.5}
.atelier-projects{padding-top:112px}
.atelier-footer{display:flex;align-items:center;gap:28px;margin-top:112px;padding-block:24px 32px;border-top:1px solid var(--border);font-size:14px;color:var(--muted)}
.atelier-footer a{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none}
.atelier-footer .footer-name{color:var(--ink);margin-right:auto;font-size:14px}
.atelier-footer svg{width:16px;height:16px}
.atelier-header{position:fixed;inset:0 0 auto;z-index:5;background:var(--paper);opacity:0;visibility:hidden;transition:opacity .2s ease-out,visibility .2s}
.atelier-header.is-visible{opacity:1;visibility:visible}
.atelier-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:72px;border-bottom:1px solid var(--border)}
.atelier-header .brand{width:112px;min-height:44px;display:flex;align-items:center}
.atelier-header-inner>a:last-child{display:flex;align-items:center;min-height:44px;font-size:14px;text-decoration:none}

.sun-ray{transform-box:view-box}
@media(max-width:1000px){.atelier-gallery{column-gap:40px;row-gap:48px}.atelier-photo:nth-child(2){padding-top:80px}.masthead-mark{width:48vw}.masthead{padding-bottom:40px}}
@media(max-width:700px){
  .atelier-wrap{width:calc(100% - 40px)}
  .masthead{padding-top:12px;padding-bottom:32px}
  .masthead-nav{width:auto;gap:24px;justify-content:flex-end;flex-wrap:wrap}
  .masthead-nav a{font-size:14px}
  .masthead-mark{width:100%;max-width:440px;margin-top:20px}
  .atelier-heading{padding-top:24px;margin-bottom:24px}
  .atelier-heading h1{font-size:2.25rem}
  .atelier-section{scroll-margin-top:84px}
  .atelier-gallery{display:flex;flex-direction:column;gap:48px}
  .atelier-photo{width:100%}
  .atelier-photo:nth-child(2){padding-top:0}
  .atelier-photo figcaption{margin-top:12px}
  .atelier-header-inner{min-height:64px}
  .atelier-header .brand{width:100px}
  .atelier-projects{padding-top:64px}
  .atelier-footer{margin-top:64px;gap:8px 20px;flex-wrap:wrap;padding-block:20px}
  .atelier-footer .footer-name{flex-basis:calc(100% - 100px)}
  .atelier-footer span{margin-right:auto}
}
@media(prefers-reduced-motion:reduce){.atelier-header{transition:none}}

/* An opened atelier piece, with photography at the centre. */
.piece-link{display:block;text-decoration:none}
.piece-photo{display:block;overflow:hidden}
.piece-photo img{clip-path:inset(0);transition:clip-path .24s cubic-bezier(.16,1,.3,1)}
.atelier-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px}
.atelier-photo figcaption svg{width:16px;height:16px}
@media(hover:hover){.piece-link:hover img{clip-path:inset(1%)}.atelier-photo:has(.piece-link:hover) figcaption{text-decoration:underline;text-underline-offset:5px}}
.piece-link:focus-visible{outline-offset:8px}
.piece-open{overflow:hidden;padding-right:var(--scrollbar-gap,0px)}
.piece-viewer{--paper:#faf7f1;--ink:#483e37;--muted:#706258;--accent:#483e37;--border:#ded6cb;background:var(--paper);color:var(--ink);border:0;padding:0;width:calc(100% - 80px);max-width:1120px;height:min(800px,calc(100dvh - 64px));max-height:calc(100dvh - 64px);margin:auto;overflow:hidden}
.piece-viewer::backdrop{background:rgb(50 45 38 / .5)}
.piece-viewer[open]{display:flex;flex-direction:column;animation:piece-arrive .18s ease-out}
.piece-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;margin-inline:32px;border-bottom:1px solid var(--border);flex-shrink:0}
.piece-permalink{font-size:14px;color:var(--muted);text-decoration:none}
.piece-permalink:hover{text-decoration:underline}
.piece-close{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 4px;border:0;background:none;color:var(--ink);font-size:14px;cursor:pointer}
.piece-close svg{width:18px;height:18px}
.piece-content{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:40px;padding:28px 32px 16px;min-height:0;flex:1}
.piece-gallery{display:flex;flex-direction:column;min-height:0;min-width:0}
.piece-stage{display:grid;position:relative;flex:1;min-height:0;min-width:0}
.piece-slide{grid-area:1/1;min-height:0;min-width:0;height:100%}
.piece-slide[hidden]{display:none}
.piece-slide img{width:100%;height:100%;object-fit:contain}
.piece-image-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font-size:14px;color:var(--muted)}
.piece-image-status[hidden]{display:none}
.piece-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;margin-top:12px;flex-shrink:0}
.piece-controls button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--border);background:none;color:var(--ink);cursor:pointer}
.piece-controls button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.piece-controls button:disabled{opacity:.35;cursor:default}
.piece-counter{font-size:14px;color:var(--muted);text-align:center}
.piece-copy{overflow:auto;padding:16px 8px 16px 0}
.piece-copy h2{font-size:clamp(2rem,3vw,2.75rem);line-height:1.1;margin-bottom:24px}
.piece-copy p{font-size:15px;line-height:1.7;white-space:pre-line;color:var(--muted)}
.piece-page{padding-block:40px 80px}
.piece-page header{margin-block:40px}
.piece-page h1{font-size:clamp(2.5rem,5vw,4rem);margin-bottom:24px}
.piece-page header p{max-width:50ch;white-space:pre-line;color:var(--muted)}
.piece-page-photos{display:grid;gap:48px;max-width:760px}
.piece-page-photos figcaption{font-size:14px;color:var(--muted);margin-top:12px}
@keyframes piece-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:700px){
 .piece-viewer{width:100%;max-width:none;height:100dvh;max-height:100dvh}
 .piece-topbar{min-height:64px;margin-inline:20px;gap:12px}
 .piece-content{display:flex;flex-direction:column;gap:20px;padding:20px 20px 12px;overflow:auto}
 .piece-copy{order:-1;overflow:visible;padding:0;flex-shrink:0}
 .piece-copy h2{font-size:2rem;margin-bottom:12px}
 .piece-copy p{font-size:14px;line-height:1.6}
 .piece-gallery{min-height:300px;flex:1;flex-shrink:0}
 .piece-stage{min-height:220px}
 .piece-controls{position:sticky;bottom:0;background:var(--paper);margin-top:8px;min-height:64px}
 .piece-page{padding-block:28px 48px}
}
@media(prefers-reduced-motion:reduce){.piece-photo img{transition:none}.piece-viewer[open]{animation:none}}
