:root{--navy:#061323;--mid:#071e3a;--royal:#1252a0;--blue:#247ada;--azure:#78b6fc;--gold:#eac68e;--light-gold:#ffe5b4;--ink:#fff8ed;--muted:#b8c9dd;--font: 'DM Sans',system-ui,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;--page:1160px;scroll-behavior:smooth}
*{box-sizing:border-box}html{scroll-padding-top:80px}body{margin:0;color:var(--ink);font-family:var(--font);background:var(--navy);overflow-x:hidden;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8dcaff;outline-offset:4px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}p{line-height:1.7}.inner{max-width:var(--page);width:calc(100% - 70px);margin-inline:auto}.skip{position:absolute;top:-80px;left:16px;padding:12px 20px;background:var(--light-gold);color:var(--navy);z-index:200}.skip:focus{top:14px}.progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:150;background:linear-gradient(90deg,var(--azure),var(--gold))}
.header{height:78px;position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 clamp(18px,4vw,62px);background:rgba(5,16,34,.96);border-bottom:1px solid rgba(238,197,131,.27);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0;color:var(--gold)}.brand-crown{font-size:30px;line-height:1}.brand-word{font:600 29px/.84 var(--serif);letter-spacing:-.03em}.brand-word small{display:block;margin-top:9px;font:600 8px var(--font);letter-spacing:.23em;color:#e9c591}.nav{display:flex;align-items:center;gap:30px}.nav a{font-size:12px;font-weight:600;letter-spacing:.03em;color:#d6e1f2;transition:color .2s}.nav a:hover{color:var(--gold)}.header-cta{font-size:12px;letter-spacing:.04em;font-weight:700;border:1px solid rgba(233,198,140,.62);padding:12px 20px;border-radius:100px;white-space:nowrap;color:var(--light-gold)}.header-cta span{margin-left:7px}.nav-menu{display:none;background:none;border:0;color:var(--ink);font-size:13px}
.hero{position:relative;background:#071c32}.hero-image{width:100%;height:auto;max-height:860px;object-fit:cover;object-position:center top}.hero-bottom{position:relative;display:flex;justify-content:center;align-items:center;gap:22px;min-height:86px;padding:17px 25px;text-align:center;background:linear-gradient(180deg,#102448,#071a35 90%);border-block:1px solid rgba(247,204,141,.23)}.hero-overline{font-size:10px;color:var(--gold);font-weight:700;letter-spacing:.18em}.hero-bottom p{margin:0;font:italic 500 clamp(22px,2.6vw,36px)/1.06 var(--serif);color:#f8dcab}
/* Delicate side atmospheres; no CTA overlaps */
.vigil-lane,.balloon-lane{position:fixed;pointer-events:none;bottom:0;top:100px;z-index:18;width:clamp(52px,8vw,124px);overflow:hidden}.vigil-lane{left:0;mask-image:linear-gradient(90deg,#000 40%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 40%,transparent)}.balloon-lane{right:0;mask-image:linear-gradient(270deg,#000 62%,transparent);-webkit-mask-image:linear-gradient(270deg,#000 62%,transparent)}.vigil-lane-inside{height:100%;position:relative;display:flex;flex-direction:column;justify-content:space-around;align-items:flex-start;padding-left:10px}.ambient-candle{display:block;position:relative;height:78px;width:34px;flex-shrink:0;filter:drop-shadow(0 0 8px #f4ad5d66);opacity:.74}.ambient-candle:after{content:'';position:absolute;width:24px;height:56px;left:4px;bottom:0;background:linear-gradient(90deg,#ad7944,#fff1bc 38%,#e3bd7e 72%,#ac7944);border-radius:4px 4px 3px 3px;box-shadow:0 0 18px #ffb96c66}.ambient-candle:before{content:'';position:absolute;z-index:1;width:15px;height:25px;left:8px;top:1px;background:radial-gradient(ellipse at 50% 68%,#ffe6a5 3%,#ffbd56 32%,#ff8535 68%,transparent 75%);border-radius:60% 60% 53% 53%;transform-origin:bottom;animation:flame 3.3s ease-in-out infinite alternate;filter:drop-shadow(0 0 9px #ffbd55)}.ambient-candle:nth-child(2n){transform:scale(.72)}.ambient-candle:nth-child(3n){transform:scale(.88)}.lane-balloon{position:absolute;bottom:-24vh;right:var(--right);width:var(--w);opacity:0;animation:lane-rise var(--duration) linear var(--delay) infinite;will-change:transform,opacity;filter:drop-shadow(0 5px 10px #0006)}.lane-balloon img{width:100%;height:auto}.lane-balloon i{position:absolute;left:50%;top:88%;width:1px;height:42px;opacity:.7;background:linear-gradient(#e3cc96,transparent)}@keyframes lane-rise{0%{transform:translate3d(0,10vh,0) rotate(-5deg) scale(.6);opacity:0}9%{opacity:.75}80%{opacity:.78}100%{transform:translate3d(var(--drift),-135vh,0) rotate(7deg) scale(.86);opacity:0}}@keyframes flame{from{transform:rotate(-8deg) scale(.95)}to{transform:rotate(5deg) scale(1.07)}}
.tribute-section{position:relative;padding:91px 0 105px;background:radial-gradient(ellipse at 45% 7%,#153d76 0,#081c39 51%,#061426 100%);border-bottom:1px solid #f0cd9030}.section-intro{text-align:center;margin:0 auto 44px}.kicker{display:block;color:var(--gold);letter-spacing:.27em;font-weight:700;font-size:10px}.section-intro h1,.gallery-intro h2,.closing h2{font:500 clamp(60px,7vw,100px)/.89 var(--serif);letter-spacing:-.03em;margin:18px 0 22px}.section-intro em,.gallery-intro em,.closing em{color:var(--light-gold);font-weight:500}.section-intro p,.gallery-intro p{color:#bbd3ed;max-width:600px;margin:0 auto;font-size:15px}
.ritual-panel{position:relative;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid #e2b77585;border-radius:30px;min-height:310px;background:linear-gradient(120deg,#0a1b35 0%,#0b1a34 48%,#0e3260 100%);box-shadow:0 25px 90px #020e2599,inset 0 0 0 1px #f8db9c16}.ritual-half{position:relative;display:flex;align-items:center;gap:20px;padding:42px 28px;isolation:isolate;min-width:0}.ritual-candle:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1933cc 0%,#0e1c35ce 100%),url('assets/candle-sanctuary.webp') center/cover;opacity:.75}.ritual-balloon:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 80% 50%,#2075c278,transparent 60%)}.ritual-half:first-child{border-right:1px solid #d9b57c43}.ritual-separator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:grid;place-items:center;border:1px solid #e8bc7d60;background:#0d2448;color:#f4d6a9;width:34px;height:34px;border-radius:50%;font-size:19px}.ritual-art{flex:0 0 clamp(75px,11vw,135px);display:grid;place-items:center;min-width:0}.balloon-art img{height:235px;width:auto;object-fit:contain;filter:drop-shadow(0 7px 24px #2373d764)}.candle-art{position:relative;height:200px;filter:drop-shadow(0 8px 25px #f6a6485e)}.candle-shape,.candle-small{position:relative;display:block;height:98px;width:48px;border-radius:5px;background:linear-gradient(90deg,#bd8f51,#fff5d4 35%,#f8e4b5 67%,#b98642);box-shadow:0 0 27px #efbd7188;margin:45px auto 0}.candle-shape i,.candle-small i{display:block;position:absolute;top:-42px;left:14px;width:20px;height:36px;border-radius:58% 58% 47% 47%;background:radial-gradient(ellipse at 52% 69%,#fff 0,#ffe4a5 18%,#ffc663 44%,#f69c28 71%,transparent 75%);filter:drop-shadow(0 0 14px #fcb74a);animation:flame 2.6s ease-in-out infinite alternate}.candle-small{position:absolute;right:10px;bottom:13px;transform:scale(.65);margin:0}.ritual-copy{position:relative;z-index:1;min-width:0}.ritual-label{font-size:10px;color:#f1c58f;font-weight:700;letter-spacing:.17em}.ritual-copy h2{font:500 clamp(32px,3.4vw,52px)/1 var(--serif);margin:12px 0 12px;white-space:nowrap}.ritual-copy p{font-size:12px;color:#c9d7ed;max-width:240px;margin:0 0 20px}.ritual-button,.gold-button{background:linear-gradient(120deg,#ffe7b1,#e6b978);border:1px solid #fff0d2b0;color:#12243a;padding:13px 18px;border-radius:100px;font-weight:700;font-size:12px;white-space:nowrap;display:inline-flex;align-items:center;gap:14px;justify-content:center;transition:transform .2s,box-shadow .2s}.ritual-button:hover,.gold-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0005}.ritual-button span{font-size:16px}.tally{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;width:min(100%,780px);margin:38px auto 0}.tally-divider{height:62px;width:1px;background:#eac39158}.tally-btn{display:flex;align-items:center;justify-content:center;gap:16px;background:none;border:0;color:var(--ink);padding:10px 24px;min-width:0;transition:transform .2s}.tally-btn:hover{transform:translateY(-3px)}.tally-icon{font-size:44px;line-height:1;filter:drop-shadow(0 0 12px #d7a35c55)}.balloon-icon{display:inline-grid;place-items:center;width:38px;height:48px;border-radius:60% 60% 50% 50%;background:linear-gradient(145deg,#dfecff,#77b8ff);border:2px solid #fff6;box-shadow:0 0 16px #3284ff80;color:transparent;position:relative}.balloon-icon:after{content:'';position:absolute;top:100%;left:48%;height:23px;width:1px;background:#cce7ff}.tally-count{font:500 clamp(36px,4vw,56px)/1 var(--serif);font-variant-numeric:tabular-nums;color:#f7d8a5}.tally-description{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.13em;text-align:left;line-height:1.5}.tally-description small{font-size:10px;display:block;text-transform:none;letter-spacing:0;color:#aac5e5;font-weight:500;margin-top:3px}.tally-go{font-size:21px;color:var(--gold)}
.gallery-section{padding:105px 0 120px;background:radial-gradient(ellipse at 50% 26%,#143665 0,#081c34 37%,#061426 90%);overflow:clip}.gallery-intro{text-align:center}.gallery-intro h2{font-size:clamp(55px,6.5vw,86px)}.unfold-scroll{height:185vh;position:relative;margin:30px auto}.unfold-sticky{height:calc(100vh - 90px);min-height:520px;position:sticky;top:90px;display:grid;place-items:center;overflow:hidden;isolation:isolate}.album-halo{position:absolute;width:min(600px,75vw);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #e6c38e20;border-radius:50%;box-shadow:0 0 0 35px #82baff08,0 0 0 70px #82baff04;background:radial-gradient(circle,#9dd2ff0b,transparent 60%)}.album-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;text-align:center;transition:opacity .2s}.album-center span{display:block;color:var(--gold);font:600 38px var(--serif)}.album-center strong{font:italic 400 29px var(--serif);color:#d7d5c8}.photo-pile{position:relative;width:min(1050px,100%);height:min(73vh,680px);z-index:1}.photo-plate{position:absolute;top:50%;left:50%;width:clamp(110px,13vw,172px);aspect-ratio:4/5;background:#fffaf0;border:6px solid #fefaf0;border-bottom-width:25px;border-radius:3px;box-shadow:0 12px 40px #0008;cursor:pointer;transition:box-shadow .2s;transform-origin:center;will-change:transform}.photo-plate:hover{box-shadow:0 20px 55px #000c;z-index:30!important}.photo-plate img{height:100%;width:100%;object-fit:cover}.scroll-hint{position:absolute;bottom:22px;color:#d3dbec;font-size:11px;letter-spacing:.07em;display:grid;gap:4px;text-align:center;opacity:.85}.scroll-hint span{font-size:21px;color:var(--gold);animation:hint-pulse 2s ease-in-out infinite}@keyframes hint-pulse{50%{transform:translateY(6px)}}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin:12px 0 26px}.gallery-head h3{font:500 clamp(40px,5vw,57px)/1 var(--serif);margin:10px 0 0}.text-button{border:1px solid #e5bd8066;border-radius:100px;padding:13px 22px;background:rgba(255,255,255,.03);color:#f7d7a7;white-space:nowrap;font-size:12px;font-weight:700}.text-button span{margin-left:10px}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gallery-card{position:relative;margin:0;overflow:hidden;border:1px solid #e3c49132;border-radius:13px;background:#112b4c;min-width:0}.gallery-card button{border:0;background:transparent;padding:0;width:100%;display:block;text-align:left;color:inherit}.gallery-card img{width:100%;aspect-ratio:4/4.5;object-fit:cover;transition:transform .55s}.gallery-card:hover img{transform:scale(1.06)}.gallery-card figcaption{padding:12px 15px 15px;color:#e5d2ad;font:600 11px var(--font);min-height:45px}.gallery-card p{padding:0 15px 15px;color:#b8cce4;font-size:12px;margin:0}.memory-footer-cta{text-align:center;margin:55px 0 0}.memory-footer-cta p{font:italic 500 28px var(--serif);color:#ecdbbd}.memory-footer-cta .gold-button{padding:16px 30px}
.closing{position:relative;overflow:hidden;padding:122px 20px 120px;text-align:center;background:radial-gradient(ellipse at 50% 15%,#19559a,#071c35 65%,#061221)}.closing:before{position:absolute;inset:0;content:'';pointer-events:none;background:linear-gradient(#06142944,#061429cc),url('assets/candle-sanctuary.webp') center/cover;opacity:.17}.closing-warmth{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 65%,#dca75f23,transparent 44%)}.closing-star{position:relative;display:block;font-size:36px;color:var(--gold);margin-bottom:15px}.closing h2{position:relative;font-size:clamp(77px,10vw,142px);margin:25px 0}.closing>p:not(.kicker){position:relative;font-size:14px;color:#d2deea}.closing-share{position:relative;margin-top:30px;border-radius:30px;border:1px solid var(--gold);background:#ecb87918;color:#f4d3a5;padding:14px 27px;font-size:12px}.closing-share span{margin-left:6px}
.footer{position:relative;background:#05101e;border-top:1px solid #e6bf8950;padding:44px 0 23px}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-brand{font:500 32px/.9 var(--serif);color:var(--gold)}.footer-brand span{font-size:28px;margin-right:5px}.footer-brand small{font:600 8px var(--font);display:block;letter-spacing:.23em;margin:10px 0 0 41px}.footer-main p{font:italic 400 23px var(--serif);margin:0;color:#ecd7ae;text-align:center}.footer-main nav{display:flex;gap:18px;align-items:center;font-size:11px;color:#bbcce1}.footer-main nav a:hover{color:#fff}.footer-bottom{border-top:1px solid #cfbd9d28;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.18em;color:#92a9c7;margin-top:42px;padding-top:22px}
/* Dialogs */
.modal[hidden]{display:none!important}.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;overscroll-behavior:contain}.modal-scrim{position:absolute;inset:0;background:#010713e9;backdrop-filter:blur(13px)}.modal-card,.replay-card,.photo-dialog{position:relative;z-index:1;width:min(100%,540px);max-height:min(92dvh,900px);overflow-y:auto;border-radius:20px;border:1px solid #e6bc7c7a;box-shadow:0 25px 90px #000b;background:radial-gradient(circle at top right,#174d94,#081b36 58%,#07162b);padding:38px}.modal-x{position:absolute;right:14px;top:12px;border:1px solid #f5dcb452;background:#04142966;color:var(--ink);height:40px;width:40px;border-radius:50%;font-size:25px;line-height:1}.modal-card h2,.replay-card h2{font:500 59px/1 var(--serif);margin:12px 0}.modal-intro,.replay-note{color:#cfdded;font-size:13px}.tribute-form{display:grid;gap:10px;margin-top:23px}.tribute-form[hidden]{display:none}.tribute-form label{font-size:12px;font-weight:700;color:#dfebf8}.tribute-form label b{color:var(--gold)}.tribute-form label small{font-weight:400;color:#b5ccdf}.tribute-form input:not([type=checkbox]):not([type=file]),.tribute-form textarea{border:1px solid #9bbde34d;background:#071a31a6;border-radius:9px;color:white;padding:14px 15px;min-width:0;font-size:14px;resize:vertical}.tribute-form input::placeholder,.tribute-form textarea::placeholder{color:#8da8c5}.tribute-form .gold-button{margin-top:13px;width:100%;font-size:13px}.check{display:flex;align-items:center;gap:9px;cursor:pointer;margin-top:3px;font-weight:500!important;color:#d2e1f1!important}.check input{accent-color:#dfbb7e;width:17px;height:17px;flex:none}.photo-previews{display:flex;flex-wrap:wrap;gap:8px}.photo-previews img{width:74px;height:74px;object-fit:cover;border:2px solid #f3dbb7;border-radius:7px}.feedback{font-size:12px;margin:14px 0 0;color:#f5d49d;min-height:4px}.feedback.error{color:#ffc7ae}
.replay-card{width:min(100%,850px);text-align:center}.replay-card h2{font-size:clamp(40px,5vw,66px)}.replay-stage{position:relative;border:1px solid #c4bc9b42;border-radius:14px;min-height:260px;height:min(42vh,400px);overflow:hidden;margin:24px 0 15px;background:radial-gradient(ellipse at 50% 120%,#2360aa,#0a2446 55%,#041225)}.replay-balloon{position:absolute;bottom:-150px;height:140px;width:100px;object-fit:contain;animation:replay-rise 6.8s ease-in forwards;left:var(--x);animation-delay:var(--delay);filter:drop-shadow(0 5px 11px #001f4f)}@keyframes replay-rise{to{transform:translate3d(18px,-620px,0) rotate(8deg);opacity:0}}.replay-candle{position:relative;display:inline-block;width:45px;height:125px;vertical-align:bottom;margin:22px 7px 0;filter:drop-shadow(0 0 19px #e7b76d);animation:light-arrive .7s both}.replay-candle:before{content:'';display:block;width:18px;height:27px;background:radial-gradient(ellipse,#fff2b2,#ffaf39 53%,transparent 73%);position:absolute;top:0;left:14px;border-radius:58%;animation:flame 2.8s ease-in-out infinite alternate}.replay-candle:after{content:'';display:block;width:36px;height:75px;background:linear-gradient(90deg,#d5ae74,#fff4d5 48%,#c28f49);position:absolute;bottom:0;left:6px;border-radius:5px}@keyframes light-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.replay-notes{max-height:130px;overflow:auto;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.replay-note-chip{font-size:11px;border:1px solid #efd8b454;padding:7px 12px;border-radius:20px;color:#d7e8f9}.replay-again{background:none;color:#f7d7a3;border:1px solid #f3d8a367;border-radius:100px;padding:11px 21px;margin:20px auto 0;font-size:12px}.photo-dialog{background:#061627;max-width:min(100%,850px);width:min(100%,850px);padding:20px}.photo-dialog img{max-height:68dvh;max-width:100%;object-fit:contain;margin:auto;border-radius:5px}.photo-dialog-footer{display:flex;justify-content:center;align-items:center;gap:20px;text-align:center}.photo-dialog-footer button{background:none;border:1px solid #e2c6915e;border-radius:50%;color:#ffe2ae;width:44px;height:44px;font-size:28px}.photo-dialog-footer p{flex:1;max-width:600px;color:#eacb9e;font-size:13px;margin:0}.toast{pointer-events:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%,130px);background:#f8d69f;color:#0b1a2d;border-radius:50px;padding:13px 24px;font-size:13px;font-weight:700;box-shadow:0 14px 35px #0008;max-width:min(90vw,450px);z-index:300;text-align:center;transition:transform .25s}.toast.visible{transform:translate(-50%,0)}
@media(max-width:1100px){.ritual-half{gap:8px;padding:28px 15px}.ritual-art{flex-basis:88px}.ritual-copy h2{font-size:39px}.ritual-copy p{font-size:11px}.footer-main p{display:none}}
@media(max-width:800px){.header{height:65px;padding:0 18px}.nav-menu{display:block;margin-left:auto}.nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#06172ce8;padding:14px 24px;border-bottom:1px solid #e5be887b}.nav.open{display:flex}.nav a{padding:13px 0}.header-cta{display:none}.brand-word{font-size:25px}.hero-bottom{min-height:74px;display:block}.hero-overline{display:block;margin-bottom:8px;font-size:8px}.hero-bottom p{font-size:24px}.vigil-lane,.balloon-lane{top:80px;width:50px;opacity:.5}.ambient-candle{transform:scale(.62)!important}.ritual-panel{grid-template-columns:1fr;min-height:0}.ritual-half:first-child{border-right:0;border-bottom:1px solid #d9b57c43}.ritual-half{padding:24px 32px}.ritual-separator{top:50%;left:50%}.ritual-art{flex-basis:105px}.ritual-copy h2{font-size:44px}.ritual-copy p{font-size:12px}.section-intro h1{font-size:67px}.inner{width:calc(100% - 36px)}.tribute-section{padding:65px 0}.gallery-section{padding:70px 0 95px}.gallery-intro h2{font-size:58px}.unfold-scroll{height:160vh}.unfold-sticky{min-height:480px;top:65px;height:calc(100vh - 65px)}.photo-plate{width:clamp(85px,17vw,126px);border-width:4px;border-bottom-width:17px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.footer-main nav{display:none}}
@media(max-width:520px){.brand-crown{font-size:24px}.brand-word{font-size:23px}.brand-word small{font-size:7px;letter-spacing:.16em}.hero-image{height:auto;object-fit:contain}.hero-bottom p{font-size:23px}.section-intro h1{font-size:59px}.section-intro p{font-size:13px}.ritual-half{padding:20px 14px;gap:4px;min-height:214px}.ritual-art{flex-basis:78px}.balloon-art img{height:174px}.candle-art{transform:scale(.75);transform-origin:left center;height:170px}.ritual-copy h2{font-size:37px;white-space:normal}.ritual-copy p{font-size:11px;line-height:1.5}.ritual-button{font-size:11px;padding:11px 14px;gap:7px}.ritual-label{font-size:9px}.ritual-separator{width:26px;height:26px}.tally{gap:0}.tally-btn{gap:7px;padding:8px 2px}.tally-count{font-size:39px}.tally-icon{font-size:27px}.balloon-icon{width:25px;height:30px}.tally-description{font-size:9px;letter-spacing:0}.tally-description small{display:none}.tally-go{display:none}.gallery-intro h2{font-size:51px}.gallery-intro p{font-size:13px}.unfold-scroll{height:158vh}.photo-plate{width:84px;border-width:3px;border-bottom-width:13px}.album-center span{font-size:29px}.album-center strong{font-size:20px}.album-halo{width:82vw}.scroll-hint{font-size:10px}.gallery-head{display:block}.gallery-head h3{font-size:44px}.text-button{margin:19px 0 4px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-card figcaption{padding:10px 12px;min-height:39px;font-size:10px}.closing{padding:100px 20px}.closing h2{font-size:79px}.footer-main{display:block;text-align:center}.footer-bottom{gap:25px;line-height:1.8}.modal{padding:12px}.modal-card,.replay-card{padding:28px 19px}.modal-card h2{font-size:49px}.photo-dialog{padding:12px}.vigil-lane,.balloon-lane{width:35px;opacity:.3}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.vigil-lane,.balloon-lane{display:none}.unfold-sticky{position:relative;top:0}.unfold-scroll{height:530px}.scroll-hint{display:none}}


:root{--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;--serif:"Cormorant Garamond",Georgia,serif;--navy:#071321;--panel:#0a1728;--panel2:#0d1d33;--ink:#f5f8ff;--gold:#e7c48d;--light-gold:#f5deaf;--azure:#6eb8ff;--page:1240px}
body{background:linear-gradient(180deg,#050d17,#08182a 28%,#071321 100%)}
.header{background:rgba(5,14,25,.86);border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(20px)}
.hero-bottom{background:linear-gradient(180deg,#0d1d33,#081322 92%)}
.tribute-section,.gallery-section,.closing{background:linear-gradient(180deg,#071321 0%,#081a2d 100%)}
.section-intro p,.gallery-intro p,.closing>p:not(.kicker),.footer-main nav,.footer-main p,.tally-description small,.ritual-copy p{color:#d7deeb}
.ritual-panel,.gallery-card,.modal-card,.replay-card,.photo-dialog,.tally,.footer,.closing-share,.header-cta{box-shadow:none}
.ritual-panel{background:linear-gradient(180deg,rgba(12,25,43,.96),rgba(8,18,30,.98));border:1px solid rgba(255,255,255,.12);border-radius:28px;backdrop-filter:blur(18px)}
.ritual-candle:before{background:linear-gradient(90deg,rgba(10,20,35,.82) 0%,rgba(10,20,35,.76) 100%),url('assets/candle-sanctuary.webp') center/cover;opacity:.72}
.ritual-balloon:before{background:linear-gradient(90deg,rgba(8,20,36,.45),rgba(16,56,103,.25))}
.candle-art{height:220px;display:grid;place-items:center}
.candle-art .candle-shape,.candle-art .candle-small{display:none}
.candle-art::before{content:'';width:clamp(90px,14vw,138px);height:220px;background:url('assets/candle-realistic.png') center/contain no-repeat;filter:drop-shadow(0 12px 25px rgba(245,188,99,.30));display:block}
.tally{width:min(100%,920px);padding:14px 12px;border-radius:24px;background:linear-gradient(180deg,rgba(13,28,47,.94),rgba(6,16,29,.98));border:1px solid rgba(255,255,255,.1)}
.tally-btn{padding:12px 20px;border-radius:18px}.tally-btn:hover{background:rgba(255,255,255,.03)}
.tally-go{display:none}.tally-divider{background:rgba(255,255,255,.12)}
.album-halo{display:none}
.unfold-sticky{background:linear-gradient(180deg,rgba(9,20,35,.28),rgba(9,20,35,.04))}
.gallery-card,.photo-plate{background:#0b1728;border-color:rgba(255,255,255,.12)}
.text-button,.replay-again,.closing-share,.modal-x{background:rgba(255,255,255,.03)}
.modal-card,.replay-card,.photo-dialog{border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(6,15,28,.98),rgba(9,22,39,.98));backdrop-filter:blur(20px)}
.modal-card h2,.replay-card h2{font-size:clamp(40px,5vw,62px)}
.replay-stage{background:linear-gradient(180deg,#0c2038,#091726 70%,#09111b);border:1px solid rgba(255,255,255,.08);min-height:230px;height:auto;padding:18px}
.replay-notes{justify-content:flex-start;flex-wrap:nowrap;overflow:auto;padding-bottom:6px;scrollbar-width:thin}
.replay-candle-list,.replay-balloon-list{display:flex;gap:14px;overflow:auto;padding:8px 2px 6px}
.candle-stage-shelf{display:flex;align-items:flex-end;justify-content:center;gap:10px;min-height:190px}.stage-candle-img{height:150px;object-fit:contain;filter:drop-shadow(0 10px 20px rgba(237,177,80,.35));animation:light-arrive .6s both}
.candle-card,.balloon-card{flex:0 0 min(280px,72vw);padding:16px;border-radius:18px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));text-align:left}
.candle-card img{display:block;height:120px;width:auto;margin:0 auto 10px;filter:drop-shadow(0 10px 18px rgba(237,177,80,.32))}
.candle-card-name{margin:0 0 6px;font:600 20px/1.15 var(--serif);color:var(--light-gold)}
.candle-card-message{margin:0;color:#d5deea;font-size:13px;line-height:1.55}
.balloon-card-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.balloon-card-head img{width:52px;height:auto}.balloon-card-head strong{font:600 20px/1.1 var(--serif);color:var(--light-gold)}.balloon-card p{margin:0;color:#d5deea;font-size:13px;line-height:1.55}
.ambient-candle-img{display:block;width:52px;height:auto;opacity:.80;filter:drop-shadow(0 10px 15px rgba(235,169,77,.28));animation:flickerFloat 4.2s ease-in-out infinite alternate}.ambient-candle-img:nth-child(2n){width:42px;opacity:.62}.ambient-candle-img:nth-child(3n){width:46px;opacity:.68}
@keyframes flickerFloat{from{transform:translateY(0)}to{transform:translateY(-8px)}}
.replay-balloon-wrap{position:absolute;bottom:-170px}
.footer{background:#05101a;border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom{border-top-color:rgba(255,255,255,.08)}
.photo-dialog-footer p{color:#e9d6b3}
@media(max-width:800px){.ritual-panel{border-radius:24px}.tally{padding:12px 8px}.candle-stage-shelf{min-height:140px}.stage-candle-img{height:120px}.candle-card,.balloon-card{flex-basis:82vw}}
@media(max-width:520px){.replay-stage{padding:12px}.candle-card img{height:100px}.stage-candle-img{height:100px}.replay-notes{gap:10px}.tally{border-radius:18px}}


/* V9 minimal interaction refinements */
.vigil-lane,.balloon-lane{pointer-events:auto}
.side-candle-btn,.lane-balloon[role="button"]{cursor:pointer}
.side-candle-btn{appearance:none;background:none;border:0;padding:0;display:block;animation:flickerFloat 4.2s ease-in-out infinite alternate}
.side-candle-btn img{display:block;width:52px;height:auto;opacity:.86;filter:drop-shadow(0 10px 15px rgba(235,169,77,.28))}
.side-candle-btn:nth-child(2n) img{width:42px;opacity:.72}.side-candle-btn:nth-child(3n) img{width:46px;opacity:.78}
.ambient-candle-img{pointer-events:none}
.tribute-tabs{display:flex;gap:10px;margin:18px 0 4px;padding:6px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.tribute-tab{flex:1;border:0;border-radius:14px;padding:12px 16px;background:transparent;color:#d7deeb;font-weight:700;font-size:13px;letter-spacing:.02em}
.tribute-tab.active{background:linear-gradient(180deg,#f5dfb0,#e7c48d);color:#11233b;box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.candle-art{position:relative}
.candle-art::after{content:'';position:absolute;left:50%;top:7px;transform:translateX(-50%);width:34px;height:50px;background:radial-gradient(ellipse at 50% 72%,rgba(255,245,208,.98) 0,rgba(255,216,121,.95) 16%,rgba(255,163,59,.88) 44%,rgba(255,109,18,.55) 68%,transparent 76%);filter:blur(.35px) drop-shadow(0 0 10px rgba(255,180,74,.8));animation:flameWaver 1.75s ease-in-out infinite alternate;mix-blend-mode:screen;pointer-events:none}
@keyframes flameWaver{0%{transform:translateX(-50%) rotate(-4deg) scale(.96);opacity:.92}100%{transform:translateX(-50%) rotate(5deg) scale(1.06);opacity:1}}
.replay-note{margin-bottom:6px}
@media(max-width:520px){.tribute-tabs{gap:8px;padding:5px}.tribute-tab{padding:10px 12px;font-size:12px}.side-candle-btn img{width:38px}}
