:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f9fb;--surface:#fff;--surface-2:#eaeef3;--hover:#1b23300d;--text:#1b2330;--text-2:#3d4757;--text-3:#5c6677;--divider:#dce2e9;--divider-strong:#c0c9d4;--brand:#1e3a5f;--accent:#1f4d8a;--accent-soft:#e3ebf5;--danger:#c0262d}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1722;--surface:#152131;--surface-2:#1c2a3c;--hover:#e3e9f10d;--text:#e3e9f1;--text-2:#bfcad8;--text-3:#91a0b3;--divider:#22324a;--divider-strong:#34475f;--brand:#e3e9f1;--accent:#8fb8ee;--accent-soft:#1b3150;--danger:#ff9c93}:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--font-serif:"Noto Serif TC", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif CJK TC", "PMingLiU", serif;--fs-label:11.5px;--fs-meta:13.5px;--fs-body:15px;--fs-heading:17px;--fs-title:22px;--fs-numeral:34px;--fw-regular:400;--fw-strong:600;--fw-title:700;--lh-tight:1.25;--lh-base:1.5;--lh-read:1.75;--shell-max:1240px;--page-pad:16px;--radius-sm:6px;--radius-pill:999px;--touch:44px;--ease:cubic-bezier(.2, .8, .2, 1)}@media (width>=640px){:root{--page-pad:24px}}@media (width>=1000px){:root{--page-pad:40px}}*,:before,:after{box-sizing:border-box}html,body,#root{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-base);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}h1,h2,p,ol,ul{margin:0}.app{min-height:100dvh;max-width:var(--shell-max);padding:0 var(--page-pad) env(safe-area-inset-bottom);padding-left:max(var(--page-pad), env(safe-area-inset-left));padding-right:max(var(--page-pad), env(safe-area-inset-right));flex-direction:column;margin:0 auto;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.top{border-bottom:1px solid var(--divider-strong);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:28px 0 20px;display:flex}.brand{min-width:0;color:var(--brand);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:currentColor;flex:none;width:34px;height:34px;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.brand-text{flex-direction:column;gap:3px;min-width:0;display:flex}.site-title{font-size:var(--fs-title);font-weight:var(--fw-title);line-height:var(--lh-tight);letter-spacing:.12em;color:var(--brand);white-space:nowrap}.site-title-en{font-size:var(--fs-meta);font-weight:var(--fw-regular);line-height:var(--lh-tight);letter-spacing:.06em;color:var(--text-3);white-space:nowrap}.top-actions{align-items:center;gap:8px;margin-right:-12px;display:flex}.text-btn{min-height:var(--touch);color:var(--accent);font-size:var(--fs-meta);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 4px;text-decoration:none;display:inline-flex}.text-btn:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.btn-outline{min-height:var(--touch);color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;text-decoration:none;display:inline-flex}.btn-face{border-radius:var(--radius-pill);font-size:var(--fs-meta);font-weight:var(--fw-strong);border:1px solid;align-items:center;gap:6px;padding:5px 14px;display:inline-flex}.btn-outline:not(:disabled):hover .btn-face{background:var(--accent-soft)}.btn-outline:disabled{color:var(--text-3);cursor:default}.icon-btn{width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);color:var(--text-2);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{color:var(--accent);background:var(--hover)}.center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px 0 12vh;display:flex}.center-note{font-size:var(--fs-body);color:var(--text-2)}.center-error{max-width:32em;font-size:var(--fs-meta);color:var(--danger)}.home{padding:28px 0 56px}.block-title{font-size:var(--fs-meta);font-weight:var(--fw-strong);letter-spacing:.08em;color:var(--text-2);margin-bottom:14px}.tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:8px 40px;padding:0;list-style:none;display:grid}.tile{border-top:1px solid var(--divider-strong);flex-direction:column;gap:6px;min-width:0;padding:16px 0 4px;display:flex}.tile-name{font-size:var(--fs-heading);font-weight:var(--fw-strong);line-height:var(--lh-tight);color:var(--text);overflow-wrap:anywhere}.tile-summary{font-size:var(--fs-meta);color:var(--text-2);overflow-wrap:anywhere}.tile-where{font-size:var(--fs-meta);color:var(--text-3);overflow-wrap:anywhere}.tile-actions{flex-wrap:wrap;gap:0 20px;margin-top:auto;margin-left:-4px;display:flex}.guide{padding:12px 0 40px}.guide-nav{margin-left:-4px}.guide-nav-end{border-top:1px solid var(--divider);max-width:40em;margin-top:32px;padding-top:12px}.guide-body{max-width:40em}.guide-head{border-bottom:1px solid var(--divider-strong);flex-direction:column;align-items:flex-start;gap:8px;padding:20px 0 24px;display:flex}.guide-kicker{font-size:var(--fs-label);letter-spacing:.08em;color:var(--text-3)}.guide-title{font-size:var(--fs-title);font-weight:var(--fw-title);line-height:var(--lh-tight);color:var(--text);overflow-wrap:anywhere}.guide-summary{font-size:var(--fs-body);color:var(--text-2)}.guide-section{padding:24px 0 4px}.guide-h{font-size:var(--fs-heading);font-weight:var(--fw-strong);line-height:var(--lh-tight);color:var(--text);margin-bottom:10px}.guide-p,.guide-steps,.guide-list{font-size:var(--fs-body);line-height:var(--lh-read);color:var(--text);overflow-wrap:anywhere}.guide-p+.guide-p,.guide-p+.guide-steps,.guide-p+.guide-list,.guide-steps+.guide-p,.guide-list+.guide-p,.guide-steps+.guide-list,.guide-list+.guide-steps{margin-top:10px}.guide-steps,.guide-list{padding-left:1.5em}.guide-steps li+li,.guide-list li+li{margin-top:6px}.guide-steps li::marker{color:var(--text-3);font-variant-numeric:tabular-nums}.guide-list li::marker{color:var(--text-3)}@media (width<=899.98px){.top{padding:16px 0 12px}.home{padding-top:20px}}
