:root{--cream: #F5F1E8;--ink: #1A1A1A;--orange: #FF4500;--ink-60: rgba(26,26,26,.6);--ink-40: rgba(26,26,26,.4);--ink-20: rgba(26,26,26,.2);--ink-08: rgba(26,26,26,.08);--cream-70: rgba(245,241,232,.7);--cream-40: rgba(245,241,232,.4);--cream-20: rgba(245,241,232,.2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--cream);color:var(--ink);font-family:Noto Sans TC,sans-serif;font-size:1rem;font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased}p,li,td,th,label,input,textarea,select,button,a{font-size:max(1rem,1em);font-family:Noto Sans TC,sans-serif}a{color:inherit;text-decoration:none}.f-display{font-family:Fraunces,Noto Sans TC,serif}.f-en{font-family:Inter Tight,sans-serif}.label-en{font-family:Inter Tight,sans-serif;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-40)}.rule{border:none;border-top:1px solid var(--ink-08)}@keyframes rise{0%{opacity:0;transform:translateY(2.5rem)}to{opacity:1;transform:translateY(0)}}.rise{animation:rise .9s cubic-bezier(.22,1,.36,1) both}.rise-1{animation-delay:.05s}.rise-2{animation-delay:.2s}.rise-3{animation-delay:.35s}.rise-4{animation-delay:.5s}.reveal{opacity:0;transform:translateY(1.8rem);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}.site-nav{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:1px solid var(--ink-08);padding:1.1rem 3rem;display:flex;align-items:center;justify-content:space-between}.site-nav-logo{font-family:Fraunces,serif;font-size:1.25rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.site-nav-links{display:flex;align-items:center;gap:2rem;list-style:none}.site-nav-link{font-family:Noto Sans TC,sans-serif;font-size:1rem;color:var(--ink-40);transition:color .2s}.site-nav-link:hover,.site-nav-link.active{color:var(--ink)}.site-nav-cta{font-family:Noto Sans TC,sans-serif;font-size:1rem;background:#1a1a1a;color:#f5f1e8;padding:.55rem 1.4rem;display:inline-block;transition:background .2s;line-height:1.4}.site-nav-cta:hover{background:#ff4500;color:#f5f1e8}.site-footer{background:var(--ink);padding:2.5rem 3rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.25rem}.site-footer-link{font-family:Noto Sans TC,sans-serif;font-size:1rem;color:#f5f1e88c;transition:color .2s}.site-footer-link:hover{color:#f5f1e8}.prose-editorial{color:var(--ink);font-family:Noto Sans TC,sans-serif;font-size:1.05rem;line-height:1.9;max-width:68ch}.prose-editorial h2{font-family:Fraunces,serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;letter-spacing:-.02em;margin:3rem 0 1rem}.prose-editorial h3{font-size:1.15rem;font-weight:600;margin:2rem 0 .75rem}.prose-editorial p{margin-bottom:1.4rem}.prose-editorial ul,.prose-editorial ol{padding-left:1.5rem;margin-bottom:1.4rem}.prose-editorial li{margin-bottom:.4rem}.prose-editorial code{font-family:JetBrains Mono,monospace;font-size:.88em;background:var(--ink-08);padding:.15em .4em}.prose-editorial pre{background:var(--ink);color:var(--cream);padding:1.5rem;overflow-x:auto;margin-bottom:1.4rem;font-size:.875rem}.prose-editorial pre code{background:none;padding:0;color:inherit}.prose-editorial blockquote{border-left:3px solid var(--orange);padding-left:1.5rem;color:var(--ink-60);font-style:italic;margin-bottom:1.4rem}.prose-editorial a{border-bottom:1px solid var(--ink-20);transition:border-color .2s}.prose-editorial a:hover{border-color:var(--orange);color:var(--orange)}.prose-editorial img{width:100%;margin:2rem 0}.prose-editorial hr{border:none;border-top:1px solid var(--ink-08);margin:3rem 0}.col3-stack{display:grid;grid-template-columns:repeat(3,1fr)}.col4-stack{display:grid;grid-template-columns:repeat(4,1fr)}.nav-hamburger{display:none;width:28px;height:22px;position:relative;background:transparent;border:none;padding:0;cursor:pointer;z-index:110}.nav-hamburger span{position:absolute;left:0;width:100%;height:1.5px;background:var(--ink);transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .2s,top .35s cubic-bezier(.22,1,.36,1)}.nav-hamburger span:nth-child(1){top:4px}.nav-hamburger span:nth-child(2){top:50%;transform:translateY(-50%)}.nav-hamburger span:nth-child(3){top:calc(100% - 5.5px)}.nav-hamburger.is-open span:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.nav-hamburger.is-open span:nth-child(2){opacity:0}.nav-hamburger.is-open span:nth-child(3){top:50%;transform:translateY(-50%) rotate(-45deg)}.nav-overlay{position:fixed;inset:0;background:var(--cream);z-index:100;opacity:0;pointer-events:none;transition:opacity .35s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem 3rem}.nav-overlay.is-open{opacity:1;pointer-events:auto}.nav-overlay-list{list-style:none;display:flex;flex-direction:column;gap:1.5rem}.nav-overlay-link{font-family:Fraunces,serif;font-size:2.25rem;font-weight:300;letter-spacing:-.02em;color:var(--ink);line-height:1.1;display:inline-block;transform:translateY(1rem);opacity:0;transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s,color .2s}.nav-overlay.is-open .nav-overlay-link{transform:translateY(0);opacity:1}.nav-overlay.is-open li:nth-child(1) .nav-overlay-link{transition-delay:.1s}.nav-overlay.is-open li:nth-child(2) .nav-overlay-link{transition-delay:.16s}.nav-overlay.is-open li:nth-child(3) .nav-overlay-link{transition-delay:.22s}.nav-overlay.is-open li:nth-child(4) .nav-overlay-link{transition-delay:.28s}.nav-overlay.is-open li:nth-child(5) .nav-overlay-link{transition-delay:.34s}.nav-overlay-link.active{color:var(--orange)}.nav-overlay-num{font-family:Inter Tight,sans-serif;font-size:.65rem;font-weight:500;letter-spacing:.18em;color:var(--ink-40);margin-right:1rem;vertical-align:.4em}.nav-overlay-cta{margin-top:3rem;align-self:flex-start;background:#1a1a1a;color:#f5f1e8;padding:.9rem 2rem;font-family:Noto Sans TC,sans-serif;font-size:1rem;letter-spacing:.05em;transform:translateY(1rem);opacity:0;transition:transform .5s cubic-bezier(.22,1,.36,1) .42s,opacity .5s .42s,background .2s}.nav-overlay.is-open .nav-overlay-cta{transform:translateY(0);opacity:1}.nav-overlay-cta:hover{background:#ff4500}body.nav-locked{overflow:hidden}body.nav-locked .site-nav{z-index:120;background:transparent;border-bottom-color:transparent}@media(max-width:768px){.site-nav{padding:1rem 1.5rem}.site-nav-links{display:none}.nav-hamburger{display:block}.site-footer{padding:2rem 1.5rem}.col3-stack,.col4-stack{grid-template-columns:1fr}}@media(min-width:769px){.nav-overlay{display:none}}
