:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-plum:#200b2b;--c-bronze:#472e12;--c-umber:#1e0f01;--c-forest:#051309;--c-ink:#0f0204;--c-wine:#5e1133;--c-text:#f7eef3;--c-text-2:#f7eef3b8;--c-text-3:#f7eef39e;--c-wine-glow:#ea7bad;--c-bronze-glow:#dca76a;--c-forest-glow:#6bc78a;--c-plum-glow:#cda0e3;--font-sans:"Segoe UI Variable Text", "Segoe UI", "SF Pro Text", system-ui, -apple-system, "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;--font-display:"Segoe UI Variable Display", "Segoe UI", "SF Pro Display", system-ui, "Microsoft JhengHei", "PingFang TC", "Noto Sans TC", sans-serif;--font-serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Noto Serif TC", "Songti TC", "PMingLiU", serif;--font-mono:"Cascadia Code", "JetBrains Mono", Consolas, "SFMono-Regular", Menlo, "Microsoft JhengHei", monospace;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-spring:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001);--dur-micro:.12s;--dur-fast:.16s;--dur:.24s;--dur-slow:.42s;--dur-page:.32s;--accent:var(--c-wine-glow);--focus:var(--c-plum-glow);--surface:#200b2b8c;--surface-strong:#200b2bc7;--surface-hover:#f7eef31a;--border:#f7eef324;--border-strong:#f7eef347;--shadow:0 24px 60px #0f02048c;--highlight:inset 0 1px 0 #f7eef314;--r-panel:28px;--r-tile:24px;--gutter:clamp(16px, 4vw, 40px);--sk-bg:linear-gradient(90deg, #f7eef30d 0%, #f7eef321 40%, #f7eef30d 80%)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-sans);color:var(--c-text);background:var(--c-ink);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.55;overflow-x:hidden}img,svg,video{max-width:100%;display:block}h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}[hidden]{display:none!important}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em}main,.site-header{width:100%;max-width:1360px;padding-inline:var(--gutter);margin-inline:auto}.page-clip{overflow-x:clip}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--c-text);color:var(--c-ink);border-radius:10px;padding:10px 16px;font-weight:600;position:absolute;top:-60px;left:16px}.skip-link:focus{top:12px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}.icon{width:1.25em;height:1.25em;fill:var(--icon-duo,var(--accent,currentColor));fill-opacity:var(--icon-duo-a,.32);stroke:none;flex:none}.icon-fill{--icon-duo:currentColor}.t-week{--tone:var(--c-wine-glow)}.t-month{--tone:var(--c-plum-glow)}.t-total{--tone:var(--c-bronze-glow)}.t-week .icon,.t-month .icon,.t-total .icon{color:var(--tone);--icon-duo:var(--tone);--icon-duo-a:.38}.spinner{border:2px solid #f7eef340;border-top-color:var(--accent);vertical-align:-.15em;border-radius:50%;width:1em;height:1em;margin-right:.5em;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@view-transition{navigation:auto;types:page}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}html:active-view-transition-type(page)::view-transition-old(root){animation:vt-page-out .18s var(--ease-in) both}html:active-view-transition-type(page)::view-transition-new(root){animation:vt-page-in var(--dur-page) var(--ease-out) both}::view-transition-group(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-standard)}::view-transition-old(*):only-child{animation:vt-fade-out .16s var(--ease-in) both}::view-transition-new(*):only-child{animation:vt-fade-in var(--dur) var(--ease-out) both}@keyframes vt-page-out{to{opacity:0;transform:scale(.99)}}@keyframes vt-page-in{0%{opacity:0;transform:scale(1.01)}}@keyframes vt-fade-out{to{opacity:0;transform:scale(.96)}}@keyframes vt-fade-in{0%{opacity:0;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fatal-banner{z-index:2147483647;color:var(--text,#f5ecf0f5);background:#5e1133f5;border-radius:14px;padding:14px 16px;position:fixed;inset:12px 12px auto;box-shadow:0 8px 30px #00000080}.fatal-banner .fatal-msg{word-break:break-word;opacity:.9;margin:6px 0 10px}.backdrop{z-index:-1;background:var(--c-ink);position:fixed;inset:0;overflow:hidden}.backdrop:before{content:"";will-change:transform;background:radial-gradient(40% 36% at 18% 22%,#5e1133f2,#0000 70%),radial-gradient(36% 40% at 78% 16%,#200b2b,#0000 72%),radial-gradient(34% 34% at 70% 72%,#472e12cc,#0000 70%),radial-gradient(40% 36% at 24% 80%,#051309,#0000 72%),radial-gradient(26% 26% at 50% 48%,#5e113380,#0000 70%);animation:30s ease-in-out infinite alternate aurora-drift;position:absolute;inset:-25%}.backdrop:after{content:"";background:linear-gradient(#0f02041a,#0f02048c);position:absolute;inset:0}@keyframes aurora-drift{0%{transform:translate(-4%,-2%)rotate(0)scale(1)}50%{transform:translate(3%,4%)rotate(6deg)scale(1.08)}to{transform:translate(5%,-3%)rotate(-4deg)scale(1.04)}}@media (prefers-reduced-motion:reduce){.backdrop:before{animation:none}}.glass{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow), var(--highlight);-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%)}.icon-btn{min-width:44px;min-height:44px;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:999px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-hover)}.icon-btn[aria-pressed=true]{background:var(--c-wine)}.btn{white-space:nowrap;min-height:44px;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur) var(--ease-out);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:0 1.15em;font-size:1rem;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.6}.btn-block{width:100%}.btn-sm{padding:0 1em;font-size:.9375rem}.btn-primary{background:var(--c-wine);color:var(--c-text);box-shadow:var(--highlight);border-color:#ea7bad66}.btn-primary:hover:not(:disabled){background:#781842;box-shadow:0 0 0 1px #ea7bad80,0 8px 32px #ea7bad59}.btn-glass{border-color:var(--border-strong);color:var(--c-text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f7eef314}.btn-glass:hover:not(:disabled){background:#f7eef329}.btn-ghost{border-color:var(--border);color:var(--c-text-2);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--c-text);background:var(--surface-hover)}.link-btn{text-underline-offset:3px;min-height:44px;color:var(--accent);text-decoration:underline}.btn .spinner{margin:0;display:none}.btn.is-loading .spinner{display:inline-block}.btn.is-loading>.icon{display:none}.btn .icon{width:1.2em;height:1.2em}input[type=email]{border:1px solid var(--border-strong);width:100%;min-height:52px;color:var(--c-text);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);background:#0f020480;border-radius:16px;padding:0 14px;box-shadow:inset 0 2px 8px #0f020466}input[type=email]:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--c-plum-glow)}input::placeholder{color:var(--c-text-3)}input[aria-invalid=true]{border-color:var(--c-wine-glow)}.field-error{color:var(--c-wine-glow);margin-top:6px;font-size:.875rem}.seg{box-shadow:var(--highlight);border-radius:999px;gap:2px;padding:4px;display:inline-flex}.seg button{min-height:44px;color:var(--c-text-2);transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:.9375rem;font-weight:600;display:inline-flex}.seg button:hover{background:var(--surface-hover);color:var(--c-text)}.seg button[aria-pressed=true]{background:var(--c-wine);color:var(--c-text);box-shadow:inset 0 0 0 1px #ea7bad8c,0 4px 16px #ea7bad40}.seg .icon{width:1.2em;height:1.2em}.chip{color:var(--c-text);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f020499;border-radius:999px;align-items:center;gap:6px;padding:3px 11px;font-size:.8125rem;font-weight:600;line-height:1.5;display:inline-flex}.chip .icon{--icon-duo:var(--c-plum-glow);--icon-duo-a:.45;width:1.15em;height:1.15em}.switch{min-height:44px;color:var(--c-text-2);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border-radius:999px;align-items:center;gap:10px;padding:0 12px 0 6px;font-size:.9375rem;font-weight:600;display:inline-flex}.switch:hover{background:var(--surface-hover);color:var(--c-text)}.switch-track{border:1px solid var(--border-strong);width:42px;height:26px;transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);background:#f7eef32e;border-radius:999px;flex:none;position:relative}.switch-thumb{background:var(--c-text);width:18px;height:18px;transition:transform var(--dur) var(--ease-spring);border-radius:50%;position:absolute;top:3px;left:3px}.switch[aria-pressed=true]{color:var(--c-text)}.switch[aria-pressed=true] .switch-track{background:var(--c-wine);border-color:#ea7bada6}.switch[aria-pressed=true] .switch-thumb{transform:translate(16px)}.switch:disabled{opacity:.55;cursor:not-allowed}.meta{align-items:center;gap:4px;display:inline-flex}.meta .icon{width:1.15em;height:1.15em;color:var(--c-text-2);--icon-duo:var(--c-plum-glow)}.site-header{z-index:20;margin-top:16px;padding-block:0;position:sticky;top:16px}.header-pill{border-radius:999px;justify-content:space-between;align-items:center;gap:12px;width:fit-content;min-width:min(100%,640px);max-width:100%;margin-inline:auto;padding:6px 10px 6px 20px;display:flex}.header-pill.is-brand-only{min-width:0;padding-right:20px}.brand{min-height:44px;font-family:var(--font-display);align-items:center;gap:8px;font-size:1.125rem;font-weight:700;display:inline-flex}.brand .icon{color:var(--c-wine-glow);--icon-duo-a:.4;width:1.5em;height:1.5em}.main-nav{gap:2px;display:flex}.main-nav a{min-height:44px;color:var(--c-text-2);white-space:nowrap;transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.9375rem;display:inline-flex}.main-nav a:hover{color:var(--c-text);background:var(--surface-hover)}.main-nav a[aria-current=page]{color:var(--c-text);background:#5e1133d9}.header-actions{gap:2px;display:flex}.header-actions .icon{width:1.4em;height:1.4em}.avatar{border:1px solid var(--border);background:#f7eef31a}.account{position:relative}.account-menu{z-index:30;width:min(280px, calc(100vw - 2 * var(--gutter)));background:var(--surface-strong);transform-origin:100% 0;animation:menu-in var(--dur) var(--ease-out) both;border-radius:20px;gap:10px;padding:16px;display:grid;position:absolute;top:calc(100% + 12px);right:0}.account-label{color:var(--c-text-3);font-size:.8125rem}.account-mail{overflow-wrap:anywhere;min-height:1.5em;font-size:.9375rem;font-weight:600}.sk-mail{width:150px;max-width:100%}.account-error{color:var(--c-wine-glow);font-size:.875rem}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}}@media (width<=960px){.main-nav a{padding:0 10px}}@media (width<=640px){.header-pill{border-radius:24px;flex-wrap:wrap;row-gap:2px;width:100%;min-width:0;padding:6px 8px 6px 14px}.header-pill.is-brand-only{width:fit-content;padding-right:16px}.main-nav{scrollbar-width:none;flex:1 0 100%;order:3;justify-content:space-between;overflow-x:auto}.main-nav a{padding:0 12px;font-size:.875rem}}.sk{background:var(--sk-bg);background-size:200% 100%;border-radius:10px;animation:1.4s linear infinite shimmer;display:block}.sk-circle{border-radius:50%;flex:none;width:42px;height:42px}.sk-line{height:12px}.sk-sm{height:9px}.sk-lg{height:18px}.sk-inline{vertical-align:middle;border-radius:6px;height:.9em;display:inline-block}.sk-num{width:3.4em}.sk-title{height:1.1em;margin-block:.1em;display:block}.w40{width:40%}.w50{width:50%}.w60{width:60%}.w70{width:70%}.w80{width:80%}.w90{width:90%}.poster{isolation:isolate;aspect-ratio:16/9;background:var(--ph,var(--c-plum));position:relative;overflow:hidden}.poster-img{object-fit:cover;width:100%;max-width:none;height:100%;transition:opacity var(--dur) var(--ease-out);position:absolute;inset:0}.poster.is-loading .poster-img,.poster.is-error .poster-img{opacity:0}.poster.is-loading:after{content:"";z-index:1;pointer-events:none;background:var(--sk-bg);background-size:200% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}.toast-region{inset-inline:0;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;pointer-events:none;justify-items:center;gap:8px;padding-inline:16px;display:grid;position:fixed}.toast{background:var(--surface-strong);pointer-events:auto;max-width:min(480px,100%);color:var(--c-text);animation:toast-in var(--dur) var(--ease-out) both;border-radius:999px;align-items:center;gap:12px;padding:10px 12px 10px 18px;font-size:.9375rem;display:flex}.toast.is-leaving{animation:toast-out .16s var(--ease-in) both}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}.input{border:1px solid var(--border-strong);width:100%;min-height:48px;color:var(--c-text);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);background:#0f020480;border-radius:16px;padding:10px 14px;line-height:1.5;display:block;box-shadow:inset 0 2px 8px #0f020466}.input:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--c-plum-glow)}.input[aria-invalid=true]{border-color:var(--c-wine-glow)}.input-area{resize:vertical;min-height:112px;font-family:inherit}textarea::placeholder{color:var(--c-text-3)}.field-label{color:var(--c-text);font-size:.9375rem;font-weight:650}.field-note{color:var(--c-text-3);overflow-wrap:anywhere;font-size:.8125rem}.field-note:empty{display:none}.tag-link{border:1px solid var(--border);max-width:100%;min-height:44px;color:var(--c-plum-glow);overflow-wrap:anywhere;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:#0f020459;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.875rem;font-weight:600;line-height:1.3;display:inline-flex}.tag-link:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--c-text)}.tag-link[aria-current=true]{background:var(--c-wine);color:var(--c-text);border-color:#ea7bad8c}.tag-n{font-variant-numeric:tabular-nums;color:var(--c-text-3);font-weight:500}.tag-link[aria-current=true] .tag-n{color:var(--c-text-2)}.tag-box{position:relative}.tag-editor{cursor:text;border:1px solid var(--border-strong);min-height:52px;transition:border-color var(--dur-fast) var(--ease-out);background:#0f020480;border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex;box-shadow:inset 0 2px 8px #0f020466}.tag-editor:focus-within{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--c-plum-glow)}.tag-editor.is-full{border-color:var(--c-bronze-glow)}.tag-chips{display:contents}.tag-chip{background:#5e1133d9;border:1px solid #ea7bad66;border-radius:999px;align-items:center;max-width:100%;min-height:36px;padding:0 0 0 12px;font-size:.9375rem;line-height:1.3;display:inline-flex}.tag-chip>span{overflow-wrap:anywhere;min-width:0}.tag-chip button{min-width:44px;min-height:44px;color:var(--c-text-2);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);border-radius:50%;flex:none;place-items:center;margin-block:-4px;display:inline-grid}.tag-chip button:hover{color:var(--c-text);background:var(--surface-hover)}.tag-chip button .icon{width:1em;height:1em}.tag-input{min-width:120px;min-height:44px;color:var(--c-text);background:0 0;border:0;outline:0;flex:140px;padding:0 4px}.tag-input::placeholder{color:var(--c-text-3)}.tag-pop{z-index:20;border:1px solid var(--border-strong);max-height:296px;box-shadow:var(--shadow);background:#200b2bfa;border-radius:16px;padding:4px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.tag-pop-row{min-height:44px;color:var(--c-text-2);align-items:center;padding:0 12px;font-size:.9375rem;display:flex}.tag-loading .spinner{flex:none}.tag-list{gap:2px;display:grid}.tag-option{cursor:pointer;min-height:44px;color:var(--c-plum-glow);overflow-wrap:anywhere;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:4px 12px;font-weight:600;display:flex}.tag-option:hover,.tag-option[aria-selected=true]{background:var(--c-wine);color:var(--c-text)}.tag-option .tag-n{flex:none}.tag-option[aria-selected=true] .tag-n{color:var(--c-text-2)}.tag-msg{min-height:0;color:var(--c-bronze-glow)}.field-note.tag-msg:empty{display:block}.toast .toast-sep{color:var(--c-text-3);margin-inline:-4px}.toast .btn{min-height:44px}.toast-close{min-width:44px;min-height:44px;color:var(--c-text-2);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:999px;place-items:center;display:inline-grid}.toast-close:hover{background:var(--surface-hover);color:var(--c-text)}.toast-close .icon{width:1.1em;height:1.1em}.toast .toast-text{min-width:0}@media (display-mode:standalone){.toast[data-install]{display:none}}
