:root{--paper:#f8f5ef;--ink:#282c28;--muted:#77796f;--accent:#a64e38;--line:#e4e0d7;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}button,input,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,.button{cursor:pointer;border:0;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:13px 23px;border-radius:100px;background:var(--accent);color:white;font-weight:600;line-height:1.5}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:wait}.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.small{font-size:13px;padding:9px 15px}.danger{color:#a22b26;background:#fae9e4}.nav{max-width:1320px;margin:auto;padding:27px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:inline-flex;align-items:center;gap:10px;font:600 25px var(--serif);white-space:nowrap}.brand span{font:12px Arial;color:var(--accent);align-self:start}nav{display:flex;align-items:center;gap:20px;font-size:13px}main{max-width:1320px;margin:auto;min-height:65vh}.hero{padding:60px 48px 55px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:30px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:11px;font-weight:700;color:var(--accent);margin:0 0 23px}.hero h1{font:normal clamp(46px,5.5vw,78px)/1.06 var(--serif);letter-spacing:-3px;margin:0 0 26px}.hero h1 em{font-weight:normal;color:var(--accent)}.hero p.lead{max-width:430px;color:var(--muted);font-size:17px;line-height:1.8}.hero img{width:100%;display:block}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.fine{font-size:12px;color:var(--muted)}.hero .fine{margin-top:18px}.features{margin:0 48px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.features strong{font:23px var(--serif)}.features p{color:var(--muted);font-size:14px;margin:8px 0}.feature-number{font-size:11px;letter-spacing:.15em;color:var(--accent);display:block;margin-bottom:12px}.section{padding:64px 48px}.heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:30px}.heading h1,.heading h2{font:normal clamp(32px,4vw,48px)/1.15 var(--serif);margin:0}.heading p{color:var(--muted);margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{padding:28px;border:1px solid var(--line);border-radius:20px;background:#fffdf8}.card h2,.card h3{font:normal 28px var(--serif);margin:12px 0}.card p{color:var(--muted)}.tag{display:inline-block;font-size:11px;padding:5px 10px;border-radius:20px;background:#eee8de;color:#665f52}.tag.green{background:#e6eee7;color:#45604a}.form-page{max-width:690px;margin:60px auto;padding:0 24px}.form-page h1{font:normal 46px/1.15 var(--serif);letter-spacing:-1px}.panel{border:1px solid var(--line);background:#fffdf8;padding:32px;border-radius:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{margin-bottom:20px}label{display:block;margin-bottom:7px;font-size:13px;font-weight:600}input,textarea{border:1px solid #dcd8cf;border-radius:10px;padding:13px 15px;width:100%;background:#fff;color:var(--ink)}input:focus,textarea:focus{outline:2px solid #a64e3850;border-color:var(--accent)}textarea{min-height:100px;resize:vertical}input[type=checkbox]{width:auto}.check{display:flex;gap:10px;align-items:start;font-weight:400}.full{width:100%}.error{color:#a22b26;white-space:pre-line}.notice{background:#eee9df;border-radius:14px;padding:18px 22px;margin:22px 0;font-size:14px}.notice strong{display:block}.links{display:grid;gap:18px}.link-row{display:flex;gap:8px}.link-row input{font-size:12px;min-width:0}.subtle{color:var(--muted)}.divider{height:1px;background:var(--line);margin:25px 0}.album-hero{padding:55px 48px 30px;text-align:center;background:radial-gradient(ellipse at 50% 0,#eee2d5,transparent 70%)}.album-hero h1{font:normal clamp(40px,6vw,70px)/1.08 var(--serif);letter-spacing:-2px;margin:16px 0}.album-hero .description{max-width:650px;margin:18px auto;color:var(--muted);white-space:pre-wrap}.album-hero .actions{justify-content:center}.progress-track{max-width:220px;margin:18px auto 8px;background:#e3ded5;height:4px;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);width:0}progress{width:100%;accent-color:var(--accent)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:25px}.photo{margin:0;position:relative;min-width:0}.photo>button{display:block;padding:0;background:#eae5dc;border-radius:13px;width:100%;overflow:hidden}.photo img{width:100%;aspect-ratio:1;object-fit:cover;display:block;transition:transform .25s}.photo>button:hover img{transform:scale(1.035)}.photo figcaption{font-size:12px;color:var(--muted);padding:8px 2px;display:flex;justify-content:space-between;gap:8px}.photo figcaption button{padding:0;background:none;color:#9a4c3c;font-size:12px}.empty{text-align:center;padding:70px 24px;border:1px dashed #cfc7b9;border-radius:20px;margin:24px 0;color:var(--muted)}.empty strong{display:block;font:28px var(--serif);color:var(--ink);margin-bottom:12px}.upload-zone{max-width:690px;margin:25px auto;text-align:left}.upload-zone input[type=file]{background:#f8f5ef;border:1px dashed #c9b69f;padding:25px 18px}.upload-zone ul{font-size:13px;max-height:220px;overflow:auto;padding-left:22px}.manage-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.stat{font:48px var(--serif);color:var(--accent)}.qr{width:150px;height:150px;display:block;margin:15px auto}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:15px 10px;border-bottom:1px solid var(--line)}td .actions{margin:0}td input{width:95px}.light-actions{display:flex;justify-content:center;gap:12px;padding:16px;flex-wrap:wrap}dialog{border:0;border-radius:18px;background:#fffaf4;max-width:94vw;padding:12px}dialog::backdrop{background:#151b18df}dialog>img{display:block;max-width:86vw;max-height:75vh;object-fit:contain;margin:auto}.close{position:absolute;right:16px;top:16px;background:#fff;color:#333;border:1px solid #ddd;padding:3px 13px;font-size:26px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#2c342e;color:white;border-radius:12px;padding:12px 22px;box-shadow:0 5px 30px #0002;max-width:90vw;z-index:20;display:none}#toast.show{display:block}footer{max-width:1224px;margin:45px auto 0;padding:30px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;color:var(--muted)}footer .brand{font-size:22px;color:var(--ink)}.hidden{display:none!important}.auth-switch{text-align:center;font-size:14px;margin-top:20px}.auth-switch a{text-decoration:underline}.form-hint{margin-top:8px;font-size:12px;color:var(--muted)}:focus-visible{outline:3px solid #a64e38;outline-offset:3px}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}.nav{padding:22px 28px}.hero{padding:45px 28px}.section{padding:45px 28px}.features{margin:0 28px;gap:25px}.manage-layout{grid-template-columns:1fr}footer{margin:35px 28px 0}.hero h1{letter-spacing:-2px}}@media(max-width:650px){.nav{padding:20px;gap:10px}.brand{font-size:22px}nav{gap:12px;font-size:12px}nav .button{padding:8px 12px}nav .optional{display:none}.hero{grid-template-columns:1fr;padding:45px 24px 25px;gap:0}.hero h1{font-size:54px}.hero img{max-width:430px;margin:-10px auto}.hero p.lead{font-size:16px}.features{grid-template-columns:1fr;margin:0 24px;gap:25px}.features p{margin:6px 0}.section{padding:40px 20px}.heading{align-items:start;flex-direction:column;gap:15px}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr;gap:0}.panel{padding:23px}.form-page{margin:35px auto}.form-page h1{font-size:39px}.album-hero{padding:40px 20px 20px}.album-hero h1{letter-spacing:-1px}.gallery{grid-template-columns:repeat(2,1fr);gap:10px}.album-hero .actions{gap:9px}.album-hero .actions .button,.album-hero .actions button{font-size:13px;padding:12px 17px}footer{margin:35px 20px 0;align-items:start;flex-direction:column;padding:25px 0}.link-row{flex-wrap:wrap}.link-row input{flex-basis:100%}}

[hidden]{display:none!important}@media(max-width:650px){.nav,nav{flex-wrap:wrap}}
