.flowing-menu-wrap{width:100%;min-height:420px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#ffffff0a,#ffffff05),#070c0a9e;box-shadow:0 24px 80px #00000038}.flowing-menu{display:flex;flex-direction:column;min-height:420px;margin:0;padding:0}.flowing-menu__item{position:relative;flex:1;overflow:hidden;border-top:1px solid}.flowing-menu__item:first-child{border-top:none}.flowing-menu__item-link{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;height:100%;padding:0 24px;font-size:clamp(28px,3.6vw,54px);font-weight:900;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap}.flowing-menu__item-link:after{content:"OPEN";color:#fff6;font-size:12px;font-weight:900;letter-spacing:.28em}.flowing-marquee{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;transform:translate3d(0,101%,0)}.flowing-marquee__inner-wrap{width:100%;height:100%;overflow:hidden}.flowing-marquee__inner{position:relative;display:flex;align-items:center;width:fit-content;height:100%;will-change:transform}.flowing-marquee__part{display:flex;align-items:center;flex-shrink:0}.flowing-marquee__part span{padding:0 1vw;font-size:clamp(28px,3.6vw,54px);font-weight:900;letter-spacing:-.03em;text-transform:uppercase;white-space:nowrap}.flowing-marquee__img{width:92px;height:92px;margin:0 2vw;border-radius:22px;background-size:cover;background-position:center;border:1px solid rgba(7,16,11,.18);box-shadow:0 14px 28px #0000002e}@media(max-width:720px){.flowing-menu-wrap,.flowing-menu{min-height:360px}.flowing-menu__item-link{padding:0 16px}.flowing-menu__item-link:after{display:none}.flowing-marquee__img{width:76px;height:76px;border-radius:18px}}:root{color-scheme:dark;--bg: #06110d;--panel: rgba(10, 18, 16, .76);--panel-solid: #09130f;--ink: #f6f7f4;--muted: #afb8b0;--line: rgba(255, 255, 255, .12);--green: #83f4aa;--blue: #7c9dff;--gold: #ffcd6b;--red: #ff6b8a;--shadow: 0 30px 90px rgba(0, 0, 0, .38);--sans: "Avenir Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--serif: "Iowan Old Style", "Songti SC", "STSong", serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);font-family:var(--sans);background:var(--bg);overflow-x:hidden}a{color:inherit;text-decoration:none}.page-shell{position:relative;min-height:100vh;overflow:hidden}.background-grid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(circle at 50% 18%,rgba(131,244,170,.22),transparent 24%),radial-gradient(circle at 50% 34%,rgba(84,168,112,.22),transparent 34%),linear-gradient(180deg,#09120f24,#050908eb),#050907}.background-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 22%,rgba(131,244,170,.16),transparent 18%),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px;opacity:.42}.cursor-glow{position:fixed;inset:auto;z-index:-1;width:58vw;height:58vw;left:20vw;top:-10vw;border-radius:999px;background:radial-gradient(circle,rgba(131,244,170,.16),transparent 62%);filter:blur(18px);pointer-events:none}.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px clamp(18px,4vw,58px);border-bottom:1px solid rgba(255,255,255,.08);background:#0408077a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:baseline;gap:12px;font-weight:900}.brand span{font-size:22px;letter-spacing:.02em}.brand small{color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px;color:var(--muted);font-size:13px}.nav a{padding:7px 0;border-bottom:1px solid transparent}.nav a:hover{color:var(--ink);border-bottom-color:var(--green)}.hero-section{min-height:calc(100vh - 70px);padding:clamp(18px,3vw,32px) clamp(18px,5vw,72px) clamp(30px,5vw,48px)}.hero-kicker{margin:0 0 20px;color:var(--green);font-size:13px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.hero-title{margin:0;max-width:100%;font-family:var(--serif);font-size:clamp(34px,13cqi,92px);line-height:1;letter-spacing:0}.line-wrap{display:block;overflow:hidden}.line{display:inline-block}.accent-line{color:var(--green)}.hero-copy{max-width:560px;margin:18px 0 0;color:var(--muted);font-size:15px;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.action{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid rgba(255,255,255,.22);background:#ffffff0f;color:var(--ink);font-size:14px;font-weight:800}.action.primary{border-color:#56f0b3b3;background:var(--green);color:#06100c}.action:hover{transform:translateY(-1px)}.hero-stage{position:relative;min-height:calc(100vh - 120px);border-radius:28px;overflow:hidden;background:radial-gradient(circle at 50% 14%,rgba(143,243,170,.18),transparent 20%),radial-gradient(circle at 50% 42%,rgba(31,58,42,.44),transparent 42%),linear-gradient(180deg,#0b1511b8,#040706e6);box-shadow:inset 0 1px #ffffff0d}.hero-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 22%,rgba(163,255,194,.08),transparent 16%),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px;opacity:.4;pointer-events:none}.hero-stage-copy{position:absolute;left:clamp(20px,4vw,42px);bottom:clamp(24px,4vw,44px);z-index:8;width:min(44vw,560px);max-width:calc(100% - 84px);padding:24px 26px 22px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#080c0a29,#080c0a9e);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);container-type:inline-size}.hero-meta{position:absolute;right:clamp(20px,4vw,40px);bottom:clamp(22px,4vw,40px);z-index:8;display:grid;gap:8px;justify-items:end}.hero-meta span{display:inline-flex;width:fit-content;padding:8px 12px;border:1px solid rgba(255,255,255,.09);background:#080c0a85;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.02em}.lanyard-wrapper{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;filter:drop-shadow(0 28px 44px rgba(0,0,0,.28));transform:translate3d(12%,0,0);transform-origin:center}.lanyard-wrapper:active{cursor:grabbing}.lanyard-wrapper canvas{width:100%;height:100%;display:block}@media(max-width:900px){.lanyard-wrapper{transform:translate3d(4%,0,0)}}.section{padding:92px clamp(18px,5vw,72px)}.section-head{display:grid;grid-template-columns:minmax(0,.46fr) minmax(0,1fr);gap:36px;align-items:end;margin-bottom:32px}.section-head p{margin:0 0 8px;color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.section-head h2{margin:0;font-family:var(--serif);font-size:clamp(34px,4.8vw,68px);line-height:1.02;letter-spacing:0}.skill-marquee{overflow:hidden;border-block:1px solid var(--line);margin-bottom:24px}.skill-track{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0}.skill-track span{display:inline-flex;padding:7px 12px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--ink);font-size:13px;font-weight:800}.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tilt-card{transform-style:preserve-3d;will-change:transform}.capability-card{min-height:230px;border:1px solid var(--line);background:var(--panel);padding:24px;box-shadow:0 18px 60px #0000002e}.capability-card span,.project-index{color:var(--green);font-size:13px;font-weight:950}.capability-card h3{margin:18px 0 12px;font-size:24px}.capability-card p{margin:0;color:var(--muted);line-height:1.8}.project-section{display:grid;grid-template-columns:280px minmax(0,1fr);gap:30px;align-items:start}.overview-section{padding-top:56px}.overview-section .section-head h2{text-align:right}.overview-note{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a}.overview-note span{color:var(--green);font-size:13px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.overview-note p{margin:0;color:var(--muted);font-size:14px;line-height:1.7;text-align:right}.project-sticky{position:sticky;top:92px}.project-sticky p{margin:0 0 8px;color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.project-sticky h2{margin:0 0 22px;font-family:var(--serif);font-size:48px;line-height:1;letter-spacing:0}.project-sticky strong{color:var(--green);font-size:15px}.project-list{display:grid;gap:28px}.project-panel{--glow-x: 50%;--glow-y: 50%;--glow-opacity: 0;position:relative;display:grid;grid-template-columns:70px minmax(0,1fr);gap:24px;padding:clamp(22px,3vw,34px);border:1px solid var(--line);background:#ffffff14;box-shadow:var(--shadow);overflow:hidden}.project-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(86,240,179,.12),transparent 45%);opacity:.8;pointer-events:none}.project-panel:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:radial-gradient(220px circle at var(--glow-x) var(--glow-y),rgba(131,244,170,.22),rgba(124,157,255,.12) 34%,transparent 68%);opacity:var(--glow-opacity);transition:opacity .28s ease;pointer-events:none;z-index:0}.project-panel>*{position:relative}.project-label{margin:0 0 8px;color:var(--green);font-size:13px;font-weight:900}.project-panel h3{margin:0;font-size:clamp(27px,3vw,42px);line-height:1.08}.project-stack{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.project-summary{margin:18px 0 0;color:var(--ink);font-weight:750;line-height:1.85}.project-panel ul{margin:14px 0 0;padding-left:18px;color:var(--muted)}.project-panel li{margin-top:9px;line-height:1.75}.project-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.project-links a{border:1px solid rgba(86,240,179,.36);padding:8px 12px;color:var(--green);font-size:13px;font-weight:850}.lab-section .section-head h2{text-align:right}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.lab-card{min-height:190px;display:grid;align-content:start;gap:12px;border:1px solid var(--line);background:#ffffff12;padding:24px}.lab-card span{color:var(--gold);font-size:12px;font-weight:900}.lab-card h3{margin:0;font-size:24px}.lab-card p{margin:0;color:var(--muted);line-height:1.75}.contact-section{margin:40px clamp(18px,5vw,72px) 64px;padding:clamp(26px,5vw,56px);border:1px solid rgba(86,240,179,.26);background:linear-gradient(135deg,#56f0b326,#75a7ff14)}.contact-section p{margin:0 0 8px;color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.16em}.contact-section h2{max-width:980px;margin:0;font-family:var(--serif);font-size:clamp(32px,5vw,70px);line-height:1.04;letter-spacing:0}.contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:28px}.contact-grid a,.contact-grid span{min-height:70px;display:flex;align-items:center;border-top:1px solid rgba(255,255,255,.18);color:var(--ink);overflow-wrap:anywhere}.reveal{will-change:transform,opacity}@media(max-width:980px){.hero-section,.project-section,.section-head,.contact-grid{grid-template-columns:1fr}.hero-stage{min-height:820px}.hero-stage-copy{max-width:calc(100% - 36px)}.project-sticky{position:static}.capability-grid{grid-template-columns:1fr}.overview-note{display:grid;justify-items:start}.overview-note p{text-align:left}}@media(max-width:680px){.topbar{position:static;align-items:flex-start;flex-direction:column}.nav{justify-content:flex-start}.hero-section{padding-top:34px}.hero-stage{min-height:720px}.hero-stage-copy{left:18px;right:18px;bottom:18px;width:auto;max-width:none;padding:18px}.hero-meta{left:18px;right:18px;bottom:182px;justify-items:start}.hero-copy{max-width:none}.hero-title{font-size:clamp(26px,12vw,48px);line-height:1.04}.lab-grid,.project-panel{grid-template-columns:1fr}.project-index{display:none}}
