:root{--ink:#20201e;--muted:#77756e;--line:#e7e5df;--accent:#a73f2c;--paper:#faf9f6}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:white;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button,a,input{outline-offset:5px}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}.skip{position:absolute;top:-80px}.skip:focus{top:0;background:white;z-index:10;padding:16px}.masthead{max-width:1280px;margin:auto;padding:35px 5%;display:flex;justify-content:space-between;align-items:center;gap:40px}.brand{display:block;width:min(60%,610px)}.logo-crop{display:block;position:relative;width:100%;aspect-ratio:3/1;overflow:hidden}.logo-crop img{position:absolute;width:163.4%;max-width:none;left:0;top:0}.contacts{font-size:14px;line-height:1.5;min-width:220px}.contacts strong{font-size:18px;display:block}.contacts a{display:block}.contacts address{font-style:normal;margin:5px 0 12px}.contacts small{font-size:11px;color:var(--muted)}#gallery{position:relative;max-width:1600px;margin:auto}.track{display:flex;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-x:contain}.track::-webkit-scrollbar{display:none}.slide{flex:0 0 100%;position:relative;scroll-snap-align:start;margin:0;min-width:0}.slide picture{display:block;height:min(65vw,68vh);min-height:300px}.slide img{display:block;height:100%;width:100%;object-fit:contain}.caption{position:absolute;bottom:28px;left:6%;max-width:80%;padding:13px 19px;background:rgba(35,33,31,.72);backdrop-filter:blur(12px);color:white;border-radius:3px;opacity:0;transform:translateY(5px);transition:opacity .45s,transform .45s;pointer-events:none;font-size:14px}.caption strong{font-weight:500}.caption span{display:block;font-size:12px;opacity:.7;margin-top:5px}.slide.reveal .caption,.slide:focus-within .caption{opacity:1;transform:none}.gallery-bar{border-top:1px solid var(--line);margin:22px 5% 0;padding:20px 0;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:2.1px;color:var(--muted)}.controls{display:flex;align-items:center;gap:14px}.controls button{border:1px solid var(--line);background:white;width:38px;height:38px;border-radius:50%;font-size:20px}.controls button:hover{background:var(--paper)}#counter{font-size:12px;color:var(--muted);margin-right:12px;font-variant-numeric:tabular-nums}#gallery-error{text-align:center;color:var(--accent)}footer{max-width:1280px;margin:10px auto 0;padding:26px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}footer a{color:var(--ink)}@media(max-width:640px){.masthead{padding:22px 6%;display:block}.brand{width:100%;max-width:420px}.contacts{display:grid;grid-template-columns:1fr 1fr;font-size:12px;column-gap:12px;margin-top:8px}.contacts strong{font-size:14px}.contacts address{margin:0}.contacts small{grid-column:2;grid-row:2/4;font-size:10px}.slide picture{height:55vh;min-height:280px}.caption{bottom:16px}.gallery-bar{margin-top:12px}.eyebrow{font-size:8px;letter-spacing:1px}.controls{gap:7px}#counter{margin-right:3px}footer{flex-direction:column;padding-bottom:24px}}@media(prefers-reduced-motion:reduce){.track{scroll-behavior:auto}.caption{transition:none}}
@media(max-width:640px){.slide picture{height:auto;min-height:0}.slide img{height:auto;max-height:70vh}.track{align-items:center}}

/* Compact white header, viewport gallery, solid readable controls. */
.masthead{background:#fff;padding-top:14px;padding-bottom:14px}
.brand{width:min(60%,270px)}
.caption{background:#23211f;backdrop-filter:none}
.caption span{opacity:1}
footer{flex-wrap:wrap;align-items:center}.fiscal-data{line-height:1.6}
@media(min-width:900px){
 body:not(.admin) .masthead{height:120px;width:100%;max-width:none;margin:0;padding:14px 4%;gap:24px;background:#fff}
 body:not(.admin) .brand{width:270px;flex-shrink:0}
 body:not(.admin) .contacts{font-size:12px;min-width:200px}
 body:not(.admin) .contacts strong{font-size:15px}
 body:not(.admin) .contacts address{margin-bottom:0}
 #gallery{max-width:none;width:100%;height:calc(100vh - 120px);height:calc(100svh - 120px);margin:0;display:flex;flex-direction:column}
 .track{flex:1;min-height:0;align-items:stretch}
 .slide{height:100%}
 .slide picture{height:100%;min-height:0}
 .slide img{width:100%;height:100%;object-fit:contain}
 .gallery-bar{flex:0 0 68px;margin:0;padding:14px 4%;border-top:1px solid var(--line);background:#fff}
 .caption{bottom:24px;left:4%}
 #gallery-error:empty{display:none}
 footer{max-width:none;margin:0;padding:25px 4%}
}
@media(max-width:640px){.brand{width:270px;max-width:100%}.masthead{padding:14px 6%}.contacts{margin-top:8px}}

/* Two heartbeats on entry, then rest. */
.logo-crop{aspect-ratio:3126/1068;overflow:visible}.logo-art{display:block;width:100%;height:100%;overflow:visible}.logo-heart{transform-box:view-box;transform-origin:80% 50%;animation:logo-heartbeat 1.5s ease-in-out .15s 1}
@keyframes logo-heartbeat{0%,36%,76%,100%{transform:scale(1)}18%,58%{transform:scale(1.055)}}
@media(prefers-reduced-motion:reduce){.logo-heart{animation:none}}
@media(min-width:900px){.track,.slide,.slide picture{background:#000}.slide img{object-fit:contain;object-position:center}}

/* Mobile: centered brand and portrait slides filling the remaining viewport. */
@media(max-width:640px){
 .masthead .brand{margin-inline:auto}
 #gallery{width:100%;max-width:none;height:calc(100vh - var(--site-header-height,180px));height:calc(100svh - var(--site-header-height,180px));min-height:340px;display:flex;flex-direction:column}
 .track{flex:1;min-height:0;align-items:stretch;background:#000}
 .slide{height:100%}
 .slide picture{height:100%;min-height:0}
 .slide img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center}
 .gallery-bar{flex:0 0 66px;margin:0;padding:14px 5%;background:#fff}
 #gallery-error:empty{display:none}
}

/* A fresh pair of beats when hovering the logo. */
@keyframes logo-heartbeat-hover{0%,36%,76%,100%{transform:scale(1)}18%,58%{transform:scale(1.055)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.brand:hover .logo-heart{animation:logo-heartbeat-hover 1.5s ease-in-out 0s 1}}
