:root{color-scheme:dark;--ink:#f6f2ea;--muted:#b7b2aa;--accent:#ff5b35;--bg:#0b0d0e}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,system-ui,sans-serif}
header{display:flex;align-items:baseline;gap:1rem;padding:1.25rem 4vw;border-bottom:1px solid #25292b}
.brand{color:var(--ink);font-weight:900;letter-spacing:.12em;text-decoration:none}.brand span{color:var(--accent)}header small{color:var(--muted);letter-spacing:.15em}
main{min-height:80vh}.gate,.intro{max-width:760px;padding:9vh 6vw}.gate{margin:auto}.eyebrow{color:var(--accent);font-weight:800;letter-spacing:.16em}
h1{font-size:clamp(2.8rem,8vw,7rem);line-height:.9;margin:.25em 0}.gate p,.intro p{color:var(--muted)}
form{max-width:420px;margin-top:2rem}label{display:grid;gap:.5rem}input,button,select{font:inherit;padding:.9rem 1rem;border-radius:2px}
.pw-wrap{position:relative}.pw-wrap input{width:100%;padding-right:3.6rem}
.pw-toggle{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);background:transparent;border:none;padding:.3rem .6rem;font-size:.8rem;color:var(--muted);cursor:pointer}
.pw-toggle:hover{color:var(--ink)}
input,select{border:1px solid #444;background:#171a1b;color:white}button{margin-top:1rem;border:0;background:var(--accent);color:white;font-weight:800;cursor:pointer}.error{color:#ff8e78!important}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:3px;padding:3px}figure{margin:0;background:#151819}
figure>a{display:block;aspect-ratio:3/2}img{width:100%;height:100%;object-fit:cover;display:block}figcaption{display:flex;justify-content:space-between;padding:.65rem;color:var(--muted);font-size:.85rem}figcaption a{color:var(--ink)}
.grid img,.photo-view img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.photo-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 4vw;background:rgba(11,13,14,.92);backdrop-filter:blur(12px);border-bottom:1px solid #25292b}.photo-toolbar a,.photo-meta a{color:var(--ink);text-decoration:none;font-weight:750}.photo-toolbar nav{display:flex;gap:1.25rem}.photo-view{display:grid;place-items:center;min-height:70vh;padding:1rem;background:#050606}.photo-view img{width:auto;max-width:100%;height:auto;max-height:82vh;object-fit:contain}.photo-meta{display:flex;justify-content:space-between;gap:1rem;padding:1rem 4vw;color:var(--muted)}
footer{padding:2rem 4vw;color:var(--muted);border-top:1px solid #25292b}@media(max-width:600px){header small{display:none}.intro{padding-top:4rem}}
.admin{max-width:960px;padding:6vh 4vw}.admin h1{font-size:clamp(1.8rem,4vw,3rem)}.admin a{color:var(--ink)}
.admin-table{width:100%;border-collapse:collapse;margin-top:1.5rem}.admin-table th,.admin-table td{text-align:left;padding:.7rem;border-bottom:1px solid #25292b;vertical-align:top}.admin-table th{color:var(--muted);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.admin-table code{background:#171a1b;padding:.2rem .4rem;border-radius:2px;word-break:break-all}
button.danger{background:#7a2b1f}button.link{background:transparent;color:var(--muted);text-decoration:underline;padding:0;margin:0;font-weight:600}
.admin-form{max-width:620px;position:relative}
.autocomplete-box{position:relative;margin-top:-1rem;max-height:220px;overflow-y:auto;background:#171a1b;border:1px solid #444;border-top:0;border-radius:0 0 2px 2px}
.autocomplete-box.closed{display:none}
.autocomplete-item{padding:.6rem 1rem;cursor:pointer;font-size:.95rem}.autocomplete-item:hover{background:#25292b}
.checkbox-inline{width:auto}.remember-check{display:flex;grid-template-columns:none;align-items:center;gap:.55rem;margin-top:.8rem;color:var(--muted);font-size:.9rem}.inline-form{display:inline}.spaced-top{margin-top:2rem}.success{color:#7dd3a8}.error.warn{color:#ffd166!important}
.ok-text{color:#7dd3a8;font-weight:700}.warn-text{color:#ffd166;font-weight:700}
.admin h2{font-size:1.1rem;margin:2rem 0 .5rem}.admin h2:first-of-type{margin-top:1.5rem}
.code-value{font-size:1rem;letter-spacing:.04em}.copy-code-btn{margin-left:.5rem;font-size:.8rem}
.select-check{display:inline-flex;align-items:center;gap:.3rem;width:auto;font-size:.8rem;cursor:pointer}
.selection-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 4vw;background:rgba(11,13,14,.95);backdrop-filter:blur(12px);border-top:1px solid #25292b;max-width:none;margin:0}
.selection-bar input{flex:1;min-width:200px}.selection-bar button{margin:0}.selection-count{color:var(--muted);white-space:nowrap}
.price-line{color:var(--accent);font-weight:700}.price-line a{color:var(--ink)}
.checkout-section{padding-top:0}
.result-group-heading{margin:1.5rem 4vw .5rem;color:var(--muted);font-size:.9rem;font-weight:700}
.result-group:first-of-type .result-group-heading{margin-top:.5rem}
.pay-buttons{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}
.pay-buttons form{margin:0}.pay-buttons button{margin:0}.pay-buttons .paypal-btn{background:#ffc439;color:#111}
button:disabled,input:disabled{opacity:.55;cursor:not-allowed}.face-upload-form{margin-top:1rem}
#tip-custom-wrap.closed,#donate-custom-wrap.closed{display:none}
.cause-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:3px 4vw}
.cause-card{background:#151819;border-radius:2px;padding:1.25rem}.cause-card h3{margin:0 0 .5rem}.cause-card p{color:var(--muted);font-size:.9rem}
.cause-card a{color:var(--accent);font-weight:700}
.album-checkboxes{display:grid;gap:.45rem;max-height:300px;overflow:auto;margin:1rem 0;padding:.75rem;border:1px solid #25292b;background:#111415}
.album-check{display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;row-gap:.1rem;align-items:start;padding:.4rem;border-bottom:1px solid #25292b}
.album-check:last-child{border-bottom:0}.album-check input{margin:.25rem 0 0;padding:0}.album-check small{grid-column:2;color:var(--muted)}
.admin-form h2{margin-top:1.8rem}.admin-form p small{color:var(--muted)}
