@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/portfolio-font-00.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/portfolio-font-01.ttf) format('truetype');
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/portfolio-font-02.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/portfolio-font-03.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/portfolio-font-04.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/portfolio-font-05.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/portfolio-font-06.ttf) format('truetype');
}

:root{--bg:#140e20;--panel:#21172e;--accent:#c4a7ff;--text:#f0edf3;--muted:#aea8b6;--line:#ffffff20;--body:'DM Sans','Microsoft YaHei',sans-serif;--display:'Barlow Condensed','Arial Narrow','Microsoft YaHei',sans-serif;--max:1320px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--body)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}.section-wrap{max-width:var(--max);padding-left:64px;padding-right:64px;margin:auto}.eyebrow{font-size:12px;line-height:1.5;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}.section-number{color:#8b8395;margin-right:22px;font-weight:400}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:45px}.section-heading h2,.skills h2,.resume h2{font-family:var(--display);font-size:clamp(40px,4.2vw,64px);line-height:1.08;font-weight:600;letter-spacing:-.015em;margin-top:15px}.section-aside{font-size:12px;letter-spacing:.13em;color:var(--muted)}.header{height:98px;padding:0 4%;position:absolute;left:0;top:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);transition:background .3s,height .3s}.header.scrolled{position:fixed;background:#140e20f5;backdrop-filter:blur(16px);height:78px}.wordmark{font-size:27px;letter-spacing:-1.3px;font-weight:700;line-height:1}.wordmark span{font-weight:400}.wordmark i{font-style:normal;color:var(--accent)}nav{display:flex;gap:34px;align-items:center}.nav-link{font-size:14px;position:relative;line-height:40px;color:#dcd9e0;transition:color .2s}.nav-link:after{position:absolute;content:'';height:2px;left:0;right:100%;bottom:0;background:var(--accent);transition:right .25s}.nav-link:hover,.nav-link.active{color:var(--accent)}.nav-link:hover:after,.nav-link.active:after{right:0}.header-actions{display:flex;align-items:center;gap:26px}.language{padding:8px 0;background:none;font-size:13px;white-space:nowrap}.language span{color:#aca6b3}.nav-resume{font-size:13px;text-transform:uppercase;letter-spacing:.08em;border:1px solid #ffffff70;padding:9px 19px;transition:.25s}.nav-resume:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.menu-toggle{display:none;background:none;width:36px;height:40px}.menu-toggle span{display:block;height:1px;background:var(--text);margin:7px 0}.hero{height:100svh;min-height:700px;max-height:1150px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}.hero-background{position:absolute;inset:-3%;background:center 48%/cover url('assets/ember-gameplay-01.webp');transform:scale(1.03);will-change:transform;animation:hero-in 1.8s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0d071594 0%,#12091c6b 30%,#0d091380 65%,#140e20 100%),linear-gradient(90deg,#0f081759,transparent,#0f081750)}.hero-grid{position:absolute;inset:98px 7% 100px;border-left:1px solid #ffffff09;border-right:1px solid #ffffff09;pointer-events:none}.hero-content{position:relative;z-index:2;width:100%;padding:105px 80px 155px;animation:content-in 1s .15s both}.hero-eyebrow{display:flex;align-items:center;justify-content:center;gap:10px;color:#ded5e8;font-size:12px;letter-spacing:.23em}.hero-eyebrow>span:first-child{height:5px;width:5px;background:var(--accent);border-radius:50%}h1{font:800 clamp(85px,11.9vw,185px)/1.04 var(--display);letter-spacing:-.025em;margin-top:14px;text-shadow:0 10px 70px #0e081530}.name-period{color:var(--accent)}.hero-discipline{display:flex;align-items:center;justify-content:center;gap:17px;font-size:clamp(24px,2.7vw,40px);font-weight:600;letter-spacing:-.035em;margin-top:15px;line-height:1.3}.rotating-word{color:var(--accent);transition:opacity .25s,transform .25s}.rotating-word.changing{opacity:0;transform:translateY(8px)}.discipline-divider{height:32px;width:2px;background:#a79db4}.hero-intro{font-size:16px;color:#c8c3ce;margin-top:20px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:16px 25px;font-size:14px;font-weight:600;transition:background .25s,transform .25s}.button.primary{background:var(--accent);color:#181022;margin-top:32px}.button.primary:hover{background:#b991ea;transform:translateY(-3px)}.button>span:last-child{font-size:20px;line-height:1}.social-rail{position:absolute;right:3.8%;top:43%;display:flex;flex-direction:column;gap:14px;z-index:3}.social-rail a{width:39px;height:39px;border:1px solid #dfd7e955;border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s,transform .25s}.social-rail a:hover{background:var(--accent);color:var(--bg);transform:translateX(-4px)}.social-rail svg{width:20px;height:20px}.hero-footer{position:absolute;bottom:0;width:100%;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;z-index:3;text-align:left}.scroll-cue{display:flex;align-items:center;gap:15px;font-size:12px;letter-spacing:.15em;color:#c6c0ce}.mouse{width:23px;height:36px;border:1px solid #c0b8c980;border-radius:20px;display:block;position:relative}.mouse i{width:2px;height:7px;background:var(--accent);position:absolute;top:7px;left:9px;animation:scroll-mark 2s infinite}.hero-feature{display:flex;align-items:center;gap:20px;background:#1c142590;border:1px solid #a091b235;padding:12px 25px 12px 12px;text-align:left;min-width:310px;transition:background .2s}.hero-feature:hover{background:#36254a}.hero-feature img{width:78px;height:58px;object-fit:cover}.hero-feature small{display:block;font-size:12px;letter-spacing:.1em;color:#c5c0cc}.hero-feature strong{font-family:var(--display);font-weight:600;font-size:27px;display:flex;justify-content:space-between;gap:80px}.hero-feature strong span{font-family:var(--body);font-size:22px;color:var(--accent)}.hero-index{font-size:14px;color:var(--accent);letter-spacing:.12em}.hero-index span{font-size:12px;color:#c2bdc9}.intro{padding-top:115px;padding-bottom:120px;display:grid;grid-template-columns:1fr 1.45fr;gap:80px;border-bottom:1px solid var(--line)}.intro-label{display:flex;gap:0;align-items:flex-start;padding-top:10px}.intro-label .eyebrow{max-width:165px}.intro h2{font-family:var(--display);font-size:clamp(42px,4vw,60px);line-height:1.06;font-weight:600;letter-spacing:-.015em;max-width:620px}.intro p:not(.eyebrow){color:var(--muted);margin-top:25px;max-width:560px}.text-link{display:inline-flex;align-items:center;gap:35px;color:var(--accent);font-size:14px;margin-top:22px;border-bottom:1px solid #c4a7ff50;padding-bottom:6px}.text-link:hover{color:white}.work{padding-top:110px;padding-bottom:100px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:58px 32px}.project-card{display:block;background:none;padding:0;text-align:left;min-width:0;width:100%;color:var(--text)}.project-card.featured{grid-column:1/-1;display:grid;grid-template-columns:1.75fr 1fr;background:#1f1a25;gap:0;border:1px solid var(--line)}.project-media{height:320px;overflow:hidden;position:relative;background:#25202b;border:1px solid #ffffff0c}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;filter:saturate(.85)}.project-card:hover .project-media img{transform:scale(1.045);filter:saturate(1.05)}.project-card:focus-visible .project-media img{transform:scale(1.02)}.project-card.featured .project-media{height:440px;border:0}.project-media .project-counter{position:absolute;left:18px;top:15px;font-size:12px;font-family:var(--body);color:#fff;background:#1a1421cc;backdrop-filter:blur(7px);padding:5px 10px}.project-media .view-badge{position:absolute;right:20px;bottom:20px;display:flex;gap:14px;align-items:center;padding:11px 16px;background:var(--accent);color:#181022;font-size:12px;opacity:0;transform:translateY(8px);transition:.3s}.project-card:hover .view-badge,.project-card:focus-visible .view-badge{opacity:1;transform:translateY(0)}.project-info{padding-top:19px}.project-info .project-meta{font-size:12px;color:var(--accent);letter-spacing:.09em;text-transform:uppercase}.project-info h3{font-family:var(--display);font-size:35px;line-height:1.15;font-weight:600;margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:15px}.project-info h3 span{font:25px var(--body);color:var(--accent);transition:transform .25s}.project-card:hover h3 span{transform:translate(3px,-3px)}.project-info>p{font-size:14px;color:var(--muted);margin-top:8px}.project-card.featured .project-info{padding:38px;display:flex;flex-direction:column;justify-content:center}.project-card.featured h3{font-size:70px}.project-card.featured .project-info>p{font-size:16px;margin-top:14px}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.project-tags span{font-size:12px;border:1px solid #aaa1b52e;padding:4px 9px;color:#c8c2d0}.featured-label{color:var(--accent);font-size:12px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:35px}.missing-media{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;gap:18px;border:1px dashed #74668670;background:linear-gradient(135deg,#231e2a10,#0e0b1290);color:#b2aabb}.missing-media strong{font-family:var(--display);font-size:62px;color:#b0a7bc40;font-weight:600}.missing-media small{font-size:12px;letter-spacing:.1em}.experiments{padding-top:90px;padding-bottom:115px;border-top:1px solid var(--line)}.lab-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.lab-card{background:transparent;padding:0;text-align:left}.lab-card .project-media{height:245px}.lab-card h3{font:500 24px var(--display);margin-top:16px;display:flex;justify-content:space-between}.lab-card h3 span{font-family:var(--body);color:var(--accent);font-size:18px}.lab-card p{font-size:13px;color:var(--muted);margin-top:8px}.lab-card:hover img{transform:scale(1.04)}.art-row{margin-top:45px;padding-top:28px;border-top:1px solid var(--line)}.art-link{width:100%;background:none;text-align:left;display:flex;align-items:center;gap:24px;padding:0}.art-link img{width:100px;height:70px;object-fit:cover;image-rendering:pixelated}.art-link strong{font-family:var(--display);font-size:27px;font-weight:500}.art-link p{font-size:13px;color:var(--muted)}.art-link>span:last-child{margin-left:auto;color:var(--accent);font-size:27px}.about{display:grid;grid-template-columns:1fr 1.5fr;gap:100px;padding-top:110px;padding-bottom:100px;border-top:1px solid var(--line)}.portrait-placeholder{position:relative;min-height:470px;background:#1d1823;display:grid;place-items:center;align-self:start;aspect-ratio:4/5}.portrait-monogram{font:600 150px var(--display);color:#4d405c44}.portrait-caption{position:absolute;bottom:30px;font-size:12px;letter-spacing:.14em;color:#b7b0bf}.corner{position:absolute;width:18px;height:18px;border-color:#9d91ac50;border-style:solid}.tl{left:20px;top:20px;border-width:1px 0 0 1px}.tr{right:20px;top:20px;border-width:1px 1px 0 0}.bl{left:20px;bottom:20px;border-width:0 0 1px 1px}.br{right:20px;bottom:20px;border-width:0 1px 1px 0}.about-copy h2{font:600 clamp(43px,4.5vw,68px)/1.1 var(--display);margin:18px 0 20px;letter-spacing:-.02em}.about-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:20px}.about-copy .about-lead{font-size:20px;color:var(--text)!important;line-height:1.5}.education{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;display:grid;grid-template-columns:110px 1fr;gap:25px}.education>span{font-size:12px;color:var(--accent);padding-top:4px}.education strong{font-size:16px;font-weight:500}.education p{font-size:13px;color:var(--muted);margin-top:2px}.skills{padding-top:20px;padding-bottom:100px}.skill-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:90px;margin-top:45px}.skill-columns h3{font-size:14px;margin-bottom:18px;color:var(--accent);font-weight:500}.skill-columns p{color:var(--muted);line-height:2}.tool-tags{display:flex;flex-wrap:wrap;gap:10px}.tool-tags span{font-size:14px;padding:9px 14px;border:1px solid var(--line)}.resume{border-top:1px solid var(--line);padding-top:85px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1.25fr;gap:70px}.download-links>a{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:18px 0}.download-links>a:first-child{padding-top:0}.download-links small{font-size:12px;letter-spacing:.15em;color:var(--muted);display:block}.download-links strong{font-size:19px;font-weight:500}.download-links>a>span:last-child{color:var(--accent);font-size:28px}.download-links a:hover strong{color:var(--accent)}.download-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:20px}.contact{padding-top:90px;padding-bottom:70px;border-top:1px solid var(--line);background:radial-gradient(ellipse at 85% 85%,#3f2b581f,transparent 65%)}.contact h2{font:600 clamp(60px,7vw,105px)/1.04 var(--display);max-width:1000px;letter-spacing:-.02em;margin:30px 0 35px}.contact h2 em{font-style:normal;color:var(--accent)}.contact-email{font-size:clamp(18px,2.2vw,30px);border-bottom:1px solid #84789280;display:inline-flex;align-items:center;gap:45px;padding-bottom:12px;overflow-wrap:anywhere}.contact-email span{color:var(--accent)}.contact-bottom{display:flex;justify-content:space-between;margin-top:65px;font-size:14px;color:var(--muted);gap:20px}.contact-bottom a{color:var(--accent)}.footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:34px;padding-bottom:34px;gap:20px}.footer>span,.footer>a:last-child{font-size:12px;color:var(--muted)}.footer .wordmark{font-size:24px}.skip-link{position:fixed;top:-100px;left:20px;padding:15px;background:var(--accent);color:#140e20;z-index:100}.skip-link:focus{top:15px}.noscript-message{padding:20px;position:fixed;bottom:0;background:#1c1425;width:100%;z-index:25}.noscript-message a{text-decoration:underline;margin-left:15px}
dialog{background:#18141d;color:var(--text);border:1px solid #a496b63b;padding:0;width:min(1040px,94vw);max-height:90svh;overscroll-behavior:contain}dialog::backdrop{background:#08050bd9;backdrop-filter:blur(12px)}body.modal-open{overflow:hidden}.dialog-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 30px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#18141df5;backdrop-filter:blur(12px);z-index:3}.close-dialog{background:transparent;font-size:30px;line-height:1;width:40px;height:40px;color:var(--accent)}.dialog-hero{width:100%;max-height:460px;object-fit:cover;background:#26202d}.dialog-body{padding:42px 48px 50px}.dialog-body h2{font:600 clamp(38px,5vw,72px)/1.1 var(--display);margin:10px 0 24px}.dialog-description{font-size:18px;color:#c7c0cf;line-height:1.7;max-width:830px}.detail-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0}.detail-facts dt{font-size:12px;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:7px}.detail-facts dd{font-size:14px;margin:0;color:#ded9e3}.detail-section{margin-top:32px}.detail-section h3{font:600 30px var(--display);margin-bottom:12px}.detail-section p,.detail-section li{font-size:16px;color:#beb6c7}.detail-section ul{padding-left:20px;margin:0}.detail-section li{padding:4px 0}.detail-section li::marker{color:var(--accent)}.detail-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.detail-gallery figure{margin:0;background:#131017;min-width:0}.detail-gallery img{width:100%;height:240px;object-fit:contain}.detail-gallery figcaption{padding:11px 15px;font-size:12px;color:var(--muted)}.detail-credits{font-size:12px!important;color:#9b92a7!important;margin-top:24px}.detail-links{display:flex;flex-wrap:wrap;gap:14px;margin:25px 0 5px}.detail-links a{border:1px solid #c4a7ff70;padding:11px 17px;color:var(--accent);font-size:14px}.detail-links a:hover{background:var(--accent);color:var(--bg)}.detail-placeholder{margin-top:25px;border:1px dashed #9e93ac70;padding:25px;color:var(--muted);font-size:14px;text-align:center}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}.reveal.in-view{opacity:1;transform:translateY(0)}
@keyframes scroll-mark{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(10px);opacity:1}}@keyframes hero-in{from{transform:scale(1.1);opacity:.3}to{transform:scale(1.03);opacity:1}}@keyframes content-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero-content{padding-bottom:130px}.hero{min-height:800px}}
@media(max-width:1050px){.section-wrap{padding-left:40px;padding-right:40px}nav{gap:20px}.header{gap:15px}.header-actions{gap:18px}.nav-resume{display:none}.hero-content{padding-left:60px;padding-right:60px}h1{font-size:13vw}.about{gap:50px}.project-card.featured{grid-template-columns:1.4fr 1fr}.project-card.featured .project-info{padding:28px}.project-card.featured .project-media{height:410px}.project-media{height:260px}.lab-grid{gap:17px}.lab-card .project-media{height:195px}.portrait-placeholder{min-height:380px}.intro{gap:45px}.education{grid-template-columns:95px 1fr;gap:15px}.skill-columns{gap:50px}.hero-index{display:none}.hero-footer{bottom:14px}}
@media(max-width:760px){html{scroll-padding-top:85px}.section-wrap{padding-left:24px;padding-right:24px}.header{height:80px;padding:0 24px}.wordmark{font-size:25px}.header.scrolled{height:70px}.menu-toggle{display:block}nav{display:none;position:absolute;left:0;right:0;top:100%;background:#1e142bfa;padding:24px;border-bottom:1px solid var(--line);gap:12px;flex-direction:column;align-items:stretch}nav.open{display:flex}.nav-link{font-size:18px;line-height:50px}.nav-link:after{display:none}.header-actions{gap:20px}.language{font-size:12px}.hero{min-height:730px;max-height:none;height:100svh}.hero-content{padding:110px 24px 195px}.hero-eyebrow{font-size:12px;letter-spacing:.17em}h1{font-size:16vw;margin-top:26px;letter-spacing:-.03em;white-space:nowrap}.hero-discipline{font-size:28px;margin-top:20px;gap:14px}.discipline-divider{height:26px}.hero-intro{font-size:14px;max-width:275px;margin:18px auto 0}.button.primary{margin-top:25px;padding:14px 20px}.social-rail{display:none}.hero-footer{bottom:18px;padding:0 24px;flex-direction:column-reverse;gap:22px}.hero-feature{min-width:0;width:min(100%,335px);gap:15px;padding:10px 20px 10px 10px}.hero-feature img{width:60px;height:49px}.hero-feature strong{font-size:25px;gap:70px}.scroll-cue{font-size:12px;gap:10px}.mouse{height:26px;width:17px}.mouse i{left:7px;height:5px;top:5px}.hero-grid{inset:80px 24px 150px}.hero-background{background-position:55% center}.intro{padding-top:65px;padding-bottom:70px;grid-template-columns:1fr;gap:28px}.intro-label .eyebrow{max-width:none}.intro h2{font-size:43px}.intro p:not(.eyebrow){font-size:16px}.section-heading{align-items:flex-start;gap:25px;margin-bottom:30px}.section-aside{display:none}.section-heading h2,.skills h2,.resume h2{font-size:43px}.eyebrow{font-size:12px;letter-spacing:.12em}.section-number{margin-right:16px}.work{padding-top:65px;padding-bottom:70px}.project-grid{grid-template-columns:1fr;gap:36px}.project-card.featured{display:block;grid-column:auto}.project-card.featured .project-media{height:240px}.project-card.featured .project-info{padding:25px}.project-card.featured h3{font-size:52px}.featured-label{margin-bottom:16px}.project-card.featured .project-info>p{font-size:15px}.project-media{height:240px}.project-info h3{font-size:32px}.project-media .view-badge{opacity:1;transform:none;font-size:12px;right:14px;bottom:14px;padding:8px 11px}.project-tags{margin-top:14px}.experiments{padding-top:65px;padding-bottom:65px}.lab-grid{grid-template-columns:1fr 1fr;gap:30px 18px}.lab-card .project-media{height:190px}.lab-card h3{font-size:23px}.lab-card p{font-size:12px}.art-link{gap:17px}.art-link img{width:75px;height:60px}.art-link strong{font-size:25px}.art-link p{font-size:12px}.about{grid-template-columns:1fr;padding-top:70px;padding-bottom:65px;gap:38px}.portrait-placeholder{min-height:0;max-width:330px;width:100%;aspect-ratio:4/3;margin:auto}.portrait-monogram{font-size:100px}.portrait-caption{bottom:20px;font-size:12px}.about-copy h2{font-size:48px}.education{grid-template-columns:100px 1fr}.skills{padding-bottom:65px}.skill-columns{grid-template-columns:1fr;gap:30px;margin-top:30px}.skill-columns p{font-size:15px}.tool-tags span{font-size:13px}.resume{padding-top:65px;padding-bottom:65px;grid-template-columns:1fr;gap:35px}.contact{padding-top:65px;padding-bottom:45px}.contact h2{font-size:62px;margin-top:22px}.contact-email{font-size:16px;gap:16px;max-width:100%}.contact-bottom{margin-top:35px;font-size:12px}.footer{flex-wrap:wrap;padding-top:24px;padding-bottom:24px;gap:20px}.footer .wordmark{font-size:22px}.footer>span{font-size:12px}.footer>a:last-child{width:100%;font-size:12px}.dialog-topbar{padding:10px 18px}.dialog-body{padding:25px 22px 35px}.dialog-hero{max-height:250px}.dialog-description{font-size:16px}.detail-facts{grid-template-columns:1fr;gap:15px;margin:23px 0;padding:20px 0}.detail-facts>div{display:grid;grid-template-columns:70px 1fr;gap:15px}.detail-facts dt{margin:3px 0 0}.detail-facts dd{font-size:13px}.detail-gallery{grid-template-columns:1fr}.detail-gallery img{height:auto;max-height:350px}.detail-section h3{font-size:27px}}
@media(max-width:380px){.section-wrap{padding-left:18px;padding-right:18px}.header{padding:0 18px}.hero-content{padding-left:16px;padding-right:16px}.lab-card .project-media{height:150px}.contact h2{font-size:54px}.contact-email{font-size:14px}.hero-eyebrow{font-size:12px}.header-actions{gap:13px}.wordmark{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.hero-background{will-change:auto}}

html[lang="zh-CN"] h2{line-height:1.25}html[lang="zh-CN"] .hero-eyebrow{letter-spacing:.12em}
