/* Shared rose-garden design. Deeper button shades meet white-text contrast. */
:root{--blush:#f7e6e4;--paper:#fdf6f1;--wine:#8e2f4f;--rose:#c4566e;--gold:#b48a3c;--ink:#3a2a28;--soft:#6b5552;--line:#e9d3cc;--bad:#9c293f;--shadow:0 6px 24px #743e3a0c;--radius:16px;--button:#ad405b;--button-gold:#856020}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;color:var(--ink);background:var(--paper) url('/art/garden/paper-blush.webp') repeat;background-size:512px;font:400 20px/1.6 'EB Garamond',Garamond,Georgia,serif}
[hidden],.hidden,html[lang=es] [data-lang=en],html[lang=en] [data-lang=es]{display:none!important}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}a{color:var(--wine);text-underline-offset:5px}img{max-width:100%}svg{flex:none}:focus-visible{outline:3px solid var(--wine);outline-offset:5px}h1,h2,h3{color:var(--wine);font-family:'Cormorant Garamond',Garamond,Georgia,serif;font-weight:600;line-height:1.15}h1{font-size:44px}h2{font-size:36px;margin:0 0 24px}h3{font-size:26px}p{margin:0 0 20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;padding:10px 20px;z-index:100;background:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:none}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:10px 25px;border:1px solid transparent;border-radius:999px;background:var(--button);color:white;box-shadow:0 3px 9px #8e2f4f16;font:500 18px/1.3 'EB Garamond',Garamond,Georgia,serif;text-align:center;text-decoration:none;transition:background .18s,box-shadow .18s}.btn:hover{background:var(--wine);box-shadow:0 4px 14px #8e2f4f25}.btn.ghost{background:#fffaf6;color:var(--wine);border-color:#b87987}.btn.ghost:hover{background:var(--blush)}.btn.gold{background:var(--button-gold)}.btn.gold:hover{background:#705019}.line-icon{width:23px;height:23px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.heart-mark{width:54px;height:60px;color:var(--gold)}.row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.card,.admin-card,.duplicate-group{border:1px solid #ead6cf;border-radius:var(--radius);background:#fffaf6;box-shadow:var(--shadow)}
/* Header and responsive navigation */
.site-header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid #e7c9c573}.header-inner{min-height:98px;max-width:1380px;padding:10px 30px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;color:var(--wine);text-decoration:none;flex:none}.brand-copy{display:flex;flex-direction:column;align-items:center}.brand-name{font:500 36px/1.05 'Cormorant Garamond',Garamond,Georgia,serif}.brand-memory{font-size:10px;line-height:1.8;letter-spacing:2.8px;text-transform:uppercase}.brand-dates{color:var(--soft);font-size:11px;letter-spacing:3px;line-height:1.2}.main-nav{display:flex;align-items:center;gap:26px}.main-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font-size:18px;text-decoration:none;white-space:nowrap}.main-nav a::after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--wine);transform:scaleX(0);transition:transform .2s}.main-nav a:hover,.main-nav a.active{color:var(--wine)}.main-nav a.active::after,.main-nav a:hover::after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:18px}.header-share{font-size:17px;padding:10px 22px}.header-share>span[aria-hidden]{font:26px/1 Georgia,serif}.lang{display:flex;flex:none;border:1px solid var(--line);border-radius:999px;padding:2px;background:#fffaf6}.lang button{min-width:44px;min-height:44px;border:0;border-radius:999px;color:var(--soft);background:transparent;font:500 13px/1 Georgia,serif}.lang button.on{background:var(--wine);color:white}.menu-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;background:transparent;border:1px solid var(--line);border-radius:50%;color:var(--wine)}.menu-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5}.back-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}
/* The original hero is unfiltered; capped at its 2400px source width. */
.hero{position:relative;isolation:isolate;max-width:2400px;min-height:560px;margin:auto;display:flex;align-items:center;justify-content:flex-end;overflow:hidden;background:var(--paper)}.hero-art{position:absolute;inset:0;z-index:-2}.hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top}.hero::before,.hero::after{content:'';position:absolute;z-index:-1;width:235px;height:235px;pointer-events:none;background:none left bottom/contain no-repeat}.hero::before{left:0;bottom:0}.hero::after{right:0;top:0;transform:rotate(180deg)}.hero-content{width:52%;padding:22px 5% 24px 1%;text-align:center}.eyebrow{margin:0 0 7px;font-size:14px;letter-spacing:7px;text-transform:uppercase}.gold-flourish{color:var(--gold);font-size:19px;line-height:1;letter-spacing:3px;margin:5px 0 9px}.hero h1{font:400 clamp(90px,8.8vw,130px)/1.05 'Great Vibes','French Script MT','Monotype Corsiva',cursive;margin:0;color:var(--wine);white-space:nowrap}.heart-rule{display:flex;align-items:center;justify-content:center;gap:10px;margin:-2px auto 0}.heart-rule span{height:1px;width:78px;background:var(--gold)}.heart-rule .heart-mark{width:26px;height:27px}.hero-dates{margin:0 0 6px;color:var(--wine);font-size:16px;letter-spacing:5px}.hero-subtitle{margin:0 0 9px;color:var(--wine);font:600 italic 34px/1.15 'Cormorant Garamond',Garamond,Georgia,serif}.hero-description{max-width:465px;margin:0 auto 20px;font-size:20px;line-height:1.35}.hero-buttons{display:flex;justify-content:center;align-items:center;gap:10px}.hero-buttons .btn{padding:11px 18px;white-space:nowrap}
/* Floral action band */
.rose-frame{position:relative;isolation:isolate;overflow:hidden}.rose-frame::before,.rose-frame::after{content:'';position:absolute;z-index:-1;bottom:0;width:190px;height:190px;pointer-events:none;background:none left bottom/contain no-repeat}.rose-frame::before{left:0}.rose-frame::after{right:0;transform:scaleX(-1)}.action-band{background:#fff8f1bd;border-bottom:1px solid #ebd6d063}.action-band::before,.action-band::after{width:170px;height:170px}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1330px;margin:auto;padding:22px 38px}.action-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:15px;padding:0 22px}.action-card+.action-card{border-left:1px solid var(--line)}.action-art{position:relative;padding-top:2px}.icon-circle{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:auto;color:var(--wine);background:#f9dfdf;border-radius:50%}.icon-circle svg{width:39px;height:39px;stroke-width:1.2}.action-art img{width:105px;max-width:none;height:auto;margin:6px 0 0 -6px}.action-card h2{font-size:25px;margin:1px 0 6px}.action-card p{font-size:18px;line-height:1.3;margin:0 0 13px}.action-card>div:last-child{display:flex;flex-direction:column;align-items:flex-start}.action-card>div:last-child p{flex:1}.action-card .btn{min-height:44px;font-size:17px;padding:8px 23px}
/* Real upload previews; either column can stand on its own. */
.preview-section{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:28px;max-width:1448px;padding:20px 30px 30px;margin:auto}.preview-section.single-column{grid-template-columns:minmax(0,1fr)}.moments-column,.quotes-column{min-width:0}.quotes-column{border-left:1px solid var(--line);padding-left:26px}.single-column .quotes-column{border:0;padding:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.section-heading h2{font-size:32px;font-style:italic;margin:0}.section-heading a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:16px;text-decoration:none;white-space:nowrap}.moments-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.photo-button{display:block;width:100%;padding:0;border:0;border-radius:12px;background:var(--blush);overflow:hidden;cursor:zoom-in;box-shadow:var(--shadow)}.moments-strip img{display:block;width:100%;height:198px;object-fit:cover;object-position:center 30%}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.memory-card{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);background:#f8e6e2b3;box-shadow:var(--shadow);margin:0;padding:22px 24px 32px;min-height:198px}.memory-card::after{content:'';position:absolute;right:-9px;bottom:-4px;width:92px;height:46px;background:none center/contain no-repeat;z-index:-1;transform:rotate(-15deg)}.quote-mark{display:block;color:var(--rose);font:600 49px/.6 'Cormorant Garamond',Garamond,serif;margin:2px 0 8px}.memory-card blockquote{margin:0;font-size:18px;line-height:1.3;overflow-wrap:anywhere}.memory-card figcaption{margin-top:12px;padding-right:16px;color:var(--wine);font-size:16px;font-style:italic;line-height:1.3;overflow-wrap:anywhere}
/* Biography, scriptures and complete galleries */
.content-section{max-width:1060px;margin:0 auto;padding:64px 30px}.content-section>h2,.memories-section>h2{text-align:center;font-style:italic}.life-layout{display:flex;gap:65px;align-items:center}.life-portrait{flex:none;width:260px;margin:0;padding:7px;border:1px solid var(--gold);border-radius:150px 150px 18px 18px;background:#fffaf6;box-shadow:var(--shadow)}.life-portrait img{display:block;width:100%;height:auto;aspect-ratio:23/25;object-fit:cover;border-radius:150px 150px 12px 12px}.life-copy{flex:1;min-width:0}.life-copy h2{font-style:italic}.life-copy p{max-width:800px}.family{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;text-align:center;margin:32px 0 20px}.family b{display:block;color:var(--wine);font:500 52px/1 'Cormorant Garamond',Garamond,serif}.family span{display:block;font-size:16px;line-height:1.3;color:var(--soft);margin-top:7px}.met{font:500 italic 26px/1.3 'Cormorant Garamond',Garamond,serif;color:var(--wine);text-align:center;margin:14px 0 0}.verse-band{background:#f7e6e4bd;margin:10px 0;padding:46px 160px}.verse{max-width:760px;margin:auto;text-align:center;font:500 italic 28px/1.5 'Cormorant Garamond',Garamond,serif}.verse p{margin:0}.verse cite{display:block;margin-top:17px;font:400 13px/1.5 'EB Garamond',serif;letter-spacing:3px;text-transform:uppercase;color:var(--wine)}.gallery-section{max-width:1160px}#albumBlock>h2{text-align:center;font-style:italic}#albumBlock{margin-bottom:64px}.gallery{columns:3 230px;column-gap:18px}.gallery figure{margin:0 0 22px;break-inside:avoid}.gallery:has(>figure:only-child){columns:1;max-width:400px;margin-inline:auto}.gallery:has(>figure:nth-child(2):last-child){columns:2;max-width:820px;margin-inline:auto}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--blush);box-shadow:var(--shadow);cursor:zoom-in}.gallery img.loaded{aspect-ratio:auto}.gallery figcaption{padding:7px 4px 0;color:var(--soft);font-size:17px;line-height:1.4;overflow-wrap:anywhere}.empty{text-align:center;font-style:italic;color:var(--soft);column-span:all;margin:20px 0}.more-photos{display:flex;margin:24px auto 0}.all-memories{margin:0 0 30px;grid-template-columns:repeat(3,minmax(0,1fr));max-height:460px;overflow:auto;padding:5px 5px 18px}.all-memories .memory-card{min-height:0}.details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.details .card{padding:30px;text-align:center}.details b{display:block;font:600 26px/1.3 'Cormorant Garamond',Garamond,serif;color:var(--wine);margin-bottom:10px}.details span{color:var(--soft)}.service-section{padding-top:16px;padding-bottom:30px}.hope-section{padding-top:25px;padding-bottom:20px}.prayer{max-width:720px;margin:auto;text-align:center;font:500 italic 27px/1.5 'Cormorant Garamond',Garamond,serif}.prayer small{display:block;margin-top:16px;font:400 13px/1.5 'EB Garamond',serif;text-transform:uppercase;letter-spacing:3px;color:var(--wine)}.closing{text-align:center;padding-top:26px}.section-sprig{display:block;width:160px;height:80px;margin:0 auto 25px}.closing .row{justify-content:center}#shareStatus:empty{display:none}#shareStatus{margin:16px 0 0}.site-footer{padding:34px 170px 44px;text-align:center;background:var(--blush)}.site-footer .heart-mark{width:42px;height:44px}.site-footer p{margin:6px 0 8px;color:var(--wine);font:500 italic 29px/1.2 'Cormorant Garamond',Garamond,serif}.site-footer small{font-size:12px;color:var(--soft);text-transform:uppercase;letter-spacing:3px}
/* Upload and admin; retain every existing control. */
.upload-page,.admin-page{min-height:100vh;display:flex;flex-direction:column}.upload-page main,.admin-page main{width:100%;max-width:720px;flex:1;padding:52px 30px 70px;margin:auto}.upload-page h1,.admin-page h1{text-align:center;margin:0 0 12px}.sub{text-align:center;color:var(--soft);margin:0 0 30px}.form-card{padding:28px 32px 32px}.form-card label:first-child{margin-top:0}label{display:block;font-weight:500;margin:18px 0 6px}input[type=text],input[type=password],textarea{width:100%;min-height:48px;padding:10px 14px;border:1px solid #bca5a0;border-radius:10px;background:#fffdfa;color:var(--ink)}textarea{min-height:95px;resize:vertical}input[type=checkbox],input[type=radio]{accent-color:var(--wine);width:20px;height:20px;vertical-align:middle}.note{color:var(--soft);font-size:17px;line-height:1.45}.err{color:var(--bad)}.dropzone{display:block;width:100%;min-height:120px;padding:25px 20px;margin-top:25px;border:1px dashed var(--wine);border-radius:var(--radius);background:#f7e6e46b;color:var(--wine)}.dropzone.dragging{background:var(--blush);border-style:solid}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}.preview{position:relative;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.preview img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.preview .filename{display:block;padding:8px;font-size:15px;overflow-wrap:anywhere}.preview .fallback{min-height:100px;display:grid;place-items:center}.preview button{position:absolute;right:5px;top:5px;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--wine);font-size:25px}#chosen{margin:18px 0}#list{margin-top:26px}.item{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}.item img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:none}.item .nm{flex:1;min-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item .st{font-size:15px;color:var(--soft)}.bar{height:5px;background:var(--line);border-radius:4px;margin-top:5px}.bar i{display:block;height:100%;width:0;background:var(--wine);border-radius:4px;transition:width .2s}progress{width:100%;height:12px;accent-color:var(--wine)}#overall{margin-top:25px}.summary{text-align:center;margin-top:25px;font:600 25px/1.4 'Cormorant Garamond',Garamond,serif}.admin-page main{max-width:1160px}.admin-page #gate{max-width:600px;margin:30px auto}.admin-page #gate>.btn{margin-top:22px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin:25px 0}.admin-card{min-width:0;padding:16px}.admin-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center top;border-radius:12px}.admin-card .thumb{display:block;width:100%;padding:0;border:0;border-radius:12px;background:transparent}.admin-card p{overflow-wrap:anywhere;font-size:16px;line-height:1.4;margin:14px 0}.admin-card label{margin-top:4px;min-height:44px}.admin-card textarea{min-height:90px}.admin-card .btn{padding:9px 17px;font-size:16px;margin-top:8px}[role=tab][aria-selected=true]{background:var(--wine);color:white}#duplicates{padding-top:20px}#duplicates summary{cursor:pointer;min-height:44px;color:var(--wine);font:600 28px/1.5 'Cormorant Garamond',Garamond,serif}.duplicate-group{padding:20px;margin:18px 0}.duplicate-options{display:flex;gap:18px;overflow:auto;padding-bottom:15px}.duplicate-options label{width:140px;flex:none;overflow-wrap:anywhere;font-size:16px}.duplicate-options img{display:block;width:140px;height:110px;object-fit:cover;border-radius:10px}.portrait-panel{display:flex;gap:20px;align-items:center;margin:25px 0;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fffaf6;box-shadow:var(--shadow)}.portrait-panel img,.portrait-panel .none{width:92px;height:100px;object-fit:cover;flex:none;border-radius:46px 46px 8px 8px;border:1px solid var(--gold);background:var(--blush)}.portrait-panel h2{font-size:26px;margin:0 0 5px}dialog{max-width:94vw;max-height:94dvh;padding:22px;background:var(--paper);border:1px solid var(--gold);border-radius:var(--radius);color:var(--ink)}dialog::backdrop{background:#271917e8}dialog img{display:block;max-width:85vw;max-height:72vh;margin-top:12px}dialog button{min-height:44px;padding:9px 20px;border:1px solid #b87987;border-radius:999px;color:var(--wine);background:#fffaf6}#cropper{width:430px;max-width:94vw}.crop-stage{position:relative;width:min(300px,74vw);aspect-ratio:23/25;margin:12px auto;overflow:hidden;touch-action:none;cursor:grab;border-radius:50% 50% 8px 8px / 46% 46% 8px 8px;border:1px solid var(--gold);background:var(--blush)}.crop-stage img{position:absolute;left:0;top:0;transform-origin:0 0;user-select:none;-webkit-user-drag:none;pointer-events:none;max-width:none;max-height:none;width:auto;height:auto;margin:0}#cropper input[type=range]{width:100%;min-height:44px;accent-color:var(--wine)}
/* Lightbox, back to top and reduced motion. */
#backToTop{position:fixed;right:20px;bottom:22px;width:46px;height:46px;border:1px solid #ffffff80;border-radius:50%;background:var(--wine);color:white;z-index:25;box-shadow:0 4px 16px #5a202f28}.lightbox{position:fixed;inset:0;z-index:50;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:58px 18px 22px;background:#241917f5}.lightbox.open{display:flex}.lightbox img{max-width:90vw;max-height:65vh;object-fit:contain;border-radius:10px}.box-caption{max-width:700px;max-height:14vh;overflow:auto;margin:0;color:var(--paper);text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}.box-controls{display:flex;align-items:center;gap:25px;color:var(--paper)}.lightbox button{border:1px solid #dfb7b1;background:var(--wine);color:white;min-width:46px;min-height:46px;border-radius:50%}.lightbox .box-close{position:absolute;top:12px;right:18px;font-size:25px}.lightbox a{display:flex;align-items:center;min-height:44px;color:var(--paper);font-size:17px}.lightbox :focus-visible{outline-color:#f7d5b5}
@media(min-width:1800px){.hero{min-height:680px}}
@media(max-width:1200px){.header-inner{gap:20px;padding-inline:22px}.header-share{display:none}.main-nav{gap:24px}.hero-content{width:54%;padding-right:3%}.hero-buttons .btn{padding:11px 14px;font-size:17px}.action-grid{padding-inline:30px}.action-card{grid-template-columns:64px minmax(0,1fr);gap:13px;padding-inline:17px}.icon-circle{width:61px;height:61px}.action-art img{width:80px}.action-card h2{font-size:24px}.section-heading{align-items:flex-start;flex-direction:column;gap:0}}
@media(max-width:950px){.hero-content{width:56%;padding-right:20px;padding-left:10px}.hero h1{font-size:88px}.hero-description{font-size:18px}.hero-subtitle{font-size:29px}.hero-buttons{flex-wrap:wrap}.hero-buttons .btn{min-height:44px}.action-card{grid-template-columns:1fr;text-align:center;padding-inline:18px}.action-card>div:last-child{align-items:center}.action-art img{display:none}.action-card .btn{padding-inline:18px}.preview-section{grid-template-columns:1fr}.quotes-column{border:0;padding:0}.section-heading{flex-direction:row;align-items:center}.life-layout{gap:32px}.life-portrait{width:220px}.family{gap:12px}.verse-band{padding-inline:120px}}
@media(max-width:760px){html{scroll-padding-top:90px}body{font-size:19px}h2{font-size:32px}.header-inner{min-height:80px;padding:9px 18px;gap:10px}.brand{gap:5px}.brand .heart-mark{width:36px;height:43px}.brand-name{font-size:29px}.brand-memory{font-size:8px;letter-spacing:1.4px}.brand-dates{font-size:9px;letter-spacing:2px}.header-actions{gap:8px}.lang{padding:0}.lang button{min-width:44px}.menu-toggle{display:flex}.main-nav{position:absolute;top:100%;left:0;right:0;display:none;padding:12px 20px 20px;gap:5px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.main-nav.open{display:grid;grid-template-columns:1fr 1fr}.main-nav a{padding:8px 14px}.main-nav a::after{left:14px;right:14px}.hero{display:block;min-height:0;overflow:visible}.hero::before,.hero::after{display:none}.hero-art{position:static;display:block}.hero-art img{width:100%;height:auto;aspect-ratio:1171/1343;object-fit:cover}.hero-content{position:relative;width:100%;padding:32px 25px 36px;background:var(--paper)}.eyebrow{font-size:12px;letter-spacing:4px}.hero h1{font-size:76px;margin:6px 0}.hero-subtitle{font-size:30px;margin:12px 0}.hero-description{max-width:480px;font-size:19px;line-height:1.5;margin-bottom:25px}.hero-buttons{flex-direction:column;align-items:stretch;max-width:440px;margin:auto;gap:12px}.hero-buttons .btn{font-size:19px;min-height:49px}.action-grid{grid-template-columns:1fr;padding:12px 25px}.action-card{grid-template-columns:72px minmax(0,1fr);gap:18px;padding:25px 0;text-align:left}.action-card>div:last-child{align-items:flex-start}.action-card+.action-card{border-left:0;border-top:1px solid var(--line)}.action-card h2{font-size:26px}.action-card p{font-size:18px;line-height:1.4}.action-card .btn{font-size:18px}.action-art img{display:block;width:90px;margin-left:-9px;margin-top:8px}.icon-circle{width:68px;height:68px}.action-band::before,.action-band::after{width:110px;height:110px;opacity:.6}.preview-section{padding:25px;gap:32px}.section-heading{flex-wrap:wrap;gap:0 10px;margin-bottom:12px}.section-heading h2{font-size:31px}.moments-strip{grid-template-columns:repeat(5,124px);overflow:auto;padding-bottom:12px;scroll-snap-type:x mandatory}.moments-strip .photo-button{scroll-snap-align:start}.moments-strip img{height:164px}.quote-grid{grid-template-columns:1fr}.memory-card{min-height:0;padding:24px 26px 34px}.memory-card blockquote{font-size:19px;line-height:1.45}.content-section{padding:43px 25px}.life-layout{flex-direction:column;gap:28px}.life-portrait{width:230px}.life-copy h2{text-align:center}.family{gap:20px 15px;grid-template-columns:repeat(2,minmax(0,1fr))}.family b{font-size:49px}.family span{font-size:17px}.verse-band{padding:40px 32px}.verse{font-size:25px}.verse-band::before,.verse-band::after{width:85px;height:85px;opacity:.55}.gallery{columns:2 140px;column-gap:12px}.gallery figcaption{font-size:16px}.all-memories{max-height:450px}#albumBlock{margin-bottom:45px}.details{grid-template-columns:1fr;gap:16px}.details .card{padding:26px 20px}.service-section{padding-top:10px;padding-bottom:20px}.hope-section{padding-block:25px}.prayer{font-size:25px}.closing{padding-top:15px}.closing .row{flex-direction:column}.site-footer{padding:32px 25px 95px}.site-footer::before,.site-footer::after{width:125px;height:125px}.site-footer p{font-size:27px}.site-footer small{font-size:11px;letter-spacing:2px}.upload-page main,.admin-page main{padding:38px 20px 50px}.upload-page h1,.admin-page h1{font-size:36px}.simple-header .header-inner{padding-inline:12px}.simple-header .brand .heart-mark{width:28px}.simple-header .brand-name{font-size:27px}.simple-header .header-actions{gap:8px}.back-link{font-size:16px}.form-card{padding:24px 20px}.form-card .row{flex-direction:column}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait-panel{align-items:flex-start;padding:17px;gap:15px}.portrait-panel h2{font-size:24px}.portrait-panel img,.portrait-panel .none{width:69px;height:75px}.admin-grid{grid-template-columns:1fr}#backToTop{right:14px;bottom:16px}}
@media(max-width:420px){.header-inner{padding-inline:12px}.brand-name{font-size:27px}.hero h1{font-size:68px}.hero-content{padding-inline:25px}.hero-subtitle{font-size:28px}.hero-dates{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Garden v2: every decorative spot has its own bespoke artwork (no mirrored or repeated pieces on a page). */
.hero::before,.hero::after{display:none}
.rose-frame::before,.rose-frame::after{transform:none;background-size:contain;background-repeat:no-repeat}
.rose-frame::before{background-position:left bottom}.rose-frame::after{background-position:right bottom}
.action-band::before{background-image:url('/art/garden2/band-left.webp');width:170px;height:104px;opacity:.9}
.action-band::after{background-image:url('/art/garden2/band-right.webp');width:175px;height:112px;opacity:.9}
.verse-band::before{background-image:url('/art/garden2/verse-left.webp');width:200px;height:195px}
.verse-band::after{background-image:url('/art/garden2/verse-right.webp');width:200px;height:195px}
.home-page .site-footer::before{background-image:url('/art/garden2/footer-left.webp');width:210px;height:210px}
.home-page .site-footer::after{background-image:url('/art/garden2/footer-right.webp');width:210px;height:210px}
.upload-page .site-footer::before{background-image:url('/art/garden2/subir-corner.webp');width:200px;height:205px}
.upload-page .site-footer::after{background-image:url('/art/garden2/verse-right.webp');width:190px;height:185px}
.album-page .site-footer::before{background-image:url('/art/garden2/album-corner.webp');width:200px;height:200px}
.album-page .site-footer::after{background-image:url('/art/garden2/verse-left.webp');width:190px;height:185px}
.admin-page .site-footer::before{background-image:url('/art/garden2/admin-sprig.webp');width:150px;height:155px}
.admin-page .site-footer::after{background-image:url('/art/garden2/footer-left.webp');width:180px;height:180px}
.action-art img{width:118px;height:auto}
.memory-card::after{transform:none;width:70px;height:72px;right:4px;bottom:4px;background-image:url('/art/garden2/memory-rosebuds.webp')}
.memory-card:nth-child(even)::after{background-image:url('/art/garden2/memory-ranunculus.webp')}
.life-portrait{position:relative;overflow:visible}
.life-portrait::before{content:'';position:absolute;z-index:1;left:-16%;right:-16%;top:-17%;height:36%;pointer-events:none;background:url('/art/garden2/portrait-crown.webp') center top/contain no-repeat}
.life-copy h2::after{content:'';display:block;width:260px;max-width:100%;height:30px;margin:6px 0 0;background:url('/art/garden2/life-garland.webp') left center/contain no-repeat}
#gallery-section::before{content:'';display:block;width:240px;height:84px;margin:0 auto 22px;background:url('/art/garden2/gallery-gardenias.webp') center/contain no-repeat}
.closing-bouquet{width:300px;height:auto;margin:0 auto 18px}
@media(max-width:760px){
  .action-band::before,.action-band::after{width:150px;height:95px;opacity:.85}
  .verse-band::before,.verse-band::after{width:105px;height:102px;opacity:.8}
  .site-footer::before,.site-footer::after,.home-page .site-footer::before,.home-page .site-footer::after{width:130px;height:130px}
  .life-copy h2::after{margin:6px auto 0;background-position:center}
  .closing-bouquet{width:240px}
}

@media(min-width:761px){.hero-content{padding-right:5%}}
@media(min-width:1241px){.hero{min-height:0;aspect-ratio:2194/1097;max-height:760px}}

/* Decorative flowers never sit on text or buttons: each one gets its own reserved space. */
.memory-card{padding-bottom:78px}
.memory-card::after{width:64px;height:66px;right:10px;bottom:8px}
.site-footer{padding-bottom:230px}
.verse-band::before,.verse-band::after{bottom:0}
@media(max-width:1100px){
  .verse-band{padding-bottom:150px}
  .verse-band::before,.verse-band::after{width:140px;height:136px}
  .action-band{padding-bottom:120px}
  .action-band::before,.action-band::after{bottom:6px;opacity:1}
  .action-art img{width:100%;max-width:100%;height:auto;margin:6px 0 0}
}
@media(max-width:950px){.action-art img{display:none}}
@media(max-width:760px){
  .action-art img{display:block;width:72px;max-width:72px;margin:6px auto 0}
  .action-card{grid-template-columns:72px minmax(0,1fr)}
  .action-band{padding-bottom:110px}
  .action-band::before,.action-band::after{width:150px;height:95px}
  .verse-band{padding-bottom:118px}
  .verse-band::before,.verse-band::after{width:110px;height:107px}
  .site-footer{padding-bottom:150px}
  .site-footer::before,.site-footer::after,.home-page .site-footer::before,.home-page .site-footer::after,
  .upload-page .site-footer::before,.upload-page .site-footer::after,.album-page .site-footer::before,.album-page .site-footer::after,
  .admin-page .site-footer::before,.admin-page .site-footer::after{width:130px;height:130px}
}
@media(min-width:1101px){
  .action-card{grid-template-columns:96px minmax(0,1fr)}
  .action-art img{width:96px;max-width:96px;margin:6px 0 0}
  .action-grid{padding-left:170px;padding-right:170px}
  .action-band::before{width:160px;height:98px;bottom:8px}
  .action-band::after{width:160px;height:104px;bottom:8px}
}
/* New gold heart + flourish artwork (images, not glyphs) */
img.heart-mark{display:block;height:auto;object-fit:contain}
.brand img.heart-mark{width:44px}
.heart-rule img.heart-mark{width:24px}
.site-footer img.heart-mark{width:46px;margin:0 auto}
img.gold-flourish{display:block;width:190px;height:auto;margin:10px auto 6px}
@media(max-width:760px){.brand img.heart-mark{width:36px}.simple-header .brand img.heart-mark{width:30px}img.gold-flourish{width:160px}}
/* Tablets: picture on top (wide garden image), text below; side-by-side only where it truly fits. */
@media(min-width:761px) and (max-width:1240px){
  .hero{display:block;min-height:0;aspect-ratio:auto;max-height:none;overflow:visible}
  .hero-art{position:static;display:block}
  .hero-art img{width:100%;height:auto;aspect-ratio:2194/1097;object-fit:cover;object-position:left top}
  .hero-content{position:relative;width:100%;max-width:760px;margin:0 auto;padding:36px 32px 44px;background:var(--paper);text-align:center}
  .hero h1{font-size:96px}
  .hero-buttons{justify-content:center;flex-wrap:wrap}
}
@media(min-width:1101px) and (max-width:1300px){.verse-band::before,.verse-band::after{width:150px;height:146px}}
@media(min-width:1101px) and (max-width:1340px){.action-grid{padding-left:110px;padding-right:110px}.action-band::before,.action-band::after{width:110px;height:68px}}
/* Five family numbers */
.family{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 26px}
.family>div{flex:0 1 150px}
@media(max-width:760px){.family{gap:20px 10px}.family>div{flex:0 1 44%}}
/* Family tree (interactive) */
.tree-section{text-align:center;max-width:1240px}
.tree-art{display:block;width:240px;height:auto;margin:0 auto 6px}
.tree-intro{color:var(--soft);font-style:italic;margin:-6px 0 18px}
.tree-count{display:inline-block;margin-left:6px;color:var(--gold);font-style:normal;font-size:15px;letter-spacing:1px}
.family-tree{position:relative}
.tree-stage{position:relative;overflow:hidden;width:100%;border-radius:22px;touch-action:pan-y;cursor:default;user-select:none}
.tree-stage.desktop.zoomed{cursor:grab;touch-action:none}.tree-stage.dragging{cursor:grabbing}
.tree-canvas{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.tree-stage.dragging .tree-canvas{transition:none}
.tree-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:.92}
.tree-lines{position:absolute;inset:0;overflow:visible;pointer-events:none}
.branch{fill:none;stroke:#b48a3c;stroke-width:2.2;stroke-linecap:round;opacity:.75;transition:stroke .3s,stroke-width .3s,opacity .3s,filter .3s}
.branch.trunk{stroke-width:4}.branch.side{stroke-dasharray:2 6;opacity:.6}
.has-lit .branch:not(.lit){opacity:.35}
.branch.lit{stroke:#e2b552;stroke-width:4.5;opacity:1;filter:drop-shadow(0 0 6px #f3cd6a)}
.node{position:absolute;transform:translate(-50%,-50%) scale(.55);opacity:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;border:0;background:none;cursor:pointer;color:var(--ink);transition:transform .7s cubic-bezier(.2,1.4,.4,1) var(--delay,0ms),opacity .5s ease var(--delay,0ms)}
.bloomed .node{transform:translate(-50%,-50%) scale(1);opacity:1}
.node .ring{display:grid;place-items:center;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;background:radial-gradient(circle at 35% 30%,#fffaf3,#f6e2da);border:2px solid #c9a24d;box-shadow:0 0 0 3px #fff8f0cc,0 4px 12px #6b3a2a33;transition:box-shadow .3s,transform .3s}
.node .ring img{width:100%;height:100%;object-fit:cover}
.node .mono{font:600 calc(var(--s)*.36) 'Cormorant Garamond',serif;color:#9c7631;letter-spacing:.5px}
.node .tag{max-width:150px;padding:2px 9px;border-radius:999px;background:#fffaf4e6;border:1px solid #ead8c6;font:500 15px/1.25 'EB Garamond',serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 4px #6b3a2a1a}
.node.d3 .tag,.node.d4 .tag,.node.dx .tag{font-size:13px;max-width:120px}
.node.anita .ring{border:3px solid #b48a3c;box-shadow:0 0 0 5px #fff4ea,0 0 0 7px #e2c27a,0 0 26px 6px #f5d58a88}
.node.anita .tag{font:400 26px/1.1 'Great Vibes',cursive;color:var(--wine);max-width:none;padding:2px 14px}
.node.roots .tag{font:600 16px 'Cormorant Garamond',serif;color:var(--wine);max-width:none}
.node:hover .ring,.node:focus-visible .ring{transform:scale(1.08);box-shadow:0 0 0 3px #fff8f0,0 0 0 5px #e2b552,0 6px 16px #6b3a2a44}
.node:focus-visible{outline:none}.node:focus-visible .tag{outline:2px solid var(--wine);outline-offset:2px}
.node.lit .ring{box-shadow:0 0 0 3px #fff8f0,0 0 0 5px #e2b552,0 0 22px 6px #f3cd6aaa}
.node.lit .tag{border-color:#e2b552;color:var(--wine)}
.sibs-chip{padding:8px 14px;min-height:44px;border:1px solid #d9b9b3;border-radius:999px;background:#fffaf6;color:var(--wine);font:500 15px 'EB Garamond',serif;transform:translate(-50%,-50%);opacity:1}
.tree-zoom{position:absolute;right:12px;top:12px;z-index:3;display:flex;flex-direction:column;gap:6px}
.tree-zoom button{width:44px;height:44px;border-radius:50%;border:1px solid #e0c9b8;background:#fffaf6ee;color:var(--wine);font:500 22px/1 'EB Garamond',serif;cursor:pointer;box-shadow:var(--shadow)}
.tree-crumbs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:0 0 8px}
.tree-crumbs .crumb{min-height:44px;padding:6px 12px;border:0;border-radius:999px;background:none;color:var(--wine);font:500 17px 'EB Garamond',serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tree-crumbs .crumb[aria-current]{text-decoration:none;background:#f8e6e2}
.tree-crumbs .sep{color:var(--gold)}
.tree-hint{font-size:15px;color:var(--soft);font-style:italic;margin-top:10px}
.person-card{width:min(420px,92vw);padding:0;border:1px solid #e2c27a;border-radius:22px;background:linear-gradient(#fffaf5,#fbeee9);box-shadow:0 20px 60px #3a2a2855;overflow:hidden;text-align:center}
.person-card::backdrop{background:#2a1a1899;backdrop-filter:blur(2px)}
.person-card[open]{animation:cardIn .35s cubic-bezier(.2,1.2,.4,1)}
@keyframes cardIn{from{transform:translateY(14px) scale(.96);opacity:0}}
.card-close{position:absolute;right:10px;top:8px;width:44px;height:44px;border:0;background:none;color:var(--wine);font-size:30px;cursor:pointer}
.card-photo{display:grid;place-items:center;width:150px;height:150px;margin:28px auto 6px;border-radius:50%;overflow:hidden;border:3px solid #c9a24d;box-shadow:0 0 0 6px #fff4ea,0 0 0 8px #e7cf96;background:radial-gradient(circle at 35% 30%,#fffaf3,#f6e2da)}
.card-photo img{width:100%;height:100%;object-fit:cover}.card-photo .mono{font:600 54px 'Cormorant Garamond',serif;color:#9c7631}
.card-body{padding:6px 26px 26px}
.card-rel{margin:0;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}
.card-body h3{margin:4px 0;font:600 30px/1.15 'Cormorant Garamond',serif;color:var(--wine)}
.card-years{margin:0;letter-spacing:2px;color:var(--soft)}
.card-spouse{margin:8px 0 0}.card-spouse .amp{color:var(--rose)}
.card-note{margin:10px 0 0;font-style:italic;color:var(--soft)}
.card-links{margin:12px 0 0;font-size:16px;line-height:1.9}.card-links .lbl{color:var(--soft)}
.person-link{min-height:36px;padding:2px 4px;border:0;background:none;color:var(--wine);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.node,.tree-canvas,.branch,.person-card[open]{transition:none;animation:none}}
.tree-editor{padding-top:20px}.tree-editor summary{cursor:pointer;min-height:44px;color:var(--wine);font:600 28px/1.5 'Cormorant Garamond',Garamond,serif}
.tree-edit-list{list-style:none;padding:0;margin:14px 0}
.tree-edit-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}
.tree-edit-row input[type=text]{min-height:40px;padding:6px 10px;max-width:100%}
.tree-edit-row .btn{padding:6px 14px;font-size:15px}
.tree-gen{min-width:7.5em;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--gold)}
.tree-photo-btn{display:inline-flex;align-items:center;gap:6px}.tree-photo-btn img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.photo-crop{width:min(380px,94vw);padding:20px;border:1px solid var(--gold);border-radius:18px;background:var(--paper);text-align:center}
.photo-crop h3{margin:0 0 10px;font:600 24px 'Cormorant Garamond',serif;color:var(--wine)}
.pc-stage{position:relative;width:min(280px,76vw);aspect-ratio:1;margin:0 auto 10px;border-radius:50%;overflow:hidden;border:3px solid #c9a24d;touch-action:none;cursor:grab;background:var(--blush)}
.pc-stage img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;max-height:none;width:auto;height:auto;margin:0;pointer-events:none;user-select:none}
.photo-crop input[type=range]{width:100%;accent-color:var(--wine)}
/* Videos */
.videos-section{text-align:center}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:26px;margin-top:10px}
.video-card{margin:0;padding:12px;border-radius:var(--radius);background:#fffaf6;box-shadow:var(--shadow);border:1px solid #ecdccd}
.video-card video{display:block;width:100%;aspect-ratio:16/9;border-radius:12px;background:#2a1a18}
.video-card figcaption{margin-top:10px;font:600 22px 'Cormorant Garamond',serif;color:var(--wine)}
/* Timeline */
.timeline-section{text-align:center}
.timeline{position:relative;list-style:none;margin:20px auto 0;padding:0;max-width:900px}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:linear-gradient(#e7cf96,#b48a3c,#e7cf96)}
.tl-item{position:relative;width:50%;padding:0 40px 34px;opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.tl-item.shown{opacity:1;transform:none}
.tl-item.left{margin-right:50%;text-align:right}.tl-item.right{margin-left:50%;text-align:left}
.tl-dot{position:absolute;top:14px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fbe7a8,#b48a3c);box-shadow:0 0 0 4px #fdf6f1,0 0 0 5px #e2c27a}
.tl-item.left .tl-dot{right:-8px}.tl-item.right .tl-dot{left:-8px}
.tl-card{display:inline-block;max-width:380px;padding:16px 20px;border-radius:16px;background:#fffaf6;box-shadow:var(--shadow);border:1px solid #ecdccd;text-align:left}
.tl-year{display:block;font:600 15px 'EB Garamond',serif;letter-spacing:3px;color:var(--gold)}
.tl-card h3{margin:2px 0 6px;font:600 23px/1.2 'Cormorant Garamond',serif;color:var(--wine)}
.tl-card p{margin:0;font-size:17px;line-height:1.5}
.tl-photo{display:block;width:100%;max-height:260px;object-fit:cover;border-radius:10px;margin-bottom:10px}
@media(max-width:760px){.timeline::before{left:14px}.tl-item,.tl-item.left,.tl-item.right{width:100%;margin:0;padding:0 0 26px 40px;text-align:left}.tl-item.left .tl-dot,.tl-item.right .tl-dot{left:6px;right:auto}.tl-card{max-width:none;display:block}}
/* Leave a flower */
.flowers-section{text-align:center}
.flower-intro{color:var(--soft);font-style:italic;margin:-6px 0 18px}
.flower-picker{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:14px}
.flower-choice{display:flex;flex-direction:column;align-items:center;gap:2px;width:104px;min-height:44px;padding:8px 4px;border:1px solid #ecdccd;border-radius:16px;background:#fffaf6;cursor:pointer;font:500 15px 'EB Garamond',serif;color:var(--ink);transition:transform .2s,box-shadow .2s,border-color .2s}
.flower-choice img{width:64px;height:64px;object-fit:contain}
.flower-choice[aria-pressed=true]{border:2px solid var(--gold);box-shadow:0 0 0 4px #f6e3dd,var(--shadow);transform:translateY(-2px);color:var(--wine)}
.flower-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.flower-row input[type=text]{flex:0 1 330px;min-height:48px;padding:10px 16px;border:1px solid #bca5a0;border-radius:999px;background:#fffdfa;font:inherit;color:var(--ink)}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#flowerMsg{min-height:1.4em;margin:10px 0 0;color:var(--wine)}
.flower-count{margin:16px 0 6px;font:500 italic 24px 'Cormorant Garamond',serif;color:var(--wine)}
.flower-garden{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:2px 0;max-width:900px;margin:0 auto;padding:16px 10px 26px;border-radius:24px;background:radial-gradient(ellipse at 50% 100%,#f1e2d3 0,#f8ece6 55%,transparent 75%)}
.planted{position:relative;margin:0 -6px;width:76px;transform:rotate(var(--r)) scale(var(--s));transform-origin:50% 100%}
.planted img{display:block;width:100%;height:auto}
.planted figcaption{position:absolute;left:50%;bottom:-4px;transform:translateX(-50%) rotate(calc(var(--r) * -1));max-width:90px;padding:0 6px;border-radius:999px;background:#fffaf4e0;font:500 12px 'EB Garamond',serif;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planted.fresh{animation:grow .9s cubic-bezier(.2,1.4,.4,1)}
@keyframes grow{from{transform:rotate(var(--r)) scale(0)}}
@media(max-width:760px){.planted{width:58px}.flower-choice{width:92px}}
@media(prefers-reduced-motion:reduce){.tl-item{transition:none;opacity:1;transform:none}.planted.fresh{animation:none}}
/* Tree tools */
.tree-tools{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 0 16px}
.tree-find{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}
.tree-find input{width:min(320px,70vw);min-height:46px;padding:8px 18px;border:1px solid #d9b9b3;border-radius:999px;background:#fffdfa;font:inherit;color:var(--ink)}
.tree-find .btn{min-height:46px;padding:8px 22px}
.find-msg{flex-basis:100%;font-size:15px;color:var(--wine);min-height:0}
.find-msg:empty{display:none}
.gen-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.gen-chips .chip{min-height:44px;padding:6px 16px;border:1px solid #d9b9b3;border-radius:999px;background:#fffaf6;color:var(--wine);font:500 16px 'EB Garamond',serif;cursor:pointer}
.gen-chips .chip[aria-pressed=true]{background:linear-gradient(#f9e2a6,#e2b552);border-color:#c9a24d;color:#3a2a28;box-shadow:0 0 14px #f3cd6a88}
.poster-btn{min-height:44px}
.has-glow .node:not(.gen-glow){opacity:.45}
.node.gen-glow .ring{box-shadow:0 0 0 3px #fff8f0,0 0 0 5px #e2b552,0 0 26px 8px #f3cd6acc;animation:glow 1.8s ease-in-out infinite alternate}
@keyframes glow{to{box-shadow:0 0 0 3px #fff8f0,0 0 0 5px #e2b552,0 0 12px 3px #f3cd6a88}}
.node.found .ring{animation:found .6s ease-in-out 3}
@keyframes found{50%{transform:scale(1.35)}}
@media(prefers-reduced-motion:reduce){.node.gen-glow .ring,.node.found .ring{animation:none}}
.admin-extra{padding-top:20px}.admin-extra summary{cursor:pointer;min-height:44px;color:var(--wine);font:600 28px/1.5 'Cormorant Garamond',Garamond,serif}
.tl-edit-list{list-style:none;padding:0;margin:12px 0}
.tl-edit{padding:12px 0;border-bottom:1px solid var(--line)}
.tl-edit-row{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.tl-edit-row input,.tl-edit-row textarea,.tl-edit-row select{flex:1 1 220px;min-height:40px;padding:6px 10px;border:1px solid #bca5a0;border-radius:10px;background:#fffdfa;font:inherit}
.tl-edit-row textarea{min-height:60px}.tl-edit-row .tl-year-in{flex:0 0 90px}
.tl-edit-row .btn{padding:6px 14px;font-size:15px}
.vid-slot{padding:14px 0;border-bottom:1px solid var(--line)}.vid-slot h3{margin:0 0 6px;font:600 22px 'Cormorant Garamond',serif;color:var(--wine)}
.vid-preview video{display:block;width:min(480px,100%);border-radius:12px;background:#2a1a18;margin:8px 0}
.vid-slot progress{width:min(480px,100%);height:12px;accent-color:var(--wine)}
.vid-slot select{min-height:44px;max-width:100%;padding:6px 10px;border:1px solid #bca5a0;border-radius:10px;background:#fffdfa;font:inherit}
.fl-list{list-style:none;padding:0;margin:10px 0;max-height:420px;overflow:auto}
.fl-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.fl-row .fl-name{font-weight:600;min-width:8em}.fl-row .fl-when{flex:1;color:var(--soft);font-size:15px}.fl-row .btn{padding:6px 14px;font-size:15px}
