:root{color-scheme:dark;--ink:#fff;--ink-soft:#cbd5e1;--ink-muted:#94a3b8;--night:#020306;--night-deep:#05070c;--night-raised:#0d111c;--night-soft:#151b2b;--line:#1e2638;--gold:#bf953f;--gold-bright:#fcf6ba;--gold-dark:#b38728;--gold-wash:#bf953f1a;--gold-line:#bf953f40;--success:#8bc4a2;--max-width:1180px;--font-sans:"Noto Sans TC Variable", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-serif:var(--font-sans)}*{box-sizing:border-box}html{background:var(--night);color:var(--ink);font-family:var(--font-sans);scroll-behavior:smooth}body{background:radial-gradient(circle at 80% -10%, var(--gold-wash), transparent 34rem), var(--night);min-width:320px;color:var(--ink);text-rendering:optimizelegibility;margin:0;line-height:1.65}a{color:inherit;text-underline-offset:.22em}a:hover{color:var(--gold-bright)}:focus-visible{outline:3px solid var(--gold-bright);outline-offset:4px}img,svg{max-width:100%;display:block}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;font-family:var(--font-sans)}.skip-link{z-index:100;background:var(--gold-bright);color:var(--night);padding:.7rem 1rem;font-weight:800;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(calc(100% - 2.25rem), var(--max-width));margin-inline:auto}.eyebrow{color:var(--gold);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .75rem;font-size:.75rem;font-weight:800}h1,h2,h3{text-wrap:balance;margin-top:0;line-height:1.12}h1,h2{font-family:var(--font-serif);font-weight:500}h1{letter-spacing:-.045em;max-width:16ch;font-size:clamp(2.6rem,7vw,5.75rem)}h2{letter-spacing:-.025em;font-size:clamp(1.8rem,4vw,3.2rem)}h3{font-size:1.1rem}p{margin-block:0 1rem}.lede{max-width:68ch;color:var(--ink-soft);font-size:clamp(1.05rem,2vw,1.25rem)}.page-hero{border-bottom:1px solid var(--line);padding:clamp(4rem,10vw,8rem) 0 3.5rem}.page-hero h1{max-width:19ch;font-size:clamp(2.7rem,6vw,5rem)}.section{border-bottom:1px solid var(--line);padding-block:clamp(3.5rem,7vw,6.5rem)}.section-heading{grid-template-columns:minmax(0,.85fr) minmax(17rem,1.15fr);align-items:end;gap:2rem;margin-bottom:2.5rem;display:grid}.section-heading p{max-width:56ch;color:var(--ink-soft)}.button{border:1px solid var(--gold-dark);min-height:3rem;color:var(--gold-bright);font:inherit;background:0 0;justify-content:center;align-items:center;padding:.7rem 1.1rem;font-weight:750;text-decoration:none;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.button:hover{border-color:var(--gold-bright);background:var(--gold-bright);color:var(--night)}.button[disabled]{cursor:not-allowed;border-color:var(--line);color:var(--ink-muted);opacity:.9}.button[disabled]:hover{color:var(--ink-muted);background:0 0}.text-link{color:var(--gold-bright);font-weight:750}.rule-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.rule-list li{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.45fr) minmax(0,1fr);gap:1.5rem;padding-block:1.1rem;display:grid}.rule-list strong{color:var(--gold-bright)}.prose{max-width:76ch}.prose h2{margin-top:3rem;font-size:clamp(1.65rem,3vw,2.4rem)}.prose h3{margin-top:2rem}.prose p,.prose li{color:var(--ink-soft)}.prose a{color:var(--gold-bright)}.meta-line{color:var(--ink-muted);flex-wrap:wrap;gap:.65rem 1.25rem;font-size:.86rem;display:flex}@media (width<=760px){.section-heading,.rule-list li{grid-template-columns:1fr}.section-heading{gap:.5rem}}.card-image-frame{isolation:isolate;width:100%;aspect-ratio:var(--card-image-aspect,500 / 315);contain:layout paint;background:#111725;display:block;position:relative;overflow:hidden}.card-image-frame:before{z-index:0;content:"";background:linear-gradient(105deg,#111725 18%,#222b3f 38%,#bf953f2e 50%,#222b3f 62%,#111725 82%) 0 0/220% 100%;transition:opacity .18s;animation:1.35s linear infinite card-image-shimmer;position:absolute;inset:0}.card-image-frame img{z-index:1;opacity:0;object-fit:contain;width:100%;height:100%;transition:opacity .18s;display:block;position:absolute;inset:0}.card-image-frame[data-image-state=loaded]{background:0 0}.card-image-frame[data-image-state=loaded]:before{opacity:0;animation:none}.card-image-frame[data-image-state=loaded] img{opacity:1}.card-image-frame[data-image-state=error]:before{background:#111725;animation:none}@keyframes card-image-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@media (prefers-reduced-motion:reduce){.card-image-frame:before{animation:none}}
