:root{--ink:#2B2B2B;--wine:#5C0B0E;--paper:#FAF8F5;--hairline:#E4DFD8;--muted:#8C857D;--muted-text:#6B655D;--surface:#FFFFFF;--on-ink:#FFFFFF}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Noto Sans TC,system-ui,sans-serif;line-height:1.7;letter-spacing:.02em}.card{background:#fff;border:1px solid var(--hairline);border-radius:12px;padding:16px}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100dvh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;padding:16px 12px;gap:4px}.navitem{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:rgba(250,248,245,.72);font-size:14px;cursor:pointer;border:0;background:transparent;text-align:left;width:100%;transition:background .15s ease,color .15s ease}.navitem:hover{background:rgba(250,248,245,.1);color:var(--paper)}.navitem[aria-current=page]{background:rgba(250,248,245,.14);color:var(--paper);font-weight:700}.navitem[aria-current=page]:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--wine);border-radius:0 2px 2px 0}.navitem:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:16px;gap:16px;margin-bottom:16px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.tile{border:1px solid var(--hairline);border-radius:12px;padding:16px}.tile,.tile--hero{background:var(--surface)}.tile--hero{border-color:var(--hairline)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-in{animation:fadeInUp .2s cubic-bezier(.22,.61,.36,1) both}@media (max-width:1024px){.bento{grid-template-columns:repeat(6,1fr)}.col-12,.col-7,.col-8{grid-column:1/-1}.col-3,.col-4,.col-5,.col-6{grid-column:span 3}}@media (max-width:768px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{display:inline-flex!important}}@media (max-width:600px){.bento{grid-template-columns:1fr}.bento>[class*=col-]{grid-column:1/-1}}