:root{--page-bg: #f6f7f9;--card-bg: #ffffff;--card-line: #e7e9ee;--text: #1f2430;--text-soft: #6b7280;--badge-bg: #eef2ff;--badge-text: #4338ca;--red: #ef4444;--red-deep: #dc2626;--blue: #3b82f6;--blue-deep: #2563eb;--green: #22c55e;--green-deep: #16a34a}body{font-family:var(--sans);background:var(--page-bg);color:var(--text);height:100dvh;overflow:hidden;display:flex;flex-direction:column;text-align:center}.top{position:relative;display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 16px 8px;flex-shrink:0;min-height:calc(62px + env(safe-area-inset-top))}.date-wrap{display:contents}.date-navigation{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:2px;margin:0;flex-shrink:0}.verse-nav{display:inline-flex;align-items:center;justify-content:center;width:36px;height:44px;flex-shrink:0;border-radius:12px;color:var(--text-soft);touch-action:manipulation}.verse-nav:hover:not(:disabled){background:var(--badge-bg)}.verse-nav:focus-visible{outline:2px solid var(--badge-text)}.verse-nav:disabled{opacity:.3;cursor:default}#date{font-size:17px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}#title-badge{min-width:0;max-width:min(260px,calc((100vw - 440px)/2));font-size:clamp(13px,3.6vw,15px);font-weight:700;color:var(--badge-text);background:var(--badge-bg);padding:3px 12px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-controls{margin-left:auto;display:flex;gap:6px;flex-shrink:0}.font-size-btn{font-size:1.4rem;width:2.2rem;height:2.2rem;border-radius:12px;border:1px solid var(--card-line);background:var(--card-bg);color:var(--text-soft);font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 2px #1418220f;transition:transform .1s ease,background .2s}.font-size-btn:active{transform:scale(.94);background:#f1f3f6}.verse-main{flex:1;min-height:0;display:flex;width:100%;max-width:720px;margin:0 auto;padding:6px 20px 10px;overflow-y:auto}.verse-card{margin:auto;width:100%}.verse-heading{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:14px}.verse-refresh{position:absolute;left:calc(100% + 2px);flex:0 0 36px;width:36px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;color:#9ca3af;background:transparent;touch-action:manipulation}.verse-refresh:hover{background:var(--badge-bg)}.verse-refresh:focus-visible{outline:2px solid var(--badge-text)}.verse-refresh:disabled{opacity:.5;cursor:wait}@media(max-width:760px){#title-badge{display:none}.top{gap:4px;padding-inline:10px}.date-navigation{gap:0}#date{font-size:15px}.verse-nav,.verse-refresh{width:28px;flex-basis:28px}.font-controls{gap:2px}.top .sync-btn,.font-size-btn{width:32px;height:44px}}@media(max-width:360px){.verse-nav,.verse-refresh{width:24px;flex-basis:24px}.font-size-btn{width:26px}}.verse-ref{display:block;font-size:clamp(15px,4vw,19px);font-weight:700;color:var(--badge-text);min-width:0;overflow-wrap:anywhere;word-break:keep-all}.verse-ref:empty{display:none}.verse-body{font-family:"Noto Serif KR",Georgia,serif;font-weight:700;line-height:1.75;word-break:keep-all;white-space:pre-line;text-wrap:pretty}.dock{position:sticky;bottom:0;width:100%;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:#ffffffd1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--card-line);display:flex;flex-direction:column;align-items:center;gap:10px}.counter{font-size:48px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.button-row{display:flex;justify-content:center;gap:10px;width:100%;max-width:480px}.btn{font-size:1.15rem;font-weight:700;color:#fff;padding:.7rem 1rem;flex:1;border:none;border-radius:16px;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,box-shadow .15s ease}.btn:active{transform:scale(.97)}.btn-reset{background:var(--red);box-shadow:0 4px 14px #ef44444d}.btn-reset:active{background:var(--red-deep)}.btn-lang{background:var(--blue);box-shadow:0 4px 14px #3b82f64d}.btn-lang:active{background:var(--blue-deep)}.btn-share{background:#fee500;color:#191919;box-shadow:0 4px 14px #fee5004d}.btn-share:active{background:#f2d900}.btn-share:disabled{opacity:.6;cursor:wait}.btn-increase{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:var(--green);box-shadow:0 4px 14px #22c55e59;font-size:1.35rem;padding:.85rem 1rem}.btn-increase:active{background:var(--green-deep)}@media(max-width:390px){.btn{font-size:1rem;padding:.6rem .8rem}.counter{font-size:42px}}.fx-emoji{position:fixed;bottom:-48px;font-size:var(--size, 28px);z-index:1000;pointer-events:none;animation:fx-emoji-rise var(--dur, 2.2s) ease-out forwards}@keyframes fx-emoji-rise{15%{opacity:1}to{transform:translateY(-75vh) rotate(var(--rot, 20deg));opacity:0}}.counter.fx-pulse{animation:fx-pulse .6s ease}@keyframes fx-pulse{30%{transform:scale(1.35);color:var(--green-deep)}}.fx-ripple{position:fixed;width:40px;height:40px;margin:-20px 0 0 -20px;border:3px solid var(--green);border-radius:50%;pointer-events:none;z-index:900;animation:fx-ripple .7s ease-out forwards}@keyframes fx-ripple{to{transform:scale(5);opacity:0}}.fx-balloon{position:fixed;bottom:-140px;z-index:1000;pointer-events:none;animation:fx-rise var(--dur, 5s) ease-in forwards}@keyframes fx-rise{to{transform:translateY(calc(-100vh - 200px))}}.fx-balloon-body{position:relative;width:var(--size, 48px);height:calc(var(--size, 48px) * 1.22);background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.65),transparent 45%),var(--color, #ef4444);border-radius:50%/55% 55% 45% 45%;animation:fx-sway 1.6s ease-in-out infinite alternate}.fx-balloon-body:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);width:2px;height:calc(var(--size, 48px) * .9);background:#7878828c}@keyframes fx-sway{0%{transform:translate(-12px) rotate(-5deg)}to{transform:translate(12px) rotate(5deg)}}@keyframes backgroundFlash{0%{background-color:var(--page-bg)}25%{background-color:#add8e6}50%{background-color:#90ee90}75%{background-color:#ffb6c1}to{background-color:var(--page-bg)}}.background-flash{animation:backgroundFlash 3s ease-in-out}.goal-progress{display:flex;align-items:center;gap:10px;width:100%;max-width:480px}.goal-bar{flex:1;height:8px;border-radius:999px;background:var(--card-line);overflow:hidden}.goal-fill{height:100%;width:0%;border-radius:999px;background:var(--green);transition:width .25s ease,background .4s ease}.goal-text{font-size:13px;font-weight:700;color:var(--text-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.goal-progress.goal-done .goal-fill{background:#f59e0b}.goal-progress.goal-done .goal-text{color:#d97706}.toast{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:1100;background:#1f2430eb;color:#fff;font-size:14px;font-weight:600;padding:9px 18px;border-radius:999px;white-space:nowrap;pointer-events:none}.toast-in{animation:toast-in .3s ease}@keyframes toast-in{0%{transform:translate(-50%,-14px);opacity:0}}.done-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#1f243073;padding:24px}.done-card{background:var(--card-bg);border-radius:24px;padding:28px 24px;text-align:center;max-width:340px;width:100%;box-shadow:0 12px 40px #00000040;animation:card-in .35s cubic-bezier(.2,1.4,.5,1)}@keyframes card-in{0%{transform:scale(.7);opacity:0}}.done-emoji{font-size:52px;margin-bottom:6px}.done-card h2{font-size:21px;margin-bottom:14px}.done-line{font-size:14.5px;line-height:1.55;margin-bottom:8px;color:var(--text);word-break:keep-all}.done-strong{font-size:17px;font-weight:700;color:#d97706}.done-soft{color:var(--text-soft);font-size:13px}.done-hook{white-space:pre-line;font-weight:700;color:var(--badge-text);margin-top:12px}.done-btn{width:100%;margin-top:14px;background:var(--green);box-shadow:0 4px 14px #22c55e59;padding:.8rem 1rem;font-size:1.1rem}.sync-controls{grid-column:1;grid-row:2;display:flex}.sync-btn{font-size:1.1rem;width:2.2rem;height:2.2rem;border-radius:12px;border:1px solid var(--card-line);background:var(--card-bg);display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 2px #1418220f;transition:transform .1s ease,background .2s;filter:grayscale(1);opacity:.6}.sync-btn.sync-on{filter:none;opacity:1;background:#fee500;border-color:#f2d900}.sync-btn:active{transform:scale(.94)}.done-sync-btn{width:100%;margin-top:14px;background:#fee500;color:#191919;box-shadow:0 4px 14px #fee50073;padding:.8rem 1rem;font-size:1.05rem}.done-sync-btn+.done-btn{margin-top:10px}#title-badge{cursor:pointer}.stats-card{max-width:360px;max-height:calc(100dvh - 48px);overflow-y:auto}.stats-card h2{margin-bottom:16px}.stats-tree{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:10px}.stats-tree-emoji{font-size:56px;line-height:1.1}.stats-tree-label{font-size:13px;font-weight:700;color:var(--text-soft)}.stats-title-line{font-size:13.5px;font-weight:700;color:var(--badge-text);margin-bottom:14px;word-break:keep-all}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.stats-grid>div{background:var(--page-bg);border:1px solid var(--card-line);border-radius:14px;padding:10px 6px;display:flex;flex-direction:column;gap:2px}.stats-grid b{font-size:17px;font-variant-numeric:tabular-nums}.stats-grid span{font-size:12px;color:var(--text-soft)}.stats-level{margin-bottom:12px}.stats-level-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;font-weight:700;margin-bottom:6px}.stats-level-head span:last-child{color:var(--text-soft);font-weight:600}.stats-today{font-size:13.5px;color:var(--text-soft);margin-bottom:4px}.stats-today b{color:var(--text);font-variant-numeric:tabular-nums}.stats-sync-msg{font-size:13px;color:var(--text-soft);line-height:1.55;white-space:pre-line;margin:12px 0 4px;word-break:keep-all}.stats-kakao{margin-top:8px}.stats-logout{font-size:12.5px;color:var(--text-soft);text-decoration:underline;margin-top:10px;padding:4px}.stats-crosslink{display:flex;align-items:center;gap:10px;text-align:left;background:var(--page-bg);border:1px solid var(--card-line);border-radius:14px;padding:10px 14px;margin-top:14px;text-decoration:none;color:var(--text);transition:transform .08s ease}.stats-crosslink:active{transform:scale(.98)}.stats-crosslink+.stats-crosslink{margin-top:8px}.crosslink-emoji{font-size:24px}.crosslink-text{flex:1;display:flex;flex-direction:column;gap:1px}.crosslink-text b{font-size:14px}.crosslink-text small{font-size:12px;color:var(--text-soft);word-break:keep-all}.crosslink-arrow{font-size:20px;color:var(--text-soft)}.stats-account-actions{display:flex;justify-content:center;gap:18px}.leaderboard-open{display:flex;justify-content:space-between;align-items:center;width:100%;margin:12px 0;padding:14px;border:1px solid var(--card-line);border-radius:14px;background:var(--badge-bg);color:var(--badge-text);font-weight:700;text-align:left}.leaderboard-card{max-width:420px;max-height:calc(100dvh - 48px);overflow-y:auto;padding:24px 18px}.leaderboard-description,.leaderboard-note,.leaderboard-summary{font-size:13px;color:var(--text-soft);line-height:1.6;word-break:keep-all}.leaderboard-summary{margin:10px 0}.leaderboard-mine{padding:12px;margin-bottom:12px;border-radius:12px;background:var(--badge-bg);color:var(--badge-text);font-size:14px;font-weight:700}.leaderboard-status{font-size:14px;line-height:1.6;margin:12px 0;word-break:keep-all}.leaderboard-status:empty{display:none}.leaderboard-list{list-style:none;text-align:left}.leaderboard-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px 8px;border-bottom:1px solid var(--card-line);font-size:14px}.leaderboard-row.is-me{background:var(--badge-bg);border-radius:8px}.leaderboard-rank{color:var(--badge-text);font-weight:700}.leaderboard-name{overflow-wrap:anywhere}.leaderboard-row strong{font-variant-numeric:tabular-nums;font-size:13px}.leaderboard-note{margin-top:14px;font-size:12px}.leaderboard-actions{display:flex;gap:10px;margin-top:14px}.leaderboard-actions .done-btn{margin-top:0}.leaderboard-refresh{flex:1;border:1px solid var(--card-line);border-radius:16px;font-weight:700;color:var(--text-soft)}.leaderboard-refresh:disabled{opacity:.5;cursor:wait}.leaderboard-open:focus-visible,.leaderboard-refresh:focus-visible{outline:2px solid var(--badge-text);outline-offset:2px}.login-progress{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:24px;background:#1f243073}.login-progress-card{width:100%;max-width:320px;padding:28px 20px;border-radius:24px;background:var(--card-bg);box-shadow:0 12px 40px #00000040}.login-progress-card p{margin:16px 0 8px;font-weight:700}.login-progress-hint{font-size:14px;color:var(--text-soft)}.login-spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--card-line);border-top-color:#d2ad00;border-radius:50%;animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login-spinner{animation:none}}
