:root{color-scheme:light;--bg: #f7f7f4;--bg-soft: #ffffff;--ink: #08090b;--muted: #6f737c;--line: rgba(8, 9, 11, .12);--line-strong: rgba(78, 93, 130, .24);--silver: #d7dbe2;--tech: #7b86ff;--tech-soft: rgba(123, 134, 255, .16);--glass: rgba(255, 255, 255, .68);--shadow: 0 24px 80px rgba(23, 29, 45, .08);--radius: 8px;--max-width: 1700px;--pad-x: clamp(24px, 4vw, 72px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;min-width:320px;color:var(--ink);background:radial-gradient(circle at 85% 12%,rgba(123,134,255,.12),transparent 32vw),linear-gradient(180deg,#fbfbf8 0%,var(--bg) 46%,#eef1f8 100%)}body::selection{color:#fff;background:var(--ink)}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}button,input,textarea{font:inherit}.page-shell{width:min(calc(100% - var(--pad-x) * 2),var(--max-width));margin-inline:auto}.section-pad{padding-block:clamp(96px,12vw,180px)}.eyebrow{margin:0 0 18px;color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.site-nav{position:fixed;z-index:20;top:18px;left:50%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(calc(100% - 36px),var(--max-width));min-height:62px;padding:10px 14px;border:1px solid rgba(255,255,255,.45);border-radius:var(--radius);background:#ffffff8f;box-shadow:0 18px 60px #0000000f;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transform:translate(-50%)}.nav-brand,.nav-action,.nav-links{display:flex;align-items:center}.nav-brand{gap:12px;color:#111318;font-size:.92rem;font-weight:700}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font-size:.78rem}.nav-links{justify-content:center;gap:clamp(18px,2.4vw,36px);color:#08090ba3;font-size:.86rem}.nav-links a,.socials a{transition:color .18s ease,opacity .18s ease}.nav-links a:hover,.socials a:hover{color:var(--ink)}.nav-action{justify-self:end;gap:8px;padding:12px 14px;border:1px solid rgba(8,9,11,.14);border-radius:var(--radius);background:#ffffffbd;font-size:.84rem;font-weight:700;transition:transform .18s ease,border-color .18s ease,background .18s ease}.nav-action:hover,.floating-contact:hover,.contact-card button:hover{border-color:#7b86ff73;background:#fff;transform:translateY(-2px)}.hero-section{position:relative;display:grid;min-height:100vh;overflow:hidden;place-items:center;isolation:isolate}.hero-media{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;overflow:hidden;background:#e9ebef}.hero-media img,.hero-media video{width:100%;height:112%;object-fit:cover;opacity:.72;transform:translateY(var(--hero-parallax, 0px))}.hero-motion-layer{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 22% 24%,rgba(255,255,255,.92),transparent 28%),radial-gradient(circle at 74% 38%,rgba(123,134,255,.2),transparent 26%),linear-gradient(135deg,#fff3,#08090b29);animation:softDrift 16s ease-in-out infinite alternate}.hero-noise{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#f7f7f433,#f7f7f4b8),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.hero-content{padding-top:88px;text-align:center}.hero-kicker{margin:0 0 22px;color:#08090b9e;font-size:.8rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.hero-content h1,.contact-heading h2{max-width:1180px;margin:0 auto;font-size:clamp(4.5rem,10vw,11.2rem);font-weight:650;letter-spacing:-.045em;line-height:.9}.hero-content p:last-child{margin:28px 0 0;color:#08090ba8;font-size:clamp(1rem,1.6vw,1.35rem)}.floating-contact,.scroll-hint{position:absolute;z-index:3;display:inline-flex;align-items:center;border-radius:var(--radius)}.floating-contact{right:var(--pad-x);bottom:58px;gap:10px;padding:16px 18px;border:1px solid rgba(8,9,11,.13);background:#ffffff94;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-weight:750;transition:transform .18s ease,border-color .18s ease,background .18s ease}.scroll-hint{left:var(--pad-x);bottom:64px;gap:10px;color:#08090b94;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.scroll-hint svg{animation:nudgeDown 1.8s ease-in-out infinite}.section-header{max-width:980px;margin-bottom:clamp(44px,6vw,82px)}.section-header h2{margin:0;font-size:clamp(2.7rem,5.5vw,6rem);font-weight:640;letter-spacing:-.045em;line-height:.96}.section-header p:last-child{max-width:760px;margin:24px 0 0;color:var(--muted);font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.75}.profile-grid{display:grid;grid-template-columns:minmax(320px,.78fr) 1.22fr;gap:clamp(24px,3vw,46px);align-items:stretch}.portrait-card,.profile-panel,.project-card,.skill-card,.contact-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.portrait-card{position:relative;min-height:620px;overflow:hidden}.portrait-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.portrait-card:hover img{transform:scale(1.025)}.portrait-caption{position:absolute;right:22px;bottom:22px;left:22px;display:flex;justify-content:space-between;gap:20px;padding:18px;border:1px solid rgba(255,255,255,.52);border-radius:var(--radius);background:#ffffffa8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#08090bad;font-size:.9rem}.portrait-caption strong{color:var(--ink)}.profile-panel{display:grid;grid-template-rows:auto auto 1fr;gap:clamp(24px,3vw,40px);padding:clamp(28px,4vw,56px)}.profile-copy h3{margin:0 0 18px;font-size:clamp(2.4rem,4.4vw,5.4rem);font-weight:640;letter-spacing:-.045em}.profile-copy p:last-child{max-width:780px;margin:0;color:var(--muted);font-size:1.06rem;line-height:1.8}.contact-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.contact-item,.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff8a}.contact-item{display:flex;gap:14px;align-items:flex-start;padding:18px}.contact-item svg{color:var(--tech)}.contact-item span,.stat-card span,.project-info span{display:block;color:var(--muted);font-size:.8rem}.contact-item strong{display:block;margin-top:7px;font-size:.96rem}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-self:end}.stat-card{padding:22px}.stat-card strong{display:block;margin-bottom:10px;font-size:clamp(2rem,3.4vw,4.3rem);font-weight:620;letter-spacing:-.055em}.project-list{display:grid;gap:clamp(22px,3vw,44px)}.project-card{overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.project-card a{display:grid;grid-template-columns:1.15fr .85fr;min-height:520px}.project-card:hover{border-color:var(--line-strong);box-shadow:0 28px 90px #2630541f;transform:translateY(-6px)}.project-visual{overflow:hidden;background:#e7e9ee}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.project-card:hover .project-visual img{transform:scale(1.035)}.project-info{display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:clamp(28px,4vw,58px)}.project-info h3{max-width:620px;margin:16px 0 18px;font-size:clamp(2.4rem,4vw,5.6rem);font-weight:620;letter-spacing:-.05em;line-height:.98}.project-info p{max-width:560px;margin:0;color:var(--muted);line-height:1.75}.case-link,.route-note,.back-link,.text-link,.email-link{display:inline-flex;gap:9px;align-items:center;font-weight:750}.case-link{color:#08090bd1}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.skill-card{min-height:300px;padding:clamp(24px,3vw,38px);transition:transform .2s ease,border-color .2s ease,background .2s ease}.skill-card:hover{border-color:var(--line-strong);background:#ffffffd1;transform:translateY(-5px)}.skill-symbol{display:inline-grid;width:46px;height:46px;place-items:center;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#fff,var(--tech-soft));color:#08090bbd;font-size:.82rem;font-weight:800}.skill-card h3{margin:82px 0 16px;font-size:clamp(1.4rem,2.1vw,2.15rem);font-weight:650;letter-spacing:-.03em}.skill-card p{margin:0;color:var(--muted);line-height:1.7}.contact-section{min-height:100vh;padding-block:clamp(96px,11vw,170px) 34px;background:radial-gradient(circle at 76% 10%,rgba(123,134,255,.16),transparent 34vw),linear-gradient(180deg,#f7f7f400,#fff 34%,#eef1f7)}.contact-layout{display:grid;min-height:calc(100vh - 204px);grid-template-columns:1.08fr .92fr;gap:clamp(26px,4vw,70px);align-content:center}.contact-heading h2{margin-inline:0;font-size:clamp(4rem,7.7vw,9.8rem)}.contact-heading p:last-child{max-width:760px;margin-top:28px;color:var(--muted);font-size:1.08rem;line-height:1.78}.contact-card{align-self:center;padding:clamp(24px,3vw,36px)}.contact-card form{display:grid;gap:18px}.contact-card label{display:grid;gap:10px;color:#08090bb8;font-size:.82rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}.contact-card input,.contact-card textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffad;color:var(--ink);outline:none;padding:16px;resize:vertical;transition:border-color .16s ease,background .16s ease}.contact-card input:focus,.contact-card textarea:focus{border-color:#7b86ff7a;background:#fff}.contact-card button{display:inline-flex;justify-content:center;gap:10px;align-items:center;min-height:54px;border:1px solid rgba(8,9,11,.16);border-radius:var(--radius);background:var(--ink);color:#fff;cursor:pointer;font-weight:780;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.contact-card button:hover{color:var(--ink)}.footer-meta{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:22px;padding-top:clamp(44px,6vw,84px);color:#08090b9e;font-size:.9rem}.email-link{color:var(--ink)}.socials{display:flex;gap:22px}.route-shell{width:min(calc(100% - var(--pad-x) * 2),1180px);min-height:100vh;margin-inline:auto;padding-block:140px 80px}.route-shell h1{max-width:920px;margin:0;font-size:clamp(3.6rem,7vw,8.4rem);font-weight:640;letter-spacing:-.05em;line-height:.94}.route-lead{max-width:720px;margin:28px 0 44px;color:var(--muted);font-size:1.08rem;line-height:1.75}.project-detail img{width:100%;max-height:620px;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius)}.back-link{margin-bottom:56px;color:#08090ba8}.route-note{margin-top:24px;color:#08090bb8}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--reveal-delay)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes softDrift{0%{transform:translate3d(-1.2%,-1%,0) scale(1)}to{transform:translate3d(1.4%,1%,0) scale(1.04)}}@keyframes nudgeDown{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1024px){.site-nav{grid-template-columns:1fr auto}.nav-links{display:none}.profile-grid,.project-card a,.contact-layout{grid-template-columns:1fr}.portrait-card{min-height:540px}.project-card a{min-height:auto}.project-visual{min-height:420px}.skills-grid,.contact-list{grid-template-columns:repeat(2,1fr)}.footer-meta{flex-wrap:wrap}}@media(max-width:720px){:root{--pad-x: 20px}.site-nav{top:12px;width:calc(100% - 24px)}.nav-brand span:last-child,.nav-action{display:none}.hero-content h1,.contact-heading h2{font-size:clamp(3.4rem,18vw,5.2rem)}.floating-contact{right:20px;bottom:28px}.scroll-hint{left:20px;bottom:34px}.contact-list,.stats-grid,.skills-grid{grid-template-columns:1fr}.portrait-card{min-height:440px}.portrait-caption,.footer-meta,.socials{align-items:flex-start;flex-direction:column}.project-visual{min-height:320px}.skill-card{min-height:240px}.skill-card h3{margin-top:52px}}
