@import url('fonts.css');
:root{--paper:#faf6ef;--white:#fffdf9;--ink:#34291e;--muted:#716451;--gold:#95652e;--sage:#637762;--line:#e2d8c7;--serif:'Playfair Display',Georgia,serif;--sans:'PT Sans',system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.65 var(--sans)}a{color:var(--gold);text-underline-offset:.2em}a:hover{color:var(--ink)}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}:focus-visible{outline:3px solid var(--sage);outline-offset:4px}img,svg{max-width:100%;height:auto}button{cursor:pointer}button:disabled{opacity:.65;cursor:default}[hidden]{display:none!important}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2;text-wrap:balance;overflow-wrap:anywhere}h1{font-size:clamp(2rem,4.8vw,3.8rem);margin:.3em 0 .5em}h2{font-size:clamp(1.65rem,3vw,2.5rem);margin:.3em 0 .7em}h3{font-size:1.35rem}p{margin:0 0 1.1em}small,.hint{font-size:.88rem;color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:28px 0}.skip{position:absolute;top:-100px;left:12px;background:white;padding:12px;z-index:20}.skip:focus{top:8px}.site-head{max-width:1240px;margin:auto;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:1.5rem;line-height:1.1;display:block;flex-shrink:0}.brand-mark{color:var(--gold);font-size:2rem}.brand-caption{display:block;font:11px/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:8px}.site-head nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;font-size:15px}.site-head nav a:not(.button){color:var(--ink);text-decoration:none;padding:8px 0}.site-head nav form{margin:0}.shell{max-width:1200px;margin:0 auto;padding:56px 36px 80px;min-height:55vh}.site-foot{border-top:1px solid var(--line);text-align:center;padding:44px 24px;color:var(--muted)}.site-foot nav{display:flex;flex-wrap:wrap;justify-content:center;gap:26px;margin:20px 0}.site-foot .brand{margin-bottom:12px}.paper{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:32px;min-width:0}.paper+.paper{margin-top:28px}.narrow{max-width:680px;margin:auto}.center{text-align:center}.eyebrow{text-transform:uppercase;font-size:.72rem;letter-spacing:.19em;color:var(--sage);font-weight:700;display:block;margin-bottom:20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1px solid var(--gold);border-radius:8px;background:var(--gold);color:white;padding:11px 23px;text-align:center;text-decoration:none;font:700 1rem/1.45 var(--sans);white-space:normal;max-width:100%}.button:hover{background:#7e5425;color:white}.button.secondary{background:transparent;color:var(--gold)}.button.secondary:hover{background:#f1e7d8}.button.small{font-size:.88rem;padding:8px 14px;min-height:44px}.button.wide{width:100%;margin-top:12px}.text-button{background:transparent;border:0;padding:10px 0;color:var(--gold);font-size:.9rem;min-height:44px}.danger{color:#9b3a30}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 10px}label{display:block;font-weight:700;font-size:.92rem;margin:20px 0 7px}label small{font-weight:400}input:not([type=checkbox]),textarea,select{display:block;width:100%;max-width:100%;min-width:0;border:1px solid #cfc2ad;border-radius:7px;padding:12px 14px;min-height:48px;background:#fff;color:var(--ink);font-size:16px}input[type=file]{padding:10px}input[type=file]::file-selector-button{font:inherit;border:0;border-radius:4px;background:#ece5d8;padding:6px;margin-right:10px}textarea{resize:vertical}input[readonly]{background:#f5f0e7;font-size:.85rem}input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--sage)}.check{display:flex;align-items:flex-start;gap:11px;font-weight:400;margin:22px 0}.check input{margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-row>div{min-width:0}.hint{margin:9px 0 18px;line-height:1.55}.notice,.error{padding:18px 22px;border-radius:10px;margin-bottom:28px;background:#eaf0e6;border:1px solid #c7d3bf;overflow-wrap:anywhere}.error{background:#fff0eb;border-color:#dca497;color:#81372e}.notice h2{font-size:1.4rem}.recovery code{font-size:1.1rem;display:block;background:white;padding:16px;overflow-wrap:anywhere;user-select:all}.sub-links{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:26px;font-size:.9rem}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1000px;margin:20px auto}.auth-intro p{max-width:400px;color:var(--muted)}.botanical{font-size:90px;line-height:1.4;color:var(--sage);font-family:Georgia,serif}.page-title{display:flex;gap:24px;justify-content:space-between;align-items:center;margin-bottom:32px}.page-title h1{font-size:clamp(2rem,4vw,2.8rem)}.page-title h2{margin-bottom:10px}.back{font-size:.9rem}.empty{text-align:center;padding:50px 32px}.empty p{max-width:540px;margin:0 auto 24px}.memorial-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}.memorial-list .paper+.paper{margin:0}.status{display:inline-block;border-radius:20px;padding:4px 12px;font-size:.78rem;letter-spacing:.04em;color:#40513d;background:#eaf0e6}.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.studio-aside{position:sticky;top:24px}.studio-aside h2{font-size:1.5rem}.studio-aside p{font-size:1rem}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.prose{font-size:1.1rem;line-height:1.9}.guest-message{border-bottom:1px solid var(--line);padding:25px 0;overflow-wrap:anywhere}.guest-message h3{font-size:1.1rem;margin:12px 0 4px}.guest-message:last-child{border:0}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:24px;margin-top:24px}.gallery figure{margin:0}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px}.gallery figcaption{font-size:.9rem;margin-top:10px;color:var(--muted);overflow-wrap:anywhere}.manage-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.memorial{max-width:1000px;margin:auto}.memorial-cover{text-align:center;padding:12px 0 60px}.portrait{display:block;width:180px;height:220px;object-fit:cover;margin:24px auto 32px;border-radius:100px 100px 6px 6px;box-shadow:0 0 0 8px var(--paper),0 0 0 9px var(--line)}.portrait-empty{display:grid;place-items:center;font-size:100px;background:#e8eddf;color:var(--sage)}.life-line{display:flex;align-items:center;justify-content:center;gap:20px;letter-spacing:.12em;font-size:.9rem;color:var(--muted)}.life-line:before,.life-line:after{content:'';width:40px;height:1px;background:#bfa37a}.epitaph{max-width:560px;margin:24px auto;font-family:var(--serif);font-size:1.35rem;font-style:italic;color:var(--muted)}.memorial-nav{display:flex;justify-content:center;gap:32px;margin-top:40px;padding:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.memorial-nav a{color:var(--ink);text-decoration:none;font-size:.95rem}.story{max-width:680px;margin:0 auto;padding:30px 0 60px}.album{padding:30px 0 80px}.section-title{text-align:center}.memorial-owner{text-align:center;border-top:1px solid var(--line);padding-top:30px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.filter-tabs a{padding:10px 16px;border:1px solid var(--line);border-radius:6px;text-decoration:none;min-height:44px}.filter-tabs .active{background:var(--sage);color:white}.admin-list .paper{margin-top:22px}.admin-list .page-title{margin-bottom:10px}.admin-list p{overflow-wrap:anywhere}.admin-list h2{font-size:1.8rem}#qr{max-width:340px;margin:30px auto;background:white}#qr svg{display:block;width:100%}.legal{max-width:780px}.legal h2{font-size:1.5rem;margin-top:36px}.legal li{margin-bottom:12px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;padding:25px 0 90px}.hero h1{font-size:clamp(2.6rem,5.8vw,4.8rem);line-height:1.12}.hero h1 em{font-weight:400;color:var(--sage)}.hero-copy p{max-width:480px;color:var(--muted);font-size:1.12rem}.hero-album{position:relative;padding:40px 25px;background:#e9eddf;border-radius:52% 48% 4px 4px}.album-card{background:var(--white);box-shadow:0 15px 50px #63533b18;padding:35px 32px;text-align:center;transform:rotate(3deg);border:1px solid var(--line)}.album-card .botanical{font-size:125px;line-height:1.3}.album-card h2{font-size:2rem}.album-card .eyebrow{font-size:.65rem}.album-caption{position:absolute;bottom:0;left:-20px;background:var(--white);padding:15px 22px;box-shadow:0 5px 24px #34291e10;transform:rotate(-5deg);font-family:var(--serif);font-style:italic}.home-section{padding:75px 0;border-top:1px solid var(--line)}.home-section>.section-title{max-width:700px;margin:0 auto 45px}.steps,.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.step-number{font-family:var(--serif);font-size:2.6rem;color:var(--gold);display:block;margin-bottom:15px}.steps h3,.features h3{font-size:1.4rem}.steps p,.features p{font-size:1rem;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.soft-section{background:#e9eddf;border-radius:16px;padding:50px}.home-cta{text-align:center;max-width:700px;margin:30px auto 0}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-weight:700;min-height:44px}.faq p{margin-top:15px;color:var(--muted)}.demo-banner{text-align:center;font-size:.9rem;background:#eaf0e6;padding:16px;border:1px solid #c7d3bf;border-radius:8px;margin-bottom:35px}.demo-art{min-height:210px;background:#e4e9d9;border-radius:6px;display:grid;place-items:center;font-family:var(--serif);font-size:4rem;color:var(--sage)}
@media(max-width:900px){.site-head{padding:22px 24px;align-items:flex-start}.site-head nav{justify-content:flex-end;gap:12px}.shell{padding:36px 24px 60px}.hero{gap:36px}.studio-grid{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.paper{padding:25px}.auth-layout{gap:40px}.steps,.features{gap:25px}}
@media(max-width:700px){.site-head{display:block;padding:20px}.site-head nav{margin-top:20px;justify-content:flex-start;gap:12px 22px}.brand-caption{font-size:10px}.shell{padding:30px 20px 50px}.hero{grid-template-columns:1fr;padding-bottom:50px;gap:35px}.hero h1{font-size:3.1rem}.hero-album{max-width:390px;margin:auto;width:100%;padding:25px 20px}.album-card{padding:25px}.album-caption{left:0;font-size:.9rem}.hero-copy p{font-size:1.05rem}.home-section{padding:45px 0}.steps,.features,.split,.studio-grid,.auth-layout{grid-template-columns:1fr;gap:24px}.steps>div,.features>div{border-bottom:1px solid var(--line);padding-bottom:20px}.steps>div:last-child,.features>div:last-child{border:0}.step-number{font-size:2rem;float:left;margin-right:20px}.soft-section{padding:28px 24px}.studio-aside{position:static}.paper{padding:24px 20px;border-radius:10px}.page-title{align-items:flex-start;flex-direction:column;gap:18px}.page-title .button{align-self:flex-start}.auth-intro .botanical{display:none}.auth-layout{margin:0}.auth-intro h1{font-size:2.3rem}.form-row{grid-template-columns:1fr;gap:0}.manage-gallery{grid-template-columns:1fr 1fr}.memorial-cover{padding-bottom:15px}.memorial-cover h1{font-size:2.5rem}.memorial-nav{gap:24px;padding:16px 8px}.portrait{width:150px;height:185px}.story{padding:25px 0 40px}.album{padding:25px 0 45px}.gallery{gap:16px}.filter-tabs{display:grid;grid-template-columns:1fr 1fr}.filter-tabs a{font-size:.88rem;padding:9px 11px}.actions .button{flex:1 1 150px}.site-foot{padding:35px 20px}.prose{font-size:1.05rem}}
@media(max-width:360px){.shell{padding-left:16px;padding-right:16px}.site-head{padding:18px 16px}.hero h1{font-size:2.6rem}.button{padding:11px 18px}.manage-gallery{grid-template-columns:1fr}.site-head nav{gap:10px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.site-head,.site-foot,.button,#print-qr,.skip{display:none!important}.shell{padding:0}.paper{border:0}.hint{color:#222}body{background:white}}

.studio-preview{padding-bottom:22px;margin-bottom:26px;border-bottom:1px solid var(--line)}.studio-preview .eyebrow{margin-bottom:12px}
