:root{--bg-page: #f5f5f7;--bg-surface: #ffffff;--bg-soft: #fbfbfd;--text-primary: #1d1d1f;--text-secondary: #424245;--text-tertiary: #6e6e73;--line: #d2d2d7;--line-soft: #e5e5ea;--link: #0066cc;--link-hover: #0077ed;--shadow-soft: 0 12px 34px rgba(0, 0, 0, .08);--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--container: min(1040px, calc(100% - 2rem) );--global-nav-height: 48px;--font-system: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Helvetica Neue", "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;background:var(--bg-page);scroll-padding-top:calc(var(--global-nav-height) + .5rem)}body{font-family:var(--font-system);background:var(--bg-page);color:var(--text-primary);line-height:1.45;position:relative;isolation:isolate}body:before{content:"";position:fixed;top:0;left:50%;width:100vw;height:clamp(320px,58vh,560px);transform:translate(-50%);background:linear-gradient(180deg,rgba(245,245,247,0) 70%,var(--bg-page) 100%),linear-gradient(90deg,#c2e0ff94,#d2eaff57 46%,#ebf6ff00);pointer-events:none;z-index:-1}body.status-closed:before{height:100vh;background:linear-gradient(180deg,#e9f5ff14,#eff8ffeb),radial-gradient(circle at 18% 18%,#94d1ff80,#94d1ff00 34%),radial-gradient(circle at 82% 20%,#c7e8ffb3,#c7e8ff00 38%),linear-gradient(135deg,#dcefffe0,#f5fafff5)}body.status-closed:after{content:"";position:fixed;inset:0;background:linear-gradient(transparent 0,transparent calc(100% - 1px),rgba(255,255,255,.26) calc(100% - 1px)),linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),rgba(255,255,255,.24) calc(100% - 1px));background-size:48px 48px;opacity:.3;pointer-events:none;z-index:-1}.skip-link{position:absolute;left:1rem;top:-120%;padding:.6rem .95rem;border-radius:999px;background:var(--link);color:#fff;z-index:99;font-size:.85rem;text-decoration:none}.skip-link:focus{top:.75rem}.global-nav{position:sticky;top:0;z-index:50;backdrop-filter:saturate(180%) blur(18px);background:#fafafcd9;border-bottom:1px solid rgba(210,210,215,.7)}.nav-inner{width:var(--container);margin:0 auto;height:48px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-brand{display:inline-flex;align-items:center;gap:.42rem;text-decoration:none;font-size:.82rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.brand-glyph{font-size:.72rem;line-height:1;transform:translateY(-.5px)}.nav-menu{display:inline-flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.nav-link{font-size:.78rem;font-weight:400;line-height:1;text-decoration:none;color:var(--text-secondary);padding:.32rem .52rem;border-radius:8px;transition:color .2s ease,background-color .2s ease}.nav-link:hover,.nav-link:focus-visible{color:var(--text-primary);background:#0000000d}.nav-link:active{background:#00000017;transition-duration:.05s}.page{width:var(--container);margin:1.3rem auto 0;padding-bottom:4rem}.status-page{width:min(960px,calc(100% - 2rem));min-height:100vh;margin:0 auto;padding:clamp(2rem,7vw,4rem) 0;display:grid;place-items:center}.status-panel{position:relative;width:min(100%,680px);padding:clamp(2rem,6vw,3.4rem);border-radius:32px;border:1px solid rgba(255,255,255,.58);background:linear-gradient(180deg,#ffffffb8,#f4faff94);box-shadow:0 22px 70px #4a7eaa29,inset 0 1px #fff9;backdrop-filter:blur(24px) saturate(155%);overflow:hidden}.status-panel:before{content:"";position:absolute;inset:auto auto 28% -12%;width:clamp(180px,28vw,280px);height:clamp(180px,28vw,280px);border-radius:50%;background:radial-gradient(circle,#89cbff6b,#89cbff00);pointer-events:none}.status-panel:after{content:"";position:absolute;top:-16%;right:-10%;width:clamp(200px,32vw,320px);height:clamp(200px,32vw,320px);border-radius:50%;background:radial-gradient(circle,#cbe9ff9e,#cbe9ff00);pointer-events:none}.status-panel>*{position:relative;z-index:1}.status-badge{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.42rem .75rem;border-radius:999px;border:1px solid rgba(115,173,220,.2);background:#ffffff75;color:#44719a;font-size:.78rem;font-weight:700;letter-spacing:.18em}.status-badge:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:linear-gradient(135deg,#71b7ff,#4f96dd);box-shadow:0 0 0 6px #71b7ff1f}.status-title{margin:0;font-size:clamp(2rem,7vw,3.4rem);line-height:1.08;letter-spacing:-.04em}.status-text{max-width:32rem;margin:1.05rem 0 0;font-size:clamp(1rem,2.4vw,1.15rem);line-height:1.75;letter-spacing:-.01em;color:#49627a;text-wrap:pretty}.status-actions{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.9rem}.status-link{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.2rem;min-width:min(100%,14rem);padding:.92rem 1.15rem;border-radius:22px;border:1px solid rgba(78,142,193,.18);background:linear-gradient(135deg,#6bb3edf5,#5294cdeb);box-shadow:0 14px 32px #5390c438,inset 0 1px #ffffff5c;color:#fff;font-size:.95rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.status-link-secondary{background:linear-gradient(180deg,#ffffffb8,#f4faff99);border-color:#7badd83d;box-shadow:0 14px 30px #7ca3c41f,inset 0 1px #ffffff8f;color:#2d5f87}.status-link-label{font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.9}.status-link-value{font-size:1rem;font-weight:600;letter-spacing:-.01em;word-break:break-word}.status-link:hover,.status-link:focus-visible{transform:translateY(-1px);box-shadow:0 18px 38px #5390c442,inset 0 1px #ffffff5c;filter:saturate(108%)}.status-link-secondary:hover,.status-link-secondary:focus-visible{box-shadow:0 18px 34px #7ca3c429,inset 0 1px #ffffff8f}.status-link:active{transform:translateY(0);box-shadow:0 10px 22px #5390c433,inset 0 1px #ffffff52}.status-link-secondary:active{box-shadow:0 8px 18px #7ca3c41f,inset 0 1px #ffffff85}.status-note{margin:1.5rem 0 0;display:inline-block;padding:.55rem .78rem;border-radius:14px;background:#ffffff6b;border:1px solid rgba(123,173,216,.18);color:#5a7894;font-size:.84rem;line-height:1.5}.hero{position:relative;margin-top:.6rem;padding:clamp(1.4rem,4vw,2rem);border-radius:var(--radius-xl);border:1px solid var(--line-soft);background:#ffffffc7;box-shadow:var(--shadow-soft);backdrop-filter:saturate(170%) blur(16px);overflow:hidden}.hero:after{content:"";position:absolute;width:clamp(180px,30vw,260px);height:clamp(180px,30vw,260px);top:-90px;right:-90px;border-radius:50%;background:radial-gradient(circle,#8dc4ff59,#8dc4ff00);pointer-events:none}.name-row,.meta,.hero>*{position:relative;z-index:1}.name-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:.65rem;margin-bottom:.55rem}h1{margin:0;font-size:clamp(2.05rem,5.5vw,3.35rem);line-height:1.08;letter-spacing:-.03em;font-weight:700}.subtitle{margin:0;font-size:clamp(1rem,1.9vw,1.3rem);line-height:1.25;font-weight:500;letter-spacing:-.01em;color:var(--text-tertiary)}.meta{margin:.72rem 0 0;display:flex;gap:.52rem;flex-wrap:wrap;color:var(--text-secondary);font-size:.91rem}.pill{border:1px solid var(--line-soft);border-radius:999px;background:#f2f2f4;padding:.34rem .62rem;font-size:.82rem;color:#515154;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.pill:hover{background:#e9eaf0;border-color:#c8c8d0;transform:translateY(-1px)}.pill a{color:inherit;text-decoration:underline}.section{margin-top:1rem;padding:1.2rem 1.25rem;border-radius:var(--radius-lg);border:1px solid var(--line-soft);background:#ffffffc7;box-shadow:var(--shadow-soft);backdrop-filter:saturate(170%) blur(14px);transition:border-color .25s ease,box-shadow .25s ease}.section:hover{border-color:#cdd8e8;box-shadow:0 14px 40px #0000001a}.section h2{margin:0 0 .72rem;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.15;letter-spacing:-.02em}.summary{margin:0;line-height:1.62;letter-spacing:-.01em;color:var(--text-secondary);text-wrap:pretty}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.box{border:1px solid var(--line-soft);border-radius:var(--radius-md);background:#ffffffd1;padding:.94rem 1rem;box-shadow:0 8px 22px #0000000a;backdrop-filter:saturate(160%) blur(10px);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.box:hover{border-color:#c2d7f3;box-shadow:0 4px 16px #0066cc14;transform:translateY(-2px)}.box h3{margin:0 0 .52rem;font-size:1rem;color:var(--text-primary);letter-spacing:-.01em}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.28rem .54rem;border-radius:999px;border:1px solid #e2e2e4;background:#f2f2f4;font-size:.8rem;color:#515154;line-height:1.25;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;cursor:default}.chip:hover{background:#e0ecfa;border-color:#b3d1f5;color:#1a5a9e;transform:translateY(-1px)}.timeline{margin:0;padding:0;list-style:none;display:grid;gap:.52rem}.timeline li{position:relative;border-radius:14px;border:1px solid var(--line-soft);background:var(--bg-soft);padding:.66rem .84rem .66rem 1.1rem;color:var(--text-secondary);line-height:1.52;letter-spacing:-.01em;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.timeline li:hover{background:#f0f4fb;border-color:#c8d9f0;transform:translate(4px)}.timeline li:hover:before{background:#7ab4f5;height:22px}.timeline li:before{content:"";position:absolute;left:.56rem;top:50%;width:4px;height:16px;transform:translateY(-50%);border-radius:999px;background:#b9d7fb;transition:background-color .2s ease,height .2s ease}details.project,details.sub-detail{border:1px solid var(--line-soft);border-radius:var(--radius-md);background:#ffffffd1;backdrop-filter:saturate(170%) blur(14px);overflow:hidden;box-shadow:0 8px 22px #0000000a;transition:border-color .2s ease,box-shadow .2s ease}details.project:hover,details.sub-detail:hover{border-color:#c8d5e8;box-shadow:0 2px 12px #0066cc0f}details.project+details.project{margin-top:.85rem}details.sub-detail+details.sub-detail{margin-top:.72rem}details summary{list-style:none;cursor:pointer}details summary::-webkit-details-marker{display:none}.project-summary{padding:.9rem 1rem;display:grid;grid-template-columns:1fr auto;align-items:start;gap:.7rem;background:#ffffffe0;border-bottom:1px solid transparent;position:relative;transition:background-color .2s ease}.project-summary:hover{background:#f5f8fd}.project-summary:active{background:#edf2fa;transition-duration:.05s}details[open]>.project-summary{border-bottom-color:var(--line-soft);background:#fbfcff}details[open]>.project-summary:hover{background:#f3f7fe}.project-summary:after{display:none}.project-title:after{content:"展开 ▾";display:inline-block;margin-left:.5rem;font-size:.72rem;font-weight:400;color:var(--text-tertiary);vertical-align:middle;transition:color .2s ease}.project-summary:hover .project-title:after{color:var(--link)}details[open]>.project-summary .project-title:after{content:"收起 ▴"}details.sub-detail>.project-summary{grid-template-columns:1fr;padding-right:2rem}.project-title{margin:0;font-size:1.03rem;line-height:1.34;letter-spacing:-.01em;color:var(--text-primary)}.project-brief{margin:.32rem 0 0;color:var(--text-secondary);font-size:.9rem;line-height:1.55;letter-spacing:-.01em;text-wrap:pretty}.date{font-size:.76rem;line-height:1;color:#515154;border:1px solid #e2e2e4;border-radius:999px;padding:.27rem .52rem;white-space:nowrap;background:#f2f2f4;margin-right:1rem}.project-body{padding:.86rem 1rem 1rem;color:var(--text-secondary);line-height:1.62;letter-spacing:-.01em}.project-body h4{margin:.08rem 0 .36rem;font-size:.92rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.project-body ul{margin:0 0 .58rem 1.1em;padding:0}.project-body li{margin-top:.2rem}.project-body p{margin:0 0 .58rem}.reveal{opacity:0;transform:translateY(12px);animation:rise .75s cubic-bezier(.2,.7,.1,1) forwards}.delay-1{animation-delay:.08s}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}@keyframes rise{to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.grid,.project-summary{grid-template-columns:1fr}}@media(max-width:734px){:root{--container: min(100%, calc(100% - 1.2rem) )}.nav-inner{height:auto;padding:.72rem 0;align-items:flex-start;flex-direction:column}.nav-menu{gap:.9rem}.project-summary:after{right:.72rem}.status-page{width:min(100%,calc(100% - 1.2rem));padding:1.2rem 0}.status-panel{border-radius:26px}.status-actions{flex-direction:column}.status-link{width:100%}.status-note{display:block}}
