@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');

:root{color-scheme:light;--ink:#20231f;--muted:#62665e;--paper:#fafbf8;--line:#dce0d7;--accent:#d6ff75;--accent-text:#000000;--logo-accent:#93ad62;--surface:#e5e8e0;--focus:#538020;font-family:'DM Sans',sans-serif;font-size:16px;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:6px}img{display:block;max-width:100%}::selection{background:var(--accent);color:var(--accent-text)}
.shell{max-width:1600px;margin:auto;padding:0 5%}.skip{position:absolute;left:20px;top:-80px;padding:12px;background:var(--accent);z-index:10}.skip:focus{top:12px}.skip{color:var(--accent-text)}
.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:32px;height:32px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;transform:rotate(-8deg)}.brand-mark i{background:var(--ink);border-radius:1px}.brand-mark i:last-child{background:var(--logo-accent)}.brand-name{font-weight:650;font-size:1.2rem;letter-spacing:-.04em}.brand-name span{font-weight:400;color:var(--muted)}.header nav{display:flex;gap:32px;font-size:.875rem}.header nav a{padding:8px 0}.header nav .active{border-bottom:1px solid var(--ink)}
.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding:65px 0 45px}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.16em;font-weight:600;display:flex;align-items:center;gap:12px;margin:0 0 22px}.eyebrow:before{content:'';width:25px;height:1px;background:currentColor}h1,h2,h3,p{margin-top:0}h1{font-family:Manrope,sans-serif;font-weight:500;font-size:clamp(3.2rem,6.3vw,6.2rem);letter-spacing:-.07em;line-height:1.08;margin-bottom:0}.intro-copy{max-width:260px;color:var(--muted);font-size:.9375rem;line-height:1.7;margin:0 0 5px}
.feature{position:relative;display:block;overflow:hidden;background:#29332b;min-height:430px;aspect-ratio:2.28;border-radius:3px;color:white}.feature img{width:100%;height:100%;position:absolute;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.3,1)}.feature:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,20,9,.8),transparent 65%)}.feature:hover img{transform:scale(1.025)}.feature-top{position:absolute;z-index:1;top:30px;left:32px;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;background:var(--accent);color:var(--accent-text);padding:10px 13px;border-radius:2px}.feature-caption{position:absolute;left:36px;right:36px;bottom:34px;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.feature-meta{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;color:#e0e5dc}.feature h2{font-family:Manrope,sans-serif;font-size:clamp(2rem,3.5vw,3.5rem);font-weight:500;letter-spacing:-.045em;margin:0 0 9px;line-height:1.1}.feature-caption p:last-child{font-size:.875rem;color:#e0e5dc;margin:0}.circle{height:54px;width:54px;flex-shrink:0;border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;transition:background .2s,color .2s}.feature:hover .circle{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin:54px 0 27px;padding-bottom:20px;border-bottom:1px solid var(--line)}.section-heading h2{font-size:1.25rem;letter-spacing:-.035em;font-weight:500;margin:0}.section-heading span{font-size:.8125rem;color:var(--muted)}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.album-image{aspect-ratio:1.46;overflow:hidden;background:var(--surface);border-radius:2px;position:relative}.album-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.album-card:hover img{transform:scale(1.04)}.album-image .photo-count{position:absolute;bottom:15px;right:15px;background:var(--paper);padding:7px 10px;border-radius:2px;font-size:.75rem;letter-spacing:.02em}.album-detail{padding-top:19px}.album-detail .meta{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:9px}.album-detail h3{font-family:Manrope,sans-serif;font-size:1.4rem;letter-spacing:-.04em;font-weight:550;display:flex;justify-content:space-between;gap:10px;margin:0}.album-detail h3 span{font-weight:400;font-size:1.2rem;transition:transform .2s}.album-card:hover h3 span{transform:translate(3px,-3px)}
.footer{margin-top:90px;padding:32px 0 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:32px;align-items:flex-end}.footer p{max-width:300px;font-size:.875rem;line-height:1.65;color:var(--muted);margin:0}.footer .copyright{font-size:.75rem;text-align:right}.demo-note{font-size:.75rem;color:var(--muted);margin-top:18px;line-height:1.6}.demo-note a{text-decoration:underline;text-underline-offset:3px}
.album-intro{padding:50px 0 42px}.back{display:inline-block;font-size:.875rem;color:var(--muted);margin-bottom:38px}.back:hover{color:var(--ink)}.album-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.album-intro h1{font-size:clamp(2.8rem,5vw,5rem);margin:0 0 20px}.album-intro .description{color:var(--muted);max-width:580px;line-height:1.7;margin:0}.album-total{font-size:.875rem;color:var(--muted);white-space:nowrap;margin-bottom:6px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.photo-tile{display:block;min-width:0;overflow:hidden;border-radius:2px;cursor:zoom-in;background:var(--surface)}.photo-tile img{width:100%;height:auto;transition:opacity .2s}.photo-tile:hover img{opacity:.88}.album-end{border-top:1px solid var(--line);padding-top:28px;margin-top:45px;display:flex;justify-content:space-between;gap:20px;font-size:.875rem}
.viewing{overflow:hidden}dialog{border:0;background:#10120feb;color:white;position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;padding:75px 85px max(25px,env(safe-area-inset-bottom));margin:0;overflow:hidden}dialog::backdrop{background:#10120f}dialog[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:20px}dialog img{min-width:0;min-height:0;width:100%;height:100%;object-fit:contain;user-select:none}dialog button{position:absolute;color:white;border:1px solid #ffffff45;background:#20231f;border-radius:50%;width:44px;height:44px;cursor:pointer;font-size:1.4rem}dialog button:hover{background:#46513b}dialog [data-close]{top:20px;right:24px}dialog [data-previous]{left:20px;top:calc(50% - 22px)}dialog [data-next]{right:20px;top:calc(50% - 22px)}dialog [data-count]{position:absolute;top:34px;left:30px;font-size:.8125rem;letter-spacing:.12em}dialog [data-caption]{text-align:center;font-size:.875rem;line-height:1.5;margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button[hidden]{display:none}
@media(min-width:1600px){.feature{max-height:650px}}@media(max-width:900px){.header{height:90px}.intro{padding-top:48px}.feature{aspect-ratio:1.8;min-height:390px}.album-grid{gap:22px}.album-detail h3{font-size:1.2rem}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro-copy{max-width:220px}.brand-name span{display:none}}
@media(max-width:600px){.shell{padding:0 6%}.header{height:82px}.header nav{gap:20px}.brand-name{font-size:1.05rem}.brand-mark{width:26px;height:26px}.intro{display:block;padding:38px 0 28px}.eyebrow{margin-bottom:17px}.intro-copy{max-width:290px;margin:20px 0 0;font-size:.875rem}.feature{aspect-ratio:.96;min-height:340px}.feature-top{top:20px;left:20px;padding:8px 10px;font-size:.7rem}.feature-caption{left:22px;right:22px;bottom:24px}.feature h2{font-size:2.15rem}.feature-meta{font-size:.7rem}.circle{width:42px;height:42px;font-size:1.25rem}.section-heading{margin-top:38px}.album-grid{grid-template-columns:1fr;gap:34px}.album-detail{padding-top:15px}.album-detail h3{font-size:1.4rem}.footer{margin-top:55px;display:block;padding-top:25px}.footer .copyright{text-align:left;margin-top:20px}.album-intro{padding-top:30px}.back{margin-bottom:30px}.album-title-row{display:block}.album-total{margin-top:20px}.photo-grid{gap:10px}dialog{padding:75px 16px max(16px,env(safe-area-inset-bottom));gap:12px}dialog [data-previous],dialog [data-next]{top:20px;bottom:auto;left:auto}dialog [data-previous]{right:132px}dialog [data-next]{right:80px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Full-screen details stay below the photograph; long EXIF lines scroll on phones. */
.viewer-details{grid-row:2;min-width:0;width:100%;text-align:center;display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
dialog [data-exif-line]{margin:0;font-size:.875rem;line-height:1.6;color:#c8cec4;white-space:nowrap;overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}
dialog [data-exif-line]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
/* Custom logo images retain their aspect ratio, including wide wordmarks. */
.brand{min-width:0}.brand-logo{width:auto;height:42px;max-width:160px;object-fit:contain;flex-shrink:0}.brand-name{overflow-wrap:anywhere}
@media(max-width:600px){.header{height:auto;min-height:82px;flex-wrap:wrap;padding:18px 0;gap:16px}.brand{max-width:100%}.brand-logo{height:34px;max-width:110px}}

.photo-stage{grid-row:1;min-width:0;min-height:0;overflow:hidden;touch-action:none;position:relative;cursor:zoom-in}
.photo-stage img{position:absolute;max-width:none;max-height:none;pointer-events:none;-webkit-user-drag:none}
.photo-stage.is-zoomed{cursor:grab}.photo-stage.is-dragging{cursor:grabbing}
dialog [data-zoom]{top:20px;right:80px;font-size:1.15rem;z-index:1}
@media(max-width:600px){dialog [data-zoom]{right:188px}}

dialog [data-zoom] .zoom-icon{display:block;margin:auto}dialog [data-zoom] .zoom-reset{display:none}dialog [data-zoom][aria-pressed="true"] .zoom-icon{display:none}dialog [data-zoom][aria-pressed="true"] .zoom-reset{display:inline}

dialog [data-download-photo]{position:absolute;top:20px;right:136px;width:44px;height:44px;display:grid;place-items:center;color:white;border:1px solid #ffffff45;background:#20231f;border-radius:50%;cursor:pointer;z-index:1}
dialog [data-download-photo]:hover{background:#46513b}
@media(max-width:600px){dialog [data-count]{left:12px}dialog [data-close]{right:12px}dialog [data-download-photo]{right:60px}dialog [data-zoom]{right:108px}dialog [data-next]{right:156px}dialog [data-previous]{right:204px}}

dialog [data-zoom-status]{margin:0;height:1.5em;font-size:.75rem;line-height:1.5;color:#b5b5b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}dialog [data-zoom-status][hidden]{display:block;visibility:hidden}.photo-stage:not(.is-zoomed) ~ .viewer-details [data-zoom-status]{visibility:hidden}
