:root{--ink:#1c2c28;--muted:#65746d;--cream:#f6f4ee;--paper:#fffefa;--lime:#cae885;--line:#dce0d9;--serif:'Playfair Display',Georgia,serif;--sans:Manrope,Arial,sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans)}header{height:74px;padding:0 30px;background:#fffefa;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand,.small-brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font:600 21px var(--serif)}.brand span,.small-brand span{height:28px;width:28px;display:grid;place-items:center;border-radius:50%;background:#244238;color:#e9f1d9;font:500 14px var(--serif)}.preview-badge,.eyebrow,.collection-label,.card-label{font:9px var(--mono);letter-spacing:.12em;color:#718078}.preview-badge{background:#e8f0db;padding:7px 10px;color:#3e5f42}.admin-link{color:#395847;font-size:11px;font-weight:600}.welcome{min-height:calc(100vh - 74px);padding:90px 20px;display:flex;flex-direction:column;align-items:center;text-align:center}.welcome h1{font:500 52px/1.08 var(--serif);letter-spacing:-1.7px;margin:12px 0 18px}.welcome h1 em{color:#769a76}.intro{max-width:510px;color:var(--muted);font-size:14px;line-height:1.8;margin:0}.signin-card{width:min(430px,100%);margin-top:35px;text-align:left;background:var(--paper);box-shadow:0 8px 28px #26372a12;padding:27px}.signin-card label{display:block;font-size:11px;font-weight:700;margin-top:15px}.signin-card input{display:block;width:100%;margin-top:7px;border:1px solid #d4ddd3;background:#f6f7f1;padding:13px;font:12px var(--sans);outline-color:#759a75}.signin-card button{border:0;background:var(--ink);color:white;width:100%;padding:14px;margin-top:15px;font:600 12px var(--sans);cursor:pointer}.signin-card button span{color:var(--lime);font-size:17px;margin-left:10px}.signin-card small{display:block;color:#7a8781;font:9px/1.6 var(--mono);margin-top:15px}.hidden{display:none!important}.family-app{display:grid;grid-template-columns:245px 1fr;min-height:calc(100vh - 74px)}aside{background:#eff2eb;border-right:1px solid var(--line);padding:31px 20px;position:relative}.small-brand{font-size:18px}.small-brand span{width:25px;height:25px}.collection-label{margin:32px 9px 5px}.family-app h2{font:500 21px var(--serif);margin:0 9px 22px}.view-tab{display:flex;justify-content:space-between;width:100%;border:0;background:transparent;color:#55665e;text-align:left;font:11px var(--sans);padding:11px 10px;cursor:pointer;border-radius:3px}.view-tab b{font:9px var(--mono)}.view-tab.active{background:#dce9dc;color:#213c30}.viewer{position:absolute;bottom:26px;left:28px;right:28px;border-top:1px solid #d6ddd4;padding-top:17px;display:grid;grid-template-columns:30px 1fr;column-gap:9px;align-items:center}.viewer>div{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#486e51;color:#f1f5e5;font:10px var(--mono)}.viewer p{margin:0}.viewer small{display:block;font:8px var(--mono);letter-spacing:.08em;color:#7b8982}.viewer b{font-size:10px}.viewer button{grid-column:2;border:0;background:transparent;padding:3px 0 0;color:#597466;font:9px var(--sans);text-align:left;cursor:pointer}.gallery-area{padding:42px max(34px,4vw)}.gallery-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}.gallery-head h1{font:500 31px var(--serif);margin:5px 0 0}.gallery-head h1 span{font:10px var(--mono);color:#77867e;vertical-align:middle}.gentle-note{max-width:190px;color:#718078;font-size:10px;line-height:1.6;margin:0}.family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px}.family-card{background:var(--paper);box-shadow:0 4px 13px #27382b0c;cursor:pointer;transition:transform .18s}.family-card:hover{transform:translateY(-3px)}.family-card figure{height:170px;position:relative;margin:0;overflow:hidden;background:#e2e6df}.family-card img{width:100%;height:100%;object-fit:cover}.family-card figure>b{position:absolute;top:8px;left:8px;background:#183229df;color:white;border-radius:2px;padding:4px 5px;font:9px var(--mono)}.family-card-info{padding:10px}.item-count{margin:0;font:9px var(--mono);color:#6a7971}.interest-list{border-top:1px solid #e4e9e0;margin-top:9px;padding-top:8px;display:grid;gap:4px}.interest-list span{font-size:10px;color:#587068}.interest-list b{color:#294b3b}.interest-list .mine{color:#2b6840}.none{margin:9px 0 0;color:#8a9690;font-size:9px;font-style:italic}.modal{position:fixed;inset:0;z-index:5;background:#173028a6;padding:20px;overflow:auto;display:grid;align-items:start}.modal-card{width:min(860px,100%);margin:auto;background:#fffefa;display:grid;grid-template-columns:1.1fr .9fr;position:relative}.close{position:absolute;right:12px;top:9px;z-index:1;width:30px;height:30px;border:0;border-radius:50%;background:#fffefa;color:#263f35;font-size:23px;cursor:pointer}.photo-panel{min-height:520px;position:relative;background:#e5e7df}.photo-panel img{position:absolute;width:100%;height:100%;object-fit:cover}.photo-panel>b{position:absolute;left:15px;top:15px;background:#19342b;color:white;padding:6px 8px;font:11px var(--mono)}.detail-panel{padding:53px 33px}.detail-panel h2{font:500 29px var(--serif);margin:7px 0 12px}.modal-copy{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 20px}.detail-item{border-top:1px solid #e2e7df;padding:14px 0}.detail-item h3{margin:0;color:#294b3b;font:11px var(--mono)}.detail-item p{font-size:12px;margin:6px 0 0}.detail-item small{display:block;color:#728078;font-size:10px;line-height:1.5;margin-top:6px}.detail-item strong{color:#3d654a}.empty-gallery{grid-column:1/-1;background:#fffefa;padding:30px;text-align:center;color:#6b7971;font-size:12px}@media(max-width:700px){header{padding:0 15px}.preview-badge{display:none}.family-app{grid-template-columns:1fr}aside{min-height:155px;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.collection-label{margin:0}.family-app h2{font-size:17px;margin:2px 0}.family-app nav{grid-column:1/-1;display:flex}.viewer{display:none}.gallery-area{padding:28px 16px}.gallery-head{display:block}.gentle-note{margin-top:10px}.family-grid{grid-template-columns:repeat(2,1fr);gap:9px}.family-card figure{height:145px}.modal-card{grid-template-columns:1fr}.photo-panel{min-height:300px}.detail-panel{padding:29px 24px}.welcome{padding-top:65px}.welcome h1{font-size:42px}}
