/* 参考图式画廊：颜色、动效与尺寸集中设置。 */
:root{--color-background:#080b12;--color-surface:#0d121c;--color-accent:#c7f34b;--color-on-accent:#172007;--gallery-gap:14px;--gallery-card-width:500px;--gallery-card-height:300px;--gallery-radius:13px;--gallery-shell:min(1240px,calc(100% - 96px));background:var(--color-background);scroll-padding-top:95px}
body{background:radial-gradient(ellipse at 80% 10%,#12203a22,transparent 45%),linear-gradient(#7a8ba808 1px,transparent 1px),linear-gradient(90deg,#7a8ba808 1px,transparent 1px),var(--color-background);background-size:100% 100%,64px 64px,64px 64px,100% 100%;overflow-x:hidden}.floating-header{position:fixed;inset:0 0 auto;height:68px;z-index:100;pointer-events:none;display:flex;align-items:center;padding:0 28px}.floating-header>*{pointer-events:auto}.studio-brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.studio-brand>i{width:8px;height:8px;border-radius:2px;background:var(--color-accent);box-shadow:0 0 14px #c7f34b88}.studio-brand b{font-size:15px}.studio-brand>span{font:8px monospace;color:#a0a8b7;letter-spacing:.5px}.capsule-nav{position:absolute;left:50%;top:12px;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:5px 12px;border:1px solid #ffffff1c;border-radius:40px;background:#090e19d9;backdrop-filter:blur(22px);isolation:isolate;box-shadow:0 8px 35px #0002}.capsule-nav a{position:relative;z-index:2;border-radius:25px;padding:10px 16px;font-size:12px;color:#bac1d0;line-height:1.3;white-space:nowrap;transition:color .2s,transform .15s}.capsule-nav small{font:8px monospace;color:var(--color-accent);margin-right:7px;letter-spacing:.3px}.capsule-nav a:hover,.capsule-nav a[aria-current]{color:#142006}.capsule-nav a:hover small,.capsule-nav a[aria-current] small{color:#4b6314}.capsule-nav a:active{transform:scale(.92)}.capsule-indicator{position:absolute;left:0;top:5px;height:36px;background:var(--color-accent);border-radius:25px;opacity:0;transition:transform .28s cubic-bezier(.2,.8,.2,1),width .28s,opacity .2s;pointer-events:none}.directory-toggle{display:none}.showcase-hero{height:100svh;min-height:740px;max-height:1150px;position:relative;background:#e6f2f8;overflow:hidden}.hero-cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:cover-hover 7s ease-in-out infinite;will-change:transform;--hero-x:0px;--hero-y:0px}.hero-shading{position:absolute;inset:0;background:linear-gradient(180deg,#070e2270,transparent 25%,transparent 50%,#080b12c9 78%,#080b12 100%);pointer-events:none}.hero-cover-copy{position:absolute;bottom:85px;left:max(7vw,calc((100vw - 1240px)/2));right:7vw}.hero-cover-copy>p{font:9px monospace;letter-spacing:4px;color:#c7f34b;margin:0 0 20px}.hero-cover-copy h1{font-size:clamp(75px,8.6vw,150px);font-weight:700;letter-spacing:-7px;line-height:1.1;margin:0 0 30px;text-shadow:0 5px 35px #0003}.hero-cover-copy h1>span{color:transparent;-webkit-text-stroke:1.5px var(--color-accent);margin-left:4px}.enter-gallery{display:inline-flex;align-items:center;gap:26px;padding:13px 22px;border-radius:35px;background:var(--color-accent);color:#152106;font-size:12px;box-shadow:0 0 30px #c7f34b22;transition:transform .2s,box-shadow .2s}.enter-gallery:hover{box-shadow:0 0 40px #c7f34b55;transform:translateY(-3px)}.enter-gallery:active{transform:scale(.95)}.hero-scroll-note{position:absolute;right:7%;bottom:35px;font:8px monospace;letter-spacing:3px;color:#98a38b}.about{background:transparent;border-bottom:1px solid #ffffff10}.about__portrait img{filter:none}.about .section-title>span{color:#bac9a1}.chapter-catalog{width:var(--gallery-shell);margin:auto;padding:90px 0}.chapter-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px}.chapter-title h2{font-size:53px;font-weight:600;letter-spacing:-2px;margin:0}.chapter-title h2>span{color:var(--color-accent)}.chapter-title p{font:8px monospace;letter-spacing:2px;color:#6d788c;margin:0 0 10px}.chapter-panels{display:flex;gap:12px;height:330px}.chapter-panel{flex:1;min-width:0;position:relative;border-radius:12px;overflow:hidden;background:#19212c;border:1px solid #ffffff18;transition:flex .55s,transform .4s,border-color .4s}.chapter-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(#080b1266,transparent 30%,#080b12e6),var(--chapter-image) center/cover;filter:saturate(.7);transition:filter .5s,transform .6s}.chapter-panel>span{position:absolute;left:14px;top:15px;color:var(--color-accent);font:9px monospace}.chapter-panel>b{position:absolute;bottom:26px;left:50%;writing-mode:vertical-rl;font-size:13px;letter-spacing:4px;color:#c7f34b}.chapter-panel>i{position:absolute;right:17px;bottom:20px;font-size:25px;color:var(--color-accent);opacity:0;transition:opacity .3s}.chapter-panel:hover{flex:1.55;transform:translateY(-7px);border-color:var(--color-accent)}.chapter-panel:hover:before{filter:saturate(1.1);transform:scale(1.03)}.chapter-panel:hover>i{opacity:1}.chapter-panel.is-selected{border-color:var(--color-accent)}.page-gallery{padding:70px 0 25px;overflow:hidden;contain:paint}.page-gallery-heading{width:var(--gallery-shell);margin:0 auto 28px;display:flex;align-items:center;gap:22px}.page-gallery-heading>div:first-child{display:flex;align-items:baseline;gap:18px}.page-gallery-heading>div>span{color:var(--color-accent);font-size:43px;letter-spacing:-3px;font-weight:650;text-shadow:2px 2px #c7f34b44;line-height:1}.page-gallery-heading h2{font-size:28px;font-weight:600;letter-spacing:-.7px;margin:0}.page-gallery-heading>p{margin:0 0 0 auto;font:8px monospace;letter-spacing:2px;color:#8993a5}.lane-buttons{display:flex;gap:7px}.lane-buttons button{width:29px;height:29px;border:1px solid #92a95e55;border-radius:50%;color:#b3c296;font-size:18px;transition:background .2s,color .2s,transform .2s}.lane-buttons button:hover{background:var(--color-accent);color:#132006}.lane-buttons button:active{transform:scale(.85)}.page-gallery-lanes{display:flex;flex-direction:column;gap:var(--gallery-gap)}.lane-viewport{overflow:hidden;padding:16px 0;margin:-16px 0;touch-action:pan-y;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.lane-track{display:flex;align-items:start;gap:var(--gallery-gap);width:max-content;will-change:transform}.page-artwork{position:relative;flex:none;width:var(--gallery-card-width);height:var(--gallery-card-height);border-radius:var(--gallery-radius);overflow:hidden;border:1px solid #ffffff16;background:#101925;transition:translate .3s,box-shadow .3s,border .3s;user-select:none;touch-action:pan-y;text-align:left}.page-artwork>img{width:100%;height:100%;object-fit:cover;object-position:top;pointer-events:none;user-select:none;-webkit-user-drag:none;transition:transform 2.8s ease-in-out}.page-artwork.is-tall>img{height:auto;min-height:100%;position:absolute;left:0;top:0}.page-artwork.is-tall:hover>img{transform:translateY(min(0px,calc(var(--gallery-card-height) - 100%)))}.page-artwork:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 55%,#080d17d9);opacity:0;transition:opacity .3s}.page-artwork>span{position:absolute;left:16px;right:16px;bottom:15px;display:flex;align-items:center;justify-content:space-between;font-size:10px;line-height:1.7;color:#e4edda;z-index:2;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}.page-artwork>span>i{font-size:24px;color:var(--color-accent)}.page-artwork:hover,.page-artwork:focus-visible{translate:0 -7px;border-color:var(--color-accent);box-shadow:0 0 0 1px #c7f34b44,0 14px 40px #0007;z-index:3}.page-artwork:hover:after,.page-artwork:hover>span,.page-artwork:focus-visible>span{opacity:1;transform:none}.page-artwork:active{scale:.98}.page-artwork.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 2px #c7f34b66}.page-gallery[data-kind="phone"]{--gallery-card-width:228px;--gallery-card-height:455px}.page-gallery[data-kind="boards"]{--gallery-card-width:310px;--gallery-card-height:455px}.page-gallery[data-kind="poster"]{--gallery-card-width:218px;--gallery-card-height:460px}.page-gallery[data-kind="long"]{--gallery-card-width:248px;--gallery-card-height:460px}.page-gallery-foot{width:var(--gallery-shell);margin:25px auto 0;padding:13px 0;border-bottom:1px solid #ffffff10;display:flex;justify-content:space-between;font-size:9px;color:#66734f;letter-spacing:.5px}.showcase-footer{width:var(--gallery-shell);margin:70px auto 0;padding:30px 0;border-top:1px solid #ffffff14;display:flex;justify-content:space-between;gap:20px;font:8px monospace;color:#79846b;letter-spacing:1px}.showcase-footer a:hover{color:var(--color-accent)}.gallery-back-top{position:fixed;right:27px;bottom:27px;width:43px;height:43px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:#142004;font-size:24px;box-shadow:0 0 25px #c7f34b33;z-index:80;transition:transform .2s}.gallery-back-top:hover{transform:translateY(-5px)}
/* 瞄准镜和开火：只在精确指针设备开启，弹窗中同样可见。 */
.scope-cursor{position:fixed;width:30px;height:30px;left:-100px;top:-100px;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:width .18s,height .18s;display:none;filter:drop-shadow(0 0 5px #c7f34b55)}.scope-cursor>i{position:absolute;width:8px;height:8px;border-color:var(--color-accent);border-style:solid}.scope-cursor>i:nth-child(1){top:0;left:0;border-width:2px 0 0 2px}.scope-cursor>i:nth-child(2){top:0;right:0;border-width:2px 2px 0 0}.scope-cursor>i:nth-child(3){bottom:0;left:0;border-width:0 0 2px 2px}.scope-cursor>i:nth-child(4){bottom:0;right:0;border-width:0 2px 2px 0}.scope-cursor>b{position:absolute;width:3px;height:3px;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);background:var(--color-accent)}.scope-cursor.is-aiming{width:46px;height:46px}.scope-cursor.is-firing{animation:scope-recoil .28s ease-out}.firing-layer{position:fixed;inset:0;pointer-events:none;z-index:99998;overflow:hidden}.shot-ring{position:absolute;width:12px;height:12px;border:1px solid var(--color-accent);border-radius:50%;transform:translate(-50%,-50%);animation:shot-ring .5s ease-out both}.shot-spark{position:absolute;width:2px;height:13px;background:var(--color-accent);transform-origin:50% 0;animation:shot-spark .4s ease-out both;box-shadow:0 0 7px #c7f34b66}@keyframes cover-hover{0%,100%{transform:translate3d(var(--hero-x),calc(var(--hero-y) - 7px),0) scale(1.025)}50%{transform:translate3d(var(--hero-x),calc(var(--hero-y) + 7px),0) scale(1.025)}}@keyframes scope-recoil{0%{transform:translate(-50%,-50%) scale(.65) rotate(-8deg)}60%{transform:translate(-50%,-50%) scale(1.25) rotate(4deg)}100%{transform:translate(-50%,-50%) scale(1)}}@keyframes shot-ring{to{width:100px;height:100px;opacity:0}}@keyframes shot-spark{from{transform:rotate(var(--angle)) translateY(9px);opacity:1}to{transform:rotate(var(--angle)) translateY(45px) scaleY(.15);opacity:0}}
@media (pointer:fine){.cursor-enabled,.cursor-enabled *{cursor:none!important}.cursor-enabled .scope-cursor{display:block}}
@media(max-width:1200px){.studio-brand>span{display:none}.capsule-nav a{padding:10px 12px;font-size:11px}.capsule-nav small{font-size:7px;margin-right:5px}.hero-cover-copy h1{font-size:11vw}.chapter-panels{height:300px}.page-gallery-heading>p{font-size:6px;letter-spacing:1px}}
@media(max-width:800px){:root{--gallery-shell:calc(100% - 40px);--gallery-gap:12px;--gallery-card-width:330px;--gallery-card-height:210px}.floating-header{padding:0 20px;background:linear-gradient(#080d19aa,transparent)}.capsule-nav{display:none;top:64px;left:15px;right:15px;transform:none;border-radius:15px;padding:10px;flex-wrap:wrap;justify-content:flex-start}.capsule-nav.is-open{display:flex}.capsule-nav a{flex:0 0 30%;font-size:11px;padding:12px}.capsule-indicator{display:none}.capsule-nav a[aria-current]{background:var(--color-accent)}.directory-toggle{display:flex;gap:16px;align-items:center;margin-left:auto;font-size:11px;color:#c8d1df;background:#0e1728a8;padding:9px 13px;border-radius:25px;border:1px solid #ffffff1c}.directory-toggle span{color:var(--color-accent)}.showcase-hero{height:85svh;min-height:670px;max-height:900px}.hero-cover-art{object-fit:contain;object-position:center 24%;animation:cover-hover 7s ease-in-out infinite}.hero-shading{background:linear-gradient(#080e2255,transparent 25%,transparent 40%,#080b12d9 70%,#080b12)}.hero-cover-copy{left:22px;right:22px;bottom:80px}.hero-cover-copy>p{font-size:6px;letter-spacing:2px;margin-bottom:17px}.hero-cover-copy h1{font-size:17vw;letter-spacing:-4px;margin-bottom:25px}.enter-gallery{font-size:11px;padding:12px 19px}.hero-scroll-note{font-size:6px;right:22px;bottom:28px;letter-spacing:2px}.chapter-catalog{padding:55px 0}.chapter-title{margin-bottom:26px}.chapter-title h2{font-size:36px;letter-spacing:-1px}.chapter-title p{font-size:6px;letter-spacing:.8px;max-width:100px;text-align:right;line-height:1.8}.chapter-panels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:auto;gap:9px}.chapter-panel{height:200px;border-radius:8px}.chapter-panel>span{font-size:7px;left:10px;top:12px}.chapter-panel>b{font-size:9px;letter-spacing:2px;bottom:21px}.chapter-panel>i{font-size:20px;right:10px;bottom:10px}.page-gallery{padding:45px 0 16px}.page-gallery-heading{margin-bottom:23px;gap:10px;flex-wrap:wrap}.page-gallery-heading>div:first-child{gap:12px}.page-gallery-heading>div>span{font-size:31px;letter-spacing:-2px}.page-gallery-heading h2{font-size:19px;letter-spacing:-.4px}.page-gallery-heading>p{display:none}.lane-buttons{margin-left:auto;gap:5px}.lane-buttons button{width:25px;height:25px;font-size:15px}.page-gallery[data-kind="phone"]{--gallery-card-width:178px;--gallery-card-height:365px}.page-gallery[data-kind="boards"]{--gallery-card-width:230px;--gallery-card-height:365px}.page-gallery[data-kind="poster"]{--gallery-card-width:178px;--gallery-card-height:370px}.page-gallery[data-kind="long"]{--gallery-card-width:200px;--gallery-card-height:370px}.page-artwork>span{font-size:8px;left:12px;right:12px;bottom:12px}.page-gallery-foot{font-size:7px;letter-spacing:0;margin-top:18px}.showcase-footer{font-size:6px;gap:15px;line-height:1.9;margin-top:40px;padding:25px 0;letter-spacing:.5px}.gallery-back-top{width:35px;height:35px;font-size:20px;right:16px;bottom:18px}.scope-cursor,.firing-layer{display:none!important}}
@media(prefers-reduced-motion:reduce){.hero-cover-art{animation:none;transform:none}.shot-spark{display:none}.shot-ring{animation:none;opacity:.7}.scope-cursor.is-firing{animation:none}}

.floating-header{background:linear-gradient(#080e1966,transparent)}

@media(max-width:800px){.cursor-enabled,.cursor-enabled *{cursor:auto!important}.cursor-enabled a,.cursor-enabled button{cursor:pointer!important}}

/* =====================================================================
   可替换：统一版心。首屏铺满视窗；其余内容共享同一条左右对齐线。
   ===================================================================== */
:root {
  --page-inset: clamp(24px, 9.6vw, 184px);
  --content-max: 1536px;
  --gallery-shell: min(var(--content-max), calc(100% - var(--page-inset) * 2));
  --profile-gap: 20px;
  --profile-panel: #101522b8;
  --profile-line: #ffffff13;
  --preview-duration: 360ms;
  --preview-ease: cubic-bezier(.16, 1, .3, 1);
  --preview-gutter: clamp(24px, 7.6vw, 146px);
  scrollbar-gutter: stable;
}
.floating-header { padding-inline: var(--page-inset); }
.studio-brand>span { display:none; }
.showcase-hero { height:100vh; height:100svh; height:100dvh; min-height:0; max-height:none; }
.hero-cover-art { object-fit:cover; object-position:center; max-width:none; }
.hero-shading { background:linear-gradient(180deg,#08102566 0%,transparent 28%,transparent 43%,#080b1266 68%,#080b12ed 100%); }
.hero-cover-copy { width:var(--gallery-shell); left:50%; right:auto; transform:translateX(-50%); bottom:clamp(58px,8vh,100px); }
.hero-cover-copy h1 { font-size:clamp(60px,8.6vw,154px); letter-spacing:-.065em; }
.hero-scroll-note { right:max(var(--page-inset),calc((100% - var(--content-max))/2)); }
.chapter-catalog,.profile-section,.showcase-footer { width:var(--gallery-shell); }
.page-gallery-heading,.page-gallery-lanes,.page-gallery-foot { width:var(--gallery-shell); margin-inline:auto; }
.page-gallery-lanes { gap:var(--gallery-gap); }
.page-gallery { padding-block:76px 32px; }
.page-gallery-heading { margin-bottom:28px; }
.page-gallery-foot { margin-top:26px; color:#7f8b75; }
.lane-viewport { mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.chapter-title h2 { line-height:1.25; }
.chapter-panel { border-color:#ffffff20; }
.page-artwork { box-shadow:0 9px 24px #0002; }
.page-artwork:hover,.page-artwork:focus-visible { box-shadow:0 0 0 1px #c7f34b55,0 16px 35px #0006; }
/* ==================== 简历档案：开始 ==================== */
.profile-section { margin-inline:auto; padding-block:100px 40px; }
.profile-kicker { display:flex; align-items:center; gap:14px; font:10px var(--font-label); letter-spacing:3px; color:var(--color-accent); }
.profile-kicker>i { width:32px; height:1px; background:var(--color-accent); }
.profile-heading { display:flex; align-items:center; gap:18px; margin:16px 0 40px; font-size:clamp(32px,5.7vw,88px); line-height:1.15; letter-spacing:-.055em; color:var(--color-accent); }
.profile-heading>span { display:inline-block; padding:6px 12px; border:1px solid #c7f34b55; border-radius:8px; color:#d1d5df; font-size:clamp(14px,1.7vw,26px); font-weight:400; letter-spacing:2px; white-space:nowrap; }
.profile-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr); gap:var(--profile-gap); align-items:start; }
.profile-card,.profile-projects { border:1px solid var(--profile-line); background:linear-gradient(130deg,#141b2abb,#0e1320b8); border-radius:16px; padding:24px; }
.profile-card { border-color:#c7f34b3d; }
.profile-photo { width:136px; height:180px; object-fit:cover; object-position:center 38%; border-radius:10px; filter:none; border:1px solid #ffffff18; }
.profile-card h3 { font-size:29px; line-height:1.3; margin:20px 0 7px; letter-spacing:-1px; }
.profile-role { color:var(--color-accent); font-size:11px; margin:0; letter-spacing:1px; }
.profile-en { color:#7d879a; font:7px var(--font-label); letter-spacing:1.7px; margin:8px 0 22px; }
.profile-facts { margin:0; display:grid; gap:12px; }
.profile-facts>div { display:grid; grid-template-columns:54px minmax(0,1fr); gap:10px; font-size:11px; line-height:1.6; }
.profile-facts dt { color:var(--color-accent); font-size:10px; }
.profile-facts dd { margin:0; color:#929bad; }
.profile-philosophy { margin-top:24px; padding-top:19px; border-top:1px dashed #ffffff1a; }
.profile-philosophy h4 { font-size:12px; font-weight:500; margin:0 0 8px; color:#d5dbe2; }
.profile-philosophy p { font-size:11px; color:#929bad; margin:0; line-height:1.9; }
.profile-download { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #ffffff0c; margin-top:19px; padding-top:17px; font-size:11px; color:var(--color-accent); transition:color .2s; }
.profile-download span { transition:transform .2s; font-size:18px; }
.profile-download:hover span { transform:translate(2px,-2px); }
.profile-main { min-width:0; }
.profile-pill { display:inline-flex; align-items:center; gap:8px; margin:0; border:1px solid #ffffff1c; padding:6px 12px; border-radius:50px; font-size:10px; font-weight:400; }
.profile-pill i { width:6px; height:6px; border-radius:50%; background:var(--color-accent); box-shadow:0 0 12px #c7f34b88; }
.profile-intro>p { font-size:12px; line-height:2.1; color:#b6becb; margin:17px 0 29px; }
.profile-experience>h3 { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:16px; font-weight:550; margin:0 0 15px; }
.profile-experience>h3>span { font:6px var(--font-label); letter-spacing:1px; color:#6d788c; }
.career-item { margin-bottom:11px; border:1px solid #ffffff13; border-radius:12px; background:#10172366; overflow:hidden; transition:border-color .25s,background .25s; }
.career-item[open] { border-color:#c7f34b55; background:linear-gradient(135deg,#c7f34b06,#11182788); }
.career-item summary { list-style:none; display:flex; align-items:center; gap:8px; padding:17px 15px; cursor:pointer; }
.career-item summary::-webkit-details-marker { display:none; }
.career-item summary>span { display:flex; flex-direction:column; min-width:0; gap:4px; }
.career-item summary b { font-size:12px; font-weight:550; color:#d2d7e1; }
.career-item[open] summary b { color:var(--color-accent); }
.career-item summary em { font-style:normal; font-size:9px; color:#828da0; }
.career-item summary time { font:8px var(--font-label); margin-left:auto; color:#828da0; white-space:nowrap; }
.career-item summary>i { width:24px; height:24px; flex:none; display:grid; place-items:center; border:1px solid #c7f34b33; border-radius:50%; color:var(--color-accent); font-style:normal; transition:transform .25s,background .25s; }
.career-item[open] summary>i { background:var(--color-accent); color:#1d2c06; transform:rotate(90deg); }
.career-item summary:hover { background:#c7f34b06; }
.career-body { padding:0 16px 17px; }
.career-tags { display:flex; flex-wrap:wrap; gap:6px; }
.career-tags span { font-size:9px; color:#b5ca81; border:1px solid #c7f34b25; background:#c7f34b09; border-radius:20px; padding:3px 9px; }
.career-body p { color:#939eaf; font-size:11px; line-height:2; margin:12px 0 0; }
.profile-projects>h3 { display:flex; justify-content:space-between; gap:12px; align-items:center; font-size:16px; margin:0 0 6px; }
.profile-projects>h3>span { color:#5f6d82; font:6px var(--font-label); letter-spacing:1px; }
.profile-projects>a:not(.profile-more) { display:flex; align-items:flex-start; gap:12px; padding:17px 0; border-bottom:1px dashed #ffffff12; transition:transform .25s; }
.profile-projects>a>i { display:grid; place-items:center; width:35px; height:40px; flex:none; border-radius:9px; background:var(--color-accent); color:#1d2a09; font:700 17px var(--font-label); }
.profile-projects>a:nth-of-type(2)>i { background:#b4cedb; }
.profile-projects>a:nth-of-type(3)>i { background:#d1bfa9; }
.profile-projects>a:nth-of-type(4)>i { background:#beb8d4; }
.profile-projects h4 { color:#c7ceda; font-size:11px; font-weight:550; line-height:1.7; margin:0 0 4px; }
.profile-projects p { font-size:10px; line-height:1.8; color:#7d899e; margin:0 0 6px; }
.profile-projects a>div>span { color:#b7cc85; font-size:9px; }
.profile-projects>a:hover { transform:translateY(-3px); }
.profile-projects>a:hover h4 { color:var(--color-accent); }
.profile-more { display:block; padding-top:16px; font-size:10px; color:var(--color-accent); }
/* ==================== 简历档案：结束 ==================== */
/* ==================== 参考站式原图预览：开始 ==================== */
html.art-open { overflow:hidden; }
.art-lightbox { position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; border-radius:0; background:transparent; overflow:hidden; color:var(--color-text); }
.art-lightbox::backdrop { background:#03060be8; backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); }
.art-lightbox[open] { display:flex; align-items:center; justify-content:center; animation:preview-overlay var(--preview-duration) ease both; }
.art-frame { display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; gap:18px; width:calc(100% - var(--preview-gutter) * 2); height:calc(100% - 150px); pointer-events:none; }
.art-image { width:auto; height:auto; max-width:100%; max-height:calc(100dvh - 210px); object-fit:contain; border-radius:14px; border:1px solid #c7f34b44; box-shadow:0 0 60px #a9cc4215,0 30px 100px #0007; pointer-events:auto; opacity:0; transition:opacity .2s; }
.art-lightbox.is-ready .art-image { opacity:1; animation:preview-image var(--preview-duration) var(--preview-ease) both; }
.art-frame figcaption { display:flex; align-items:center; justify-content:center; gap:10px; color:#a5acb8; font-size:12px; letter-spacing:.5px; line-height:1.7; }
.art-frame figcaption i { font-style:normal; color:#92ac3a; font-size:10px; }
.art-close { position:absolute; top:26px; right:30px; width:46px; height:46px; display:grid; place-items:center; font-size:27px; font-weight:300; line-height:1; border:1px solid #c7f34b66; border-radius:50%; color:var(--color-accent); background:#c7f34b08; transition:background .2s,transform .25s,color .2s; z-index:3; }
.art-close:hover { background:var(--color-accent); color:#152005; transform:rotate(90deg); }
.art-close:active { scale:.9; }
.art-lightbox.is-closing { animation:preview-exit 200ms ease both; }
.art-lightbox.is-closing::backdrop { animation:preview-exit 200ms ease both; }
@keyframes preview-overlay { from{opacity:0} to{opacity:1} }
@keyframes preview-image { from{opacity:0;transform:translateY(14px) scale(.96)} to{opacity:1;transform:none} }
@keyframes preview-exit { to{opacity:0} }
/* ==================== 响应式与低动态偏好 ==================== */
@media(min-width:1800px) { .profile-photo{width:155px;height:205px} .profile-card,.profile-projects{padding:28px} .profile-intro>p{font-size:14px} .career-item summary b{font-size:14px} .career-body p{font-size:12px} .profile-projects h4{font-size:13px} .profile-projects p{font-size:12px} }
@media(max-width:1100px) {
 .capsule-nav{display:none;top:64px;left:var(--page-inset);right:var(--page-inset);transform:none;border-radius:15px;padding:10px;flex-wrap:wrap;justify-content:flex-start}
 .capsule-nav.is-open{display:flex}.capsule-nav a{flex:0 0 30%;font-size:12px;padding:12px}.capsule-indicator{display:none}.capsule-nav a[aria-current]{background:var(--color-accent)}
 .directory-toggle{display:flex;gap:16px;align-items:center;margin-left:auto;font-size:11px;color:#c8d1df;background:#0e1728a8;padding:9px 13px;border-radius:25px;border:1px solid #ffffff1c}.directory-toggle span{color:var(--color-accent)}
 .profile-grid{grid-template-columns:minmax(210px,.8fr) minmax(0,1.5fr)}
 .profile-projects{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
 .profile-projects>h3,.profile-more{grid-column:1/-1}
 .profile-heading{font-size:6vw}
 .hero-cover-copy h1{font-size:11vw}
}
@media(max-width:650px) {
 :root{--page-inset:20px;--profile-gap:20px;--preview-gutter:18px}
 .floating-header{padding-inline:var(--page-inset)}
 .showcase-hero{height:100vh;height:100svh;height:100dvh;min-height:0;max-height:none}
 .hero-cover-art{object-fit:cover;object-position:51% center}
 .hero-cover-copy{left:50%;right:auto;bottom:80px}
 .hero-cover-copy h1{font-size:16.5vw;letter-spacing:-.07em}
 .hero-cover-copy>p{font-size:7px;letter-spacing:1.5px}
 .profile-section{padding-block:62px 20px}
 .profile-kicker{font-size:8px;letter-spacing:2px}
 .profile-heading{font-size:7.2vw;gap:9px;margin:18px 0 28px;letter-spacing:-.06em}
 .profile-heading>span{font-size:12px;padding:4px 7px;border-radius:5px;letter-spacing:1px}
 .profile-grid{grid-template-columns:minmax(0,1fr)}
 .profile-card{display:grid;grid-template-columns:94px minmax(0,1fr);column-gap:18px;padding:20px}
 .profile-photo{width:94px;height:124px;grid-row:1/5}
 .profile-card h3{font-size:26px;margin:6px 0 5px}
 .profile-role{font-size:9px;letter-spacing:.5px}
 .profile-en{font-size:6px;letter-spacing:.7px;margin:7px 0 10px}
 .profile-facts{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:19px}
 .profile-facts>div{grid-template-columns:28px minmax(0,1fr);gap:8px;font-size:10px}
 .profile-facts dt{font-size:9px}
 .profile-philosophy,.profile-download{grid-column:1/-1}
 .profile-philosophy{margin-top:20px}
 .profile-main{padding-top:8px}
 .profile-intro>p{font-size:12px;line-height:2;margin-bottom:27px}
 .profile-projects{grid-template-columns:minmax(0,1fr);padding:20px}
 .profile-projects>a:not(.profile-more){padding:16px 0}
 .profile-projects h4{font-size:12px}
 .profile-projects p{font-size:11px}
 .profile-experience>h3>span{font-size:6px;letter-spacing:.2px}
 .career-item summary{padding:15px 12px;gap:7px}
 .career-item summary b{font-size:11px}
 .career-item summary time{font-size:7px}
 .career-item summary>i{width:21px;height:21px}
 .chapter-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .chapter-panel{height:200px}.chapter-panel>b{writing-mode:horizontal-tb;left:16px;bottom:20px;font-size:12px;letter-spacing:1px}
 .chapter-panel>span{font-size:9px;left:16px;top:16px}
 .page-gallery{padding-block:45px 16px}
 .page-gallery-heading>div:first-child{gap:9px}
 .page-gallery-heading h2{font-size:17px}
 .page-gallery-heading>div>span{font-size:29px}
 .art-frame{height:calc(100% - 120px);gap:14px}
 .art-image{max-height:calc(100dvh - 175px);border-radius:9px}
 .art-close{top:18px;right:18px;width:40px;height:40px;font-size:23px}
 .art-frame figcaption{font-size:10px;gap:8px}
}
@media(max-height:600px) and (min-width:651px) { .hero-cover-copy{bottom:36px}.hero-cover-copy h1{font-size:11vh;margin-bottom:16px}.hero-cover-copy>p{margin-bottom:12px}.hero-scroll-note{display:none}.art-image{max-height:calc(100dvh - 100px)}.art-frame{height:calc(100% - 70px);gap:10px}.art-close{width:34px;height:34px;top:14px;right:17px;font-size:22px} }
@media(prefers-reduced-motion:reduce) { .art-lightbox[open],.art-lightbox.is-ready .art-image,.art-lightbox.is-closing,.art-lightbox.is-closing::backdrop{animation:none}.art-image{transition:none}.career-item,.career-item summary>i{transition:none} }
/* 阅读尺寸与锚点位置微调：导航下方直接进入当前章节。 */
:root { scroll-padding-top:0; }
.profile-intro>p { font-size:14px; line-height:2; }
.profile-facts>div { font-size:12px; }
.profile-facts dt { font-size:11px; }
.profile-role { font-size:12px; }
.profile-philosophy p,.career-body p { font-size:12px; }
.career-item summary b { font-size:13px; }
.career-item summary em { font-size:10px; }
.career-item summary time { font-size:9px; }
.profile-projects h4 { font-size:12px; }
.profile-projects p { font-size:11px; }
.profile-projects a>div>span { font-size:10px; }
@media(max-width:650px) {
 :root{scroll-padding-top:24px}
 .profile-intro>p{font-size:13px}.profile-role{font-size:9px}.profile-facts>div{font-size:10px}.profile-facts dt{font-size:9px}
 .career-item summary b{font-size:11px}.career-item summary em{font-size:9px}.career-item summary time{font-size:7px}
}
@media(min-width:651px) and (max-width:1100px) { .profile-facts>div{grid-template-columns:38px minmax(0,1fr);gap:8px} }
/* =====================================================================
   参考站实测尺寸：.wrap = 最大 1280px（含内边距），左右内边距各 7vw。
   例如 1920px 屏幕：实际内容 1011.2px，左右各约 454.4px。
   ===================================================================== */
:root {
 --color-accent:#c8f53e;
 --page-inset:7vw;
 --content-max:1280px;
 --gallery-shell:calc(min(100%, 1280px) - 14vw);
 --gallery-pixels-per-second:90;
 --ticker-duration:22s;
 --ticker-gap:44px;
 --contact-background:#bfe832;
 --contact-ink:#233c04;
}
.floating-header { padding-inline:28px; }
.hero-cover-copy { width:auto; left:7vw; right:7vw; transform:none; }
.hero-scroll-note { right:7vw; }
.lane-viewport { mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
/* ==================== 设计文字无缝滚动条：开始 ==================== */
.design-ticker { position:relative; width:100%; padding:16px 0; overflow:hidden; border-top:1px solid #ffffff14; border-bottom:1px solid #ffffff14; background:#ffffff04; }
.design-ticker-track { display:flex; width:max-content; animation:design-ticker-slide var(--ticker-duration) linear infinite; }
.design-ticker-cycle { display:flex; align-items:center; flex:none; gap:var(--ticker-gap); padding-right:var(--ticker-gap); white-space:nowrap; font:20px/29px "Arial Black",Arial,sans-serif; font-weight:400; letter-spacing:1.2px; text-transform:uppercase; color:transparent; -webkit-text-stroke:1px #ffffff47; }
.design-ticker-cycle>i { font-style:normal; font-size:12px; line-height:1; color:var(--color-accent); -webkit-text-stroke:0; text-shadow:0 0 10px #c8f53e77; }
@keyframes design-ticker-slide { to{transform:translateX(-50%)} }
/* ==================== 参考站式联系方式：开始 ==================== */
.contact-ending { position:relative; padding:120px 0 70px; margin-top:90px; overflow:hidden; isolation:isolate; background:var(--contact-background); color:var(--contact-ink); }
.contact-content { position:relative; width:var(--gallery-shell); margin-inline:auto; }
.contact-ghostline { position:absolute; top:7vw; left:0; width:max-content; font:900 9vw/1.15 "Arial Black",Arial,sans-serif; color:#233c0412; white-space:nowrap; pointer-events:none; transform:translateX(-10%); animation:contact-ghost 50s linear infinite; z-index:-1; }
.contact-heading { display:flex; gap:0; margin:0; font-size:7vw; font-weight:900; line-height:1.15; letter-spacing:0; color:#233c0429; white-space:nowrap; }
.contact-heading>span { display:inline-block; opacity:0; transform:translateY(22px); text-shadow:1px 1px #f1ffb066; transition:opacity .8s,transform .8s; transition-delay:calc(var(--letter-index,0) * 65ms); }
.contact-heading>span:nth-child(2){--letter-index:1}.contact-heading>span:nth-child(3){--letter-index:2}.contact-heading>span:nth-child(4){--letter-index:3}.contact-heading>span:nth-child(5){--letter-index:4}.contact-heading>span:nth-child(6){--letter-index:5}
.contact-ending.is-visible .contact-heading>span { opacity:1; transform:none; }
.contact-english { margin:18px 0 16px; color:#233c0459; font:700 24px/28px var(--font-label); letter-spacing:3px; }
.contact-badge-stage { position:relative; height:480px; }
.contact-strap { position:absolute; top:0; left:50%; width:3px; height:240px; transform:translateX(-50%); background:var(--contact-ink); border-radius:2px; pointer-events:none; }
.contact-badge { position:absolute; top:240px; left:50%; width:230px; margin:0 0 0 -115px; padding:22px 20px 18px; border-radius:16px; background:#0a0d12; color:#dfe5f0; line-height:normal; box-shadow:0 30px 60px #233c0473; transform-origin:50% 0; animation:contact-badge-swing 5s ease-in-out infinite; touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.contact-badge:hover,.contact-badge:focus-within,.contact-badge.is-dragging { animation-play-state:paused; box-shadow:0 32px 65px #233c0485; }
.contact-badge.is-dragging { touch-action:none; }
.contact-badge-clip { position:absolute; top:-58px; left:50%; width:14px; height:58px; transform:translateX(-50%); border-radius:7px 7px 3px 3px; background:#263a3a; }
.contact-badge-clip:before { content:""; position:absolute; top:-17px; left:50%; width:30px; height:24px; transform:translateX(-50%); border:4px solid #263a3a; border-radius:50%; }
.contact-badge>small { font:9px var(--font-label); letter-spacing:2px; color:var(--color-accent); }
.contact-badge h3 { margin:11px 0 5px; font:900 34px/39px "Arial Black",Arial,sans-serif; letter-spacing:-1px; }
.contact-badge-name { margin-bottom:8px; font-size:13px; font-weight:700; line-height:19px; letter-spacing:2px; color:var(--color-accent); }
.contact-badge-phone { display:block; margin-bottom:7px; font:9px/1.6 var(--font-label); letter-spacing:1px; color:#9ba7bb; }
.contact-badge-tags { color:#8290a8; font:8px/1.7 var(--font-label); letter-spacing:1px; }
.contact-badge-mail { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px dashed #ffffff24; margin-top:14px; padding-top:14px; font:10px/20px var(--font-label); color:#aab3c7; }
.contact-badge-mail b { color:var(--color-accent); font-size:15px; }
.contact-badge-phone:hover,.contact-badge-mail:hover { color:var(--color-accent); }
.contact-badge-number { margin-top:12px; font:9px/1.25 var(--font-label); letter-spacing:1px; color:#748198; }
.contact-footer { margin-top:90px; padding-top:26px; border-top:1px solid #233c0422; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; color:#233c0499; font:9px/1.6 var(--font-label); letter-spacing:.8px; }
.contact-footer a { transition:color .2s; }
.contact-footer a:hover { color:#0a0d12; text-decoration:underline; text-underline-offset:5px; }
.contact-clock { white-space:nowrap; }
@keyframes contact-badge-swing { 0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)} }
@keyframes contact-ghost { to{transform:translateX(-50%)} }
@media(max-width:1100px) { .capsule-nav{left:7vw;right:7vw} .contact-english{font-size:18px;letter-spacing:2px} }
@media(max-width:650px) {
 :root{--page-inset:7vw;--gallery-shell:calc(100% - 14vw)}
 .floating-header{padding-inline:20px}
 .hero-cover-copy{left:7vw;right:7vw;bottom:80px;width:auto;transform:none}
 .hero-cover-copy h1{font-size:16vw}
 .hero-scroll-note{right:7vw}
 .profile-heading{font-size:6.8vw;gap:8px}
 .profile-card{grid-template-columns:85px minmax(0,1fr);padding:18px;column-gap:14px}
 .profile-photo{width:85px;height:115px}
 .profile-facts{column-gap:8px}
 .profile-role{font-size:8px;letter-spacing:.2px}
 .profile-en{font-size:5px;letter-spacing:.4px}
 .profile-facts>div{font-size:9px;grid-template-columns:26px minmax(0,1fr);gap:5px}
 .page-gallery-heading{gap:7px}
 .page-gallery-heading h2{font-size:16px}
 .page-gallery-heading>div:first-child{gap:7px}
 .lane-buttons{gap:4px}.lane-buttons button{width:23px;height:23px}
 .contact-ending{padding-block:75px 35px;margin-top:55px}
 .contact-heading{font-size:11.9vw}
 .contact-ghostline{top:48px;font-size:19vw}
 .contact-english{font-size:10px;line-height:1.8;letter-spacing:1.5px;margin:16px 0}
 .contact-badge-stage{height:480px}
 .contact-footer{margin-top:48px;padding-top:22px;gap:14px;font-size:8px;letter-spacing:.3px;justify-content:flex-start}
 .contact-footer>span:nth-child(2){width:100%;order:4}
 .contact-footer>span:last-child{display:none}
}
@media(prefers-reduced-motion:reduce) { .design-ticker-track,.contact-badge,.contact-ghostline{animation:none}.contact-heading>span{transition:none;opacity:1;transform:none} }
/* 与参考站一致的细滚动条，避免系统默认滚动条改变可用版心宽度。 */
:root{scrollbar-gutter:auto}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:#080b12}
::-webkit-scrollbar-thumb{background:#c8f53e66;border:2px solid #080b12;border-radius:9px}
::-webkit-scrollbar-thumb:hover{background:#c8f53eaa}
:root{--font-label:Consolas,"SFMono-Regular",monospace}
.contact-badge{min-height:253px}
.contact-footer{font-size:11px}
@media(max-width:650px){.contact-footer{font-size:8px}}

.contact-ghostline{animation:none;transform:translateX(0)}
.contact-badge{touch-action:none}
@media(max-width:650px){#contact{scroll-margin-top:-24px}}
