:root{color-scheme:dark;--bg:#080b10;--panel:#10151d;--muted:#87909c;--line:#252b34;--white:#eff3f6;--lime:#bcfa7c;--cyan:#54e5d0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--white);font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--lime);outline-offset:5px}.noise{position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(#9eacbf16 .6px,transparent .6px);background-size:4px 4px}.skip{position:absolute;left:20px;top:-60px;padding:12px;background:var(--lime);color:#000;z-index:20}.skip:focus{top:10px}header{height:100px;max-width:1440px;margin:auto;padding:0 5.5%;display:flex;align-items:center;gap:50px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:25px;font-weight:800;letter-spacing:2px}.brand small{display:block;font:9px monospace;color:var(--muted);letter-spacing:1.2px;margin-top:6px}.brand-icon{font:italic 36px monospace;color:var(--lime)}.brand-icon span{color:var(--cyan);font-size:23px}.dot{color:var(--lime)}nav{display:flex;align-items:center;gap:35px;margin-left:auto;font-size:13px}nav a:hover,.text-link:hover{color:var(--lime)}nav a span{color:#67727e;font:9px monospace;vertical-align:super}nav button{border:0;background:transparent;color:var(--white);display:flex;gap:18px;align-items:center}kbd{border:1px solid #414650;border-radius:3px;padding:2px 7px;color:var(--muted)}.online{font:10px monospace;letter-spacing:1px;color:var(--muted);white-space:nowrap}.online i,.scene-bottom i{display:inline-block;width:6px;height:6px;background:var(--lime);box-shadow:0 0 10px #bcfa7c70;border-radius:50%;margin-right:8px}main{max-width:1440px;margin:auto}.hero{padding:25px 5.5% 0;overflow:hidden}.hero-top{display:flex;justify-content:space-between;font:10px monospace;letter-spacing:1.4px;color:#7b8591}.hero-layout{display:grid;grid-template-columns:1.12fr 1fr;gap:30px;align-items:center;padding:55px 0 65px}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--cyan);margin:0 0 24px}.eyebrow span{color:var(--lime);margin-right:8px}h1{font-size:clamp(35px,4.2vw,61px);font-weight:850;line-height:1.4;letter-spacing:-2px;margin:0 0 25px;white-space:nowrap}h1 em{font-style:normal;color:var(--lime)}.cursor{animation:blink 1.4s steps(2,start) infinite;color:var(--lime)}.intro{font-size:14px;line-height:2;color:#929da9;margin-bottom:32px}.hero-actions{display:flex;gap:30px;align-items:center}.primary{display:inline-flex;gap:32px;align-items:center;background:var(--lime);color:#10150b;padding:16px 24px;font-size:13px;font-weight:700;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);transition:filter .2s,transform .2s}.primary:hover{filter:brightness(1.12);transform:translateY(-2px)}.primary span{font-size:22px}.text-link{font-size:12px;display:flex;gap:15px;align-items:center}.coordinates{margin-top:45px;display:flex;flex-direction:column;gap:7px;font:9px monospace;letter-spacing:1px;color:#626f7e}.scene{position:relative;height:420px;background:radial-gradient(ellipse at 55% 45%,#142e3844,transparent 70%),linear-gradient(135deg,#121c27,#0a1119);border:1px solid #2b3b47;clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px);overflow:hidden}.scene-grid{position:absolute;inset:42% -60% -60%;background:linear-gradient(#478b9740 1px,transparent 1px),linear-gradient(90deg,#478b9740 1px,transparent 1px);background-size:40px 40px;transform:perspective(230px) rotateX(60deg);mask-image:linear-gradient(transparent,#000)}.scene-label{position:absolute;top:23px;left:23px;color:#b0c2c9;font:8px monospace;letter-spacing:1.3px}.scene-label span{display:block;color:#546e7c;margin-top:7px}.orb{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 24px #00dbc31c)}.orbit-spin{transform-origin:250px 245px;animation:orbit 40s linear infinite}.scene-bottom{position:absolute;bottom:21px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:center}.scene-bottom span{font:8px monospace;color:var(--lime)}.scene-bottom b{font-weight:400;font-size:10px;color:#8398a7}.scene-corner{position:absolute;right:20px;top:18px;font:22px monospace;color:var(--cyan)}.ticker{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:20px 0;border-block:1px solid var(--line);white-space:nowrap;font:10px monospace;letter-spacing:1.8px;color:#9eabb5}.ticker b{font-size:19px;color:var(--lime);font-weight:400}.journal{padding:68px 5.5% 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-head .eyebrow{margin-bottom:13px}h2{font-size:30px;letter-spacing:-1px;margin:0}.section-head h2 span{font:11px monospace;color:#6a7582;letter-spacing:0;margin-left:18px}.section-head>p{font-size:12px;color:var(--muted);margin-bottom:4px}.journal-tools{margin-top:30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.filters{display:flex;gap:25px}.filters button{padding:14px 0;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:11px}.filters button.active{color:var(--lime);border-bottom-color:var(--lime)}#article-count{font:10px monospace;color:var(--muted)}.demo-notice{font-size:10px;color:#74818e;margin:17px 0}.articles{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px}.card{border:1px solid var(--line);background:#0d1219;min-width:0;transition:transform .25s,border-color .25s}.card:hover{transform:translateY(-5px);border-color:#6a8b63}.cover{height:190px;position:relative;overflow:hidden;background:#15212c}.cover-grid{background-image:linear-gradient(#92adbc12 1px,transparent 1px),linear-gradient(90deg,#92adbc12 1px,transparent 1px);background-size:22px 22px}.cover-tag{position:absolute;left:18px;top:18px;font:8px monospace;letter-spacing:1.5px;color:#a3b4be;border:1px solid #64798366;padding:5px 8px}.code-art{position:absolute;inset:60px 20px 25px;font:12px/2 monospace;transform:rotate(-5deg);color:#4d757e}.code-art b{color:#b5f885;font-weight:400}.code-art span{color:#7cd7d5}.cover-2{background:radial-gradient(circle at 50% 70%,#392556,#121a26 75%)}.rings{position:absolute;width:170px;height:170px;border:1px solid #bb9de755;border-radius:50%;left:50%;top:35px;transform:translateX(-50%);box-shadow:0 0 0 23px #9376c21a,0 0 0 45px #9376c20c}.rings:after{content:'✳';position:absolute;inset:0;display:grid;place-items:center;font-size:70px;color:#c4aff7}.cover-3{background:radial-gradient(ellipse at 50% 100%,#1c4943,#10221e 75%)}.mountains{position:absolute;inset:45px -15px 0;background:linear-gradient(140deg,#2e807050,#0e332d);clip-path:polygon(0 100%,0 70%,20% 25%,34% 65%,55% 0,77% 62%,90% 35%,100% 80%,100% 100%)}.mountains:after{content:'';position:absolute;inset:20px 20px;background:repeating-linear-gradient(0deg,transparent 0 10px,#7ebd9944 11px 12px);transform:rotate(-16deg)}.card-body{padding:22px}.card-meta{display:flex;justify-content:space-between;color:#6f7f8d;font:9px monospace;letter-spacing:.5px}.category{color:var(--lime)}.card h3{font-size:18px;line-height:1.55;margin:16px 0 12px;letter-spacing:-.3px}.card p{font-size:12px;line-height:1.9;color:#8c99a6;margin:0 0 22px}.card button{background:none;border:0;border-top:1px solid var(--line);padding:17px 0 0;width:100%;display:flex;justify-content:space-between;color:#ced9e2;font-size:11px;text-align:left}.card button span{color:var(--lime);font-size:20px}.journal-end{display:flex;justify-content:space-between;align-items:center;margin-top:27px;padding:20px 0;border-bottom:1px solid var(--line);color:#687787;font:9px monospace;letter-spacing:1px}.about{padding:80px 5.5%;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about h2{font-size:35px;line-height:1.5}.about p:not(.eyebrow){font-size:13px;line-height:2;color:#8c99a6}.about .profile-pending{font-size:11px!important;color:#657180!important}.about-terminal{border:1px solid #304038;background:linear-gradient(135deg,#111d19,#0b1113);transform:rotate(-1deg);font:12px/1.9 monospace;box-shadow:12px 12px 0 #111820}.terminal-top{padding:12px 18px;border-bottom:1px solid #2b3730;display:flex;justify-content:space-between;align-items:center;color:#64766a}.terminal-top i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;background:#62795b}.terminal-top i:first-child{background:#b9fa7c}.terminal-body{padding:22px 25px}.terminal-body p{font:12px monospace!important;color:#ccd6d1!important}.terminal-body p span{color:var(--lime)}dl{display:grid;grid-template-columns:95px 1fr;gap:14px 5px;font-size:11px;margin:30px 0}dt{color:#5a7567}dd{margin:0;color:#b0bcb5}.lime{color:var(--lime)}footer{max-width:1282px;margin:auto;border-top:1px solid var(--line);padding:28px 0;display:flex;gap:25px;align-items:center}.footer-brand{font-size:21px}footer p{color:#8994a1;font-size:11px}footer>span{margin-left:auto;font:8px monospace;letter-spacing:.8px;color:#5e6b79}footer>a:last-child{font-size:10px;color:#b8c5d1}dialog{width:min(660px,calc(100% - 32px));max-height:85vh;background:#111922;border:1px solid #4d6762;color:var(--white);padding:25px;box-shadow:0 0 100px #1ddcb122}dialog::backdrop{background:#03070cd9;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;font:11px monospace;color:var(--cyan);margin-bottom:25px}.dialog-head button{background:none;border:1px solid #36474b;color:#98a9b7;padding:6px 10px;font-size:11px}#search-input{width:100%;padding:16px;background:#080e14;border:1px solid #334a4a;color:var(--white);border-radius:0}#search-results button{background:none;border:0;border-bottom:1px solid var(--line);color:var(--white);padding:20px 0;text-align:left;display:block;width:100%;line-height:1.6}#search-results small{color:var(--lime);display:block}#search-results p{color:var(--muted)}#article-content h2{font-size:27px;line-height:1.5}#article-content p{font-size:14px;line-height:2;color:#b2bfca}#article-content .eyebrow{font-size:10px;color:var(--lime)}@keyframes blink{to{opacity:0}}@keyframes orbit{to{transform:rotate(360deg)}}@media(min-width:1441px){header,main{max-width:1440px}}@media(max-width:1100px){header{gap:20px}.online{display:none}.hero-layout{gap:20px}h1{font-size:42px}.scene{height:360px}.ticker{font-size:8px;gap:15px}.about{gap:35px}footer{margin:0 5.5%}.section-head>p{display:none}}@media(max-width:760px){header{height:82px;padding:0 6%}.brand{font-size:21px}.brand small{font-size:7px}.brand-icon{font-size:30px}nav{gap:15px}nav a{font-size:11px}nav a span,nav button kbd{display:none}nav button{font-size:11px}.hero{padding:20px 6% 0}.hero-top{font-size:8px;letter-spacing:0}.hero-layout{grid-template-columns:1fr;padding:48px 0 30px;gap:35px}h1{font-size:clamp(32px,7.7vw,53px);letter-spacing:-1px}.intro{font-size:12px}.hero-actions{gap:22px}.primary{padding:13px 20px}.coordinates{margin-top:30px;font-size:8px}.scene{height:330px}.ticker{overflow:hidden;justify-content:flex-start;gap:20px;padding:16px 0}.ticker span{flex-shrink:0}.journal{padding:45px 6% 0}h2{font-size:26px}.section-head h2 span{display:block;margin:10px 0 0;font-size:10px}.filters{gap:17px}.filters button{font-size:10px}#article-count{font-size:9px}.articles{grid-template-columns:1fr}.cover{height:200px}.card h3{font-size:21px}.about{grid-template-columns:1fr;padding:55px 6%;gap:30px}.about h2{font-size:32px}.about-terminal{transform:none;box-shadow:7px 7px 0 #111820}footer{margin:0 6%;flex-wrap:wrap;gap:12px 20px}footer p{margin:0}footer>span{order:4;margin-left:0;width:100%;font-size:7px}footer>a:last-child{margin-left:auto}.journal-end{font-size:8px;letter-spacing:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor,.orbit-spin{animation:none}.card,.primary{transition:none}}

.filters{flex-wrap:wrap;gap:8px 22px}.about a:hover{color:var(--lime)}.terminal-body dd a{overflow-wrap:anywhere}@media(max-width:760px){.journal-tools{align-items:flex-start}.filters{gap:0 16px;max-width:85%}.filters button{padding:12px 0}#article-count{padding-top:14px}.articles{grid-template-columns:1fr}.about-terminal dl{grid-template-columns:75px 1fr}}

.wechat-contact{display:inline-flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #3d5b43;background:#102017;color:#a8c6ac;margin-top:10px}.wechat-contact svg{width:27px;height:27px;fill:#8fec9c}.wechat-contact span{font-size:12px}.wechat-contact b{color:#d4ecce;margin-left:8px;font-family:monospace}.wechat-contact:hover{border-color:var(--lime)}.wechat-note,#wechat-status{color:var(--muted);font-size:13px;line-height:1.8}.wechat-copy{display:flex;gap:12px;margin-top:12px}.wechat-copy input{width:100%;min-width:0;background:#080e14;border:1px solid #3c5148;color:var(--lime);padding:14px}.wechat-copy button{flex-shrink:0;background:var(--lime);color:#0d1809;border:0;padding:12px;font-size:12px}#wechat-dialog label{color:#91a89b;font-size:12px}

.cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover-tag{z-index:1;background:#08111ba6}.article-media{display:block;width:100%;max-height:70vh;object-fit:contain;border:1px solid #2d4544;border-radius:8px;margin:22px 0}.profile-avatar{width:45px;height:45px;object-fit:cover;border-radius:10px}#article-content{overflow-wrap:anywhere}.filters{max-width:100%}.journal-tools{gap:15px}

.email-contact{display:inline-flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid #34516a;background:#10202d;color:#9cb9d4;margin:10px 0 0}.email-contact svg{width:27px;height:27px;fill:none;stroke:#8cbfff;stroke-width:2}.email-contact span{font-size:12px}.email-contact b{font:600 12px Consolas,monospace;color:#c9def8;margin-left:8px;overflow-wrap:anywhere}.email-contact:hover{border-color:#8cbfff;color:#d9eaff}.profile-pending{margin:0!important}@media(max-width:420px){.email-contact{gap:10px;padding:11px 12px}.email-contact b{font-size:10px}.email-contact span{font-size:11px}}

.project-preview{position:relative;height:100%;min-height:190px;background:#101820;overflow:hidden;contain:layout paint}.project-preview iframe{position:absolute;top:0;left:0;width:1280px;height:840px;border:0;transform:scale(.3);transform-origin:top left;pointer-events:none;opacity:0;transition:opacity .3s;background:#fff}.project-preview.loaded iframe{opacity:1}.preview-status{position:absolute;left:12px;right:12px;bottom:10px;z-index:2;font:9px/1.6 monospace;color:#9dceba;background:#08121be8;border:1px solid #294a40;padding:6px 9px}.project-preview:not(.loaded):not(.failed):before{content:'◌';position:absolute;left:45%;top:35%;font:36px monospace;color:#95bca6}.preview-cover .cover-tag{top:10px;left:10px;pointer-events:none;font-size:7px}#project-dialog{width:min(1100px,calc(100% - 30px))}#project-content h2{font-size:24px;margin:10px 0}#project-content>p{color:#92a99f;font-size:12px;line-height:1.9}#project-content .project-preview{height:520px;margin:25px 0}#project-content .project-preview iframe{transform:scale(.8);width:1280px;height:900px}#project-content>.primary{display:inline-flex;margin-top:8px}@media(max-width:760px){.project-preview iframe{transform:scale(.4)}#project-content .project-preview{height:400px}#project-content .project-preview iframe{transform:scale(.42);width:1280px;height:1000px}#project-content h2{font-size:20px}}

/* Keep cached preview DOM mounted; category switches only hide cards. */
.card[hidden]{display:none!important}.preview-spinner{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px;border:3px solid #c6dfd41c;border-top-color:#b6f17c;border-right-color:#85b4a880;border-radius:50%;animation:preview-spin .85s linear infinite}.project-preview:not(.loaded):not(.failed):before{display:none}.project-preview:not(.loaded):not(.failed) .preview-status{display:none}.project-preview.loaded .preview-spinner,.project-preview.failed .preview-spinner{display:none}@keyframes preview-spin{to{transform:rotate(360deg)}}body[data-project-preview] .orbit-spin{animation:none}@media(prefers-reduced-motion:reduce){.preview-spinner{animation-duration:2.5s}}

footer .icp-link{font-size:12px;color:#a6b2bc;white-space:nowrap;letter-spacing:.2px}footer .icp-link:hover{color:#b8ef73}footer{flex-wrap:wrap;gap:18px}@media(max-width:650px){footer .icp-link{flex-basis:100%;text-align:center}}

/* One accessible native link covers the complete project card. */
.project-preview .preview-status{display:none!important}
.linked-project{position:relative;cursor:pointer}
.linked-project .project-preview,.linked-project iframe{pointer-events:none}
.project-entry{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0 0;width:100%;color:#ced9e2;font-size:11px;text-align:left}
.project-entry span{color:var(--lime);font-size:20px}
.project-entry:after{content:'';position:absolute;inset:0;z-index:4}
.linked-project:focus-within{outline:2px solid var(--lime);outline-offset:4px}
