:root{--ff-toolbar-navy: 26, 26, 46;--ff-toolbar-indigo: 99, 102, 241;--ff-chrome-panel: 15, 15, 23;--ff-chrome-ink: 226, 232, 240;--ff-chrome-ink-strong: 255, 255, 255;--ff-chrome-ink-faint: rgba(226, 232, 240, .35);--ff-chrome-accent-soft: 165, 180, 252;--ff-chrome-accent-bright: 199, 210, 254;--ff-chrome-shadow: 0, 0, 0;--ff-update-blue: #2b7fff;--ff-update-blue-rgb: 43, 127, 255;--ff-update-blue-bright: var(--ff-update-blue-bright);--ff-comet-bright: .5;--ff-comet-orbit-dur: 1.8s;--ff-comet-scale: 1}.ff-toolbar-trigger{position:fixed;bottom:calc(var(--ff-toolbar-bottom, 30px) + var(--ff-admob-banner-height, 0px));right:var(--ff-toolbar-right, 30px);width:52px;height:52px;border-radius:14px;background:rgba(var(--ff-toolbar-navy),.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(var(--ff-toolbar-indigo),.25);cursor:move;z-index:9999;display:flex;align-items:center;justify-content:center;transition:all .25s cubic-bezier(.4,0,.2,1);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;overflow:hidden;box-shadow:0 4px 24px rgba(var(--ff-chrome-shadow),.4),0 0 0 1px rgba(var(--ff-toolbar-indigo),.1)}.ff-toolbar-trigger:hover{background:rgba(var(--ff-toolbar-navy),.95);border-color:rgba(var(--ff-toolbar-indigo),.5);box-shadow:0 6px 32px rgba(var(--ff-chrome-shadow),.5),0 0 20px rgba(var(--ff-toolbar-indigo),.15);transform:scale(1.05)}.ff-toolbar-trigger:focus-visible{outline:2px solid rgba(var(--ff-toolbar-indigo),.8);outline-offset:2px}.ff-toolbar-trigger.ff-dragging{cursor:grabbing;opacity:.85;transform:scale(1.08);transition:none!important}.ff-toolbar-trigger.ff-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.ff-toolbar-trigger-logo{width:34px;height:34px;object-fit:contain;display:block;border-radius:6px}.ff-toolbar-trigger-fallback{font-size:22px;line-height:1;filter:drop-shadow(0 1px 2px rgba(var(--ff-chrome-shadow),.3))}.ff-toolbar-trigger-logo-flip{position:relative;width:34px;height:34px;perspective:220px}.ff-toolbar-trigger-logo-inner{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.ff-toolbar-trigger-logo-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.ff-toolbar-trigger-logo-face--back{transform:rotateY(180deg);background:linear-gradient(135deg,var(--ff-update-blue-bright),var(--ff-update-blue));color:#fff}.ff-toolbar-trigger-logo-face--back svg{width:20px;height:20px;display:block}.ff-toolbar-trigger--ready .ff-toolbar-trigger-logo-inner{transform:rotateY(180deg)}.ff-toolbar-trigger--ready{animation:ff-toolbar-pulse .75s ease-out 1}@keyframes ff-toolbar-pulse{0%{box-shadow:0 4px 24px rgba(var(--ff-chrome-shadow),.4),0 0 rgba(var(--ff-update-blue-rgb),.6)}to{box-shadow:0 4px 24px rgba(var(--ff-chrome-shadow),.4),0 0 0 14px rgba(var(--ff-update-blue-rgb),0)}}.ff-toolbar-comet-field{position:fixed;bottom:calc(var(--ff-toolbar-bottom, 30px) + var(--ff-admob-banner-height, 0px));right:var(--ff-toolbar-right, 30px);width:52px;height:52px;border-radius:14px;pointer-events:none;z-index:10000;opacity:0;color:rgba(var(--ff-chrome-ink-strong),.96);transform:scale(var(--ff-comet-scale, 1));transform-origin:bottom right;transition:opacity .28s ease,color .35s ease}.ff-toolbar-comet-field.is-menu{bottom:auto;right:auto;border-radius:20px;transform-origin:center center;transition:top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),opacity .28s ease,color .35s ease}.ff-toolbar-comet-field.is-checking,.ff-toolbar-comet-field.is-downloading{opacity:var(--ff-comet-bright, .5)}.ff-toolbar-comet-field.is-downloading{color:var(--ff-update-blue)}.ff-toolbar-comet-orbit{position:absolute;top:0;right:0;bottom:0;left:0}.ff-toolbar-comet-dot{position:absolute;top:0;left:0;width:var(--d-size, 4px);height:var(--d-size, 4px);border-radius:50%;background:currentColor;opacity:var(--d-op, 1);box-shadow:0 0 calc((2px + 7px * var(--ff-comet-bright, .5)) * var(--d-glow, 1)) currentColor;offset-rotate:0deg;offset-anchor:50% 50%;offset-distance:0%;animation:ff-comet-orbit var(--ff-comet-orbit-dur, 1.8s) linear infinite;animation-play-state:paused}.ff-toolbar-comet-field.is-checking .ff-toolbar-comet-dot,.ff-toolbar-comet-field.is-downloading .ff-toolbar-comet-dot{animation-play-state:running}@keyframes ff-comet-orbit{0%{offset-distance:0%}to{offset-distance:100%}}.ff-toolbar-menu{position:fixed;background:rgba(var(--ff-chrome-panel),.92);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(var(--ff-toolbar-indigo),.25);border-radius:20px;padding:32px;min-width:320px;max-width:90vw;z-index:9998;opacity:0;pointer-events:none;transition:top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1);overflow:hidden;transform-origin:center center;will-change:top,left,transform,opacity;box-shadow:0 20px 60px rgba(var(--ff-chrome-shadow),.6),0 0 0 1px rgba(var(--ff-toolbar-indigo),.1)}.ff-toolbar-menu.ff-show{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:all}.ff-toolbar-menu-content{display:flex;flex-direction:column;gap:16px;width:100%}.ff-toolbar-menu-header{text-align:center;padding-bottom:12px;border-bottom:1px solid rgba(var(--ff-toolbar-indigo),.15)}.ff-toolbar-menu-title{font-size:14px;font-weight:600;color:rgba(var(--ff-chrome-ink),.9);letter-spacing:.5px}.ff-toolbar-menu-items{display:flex;flex-direction:column;gap:8px;width:100%}.ff-toolbar-menu-item{display:flex;align-items:center;gap:14px;padding:14px 18px;color:rgba(var(--ff-chrome-ink),.9);text-decoration:none;border-radius:14px;transition:all .25s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500;cursor:pointer;background:rgba(var(--ff-toolbar-indigo),.06);border:1px solid rgba(var(--ff-toolbar-indigo),.12);width:100%;text-align:left;font-family:inherit}.ff-toolbar-menu-item:hover{background:rgba(var(--ff-toolbar-indigo),.15);border-color:rgba(var(--ff-toolbar-indigo),.35);color:rgb(var(--ff-chrome-accent-soft));transform:translate(4px)}.ff-toolbar-menu-item:focus-visible{outline:2px solid rgba(var(--ff-toolbar-indigo),.8);outline-offset:2px}.ff-toolbar-menu-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;background:rgba(var(--ff-toolbar-indigo),.1);border-radius:10px;flex-shrink:0;transition:all .25s cubic-bezier(.4,0,.2,1);color:rgb(var(--ff-chrome-accent-soft))}.ff-toolbar-menu-item-icon svg{width:20px;height:20px;display:block}.ff-toolbar-menu-item:hover .ff-toolbar-menu-item-icon{background:rgba(var(--ff-toolbar-indigo),.2);transform:scale(1.08)}.ff-toolbar-menu-item-text{font-size:14px;font-weight:500;color:inherit}.ff-toolbar-menu-footer{text-align:center;padding-top:8px;border-top:1px solid rgba(var(--ff-toolbar-indigo),.1)}.ff-toolbar-menu-footer-text{font-size:11px;color:var(--ff-chrome-ink-faint);letter-spacing:.3px}@media (max-width: 768px){.ff-toolbar-trigger{width:46px;height:46px;border-radius:12px}.ff-toolbar-trigger-logo{width:34px;height:34px}.ff-toolbar-trigger-fallback{font-size:20px}.ff-toolbar-comet-field{--ff-comet-scale: calc(46 / 52)}.ff-toolbar-menu{min-width:280px;padding:24px 20px}.ff-toolbar-menu-items{gap:6px}.ff-toolbar-menu-item{padding:12px 14px;gap:12px}.ff-toolbar-menu-item-icon{width:32px;height:32px;font-size:18px;border-radius:8px}}@media (prefers-reduced-motion: reduce){.ff-toolbar-trigger,.ff-toolbar-menu,.ff-toolbar-menu-item,.ff-toolbar-menu-item-icon{animation:none!important;transition:none!important}.ff-toolbar-trigger:hover,.ff-toolbar-menu-item:hover{transform:none}.ff-toolbar-comet-dot{animation:none!important}.ff-toolbar-comet-field,.ff-toolbar-comet-orbit,.ff-toolbar-trigger-logo-inner{transition-duration:.01s!important}}.ff-cookie-banner{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px) + var(--ff-admob-banner-height, 0px));left:50%;transform:translate(-50%) translateY(120%);width:calc(100vw - 32px);max-width:640px;background:rgba(var(--ff-chrome-panel),.92);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(var(--ff-toolbar-indigo),.25);border-radius:20px;box-shadow:0 20px 60px rgba(var(--ff-chrome-shadow),.6),0 0 0 1px rgba(var(--ff-toolbar-indigo),.1);color:rgba(var(--ff-chrome-ink),.9);font-family:Noto Sans TC,Inter,system-ui,-apple-system,sans-serif;z-index:9997;opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ff-cookie-banner.ff-show{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.ff-cookie-banner-content,.ff-cookie-panel-content{padding:24px 28px;display:flex;flex-direction:column;gap:14px}.ff-cookie-title{font-size:18px;font-weight:600;color:rgba(var(--ff-chrome-ink),.95);margin:0;letter-spacing:.3px}.ff-cookie-desc{font-size:14px;line-height:1.6;color:rgba(var(--ff-chrome-ink),.8);margin:0}.ff-cookie-tiers{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.55;color:rgba(var(--ff-chrome-ink),.75)}.ff-cookie-tier strong{color:rgb(var(--ff-chrome-accent-soft));font-weight:600}.ff-cookie-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.ff-cookie-btn{flex:1 1 auto;min-width:120px;padding:11px 18px;font-size:14px;font-weight:500;font-family:inherit;border-radius:12px;border:1px solid rgba(var(--ff-toolbar-indigo),.25);background:rgba(var(--ff-toolbar-indigo),.06);color:rgba(var(--ff-chrome-ink),.9);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.ff-cookie-btn:hover{background:rgba(var(--ff-toolbar-indigo),.18);border-color:rgba(var(--ff-toolbar-indigo),.45);color:rgb(var(--ff-chrome-accent-bright))}.ff-cookie-btn:focus-visible{outline:2px solid rgba(var(--ff-toolbar-indigo),.8);outline-offset:2px}.ff-cookie-btn-accept{background:rgba(var(--ff-toolbar-indigo),.32);border-color:rgba(var(--ff-chrome-accent-soft),.5);color:rgb(var(--ff-chrome-ink-strong))}.ff-cookie-btn-accept:hover{background:rgba(var(--ff-toolbar-indigo),.5);color:rgb(var(--ff-chrome-ink-strong))}.ff-cookie-link{font-size:13px;color:rgb(var(--ff-chrome-accent-soft));text-decoration:underline;text-underline-offset:2px;align-self:flex-start}.ff-cookie-link:hover{color:rgb(var(--ff-chrome-accent-bright))}.ff-cookie-toggles{display:flex;flex-direction:column;gap:12px}.ff-cookie-toggle{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;padding:14px 16px;border-radius:12px;background:rgba(var(--ff-toolbar-indigo),.04);border:1px solid rgba(var(--ff-toolbar-indigo),.12);cursor:pointer}.ff-cookie-toggle-disabled{cursor:not-allowed;opacity:.7}.ff-cookie-toggle input[type=checkbox]{grid-row:1 / span 2;grid-column:1;width:20px;height:20px;accent-color:rgb(var(--ff-toolbar-indigo));cursor:inherit}.ff-cookie-toggle-label{grid-row:1;grid-column:2;font-size:14px;font-weight:600;color:rgba(var(--ff-chrome-ink),.95)}.ff-cookie-toggle-desc{grid-row:2;grid-column:2;font-size:12px;line-height:1.55;color:rgba(var(--ff-chrome-ink),.65);margin-top:2px}.ff-cookie-panel-actions{display:flex;gap:8px;margin-top:4px}.ff-cookie-btn-save{background:rgba(var(--ff-toolbar-indigo),.32);border-color:rgba(var(--ff-chrome-accent-soft),.5);color:rgb(var(--ff-chrome-ink-strong))}.ff-cookie-btn-save:hover{background:rgba(var(--ff-toolbar-indigo),.5)}@media (max-width: 767px){.ff-cookie-banner{bottom:calc(12px + env(safe-area-inset-bottom,0px) + var(--ff-admob-banner-height, 0px));left:12px;right:12px;width:auto;max-width:none;transform:translateY(120%)}.ff-cookie-banner.ff-show{transform:translateY(0)}.ff-cookie-banner-content,.ff-cookie-panel-content{padding:20px 18px;gap:12px}.ff-cookie-title{font-size:16px}.ff-cookie-desc{font-size:13px}.ff-cookie-actions{flex-direction:column}.ff-cookie-btn{flex:1 1 auto;min-width:0;width:100%;padding:12px 16px}}@media (prefers-reduced-motion: reduce){.ff-cookie-banner{transition:none!important}}.ff-ad-slot{display:none;min-height:0}.ff-ad-slot[data-ad-status=filled]{display:block;margin:24px 0;background:transparent}.ff-ad-slot.ff-ad-grid-inline[data-ad-status=filled]{min-height:250px;grid-column:span 1;margin:0}.ff-ad-slot.ff-ad-banner-bottom[data-ad-status=filled]{min-height:90px;width:100%;max-width:728px;margin-left:auto;margin-right:auto}.ff-ad-slot.ff-ad-rect-bottom[data-ad-status=filled]{min-height:250px;width:100%;max-width:300px;margin-left:auto;margin-right:auto}@media (max-width: 767px){.ff-ad-slot.ff-ad-banner-bottom[data-ad-status=filled]{min-height:50px;max-width:320px}}.ff-ad-slot ins.adsbygoogle{display:block;width:100%}:root{--ff-admob-banner-height: 0px}.ff-legal-footer-inline{text-align:center;font-size:12px;color:#787878d9;line-height:1.7;padding:0 12px}.ff-legal-footer-inline a{color:inherit;text-decoration:none;transition:color .2s ease}.ff-legal-footer-inline a:hover{color:rgb(var(--ff-toolbar-indigo));text-decoration:underline}.ff-legal-footer-inline .ff-legal-sep{margin:0 6px;opacity:.55}.ff-legal-footer-inline.ff-legal-footer-app{max-width:var(--ff-content-max, none);margin-inline:auto;padding:16px var(--ff-gutter, 12px) calc(32px + var(--ff-admob-banner-height, 0px) + env(safe-area-inset-bottom,0px))}.ff-site-footer{padding:var(--spacing-xxl) 0 calc(var(--spacing-xl) + var(--ff-admob-banner-height, 0px) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-color)}.ff-footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.ff-footer-section h3,.ff-footer-section h4{font-size:1rem;font-weight:500;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.ff-footer-links{list-style:none}.ff-footer-links li{margin-bottom:var(--spacing-xs)}.ff-footer-links a{color:var(--text-secondary);text-decoration:none;font-size:.9375rem;transition:var(--transition)}.ff-footer-links a:hover{color:var(--fire-blue)}.ff-footer-bottom{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);color:var(--text-tertiary);font-size:.875rem}.ff-footer-logo{font-size:1.25rem;font-weight:700;margin-bottom:var(--spacing-xs);color:var(--text-primary)}.ff-footer-logo-img{display:block;height:1.75rem;width:auto;max-width:100%}.ff-footer-tagline{font-size:1rem;color:var(--text-primary);font-weight:400;margin-bottom:var(--spacing-xs)}.ff-footer-subtitle{font-size:.875rem;color:var(--text-secondary);font-family:var(--font-family-en, "Inter", sans-serif);font-weight:300}.ff-footer-domain{margin-top:var(--spacing-xs);font-family:var(--font-family-en, "Inter", sans-serif)}@media (max-width: 480px){.ff-legal-footer-inline{font-size:11px}.ff-legal-footer-inline .ff-legal-sep{margin:0 4px}}@media (prefers-reduced-motion: reduce){.ff-legal-footer-inline a{transition:none}}.ff-disclaimer{box-sizing:border-box;width:min(var(--ff-content-max, 100%),calc(100% - 2 * var(--ff-gutter, 0px)));margin:var(--ff-block-gap, 32px) auto;padding:20px var(--ff-gutter, 24px);background:rgba(var(--ff-toolbar-indigo),.05);border-left:4px solid rgba(var(--ff-toolbar-indigo),.6);border-radius:8px;font-size:14px;color:rgba(var(--ff-chrome-ink),.85)}.ff-disclaimer-title{font-size:16px;font-weight:600;margin:0 0 8px;color:rgba(var(--ff-chrome-ink),.95)}.ff-disclaimer-summary{margin:8px 0;line-height:1.6}.ff-disclaimer-details{margin-top:12px}.ff-disclaimer-details>summary{cursor:pointer;font-weight:500;padding:8px 0;color:rgba(var(--ff-chrome-accent-soft),.95);list-style:none}.ff-disclaimer-details>summary::-webkit-details-marker{display:none}.ff-disclaimer-details>summary:before{content:"▸ ";display:inline-block;margin-right:4px;transition:transform .2s ease}.ff-disclaimer-details[open]>summary:before{transform:rotate(90deg)}.ff-disclaimer-details h4{font-size:14px;font-weight:600;margin-top:12px;margin-bottom:4px;color:rgba(var(--ff-chrome-ink),.9)}.ff-disclaimer-details p{margin:4px 0;line-height:1.6}.ff-disclaimer-link{margin-top:16px;font-size:13px;color:rgba(var(--ff-chrome-ink),.7)}.ff-disclaimer-link a{color:rgba(var(--ff-chrome-accent-soft),.95);text-decoration:underline;text-underline-offset:2px;margin-left:4px}@media (max-width: 767px){.ff-disclaimer{padding:16px var(--ff-gutter, 20px);margin:var(--ff-block-gap, 24px) auto;font-size:13px}.ff-disclaimer-title{font-size:15px}}@media (prefers-reduced-motion: reduce){.ff-disclaimer-details>summary:before{transition:none}}.ff-skeleton{display:block;border-radius:6px;background:linear-gradient(100deg,var(--ff-skeleton-base, #e9e3da) 30%,var(--ff-skeleton-shine, #f5f0e8) 50%,var(--ff-skeleton-base, #e9e3da) 70%);background-size:200% 100%;animation:ff-skeleton-shimmer 1.4s ease-in-out infinite}.ff-skeleton--text{height:1em;margin:.35em 0;border-radius:4px}.ff-skeleton--line{height:12px}.ff-skeleton--block{height:96px}.ff-skeleton--circle{border-radius:50%}.ff-spinner{display:inline-block;width:24px;height:24px;border-radius:50%;border:3px solid var(--ff-spinner-track, rgba(0, 0, 0, .12));border-top-color:var(--ff-spinner-color, #B23A1C);animation:ff-spinner-spin .8s linear infinite}@keyframes ff-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ff-spinner-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ff-skeleton{animation:none;background:var(--ff-skeleton-base, #e9e3da)}.ff-spinner{animation-duration:1.6s}}.ff-img{opacity:0;transition:opacity .4s ease}.ff-img.is-loaded{opacity:1}@media (prefers-reduced-motion: reduce){.ff-img{transition:opacity .15s linear}}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,[role=button]{touch-action:manipulation}:root{--zw-space-950: #14101F;--zw-space-900: #1A1428;--zw-space-850: #1E1830;--zw-space-800: #241D38;--zw-space-750: #2A2140;--zw-space-700: #2A2342;--zw-violet-600: #6B5BB5;--zw-violet-500: #5B4B9E;--zw-violet-300: #C7B8F5;--zw-violet-200: #D8D0EC;--zw-gold-500: #C9A227;--zw-gold-400: #E8C66A;--zw-gold-300: #F6D77E;--zw-ink-50: #F0ECFA;--zw-ink-200: #B6AED0;--zw-ink-300: #A99FCB;--zw-ink-400: #948BB5;--zw-red-300: #FF8A7A;--zw-line-700: #6A5DA0;--zw-line-800: #3A3157;--zw-space-4: 4px;--zw-space-8: 8px;--zw-space-12: 12px;--zw-space-16: 16px;--zw-space-24: 24px;--zw-space-32: 32px;--zw-space-48: 48px;--zw-bg: var(--zw-space-950);--zw-surface: var(--zw-space-850);--zw-surface-board: var(--zw-space-800);--zw-primary: var(--zw-violet-600);--zw-primary-dark: var(--zw-violet-500);--zw-accent: var(--zw-gold-400);--zw-soul: var(--zw-space-750);--zw-soul-glow: var(--zw-gold-300);--zw-ink: var(--zw-ink-50);--zw-ink-soft: var(--zw-ink-200);--zw-link: var(--zw-violet-300);--zw-danger: var(--zw-red-300);--zw-line: var(--zw-line-800);--zw-line-interactive: var(--zw-line-700);--zw-focus: #9F8AE6;--zw-starbar-bg: var(--zw-space-900);--zw-panel-bg: var(--zw-surface);--zw-btn-primary-bg: var(--zw-primary);--zw-btn-ghost-fg: var(--zw-link);--zw-cell-bg: var(--zw-surface-board);--zw-cell-border: var(--zw-line-interactive);--zw-cell-soul-bg: var(--zw-soul);--zw-cell-soul-border: var(--zw-gold-500);--zw-cell-empty-note: var(--zw-ink-400);--zw-star-major-fg: var(--zw-ink-50);--zw-star-minor-fg: var(--zw-violet-200);--zw-star-adj-fg: var(--zw-ink-400);--zw-mutagen-bg: var(--zw-gold-400);--zw-mutagen-fg: #211A33;--zw-center-bg: var(--zw-space-800);--zw-reading-bg: var(--zw-surface);--zw-font-base: "Noto Sans TC", "Inter", sans-serif;--zw-font-display: "Noto Serif TC", "Noto Sans TC", serif;--zw-fs-h1: 1.5rem;--zw-fs-h2: 1.2rem;--zw-fs-body: 1rem;--zw-fs-sm: .875rem;--zw-fs-xs: .75rem;--zw-fw-bold: 700;--zw-fw-semibold: 600;--zw-fw-regular: 400;--zw-lh-body: 1.6;--zw-lh-tight: 1.3;--zw-radius-sm: 8px;--zw-radius: 14px;--zw-radius-lg: 20px;--zw-radius-pill: 999px;--zw-shadow: 0 6px 24px rgba(10, 6, 24, .45);--zw-glow-soul: 0 0 0 2px var(--zw-gold-500), 0 0 16px rgba(246, 215, 126, .35);--zw-glow-focus: 0 0 0 3px rgba(159, 138, 230, .55);--zw-dur-fast: .15s;--zw-dur: .28s;--zw-dur-slow: .6s;--zw-ease: cubic-bezier(.22, .61, .36, 1);--zw-ease-breath: ease-in-out}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--zw-font-base);background:var(--zw-bg);color:var(--zw-ink);line-height:var(--zw-lh-body)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(1.5px 1.5px at 18% 24%,rgba(246,215,126,.55),transparent 60%),radial-gradient(1.5px 1.5px at 72% 16%,rgba(199,184,245,.5),transparent 60%),radial-gradient(1px 1px at 42% 62%,rgba(246,215,126,.4),transparent 60%),radial-gradient(1px 1px at 86% 70%,rgba(216,208,236,.45),transparent 60%),radial-gradient(1.5px 1.5px at 30% 84%,rgba(199,184,245,.4),transparent 60%),radial-gradient(1px 1px at 62% 40%,rgba(246,215,126,.35),transparent 60%),radial-gradient(1200px 800px at 50% -10%,rgba(91,75,158,.18),transparent 70%);animation:zw-starbreath 9s var(--zw-ease-breath) infinite}@keyframes zw-starbreath{0%,to{opacity:.55}50%{opacity:1}}.zw-container{max-width:1180px;margin:0 auto;padding:var(--zw-space-12) .75rem 2.5rem}.zw-starbar{display:flex;align-items:center;gap:var(--zw-space-12);min-height:56px;padding:var(--zw-space-8) var(--zw-space-16);margin-bottom:var(--zw-space-16);background:var(--zw-starbar-bg);border-radius:var(--zw-radius);border-bottom:1px solid rgba(201,162,39,.4);box-shadow:var(--zw-shadow)}.zw-starbar__brand{display:flex;align-items:center;gap:var(--zw-space-12);text-decoration:none;border-radius:var(--zw-radius-sm)}.zw-starbar__brand:focus-visible{outline:none;box-shadow:var(--zw-glow-focus)}.zw-starbar__logo{width:28px;height:28px;object-fit:cover;border-radius:50%;border:1px solid var(--zw-gold-500);background:var(--zw-space-850);flex:0 0 auto}.zw-starbar__title{font-family:var(--zw-font-display);font-size:1.15rem;font-weight:var(--zw-fw-bold);letter-spacing:.04em;color:var(--zw-ink)}.zw-starbar__brand:hover .zw-starbar__title,.zw-starbar__brand:focus-visible .zw-starbar__title{color:var(--zw-soul-glow)}.zw-starbar__trust{display:none;margin-left:auto;font-size:var(--zw-fs-xs);color:var(--zw-ink-soft);letter-spacing:.02em;white-space:nowrap}.zw-panel{background:var(--zw-panel-bg);border:1px solid var(--zw-line);border-radius:var(--zw-radius);box-shadow:var(--zw-shadow);padding:var(--zw-space-24);margin-bottom:var(--zw-space-16)}.zw-form{display:flex;flex-direction:column;gap:1.1rem}.zw-field{display:flex;flex-direction:column;gap:var(--zw-space-4);border:none}.zw-field legend,.zw-field>label{font-weight:var(--zw-fw-semibold);font-size:.95rem;color:var(--zw-ink)}.zw-grid{display:grid;grid-template-columns:1fr;gap:var(--zw-space-16)}.zw-field select,.zw-field input[type=text]{width:100%;min-width:0;max-width:100%;min-height:44px;padding:.7rem .75rem;border:2px solid var(--zw-line);border-radius:10px;font-size:var(--zw-fs-body);background:var(--zw-space-900);color:var(--zw-ink)}.zw-field select option{background:var(--zw-space-900);color:var(--zw-ink)}.zw-field input[type=text]::placeholder{color:var(--zw-ink-soft);opacity:.7}.zw-field select:focus-visible,.zw-field input[type=text]:focus-visible,.zw-segmented input:focus-visible+span,.zw-radio input:focus-visible+span{outline:3px solid var(--zw-focus);outline-offset:2px}.zw-hint{color:var(--zw-ink-soft);font-size:.8rem}.zw-segmented{display:inline-flex;border:2px solid var(--zw-line);border-radius:10px;overflow:hidden}.zw-segmented__item{position:relative}.zw-segmented__item input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;cursor:pointer}.zw-segmented__item span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1.5rem;font-weight:var(--zw-fw-semibold);color:var(--zw-ink-soft);cursor:pointer}.zw-segmented__item input:checked+span{background:var(--zw-primary);color:#fff}.zw-radios{display:flex;gap:var(--zw-space-12)}.zw-radio{position:relative;flex:0 0 auto}.zw-radio input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;cursor:pointer}.zw-radio span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1.7rem;border:2px solid var(--zw-line);border-radius:10px;font-weight:var(--zw-fw-semibold);color:var(--zw-ink-soft);cursor:pointer}.zw-radio input:checked+span{border-color:var(--zw-primary);color:var(--zw-ink);background:var(--zw-space-700)}.zw-field--leap{gap:var(--zw-space-8);padding:.75rem .85rem;background:var(--zw-space-900);border:1px solid var(--zw-line);border-radius:10px}.zw-field--leap[hidden]{display:none}.zw-checkbox{display:inline-flex;align-items:center;gap:var(--zw-space-8);min-height:44px;font-weight:var(--zw-fw-semibold);cursor:pointer}.zw-checkbox input{width:20px;height:20px;cursor:pointer;accent-color:var(--zw-accent)}.zw-checkbox input:focus-visible{outline:3px solid var(--zw-focus);outline-offset:2px}.zw-leap-note{display:flex;align-items:flex-start;gap:.35rem;font-size:var(--zw-fs-sm);line-height:1.5;color:var(--zw-ink-soft)}.zw-leap-escape{align-self:flex-start;min-height:44px;padding:.4rem 0;background:none;border:none;color:var(--zw-link);font-size:.9rem;font-weight:var(--zw-fw-semibold);text-align:left;text-decoration:underline;cursor:pointer}.zw-leap-escape:hover{color:var(--zw-ink)}.zw-leap-escape:focus-visible{outline:3px solid var(--zw-focus);outline-offset:2px;border-radius:4px}.zw-privacy{display:flex;align-items:center;gap:.4rem;font-size:var(--zw-fs-sm);color:var(--zw-ink-soft);margin-top:.25rem;padding-top:.85rem;border-top:1px dashed var(--zw-line)}.zw-error{color:var(--zw-danger);font-size:var(--zw-fs-sm)}.zw-field select[aria-invalid=true],.zw-field input[aria-invalid=true]{border-color:var(--zw-danger)}.zw-actions{display:flex;flex-direction:column;gap:var(--zw-space-12);margin-top:var(--zw-space-4)}.zw-btn{flex:1;padding:.85rem 1rem;border-radius:10px;font-size:var(--zw-fs-body);font-weight:var(--zw-fw-bold);cursor:pointer;border:2px solid transparent;transition:filter var(--zw-dur-fast) var(--zw-ease),background var(--zw-dur-fast) var(--zw-ease)}.zw-btn:hover{filter:brightness(1.08)}.zw-btn:disabled{opacity:.5;cursor:not-allowed}.zw-btn--primary{background:var(--zw-btn-primary-bg);color:#fff}.zw-btn--ghost{background:transparent;color:var(--zw-btn-ghost-fg);border-color:var(--zw-line-interactive)}.zw-board-panel{min-height:220px}.zw-state{text-align:center;padding:2.5rem 1rem;color:var(--zw-ink-soft)}.zw-state__icon{font-size:2.5rem;margin-bottom:var(--zw-space-8)}.zw-state--error p{color:var(--zw-danger);margin-bottom:1rem}.zw-state--error .zw-btn{display:inline-block;flex:0 0 auto;padding-inline:2rem}.zw-spinner{width:38px;height:38px;margin:0 auto .75rem;border:4px solid var(--zw-line);border-top-color:var(--zw-accent);border-radius:50%;animation:zw-spin .8s linear infinite}@keyframes zw-spin{to{transform:rotate(360deg)}}.zw-scroll-hint{display:block;text-align:center;font-size:.78rem;color:var(--zw-ink-soft);margin-bottom:.5rem}.zw-board-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.35rem;scroll-snap-type:x proximity}.zw-chart{animation:zw-board-rise var(--zw-dur-slow) var(--zw-ease) both}@keyframes zw-board-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.zw-board{display:grid;grid-template-columns:repeat(4,104px);grid-template-rows:repeat(4,minmax(104px,auto));width:-webkit-max-content;width:max-content;gap:5px}.zw-cell{display:flex;flex-direction:column;justify-content:space-between;background:var(--zw-cell-bg);border:1px solid var(--zw-cell-border);border-radius:var(--zw-radius-sm);padding:6px;min-width:0;scroll-snap-align:start;transition:background var(--zw-dur-fast) var(--zw-ease),box-shadow var(--zw-dur-fast) var(--zw-ease)}.zw-cell--soul{background:var(--zw-cell-soul-bg);border-color:var(--zw-cell-soul-border);box-shadow:var(--zw-glow-soul)}.zw-cell--empty{background:var(--zw-space-850)}.zw-cell__empty-note{font-size:.72rem;line-height:1.4;color:var(--zw-cell-empty-note);font-style:italic}.zw-cell--clickable{cursor:pointer}.zw-cell--clickable:hover{background:var(--zw-space-700)}.zw-cell--clickable:focus-visible{outline:none;box-shadow:var(--zw-glow-focus)}.zw-cell--soul.zw-cell--clickable:focus-visible{box-shadow:var(--zw-glow-soul),var(--zw-glow-focus)}.zw-cell.is-active{box-shadow:var(--zw-glow-focus)}.zw-cell--soul.is-active{box-shadow:var(--zw-glow-soul),var(--zw-glow-focus)}.zw-cell__stars{display:flex;flex-wrap:wrap;gap:2px 6px;align-content:flex-start}.zw-star{display:inline-flex;align-items:baseline;gap:1px;font-size:.8rem;white-space:nowrap}.zw-star--major .zw-star__name{font-weight:var(--zw-fw-bold);color:var(--zw-star-major-fg)}.zw-star--minor .zw-star__name{color:var(--zw-star-minor-fg)}.zw-star--adj .zw-star__name{color:var(--zw-star-adj-fg);font-size:.76rem}.zw-star--adj{font-size:.74rem}.zw-star__name[role=button]{cursor:pointer;padding:6px 4px;margin:-6px -4px;border-radius:4px}.zw-star__name[role=button]:focus-visible{outline:2px solid var(--zw-focus);outline-offset:1px}.zw-star__bright{font-size:.66rem;color:var(--zw-ink-soft)}.zw-star__mutagen{font-size:.64rem;color:var(--zw-mutagen-fg);background:var(--zw-mutagen-bg);border-radius:4px;padding:0 3px;font-weight:var(--zw-fw-bold)}.zw-cell__foot{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:3px;border-top:1px dashed var(--zw-line)}.zw-cell__name{font-family:var(--zw-font-display);font-weight:var(--zw-fw-bold);font-size:.85rem}.zw-cell__badge{display:inline-block;margin-left:3px;font-size:.62rem;color:#fff;background:var(--zw-primary);border-radius:4px;padding:0 3px}.zw-cell__branch{font-family:var(--zw-font-display);font-size:.72rem;color:var(--zw-ink-300)}.zw-center{background:var(--zw-center-bg);border:1px solid var(--zw-line-interactive);border-radius:var(--zw-radius-sm);padding:.85rem;display:flex;flex-direction:column}.zw-center__title{font-family:var(--zw-font-display);font-size:.92rem;color:var(--zw-accent);margin-bottom:var(--zw-space-8);text-align:center}.zw-center__list{display:grid;grid-template-columns:auto 1fr;gap:.2rem .6rem;font-size:.74rem}.zw-center__list dt{color:var(--zw-ink-soft);font-weight:var(--zw-fw-semibold)}.zw-center__list dd{color:var(--zw-ink)}.zw-reading__title{font-family:var(--zw-font-display);font-size:var(--zw-fs-h2);color:var(--zw-accent);margin-bottom:.6rem}.zw-reading__body{font-size:.92rem;color:var(--zw-ink);line-height:var(--zw-lh-body)}.zw-reading__term{font-weight:var(--zw-fw-bold);color:var(--zw-ink)}.zw-reading__kind{font-size:var(--zw-fs-xs);color:var(--zw-ink-soft);margin-bottom:.5rem}.zw-reading__hint{color:var(--zw-ink-soft);font-size:var(--zw-fs-sm);line-height:var(--zw-lh-body)}.zw-reading__slot{animation:zw-reading-fade var(--zw-dur) var(--zw-ease)}@keyframes zw-reading-fade{0%{opacity:.2}to{opacity:1}}.zw-reading{display:none}.zw-sheet-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0a06188c;opacity:0;visibility:hidden;transition:opacity var(--zw-dur) var(--zw-ease),visibility var(--zw-dur) var(--zw-ease)}.zw-reading-sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:41;max-height:72vh;overflow-y:auto;overscroll-behavior:contain;background:var(--zw-reading-bg);border-top:1px solid var(--zw-line-interactive);border-top-left-radius:var(--zw-radius-lg);border-top-right-radius:var(--zw-radius-lg);box-shadow:0 -10px 40px #0a061880;padding:var(--zw-space-8) var(--zw-space-24) calc(var(--zw-space-24) + env(safe-area-inset-bottom,0px) + var(--ff-admob-banner-height, 0px));transform:translateY(100%);transition:transform var(--zw-dur) var(--zw-ease)}body.zw-sheet-open .zw-sheet-backdrop{opacity:1;visibility:visible}body.zw-sheet-open .zw-reading-sheet{transform:translateY(0)}.zw-sheet__grip{width:44px;height:5px;margin:0 auto var(--zw-space-12);border-radius:3px;background:var(--zw-line-interactive)}.zw-sheet__close{position:absolute;top:10px;right:12px;width:44px;height:44px;border:0;background:transparent;font-size:22px;line-height:1;color:var(--zw-ink-soft);cursor:pointer}.zw-sheet__close:focus-visible{outline:3px solid var(--zw-focus);outline-offset:2px;border-radius:50%}.zw-input-collapsed{display:none;align-items:center;gap:var(--zw-space-8);width:100%;min-height:44px;padding:.55rem .9rem;background:var(--zw-space-900);border:1px solid var(--zw-line-interactive);border-radius:var(--zw-radius-pill);color:var(--zw-ink);font-size:var(--zw-fs-sm);text-align:left;cursor:pointer}.zw-input-collapsed:focus-visible{outline:3px solid var(--zw-focus);outline-offset:2px}.zw-input-collapsed__edit{margin-left:auto;color:var(--zw-link);font-weight:var(--zw-fw-semibold);white-space:nowrap}.zw-input-panel.is-collapsed .zw-form{display:none}.zw-input-panel.is-collapsed .zw-input-collapsed{display:flex}.zw-glossary__title{font-family:var(--zw-font-display);font-size:var(--zw-fs-h2);color:var(--zw-accent)}.zw-glossary__hint{color:var(--zw-ink-soft);font-size:.9rem;margin:.3rem 0 1rem}.zw-glossary__list{display:grid;grid-template-columns:1fr;gap:.6rem}.zw-gloss-item{border:1px solid var(--zw-line);border-radius:10px;padding:.6rem .85rem;background:var(--zw-space-800)}.zw-gloss-item__summary{font-weight:var(--zw-fw-bold);color:var(--zw-link);cursor:pointer;list-style-position:inside}.zw-gloss-item__summary:focus-visible{outline:3px solid var(--zw-focus);outline-offset:2px;border-radius:4px}.zw-gloss-item__desc{margin-top:.5rem;font-size:.9rem;color:var(--zw-ink)}@media (min-width: 768px){.zw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zw-actions{flex-direction:row}.zw-glossary__list{grid-template-columns:repeat(2,1fr)}.zw-scroll-hint{display:none}.zw-board-scroll{overflow-x:visible;-webkit-overflow-scrolling:auto;padding-bottom:0;scroll-snap-type:none}.zw-board{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,minmax(110px,auto));width:auto;gap:6px}.zw-cell{padding:6px 6px 4px;scroll-snap-align:none}.zw-star,.zw-star--adj{font-size:.88rem}.zw-cell__empty-note{font-size:.68rem}.zw-center__title{font-size:1rem}.zw-center__list{font-size:.82rem}.zw-input-panel.is-collapsed .zw-form{display:flex}.zw-input-panel.is-collapsed .zw-input-collapsed{display:none}}@media (min-width: 1024px){.zw-main{display:grid;grid-template-columns:300px minmax(0,1fr) 320px;grid-template-areas:"input board reading";gap:var(--zw-space-16);align-items:start}.zw-input-panel{grid-area:input;position:-webkit-sticky;position:-webkit-sticky;position:sticky;top:var(--zw-space-16);margin-bottom:0}.zw-board-panel{grid-area:board;margin-bottom:0}.zw-reading-sheet,.zw-sheet-backdrop{display:none}.zw-reading{grid-area:reading;display:block;position:-webkit-sticky;position:-webkit-sticky;position:sticky;top:var(--zw-space-16);background:var(--zw-reading-bg);border:1px solid var(--zw-line);border-radius:var(--zw-radius);box-shadow:var(--zw-shadow);padding:var(--zw-space-24);margin-bottom:0}.zw-board{grid-template-rows:repeat(4,minmax(118px,auto));gap:7px}.zw-star,.zw-star--adj{font-size:.86rem}.zw-cell__name{font-size:.9rem}}@media (prefers-reduced-motion: reduce){body:before{animation:none;opacity:.8}.zw-spinner{animation-duration:1.6s}.zw-chart,.zw-reading__slot{animation:none}.zw-reading-sheet{transition:opacity var(--zw-dur) var(--zw-ease)}.zw-reading-sheet{transform:none;opacity:0;visibility:hidden}body.zw-sheet-open .zw-reading-sheet{opacity:1;visibility:visible}.zw-cell,.zw-btn{transition:none}}
