:root{color-scheme:light;--bg:#f2f1ee;--raised:#faf9f7;--sunken:#e8e7e2;--ink:#191c1a;--muted:#62665f;--line:#cdd0c7;--accent:#367e70;--accent-soft:#e0eae3;--inverse:#f7f6f2;--shadow:0 16px 45px #19362a12}
:root[data-theme=dark]{color-scheme:dark;--bg:#151917;--raised:#1c211e;--sunken:#111512;--ink:#edece5;--muted:#a8b1a6;--line:#394139;--accent:#8bc4ad;--accent-soft:#25392f;--inverse:#132219;--shadow:0 16px 45px #0003}
@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--bg:#151917;--raised:#1c211e;--sunken:#111512;--ink:#edece5;--muted:#a8b1a6;--line:#394139;--accent:#8bc4ad;--accent-soft:#25392f;--inverse:#132219;--shadow:0 16px 45px #0003}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a,button,select{touch-action:manipulation}button,select{font:inherit;color:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}a:hover{color:var(--accent)}button:disabled{cursor:wait;opacity:.55}::selection{background:var(--accent);color:var(--bg)}.page{max-width:1280px;margin:auto;border-inline:1px solid var(--line)}.nav{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 max(24px,calc((100vw - 1200px)/2));position:sticky;top:0;z-index:10;background:var(--bg)}.wordmark{font-size:23px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:10px;white-space:nowrap}.mark{display:inline-grid;place-items:center;background:var(--accent);color:var(--inverse);height:30px;width:30px;border-radius:5px}.nav-caption{font-size:10px;font-family:monospace;font-weight:400;color:var(--muted);letter-spacing:0}.nav nav{margin-left:auto;display:flex;gap:27px;font-size:12px}.theme-control{display:flex;align-items:center;gap:6px;border-left:1px solid var(--line);padding-left:20px}.theme-control select{max-width:110px;border:0;background:var(--bg);font-size:12px;cursor:pointer}.nav-github{font-size:11px;font-family:monospace;border:1px solid var(--ink);padding:7px 14px}.section-label{display:flex;justify-content:space-between;gap:16px;text-transform:uppercase;font:10px/1.5 monospace;letter-spacing:1px;color:var(--muted);padding:17px 0;border-bottom:1px solid var(--line)}.section-label b{color:var(--accent);font-weight:400;margin-right:9px}.hero{padding:0 40px}.hero-content{text-align:center;padding:65px 20px 58px}.avatar-frame{width:88px;height:88px;margin:0 auto 24px;position:relative}.avatar-frame img{border-radius:18px;display:block;filter:saturate(.8);box-shadow:var(--shadow)}.avatar-frame>span{position:absolute;right:-11px;bottom:-8px;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--inverse);border:4px solid var(--bg);font-size:18px}.eyebrow,.micro{font:10px/1.8 monospace;letter-spacing:1.2px;color:var(--muted)}.eyebrow{margin:0 0 20px}.hero .eyebrow{color:var(--accent)}h1{font-size:clamp(64px,8.2vw,108px);line-height:1.06;letter-spacing:-6px;font-weight:600;margin:10px 0 25px}em{font-family:Georgia,"Noto Serif TC",serif;font-style:italic;font-weight:400;color:var(--accent)}.hero-subtitle{font-size:clamp(22px,3vw,36px);font-weight:500;letter-spacing:-1.3px;display:inline-block;margin-top:13px}.hero-description{font-size:15px;line-height:1.9;color:var(--muted);margin:0 auto 29px}.actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:48px;padding:12px 22px;border:1px solid var(--line);font-size:12px;transition:background .2s,transform .2s}.button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.button:hover{background:var(--accent-soft);color:var(--accent);transform:translateY(-2px)}.button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--inverse)}.hero .micro{margin-top:23px;font-size:9px}.hero-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;padding:14px 0;font:10px/1.5 monospace;color:var(--muted);letter-spacing:.5px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:7px}.hero-bottom>span:last-child{font-size:9px}main>section:not(.hero){border-top:1px solid var(--line);padding:0 40px 38px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:40px 0 30px}.section-heading .eyebrow{margin-bottom:12px}h2{font-size:clamp(30px,4vw,48px);line-height:1.35;font-weight:500;letter-spacing:-1.6px;margin:0}h2 em{font-family:Georgia,"Noto Serif TC","Songti TC",serif}.text-link{font-size:11px;border-bottom:1px solid var(--line);padding-bottom:5px;white-space:nowrap}.repo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.filters{display:flex;gap:4px;flex-wrap:wrap}.filters button,.refresh{font-size:10px;border:1px solid var(--line);padding:7px 13px;background:transparent}.filters button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filters button:hover,.refresh:hover{border-color:var(--accent)}.data-status{font:10px/1.7 monospace;color:var(--muted);margin:13px 0 18px}.repo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.repo-card{border:1px solid var(--line);background:var(--raised);position:relative;display:flex;flex-direction:column;min-width:0;transition:transform .2s,border-color .2s}.repo-card:hover{border-color:var(--accent);transform:translateY(-3px)}.repo-art{height:142px;overflow:hidden;position:relative;background:var(--accent-soft);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.repo-art .art-symbol{font-family:Georgia,serif;font-size:74px;line-height:1;color:var(--accent);letter-spacing:-6px;transform:rotate(-8deg);opacity:.75}.repo-art:before{content:"";position:absolute;inset:20px;border:1px solid var(--accent);opacity:.2}.repo-art:after{content:"";position:absolute;height:200px;width:200px;right:-65px;top:-130px;border:1px solid var(--accent);border-radius:50%;opacity:.25}.repo-art.blue{background:var(--sunken)}.repo-art.blue .art-symbol{transform:rotate(0deg);font-family:monospace;font-size:50px;letter-spacing:-8px}.art-label{position:absolute;bottom:12px;left:16px;font:8px monospace;letter-spacing:1.5px;color:var(--accent)}.repo-content{padding:18px;flex:1;display:flex;flex-direction:column}.repo-top{display:flex;justify-content:space-between;color:var(--muted);font:9px monospace;letter-spacing:.5px}.repo-card h3{font-size:17px;line-height:1.4;letter-spacing:-.5px;margin:15px 0 10px;overflow-wrap:anywhere;font-weight:600}.repo-card p{font-size:11px;line-height:1.85;color:var(--muted);margin:0 0 25px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.repo-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;font:9px/1.6 monospace;color:var(--muted)}.repo-footer{border-top:1px solid var(--line);margin-top:14px;padding-top:11px;display:flex;justify-content:space-between;font:9px monospace;color:var(--accent)}.repo-card a:after{content:"";position:absolute;inset:0}.repo-card a:focus-visible:after{outline:2px solid var(--accent);outline-offset:3px}.footnote{font-size:10px;line-height:1.8;color:var(--muted);margin:20px 0 0}.loading-card{padding:35px;border:1px solid var(--line);grid-column:1/-1;color:var(--muted)}.section-description{font-size:12px;color:var(--muted);margin:0 0 4px}.translation-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.platform{padding:24px;border:1px solid var(--line);background:var(--raised)}.platform header{display:flex;align-items:center;justify-content:space-between}.platform header .micro{margin:0 0 8px;font-size:9px}.platform h3{font-size:27px;font-weight:500;letter-spacing:-1px;margin:0;display:flex;align-items:center;gap:10px}.platform-dot{height:7px;width:7px;border-radius:50%}.green{background:var(--accent)}.orange{background:#bd8153}.square-link{height:38px;width:38px;border:1px solid var(--line);display:grid;place-items:center}.platform-intro{font-size:11px;color:var(--muted);margin:20px 0}.translation-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:11px 0;font-size:12px}.translation-item small{font:8px monospace;color:var(--muted);margin-left:auto;letter-spacing:.4px}.translation-item>span:last-child{color:var(--muted)}details summary{border-top:1px solid var(--line);padding:12px 0;font-size:11px;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary>span{float:right;color:var(--accent)}details[open] summary>span{transform:rotate(45deg)}.platform-note{font-size:9px;line-height:1.7;color:var(--muted);margin:12px 0 0}.about-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:90px;padding:45px 0}.about-layout .eyebrow{margin-bottom:15px}.about-layout h2{font-size:38px}.about-lead{font-size:14px;margin:25px 0 12px}.body-copy{font-size:12px;color:var(--muted);line-height:2;margin-bottom:24px;max-width:490px}.principles>div{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:19px}.principles>div:last-child{margin-bottom:0}.principles span{font:9px monospace;color:var(--accent);letter-spacing:1px}.principles h3{font-size:18px;font-weight:500;margin:9px 0 3px}.principles p{font-size:11px;color:var(--muted);margin:0}.languages{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:23px;font-size:11px}.languages .micro{font-size:9px}.closing{text-align:center;background:var(--accent-soft);padding:60px 20px!important}.closing h2{margin-bottom:25px}.closing .eyebrow{font-size:9px;color:var(--accent)}footer{display:flex;gap:25px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:30px 40px}footer>div{display:flex;gap:25px;font:10px monospace}footer>.micro{font-size:8px}footer .wordmark{font-size:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-70px;left:15px;padding:8px;background:var(--ink);color:var(--bg);z-index:99}.skip:focus{top:10px}
@media(min-width:1450px){.hero-content{padding-top:78px;padding-bottom:73px}}@media(max-width:900px){.nav-caption{display:none}.nav{gap:15px}.nav nav{gap:15px}.repo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout{gap:40px}.about-layout h2{font-size:32px}footer>.micro{width:100%}}
@media(max-width:600px){.nav{height:64px;padding:0 16px;gap:12px}.wordmark{font-size:21px;gap:7px}.nav nav{gap:12px}.nav nav a{font-size:10px}.nav nav a:last-child{display:none}.nav-github{display:none}.theme-control{padding-left:10px;gap:2px}.theme-control select{font-size:10px;width:81px}.mark{width:25px;height:25px;font-size:19px}.page{border:0}.hero{padding:0 20px}.section-label{font-size:8px;letter-spacing:.5px}.section-label>span:last-child{font-size:7px;text-align:right}.hero-content{padding:45px 0 40px}h1{font-size:75px;letter-spacing:-4.5px}.hero-subtitle{font-size:22px;letter-spacing:-1px;line-height:1.55;margin-top:16px}.hero-description{font-size:12px}.actions .button{font-size:10px;padding:11px 15px;gap:18px;min-height:43px}.hero-bottom{font-size:9px}.hero-bottom>span:last-child{display:none}main>section:not(.hero){padding:0 20px 28px}.section-heading{padding:30px 0 22px;gap:20px;align-items:flex-start;flex-direction:column}h2{font-size:32px}.section-heading .eyebrow{font-size:9px}.text-link{font-size:10px}.repo-grid{grid-template-columns:minmax(0,1fr);gap:16px}.repo-art{height:150px}.repo-content{padding:21px}.repo-card h3{font-size:20px}.repo-card p{font-size:12px}.filters button,.refresh{font-size:9px;padding:7px 9px}.repo-toolbar{gap:7px}.data-status{font-size:9px}.translation-columns{grid-template-columns:minmax(0,1fr);gap:17px}.platform{padding:22px}.about-layout{grid-template-columns:1fr;gap:35px;padding:30px 0}.about-layout h2{font-size:32px}.languages{flex-wrap:wrap;justify-content:flex-start;column-gap:22px;row-gap:12px}.languages .micro{width:100%}.closing h2{font-size:31px}footer{padding:25px 20px}footer>div{gap:22px}.footnote{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Editorial monochrome revision: Archivo display, technical labels, outlined emphasis. */
:root{--bg:#f2f1ee;--raised:#f7f6f3;--sunken:#e7e6e2;--ink:#101014;--muted:#656568;--line:#10101429;--accent:#101014;--accent-soft:#e9e8e4;--inverse:#f2f1ee;--shadow:none}
:root[data-theme=dark]{--bg:#121316;--raised:#101014;--sunken:#08090b;--ink:#f2f1ee;--muted:#a7a6a8;--line:#f2f1ee29;--accent:#f2f1ee;--accent-soft:#1b1c20;--inverse:#121316;--shadow:none}
@media(prefers-color-scheme:dark){:root[data-theme=system]{--bg:#121316;--raised:#101014;--sunken:#08090b;--ink:#f2f1ee;--muted:#a7a6a8;--line:#f2f1ee29;--accent:#f2f1ee;--accent-soft:#1b1c20;--inverse:#121316;--shadow:none}}
body{font-family:Inter,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;overflow-x:clip}.nav{height:49px;gap:20px;backdrop-filter:blur(12px);background:color-mix(in srgb,var(--bg) 94%,transparent)}.nav .wordmark{font-family:Archivo,sans-serif;font-stretch:118%;font-weight:800;letter-spacing:-1px}.mark{border-radius:0}.page{max-width:1440px;margin-inline:42px}.nav-caption,.micro,.eyebrow,.section-label,.repo-top,.repo-meta,.repo-footer,.art-label,.data-status,.principles span,.scroll-ruler,.marquee{font-family:"Geist Mono",monospace}.section-label{position:sticky;top:49px;z-index:5;background:var(--bg);font-size:10px;letter-spacing:1.6px;min-height:48px;align-items:center}.hero{padding-inline:32px}.hero-content{padding:90px 0 92px;position:relative}.hero-content:before,.hero-content:after{content:"+";position:absolute;top:22px;font:18px monospace;color:var(--muted)}.hero-content:before{left:-38px}.hero-content:after{right:-38px}.avatar-frame{margin-bottom:28px}.avatar-frame img{filter:grayscale(1);border-radius:0;border:1px solid var(--line)}.avatar-frame>span{background:var(--bg);color:var(--ink);border-radius:0;border:1px solid var(--line);right:-9px;bottom:-9px}.hero .eyebrow{letter-spacing:2px;font-size:10px}h1,h2,.about-layout h2,.platform h3,.repo-card h3,.principles h3{font-family:Archivo,"Noto Sans TC",sans-serif;font-stretch:118%;font-weight:620}h1{font-size:clamp(82px,11.8vw,170px);line-height:.98;letter-spacing:-.055em;margin:30px 0}em,h2 em{font:inherit;font-style:normal;color:transparent;-webkit-text-stroke:1.6px var(--ink);paint-order:stroke fill}h1 em{-webkit-text-stroke:2.4px var(--ink)}.hero-subtitle{display:block;font-size:clamp(19px,2.3vw,30px);letter-spacing:-.04em;margin:0 0 20px;font-weight:500}.hero-description{font-size:14px;max-width:650px}.button{text-transform:uppercase;font-family:"Geist Mono",monospace;letter-spacing:.5px;border-color:var(--ink);min-height:46px;border-radius:0}.button:hover{transform:none;background:var(--ink);color:var(--bg)}.button.primary:hover{background:var(--bg);color:var(--ink)}.section-heading{padding:56px 0 38px}h2{font-size:clamp(36px,4.6vw,66px);line-height:1.05;letter-spacing:-.045em}.section-heading .eyebrow{margin-bottom:22px}.repo-grid{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.repo-card{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg);transition:background .18s,color .18s}.repo-card:hover{transform:none;background:var(--ink);color:var(--bg)}.repo-card:hover .repo-content{--muted:var(--bg);--accent:var(--bg);--line:currentColor}.repo-art{height:180px;background:var(--sunken)!important}.repo-art:before{inset:16px;border-color:var(--muted)}.repo-art .art-symbol,.repo-art.blue .art-symbol{font-family:Archivo,sans-serif;font-stretch:118%;font-size:88px;font-weight:620;letter-spacing:-.06em;transform:none;color:transparent;-webkit-text-stroke:1px var(--ink);opacity:1;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.repo-card:hover .art-symbol{transform:scale(1.12) translateY(-4px)}.repo-art:after{border-radius:0;height:11px;width:11px;right:11px;top:11px;opacity:.7;transform:rotate(45deg)}.repo-content{padding:25px}.repo-card h3{font-size:22px;letter-spacing:-.035em}.repo-card a:hover{color:inherit}.translation-columns{gap:0;border:1px solid var(--line)}.platform{border:0;background:var(--bg);padding:30px}.platform+ .platform{border-left:1px solid var(--line)}.platform h3{font-size:36px}.platform-dot{border-radius:0;background:var(--ink)}.translation-item{transition:padding .2s,background .2s}.translation-item:hover{padding-inline:9px;background:var(--ink);color:var(--bg)}.translation-item:hover small,.translation-item:hover>span:last-child{color:inherit}.about-layout{gap:100px;padding-block:60px}.about-layout h2{font-size:clamp(32px,3.8vw,52px);line-height:1.2}.closing{background:var(--bg);padding:90px 20px!important}.closing h2{font-size:clamp(34px,5vw,72px)}footer{border-top:1px solid var(--line)}.marquee{border-top:1px solid var(--line);overflow:hidden;padding:17px 0;font-size:11px;letter-spacing:2px}.marquee-track{display:flex;width:max-content;animation:drift 36s linear infinite}.marquee-track span{white-space:nowrap;flex-shrink:0}.scroll-ruler{position:fixed;right:10px;top:155px;bottom:40px;width:22px;z-index:8;display:flex;align-items:center;gap:17px;flex-direction:column;font-size:8px;letter-spacing:1px;color:var(--muted)}.scroll-ruler>span:first-child{writing-mode:vertical-rl}.scroll-ruler>div{flex:1;width:9px;background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 9px);position:relative}.scroll-ruler>div:after{content:"";height:30px;width:9px;position:absolute;top:calc(var(--progress,0) * (100% - 30px));background:var(--ink)}.language-control select{font-size:10px;border:0;background:var(--bg);max-width:96px}.reveal-ready{opacity:0;transform:translateY(30px);filter:blur(4px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .9s}.reveal-ready.is-visible{opacity:1;transform:none;filter:blur(0)}.hero-content>*{animation:arrive 1s cubic-bezier(.16,1,.3,1) both}.hero-content>:nth-child(2){animation-delay:.08s}.hero-content>:nth-child(3){animation-delay:.18s}.hero-content>:nth-child(4){animation-delay:.26s}.hero-content>:nth-child(5){animation-delay:.34s}.hero-content>:nth-child(6){animation-delay:.42s}.hero-content>:nth-child(7){animation-delay:.5s}@keyframes arrive{from{opacity:0;filter:blur(9px);transform:translateY(35px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes drift{to{transform:translateX(-50%)}}
@media(min-width:1524px){.page{margin-inline:auto}}@media(max-width:900px){.nav{gap:12px}.nav-github{display:none}.theme-control{padding-left:10px}.page{margin-inline:22px}.scroll-ruler{right:3px;width:15px}.hero-content{padding:75px 0}.about-layout{gap:40px}.platform{padding:22px}}
@media(max-width:600px){.nav{height:55px;gap:8px;padding-inline:12px}.nav nav{gap:10px}.nav nav a{font-size:10px}.nav nav a:nth-child(2){display:none}.theme-control{padding-left:7px}.theme-control select{width:75px}.language-control select{width:78px;font-size:9px}.page{margin-inline:14px;border-inline:1px solid var(--line)}.hero{padding-inline:18px}.hero-content{padding:57px 0 55px}h1{font-size:clamp(67px,16vw,94px);letter-spacing:-.06em}.hero-subtitle{font-size:19px;line-height:1.55}.hero-content:before{left:-24px}.hero-content:after{right:-24px}.section-label{top:55px;font-size:8px}main>section:not(.hero){padding-inline:18px}.section-heading{padding-block:34px 25px}h2{font-size:38px}.scroll-ruler{display:none}.translation-columns{grid-template-columns:1fr}.platform+.platform{border-left:0;border-top:1px solid var(--line)}.repo-grid{gap:0}.repo-art{height:175px}.repo-card h3{font-size:23px}.about-layout{padding-block:35px}.closing{padding:60px 15px!important}footer{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;filter:none}.hero-content>*{animation:none}.marquee-track{animation:none}.repo-art .art-symbol{transition:none}}
/* ArtCraft-like compact technical navigation and animated controls. */
:root,:root[data-theme=light],:root[data-theme=dark]{--accent:#577df2;--accent-soft:color-mix(in srgb,#577df2 9%,var(--bg));--inverse:#fff}
@media(prefers-color-scheme:dark){:root[data-theme=system]{--accent:#577df2;--accent-soft:color-mix(in srgb,#577df2 12%,var(--bg));--inverse:#fff}}
.avatar-frame img{filter:none}.hero-content h1 em{color:transparent;-webkit-text-stroke:2.4px var(--accent)}h2 em{-webkit-text-stroke:1.6px var(--accent)}.platform-dot{background:var(--accent)}
.nav{padding-inline:42px;gap:20px;height:56px}.nav .wordmark{font-size:25px;letter-spacing:-1.5px;gap:16px}.nav .nav-caption{font:9px "Geist Mono",monospace;letter-spacing:1px;text-transform:uppercase}.nav nav{gap:0;align-self:stretch;align-items:stretch}.nav nav a{display:flex;align-items:center;justify-content:center;padding:0 20px;position:relative;isolation:isolate;font:10px "Geist Mono",monospace;letter-spacing:1.2px;overflow:hidden;transition:color .22s}.nav nav a:before{content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;transform:translateY(101%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.nav nav a:hover,.nav nav a:focus-visible{color:var(--bg)}.nav nav a:hover:before,.nav nav a:focus-visible:before{transform:translateY(0)}.nav nav a:after{content:"";position:absolute;left:20px;right:20px;height:2px;bottom:10px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s .04s}.nav nav a:hover:after,.nav nav a[aria-current=location]:after{transform:scaleX(1)}.nav-controls{display:flex;gap:8px;align-items:center;padding-left:14px;border-left:1px solid var(--line)}.control-dropdown{position:relative}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--ink);padding:7px;position:relative;transition:color .22s,background .22s,border-color .22s}.icon-button svg{width:20px;height:20px;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.icon-button:hover,.icon-button[aria-expanded=true]{border-color:var(--line);background:var(--ink);color:var(--bg)}.icon-button:hover .theme-glyph{transform:rotate(90deg)}#language-trigger:hover svg{transform:translateY(-2px)}.control-menu{position:absolute;top:calc(100% + 12px);right:0;width:185px;background:var(--bg);border:1px solid var(--line);padding:5px;box-shadow:0 14px 35px #0002;z-index:40;transform-origin:top right;animation:menu-enter .22s cubic-bezier(.2,.8,.2,1) both}.control-menu[hidden]{display:none}.control-menu button{display:flex;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:12px 10px;gap:12px;font:11px "Geist Mono",sans-serif;transition:background .18s,color .18s,padding .18s}.control-menu button:after{content:"↗";margin-left:auto;opacity:0;transform:translate(-4px,4px);transition:opacity .2s,transform .2s}.control-menu button:hover,.control-menu button:focus-visible{background:var(--ink);color:var(--bg);padding-left:14px}.control-menu button:hover:after,.control-menu button:focus-visible:after{opacity:1;transform:none}.choice-indicator{width:5px;height:5px;border:1px solid var(--muted);transform:rotate(45deg);flex-shrink:0}.control-menu [aria-checked=true] .choice-indicator{background:var(--accent);border-color:var(--accent)}.nav-github{display:flex;align-items:center;gap:16px;padding:9px 14px;font:10px "Geist Mono",monospace;background:var(--ink);color:var(--bg);transition:background .2s,color .2s,border-color .2s}.nav-github:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.nav-arrow{display:inline-block;transition:transform .25s}.nav-github:hover .nav-arrow{transform:translate(2px,-2px)}.section-label{top:56px}.button{position:relative;isolation:isolate;overflow:hidden;background:transparent;transition:color .25s,border-color .25s}.button:before{content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;transform:translateY(101%);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.button:hover{background:transparent;color:var(--bg)}.button:hover:before{transform:translateY(0)}.button.primary{background:var(--ink);color:var(--bg)}.button.primary:before{background:var(--accent)}.button.primary:hover{background:var(--ink);border-color:var(--accent);color:#fff}.button>span{display:inline-block;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.button:hover>span{transform:translate(3px,-3px)}.button[href^="#"]:hover>span{transform:translateY(4px)}.square-link{transition:background .2s,color .2s,transform .3s}.square-link:hover{background:var(--ink);color:var(--bg);transform:translate(2px,-2px)}@keyframes menu-enter{from{opacity:0;transform:translateY(-7px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:900px){.nav{padding-inline:24px;gap:12px}.nav nav a{padding-inline:14px}.nav .nav-caption{display:none}.nav-github{display:none}}
@media(max-width:600px){.nav{padding-inline:14px;gap:8px}.nav .wordmark{font-size:23px}.nav nav{margin-left:auto}.nav nav a,.nav nav a:nth-child(2),.nav nav a:last-child{display:flex;padding-inline:9px;font-size:9px;letter-spacing:0}.nav nav a:after{left:9px;right:9px}.nav-controls{padding-left:8px;gap:2px}.icon-button{width:30px;height:32px;padding:6px}.control-menu{width:170px}.section-label{top:56px}}
@media(prefers-reduced-motion:reduce){.control-menu{animation:none}.nav nav a:before,.button:before,.nav nav a:after,.icon-button svg,.button>span,.nav-arrow{transition:none}}
.repo-group-label{grid-column:1/-1;font:10px "Geist Mono",monospace;letter-spacing:1.5px;padding:17px 20px;margin:0;background:var(--sunken);border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.translation-progress{padding:12px 0;border-top:1px solid var(--line)}.translation-progress>a{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:8px}.translation-progress .progress-value{font:11px "Geist Mono",monospace;color:var(--accent)}.translation-progress progress{appearance:none;width:100%;height:3px;display:block;border:0;background:var(--sunken)}.translation-progress progress::-webkit-progress-bar{background:var(--sunken)}.translation-progress progress::-webkit-progress-value{background:var(--accent)}.translation-progress progress::-moz-progress-bar{background:var(--accent)}.progress-note{font:9px/1.8 "Geist Mono",monospace;color:var(--muted);margin:10px 0}
.progress-detail{display:flex;gap:8px;font:8px "Geist Mono",monospace;color:var(--muted);margin:8px 0 5px}.progress-detail span:nth-child(3){margin-left:auto}.approved-progress{opacity:.45}.translation-columns{align-items:start}.platform{min-width:0}
/* Both platforms share one progress-card interaction. */
.translation-progress{position:relative;padding:15px 10px;isolation:isolate;transition:color .25s}.translation-progress:before{content:"";position:absolute;inset:0;background:var(--ink);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.translation-progress:hover:before,.translation-progress:focus-within:before{transform:scaleY(1)}.translation-progress:hover,.translation-progress:focus-within{color:var(--bg)}.translation-progress>a{align-items:center;gap:10px;transition:transform .3s,color .3s}.translation-progress:hover>a,.translation-progress:focus-within>a{transform:translateX(3px);color:var(--bg)}.translation-progress .progress-value{margin-left:auto}.progress-arrow{font-size:14px;opacity:.4;transition:transform .3s,opacity .3s}.translation-progress:hover .progress-arrow,.translation-progress:focus-within .progress-arrow{opacity:1;transform:translate(2px,-2px)}.translation-progress:hover .progress-detail,.translation-progress:focus-within .progress-detail{color:var(--bg)}.translation-progress progress{transform-origin:left;transition:opacity .3s}.progress-enter progress{animation:progress-fill .9s cubic-bezier(.2,.8,.2,1) both}.progress-enter progress.approved-progress{animation-delay:.1s}@keyframes progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.progress-enter progress{animation:none}.translation-progress:before,.translation-progress>a,.progress-arrow{transition:none}}
/* Scroll ruler: rolling percentage digits, drifting ticks and a damped marker. */
#scroll-value{display:inline-flex;height:1em;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums}.ruler-digit-window{display:block;height:1em;width:.65em;overflow:hidden}.ruler-digit-column{display:flex;flex-direction:column;will-change:transform;transition:transform .28s cubic-bezier(.2,.9,.2,1)}.ruler-digit-column>span{display:block;height:1em;line-height:1;flex-shrink:0}.scroll-ruler>div{background-position:0 var(--ruler-offset,0px)}.scroll-ruler>div:after{background:var(--accent);transition:height .25s,box-shadow .25s,opacity .25s;opacity:.65}.scroll-ruler.is-scrolling>div:after{opacity:1;box-shadow:0 0 12px #577df24d}.scroll-ruler>span:first-child{position:relative;transition:color .2s}.scroll-ruler>span:first-child:after{content:'↓';display:inline-block;margin-top:7px;transform:translateY(0);opacity:.45}.scroll-ruler.is-scrolling>span:first-child{color:var(--accent)}.scroll-ruler.is-scrolling>span:first-child:after{animation:ruler-arrow .6s ease-in-out infinite}@keyframes ruler-arrow{0%,100%{transform:translateY(-2px);opacity:.3}50%{transform:translateY(3px);opacity:1}}@media(prefers-reduced-motion:reduce){.ruler-digit-column,.scroll-ruler>div:after,.scroll-ruler>span:first-child{transition:none}.scroll-ruler.is-scrolling>span:first-child:after{animation:none}}
/* Document-scale ruler with per-letter section navigation. */
.has-scroll-instrument{scrollbar-width:none}.has-scroll-instrument::-webkit-scrollbar{display:none}.has-scroll-instrument .page{margin-right:60px}.nav{z-index:60}.scroll-instrument{position:fixed;inset:0;z-index:40;pointer-events:none;font-family:"Geist Mono",monospace}.scroll-instrument[hidden]{display:none}.instrument-rail{position:absolute;inset:0 0 0 auto;width:60px;overflow:hidden;pointer-events:auto;cursor:crosshair;touch-action:none;outline-offset:-2px!important}.instrument-frost{position:absolute;inset:56px 0 0 auto;width:60px;backdrop-filter:blur(9px);background:color-mix(in srgb,var(--bg) 55%,transparent);mask-image:linear-gradient(to left,#000 40%,transparent)}.instrument-ticks{position:absolute;inset:0}.instrument-tick{position:absolute;inset:0 0 auto;height:0;will-change:transform}.instrument-tick i{position:absolute;right:0;top:0;height:1px;width:10px;background:var(--ink);transform-origin:right center}.instrument-tick:has(span) i{width:20px}.instrument-tick>span{position:absolute;right:24px;top:0;transform:translateY(-50%);font-size:9px;line-height:1;letter-spacing:.08em;color:var(--ink)}.instrument-needle{position:absolute;top:0;left:0;right:0;height:0;border-top:1px solid var(--accent);filter:drop-shadow(0 0 3px #577df240);will-change:transform}.instrument-readout{position:absolute;right:2px;display:flex;gap:1px;align-items:center;color:var(--accent);font:9px/1 "Geist Mono",monospace;white-space:nowrap}.instrument-digit-window{width:.65em;height:1em;overflow:hidden;display:block}.instrument-digit-column{display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.2,.9,.2,1)}.instrument-digit-column>span{display:block;height:1em;line-height:1;flex-shrink:0}.instrument-viewport{position:absolute;top:0;left:0;right:0;background:color-mix(in srgb,var(--ink) 10%,transparent);border-block:1px solid color-mix(in srgb,var(--ink) 50%,transparent);will-change:transform,height}.instrument-ghost{position:absolute;top:0;left:0;right:0;height:3px;background:var(--ink);will-change:transform;pointer-events:none}.instrument-letter{position:absolute;top:0;left:0;display:block;width:max-content;font:620 34px/1 Archivo,sans-serif;font-stretch:118%;white-space:pre;will-change:transform,opacity;text-shadow:0 0 4px var(--bg),0 0 10px var(--bg);transform-origin:center;opacity:0}.instrument-section-link{position:absolute;pointer-events:auto;cursor:pointer;outline-offset:4px}.instrument-section-link:focus-visible{outline:1px solid var(--accent)}.instrument-pool{position:absolute;right:0;width:390px;backdrop-filter:blur(9px);background:color-mix(in srgb,var(--bg) 80%,transparent);mask-image:radial-gradient(100% 100% at 100% 0%,#000 38%,#000d 56%,transparent 97%)}.instrument-pool-top{top:56px;height:230px}.instrument-pool-bottom{bottom:0;height:210px;mask-image:radial-gradient(100% 100% at 100% 100%,#000 38%,#000d 56%,transparent 97%)}@media(min-width:1524px){.has-scroll-instrument .page{margin-inline:auto}}@media(max-width:1023px){.scroll-instrument{display:none}.has-scroll-instrument .page{margin-right:22px}}@media(prefers-reduced-motion:reduce){.instrument-digit-column{transition:none}.instrument-letter{will-change:auto}}

/* Match the body typeface; preserve transforms while measuring geometry. */
.scroll-instrument{font-family:Inter,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}.instrument-letter{font-family:inherit;font-weight:500;font-stretch:normal;font-size:34px;letter-spacing:0;backface-visibility:hidden}.instrument-letter{text-shadow:0 0 4px var(--bg)}

.personal-detail{justify-content:space-between}.personal-detail span:last-child{margin-left:auto}.translation-progress progress.personal-progress::-webkit-progress-value{background:var(--ink)}.translation-progress progress.personal-progress::-moz-progress-bar{background:var(--ink)}.translation-progress:hover progress.personal-progress::-webkit-progress-value,.translation-progress:focus-within progress.personal-progress::-webkit-progress-value{background:var(--bg)}
