@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--paper:#f5f0e8;--paper-2:#fbf8f2;--ink:#24342f;--muted:#777b70;--line:rgba(61,74,62,.17);--moss:#4a6457;--moss-dark:#243d33;--gold:#dbc18e;--gold-light:#f1dfb7;--rose:#b8786b;--white:#fffdf8;--shadow:0 28px 80px rgba(54,56,44,.11);--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}::selection{background:#e3cfa3;color:#24342f}.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 21px;font-size:9px;line-height:1.5;font-weight:700;letter-spacing:.19em;color:#838575;text-transform:uppercase}.eyebrow-flower{font-size:16px;color:var(--rose)}.muted,.subcopy{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:19px;padding:14px 21px;border-radius:3px;border:1px solid transparent;font-size:11px;font-weight:700;letter-spacing:.025em;transition:transform .24s,background .24s,color .24s,box-shadow .24s;cursor:pointer}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold-light);color:#304337;box-shadow:0 8px 25px rgba(160,133,81,.12)}.btn-gold:hover{background:#f6e8c8;box-shadow:0 12px 30px rgba(160,133,81,.2)}.btn-dark{background:var(--moss-dark);color:#fffdf8}.btn-dark:hover{background:#375b49}.btn-outline{border-color:#b8b7a6;color:var(--ink);background:transparent}.btn-outline:hover{background:#fffaf0}.btn-wide{width:100%;min-height:49px}.text-link{font-size:11px;font-weight:700;color:var(--moss-dark)}.notice,.alert{font-size:11px;line-height:1.7;padding:13px 15px;margin:0 0 18px;border:1px solid transparent}.notice.success,.alert.success{background:#e5eddf;border-color:#cfddc5;color:#3d6348}.notice.error,.alert.error{background:#f7e8e3;border-color:#ead0c9;color:#9d4c42}.optional{font-size:9px;font-weight:400;color:#8c8d80;margin-left:3px}.fine-print,.character-note,.form-reassurance{font-size:10px;line-height:1.7;color:#828577}.form-section-label{padding-top:15px;margin:7px 0 1px;padding-bottom:11px;border-bottom:1px solid var(--line);color:#888878;font-size:9px;font-weight:700;letter-spacing:.17em}.stack-form,.tribute-form{display:flex;flex-direction:column;gap:16px}.stack-form label,.tribute-form label,.settings-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;font-weight:700;color:#37463d}.stack-form input,.tribute-form input:not([type=checkbox]):not([type=file]),.tribute-form textarea,.settings-form input:not([type=file]),.settings-form textarea{width:100%;padding:13px 14px;border:1px solid #ddd8ca;border-radius:3px;background:rgba(255,253,248,.8);outline:none;color:var(--ink);font-size:12px;font-weight:400;transition:border-color .2s,box-shadow .2s}.stack-form input:focus,.tribute-form input:focus,.tribute-form textarea:focus,.settings-form input:focus,.settings-form textarea:focus{border-color:#aa9467;box-shadow:0 0 0 3px rgba(219,193,142,.2)}.stack-form input::placeholder,.tribute-form input::placeholder,.tribute-form textarea::placeholder{color:#a5a393}.stack-form .btn{margin-top:5px}.stack-form textarea,.tribute-form textarea,.settings-form textarea{resize:vertical;line-height:1.8}.two-col,.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-grid label b{font-size:9px;font-weight:500;color:#a56b5f;margin-left:4px}.confirm-line{display:flex;flex-direction:row!important;align-items:flex-start;gap:10px!important;font-size:10px!important;font-weight:400!important;line-height:1.6}.confirm-line input{margin-top:2px}
/* Public memorial page */
.memorial-body{background:var(--paper);overflow-x:hidden}.memorial-nav{height:85px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,6.5vw,100px);background:rgba(245,240,232,.86);border-bottom:1px solid rgba(87,89,70,.1);backdrop-filter:blur(18px);transition:box-shadow .25s}.memorial-nav.is-scrolled{box-shadow:0 8px 35px rgba(46,53,43,.07)}.wordmark{display:inline-flex;align-items:center;gap:12px;font-size:9px;font-weight:700;letter-spacing:.16em;line-height:1.5;white-space:nowrap}.wordmark-icon{display:grid;place-items:center;width:35px;height:35px;border:1px solid #bdad88;border-radius:50%;color:#a07c4e;font-size:17px;font-weight:400}.wordmark small{display:block;margin-top:2px;color:#888879;font-size:8px;font-weight:400;letter-spacing:.08em}.memorial-nav nav{display:flex;align-items:center;gap:31px}.memorial-nav nav>a{font-size:10px;color:#72776b;transition:color .2s}.memorial-nav nav>a:hover{color:var(--ink)}.memorial-nav nav .nav-share{display:flex;align-items:center;gap:17px;padding:12px 15px;border:1px solid #c6b591;color:var(--ink)}.nav-share span{font-size:15px}.mobile-nav-button{display:none;border:0;background:transparent;font-size:21px;color:var(--ink)}
.memorial-hero{min-height:650px;position:relative;display:grid;grid-template-columns:.86fr 1.14fr;overflow:hidden;padding:64px clamp(25px,9vw,140px) 75px;gap:4vw;background:linear-gradient(116deg,#f8f3ea 0%,#f3ecdf 58%,#e8e4d5 100%)}.memorial-hero:before{content:"";position:absolute;width:740px;height:740px;border:1px solid rgba(139,132,106,.15);border-radius:50%;right:-180px;top:-225px;pointer-events:none}.memorial-hero:after{content:"";position:absolute;width:630px;height:630px;border:1px dashed rgba(139,132,106,.18);border-radius:50%;right:-125px;top:-170px;pointer-events:none}.hero-text{align-self:center;position:relative;z-index:4;padding:15px 0 20px;max-width:530px}.hero-text>.eyebrow{margin-bottom:25px}.hero-text h1{font:500 clamp(45px,5.8vw,82px)/.98 'Playfair Display',serif;letter-spacing:-.055em;margin:0;color:#2e4438}.hero-text h1 em,.memory-heading h2 em,.closing-remembrance h2 em,.auth-illustration h1 em,.admin-card h1 em,.settings-wrap h1 em{color:#a8796e;font-weight:500}.hero-rule{height:1px;width:70px;background:#bc9c6b;margin:26px 0 19px}.hero-lead{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#848575;margin:0 0 7px}.person-name{font:500 clamp(24px,3vw,36px)/1.2 'Playfair Display',serif;margin:0;color:#253c30}.life-dates{font-size:10px;letter-spacing:.1em;color:#88887a;margin:10px 0 0}.dedication{font:italic 14px/1.9 'Playfair Display',serif;color:#777a6d;white-space:normal;max-width:390px;margin:20px 0 24px}.hero-note{display:flex;align-items:center;gap:11px;margin-top:35px;font-size:9px;color:#89897c;letter-spacing:.03em}.note-line{display:inline-block;width:30px;height:1px;background:#bda77c}.hero-art{min-height:490px;align-self:stretch;position:relative;overflow:hidden;border-radius:48% 48% 4px 4px / 38% 38% 4px 4px;background:radial-gradient(ellipse at 52% 34%,rgba(255,250,227,.96) 0,rgba(239,221,179,.72) 21%,transparent 47%),linear-gradient(155deg,#7e9685 0%,#b1b39a 38%,#d1baa0 72%,#b68e7b 100%);isolation:isolate;box-shadow:0 35px 90px rgba(68,70,52,.12)}.hero-art.has-cover{background-size:cover;background-position:center}.hero-art.has-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,53,42,.0) 25%,rgba(31,53,42,.24))}.hero-art:not(.has-cover):before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,245,.04),rgba(55,72,56,.15)),repeating-linear-gradient(120deg,transparent 0 42px,rgba(255,255,255,.045) 43px 44px)}.art-halo{position:absolute;left:50%;top:18%;transform:translateX(-50%);width:min(60%,340px);aspect-ratio:1;border:1px solid rgba(255,251,223,.6);border-radius:50%;box-shadow:0 0 0 23px rgba(255,255,255,.04),0 0 0 50px rgba(255,255,255,.035)}.art-sun{position:absolute;left:50%;top:28%;transform:translateX(-50%);width:clamp(100px,17vw,205px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 39% 33%,#fff9df,#edcf91 65%,#c3a36e);box-shadow:0 15px 90px rgba(247,223,164,.36);animation:sunbreath 7s ease-in-out infinite}.art-orbit{position:absolute;left:50%;top:32%;width:75%;height:45%;border:1px solid rgba(255,248,226,.55);border-radius:50%;transform:translateX(-50%) rotate(-27deg)}.orbit-two{width:82%;height:49%;transform:translateX(-50%) rotate(32deg);border-color:rgba(255,248,226,.34)}.botanical{position:absolute;bottom:10%;width:34%;height:54%;z-index:1;opacity:.83}.botanical-left{left:6%;transform:rotate(-9deg)}.botanical-right{right:4%;transform:scaleX(-1) rotate(-13deg)}.botanical:before{content:"";position:absolute;left:48%;bottom:0;width:1px;height:100%;background:linear-gradient(transparent,rgba(48,72,54,.8))}.botanical i{position:absolute;left:16%;bottom:12%;width:58%;height:24%;border-radius:100% 0 100% 0;border:1px solid rgba(45,75,53,.53);background:linear-gradient(130deg,rgba(238,239,199,.28),rgba(66,95,68,.46));transform:rotate(-24deg);transform-origin:bottom right}.botanical i:nth-child(2){bottom:30%;left:42%;transform:rotate(20deg) scale(.85)}.botanical i:nth-child(3){bottom:48%;left:6%;transform:rotate(-35deg) scale(.7)}.botanical i:nth-child(4){bottom:61%;left:42%;transform:rotate(26deg) scale(.58)}.botanical i:nth-child(5){bottom:75%;left:11%;transform:rotate(-28deg) scale(.44)}.art-caption{position:absolute;z-index:3;left:26px;right:26px;bottom:24px;display:flex;gap:12px;align-items:center;padding:16px 18px;background:rgba(248,245,229,.73);border:1px solid rgba(255,255,240,.62);backdrop-filter:blur(16px);color:#3f5140}.caption-seal{display:grid;place-items:center;width:32px;height:32px;border:1px solid #bdab82;border-radius:50%;color:#9e7d4b;font-size:16px}.art-caption strong{display:block;font:500 14px 'Playfair Display',serif}.art-caption small{display:block;margin-top:4px;color:#77796b;font-size:9px;letter-spacing:.04em}.art-vertical-label{position:absolute;right:13px;top:42%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.25em;color:rgba(255,252,231,.8)}.hero-bottom-ornament{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:14px;color:#bda171;z-index:5}.dedication-band{display:flex;align-items:center;justify-content:center;gap:22px;padding:29px 25px 31px;background:#ede7d9;border-bottom:1px solid rgba(108,105,83,.12);text-align:center}.band-mark{font:500 39px 'Playfair Display';color:#bb9d6d;align-self:flex-start}.dedication-band p{font:italic 14px/1.85 'Playfair Display',serif;color:#717468;margin:0}.band-line{width:36px;height:1px;background:#bca67f}
.memory-section{max-width:1350px;margin:auto;padding:105px clamp(22px,7vw,105px) 108px}.memory-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:35px}.memory-heading .eyebrow{margin-bottom:15px}.memory-heading h2{font:500 clamp(35px,4.2vw,54px)/1.1 'Playfair Display',serif;letter-spacing:-.035em;margin:0;color:#2a4336}.section-description{margin:13px 0 0;font-size:12px;line-height:1.8;color:#818273}.memory-stats{display:flex;align-items:center;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-bottom:32px}.memory-stats div{min-width:135px;padding:0 24px;border-right:1px solid var(--line)}.memory-stats div:first-child{padding-left:0}.memory-stats div:last-child{border-right:0}.memory-stats strong{display:block;font:500 26px 'Playfair Display';color:#8b7050}.memory-stats span{display:block;margin-top:4px;color:#858677;font-size:9px;letter-spacing:.06em}.empty-memories{text-align:center;padding:60px 22px 72px;border:1px solid rgba(114,114,90,.17);background:rgba(255,253,248,.48)}.empty-illustration{position:relative;display:grid;place-items:center;width:140px;height:140px;margin:0 auto 22px}.empty-sun{display:block;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle,#f5e5b8,#d5b984);box-shadow:0 0 0 16px rgba(220,199,153,.15),0 0 0 32px rgba(220,199,153,.1)}.empty-branch{position:absolute;right:9px;bottom:10px;color:#9c9272;font-size:26px}.empty-memories .eyebrow{justify-content:center;margin-bottom:13px}.empty-memories h3{font:500 27px 'Playfair Display';margin:0 0 10px;color:#314b3b}.empty-memories>p:not(.eyebrow){max-width:475px;margin:0 auto 22px;font-size:11px;line-height:1.9;color:#7e8074}.tribute-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;align-items:start}.tribute-card{padding:26px 27px 22px;border:1px solid rgba(124,115,90,.17);background:rgba(255,253,248,.74);box-shadow:0 8px 30px rgba(49,53,42,.025);transition:transform .35s,box-shadow .35s}.tribute-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(49,53,42,.07)}.tribute-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:17px;border-bottom:1px solid rgba(124,115,90,.15)}.tribute-index{font-size:8px;font-weight:700;letter-spacing:.16em;color:#9a8c70}.tribute-date{font-size:9px;color:#999686}.tribute-card blockquote{font:italic 18px/1.72 'Playfair Display',serif;color:#43574a;margin:19px 0 22px;white-space:normal;overflow-wrap:anywhere}.tribute-card blockquote:first-child{margin-top:20px}.tribute-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0 20px}.tribute-media:not(.has-multiple) .tribute-photo:only-child{grid-column:span 2}.tribute-photo{display:block;min-height:110px;max-height:280px;overflow:hidden;background:#eee7d8}.tribute-photo img{width:100%;height:100%;min-height:110px;max-height:280px;object-fit:cover;transition:transform .5s}.tribute-photo:hover img{transform:scale(1.04)}.tribute-video{grid-column:span 2;overflow:hidden;background:#e7e0d1}.youtube-lazy{display:block;position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border:0;padding:0;background:#334b3c;cursor:pointer}.youtube-lazy img{width:100%;height:100%;object-fit:cover;opacity:.8;transition:transform .5s,opacity .3s}.youtube-lazy:hover img{transform:scale(1.04);opacity:.95}.youtube-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:grid;place-items:center;padding-left:3px;background:rgba(251,247,234,.93);color:#3c5946;font-size:14px;box-shadow:0 5px 25px rgba(0,0,0,.14)}.youtube-lazy small{position:absolute;bottom:12px;left:14px;color:#fff;font-size:8px;letter-spacing:.17em;text-shadow:0 2px 9px #000}.youtube-lazy iframe{border:0}.tribute-video p{padding:10px 12px;margin:0;font-size:10px;color:#637061}.tribute-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.tribute-footer{display:flex;align-items:center;gap:11px;border-top:1px solid rgba(124,115,90,.15);padding-top:17px}.contributor-monogram{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e5e4d4;color:#5d6f58;font:500 16px 'Playfair Display'}.contributor-credit{display:flex;flex-direction:column;gap:4px}.contributor-credit strong{font-size:10px;color:#364c3d}.contributor-credit span{font-size:9px;color:#8b8b7b}.tribute-heart{margin-left:auto;font-size:23px;color:#b88878}.closing-remembrance{position:relative;overflow:hidden;text-align:center;padding:84px 22px 96px;background:#eae3d5}.closing-remembrance:before,.closing-remembrance:after{content:"✳";position:absolute;font-size:150px;color:rgba(187,166,120,.12);top:35px;left:-30px;transform:rotate(-20deg)}.closing-remembrance:after{left:auto;right:-28px;top:auto;bottom:25px;transform:rotate(22deg)}.closing-flower{display:grid;place-items:center;width:43px;height:43px;margin:0 auto 20px;border:1px solid #c1aa7f;border-radius:50%;color:#a58554;font-size:19px}.closing-remembrance .eyebrow{justify-content:center;margin-bottom:17px}.closing-remembrance h2{font:500 clamp(34px,4vw,52px)/1.18 'Playfair Display';margin:0;color:#304638}.closing-remembrance>p:not(.eyebrow){max-width:440px;margin:18px auto 25px;color:#797b70;font-size:11px;line-height:1.9}.memorial-footer,.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px clamp(20px,6.5vw,100px);background:#f7f3eb}.memorial-footer>span,.memorial-footer>a:last-child,.site-footer>span,.site-footer>a:last-child{font-size:9px;color:#858677}.memorial-footer>a:last-child{text-decoration:underline;text-underline-offset:4px}
/* Contributor login and form */
.auth-page{min-height:100vh;background:#f2eadc;background-image:radial-gradient(ellipse at 13% 12%,rgba(219,193,142,.25),transparent 33%),radial-gradient(ellipse at 90% 90%,rgba(113,138,111,.14),transparent 30%);padding:35px clamp(18px,5vw,76px);display:flex;align-items:center;justify-content:center}.auth-layout{display:grid;grid-template-columns:.9fr 1.1fr;max-width:1080px;width:100%;min-height:660px;background:var(--paper-2);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.75);position:relative}.auth-layout>.wordmark{position:absolute;top:27px;left:31px;z-index:3}.auth-illustration{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:105px 48px 60px;background:linear-gradient(150deg,#304c3d,#6c816c 62%,#b2a587);color:#fffdf3}.auth-illustration:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 55% 38%,rgba(244,221,164,.45),transparent 28%),linear-gradient(180deg,rgba(24,50,37,.1),rgba(24,50,37,.3))}.auth-illustration:after{content:"✳";position:absolute;right:-45px;bottom:-80px;font-size:320px;color:rgba(255,248,218,.08);transform:rotate(18deg)}.auth-illustration>*{position:relative;z-index:2}.auth-illustration .eyebrow{color:#e4dfc9}.auth-illustration h1{font:500 clamp(44px,5vw,62px)/1.04 'Playfair Display';letter-spacing:-.04em;margin:0}.auth-illustration h1 em{color:#e8d0a2}.auth-illustration>p:not(.eyebrow){max-width:330px;color:rgba(255,253,238,.78);font-size:12px;line-height:1.95;margin:24px 0 0}.auth-quote{font:italic 15px/1.8 'Playfair Display';color:#f7ebcf;border-top:1px solid rgba(255,255,255,.24);padding-top:18px;margin-top:54px}.auth-quote span{display:block;margin-top:7px;font:9px 'DM Sans';letter-spacing:.08em;color:rgba(255,255,255,.67)}.auth-panel{align-self:center;padding:100px clamp(28px,5vw,70px) 60px}.auth-panel>.eyebrow{margin-bottom:15px}.auth-panel h2{font:500 34px/1.15 'Playfair Display';margin:0;color:#304739;letter-spacing:-.02em}.auth-panel .subcopy{font-size:11px;line-height:1.8;margin:13px 0 25px}.auth-help{font-size:10px;line-height:1.8;color:#8b897a;margin:19px 0 0}.back-link{display:inline-block;color:#7c806f;font-size:10px;margin-top:24px}.guide-link{display:block;color:#5d7860;font-size:10px;line-height:1.8;text-decoration:underline;text-underline-offset:3px;margin-top:14px}.auth-footer{grid-column:1/-1;position:absolute;bottom:15px;left:0;right:0;text-align:center;font-size:9px;color:#8c8b7b}.contribute-page{background:#f6f0e5;min-height:100vh}.site-header{height:80px;padding:0 clamp(20px,7vw,100px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(80,87,68,.14);background:rgba(248,244,235,.88);backdrop-filter:blur(16px)}.site-header nav{display:flex;align-items:center;gap:23px}.site-header nav>a:first-child{font-size:10px;color:#777b6e}.outline-pill{border:1px solid #b9b59f;padding:9px 13px;font-size:10px}.contribute-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,88px);max-width:1240px;margin:0 auto;padding:70px clamp(20px,5vw,60px) 90px;align-items:start}.contribute-intro{position:sticky;top:125px;padding-top:18px}.contribute-intro .eyebrow{margin-bottom:24px}.contribute-intro h1{font:500 clamp(42px,5.3vw,68px)/1.04 'Playfair Display';letter-spacing:-.045em;color:#2c4436;margin:0}.contribute-intro h1 em{color:#aa7d70}.contribute-intro>p:not(.eyebrow){max-width:390px;font-size:12px;line-height:1.95;color:#797d70;margin:21px 0 0}.privacy-note{display:flex;gap:12px;max-width:360px;border-top:1px solid var(--line);margin-top:42px;padding-top:17px}.privacy-note>span{font-size:22px;color:#b77e70}.privacy-note p{font-size:10px;line-height:1.8;color:#838374;margin:0}.contribution-form-card{background:var(--paper-2);padding:clamp(20px,3vw,38px);border:1px solid rgba(141,129,101,.18);box-shadow:0 25px 65px rgba(60,60,45,.06)}.form-card-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:17px;border-bottom:1px solid var(--line);margin-bottom:10px}.form-step{font-size:9px;font-weight:700;letter-spacing:.17em;color:#8a8b7b}.quiet-symbol{font-size:23px;color:#b49b70}.tribute-form{gap:15px}.tribute-form .form-section-label{margin-top:6px}.tribute-form .character-note{display:block;margin-top:-3px}.upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:158px;padding:22px;border:1px dashed #b9b79f;background:#f7f3e9;text-align:center;transition:background .2s,border-color .2s;cursor:pointer}.upload-zone.is-dragging{background:#eee9d8;border-color:#8f9b76}.upload-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e7d8b6;color:#5a6d55;font-size:20px}.upload-zone strong{font:500 17px 'Playfair Display';color:#405747}.upload-zone>span:not(.upload-icon){font-size:9px;color:#898878}.upload-zone em{font-style:normal;font-size:9px;color:#a47865}.youtube-box{border:1px solid #dfd6c2;padding:17px;background:#f6f0e4}.youtube-box-heading{display:flex;gap:11px;align-items:flex-start;margin-bottom:17px}.play-token{display:grid;place-items:center;width:30px;height:30px;background:#b5786b;color:white;border-radius:50%;font-size:10px;flex-shrink:0}.youtube-box-heading strong{font:500 17px 'Playfair Display';color:#3b5141}.youtube-box-heading p{font-size:10px;line-height:1.7;color:#858575;margin:5px 0 0}.youtube-box label{margin-top:13px}.how-to-link{display:inline-flex;gap:9px;align-items:center;color:#5a755d;text-decoration:underline;text-underline-offset:3px;font-size:10px;margin-top:13px}.consent-row{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important;font-size:10px!important;line-height:1.8;color:#777a6d!important}.consent-row input{margin:3px 0 0;accent-color:#6d8264;flex-shrink:0}.form-reassurance{text-align:center;margin:-3px 0 0}.guide-page{background:var(--paper);min-height:100vh}.guide-wrap{max-width:850px;margin:auto;padding:80px 24px 100px}.guide-wrap h1{font:500 clamp(42px,6vw,68px)/1.05 'Playfair Display';color:#2d4939;letter-spacing:-.04em;margin:0}.guide-wrap h1 em{color:#ad7e71}.guide-lead{max-width:580px;color:#7b7d70;font-size:13px;line-height:1.9;margin:23px 0 50px}.guide-steps{border-top:1px solid var(--line)}.guide-step{display:grid;grid-template-columns:70px 1fr;gap:17px;padding:24px 0;border-bottom:1px solid var(--line)}.step-no{font:500 27px 'Playfair Display';color:#b09869}.guide-step h2{font:500 21px 'Playfair Display';color:#374c3b;margin:0 0 8px}.guide-step p{font-size:11px;line-height:1.9;color:#77796e;margin:0 0 9px}.guide-step strong{color:#3f5342}.guide-tip{padding:11px 14px;background:#ece8db;border-left:2px solid #c6a978}.url-examples{display:flex;flex-direction:column;gap:8px;margin-top:13px}.url-examples code{display:block;padding:11px 13px;background:#ebe7dc;color:#4d6654;font-size:10px;overflow-wrap:anywhere}.guide-bottom{margin-top:38px;padding:22px;background:#eae4d7;display:flex;align-items:center;justify-content:space-between;gap:22px}.guide-bottom p{max-width:430px;font-size:10px;line-height:1.8;color:#76796d;margin:0}.guide-bottom strong{color:#3e5442}
/* Private admin portal */
.admin-body{background:#f3efe5;min-height:100vh}.admin-topbar{height:77px;padding:0 clamp(18px,6vw,86px);display:flex;align-items:center;justify-content:space-between;background:rgba(250,247,239,.9);border-bottom:1px solid var(--line);gap:20px}.admin-top-actions{display:flex;align-items:center;gap:20px;font-size:10px;color:#7c7e71}.admin-top-link{text-decoration:underline;text-underline-offset:4px}.admin-logout{padding:9px 12px;border:1px solid #ccc3ad}.admin-main{max-width:1250px;margin:auto;padding:48px clamp(18px,5vw,66px) 85px}.admin-page-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:30px}.admin-page-heading .eyebrow{margin-bottom:13px}.admin-page-heading h1,.settings-wrap h1{font:500 clamp(36px,4vw,52px)/1.06 'Playfair Display';color:#304738;letter-spacing:-.04em;margin:0}.admin-page-heading>div>p:last-child,.settings-intro{font-size:11px;line-height:1.8;color:#828374;margin:12px 0 0}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:21px}.admin-stat{display:block;padding:17px 18px;background:#fcfaf5;border:1px solid #ded8c9;transition:border-color .2s,transform .2s}.admin-stat:hover{transform:translateY(-2px);border-color:#bca77e}.admin-stat.current{border-color:#9aa98a;box-shadow:inset 0 -2px #a5b092}.admin-stat span{display:block;font-size:9px;color:#7c7e70;letter-spacing:.04em}.admin-stat strong{display:block;font:500 28px 'Playfair Display';color:#435d48;margin:10px 0 4px}.admin-stat small{font-size:9px;color:#9a9a8a}.admin-list-panel{background:#fbf9f3;border:1px solid #ded8c9;padding:clamp(17px,3vw,28px)}.admin-list-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:19px;border-bottom:1px solid var(--line);margin-bottom:10px}.admin-list-heading .eyebrow{margin-bottom:8px}.admin-list-heading h2{font:500 24px 'Playfair Display';margin:0;color:#324b3b}.filter-label{display:flex;align-items:center;gap:8px;font-size:10px;color:#7b7d70}.filter-label select,.submission-actions select{padding:9px 11px;background:#fffdf8;border:1px solid #d9d4c5;color:#405044;font-size:10px;max-width:180px}.submission-card{padding:22px 0 24px;border-bottom:1px solid var(--line)}.submission-card:last-child{border-bottom:0}.submission-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.submission-id{font-size:8px;letter-spacing:.17em;color:#9a8a6b}.submission-head h3{font:500 21px 'Playfair Display';margin:5px 0 5px;color:#344a39}.submission-head p{margin:0;color:#8a8a7c;font-size:9px}.dot-sep{padding:0 6px}.review-status{display:inline-block;padding:6px 9px;border:1px solid #ddd4bf;font-size:9px;color:#7b7e70}.status-pending{background:#f6ecd4;color:#90733f}.status-approved{background:#e5ecdd;color:#55714f}.status-hidden{background:#eee9df;color:#817762}.status-rejected{background:#f4e4e0;color:#9a5f55}.private-contact{display:flex;gap:19px;flex-wrap:wrap;margin:15px 0;padding:10px 12px;background:#f0ece1;font-size:9px;color:#6f7468}.private-contact strong{color:#465547}.admin-message{font:italic 15px/1.8 'Playfair Display';color:#52644f;margin:17px 0;white-space:normal;overflow-wrap:anywhere}.admin-media-strip{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.admin-media-strip>a:not(.admin-video-link){display:block;width:94px;height:76px;overflow:hidden;background:#e8e0d0}.admin-media-strip img{width:100%;height:100%;object-fit:cover}.admin-video-link{display:inline-flex;align-items:center;gap:8px;min-height:45px;padding:10px 12px;background:#e8e4d8;font-size:10px;color:#4d644f}.submission-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.submission-actions form{display:flex;align-items:center;gap:8px}.btn-small{padding:10px 13px;font-size:9px}.btn-subtle-danger{padding:9px 13px;border:1px solid #ddc4bd;background:transparent;color:#995e55;font-size:9px;cursor:pointer}.admin-empty{text-align:center;padding:55px 20px}.admin-empty>span{font-size:26px;color:#b59c6e}.admin-empty h3{font:500 22px 'Playfair Display';color:#3b523f;margin:14px 0 7px}.admin-empty p,.admin-footnote{font-size:10px;line-height:1.8;color:#898a7b}.admin-footnote{text-align:center;margin:18px auto 0}.admin-auth-page{align-items:center}.admin-auth-wrap{width:min(100%,465px)}.admin-auth-wrap>.wordmark{margin-bottom:26px}.admin-card{background:#fcfaf5;border:1px solid #ded8c9;padding:clamp(23px,4vw,38px);box-shadow:0 25px 70px rgba(59,57,42,.06)}.admin-card h1{font:500 35px/1.08 'Playfair Display';color:#304738;margin:0 0 12px}.admin-card>.subcopy{font-size:11px;line-height:1.8;margin:0 0 24px}.admin-auth-wrap>.setup-foot{text-align:center;font-size:9px;line-height:1.7;color:#8a8a7b;margin-top:19px}.settings-wrap{max-width:760px;margin:auto;padding:45px 22px 85px}.settings-wrap>.back-link{margin:0 0 28px}.settings-wrap>.eyebrow{margin-bottom:13px}.settings-intro{max-width:500px;margin-bottom:25px}.settings-form{display:flex;flex-direction:column;gap:17px}.settings-form label{font-size:10px}.settings-form .btn{margin-top:5px}.cover-current{font-size:10px;color:#7d8173;margin:0}.cover-current a{text-decoration:underline}.setup-wrap{max-width:720px;margin:0 auto;padding:46px 20px 65px}.setup-wrap>.mini-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px;font-size:9px;letter-spacing:.15em;font-weight:700}.brand-symbol{display:grid;place-items:center;border:1px solid #bba77e;border-radius:50%;width:32px;height:32px;color:#9c7c4e;font-size:16px}.setup-card h1{margin-bottom:15px}.setup-card>.muted{font-size:11px;line-height:1.8;margin:0 0 23px}.setup-card .form-section-label:first-of-type{margin-top:0}.setup-card .stack-form{gap:14px}.setup-card .two-col{margin-top:1px}.setup-card .fine-print{margin:0}.setup-foot{text-align:center;color:#89897b;font-size:9px;line-height:1.7;margin:20px 0 0}.setup-wrap>.setup-foot{max-width:570px;margin-left:auto;margin-right:auto}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes sunbreath{0%,100%{box-shadow:0 15px 70px rgba(247,223,164,.25);transform:translateX(-50%) scale(1)}50%{box-shadow:0 20px 100px rgba(247,223,164,.48);transform:translateX(-50%) scale(1.025)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media(max-width:1000px){.memorial-hero{padding-left:5vw;padding-right:5vw;grid-template-columns:.9fr 1.1fr}.hero-art{min-height:440px}.hero-text h1{font-size:clamp(43px,5.5vw,66px)}.contribute-wrap{gap:30px;grid-template-columns:.7fr 1.3fr}.auth-layout{grid-template-columns:.8fr 1.2fr}.auth-illustration{padding-left:35px;padding-right:35px}.auth-panel{padding-left:34px;padding-right:34px}}
@media(max-width:760px){.memorial-nav{height:69px;padding:0 18px}.memorial-nav nav{display:none}.mobile-nav-button{display:block}.memorial-nav.nav-open{height:auto;min-height:69px;flex-wrap:wrap;padding-bottom:14px}.memorial-nav.nav-open nav{display:flex;order:3;width:100%;justify-content:space-between;gap:12px;padding:12px 0 0}.memorial-nav.nav-open nav>a{font-size:9px}.memorial-hero{grid-template-columns:1fr;padding:50px 22px 35px;gap:32px}.hero-text{padding:0}.hero-text h1{font-size:clamp(50px,12vw,72px)}.hero-art{width:100%;min-height:390px;max-height:480px;border-radius:43% 43% 3px 3px / 31% 31% 3px 3px}.art-sun{top:26%;width:160px}.art-halo{top:16%}.hero-note{margin-top:28px}.hero-bottom-ornament{display:none}.dedication-band{gap:10px;padding:25px 14px}.band-mark{font-size:30px}.dedication-band p{font-size:12px}.band-line{width:20px;flex-shrink:0}.desktop-only{display:none}.memory-section{padding:65px 18px 70px}.memory-heading{align-items:flex-start;flex-direction:column;gap:21px}.memory-heading h2{font-size:43px}.section-description{font-size:11px}.memory-stats{justify-content:space-between;padding:17px 0}.memory-stats div{min-width:0;width:33.333%;padding:0 12px}.memory-stats div:first-child{padding-left:0}.memory-stats strong{font-size:24px}.memory-stats span{font-size:8px}.tribute-wall{grid-template-columns:1fr;gap:14px}.tribute-card{padding:20px 18px}.tribute-card blockquote{font-size:17px}.empty-memories{padding:44px 16px}.empty-memories h3{font-size:23px}.closing-remembrance{padding:69px 20px 76px}.closing-remembrance h2{font-size:39px}.memorial-footer{flex-wrap:wrap;gap:15px;padding:21px 18px}.memorial-footer>span{order:3;width:100%}.auth-page{padding:18px}.auth-layout{grid-template-columns:1fr;max-width:500px;min-height:0}.auth-layout>.wordmark{top:21px;left:21px}.auth-illustration{padding:105px 28px 32px;min-height:360px}.auth-illustration h1{font-size:51px}.auth-illustration>p:not(.eyebrow){margin-top:17px}.auth-quote{margin-top:25px}.auth-panel{padding:40px 28px 53px}.auth-footer{display:none}.contribute-wrap{grid-template-columns:1fr;padding:38px 15px 60px;gap:28px}.contribute-intro{position:static;padding-top:0}.contribute-intro h1{font-size:49px}.contribute-intro>p:not(.eyebrow){max-width:500px;font-size:11px;margin-top:15px}.privacy-note{margin-top:19px;max-width:500px}.contribution-form-card{padding:19px 16px}.field-grid{grid-template-columns:1fr;gap:15px}.site-header{height:70px;padding:0 17px}.site-header nav{gap:10px}.site-header nav>a:first-child{display:none}.wordmark{font-size:8px;letter-spacing:.1em}.wordmark-icon{width:31px;height:31px}.guide-wrap{padding:58px 20px 70px}.guide-wrap h1{font-size:46px}.guide-lead{font-size:11px;margin:18px 0 35px}.guide-step{grid-template-columns:43px 1fr;gap:8px;padding:21px 0}.step-no{font-size:22px}.guide-step h2{font-size:19px}.guide-bottom{flex-direction:column;align-items:flex-start;padding:18px}.site-footer{padding:21px 18px;flex-wrap:wrap}.site-footer>span{order:3;width:100%}.admin-topbar{padding:0 15px;height:68px}.admin-top-actions{gap:10px}.admin-user{display:none}.admin-top-link{font-size:9px}.admin-logout{padding:8px;font-size:9px}.admin-main{padding:30px 14px 60px}.admin-page-heading{align-items:flex-start;flex-direction:column;gap:18px}.admin-page-heading h1,.settings-wrap h1{font-size:42px}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-stat{padding:13px}.admin-stat strong{font-size:25px}.admin-list-panel{padding:15px}.admin-list-heading{align-items:flex-start;flex-direction:column}.submission-card{padding:19px 0}.submission-head h3{font-size:19px}.private-contact{gap:8px;flex-direction:column}.submission-actions{align-items:flex-start;flex-direction:column}.submission-actions form:first-child{width:100%;flex-wrap:wrap}.filter-label select{max-width:170px}.settings-wrap{padding:32px 15px 60px}.admin-card{padding:22px 18px}.admin-card h1{font-size:31px}.setup-wrap{padding:25px 13px 40px}}
@media(max-width:420px){.memory-stats div{padding:0 8px}.memory-stats span{letter-spacing:0}.art-caption{left:13px;right:13px;bottom:14px;padding:12px}.hero-art{min-height:340px}.memorial-footer>a:last-child{font-size:8px}.memorial-footer .wordmark{max-width:70%}.memorial-nav.nav-open nav{flex-wrap:wrap}.memorial-nav.nav-open nav .nav-share{padding:9px}.admin-stats{grid-template-columns:1fr 1fr}.submission-actions form select{max-width:145px}}


/* Memorial portrait integration: portrait is the hero focal point while the original botanical/orbit artwork remains as a frame. */
.hero-art.has-portrait{background-color:#8e9f8b;background-image:radial-gradient(ellipse at 50% 22%,rgba(249,236,199,.9),transparent 45%),linear-gradient(145deg,#819786 0%,#b8b69a 53%,#c9ad98 100%);background-size:cover;background-position:center}
.hero-art.has-portrait:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(20,47,40,.05) 0%,rgba(20,47,40,.08) 58%,rgba(20,47,40,.26) 100%),repeating-linear-gradient(120deg,transparent 0 42px,rgba(255,255,255,.045) 43px 44px)}
.hero-art.has-portrait .hero-portrait-frame{position:absolute;z-index:2;left:12%;right:12%;top:5%;height:76%;overflow:hidden;border-radius:48% 48% 9px 9px / 35% 35% 9px 9px;border:1px solid rgba(255,250,230,.78);box-shadow:0 28px 68px rgba(30,47,35,.22),0 0 0 9px rgba(255,248,229,.15);background:#0e6a80}
.hero-art.has-portrait .hero-portrait-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 19%;filter:saturate(.95) contrast(1.015);transform:scale(1.015)}
.hero-art.has-portrait .art-halo{z-index:3;top:11%;width:67%;opacity:.52;pointer-events:none}
.hero-art.has-portrait .art-orbit{z-index:3;opacity:.43;pointer-events:none}
.hero-art.has-portrait .art-sun{z-index:1;opacity:.22;top:18%;pointer-events:none}
.hero-art.has-portrait .botanical{z-index:3;opacity:.58;pointer-events:none}
.hero-art.has-portrait .art-caption{z-index:5;background:rgba(248,245,229,.86);box-shadow:0 12px 34px rgba(20,34,27,.13)}
.hero-art.has-portrait .art-vertical-label{z-index:4;text-shadow:0 1px 8px rgba(20,34,27,.18)}
@media(max-width:760px){
 .hero-art.has-portrait{min-height:440px}
 .hero-art.has-portrait .hero-portrait-frame{left:10%;right:10%;top:5%;height:75%;border-radius:47% 47% 8px 8px / 32% 32% 8px 8px}
 .hero-art.has-portrait .art-caption{left:13px;right:13px;bottom:13px;padding:12px 13px}
 .hero-art.has-portrait .art-caption strong{font-size:12px}
 .hero-art.has-portrait .art-vertical-label{right:6px;font-size:7px}
}

/* Portrait clarity refinement: preserve the memorial artwork around the photo,
   but do not draw decorative lines or leaves over the person's face or clothing. */
.hero-art.has-portrait .art-halo,
.hero-art.has-portrait .art-orbit,
.hero-art.has-portrait .art-sun,
.hero-art.has-portrait .botanical {
  display: none !important;
}
.hero-art.has-portrait .hero-portrait-photo {
  filter: none !important;
  transform: none !important;
  object-fit: cover;
  object-position: center 18%;
}
