@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@600&display=swap');
.album-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),280px))!important;justify-content:start}.album-card{width:280px;max-width:100%}.album-card img,.cover-placeholder{height:210px;aspect-ratio:4/3}.photo-card{max-width:340px}.panel input[type=checkbox]{width:auto;display:inline-block;margin-right:8px}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.button-link{display:inline-block;padding:10px 16px;border-radius:8px;background:var(--accent);color:var(--accentText);text-decoration:none}.album-tools{margin:0 0 24px}.album-tools>.upload-form,.album-tools details>.panel{box-shadow:none;border:0;padding:12px 0}.album-tools details{margin-top:12px}.album-trash{margin-bottom:32px}.album-trash form{padding:10px 0;border-top:1px solid var(--line)}.photo-management{padding:6px 12px}.photo-management button{border:0;background:none;color:var(--muted);text-decoration:underline}.upload-preview{display:grid;gap:10px}.upload-preview article{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:center;overflow-wrap:anywhere}.upload-preview img{width:70px;height:70px;object-fit:cover;border-radius:8px}.upload-preview progress{grid-column:2}.upload-preview a{grid-column:2}progress{width:100%;height:18px;accent-color:var(--accent)}.error{color:#b22}.site-header nav{flex-wrap:wrap}.updates-history{display:grid;gap:12px}.updates-history article{border:1px solid var(--line);padding:18px;border-radius:var(--radius)}@media(max-width:600px){.site-header{align-items:flex-start;gap:12px}.site-header nav{gap:10px;font-size:.85rem}}
:root{--bg:#f5f3ef;--surface:#fff;--text:#161616;--muted:#6e6b66;--line:#dedbd4;--accent:#111;--accentText:#fff;--radius:18px;--font:'DM Sans',sans-serif;--display:'DM Sans',sans-serif;--shadow:0 20px 60px #221c1412;color-scheme:light}
[data-theme=midnight]{--bg:#0e1014;--surface:#181b21;--text:#f3f4f6;--muted:#a4a8b0;--line:#2a2e36;--accent:#f1c56d;--accentText:#18130a;--shadow:0 20px 70px #0008;color-scheme:dark}
[data-theme=album]{--bg:#eee4d2;--surface:#f9f1e3;--text:#35291d;--muted:#7a6550;--line:#d4c2a7;--accent:#8f3e2c;--accentText:#fff;--radius:7px;--display:'Playfair Display',serif;--shadow:0 12px 28px #55371c24}
[data-theme=editorial]{--bg:#f4f4f2;--surface:#fff;--text:#111;--muted:#666;--line:#111;--accent:#d72b2b;--accentText:#fff;--radius:0;--display:'Playfair Display',serif;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--font);transition:.25s}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px clamp(20px,5vw,72px);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{font-weight:700;text-decoration:none;letter-spacing:-.03em}.site-header nav{display:flex;align-items:center;gap:18px}.site-header nav a{text-decoration:none}.site-header button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 12px;border-radius:999px}main{width:min(1400px,calc(100% - 40px));margin:auto}.hero{min-height:54vh;display:grid;align-content:center;max-width:900px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.78rem}.hero h1,.album-hero h1{font:clamp(3.4rem,9vw,8rem)/.9 var(--display);letter-spacing:-.055em;margin:.15em 0}.hero>p:last-child{max-width:650px;color:var(--muted);font-size:1.2rem}.album-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding-bottom:70px}.album-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;box-shadow:var(--shadow);transition:.25s}.album-card:hover{transform:translateY(-5px)}.album-card img,.cover-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover}.cover-placeholder{display:grid;place-items:center;font:5rem var(--display);background:linear-gradient(135deg,var(--surface),var(--line))}.album-card div{padding:18px}.album-card h2{margin:0;font:1.6rem var(--display)}.album-card p{margin:.3rem 0 0;color:var(--muted)}.album-hero{padding:80px 0 40px}.album-hero h1{font-size:clamp(3rem,7vw,6rem)}.album-hero p{max-width:700px;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding-bottom:90px}.photo-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.open-photo{border:0;padding:0;width:100%;aspect-ratio:1;background:var(--line);cursor:zoom-in}.open-photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-actions{display:flex;align-items:center;gap:5px;padding:8px}.photo-actions button,.photo-actions label{border:0;background:none;color:var(--text);font:inherit;padding:6px;cursor:pointer}.photo-actions label{margin-left:auto}.empty{text-align:center;padding:14vh 20px}.empty h2{font:2.2rem var(--display)}#basket{position:fixed;z-index:30;left:50%;bottom:18px;transform:translate(-50%,130px);display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:999px;background:var(--accent);color:var(--accentText);box-shadow:0 12px 50px #0005;transition:.25s}#basket.show{transform:translate(-50%,0)}#basket button{border:0;border-radius:999px;padding:8px 12px}dialog{border:0;border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:0 30px 100px #0009}dialog::backdrop{background:#000c}#lightbox{max-width:94vw}#lightbox img{display:block;max-width:84vw;max-height:78vh}.close{position:absolute;right:8px;top:7px;border:0;background:var(--surface);color:var(--text);border-radius:50%;font-size:28px}.prev,.next{position:absolute;top:50%;font-size:30px;border:0;background:var(--surface);color:var(--text)}.prev{left:8px}.next{right:8px}#comments{width:min(620px,92vw)}#comments form,.login-card,.panel{display:grid;gap:12px}input,select,textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center}.login-card,.panel{width:min(420px,calc(100vw - 36px));padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.login-card button,.panel button,#comments form button{padding:12px;border:0;background:var(--accent);color:var(--accentText);border-radius:8px}.dashboard{padding:60px 0}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.panel{width:auto}.admin-albums{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.admin-albums article{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}@media(max-width:900px){.photo-grid{grid-template-columns:repeat(3,1fr)}.admin-grid{grid-template-columns:1fr}}@media(max-width:600px){.photo-grid{grid-template-columns:repeat(2,1fr)}.site-header{padding:14px 18px}.hero{min-height:46vh}.hero h1{font-size:3.7rem}#basket{width:calc(100% - 24px);justify-content:center}#basket strong{display:none}}

/* Sidebar + hero workspace; existing gallery themes stay available. */
body:has(.studio-sidebar){padding-left:220px}
.studio-sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:var(--surface);border-right:1px solid var(--line);padding:30px 18px;overflow-y:auto;z-index:40}
.studio-logo{display:block;font-weight:700;letter-spacing:.16em;text-decoration:none;padding:0 12px 26px}.studio-logo span{display:block;font-weight:400;font-size:.78rem;letter-spacing:0;color:var(--muted);margin-top:8px}
.studio-sidebar nav{display:grid;gap:6px}.studio-sidebar nav a{padding:10px 12px;border-radius:8px;text-decoration:none}.studio-sidebar nav a:hover{background:var(--bg)}.nav-section{padding:20px 12px 5px;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.14em}
.workspace-top{display:flex;justify-content:space-between;gap:20px;padding:20px 32px;border-bottom:1px solid var(--line);background:var(--surface)}.workspace-top span{color:var(--muted)}
body:has(.studio-sidebar) main.dashboard{width:calc(100% - 64px);max-width:1500px;padding:32px 0}.workspace-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:28px}.workspace-heading h1{font-size:clamp(1.8rem,3vw,3rem);letter-spacing:-.04em;margin:.15em 0}.workspace-heading p{color:var(--muted);margin:.2em 0}.saved-message{padding:12px 18px;background:var(--surface);border-left:3px solid var(--accent)}
.workspace-albums{padding-bottom:28px}.workspace-albums .form-actions{padding:8px 0 0;gap:18px}.workspace-albums .album-card div div{padding:8px 0 0}.workspace-albums .album-card{box-shadow:none}
.studio-cover{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);min-height:240px;margin:0 0 28px;background:var(--accent);color:var(--accentText);display:flex;align-items:center;justify-content:center;text-align:center;padding:40px 24px}
.studio-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.studio-cover:has(img){color:#fff;background:#182b25}.studio-cover:has(img):before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0002,#0009);z-index:-1}.studio-cover>div{max-width:850px}.studio-cover h2{font:clamp(2rem,5vw,4rem)/1.1 var(--display);margin:.15em 0}.studio-cover p{margin:10px auto;color:inherit}.public-cover{min-height:340px;margin-top:28px}.public-cover h1{font-size:clamp(3rem,7vw,6rem);margin:.3em 0;line-height:1;letter-spacing:-.04em}.public-cover a{color:inherit}.public-cover p{max-width:650px}
.studio-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.studio-edit-grid>div{min-width:0}.studio-edit-grid .upload-form{margin-bottom:26px}.album-settings{position:sticky;top:20px;box-shadow:none}.workspace-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:12px}.workspace-photos .panel{padding:12px;box-shadow:none;min-width:0}.workspace-photos img{width:100%;height:150px;object-fit:cover;border-radius:8px}.workspace-photos p{font-size:.85rem;overflow-wrap:anywhere;margin:0}.workspace-photos button{width:100%}
.album-tools{width:100%;max-width:none;box-shadow:none;margin-bottom:24px}.album-tools h2{margin:0}.album-tools .upload-form{max-width:650px}.photo-card{box-shadow:none}.hero{min-height:40vh}.hero h1{font-size:clamp(3.5rem,8vw,7rem)}
@media(max-width:1100px){.studio-edit-grid{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:850px){body:has(.studio-sidebar){padding-left:0}.studio-sidebar{position:static;width:100%;padding:16px;overflow:visible;border-right:0;border-bottom:1px solid var(--line)}.studio-logo{padding:0 8px 14px}.studio-sidebar nav{display:flex;flex-wrap:wrap;gap:2px}.studio-sidebar nav a{font-size:.85rem;padding:8px}.nav-section{display:none}.workspace-top{padding:16px 20px}.studio-edit-grid{grid-template-columns:1fr}.album-settings{position:static}.public-cover{min-height:260px}body:has(.studio-sidebar) main.dashboard{width:calc(100% - 36px)}}
@media(max-width:500px){.workspace-heading .button-link{width:100%;text-align:center}.workspace-top{flex-wrap:wrap}.studio-cover{padding:28px 18px;min-height:210px}}
