@font-face{font-family:Alegreya;src:url(fonts/alegreya-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya;src:url(fonts/alegreya-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;src:url(fonts/alegreya-latin-ext-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya;src:url(fonts/alegreya-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya Sans;src:url(fonts/alegreya-sans-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya Sans;src:url(fonts/alegreya-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya Sans;src:url(fonts/alegreya-sans-latin-ext-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya Sans;src:url(fonts/alegreya-sans-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--leaf:#ecd9ab;--leaf-d:#d7bc83;--leaf-e:#c7a466;--ink:#3a2414;--ink-m:#6b4a2e;--lacquer:#9e3b24;--lacquer-d:#7a2a18;--gold:#e0ad4c;--gold-d:#a8762b;--jade:#2f7d6d;--night:#1d120b;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--disp:Alegreya,Georgia,serif;--ui:"Alegreya Sans",system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--night);font-family:var(--ui);color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}#app canvas{display:block;touch-action:none}button{font:inherit;color:inherit;cursor:pointer}.hidden{display:none!important}.leaf{position:relative;background:repeating-linear-gradient(0deg,rgba(120,80,30,.07) 0 1px,transparent 1px 6px),linear-gradient(180deg,#f3e3bb,var(--leaf) 45%,var(--leaf-d));border:1.5px solid #8f6a3c;border-radius:26px/46px;box-shadow:0 12px 30px #14080061,inset 0 0 0 3px #fff8e159,inset 0 -6px 14px #8c5f282e}.leaf.holes:before,.leaf.holes:after{content:"";position:absolute;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#5a3b1f;box-shadow:0 0 0 2px #c9a46a,0 0 0 3px #5a3b1f59}.leaf.holes:before{left:12px}.leaf.holes:after{right:12px}.btn{background:linear-gradient(180deg,#b9492e,var(--lacquer) 55%,var(--lacquer-d));color:#fbecd0;border:2px solid var(--gold);border-radius:999px;padding:9px 20px;font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:.01em;box-shadow:0 3px #5b1e10,0 6px 14px #280a004d,inset 0 1px #ffdcaa66;transition:transform .08s,box-shadow .08s,filter .2s}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(2px);box-shadow:0 1px #5b1e10,inset 0 1px #ffdcaa66}.btn.jade{background:linear-gradient(180deg,#3d9887,var(--jade) 55%,#21594d);box-shadow:0 3px #163d35,0 6px 14px #001e144d,inset 0 1px #c8ffeb59}.btn.plain{background:linear-gradient(180deg,#f6e8c6,#e2c891);color:var(--ink);border-color:#a8814a;box-shadow:0 3px #8f6a3c,inset 0 1px #fff6dc}.btn.small{padding:6px 14px;font-size:15px}.btn:focus-visible,.medal:focus-visible,.round:focus-visible{outline:3px solid var(--gold);outline-offset:3px}#title{position:fixed;inset:0;z-index:50;background:var(--night) center/cover no-repeat;display:flex;align-items:flex-end;padding:0 max(16px,5vw) calc(7vh + var(--safe-b))}#title:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,18,11,.78),rgba(29,18,11,.35) 45%,transparent 70%),linear-gradient(0deg,rgba(29,18,11,.55),transparent 45%)}#title .card{position:relative;max-width:520px;color:#fbecd0}#title h1{margin:0;font-family:var(--disp);font-weight:700;font-size:clamp(56px,9vw,104px);line-height:.95;letter-spacing:.005em;text-shadow:0 3px 18px rgba(0,0,0,.45);color:#fff1d2}#title h1 span{color:var(--gold)}#title .pali{font-family:var(--disp);font-style:italic;font-size:18px;color:#f2cf8e;margin:10px 0 4px;opacity:.95}#title .sub{font-size:20px;line-height:1.4;margin:6px 0 22px;max-width:30ch;color:#f6e3bd}#title .play{font-size:22px;padding:13px 30px}#title .fine{font-size:14px;color:#e8cf9f;margin-top:16px;line-height:1.5}#title .fine a{color:var(--gold)}@media (max-width:640px){#title{align-items:flex-end}#title:before{background:linear-gradient(0deg,rgba(29,18,11,.85),rgba(29,18,11,.3) 60%,transparent)}#title .sub{font-size:17px}}#hud{position:fixed;inset:0;pointer-events:none;z-index:10}#hud>*{pointer-events:auto}#top{position:absolute;top:calc(10px + var(--safe-t));left:10px;right:10px;display:flex;gap:10px;align-items:flex-start;pointer-events:none}#top>*{pointer-events:auto}.spacer{flex:1}#lantern{display:flex;gap:4px;align-items:flex-end;padding:7px 16px 6px;border-radius:18px;background:linear-gradient(180deg,#28180cd1,#1d120bb8);border:1.5px solid var(--gold-d);box-shadow:0 6px 18px #0000004d,inset 0 1px #ffd28c40}#lantern .fl{display:flex;flex-direction:column;align-items:center;width:46px;opacity:.38;transition:opacity .9s,transform .9s}#lantern .fl svg{width:20px;height:28px}#lantern .fl small{font-family:var(--disp);font-style:italic;font-size:12px;color:#f2cf8e;height:14px;opacity:0;transition:opacity .9s}#lantern .fl.l1{opacity:.85}#lantern .fl.l2{opacity:1;transform:scale(1.14)}#lantern .fl.l1 small,#lantern .fl.l2 small{opacity:1}#lantern .fl.l2 svg{filter:drop-shadow(0 0 6px #ffc35a)}#clock{font-family:var(--disp);font-style:italic;font-size:15px;color:#f6e3bd;padding:8px 16px;border-radius:999px;background:#1d120b9e;border:1px solid rgba(224,173,76,.5);white-space:nowrap}.round{width:44px;height:44px;border-radius:50%;padding:0;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f7d78e,var(--gold) 45%,var(--gold-d));border:1.5px solid #6e4a1c;box-shadow:0 3px 8px #00000059,inset 0 1px #fff5d299}.round svg,.medal svg{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#quest{position:absolute;top:calc(74px + var(--safe-t));left:50%;transform:translate(-50%);width:min(500px,92vw);padding:9px 34px;display:flex;gap:12px;align-items:center;transition:opacity .3s}#quest .qi{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#56b4a1,var(--jade));box-shadow:0 0 0 2px var(--gold-d);flex:none}#quest b{display:block;font-family:var(--disp);font-size:18px;font-weight:700}#quest span{font-size:14px;color:var(--ink-m)}#quest .count{margin-left:auto;font-family:var(--disp);font-weight:700;font-size:15px;color:var(--lacquer)}#quest.pulse{animation:qp .7s}@keyframes qp{0%{transform:translate(-50%) scale(1)}40%{transform:translate(-50%) scale(1.04)}to{transform:translate(-50%) scale(1)}}#dock{position:absolute;bottom:calc(14px + var(--safe-b));left:50%;transform:translate(-50%);display:flex;gap:18px}.medal{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;padding:0;color:#fbecd0;font-family:var(--disp);font-size:13px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.7)}.medal i{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f7d78e,var(--gold) 45%,var(--gold-d));border:1.5px solid #6e4a1c;box-shadow:0 4px 10px #0006,inset 0 1px #fff5d299,inset 0 0 0 5px #6e4a1c2e}.medal i svg{width:28px;height:28px}.medal.on i{background:radial-gradient(circle at 35% 30%,#ffb066,#e2652f 50%,#9e3b24);box-shadow:0 0 18px #ff7828b3,inset 0 1px #ffdcb499}.medal.call i{animation:call 1.6s infinite}@keyframes call{0%,to{box-shadow:0 4px 10px #0006}50%{box-shadow:0 0 0 6px #e0ad4c73,0 4px 10px #0006}}#bubble{position:absolute;transform:translate(-50%,-100%);display:flex;gap:6px;pointer-events:auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}#bubble .pill{font-family:var(--disp);font-style:italic;background:#1d120bd1;color:#f6e3bd;border-radius:999px;padding:6px 14px;font-size:14px}#tag{position:absolute;transform:translate(-50%);background:#143c37d9;color:#c9fff0;font-family:var(--ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:11px;padding:4px 10px;border-radius:4px;pointer-events:none;white-space:nowrap;border:1px solid #6fe0c6;box-shadow:0 0 14px #6fe0c680}#lute{position:absolute;left:50%;bottom:calc(104px + var(--safe-b));transform:translate(-50%);width:min(540px,94vw);padding:12px 36px 14px}#lute .row{display:flex;align-items:center;gap:12px}#lute .lbl{font-family:var(--disp);font-style:italic;font-size:15px;color:var(--ink-m)}#lute .state{font-family:var(--disp);font-weight:700;font-size:17px;min-width:110px;text-align:right}#lute canvas{width:100%;height:46px;display:block;margin:6px 0}#lute .hold{flex:1;font-size:18px}#lute .hold.on{filter:brightness(1.15)}#lute .prog{height:6px;border-radius:99px;background:#78501e33;overflow:hidden;margin-top:10px}#lute .prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--jade),#5fbfa9)}#brushpad{position:absolute;left:50%;bottom:calc(104px + var(--safe-b));transform:translate(-50%);padding:12px 40px 14px;text-align:center;width:min(380px,92vw)}#brushpad b{font-family:var(--disp);font-size:18px}#brushpad .pad{width:132px;height:132px;margin:8px auto 4px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff4d8,#e6cc95);touch-action:none;position:relative;box-shadow:inset 0 0 0 2px #a8814a}#brushpad .pad svg{width:46px;height:46px;stroke:var(--ink-m);fill:none;stroke-width:1.6}#brushpad .ring{position:absolute;inset:-6px;border-radius:50%;-webkit-mask:radial-gradient(circle,transparent 63px,#000 64px);mask:radial-gradient(circle,transparent 63px,#000 64px)}#brushpad small{font-size:14px;color:var(--ink-m)}#talk{position:absolute;left:50%;bottom:calc(104px + var(--safe-b));transform:translate(-50%);width:min(600px,94vw);padding:16px 40px 14px;display:flex;gap:16px;align-items:flex-start}#talk .por{width:70px;height:70px;border-radius:50%;flex:none;background:radial-gradient(circle at 50% 60%,#ffe2a0,#e7b35a 60%,#a8762b);border:3px solid var(--gold-d);box-shadow:0 0 0 2px #f6dc9c,0 4px 10px #0000004d,0 0 22px #ffbe5a73;overflow:hidden;display:grid;place-items:end center}#talk .por img{width:92%;margin-bottom:-6%}#talk .who{font-family:var(--disp);font-style:italic;font-weight:700;font-size:15px;color:var(--lacquer)}#talk p{margin:4px 0 10px;font-family:var(--disp);font-size:18px;line-height:1.4;font-weight:500}#talk .row{display:flex;align-items:center;gap:8px}#talk .row .n{margin:0 auto;font-size:13px;color:var(--ink-m);letter-spacing:.2em}.veil{position:fixed;inset:0;background:radial-gradient(circle at 50% 45%,#1d120b40,#1d120ba6);z-index:30;display:grid;place-items:center;padding:16px;animation:fadein .35s}@keyframes fadein{0%{opacity:0}to{opacity:1}}.card{max-width:580px;width:100%;max-height:86vh;overflow:auto;padding:22px 42px 20px}.card h2{margin:2px 0 6px;font-family:var(--disp);font-size:26px;line-height:1.15}.card p{font-family:var(--disp);font-size:18px;line-height:1.45;margin:8px 0}.chip{display:inline-block;font-family:var(--ui);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1.5px solid currentColor;border-radius:4px;padding:2px 8px;margin:0 6px 6px 0;color:var(--jade)}.chip.later{color:#b5531f}.chip.asoka{color:#6b5a3e}.chip.canon{color:var(--jade)}.chip.earlier{color:#5a5a8a}.card .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.opts{display:grid;gap:8px;margin-top:10px}.opts .btn{text-align:left;border-radius:14px}.opts .btn.no{filter:grayscale(.8) opacity(.6)}.passage{max-width:660px}.passage .seg{margin:0 0 12px}.passage .pli{font-family:var(--disp);font-size:19px;line-height:1.5;color:#2c1a0d;font-weight:500}.passage .en{font-family:var(--disp);font-style:italic;font-size:16.5px;line-height:1.5;color:var(--ink-m)}.passage .ref{font-size:13.5px;color:var(--ink-m);border-top:1px solid rgba(120,80,30,.35);padding-top:10px;margin-top:8px;line-height:1.5}.passage a,.card a{color:var(--lacquer)}.mapcard{max-width:980px;padding:14px 22px 16px}.mapwrap{position:relative;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 2px #8f6a3c,0 4px 14px #00000040}.mapwrap img{display:block;width:100%}.pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;pointer-events:none}.pin b{background:#fbecd0f2;border:1px solid #8f6a3c;border-radius:999px;padding:2px 10px;font-family:var(--disp);font-size:14px;white-space:nowrap;box-shadow:0 2px 6px #00000040}.pin i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffb066,var(--lacquer));box-shadow:0 0 0 2px var(--gold),0 0 12px #ff8c3ccc;margin-top:3px}.pin.dim b{opacity:.75}.pin.dim i{background:#b9a27a;box-shadow:0 0 0 2px #8f6a3c}#fade{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,#fff7e0,#f2c97a 55%,#c98a3b);transition:opacity 1.5s}#fade.dark{background:#0b0704}#fade.on{opacity:1}#fade .t{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--disp);font-style:italic;font-size:clamp(30px,5vw,52px);color:var(--ink);letter-spacing:.08em;opacity:.8}#toast{position:absolute;left:50%;top:calc(140px + var(--safe-t));transform:translate(-50%);background:#1d120bdb;color:#f6e3bd;padding:9px 18px;border-radius:12px;border:1px solid rgba(224,173,76,.45);font-family:var(--disp);font-size:16px;opacity:0;transition:opacity .45s;pointer-events:none;max-width:min(560px,90vw);text-align:center}#toast.on{opacity:1}#boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--night);font:italic 22px Alegreya,Georgia,serif;color:#f2cf8e;z-index:100;transition:opacity .5s}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:560px){#clock{display:none}.medal i{width:50px;height:50px}#lantern .fl{width:32px}#lantern .fl small{display:none}#quest b{font-size:16px}#talk{padding:14px 26px}#talk .por{width:54px;height:54px}#talk p{font-size:16px}.card{padding:18px 26px}}
