.candle.diya .wax{left:1px;width:28px;height:11px;border-radius:3px 3px 14px 14px;background:linear-gradient(180deg,#D98B4A,#9C4F22)}
.candle.diya .wick{bottom:10px;height:4px}
.candle.diya .flame{bottom:12px}
.candle.diya .glow{bottom:2px}
.candle.orb .wax,.candle.orb .wick,.candle.orb .flame{display:none}
.candle.orb .glow{bottom:6px}
.candle .o{position:absolute;bottom:20px;left:3px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle,#FFF6DF 0,#F2C98A 38%,rgba(242,201,138,0) 70%);animation:breathe 4.5s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.3);opacity:.7}}
.cnd.fresh{animation:fresh 1.4s ease}
@keyframes fresh{from{opacity:0;transform:translateY(10px)}}
.more-row{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:12px;flex-wrap:wrap}
/* grove */
.grove{display:flex;flex-wrap:wrap;gap:2px;margin:6px 0 14px}
.grove svg{width:18px;height:22px;color:var(--moss2)}
.grove svg.n{color:var(--gold)}
/* film */
.film-sec{background:var(--night2);color:var(--paper);padding:56px 0 50px;position:relative;z-index:1}
.film-sec .sec{padding-top:0}
.film-sec .sec-head p{color:rgba(244,239,230,.62)}
.film-sec .num{color:var(--gold2)}
.player{position:relative;aspect-ratio:16/10;background:#0b0c0b;border-radius:4px;overflow:hidden;box-shadow:0 30px 60px -30px #000}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.slide.on{opacity:1}
.slide .bg{position:absolute;inset:-6%;background-size:cover;background-position:center}
.slide.on .bg{animation:kb 7.5s ease-out forwards}
.slide.on.alt .bg{animation:kb2 7.5s ease-out forwards}
@keyframes kb{from{transform:scale(1) translate(0,0)}to{transform:scale(1.1) translate(-2%,-1.5%)}}
@keyframes kb2{from{transform:scale(1.1) translate(2%,1%)}to{transform:scale(1) translate(0,0)}}
.slide .cap{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 14px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-family:var(--serif);font-style:italic;font-size:18px}
.slide .cap small{display:block;font-family:var(--sans);font-style:normal;font-size:11px;opacity:.7}
.slide.card{display:flex;flex-direction:column;justify-content:center;padding:28px;background:radial-gradient(circle at 30% 30%,#2a2f2b,#0d0f0d)}
.slide.card .t{font-family:var(--serif);font-size:clamp(28px,7vw,42px);line-height:1.05}
.slide.card .s{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;margin-top:10px}
.playbtn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:5;background:rgba(0,0,0,.25);transition:.3s}
.playbtn span{width:68px;height:68px;border-radius:50%;background:rgba(244,239,230,.94);color:var(--ink);display:flex;align-items:center;justify-content:center}
.playbtn svg{width:26px;height:26px;margin-left:3px}
.playing .playbtn{opacity:0}
.playing:hover .playbtn{opacity:.001}
.progress{position:absolute;left:0;bottom:0;height:2px;background:var(--gold2);z-index:6;width:0;transition:width .4s linear}
.film-meta{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:rgba(244,239,230,.6);margin-top:12px;flex-wrap:wrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:9px 13px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:600;text-align:left}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.film-sec .chip{border-color:var(--nightline);color:rgba(244,239,230,.8)}
.film-sec .chip.on{background:var(--paper);color:var(--ink)}
.chip small{display:block;font-weight:500;font-size:11px;opacity:.7}
.formats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--nightline);border:1px solid var(--nightline);margin-top:24px;border-radius:4px;overflow:hidden}
.formats div{background:var(--night2);padding:14px}
.formats b{display:block;font-family:var(--serif);font-size:20px;font-weight:500}
.formats span{font-size:12px;color:rgba(244,239,230,.55)}
/* book */
.book-stage{background:linear-gradient(180deg,#E4DACA,#D9CDB9);border-radius:4px;padding:30px 18px 22px;display:flex;flex-direction:column;align-items:center}
.book{width:100%;max-width:400px;aspect-ratio:1/1;position:relative;box-shadow:0 26px 50px -22px rgba(40,30,20,.55),0 2px 0 rgba(0,0,0,.05)}
.page{position:absolute;inset:0;background:#FBF7EF;overflow:hidden;padding:9% 9%;display:flex;flex-direction:column;animation:pg .45s ease}
@keyframes pg{from{opacity:0;transform:translateX(8px)}}
.page::before{content:"";position:absolute;top:0;bottom:0;left:0;width:18px;background:linear-gradient(90deg,rgba(0,0,0,.09),transparent)}
.page .pn{position:absolute;bottom:5%;right:8%;font-size:10px;color:var(--faint);letter-spacing:.1em}
.cover{justify-content:space-between}
.cover.linen{background:#CFC3AE;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.04) 0 1px,transparent 1px 3px);color:#2F3E35}
.cover.ivory{background:#F3EEE3;color:#7B5A26}
.cover.night{background:#1F2622;color:#D6B57A}
.cover .ctitle{font-family:var(--serif);font-size:clamp(28px,8vw,38px);line-height:1.02;font-weight:500}
.cover .cframe{width:44%;aspect-ratio:4/5;border-radius:999px 999px 3px 3px;background-size:cover;background-position:center;align-self:flex-start;border:4px solid rgba(255,255,255,.5)}
.cover .foil{font-size:10px;letter-spacing:.24em;text-transform:uppercase}
.bp-center{justify-content:center}
.bp-verse{font-family:var(--serif);font-style:italic;font-size:clamp(20px,5.4vw,26px);line-height:1.35}
.bp-cite{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-top:14px}
.bp-h{font-family:var(--serif);font-size:24px;font-weight:500;margin-bottom:10px}
.bp-body{font-family:var(--serif);font-size:13.5px;line-height:1.5;color:#2c302d}
.bp-photos{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;flex:1;min-height:0}
.bp-photos .a{background-size:cover;background-position:center;grid-row:span 2}
.bp-photos .b{background-size:cover;background-position:center}
.bp-photos .c{font-family:var(--serif);font-style:italic;font-size:12px;line-height:1.3;display:flex;align-items:flex-end}
.bp-msg{border-top:1px solid var(--line);padding:12px 0}
.bp-msg p{font-family:var(--serif);font-size:15px;line-height:1.4}
.bp-msg small{font-size:10px;color:var(--faint);letter-spacing:.06em}
.book-nav{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px;margin-top:16px}
.book-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(29,34,31,.25);display:flex;align-items:center;justify-content:center}
.book-nav button svg{width:18px;height:18px}
.book-nav span{font-size:12.5px;color:var(--soft)}
.grow-note{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:4px;background:var(--card)}
.grow-note b{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1}
/* keepsakes */
.keeps{display:grid;gap:14px}
.keep{border:1px solid var(--line);border-radius:4px;background:var(--card);padding:20px;display:grid;gap:12px}
.keep.feature{border-color:var(--ink);position:relative}
.keep.feature:not([style])::before{content:"The family's choice";position:absolute;top:-10px;left:16px;background:var(--ink);color:var(--paper);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:2px}
.keep-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.keep h3{font-family:var(--serif);font-size:27px;font-weight:500;line-height:1.05}
.keep .price{font-family:var(--serif);font-size:26px}
.keep ul{list-style:none;display:grid;gap:5px;font-size:14px;color:var(--soft)}
.keep li{padding-left:18px;position:relative}
.keep li::before{content:"";position:absolute;left:0;top:10px;width:9px;height:1px;background:var(--gold)}
.keep-art{height:120px;border-radius:3px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.flowers{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;margin:0 -22px;padding-left:22px;padding-right:22px}
.flowers::-webkit-scrollbar{display:none}
.flw{flex:none;width:200px;border:1px solid var(--line);border-radius:4px;background:var(--card);overflow:hidden;text-align:left}
.flw .art{height:150px;background:#E7DFD1;display:flex;align-items:flex-end;justify-content:center}
.flw .tx{padding:12px 14px 14px}
.flw b{font-family:var(--serif);font-size:21px;font-weight:500;display:block;line-height:1.1}
.flw span{font-size:12.5px;color:var(--soft)}
.sub-h{font-family:var(--serif);font-size:26px;font-weight:500;margin:40px 0 6px}
footer.foot{padding:56px 0 30px;font-size:12.5px;color:var(--faint);position:relative;z-index:1}
footer.foot .fh{font-family:var(--serif);font-size:20px;color:var(--ink);margin-bottom:6px}
/* dock */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(251,248,242,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.dock .inner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.dock button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:11.5px;font-weight:600;border-radius:8px}
.dock button svg{width:22px;height:22px}
.dock button:active{background:var(--paper2)}
.dock button.primary{color:var(--gold)}
/* sheet */
.sheet-wrap{position:fixed;inset:0;z-index:60;display:none}
.sheet-wrap.open{display:block}
.scrim{position:absolute;inset:0;background:rgba(15,18,16,.5);animation:fade .25s}
@keyframes fade{from{opacity:0}}
.sheet{position:absolute;left:0;right:0;bottom:0;margin:0 auto;max-width:560px;max-height:92vh;overflow-y:auto;background:var(--card);border-radius:18px 18px 0 0;padding:24px 22px calc(28px + env(safe-area-inset-bottom));animation:up .32s cubic-bezier(.2,.8,.2,1)}
