:root{
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'Manrope',Arial,sans-serif;
  --text-xs:clamp(.75rem,.72rem + .12vw,.875rem);
  --text-sm:clamp(.875rem,.84rem + .12vw,1rem);
  --text-base:clamp(1rem,.96rem + .16vw,1.125rem);
  --text-xl:clamp(1.75rem,1.5rem + 1vw,2.5rem);
  --text-2xl:clamp(2.75rem,1.8rem + 3.4vw,5.5rem);
  --text-hero:clamp(4.5rem,2.5rem + 7.6vw,8rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  --space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --gutter:clamp(var(--space-6),4vw,var(--space-16));
  --color-bg:oklch(.956 .012 83);--color-surface:oklch(.976 .008 83);
  --color-surface-offset:oklch(.9 .018 83);--color-text:oklch(.29 .026 54);
  --color-text-muted:oklch(.46 .023 54);--color-text-inverse:oklch(.97 .009 83);
  --color-primary:oklch(.45 .07 47);--color-border:oklch(.29 .026 54 / .22);
  --radius-full:9999px;--radius-sm:.25rem;
}
body{overflow-wrap:break-word}
body:has(dialog[open]){overflow:hidden}
#header{display:flex;align-items:center;justify-content:space-between;min-height:100px;padding:var(--space-6) var(--gutter);gap:var(--space-6)}
.brand{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1;display:flex;align-items:center;min-height:44px;white-space:nowrap}
.eyebrow,.meta{font-size:var(--text-xs);font-weight:400}
.eyebrow{text-transform:uppercase;letter-spacing:.14em}
.header-right{display:flex;align-items:center;gap:var(--space-12)}
.header-right a{font-size:var(--text-sm);min-height:44px;display:flex;align-items:center}
.header-right a:hover,.text-link:hover{color:var(--color-primary)}
.skip{position:fixed;z-index:100;left:var(--space-4);top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg);transform:translateY(-160%)}
.skip:focus{transform:none}
.home-intro{padding:var(--space-20) var(--gutter) var(--space-12)}
.home-intro .eyebrow{text-align:center;margin-inline:auto}
.home-intro h1{font-family:var(--font-display);font-weight:400;font-size:var(--text-hero);text-align:center;line-height:1.02;letter-spacing:-.055em;margin-top:var(--space-3)}
.intro-baseline{display:flex;justify-content:space-between;align-items:flex-end;margin-top:var(--space-8);gap:var(--space-8)}
.intro-baseline p{font-size:var(--text-sm);max-width:32ch}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-8);font-size:var(--text-sm);min-height:44px;border-bottom:1px solid var(--color-border)}
.arrow-icon{display:inline-block;width:18px;height:18px;flex-shrink:0;vertical-align:-.2em}
.text-link>.arrow-icon{width:26px;height:26px}
.header-right a,.footer-links a{gap:8px}
.nav-contact{display:inline-flex;align-items:center;gap:7px}
.nav-contact .arrow-icon{width:16px;height:16px}
.hero-photo{display:block;width:100%;background:var(--color-surface-offset)}
.hero-photo img{width:100%;height:calc(100svh - 100px);min-height:480px;max-height:1120px;object-fit:cover;object-position:center 60%}
.section-label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding-bottom:var(--space-8)}
.section-label h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400}
.selected-section{padding:var(--space-24) var(--gutter) var(--space-16)}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-8);row-gap:var(--space-12);align-items:start}
.project-card{min-width:0}
.card-image{display:block;overflow:hidden;background:var(--color-surface-offset)}
.card-image img{width:100%;aspect-ratio:4/5;object-fit:cover}
.card-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4)}
.card-caption h3{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl)}
.card-caption p{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}
.card-caption .arrow-icon{width:28px;height:28px;margin-top:5px}
.project-card:hover .card-caption{color:var(--color-primary)}
.about-section{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-24);padding:var(--space-24) var(--gutter) var(--space-32);align-items:center}
.about-section img{width:100%;margin-inline:auto}
.about-copy{max-width:43ch}
.about-copy h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;line-height:1.05;letter-spacing:-.025em;margin-block:var(--space-6) var(--space-8)}
.about-copy p{font-size:var(--text-base);color:var(--color-text-muted);margin-bottom:var(--space-8)}
.catalog-heading{display:grid;grid-template-columns:1fr 1fr;padding:var(--space-20) var(--gutter) var(--space-16);align-items:end;gap:var(--space-12)}
.catalog-heading h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;line-height:1;letter-spacing:-.035em}
.catalog-heading p{font-size:var(--text-sm);max-width:33ch;color:var(--color-text-muted);margin-top:var(--space-6)}
.catalog-heading .eyebrow{margin-bottom:var(--space-6)}
.filters{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}
.filters button{display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);min-height:44px;min-width:160px;font-size:var(--text-sm);color:var(--color-text-muted)}
.filters button[aria-pressed=true]{color:var(--color-text)}
.filters button[aria-pressed=true]::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:calc(-1 * var(--space-6))}
.filters button:not([aria-pressed=true]){padding-left:14px}
.filters .filter-count{margin-left:auto;font-size:var(--text-xs);font-variant-numeric:tabular-nums}
.catalog-grid-wrap{padding:var(--space-6) var(--gutter) var(--space-24)}
.catalog-status{font-size:var(--text-xs);color:var(--color-text-muted);border-top:1px solid var(--color-border);margin-top:var(--space-20);padding-top:var(--space-4)}
.floating-nav{position:fixed;z-index:20;bottom:var(--space-6);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2);background:oklch(.27 .025 54 / .96);color:var(--color-text-inverse);border-radius:var(--radius-full);box-shadow:0 4px 24px oklch(.2 .03 54 / .16);max-width:calc(100vw - var(--space-8))}
.floating-nav a,.floating-nav button{font-size:var(--text-sm);white-space:nowrap;min-height:44px;display:flex;align-items:center;justify-content:center;padding-inline:var(--space-6);border-radius:var(--radius-full)}
.floating-nav a[aria-current=page]{background:oklch(.97 .009 83 / .15)}
.floating-nav a:hover,.floating-nav button:hover{background:oklch(.97 .009 83 / .1)}
.floating-nav .nav-menu{gap:var(--space-3);padding-inline:var(--space-4)}
.menu-symbol{font-size:var(--text-base);line-height:1}
.floating-nav :focus-visible{outline-color:var(--color-text-inverse)}
.project-heading{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);padding:var(--space-16) var(--gutter) var(--space-12);align-items:end}
.back-link{display:inline-flex;align-items:center;font-size:var(--text-sm);gap:var(--space-4);min-height:44px}
.project-heading h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;letter-spacing:-.025em;margin-bottom:var(--space-3)}
.project-heading .meta{color:var(--color-text-muted)}
.project-cover{display:block;background:none;margin-inline:auto;border:none;width:calc(100% - 2 * var(--gutter));max-width:1000px;cursor:zoom-in}
.project-cover img{width:100%;height:auto;max-width:100%;object-fit:contain}
.project-description{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);padding:var(--space-16) var(--gutter) var(--space-20)}
.project-description p{font-size:var(--text-base);max-width:43ch;color:var(--color-text-muted)}
.project-description dl{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);font-size:var(--text-sm)}
.project-description dt{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}
.project-description dd{margin:0}
.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-6);margin:0 var(--gutter) var(--space-12)}
.gallery-heading h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400}
.gallery-tabs{display:flex;gap:var(--space-6)}
.gallery-tabs button{min-height:44px;font-size:var(--text-sm);color:var(--color-text-muted);border-bottom:1px solid transparent}
.gallery-tabs button[aria-pressed=true]{color:var(--color-text);border-color:var(--color-text)}
.photo-stream{display:flex;flex-direction:column;gap:var(--space-16);padding:0 var(--gutter) var(--space-24)}
.gallery-image{display:block;width:100%;max-width:1000px;margin-inline:auto;cursor:zoom-in;background:var(--color-surface-offset)}
.gallery-image img{width:100%;height:auto}
.single-photo-note{font-size:var(--text-xs);color:var(--color-text-muted);padding:0 var(--gutter) var(--space-16)}
.next-project{display:block;padding:var(--space-16) var(--gutter) var(--space-24);border-top:1px solid var(--color-border)}
.next-project .eyebrow{color:var(--color-text-muted)}
.next-project h2{display:flex;justify-content:space-between;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;margin-top:var(--space-4)}
.next-project:hover{color:var(--color-primary)}
.next-project .arrow-icon{width:clamp(36px,5vw,64px);height:clamp(36px,5vw,64px);align-self:center}
#footer{margin:0 var(--gutter);padding:var(--space-12) 0 calc(var(--space-32) + var(--space-6));border-top:1px solid var(--color-border);display:flex;align-items:start;justify-content:space-between;gap:var(--space-12)}
.footer-name{font-family:var(--font-display);font-weight:500;font-size:var(--text-xl)}
.footer-description{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2)}
.footer-links{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--text-xs)}
.footer-links a{min-height:44px;display:flex;align-items:center}
.footer-links .attribution{font-size:var(--text-xs);color:var(--color-text-muted)}
dialog{color:var(--color-text);border:0}
dialog::backdrop{background:oklch(.15 .012 54 / .68)}
.menu-dialog{width:min(560px,calc(100vw - var(--space-8)));max-height:calc(100dvh - var(--space-8));margin:auto;padding:var(--space-8);background:var(--color-bg)}
.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}
.dialog-header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400}
.close-button{display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);min-width:44px;min-height:44px}
.menu-links{display:flex;flex-direction:column;padding-block:var(--space-10)}
.menu-links a{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;line-height:1.3;min-height:60px}
.menu-links a:hover{color:var(--color-primary)}
.lightbox{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100dvh;background:oklch(.18 .012 54);color:var(--color-text-inverse);padding:var(--space-6);margin:0}
.lightbox-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--space-4)}
.lightbox .dialog-header h2{font-family:var(--font-body);font-size:var(--text-sm);font-weight:400}
.lightbox .close-button{color:var(--color-text-inverse)}
.lightbox-image{width:100%;height:100%;object-fit:contain;background:transparent}
.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-8);font-size:var(--text-sm)}
.lightbox-controls button{min-width:48px;min-height:48px;color:var(--color-text-inverse);font-size:var(--text-xl);font-family:var(--font-display)}
.lightbox-controls button:disabled{opacity:.35;cursor:default}
.lightbox-controls .arrow-icon{width:28px;height:28px}
.lightbox :focus-visible{outline-color:var(--color-text-inverse)}
.image-fallback{display:flex;align-items:center;justify-content:center;min-height:280px;background:var(--color-surface-offset);color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-8)}
.empty-page{padding:var(--space-24) var(--gutter)}
.empty-page h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;margin-bottom:var(--space-8)}
.noscript{padding:var(--space-8) var(--gutter)}
.intro-statement{font-family:var(--font-display);font-size:clamp(2.25rem,1.4rem + 2.2vw,3.75rem);line-height:1.1;text-align:center;margin:var(--space-8) auto 0;max-width:26ch}
.intro-baseline p{max-width:44ch;line-height:1.8}
.intro-actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3);flex-shrink:0}
.intro-actions .text-link{align-self:stretch}
.quiet-link{font-size:var(--text-xs);min-height:44px;display:inline-flex;align-items:center;color:var(--color-text-muted)}
.editorial-section{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-24);padding:var(--space-24) var(--gutter);border-top:1px solid var(--color-border);margin-inline:var(--gutter);padding-inline:0}
.editorial-heading h2,.contact-copy h2,.project-inquiry h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;letter-spacing:-.035em;line-height:1.07;margin:var(--space-6) 0 var(--space-8)}
.editorial-heading>p:last-child,.section-description,.contact-copy>p:not(.eyebrow),.project-inquiry p:not(.eyebrow){font-size:var(--text-sm);line-height:1.85;color:var(--color-text-muted);max-width:44ch}
.service-list article,.process-list li{display:grid;grid-template-columns:24px 1fr 44px;gap:var(--space-6);padding:var(--space-8) 0;border-top:1px solid var(--color-border)}
.service-list article:first-child,.process-list li:first-child{padding-top:0;border-top:0}
.service-list h3,.process-list h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;line-height:1.2;margin-bottom:var(--space-4)}
.service-list p,.process-list p{font-size:var(--text-sm);line-height:1.85;color:var(--color-text-muted)}
.item-number{font-size:var(--text-xs);padding-top:var(--space-2);color:var(--color-text-muted)}
.service-list article>a{font-family:var(--font-display);font-size:var(--text-xl);min-height:44px;min-width:44px;display:flex;align-items:flex-start;justify-content:center}
.service-list article>a .arrow-icon{width:28px;height:28px;margin-top:5px}
.process-list{list-style:none;padding:0;margin:0}
.process-list li{grid-template-columns:24px 1fr}
.section-label>div>.eyebrow{margin-bottom:var(--space-3);color:var(--color-text-muted)}
.section-end-link{display:flex;justify-content:flex-end;margin-top:var(--space-10)}
.concept-section{background:var(--color-surface-offset)}
.section-description{max-width:65ch;margin:0 0 var(--space-10)}
.catalog-group-title{grid-column:1/-1;font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;padding-top:var(--space-6);border-top:1px solid var(--color-border)}
.catalog-group-title h2{font:inherit}
.catalog-group-title p{font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-3)}
.faq-list details{border-top:1px solid var(--color-border)}
.faq-list details:last-child{border-bottom:1px solid var(--color-border)}
.faq-list summary{font-size:var(--text-sm);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-6) 0;min-height:70px;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-size:var(--text-xl);font-family:var(--font-display)}
.faq-list details[open] summary::after{content:"−"}
.faq-list details p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.85;padding-bottom:var(--space-6)}
.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-24);padding:var(--space-24) var(--gutter);background:var(--color-surface-offset);scroll-margin-top:var(--space-8)}
.contact-copy .text-link{margin-top:var(--space-8)}
.contact-number{display:block;width:max-content;font-size:var(--text-sm);min-height:44px;line-height:44px;margin-top:var(--space-4)}
.inquiry-form{display:flex;flex-direction:column;align-items:stretch;max-width:600px}
.form-heading{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-8)}
.inquiry-form label{font-size:var(--text-xs);margin-bottom:var(--space-2)}
.inquiry-form input,.inquiry-form select,.inquiry-form textarea{width:100%;min-width:0;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent;padding:var(--space-3) 0;color:var(--color-text);font:inherit;font-size:16px;line-height:1.6;margin-bottom:var(--space-6)}
.inquiry-form textarea{resize:vertical;min-height:100px}
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder{color:var(--color-text-muted);opacity:1}
.inquiry-form .text-link{align-self:flex-start;cursor:pointer}
.inquiry-form .form-note{font-size:var(--text-xs);line-height:1.8;color:var(--color-text-muted);margin-top:var(--space-6);max-width:55ch}
.inquiry-result{border-top:1px solid var(--color-border);margin-top:var(--space-6);padding-top:var(--space-6);font-size:var(--text-sm);line-height:1.8}
.inquiry-result[hidden]{display:none}
.inquiry-result .text-link{margin-top:var(--space-4)}
.project-inquiry{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-12);padding:var(--space-16) var(--gutter) var(--space-24);border-top:1px solid var(--color-border)}
.project-inquiry .text-link{flex-shrink:0}
.card-image img{transition:transform .7s cubic-bezier(.2,.6,.3,1)}
@media(hover:hover){.project-card:hover .card-image img{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.card-image img{transition:none}.project-card:hover .card-image img{transform:none}}
@media(min-width:1800px){.home-intro{padding-top:var(--space-12)}}
@media(max-width:760px){
  #header{min-height:84px;padding-block:var(--space-4)}
  .brand{font-size:var(--text-xl)}
  .header-right a{display:none}
  .header-right{max-width:112px;min-width:0}
  .header-right .eyebrow{letter-spacing:.06em;font-size:var(--text-xs);line-height:1.4}
  .home-intro{padding-top:var(--space-12);padding-bottom:var(--space-8)}
  .home-intro h1{font-size:clamp(3.6rem,15.8vw,6rem);letter-spacing:-.055em;margin-top:var(--space-4)}
  .intro-baseline{align-items:flex-start;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}
  .intro-baseline p{max-width:none}
  .intro-baseline .text-link{align-self:flex-end}
  .hero-photo img{height:calc(100svh - 84px);min-height:480px;max-height:900px;object-position:53% center}
  .selected-section{padding-block:var(--space-16)}
  .section-label{align-items:flex-start;gap:var(--space-4)}
  .section-label .text-link{font-size:var(--text-xs);gap:var(--space-4)}
  .portfolio-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-12)}
  .project-card{width:100%;margin:0}
  .card-caption{padding-top:var(--space-3)}
  .about-section{grid-template-columns:1fr;gap:var(--space-10);padding-block:var(--space-8) var(--space-20)}
  .about-section img{width:100%;margin-inline:auto}
  .about-copy h2{font-size:var(--text-2xl)}
  .catalog-heading{grid-template-columns:1fr;padding-block:var(--space-12) var(--space-10);gap:var(--space-8)}
  .catalog-heading .catalog-title{grid-row:1}
  .catalog-heading h1{font-size:var(--text-2xl)}
  .catalog-heading p{margin-top:var(--space-4)}
  .filters{flex-direction:row;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}
  .filters button,.filters button:not([aria-pressed=true]){min-width:0;padding:0;gap:var(--space-2)}
  .filters button[aria-pressed=true]::before{display:none}
  .filters button[aria-pressed=true]{border-bottom:1px solid var(--color-text)}
  .catalog-grid-wrap{padding-top:0;padding-bottom:var(--space-16)}
  .floating-nav{bottom:var(--space-4);gap:0;padding:var(--space-2)}
  .floating-nav a,.floating-nav button{padding-inline:var(--space-4);font-size:var(--text-sm)}
  .project-heading{grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--space-8)}
  .project-cover{width:calc(100% - 2 * var(--gutter))}
  .project-description{grid-template-columns:1fr;gap:var(--space-8);padding-block:var(--space-10) var(--space-12)}
  .project-description dl{gap:var(--space-8)}
  .gallery-heading{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8)}
  .gallery-tabs{gap:var(--space-4)}
  .gallery-tabs button{font-size:var(--text-xs)}
  .photo-stream{gap:var(--space-8);padding-inline:var(--gutter);padding-bottom:var(--space-12)}
  .next-project{padding-block:var(--space-12) var(--space-16)}
  .next-project h2{font-size:var(--text-2xl)}
  #footer{flex-direction:column;gap:var(--space-8);padding-top:var(--space-8)}
  .footer-links{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:var(--space-6)}
  .footer-links .attribution{flex-basis:100%}
  .menu-dialog{padding:var(--space-6)}
  .lightbox{padding:var(--space-4)}
  .lightbox .dialog-header h2{font-size:var(--text-xs);max-width:21ch}
  .intro-statement{font-size:2.25rem;margin-top:var(--space-6)}
  .intro-actions{align-items:flex-start;width:100%}
  .intro-baseline p{max-width:40ch}
  .editorial-section{grid-template-columns:1fr;gap:var(--space-10);padding-block:var(--space-16)}
  .service-list article{gap:var(--space-4);grid-template-columns:20px 1fr 32px}
  .service-list article>a{min-width:32px}
  .section-description{font-size:var(--text-sm)}
  .contact-section{grid-template-columns:1fr;gap:var(--space-12);padding-block:var(--space-16)}
  .contact-copy h2,.editorial-heading h2,.project-inquiry h2{font-size:clamp(2.4rem,10vw,3.5rem)}
  .project-inquiry{flex-direction:column;align-items:flex-start;gap:var(--space-8);padding-block:var(--space-12) var(--space-16)}
  .floating-nav a,.floating-nav button,.floating-nav .nav-menu{padding-inline:var(--space-3);font-size:.8rem}
  .floating-nav .nav-menu{gap:var(--space-2)}
  .catalog-group-title{font-size:var(--text-xl)}
}
