:root{--ink:#20251f;--muted:#6f756c;--paper:#f5f3ed;--card:#fff;--green:#2e5b47;--green2:#214636;--sage:#dfe7dd;--gold:#c6924a;--line:#deddd6;--danger:#9b3d36;--shadow:0 16px 42px rgba(29,48,38,.09)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 32px));margin:auto;min-height:calc(100vh - 150px)}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(245,243,237,.92);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}.brand{font-family:Georgia,serif;font-size:22px;font-weight:700;letter-spacing:-.5px}.brand span{color:var(--gold);font-size:13px}.topbar nav{display:flex;align-items:center;gap:22px;font-size:14px}.topbar nav>a:hover{color:var(--green)}.user-pill{background:var(--sage);padding:8px 12px;border-radius:999px}.hero{padding:72px 0 54px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:800;color:var(--green);margin-bottom:13px}.hero h1,.page-head h1,.setup h1,.login-art h1{font:500 clamp(38px,6vw,70px)/.98 Georgia,serif;letter-spacing:-.045em;margin:0}.hero h1 em{color:var(--green);font-weight:400}.hero p,.page-head p,.setup-copy p,.login-art p{color:var(--muted);font-size:17px;line-height:1.6;max-width:590px}.button{border:0;border-radius:12px;padding:13px 18px;font:700 14px/1 inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--green);color:white;box-shadow:0 8px 18px rgba(46,91,71,.2)}.primary:hover{background:var(--green2)}.ghost{background:#f1f1ec;color:var(--ink)}.danger{background:#f3dedb;color:var(--danger)}.small{padding:9px 12px}.album-section{padding-bottom:70px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title h2{font:500 28px Georgia,serif;margin:0}.section-title span{color:var(--muted);font-size:13px}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.album-card{background:var(--card);border:1px solid rgba(50,60,50,.07);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transition:.2s transform}.album-card:hover{transform:translateY(-4px)}.cover{height:225px;position:relative;background:linear-gradient(135deg,#cfdacf,#edf0e6);overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.cover-empty{display:grid;place-items:center;height:100%;font:italic 72px Georgia,serif;color:rgba(46,91,71,.25)}.count{position:absolute;right:12px;bottom:12px;background:rgba(20,28,23,.75);color:white;border-radius:999px;padding:7px 10px;font-size:12px;backdrop-filter:blur(8px)}.album-info{padding:19px}.album-info h3{font:500 24px Georgia,serif;margin:0 0 6px}.album-info p{color:var(--muted);font-size:14px;margin:0 0 18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-info small{color:#8a8f87}.card{background:var(--card);border:1px solid rgba(50,60,50,.08);border-radius:20px;box-shadow:var(--shadow)}.form-card{display:flex;flex-direction:column;gap:17px;padding:30px}.form-card h2{font:500 30px Georgia,serif;margin:0 0 4px}.form-card label{font-size:13px;font-weight:700;display:flex;flex-direction:column;gap:8px}.form-card input,.form-card textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:13px 14px;background:#fbfbf8;font:inherit;color:var(--ink);outline:none}.form-card input:focus,.form-card textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(46,91,71,.1)}.setup,.login-wrap{min-height:calc(100vh - 70px);display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:center;padding:55px 0}.setup-copy,.login-art{padding:20px}.trust{display:flex;flex-direction:column;gap:10px;color:var(--green);font-weight:700;font-size:14px;margin-top:26px}.login-wrap{grid-template-columns:1fr 430px}.login-art{display:flex;align-items:center;gap:30px}.monogram{width:120px;height:150px;border-radius:60px 60px 24px 24px;background:var(--green);color:white;display:grid;place-items:center;font:italic 64px Georgia,serif;box-shadow:var(--shadow)}.private-note{font-size:12px;color:var(--muted);text-align:center;margin:0}.page-head{padding:52px 0 30px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-head h1{font-size:52px}.back{display:inline-block;color:var(--muted);font-size:14px;margin-bottom:24px}.upload{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.upload div{display:flex;flex-direction:column;gap:4px}.upload span{font-size:12px;color:var(--muted)}.file-button input{display:none}.photo-grid{columns:4 220px;column-gap:14px;padding-bottom:70px}.photo{break-inside:avoid;margin:0 0 14px;background:white;border-radius:14px;overflow:hidden;box-shadow:0 5px 16px rgba(30,40,30,.08)}.photo img{display:block;width:100%;height:auto}.photo figcaption{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;font-size:11px;color:var(--muted)}.icon-button{border:0;background:#f4e5e2;color:var(--danger);width:26px;height:26px;border-radius:50%;font-size:18px;cursor:pointer}.empty{text-align:center;padding:90px 20px;color:var(--muted)}.empty-icon{font-size:56px;color:var(--green)}.empty h2{font:500 28px Georgia,serif;color:var(--ink);margin:12px 0 5px}.admin-grid{display:grid;grid-template-columns:380px 1fr;gap:24px;padding-bottom:70px}.user-list{padding:28px}.user-list h2{font:500 28px Georgia,serif;margin:0 0 16px}.user-row{display:grid;grid-template-columns:42px 1fr auto auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--sage);color:var(--green);font-weight:800}.user-row small{display:block;color:var(--muted);margin-top:3px}.status{font-size:11px;font-weight:800;padding:6px 9px;border-radius:999px}.status.on{background:#e4f0e7;color:#2b6a3f}.status.off{background:#eee;color:#777}.flash{margin-top:22px;padding:14px 17px;border-radius:12px;background:#e2f0e6;color:#285a39;font-weight:700}.flash.error{background:#f5dfdc;color:#8d332f}dialog{border:0;border-radius:22px;padding:0;width:min(480px,calc(100% - 30px));box-shadow:0 30px 90px rgba(20,30,24,.28)}dialog::backdrop{background:rgba(20,28,23,.56);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:27px;cursor:pointer;color:var(--muted)}footer{text-align:center;color:#8b9088;font-size:12px;padding:28px;border-top:1px solid var(--line)}@media(max-width:850px){.album-grid{grid-template-columns:repeat(2,1fr)}.setup,.login-wrap{grid-template-columns:1fr;gap:24px;padding:34px 0}.login-art{justify-content:center}.admin-grid{grid-template-columns:1fr}.topbar nav a:not(:last-child){display:none}}@media(max-width:560px){.shell{width:min(100% - 22px,1180px)}.topbar{height:64px;padding:0 12px}.topbar nav{gap:9px}.user-pill{max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero{padding:42px 0 30px;display:block}.hero .button{margin-top:22px;width:100%}.album-grid{grid-template-columns:1fr}.cover{height:215px}.page-head{padding-top:34px;display:block}.page-head h1{font-size:42px}.page-head .danger{margin-top:14px}.upload{align-items:flex-start;gap:16px;flex-direction:column}.upload .button{width:100%}.photo-grid{columns:2 140px}.login-art{display:block;text-align:center}.monogram{margin:0 auto 24px;width:78px;height:94px;font-size:42px}.form-card{padding:23px}.user-row{grid-template-columns:42px 1fr auto}.user-row .status{display:none}}
