:root{color-scheme:light;--ink:#2a2118;--muted:#8b7764;--line:rgba(42,33,24,0.12);--paper:#f4efe6;--card:#fffdf8;--mine:#f3e2c8;--flame:#d4652f;--shadow:0 10px 30px rgba(60,36,12,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:#241e18;color:var(--ink);font-family:Avenir Next,PingFang SC,Noto Sans SC,Segoe UI,sans-serif}button,input,textarea{font:inherit;color:inherit}.phone{position:relative;width:min(440px,100%);min-height:100dvh;margin:0 auto;background:radial-gradient(1200px 400px at 50% -10%,rgba(212,101,47,.08),transparent 50%),var(--paper);display:flex;flex-direction:column}@media (min-width:840px){body{display:grid;place-items:center;min-height:100dvh}.phone{height:min(920px,calc(100dvh - 40px));min-height:0;overflow:auto;border-radius:32px;box-shadow:0 30px 80px rgba(0,0,0,.35)}}.bar{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:18px 18px 14px;background:rgba(244,239,230,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.bar h1,.create h2,.send h2,.sheet h2{margin:0;font-family:Iowan Old Style,Songti SC,"Noto Serif SC",serif;font-weight:560;letter-spacing:.01em}.bar h1{font-size:22px}.hint,.kicker,.meta,.years{margin:0;color:var(--muted);font-size:12px}.count{color:var(--flame);font-size:13px;white-space:nowrap}.thread{display:flex;flex-direction:column;gap:14px;padding:16px 16px 24px}.bubble{max-width:86%}.who{margin:0 0 4px 10px;color:var(--muted);font-size:12px}.bubble p,.system{margin:0;padding:10px 12px;background:var(--card);border-radius:6px 16px 16px 16px;box-shadow:var(--shadow);line-height:1.45}.system{max-width:100%;color:#5c4d3e;background:rgba(255,253,248,.7);box-shadow:none}.note{display:block;margin-top:4px}.clock{margin:4px 0 0 10px;color:var(--muted);font-size:11px}.linkwrap{max-width:100%}.linkcard{display:grid;grid-template-columns:1fr 72px;grid-gap:12px;gap:12px;padding:12px;background:var(--card);border-radius:14px;box-shadow:var(--shadow)}.linkcard strong{display:block;font-family:Iowan Old Style,Songti SC,"Noto Serif SC",serif;font-size:16px;line-height:1.35}.linkcard p{margin:6px 0;color:#5c4d3e;font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.linkcard span{color:var(--muted);font-size:11px}.thumb{width:72px;height:72px;border-radius:10px;overflow:hidden;background:#f6e2d2;display:grid;place-items:center}.thumb img{width:100%;height:100%;object-fit:cover}.candle{width:22px;height:32px}.dock{position:-webkit-sticky;position:sticky;bottom:0;margin-top:auto;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--paper) 24%)}.ghost,.primary{display:block;width:100%;border:0;border-radius:999px;padding:14px 16px;cursor:pointer}.primary{background:var(--ink);color:#f6f1e8}.primary:disabled{opacity:.6;cursor:wait}.ghost{margin-top:8px;background:transparent;color:var(--ink)}.create,.send,.sheet{margin:0 16px 16px;padding:16px;background:var(--card);border-radius:18px;box-shadow:var(--shadow)}.create{margin-top:8px}label{display:block;margin:12px 0;font-size:13px}input[type=date],input[type=file],input[type=number],input[type=text],select,textarea{width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}textarea{min-height:64px;resize:vertical}.offers{margin-top:8px}.offer-row{display:flex;align-items:center;gap:8px;margin:8px 0}.offer-row em{margin-left:auto;font-style:normal;color:#c6a36a}.pay{margin-top:12px}.pay ul{list-style:none;margin:8px 0;padding:0}.pay li{display:flex;justify-content:space-between;margin:4px 0}.pay-total{margin:8px 0;text-align:right;font-size:22px;letter-spacing:.04em}.sheet.later{margin:8px 16px 16px}.on-table{grid-gap:2px;gap:2px;position:relative;z-index:5;margin:-24px 0 -10px}.candle-grid,.on-table{display:grid;justify-items:center}.candle-grid{grid-template-columns:repeat(5,minmax(0,42px));align-items:flex-end;grid-gap:2px 2px;gap:2px 2px}.candle-grid .prop.candle-prop{height:44px}.candle-grid .lamp:after{width:34px;height:44px}.more-lamps{display:grid;place-items:center;height:44px;color:#f0c7b0;font-size:12px;letter-spacing:0}.offering-row{display:flex;justify-content:center;align-items:flex-end;gap:14px;min-height:46px}.offering-group{position:relative;display:block}.offering-count{position:absolute;right:-8px;bottom:-4px;color:#f6f1e8;font-size:11px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.75)}.on-table .censer-prop{height:46px}.on-table .offering{height:44px;margin-bottom:0}.choices{display:flex;gap:8px}.choices label{flex:1 1;margin:0;padding:8px 10px;border-radius:999px;border:1px solid var(--line);text-align:center}.choices input{margin-right:6px}.check{display:flex;gap:8px;align-items:flex-start;line-height:1.45}.check input{margin-top:3px}.hint{line-height:1.5}.error{color:#9a3412;font-size:13px}.message{margin:12px 0;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;-webkit-user-select:text;-moz-user-select:text;user-select:text;background:#f7f1e7;border-radius:12px;line-height:1.55;font-size:15px}.sent{display:flex;flex-direction:column;gap:8px;padding:0 16px 8px}.sent a{color:inherit;text-decoration:none}.mini{padding:10px 12px}details summary{cursor:pointer;color:var(--muted);font-size:13px}.photo-pick{position:relative;display:grid;justify-items:center;grid-gap:8px;gap:8px;width:100%;margin:0;cursor:pointer}.photo-pick input{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);opacity:0}.photo-pick em{font-style:normal;font-size:12px;letter-spacing:.14em;color:#e7d3b0}.portrait-frame .photo-pick em{position:absolute;left:0;right:0;bottom:-34px;text-align:center}.hall{background-color:#100c0a;background-image:radial-gradient(ellipse 70% 42% at 50% 36%,rgba(255,170,80,.16),transparent 62%),repeating-linear-gradient(90deg,rgba(255,236,210,.025) 0 1px,transparent 1px 22px),linear-gradient(180deg,#3a2418,#1a100c 28%,#0d0908);color:#f6efe4}.hall>*{flex-shrink:0}.hall .error{color:#f0c7b0}.hall label{color:#e7d7c3}.hall .kicker{color:#c6a36a;letter-spacing:.22em;text-align:center}.hall .create h2,.hall .send h2,.hall .sheet h2{color:#f6efe4;text-align:center}.hall .system{color:#d9cbb8;padding:0 12px 8px;text-align:center;border-radius:0}.hall .create,.hall .system{background:transparent;box-shadow:none}.hall .create{margin:0;padding:64px 16px 8px}.back-halls{margin:0 0 8px;text-align:center}.hall .create>.choices{justify-content:center;margin:4px 0 12px}.hall .create>.choices label{position:relative;flex:0 0 auto;border:0;background:transparent;color:#a89880}.hall .create>.choices input{position:absolute;width:1px;height:1px;opacity:0}.hall .create>.choices label:has(input:checked){color:#f3e2b0}.hall .letter{margin:6px 0 18px;padding:22px 18px 16px 32px;color:#2a2118;background:linear-gradient(180deg,rgba(255,255,255,.45),transparent 18%),#f3eadc;box-shadow:0 18px 36px rgba(0,0,0,.32)}.hall .letter .system,.hall .letter h2,.hall .letter label{color:#2a2118}.hall .letter .hint,.hall .letter .kicker,.hall .letter .system,.hall .letter h2{text-align:left}.hall .letter .system{padding:8px 0 0}.hall .letter .hint,.hall .letter .kicker{color:#8b7764;letter-spacing:.06em}.hall .letter input,.hall .letter textarea{background:transparent;color:#2a2118;border:0;border-bottom:1px solid rgba(42,33,24,.16);border-radius:0;padding-left:0;padding-right:0}.hall .letter .choices label{position:relative;border:0;background:rgba(42,33,24,.06);color:#2a2118}.hall .letter .choices input{position:absolute;width:1px;height:1px;opacity:0}.hall .letter .choices label:has(input:checked){background:#2a1810;color:#f6efe4}.hall .letter .primary{background:#2a1810;color:#f6efe4}.hall .letter .ghost,.hall .letter .hint a{color:#5c4d3e}.hall .sent{gap:12px;padding-bottom:28px}.hall .sent .kicker{text-align:left;letter-spacing:.16em;padding-left:2px}.hall .linkcard{grid-template-columns:72px 1fr;align-items:center;padding:12px;border-radius:2px;background:#f3eadc;color:#2a2118;box-shadow:0 14px 28px rgba(0,0,0,.28)}.hall .linkcard strong{color:#2a2118;font-family:Songti SC,"Noto Serif SC",Iowan Old Style,serif;letter-spacing:.04em}.hall .linkcard p{color:#5c4d3e}.hall .linkcard span{letter-spacing:.22em;color:#a08050}.hall .thumb{width:72px;height:92px;border-radius:1px;background:#1a100c}.hall .thumb img{width:100%;height:100%;object-fit:cover}.hall .thumb img.mark{object-fit:contain;padding:10px 0}.shrine{padding:22px 18px 0;text-align:center}.portrait-frame{position:relative;width:min(188px,56vw);margin:8px auto 36px;padding:8px;background:#140e0b;box-shadow:0 0 0 1px #e6d3a1,0 0 0 7px #1a120e,0 0 0 8px #6d5328,0 26px 40px rgba(0,0,0,.5)}.ribbon{position:absolute;z-index:2;top:0;left:10px;width:14px;height:36px;background:linear-gradient(#111,#2a2a2a);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);pointer-events:none}.portrait,.portrait-frame .photo-empty,.portrait-frame .photo-pick img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#241812}.portrait,.portrait-frame .photo-pick img{filter:saturate(.82) contrast(1.05)}.portrait-frame .photo-empty{display:grid;place-items:center;margin:0;padding:16px;color:#e6d3b4;letter-spacing:.16em;font-family:Songti SC,"Noto Serif SC",serif;font-size:15px;line-height:1.6;background:radial-gradient(circle at 50% 40%,rgba(255,214,160,.1),transparent 48%),#241812;box-shadow:inset 0 0 0 1px rgba(230,211,161,.28)}.tablet-wood{width:min(240px,76%);margin:6px auto 0;padding:10px 8px 12px;background:linear-gradient(180deg,#5a3a24,#2a1810);border:1px solid #e6d3a1;box-shadow:inset 0 0 0 4px #3a2416,0 10px 18px rgba(0,0,0,.35)}.tablet{margin:0;color:#f3e2b0;font-family:Songti SC,"Noto Serif SC",Iowan Old Style,serif;font-size:32px;font-weight:500;letter-spacing:.32em;text-indent:.32em}.tablet-field{width:min(260px,84%);margin:18px auto;padding:10px 8px 12px;text-align:center;background:linear-gradient(180deg,#5a3a24,#2a1810);border:1px solid #e6d3a1;box-shadow:inset 0 0 0 4px #3a2416}.tablet-input{border:0;background:transparent;text-align:center;font-family:Songti SC,"Noto Serif SC",serif;font-size:28px;letter-spacing:.18em;color:#f3e2b0}.hall .tablet-input{border:0;background:transparent;margin-top:0;padding:2px 0}.tablet-input::placeholder{color:rgba(243,226,176,.45)}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hall .years{margin:4px 0 0;letter-spacing:.18em;color:#e7d3b0}.hall .count{margin:14px 0 0;color:#e7b07a;text-align:center}.altar{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;justify-items:center;width:min(300px,88%);margin:18px auto 0;min-height:92px}.candle{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:28px;height:86px}.wax{width:16px;height:54px;border-radius:2px 2px 1px 1px;background:linear-gradient(90deg,#d9cdb8,#fffaf2 42%,#c9bba4);box-shadow:inset -4px 0 5px rgba(80,50,20,.18)}.flame{width:14px;height:24px;margin-bottom:-4px;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 50% 72%,#fff 0 10%,#ffe7a8 28%,#f0a04a 58%,rgba(240,160,74,0) 74%);filter:drop-shadow(0 0 8px rgba(255,176,80,.85));transform-origin:center bottom;animation:flicker 1.6s ease-in-out infinite}.candle.mini{width:20px;height:46px}.candle.mini .wax{width:10px;height:26px}.candle.mini .flame{width:10px;height:16px}.censer{position:relative;width:78px;height:86px}.censer i{position:absolute;bottom:22px;width:2px;height:36px;background:linear-gradient(#f3e6d0,#8a6240)}.censer i:first-child{left:28px;transform:rotate(-8deg)}.censer i:nth-child(2){left:38px;height:44px}.censer i:nth-child(3){left:48px;transform:rotate(8deg)}.censer i:before{content:"";position:absolute;left:-6px;top:-18px;width:14px;height:22px;background:radial-gradient(circle,rgba(255,255,255,.38),transparent 70%);animation:smoke 3.2s ease-in-out infinite}.censer i:nth-child(2):before{animation-delay:.7s}.censer i:nth-child(3):before{animation-delay:1.3s}.censer b{position:absolute;left:8px;bottom:0;width:62px;height:24px;border-radius:0 0 18px 18px;background:radial-gradient(circle at 50% 0,#e7c98a,#a56b32 46%,#5c3a1c 78%)}.censer b:before{content:"";position:absolute;top:-5px;left:-4px;width:70px;height:10px;border-radius:8px;background:linear-gradient(#f0d7a0,#8d5e2e)}.bouquet{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:78px;height:86px}.bouquet i{position:relative;width:18px;height:18px;margin-bottom:26px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#c6a15a 0 3px,transparent 4px),radial-gradient(circle at 50% 50%,#f7f3ea 0 7px,#e4dccd 8px 100%);box-shadow:0 0 0 1px rgba(255,255,255,.35)}.bouquet i:after{content:"";position:absolute;left:8px;top:16px;width:2px;height:26px;background:#3e6a3a}.bouquet i:nth-child(2){margin-bottom:34px}.flames{display:flex;justify-content:center;flex-wrap:wrap;gap:18px 16px;margin:16px auto 0;padding:0;list-style:none;width:min(360px,100%)}.flames li{display:grid;justify-items:center;grid-gap:2px;gap:2px;min-width:48px}.flames em{font-style:normal;font-size:12px;color:#f0e2d0}.flames time{font-size:11px;color:#b5a493}.table{width:min(360px,100%);margin:8px auto 0}.table-top{height:12px;border-radius:3px 3px 0 0;background:linear-gradient(#a56b3c,#6a4124)}.table-front{height:28px;margin:0 8px;background:linear-gradient(#6b4328,#3a2416 70%,#24150e);box-shadow:inset 0 8px 10px rgba(0,0,0,.25)}.words{list-style:none;margin:18px 22px 0;padding:0}.words li{margin:0;padding:14px 2px;border-bottom:1px solid rgba(244,234,220,.12);font-family:Songti SC,"Noto Serif SC",serif;font-size:17px;line-height:1.6;text-align:center}.words strong{display:block;margin-bottom:2px;font-size:12px;font-weight:500;letter-spacing:.14em;color:#e7b07a;font-family:PingFang SC,Avenir Next,sans-serif}.hall .dock,.hall .dock.guide{position:static;background:transparent}.hall .dock.guide{margin-top:12px;text-align:center}.hall .dock.guide .kicker{margin-bottom:4px}.hall .dock.guide .hint{margin:0 0 10px}.hall .primary{background:#f3e6d4;color:#2a1810}.hall .ghost,.hall .hint,.hall .hint a{color:#e7d7c3}.keeper{padding:8px 16px 28px;text-align:center}.keeper .hint{margin:0 0 10px}.remove-open{border:0;background:none;padding:0;color:#cbb8a4;font-size:13px;letter-spacing:.08em;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.hall .remove-card{margin:14px auto 0;max-width:320px;padding:18px 18px 12px;text-align:left;color:#2a2118;background:linear-gradient(180deg,rgba(255,252,246,.97),rgba(243,232,214,.95));border-radius:3px 16px 14px 14px;box-shadow:0 14px 28px rgba(0,0,0,.32)}.hall .remove-card p{margin:0 0 14px;font-size:14px;line-height:1.7}.hall .remove-card .primary{background:#2a1810;color:#f6efe4}.hall .remove-card .ghost{color:#5c4d3e}.hall .remove-card .error{color:#9a3412}.hall .send,.hall .sheet{background:rgba(255,248,238,.06);color:#f4eadc;box-shadow:none}.hall .message{background:rgba(0,0,0,.28);color:#f4eadc}.hall input,.hall textarea{background:rgba(20,14,11,.72);color:#f4eadc;border-color:rgba(244,234,220,.16)}.room{position:relative;display:flex;flex-direction:column;flex:1 0 auto;overflow:hidden;background:radial-gradient(ellipse at 50% 24%,rgba(255,170,80,.18),transparent 46%),linear-gradient(180deg,#070605,#1a100c 12%,#140e0b 70%,#0c0908);box-shadow:inset 0 0 80px rgba(0,0,0,.62)}.drapes{display:block;width:100%;height:52px;object-fit:cover;object-position:center 30%;pointer-events:none;z-index:4;filter:drop-shadow(0 8px 6px rgba(0,0,0,.4))}.chamber{flex:1 1;display:grid;grid-template-columns:46px 1fr 46px;min-height:0}.side{background:url(/room/grain.png?v=4),repeating-linear-gradient(180deg,rgba(255,220,180,.05) 0 1px,transparent 1px 64px),linear-gradient(90deg,#5c3b24,#2a1810 70%);background-blend-mode:overlay,normal,normal;box-shadow:inset -14px 0 18px rgba(0,0,0,.45)}.side.right{background:url(/room/grain.png?v=4),repeating-linear-gradient(180deg,rgba(255,220,180,.05) 0 1px,transparent 1px 64px),linear-gradient(270deg,#5c3b24,#2a1810 70%);background-blend-mode:overlay,normal,normal;box-shadow:inset 14px 0 18px rgba(0,0,0,.45)}.nave{position:relative;display:flex;flex-direction:column;min-width:0;padding:8px 4px 0}.banner{position:absolute;top:8px;z-index:3;margin:0;writing-mode:vertical-rl;text-align:center;font-family:Songti SC,"Noto Serif SC",serif;font-size:15px;letter-spacing:.42em;line-height:1;height:132px;padding:0 7px;filter:drop-shadow(3px 8px 5px rgba(0,0,0,.45))}.banner.left{left:0;color:#1c140f;background:linear-gradient(90deg,rgba(255,252,245,.55),transparent 30%),linear-gradient(#f6f0e4,#e7dcc8)}.banner.right{right:0;color:#f3efe8;background:linear-gradient(270deg,rgba(255,255,255,.06),transparent 34%),linear-gradient(#343230,#161412)}.backwall{position:relative;z-index:1;margin:4px 22px 0;padding:10px 8px 8px;background:url(/room/grain.png?v=4),radial-gradient(ellipse at 50% 78%,rgba(255,156,64,.34),transparent 46%),radial-gradient(ellipse at 18% 70%,rgba(255,140,50,.16),transparent 26%),radial-gradient(ellipse at 82% 70%,rgba(255,140,50,.16),transparent 26%),repeating-linear-gradient(90deg,rgba(255,220,180,.04) 0 1px,transparent 1px 18px),linear-gradient(180deg,#3d281c,#24160f 82%);background-blend-mode:overlay,screen,screen,screen,normal,normal}.portrait-mount{position:relative;width:min(118px,40%);margin:0 auto 6px;aspect-ratio:3/4;filter:drop-shadow(0 16px 12px rgba(0,0,0,.55))}.portrait-hole{position:absolute;inset:0;overflow:hidden;background:#241812;box-shadow:inset 0 0 24px rgba(0,0,0,.28)}.portrait-hole .photo-pick{height:100%;gap:0}.portrait-hole .photo-pick label{display:block;height:100%;cursor:pointer}.portrait-hole .photo-empty,.portrait-hole .photo-pick img,.portrait-hole .portrait{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;margin:0}.portrait-hole .photo-empty{display:grid;place-items:center;box-sizing:border-box;padding:10px 8px;color:#e6d3b4;font-family:Songti SC,"Noto Serif SC",serif;font-size:13px;line-height:1.45;letter-spacing:.06em;text-align:center}.portrait-mount .photo-pick em{position:absolute;left:0;right:0;bottom:4px;z-index:3;text-align:center;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.85)}.room .tablet-wood{width:min(188px,76%);margin:0 auto;padding:14px 16px;display:grid;place-items:center;text-align:center;background:url(/room/plaque.png?v=5) 50%/100% 100% no-repeat;border:0;box-shadow:none;filter:drop-shadow(0 12px 8px rgba(0,0,0,.5))}.room .tablet{font-size:26px}.room .tablet,.room .years{width:100%;text-align:center;text-indent:0;text-shadow:0 1px 2px rgba(0,0,0,.45)}.stage{margin-top:-12px}.room .altar,.stage{position:relative;z-index:2}.room .altar{width:calc(100% - 8px);margin:0 auto -30px;min-height:0;grid-template-columns:auto auto auto;justify-content:center;justify-items:center;gap:10px}.mode-altar .room .altar{grid-template-columns:auto auto auto auto auto;gap:2px}.prop{width:auto;height:auto;object-fit:contain;pointer-events:none;filter:drop-shadow(0 5px 2px rgba(0,0,0,.55)) drop-shadow(0 12px 6px rgba(0,0,0,.28))}.lamp,.prop{display:block}.lamp{position:relative}.lamp:after{content:"";position:absolute;left:50%;top:-6px;width:78px;height:96px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,188,96,.72),rgba(255,140,40,.18) 42%,transparent 70%);mix-blend-mode:screen;pointer-events:none}.prop.candle-prop{height:80px}.prop.candle-prop.flip{transform:scaleX(-1)}.prop.censer-prop{height:70px}.prop.offering{height:46px;align-self:end;margin-bottom:4px}.prop.flowers{height:62px}.censer-mount{position:relative;display:block}.censer-mount i{position:absolute;left:46%;bottom:62%;width:10px;height:22px;border-radius:50%;background:rgba(236,236,232,.42);filter:blur(3px);animation:smoke 3.4s ease-out infinite;pointer-events:none}.censer-mount i:nth-child(2){left:54%;height:28px;animation-delay:1.1s}.censer-mount i:nth-child(3){left:40%;animation-delay:2s}.plate{align-self:end;display:flex;justify-content:center;align-items:center;gap:2px;width:58px;height:26px;margin-bottom:2px;border-radius:50%;background:radial-gradient(ellipse at 50% 35%,#e7d3b4,#8d6844 72%);box-shadow:0 6px 8px rgba(0,0,0,.28),inset 0 2px 0 rgba(255,255,255,.25)}.fruit i{background:radial-gradient(circle at 35% 30%,#ffe1a8,#ef8a2a 55%,#b45309)}.fruit i,.mums i{width:13px;height:13px;border-radius:50%}.mums i{background:radial-gradient(circle at 50% 50%,#d4b15a 0 2px,transparent 3px),radial-gradient(circle at 50% 50%,#fbf8f2 0 6px,#e7e0d4 7px)}.table-photo{display:block;width:112%;margin-left:-6%;height:92px;object-fit:cover;object-position:center 22%;pointer-events:none;position:relative;z-index:1;filter:drop-shadow(0 14px 8px rgba(0,0,0,.48)) drop-shadow(0 -6px 10px rgba(255,160,70,.12))}.threshold{margin-top:0;padding:0 0 2px}.rug-photo{display:block;width:min(248px,72%);height:28px;margin:0 auto 2px;object-fit:cover;object-position:center 70%;pointer-events:none}.room .flames{margin-top:4px}.mini-candle{display:block;height:36px;width:auto;object-fit:contain;filter:drop-shadow(0 4px 3px rgba(0,0,0,.35))}.floor{height:22px;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 36%),repeating-linear-gradient(90deg,#4a3020 0 26px,#3a2416 26px 28px,#2a1810 28px 52px);box-shadow:inset 0 12px 16px rgba(0,0,0,.35)}@media (min-width:840px){.phone.hall{width:min(480px,calc(100% - 32px));height:min(940px,calc(100dvh - 28px))}}.drawer{position:absolute;inset:0;z-index:8;pointer-events:none}.back-button,.drawer-layer,.drawer-panel,.menu-button,.menu-close,.scrim{pointer-events:auto}.menu-button,.menu-close,.scrim{border:0;background:transparent;color:#f3e2b0}.chrome{position:relative;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;padding:0 12px;pointer-events:none}.back-button,.menu-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;color:#f3e2b0;background:linear-gradient(180deg,#6a4630,#2a1810);box-shadow:0 8px 14px rgba(0,0,0,.35);text-decoration:none}.back-mark{display:block;width:8px;height:8px;margin-left:3px;border-left:1.5px solid #f3e2b0;border-bottom:1.5px solid #f3e2b0;transform:rotate(45deg)}.menu-mark{position:relative;display:block;width:14px;height:1.5px;background:#f3e2b0}.menu-mark:after,.menu-mark:before{content:"";position:absolute;left:0;width:14px;height:1.5px;background:#f3e2b0}.menu-mark:before{top:-5px}.menu-mark:after{top:5px}.drawer-layer{z-index:2}.drawer-layer,.scrim{position:absolute;inset:0}.scrim{background:rgba(8,5,3,.62);letter-spacing:0}.drawer-panel{position:absolute;top:0;bottom:0;left:0;width:min(320px,86%);padding:28px 26px 36px;overflow:auto;color:#f6efe4;background:radial-gradient(ellipse at 18% 0,rgba(255,186,110,.16),transparent 46%),linear-gradient(180deg,#3a2418,#140e0b 34%,#0c0908);box-shadow:22px 0 48px rgba(0,0,0,.48)}.drawer-mast{display:flex;align-items:center;justify-content:space-between}.drawer-brand{margin:0;color:#c6a36a;font-family:Songti SC,"Noto Serif SC",serif;font-size:13px;letter-spacing:.42em}.menu-close{padding:6px 0;letter-spacing:.18em;font-size:12px}.drawer-name{margin:22px 0 8px;color:#f3e2b0;font-family:Songti SC,"Noto Serif SC",serif;font-size:28px;letter-spacing:.22em}.drawer-panel .kicker{margin:22px 0 6px;text-align:left;letter-spacing:.22em}.drawer-panel a{display:flex;align-items:center;gap:8px;margin:0;padding:11px 0;color:#f6efe4;text-decoration:none;font-family:Songti SC,"Noto Serif SC",Iowan Old Style,serif;font-size:22px}.drawer-panel a.drawer-quiet{margin-top:8px;color:#c6a36a;font-size:16px}.drawer-panel a.drawer-quiet+a.drawer-quiet{margin-top:0}.drawer-panel a[aria-current=page]:before{content:"";width:6px;height:6px;border-radius:50%;background:#e7b07a}.drawer-panel .hall-link{font-size:18px;color:#e7d7c3}.ledger{padding:64px 18px 36px}.self-name{margin-top:22px;padding:16px 16px 14px;color:#2a2118;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 22%),#f3eadc;box-shadow:0 14px 28px rgba(0,0,0,.28)}.self-name label{color:#8b7764;font-size:13px;letter-spacing:.12em}.self-name input{display:block;width:100%;margin-top:6px;padding:6px 0 8px;border:0;border-bottom:1px solid rgba(42,33,24,.16);border-radius:0;background:transparent;color:#2a2118;font-family:Songti SC,"Noto Serif SC",serif;font-size:22px;letter-spacing:.14em}.self-name button{display:block;width:100%;margin-top:14px;border:0;border-radius:999px;padding:12px 16px;background:#2a1810;color:#f6efe4;cursor:pointer}.mine-links{display:flex;flex-direction:column;gap:12px;margin:28px 0 0;padding:0;list-style:none}.mine-links a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 16px;color:#2a2118;text-decoration:none;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 22%),#f3eadc;box-shadow:0 14px 28px rgba(0,0,0,.28)}.mine-links strong{font-family:Songti SC,"Noto Serif SC",serif;font-size:22px;font-weight:500;letter-spacing:.14em}.mine-links span{color:#8b7764;font-size:13px;letter-spacing:.08em}.lang-list{display:flex;flex-direction:column;gap:10px;margin-top:26px}.lang-list button{border:0;padding:16px;color:#2a2118;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 22%),#f3eadc;box-shadow:0 14px 28px rgba(0,0,0,.28);font-family:Songti SC,"Noto Serif SC",serif;font-size:20px;letter-spacing:.12em;cursor:pointer}.lang-list button[aria-pressed=true]{color:#f6efe4;background:#2a1810}.record{display:flex;flex-direction:column;gap:10px;margin:22px 0 0;padding:0;list-style:none}.record a{display:grid;grid-template-columns:46px 1fr auto;grid-template-rows:auto auto;grid-gap:2px 10px;gap:2px 10px;align-items:center;padding:12px 14px;color:#2a2118;text-decoration:none;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 22%),#f3eadc;box-shadow:0 12px 24px rgba(0,0,0,.28)}.record b,.record img{grid-row:1/span 2;align-self:center}.record b{font-family:Songti SC,"Noto Serif SC",serif;font-size:18px;font-weight:500;color:#8a5a2a}.record b.down{color:#8b7764}.record img{width:36px;height:46px;object-fit:contain;filter:drop-shadow(0 6px 4px rgba(0,0,0,.28))}.record strong{font-family:Songti SC,"Noto Serif SC",serif;font-size:18px;font-weight:500;letter-spacing:.08em}.record em{grid-column:2;font-style:normal;color:#8b7764;font-size:13px}.record time{grid-column:3;grid-row:1/span 2;color:#8b7764;font-size:12px;letter-spacing:.02em}.ledger-head{text-align:center}.ledger-head .kicker{letter-spacing:.42em}.ledger-head h1{margin:8px 0 0;color:#f3e2b0;font-family:Songti SC,"Noto Serif SC",serif;font-size:40px;font-weight:500;letter-spacing:.32em;text-indent:.32em}.ledger-head h1:after{content:"";display:block;width:28px;height:1px;margin:14px auto 0;background:#c6a36a}.ledger-sign{margin:12px 0 0;color:#e7d7c3;letter-spacing:.28em}.ledger-head .hint{max-width:26em;margin:10px auto 0;text-align:center}.ledger a.new-hall{width:min(100%,220px);margin:22px auto 0;text-align:center;text-decoration:none}.hall-manage{text-align:right}.hall-manage,.ledger .remove-card{margin-top:8px}.ledger ol{display:flex;flex-direction:column;gap:14px;margin:26px 0 0;padding:0;list-style:none}.slip{display:grid;grid-template-columns:108px 1fr;grid-gap:12px;gap:12px;padding:12px;color:#2a2118;text-decoration:none;background:linear-gradient(180deg,rgba(255,255,255,.4),transparent 22%),#f3eadc;box-shadow:0 16px 30px rgba(0,0,0,.3)}.slip-still{position:relative;overflow:hidden;min-height:124px;background:radial-gradient(ellipse at 50% 78%,rgba(255,176,80,.22),transparent 62%),#1a100c}.slip-still img{position:absolute;bottom:0;height:78px;width:auto;max-width:72%;object-fit:contain;filter:drop-shadow(0 8px 5px rgba(0,0,0,.45))}.slip-still img:first-child{left:0}.slip-still img:nth-child(2){right:-6px;left:auto}.slip-still img:only-child{left:50%;right:auto;transform:translateX(-50%)}.slip-still.face img{inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transform:none;filter:none}.slip-body{min-width:0;padding-top:2px}.slip strong{display:block;color:#2a2118;font-family:Songti SC,"Noto Serif SC",serif;font-size:22px;font-weight:500;letter-spacing:.12em}.slip-date{display:block;margin-top:4px;color:#8b7764;font-size:12px;letter-spacing:.06em}.slip-line{gap:8px;margin-top:8px;font-size:14px}.slip-foot,.slip-line{display:flex;justify-content:space-between}.slip-foot{align-items:baseline;margin-top:12px}.slip-foot i{font-style:normal;color:#8b7764;font-size:12px;letter-spacing:.16em}.slip-foot b{font-family:Songti SC,"Noto Serif SC",serif;font-size:22px;font-weight:500}.ledger-empty{margin-top:36px;text-align:center}.ledger-empty img{height:92px;filter:drop-shadow(0 10px 8px rgba(0,0,0,.45))}.ledger-empty p{color:#e7d7c3}@keyframes flicker{0%,to{transform:scale(1) rotate(-1deg);opacity:.9}50%{transform:scale(.9,1.12) rotate(1deg);opacity:1}}@keyframes smoke{0%{transform:translateY(0) scale(.8);opacity:0}25%{opacity:.55}to{transform:translateY(-28px) scale(1.45);opacity:0}}@media (prefers-reduced-motion:reduce){.censer i:before,.censer-mount i,.flame{animation:none}}.og-save{margin:14px 0 0}.og-save img{display:block;width:100%;height:auto;border-radius:12px}.og-save figcaption{margin-top:8px}.another{margin:4px 16px 18px;text-align:center}.another a{color:#c6a36a;font-size:14px;letter-spacing:.04em;text-decoration:none}.sample{margin-top:8px}.sample-lede{margin:10px 0 0;color:#d9cbb8;line-height:1.6;text-align:center}.sample-room{margin:14px 0;padding:18px 14px 14px;border-radius:18px;background:#1a120e;text-align:center}.sample-couplet{display:flex;justify-content:space-between;margin:0;color:#e7d3b0;font-size:13px;letter-spacing:.18em}.sample-face{display:grid;place-items:center;height:108px}.sample-face img{height:88px;filter:drop-shadow(0 10px 8px rgba(0,0,0,.45))}.sample-room h2{margin:0;color:#f6efe4;font-family:Songti SC,"Noto Serif SC",serif;font-size:28px;font-weight:500;letter-spacing:.22em}.sample-props{display:flex;justify-content:center;align-items:flex-end;gap:10px;min-height:56px;margin-top:8px}.sample-props img{height:48px}.sample .choices{margin-top:10px}.sample .choices label{color:#e7d7c3;border-color:rgba(231,215,195,.28)}.sample .choices label:has(input:checked){color:#2a1810;background:#f3e6d4;border-color:transparent}.sample .linkwrap{margin:14px 0}.sample a.primary{margin-top:12px;text-align:center;text-decoration:none}.calendar-link{margin:6px 16px 22px;text-align:center}.calendar-link a{color:#c6a36a;font-size:13px;letter-spacing:.06em;text-decoration:none}.memorial-banner{margin:14px 18px 0;padding:10px 14px;color:#f6ead8;font-size:14px;background:rgba(212,101,47,.18);border:1px solid rgba(231,176,122,.28);border-radius:6px}.hall-summary,.memorial-banner{text-align:center;line-height:1.55}.hall-summary{margin:10px 18px 0;color:#cbb8a4;font-size:13px}.hall-summary.unlock{color:#e7b07a}.incense-free{margin:10px 16px 0}.memory-book{margin:20px 18px 4px;padding-top:16px;border-top:1px solid rgba(244,234,220,.12)}.memory-book h2{margin:0 0 8px;color:#e7b07a;font-size:13px;font-weight:500;letter-spacing:.18em;text-align:center}.memory-book details{margin-bottom:8px}.memory-book summary{display:flex;align-items:center;gap:6px;color:#cbb8a4}.memory-book summary:after{content:"";flex:1 1;height:1px;background:rgba(244,234,220,.12)}.memory-book ul{list-style:none;margin:8px 0 0;padding:0}.memory-book li{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(244,234,220,.08);color:#e7d7c3;font-size:14px;line-height:1.6}.memory-book li>div{min-width:0;overflow-wrap:anywhere}.memory-book strong{display:block;color:#c6a36a;font-size:12px;font-weight:500}.note-action{flex:0 0 auto;margin:0}.note-action button{border:0;padding:2px 0;background:none;color:#a89383;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.note-action button:disabled{opacity:.6;cursor:wait}.manage-hall{margin:8px 16px 0;color:#e7d7c3}.manage-hall>summary{padding:12px 0;color:#c6a36a;text-align:center;letter-spacing:.12em}.manage-body{display:grid;grid-gap:18px;gap:18px;padding:4px 0 18px;border-top:1px solid rgba(244,234,220,.12)}.manage-body form,.manage-body section{margin:0;padding:0}.manage-body h2{margin:8px 0;color:#f6efe4;font-size:15px;font-weight:560}.manage-body .photo-pick{width:min(180px,100%)}.manage-body .photo-pick img{width:100%;aspect-ratio:3/4;object-fit:cover}.hall-lang{display:flex;justify-content:center;gap:6px;margin:4px 16px}.hall-lang a,.share-languages button{min-width:56px;padding:7px 10px;border:1px solid rgba(198,163,106,.4);border-radius:999px;color:#e7d7c3;font-size:12px;text-align:center;text-decoration:none}.hall-lang a[aria-current=true],.share-languages button[aria-pressed=true]{color:#2a1810;background:#f3e6d4;border-color:transparent}.share-languages{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0 0}.share-languages button{background:transparent;cursor:pointer}.whatsapp{display:block;width:100%;text-align:center;text-decoration:none}.light-ritual{display:grid;justify-items:center;grid-gap:8px;gap:8px;padding:24px 16px 18px;text-align:center}.ritual-flame,.ritual-smoke{display:block;width:12px;height:12px;border-radius:50%}.ritual-flame{background:#f3b25b;box-shadow:0 0 18px 7px rgba(243,178,91,.48);animation:ritual-light .52s ease-out both}.ritual-smoke{height:30px;background:linear-gradient(180deg,rgba(231,215,195,.52),transparent);-webkit-clip-path:polygon(38% 100%,62% 100%,78% 45%,52% 8%,34% 38%,16% 72%);clip-path:polygon(38% 100%,62% 100%,78% 45%,52% 8%,34% 38%,16% 72%);animation:ritual-rise .95s ease-out both}@keyframes ritual-light{0%{opacity:.25;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes ritual-rise{0%{opacity:0;transform:translateY(12px)}35%{opacity:1}to{opacity:0;transform:translateY(-12px)}}@media (prefers-reduced-motion:reduce){.ritual-flame,.ritual-smoke{animation:none}.ritual-smoke{opacity:0}}.crop-editor{width:100%;padding:12px;background:rgba(255,248,238,.07);border:1px solid rgba(244,234,220,.14);border-radius:8px}.crop-stage{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;background:rgba(0,0,0,.3);border-radius:6px;touch-action:none;cursor:-webkit-grab;cursor:grab}.crop-stage:active{cursor:-webkit-grabbing;cursor:grabbing}.crop-stage img{width:100%;height:100%;object-fit:cover;pointer-events:none}.crop-frame{position:absolute;inset:12px;border:1px solid rgba(246,234,216,.72);border-radius:4px;box-shadow:0 0 0 999px rgba(0,0,0,.2);pointer-events:none}.crop-actions{display:flex;flex-direction:column;gap:8px}.ledger-kicker{margin:0 0 4px;color:#c6a36a;font-size:12px;letter-spacing:.16em;text-align:center}.death-date{margin:0 16px 8px;color:#e7d7c3}.death-date summary{cursor:pointer;text-align:center;color:#c6a36a;letter-spacing:.06em}.death-date form{margin-top:8px}.partner{margin-top:14px;text-align:center;letter-spacing:.06em}.poster-switch{margin:0 16px 8px;text-align:center}.poster-switch .ghost{width:auto;display:inline-block;padding:8px 14px;font-size:13px}.poster-kins{display:flex;justify-content:center;gap:8px;margin-top:8px}.poster-kins button{border:1px solid rgba(198,163,106,.45);background:transparent;color:#e7d7c3;border-radius:999px;padding:6px 12px}.poster-kins button[aria-pressed=true]{color:#2a1810;background:#f3e6d4}.poster-mark{display:none}.hall.poster .poster-mark{display:block;position:absolute;right:16px;bottom:18px;z-index:6;color:rgba(243,226,176,.9);letter-spacing:.32em;font-size:13px;pointer-events:none}.hall.poster .another,.hall.poster .back-button,.hall.poster .calendar-link,.hall.poster .death-date,.hall.poster .dock,.hall.poster .hall-lang,.hall.poster .hall-summary,.hall.poster .incense-free,.hall.poster .manage-hall,.hall.poster .memorial-banner,.hall.poster .memory-book,.hall.poster .menu-button,.hall.poster .send,.hall.poster .sheet,.hall.poster .words,.hall.poster .years{display:none}.hall.poster .portrait-hole .photo-empty,.hall.poster .portrait-hole img{filter:grayscale(1) blur(18px) brightness(.55)}.hall.poster .photo-empty{color:transparent}.hall.poster .portrait-hole{position:relative}.hall.poster .portrait-hole:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,rgba(232,220,200,.28),transparent 36%),linear-gradient(180deg,rgba(16,12,10,.05),rgba(16,12,10,.35));pointer-events:none}.essay{padding:0 0 36px}.essay article{padding:72px 22px 0}.essay h1{margin:10px 0 0;color:#f3e2b0;font-family:Songti SC,"Noto Serif SC",serif;font-size:30px;font-weight:500;letter-spacing:.06em;line-height:1.4;text-align:left}.essay .paper{margin-top:22px;padding:8px 16px 18px;background:#f3eadc;color:#2a2118;border-radius:18px}.essay .paper li,.essay .paper p{line-height:1.75;font-size:16px}.essay .paper ol{padding-left:1.2em}.essay .paper a.primary{margin-top:8px;text-align:center;text-decoration:none;background:#2a1810;color:#f6efe4}