:root{
  --night:#10151d; --glass:rgba(22,28,38,.72); --glass-line:rgba(236,230,216,.16);
  --ink:#ece6d8; --mute:#a3abb8; --lantern:#f2a65a; --dancheong:#3f8f7d; --paper:#f3eee3; --wood:#6b4a32;
  --display:"Gowun Batang","Nanum Myeongjo",serif;
  --body:"Gowun Dodum","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --st:env(safe-area-inset-top,0px); --sb:env(safe-area-inset-bottom,0px);
  --sl:max(12px,env(safe-area-inset-left,0px)); --sr:max(12px,env(safe-area-inset-right,0px));
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;position:fixed;inset:0;width:100%;background:var(--night);color:var(--ink);font-family:var(--body);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
button{font:inherit;color:inherit;cursor:pointer;border:0}
button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--lantern);outline-offset:2px}
input{font:inherit;color:var(--ink);background:rgba(0,0,0,.3);border:1px solid var(--glass-line);border-radius:12px;padding:11px 13px;min-width:0}
[hidden]{display:none!important}

.gate{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow-y:auto;background:radial-gradient(circle at 50% 30%,rgba(242,166,90,.12),transparent 55%),rgba(10,13,19,.82);backdrop-filter:blur(6px);padding:24px var(--sr) 24px var(--sl)}
.gate-card{width:min(360px,100%);display:flex;flex-direction:column;gap:10px;text-align:center}
.eyebrow{margin:0;letter-spacing:.3em;font-size:.72rem;color:var(--lantern)}
.gate h1{font-family:var(--display);font-size:2.6rem;margin:0;font-weight:700}
.lead{margin:0 0 10px;color:var(--mute);line-height:1.6}
.gate label{font-size:.85rem;color:var(--mute);text-align:left}
.primary{background:var(--lantern);color:#2a1a0c;font-weight:700;border-radius:14px;padding:13px 18px}
.hint{font-size:.78rem;color:var(--mute);margin:8px 0 0}

.top{position:fixed;left:0;right:0;top:var(--vvt,0px);z-index:12;display:flex;justify-content:space-between;gap:8px;padding:calc(var(--st) + 10px) var(--sr) 0 var(--sl);pointer-events:none}
.chip-group{display:flex;gap:6px}
.chip{pointer-events:auto;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(10px);border-radius:999px;padding:8px 13px;font-size:.88rem;white-space:nowrap}
.chip.plain{pointer-events:none;font-variant-numeric:tabular-nums}
.chip.on{background:var(--dancheong);border-color:var(--dancheong)}
.place-tag{position:fixed;left:50%;top:calc(var(--st) + var(--vvt,0px) + 58px);transform:translateX(-50%);z-index:9;font-family:var(--display);font-size:.95rem;background:var(--glass);border:1px solid var(--glass-line);border-radius:999px;padding:4px 14px;pointer-events:none}
.toasts{position:fixed;left:var(--sl);right:var(--sr);top:calc(var(--st) + var(--vvt,0px) + 122px);z-index:11;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}
.toast{pointer-events:auto;background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--glass-line);border-radius:999px;padding:6px 8px 6px 14px;font-size:.85rem;display:flex;align-items:center;gap:8px;animation:tfade 5s forwards;max-width:100%}
.toast span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toast button{background:var(--lantern);color:#2a1a0c;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}
.toast.solo{padding-right:14px}
@keyframes tfade{0%{opacity:0;transform:translateY(-6px)}8%,85%{opacity:1;transform:none}100%{opacity:0}}

.bottom{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;flex-direction:column;gap:8px;padding:0 var(--sr) calc(var(--sb) + 12px) var(--sl);pointer-events:none}
.saying{margin:0 auto;max-width:30em;text-align:center;font-family:var(--display);font-size:.98rem;text-shadow:0 1px 6px #000;min-height:1.4em;text-wrap:balance}
.actions{pointer-events:auto;align-self:center;display:flex;gap:4px;background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--glass-line);border-radius:24px;padding:6px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.act{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:8px 8px 6px;border-radius:18px;background:transparent;font-size:.8rem}
.act i{font-style:normal;font-size:1.3rem;line-height:1}
.act:active{background:rgba(255,255,255,.08)}
.act.hot{background:rgba(242,166,90,.18)}
.places{pointer-events:auto;display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.places button{background:rgba(16,21,29,.55);border:1px solid var(--glass-line);border-radius:999px;padding:5px 11px;font-size:.8rem;color:var(--mute)}
.places button.here{color:var(--ink);border-color:var(--lantern)}

.panel{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:rgba(0,0,0,.45);padding:calc(var(--st) + 16px) var(--sr) calc(var(--sb) + 16px) var(--sl)}
.panel-card{width:min(440px,100%);max-height:100%;overflow:auto;background:rgba(28,34,45,.92);backdrop-filter:blur(14px);border:1px solid var(--glass-line);border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:12px}
.panel-head{display:flex;justify-content:space-between;align-items:center}
.panel h2{font-family:var(--display);margin:0;font-size:1.3rem}
.close{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08)}
.muted{color:var(--mute);font-size:.86rem;margin:0}
.room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.room-list button{text-align:left;background:rgba(255,255,255,.05);border:1px solid var(--glass-line);border-radius:14px;padding:12px}
.room-list button b{display:block;font-family:var(--display)}
.room-list button small{color:var(--mute);font-variant-numeric:tabular-nums}
.room-list button.cur{border-color:var(--lantern)}
.room-list button:disabled{opacity:.45}
.sliders{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center}
input[type=range]{padding:0;accent-color:var(--lantern);background:none;border:0}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.stats div{background:rgba(0,0,0,.25);border-radius:12px;padding:8px 10px}
.stats small{display:block;color:var(--mute);font-size:.72rem}
.stats b{font-family:var(--display);font-size:1.2rem;font-variant-numeric:tabular-nums}
.row{display:flex;gap:8px}.row input{flex:1}
.wish-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow:auto}
.wish-list li{background:rgba(0,0,0,.25);border-left:3px solid var(--lantern);border-radius:8px;padding:7px 11px;font-size:.9rem;overflow-wrap:anywhere}
.wish-list small{color:var(--mute);margin-left:6px}
.wish-list li.off{opacity:.62;border-left-style:dashed}
.wish-list li.mine{background:rgba(255,220,140,.08)}
.wish-list .wk{font-size:.74rem;font-weight:700;margin-right:6px;white-space:nowrap}
.wish-list .lit-tag{font-size:.72rem;margin-left:6px;color:var(--mute)}
.kind-pick{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.kind-pick button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:14px;background:rgba(0,0,0,.25);border:1.5px solid transparent;color:var(--ink);font-size:.78rem;line-height:1.2}
.kind-pick button i{font-style:normal;font-size:1.3rem}
.kind-pick button.on{border-color:var(--kc);background:color-mix(in srgb,var(--kc) 22%,transparent)}
.kind-desc{margin-top:-4px}
.kind-stats{display:flex;flex-wrap:wrap;gap:6px;font-size:.78rem;color:var(--mute)}
.kind-stats span{background:rgba(0,0,0,.22);border-radius:999px;padding:4px 9px}
.my-lantern{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(242,166,90,.12);border:1px solid rgba(242,166,90,.35);border-radius:14px;padding:10px 12px;font-size:.86rem}
.my-lantern .bar{flex:1;height:6px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:6px}
.my-lantern .bar i{display:block;height:100%;background:var(--lantern)}
.my-lantern button{flex:none;background:var(--lantern);color:#2a1a0c;font-weight:700;border-radius:999px;padding:8px 12px;font-size:.8rem}

.beads-screen{position:fixed;inset:0;z-index:40;background:var(--paper);color:#3a2a1c;display:grid;place-items:center}
.beads-screen .back{position:absolute;left:var(--sl);top:calc(var(--st) + 12px);background:#fff;border:1px solid #ddd2bf;border-radius:999px;padding:9px 16px;color:#3a2a1c}
.bead-ring{position:relative;width:min(78vw,360px);aspect-ratio:1;max-width:100%;cursor:pointer;touch-action:manipulation}
.bead{position:absolute;width:13%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#f3c99a,#c98a4f 55%,#8a5530);box-shadow:0 3px 6px rgba(80,40,10,.3);transition:left .25s ease,top .25s ease}
.bead.head{background:radial-gradient(circle at 35% 30%,#8fd0bf,#3f8f7d 60%,#24584c);width:16%}
.bead-count{position:absolute;left:calc(var(--sl) + 14px);bottom:calc(var(--sb) + 26px);font-size:.9rem;color:#6b5a48}
.bead-count b{font-family:var(--display);font-size:3rem;color:#3a2a1c;line-height:1}
@media (prefers-reduced-motion:reduce){.toast{animation:none}.bead{transition:none}}

.look-box{display:flex;flex-direction:column;gap:10px;text-align:left}
.look-row small{display:block;color:var(--mute);font-size:.78rem;margin-bottom:5px}
.look-opts{display:flex;flex-wrap:wrap;gap:6px}
.look-opt{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);border:1px solid var(--glass-line);border-radius:999px;padding:6px 11px;font-size:.84rem}
.look-opt.on{border-color:var(--lantern);background:rgba(242,166,90,.18)}
.look-opt .sw{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}
.gate-card .look-box{margin:2px 0 6px}

.ghost-btn{background:transparent;border:1px solid var(--glass-line);border-radius:14px;padding:11px 16px;color:var(--ink)}
.hud{position:fixed;left:var(--sl);top:calc(var(--st) + var(--vvt,0px) + 56px);z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(10px);border-radius:14px;padding:7px 11px;font-size:.78rem;min-width:118px;text-align:left}
.hud-top b{color:var(--lantern);font-family:var(--display)}
.hud-top{font-variant-numeric:tabular-nums}
.hud-bar{display:block;width:100%;height:4px;border-radius:4px;background:rgba(255,255,255,.12);overflow:hidden}
.hud-bar i{display:block;height:100%;width:0;background:var(--lantern);transition:width .4s}
.hud-mission{color:var(--mute);font-size:.72rem}
.chat-btn{position:fixed;right:var(--sr);bottom:calc(var(--sb) + 150px);z-index:11;width:48px;height:48px;border-radius:50%;background:var(--glass);border:1px solid var(--glass-line);backdrop-filter:blur(10px);font-size:1.3rem}
.chat-panel{position:fixed;left:var(--sl);right:var(--sr);bottom:calc(var(--sb) + 150px);z-index:20;max-width:440px;margin-left:auto;background:rgba(28,34,45,.94);backdrop-filter:blur(14px);border:1px solid var(--glass-line);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:8px}
.chat-head{display:flex;justify-content:space-between;align-items:center}
.chat-head .mini{background:rgba(255,255,255,.08);border-radius:999px;padding:4px 10px;font-size:.76rem;margin-left:6px}
.chat-log{list-style:none;margin:0;padding:0;max-height:22vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:.86rem}
.chat-log li{overflow-wrap:anywhere}
.chat-log b{color:var(--mute);font-weight:400;font-size:.78rem}
.chat-log li.mine b{color:var(--lantern)}
.mission-list,.title-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mission-list li{background:rgba(0,0,0,.25);border-radius:10px;padding:9px 12px;display:flex;align-items:center;gap:4px}
.mission-list li small{margin-left:auto;color:var(--mute);font-variant-numeric:tabular-nums}
.mission-list li.done{opacity:.7}
.title-list{flex-direction:row;flex-wrap:wrap}
.title-list li{border:1px solid var(--glass-line);border-radius:999px;padding:4px 10px;font-size:.8rem;color:var(--mute)}
.title-list li.got{color:var(--ink);border-color:var(--lantern)}
.sub-h{font-family:var(--display);font-size:1rem;margin:4px 0 0}
.install-how{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;line-height:1.5}
.look-opt.locked{opacity:.5}
@media (max-width:430px){.top .chip{padding:7px 10px;font-size:.82rem}.chip-group{gap:4px}}

.dice{padding:0 14px;font-size:1.2rem}
.group-banner{position:fixed;left:50%;bottom:calc(var(--sb) + 222px);transform:translateX(-50%);z-index:10;background:rgba(242,166,90,.92);color:#2a1a0c;font-weight:700;border-radius:999px;padding:6px 14px;font-size:.85rem;white-space:nowrap}
.rec-exit{display:none}
body.rec .top,body.rec .bottom,body.rec .hud,body.rec .chat-btn,body.rec .place-tag,body.rec .toasts,body.rec .group-banner{display:none!important}
body.rec .rec-exit{display:block;position:fixed;right:0;top:0;width:80px;height:80px;z-index:60;background:transparent}
.act{min-width:58px}
.act{white-space:nowrap}
.act{min-width:auto;padding:8px 9px 6px}

.emo-btn{bottom:calc(var(--sb) + 206px)}
.emo-bar{position:fixed;right:calc(var(--sr) + 56px);bottom:calc(var(--sb) + 200px);z-index:21;display:flex;gap:4px;background:rgba(28,34,45,.94);border:1px solid var(--glass-line);border-radius:18px;padding:6px;flex-wrap:wrap;max-width:calc(100vw - 90px)}
.emo-opt{display:flex;flex-direction:column;align-items:center;background:transparent;border-radius:12px;padding:5px 7px;min-width:46px}
.emo-opt span{font-size:1.4rem;line-height:1}.emo-opt small{font-size:.68rem;color:var(--mute)}
.emo-opt:active{background:rgba(255,255,255,.08)}
.menu-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.menu-item{display:flex;gap:8px;align-items:center;text-align:left;background:rgba(255,255,255,.05);border:1px solid var(--glass-line);border-radius:14px;padding:10px}
.menu-item.ate{border-color:rgba(242,166,90,.5)}
.mi-emo{font-size:1.6rem}.mi-txt{display:flex;flex-direction:column;min-width:0}.mi-txt b{font-size:.9rem}.mi-txt small{color:var(--mute);font-size:.72rem;line-height:1.3}

.giwa-preview{align-self:center;width:150px;height:96px;border-radius:50% 50% 10px 10px / 30% 30% 10px 10px;background:linear-gradient(90deg,#2a2e33,#4f565f 50%,#2a2e33);display:grid;place-items:center;padding:10px 14px;box-shadow:inset 0 -6px 10px rgba(0,0,0,.35)}
.giwa-preview span{font-family:"Gowun Batang",serif;color:#f4efe2;text-align:center;font-size:.95rem;line-height:1.35;overflow-wrap:anywhere}

.yk-box{display:flex;flex-direction:column;gap:8px;background:rgba(0,0,0,.2);border-radius:16px;padding:12px}
.yk-preview{position:relative;width:180px;height:180px;align-self:center;margin:4px 0}
.yk-bead,.yk-letter{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.4)}
.yk-letter{background:#f6f1e6;color:#2a1a0c;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:.85rem;font-family:"Gowun Dodum",sans-serif}
.yk-box .row .ghost-btn{padding:10px 12px}
.room-now{grid-column:1/-1;display:flex;align-items:baseline;justify-content:center;gap:6px;padding:14px;border-radius:16px;background:rgba(242,166,90,.12);border:1px solid rgba(242,166,90,.3)}
.room-now b{font-size:2.2rem;font-family:var(--display);color:var(--lantern);font-variant-numeric:tabular-nums}
.room-names{grid-column:1/-1;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;max-height:40vh;overflow:auto}
.room-names li{background:rgba(0,0,0,.25);border-radius:999px;padding:5px 11px;font-size:.84rem}
.room-names li:first-child{color:var(--lantern)}

.pray-box{position:fixed;left:50%;transform:translateX(-50%);top:calc(var(--st) + 132px);width:min(420px,calc(100% - 24px));z-index:9;background:rgba(16,21,29,.62);backdrop-filter:blur(8px);border:1px solid var(--glass-line);border-radius:20px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;text-align:center}
.pray-head{display:flex;flex-direction:column;gap:2px}.pray-head b{font-family:var(--display);font-size:1rem}.pray-head small{color:var(--mute);font-size:.76rem}
.pray-lines{display:flex;flex-direction:column;gap:4px;min-height:7.4em}
.pray-lines .pl{color:rgba(236,230,216,.4);font-size:.9rem;font-family:var(--display);line-height:1.35}
.pray-lines .pl.cur{color:var(--ink);font-size:1.28rem;font-weight:700}
.pray-lines .pl.head{color:var(--lantern);font-size:.82rem;letter-spacing:.1em}
.pray-lines .pl.cur.head{font-size:1rem}
.pray-lines .pl span.done{color:var(--gold,#f5c542)}
.pray-lines .pl span.now{color:#fff;text-shadow:0 0 12px rgba(255,214,120,.9)}
.pray-box .primary{padding:10px 14px}
.fade-out{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .35s;z-index:40}.fade-out.on{opacity:1}
body.rec .pray-box{display:none!important}
.pray-box.compact{padding:8px 12px;gap:4px}.pray-box.compact .pray-lines{min-height:4.6em}.pray-box.compact .pl:first-child,.pray-box.compact .pl:last-child{display:none}.pray-box.compact .primary{display:none}

.yk-bead{cursor:pointer;transition:transform .15s}.yk-bead.sel{outline:3px solid #fff;outline-offset:2px;transform:scale(1.15)}
.yk-zod{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;display:grid;place-items:center;font-size:1.25rem;background:radial-gradient(circle at 35% 30%,#fff3c4,#d9a83a);box-shadow:0 2px 6px rgba(0,0,0,.45)}
.yk-zod.hanja{font-family:"Gowun Batang",serif;font-weight:700;color:#5a1e10;font-size:1.1rem}
.yk-mode .look-opt{flex:1;justify-content:center}
.mini-all{align-self:flex-start;padding:7px 12px;font-size:.82rem}
#ykZodiac .look-opt{font-size:.82rem}
.bead-mine{position:absolute;right:calc(var(--sr) + 14px);top:calc(var(--st) + 14px);background:rgba(255,255,255,.7);border:1px solid rgba(90,60,30,.25);border-radius:999px;padding:8px 14px;color:#3a2a1c;font-size:.86rem;z-index:2}
.bead-ring.custom .bead{width:15%;display:grid;place-items:center}
.bead-ring.custom .bead.yk-letter{border-radius:16%;width:12%;background:#f6f1e6;color:#2a1a0c;font-weight:800;font-size:clamp(.9rem,4.5vw,1.4rem);margin:0;height:auto;aspect-ratio:1}
.bead-ring.custom .bead.yk-zod{width:19%;height:auto;aspect-ratio:1;margin:0;font-size:clamp(1.3rem,7vw,2.2rem)}
.bead-ring.custom .bead.yk-zod.hanja{font-size:clamp(1.2rem,6vw,2rem)}

/* 개인 법당 기도문: 작고 은은하게 */
.pray-box.compact{top:calc(var(--st) + var(--vvt,0px) + 118px);width:min(340px,calc(100% - 40px));background:rgba(12,16,24,.42);border-color:rgba(236,230,216,.1);padding:7px 12px}
.pray-box.compact .pray-head b{font-size:.84rem;font-weight:400;opacity:.85}.pray-box.compact .pray-head small{font-size:.7rem}
.pray-box.compact .pray-lines{min-height:3.4em;gap:2px}.pray-box.compact .pl{font-size:.78rem}.pray-box.compact .pl.cur{font-size:1.02rem}

.credits{font-size:.78rem;color:var(--mute)}.credits summary{cursor:pointer;padding:6px 0}.credits ul{margin:4px 0 6px;padding-left:18px;display:flex;flex-direction:column;gap:4px}
/* English mode · share card */
.gate-card{position:relative}
.lang-btn{position:absolute;top:-6px;right:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:var(--ink,#ece6d8);border-radius:999px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer}
.en-only{display:none}
html[lang=en] .en-only{display:block}
.romaji{margin:-6px 0 2px;color:#d9b44a;letter-spacing:.06em;font-size:14px}
.pl.rom{font-size:12px;opacity:.7;letter-spacing:.02em;font-style:italic;margin-top:-2px}
.share-view{position:fixed;inset:0;z-index:80;background:rgba(5,8,14,.86);display:flex;align-items:center;justify-content:center;padding:16px}
.share-view[hidden]{display:none}
.share-card{display:flex;flex-direction:column;gap:10px;align-items:center;max-width:360px;width:100%}
.share-card img{width:100%;max-height:68vh;object-fit:contain;border-radius:14px}
.share-card .row{display:flex;gap:8px;width:100%}
.share-card .row>*{flex:1;text-align:center;text-decoration:none}
/* 석굴암 좌선 숨 고르기 */
.breath-box{position:fixed;left:50%;top:calc(var(--vvt,0px) + 21%);transform:translate(-50%,-50%);z-index:30;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.breath-box[hidden]{display:none}
.breath-ring{width:70px;height:70px;border-radius:50%;border:2px solid rgba(255,236,200,.85);background:radial-gradient(circle,rgba(255,230,190,.28),rgba(255,230,190,.04) 70%);box-shadow:0 0 30px rgba(255,220,170,.35);transition:transform 4s ease-in-out}
.breath-ring.big{transform:scale(2.1)}
.breath-text{margin:56px 0 0;font-family:"Gowun Batang",serif;font-size:20px;color:#fff3dc;text-shadow:0 1px 8px rgba(0,0,0,.6);letter-spacing:.2em}
.breath-count{margin:4px 0 0;font-size:12px;color:rgba(255,243,220,.7)}
/* 장경판전 경판 카드 */
.verse-card{position:fixed;left:50%;top:calc(var(--vvt,0px) + 40%);transform:translate(-50%,-50%);z-index:60;width:min(340px,calc(100% - 32px));display:flex;flex-direction:column;gap:10px}
.verse-card[hidden]{display:none}
.verse-board{background:linear-gradient(180deg,#3a2a1c,#241911);border:2px solid #5a4430;border-radius:6px;padding:22px 20px 16px;box-shadow:0 10px 30px rgba(0,0,0,.55),inset 0 0 30px rgba(0,0,0,.5);text-align:center}
.verse-han{margin:0 0 12px;font-family:"Gowun Batang",serif;font-size:34px;letter-spacing:.3em;color:#e9d9b4;text-shadow:0 2px 0 #120c08,0 -1px 0 rgba(255,240,210,.15)}
.verse-text{margin:0;font-family:"Gowun Batang",serif;font-size:16px;line-height:1.75;color:#f4ead6}
.verse-src{margin:10px 0 0;font-size:12px;color:rgba(244,234,214,.6)}
.verse-card .row{display:flex;gap:8px}.verse-card .row>*{flex:1}
.lang-pick{display:flex;align-self:center;gap:0;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:3px;background:rgba(255,255,255,.06);margin-bottom:4px}
.lang-pick button{border:0;background:none;color:rgba(236,230,216,.75);font:inherit;font-size:14px;padding:7px 18px;border-radius:999px;cursor:pointer}
.lang-pick button.on{background:#f5c542;color:#1a1408;font-weight:700}
/* 지도 */
.places button[data-z]{display:none}
.places .map-open{background:rgba(16,21,29,.6);border:1px solid var(--lantern);color:var(--ink);border-radius:999px;padding:7px 18px;font-size:.88rem}
.map-card{max-width:440px}
.map-box{width:100%;aspect-ratio:92/120;max-height:66vh;margin:6px auto 0;border-radius:14px;overflow:hidden;background:#2e3a2a}
.map-box svg{width:100%;height:100%;display:block}
.map-box .mk{cursor:pointer}
.map-box .mk circle{fill:#f3e6c4;stroke:#2a1a0c;stroke-width:.4}
.map-box .mk.here circle{fill:#f5c542}
.map-box .mk text{font-size:3.1px;fill:#fff8e8;paint-order:stroke;stroke:rgba(10,14,20,.85);stroke-width:.9px;font-family:"Gowun Dodum",sans-serif;text-anchor:middle}
.map-box .lbl{font-size:2.6px;fill:rgba(255,248,232,.55);text-anchor:middle;font-family:"Gowun Dodum",sans-serif}
.map-box .me{fill:#ffd447;stroke:#fff;stroke-width:.5}
.map-box .me-ring{fill:none;stroke:#ffd447;stroke-width:.4;animation:mePulse 1.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes mePulse{from{transform:scale(1);opacity:.9}to{transform:scale(3);opacity:0}}
.title-list li.now{color:var(--lantern);font-weight:700}
.title-list li small{opacity:.6;font-size:.75em}
.rank-now{margin:2px 0 6px;font-family:"Gowun Batang",serif;font-size:1.05rem;color:var(--lantern)}
.rank-bar{height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-bottom:12px}
.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,#c9932f,#f5c542);border-radius:999px;transition:width .6s}
/* 템플스테이 */
.ts-card h3{margin:16px 0 8px;font-size:.95rem;color:var(--lantern)}
.ts-goals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ts-goals button{background:rgba(255,255,255,.06);border:1px solid var(--glass-line);border-radius:14px;padding:10px 4px;color:var(--ink);font:inherit;font-weight:700;display:flex;flex-direction:column;gap:2px;align-items:center}
.ts-goals button small{font-weight:400;font-size:.72rem;color:var(--mute)}
.ts-goals button.on{border-color:var(--lantern);background:rgba(245,197,66,.14)}
.ts-goals button.locked{opacity:.45}
.ts-label{display:block;margin:12px 0 6px;font-size:.82rem;color:var(--mute)}
#tsVow{width:100%;box-sizing:border-box;min-height:64px;border-radius:12px;border:1px solid var(--glass-line);background:rgba(0,0,0,.25);color:var(--ink);padding:10px;font:inherit;resize:none;margin-bottom:10px}
#tsStart{width:100%}
.ts-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ts-badge{text-align:center;padding:10px 4px;border-radius:14px;background:rgba(255,255,255,.05);font-size:.78rem;color:var(--mute)}
.ts-badge b{display:block;font-size:1.6rem;filter:grayscale(1);opacity:.4}
.ts-badge.got{color:var(--ink);background:rgba(245,197,66,.12)}.ts-badge.got b{filter:none;opacity:1}
.ts-report{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ts-report div{background:rgba(255,255,255,.05);border-radius:12px;padding:8px 10px;font-size:.78rem;color:var(--mute)}
.ts-report div b{display:block;font-size:1.05rem;color:var(--ink)}
.ts-log{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;max-height:160px;overflow:auto}
.ts-log li{background:rgba(255,255,255,.05);border-radius:10px;padding:8px 10px;font-size:.82rem}
.ts-log li small{display:block;color:var(--mute);font-size:.72rem}
.ts-tut{margin-top:14px}.ts-tut summary{cursor:pointer;color:var(--lantern);font-weight:700}
.ts-tut ol{padding-left:18px;font-size:.84rem;line-height:1.6}.ts-tut li b{display:block}
.ts-hud{position:fixed;left:50%;top:calc(var(--vvt,0px) + 120px);transform:translateX(-50%);z-index:25;width:min(340px,calc(100% - 32px));text-align:center;background:rgba(10,14,22,.62);border:1px solid rgba(245,197,66,.35);border-radius:18px;padding:12px 14px;backdrop-filter:blur(6px)}
.ts-hud[hidden]{display:none}
.ts-word{margin:0;font-family:"Gowun Batang",serif;font-size:2rem;color:#f5c542;letter-spacing:.2em;transition:opacity .3s}
.ts-line{margin:2px 0 8px;font-size:.84rem;color:var(--ink);min-height:1.2em}
.ts-path{display:flex;align-items:center;gap:8px}.ts-path-bar{flex:1;height:8px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.ts-path-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#c9932f,#f5c542);transition:width .5s}
.ts-path span{font-size:.78rem;color:var(--mute);min-width:76px;text-align:right}
.ts-stage{margin:6px 0 4px;font-size:.78rem;color:#bfe8ff}
.ts-hud-btns{display:flex;gap:8px;justify-content:center}.ts-hud-btns button{background:rgba(255,255,255,.08);border:1px solid var(--glass-line);color:var(--ink);border-radius:999px;padding:4px 12px;font:inherit;font-size:.78rem}
.ts-lamp{position:fixed;inset:0;z-index:90;background:radial-gradient(circle at 50% 42%,rgba(255,200,90,.35),rgba(6,8,14,.92) 60%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.ts-lamp[hidden]{display:none}
.ts-lamp-glow{width:150px;height:170px;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 50% 40%,#fff6d6,#f5c542 45%,#c9761f 80%);box-shadow:0 0 80px 30px rgba(255,200,90,.55);animation:lampPulse 2.4s ease-in-out infinite}
@keyframes lampPulse{50%{box-shadow:0 0 120px 50px rgba(255,200,90,.7);transform:scale(1.04)}}
.ts-lamp-title{margin:28px 0 8px;font-family:"Gowun Batang",serif;font-size:1.5rem;color:#fff3dc}
.ts-lamp-vow{margin:0 0 22px;color:#f4ead6;line-height:1.7;max-width:320px}
/* 첫 수행 안내 */
.coach{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 178px);z-index:40;width:min(300px,calc(100% - 96px));background:rgba(12,16,26,.88);border:1px solid rgba(245,197,66,.55);border-radius:16px;padding:10px 14px 12px;box-shadow:0 8px 24px rgba(0,0,0,.45);backdrop-filter:blur(6px)}
.coach[hidden]{display:none}
.coach-top{display:flex;justify-content:space-between;align-items:center}
.coach-top small{color:var(--lantern);font-weight:700}
.coach-top button{background:none;border:0;color:var(--mute);font:inherit;font-size:.78rem;text-decoration:underline}
.coach p{margin:6px 0 8px;color:var(--ink);font-size:.92rem;line-height:1.5}
.coach .primary{width:100%;padding:8px}
#actions button.coach-hi{position:relative;outline:2px solid #f5c542;border-radius:14px;animation:coachPulse 1.2s ease-in-out infinite}
@keyframes coachPulse{50%{box-shadow:0 0 0 6px rgba(245,197,66,.35)}}

/* 내 연등 보러 가기 */
.my-go{display:block;width:100%;margin:10px 0 2px}
.my-go[hidden]{display:none}
.map-box .mk-mine{cursor:pointer}
.map-box .mk-mine text{font-size:3.2px;fill:#ffe6a0;text-anchor:middle;font-weight:700;paint-order:stroke;stroke:#2a1a0c;stroke-width:.6px}
.map-box .mk-mine .core{fill:#f5c542;stroke:#fff6d0;stroke-width:.4}
.map-box .mk-mine .pulse{fill:none;stroke:#f5c542;stroke-width:.5;animation:mkpulse 1.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes mkpulse{from{transform:scale(.6);opacity:1}to{transform:scale(2.2);opacity:0}}
.act i .mok-ic{width:1.6rem;height:1.6rem;margin:-.15rem 0;display:inline-block;vertical-align:middle}
.gate-about a{color:var(--mute);text-decoration:underline;text-underline-offset:3px}
