:root,:root[data-theme=day]{--bg:#f7f4eb;--dotc:#2b2b2b17;--ink:#2b2b2b;--ink-soft:#5b5a55;--line:#d6cfc4;--rule:#8fa98a;--accent:#8fa98a;--mark:#8fa98a6b;--card:#fffdf7;--card-ink:#2b2b2b;--note:#f6e6a8;--stamp:#c4473f;--k-attend:#c9c2b8;--k-compete:#c7d6e6;--k-volunteer:#f3d98c;--k-share:#7f9c7a;--shadow:0 10px 28px #3c321e1f;color-scheme:light}:root[data-theme=night]{--bg:#1d2023;--dotc:#f5ede00d;--ink:#f5ede0;--ink-soft:#b9b2a6;--line:#4b4f52;--rule:#2fae99;--accent:#2fae99;--mark:#b7d6c7d9;--card:#f5ede0;--card-ink:#1d2023;--note:#f6e6a8;--stamp:#e05a52;--k-attend:#8a8e90;--k-compete:#9ab4cf;--k-volunteer:#f3d98c;--k-share:#2fae99;--shadow:0 14px 34px #00000073;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--bg);background-image:radial-gradient(var(--dotc) 1.1px, transparent 1.3px);color:var(--ink);background-size:18px 18px;margin:0;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif;line-height:1.6;transition:background-color .25s,color .25s}:root[data-theme=night] body{background-image:none}a{color:inherit}img{max-width:100%;height:auto;display:block}.mono,time,.eyebrow,.stats dd{font-family:JetBrains Mono,SF Mono,IBM Plex Mono,Menlo,monospace}.page{width:min(100%,680px);margin:0 auto;padding:0 20px}.mark{background-image:linear-gradient(transparent 52%, var(--mark) 52%, var(--mark) 92%, transparent 92%);box-decoration-break:clone;border-radius:.2em;margin:0 -.06em;padding:0 .12em}:root[data-theme=night] .lead .mark,:root[data-theme=night] .stats .mark{color:#1d2023}:root[data-theme=night] .lead .mark{background-image:none;background-color:var(--mark)}:root[data-theme=night] h1 .mark{background-image:none}:root[data-theme=night] h2 .mark{color:var(--accent);background-image:none}.topbar{border-bottom:2px solid var(--rule);opacity:.98;justify-content:space-between;align-items:center;padding:18px 0 14px;display:flex}.brand{letter-spacing:.02em;white-space:nowrap;align-items:center;gap:12px;font-size:22px;font-weight:800;text-decoration:none;display:flex}.brand img{border:2px solid var(--accent);background:#e9efe3;border-radius:50%;width:52px;height:52px}.topbar-actions{align-items:center;gap:14px;display:flex}.theme-toggle{border:1.5px solid var(--line);cursor:pointer;color:var(--ink);background:0 0;border-radius:999px;padding:3px;display:inline-flex}.theme-toggle span{border-radius:999px;place-items:center;width:36px;height:30px;display:grid}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;width:18px;height:18px}.theme-toggle .moon svg{fill:none}:root[data-theme=day] .theme-toggle .sun,:root:not([data-theme]) .theme-toggle .sun{background:var(--mark)}:root[data-theme=night] .theme-toggle .moon{background:var(--accent);color:#1d2023}.menu{position:relative}.menu summary{cursor:pointer;place-items:center;width:40px;height:40px;list-style:none;display:grid}.menu summary::-webkit-details-marker{display:none}.menu summary svg{stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:28px;height:28px}.menu nav{z-index:5;background:var(--card);min-width:150px;color:var(--card-ink);border:1.5px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;padding:8px;display:flex;position:absolute;top:46px;right:0}.menu nav a{border-radius:8px;padding:8px 12px;text-decoration:none}.menu nav a:hover,.menu nav a[aria-current=page]{background:var(--mark)}.hero{padding:34px 0 20px}.hero h1{letter-spacing:.02em;margin:0;font-size:clamp(64px,19vw,112px);font-weight:900;line-height:1.12}.lead{margin:18px 0 0;font-size:clamp(22px,6.2vw,28px);font-weight:700;line-height:1.5}.tags{grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0 0;padding:0;list-style:none;display:grid}.tags li{border:1.5px solid var(--line);text-align:center;white-space:nowrap;border-radius:12px;place-items:center;min-height:60px;padding:6px 10px;font-size:clamp(12px,3.5vw,15px);line-height:1.4;display:grid}.photo{background:var(--card);box-shadow:var(--shadow);border-radius:18px;margin:34px 0 0;padding:8px;position:relative}.photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 0;border-radius:12px;width:100%}.note{background:var(--note);color:#2b2b2b;text-align:center;margin:0;font-size:17px;line-height:1.4;box-shadow:0 6px 14px #3c321e2e}.note-pin:before{content:"";background:#4b4f52;border-radius:50%;width:11px;height:11px;margin-left:-5px;position:absolute;top:-6px;left:50%}.photo .note{width:40%;max-width:210px;padding:16px 12px 14px;position:absolute;top:-18px;right:-8px;transform:rotate(4deg)}.stats{grid-template-columns:repeat(3,1fr);margin:34px 0 0;display:grid}.stats div{flex-direction:column-reverse;align-items:center;gap:4px;display:flex}.stats div+div{border-left:1.5px solid var(--line)}.stats dd{margin:0;font-size:clamp(44px,13vw,64px);font-weight:800;line-height:1.1}.stats dt{color:var(--ink);font-size:17px}:root[data-theme=night] .stats{background:var(--card);color:var(--card-ink);border-radius:16px;padding:22px 8px}:root[data-theme=night] .stats dt{color:var(--card-ink)}:root[data-theme=night] .stats div+div{border-color:#c9c2b8}:root[data-theme=night] .stats .mark{color:var(--accent);background:0 0}.scroll-hint{text-align:center;letter-spacing:.08em;color:var(--ink-soft);margin:30px 0 0;font-size:17px;text-decoration:none;display:block}.footprint{padding:56px 0 30px}.fp-side{position:relative}.section-head{padding-right:0}.fp-intro,.topnav{display:none}.eyebrow{background:var(--mark);border-radius:999px;margin:0 0 10px;padding:2px 14px;font-size:16px;font-weight:600;display:inline-block}:root[data-theme=night] .eyebrow{color:#1d2023}.footprint h2{margin:0;font-size:clamp(30px,9vw,46px);font-weight:900;line-height:1.25}.note-side{width:132px;padding:22px 10px 16px;position:absolute;top:-12px;right:0;transform:rotate(-3deg)}.legend{flex-wrap:wrap;gap:8px 22px;margin:22px 0 10px;padding:0;font-size:15px;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.dot{border-radius:50%;flex:none;width:16px;height:16px;display:inline-block}.dot.attend{background:var(--k-attend)}.dot.compete{background:var(--k-compete)}.dot.volunteer{background:var(--k-volunteer)}.dot.share{background:var(--k-share)}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";top:10px;bottom:10px;left:calc(var(--date-w) + 7px);background:var(--line);width:2px;position:absolute}.timeline{--date-w:92px}.timeline li{grid-template-columns:var(--date-w) 16px 1fr auto;border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);align-items:center;column-gap:16px;min-height:62px;padding:8px 0;display:grid;position:relative}.timeline time{color:var(--ink-soft);letter-spacing:.02em;white-space:nowrap;font-size:14px}.timeline .dot{z-index:1;position:relative}.timeline .title{font-size:17px;font-weight:600;line-height:1.4}.timeline li.dense .dot{width:22px;height:22px;margin-left:-3px}.timeline li.dense:before{content:"";top:0;bottom:0;left:calc(var(--date-w) + 6px);background:var(--k-share);width:4px;position:absolute}.thumb{object-fit:cover;width:92px;height:66px;box-shadow:var(--shadow);border-radius:8px}.stamp{vertical-align:.1em;white-space:nowrap;border:2px solid var(--stamp);color:var(--stamp);letter-spacing:.06em;opacity:.9;border-radius:6px;margin-left:10px;padding:0 8px;font-size:14px;font-weight:800;line-height:1.6;display:inline-block;transform:rotate(-6deg)}.all{margin-top:28px}.all summary{cursor:pointer;border:2px solid var(--rule);text-align:center;border-radius:14px;padding:16px;font-size:19px;font-weight:700;list-style:none}.all summary::-webkit-details-marker{display:none}.all[open] summary{margin-bottom:14px}.all[open] summary span{display:inline-block;transform:rotate(90deg)}.timeline.compact li{min-height:46px}.timeline.compact .title{font-size:15px;font-weight:500}.home-footer{width:min(100%,680px);color:var(--ink-soft);justify-content:space-between;align-items:center;margin:20px auto 0;padding:26px 20px 34px;font-size:13px;display:flex}.home-footer a{text-decoration:none}.wordmark{letter-spacing:.03em;color:var(--ink-soft);opacity:.8;font-size:26px;font-weight:800}@media (width<=420px){.page{padding:0 16px}.tags li{min-height:56px;padding:6px 2px}.timeline{--date-w:76px}.timeline li{column-gap:12px}.timeline time{letter-spacing:0;font-size:12px}.timeline .title{font-size:16px}.thumb{width:72px;height:54px}.note-side{width:112px;font-size:15px}}@media (width<=350px){.tags{gap:6px}.brand{gap:8px;font-size:18px}.brand img{width:42px;height:42px}.topbar-actions{gap:6px}.theme-toggle span{width:30px}.photo .note{width:46%;font-size:15px}.note-side{width:100px;font-size:14px}}@media (width>=960px){.page{width:min(100%,1240px);padding:0 48px}.topbar{padding:22px 0 16px}.brand{font-size:26px}.brand img{width:60px;height:60px}.topbar-actions{gap:28px}.menu{display:none}.topnav{gap:10px;display:flex}.topnav a{border-radius:999px;padding:6px 16px;font-size:18px;font-weight:700;text-decoration:none}.topnav a:hover,.topnav a[aria-current=page]{background:var(--mark)}:root[data-theme=night] .topnav a:hover,:root[data-theme=night] .topnav a[aria-current=page]{color:#1d2023}.hero{grid-template:"title photo""lead photo""tags photo""stats photo""hint photo"1fr/minmax(0,1.15fr) minmax(0,.85fr);column-gap:72px;padding:56px 0 72px;display:grid}.hero h1{grid-area:title;margin-top:8px;font-size:clamp(96px,9.5vw,136px)}.lead{grid-area:lead;margin-top:28px;font-size:clamp(30px,3vw,40px);line-height:1.45}.tags{grid-area:tags;gap:14px;max-width:640px;margin-top:36px}.tags li{min-height:68px;font-size:17px}.stats{grid-area:stats;max-width:640px;margin-top:44px}.stats dd{font-size:64px}.stats dt{font-size:19px}.scroll-hint{grid-area:hint;align-self:start;max-width:640px;margin-top:36px}.photo{grid-area:photo;place-self:start end;width:100%;max-width:480px;margin:18px 0 0;padding:10px;transform:rotate(1.5deg)}.photo .note{width:190px;padding:20px 14px 16px;font-size:20px;top:-22px;right:-26px}.footprint{grid-template-columns:360px minmax(0,1fr);align-items:start;column-gap:40px;padding:24px 0 40px;display:grid}.fp-side,.fp-main{border:1.5px solid var(--line);background:color-mix(in srgb, var(--bg) 70%, transparent);border-radius:20px}.fp-side{padding:32px 32px 36px;position:sticky;top:24px}.fp-main{padding:18px 32px 28px}.footprint h2{font-size:42px}.fp-intro{color:var(--ink-soft);margin:24px 0 0;font-size:17px;line-height:1.8;display:block}.legend{flex-direction:column;gap:14px;margin:28px 0 0;font-size:17px}.note-side{width:190px;margin:32px 0 0 auto;padding:24px 12px 18px;font-size:19px;position:relative;top:auto;right:auto}.timeline{--date-w:110px}.timeline li{column-gap:22px;min-height:60px}.timeline time{font-size:16px}.timeline .title{font-size:19px}.stamp{font-size:16px}.thumb{width:104px;height:72px}.home-footer{border-top:1.5px solid var(--line);width:min(100%,1240px);padding:32px 48px 40px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body{transition:none}}.manual-toc{display:none}.manual-head{padding:28px 0 8px}.manual-title{align-items:baseline;gap:16px;margin-top:10px;display:flex}.manual-head .eyebrow{margin:0}.manual-head h1{margin:0;font-size:clamp(56px,16vw,88px);font-weight:900;line-height:1.1}.manual-head .updated{border-left:1.5px solid var(--line);color:var(--ink-soft);margin:0;padding-left:14px;font-size:15px}:root[data-theme=night] .manual-head h1 .mark{background-image:none}.m-sec{padding:26px 0 6px;scroll-margin-top:16px}.m-sec h2{align-items:center;gap:10px;margin:0 0 16px;font-size:clamp(24px,6.6vw,30px);font-weight:900;display:flex}.m-sec h2:before{content:"";background:var(--accent);border-radius:3px;flex:none;width:14px;height:14px}.m-sec p{margin:0 0 10px;font-size:16px;line-height:1.8}.m-sec h3{margin:4px 0 6px;font-size:17px;font-weight:800}.m-tags{margin:0 0 16px}.m-tags li{font-size:clamp(12px,3.4vw,15px)}.m-lead{font-weight:700;font-size:18px!important}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.skills li{border:1.5px solid var(--line);border-radius:14px;padding:14px 14px 16px}.skills h3{align-items:center;gap:8px;margin:0 0 8px;font-size:16px;line-height:1.35;display:flex}.skills p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.6}.skill-icon{flex:none;width:30px;height:30px}.skill-icon svg{fill:none;width:30px;height:30px;stroke:var(--ink);stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round}.skill-icon svg :first-child{fill:var(--mark)}.m-list{margin:0;padding:0;list-style:none}.m-list li{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);grid-template-columns:1fr;gap:2px;padding:10px 0;font-size:15px;line-height:1.65;display:grid}.m-list time{color:var(--ink-soft);padding-top:2px;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:13px}.m-awards{border:1.5px solid var(--line);border-radius:14px;margin:0;padding:0;list-style:none}.m-awards li{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:16px;display:flex}.m-awards li+li{border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent)}.m-awards .stamp{flex:none;margin-left:0}.stamp.soft{border-color:var(--accent);color:var(--accent);transform:rotate(-3deg)}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,40%);align-items:start;gap:14px;display:grid}.m-fig{background:var(--card);box-shadow:var(--shadow);border-radius:10px;margin:4px 0 0;padding:5px}.m-fig img{border-radius:8px;width:100%}.share-list li{grid-template-columns:1fr}.kv{margin:0;padding-left:0;list-style:none}.kv li{padding:6px 0 6px 18px;font-size:15px;line-height:1.7;position:relative}.kv li:before{content:"";background:var(--accent);border-radius:2px;width:9px;height:9px;position:absolute;top:.95em;left:0}.pill{background:var(--mark);white-space:nowrap;border-radius:999px;padding:2px 12px;font-weight:600;display:inline-block;font-size:13px!important}:root[data-theme=night] .pill{color:#1d2023}.contact-card{background:var(--note);color:#2b2b2b;border-radius:6px;align-items:center;gap:20px;padding:20px;display:flex;position:relative;transform:rotate(-.6deg);box-shadow:0 8px 20px #3c321e29}.contact-card img{background:#fff;border-radius:10px;width:148px;height:148px;padding:8px}.contact-title{font-weight:900;margin-bottom:6px!important;font-size:24px!important}.contact-card .mark{background-image:linear-gradient(#0000 55%,#8fa98a80 55% 92%,#0000 92%)}@media (width>=560px){.two-col{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px}.m-list li{grid-template-columns:9.5em 1fr;gap:12px}.share-list li{grid-template-columns:5.2em 1fr}}@media (width<=380px){.contact-card{gap:14px;padding:16px}.contact-card img{width:112px;height:112px}.contact-title{font-size:20px!important}}@media (width>=960px){.manual-page{width:min(100%,1240px)}.manual{grid-template-columns:210px minmax(0,1fr);align-items:start;column-gap:48px;display:grid}.manual-toc{border-right:1.5px solid var(--line);padding:36px 0;display:block;position:sticky;top:24px}.manual-toc ol{margin:0;padding:0;list-style:none}.manual-toc a{border-radius:999px;margin-right:20px;padding:7px 14px;font-size:17px;text-decoration:none;display:block}.manual-toc a:hover,.manual-toc a.active{background:var(--mark)}:root[data-theme=night] .manual-toc a:hover,:root[data-theme=night] .manual-toc a.active{color:#1d2023}.toc-note{width:150px;margin:36px 0 0 6px;padding:22px 10px 16px;font-size:17px;position:relative;transform:rotate(-4deg)}.manual-head{padding-top:40px}.manual-head h1{font-size:96px}.m-sec{padding-top:34px}.m-sec h2{font-size:30px}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.skills li{padding:18px 20px}.skills h3{font-size:18px}.skills p{font-size:15px}.m-list li{grid-template-columns:11em 1fr;font-size:16px}.m-list time{font-size:14px}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:36px}.contact-card{max-width:520px}}
