:root{--bg:#f4f5fb;--surface:#ffffff;--surface-2:#f7f8fc;--ink:#1d2333;--muted:#5f6b82;--line:#dde2ef;--red:#de1a1a;--red-soft:#fde6e4;--amber:#d78521;--amber-soft:#fbedda;--gold:#f2d398;--gold-ink:#8a5a12;--gold-soft:#fbf1dc;--slate:#acbed8;--slate-ink:#3d5578;--slate-soft:#e8ebf7;--on-red:#ffffff;--cloud-art:#d78521;--cloud-opacity:0.32;--sun:#f2d398;--sun-hi:#fbecc9;--sun-glow:rgba(242,211,152,0.45);--hill1:#dce3f0;--hill2:#c9d4e7;--hill3:#acbed8;--shadow:0 1px 2px rgba(29,35,51,0.04),0 8px 24px rgba(29,35,51,0.06);--radius:18px;--font:var(--font-body),var(--font-tc),"PingFang TC","Microsoft JhengHei",system-ui,sans-serif;color-scheme:light}[data-theme=dark]{--bg:#10141d;--surface:#171e2c;--surface-2:#1c2435;--ink:#eef1f8;--muted:#9aa6bd;--line:#2a3449;--red:#ff5148;--red-soft:#3a1b1e;--amber:#f0a352;--amber-soft:#382817;--gold:#f2d398;--gold-ink:#f2d398;--gold-soft:#33301f;--slate:#acbed8;--slate-ink:#c3d1e6;--slate-soft:#1f2a3f;--on-red:#1a0d0d;--cloud-art:#f2d398;--cloud-opacity:0.16;--sun:#e9dcc0;--sun-hi:#fbf6ea;--sun-glow:rgba(242,233,210,0.18);--hill1:#151c2a;--hill2:#1a2335;--hill3:#222d44;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.35);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.5;min-height:100vh}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.sr{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0)}.backdrop,.sr{overflow:hidden}.backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none}.bd-sun{right:7%;bottom:calc(18vh + 10px);width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 40% 38%,var(--sun-hi),var(--sun) 70%);box-shadow:0 0 80px 20px var(--sun-glow)}.bd-c,.bd-sun{position:absolute}.bd-c{opacity:var(--cloud-opacity);animation:drift ease-in-out infinite alternate}.bd-cloudart{fill:var(--cloud-art)}.bd-scene{position:absolute;left:0;bottom:0;width:100%;height:22vh;min-height:130px}.bd-hill1{fill:var(--hill1)}.bd-hill2{fill:var(--hill2)}.bd-hill3{fill:var(--hill3);opacity:.6}@keyframes drift{0%{transform:translateX(-24px)}to{transform:translateX(28px)}}@media (max-width:640px){.hide-m{display:none}.bd-sun{width:96px;height:96px;right:6%}}@media (prefers-reduced-motion:reduce){.anim *,.bd-c,.modal,.modal-back,.modal-figure{animation:none!important}.m-birthday .egg-top,.m-birthday .spark{display:none}}.wrap{max-width:1060px;margin:0 auto;padding:16px 16px 120px}.top{justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0 18px}.brand,.top{display:flex;align-items:center}.brand{gap:14px}.seal{width:52px;height:52px;flex:none}.seal rect{fill:var(--red)}.seal text{fill:var(--on-red);font-size:26px;font-family:var(--font)}.seal text,h1{font-weight:700}h1{margin:0;font-size:clamp(22px,4.8vw,32px);letter-spacing:.02em;line-height:1.15}.brand p{margin:2px 0 0;color:var(--muted);font-size:14px}.top-actions{display:flex;gap:8px}.btn,.top-actions{align-items:center}.btn{display:inline-flex;justify-content:center;gap:6px;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px;font-weight:500;transition:transform .12s,box-shadow .12s,background .12s}.btn:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.btn.icon{width:40px;height:40px;padding:0;font-size:20px}.btn.small{padding:6px 12px;font-size:13px;margin-top:8px}.btn.primary{background:var(--red);color:var(--on-red);border-color:var(--red)}.btn.primary.alt{background:var(--amber);border-color:var(--amber)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:14px 0;box-shadow:var(--shadow)}.panel h2{margin:0 0 10px;font-size:17px;font-weight:700}.panel h2 small{font-size:13px;color:var(--muted);font-weight:400}.muted{margin:4px 0 8px;font-size:14px}.empty,.muted{color:var(--muted)}.empty{margin:6px 0}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:240px}.field.grow{flex:1 1;min-width:220px}.field input,.field select{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font-size:15px}.field input:focus,.field select:focus{outline:2px solid var(--gold);outline-offset:1px}.results{border-top:4px solid var(--gold)}.res-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.res{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:10px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);border-left:4px solid var(--red)}.res:hover{border-color:var(--slate)}.res.on{background:var(--gold-soft)}.res.past{opacity:.55}.res[data-type=attained],.res[data-type=enlightenment]{border-left-color:var(--amber)}.res[data-type=ascension],.res[data-type=ceremony],.res[data-type=descent]{border-left-color:var(--slate)}.res[data-type=festival]{border-left-color:var(--gold)}.res-date{flex:none;width:44px;display:flex;flex-direction:column;align-items:center;line-height:1.05}.res-date b{font-size:22px}.res-date small{font-size:11px;color:var(--muted);text-transform:uppercase}.res-main{flex:1 1;display:flex;flex-direction:column;min-width:0}.res-title{font-weight:700;font-size:16px}.res-title i{font-style:normal;margin-right:6px}.res-sub{font-size:13px;color:var(--muted)}.res-when{flex:none;font-size:12px;font-weight:500;color:var(--red);background:var(--red-soft);padding:3px 10px;border-radius:999px}.bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;margin:18px 0 12px}.tabs{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px}.tab{border:0;background:none;padding:7px 18px;border-radius:999px;font-size:14px;font-weight:500}.tab.on{background:var(--ink);color:var(--bg)}.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.heading{min-width:160px;text-align:center;font-size:17px;font-weight:700}.month{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.dow-row,.week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.dow-row span{text-align:center;padding:9px 0;font-size:12px;font-weight:500;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em}.cell{position:relative;min-height:100px;padding:6px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;text-align:left;display:flex;flex-direction:column;gap:3px;overflow:hidden}.cell:nth-child(7){border-right:0}.cell:hover{background:var(--surface-2)}.cell.out{opacity:.38}.cell.sel{box-shadow:inset 0 0 0 2px var(--gold);background:var(--gold-soft)}.cell-head{display:flex;justify-content:space-between;align-items:baseline;gap:4px}.num{font-weight:700;font-size:14px;min-width:24px;height:24px;display:inline-grid;place-items:center}.cell.today .num{background:var(--red);color:var(--on-red);border-radius:999px}.lun{font-size:10.5px;color:var(--muted)}.chip{font-size:11.5px;line-height:1.3;padding:2px 6px;border-radius:6px;background:var(--red-soft);color:var(--red);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-weight:500}.chip[data-type=attained],.chip[data-type=enlightenment]{background:var(--amber-soft);color:var(--amber)}.chip[data-type=ascension],.chip[data-type=ceremony],.chip[data-type=descent]{background:var(--slate-soft);color:var(--slate-ink)}.chip[data-type=festival]{background:var(--gold-soft);color:var(--gold-ink)}.dot-m{display:none;gap:3px;margin-top:auto;justify-content:center}.dot-m i{width:6px;height:6px;border-radius:50%;background:var(--red);display:block}.dot-m i[data-type=attained],.dot-m i[data-type=enlightenment]{background:var(--amber)}.dot-m i[data-type=ascension],.dot-m i[data-type=ceremony],.dot-m i[data-type=descent]{background:var(--slate)}.dot-m i[data-type=festival]{background:var(--gold)}.year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}.mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.mini-title{border:0;background:none;font-size:15px;font-weight:700;margin-bottom:6px;padding:0}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;text-align:center}.dow{font-size:10px;color:var(--muted)}.mday{border:0;background:none;padding:3px 0;border-radius:8px;font-size:12px}.mday.out{visibility:hidden}.mday.has{background:var(--red);color:var(--on-red);font-weight:700}.mday.has[data-type=attained],.mday.has[data-type=enlightenment]{background:var(--amber)}.mday.has[data-type=ascension],.mday.has[data-type=ceremony],.mday.has[data-type=descent]{background:var(--slate);color:#1d2333}.mday.has[data-type=festival]{background:var(--gold);color:#5a3b0c}.mday.today{outline:2px solid var(--ink)}.card{display:flex;gap:14px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);margin:8px 0}.avatar{flex:none;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:26px;font-weight:700;background:var(--red);color:var(--on-red)}.card[data-type=attained] .avatar,.card[data-type=enlightenment] .avatar{background:var(--amber)}.card[data-type=ascension] .avatar,.card[data-type=ceremony] .avatar,.card[data-type=descent] .avatar{background:var(--slate);color:#1d2333}.card[data-type=festival] .avatar{background:var(--gold);color:#5a3b0c}.card-body{min-width:0}.card-body h4{margin:0;font-size:19px;font-weight:700}.card-body p{margin:2px 0;font-size:13.5px}.py{color:var(--muted);letter-spacing:.01em}.tid{font-weight:500}.meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 6px!important}.badge{font-size:12px;font-weight:500;padding:3px 10px;border-radius:999px;background:var(--red-soft);color:var(--red)}.badge[data-type=attained],.badge[data-type=enlightenment]{background:var(--amber-soft);color:var(--amber)}.badge[data-type=ascension],.badge[data-type=ceremony],.badge[data-type=descent]{background:var(--slate-soft);color:var(--slate-ink)}.badge[data-type=festival]{background:var(--gold-soft);color:var(--gold-ink)}.badge.plates{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.alias,.rite{color:var(--muted)}.week-list{display:grid;grid-gap:10px;gap:10px}.day{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}.day.today{border-color:var(--red)}.day h3{margin:0 0 4px;font-size:15px}.day h3 small{color:var(--muted);font-weight:400}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px 12px;box-shadow:var(--shadow)}.month-h{margin:18px 0 4px;color:var(--red);font-size:17px;border-bottom:1px solid var(--line);padding-bottom:6px}.list-row{display:flex;gap:10px;align-items:flex-start}.list-row .card{flex:1 1}.list-date{flex:none;width:44px;margin-top:14px;text-align:center;display:flex;flex-direction:column;line-height:1.1}.list-date b{font-size:24px}.list-date span{font-size:12px;color:var(--muted)}.list-row.today .list-date b{color:var(--red)}.check{display:flex;align-items:center;gap:8px;margin:6px 0 12px;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--red)}.dl-buttons{display:flex;flex-wrap:wrap;gap:10px}details{margin-top:12px;font-size:14px;color:var(--muted)}summary{cursor:pointer;color:var(--ink);font-weight:500}.foot{margin-top:28px;text-align:center;color:var(--muted);font-size:12px;display:grid;grid-gap:10px;gap:10px;justify-items:center}@media (max-width:640px){.cell{min-height:60px;padding:4px 2px}.cell,.cell-head{align-items:center}.cell-head{flex-direction:column;gap:0}.chip{display:none}.dot-m{display:flex}.lun{font-size:9px}.heading{min-width:0;flex:1 1}.nav,.tabs{width:100%}.tabs{justify-content:space-between}.tab{flex:1 1;padding:7px 0}.avatar{width:44px;height:44px;font-size:21px}.res{gap:10px}.res-when{display:none}.field{min-width:100%}}@media print{.backdrop,.bar,.download,.filters,.foot,.results,.top-actions{display:none}}.card[role=button]{cursor:pointer;transition:border-color .15s,transform .15s}.card[role=button]:hover{border-color:var(--slate);transform:translateY(-1px)}.modal-back{position:fixed;inset:0;z-index:50;background:rgba(16,20,29,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;animation:fade-in .18s ease-out}.modal{position:relative;width:min(440px,100%);max-height:calc(100vh - 32px);overflow:auto;border-radius:24px;box-shadow:0 24px 60px rgba(0,0,0,.35);animation:pop-in .25s cubic-bezier(.2,.9,.3,1.2)}.modal,.modal-x{background:var(--surface)}.modal-x{position:absolute;top:12px;right:12px;z-index:2}.modal-art{position:relative;height:270px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,var(--red-soft),var(--surface))}.modal[data-type=attained] .modal-art,.modal[data-type=enlightenment] .modal-art{background:linear-gradient(180deg,var(--amber-soft),var(--surface))}.modal[data-type=ascension] .modal-art,.modal[data-type=ceremony] .modal-art,.modal[data-type=descent] .modal-art{background:linear-gradient(180deg,var(--slate-soft),var(--surface))}.modal[data-type=festival] .modal-art{background:linear-gradient(180deg,var(--gold-soft),var(--surface))}.modal-cloud{position:absolute;width:70%;left:-12%;top:8%;fill:var(--cloud-art);opacity:.25;animation:drift 14s ease-in-out infinite alternate}.modal-figure{width:250px;height:250px;position:relative;animation:pop-in .35s ease-out}.modal-figure svg{width:100%;height:100%;overflow:visible}.modal-tabs{display:flex;gap:6px;padding:10px 16px 0;flex-wrap:wrap}.modal-tabs .tab{border:1px solid var(--line);font-size:13px}.modal-body{padding:14px 22px 22px}.modal-body h2{margin:2px 0 0;font-size:28px;font-weight:700;letter-spacing:.02em}.modal-body .py{margin:0;font-size:15px}.modal-body .tid{margin:2px 0 0;font-weight:500}.modal-body .meta{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}.modal-body .rite{color:var(--muted);font-size:13.5px;margin:4px 0}.modal-date{margin:0;font-size:12px;color:var(--muted);letter-spacing:.02em}.bio{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:14.5px;line-height:1.65}.avatar.big{width:140px;height:140px;font-size:64px;border-radius:32px}.logo{flex:none;filter:drop-shadow(0 4px 10px rgba(222,26,26,.25))}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(8px)}}.anim .floaty{animation:floaty 3.2s ease-in-out infinite alternate}@keyframes floaty{to{transform:translateY(-7px)}}.m-birthday .figure{animation:hatch-fig 6s ease-in-out infinite;transform-origin:120px 200px}.m-birthday .egg-top{animation:hatch-top 6s ease-in-out infinite;transform-origin:120px 150px}.m-birthday .egg-bottom{animation:hatch-bottom 6s ease-in-out infinite;transform-origin:120px 228px}.m-birthday .spark{animation:twinkle 6s ease-in-out infinite}@keyframes hatch-fig{0%,30%{opacity:0;transform:translateY(40px) scale(.6)}40%{opacity:1;transform:translateY(-10px) scale(1.05)}47%,86%{opacity:1;transform:none}94%,to{opacity:0;transform:translateY(40px) scale(.6)}}@keyframes hatch-top{0%{transform:none;opacity:1}6%{transform:rotate(-6deg)}12%{transform:rotate(6deg)}18%{transform:rotate(-7deg)}24%{transform:rotate(6deg)}30%{transform:rotate(0);opacity:1}40%{transform:translate(-40px,-80px) rotate(-40deg);opacity:.9}48%,92%{transform:translate(-50px,-100px) rotate(-50deg);opacity:0}to{transform:none;opacity:1}}@keyframes hatch-bottom{0%{transform:none;opacity:1}6%{transform:rotate(-4deg)}12%{transform:rotate(4deg)}18%{transform:rotate(-5deg)}24%{transform:rotate(4deg)}30%{transform:none;opacity:1}44%{transform:scale(1.06);opacity:.55}54%,94%{transform:scale(1.12);opacity:0}to{transform:none;opacity:1}}@keyframes twinkle{0%,38%{opacity:0}45%,52%,70%{opacity:1}60%,78%,to{opacity:.2}}.m-attained .rays{animation:spin 14s linear infinite;transform-origin:120px 100px}.festival .glow,.m-attained .glow{animation:glow 2.6s ease-in-out infinite alternate;transform-origin:center;transform-box:fill-box}@keyframes spin{to{transform:rotate(1turn)}}@keyframes glow{0%{opacity:.55;transform:scale(.92)}to{opacity:1;transform:scale(1.06)}}.m-enlightenment .wing-l{animation:flap-l 1.6s ease-in-out infinite alternate,wing-in .8s ease-out both;transform-origin:92px 166px}.m-enlightenment .wing-r{animation:flap-r 1.6s ease-in-out infinite alternate,wing-in .8s ease-out both;transform-origin:148px 166px}.m-enlightenment .halo{animation:halo 2s ease-in-out infinite alternate,halo-in .9s ease-out both;filter:drop-shadow(0 0 6px #f2d398)}@keyframes flap-l{0%{rotate:0deg}to{rotate:12deg}}@keyframes flap-r{0%{rotate:0deg}to{rotate:-12deg}}@keyframes wing-in{0%{scale:0}}@keyframes halo{to{transform:translateY(-5px)}}@keyframes halo-in{0%{opacity:0;translate:0 -30px}}.ride-down{animation:ride-down 4s ease-in-out infinite}.ride-up{animation:ride-up 4s ease-in-out infinite}@keyframes ride-down{0%{transform:translateY(-60px);opacity:0}25%,80%{transform:none;opacity:1}to{transform:translateY(6px);opacity:0}}@keyframes ride-up{0%{transform:translateY(10px);opacity:0}20%,60%{transform:none;opacity:1}to{transform:translateY(-70px);opacity:0}}.festival .swing{animation:swing 2.4s ease-in-out infinite alternate}.festival .pulse{animation:pulse 1.8s ease-in-out infinite alternate}.festival .spark{animation:twinkle-soft 2s ease-in-out infinite alternate}.festival .bob{animation:bob 2.2s ease-in-out infinite alternate}.festival .wave{animation:wave 3s ease-in-out infinite alternate}.festival .steam path{animation:steam 2.4s ease-in-out infinite}.festival .drift{animation:drift 6s ease-in-out infinite alternate}.festival .flame{animation:flicker .9s ease-in-out infinite alternate;transform-origin:120px 130px}.festival .fall{animation:fall 6s linear infinite}@keyframes swing{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@keyframes pulse{to{transform:scale(1.06)}}@keyframes twinkle-soft{0%{opacity:.3}}@keyframes bob{to{transform:translateY(-6px) rotate(-1.5deg)}}@keyframes wave{to{transform:translateX(-20px)}}@keyframes steam{0%{opacity:0;transform:translateY(10px)}40%{opacity:.9}to{opacity:0;transform:translateY(-18px)}}@keyframes flicker{0%{transform:scale(1)}to{transform:scale(.92,1.08)}}@keyframes fall{0%{transform:translateY(-20px) rotate(0deg);opacity:0}10%{opacity:1}to{transform:translate(-30px,250px) rotate(240deg);opacity:.2}}.drawer-back{position:fixed;inset:0;z-index:60;background:rgba(16,20,29,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .18s ease-out}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(360px,88vw);display:flex;flex-direction:column;background:var(--surface);box-shadow:-12px 0 40px rgba(0,0,0,.3);animation:drawer-in .22s ease-out}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.drawer-body{flex:1 1;overflow:auto;padding:12px 16px}.drawer-list{display:flex;flex-direction:column;gap:6px}.drawer-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 12px;border:0;border-radius:14px;background:transparent;color:inherit;font:inherit;font-size:16px;text-align:left;cursor:pointer;text-decoration:none}.drawer-item:hover{background:var(--red-soft)}.drawer-text h2{margin:4px 0 8px;font-size:20px}.drawer-text h3{margin:18px 0 6px;font-size:15px}.drawer-text li,.drawer-text p{font-size:14px;line-height:1.6}.drawer-text ol{padding-left:20px;margin:6px 0}.drawer-foot{padding:12px 16px;border-top:1px solid var(--line);text-align:center;font-size:12px;opacity:.65}@keyframes drawer-in{0%{transform:translateX(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.drawer,.drawer-back{animation:none!important}}.top-actions{flex-wrap:wrap;justify-content:flex-end}.lang-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface)}.lang-switch a{padding:9px 12px;font-size:13px;font-weight:600;line-height:1}.lang-switch a.on{background:var(--red);color:var(--on-red)}.moon{vertical-align:-2px;flex:none}.lun{display:inline-flex;gap:3px}.lun,.moon-legend{align-items:center}.moon-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 4px 0;font-size:12.5px;color:var(--muted)}.moon-legend span{display:inline-flex;align-items:center;gap:5px}.mday[data-moon]{position:relative}.mday[data-moon]:after{content:"";position:absolute;top:1px;right:3px;width:5px;height:5px;border-radius:50%}.mday[data-moon=full]:after{background:#f2d398;box-shadow:0 0 0 1px #d78521}.mday[data-moon=new]:after{background:#2a3449;box-shadow:0 0 0 1px #acbed8}.drawer-btn{margin:4px 0 10px}.drawer-note{font-size:13px;color:var(--muted)}.top{position:-webkit-sticky;position:sticky;top:0;z-index:40;margin:-16px -16px 8px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid var(--line)}@media (max-width:640px){.top{flex-wrap:nowrap;gap:8px;padding-top:calc(8px + env(safe-area-inset-top));padding-bottom:8px}.brand{min-width:0;flex:1 1;gap:10px}.top .logo{width:36px;height:36px}.brand>div{min-width:0}.top h1{font-size:16px}.top .brand p,.top h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top .brand p{margin:0;font-size:11px}.top-actions{flex:none;flex-wrap:nowrap;gap:6px}.top .btn.icon{width:36px;height:36px;font-size:18px}.lang-switch a{padding:9px 8px;font-size:12px}.tabs{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;z-index:40;padding:5px;box-shadow:0 8px 28px rgba(0,0,0,.22);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.tab{padding:10px 0}.bar{margin-top:12px}.wrap{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}.drawer-back{z-index:100}@media (max-width:640px){.drawer{width:100%;animation:drawer-up .22s ease-out;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.drawer-head{padding:14px 16px}.drawer-item{padding:18px 12px;font-size:17px}}@keyframes drawer-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.top .lbl{display:none}@media (min-width:900px){.wrap{padding-top:20px}.top{top:14px;margin:0 0 20px;padding:14px 22px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surface) 82%,transparent);box-shadow:var(--shadow)}.top .logo{width:56px;height:56px}.top h1{font-size:30px;letter-spacing:.04em}.top .brand p{font-size:14px;letter-spacing:.02em}.top-actions{gap:10px}.top .btn.icon{width:auto;padding:0 16px;gap:8px;font-size:14px}.top .btn.icon .lbl{display:inline}.top .btn.icon:first-child{font-size:16px}.lang-switch a{padding:12px 15px;font-size:14px}}.ico{flex:none}.drawer-item{font-size:19px;font-weight:500;gap:14px;padding:16px 12px}.drawer-item .t{flex:1 1}.drawer-item .ico{color:var(--red)}.drawer-item .ico:last-child:not(:first-child){color:var(--muted)}.drawer-head strong{font-size:20px}.drawer-text h2{font-size:24px}.drawer-text h3{font-size:17px}.drawer-text li,.drawer-text p{font-size:16px}.drawer-note{display:flex;align-items:center;gap:6px;font-size:15px}.btn .ico,.drawer-btn .ico{vertical-align:-3px}@media (max-width:640px){.drawer-item{font-size:21px;padding:20px 12px}.drawer-text li,.drawer-text p{font-size:17px}}html[lang=en] :is(h1,h2,h3,h4,.month-h,.modal-body h2,.heading,.drawer-head strong),html[lang=id] :is(h1,h2,h3,h4,.month-h,.modal-body h2,.heading,.drawer-head strong){font-family:var(--font-head),var(--font-tc),"PingFang TC","Microsoft JhengHei",system-ui,sans-serif}.bd-c{opacity:calc(var(--cloud-opacity) * .7)}.bd-cloudart{stroke:var(--bg);stroke-width:1.6px;vector-effect:non-scaling-stroke;paint-order:stroke fill;stroke-linejoin:round}:root{--glass:color-mix(in srgb,var(--surface) 52%,transparent);--glass-2:color-mix(in srgb,var(--surface-2) 45%,transparent);--blur:blur(26px) saturate(1.3)}.btn,.card,.day,.dow-row span,.drawer,.lang-switch,.list,.mini,.modal,.month,.panel,.res,.tabs,.top{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.btn,.day,.lang-switch,.list,.mini,.month,.panel,.tabs,.top{background:var(--glass)}.card,.dow-row span,.res{background:var(--glass-2)}.btn.ghost{background:transparent}.drawer,.modal{background:color-mix(in srgb,var(--surface) 82%,transparent)}@media (max-width:640px){.tabs{background:var(--glass)}}.brand h1{font-family:var(--font-head),var(--font-tc),system-ui,sans-serif}