:root{--color-green-dark:#3a6b45;--color-green:#4f8c5e;--color-green-light:#d4e8d9;--color-yellow:#e8b84b;--color-yellow-light:#fdf3d7;--color-cream:#fafaf5;--color-white:#fff;--color-text:#2c2c2c;--color-text-muted:#6b7280;--color-border:#d4e8d9;--font-heading:"Cormorant Garamond",Georgia,serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-cream);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.6}.gallery-page{flex-direction:column;min-height:100vh;display:flex}.hero{background:linear-gradient(160deg,var(--color-green-dark)0%,var(--color-green)60%,#5a9e6f 100%);color:var(--color-white);text-align:center;padding:max(3rem,min(8vw,5.5rem)) 1.5rem max(4.5rem,min(9vw,6.5rem));position:relative;overflow:hidden}.hero:after{content:"";background:var(--color-cream);-webkit-clip-path:ellipse(55% 100% at 50% 100%);clip-path:ellipse(55% 100% at 50% 100%);height:60px;position:absolute;bottom:-1px;left:0;right:0}.hero-wisteria{pointer-events:none;width:max(180px,min(28vw,420px));position:absolute;top:0}.hero-wisteria--left{left:0}.hero-wisteria--right{right:0;transform:scaleX(-1)}@media (max-width:600px){.hero{padding-top:6.5rem}.hero-wisteria{width:140px}}.hero-content{z-index:1;max-width:680px;margin:0 auto;position:relative}.hero-title,.hero-subtitle{font-family:var(--font-heading);letter-spacing:.02em;color:var(--color-white);text-shadow:0 2px 12px rgba(0,0,0,.7),0 1px 4px rgba(0,0,0,.5);font-weight:600}.hero-title{font-size:max(3.5rem,min(10vw,6rem));line-height:1.05}.hero-subtitle{margin-top:.35rem;font-size:max(2rem,min(5.5vw,3.25rem));line-height:1.1}.gallery{flex-direction:column;flex:1;gap:max(2.5rem,min(6vw,4.5rem));width:100%;max-width:1600px;margin:0 auto;padding:1rem max(.5rem,min(2.5vw,2rem)) 3rem;display:flex}.masonry{--gap:clamp(6px,1.2vw,14px);justify-content:center;gap:var(--gap);display:flex}.masonry-column{flex:0 1 calc((100% - (var(--columns) - 1)*var(--gap))/var(--columns));gap:var(--gap);flex-direction:column;min-width:0;display:flex}.tile{cursor:zoom-in;background:var(--color-green-light);border:none;border-radius:6px;width:100%;padding:0;transition:transform .25s,box-shadow .25s;display:block;overflow:hidden;box-shadow:0 1px 3px rgba(58,107,69,.12),0 4px 14px rgba(58,107,69,.08)}.tile img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s,transform .6s;display:block;transform:scale(1.02)}.tile--loaded img{opacity:1;transform:none}.tile:hover{transform:translateY(-3px);box-shadow:0 4px 10px rgba(58,107,69,.18),0 12px 28px rgba(58,107,69,.16)}.tile--loaded:hover img{transform:scale(1.04)}.tile:focus-visible{outline:3px solid var(--color-yellow);outline-offset:2px}.tile--hidden{visibility:hidden}.lightbox{z-index:100;position:fixed;top:0;bottom:0;left:0;right:0}.lightbox-backdrop{background:rgba(22,40,27,.97);position:absolute;top:0;bottom:0;left:0;right:0}.lightbox-frame{transform-origin:0 0;will-change:transform;border-radius:4px;position:fixed;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.45)}.lightbox-frame--step{animation:.32s cubic-bezier(.2,.8,.2,1) lightbox-step}@keyframes lightbox-step{0%{opacity:0;transform:translateX(calc(var(--step-dir)*40px))}}.lightbox-img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.lightbox-img--large{opacity:0;transition:opacity .3s}.lightbox-img--large.is-loaded{opacity:1}.lightbox-btn{color:var(--color-white);cursor:pointer;background:rgba(255,255,255,.1);border:none;border-radius:999px;align-items:center;justify-items:center;transition:background .15s,opacity .2s;display:grid;position:absolute}.lightbox-btn:hover{background:rgba(255,255,255,.22)}.lightbox-btn:focus-visible{outline:2px solid var(--color-yellow);outline-offset:2px}.lightbox-close{width:44px;height:44px;top:.6rem;right:.6rem}.lightbox-nav{width:52px;height:52px;margin-top:-26px;top:50%}.lightbox-nav--prev{left:.9rem}.lightbox-nav--next{right:.9rem}.lightbox-caption{color:rgba(255,255,255,.85);justify-content:center;align-items:center;gap:1.25rem;height:64px;font-size:.875rem;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.lightbox-count{font-variant-numeric:tabular-nums}.lightbox-download{color:rgba(255,255,255,.85);text-underline-offset:3px}.lightbox-download:hover{color:var(--color-white)}.lightbox--closing .lightbox-btn,.lightbox--closing .lightbox-caption{opacity:0;pointer-events:none}@media (max-width:639px){.lightbox-nav{display:none}.lightbox-caption{height:72px}}@media (prefers-reduced-motion:reduce){.tile,.tile img,.lightbox-frame--step{transition:none;animation:none}}.site-footer{text-align:center;background:var(--color-green-light);color:var(--color-green-dark);padding:1.5rem}.footer-credit{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:2rem;line-height:2rem;display:flex}.footer-sunflower{object-fit:contain;width:7rem;height:7rem}@media (max-width:560px){.footer-credit{font-size:1.4rem}.footer-sunflower{width:4.5rem;height:4.5rem}}