:root{--ivory:#f7f5f0;--paper:#fffefa;--charcoal:#191a18;--muted:#6d7068;--green:#284c3b;--terracotta:#a65b42;--line:#e1ded7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:Manrope,Arial,sans-serif}h1,h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;letter-spacing:-.035em}button,input,select{font:inherit}button,a{transition:.18s ease}button{cursor:pointer}img{user-select:none;-webkit-user-drag:none}.brand{display:inline-flex;align-items:center;gap:.65rem}.brand-symbol{font-size:1.45rem}.brand>span:last-child{display:flex;flex-direction:column}.brand strong{font-family:Georgia,serif;font-size:.7rem;letter-spacing:.15em}.brand small{margin-top:.3rem;font-size:.47rem;letter-spacing:.45em}.brand-light{color:white}.eyebrow{display:inline-block;color:#56705f;font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.primary-button,.primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:0 1.2rem;border:0;border-radius:.35rem;background:var(--green);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.68rem;font-weight:700}.primary-button:hover,.primary-link:hover{background:#1d3d2e}.outline-link{display:flex;justify-content:center;padding:.8rem;border:1px solid #b9bbb5;color:#343933;text-decoration:none}.login-page{min-height:100vh;background:radial-gradient(circle at 15% 10%,#fff,transparent 45%),linear-gradient(135deg,#f4f1ea,#e9ece7)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(100%,31rem);padding:3rem;border:1px solid #ffffffcc;border-radius:1.4rem;background:#fffefbe8;box-shadow:0 35px 90px #273a3021}.login-copy{margin:3rem 0 2rem}.login-copy h1{margin:.75rem 0;font-size:3.5rem;line-height:.95}.login-copy p{color:var(--muted);line-height:1.7}.login-card label,.create-panel label{display:block;margin:1rem 0;color:#4d514c;font-size:.73rem;font-weight:700}.login-card input,.create-panel input{width:100%;height:3.2rem;margin-top:.45rem;padding:0 1rem;border:1px solid #d8d9d4;background:white}.login-card .primary-button{width:100%;margin-top:1rem}.form-error{padding:.75rem;background:#faece8;color:#8d4935;font-size:.75rem}.gallery-header{position:sticky;z-index:20;top:0;min-height:5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 3vw;border-bottom:1px solid var(--line);background:#fffefbed;backdrop-filter:blur(18px)}.gallery-header>div{display:flex;flex-direction:column}.gallery-header small{color:#7b7f77;text-transform:uppercase;letter-spacing:.1em}.gallery-header strong{margin-top:.25rem;font-family:Georgia,serif}.gallery-header nav{display:flex;align-items:center;gap:.7rem}.gallery-header nav button{height:2.7rem;border:0;background:transparent}.gallery-header nav b{padding:.25rem .45rem;border-radius:50%;background:#e4ebe6}.gallery-header nav button.active{color:var(--green);font-weight:700}.gallery-intro{display:flex;justify-content:space-between;align-items:end;gap:2rem;padding:5rem 4vw 2.5rem}.gallery-intro h1{margin:.3rem 0;font-size:4.5rem}.gallery-intro p{max-width:42rem;color:var(--muted);line-height:1.65}.counter-panel{min-width:29rem;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:white}.counter-panel div{padding:1rem;border-right:1px solid var(--line)}.counter-panel div:last-child{border:0}.counter-panel span{display:block;color:#767a73;font-size:.62rem;text-transform:uppercase}.counter-panel strong{display:block;margin-top:.3rem;font-family:Georgia,serif;font-size:1.7rem;font-weight:400}.counter-panel div:last-child strong{color:var(--terracotta)}.locked-banner{margin:0 4vw 1rem;padding:1rem;background:#eef4ef;color:#315742}.gallery-controls{display:flex;justify-content:space-between;align-items:center;padding:0 4vw 1.2rem;color:#747871;font-size:.72rem}.gallery-controls label{width:min(28rem,70%);position:relative}.gallery-controls label span{position:absolute;left:.8rem;top:.7rem}.gallery-controls input{width:100%;height:2.8rem;padding:0 1rem 0 2.2rem;border:1px solid var(--line);background:white}.photo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;padding:0 4vw 5rem}.photo-card{position:relative;aspect-ratio:1;overflow:hidden;background:#e7e5df}.photo-open{width:100%;height:100%;padding:0;border:0;background:none}.photo-open img{width:100%;height:100%;object-fit:cover}.photo-card.selected:after{content:"";position:absolute;inset:0;background:#11201969;pointer-events:none}.photo-number{position:absolute;z-index:2;left:.6rem;bottom:.6rem;padding:.27rem .42rem;background:#1015119e;color:white;font-size:.62rem}.photo-select{position:absolute;z-index:3;right:.6rem;bottom:.6rem;width:2.35rem;height:2.35rem;border:1px solid #ffffffa6;border-radius:50%;background:#1520197d;color:white;font-size:1.1rem}.photo-card.selected .photo-select{background:var(--green)}.photo-check{display:none;position:absolute;z-index:2;inset:0;place-items:center;color:white;font-size:2rem;pointer-events:none}.photo-card.selected .photo-check{display:grid}.lightbox{position:fixed;z-index:50;inset:0;background:#fbfaf7}.lightbox[hidden]{display:none}.lightbox header{height:5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 2rem;border-bottom:1px solid var(--line)}.lightbox header button{justify-self:start;border:0;background:none}.lightbox header button:last-child{justify-self:end}.lightbox-stage{height:calc(100vh - 9rem);display:grid;grid-template-columns:4rem 1fr 4rem;align-items:center}.lightbox-stage>button{width:3rem;height:3rem;border:1px solid var(--line);border-radius:50%;background:white}.lightbox-stage img{max-width:100%;max-height:calc(100vh - 12rem);justify-self:center}.lightbox footer{height:4rem;display:flex;justify-content:space-between;align-items:center;padding:0 2rem;border-top:1px solid var(--line);font-size:.72rem}.review-header{height:5rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 2rem;border-bottom:1px solid var(--line);background:var(--paper)}.review-header a{color:inherit;text-decoration:none}.review-header>span{justify-self:end;color:var(--muted);font-size:.7rem;text-transform:uppercase}.review-title{padding:4rem 5vw 2.5rem;border-bottom:1px solid var(--line)}.review-title h1{max-width:55rem;margin:.4rem 0;font-size:5rem;line-height:.9}.review-title p{max-width:50rem;color:var(--muted)}.review-layout{display:grid;grid-template-columns:1fr 24rem}.review-grid{columns:4 14rem;column-gap:.5rem;padding:2rem}.review-grid article{break-inside:avoid;position:relative;margin-bottom:.5rem}.review-grid img{width:100%;display:block}.review-grid article span{position:absolute;left:.5rem;bottom:.5rem;padding:.3rem;background:#121812a8;color:white;font-size:.65rem}.review-summary{position:sticky;top:0;min-height:100vh;padding:2.4rem 2rem;border-left:1px solid var(--line);background:var(--paper)}.review-summary h2{margin:.4rem 0 1.5rem;font-size:2.7rem}.review-summary dl{margin:0;border-top:1px solid var(--line)}.review-summary dl div{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--line);font-size:.75rem}.review-summary dd{font-family:Georgia,serif;font-size:1.2rem}.review-summary .extras dd{color:var(--terracotta)}.review-summary .primary-button{width:100%;margin:1rem 0}.extra-note,.success-note,.credentials-box{margin:1rem 0;padding:1rem;line-height:1.5;font-size:.73rem}.extra-note{background:#fbefe9;color:#8f4d38}.success-note{display:flex;flex-direction:column;background:#eef5f0;color:#315941}.credentials-box{background:#eef5f0;color:#315941}.export-box{margin:1rem 0;border:1px solid var(--line);background:#f8f7f3}.export-box header{display:flex;justify-content:space-between;padding:.75rem;border-bottom:1px solid var(--line);font-size:.65rem;text-transform:uppercase}.export-box button{border:0;background:none;color:var(--green)}.export-box p{max-height:7rem;overflow:auto;margin:0;padding:.75rem;font-family:monospace;font-size:.68rem;line-height:1.6}.admin-page{display:grid;grid-template-columns:16rem 1fr}.admin-sidebar{position:sticky;top:0;height:100vh;padding:2rem 1rem;background:var(--paper);border-right:1px solid var(--line)}.admin-sidebar nav{display:flex;flex-direction:column;margin-top:3rem}.admin-sidebar nav a{padding:.85rem;color:#676c65;text-decoration:none;font-size:.75rem}.admin-sidebar nav a.active,.admin-sidebar nav a:hover{background:#edf1ed;color:var(--green)}.admin-main>header{height:4.7rem;display:flex;justify-content:space-between;align-items:center;padding:0 3rem;border-bottom:1px solid var(--line);background:var(--paper)}.admin-main>header>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.admin-content{padding:3.5rem}.admin-content>h1{margin:.4rem 0;font-size:4rem}.admin-content>p{color:var(--muted)}.admin-panel,.create-panel{margin-top:2rem;border:1px solid var(--line);background:var(--paper)}.admin-panel>header,.create-panel{padding:1.5rem}.admin-panel h2,.create-panel h2{margin:0;font-size:2.4rem}.admin-panel header p{margin:.25rem 0;color:var(--muted);font-size:.72rem}.admin-table{overflow:auto}.admin-table table{width:100%;min-width:60rem;border-collapse:collapse}.admin-table th{padding:.75rem 1rem;background:#f7f6f2;color:#858981;text-align:left;font-size:.58rem;text-transform:uppercase}.admin-table td{padding:1rem;border-top:1px solid var(--line);font-size:.72rem}.admin-table td>strong,.admin-table td>small{display:block}.admin-table td>small{margin-top:.25rem;color:#959991}.admin-table form{display:flex;gap:.3rem}.admin-table select,.admin-table button{height:2rem;border:1px solid var(--line);background:white;font-size:.65rem}.status{padding:.35rem .55rem;border-radius:1rem;background:#e9efea;color:#365b45}.create-panel{max-width:50rem}.create-panel>form>div{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.report-page{background:white}.report-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;border-bottom:1px solid var(--line)}.report-header button{padding:.7rem;border:1px solid var(--line);background:white}.report-main{padding:3rem}.report-title h1{margin:.3rem 0;font-size:4rem}.report-title p{color:var(--muted)}.contact-sheet{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin-top:2rem}.contact-sheet article{position:relative;border:1px solid var(--line);page-break-inside:avoid}.contact-sheet img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.contact-sheet strong{position:absolute;top:.4rem;left:.4rem;padding:.3rem;background:#132017;color:white}.contact-sheet small{display:block;padding:.45rem;font-size:.58rem}.report-export{margin-top:2rem;padding:1.2rem;border:1px solid var(--line)}.report-export h2{font-size:2rem}.report-export p{font-family:monospace;font-size:.7rem;line-height:1.6}.empty-page{min-height:100vh;display:grid;place-items:center;align-content:center;text-align:center;padding:2rem}.empty-page h1{font-size:3.5rem}@media(max-width:900px){.photo-grid{grid-template-columns:repeat(3,1fr)}.gallery-intro{align-items:stretch;flex-direction:column}.counter-panel{min-width:0}.review-layout{grid-template-columns:1fr}.review-summary{position:static;min-height:0;border-left:0;border-top:1px solid var(--line)}.admin-page{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}.admin-sidebar nav{flex-direction:row;flex-wrap:wrap;margin-top:1rem}.contact-sheet{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.login-card{padding:2rem 1.3rem}.gallery-header{padding:.7rem}.gallery-header>div{display:none}.gallery-header nav{width:100%;justify-content:space-between}.gallery-intro{padding-top:3rem}.gallery-intro h1,.review-title h1{font-size:3.5rem}.counter-panel div{padding:.7rem}.photo-grid{grid-template-columns:repeat(2,1fr);gap:.25rem}.review-grid{columns:2 9rem;padding:.7rem}.lightbox header .brand{display:none}.lightbox header{grid-template-columns:1fr 1fr;padding:0 .7rem}.lightbox-stage{grid-template-columns:2.7rem 1fr 2.7rem}.lightbox-stage>button{width:2.3rem;height:2.3rem}.review-header{padding:0 1rem}.review-header .brand{display:none}.admin-main>header,.admin-content{padding-left:1rem;padding-right:1rem}.create-panel>form>div{grid-template-columns:1fr}.report-main{padding:1rem}.contact-sheet{grid-template-columns:repeat(3,1fr)}}@media print{.report-header button{display:none}.report-main{padding:0}.contact-sheet{grid-template-columns:repeat(5,1fr)}.report-export{page-break-before:always}}
