:root{font-family:'Songti SC','Noto Serif SC',STSong,serif;color:var(--display-ink,#293d35);background:var(--display-bg,#eee9dd);--b-ink:var(--display-ink,#293d35);--b-muted:var(--display-muted,#586252);--b-line:var(--display-line,#b6baaa);--b-accent:var(--display-accent,#963f30);--b-surface:var(--display-surface,#f6f2e9);--b-wood:#a47450;--b-gold:#c3a172;--b-petal:#d2b38d;--b-outline:#715c43}
html[data-display-theme=dark]{--b-wood:#bc8c65;--b-gold:#d4b783;--b-petal:#dec39b;--b-outline:#715b42}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:0;min-height:100dvh}button,input,select,textarea{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation;cursor:pointer}button:disabled{cursor:default}a{color:inherit}p,h1,h2,h3{margin:0}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance;font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--b-accent);outline-offset:4px}.skip-link{position:absolute;left:12px;top:8px;transform:translateY(-180%);padding:10px;background:var(--b-surface);z-index:20}.skip-link:focus{transform:none}.topbar{width:min(1120px,calc(100% - 48px));margin:auto;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--b-line)}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:18px}.topbar-actions button,.language-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;border:0;background:none;color:var(--b-muted);font-size:14px;text-decoration:none}.blessing-main{max-width:680px;margin:auto;padding:26px 24px 100px}.heading{text-align:center}.eyebrow{font-size:13px;line-height:1.9;color:var(--b-muted)}.heading h1{font-size:32px;line-height:1.6;margin:6px 0 8px}.heading>p:last-child{font-size:15px;line-height:1.9;color:var(--b-muted)}.wish-fields{max-width:420px;margin:28px auto 0;display:grid;grid-template-columns:1fr 100px;gap:10px;align-items:center}.wish-fields label{font-size:14px}.wish-fields label[for=wish],.wish-fields textarea,.field-note{grid-column:1/-1}.wish-fields label span{font-size:12px;color:var(--b-muted)}textarea,select{min-height:44px;border:1px solid var(--b-line);border-radius:2px;padding:8px 10px;background:var(--b-surface);color:var(--b-ink);max-width:100%;font-size:16px}textarea{width:100%;resize:vertical;line-height:1.8}textarea:disabled,select:disabled{opacity:.8}.field-note{display:flex;justify-content:space-between;gap:10px;font-size:12px;line-height:1.8;color:var(--b-muted)}.field-note output{white-space:nowrap;font-variant-numeric:tabular-nums}.ritual-stage{text-align:center}.artifact{display:block;width:min(300px,100%);margin:8px auto 0;padding:0;border:0;background:none;color:inherit;aspect-ratio:6/5}.artifact svg{display:block;width:100%;height:100%;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.ground{fill:var(--b-ink);opacity:.07}.vessel,.metal{fill:var(--b-wood);stroke:var(--b-outline)}.rim,.roof{fill:var(--b-gold);stroke:var(--b-outline)}.etch{stroke:var(--b-petal)}.petals{fill:var(--b-petal);stroke:var(--b-outline)}.wick{stroke:var(--b-outline);stroke-width:3}.flame{fill:#dfb36a;opacity:0}.flame-core{fill:#fff0bf}.is-lit .flame{opacity:1}.flower-arrangement{opacity:0}.is-lit .flower-arrangement{opacity:1}.stem{stroke:var(--b-muted);fill:var(--b-muted);stroke-width:2}.flower-petals{fill:var(--b-petal);stroke:var(--b-outline)}.frame{stroke:var(--b-muted);stroke-width:7}.mallet{fill:var(--b-wood);stroke:var(--b-outline)}.bell-wave{stroke:var(--b-line);opacity:.5;stroke-dasharray:2 12}.bead-thread,.cord{stroke:var(--b-gold);stroke-width:2}.bead,.bead-main{fill:var(--b-wood);stroke:var(--b-outline)}.art-count{fill:var(--b-ink);font:40px Georgia,serif;font-variant-numeric:tabular-nums}.orbit{stroke:var(--b-line);stroke-dasharray:3 7}.walker{fill:var(--b-accent);stroke:var(--b-surface);stroke-width:3}.walker-core{fill:var(--b-surface)}.artifact:not(.is-lit).offering .petals{opacity:.8}.chant-label{font-size:23px;line-height:1.7;margin:0 0 12px}.progress{font:16px/1.8 Georgia,'Songti SC',serif;font-variant-numeric:tabular-nums;margin:4px 0 18px}.ritual-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px}.primary,.secondary{min-height:48px;border:1px solid var(--b-ink);border-radius:2px;padding:10px 24px;line-height:1.7;font-size:16px;background:var(--b-ink);color:var(--display-bg,#eee9dd)}.secondary{background:transparent;color:var(--b-ink);border-color:var(--b-line)}.primary:disabled,.secondary:disabled{opacity:.55}.text-action{border:0;background:none;color:var(--b-accent);padding:10px;min-height:44px;font-size:14px}.session-status{font-size:14px;line-height:1.9;color:var(--b-muted);margin:18px auto 8px;max-width:32em}.muted{font-size:12px;line-height:1.9;color:var(--b-muted)}.completion{max-width:440px;margin:28px auto 0;padding:24px;text-align:center;border:1px solid var(--b-line);background:var(--b-surface)}.completion h2{font-size:24px;line-height:1.7;margin:5px 0 12px}.completion p{font-size:15px;line-height:1.9;overflow-wrap:anywhere}.completion #saved-intention{color:var(--b-muted);font-size:13px}.completion .saved-wish{white-space:pre-wrap;margin:10px 0}.completion .secondary{margin:18px 0 6px;font-size:14px}.completion .support-note{font-size:12px;color:var(--b-muted);margin:16px 0 0}.help{margin:32px auto 0;border-top:1px solid var(--b-line);border-bottom:1px solid var(--b-line);padding:8px 0}.help summary{cursor:pointer;padding:12px 0;min-height:44px;font-size:14px;color:var(--b-muted)}.help h2{font-size:22px;margin:12px 0}.help h3{font-size:17px;margin:20px 0 8px}.help p{font-size:14px;line-height:1.9;color:var(--b-muted);margin:8px 0 20px}.related{display:flex;flex-wrap:wrap;gap:10px 22px;margin:24px 0}.related a{font-size:13px;line-height:1.8;padding:10px 0;min-height:44px;color:var(--b-muted);text-underline-offset:5px}dialog{width:min(500px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;padding:0;border:1px solid var(--b-line);border-radius:8px;background:var(--b-surface);color:var(--b-ink)}dialog::backdrop{background:rgb(8 17 13 / 68%)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--b-line)}.dialog-heading h2,.dialog-body h2{font-size:23px}.dialog-heading form{margin:0}.close{height:44px;width:44px;border:0;background:none;color:var(--b-muted);font-size:28px}.dialog-body{padding:24px}.dialog-body p{line-height:1.9;margin:12px 0}.setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;margin:12px 0;font-size:15px}.setting select{min-width:0;max-width:65%}.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--b-accent)}.setting input[type=range]{min-width:0;width:55%;min-height:44px;accent-color:var(--b-accent)}.setting output{font-size:13px;font-variant-numeric:tabular-nums}.dialog-footer{padding:0 24px 24px;margin:0}.dialog-footer button{width:100%}.restart-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
@media(max-width:600px){.topbar{width:calc(100% - 32px);padding:12px 0;gap:10px;align-items:flex-start}.topbar-actions{gap:4px 12px;max-width:240px}.topbar-actions button,.language-link{font-size:12px}.blessing-main{padding:26px 18px 90px}.heading h1{font-size:28px}.artifact{width:min(260px,100%)}.wish-fields{margin-top:24px}.field-note{font-size:11px;flex-wrap:wrap}.completion{padding:22px 18px}.primary,.secondary{padding:10px 18px}.heading>p:last-child{font-size:14px}}html[data-display-size=large] .heading>p:last-child,html[data-display-size=large] .session-status,html[data-display-size=large] .help p,html[data-display-size=large] .completion p,html[data-display-size=large] label{font-size:18px}html[data-display-size=large] .muted,html[data-display-size=large] .field-note,html[data-display-size=large] .related a{font-size:15px}

.artifact{position:relative;width:min(430px,100%);aspect-ratio:6/5}.artifact.has-3d>svg{visibility:hidden}.blessing-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}.artifact.has-3d:disabled{opacity:1}.artifact.has-3d>svg{position:absolute;inset:0}.artifact.has-3d{min-height:240px}.artifact.has-3d+ .chant-label{margin-top:8px}
@media(max-width:600px){.artifact{width:min(340px,100%)}.artifact.has-3d{min-height:220px}}

/* The prayer beads are a primary, tactile surface on both localized pages. */
body[data-blessing=nianfo] .artifact{width:min(520px,100%);height:clamp(350px,55dvh,560px);aspect-ratio:auto;touch-action:none;cursor:grab;overscroll-behavior:contain;border-radius:8px;background:radial-gradient(ellipse at 50% 42%,#2b3740,#172027);margin:20px auto 12px}
body[data-blessing=nianfo] .artifact:active{cursor:grabbing}
body[data-blessing=nianfo] .artifact>svg{width:80%;height:80%;inset:10%;position:absolute}
.beads-hint{font-size:13px;line-height:1.8;color:var(--b-muted);margin:8px auto}
body.beads-focused{overflow:hidden}
body.beads-focused .ritual-stage{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 54% 40%,#2b3740,#141d23);color:#eed5ae;--b-ink:#eed5ae;--b-muted:#c4b9a8;--b-line:#758087;--b-accent:#eed5ae;padding:0;overflow:auto}
body.beads-focused .artifact{width:100%;height:100dvh;margin:0;border-radius:0;background:none}
body.beads-focused #beads-focus{position:absolute;left:max(20px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));border:1px solid #758087;border-radius:30px;padding:10px 20px;background:#202a30;color:#eee4d3}
body.beads-focused .progress{position:absolute;bottom:100px;left:28px;margin:0;font-size:32px;pointer-events:none}
body.beads-focused .chant-label{position:absolute;top:90px;left:28px;font-size:18px;pointer-events:none}
body.beads-focused .beads-hint{position:absolute;bottom:28px;left:28px;right:28px;pointer-events:none}
body.beads-focused .ritual-actions{position:absolute;bottom:48px;right:28px;max-width:50%}
body.beads-focused #primary-action,body.beads-focused #auto-action,body.beads-focused #storage-note,body.beads-focused .session-status{display:none}
body.beads-focused #total{position:absolute;bottom:77px;left:28px;pointer-events:none}
body.beads-focused #new-session{background:#263138;color:#eed5ae;border:1px solid #758087;border-radius:24px}
@media(max-width:600px){body.beads-focused .chant-label{top:80px;left:20px;font-size:15px}body.beads-focused .progress{left:20px;bottom:112px;font-size:26px}body.beads-focused #total{left:20px;bottom:88px}body.beads-focused .beads-hint{font-size:12px;left:20px;bottom:24px}}
