:root{color-scheme:light;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;--font-display:Iowan Old Style, Palatino Linotype, Book Antiqua, Palatino, "Noto Serif SC", Georgia, serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--color-background:#f4f2ec;--color-surface:#faf9f5;--color-surface-raised:#fffefb;--color-text:#1d211e;--color-text-soft:#343a35;--color-muted:#6c716b;--color-border:#d9d9d0;--color-border-strong:#b9bdb4;--color-primary:#35624f;--color-primary-strong:#244537;--color-primary-soft:#e2ece6;--color-accent:#c96745;--color-header:#f4f2eceb;--color-code:#ecebe5;--color-code-block:#1c211e;--color-code-text:#f4f3ee;--color-selection:#c9dfd2;--color-button-text:#fffefb;--page-width:1180px;--content-width:740px;--radius-small:8px;--radius-medium:16px;--radius-large:24px;--shadow-card:0 14px 34px #1b201c12;--shadow-card-hover:0 20px 46px #1b201c1f;--transition-fast:.16s ease}:root[data-theme=dark]{color-scheme:dark;--color-background:#151714;--color-surface:#1a1d1a;--color-surface-raised:#20231f;--color-text:#f1f0ea;--color-text-soft:#d7d8d1;--color-muted:#a7aba4;--color-border:#343932;--color-border-strong:#51584e;--color-primary:#8fc3a7;--color-primary-strong:#b6dbc7;--color-primary-soft:#26382f;--color-accent:#e28a67;--color-header:#151714eb;--color-code:#292e29;--color-code-block:#0f110f;--color-code-text:#f1f0ea;--color-selection:#365b49;--color-button-text:#121612;--shadow-card:0 16px 38px #0000002e;--shadow-card-hover:0 22px 52px #00000047}*,:before,:after{box-sizing:border-box}html{background:var(--color-background);min-width:320px;color:var(--color-text);font-family:var(--font-sans);scroll-behavior:smooth;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}html[lang=zh-CN]{--font-display:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", ui-sans-serif, system-ui, sans-serif}body{background:var(--color-background);min-height:100vh;margin:0;line-height:1.65}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}img,video,iframe{max-width:100%;display:block}::selection{background:var(--color-selection)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}.skip-link{z-index:100;border-radius:var(--radius-small);background:var(--color-text);color:var(--color-background);transition:transform var(--transition-fast);padding:10px 14px;font-weight:700;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;border-bottom:1px solid var(--color-border);background:var(--color-header);backdrop-filter:blur(18px);position:sticky;top:0}.header-inner,.footer-inner,.page-container{width:min(calc(100% - 48px), var(--page-width));margin-inline:auto}.header-inner{grid-template-columns:auto 1fr;align-items:center;gap:40px;min-height:78px;display:grid}.site-name{letter-spacing:-.025em;align-items:baseline;gap:9px;width:fit-content;display:inline-flex}.site-name-primary{font-size:1.08rem;font-weight:800}.site-name-secondary{color:var(--color-primary);font-family:var(--font-display);font-size:1rem;font-style:italic}.site-name:hover .site-name-secondary{color:var(--color-accent)}.header-actions{justify-content:flex-end;align-items:center;gap:22px;min-width:0;display:flex}.nav-list{align-items:center;gap:3px;margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--color-muted);transition:color var(--transition-fast), background-color var(--transition-fast);padding:9px 11px;font-size:.88rem;font-weight:650;display:block;position:relative}.nav-link:after{background:var(--color-primary);content:"";opacity:0;height:2px;transition:opacity var(--transition-fast), transform var(--transition-fast);position:absolute;bottom:4px;left:11px;right:11px;transform:scaleX(.5)}.nav-link:hover,.nav-link.active{color:var(--color-text)}.nav-link.active:after{opacity:1;transform:scaleX(1)}.utility-actions{align-items:center;gap:8px;display:flex}.theme-toggle,.language-switch{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text-soft);transition:border-color var(--transition-fast), color var(--transition-fast), background-color var(--transition-fast);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.theme-toggle{cursor:pointer;width:36px;padding:0}.language-switch{padding:6px 12px;font-size:.78rem;font-weight:750}.theme-toggle:hover,.language-switch:hover{border-color:var(--color-border-strong);background:var(--color-primary-soft);color:var(--color-primary-strong)}.theme-icon{font-size:1rem;line-height:1}.theme-icon-dark,:root[data-theme=dark] .theme-icon-light{display:none}:root[data-theme=dark] .theme-icon-dark{display:inline}.site-main{min-height:calc(100vh - 240px)}.page-container{padding-block:72px}.content-container{width:min(100%, var(--content-width))}.eyebrow,.section-kicker,.hero-note-label,.article-rail-label{color:var(--color-primary);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.page-title{max-width:880px;font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance;margin:12px 0 0;font-size:clamp(2.35rem,4.2vw,4.25rem);font-weight:500;line-height:1.03}.page-description{max-width:720px;color:var(--color-muted);margin:24px 0 0;font-size:clamp(1.05rem,2vw,1.22rem);line-height:1.72}.section{padding-block:48px}.home-section{border-top:1px solid var(--color-border);padding-block:88px}.section-heading-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;margin-bottom:34px;display:grid}.section-heading{max-width:680px}.section-heading h2{font-family:var(--font-display);letter-spacing:-.04em;margin:8px 0 0;font-size:clamp(1.85rem,3vw,2.8rem);font-weight:500;line-height:1.08}.section-heading p:not(.section-kicker){color:var(--color-muted);margin:10px 0 0}.hero{padding-block:52px 84px}.home-hero{grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);align-items:center;gap:clamp(56px,8vw,112px);min-height:min(760px,100vh - 78px);display:grid}.hero-copy{padding-block:28px}.hero h1{max-width:880px;font-family:var(--font-display);letter-spacing:-.052em;text-wrap:balance;margin:18px 0 0;font-size:clamp(2.85rem,4.8vw,4.75rem);font-weight:500;line-height:.99}.hero-description{max-width:670px;color:var(--color-muted);margin:30px 0 0;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.72}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.button{min-height:46px;transition:transform var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), background-color var(--transition-fast);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:11px 17px;font-size:.9rem;font-weight:760;line-height:1;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--color-primary);color:var(--color-button-text)}.button-primary:hover{background:var(--color-primary-strong);color:var(--color-background)}:root[data-theme=dark] .button-primary:hover{color:#121612}.button-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.button-secondary:hover{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-strong)}.hero-note{border:1px solid var(--color-border-strong);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-card);align-self:end;margin-bottom:84px;padding:30px;position:relative}.hero-note-index{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-muted);font-family:var(--font-mono);border-radius:999px;padding:5px 10px;font-size:.7rem;position:absolute;top:-15px;right:22px}.hero-note h2{font-family:var(--font-display);letter-spacing:-.035em;margin:13px 0 0;font-size:clamp(1.65rem,2.4vw,2.15rem);font-weight:500;line-height:1.08}.hero-note>p:not(.hero-note-label){color:var(--color-muted);margin:18px 0 0;font-size:.94rem}.hero-focus{border-top:1px solid var(--color-border);gap:4px;margin:28px 0 0;padding-top:20px;display:grid}.hero-focus dt{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:750}.hero-focus dd{color:var(--color-text-soft);margin:0;font-weight:700}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.card{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-raised);min-width:0;min-height:310px;box-shadow:var(--shadow-card);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);flex-direction:column;padding:25px;display:flex}.article-card{box-shadow:inset 0 3px 0 var(--color-primary), var(--shadow-card)}.project-card{box-shadow:inset 0 3px 0 var(--color-accent), var(--shadow-card)}.show-card{box-shadow:inset 0 3px 0 var(--color-border-strong), var(--shadow-card)}.card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover);transform:translateY(-5px)}.article-card:hover{box-shadow:inset 0 3px 0 var(--color-primary), var(--shadow-card-hover)}.project-card:hover{box-shadow:inset 0 3px 0 var(--color-accent), var(--shadow-card-hover)}.show-card:hover{box-shadow:inset 0 3px 0 var(--color-border-strong), var(--shadow-card-hover)}.card-meta-row,.article-meta{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:17px;font-size:.78rem;display:flex}.article-category,.card-label,.status-label,.card-type{color:var(--color-primary);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:800}.status-label{color:var(--color-accent)}.card-type{margin:0 0 10px}.card-meta{color:var(--color-muted);margin:0 0 10px;font-size:.84rem}.draft-label{color:#7f5c0d;background:#f7e9bf;border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:800}:root[data-theme=dark] .draft-label{color:#f2d781;background:#493b18}.card h3{font-family:var(--font-display);letter-spacing:-.032em;margin:0;font-size:1.65rem;font-weight:500;line-height:1.16}.card-title{transition:color var(--transition-fast), background-size var(--transition-fast);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px}.card-title:hover{color:var(--color-primary);background-size:100% 1px}.card-description{color:var(--color-muted);margin:15px 0 0;font-size:.94rem;line-height:1.65}.show-details{color:var(--color-muted);flex-wrap:wrap;gap:8px 12px;margin-top:17px;font-size:.8rem;display:flex}.show-details span+span{border-left:1px solid var(--color-border);padding-left:12px}.card-footer{gap:18px;margin-top:auto;padding-top:24px;display:grid}.tag-list{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);font-family:var(--font-mono);border-radius:999px;padding:4px 8px;font-size:.68rem;line-height:1.3;display:inline-flex}.text-link{width:fit-content;color:var(--color-primary);align-items:center;gap:7px;font-size:.86rem;font-weight:800;display:inline-flex}.text-link span{transition:transform var(--transition-fast)}.text-link:hover{color:var(--color-primary-strong)}.text-link:hover span{transform:translate(2px,-2px)}.about-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,.65fr);align-items:start;gap:clamp(48px,8vw,96px);padding-top:72px;display:grid}.about-main{counter-reset:about-section}.about-main>section{border-left:1px solid var(--color-border);counter-increment:about-section;padding:0 0 42px 52px;position:relative}.about-main>section:before{border:1px solid var(--color-border);background:var(--color-background);width:30px;height:30px;color:var(--color-primary);content:counter(about-section, decimal-leading-zero);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:.65rem;display:grid;position:absolute;top:2px;left:-15px}.about-main h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 12px;font-size:1.8rem;font-weight:500}.about-main p{color:var(--color-muted);margin:0}.about-aside{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);padding:25px;position:sticky;top:110px}.about-aside h2{font-family:var(--font-display);margin:0 0 20px;font-size:1.35rem;font-weight:500}.fact-list{gap:16px;margin:0;display:grid}.fact-list div{border-bottom:1px solid var(--color-border);gap:3px;padding-bottom:15px;display:grid}.fact-list div:last-child{border-bottom:0;padding-bottom:0}.fact-list dt{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:750}.fact-list dd{color:var(--color-text-soft);margin:0;font-weight:700}.detail-back-link{color:var(--color-muted);align-items:center;gap:8px;font-size:.84rem;font-weight:750;display:inline-flex}.detail-back-link:hover{color:var(--color-primary)}.article-header,.detail-header:not(.project-hero){border-bottom:1px solid var(--color-border);max-width:920px;margin-inline:auto;padding-block:66px 48px}.article-header .page-title,.detail-header .page-title{margin-top:16px}.article-page-meta{margin-top:26px;margin-bottom:0}.article-layout{grid-template-columns:minmax(130px, 180px) minmax(0, var(--content-width));justify-content:center;align-items:start;gap:clamp(48px,7vw,92px);padding-top:64px;display:grid}.article-rail{min-width:0;padding-top:5px;position:sticky;top:116px}.article-rail .tag-list{flex-direction:column;align-items:flex-start;margin-top:18px}.article-content{min-width:0;color:var(--color-text-soft);font-family:var(--font-display);font-size:clamp(1.08rem,1.7vw,1.18rem);line-height:1.88}.detail-page>.article-content{width:min(100%, var(--content-width));margin:64px auto 0}.article-content>:first-child{margin-top:0}.article-content h2,.article-content h3,.article-content h4{color:var(--color-text);font-family:var(--font-sans);letter-spacing:-.025em;text-wrap:balance;line-height:1.3}.article-content h2{margin:3.1em 0 .8em;font-size:1.65rem}.article-content h3{margin:2.4em 0 .7em;font-size:1.3rem}.article-content p{margin:0 0 1.45em}.article-content ul,.article-content ol{margin:0 0 1.5em;padding-left:1.4em}.article-content li{margin-bottom:.45em;padding-left:.25em}.article-content a{color:var(--color-primary);text-underline-offset:4px;text-decoration:underline 1px}.article-content blockquote{border-left:3px solid var(--color-primary);color:var(--color-muted);margin:2.2em 0;padding:.15em 0 .15em 1.3em;font-size:1.08em;font-style:italic}.article-content code{background:var(--color-code);font-family:var(--font-mono);border-radius:5px;padding:.16em .36em;font-size:.84em}.article-content pre{border:1px solid var(--color-border);background:var(--color-code-block);max-width:100%;color:var(--color-code-text);border-radius:12px;margin:2em 0;padding:20px;overflow-x:auto}.article-content pre code{color:inherit;background:0 0;padding:0}.article-content hr{border:0;border-top:1px solid var(--color-border);margin:3em 0}.article-content table{border-collapse:collapse;width:100%;font-family:var(--font-sans);margin:2em 0;font-size:.9rem}.article-content th,.article-content td{border:1px solid var(--color-border);text-align:left;padding:10px 12px}.article-content th{background:var(--color-surface)}.article-content figure{margin:2.2em 0}.article-content figcaption{color:var(--color-muted);font-family:var(--font-sans);text-align:center;margin-top:10px;font-size:.78rem}.article-footer{width:min(100%, var(--content-width));border-top:1px solid var(--color-border);margin:72px auto 0;padding-top:28px}.detail-page{width:min(calc(100% - 48px), var(--page-width))}.project-hero{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:center;gap:clamp(48px,8vw,104px);padding-block:68px 72px;display:grid}.project-hero-copy .page-description{max-width:650px}.project-facts{border:1px solid var(--color-border-strong);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-card);padding:28px}.project-status{background:var(--color-primary-soft);width:fit-content;color:var(--color-primary-strong);letter-spacing:.07em;text-transform:uppercase;border-radius:999px;margin:0 0 20px;padding:5px 9px;font-size:.72rem;font-weight:800}.detail-meta{color:var(--color-muted);gap:7px;font-size:.84rem;display:grid}.project-facts .tag-list{margin-top:22px}.detail-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.project-story{margin-top:80px}.show-player{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-code-block);aspect-ratio:16/9;width:min(100%,920px);margin:48px auto 0;overflow:hidden}.show-player iframe{border:0;width:100%;height:100%}.detail-page>.detail-actions{width:min(100%,920px);margin:28px auto 0}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);margin-top:64px}.footer-inner{grid-template-columns:minmax(0,1.3fr) minmax(150px,.45fr) minmax(150px,.45fr);gap:48px;padding-block:56px;display:grid}.footer-brand{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.55rem;font-weight:500}.footer-intro p{max-width:520px;color:var(--color-muted);margin:12px 0 0;font-size:.88rem}.footer-nav,.footer-meta{color:var(--color-muted);align-content:start;gap:8px;font-size:.82rem;display:grid}.footer-nav a,.footer-links a{width:fit-content}.footer-nav a:hover,.footer-links a:hover,.footer-brand:hover{color:var(--color-primary)}.footer-meta p{margin:0}.footer-links{gap:8px;display:grid}@media (width<=1040px){.header-inner{flex-wrap:wrap;gap:10px 24px;padding-block:14px;display:flex}.header-actions{justify-content:space-between;width:100%}.nav-list{max-width:calc(100vw - 170px);overflow-x:auto}.home-hero,.project-hero{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:48px}.hero h1{font-size:clamp(2.8rem,7vw,4.5rem)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.header-inner,.footer-inner,.page-container,.detail-page{width:min(calc(100% - 32px), var(--page-width))}.page-container{padding-block:48px}.home-hero,.project-hero{grid-template-columns:1fr;min-height:auto}.home-hero{gap:54px;padding-block:48px 72px}.hero-copy{padding:0}.hero h1{font-size:clamp(2.7rem,10vw,4.1rem)}.hero-note{align-self:auto;margin-bottom:0}.home-section{padding-block:66px}.section-heading-row{grid-template-columns:1fr;align-items:start;gap:14px}.about-layout{grid-template-columns:1fr;gap:42px}.about-aside{position:static}.article-layout{grid-template-columns:1fr;gap:32px}.article-rail{border-bottom:1px solid var(--color-border);padding-bottom:24px;position:static}.article-rail .tag-list{flex-direction:row}.project-hero{gap:36px;padding-block:54px}.footer-inner{grid-template-columns:1fr 1fr}.footer-intro{grid-column:1/-1}}@media (width<=620px){.header-actions{flex-direction:column-reverse;align-items:flex-start}.nav-list{width:calc(100vw - 32px);max-width:none;padding-bottom:4px}.nav-link{white-space:nowrap}.utility-actions{align-self:flex-end;margin-top:-46px}.page-title{font-size:clamp(2.2rem,10.5vw,3.25rem)}.hero h1{font-size:clamp(2.5rem,11.5vw,3.6rem)}.hero-actions,.detail-actions{flex-direction:column;align-items:stretch}.hero-actions .button,.detail-actions .button{width:100%}.card-grid{grid-template-columns:1fr}.card{min-height:0}.about-main>section{padding-left:38px}.article-header,.detail-header:not(.project-hero){padding-block:48px 38px}.article-layout{padding-top:44px}.article-content{font-size:1.04rem}.article-content pre{border-radius:8px;margin-inline:-8px}.project-facts,.hero-note{border-radius:var(--radius-medium);padding:23px}.footer-inner{grid-template-columns:1fr;gap:30px}.footer-intro{grid-column:auto}}html[lang=zh-CN] .hero h1{letter-spacing:-.035em;max-width:22ch;font-size:clamp(2.5rem,4.1vw,4.1rem);font-weight:650;line-height:1.16}html[lang=zh-CN] .page-title{letter-spacing:-.03em;max-width:24ch;font-size:clamp(2.25rem,3.7vw,3.8rem);font-weight:650;line-height:1.17}html[lang=zh-CN] .section-heading h2,html[lang=zh-CN] .hero-note h2,html[lang=zh-CN] .card h3,html[lang=zh-CN] .about-main h2,html[lang=zh-CN] .about-aside h2,html[lang=zh-CN] .footer-brand{letter-spacing:-.025em;font-weight:650;line-height:1.25}html[lang=zh-CN] .section-heading h2{font-size:clamp(1.75rem,2.7vw,2.5rem)}html[lang=zh-CN] .article-content{font-family:var(--font-sans);font-size:clamp(1.02rem,1.3vw,1.1rem);line-height:1.9}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
