:root{--ink: #2b241c;--paper: rgba(250, 245, 235, .88);--paper-solid: #f8f2e6;--line: rgba(80, 60, 40, .16);--gold: #b88a35;--gold-soft: #f2d48a;--wine: #7a1f23;--muted: #7b6d5c;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#15130f;font-family:var(--sans);color:var(--ink)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,#0000 50%,#2d194680);mix-blend-mode:multiply}#labels{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.nametag{position:absolute;left:0;top:0;transform:translate(-50%,-100%);white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:4px;will-change:transform}.nametag .name{font-size:12px;padding:3px 9px 3px 4px;border-radius:99px;background:#faf5ebd1;box-shadow:0 2px 8px #0000002e;display:flex;align-items:center;gap:5px;color:#3a3026}.nametag .name .dot{width:16px;height:16px;border-radius:50%;background:#e7dccb;display:grid;place-items:center;font-size:10px;color:#6b5a45}.nametag.me .name .dot{background:var(--gold-soft);color:#5a4113}.nametag .bubble{max-width:230px;white-space:normal;text-align:center;font-size:12.5px;line-height:1.35;padding:7px 11px;border-radius:14px;background:#fffcf4f2;box-shadow:0 4px 16px #00000038;color:#3a2f22;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}.nametag .bubble.show{opacity:1;transform:none}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud>*{pointer-events:auto}.pill{display:inline-flex;align-items:center;gap:4px;padding:6px;border-radius:99px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 18px #00000038}.pill.soft{padding:9px 15px;font-size:13.5px;gap:7px}.icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;transition:background .2s}.icon:hover,.room:hover{background:#785a321a}.icon.lang{font-size:12px;font-weight:600;letter-spacing:.04em}.top-left{position:absolute;top:calc(14px + var(--safe-t));left:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.top-right{position:absolute;top:calc(14px + var(--safe-t));right:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.room{display:inline-flex;align-items:center;gap:4px;padding:7px 8px 7px 10px;border-radius:99px;font-family:var(--serif);font-size:19px;font-weight:600}.room b{font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:500}.room .chev{width:16px;height:16px;color:var(--muted)}.count{font-size:13px;color:var(--muted);padding:0 12px 0 6px;font-variant-numeric:tabular-nums}.candle-total{font-size:12px;color:#fff0d2d9;text-shadow:0 1px 4px rgba(0,0,0,.6);padding-left:8px}#btn-hymn.on{background:#7a1f23e6;color:#fff3e0}#btn-hymn .note{font-size:16px}.heart{color:var(--wine);font-size:15px}.hint{position:absolute;top:calc(78px + var(--safe-t));left:50%;transform:translate(-50%);font-size:12.5px;color:#fff4e1eb;text-shadow:0 1px 6px rgba(0,0,0,.7);text-align:center;pointer-events:none!important;transition:opacity 1s;max-width:80vw}.status{position:absolute;top:calc(108px + var(--safe-t));left:50%;transform:translate(-50%);font-size:12.5px;padding:6px 12px;border-radius:99px;background:#1e1812bf;color:#f4e6cf}.toasts{position:absolute;left:14px;bottom:calc(104px + var(--safe-b));display:flex;flex-direction:column;gap:6px;pointer-events:none!important;max-width:70vw}.toast{font-size:12.5px;padding:6px 12px;border-radius:12px;background:#1e1812ad;color:#f4e6cf;animation:toast 6s forwards;width:fit-content}@keyframes toast{0%{opacity:0;transform:translateY(6px)}8%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.actions{position:absolute;left:50%;bottom:calc(16px + var(--safe-b));transform:translate(-50%);display:flex;gap:2px;padding:7px;border-radius:26px;background:var(--paper);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 6px 26px #0000004d}.actions button{min-width:72px;padding:8px 8px 6px;border-radius:19px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:12px;transition:background .2s,transform .15s}.actions button:hover{background:#785a321a}.actions button:active{transform:scale(.95)}.actions button.active{background:#b88a3538}.actions button.main svg{color:#b4471f}.actions svg{width:24px;height:24px}.sheet{position:absolute;left:50%;bottom:calc(100px + var(--safe-b));transform:translate(-50%);width:min(440px,calc(100vw - 24px));padding:16px 18px;border-radius:22px;background:#faf5ebf2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 40px #00000059;animation:rise .3s ease}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}}.sheet header,.card header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.close{font-size:24px;width:32px;height:32px;color:var(--muted)}.eyebrow{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:600}.ro-title{font-family:var(--serif);font-size:24px;font-weight:600;line-height:1.15;margin-top:2px}.ro-sub{font-size:13px;color:var(--muted);margin-top:4px;min-height:18px}.beads{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 8px;align-items:center}.bead{width:12px;height:12px;border-radius:50%;background:#e3d8c4;transition:background .25s,transform .25s}.bead.lg{width:16px;height:16px}.bead.done{background:#8a5a3a}.bead.cur{background:var(--gold);transform:scale(1.35);box-shadow:0 0 0 3px #b88a3540}.ro-text{font-family:var(--serif);font-size:18px;line-height:1.45;margin:8px 0 4px;color:#3b2f22;max-height:30vh;overflow:auto}.ro-row{display:flex;gap:8px;margin-top:10px}.ro-row .primary{flex:1.4}.ro-row .ghost{flex:1}.primary{display:inline-flex;justify-content:center;align-items:center;padding:11px 16px;border-radius:14px;background:var(--wine);color:#fff6e8;font-weight:500;text-decoration:none;transition:filter .2s}.primary:hover{filter:brightness(1.1)}.ghost{padding:11px 14px;border-radius:14px;background:#785a321a;font-size:14px}.wide{width:100%;margin-top:14px}.muted{color:var(--muted);font-size:13.5px;margin:6px 0 12px}.intent-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.intent-grid button{text-align:left;padding:11px 12px;border-radius:14px;background:#785a3214;font-size:13.5px;display:flex;gap:8px;align-items:center;transition:background .2s}.intent-grid button:hover{background:#b88a3533}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0c098c;display:grid;place-items:center;z-index:20;padding:16px;animation:fade .25s}@keyframes fade{0%{opacity:0}}.card{width:min(400px,100%);background:var(--paper-solid);border-radius:22px;padding:18px 20px 20px;box-shadow:0 20px 60px #0006;max-height:86vh;overflow:auto}.card h3{font-family:var(--serif);font-size:26px;margin:0 0 8px;font-weight:600}.card p{line-height:1.55;font-size:14.5px}.row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px}.seg{display:flex;background:#785a321a;border-radius:12px;padding:3px}.seg button{padding:6px 11px;border-radius:9px;font-size:13px}.seg button.on{background:#fff;box-shadow:0 1px 4px #0000001f}.toggle{width:46px;height:27px;border-radius:99px;background:#d5c9b6;position:relative;transition:background .2s}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--wine)}.toggle.on:after{transform:translate(19px)}.about{padding-top:12px;font-size:14px}.about p{color:var(--muted);margin:6px 0 0;font-size:13.5px}.room-list{display:grid;gap:6px;margin-top:6px}.room-list button{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:14px;background:#785a3212;font-size:14.5px}.room-list button.cur{background:#b88a3538}.room-list button:disabled{opacity:.45;cursor:not-allowed}.room-list .n{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}#intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:block;overflow-y:auto;scroll-behavior:smooth;background:radial-gradient(ellipse at 50% 35%,#3a2d1f,#1b1712 55%,#110e0b);color:#f4e6cf;text-align:center;padding:24px;transition:opacity .9s}#intro.fade{opacity:0;pointer-events:none}.facade{position:absolute;left:50%;bottom:-4%;transform:translate(-50%);width:min(760px,120vw);height:auto;color:#f2d48a;opacity:.16;stroke-width:1.6;pointer-events:none}.intro-inner{position:relative;min-height:100vh;min-height:100dvh;margin:0 auto;justify-content:center;max-width:440px;display:flex;flex-direction:column;align-items:center}.logo{width:76px;height:76px;color:var(--gold-soft);stroke:none;margin-bottom:10px;filter:drop-shadow(0 0 18px rgba(242,195,107,.35))}#intro h1{font-family:var(--serif);font-weight:600;font-size:52px;margin:0;letter-spacing:.01em}.tag{font-family:var(--serif);font-size:22px;margin:6px 0 4px;color:var(--gold-soft)}.sub{font-size:14.5px;line-height:1.6;color:#f4e6cfbf;margin:8px 0 26px}.big{padding:14px 30px;font-size:16px;border-radius:99px;background:#9a2a2a;box-shadow:0 8px 30px #9a2a2a73}.loading{font-size:13.5px;color:#f4e6cfb3;animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.45}}.intro-lang{margin-top:34px;font-size:13px;color:#f4e6cf80}.intro-lang button{color:#f4e6cfbf;padding:4px}.intro-lang button.on{color:var(--gold-soft);text-decoration:underline;text-underline-offset:4px}@media (max-width: 560px){.actions button{min-width:60px;font-size:11px;padding:7px 4px 5px}.pill.soft{padding:8px 12px;font-size:12.5px}.hint{top:auto;bottom:calc(96px + var(--safe-b));font-size:11.5px}.toasts{bottom:calc(126px + var(--safe-b))}.room{font-size:16px;padding:7px 4px 7px 10px}#btn-leave,#btn-sound{display:none}.count{padding:0 10px 0 2px;font-size:12px}.top-left{left:10px}.top-right{right:10px}.icon{width:34px;height:34px}#intro h1{font-size:44px}}.pick-h{margin:14px 0 8px}.dev-list{display:grid;gap:8px}.dev{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:16px;background:#785a3214;text-align:left}.dev-top{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}.dev-top .go{margin-left:auto;font-size:13px;color:var(--wine);font-weight:600}.dev:hover{background:#b88a3529}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:7px 11px;border-radius:99px;background:#785a3214;font-size:13px}.chip.on,.chip:hover{background:#b88a3540}.progress{height:3px;border-radius:3px;background:#785a321f;overflow:hidden;margin:4px 0 2px}.progress span{display:block;height:100%;width:0;background:var(--gold);transition:width .3s}.linkish{display:block;margin:10px auto 0;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}#rosary{max-height:calc(100vh - 140px);overflow:auto}.share-link{display:flex;gap:8px;margin:4px 0 14px}.share-link input{flex:1;min-width:0;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;color:var(--muted)}.share-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.share-grid a,.share-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--ink);text-decoration:none;padding:8px 2px;border-radius:14px}.share-grid a:hover,.share-grid button:hover{background:#785a3214}.share-grid .ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:17px}.mercy-banner{position:absolute;top:calc(70px + var(--safe-t));left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 24px));display:flex;align-items:center;gap:12px;padding:10px 10px 10px 14px;border-radius:18px;background:linear-gradient(120deg,#fff6ecf5,#fae8ecf5);box-shadow:0 10px 30px #3c141e59;animation:rise .4s ease;z-index:5}.mb-ico{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;background:conic-gradient(from 200deg,#c8343f 0,#c8343f 25%,#f4f1ff 25%,#f4f1ff 50%,#c8343f 50%,#c8343f 75%,#f4f1ff 75%);text-shadow:0 0 4px rgba(0,0,0,.5);font-weight:700}.mb-text{display:flex;flex-direction:column;font-size:13px;line-height:1.35;color:#4a2a2a;flex:1}.mb-text b{font-family:var(--serif);font-size:17px}.mercy-banner .primary{padding:9px 12px;font-size:13px;white-space:nowrap}.tiny{font-size:12px;color:var(--muted);margin:6px 2px 0}.mercy-set{text-align:left}.intro-mercy{margin-top:18px;font-size:13px;color:#f4e6cf9e}#paper{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.16;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.45  0 0 0 0 0.38  0 0 0 0 0.5  0 0 0 0.9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}@media (max-width: 560px){.mercy-banner{top:auto;bottom:calc(100px + var(--safe-b))}.mercy-banner .primary{display:none}.mercy-banner{cursor:pointer}.share-grid{grid-template-columns:repeat(4,1fr)}}.learn-more{margin-top:26px;font-size:13px;color:#f4e6cf8c;text-decoration:none}.learn-more:hover{color:var(--gold-soft)}.seo-info{position:relative;max-width:640px;margin:0 auto;padding:10px 24px 70px;text-align:left;color:#f4e6cfcc;font-size:15px;line-height:1.65}.seo-info h2{font-family:var(--serif);font-size:30px;font-weight:600;color:#f4e6cf;margin:0 0 10px;line-height:1.2}.seo-info h3{font-family:var(--serif);font-size:22px;color:var(--gold-soft);margin:22px 0 6px;font-weight:600}.seo-info ul{padding-left:20px}.seo-info li{margin:6px 0}.seo-info b{color:#f4e6cf;font-weight:600}.seo-links{margin-top:26px;font-size:13px}.seo-links a{color:var(--gold-soft)}html[lang=vi] .seo-en,html:not([lang=vi]) .seo-vi{display:none}.own-intent{margin:4px 0 6px}.own-intent textarea{width:100%;resize:none;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font:inherit;font-size:14.5px;background:#fff;color:var(--ink)}.own-intent textarea:focus{outline:2px solid rgba(184,138,53,.45);border-color:transparent}.own-row{display:flex;align-items:center;gap:8px;margin-top:8px}.own-row .primary{margin-left:auto;padding:9px 18px}.own-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.seg.vis button{font-size:12.5px}.toast.intent-card{pointer-events:auto;background:#faf5ebf2;color:var(--ink);box-shadow:0 6px 20px #00000040;padding:10px 12px;max-width:320px;animation:toast 60s forwards}.intent-card .who{font-size:11.5px;color:var(--muted)}.intent-card .txt{font-family:var(--serif);font-size:16.5px;line-height:1.35;margin:2px 0 8px}.intent-card .acts{display:flex;gap:6px;align-items:center}.intent-card .acts button{padding:6px 10px;border-radius:10px;font-size:12.5px;background:#785a321a}.intent-card .acts button.amen.on{background:#b88a354d}.intent-card .acts .rep{margin-left:auto;background:none;color:var(--muted);text-decoration:underline}.intent-card .n{font-size:12px;color:var(--muted)}.toasts{pointer-events:none}.seo-info h4{font-size:15.5px;color:#f4e6cf;margin:16px 0 2px;font-weight:600}.seo-info h4+p{margin-top:2px}.live-line{min-height:22px;margin:-8px 0 18px;font-size:14px;color:var(--gold-soft);letter-spacing:.01em}.live-line .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7bd88f;box-shadow:0 0 #7bd88f99;animation:livePulse 2s infinite;margin-right:6px;vertical-align:1px}@keyframes livePulse{70%{box-shadow:0 0 0 8px #7bd88f00}to{box-shadow:0 0 #7bd88f00}}.mercy-intro{margin-top:22px;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border-radius:18px;background:#fff0e114;border:1px solid rgba(242,212,138,.18);text-align:left;width:min(420px,100%)}.mi-ico{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;background:conic-gradient(from 200deg,#c8343f 0,#c8343f 25%,#f4f1ff 25%,#f4f1ff 50%,#c8343f 50%,#c8343f 75%,#f4f1ff 75%);text-shadow:0 0 4px rgba(0,0,0,.5)}.mi-text{display:flex;flex-direction:column;flex:1;font-size:12.5px;color:#f4e6cfb3;line-height:1.35}.mi-text b{font-family:var(--serif);font-size:17px;color:#f4e6cf;font-weight:600}.mi-btn{padding:9px 13px;border-radius:12px;background:#f2d48a29;color:var(--gold-soft);font-size:13px;white-space:nowrap}.mi-btn:hover{background:#f2d48a47}.mercy-chip{margin-left:6px;font-size:12px;padding:4px 10px;border-radius:99px;background:#2814288c;color:#f4e6cf}.mercy-chip.now{background:#c8343fd9}.card-wide{width:min(440px,100%)}.card-intent{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);font:inherit;font-size:14px;margin:4px 0 10px}.card-preview{border-radius:16px;overflow:hidden;background:#2b2340;aspect-ratio:9 / 16;max-height:52vh;margin:0 auto;display:grid;place-items:center}.card-preview img{width:100%;height:100%;object-fit:contain;display:block}.toast.cta{pointer-events:auto;display:flex;align-items:center;gap:10px}.toast.cta button{padding:5px 10px;border-radius:9px;background:#f2d48a40;color:#fff3dd;font-size:12.5px}.named-box{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.named-box b{font-family:var(--serif);font-size:20px}.named-box .muted{margin:4px 0 10px}.named-box .primary{padding:9px 14px}#my-rooms:not(:empty):before{content:attr(data-title);display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:10px 0 2px}
