@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600;700;900&display=swap');

:root{--paper:#faf9f6;--surface:#fffefa;--ink:#242623;--secondary:#646761;--muted:#969990;--line:#e8e8e0;--soft:#f0f0e9;--yellow:#f4dc6c;--lilac:#dcd4ef;--green:#dce7d2;--blue:#d4e4f0;--ease:cubic-bezier(.22,1,.36,1);--sans:'DM Sans','Microsoft YaHei',sans-serif;--serif:'Noto Serif SC','Songti SC',serif;--mono:'Courier New',monospace;color-scheme:light}[data-theme=dark]{--paper:#1c1e1c;--surface:#242724;--ink:#eeeee4;--secondary:#b4b8ac;--muted:#8b9083;--line:#363a33;--soft:#292d27;--yellow:#c6ac45;--lilac:#65577e;--green:#4a5f3e;--blue:#3d5868;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);font:14px/1.6 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;transition:background .4s,color .4s}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;background:none;border:0;padding:0}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}svg{width:22px;height:22px;flex-shrink:0}figure,p,h1,h2,h3{margin:0}::selection{background:var(--lilac);color:var(--ink)}:focus-visible{outline:2px solid #9c8aba;outline-offset:5px}main{min-height:65vh}main:focus{outline:0}.skip-link{position:fixed;left:20px;top:-80px;z-index:200;background:var(--ink);color:var(--paper);padding:12px 20px}.skip-link:focus{top:10px}.wide,.site-footer{max-width:1100px;margin-inline:auto}.narrow{max-width:980px;margin-inline:auto}
.site-header{height:82px;position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(18px);transition:box-shadow .3s}.site-header.scrolled{box-shadow:0 1px var(--line)}.header-inner{max-width:1130px;margin:auto;display:flex;align-items:center;height:100%;gap:24px}.brand-tools{display:flex;align-items:center;gap:11px;margin-right:auto}.brand{height:42px;width:42px;border-radius:50%;background:var(--ink);color:var(--paper);position:relative;display:grid;place-items:center;flex-shrink:0}.brand>span{font:italic bold 43px/1 Georgia;transform:translate(-2px,-1px)}.brand>i{font:normal 22px/1 var(--sans);position:absolute;right:1px;top:1px;color:#c6d9a1}.effect-switch{font:700 11px var(--mono);padding:9px 12px;min-width:76px;border-radius:30px;background:var(--yellow);color:#373525;box-shadow:0 0 18px #e8c64930;transition:.3s}.effect-switch span{margin-left:5px}.effect-switch[data-mode=shapes]{background:var(--lilac);color:#3c2c56;box-shadow:0 0 18px #a690cb40}.effect-switch[data-mode=off]{background:var(--soft);color:var(--muted);box-shadow:none}.magic-note{position:relative;font:italic 13px Georgia;color:var(--secondary);transform:rotate(-9deg);white-space:nowrap}.magic-note svg{position:absolute;left:-3px;top:15px;width:52px;height:21px;fill:none;stroke:#c2ab44;stroke-width:1.2}.site-header nav{display:flex;align-items:center;gap:26px}.site-header nav>a,.more-menu>button{font-size:13px;position:relative;white-space:nowrap;padding:12px 0}.site-header nav>a:after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.site-header nav>a:hover:after,.site-header nav>a.active:after{transform:scaleX(1);transform-origin:left}.site-header nav>a.active{font-weight:700}.new-dot,.green-dot{display:inline-block;width:6px;height:6px;background:#67a681;border-radius:50%;flex-shrink:0}.new-dot{vertical-align:super;margin-left:3px;width:5px;height:5px}.more-menu{position:relative}.more-menu>button{color:var(--secondary)}.more-dropdown{position:absolute;top:44px;right:-20px;width:230px;background:var(--surface);padding:9px;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 50px #0000000a;opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}.more-menu:hover .more-dropdown,.more-menu:focus-within .more-dropdown,.more-menu.open .more-dropdown{opacity:1;visibility:visible;transform:none}.more-dropdown a{display:flex;align-items:center;gap:11px;padding:12px 9px;font-size:12px;border-radius:6px}.more-dropdown a:hover{background:var(--soft)}.more-dropdown svg{width:16px;height:16px}.more-dropdown a>span{margin-left:auto}.header-actions{display:flex;align-items:center;gap:16px}.icon-button{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--secondary)}.icon-button:hover{color:var(--ink)}.icon-button svg{width:19px;height:19px}.icon-button kbd{font:10px var(--mono);padding:1px 5px;border:1px solid var(--line);border-radius:3px;color:var(--muted)}.theme-switch{width:47px;height:25px;border:1px solid var(--line);border-radius:20px;display:flex;align-items:center;justify-content:space-between;padding:2px;color:var(--muted)}.theme-knob{width:19px;height:19px;display:grid;place-items:center;background:var(--ink);color:var(--paper);border-radius:50%;transition:transform .35s var(--ease)}.theme-knob svg{width:12px;height:12px}.theme-switch>span:last-child{font-size:15px;margin-right:4px}.theme-switch[aria-pressed=true] .theme-knob{transform:translateX(21px)}.theme-switch[aria-pressed=true]>span:last-child{transform:translateX(-22px)}.menu-toggle{display:none}
.page-hero{max-width:900px;margin:auto;text-align:center;padding:43px 20px 42px;position:relative}.title-tag{display:inline-block;font:11px/1 var(--mono);letter-spacing:1px;border:1px solid var(--line);border-radius:30px;padding:8px 21px 6px;color:var(--secondary)}.page-hero h1{font:600 65px/1.5 var(--serif);letter-spacing:-3px;margin:22px 0 20px;transform:translate3d(var(--hx,0),var(--hy,0),0);transition:transform 1s var(--ease)}.page-hero .amp{font:italic 65px Georgia;margin:0 11px;color:#8e917e}.page-hero p{max-width:530px;margin:auto;font-size:13px;line-height:2;color:var(--secondary)}.social{display:flex;align-items:center;justify-content:center;gap:23px;margin:30px auto 0;width:max-content;position:relative;padding-bottom:18px}.social:after{content:'';position:absolute;bottom:0;width:200px;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}.social a{color:var(--muted);position:relative;transition:transform .35s var(--ease),color .25s}.social a:hover{color:var(--ink);transform:translateY(-4px)}.social svg{width:18px;height:18px}.social [data-tip]:after{content:attr(data-tip);position:absolute;top:33px;left:50%;transform:translate(-50%,5px);background:var(--ink);color:var(--paper);border-radius:5px;font-size:10px;white-space:nowrap;padding:4px 8px;opacity:0;visibility:hidden;transition:.2s}.social a:hover:after,.social a:focus-visible:after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.home-portals{max-width:940px;margin:10px auto 35px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.portal{position:relative;border:1px solid var(--line);border-radius:14px;padding:21px 20px;isolation:isolate;overflow:hidden;transition:border .35s,transform .4s var(--ease)}.portal:before{content:'';position:absolute;inset:0;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--lilac) 52%,transparent),transparent 75%);z-index:-1;opacity:0;transition:opacity .4s}.portal:nth-child(2):before{background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),var(--green),transparent 75%)}.portal:nth-child(3):before{background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--yellow) 40%,transparent),transparent 75%)}.portal:hover:before{opacity:1}.portal:hover{transform:translateY(-3px);border-color:var(--muted)}.portal small{font:9px var(--mono);letter-spacing:.7px;color:var(--secondary);display:block;margin-bottom:9px}.portal strong{font-size:13px;font-weight:600;display:block}.portal p{font-size:11px;color:var(--secondary);margin-top:5px}.portal>span{position:absolute;right:19px;top:17px;font-size:17px;color:var(--secondary);transition:transform .4s var(--ease)}.portal:hover>span{transform:translate(3px,-3px)}
.collection-toolbar{border-bottom:1px solid var(--line);padding:0 0 22px;display:flex;align-items:center;justify-content:space-between}.filter-pills{display:flex;position:relative;gap:9px;isolation:isolate}.filter-pills button{border:1px solid var(--line);border-radius:40px;padding:9px 24px;font-size:12px;transition:color .25s,border-color .3s;position:relative;z-index:1;white-space:nowrap}.filter-pills button:hover{border-color:var(--secondary)}.filter-pills button.selected{color:var(--paper);border-color:transparent}.filter-pills sup{font-size:8px;vertical-align:super;margin-left:3px;opacity:.65}.filter-indicator{position:absolute;left:0;top:0;height:100%;background:var(--ink);border-radius:40px;z-index:0;transition:width .5s var(--ease),transform .5s var(--ease)}.collection-caption{display:flex;align-items:center;justify-content:space-between;font:9px var(--mono);letter-spacing:1.4px;color:var(--muted);margin:25px 0 22px}.collection-caption>span:last-child{font:10px var(--sans);letter-spacing:1px;display:flex;align-items:center;gap:9px}.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 25px;align-items:start}.content-card{min-width:0}.card-meta{display:flex;justify-content:space-between;font:10px var(--mono);color:var(--secondary);margin:0 6px 12px}.cover-link{aspect-ratio:10/7;display:block;border-radius:8px;overflow:hidden;position:relative;background:var(--soft);transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .8s var(--ease),box-shadow .5s}.cover-link img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}.cover-link:hover{box-shadow:0 14px 25px -15px #0005}.cover-link:hover img{transform:scale(1.025)}.card-title{display:flex;align-items:baseline;justify-content:space-between;gap:9px;margin:14px 1px 7px;font-size:15px;font-weight:600;letter-spacing:-.3px}.card-title a{background:linear-gradient(var(--ink),var(--ink)) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease)}.card-title a:hover{background-size:100% 1px}.tiny-arrow{font-size:14px;font-weight:400;opacity:0;transform:translate(-4px,4px);transition:.35s var(--ease)}.content-card:hover .tiny-arrow{opacity:1;transform:none}.content-card>p{font-size:11px;color:var(--secondary);line-height:1.9}.card-foot{display:flex;justify-content:space-between;gap:8px;font:9px var(--mono);color:var(--muted);margin-top:13px}.card-foot>span{font:9px var(--sans)}.collection-end{display:flex;justify-content:space-between;align-items:center;margin-top:35px;padding:22px 0;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:12px;transition:gap .4s var(--ease)}.text-link:hover{gap:22px}.text-link svg{width:17px;height:17px}.home-lab{display:flex;align-items:center;gap:28px;max-width:940px;margin:65px auto 70px;padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lab-symbol{font:90px Georgia;color:var(--secondary);width:125px;text-align:center;animation:slow-spin 40s linear infinite}.home-lab small,.section-heading small,.small-heading,.about-copy small,.lab-caption,.repo-type{font:10px var(--mono);letter-spacing:1px;color:var(--secondary)}.home-lab h2{font:500 28px var(--serif);margin:11px 0 10px}.home-lab p{font-size:12px;color:var(--secondary)}.round-link{margin-left:auto;flex-shrink:0;border:1px solid var(--line);width:62px;height:62px;border-radius:50%;display:grid;place-items:center;transition:background .4s,color .4s}.round-link:hover{background:var(--ink);color:var(--paper)}.round-link svg{width:25px;height:25px;transform:rotate(-45deg)}
.site-footer{margin-top:65px;padding:32px 0 25px;border-top:1px solid var(--line)}.footer-top{display:flex;align-items:center;gap:30px}.footer-brand{font-size:21px;font-weight:700;letter-spacing:-1px;display:flex;align-items:center;gap:9px}.footer-brand>span{font-size:22px;color:var(--muted)}.footer-top p{font-size:11px;color:var(--secondary)}.footer-top-link{margin-left:auto;font-size:10px;color:var(--secondary)}.footer-bottom{display:flex;align-items:center;gap:22px;justify-content:space-between;color:var(--muted);font-size:9px;margin-top:30px}.footer-bottom a{display:flex;gap:5px;align-items:center}.footer-bottom svg{width:11px;height:11px}
.projects-page{padding-top:17px}.small-heading{display:flex;justify-content:space-between;padding:0 0 20px;border-bottom:1px solid var(--line);font-size:9px}.project-row{padding:26px 17px 18px;display:block;border-bottom:1px solid var(--line);margin-bottom:15px;transition:background .4s}.project-row:nth-of-type(1){--hover-color:var(--lilac)}.project-row:nth-of-type(2){--hover-color:var(--blue)}.project-row:nth-of-type(3){--hover-color:var(--green)}.project-row:hover{background:color-mix(in srgb,var(--hover-color) 36%,transparent)}.project-row-header{display:flex;justify-content:space-between;align-items:center}.project-row-header small{font:9px var(--mono);color:var(--muted)}.project-row-header h2{font-size:23px;font-weight:600;letter-spacing:-.8px;margin:10px 0 5px}.project-row-header p{font-size:12px;color:var(--secondary)}.round-arrow{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:43px;height:43px;flex-shrink:0;transition:transform .45s var(--ease),border .35s,background .35s}.round-arrow svg{width:20px;height:20px}.project-row:hover .round-arrow,.post-row:hover .round-arrow{transform:rotate(-45deg);background:var(--paper);border-color:var(--paper)}.project-strip{display:flex;gap:12px;margin:26px 0 20px;height:202px;overflow:hidden}.project-strip>div{border-radius:6px;overflow:hidden;flex:1.6}.project-strip>div>img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.project-row:hover .project-strip>div:first-child>img{transform:scale(1.03)}.project-strip .project-strip-detail{position:relative;flex:1;background:var(--soft)}.project-strip-detail>img{transform:scale(1.8) translate(-5%,8%)}.project-strip-detail>span{position:absolute;bottom:12px;left:15px;font:7px var(--mono);letter-spacing:1px;padding:6px 9px;background:var(--paper);border-radius:3px}.project-strip .project-strip-mobile{flex:.7;background:var(--soft);position:relative;display:flex;justify-content:center;padding:16px 0 0}.phone-screen{width:112px;border:5px solid #32332e;border-radius:18px;transform:rotate(7deg) translateY(10px);overflow:hidden;height:210px;background:#fafaf6;box-shadow:10px 10px 25px #0002;transition:transform .6s var(--ease)}.phone-screen img{height:100%;object-fit:cover;max-width:none;width:100%}.project-row:hover .phone-screen{transform:rotate(0) translateY(-3px)}.project-row-footer{display:flex;justify-content:space-between;align-items:center}.project-row-footer>span{display:flex;gap:7px}.project-row-footer i{font:9px var(--sans);border:1px solid var(--line);padding:4px 12px;border-radius:25px;background:var(--paper)}.project-row-footer>b{font-size:23px;font-weight:500;letter-spacing:-1px}.bottom-invite{max-width:980px;margin:60px auto 70px;text-align:center;padding:30px 0}.bottom-invite>span{display:block;color:var(--muted);font-size:12px}.bottom-invite>a{display:inline-flex;align-items:center;gap:16px;font:500 22px var(--serif);margin-top:14px}.bottom-invite>a svg{transform:rotate(-45deg)}
.repo-summary{display:flex;align-items:center;gap:24px;border-block:1px solid var(--line);padding:26px 10px}.folder-art{height:67px;width:70px;background:var(--blue);border-radius:10px 10px 15px 15px;display:grid;place-items:center;font:25px var(--mono);color:#6a9fc0;box-shadow:inset 0 -3px 9px #829eb729;transform:rotate(-7deg);position:relative}.folder-art:before{content:'';position:absolute;top:-7px;left:4px;width:30px;height:12px;border-radius:5px 5px 0 0;background:var(--blue)}.repo-summary>div:nth-child(2)>strong{display:block;font-size:37px;line-height:1.1;font-weight:600;letter-spacing:-2px}.repo-summary>div:nth-child(2)>span{font-size:10px;color:var(--muted)}.repo-summary>p{font-size:12px;color:var(--secondary)}.repo-summary>p small{font-size:10px;color:var(--muted)}.outline-link,.solid-link{display:inline-flex;justify-content:center;align-items:center;gap:22px;border:1px solid var(--line);border-radius:30px;padding:11px 19px;font-size:11px;transition:background .3s,transform .3s var(--ease),border .3s;white-space:nowrap}.outline-link:hover{background:var(--soft);border-color:var(--muted);transform:translateY(-2px)}.solid-link{background:var(--ink);color:var(--paper);border-color:var(--ink)}.solid-link:hover{transform:translateY(-2px);box-shadow:0 5px 20px #0002}.solid-link svg{width:16px;height:16px;transform:rotate(-45deg)}.repo-summary>.outline-link{margin-left:auto}.repo-section{margin-top:65px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:26px}.section-heading h2{font-size:25px;font-weight:600;letter-spacing:-.5px;margin-top:10px}.section-heading>p{font-size:11px;color:var(--secondary);margin-bottom:3px}.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.repo-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border .4s,box-shadow .4s}.repo-card:hover{border-color:var(--muted);box-shadow:0 12px 20px -20px #0005}.repo-cover{aspect-ratio:10/7;position:relative;overflow:hidden;display:block}.repo-cover img{transition:transform .65s var(--ease)}.repo-card:hover img{transform:scale(1.04)}.repo-cover>span{position:absolute;right:13px;bottom:13px;width:34px;height:34px;background:var(--paper);display:grid;place-items:center;border-radius:50%;opacity:0;transform:translateY(8px);transition:.3s}.repo-cover>span svg{width:17px;height:17px;transform:rotate(-45deg)}.repo-card:hover .repo-cover>span{opacity:1;transform:none}.repo-body{padding:20px}.repo-type{display:flex;justify-content:space-between;font-size:8px}.repo-body h3{font-size:18px;margin:12px 0 9px;letter-spacing:-.5px}.repo-body>p{font-size:11px;line-height:1.9;color:var(--secondary);min-height:62px}.repo-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-top:17px;font-size:10px}.repo-actions a{display:flex;align-items:center;gap:6px}.repo-actions a:hover{text-decoration:underline}.repo-actions svg{width:14px;height:14px}.open-note{display:flex;gap:35px;background:var(--soft);border-radius:12px;padding:38px;margin-top:55px}.open-note>span{font-size:50px;color:var(--muted)}.open-note h2{font:500 23px var(--serif);margin-bottom:12px}.open-note p{font-size:12px;color:var(--secondary);margin-bottom:19px}
.blog-layout{display:grid;grid-template-columns:180px 1fr;gap:55px;margin-top:16px}.blog-aside{position:sticky;top:115px;height:max-content;padding-top:26px}.blog-aside>span{font:10px var(--mono);letter-spacing:1px;color:var(--muted)}.topic-list{display:flex;flex-direction:column;gap:5px;margin:19px 0 30px}.topic-list button{font-size:12px;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:10px 11px;color:var(--secondary);border-radius:5px;transition:background .3s,color .3s}.topic-list button:hover,.topic-list button.selected{background:var(--soft)}.topic-list button.selected{color:var(--ink)}.topic-list small{font:9px var(--mono);color:var(--muted)}.subscribe-link{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--secondary)}.subscribe-link svg{width:14px;height:14px}.blog-aside>p{font-size:10px;color:var(--muted);margin-top:18px}.post-row{border-top:1px solid var(--line);position:relative}.post-row>a{padding:25px 17px;display:block;transition:background .4s}.post-row>a:hover{background:var(--soft)}.post-row-meta{display:flex;justify-content:space-between;font:9px var(--mono);color:var(--muted)}.post-row-meta>span:first-child{font:10px var(--sans);color:var(--secondary)}.post-row h2{font-size:21px;font-weight:600;line-height:1.6;margin:15px 0 10px;letter-spacing:-.5px}.post-row p{font-size:12px;line-height:1.8;color:var(--secondary)}.post-row-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.post-row time{font:10px var(--mono);color:var(--muted)}.post-row .round-arrow{width:33px;height:33px}.post-row .round-arrow svg{width:15px;height:15px}.post-end{padding:35px 0;border-top:1px solid var(--line);text-align:center;font-size:10px;letter-spacing:1px;color:var(--muted)}
.garden-intro{display:flex;align-items:center;gap:23px;background:var(--soft);border-radius:10px;padding:25px 30px}.garden-spark{font-size:47px;color:#9fa98e}.garden-intro strong{font-size:14px;font-weight:500}.garden-intro p{font-size:11px;color:var(--secondary);margin-top:5px}.garden-status{margin-left:auto;font:8px var(--mono);letter-spacing:1px;display:flex;align-items:center;gap:8px}.garden{margin-top:58px}.garden-group{margin-bottom:57px}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.note-card{border:1px solid var(--line);border-radius:9px;padding:26px 22px 20px;position:relative;transition:background .4s,border .4s,transform .45s var(--ease)}.note-card:hover{background:var(--surface);border-color:#b6c3a6;transform:translateY(-5px)}.note-symbol{font:27px var(--mono);color:#8e9f77}.note-state{display:inline-block;font-size:9px;color:#829270;border:1px solid color-mix(in srgb,#b3c799 40%,var(--line));padding:3px 8px;border-radius:20px;background:color-mix(in srgb,var(--green) 25%,transparent)}.note-card>.note-state{position:absolute;right:18px;top:27px}.note-card h3{font-size:17px;font-weight:500;margin:22px 0 7px}.note-card p{font-size:11px;color:var(--secondary)}.note-card>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:28px;padding-top:14px;font-size:9px;color:var(--muted)}.note-card>div>span:last-child{font-size:14px;color:var(--ink)}
.article-shell{max-width:1140px;margin:auto;position:relative}.article-header{text-align:center;max-width:800px;margin:25px auto 38px;padding:0 20px 32px;border-bottom:1px solid var(--line)}.article-header h1{font-size:35px;letter-spacing:-1.2px;line-height:1.6;margin:27px 0 15px;font-weight:600}.article-header>p{font-size:13px;color:var(--secondary)}.article-header>div{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:24px;font:10px var(--mono);color:var(--muted)}.article-header>div i{height:3px;width:3px;border-radius:50%;background:var(--muted)}.article-back{position:absolute;left:0;top:65px;width:43px;height:43px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.article-back svg{transform:rotate(180deg);width:21px;height:21px}.reading-layout{display:grid;grid-template-columns:minmax(0,740px) 190px;gap:45px;max-width:980px;margin:0 auto}.article-toc{grid-column:2;grid-row:1;position:sticky;top:115px;height:max-content}.toc-toggle{font-size:11px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 0 14px;color:var(--secondary)}.article-toc nav{border:1px solid var(--line);border-radius:9px;padding:11px 13px}.article-toc nav a{display:flex;align-items:baseline;gap:9px;font-size:11px;color:var(--secondary);line-height:1.6;padding:9px 0;transition:color .25s}.article-toc nav a>span{font:8px var(--mono);color:var(--muted)}.article-toc nav a.active,.article-toc nav a.active>span{color:#8d9e70}.article-toc nav[hidden]{display:none}.reading-tools{display:flex;gap:10px;border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.reading-tools button{font-size:15px;color:var(--secondary);flex:1;display:flex;align-items:center;gap:7px}.reading-tools span{font-size:10px}.prose{grid-column:1;grid-row:1;min-width:0;--reading-size:15px}.article-cover{border-radius:8px;overflow:hidden;margin-bottom:35px}.article-cover img{width:100%;height:auto}.prose p,.prose li{font-size:var(--reading-size);line-height:2.1;color:var(--secondary);margin:18px 0}.prose .lead{font-size:calc(var(--reading-size) + 1px);line-height:2.1}.prose-section{position:relative;scroll-margin-top:120px;margin:43px 0}.prose-section h2{font-size:24px;line-height:1.6;letter-spacing:-.7px;font-weight:600;margin:8px 0 20px}.section-number{font:10px var(--mono);color:var(--muted)}.prose blockquote{margin:30px 0;padding:22px 25px;border-left:2px solid #b2be99;background:var(--soft);font:500 19px/1.8 var(--serif)}.code-block{margin:28px 0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--soft)}.code-block>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 16px;font:9px var(--mono);letter-spacing:.6px;color:var(--muted)}.code-block button{font:10px var(--sans);color:var(--secondary)}.code-block pre{padding:20px;font:11px/1.9 var(--mono);overflow:auto;margin:0;color:var(--secondary);tab-size:2}.article-signoff{display:flex;gap:20px;align-items:center;padding:25px 0 33px;border-block:1px solid var(--line)}.article-signoff>span{font-size:40px;color:#a7b78d}.article-signoff p{margin:0;font-size:14px;color:var(--ink)}.article-signoff small{color:var(--muted);font-size:11px}.next-article{position:relative;display:block;margin:35px 0 20px;padding:22px 26px;background:var(--soft);border-radius:10px}.next-article>span{display:block;font-size:10px;color:var(--muted);margin-bottom:9px}.next-article>strong{font-size:17px;font-weight:500;max-width:85%;display:block}.next-article>svg{position:absolute;right:25px;top:46%;transition:transform .4s var(--ease)}.next-article:hover>svg{transform:translateX(5px)}
.knowledge-layout{max-width:1100px;margin:48px auto 80px;display:grid;grid-template-columns:215px minmax(0,700px);gap:65px}.knowledge-sidebar{position:sticky;top:115px;height:max-content;border-right:1px solid var(--line);padding-right:25px}.knowledge-sidebar>.text-link{font-size:11px;color:var(--secondary);margin:0 0 14px}.knowledge-sidebar>div{margin:25px 0}.knowledge-sidebar small{font-size:10px;color:var(--muted);display:block;margin-bottom:10px}.knowledge-sidebar>div a{display:flex;align-items:center;gap:11px;padding:9px 10px;font:14px var(--mono);margin:3px 0;color:var(--muted);border-radius:5px;transition:background .3s}.knowledge-sidebar>div a>span{font:11px var(--sans);color:var(--secondary)}.knowledge-sidebar>div a:hover,.knowledge-sidebar>div a.active{background:var(--soft);color:#8c9c72}.sidebar-caption{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:7px}.note-prose{grid-column:2}.note-breadcrumb{font-size:10px;color:var(--muted);margin:0 0 35px}.note-prose>.note-state{margin:0 0 11px}.note-prose>h1{font-size:38px;font-weight:600;letter-spacing:-1px;line-height:1.5}.note-prose>.lead{color:var(--muted);font-size:14px;margin-top:10px}.note-mini-toc{background:var(--soft);padding:20px;border-radius:8px;margin:30px 0 40px;display:flex;flex-direction:column;gap:10px;font-size:11px;color:var(--secondary)}.note-mini-toc a:hover{color:var(--ink)}.related-notes{margin-top:45px;border-top:1px solid var(--line);padding-top:25px}.related-notes>small{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.related-notes>a{display:flex;justify-content:space-between;font-size:13px;padding:15px 0;border-bottom:1px solid var(--line)}.prose .example-note{font-size:10px;color:var(--muted);margin-top:30px}
.project-detail{margin-top:30px}.project-back{font-size:11px;color:var(--muted)}.project-title-block{margin-top:42px}.project-title-block>div{display:flex;justify-content:space-between;align-items:end;gap:25px;margin:19px 0 22px}.project-title-block h1{font:90px/1 Georgia;letter-spacing:-6px}.project-title-block h1 span{font:16px var(--sans);vertical-align:top;margin-left:7px;letter-spacing:0}.project-title-block>div>p{font:500 28px/1.7 var(--serif);letter-spacing:-1px}.project-intro{max-width:580px;font-size:13px;line-height:2;color:var(--secondary);margin-bottom:30px}.project-specs{display:grid;grid-template-columns:1.6fr 1.5fr 1fr;border-block:1px solid var(--line);padding:23px 0;gap:30px}.project-specs small{font:8px var(--mono);color:var(--muted);letter-spacing:1px}.project-specs p{font-size:11px;color:var(--secondary);margin-top:8px}.project-main-image{margin:35px 0 65px;border-radius:10px;overflow:hidden}.project-main-image>img{width:100%}.project-story{display:grid;grid-template-columns:200px 1fr;gap:30px;margin:55px 0}.project-story>small{font:10px var(--mono);color:var(--muted);letter-spacing:1px;padding-top:10px}.project-story h2{font:500 28px/1.6 var(--serif);letter-spacing:-.8px;margin-bottom:20px}.project-story p{font-size:13px;line-height:2;color:var(--secondary);margin:14px 0}.project-story .solid-link{margin-top:15px}.project-gallery{display:grid;grid-template-columns:1.45fr 1fr;gap:25px}.project-gallery figure{min-width:0}.project-gallery figure>img{height:400px;object-fit:cover;border-radius:8px}.project-gallery figure:last-child>img{object-position:70%}.project-gallery figcaption{font:9px var(--mono);color:var(--muted);margin-top:12px;letter-spacing:.5px}.next-project{display:block;position:relative;border-top:1px solid var(--line);padding:35px 0 10px;margin-top:65px}.next-project small{font:9px var(--mono);color:var(--muted);letter-spacing:1px}.next-project>span{font-size:30px;letter-spacing:-1px;display:block;margin-top:12px}.next-project>svg{position:absolute;right:0;top:50%;width:35px;height:35px;transition:transform .4s var(--ease)}.next-project:hover>svg{transform:rotate(-45deg)}.project-dock{position:fixed;left:50%;transform:translateX(-50%);bottom:23px;display:flex;gap:8px;align-items:center;background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:blur(18px);padding:7px;border:1px solid var(--line);border-radius:13px;z-index:30;box-shadow:0 10px 35px #0002;animation:rise .7s var(--ease) both}.project-dock>span{font:22px Georgia;margin:0 17px 0 10px}.project-dock small{font:7px var(--mono);color:var(--muted);display:block;margin-top:2px;letter-spacing:.5px}.project-dock>a{font-size:11px;padding:12px 15px;background:var(--soft);border-radius:7px;white-space:nowrap}.project-dock>a:last-child{background:var(--yellow);color:#343125}
.about-layout{display:grid;grid-template-columns:320px 1fr;gap:70px;margin-top:25px}.about-card{height:max-content;position:sticky;top:110px;text-align:center;border:1px solid var(--line);border-radius:15px;padding:15px 25px 25px}.avatar-scene{height:215px;display:grid;place-items:center;position:relative;overflow:hidden}.avatar-cube{width:90px;height:90px;background:linear-gradient(135deg,#ebe4f2,#a79bc3);border-radius:20px;transform:rotate(-12deg);display:grid;place-items:center;color:#fff;box-shadow:inset 4px 4px 15px #fff8,inset -7px -8px 20px #67588377,10px 20px 20px #70658320;animation:float 7s ease-in-out infinite}.avatar-cube>span{font:30px var(--mono);text-shadow:0 2px 3px #70658355}.avatar-star{position:absolute;right:33px;top:31px;font-size:38px;color:#c6ce96;transform:rotate(17deg)}.avatar-orbit{position:absolute;width:200px;height:80px;border:1px solid var(--line);border-radius:50%;transform:rotate(-35deg);z-index:-1}.about-card h2{font:500 21px var(--serif);margin:5px 0 12px}.about-card>p{font:8px/1.8 var(--mono);letter-spacing:.5px;color:var(--muted)}.status-pill{display:inline-flex;align-items:center;gap:7px;margin:25px 0 16px;border:1px solid var(--line);border-radius:20px;padding:7px 12px;font-size:9px;color:var(--secondary)}.about-card>small{font-size:9px;display:block;color:var(--muted)}.about-copy>section{margin:0 0 45px;padding:7px 0 0}.about-copy h2{font:500 24px var(--serif);letter-spacing:-.7px;margin:15px 0 20px}.about-copy p{font-size:13px;line-height:2.1;color:var(--secondary);margin:14px 0}.interest-tags{display:flex;flex-wrap:wrap;gap:9px}.interest-tags>span{font-size:11px;border:1px solid var(--line);padding:7px 12px;border-radius:25px}.about-link{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.about-link>span{transition:transform .35s var(--ease)}.about-link:hover>span{transform:translate(3px,-3px)}.about-contact{border-top:1px solid var(--line);padding-top:30px!important}.about-contact p{font-size:11px}


/* File-driven content layouts */
.project-body{max-width:760px;margin:56px auto}.project-resource-links{display:flex;flex-wrap:wrap;gap:16px;margin:32px 0 72px}.setup-guide{max-width:860px;margin:60px auto;padding:0 24px 80px}.empty-state{padding:50px 0;color:var(--muted)}.prose img{max-width:100%;height:auto;border-radius:12px}.prose ul,.prose ol{padding-left:1.6em;line-height:1.9}.prose table{display:block;overflow:auto;max-width:100%;border-collapse:collapse;margin:28px 0}.prose th,.prose td{border:1px solid var(--line);padding:10px 14px;text-align:left}.prose blockquote{border-left:3px solid #a8bd83;padding-left:24px;margin:28px 0}.prose h3{margin-top:36px}
