@font-face{font-family:Saira;src:url(/fonts/Saira.ttf) format("truetype");font-weight:100 900;font-stretch:50% 125%;font-display:swap}:root{--paper: #f2f1f6;--panel: #ffffff;--ink: #1a1726;--ink-2: #5d5970;--rule: #dcdae4;--chip: #e7e5ee;--wash: #f1e8ff;--orbit: #9859ff;--flare: #d1ff57;--cyan: #62d4f5;--font-ui: "Saira", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--font-text: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--mono: "Cascadia Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--fs-display: clamp(2.5rem, 6.6vw, 6.4rem);--fs-h1: clamp(2rem, 4.4vw, 3.6rem);--fs-h2: clamp(1.15rem, 1.7vw, 1.45rem);--fs-lead: clamp(1rem, 1.15vw, 1.125rem);--fs-body: clamp(.95rem, 1.02vw, 1.0625rem);--fs-ui: .9375rem;--fs-field: .8125rem;--fs-eyebrow: .6875rem;--mx: clamp(20px, 4vw, 56px);--my: clamp(16px, 3.2vh, 40px);--cut: 8px;--cut-s: 7px;--star: 11px;--ease-snap: cubic-bezier(.16, 1, .3, 1);--ease-mech: cubic-bezier(.7, 0, .2, 1);--ease-plain: cubic-bezier(.2, .7, .1, 1);--st-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0 Q13 9 24 12 Q13 15 12 24 Q11 15 0 12 Q11 9 12 0 Z'/%3E%3C/svg%3E");--on-flare: #1a1726;--plate: #1a1726;--term-bg: #16121f;--term-fg: #f2f1f6;--term-rule: rgba(242, 241, 246, .22);--term-dim: rgba(242, 241, 246, .74);--term-out: rgba(242, 241, 246, .82);--muted: #8b87a0;--z-stars: 0;--z-poster: 1;--z-content: 5;--z-chrome: 20;--z-curtain: 60}:root[data-theme=dark]{color-scheme:dark;--paper: #131020;--panel: #1b1729;--ink: #f2f1f6;--ink-2: #a9a3bd;--rule: #302b43;--chip: #221e31;--wash: #2a2140;--orbit: #b388ff;--flare: #d1ff57;--cyan: #7adcf7;--term-bg: #0e0b17;--plate: #0e0b17;--term-rule: rgba(242, 241, 246, .18);--muted: #6f6987}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--paper);color:var(--ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html{overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%}body{overflow:hidden;overscroll-behavior:none;touch-action:pan-y;transition:background-color .24s linear,color .24s linear}#root{position:fixed;inset:0;overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}::selection{background:var(--wash);color:var(--ink)}:focus-visible{outline:2px solid currentColor;outline-offset:3px}.app{position:fixed;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding:var(--my) var(--mx);isolation:isolate}.plate{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.plate--poster{z-index:var(--z-poster)}.plate--curtain{z-index:var(--z-curtain)}.starfield{position:absolute;inset:0;z-index:var(--z-stars);pointer-events:none;overflow:hidden}.starfield__patch{position:absolute;display:block}.starfield__patch--tr{top:3.5%;right:-3%;width:min(46vw,680px);height:min(50vh,520px)}.starfield__patch--bl{left:-1%;bottom:-2%;width:min(30vw,440px);height:min(34vh,360px);transform:rotate(180deg)}.starfield__patch:before,.starfield__patch:after{content:"";position:absolute;inset:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover}.starfield__patch:before{background:var(--orbit);opacity:.4;-webkit-mask-image:url(/stars/stars-a-lines.svg);mask-image:url(/stars/stars-a-lines.svg)}.starfield__patch:after{background:var(--ink);opacity:.28;transform-origin:62% 48%;-webkit-mask-image:url(/stars/stars-a-glints.svg);mask-image:url(/stars/stars-a-glints.svg)}.starfield__patch--tr:after{animation:star-turn 260s linear infinite}:root[data-theme=dark] .starfield__patch:before{opacity:.52}:root[data-theme=dark] .starfield__patch:after{opacity:.5}@keyframes star-turn{to{transform:rotate(360deg)}}.spectrum{position:absolute;top:0;left:var(--mx);right:var(--mx);height:3px;z-index:var(--z-chrome);display:flex}.spectrum i{flex:1 1 0}.spectrum i:nth-child(1){background:var(--orbit)}.spectrum i:nth-child(2){background:var(--cyan)}.spectrum i:nth-child(3){background:var(--flare)}.masthead{grid-row:1;position:relative;z-index:var(--z-chrome);display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0 12px;border-bottom:1px solid var(--rule)}.masthead__brand{display:flex;align-items:baseline;gap:.7em;flex:0 0 auto;white-space:nowrap;font-family:var(--font-ui);font-weight:700;font-size:.9rem;font-stretch:125%;letter-spacing:.18em;text-transform:uppercase}.masthead__brand b{font-weight:700}.masthead__brand:before{content:"";width:9px;height:9px;align-self:center;background:var(--orbit);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat}.masthead__cjk{font-family:var(--font-text);font-weight:700;letter-spacing:.14em;font-size:.92em;color:var(--ink-2)}.masthead__tools{margin-left:auto;align-self:center;display:flex;align-items:center;gap:8px}.rail{grid-row:3;position:relative;z-index:var(--z-chrome);display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:10px;border-top:1px solid var(--rule);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-variant-numeric:tabular-nums}.rail__hint{display:inline-flex;align-items:center;gap:.6em}.rail__keys{display:inline-flex;gap:4px}.kbd{display:inline-grid;place-items:center;min-width:1.9em;height:1.9em;padding:0 .35em;border:1px solid var(--rule);font-family:var(--font-ui);font-size:.92em;color:var(--ink);background:var(--chip)}.index{position:absolute;right:var(--mx);top:50%;transform:translateY(-50%);z-index:var(--z-chrome);display:flex;flex-direction:column;gap:4px;align-items:stretch;width:clamp(148px,12vw,186px);pointer-events:auto}.index__item{--cut: 6px;position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;color:var(--ink-2);background:transparent;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);transition:background .2s linear,color .2s linear}.index__item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orbit);transform:scaleY(0);transform-origin:top;transition:transform .28s var(--ease-mech)}.index__dot{display:block;width:9px;height:9px;flex:0 0 auto;background:var(--orbit);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat;opacity:0;transition:opacity .2s linear}.index__num{font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.08em;color:var(--ink-2);font-variant-numeric:tabular-nums;transition:color .2s linear}.index__label{font-family:var(--font-text);font-weight:700;font-size:.82rem;letter-spacing:.12em;white-space:nowrap}.index__label small{display:block;font-family:var(--font-ui);font-weight:400;font-size:.62em;font-stretch:112%;letter-spacing:.14em;color:var(--ink-2);margin-top:.22em}.index__rule{display:none}.index__item:hover,.index__item:focus-visible{background:var(--chip);color:var(--ink)}.index__item:hover .index__dot,.index__item:focus-visible .index__dot{opacity:.55}.index__item.is-active{background:var(--wash);color:var(--ink)}.index__item.is-active:before{transform:scaleY(1)}.index__item.is-active .index__num{color:var(--orbit)}.index__item.is-active .index__dot{opacity:1}.stage{grid-row:2;position:relative;z-index:var(--z-content);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));align-items:stretch;min-height:0;padding:clamp(12px,2.2vh,26px) 0}.section{display:contents}.stack{grid-column:1 / 8;grid-row:3 / 9;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(8px,1.3vh,15px);min-height:0;padding-bottom:clamp(2px,.6vh,8px)}.stack>*{flex:0 0 auto;margin-top:0;margin-bottom:0;align-self:stretch}.stack>.stamp{align-self:flex-start}.section__wash{display:none}.section__head{display:flex;align-items:flex-end;gap:clamp(10px,1.4vw,18px);margin-bottom:clamp(6px,1.2vh,12px)}.section__num{font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.08em;color:var(--orbit);padding-bottom:.35em;border-bottom:1px solid var(--orbit);line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.section__kicker{font-family:var(--font-ui);font-size:var(--fs-eyebrow);font-stretch:125%;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding-bottom:.5em;white-space:nowrap}.section__title{margin:0;font-family:var(--font-text);font-weight:800;font-size:var(--fs-display);line-height:.98;letter-spacing:.01em;text-wrap:balance;overflow:hidden;padding-bottom:.04em}.section__title .latin{display:block;font-family:var(--font-ui);font-weight:700;font-stretch:125%;text-transform:uppercase;letter-spacing:.01em;font-size:.48em;line-height:1.06;color:var(--ink)}.section__title .outline{color:transparent;-webkit-text-stroke:1.5px var(--orbit);text-stroke:1.5px var(--orbit)}.section__lead{margin:clamp(10px,1.6vh,18px) 0 0;font-family:var(--font-text);font-size:var(--fs-lead);line-height:1.85;color:var(--ink-2);max-width:38em;text-wrap:pretty}.section__body{margin:clamp(8px,1.2vh,14px) 0 0;font-family:var(--font-text);font-size:var(--fs-body);line-height:1.85;color:var(--ink-2);max-width:38em}.section__body strong{color:var(--ink);font-weight:700}.section__body p{margin:0 0 .55em}.section__body p:last-child{margin-bottom:0}.section__foot{margin-top:clamp(10px,1.8vh,20px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(8px,1vw,12px)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:clamp(12px,2vh,22px) 0 0;border-top:1px solid var(--rule);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.06em;font-variant-numeric:tabular-nums}.facts>div{display:flex;align-items:baseline;gap:12px;min-width:0;padding:7px 0 6px;border-bottom:1px solid var(--rule)}.facts>div:nth-child(odd){padding-right:clamp(12px,1.6vw,24px);border-right:1px solid var(--rule)}.facts>div:nth-child(2n){padding-left:clamp(12px,1.6vw,24px)}.facts dt{flex:0 0 4.6em;color:var(--ink-2);letter-spacing:.12em}.facts dd{margin:0;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section--home .section__title{grid-column:1 / 10}.section--home .section__foot{margin-top:clamp(6px,1vh,10px)}.stamp{display:flex;align-items:baseline;gap:.9em;max-width:max-content;padding:.45em 0 .4em;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-variant-numeric:tabular-nums}.stamp b{color:var(--ink);font-weight:600;letter-spacing:.14em}.stamp span{color:var(--ink-2);letter-spacing:.1em}.btn{--cut: var(--cut-s);position:relative;display:inline-flex;align-items:center;gap:.7em;padding:.68em 1.15em .62em;padding-right:calc(1.15em + var(--cut));background:var(--chip);color:var(--ink);font-family:var(--font-ui);font-weight:700;font-size:var(--fs-field);font-stretch:112%;letter-spacing:.12em;text-transform:uppercase;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);overflow:hidden;isolation:isolate;transition:color .18s linear}.btn:before{content:"";position:absolute;inset:0;background:var(--flare);transform:translate(-101%);transition:transform .28s var(--ease-mech);z-index:-1}.btn:hover:before,.btn:focus-visible:before{transform:translate(0)}.btn:hover,.btn:focus-visible{color:var(--on-flare)}.btn--solid{background:var(--flare);color:var(--on-flare)}.btn--solid:before{background:var(--ink)}.btn--solid:hover,.btn--solid:focus-visible{color:var(--paper);transition:color .14s linear .14s}.btn__arrow{display:inline-block;transition:transform .28s var(--ease-mech)}.btn:hover .btn__arrow{transform:translate(4px)}.section--work .stack{grid-column:1 / 11}.timeline{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:clamp(6px,.9vw,14px);width:100%;border-top:1px solid var(--ink);padding-top:9px}.tl-col{display:flex;flex-direction:column;gap:7px;min-width:0}.tl-tick{display:flex;align-items:center;gap:7px;font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.08em;color:var(--ink);font-variant-numeric:tabular-nums}.tl-tick i{width:8px;height:8px;display:block;background:var(--orbit);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat}.tl-stack{display:flex;flex-direction:column;gap:5px}.tl-card{--cut: 6px;position:relative;display:flex;flex-direction:column;gap:2px;padding:8px 9px 7px 12px;border:1px solid var(--rule);background:var(--panel);overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);transition:background .2s linear,border-color .2s linear,transform .24s var(--ease-mech)}.tl-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c, var(--orbit))}.tl-card.is-flat{clip-path:none;--cut: 0px}.tl-card:hover,.tl-card:focus-visible,.tl-card.is-hot{background:var(--wash);border-color:var(--orbit);transform:translate(6px)}.tl-card:hover:before,.tl-card:focus-visible:before,.tl-card.is-hot:before{background:var(--orbit)}.tl-card__dot{display:none}.tl-card__title{font-family:var(--font-text);font-weight:700;font-size:clamp(.74rem,.84vw,.86rem);line-height:1.3;letter-spacing:.01em}.tl-card__sub{font-family:var(--font-ui);font-size:clamp(.56rem,.6vw,.64rem);font-stretch:112%;letter-spacing:.06em;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-card__pick{position:absolute;right:7px;top:6px;width:9px;height:9px;display:block;background:var(--orbit);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat}.tl-card__go{position:absolute;right:7px;bottom:5px;font-size:.62rem;line-height:1;font-style:normal;color:var(--ink-2)}.tl-card:hover .tl-card__go{color:var(--orbit)}.tl-caption{display:flex;align-items:baseline;gap:14px;border-top:1px solid var(--rule);padding-top:8px;min-height:2.4em}.tl-caption__tag{font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.08em;color:var(--orbit);white-space:nowrap;font-variant-numeric:tabular-nums}.tl-caption__desc{font-family:var(--font-text);font-size:var(--fs-body);line-height:1.55;color:var(--ink-2)}.section--repos .stack{grid-column:1 / 11;grid-row:2 / 9;justify-content:flex-start;padding-top:clamp(6px,2.4vh,28px)}.section--repos .section__title{font-size:var(--fs-h1)}.langmix{display:flex;align-items:center;gap:14px}.langmix__track{flex:1 1 auto;display:flex;height:6px;border:1px solid var(--rule);overflow:hidden}.langmix__track i{display:block;height:100%}.langmix__legend{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.06em;color:var(--ink-2);font-variant-numeric:tabular-nums}.langmix__item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.langmix__item i{width:7px;height:7px;display:inline-block}.langmix [data-i="0"]{background:var(--ink)}.langmix [data-i="1"]{background:var(--orbit)}.langmix [data-i="2"]{background:var(--cyan)}.langmix [data-i="3"]{background:var(--ink-2)}.langmix [data-i="4"]{background:var(--muted)}.langmix [data-i="5"]{background:var(--rule)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{--cut: 6px;position:relative;display:inline-flex;align-items:center;gap:6px;padding:.42em .72em .38em;padding-right:calc(.72em + var(--cut));background:var(--chip);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.06em;color:var(--ink-2);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);transition:background .18s linear,color .18s linear}.chip b{font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}.chip:hover{background:var(--wash);color:var(--ink)}.chip.is-on{background:var(--wash);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--orbit)}.chip.is-on b{color:var(--orbit)}.repo-list{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--ink);scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.repo-list::-webkit-scrollbar{width:7px}.repo-list::-webkit-scrollbar-thumb{background:var(--rule)}.repo{display:grid;grid-template-columns:minmax(170px,.9fr) 2.1fr auto 5em;align-items:center;gap:clamp(10px,1.6vw,22px);padding:9px 2px 9px 10px;border-bottom:1px solid var(--rule);font-family:var(--font-text);font-size:.9rem;position:relative;transition:background .18s linear,padding-left .24s var(--ease-mech)}.repo:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orbit);transform:scaleY(0);transform-origin:top;transition:transform .24s var(--ease-mech)}.repo:hover,.repo:focus-visible{background:var(--wash);padding-left:16px}.repo:hover:before,.repo:focus-visible:before{transform:scaleY(1)}.repo__name{display:flex;align-items:baseline;gap:8px;font-family:var(--font-ui);font-size:.9rem;font-weight:600;font-stretch:112%;letter-spacing:.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repo__name i{font-style:normal;font-size:.72rem;color:var(--ink-2);opacity:0;transition:opacity .2s linear}.repo__name i:before{content:""}.repo:hover .repo__name i,.repo:focus-visible .repo__name i{opacity:1;color:var(--orbit)}.repo__desc{font-family:var(--font-text);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem}.repo__meta{display:flex;align-items:baseline;gap:10px;font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.06em;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.repo__meta b{font-weight:600;color:var(--ink)}.repo__meta em{font-style:normal}.pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pills__label{font-family:var(--font-ui);font-size:var(--fs-eyebrow);font-stretch:125%;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-right:4px}.pill{--cut: 5px;display:inline-flex;align-items:center;padding:.34em .62em .3em;padding-right:calc(.62em + var(--cut));background:var(--chip);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.04em;color:var(--ink);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);transition:background .18s linear}.pill:hover{background:var(--wash)}.stack-groups{display:flex;flex-direction:column;gap:7px}.stack-row{display:flex;align-items:baseline;gap:10px}.stack-row .pills__label{flex:0 0 4.8em;width:4.8em;margin-right:0}.likes{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;font-family:var(--font-text);font-size:var(--fs-body);color:var(--ink-2)}.links{width:100%;border-top:1px solid var(--ink)}.link-row{position:relative;display:grid;grid-template-columns:4.6em 1fr auto;align-items:center;gap:clamp(10px,1.4vw,20px);padding:clamp(9px,1.15vh,13px) 2px 9px 12px;border-bottom:1px solid var(--rule);transition:background .18s linear,padding-left .24s var(--ease-mech)}.link-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orbit);transform:scaleY(0);transform-origin:top;transition:transform .24s var(--ease-mech)}.link-row:hover,.link-row:focus-visible{background:var(--wash);padding-left:18px}.link-row:hover:before,.link-row:focus-visible:before{transform:scaleY(1)}.link-row__num{font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.08em;color:var(--ink-2);font-variant-numeric:tabular-nums}.link-row__label{font-family:var(--font-text);font-weight:700;font-size:clamp(.96rem,1.1vw,1.1rem);letter-spacing:.04em}.link-row__label small{display:block;font-family:var(--font-ui);font-weight:400;font-size:.68em;font-stretch:112%;letter-spacing:.06em;color:var(--ink-2);margin-top:.3em}.link-row__go{font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:125%;letter-spacing:.1em;color:var(--ink-2);display:inline-flex;align-items:center;gap:.5em;white-space:nowrap}.link-row .arrow{display:inline-block;transition:transform .24s var(--ease-mech)}.link-row:hover .arrow{transform:translate(5px)}.friends{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px}.friend{display:inline-flex;flex-direction:column;gap:2px;padding:6px 10px 6px 0;border-bottom:1px solid var(--rule);font-family:var(--font-text);font-weight:700;font-size:var(--fs-body);transition:color .18s linear,border-color .18s linear}.friend small{font-family:var(--font-ui);font-weight:400;font-size:.72em;letter-spacing:.06em;color:var(--ink-2)}.friend:hover,.friend:focus-visible{color:var(--orbit);border-color:var(--orbit)}.section--terminal .stack{grid-column:1 / 11;justify-content:center}.final{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:clamp(18px,3.4vw,56px);align-items:end}.final__main{display:flex;flex-direction:column;gap:6px;min-width:0}.final__prompt{margin:0;font-family:var(--mono);font-size:var(--fs-field);letter-spacing:.06em;color:var(--ink-2)}.final__name{margin:0;font-family:var(--font-ui);font-weight:800;font-stretch:125%;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.95;letter-spacing:.01em}.final__sub{margin:4px 0 14px;font-family:var(--font-text);font-size:var(--fs-body);line-height:1.7;color:var(--ink-2);max-width:34em}.term{display:flex;flex-direction:column;width:min(640px,100%);height:auto;min-height:calc(24em + 64px);margin:0;background:var(--term-bg);color:var(--term-fg);font-family:var(--mono);font-size:clamp(11.5px,.86vw,13px);line-height:1.6;overflow:hidden}.term__bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--term-rule);font-size:11px;letter-spacing:.06em;color:var(--term-dim);flex:0 0 auto}.term__seal{width:9px;height:9px;display:block;background:var(--flare);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat;flex:0 0 auto}.term__title{flex:1}.term__meta{opacity:.68}.term__body{flex:1;padding:12px 16px 14px;min-height:0;overflow:hidden}.term__line{display:flex;gap:8px;white-space:pre-wrap;word-break:break-word}.term__line--cmd{color:var(--term-fg)}.term__prompt{color:var(--flare);flex:0 0 auto}.term__line--out{color:var(--term-out)}.term__caret{display:inline-block;width:.55em;height:1.02em;background:var(--term-fg);vertical-align:-.16em}.final__spec{border-top:1px solid var(--ink);padding-top:10px;display:flex;flex-direction:column;gap:8px}.final__spec div{display:flex;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--rule);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.06em;font-variant-numeric:tabular-nums}.final__spec span{color:var(--ink-2)}.final__spec b{font-weight:600;color:var(--ink);white-space:nowrap}.book{position:fixed;inset:0;z-index:70;display:grid;grid-template-rows:auto 1fr;padding:var(--my) var(--mx);background:var(--paper);animation:book-in .32s var(--ease-snap) both}@keyframes book-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.book__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--ink)}.book__title{margin:0;font-family:var(--font-text);font-weight:800;font-size:clamp(1.2rem,2.2vw,1.9rem);letter-spacing:.02em}.book__title small{display:block;font-family:var(--font-ui);font-weight:400;font-size:.44em;font-stretch:112%;letter-spacing:.14em;color:var(--ink-2);margin-top:.5em;text-transform:uppercase}.book__scroll{overflow-y:auto;overscroll-behavior:contain;padding:clamp(14px,2.2vh,26px) 0 6vh;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.book__scroll::-webkit-scrollbar{width:8px}.book__scroll::-webkit-scrollbar-thumb{background:var(--rule)}.book__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(16px,2.4vw,36px);align-items:start;max-width:1200px}.book__group h2{margin:0 0 .7em;padding-bottom:.45em;border-bottom:1px solid var(--orbit);font-family:var(--font-text);font-weight:800;font-size:clamp(.98rem,1.3vw,1.2rem);letter-spacing:.04em}.book__group h2 span{font-family:var(--font-ui);font-weight:600;font-size:.72em;font-stretch:125%;color:var(--orbit);margin-right:.6em;font-variant-numeric:tabular-nums}.book__item{display:block;padding:.6em 0 .55em;border-bottom:1px solid var(--rule);font-family:var(--font-text);font-size:var(--fs-body);line-height:1.6;transition:background .18s linear,padding-left .24s var(--ease-mech)}.book__item:hover,.book__item:focus-visible{background:var(--wash);padding-left:.5em}.book__item b{font-weight:700}.book__item small{display:block;margin-top:.25em;font-family:var(--font-ui);font-size:.72em;letter-spacing:.04em;color:var(--ink-2)}.book__note{margin:0 0 1.4em;font-family:var(--font-text);font-size:var(--fs-body);line-height:1.85;color:var(--ink-2);max-width:640px}.sound{--cut: 5px;display:inline-flex;align-items:center;gap:.6em;padding:.4em .7em .36em;padding-right:calc(.7em + var(--cut));background:var(--chip);font-family:var(--font-ui);font-size:var(--fs-field);font-stretch:112%;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%);transition:background .18s linear,color .18s linear}.sound:hover,.sound:focus-visible{background:var(--wash);color:var(--ink)}.sound__bars{display:inline-flex;align-items:flex-end;gap:2px;height:.9em}.sound__bars i{display:block;width:2px;height:30%;background:currentColor}.sound__bars i:nth-child(2){height:60%}.sound__bars i:nth-child(3){height:42%}.sound__bars i:nth-child(4){height:80%}.sound.is-on{color:var(--ink)}.sound.is-on .sound__bars i{background:var(--orbit)}.sound--masthead{display:none}.theme__glyph{width:9px;height:9px;display:inline-block;background:var(--ink-2);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat;transition:background .18s linear}.theme.is-on .theme__glyph{background:var(--flare)}.rail__actions{display:flex;align-items:center;gap:8px}.play{--cut: 5px}.play__dot{width:8px;height:8px;display:inline-block;background:var(--ink-2);-webkit-mask:var(--st-star) center / contain no-repeat;mask:var(--st-star) center / contain no-repeat;transition:background .18s linear}.play.is-on .play__dot{background:var(--orbit)}.reveal{opacity:0;transform:translateY(14px)}.stage.is-entering .reveal{animation:reveal-up .42s var(--ease-snap) both;animation-delay:calc(var(--i, 0) * 38ms)}@keyframes reveal-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.wordmark-line{display:block;overflow:hidden;padding-bottom:.06em}.wordmark-line>span{display:block;will-change:transform;transform:translateY(110%)}.stage.is-entering .wordmark-line>span{animation:type-rise .62s var(--ease-mech) both;animation-delay:calc(70ms + var(--i, 0) * 45ms)}@keyframes type-rise{0%{transform:translateY(110%)}to{transform:translateY(0)}}.flipfield{position:absolute;inset:0;z-index:var(--z-curtain);display:grid;pointer-events:none}.flipfield__tile{position:relative;transform-style:preserve-3d;will-change:transform}.flipfield__face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.flipfield__face--front{background:transparent}.flipfield__face--back{background:var(--plate);transform:rotateY(180deg)}@media(max-width:1320px){.index{right:calc(var(--mx) * .7);width:150px}}@media(max-width:1024px){:root{--fs-display: clamp(2.1rem, 6.6vw, 4.4rem)}.section__title,.section__lead,.section__body{grid-column:1 / -1}.stack{grid-column:1 / -1;grid-row:1 / -1;justify-content:flex-start;padding-bottom:0}.section--work .stack,.section--repos .stack{grid-column:1 / -1}.timeline{grid-template-columns:repeat(7,168px);overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:8px;scrollbar-width:thin}.repo-list{max-height:40vh}.langmix{flex-direction:column;align-items:flex-start;gap:8px}.langmix__track{width:100%;flex:none}.index{position:fixed;inset:auto 0 0;width:auto;transform:none;flex-direction:row;align-items:stretch;justify-content:space-between;gap:0;padding:0 var(--mx) env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--rule)}.index__item{flex:1 1 0;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:10px 0 9px;clip-path:none}.index__item:before{inset:auto 12px 0;width:auto;height:3px;transform:scaleX(0);transform-origin:left}.index__item.is-active:before{transform:scaleX(1)}.index__label{font-size:.64rem;letter-spacing:.08em}.index__label small,.index__dot,.index__rule{display:none}.app{padding-bottom:calc(58px + env(safe-area-inset-bottom))}.rail{display:none}.sound--masthead{display:inline-flex}.final{grid-template-columns:minmax(0,1fr);gap:18px}.final .term{width:100%}.final__spec{flex-direction:row;flex-wrap:wrap;gap:8px 20px}.final__spec div{flex:1 1 40%}.starfield__patch--tr{width:64vw;height:40vh;opacity:.7}}@media(max-width:768px){:root{--mx: 16px;--my: 14px;--fs-display: clamp(1.9rem, 10vw, 3rem);--fs-h1: clamp(1.6rem, 8vw, 2.4rem)}.masthead__brand{font-size:.76rem;letter-spacing:.1em}.masthead{gap:10px}.masthead__tools{gap:6px}.masthead .sound{gap:.45em;padding:.35em .5em .3em;padding-right:calc(.5em + var(--cut));font-size:.68rem;letter-spacing:.05em}.stage{padding:8px 0 4px}.section__head{gap:10px}.section__kicker{white-space:normal}.section__title{font-size:var(--fs-display)}.section__lead,.section__body{font-size:.86rem;line-height:1.72}.facts{grid-template-columns:minmax(0,1fr);margin-top:10px}.chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.facts>div:nth-child(odd){padding-right:0;border-right:0}.facts>div:nth-child(2n){padding-left:0}.timeline{grid-template-columns:repeat(7,156px)}.tl-caption__desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.repo{grid-template-columns:1fr auto;gap:8px 12px;font-size:.8rem}.repo__desc{display:none}.repo__meta{grid-column:2;grid-row:1}.repo-list{max-height:36vh}.link-row{grid-template-columns:3.2em 1fr auto;padding:8px 0 8px 10px}.link-row__label{font-size:.86rem}.link-row__label small{display:none}.stack-row{flex-direction:column;gap:4px}.stack-row .pills__label{flex:none;width:auto}.term{height:auto;min-height:calc(24em + 64px)}.book__head{flex-direction:column;align-items:flex-start;gap:8px}.friends{gap:8px 14px}.friend{font-size:.84rem}}@media(max-height:640px)and (min-width:1025px){.section__title{font-size:clamp(1.8rem,4.4vw,3.2rem)}.tl-card{padding-top:6px;padding-bottom:5px}.link-row{padding-top:6px;padding-bottom:6px}.facts{gap:10px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal,.wordmark-line>span{opacity:1;transform:none}}
