/* Albina Photo — original editorial / photographic design system.
   Inspiration: refined gallery typography, asymmetry, cream paper, warm charcoal.
   No external CSS/fonts/scripts. */
:root {
  --paper:#f7f4ef; --paper-dark:#eeebe5; --ink:#282620; --ink-muted:#6e6a63;
  --moss:#777665; --accent:#90705e; --line:#dad6cf; --white:#fff;
  --serif:Georgia,"Iowan Old Style","Baskerville","Times New Roman",serif;
  --sans:Inter,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(22px,5.25vw,110px); --content:1660px; --radius:1px;
  --ease:cubic-bezier(.2,.75,.25,1);
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:110px }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
  font-size:15px; line-height:1.65; font-weight:400; -webkit-font-smoothing:antialiased }
button,input,textarea,select { font:inherit }
button { cursor:pointer }
a { color:inherit; text-decoration:none }
img { max-width:100%; display:block }
h1,h2,h3,p,figure { margin-top:0 }
h1,h2,h3 { font-weight:400 }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.045em; line-height:1.025 }
h1 em,h2 em { font-style:italic; font-weight:400 }
::selection { background:#dbd3c7; color:var(--ink) }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px }
[hidden] { display:none!important }
.page-pad { padding-left:var(--gutter); padding-right:var(--gutter) }
.skip-link { position:absolute; left:-9999px; top:2px; background:#fff; padding:10px; z-index:9999 }
.skip-link:focus { left:12px }
.eyebrow,.index-label { font:500 11px/1.6 var(--sans); letter-spacing:.18em; text-transform:uppercase; color:var(--ink-muted) }
.eyebrow-line { display:inline-block; width:23px; height:1px; background:currentColor; vertical-align:middle; margin-right:12px }
.accent-dot { color:var(--accent) }
.topline { border-bottom:1px solid var(--line); padding:10px var(--gutter); display:flex;
  align-items:center; justify-content:space-between; color:#77736e;
  letter-spacing:.18em; font-size:9px; text-transform:uppercase }
.site-header { height:95px; margin:auto; padding:0 var(--gutter); display:flex; align-items:center;
  justify-content:space-between; gap:32px; border-bottom:1px solid var(--line); position:relative; z-index:30;
  background:var(--paper) }
.brand { display:inline-flex; flex-direction:column; gap:0; flex-shrink:0 }
.brand-name { font-family:var(--serif); font-size:27px; line-height:1.1; letter-spacing:-.055em; white-space:nowrap }
.brand-name i { font-weight:400 }
.brand-subtitle { font-size:8px; letter-spacing:.29em; padding-top:5px; color:#79746c }
.desktop-nav { display:flex; gap:clamp(16px,2.5vw,40px); align-items:center; margin-left:auto }
.desktop-nav a { font-size:12px; letter-spacing:.015em; color:#68635d; position:relative; transition:color .25s }
.desktop-nav a:hover,.desktop-nav a.active { color:var(--ink) }
.desktop-nav a:after { content:""; display:block; height:1px; background:currentColor; position:absolute; bottom:-10px;
  width:100%; transform:scaleX(0); transform-origin:left; transition:transform .25s }
.desktop-nav a:hover:after,.desktop-nav a.active:after { transform:scaleX(1) }
.header-actions { display:flex; align-items:center; gap:14px }
.button { min-height:54px; padding:14px 28px; display:inline-flex; justify-content:space-between;
  align-items:center; gap:38px; border:1px solid var(--ink); text-transform:uppercase; font-size:10px;
  font-weight:650; letter-spacing:.11em; transition:background .25s,color .25s,transform .25s; white-space:nowrap }
.button:hover { transform:translateY(-2px) }
.button span { font-size:16px; font-weight:400; line-height:1 }
.button-small { min-height:40px; padding:9px 16px; gap:21px; font-size:10px }
.button-dark { background:var(--ink); color:var(--paper) }
.button-dark:hover { background:var(--accent); border-color:var(--accent) }
.button-outline { background:transparent; color:var(--ink) }
.button-outline:hover { background:var(--ink); color:var(--paper) }
.text-link { display:inline-flex; align-items:center; gap:22px; font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.1em; padding-bottom:8px; border-bottom:1px solid var(--ink);
  transition:gap .2s }
.text-link:hover { gap:31px }
.text-link span { font-size:16px; font-weight:400 }
.mobile-toggle,.mobile-nav { display:none }
.mobile-toggle { width:40px; height:40px; border:0; background:transparent; padding:8px }
.mobile-toggle span { display:block; height:1px; background:var(--ink); margin:6px 0; transition:transform .2s }
.mobile-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg) }
.mobile-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg) }
/* Hero: confident editorial asymmetry */
.hero { display:grid; grid-template-columns:minmax(0,1.01fr) minmax(0,.99fr); min-height:min(780px,82svh);
  border-bottom:1px solid var(--line) }
.hero-copy { padding:clamp(60px,7vw,138px) clamp(25px,5vw,120px) 35px 0; display:flex; flex-direction:column }
.hero-copy>.eyebrow { margin-bottom:clamp(35px,5.5vw,85px) }
.hero h1 { font-size:clamp(68px,7.3vw,143px); margin:0 0 30px; letter-spacing:-.065em }
.hero h1 em { color:var(--accent) }
.serif-light { font-style:italic; color:var(--moss) }
.hero-lead { font-size:clamp(14px,1.05vw,18px); max-width:400px; color:var(--ink-muted); line-height:1.82 }
.hero-ctas { margin-top:32px; display:flex; align-items:center; gap:36px; flex-wrap:wrap }
.hero-bottom { margin-top:auto; padding-top:45px; display:flex; justify-content:space-between;
  align-items:center; font-size:10px; letter-spacing:.13em; color:#8d887f }
.scroll-icon { font-size:28px; font-weight:300; color:var(--ink) }
.hero-visual { display:flex; flex-direction:column; padding:34px 0 25px 0; min-width:0 }
.hero-img-wrap { flex:1; position:relative; overflow:hidden; min-height:420px; background:#dfd6cb }
.hero-img-wrap:before { content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px #00000009; z-index:1; pointer-events:none }
.hero-img-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 35%; position:absolute; inset:0;
  transition:transform 1.8s var(--ease) }
.hero-img-wrap:hover img { transform:scale(1.025) }
.hero-caption { display:flex; gap:15px; justify-content:space-between; font-size:9px; color:#77716a;
  letter-spacing:.11em; padding-top:15px }
/* manifesto */
.manifesto { padding-top:clamp(85px,11vw,170px); padding-bottom:clamp(85px,11vw,170px);
  display:grid; grid-template-columns:.65fr 2fr .25fr; gap:40px; align-items:start; border-bottom:1px solid var(--line) }
.manifesto h2 { font-size:clamp(56px,7vw,120px); margin-bottom:27px }
.manifesto p:not(.eyebrow) { font-size:clamp(17px,2vw,26px); color:var(--ink-muted); line-height:1.65;
  max-width:710px; font-family:var(--serif) }
.manifesto-symbol { font-size:clamp(50px,7vw,110px); color:var(--moss); line-height:1 }
.section { padding-top:clamp(70px,9vw,142px); padding-bottom:clamp(80px,10vw,150px) }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:50px }
.section-heading h2 { font-size:clamp(58px,7vw,114px); margin:10px 0 0 }
.section-heading h2 em { color:var(--accent) }
.section-heading .text-link { margin-bottom:12px }
.featured-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(12px,2vw,30px) }
.featured-item { grid-column:span 6; min-width:0 }
.featured-item:nth-child(3n+1) { grid-column:span 7 }
.featured-item:nth-child(3n+2) { grid-column:span 5; padding-top:clamp(40px,8vw,135px) }
.featured-item:nth-child(3n) { grid-column:span 8; margin-left:18% }
.featured-cover { display:block; width:100%; padding:0; border:0; overflow:hidden; position:relative;
  background:var(--paper-dark); aspect-ratio:1.05; text-align:left }
.featured-item:nth-child(3n+2) .featured-cover { aspect-ratio:.74 }
.featured-item:nth-child(3n) .featured-cover { aspect-ratio:1.6 }
.featured-cover img { width:100%; height:100%; object-fit:cover; transition:transform .85s var(--ease) }
.featured-cover:hover img { transform:scale(1.05) }
.cover-arrow { background:var(--paper); width:44px; height:44px; position:absolute; right:16px; bottom:16px; z-index:2;
  display:grid; place-items:center; font-size:19px; opacity:0; transform:translateY(8px); transition:.25s }
.featured-cover:hover .cover-arrow { opacity:1; transform:translateY(0) }
.featured-meta { padding:13px 0 10px; display:flex; justify-content:space-between; align-items:baseline;
  border-bottom:1px solid var(--line); gap:16px }
.featured-meta h3 { font-family:var(--serif); font-size:clamp(21px,2.2vw,33px); letter-spacing:-.025em; margin:0 }
.featured-meta span { font-size:10px; color:var(--ink-muted); letter-spacing:.11em; text-transform:uppercase }
/* full width interlude */
.interlude { background:#e8e5df; padding-top:clamp(80px,10vw,155px); padding-bottom:clamp(80px,10vw,155px);
  display:grid; grid-template-columns:1fr 2fr; gap:50px }
.interlude-left { display:flex; justify-content:space-between; flex-direction:column }
.interlude-star { font-size:78px; color:var(--moss) }
.interlude h2 { font-size:clamp(52px,6.6vw,107px); margin:0 0 27px }
.interlude h2 em { color:var(--accent) }
.interlude p:not(.eyebrow) { color:var(--ink-muted); max-width:460px; font-size:16px; margin-bottom:24px }
.about-teaser { display:grid; grid-template-columns:1.07fr .93fr; gap:clamp(35px,10vw,170px); align-items:center }
.about-teaser-img { aspect-ratio:.94; background:#d9d1c8; overflow:hidden }
.about-teaser-img img { width:100%; height:100%; object-fit:cover; object-position:center 30% }
.about-teaser-copy h2 { font-size:clamp(56px,6vw,100px); margin:20px 0 30px }
.about-teaser-copy h2 em { color:var(--accent) }
.about-teaser-copy p:not(.eyebrow) { color:var(--ink-muted); font-size:17px; max-width:450px; margin-bottom:35px }
/* Shared page masthead */
.page-intro { padding-top:clamp(78px,9vw,142px); padding-bottom:clamp(56px,7vw,100px); border-bottom:1px solid var(--line) }
.page-intro h1 { font-size:clamp(65px,10vw,170px); margin:15px 0 36px; letter-spacing:-.065em }
.page-intro h1 em { color:var(--accent) }
.intro-bottom { display:flex; justify-content:space-between; align-items:end; gap:40px }
.intro-bottom>p { max-width:530px; font-size:17px; line-height:1.8; color:var(--ink-muted); margin:0 }
.intro-bottom .text-link { flex-shrink:0 }
/* Gallery and filters */
.portfolio-section { padding-top:38px; padding-bottom:clamp(90px,10vw,150px) }
.category-filters { display:flex; gap:10px; overflow:auto; padding-bottom:24px; margin-bottom:30px; border-bottom:1px solid var(--line) }
.category-filters button { background:transparent; border:1px solid var(--line); padding:10px 18px;
  color:#655f59; font-size:11px; letter-spacing:.02em; white-space:nowrap; transition:.2s }
.category-filters button.active,.category-filters button:hover { border-color:var(--ink); background:var(--ink); color:var(--paper) }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:65px 26px;
  padding-bottom:clamp(60px,8vw,100px) }
@media(min-width:901px) {
  .portfolio-grid[data-columns="2"] { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .portfolio-grid[data-columns="4"] { grid-template-columns:repeat(4,minmax(0,1fr)); gap:50px 20px }
}
.gallery-card { min-width:0 }
.gallery-card button { padding:0; display:block; width:100%; border:0; background:#e4ded5; text-align:left; position:relative; overflow:hidden }
.gallery-card img { width:100%; height:100%; object-fit:cover; aspect-ratio:.81; transition:transform .7s var(--ease) }
.gallery-card:nth-child(5n+2) { padding-top:60px }
.gallery-card:nth-child(5n+3) { padding-top:130px }
.gallery-card:nth-child(5n+4) { padding-top:22px }
.gallery-card:nth-child(5n+5) { padding-top:95px }
.gallery-card:nth-child(5n+2) img { aspect-ratio:.93 }
.gallery-card:nth-child(5n+3) img { aspect-ratio:.76 }
.gallery-card button:hover img { transform:scale(1.045) }
.gallery-card .gallery-overlay { position:absolute; z-index:2; inset:auto 0 0; padding:38px 21px 16px;
  background:linear-gradient(transparent, #0008); color:#fff; opacity:0; transition:opacity .3s }
.gallery-card button:hover .gallery-overlay { opacity:1 }
.gallery-info { display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid var(--line);
  gap:10px; padding:13px 0 }
.gallery-info strong { font:400 clamp(22px,2vw,30px) var(--serif) }
.gallery-info span { font-size:10px; letter-spacing:.05em; color:var(--ink-muted) }
.empty-state { padding:120px 0; font-family:var(--serif); font-size:25px; color:var(--ink-muted); text-align:center }
/* Services */
.services-grid { padding-top:clamp(45px,6vw,90px); padding-bottom:90px; display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(25px,4.5vw,75px) }
.service-card:nth-child(even) { margin-top:100px }
.service-image { width:100%; aspect-ratio:1.23; background:#e4ded5; object-fit:contain }
.service-content { padding-top:20px; display:flex; justify-content:space-between; align-items:start; gap:28px }
.service-content h2 { font-family:var(--serif); font-size:clamp(29px,3.1vw,46px); margin-bottom:10px; line-height:1.1 }
.service-content p { color:var(--ink-muted); max-width:390px; font-size:14px }
.service-content .service-price { font-size:10px; text-transform:uppercase; letter-spacing:.05em; margin-top:8px }
.service-price-link { display:none }
.service-index { font-size:10px; color:#8c867e; letter-spacing:.13em; white-space:nowrap }
.note-line { padding-top:30px; padding-bottom:40px; border-top:1px solid var(--line);
  display:flex; gap:18px; justify-content:space-between; color:#7b746c; letter-spacing:.14em; font-size:10px }
.wardrobe-grid { padding-top:65px }
/* About */
.about-layout { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(35px,10vw,180px);
  align-items:center; padding-top:clamp(65px,8vw,120px); padding-bottom:clamp(90px,10vw,160px) }
.about-photo { background:#ded7ce; aspect-ratio:.79; overflow:hidden }
.about-photo img { width:100%; height:100%; object-fit:cover; object-position:center 27% }
.about-story h2 { font-size:clamp(50px,5.6vw,95px); margin:20px 0 30px }
.multiline-text { white-space:pre-line; color:var(--ink-muted); font-size:17px; line-height:1.95; max-width:550px; margin-bottom:40px }
/* Contacts */
.contact-layout { display:grid; grid-template-columns:1.2fr .8fr; gap:50px; padding-top:clamp(85px,11vw,160px);
  padding-bottom:clamp(100px,14vw,200px); min-height:620px }
.contact-heading h1 { font-size:clamp(68px,8.5vw,155px); margin:25px 0 40px }
.contact-heading h1 em { color:var(--accent) }
.contact-description { font-size:18px; max-width:500px; color:var(--ink-muted) }
.contact-card { background:#e9e5df; padding:clamp(35px,5vw,84px); position:relative; margin-top:clamp(35px,9vw,110px) }
.contact-card-mark { position:absolute; top:27px; right:38px; color:var(--moss); font-size:48px }
.contact-card h2 { font-size:clamp(42px,5vw,70px); margin:12px 0 40px }
.contact-links { display:flex; flex-direction:column; gap:17px }
.contact-links a { font-family:var(--serif); font-size:clamp(21px,2.3vw,32px); letter-spacing:-.01em; border-bottom:1px solid #c6c1b7;
  padding-bottom:10px; display:flex; justify-content:space-between; transition:color .2s; overflow-wrap:anywhere }
.contact-links a:hover { color:var(--accent) }
.contact-hint { font-size:12px; color:var(--ink-muted); margin:48px 0 0 }
/* Footer / closing */
.closing { background:#33302b; color:var(--paper); padding-top:clamp(80px,9vw,150px); padding-bottom:clamp(80px,10vw,160px);
  text-align:center }
.closing .eyebrow { color:#bdb6ad }
.closing h2 { font-size:clamp(62px,9vw,160px); margin:35px 0 45px }
.closing h2 em { color:#c6ab97 }
.closing-link { display:inline-flex; gap:30px; align-items:center; border-bottom:1px solid #a8a49e;
  padding-bottom:12px; letter-spacing:.12em; text-transform:uppercase; font-size:12px }
.closing-link span { font-size:20px }
.site-footer { padding-top:62px; padding-bottom:25px; display:grid; grid-template-columns:1fr 1fr; gap:30px }
.footer-brand { font:400 40px var(--serif); letter-spacing:-.045em }
.site-footer p { color:var(--ink-muted); font-size:13px; margin:12px 0 20px }
.site-footer>nav { display:flex; justify-content:end; align-items:start; flex-wrap:wrap; gap:20px 35px; padding-top:12px }
.site-footer nav a { font-size:12px; color:#666159 }
.site-footer nav a:hover { text-decoration:underline }
.footer-bottom { grid-column:1/-1; border-top:1px solid var(--line); margin-top:40px; padding-top:24px; display:flex;
  gap:15px; justify-content:space-between; font-size:9px; color:#7b746a; letter-spacing:.1em }
#to-top:hover { color:var(--ink) }
/* Lightbox */
.lightbox { position:fixed; inset:0; z-index:1000; background:rgba(24,22,20,.98);
  color:#f8f5f1; display:grid; grid-template-columns:66px 1fr 66px; align-items:center; padding:35px 45px }
.lightbox figure { margin:0; min-width:0; height:100%; display:flex; justify-content:center; align-items:center;
  flex-direction:column; gap:13px }
.lightbox figure img { max-width:100%; max-height:calc(100vh - 125px); width:auto; height:auto; object-fit:contain;
  touch-action:pinch-zoom }
#lightbox-previous { display:none; pointer-events:none }
.lightbox figcaption { display:flex; justify-content:space-between; width:100%; color:#bab3a9;
  font-size:11px; letter-spacing:.07em; gap:25px }
.lightbox>button { border:0; color:#f3ece3; background:transparent; font-weight:200; font-size:30px }
.lightbox-close { position:absolute; right:27px; top:15px; width:45px; height:45px; font-size:38px!important }
.lightbox-prev,.lightbox-next { align-self:center }
.lightbox>button:hover { color:#d8b49c }
body.no-scroll { overflow:hidden }
/* Responsive */
@media(max-width:1200px) {
  .desktop-nav { gap:17px }
  .hero h1 { font-size:clamp(55px,6.3vw,90px) }
  .hero-copy { padding-right:28px }
  .hero-ctas { gap:20px }
  .button { gap:18px }
}
@media(max-width:900px) {
  :root { --gutter:24px }
  .desktop-nav,.desktop-contact { display:none }
  .mobile-toggle { display:block }
  .site-header { height:76px; position:sticky; top:0 }
  .mobile-nav:not([hidden]) { display:flex; position:fixed; z-index:25; top:76px; left:0; right:0; bottom:0;
    background:var(--paper); padding:35px var(--gutter) 45px; flex-direction:column; gap:17px; overflow:auto }
  .mobile-nav>a { font:400 clamp(32px,7vw,55px)/1.3 var(--serif); letter-spacing:-.05em; border-bottom:1px solid var(--line);
    padding:10px 0 16px }
  .nav-sign { margin-top:auto; letter-spacing:.16em; font-size:10px; color:var(--ink-muted) }
  .topline { display:none }
  .hero { grid-template-columns:1fr; min-height:auto }
  .hero-copy { padding-top:clamp(50px,9vw,90px); padding-bottom:35px; padding-right:0 }
  .hero h1 { font-size:clamp(65px,9vw,112px) }
  .hero-copy>.eyebrow { margin-bottom:35px }
  .hero-bottom { margin-top:30px; padding-top:8px }
  .hero-visual { padding:0 0 18px }
  .hero-img-wrap { min-height:0; aspect-ratio:1.35 }
  .manifesto { grid-template-columns:1fr auto; gap:10px }
  .manifesto>.index-label { grid-column:1/-1; margin-bottom:25px }
  .manifesto h2 { font-size:clamp(50px,9vw,85px) }
  .interlude { grid-template-columns:1fr }
  .interlude-left { flex-direction:row; align-items:center }
  .about-teaser { gap:35px }
  .about-teaser-copy h2 { font-size:clamp(45px,6vw,70px) }
  .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .gallery-card:nth-child(n) { padding-top:0 }
  .gallery-card:nth-child(even) { padding-top:65px }
  .services-grid { gap:35px 22px }
  .about-layout { gap:35px }
  .contact-layout { grid-template-columns:1fr; min-height:0; gap:30px }
  .contact-card { margin-top:10px }
}
@media(max-width:650px) {
  :root { --gutter:19px }
  body { font-size:16px }
  .brand-name { font-size:24px }
  .brand-subtitle { font-size:7px }
  .hero h1 { font-size:clamp(38px,10.5vw,48px); line-height:1.05; letter-spacing:-.055em; margin-bottom:16px }
  .hero-copy { padding-top:16px }
  .hero-copy>.eyebrow { margin-bottom:12px }
  .hero-lead { max-width:380px; font-size:16px; line-height:1.5; margin-bottom:0 }
  .hero-ctas { align-items:stretch; flex-direction:column; gap:16px; margin-top:18px }
  .hero-ctas .button { min-height:50px; font-size:11px }
  .hero-ctas .text-link { align-self:flex-start; min-height:44px }
  .hero-visual { order:-1; padding:16px 0 0 }
  .hero-img-wrap { height:clamp(260px,80vw,420px); aspect-ratio:auto; flex:none }
  .hero-caption { font-size:8px; gap:5px }
  .manifesto { padding-top:77px; padding-bottom:79px; grid-template-columns:1fr }
  .manifesto h2 { font-size:clamp(51px,13vw,80px) }
  .manifesto-symbol { justify-self:end; font-size:55px }
  .section { padding-top:75px; padding-bottom:80px }
  .section-heading { align-items:start; flex-direction:column; gap:22px; margin-bottom:32px }
  .section-heading h2 { font-size:clamp(50px,11.5vw,73px) }
  .featured-grid { display:grid; grid-template-columns:1fr; gap:35px }
  .featured-item:nth-child(n) { grid-column:auto; padding:0; margin:0 }
  .featured-item:nth-child(even) { margin-left:13% }
  .featured-cover,.featured-item:nth-child(n) .featured-cover { aspect-ratio:.99 }
  .featured-item:nth-child(even) .featured-cover { aspect-ratio:.82 }
  .cover-arrow { opacity:1; transform:none; width:38px; height:38px }
  .interlude { padding-top:80px; padding-bottom:90px; gap:25px }
  .interlude-star { font-size:48px }
  .interlude h2 { font-size:clamp(51px,10vw,73px) }
  .about-teaser { grid-template-columns:1fr; gap:48px }
  .about-teaser-img { aspect-ratio:1.05 }
  .about-teaser-copy h2 { margin-top:10px; font-size:clamp(55px,11vw,75px) }
  .page-intro { padding-top:65px; padding-bottom:45px }
  .page-intro h1 { font-size:clamp(56px,13.3vw,86px); margin:20px 0 30px }
  .intro-bottom { align-items:start; flex-direction:column; gap:25px }
  .intro-bottom>p { font-size:16px }
  .portfolio-grid { gap:35px 12px; grid-template-columns:repeat(2,minmax(0,1fr)) }
  .portfolio-section { padding-top:22px }
  .gallery-card:nth-child(even) { padding-top:45px }
  .gallery-card img { aspect-ratio:.73 }
  .gallery-info { flex-direction:column; gap:5px; padding:8px 0 }
  .gallery-info strong { font-size:19px }
  .gallery-info span { font-size:9px }
  .category-filters { margin-bottom:25px; gap:7px }
  .category-filters button { min-height:44px; padding:9px 12px; font-size:12px }
  .services-grid { grid-template-columns:1fr; gap:24px; padding-top:32px }
  .service-card { border-top:1px solid var(--line); padding-top:24px; min-width:0 }
  .service-card:nth-child(even) { margin:0 }
  .service-content { padding-top:0; gap:12px }
  .service-content>div { display:flex; flex-direction:column; align-items:flex-start; min-width:0; flex:1 }
  .service-content h2 { font-size:31px; order:-2; overflow-wrap:anywhere }
  .service-content p { font-size:16px; line-height:1.5; margin:0 0 16px }
  .service-content .service-price { order:-1; font:400 28px/1.2 var(--serif); color:var(--ink);
    text-transform:none; letter-spacing:-.025em; margin:0 0 16px; overflow-wrap:anywhere }
  .service-image { display:none }
  .service-price-link { display:inline-flex; align-items:center; min-height:44px; padding:10px 14px;
    border:1px solid var(--line); background:transparent; color:var(--ink); font-size:13px; text-align:left }
  .service-price-link:hover { border-color:var(--ink) }
  .note-line { flex-wrap:wrap; justify-content:start; font-size:9px }
  .about-layout { grid-template-columns:1fr; padding-top:45px; padding-bottom:85px; gap:60px }
  .about-photo { aspect-ratio:.91 }
  .about-story h2 { font-size:clamp(52px,11vw,76px) }
  .multiline-text { font-size:16px }
  .contact-layout { padding-top:60px; padding-bottom:85px }
  .contact-heading h1 { font-size:clamp(54px,12.7vw,85px) }
  .contact-card { padding:40px 25px }
  .contact-card-mark { top:15px; right:21px; font-size:39px }
  .closing { padding-top:80px; padding-bottom:95px }
  .closing h2 { font-size:clamp(48px,15vw,62px) }
  .site-footer { grid-template-columns:1fr; padding-top:49px }
  .site-footer>nav { justify-content:start; gap:15px 23px }
  .footer-brand { font-size:35px }
  .footer-bottom { margin-top:18px; flex-wrap:wrap; font-size:8px }
  .footer-bottom span:nth-child(2) { display:none }
  .lightbox { height:100svh; padding:52px 8px max(8px,env(safe-area-inset-bottom)); grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(0,1fr) }
  .lightbox figure { grid-column:1; grid-row:1; display:grid; min-height:0;
    grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; gap:10px }
  .lightbox figure img { max-height:100%; min-height:0; justify-self:center; grid-column:1; grid-row:1 }
  .lightbox #lightbox-previous:not([hidden]) { display:block }
  #lightbox-img { z-index:1 }
  .lightbox>button { font-size:25px }
  .lightbox-close { top:4px; right:8px; width:44px; height:44px }
  .lightbox-prev,.lightbox-next { display:none }
  .lightbox figcaption { font-size:10px; gap:12px; grid-column:1; grid-row:2 }
  #lightbox-caption { overflow-wrap:anywhere }
  #lightbox-count { flex-shrink:0 }
}
@media(max-width:374px) {
  .interlude h2 { font-size:clamp(42px,13vw,48px) }
  .about-teaser-copy h2 { font-size:clamp(44px,13.75vw,51px) }
}
@media(max-width:650px) and (prefers-reduced-motion:no-preference) {
  .motion-pending { opacity:0; transform:translateY(10px) }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important }
}
