.page{width:min(1180px,100% - 2.5rem);margin:0 auto;padding:0 0 5rem}.hero{flex-direction:column;justify-content:flex-end;min-height:72vh;padding:4.5rem 0 3rem;animation:.9s both fadeUp;display:flex}.hero-brand{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);margin:0;font-size:clamp(4.5rem,14vw,8.5rem);font-weight:600;line-height:.9}.hero-line{max-width:22rem;color:var(--ink-muted);margin-top:1.25rem;font-size:1.05rem;line-height:1.55;animation:1s .15s both fadeUp}.hero-meta{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.75rem;margin-top:2rem;font-size:.8rem;animation:1s .28s both fadeUp;display:flex}.hero-meta:before{content:"";opacity:.7;background:currentColor;width:2.5rem;height:1px}.gallery-section{margin-top:1rem}.gallery-empty,.gallery-error{color:var(--ink-muted);padding:3rem 0;animation:.6s both fadeIn}.gallery-grid{columns:3 280px;column-gap:1rem}.photo-card{break-inside:avoid;background:var(--bg-elevated);border:1px solid var(--line);text-align:left;border-radius:2px;width:100%;margin:0 0 1rem;padding:0;transition:transform .35s,border-color .35s;animation:.7s both fadeUp;position:relative;overflow:hidden}.photo-card:hover,.photo-card:focus-visible{border-color:#e8dcc847;outline:none;transform:translateY(-3px)}.photo-card img{vertical-align:middle;opacity:0;width:100%;height:auto;transition:transform .7s,opacity .5s}.photo-card img.is-loaded{opacity:1}.photo-card:hover img.is-loaded{transform:scale(1.03)}.photo-card-title{color:var(--ink);opacity:0;background:linear-gradient(#0000,#0a0908bf);padding:2.5rem .9rem .75rem;font-size:.85rem;transition:opacity .3s,transform .3s;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.photo-card:hover .photo-card-title,.photo-card:focus-visible .photo-card-title{opacity:1;transform:translateY(0)}.lightbox{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080706e0;place-items:center;padding:1.5rem;animation:.25s both fadeIn;display:grid;position:fixed;inset:0}.lightbox-inner{max-width:min(960px,100%);max-height:calc(100vh - 3rem);animation:.35s both fadeUp;position:relative}.lightbox-inner img{width:auto;max-height:calc(100vh - 3rem);box-shadow:0 24px 80px var(--shadow);border-radius:2px;margin:0 auto}.lightbox-caption{text-align:center;color:var(--ink-muted);margin-top:.85rem;font-size:.95rem}.lightbox-close{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--ink);background:#141210b3;border-radius:999px;place-items:center;font-size:1.4rem;line-height:1;transition:background .2s;display:grid;position:absolute;top:1rem;right:1rem}.lightbox-close:hover{background:#28221ce6}.loading-dots{gap:.35rem;margin-top:2rem;display:inline-flex}.loading-dots span{background:var(--accent);border-radius:50%;width:.4rem;height:.4rem;animation:1.2s infinite softPulse}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@media (width<=720px){.page{width:min(100% - 1.5rem,1180px)}.hero{min-height:58vh;padding-top:3rem}.gallery-grid{columns:2 140px;column-gap:.65rem}.photo-card{margin-bottom:.65rem}}:root{--bg:#141210;--bg-elevated:#1c1916;--ink:#e8dcc8;--ink-muted:#a89884;--accent:#c4a484;--line:#e8dcc81f;--shadow:#00000073;--font-display:"Fraunces", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 90% 55% at 50% -10%, #c4a48424, transparent 55%), radial-gradient(ellipse 50% 40% at 100% 20%, #5a46322e, transparent 50%), linear-gradient(180deg, #181512 0%, var(--bg) 40%, #10100e 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0}#root{min-height:100vh}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes softPulse{0%,to{opacity:.35}50%{opacity:.7}}
