@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600&display=swap";:root{--ink:#171a22;--muted:#697080;--line:#e5e7eb;--paper:#fafaf9;--accent:#4355d8;--soft:#eef0ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,Noto Sans SC,sans-serif}a{color:inherit;text-decoration:none}.app{flex-direction:column;min-height:100vh;display:flex}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;width:calc(100% - 48px);max-width:1180px;height:76px;margin:auto;display:flex}.brand{letter-spacing:-1px;font-size:23px;font-weight:700}.brand span{color:var(--accent)}nav{gap:32px;margin-left:auto;margin-right:35px;display:flex}nav a{color:var(--muted);padding:28px 0;font-size:13px}nav a:hover,nav a.active{color:var(--ink)}nav a.active{border-bottom:2px solid var(--accent)}.header-github{align-items:center;gap:7px;font-size:12px;display:flex}.menu{background:0 0;border:0;display:none}.hero,.section,.page{width:calc(100% - 48px);max-width:1180px;margin:auto}.hero{padding:115px 0 100px}.eyebrow,.kicker,.tag{text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);font-family:DM Mono,monospace;font-size:11px}.eyebrow{align-items:center;gap:10px;display:flex}.dot{background:#68c58d;border-radius:50%;width:7px;height:7px}.hero h1,.page-intro h1{letter-spacing:-6px;margin:25px 0 31px;font-size:clamp(58px,9vw,112px);font-weight:600;line-height:.98}.hero h1 em,.page-intro h1 em{color:var(--accent);letter-spacing:-5px;font-family:Noto Serif SC,serif;font-style:normal}.lead{color:var(--muted);max-width:515px;font-size:17px;line-height:1.8}.actions{gap:12px;margin-top:36px;display:flex}.button{border-radius:3px;align-items:center;gap:8px;padding:14px 19px;font-size:13px;display:flex}.primary{background:var(--ink);color:#fff}.ghost{border:1px solid var(--line)}.hero-meta{color:var(--muted);gap:42px;margin-top:82px;font-size:12px;display:flex}.hero-meta strong{color:var(--ink);margin-right:6px;font-size:16px}.section{padding:82px 0}.section-head{justify-content:space-between;align-items:end;margin-bottom:30px;display:flex}.section h2{letter-spacing:-1px;margin:9px 0 0;font-size:30px}.text-link{align-items:center;gap:5px;font-size:12px;display:flex}.project-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.project-card{border:1px solid var(--line);background:#fff;flex-direction:column;min-height:310px;padding:24px;transition:all .25s;display:flex}.project-card:hover{border-color:#aeb4d9;transform:translateY(-4px);box-shadow:0 12px 26px #1e23620d}.card-top{color:var(--muted);justify-content:space-between;display:flex}.number{font-family:DM Mono;font-size:11px}.card-icon{background:var(--soft);width:42px;height:42px;color:var(--accent);border-radius:3px;place-items:center;margin-top:37px;display:grid}.tag{margin-top:25px}.project-card h3{margin:7px 0 6px;font-size:20px}.project-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.tech{color:#8a909e;margin-top:auto;font-family:DM Mono;font-size:10px}.quote{text-align:center;max-width:720px;margin:45px auto 110px}.quote-mark{color:var(--accent);font-family:serif;font-size:70px;line-height:0}.quote p{font-family:Noto Serif SC;font-size:21px;line-height:1.8}.page{padding:90px 0 120px}.page-intro{max-width:700px;margin-bottom:75px}.page-intro h1{margin:24px 0;font-size:clamp(55px,8vw,90px)}.page-intro p{color:var(--muted);max-width:500px;line-height:1.8}.about-layout{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:90px;padding-top:45px;display:grid}.about-copy h3,.timeline h3{margin-top:0;font-size:19px}.about-copy p{color:var(--muted);font-size:14px;line-height:1.9}.facts>div{border-bottom:1px solid var(--line);grid-template-columns:45px 1fr;gap:8px;padding:17px 0;display:grid}.facts span,.facts small{color:var(--muted);font-family:DM Mono;font-size:10px}.facts b{font-size:14px}.facts small{grid-column:2}.timeline{border-top:1px solid var(--line);margin-top:85px;padding-top:32px}.timeline-item{border-bottom:1px solid var(--line);gap:55px;padding:20px 0;display:flex}.timeline-item b{color:var(--accent);width:50px;font-family:DM Mono;font-size:11px}.timeline-item p{color:var(--muted);margin:0;font-size:14px}.all{grid-template-columns:repeat(2,1fr)}.all .project-card{min-height:330px}.notes{border-top:1px solid var(--line);gap:0;display:grid}.notes article{border-bottom:1px solid var(--line);max-width:760px;padding:29px 0}.notes article span,.notes small{color:var(--accent);font-family:DM Mono;font-size:10px}.notes h3{margin:13px 0 7px;font-size:24px}.notes p{color:var(--muted);margin:0 0 17px;font-size:14px}.notes small{color:#8a909e}.contact-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contact-card{border:1px solid var(--line);background:#fff;grid-template-columns:30px 1fr 20px;gap:8px;padding:28px;display:grid}.contact-card svg:first-child{color:var(--accent);grid-row:span 2}.contact-card svg:last-child{grid-area:span 2/3}.contact-card span{color:var(--muted);font-family:DM Mono;font-size:10px}.contact-card b{font-size:16px}.contact-note{color:var(--muted);align-items:center;gap:12px;margin-top:48px;font-size:13px;display:flex}.contact-note svg{color:var(--accent)}footer{border-top:1px solid var(--line);width:calc(100% - 48px);max-width:1180px;color:var(--muted);justify-content:space-between;margin-top:auto;margin-left:auto;margin-right:auto;padding:23px 0;font-family:DM Mono;font-size:10px;display:flex}footer a{color:var(--ink)}@media (width<=700px){header{height:64px}.header-github{display:none}.menu{display:block}nav{background:var(--paper);border-bottom:1px solid var(--line);z-index:5;margin:0;padding:10px 24px;display:none;position:absolute;top:64px;left:0;right:0}nav.open{flex-direction:column;gap:0;display:flex}nav a{padding:13px 0}.hero{padding:80px 0 70px}.hero h1,.page-intro h1{letter-spacing:-4px;font-size:58px}.lead{font-size:15px}.hero-meta{flex-wrap:wrap;gap:18px;margin-top:62px}.section{padding:55px 0}.section-head{flex-direction:column;align-items:start;gap:15px}.project-grid,.all,.about-layout,.contact-grid{grid-template-columns:1fr}.project-card{min-height:280px}.quote{margin:20px 25px 75px}.quote p{font-size:17px}.page{padding:65px 0 80px}.page-intro{margin-bottom:52px}.about-layout{gap:42px}.contact-card{min-height:100px}footer{font-size:9px}}.not-found .page-intro{margin-bottom:0}.not-found .button{cursor:pointer;font:inherit;border:0}footer{align-items:center;gap:16px}footer .icp-link{color:var(--muted);text-decoration:none}footer .icp-link:hover{color:var(--accent);text-decoration:underline}:focus-visible{outline-offset:4px;outline:3px solid #4355d8}.menu{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:none}.button,.header-github{min-height:44px}.project-card .tech{color:#697080}footer a{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}@media (width<=700px){.menu{display:flex}nav a{min-height:44px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.admin-shell{color:#171a22;background:#f4f5f8;min-height:100vh}.admin-header{background:#fff;border-bottom:1px solid #dfe2ea;align-items:center;gap:28px;width:100%;max-width:none;height:72px;padding:0 32px;display:flex}.admin-title{align-items:center;gap:16px;font-size:13px;display:flex}.admin-title a{color:#4355d8}.admin-logout{margin-left:auto}.admin-main{max-width:1180px;margin:0 auto;padding:42px 24px 80px}.admin-login{place-items:center;padding:24px;display:grid}.admin-login>.brand{position:absolute;top:28px;left:32px}.admin-login-card{background:#fff;border:1px solid #dfe2ea;width:min(440px,100%);padding:36px;box-shadow:0 16px 50px #1f2a4d12}.admin-login-card h1{margin:12px 0;font-size:34px}.admin-login-card p{color:#697080;line-height:1.6}.admin-login-card label,.editor-fields label,.editor-body label{gap:8px;margin-top:20px;font-size:13px;font-weight:600;display:grid}.admin-login-card input,.editor-fields input,.editor-fields textarea,.editor-body textarea{font:inherit;color:inherit;background:#fff;border:1px solid #cfd4df;border-radius:3px;width:100%;padding:12px 13px}.admin-login-card input{margin:8px 0 20px}.admin-button,.admin-logout,.admin-refresh,.row-actions button,.back-link,.admin-toolbar button{color:#171a22;min-height:44px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d4d8e2;border-radius:3px;padding:0 16px}.admin-button.primary{color:#fff;background:#171a22;border-color:#171a22}.admin-button.ghost{background:0 0}.admin-button:disabled,.row-actions button:disabled{opacity:.55;cursor:not-allowed}.admin-error,.admin-flash{color:#a52d2d;background:#fff3f3;border:1px solid #efb4b4;margin:16px 0;padding:12px 14px}.admin-flash{color:#206337;background:#f1faf3;border-color:#b9d7c2}.admin-page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.admin-page-heading h1{margin:8px 0;font-size:40px}.admin-page-heading p{color:#697080;margin:0}.admin-toolbar{justify-content:space-between;align-items:center;margin:20px 0;display:flex}.admin-toolbar [role=tablist]{gap:8px;display:flex}.admin-toolbar button{min-height:38px;padding:0 12px}.admin-toolbar button.active{color:#fff;background:#171a22}.admin-table{background:#fff;border:1px solid #dfe2ea}.admin-row{border-top:1px solid #edf0f4;grid-template-columns:minmax(200px,1.8fr) .8fr 1fr 1.2fr;align-items:center;gap:16px;padding:17px 20px;font-size:13px;display:grid}.admin-row:first-child{border-top:0}.admin-row-head{color:#697080;text-transform:uppercase;font-family:DM Mono,monospace;font-size:11px}.admin-row b{display:block}.admin-row small{color:#8a909e;margin-top:5px;font-family:DM Mono,monospace;display:block}.status{font-size:12px}.status.published{color:#23774a}.status.draft{color:#9b640d}.row-actions{gap:8px;display:flex}.row-actions button{min-height:36px;padding:0 11px;font-size:12px}.row-actions .danger{color:#a52d2d}.admin-empty,.admin-loading{text-align:center;color:#697080;background:#fff;border:1px dashed #cfd4df;padding:48px}.editor-actions{flex-wrap:wrap;gap:8px;display:flex}.back-link{color:#4355d8;background:0 0;border:0;padding:0}.editor-grid{grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:24px;display:grid}.editor-fields,.editor-body{background:#fff;border:1px solid #dfe2ea;padding:24px}.editor-body textarea{resize:vertical;min-height:480px;font-family:DM Mono,monospace;font-size:13px;line-height:1.65}.editor-hint{color:#697080;margin-top:10px;font-size:12px}.markdown-preview{background:#fff;border:1px solid #dfe2ea;min-height:480px;padding:32px}.markdown{line-height:1.8}.markdown h1,.markdown h2,.markdown h3{line-height:1.25}.markdown pre{color:#fff;background:#171a22;padding:16px;overflow:auto}.markdown code{background:#eef0ff;padding:2px 4px}.markdown a{color:#4355d8;text-decoration:underline}.admin-dialog{border:0;width:min(420px,100% - 32px);padding:0;box-shadow:0 20px 70px #11182740}.admin-dialog::backdrop{background:#11182766}.admin-dialog-inner{padding:28px}.admin-dialog h2{margin-top:0}.admin-dialog-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}@media (width<=760px){.admin-header{gap:12px;padding:0 18px}.admin-title a{display:none}.admin-main{padding:28px 16px 60px}.admin-page-heading{flex-direction:column;align-items:flex-start}.admin-row{grid-template-columns:1fr 1fr;gap:10px}.admin-row-head{display:none}.row-actions{grid-column:1/-1}.editor-grid{grid-template-columns:1fr}.editor-body textarea{min-height:360px}.admin-login>.brand{left:20px}.admin-login-card{padding:26px}}.password-field{gap:8px;margin:8px 0 20px;display:flex}.password-field input{flex:1;margin:0}.password-field button{cursor:pointer;background:#fff;border:1px solid #d4d8e2;border-radius:3px;min-width:58px}.version-list{border-top:1px solid #edf0f4;margin-top:24px;padding-top:16px}.version-list h3{font-size:14px}.version-list button{color:#4355d8;cursor:pointer;text-align:left;background:0 0;border:0;padding:8px 0;display:block}
