:root{--radius: 18px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--body-bg: radial-gradient(1100px 720px at 82% -12%, rgba(59, 130, 246, .16), transparent 60%), radial-gradient(900px 640px at -8% 108%, rgba(34, 211, 238, .09), transparent 60%), #0b1220;--bg: #0b1220;--ink: #e9edf6;--muted: #97a2b8;--card: rgba(255, 255, 255, .055);--line: rgba(255, 255, 255, .1);--accent: #3b82f6;--accent-2: #22d3ee;--coral: #fb7185;--amber: #fbbf24;--teal: #2dd4bf;--solid: #101a2e;--top-grad: linear-gradient(to bottom, rgba(8, 13, 24, .9), rgba(8, 13, 24, .6) 70%, transparent);--progress-grad: linear-gradient(to top, rgba(8, 13, 24, .96), rgba(8, 13, 24, .78) 60%, transparent);--ghost: rgba(59, 130, 246, .085);--shadow: 0 14px 40px rgba(2, 6, 16, .42);--shadow-strong: 0 22px 50px rgba(2, 6, 16, .5);--panel-tint: rgba(255, 255, 255, .05);--chip-bg: rgba(59, 130, 246, .16);--tag-amber-bg: rgba(251, 191, 36, .16);--tag-amber-ink: #fcd34d;--tag-teal-bg: rgba(45, 212, 191, .13);--tag-teal-ink: #5eead4;--blob-mix: screen;--blob-op: .22;--wave-a: rgba(59, 130, 246, .24);--wave-b: rgba(34, 211, 238, .16);--btn-shadow: 0 14px 34px rgba(2, 6, 16, .45);--btn-shadow-strong: 0 20px 44px rgba(2, 6, 16, .55);--pdot: #4b5b78;--halo: rgba(59, 130, 246, .2);--glass-bg: linear-gradient(150deg, rgba(128, 164, 250, .22), rgba(96, 126, 230, .05) 46%, rgba(80, 190, 244, .13));--glass-brd: rgba(150, 188, 255, .24);--glass-sh: 0 18px 44px rgba(2, 6, 16, .5), inset 0 1px 0 rgba(255, 255, 255, .12);--pill-bg: #16233d;--pill-brd: rgba(150, 188, 255, .45);--pill-sh: 0 6px 14px rgba(2, 6, 16, .4);--n0: #3b82f6;--n1: #22d3ee;--n2: #2dd4bf;--n3: #fbbf24;--n4: #fb7185;--n5: #8b5cf6;--tl-blob-a: rgba(96, 165, 250, .13);--tl-blob-b: rgba(45, 212, 191, .09);--tl-blob-c: rgba(251, 113, 133, .07);--tl-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.42' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.45 0 0 0 0 0.45 0 0 0 0 0.45 1 0 0 0 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");--tl-noise-op: .09;--tl-noise-size: 160px}:root[data-theme=b]{--body-bg: #f6f1e7;--bg: #f6f1e7;--ink: #2b261d;--muted: #756c5c;--card: #fffdf6;--line: rgba(43, 38, 29, .1);--accent: #b45309;--accent-2: #0f766e;--coral: #d9684e;--amber: #c98a16;--teal: #128c7e;--solid: #2b2318;--top-grad: linear-gradient(to bottom, rgba(246, 241, 231, .94), rgba(246, 241, 231, .78) 70%, transparent);--progress-grad: linear-gradient(to top, rgba(246, 241, 231, .96), rgba(246, 241, 231, .8) 60%, transparent);--ghost: rgba(180, 83, 9, .06);--shadow: 0 14px 40px rgba(70, 52, 28, .1);--shadow-strong: 0 22px 50px rgba(70, 52, 28, .17);--panel-tint: rgba(255, 255, 255, .78);--chip-bg: rgba(180, 83, 9, .1);--tag-amber-bg: rgba(201, 138, 22, .18);--tag-amber-ink: #8a5a08;--tag-teal-bg: rgba(18, 140, 126, .13);--tag-teal-ink: #0b5c54;--blob-mix: multiply;--blob-op: .14;--wave-a: rgba(180, 83, 9, .1);--wave-b: rgba(18, 140, 126, .12);--btn-shadow: 0 14px 34px rgba(180, 83, 9, .28);--btn-shadow-strong: 0 20px 44px rgba(180, 83, 9, .36);--pdot: #cfc6b4;--halo: rgba(180, 83, 9, .15);--glass-bg: linear-gradient(150deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .5) 55%, rgba(255, 255, 255, .68));--glass-brd: rgba(255, 255, 255, .95);--glass-sh: 0 20px 46px rgba(70, 52, 28, .17), inset 0 1px 0 rgba(255, 255, 255, .95);--pill-bg: #ffffff;--pill-brd: rgba(43, 38, 29, .18);--pill-sh: 0 6px 14px rgba(70, 52, 28, .2);--n0: #b45309;--n1: #0f766e;--n2: #8b5f85;--n3: #d9684e;--n4: #c98a16;--n5: #3f6f8f;--tl-blob-a: rgba(180, 83, 9, .08);--tl-blob-b: rgba(18, 140, 126, .07);--tl-blob-c: rgba(201, 138, 22, .06);--tl-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.42' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.4 0 0 0 0 0.4 0 0 0 0 0.4 1 0 0 0 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");--tl-noise-op: .1;--tl-noise-size: 160px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--body-bg);color:var(--ink);line-height:1.7;overflow:hidden}.bg-blobs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-blobs span{position:absolute;width:46vw;height:46vw;min-width:420px;min-height:420px;border-radius:50%;filter:blur(90px);opacity:var(--blob-op, .16);mix-blend-mode:var(--blob-mix, multiply);animation:drift 18s ease-in-out infinite alternate}.bg-blobs .bb1{background:var(--accent);top:-18%;left:-12%}.bg-blobs .bb2{background:var(--amber);bottom:-22%;left:30%;animation-delay:-5s}.bg-blobs .bb3{background:var(--teal);top:-14%;right:-14%;animation-delay:-9s}.bg-blobs .bb4{background:var(--coral);bottom:-26%;right:22%;animation-delay:-13s}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(6vw,4vh) scale(1.22)}}.top{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;gap:14px;padding:14px 26px;background:var(--top-grad);backdrop-filter:blur(6px)}.top .logo{width:34px;height:34px;border-radius:50%;background:var(--solid);color:#fff;font-weight:700;font-size:15px;display:grid;place-items:center;flex:none}.top .welcome{font-size:14px;font-weight:600}.top .spacer{flex:1}.top .contact-link{font-size:14px;color:var(--muted);text-decoration:none;white-space:nowrap}.top .contact-link:hover{color:var(--accent)}.top .status{white-space:nowrap}@media(max-width:640px){.top .st-zh{display:none}.top .status{font-size:11px}}.top .status{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em}.top .status i{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 #06d6a080;animation:pulse 2.2s infinite}@keyframes pulse{0%{box-shadow:0 0 #06d6a073}70%{box-shadow:0 0 0 9px #06d6a000}to{box-shadow:0 0 #06d6a000}}.theme-toggle{display:inline-flex;align-items:center;gap:5px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 7px;cursor:pointer;font-family:var(--font);color:var(--muted);box-shadow:0 2px 10px #00000014;transition:border-color .25s,box-shadow .25s}.theme-toggle:hover{border-color:var(--accent);box-shadow:0 4px 14px #00000024}.theme-toggle .tt-label{font-size:11px;font-weight:600;padding-left:3px}.theme-toggle .tt-opt{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:var(--muted);transition:background .25s,color .25s}.theme-toggle .tt-opt.on{background:var(--accent);color:#fff}@media(max-width:640px){.theme-toggle .tt-label{display:none}}.snap{position:relative;z-index:1;height:100vh;overflow-y:auto;scroll-snap-type:y proximity;scroll-behavior:smooth}.scene{position:relative;min-height:100vh;scroll-snap-align:start;overflow:hidden;display:flex;align-items:center}.scene-inner{position:relative;z-index:2;width:min(1180px,92vw);margin:0 auto;padding:110px 0 90px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--accent);text-transform:uppercase;margin-bottom:14px}.eyebrow:before{content:"";display:inline-block;width:26px;height:2px;background:var(--accent);vertical-align:middle;margin-right:10px}h1{font-size:clamp(38px,4.8vw,58px);line-height:1.15;letter-spacing:-.01em}h2{font-size:clamp(30px,4.2vw,44px);line-height:1.2;letter-spacing:-.01em}.lead{font-size:clamp(16px,1.6vw,19px);color:var(--ink);margin-top:18px;font-weight:600}.muted-text{color:var(--muted);font-size:15px}.ghost{position:absolute;z-index:1;pointer-events:none;user-select:none;font-size:clamp(140px,24vw,340px);font-weight:800;line-height:1;color:var(--ghost);letter-spacing:-.02em;white-space:nowrap}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease var(--d, 0s),transform .8s ease var(--d, 0s)}.reveal.in{opacity:1;transform:none}.s1-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:34px;align-items:center}.s1-left .h1-sub{margin-top:10px;color:var(--muted)}.s1-left .lines{margin-top:14px;display:grid;gap:8px}.s1-left .lines p{font-size:14.5px;color:var(--ink);background:var(--panel-tint);border:1px solid var(--line);border-radius:12px;padding:10px 14px}.s1-left .mini-stats{display:flex;gap:26px;margin-top:20px}.s1-left .mini-stats .ms b{font-size:24px;color:var(--accent)}.s1-left .mini-stats .ms i{font-style:normal;font-size:13px;color:var(--muted);display:block}.about-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.about-card h3{font-size:19px;line-height:1.4;white-space:pre-line}.about-card .bio{font-size:13.5px;color:var(--muted);margin-top:10px;white-space:pre-line}.tagrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{font-size:12px;padding:4px 12px;border-radius:999px;background:var(--chip-bg);color:var(--accent);font-weight:600}.tag:nth-child(3n){background:var(--tag-amber-bg);color:var(--tag-amber-ink)}.tag:nth-child(3n+2){background:var(--tag-teal-bg);color:var(--tag-teal-ink)}.edu{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line)}.edu .edu-school{font-weight:700;font-size:15px}.edu .edu-major{font-size:13px;color:var(--muted)}.edu .edu-note{font-size:12.5px;color:var(--accent);margin-top:2px;white-space:pre-line}.mascot-zone{position:relative;display:grid;place-items:center}.mascot{position:relative;width:min(300px,30vw);aspect-ratio:1/1;cursor:default;touch-action:pan-y;will-change:transform}.mascot.photo{aspect-ratio:auto;width:min(300px,28vw)}.mascot.photo .mascot-img{display:block;width:100%;height:auto;user-select:none;filter:drop-shadow(0 22px 32px rgba(0,0,0,.35))}.s6 .mascot{width:min(230px,22vw)}.s6 .mascot.photo{width:min(290px,24vw)}.scene-photo{position:absolute;z-index:1;pointer-events:none;border-radius:16px;box-shadow:var(--shadow);object-fit:cover;opacity:.97}.sp-work{right:2.5vw;bottom:96px;width:min(250px,20vw)}.sp-study{right:2.5vw;bottom:90px;width:min(250px,20vw)}@media(max-width:1360px){.sp-work,.sp-study{display:none}}.s2-center{text-align:center}.s2-center .eyebrow:before{display:none}.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}.counters .c{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px 12px 26px;position:relative;overflow:hidden}.counters .c:after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.counters .c:nth-child(2):after{background:linear-gradient(90deg,var(--amber),var(--coral))}.counters .c:nth-child(3):after{background:linear-gradient(90deg,var(--teal),var(--accent))}.counters .c:nth-child(4):after{background:linear-gradient(90deg,var(--coral),var(--accent-2))}.counters .num{font-size:clamp(34px,4.6vw,52px);font-weight:800;letter-spacing:-.02em}.counters .num i{font-style:normal;font-size:.45em;margin-left:4px;color:var(--muted)}.counters .lbl{font-size:13.5px;color:var(--muted);margin-top:6px}.s2 .caption{margin-top:26px;font-size:13.5px;color:var(--muted)}.s3-grid,.s5-grid,.s6-grid{display:grid;align-items:center}.s3-grid{width:min(1800px,96vw);padding:80px 0;grid-template-columns:minmax(640px,1fr) minmax(0,1fr);gap:clamp(28px,3.6vw,56px)}.s3-main .intro{margin-top:8px;font-size:13px;max-width:720px}.rowcards{display:grid;gap:9px;margin-top:12px}.rowcard{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:3px 18px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:9px 14px 10px 16px;box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s,box-shadow .3s}.rowcard:nth-child(2){border-left-color:#a855f7}.rowcard:nth-child(3){border-left-color:#10b981}.rowcard:nth-child(4){border-left-color:#f59e0b}.rowcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong)}:root:not([data-theme=b]) .rowcard{background:linear-gradient(155deg,#ffffff1a,#ffffff08 42%,#80a4fa12 88%);border-top-color:#ffffff21;border-right-color:#ffffff14;border-bottom-color:#ffffff0a;box-shadow:var(--shadow),inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3)}:root:not([data-theme=b]) .rowcard:hover{box-shadow:var(--shadow-strong),inset 0 1px #ffffff1a}.rowcard .amount{position:absolute;top:9px;right:12px;font-size:10.5px;font-weight:800;letter-spacing:.02em;background:var(--chip-bg);color:var(--accent);padding:2px 9px;border-radius:999px;white-space:nowrap}.rowcard:nth-child(2) .amount{color:#a855f7;background:#a855f724}.rowcard:nth-child(3) .amount{color:#10b981;background:#10b98124}.rowcard:nth-child(4) .amount{color:#f59e0b;background:#f59e0b29}.rowcard .rc-head{min-width:0}.rowcard .rc-head h3{font-size:15px;line-height:1.25;padding-right:74px}.rowcard .rc-head .role{font-size:11px;color:var(--muted);margin-top:1px;line-height:1.5}.rowcard .rc-desc{font-size:12px;color:var(--muted);grid-column:1 / -1;margin-top:5px;line-height:1.5}.rowcard .chips{display:flex;gap:6px;flex-wrap:wrap;grid-row:1;grid-column:2;align-self:center}.rowcard .chips span{font-size:10px;background:var(--chip-bg);color:var(--accent);padding:2px 8px;border-radius:999px;font-weight:600}.rowcard:nth-child(2) .chips span{color:#a855f7}.rowcard:nth-child(3) .chips span{color:#10b981}.rowcard:nth-child(4) .chips span{color:#f59e0b}.figure-col{position:relative;display:grid;place-items:center;min-width:0}.figure-frame{position:relative;z-index:2;display:flex;justify-content:center;align-items:flex-end}.figure-img{display:block;width:auto;height:auto;max-width:100%;max-height:min(62vh,540px);user-select:none;pointer-events:none;filter:drop-shadow(0 24px 34px rgba(2,6,16,.32))}.s3-figure .figure-img{max-height:min(66vh,580px)}.avatar-egg{position:relative;cursor:pointer;outline:none;border-radius:16px}.avatar-egg .egg-img{transition:opacity .3s ease,transform .3s ease}.avatar-egg:not([data-egg=open]):hover .egg-img-idle,.avatar-egg:focus-visible .egg-img-idle{transform:translateY(-6px)}.avatar-egg .egg-img-open{position:absolute;left:50%;top:0;transform:translate(-50%) scale(.93);opacity:0;pointer-events:none}.avatar-egg[data-egg=open] .egg-img-idle{opacity:0}.avatar-egg[data-egg=open] .egg-img-open{opacity:1;transform:translate(-50%) scale(1)}.avatar-egg:focus-visible{box-shadow:0 0 0 3px var(--halo)}.egg-pill{position:absolute;z-index:2;top:10px;right:8px;display:inline-flex;align-items:center;font-size:12px;font-weight:700;white-space:nowrap;color:var(--ink);background:var(--pill-bg);border:1px solid var(--pill-brd);border-radius:999px;box-shadow:var(--pill-sh);padding:4px 12px;pointer-events:none;transition:opacity .25s ease}.s3-figure{--s3-fshift: 0px}@media(min-width:1280px){.s3-grid{display:block;position:relative;width:min(1180px,92vw);margin:0 auto;padding:80px 0}.s3-main{width:640px;max-width:100%}.s3-figure{--s3-fw: 720px;--s3-fshift: calc(50vh - 406px) ;position:absolute;top:50%;right:0;width:var(--s3-fw);z-index:3;display:block;min-width:0;pointer-events:none;transform:translateY(calc(-50% + var(--s3-fshift)))}@media(max-height:820px){.s3-figure{--s3-fshift: calc(17vh - 135px) }}.s3-figure .figure-frame{transform:none;justify-content:flex-end}.s3-figure .ghost-work{right:calc(-1*max(4vw,50vw - 590px) - 144px);transform:translateY(-52%)}.s3-figure.reveal{opacity:0;transform:translateY(calc(-50% + var(--s3-fshift) + 30px))}.s3-figure.reveal.in{opacity:1;transform:translateY(calc(-50% + var(--s3-fshift)))}.rowcard{z-index:1}.rowcard:hover{z-index:30;transform:translateY(-3px) scale(1.02)}}.ghost-work,.ghost-talk{font-size:clamp(120px,15vw,220px);z-index:1;color:var(--ghost)}.ghost-work{top:50%;right:-26%;transform:translateY(-52%)}.ghost-talk{bottom:-6%;left:-22%}.s4{padding-bottom:0;align-items:stretch}.s4 .scene-inner{display:flex;flex-direction:column;justify-content:center}.marquee{margin-top:34px;overflow:hidden;background:var(--solid);border-radius:var(--radius);padding:18px 0;box-shadow:var(--shadow)}.marquee-track{display:inline-flex;white-space:nowrap;animation:scrollX 26s linear infinite}.marquee-track span{color:#fff;font-size:21px;font-weight:700;padding:0 20px;display:inline-flex;align-items:center;gap:20px}.marquee-track span i{width:9px;height:9px;border-radius:50%;background:var(--amber)}@keyframes scrollX{to{transform:translate(-50%)}}.timeline{margin-top:38px;position:relative;padding-left:26px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--accent),var(--accent-2),var(--teal));border-radius:2px}.tl-item{position:relative;padding:0 0 22px 12px}.tl-item:before{content:"";position:absolute;left:-26px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:3px solid var(--c0)}.tl-item[data-i="5"]:before{background:var(--c0)}.tl-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;position:relative;z-index:1}.tl-years{font-size:12.5px;font-weight:700;color:var(--accent);letter-spacing:.04em}.tl-org{font-size:16.5px;font-weight:700}.tl-field{font-size:12px;color:#fff;background:var(--solid);border-radius:999px;padding:2px 10px}.tl-desc{font-size:13.5px;color:var(--muted);margin-top:4px;max-width:780px;position:relative;z-index:1;transition:color .2s ease}.tl-item{--c0: var(--accent)}.tl-item[data-i="0"]{--c0: var(--n0)}.tl-item[data-i="1"]{--c0: var(--n1)}.tl-item[data-i="2"]{--c0: var(--n2)}.tl-item[data-i="3"]{--c0: var(--n3)}.tl-item[data-i="4"]{--c0: var(--n4)}.tl-item[data-i="5"]{--c0: var(--n5)}.tl-item:before{transition:transform .25s,box-shadow .25s}.tl-item.sel:before{transform:scale(1.35);box-shadow:0 0 0 5px var(--halo);box-shadow:0 0 0 5px color-mix(in srgb,var(--c0) 22%,transparent)}.tl-card{position:relative;display:block;width:100%;text-align:left;padding:0;border:0;background:transparent;cursor:pointer;font-family:inherit;color:inherit;transition:transform .2s ease}.tl-card:focus{outline:none}.tl-card:hover{transform:translateY(-2px)}.tl-card:hover .tl-desc{color:var(--ink)}.tl-card:before{content:"";position:absolute;z-index:0;pointer-events:none;top:-11px;bottom:-12px;left:-16px;right:var(--gShrink, 0px);border-radius:18px;background:var(--glass-bg);border:1px solid var(--glass-brd);box-shadow:var(--glass-sh);-webkit-backdrop-filter:blur(16px) saturate(1.35);backdrop-filter:blur(16px) saturate(1.35);opacity:0;transition:opacity .22s ease}.tl-card:hover:before,.tl-card:focus-visible:before{opacity:1}.tl-card:focus-visible:before{box-shadow:0 0 0 3px var(--halo),var(--glass-sh)}.tl-pill{position:absolute;z-index:2;top:-15px;right:calc(var(--gShrink, 0px) + 16px);display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--c0);background:var(--pill-bg);border:1px solid var(--pill-brd);border-radius:999px;box-shadow:var(--pill-sh);padding:5px 14px 5px 12px;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(-5px);transition:opacity .18s ease,transform .18s ease}.tl-card:hover .tl-pill,.tl-card:focus-visible .tl-pill{opacity:1;transform:none}.tl-bg{position:absolute;z-index:0;pointer-events:none;inset:-46px -34px -38px -46px;background-image:radial-gradient(430px 320px at 15% 12%,var(--tl-blob-a),transparent 72%),radial-gradient(540px 380px at 74% 44%,var(--tl-blob-b),transparent 72%),radial-gradient(400px 300px at 44% 98%,var(--tl-blob-c),transparent 72%);background-repeat:no-repeat,no-repeat,no-repeat;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 46px,#000 calc(100% - 34px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 46px,#000 calc(100% - 38px),transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 46px,#000 calc(100% - 34px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 46px,#000 calc(100% - 38px),transparent 100%);mask-composite:intersect}.tl-bg:after{content:"";position:absolute;inset:0;background-image:var(--tl-noise);background-repeat:repeat;background-size:var(--tl-noise-size) var(--tl-noise-size);opacity:var(--tl-noise-op)}.dw-overlay{position:fixed;inset:0;z-index:200;background:#02061073;opacity:0;pointer-events:none;transition:opacity .25s ease}:root[data-theme=b] .dw-overlay{background:#3c2d1459}.dw-overlay.show{opacity:1;pointer-events:auto}.drawer{--pc0: var(--n0);--pc1: var(--n1);--pc2: var(--n2);--pc3: var(--n3);--pc4: var(--n4);--pc5: var(--n5);position:fixed;top:0;right:0;bottom:0;z-index:210;width:min(440px,92vw);background:var(--bg);border-left:1px solid var(--line);box-shadow:-24px 0 60px #02061073;transform:translate(105%);transition:transform .32s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column}:root[data-theme=b] .drawer{box-shadow:-24px 0 60px #46341c47}.drawer.show{transform:none}.dw-page{display:none;flex-direction:column;height:100%;min-height:0}.dw-page.on{display:flex;animation:dwIn .28s ease}@keyframes dwIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.dw-head{display:flex;align-items:flex-start;gap:12px;flex:none;padding:26px 26px 16px;border-bottom:1px dashed var(--line)}.dw-head .dw-years{font-size:12px;font-weight:700;color:var(--c0);letter-spacing:.05em;margin-bottom:5px}.dw-head h3{font-size:22px;line-height:1.3;letter-spacing:-.01em}.dw-head .dw-role{font-size:13px;color:var(--muted);margin-top:6px}.dw-close{margin-left:auto;flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;font-size:14px;line-height:1;transition:all .2s}.dw-close:hover{color:var(--ink);border-color:var(--accent)}.dw-body{flex:1;overflow-y:auto;padding:20px 26px 26px;display:grid;gap:18px;align-content:start}.dw-sec-label{font-size:10.5px;font-weight:800;letter-spacing:.18em;color:var(--muted);margin-bottom:8px}.dw-point{position:relative;padding-left:15px;font-size:14px;line-height:1.65;color:var(--ink)}.dw-point+.dw-point{margin-top:7px}.dw-point:before{content:"";position:absolute;left:1px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--c0)}.dw-metric{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow)}.dw-metric .m-num{font-size:30px;font-weight:800;color:var(--c0);letter-spacing:-.02em;line-height:1}.dw-metric .m-lab{font-size:12px;color:var(--muted)}.dw-tags{display:flex;flex-wrap:wrap;gap:7px}.dw-chip{font-size:11.5px;font-weight:700;padding:4px 12px;border-radius:999px;color:var(--c0);background:var(--chip-bg);background:color-mix(in srgb,var(--c0) 15%,transparent);white-space:nowrap}.dw-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.dw-nav button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:9px 12px;cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);transition:all .2s}.dw-nav button:hover{color:var(--ink);border-color:var(--accent)}.wave-div{position:absolute;left:0;right:0;bottom:-2px;z-index:3;pointer-events:none}.wave-div svg{display:block;width:200%;height:64px}.wave-a{animation:waveMove 9s linear infinite}.wave-b{animation:waveMove 6s linear infinite reverse;opacity:.5}.wave-a path{fill:var(--wave-a)}.wave-b path{fill:var(--wave-b)}@keyframes waveMove{to{transform:translate(-50%)}}.s5-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}.s5 .paras{margin-top:16px;display:grid;gap:10px}.s5 .paras p{font-size:15px;color:var(--ink)}.product-strip{margin-top:20px;display:grid;grid-template-areas:"logo name link" "logo body link";grid-template-columns:auto minmax(0,1fr) auto;column-gap:16px;row-gap:6px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px 12px 12px;text-decoration:none;color:inherit;transition:transform .25s ease,box-shadow .25s ease}.product-strip:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong)}.product-strip .ps-logo{grid-area:logo;position:relative;overflow:hidden;width:74px;height:74px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#0f2a5f,#2563eb 60%,#06d6a0);color:#fff;font-size:13px;font-weight:800;letter-spacing:.02em}.product-strip .ps-logo .blob-morph{width:40px;height:40px;right:-12px;top:-12px;opacity:.55}.product-strip .ps-name{grid-area:name;min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.product-strip .ps-name b{font-size:15.5px}.product-strip .ps-sub{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:600}.product-strip .ps-body{grid-area:body;min-width:0;display:flex;flex-direction:column;gap:8px}.product-strip .ps-desc{font-size:12.5px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-strip .ps-stats{display:inline-flex;gap:6px;flex-wrap:wrap}.product-strip .ps-stats span{font-size:10.5px;background:var(--chip-bg);color:var(--accent);padding:2px 9px;border-radius:999px;font-weight:600;white-space:nowrap}.product-strip .ps-link{grid-area:link;align-self:center;font-size:13px;font-weight:700;color:var(--accent);white-space:nowrap}.product-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;text-decoration:none;color:inherit;display:block;transition:transform .25s,box-shadow .25s}.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-strong)}.product-cover{height:180px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#0f2a5f,#2563eb 60%,#06d6a0)}.product-cover .mp-logo{font-size:40px;font-weight:800;color:#fff;letter-spacing:.02em}.product-cover .mp-sub{position:absolute;bottom:14px;font-size:12px;color:#fffc;letter-spacing:.18em}.blob-morph{width:92px;height:92px;position:absolute;right:-20px;top:-20px;background:linear-gradient(135deg,var(--coral),var(--amber));opacity:.85;animation:morph 8s ease-in-out infinite}@keyframes morph{0%,to{border-radius:42% 58% 60% 40%/45% 42% 58% 55%;transform:rotate(0)}33%{border-radius:60% 40% 35% 65%/55% 60% 40% 45%;transform:rotate(10deg)}66%{border-radius:35% 65% 55% 45%/40% 35% 65% 60%;transform:rotate(-8deg)}}.product-body{padding:22px 24px 24px}.product-body h3{font-size:19px}.product-body p{font-size:13.5px;color:var(--muted);margin-top:8px}.product-body .pstats{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.product-body .pstats span{font-size:11.5px;background:var(--chip-bg);color:var(--accent);padding:3px 11px;border-radius:999px;font-weight:600}.product-body .plink{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:700;color:var(--accent)}.s6{text-align:center}.s6-grid{grid-template-columns:1fr 2fr;gap:clamp(30px,4.5vw,72px)}.s6 .mascot-zone{position:absolute;right:4vw;bottom:100px;z-index:2}.s6 .eyebrow:before{display:none}.s6 .sub{margin-top:14px;color:var(--muted);font-size:15px}.cta-row{display:flex;gap:18px;justify-content:center;margin-top:40px;flex-wrap:wrap}.magnet-stage{display:inline-block}.magnet{border:0;cursor:pointer;font-family:var(--font);font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));padding:17px 44px;border-radius:999px;box-shadow:var(--btn-shadow);white-space:nowrap;overflow:hidden;transition:transform .25s cubic-bezier(.22,1.4,.4,1),box-shadow .25s,width .3s cubic-bezier(.22,1,.36,1);will-change:transform}.magnet .btn-label{display:inline-block;transition:opacity .16s ease,transform .16s ease}.magnet .btn-label.out{opacity:0;transform:translateY(-7px)}.magnet .btn-label.enter{opacity:0;transform:translateY(10px)}.magnet.ghost-btn{background:var(--solid);box-shadow:var(--shadow)}.magnet:hover{box-shadow:var(--btn-shadow-strong)}.email-hint{margin-top:20px;font-size:13.5px;color:var(--muted);letter-spacing:.06em}.s6 footer{position:absolute;bottom:88px;left:0;right:0;font-size:12px;color:var(--muted);text-align:center}#confetti{position:fixed;inset:0;z-index:90;pointer-events:none}.progress{position:fixed;bottom:0;left:0;right:0;z-index:60;display:flex;justify-content:center;gap:0;padding:10px 20px 14px;background:var(--progress-grad)}.progress .p-item{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;cursor:pointer;font-family:var(--font);padding:2px 26px;position:relative;color:var(--muted)}.progress .p-item:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--pdot);transition:all .3s}.progress .p-item .p-label{font-size:12px;font-weight:600;transition:color .3s}.progress .p-item .p-en{font-size:10px;letter-spacing:.08em;opacity:.7}.progress .p-item.active:before{background:var(--accent);transform:scale(1.35);box-shadow:0 0 0 5px var(--halo)}.progress .p-item.active .p-label{color:var(--ink)}.progress .p-item:hover .p-label{color:var(--accent)}@media(max-width:1020px){.s1-grid{grid-template-columns:1fr 1fr}.mascot-zone{order:-1}.mascot{width:min(220px,40vw)}.mascot.photo{width:min(240px,44vw)}.counters{grid-template-columns:repeat(2,1fr)}.cards,.s3-grid,.s5-grid,.s6-grid{grid-template-columns:1fr}.s6-grid .s6-figure{order:2}.ghost{font-size:180px}}@media(max-width:640px){.s1-grid{grid-template-columns:1fr}.scene-inner{padding:96px 0 110px}.progress .p-item{padding:2px 10px}.progress .p-item .p-en,.top .welcome{display:none}.timeline{padding-left:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}.print-doc{display:none}@media print{@page{size:A4;margin:12mm 13mm}html,body{height:auto;overflow:visible;background:#fff}.snap,.top,.progress,.bg-blobs,#confetti,.drawer,.dw-overlay{display:none!important}.print-doc{display:block;color:#111;font-size:10.5pt;line-height:1.55}.pd-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2.5pt solid #111;padding-bottom:8pt}.pd-name{font-size:22pt;font-weight:800;letter-spacing:.02em}.pd-headline{font-size:11pt;color:#333;margin-top:2pt}.pd-contact{font-size:9.5pt;color:#333;text-align:right;line-height:1.6}.pd-sec{margin-top:11pt}.pd-sec h2{font-size:12pt;letter-spacing:.12em;border-left:3pt solid #2563eb;padding-left:7pt;margin-bottom:6pt}.pd-summary{text-align:justify;color:#222}.pd-job{margin-bottom:8pt}.pd-job .pd-job-head{display:flex;justify-content:space-between;font-weight:700;font-size:10.5pt}.pd-job .pd-years{font-weight:400;color:#555;font-size:9.5pt}.pd-job ul{margin:2pt 0 0 12pt}.pd-job li{margin-bottom:1.5pt}.pd-proj{margin-bottom:3pt}.pd-proj b{font-weight:700}.pd-proj span{color:#444}.pd-skills{color:#222}.pd-tip{position:fixed}}
