@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p{margin:0}img,svg{max-width:100%;height:auto;display:block}button,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}}@layer base{:root{color-scheme:light;--bg:#fcfbfd;--surface:#f2eef7;--paper:#fff;--text:#292532;--muted:#696273;--accent:#725391;--accent-hover:#533b70;--line:#ded8e7;--yellow:#eee39f;--code-bg:#f6f7f9;--max:1104px;font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg:#19171e;--surface:#26222e;--paper:#201d26;--text:#e8e4ed;--muted:#aaa2b6;--accent:#c4a7e6;--accent-hover:#e0c8fc;--line:#3d3548;--yellow:#d4c782;--code-bg:#14171d}html{scroll-padding-top:2rem}body{background:var(--bg);color:var(--text);overflow-wrap:break-word;font-size:1rem;line-height:1.7}::selection{color:#292532;background:#dbc8ef}a{color:inherit;text-underline-offset:.25em;text-decoration:none}a:hover{color:var(--accent)}button{cursor:pointer;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:3px}#main:focus{outline:none}h1,h2,h3{font-weight:650;line-height:1.4}hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}.wrap{width:min(var(--max), calc(100% - 96px));margin-inline:auto}main.wrap{min-height:calc(100vh - 250px)}.eyebrow{letter-spacing:.13em;color:var(--muted);font-family:Cascadia Code,Consolas,monospace;font-size:.75rem;font-weight:500;display:block}.muted{color:var(--muted)}.text-link{color:var(--accent);font-size:.9rem}.text-link:hover,.back-link:hover{text-decoration:underline}.button{background:var(--accent);color:var(--bg);border:1px solid var(--accent);border-radius:6px;justify-content:center;align-items:center;gap:1.6rem;padding:.7rem 1.2rem;font-size:.95rem;font-weight:600;display:inline-flex}.button:hover{background:var(--accent-hover);color:var(--bg)}.back-link{color:var(--muted);margin-bottom:2rem;font-size:.875rem;display:inline-block}.notice{border-left:3px solid var(--accent);background:var(--surface);margin-block:1rem;padding:.75rem 1rem;font-size:.9rem}}@layer components{.skip-link{z-index:50;background:var(--paper);padding:.8rem 1.2rem;position:fixed;top:-100px;left:1rem}.skip-link:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);align-items:center;gap:2rem;min-height:108px;display:flex}.wordmark{align-items:center;gap:.75rem;margin-right:auto;font-size:1.05rem;font-weight:650;display:flex}.brand-mark{background:var(--accent);width:40px;height:42px;color:var(--bg);border-radius:8px 8px 14px;place-items:center;font-family:STKaiti,KaiTi,serif;font-size:1.6rem;display:grid}.wordmark small{letter-spacing:.14em;color:var(--muted);font-family:Consolas,monospace;font-size:.625rem;font-weight:400;display:block}.site-header nav{align-self:stretch;align-items:center;gap:2rem;font-size:.9rem;display:flex}.site-header nav a{align-items:center;height:100%;display:flex;position:relative}.site-header nav a[aria-current]{color:var(--accent)}.site-header nav a[aria-current]:after{content:"";background:var(--accent);width:100%;height:2px;position:absolute;bottom:-1px}.theme-toggle{border:1px solid var(--line);background:0 0;border-radius:20px;align-items:center;gap:.4rem;min-height:36px;padding:.35rem .75rem;font-size:.8rem;display:flex}.theme-toggle>span:first-child{font-size:1.2rem;line-height:1}.hero{grid-template-columns:1.5fr 1fr;align-items:center;gap:4rem;padding:74px 0 62px;display:grid}.hero .eyebrow{margin-bottom:1.65rem}.hero h1{letter-spacing:.035em;font-family:Noto Serif SC,Source Han Serif SC,Songti SC,SimSun,serif;font-size:clamp(2.2rem,4.2vw,3.25rem);font-weight:700;line-height:1.48}.hero h1 span{color:var(--accent)}.hero-bio{max-width:440px;color:var(--muted);margin-top:1.5rem;line-height:1.95}.hero-links{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:1.9rem;font-size:.875rem;display:flex}.portrait{background:var(--paper);border:1px solid var(--line);width:min(100%,304px);box-shadow:8px 9px 0 var(--surface);border-radius:5px;justify-self:end;padding:10px 10px 0;transform:rotate(3deg)}.portrait-frame{aspect-ratio:1;border-radius:2px;overflow:hidden}.portrait-frame img{width:100%}.portrait p{align-items:center;gap:.55rem;padding:.65rem .25rem;font-size:.8rem;display:flex}.portrait p>span:last-child{color:var(--muted);font-size:.75rem}.portrait-star{color:var(--accent);font-size:1.65rem;line-height:1}.topic-strip{border-block:1px solid var(--line);color:var(--muted);align-items:center;gap:2.2rem;padding:.95rem 0;font-size:.8rem;display:flex}.topic-strip>span:not(:last-child):before{content:"＋";color:var(--accent);margin-right:.5rem;font-size:1rem}.topic-strip .strip-caption{letter-spacing:.05em;margin-left:auto;font-family:Consolas,monospace;font-size:.65rem}.home-section{margin-top:3.8rem}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.6rem;display:flex}.section-heading h2{margin-top:.35rem;font-size:1.55rem}.post-card{border-bottom:1px solid var(--line);align-items:start;gap:2.5rem;padding:1.65rem 0;display:flex}.post-card:first-child{border-top:1px solid var(--line)}.post-date{color:var(--muted);flex:0 0 98px;padding-top:.3rem;font-family:Consolas,monospace;font-size:.8rem}.post-card :is(h2,h3){font-size:1.2rem}.post-card-body{flex:1;min-width:0}.post-card-body>p{color:var(--muted);margin-top:.55rem;font-size:.925rem}.post-meta{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.post-meta small{color:var(--muted);font-size:.75rem}.tags{flex-wrap:wrap;align-items:center;gap:.45rem .75rem;display:flex}.tags>*{color:var(--accent);background:var(--surface);border-radius:3px;padding:.12rem .45rem;font-size:.75rem}.tags a:hover{text-decoration:underline}.draft-label{background:var(--yellow);color:#433d24;width:fit-content;margin-top:.4rem;padding:.05rem .4rem;font-family:inherit;display:block}.post-thumb{flex-shrink:0;width:140px}.post-thumb img{aspect-ratio:16/9;object-fit:cover;border-radius:5px}.project-card{border:1px solid var(--line);background:var(--paper);border-radius:9px;grid-template-columns:1.03fr 1fr;display:grid;overflow:hidden}.project-card+.project-card{margin-top:1.5rem}.project-cover{background:#d5be91;align-items:center;display:flex}.project-cover img{aspect-ratio:16/9;object-fit:cover;width:100%}.project-info{padding:1.8rem 2rem}.project-info :is(h2,h3){margin-top:.65rem;font-size:1.65rem}.project-info :is(h2,h3) a{justify-content:space-between;align-items:center;display:flex}.project-info :is(h2,h3) span{color:var(--accent);font-size:1.35rem}.project-info>p{color:var(--muted);margin:.6rem 0 1rem;font-size:.925rem}.project-info>.text-link{margin-top:1.3rem;display:inline-block}.page-heading{padding:3.5rem 0 2.2rem}.page-heading h1{letter-spacing:.025em;margin:.6rem 0 .85rem;font-size:clamp(2rem,4vw,2.8rem)}.page-heading>p:not(.eyebrow){color:var(--muted)}.count{vertical-align:super;color:var(--accent);margin-left:.75rem;font:400 1rem Consolas,monospace}.tag-filter{flex-wrap:wrap;gap:.65rem;margin:.5rem 0 2rem;font-size:.875rem;display:flex}.tag-filter>*{border:1px solid var(--line);border-radius:5px;padding:.35rem .75rem}.tag-filter>span{background:var(--accent);color:var(--bg);border-color:var(--accent)}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:5rem;padding:1.8rem 0 2.3rem;font-size:.8rem;display:flex}.footer-note{margin-top:.2rem;font-size:.75rem;display:block}.site-footer>div{flex-wrap:wrap;gap:1.5rem;display:flex}.site-footer>.registration{flex-basis:100%;justify-content:center;width:100%}.about-layout{grid-template-columns:280px 1fr;gap:5rem;padding:4rem 0 1rem;display:grid}.about-portrait img{border-radius:8px;width:100%;margin-bottom:1.2rem}.about-copy h1{margin:.5rem 0 1.2rem;font-size:2.6rem}.about-copy h2{margin:1.8rem 0 .8rem;font-size:1.2rem}.about-copy p{color:var(--muted);margin-bottom:1rem}.about-copy .about-intro{color:var(--text);font-size:1.1rem}.about-copy p a{color:var(--accent);text-decoration:underline}.social-cards{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.social-cards a{border:1px solid var(--line);border-radius:6px;padding:1rem}.social-cards span{color:var(--muted);font-size:.8rem;display:block}.social-cards strong{font-size:.95rem;font-weight:500}.not-found{text-align:center;padding:4rem 0 2rem}.error-code{color:var(--accent);font:600 clamp(5rem,16vw,10rem)/1.4 Consolas,monospace}.not-found h1{font-size:1.8rem}.not-found p:not(.eyebrow){color:var(--muted);margin:1rem 0 2rem}}@media (width<=900px){.wrap{width:calc(100% - 56px)}.hero{gap:2rem}.portrait{max-width:260px}.topic-strip{gap:1rem}.strip-caption{display:none}.project-info{padding:1.3rem 1.5rem}.project-info .eyebrow{font-size:.65rem}.about-layout{grid-template-columns:230px 1fr;gap:2.5rem}.post-thumb{width:110px}}@media (width<=650px){.wrap{width:calc(100% - 40px)}.site-header{flex-wrap:wrap;gap:.8rem;min-height:116px;padding-top:1rem}.wordmark{font-size:1rem}.site-header nav{flex-basis:100%;order:3;justify-content:space-between;gap:0;height:44px;padding-inline:.25rem}.theme-toggle{font-size:.75rem}.hero{grid-template-columns:1fr;gap:2rem;padding:2.5rem 0 2rem}.hero h1{font-size:2.35rem}.hero .eyebrow{letter-spacing:.08em;margin-bottom:1.2rem;font-size:.65rem}.hero-bio{margin-top:1rem}.hero-links{gap:1.2rem;margin-top:1.3rem}.portrait{grid-row:1;justify-self:start;width:164px;margin:.25rem 0 .3rem .4rem;padding:6px 6px 0;transform:rotate(-3deg)}.portrait p{gap:.25rem;padding-block:.35rem;font-size:.65rem}.portrait p>span:last-child{display:none}.portrait-star{font-size:1.2rem}.topic-strip{justify-content:space-between;gap:.8rem;font-size:.75rem}.topic-strip>span:not(:last-child):before{margin-right:.1rem}.home-section{margin-top:2.8rem}.section-heading h2{font-size:1.35rem}.post-card{flex-wrap:wrap;gap:.5rem;padding:1.35rem 0}.post-date{flex-basis:100%;align-items:center;gap:.75rem;display:flex}.draft-label{margin:0}.post-card :is(h2,h3){font-size:1.1rem}.post-thumb{display:none}.project-card{grid-template-columns:1fr}.project-info{padding:1.4rem}.project-info>.text-link{margin-top:1rem}.page-heading{padding-top:2.3rem}.site-footer{flex-direction:column;align-items:start;margin-top:3.5rem}.about-layout{grid-template-columns:1fr;gap:2rem;padding-top:2.5rem}.about-portrait{max-width:210px}.about-copy h1{font-size:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
