:root{--bg:#f5f2eb;--surface:#fbf9f4;--ink:#1c1b19;--ink2:#55514a;--ink3:#6e695f;--ink4:#b9b3a8;--line:#1c1b191c;--line2:#1c1b1933;--zhu:#a63a2b;--dai:#2f3e4c;--qing:#4e6e62;--serif:"Noto Serif TC","Songti TC","PMingLiU",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei",sans-serif;--ease:cubic-bezier(.22,.8,.24,1);--bar-h:66px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.75}body:before{content:"";pointer-events:none;z-index:100;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .38 0 0 0 0 .28 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}.wrap{max-width:1180px;margin:0 auto;padding:0 40px}.narrow{max-width:760px;margin:0 auto;padding:0 32px}.bar{z-index:20;height:var(--bar-h);transition:background .5s var(--ease),border-color .5s;border-bottom:1px solid #0000;align-items:center;gap:24px;padding:0 40px;display:flex;position:fixed;top:0;left:0;right:0}.bar.solid{-webkit-backdrop-filter:blur(14px)saturate(1.2);border-bottom-color:var(--line);background:#f5f2ebe0}.logo{font-family:var(--serif);letter-spacing:.08em;flex:none;align-items:baseline;gap:10px;font-size:19px;font-weight:500;display:flex}.logo i{color:var(--ink3);letter-spacing:.3em;font-size:12px;font-style:normal;font-family:var(--sans)}.bar .mini{opacity:0;visibility:hidden;pointer-events:none;max-width:420px;transition:.45s var(--ease),visibility 0s .45s;flex:1;margin:0 auto;transform:translateY(-6px)}.bar.solid .mini{opacity:1;visibility:visible;pointer-events:auto;transition:.45s var(--ease),visibility 0s;transform:none}.bar .links{color:var(--ink2);flex:none;gap:24px;font-size:14px;display:flex}.bar .links a{padding:4px 0;transition:color .3s;position:relative}.bar .links a:after{content:"";background:var(--ink);transform-origin:0;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.bar .links a:hover:after,.bar .links a[aria-current]:after{transform:scaleX(1)}.bar .links a[aria-current]{color:var(--ink)}.lang{flex:none;margin-left:-8px;position:relative}.lang>button{height:34px;color:var(--ink2);border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:13px;transition:color .3s,border-color .3s;display:flex}.lang>button:hover,.lang.open>button{color:var(--ink);border-color:var(--line2)}.lang .caret{opacity:.6;transition:transform .3s var(--ease)}.lang.open .caret{transform:rotate(180deg)}.lang-menu{background:var(--surface);border:1px solid var(--line);opacity:0;visibility:hidden;min-width:168px;transition:opacity .2s,transform .3s var(--ease),visibility 0s .3s;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-6px);box-shadow:0 18px 50px #281e141f}.lang.open .lang-menu{opacity:1;visibility:visible;transition:opacity .2s,transform .3s var(--ease);transform:none}.lang-menu a{color:var(--ink2);justify-content:space-between;align-items:center;gap:18px;padding:9px 12px;font-size:14px;transition:background .2s,color .2s;display:flex}.lang-menu a:hover{color:var(--ink);background:#1c1b190d}.lang-menu a[aria-current]{color:var(--ink)}.lang-menu a[aria-current]:after{content:"";background:var(--zhu);border-radius:50%;width:6px;height:6px}.ib,.sheet{display:none}@media (max-width:860px){:root{--bar-h:56px}.bar{gap:2px;padding:0 8px 0 22px}.bar .links,.bar .lang,.bar .mini{display:none}.logo{margin-right:auto}.ib{width:44px;height:44px;color:var(--ink);flex:none;place-items:center;display:grid}.menu-btn i{width:20px;height:1.5px;transition:transform .35s var(--ease),opacity .2s;background:currentColor;grid-area:1/1}.menu-btn i:first-child{transform:translateY(-6px)}.menu-btn i:nth-child(3){transform:translateY(6px)}.bar.open .menu-btn i:first-child{transform:rotate(45deg)}.bar.open .menu-btn i:nth-child(2){opacity:0}.bar.open .menu-btn i:nth-child(3){transform:rotate(-45deg)}.bar.open,.bar.finding{background:var(--bg);border-bottom-color:var(--line)}.bar.finding .logo{visibility:hidden}.bar.finding .menu-btn{display:none}.bar.finding .mini{opacity:1;visibility:visible;pointer-events:auto;max-width:none;margin:0;transition:none;display:block;position:absolute;top:50%;left:22px;right:56px;transform:translateY(-50%)}.bar.finding .q.sm input{font-size:16px}.bar.finding .sug{max-height:calc(100vh - var(--bar-h) - 11px);max-height:calc(100dvh - var(--bar-h) - 11px);border-width:0 0 1px;top:calc(100% + 11px);left:-22px;right:-56px}.sheet{height:calc(100vh - var(--bar-h));height:calc(100dvh - var(--bar-h));overscroll-behavior:contain;background:var(--bg);opacity:0;visibility:hidden;transition:opacity .25s,transform .35s var(--ease),visibility 0s .35s;flex-direction:column;padding:12px 22px 32px;display:flex;position:absolute;top:100%;left:0;right:0;overflow-y:auto;transform:translateY(-8px)}.bar.open .sheet{opacity:1;visibility:visible;transition:opacity .25s,transform .35s var(--ease);transform:none}.sheet-nav a{border-bottom:1px solid var(--line);font-family:var(--serif);letter-spacing:.08em;justify-content:space-between;align-items:center;padding:17px 2px;font-size:23px;display:flex}.sheet-nav a:after{content:"→";font-family:var(--sans);color:var(--ink4);transition:transform .3s var(--ease);font-size:15px}.sheet-nav a:active:after{transform:translate(4px)}.sheet-nav a[aria-current]{color:var(--zhu)}.sheet-lang{margin-top:32px}.sheet-lang b{letter-spacing:.12em;color:var(--ink3);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:400;display:flex}.sheet-lang div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sheet-lang a{border:1px solid var(--line2);color:var(--ink2);padding:11px 14px;font-size:15px}.sheet-lang a[aria-current]{border-color:var(--ink);color:var(--ink);background:#1c1b190a}.sheet-foot{color:var(--ink3);gap:22px;margin-top:auto;padding-top:30px;font-size:13px;display:flex}}.q{position:relative}.q .field{border-bottom:1px solid var(--line2);align-items:center;gap:14px;transition:border-color .3s;display:flex}.q .field:focus-within{border-color:var(--ink)}.q svg{color:var(--ink3);flex:none}.q input{min-width:0;font:inherit;color:var(--ink);letter-spacing:.03em;background:0 0;border:0;outline:0;flex:1}.q input::placeholder{color:var(--ink3)}.q.big .field{padding:14px 2px}.q.big input{font-size:20px;font-family:var(--serif);font-weight:400}.q.sm .field{padding:6px 2px}.q.sm input{font-size:14px}.sug{background:var(--surface);border:1px solid var(--line);z-index:30;max-height:60vh;list-style:none;position:absolute;top:calc(100% + 10px);left:0;right:0;overflow:auto;box-shadow:0 24px 60px #281e141f}.sug li{cursor:pointer;align-items:center;gap:14px;padding:12px 18px;font-size:15px;display:flex}.sug .t{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;line-height:1.5;display:-webkit-box;overflow:hidden}.sug li+li{border-top:1px solid var(--line)}.sug li[aria-selected=true]{background:#1c1b190b}.sug li.none{color:var(--ink3);cursor:default;font-size:14px}.sug .k{max-width:42%;color:var(--ink3);white-space:nowrap;text-overflow:ellipsis;flex:none;margin-left:auto;font-size:12px;overflow:hidden}.kind{letter-spacing:.1em;text-align:center;flex:none;width:18px;font-size:12px;font-weight:500}.k-game{color:var(--zhu)}.k-oss{color:var(--dai)}.k-cat{color:var(--ink3)}.hero{height:60svh;min-height:440px;max-height:680px;position:relative;overflow:hidden}.water{mix-blend-mode:multiply;width:100%;height:100%;display:block;position:absolute;inset:0}.hero .inner{z-index:3;max-width:1180px;height:100%;padding:calc(var(--bar-h) + 16px) 40px 28px;pointer-events:none;flex-direction:column;justify-content:center;margin:0 auto;display:flex;position:relative}.hero .inner>*{pointer-events:auto}.hero h1{font-family:var(--serif);font-weight:200;line-height:1}.hero h1 .mk{letter-spacing:.24em;font-size:clamp(60px,8vw,112px);display:block}.hero h1 .kw{letter-spacing:.2em;color:var(--ink2);margin-top:22px;font-size:clamp(16px,1.5vw,19px);font-weight:500;line-height:1.6;display:block}.hero .lead{font-family:var(--serif);color:var(--ink2);letter-spacing:.12em;margin-top:10px;font-size:clamp(15px,1.3vw,18px);font-weight:300}.hero .q{max-width:560px;margin-top:34px}.js .rv{opacity:0;filter:blur(6px);transition:opacity .8s var(--ease),filter .9s var(--ease),transform .8s var(--ease);transform:translateY(12px)}.js .rv.in{opacity:1;filter:none;transform:none}@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;filter:none;transition:none;transform:none}}.blk{padding-top:120px;padding-bottom:40px}.blk-first{padding-top:72px}.duo{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px;display:grid}.duo .nw{grid-template-columns:96px 1fr;gap:18px}.gos{flex-wrap:wrap;gap:10px 28px;margin-top:22px;display:flex}.topics{flex-wrap:wrap;gap:8px 10px;margin-top:22px;display:flex}.topics a{border:1px solid var(--line2);color:var(--ink2);border-radius:999px;padding:4px 12px;font-size:13px;transition:color .3s,border-color .3s}.topics a:hover,.topics a[aria-current]{border-color:var(--ink);color:var(--ink)}.tlinks{border-top:1px solid var(--line);list-style:none}.tlinks li{border-bottom:1px solid var(--line);padding:16px 0}.tlinks a b{font-family:var(--serif);font-size:17px;font-weight:500;transition:color .3s}.tlinks a:hover b{color:var(--zhu)}.tlinks span{color:var(--ink3);letter-spacing:.04em;margin-top:2px;font-size:12px;display:block}.tlinks p{color:var(--ink2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:14px;line-height:1.75;display:-webkit-box;overflow:hidden}.sh{align-items:baseline;gap:22px;margin-bottom:40px;display:flex}.sh .no{color:var(--ink3);letter-spacing:.2em;font-size:12px}.sh h2{font-family:var(--serif);letter-spacing:.16em;font-size:30px;font-weight:400}.sh p{color:var(--ink3);margin-left:auto;font-size:14px}.go-link{color:var(--zhu);border-bottom:1px solid #a63a2b59;padding-bottom:1px;font-size:15px}.ink{isolation:isolate;position:relative;overflow:hidden}.ink:before{content:"";z-index:-1;opacity:0;filter:blur(6px);width:420px;height:420px;transition:transform .9s var(--ease),opacity .6s;background:radial-gradient(closest-side,#1c1b190f,#1c1b1905 55%,#0000);border-radius:50%;margin:-210px 0 0 -210px;position:absolute;top:50%;left:50%;transform:scale(.2)}.ink:hover:before{opacity:1;transform:scale(1)}.wall{grid-template-columns:repeat(3,1fr);gap:40px 28px;display:grid}.wall.feature .gm.big{grid-area:span 2/span 2}.gm{flex-direction:column;min-width:0;display:flex}.gm .hit{text-align:left;outline:none;flex-direction:column;width:100%;display:flex;position:relative}.gm .hit:focus-visible .poster{outline:1px solid var(--ink);outline-offset:4px}.wall.feature .gm.big .hit{flex:1}.poster{aspect-ratio:16/10;background:var(--surface);flex:none;display:block;position:relative;overflow:hidden}.wall.feature .gm.big .poster{aspect-ratio:auto;flex:1;min-height:340px}.poster .img,.stage .cover .img{object-fit:cover;object-position:50% 30%;width:100%;height:100%;transition:transform 1.4s var(--ease);display:block;position:absolute;inset:0}.poster:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#f1ece200 48%,#f1ece299 74%,#f1ece2eb);position:absolute;inset:0}.poster .ttl{z-index:2;font-family:var(--serif);letter-spacing:.02em;color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(19px,1.7vw,24px);font-weight:400;line-height:1.3;display:-webkit-box;position:absolute;bottom:14px;left:18px;right:18px;overflow:hidden}.wall.feature .gm.big .poster .ttl{font-size:clamp(28px,3.4vw,52px);font-weight:400;bottom:24px;left:30px}.poster:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #1c1b191a}.poster i{z-index:2;letter-spacing:.24em;color:var(--ink2);font-size:12px;font-style:normal;position:absolute;top:12px;left:14px}.gm .play{z-index:2;letter-spacing:.14em;width:150px;height:150px;color:var(--surface);pointer-events:none;opacity:0;filter:blur(4px);transition:opacity .45s var(--ease),transform .7s var(--ease),filter .6s var(--ease);background:radial-gradient(closest-side,#141311e0,#141311b3 62%,#14131100);border-radius:50%;place-items:center;margin:-75px 0 0 -75px;font-size:14px;display:grid;position:absolute;top:50%;left:50%;transform:scale(.6)}.gm .hit:hover .play,.gm .hit:focus-visible .play{opacity:1;filter:none;transform:scale(1)}.gm .hit:hover .img{transform:scale(1.04)}.gm .cap{padding-top:12px;display:grid}.gm .cap b{font-family:var(--serif);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:500;overflow:hidden}.gm .cap em{color:var(--ink3);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12.5px;font-style:normal;overflow:hidden}.wall.feature .gm.big .cap b{font-size:24px}.gm .more{color:var(--ink2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:13.5px;line-height:1.7;transition:color .3s;display:-webkit-box;overflow:hidden}.gm .more:hover{color:var(--zhu)}.gbar{border-bottom:1px solid var(--line);flex-direction:column;gap:9px;margin-bottom:30px;padding:12px 0;display:flex}.gbar .row1{align-items:center;gap:18px;min-width:0;display:flex}.gbar .row1 .chips{flex:1}.tags button small{color:var(--ink3);margin-left:6px;font-size:11px}.tags button[aria-pressed=true] small{color:#fbf9f499}.chips.sub button{border-color:var(--line);padding:5px 12px;font-size:13px}.chips.sub button[aria-pressed=true]{border-color:var(--ink)}.taglinks{flex-wrap:wrap;gap:6px 12px;display:flex}.taglinks a{color:var(--ink2);border-bottom:1px solid var(--line2);transition:color .25s}.taglinks a:hover{color:var(--zhu)}.sorter{border:1px solid var(--line2);flex:none;display:flex}.sorter button{color:var(--ink3);padding:7px 14px;font-size:13px}.sorter button+button{border-left:1px solid var(--line2)}.sorter button[aria-pressed=true]{color:var(--ink);background:#1c1b190d}@property --r{syntax:"<percentage>";inherits:false;initial-value:0%}.theater{z-index:300;color:#e9e4d8;--r:0%;-webkit-mask-image:radial-gradient(circle at var(--x) var(--y),#000 calc(var(--r) - 10%),transparent var(--r));-webkit-mask-image:radial-gradient(circle at var(--x) var(--y),#000 calc(var(--r) - 10%),transparent var(--r));mask-image:radial-gradient(circle at var(--x) var(--y),#000 calc(var(--r) - 10%),transparent var(--r));background:#141311;transition:--r .6s cubic-bezier(.5,0,.3,1);position:fixed;inset:0}.theater.on{--r:180%;transition:--r 1s cubic-bezier(.3,.6,.2,1)}.theater header{align-items:center;gap:20px;height:64px;padding:0 28px;display:flex;position:absolute;top:0;left:0;right:0}.theater .ttl{align-items:baseline;gap:16px;min-width:0;display:flex}.theater .ttl b{font-family:var(--serif);letter-spacing:.06em;white-space:nowrap;font-size:19px;font-weight:400}.theater .ttl span{color:#8f897c;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.theater nav{color:#b9b2a3;flex:none;align-items:center;gap:22px;margin-left:auto;font-size:13.5px;display:flex}.theater nav a:hover,.theater nav button:hover{color:#fff}.theater .x{border:1px solid #e9e4d840;border-radius:50%;width:36px;height:36px;font-size:18px}.theater .screen{opacity:0;transition:opacity .5s .35s var(--ease),transform .9s .3s var(--ease);background:#000;position:absolute;inset:64px 24px 40px;transform:scale(.985)}.theater.on .screen{opacity:1;transform:none}.theater iframe,.stage iframe{background:#000;border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.theater .hint{text-align:center;color:#6f6a60;letter-spacing:.08em;font-size:12px;position:absolute;bottom:11px;left:0;right:0}.stage-wrap{margin-top:36px}.stage{aspect-ratio:16/9;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);position:relative;overflow:hidden}.stage:fullscreen{aspect-ratio:auto}.stage .cover{flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.stage .cover:before{content:"";z-index:1;background:radial-gradient(30% 36%,#f5f2ebbf,#f5f2eb00);position:absolute;inset:0}.stage .start{z-index:2;font-family:var(--serif);letter-spacing:.2em;color:var(--ink);align-items:center;gap:16px;padding:18px 34px;font-size:24px;display:flex;position:relative}.stage .start span{border:1px solid var(--ink);letter-spacing:0;width:62px;height:62px;transition:transform .6s var(--ease),background .4s,color .4s;border-radius:50%;place-items:center;font-size:18px;display:grid}.stage .start:hover span{background:var(--ink);color:var(--surface);transform:scale(1.1)}.stage .cover small{z-index:2;color:var(--ink2);font-size:13px;position:relative}.stage.on{background:#000}.stage-bar{color:var(--ink3);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 22px;padding:12px 2px;font-size:13px;display:flex}.stage-bar button,.stage-bar a{color:var(--ink2)}.stage-bar button:hover,.stage-bar a:hover{color:var(--zhu)}.facts{margin-top:30px}.facts dl{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.facts dl div{border-bottom:1px solid var(--line);padding:14px 2px}.facts dt{color:var(--ink3);letter-spacing:.14em;font-size:12px}.facts dd{font-family:var(--serif);margin-top:2px;font-size:16px}.facts dd a{border-bottom:1px solid var(--line2)}.why-b{background:var(--surface);border-left:2px solid var(--zhu);margin-top:24px;padding:18px 22px;font-size:15.5px;line-height:1.9}.why-b b{font-family:var(--serif);letter-spacing:.2em;color:var(--zhu);margin-bottom:4px;font-size:13px;font-weight:500;display:block}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px 6px;display:flex}.tabs button{color:var(--ink3);border-bottom:1px solid #0000;align-items:baseline;gap:8px;margin-bottom:-1px;padding:10px 14px 12px;font-size:15px;transition:color .3s,border-color .3s;display:flex}.tabs button i{font-style:normal;font-family:var(--serif);opacity:.6;font-size:13px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.tabs button[aria-selected=true] i{color:var(--zhu);opacity:1}.tabdesc{color:var(--ink3);margin:18px 0 6px;font-size:14px}.repos{border-top:1px solid var(--line);list-style:none}.repos li{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--bar-h) + 72px);margin:0 -14px;padding:24px 14px 22px}.repos li:target,.repos li.target{background:#a63a2b0d}.repos .hd{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.repos .hd a{align-items:baseline;gap:12px;min-width:0;display:flex}.repos .hd b{font-family:var(--serif);letter-spacing:.03em;font-size:19px;font-weight:500}.repos .hd a:hover b{color:var(--zhu)}.repos code,.cmd code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.repos .hd code{color:var(--ink3)}.repos .meta{color:var(--ink3);font-variant-numeric:tabular-nums;white-space:nowrap;gap:12px;margin-left:auto;font-size:12.5px;display:flex}.repos .meta i{font-style:normal}.news{border-top:1px solid var(--line)}.nw{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:24px;padding:22px 0 20px;display:grid}.nw .nt{color:var(--ink3);font-variant-numeric:tabular-nums;flex-direction:column;gap:6px;padding-top:3px;font-size:13px;display:flex}.nw .nt i{font-style:normal;font-family:var(--serif);color:var(--zhu);letter-spacing:.12em}.nw h3{font-family:var(--serif);letter-spacing:.02em;font-size:19px;font-weight:500;line-height:1.5}.nw h3 a:hover{color:var(--zhu)}.nw .nb>p{color:var(--ink2);margin-top:6px;font-size:15px;line-height:1.85}.nw .ns{flex-wrap:wrap;align-items:baseline;gap:4px 14px;display:flex;color:var(--ink3)!important;margin-top:8px!important;font-size:12.5px!important}.nw .ns a{color:var(--ink3);border-bottom:1px solid var(--line2)}.nw .ns a:hover{color:var(--zhu)}.nw .ns em{color:var(--ink3);font-style:normal}.nw .ns b{color:var(--dai);font-weight:400}.nw.raw h3{color:var(--ink2);font-weight:400}.nw.big h3{font-size:clamp(21px,2vw,26px);font-weight:400;line-height:1.45}.nw.big .nb>p{font-size:16px}.heads .nw:first-child h3{font-size:clamp(24px,2.6vw,32px)}.nw.flash{animation:nflash 2.4s var(--ease)}@keyframes nflash{0%{background:#a63a2b14}to{background:0 0}}.live{color:var(--ink3);letter-spacing:.08em;flex:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.live i{background:var(--zhu);border-radius:50%;width:7px;height:7px;animation:2s infinite npulse}@keyframes npulse{0%,to{opacity:1}50%{opacity:.25}}.days{flex-wrap:wrap;gap:8px 22px;font-size:14px;display:flex}.days a{color:var(--ink2)}.days a:hover{color:var(--zhu)}.days small{color:var(--ink3);margin-left:5px;font-size:11px}.narrow{max-width:860px}.nmeta{color:var(--ink3);align-items:baseline;gap:16px;margin-bottom:12px;font-size:13px;display:flex}.nmeta i{font-style:normal;font-family:var(--serif);color:var(--zhu);letter-spacing:.12em}.nsum{color:var(--ink);margin-top:22px;font-size:17px;line-height:2}.nsrc li{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:12px 0;font-size:15px;display:flex}.nsrc li b{font-weight:500}.nsrc li a{color:var(--zhu);font-size:14px}@media (max-width:640px){.nw{grid-template-columns:1fr;gap:6px}.nw .nt{flex-direction:row;gap:12px}}.seal{font-style:normal;font-family:var(--serif);color:var(--zhu);letter-spacing:0;border:1px solid;border-radius:2px;align-self:center;padding:3px 5px;font-size:12px;line-height:1;display:inline-block}.poster .seal{z-index:2;background:#f1ece2d9;position:absolute;top:10px;right:14px}.repos .what{margin-top:8px;font-size:15.5px}.repos .why{color:var(--ink2);margin-top:2px;font-size:14px}.cmdw{margin-top:12px;display:block}.cmdw small{color:var(--ink3);margin-top:6px;font-size:12.5px;display:block}.cmd{border:1px solid var(--line2);background:var(--surface);text-align:left;align-items:center;max-width:100%;transition:border-color .3s;display:inline-flex}.cmd code{white-space:nowrap;color:var(--ink);padding:7px 12px;overflow-x:auto}.cmd i{color:var(--ink3);border-left:1px solid var(--line2);flex:none;padding:7px 12px;font-size:12px;font-style:normal}.cmd:hover{border-color:var(--ink)}.cmd:hover i{color:var(--ink)}.how{color:var(--ink3);margin-top:10px;font-size:13px;display:inline-block}.how b{color:var(--ink3);margin-right:1em;font-weight:400}.catnav{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.catnav a{border:1px solid var(--line2);color:var(--ink2);align-items:baseline;gap:8px;padding:8px 14px;font-size:14px;transition:all .3s;display:flex}.catnav a i{font-style:normal;font-family:var(--serif);color:var(--zhu)}.catnav a small{color:var(--ink3);font-size:12px}.catnav a:hover{border-color:var(--ink);color:var(--ink)}.osssec{scroll-margin-top:80px}.osssec h2{flex-wrap:wrap;align-items:baseline;gap:6px 18px;display:flex}.osssec h2 a:hover{color:var(--zhu)}.osssec h2 small{font-family:var(--sans);letter-spacing:.02em;color:var(--ink3);font-size:13px}.page{padding-top:120px;padding-bottom:80px}.crumbs{color:var(--ink3);letter-spacing:.06em;margin-bottom:28px;font-size:13px}.crumbs a:hover{color:var(--ink)}.crumbs i{color:var(--ink4);margin:0 8px;font-style:normal}.crumbs b{color:var(--ink2);font-weight:400}.page h1{font-family:var(--serif);letter-spacing:.06em;font-size:clamp(30px,4vw,44px);font-weight:400;line-height:1.35}.page .intro{max-width:780px;color:var(--ink2);margin-top:16px;font-size:16px;line-height:1.9}.page .intro b{color:var(--ink);font-weight:500}.page h2{font-family:var(--serif);letter-spacing:.12em;margin:64px 0 22px;font-size:22px;font-weight:400}.narrow-in{max-width:760px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags button{border:1px solid var(--line2);color:var(--ink2);padding:7px 14px;font-size:14px;transition:all .25s}.tags button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.faq details{border-bottom:1px solid var(--line);padding:16px 0}.faq summary{cursor:pointer;justify-content:space-between;gap:20px;font-size:16px;list-style:none;display:flex}.faq summary:after{content:"＋";color:var(--ink3);transition:transform .3s}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{color:var(--ink2);margin-top:10px;font-size:15px}.info section{max-width:780px}.info h2{margin:48px 0 16px}.info section p{color:var(--ink2);margin-bottom:12px;font-size:15px;line-height:1.95}.info a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.foot-links{flex-wrap:wrap;gap:18px;display:flex}.foot-links a{color:inherit}.foot-links a:hover{color:var(--ink)}.ad{text-align:center;min-height:100px;margin:56px 0 0}.ad-article{margin:40px 0 0}.news .ad-feed{border-bottom:1px solid var(--line);min-height:0;margin:0;padding:18px 0}.ad:has(ins[data-ad-status=unfilled]){display:none}.src{border-top:1px solid var(--line);color:var(--ink3);margin-top:56px;padding-top:20px;font-size:13px;line-height:2}.src b{color:var(--ink2);margin-right:12px;font-weight:500}.src a{border-bottom:1px solid var(--line2)}.src a+a{margin-left:12px}.foot-site{border-top:1px solid var(--line);color:var(--ink3);letter-spacing:.08em;justify-content:space-between;gap:20px;padding:30px 40px;font-size:12px;display:flex}@media (max-width:960px){.wall{grid-template-columns:1fr 1fr}.facts dl{grid-template-columns:repeat(2,1fr)}.duo{grid-template-columns:1fr;gap:72px}}@media (max-width:640px){.wrap,.hero .inner{padding:0 22px}.logo i{display:none}.hero{height:auto;min-height:0;max-height:none}.hero .inner{padding:calc(var(--bar-h) + 14px) 22px 22px}.hero h1 .mk{letter-spacing:.16em;font-size:52px}.hero h1 .kw{letter-spacing:.12em;margin-top:12px}.hero .q{margin-top:18px}.blk-first{padding-top:48px}.blk{padding-top:84px}.sh{flex-wrap:wrap;gap:10px 16px}.sh p{width:100%;margin-left:0}.wall{grid-template-columns:1fr;gap:34px}.wall.feature .gm.big{grid-area:auto}.wall.feature .gm.big .poster{aspect-ratio:16/10;min-height:0}#games .wall{grid-template-columns:1fr 1fr;gap:24px 14px}#games .poster .ttl{font-size:15px;bottom:8px;left:10px;right:10px}#games .poster i,#games .gm .more,#games .gm .cap em{display:none}#games .gm .cap{padding-top:8px}#games .gm .cap b{font-size:15px}#games .gm .play{padding:2px 9px;font-size:11px;top:6px;right:6px}#games .poster .seal{top:32px;right:6px}#oss .repos>li:nth-child(n+5),#skills .plist>li:nth-child(n+5){display:none}#today .nw .nb>p:not(.ns){-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.gm .play{opacity:1;filter:none;background:#1c1b19d1;border-radius:999px;width:auto;height:auto;margin:0;padding:4px 12px;font-size:12px;top:10px;left:auto;right:10px;transform:none}.poster .seal{top:44px;right:10px}.theater header{gap:10px;padding:0 14px}.theater .ttl span{display:none}.theater nav{gap:14px}.theater .screen{bottom:32px;left:0;right:0}.page{padding-top:96px}.stage{aspect-ratio:4/3}.stage .start{font-size:20px}.repos .meta{width:100%;margin-left:0}.tabs{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.tabs button{white-space:nowrap}.foot-site{flex-direction:column;padding:24px 22px}}.langs{letter-spacing:.04em;gap:4px;font-size:12.5px;display:inline-flex}.langs a{color:var(--ink3);border-radius:2px;padding:2px 6px;transition:color .3s,background .3s}.langs a:hover{color:var(--ink)}.langs a[aria-current]{color:var(--ink);background:#1c1b190f}.foot-site{align-items:center}.blk-last{padding-bottom:110px}.nf{min-height:60vh}.nf h1{font-size:72px;font-weight:200}html[lang=zh-Hans]{--serif:"Noto Serif SC","Songti SC",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}html[lang=ja]{--serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic UI",Meiryo,sans-serif}html[lang=en]{--serif:"Noto Serif",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif}html[lang=en] .hero h1 .mk{font-family:Noto Serif TC,serif}html[lang=en] .hero h1 .kw,html[lang=en] .hero .lead,html[lang=en] .sh h2,html[lang=en] .page h2{letter-spacing:.02em}html[lang=en] .page h1{letter-spacing:0}html[lang=en] .why-b b,html[lang=en] .facts dt,html[lang=en] .stage .start{letter-spacing:.06em}html[lang=ja] .sh h2,html[lang=ja] .page h2{letter-spacing:.08em}html[lang=ja] .hero h1 .kw,html[lang=ja] .hero .lead{letter-spacing:.06em}html[lang=en] .poster i{letter-spacing:.08em}.pstick{margin-top:30px}.prow{border-bottom:1px solid var(--line);align-items:flex-end;gap:16px;display:flex}.ptabs{flex:none;display:flex}.ptabs a{color:var(--ink3);font-family:var(--serif);border-bottom:1px solid #0000;align-items:baseline;gap:10px;margin-bottom:-1px;margin-right:30px;padding:13px 0 12px;font-size:18px;transition:color .3s,border-color .3s;display:flex}.ptabs a small{font-family:var(--sans);color:var(--ink3);font-size:12px}.ptabs a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}.ptabs a:hover{color:var(--ink)}.addmk{color:var(--ink3);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:22px 0 4px;font-size:13px;display:flex}.pstick .chips{border-bottom:1px solid var(--line);padding:11px 0 12px}.pfilter{border-bottom:1px solid var(--line2);width:240px;color:var(--ink3);cursor:text;transition:width .3s var(--ease),border-color .3s;align-items:center;gap:10px;margin:0 0 9px auto;padding:6px 2px;display:flex}.pfilter:focus-within{border-color:var(--ink)}.pfilter input{width:0;min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:14px}.pfilter svg{flex:none}.pfilter input::-webkit-search-cancel-button{opacity:.5}.plist{grid-template-columns:1fr 1fr;gap:0 40px;list-style:none;display:grid}.plist li{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--bar-h) + 124px);min-width:0;margin:0 -12px;padding:20px 12px 18px}.plist li:target,.plist li.target{background:#a63a2b0d}.plist .hd{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.plist .hd b{font-family:var(--serif);font-size:17px;font-weight:500}.plist .hd a:hover b{color:var(--zhu)}.plist .meta{color:var(--ink3);white-space:nowrap;gap:10px;margin-left:auto;font-size:12px;display:flex}.plist .meta i{font-style:normal}.plist .what{color:var(--ink2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:6px;font-size:14px;line-height:1.75;display:-webkit-box;overflow:hidden}.plist .cmd{margin-top:10px}#skills .plist,.plugins .plist{border-top:1px solid var(--line)}.plugins .plist{margin-top:10px}.pstick+.repos{border-top:0}@media (max-width:760px){.plist{grid-template-columns:1fr}.ptabs a{margin-right:18px;font-size:16px}.ptabs a small{display:none}.pfilter{border-bottom-color:#0000;gap:0;width:34px;padding:6px 9px}.pfilter input{opacity:0;font-size:16px}.pfilter:focus-within,.pfilter.on{border-bottom-color:var(--line2);flex:1;gap:10px;width:auto;min-width:0}.pfilter:focus-within input,.pfilter.on input{opacity:1}}.navload{z-index:60;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0;overflow:hidden}.navload i{background:linear-gradient(90deg,transparent,var(--ink) 40%,var(--zhu));width:40%;animation:navload 1.1s var(--ease) infinite;position:absolute;top:0;bottom:0;left:-40%}@keyframes navload{0%{left:-40%}to{left:100%}}.ossnav{top:var(--bar-h);z-index:10;background:var(--bg);box-shadow:-14px 0 var(--bg),14px 0 var(--bg);border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px 6px;margin:30px 0 0;padding:10px 0 0;display:flex;position:sticky;overflow-x:auto}.ossnav a{color:var(--ink3);white-space:nowrap;border-bottom:1px solid #0000;flex:none;align-items:baseline;gap:7px;margin-bottom:-1px;padding:8px 14px 12px;font-size:15px;transition:color .3s,border-color .3s;display:flex}.ossnav a i{font-style:normal;font-family:var(--serif);opacity:.6;font-size:13px}.ossnav a small{color:var(--ink3);font-size:11px}.ossnav a:hover{color:var(--ink)}.ossnav a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}.ossnav a[aria-current] i{color:var(--zhu);opacity:1}.ossnav~.tabdesc{margin-top:18px}.ossnav+.repos,.ossnav+script+.repos{border-top:0}.stick{top:var(--bar-h);z-index:10;background:var(--bg);box-shadow:-14px 0 var(--bg),14px 0 var(--bg);position:sticky}.list-top{scroll-margin-top:var(--bar-h)}.chips{min-width:0;display:flex;position:relative}.chips>.tags{scrollbar-width:none;flex-wrap:nowrap;flex:1;min-width:0;padding:1px 0;position:relative;overflow-x:auto}.chips>.tags::-webkit-scrollbar{display:none}.chips>.tags>*{white-space:nowrap;flex:none}.chev{z-index:2;width:52px;color:var(--ink2);opacity:0;pointer-events:none;align-items:center;transition:opacity .25s;display:flex;position:absolute;top:0;bottom:0}.chev.l{background:linear-gradient(90deg,var(--bg) 40%,#f5f2eb00);justify-content:flex-start;left:0}.chev.r{background:linear-gradient(270deg,var(--bg) 40%,#f5f2eb00);justify-content:flex-end;right:0}.chips.at-l .chev.l,.chips.at-r .chev.r{opacity:1;pointer-events:auto}.chev:hover{color:var(--ink)}@media (hover:none){.chev{width:30px}.chev svg{display:none}.chips.at-l .chev.l,.chips.at-r .chev.r{pointer-events:none}}.more-s{justify-content:center;min-height:1px;display:flex}.more-s:not(:empty){padding:30px 0 6px}.more-s button,.more-s a,.pager a{color:var(--ink2);border-bottom:1px solid var(--line2);padding-bottom:1px;font-size:13px}.more-s a:hover,.pager a:hover{color:var(--zhu);border-bottom-color:currentColor}.pager{color:var(--ink3);justify-content:space-between;align-items:baseline;gap:16px;margin:20px 0 14px;font-size:13px;display:flex}.dots{gap:7px;display:inline-flex}.dots i{background:var(--ink3);width:5px;height:5px;animation:dots 1.1s var(--ease) infinite;border-radius:50%}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dots{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:none}}.stale{opacity:.45;transition:opacity .25s}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.aiby{color:var(--ink3);letter-spacing:.04em;margin-top:14px;font-size:12.5px}.aiby:before{content:"";background:var(--ink4);vertical-align:middle;width:14px;height:1px;margin-right:8px;display:inline-block}.dek{color:var(--ink);margin-top:22px;font-size:17px;line-height:2}.daynav{justify-content:space-between;gap:16px;margin-top:48px;font-size:14px;display:flex}.daynav a{color:var(--ink2);border-bottom:1px solid var(--line2);padding-bottom:1px;transition:color .25s}.daynav a:hover{color:var(--zhu)}.page h2 .cnt{font-family:var(--sans);letter-spacing:.02em;color:var(--ink3);margin-left:12px;font-size:13px}.tool .code{margin-top:8px}.tool .code code{color:var(--ink3);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}.tool .cmdw{margin-top:0}.tool .addmk{margin-top:14px}.tool .facts dl{grid-template-columns:repeat(3,1fr)}.tool .facts dd{overflow-wrap:anywhere}.guide ul,.guide ol{color:var(--ink);padding-left:1.4em;font-size:15.5px;line-height:1.9}.guide li+li{margin-top:6px}.guide ul li::marker{color:var(--zhu)}.guide ol li::marker{font-family:var(--serif);color:var(--zhu)}.guide p:not(.aiby){font-size:15.5px;line-height:1.9}.guide .aiby{margin-top:22px}.repos .hd a.gh:hover code{color:var(--ink)}@media (max-width:640px){.tool .facts dl{grid-template-columns:repeat(2,1fr)}}
