@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{--cream:#f8f6f2;--ink:#282622;--muted:#77736e;--line:#d8d3cd;--rose:#b29a9a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%}.shell{width:min(1400px,calc(100% - 9%));margin-inline:auto}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font:29px 'Libre Caslon Display',Georgia,serif;white-space:nowrap}.site-header nav{display:flex;gap:44px}.site-header nav a,.eyebrow,.section-kicker,.hero-sub,.section-heading p,.contact>p:not(.section-kicker),.footer,.text-button,.contact-button,.menu-toggle{font-size:11px;letter-spacing:.135em;text-transform:uppercase}.site-header nav a{font-size:11px;transition:opacity .2s}.site-header nav a:hover{opacity:.55}.menu-toggle{display:none;background:none;border:0}.hero{padding-block:28px 42px;min-height:490px;display:grid;grid-template-columns:1fr 1.06fr;gap:5%;align-items:center}.hero-copy{padding-bottom:10px}.eyebrow{letter-spacing:.22em}.hero h1{font:clamp(76px,8vw,143px)/.91 'Libre Caslon Display',Georgia,serif;letter-spacing:-.042em;margin:50px 0 27px}.rose-rule{display:block;width:55px;height:2px;background:var(--rose)}.hero-sub{color:var(--muted);margin-top:25px}.hero-image{height:480px;overflow:hidden}.hero-image img{height:100%;object-fit:cover;object-position:center top}.section{padding-top:55px}.section-kicker{color:var(--muted);margin:0 0 12px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:22px}.section-heading h2,.bottom-section h2{font:clamp(38px,4vw,55px)/1.05 'Libre Caslon Display',Georgia,serif;margin:0}.section-heading p{color:var(--muted);margin:0 0 7px;letter-spacing:.035em}.digitals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo{position:relative;display:block;padding:0;background:#e8e3df;border:0;cursor:zoom-in;overflow:hidden}.photo:focus-visible{outline:3px solid var(--rose);outline-offset:3px}.photo img{height:100%;object-fit:cover;transition:transform .45s ease}.digitals-grid .photo{aspect-ratio:.72}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.work-grid .photo{aspect-ratio:.89}.work-grid .extra{display:none}.work-grid.expanded .extra{display:block}.text-button{margin:26px auto 0;padding:13px 4px;display:block;border:0;border-bottom:1px solid var(--ink);background:none;cursor:pointer}.text-button span{margin-left:20px}.bottom-section{margin-top:78px;padding:48px 0 60px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:6%}.about{padding-right:5%;border-right:1px solid var(--line)}.bottom-section h2{font-size:clamp(32px,3.2vw,48px);margin:16px 0 12px}.about>p:last-child{font-size:16px;line-height:1.65;color:var(--muted);max-width:380px}.contact>p:not(.section-kicker){color:var(--muted);letter-spacing:.05em}.contact-button{display:inline-flex;background:var(--ink);color:white;padding:16px 23px;gap:50px;margin-top:15px;transition:background .2s}.contact-button:hover{background:#62564e}.footer{border-top:1px solid var(--line);padding:22px 0 32px;color:var(--muted);display:flex;justify-content:space-between}.lightbox{border:0;padding:55px 70px 30px;background:#1c1b1a;color:#fff;max-width:100vw;max-height:100vh;width:100vw;height:100vh;overflow:hidden}.lightbox::backdrop{background:#1c1b1a}.lightbox figure{margin:0;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.lightbox figure img{max-width:calc(100vw - 200px);max-height:calc(100vh - 125px);width:auto;height:auto;object-fit:contain}.lightbox figcaption{font-size:12px;padding-top:14px;letter-spacing:.1em}.lightbox button{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;font-size:44px}.lightbox .close{right:25px;top:8px}.lightbox .prev{left:20px;top:45%}.lightbox .next{right:20px;top:45%}@media(hover:hover){.photo:hover img{transform:scale(1.035)}}@media(max-width:850px){.shell{width:calc(100% - 40px)}.site-header{height:72px}.wordmark{font-size:23px}.site-header nav{gap:16px}.site-header nav a{font-size:10px}.hero{min-height:0}.hero h1{font-size:clamp(54px,9vw,90px)}.hero-image{height:390px}.digitals-grid{gap:8px}.work-grid{gap:9px}}@media(max-width:620px){.shell{width:calc(100% - 32px)}.site-header{height:68px}.wordmark{font-size:23px}.menu-toggle{display:block;cursor:pointer}.menu-toggle span{margin-left:8px}.site-header nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--cream);z-index:5;padding:23px 16px;box-shadow:0 8px 15px #0000000d;flex-direction:column;gap:23px}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;gap:26px;padding-top:38px}.hero-copy{order:1}.hero-image{order:0;height:auto;aspect-ratio:1.28}.hero h1{font-size:clamp(64px,16vw,100px);margin:25px 0}.hero-sub{font-size:10px}.section{padding-top:44px}.section-heading{align-items:start;flex-direction:column;gap:5px}.section-heading p{font-size:10px}.digitals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bottom-section{grid-template-columns:1fr;gap:40px;margin-top:55px;padding:35px 0}.about{border-right:0;border-bottom:1px solid var(--line);padding:0 0 25px}.lightbox{padding:60px 42px 35px}.lightbox figure img{max-width:calc(100vw - 85px)}.lightbox .prev{left:2px}.lightbox .next{right:2px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo img{transition:none}}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:22px}.contact-links a{font-size:12px;color:var(--muted);overflow-wrap:anywhere;text-underline-offset:4px}.contact-links a:hover,.footer a:hover{text-decoration:underline}.footer{gap:20px}.footer a{color:var(--muted)}

/* v1.2: two-stage portfolio reveal, preserving the original three-column layout. */
.work-grid .photo[hidden],.text-button[hidden]{display:none}
.work-grid .extra:not([hidden]){display:block}
.gallery-status{margin:24px 0 0;text-align:center;color:var(--muted);font-size:11px;letter-spacing:.08em}
.gallery-status + .text-button{margin-top:8px}
@media(prefers-reduced-motion:reduce){.photo img{transition:none}}
