:root{--paper:#FAFAF7;--surface:#FFFFFF;--ink:#14213D;--ink-2:#4A5568;--line:#D9DED8;--main:#0066A8;--main-deep:#004E82;--main-tint:#E4F1F8;--on-main:#FFFFFF;--main-faint:#B9D6EA;--logo-lime:#7DB829;--logo-teal:#0088A8;--logo-blue:#0066AE;--plus:#1B5E32;--plus-deep:#12452A;--plus-bright:#8CCB3F;--plus-tint:#E7F2EA;--on-plus:#FFFFFF;--plus-block:#1B5E32;--on-plus-block:#FFFFFF;--plus-soft:#CDEBD6;--signal:#FFB703;--on-signal:#14213D;--year-2026:#C2410C;--year-2027:#3348C8;--year-2028:#A62A74;--year-2029:#6B46B8;--focus-ring:#004E82;--todo-bg:#FFF4D6;--todo-ink:#7A4E00;--font-sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:20px;--space-5:28px;--space-6:40px;--space-7:56px;--radius-0:0px;--radius-sm:4px;--radius-pill:999px;--measure:640px;--wrap:1080px;--rule-track:6px;--node:21px;--band-dark:#14213D;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0E1620;--surface:#15212C;--ink:#E6EDF2;--ink-2:#A3B1BE;--line:#2B3A47;--main:#5DB8F0;--main-deep:#9AD3F7;--main-tint:#10283A;--on-main:#0E1620;--main-faint:#1F4A68;--plus:#7FD39A;--plus-deep:#B3E6C2;--plus-tint:#14301F;--on-plus:#0E1620;--year-2026:#FF8A5C;--year-2027:#9AA8FF;--year-2028:#F58BC6;--year-2029:#BCA2F5;--focus-ring:#FFB703;--todo-bg:#3A2E0A;--todo-ink:#FFD66B;color-scheme:dark}}:root[data-theme=dark]{--paper:#0E1620;--surface:#15212C;--ink:#E6EDF2;--ink-2:#A3B1BE;--line:#2B3A47;--main:#5DB8F0;--main-deep:#9AD3F7;--main-tint:#10283A;--on-main:#0E1620;--main-faint:#1F4A68;--plus:#7FD39A;--plus-deep:#B3E6C2;--plus-tint:#14301F;--on-plus:#0E1620;--year-2026:#FF8A5C;--year-2027:#9AA8FF;--year-2028:#F58BC6;--year-2029:#BCA2F5;--focus-ring:#FFB703;--todo-bg:#3A2E0A;--todo-ink:#FFD66B;color-scheme:dark}:root{--white:var(--surface);--track:var(--main);--track-deep:var(--main-deep);--track-main:var(--main);--track-plus:var(--plus);--fs-1:13px;--fs-2:15px;--fs-3:17px;--fs-4:21px;--fs-5:27px;--fs-6:34px;--fs-7:42px;--r:var(--radius-sm)}body{background:var(--paper);color:var(--ink)}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-3);line-height:1.75;-webkit-text-size-adjust:100%}body{margin:0}a{color:var(--track);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}h1,h2,h3{font-weight:800;letter-spacing:-.01em;line-height:1.25;margin:0 0 .5em}h1{font-size:var(--fs-6)}h2{font-size:var(--fs-5)}h3{font-size:var(--fs-4)}p{margin:0 0 1em}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}.measure{max-width:var(--measure)}.section{padding:56px 0}.section.alt{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lead{font-size:var(--fs-4);color:var(--ink-2)}.muted{color:var(--ink-2)}.small{font-size:var(--fs-2)}.btn{display:inline-block;padding:11px 20px;border-radius:var(--r);font-weight:700;border:2px solid var(--track);background:var(--track);color:var(--on-main)}.btn:hover{background:var(--track-deep);border-color:var(--track-deep);text-decoration:none}.btn.ghost{background:transparent;color:var(--track)}.btn.ghost:hover{background:var(--main-tint)}.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.grid{display:grid;gap:28px}@media(min-width:760px){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}}.rule-left{border-left:4px solid var(--track);padding-left:18px}.tag{display:inline-block;font-size:var(--fs-1);padding:2px 8px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);margin:0 6px 6px 0;color:var(--ink-2)}.rank{display:inline-block;font-size:var(--fs-1);font-weight:700;padding:2px 8px;border-radius:var(--r);background:var(--signal);color:var(--ink)}table{border-collapse:collapse;width:100%;font-size:var(--fs-2)}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:700;color:var(--ink-2)}.todo{background:var(--todo-bg);color:var(--todo-ink);border-left:4px solid var(--signal);padding:10px 14px;border-radius:var(--r);font-size:var(--fs-2);margin:16px 0}.todo:before{content:"TODO ";font-weight:800}.prose{max-width:var(--measure)}.prose h2{margin-top:1.6em}.prose img{max-width:100%;height:auto}.prose li{margin-bottom:.4em}.prose .wide{max-width:none}.nowrap{white-space:nowrap}.track{position:relative;margin:36px 0 8px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(5,1fr)}.track:before{content:"";position:absolute;left:10%;right:10%;top:9px;height:3px;background:var(--line)}.track .fill{position:absolute;left:10%;top:9px;height:3px;background:var(--track);width:0;transition:width 1.2s ease}.track li{position:relative;text-align:center;padding-top:28px;font-size:var(--fs-2);color:var(--ink-2)}.track li:before{content:"";position:absolute;left:50%;top:0;width:21px;height:21px;margin-left:-10px;border-radius:50%;background:var(--paper);border:3px solid var(--line)}.track li.done:before{background:var(--track);border-color:var(--track)}.track li.now{color:var(--ink);font-weight:800}.track li.now:before{background:var(--signal);border-color:var(--ink);box-shadow:0 0 0 5px color-mix(in srgb,var(--signal) 35%,transparent)}.track li small{display:block;font-weight:400;color:var(--ink-2)}@media(prefers-reduced-motion:reduce){.track .fill{transition:none}}.track li a{color:inherit}.track-open{list-style:none;padding:0;margin:8px 0 0 10%;font-size:var(--fs-2);color:var(--ink-2)}.track-open li{position:relative;padding-left:30px}.track-open li:before{content:"";position:absolute;left:1px;top:6px;width:13px;height:13px;border:3px solid var(--track);border-radius:2px;background:var(--paper)}.track-open small{display:block}@media(max-width:600px){.track-open{margin-left:0}}@media(max-width:600px){.track{grid-template-columns:1fr;gap:4px}.track:before,.track .fill{display:none}.track li{text-align:left;padding:8px 0 8px 34px}.track li:before{left:0;top:12px;margin:0}}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 95%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:16px}.brand{display:inline-flex;align-items:center;white-space:nowrap}.brand-logo{display:block;height:44px;width:auto}.brand-logo-dark{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo-light{display:none}:root:not([data-theme=light]) .brand-logo-dark{display:block}}:root[data-theme=dark] .brand-logo-light{display:none}:root[data-theme=dark] .brand-logo-dark{display:block}@media(max-width:640px){.brand-logo{height:36px}}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{padding:8px 12px;border-radius:var(--r);color:var(--ink);font-weight:500;font-size:var(--fs-2)}.nav a[aria-current=page]{background:var(--white);border:1px solid var(--line)}.nav a:hover{text-decoration:none;background:var(--white)}.menu-btn{display:none}@media(max-width:820px){.menu-btn{display:inline-block;background:none;border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;font:inherit}.nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 20px 16px;flex-direction:column}.nav.open{display:flex}}.site-footer{border-top:1px solid var(--line);background:var(--white);padding:40px 0;font-size:var(--fs-2);color:var(--ink-2)}.site-footer .grid{gap:24px}.site-footer h3{font-size:var(--fs-2);color:var(--ink);margin-bottom:.4em}.site-footer ul{list-style:none;padding:0;margin:0}.crumb{font-size:var(--fs-2);color:var(--ink-2);margin-bottom:8px}.page-head{padding:40px 0 24px}.list{list-style:none;padding:0;margin:0}.list li{padding:16px 0;border-bottom:1px solid var(--line)}.list li:first-child{border-top:1px solid var(--line)}.meta{font-size:var(--fs-2);color:var(--ink-2)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 24px}.tabs button{font:inherit;padding:8px 14px;border:1px solid var(--line);background:var(--white);border-radius:var(--r);cursor:pointer}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-weight:700}summary::marker{color:var(--track)}.stat{padding:16px 0}.stat b{display:block;font-size:var(--fs-6);font-weight:800;line-height:1.1}.stat span{color:var(--ink-2);font-size:var(--fs-2)}.video{aspect-ratio:16/9;width:100%;border:0;border-radius:var(--r);background:var(--band-dark)}.hero-banner{display:block;width:100%;height:auto;border-radius:var(--r);margin:24px 0 4px}.logo-band{background:var(--band-dark);border-radius:var(--r);padding:28px 32px;margin:40px 0;text-align:center}.logo-band img{display:block;width:100%;max-width:620px;height:auto;margin:0 auto 20px}.logo-band-note{color:var(--plus-soft);font-size:var(--fs-1);margin:14px 0 0}.track-main{--accent:var(--track-main)}.track-plus{--accent:var(--track-plus)}.rule-left.track-main,.rule-left.track-plus{border-left-color:var(--accent)}.page-head.track-main h1,.page-head.track-plus h1{border-left:6px solid var(--accent);padding-left:14px}.track-badge{display:inline-block;font-size:var(--fs-1);font-weight:700;padding:1px 8px;border-radius:999px;color:var(--on-main);margin-right:6px}.track-badge.main{background:var(--main);color:var(--on-main)}.track-badge.plus{background:var(--plus);color:var(--on-plus)}a.track-badge:hover{text-decoration:none;opacity:.9}.nav a.nav-main{box-shadow:inset 0 -3px 0 var(--track-main)}.nav a.nav-plus{box-shadow:inset 0 -3px 0 var(--track-plus)}.events{margin:8px 0}.events th{width:9em;white-space:nowrap}.cohort-table td,.cohort-table th{white-space:nowrap}@media(max-width:759px){.cohort-table{display:block;overflow-x:auto}}.pager{display:flex;justify-content:space-between;padding-top:8px;padding-bottom:56px}.hero-dual{display:grid;gap:28px;align-items:stretch}@media(min-width:860px){.hero-dual{grid-template-columns:2fr 1fr}}.hero-main{background:var(--main-tint);border-top:6px solid transparent;border-image:linear-gradient(90deg,var(--logo-lime),var(--logo-teal),var(--logo-blue)) 1;padding:26px 28px 30px}.hero-plus{background:var(--plus-block);color:var(--on-plus-block);padding:26px 28px 30px;display:flex;flex-direction:column;gap:6px}.hero-title{font-size:56px;font-weight:900;line-height:1.1;letter-spacing:-.01em;margin:0 0 12px;text-wrap:balance}@media(max-width:640px){.hero-title{font-size:38px}}.hero-title .slot{color:var(--main)}.hero-title .num{font-family:var(--font-mono);font-weight:700}.hero-title a{color:var(--ink)}.hero-title a:hover{text-decoration:none}.hero-plus .hero-title{font-size:40px;margin:4px 0}.hero-plus .hero-title a{color:var(--on-plus-block)}.hero-plus .pp{font-family:var(--font-mono);font-weight:700;color:var(--plus-bright);position:relative;top:-.28em;margin-left:.04em;letter-spacing:-.06em}.hero-status{font-size:var(--fs-4);font-weight:700;color:var(--main);margin:0 0 .4em}.hero-plus .hero-status{color:var(--on-plus-block);margin:0}.hero-status a{color:inherit}.hero-meta{font-size:var(--fs-2);color:var(--plus-soft);margin:0}.hero-meta a{color:var(--on-plus-block);text-decoration:underline;text-underline-offset:3px}.hero-mark{display:block}.hero-plus :focus-visible{outline-color:var(--on-plus-block)}.team-list{columns:3 13em;column-gap:32px;padding-left:2.2em;margin:0 0 1.5em}.team-list li{break-inside:avoid;margin-bottom:.3em}p:not(.hero-title):not(.hero-status) a,.prose li a,.meta a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.gallery{margin-top:var(--space-6)}.gallery-grid{list-style:none;padding:0;margin:var(--space-4) 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-2)}.gallery-grid.g6{grid-template-columns:repeat(6,1fr)}@media(max-width:720px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid.g6{grid-template-columns:repeat(3,1fr)}}.gallery-grid li{margin:0}.gallery-grid a{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--line);border-radius:var(--radius-sm)}.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.gallery-grid a:hover img,.gallery-grid a:focus-visible img{transform:scale(1.04)}.gallery-grid a:focus-visible{outline:3px solid var(--signal);outline-offset:2px}.lightbox{border:0;padding:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;background:transparent;color:#fff}.lightbox::backdrop{background:#050a14eb}.lightbox figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-7)}.lightbox figure img{max-width:100%;max-height:calc(100vh - 120px);width:auto;height:auto;object-fit:contain}.lightbox figcaption{color:#cfd8e3}.lightbox button{position:fixed;background:#ffffff1f;color:#fff;border:0;width:48px;height:48px;border-radius:var(--radius-pill);font-size:30px;line-height:1;cursor:pointer}.lightbox button:hover,.lightbox button:focus-visible{background:#ffffff47;outline:2px solid #fff}.lb-prev{left:var(--space-3);top:50%;transform:translateY(-50%)}.lb-next{right:var(--space-3);top:50%;transform:translateY(-50%)}.lb-close{right:var(--space-3);top:var(--space-3)}@media(max-width:720px){.lightbox figure{padding:var(--space-6) var(--space-2)}.lb-prev,.lb-next{top:auto;bottom:var(--space-4);transform:none}}@media(prefers-reduced-motion:reduce){.gallery-grid img{transition:none}}.banner{position:relative;isolation:isolate;overflow:hidden;background:var(--band-dark);color:#fff;--accent-a:var(--logo-lime);--accent-b:var(--logo-teal);--accent-c:var(--logo-blue);--overlay:20,33,61}.banner.track-plus{--accent-a:var(--plus-bright);--accent-b:var(--plus-bright);--accent-c:var(--plus);--overlay:18,69,42}.banner-bg{position:absolute;inset:0;z-index:-2;margin:0}.banner-bg img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.banner:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(var(--overlay),.72),rgba(var(--overlay),.55) 40%,rgba(var(--overlay),.18))}.banner:after{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--accent-a),var(--accent-b),var(--accent-c))}.banner-pattern{background-color:var(--band-dark);background-image:radial-gradient(rgba(255,255,255,.14) 1.2px,transparent 1.3px),radial-gradient(rgba(255,255,255,.07) 1.2px,transparent 1.3px);background-size:28px 28px,28px 28px;background-position:0 0,14px 14px}.banner-pattern:before{background:linear-gradient(90deg,rgba(var(--overlay),.55),rgba(var(--overlay),0) 70%)}.banner-section .banner-body{min-height:280px;padding-top:52px;padding-bottom:40px;display:flex;flex-direction:column;justify-content:flex-end}.banner-pattern .banner-body{min-height:210px}.banner-body h1{color:#fff;font-size:var(--fs-7);margin:0 0 .3em;text-wrap:balance;text-shadow:0 2px 8px rgba(0,0,0,.45)}.banner-body .lead{color:#ffffffeb;margin-bottom:.6em;text-shadow:0 1px 6px rgba(0,0,0,.45)}.banner-body .crumb{color:#fffc;margin-bottom:12px}.banner-body a:not(.btn):not(.track-badge):not(.hero-title a){color:#fff;text-decoration:underline;text-underline-offset:3px}.banner-body .btn-row{margin-top:14px}.banner-body .btn{background:#fff;border-color:#fff;color:var(--band-dark)}.banner-body .btn:hover{background:#ffffffe0;border-color:#ffffffe0}.banner-body .btn.ghost{background:transparent;color:#fff;border-color:#ffffffb3}.banner-body .btn.ghost:hover{background:#ffffff24;border-color:#fff}.banner-body :focus-visible{outline-color:var(--signal)}@media(max-width:640px){.banner-section .banner-body{min-height:220px;padding-top:40px;padding-bottom:28px}.banner-body h1{font-size:var(--fs-6)}.banner:before{background:linear-gradient(180deg,rgba(var(--overlay),.35),rgba(var(--overlay),.8))}}.banner-hero:after{display:none}.banner-hero:before{background:linear-gradient(180deg,rgba(var(--overlay),.28),rgba(var(--overlay),.46))}.banner-hero.section{padding:48px 0 56px}@media(min-width:860px){.banner-hero.section{padding:72px 0 64px}.banner-hero .hero-dual{max-width:860px;gap:20px}}.banner-hero .banner-bg img{object-position:center 45%}.banner-hero .hero-main,.banner-hero .hero-plus{box-shadow:0 12px 32px #00000047}.banner-hero .hero-main{background:var(--surface)}.banner-photo{--dim:1;--overlay:3,10,5}.banner-photo:before{background:radial-gradient(ellipse at 50% 45%,rgba(var(--overlay),calc(.6*var(--dim))),rgba(var(--overlay),calc(.3*var(--dim))) 60%,rgba(var(--overlay),calc(.6*var(--dim))))}.banner-photo:after{display:none}.banner-photo.section{padding:96px 0 88px}.hero-photo-body{text-align:center;align-items:center;max-width:860px}.hero-logo{display:block;width:184px;height:auto;margin:0 auto 14px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}@media(max-width:640px){.hero-logo{width:150px}}.hero-photo-body .kicker{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;font-size:var(--fs-2);color:#fffc;margin:0 0 8px}.hero-photo-body .hero-title{font-size:60px;color:#fff;margin-bottom:16px;text-shadow:0 2px 12px rgba(0,0,0,.5)}.hero-photo-body .hero-title a,.hero-photo-body .hero-title .slot{color:#fff}.hero-title .ytp{font-family:var(--font-mono);font-weight:700;letter-spacing:.06em;margin-right:.05em}.hero-photo-body .hero-title .slot{color:var(--logo-lime)}.hero-photo-body .hero-status{color:#fff;font-size:var(--fs-5);text-shadow:0 1px 8px rgba(0,0,0,.5)}.hero-photo-body .lead{max-width:640px;margin-left:auto;margin-right:auto}.hero-photo-body .btn-row{justify-content:center;margin-top:22px}@media(max-width:640px){.hero-photo-body .hero-title{font-size:38px}.banner-photo.section{padding:56px 0 48px}}.hero-plus-band{background:var(--plus-block);color:var(--on-plus-block);padding:22px 0}.hero-plus-band .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 28px}.hero-plus-band .hero-title{font-size:26px;margin:0}.hero-plus-band .hero-title a{color:var(--on-plus-block);display:inline-flex;align-items:center;gap:8px}.hero-plus-band .pp{font-family:var(--font-mono);font-weight:700;color:var(--plus-bright);position:relative;top:-.28em;letter-spacing:-.06em}.hero-plus-band .hero-status{color:var(--on-plus-block);font-size:var(--fs-3);margin:0}.hero-plus-band .hero-status a{color:inherit;text-decoration:underline;text-underline-offset:3px}.hero-plus-band .hero-meta{color:var(--plus-soft);margin:0;font-weight:400}.hero-plus-band .hero-meta a{color:var(--on-plus-block)}.hero-plus-band :focus-visible{outline-color:var(--on-plus-block)}
