:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:#222;background:#f6f5f1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}.nav{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:#080a0b;color:white;position:relative;z-index:3}.wordmark{font-size:25px;font-weight:600;letter-spacing:5px;text-decoration:none;color:inherit}.wordmark span{font-size:9px;letter-spacing:2px;display:block;margin-top:5px}nav{display:flex;gap:32px;align-items:center}nav a{color:#ddd;text-decoration:none;font-size:13px}button{cursor:pointer;font:inherit}nav button{color:#ddd;border:1px solid #666;border-radius:22px;padding:9px 16px;background:transparent;font-size:12px}.stage{height:34vh;min-height:280px;background:#060708;position:relative}.scene{position:absolute;inset:0;overflow:hidden;background:#080a0b;transform-origin:center center}.image{position:absolute;inset:0;background:radial-gradient(ellipse at 78% 65%,#81756a 0%,#3b3b3a 15%,#171c20 35%,#080a0c 68%)}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.3) 65%,rgba(0,0,0,.25))}.brand{position:absolute;left:8%;top:50%;transform:translateY(-50%);color:#fff}.brand>p{font-size:13px;letter-spacing:5px;margin:0 0 18px}.brand h1{font-size:clamp(32px,4.5vw,66px);line-height:1.18;letter-spacing:1px;margin:0 0 22px;font-weight:550}.brand>span{font-size:11px;letter-spacing:6px;color:#ccc}.caption{position:absolute;bottom:20px;right:5%;font-size:10px;color:#aaa;letter-spacing:1px}main{position:relative}.products{max-width:1280px;margin:auto;padding:70px 6% 80px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px}.eyebrow{font-size:10px;letter-spacing:3px;color:#666;margin-bottom:18px}h2{font-size:clamp(28px,3.2vw,44px);font-weight:550;line-height:1.3;margin:0}.intro{font-size:14px;color:#777;line-height:1.9}.grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.product-image{height:270px;background:#e5e7e9;border-radius:5px;position:relative;display:grid;place-items:center;overflow:hidden}.product-image>span{position:absolute;left:22px;top:18px;color:#8f9398;font-size:11px}.window{width:75%;height:175px;background:#20252d;border:5px solid #363b44;border-radius:9px;padding:10px;box-shadow:0 24px 30px #0002}.window>i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#777;margin-right:4px}.wave{color:#83b3e8;text-align:center;margin-top:46px;letter-spacing:3px;font-size:23px;white-space:nowrap}.second{background:#e9e6df}.placeholder{text-align:center;font-size:22px;color:#777}.placeholder small{display:block;font-size:11px;margin-top:15px;letter-spacing:2px}article h3{font-size:23px;font-weight:550;margin:0 0 10px}article>p:last-child{font-size:13px;color:#777}.about{background:#101213;color:#eee;padding:65px 8%}.about .eyebrow{color:#999}.about>p:last-child{color:#aaa;font-size:13px;margin-top:26px}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 6%;font-size:10px;color:#888;background:#101213;border-top:1px solid #ffffff18}.skip{display:none;position:fixed;right:30px;bottom:26px;z-index:10;border:1px solid #ffffff60;border-radius:24px;color:#eee;background:#1119;padding:10px 18px;font-size:12px}body.playing{overflow:hidden}body.playing .skip{display:block}body.playing .nav{opacity:0}body.playing main,body.playing footer{opacity:0}body.playing .scene{position:fixed;z-index:5}body.finished main{animation:none}@keyframes reveal{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.nav{height:72px}nav{gap:16px}nav a{display:none}.stage{height:36vh;min-height:280px}.brand{left:7%}.brand>p{font-size:11px;letter-spacing:3px}.brand h1{font-size:36px}.section-heading{display:block}.intro{margin-top:24px}.grid{grid-template-columns:1fr}.products{padding-top:45px}.product-image{height:230px}footer{flex-direction:column}.caption{font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.finished main{animation:none}}

/* 单一不透明场景保持满屏；只在场景内部推进，消除缩放矩形的黑框。 */
html{scrollbar-gutter:stable;background:#080a0b}
body.playing .scene{will-change:height,top;isolation:isolate}
body.playing main,body.playing footer{opacity:0;transform:translateY(24px)}
body.playing.settling main,body.playing.settling footer{opacity:1;transform:translateY(0);transition:opacity var(--settle-time,1.3s) ease,transform var(--settle-time,1.3s) ease}
body.playing.settling .nav{opacity:1;transition:opacity .8s ease}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid article{min-width:0}.window{overflow:hidden}.wave{font-size:clamp(12px,2vw,23px)}
@media(max-width:650px){.brand h1{font-size:clamp(25px,7.7vw,36px)}.brand>p{letter-spacing:2px}.brand>span{letter-spacing:3px}.grid{grid-template-columns:1fr}}

/* 场景整体使用同一坐标系，最终状态与动画末帧完全相同。 */
.stage{overflow:hidden}
.scene{inset:auto;left:50%;top:50%;width:calc(100% / .78);height:calc(100% / .78);transform:translate(-50%,-50%) scale(.78);transform-origin:center;}
body.playing{background:#080a0b}
body.playing::before{content:"";position:fixed;inset:0;background:#080a0b;z-index:4;pointer-events:none}
body.playing.settling::before{background:transparent}
body.playing .scene{will-change:transform,width,height,top,left}
.brand{left:12%}
/* 临时空间参照：远处光雾、中距离山脊、掠过镜头的近景。 */
.depth-far,.depth-mid,.depth-near{position:absolute;pointer-events:none;transform-origin:58% 52%;will-change:transform}
.depth-far{inset:-20%;background:radial-gradient(ellipse at 70% 40%,#a7a59a2b,transparent 30%),linear-gradient(165deg,transparent 52%,#30383e 52.2%,#11171c 74%);opacity:.7}
.depth-mid{inset:-10%;background:linear-gradient(160deg,#465057,#141a20 55%,#090c10);clip-path:polygon(0 84%,24% 58%,36% 67%,60% 33%,73% 54%,83% 43%,100% 72%,100% 100%,0 100%);opacity:.85}
.depth-near{inset:-15%;background:linear-gradient(125deg,#030506 35%,#2d3031 62%,#080a0c 65%);clip-path:polygon(0 65%,18% 81%,34% 100%,76% 100%,100% 52%,100% 100%,0 100%)}
.scene .image{background:radial-gradient(ellipse at 74% 44%,#6f7373 0%,#303a40 18%,#111b23 43%,#080a0c 73%)}
.scene .brand{z-index:2;transform-origin:58% 52%}
.caption{z-index:3}
/* 与镜头退出末帧使用同一投影，清理动画时不跳变。 */
.brand{transform:translateY(-50%) scale(.8)}
.scene .image{transform:translate3d(.337px,.084px,0) scale(.932515)}
.depth-far{transform:translate3d(1.387px,.347px,0) scale(.900901)}
.depth-mid{transform:translate3d(6.896px,1.724px,0) scale(.835821)}
.depth-near{transform:translate3d(50px,12.5px,0) scale(.666667)}
.scene .image{mask-image:radial-gradient(ellipse at center,#000 25%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse at center,#000 25%,transparent 72%)}
.depth-far,.depth-mid,.depth-near{mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
/* 推进时的近景遮挡参照；只存在于开场，最终画面不增加装饰。 */
.flyby{display:none;position:absolute;inset:-8%;pointer-events:none;transform-origin:50% 50%;will-change:transform,opacity;background:linear-gradient(145deg,#020405 30%,#313b42 48%,#080b0d 55%);mask-image:linear-gradient(0deg,#000 75%,transparent);-webkit-mask-image:linear-gradient(0deg,#000 75%,transparent)}
body.playing .flyby{display:block}
.flyby-left{clip-path:polygon(0 0,18% 12%,31% 41%,15% 65%,24% 100%,0 100%)}
.flyby-right{clip-path:polygon(100% 0,84% 8%,71% 47%,86% 70%,76% 100%,100% 100%)}
/* 2026-10-25：第一段湖山标题，保留原下方骨架供后续逐段制作。 */
html{background:#ede6d9}
.nav{position:absolute;top:0;left:0;right:0;background:transparent;color:#242b2e;height:84px;padding:0 5%;z-index:6}
.nav .wordmark{font-family:KaiTi,"Kaiti SC",serif;letter-spacing:4px;font-size:25px}.wordmark span{display:none}
nav a,nav button{color:#343b3b}nav button{border-color:#4444;background:#fff3}
.stage{height:90svh;min-height:600px;background:#ede6d9}
.scene{background:#ede6d9}
.scene .image{inset:0;background:url('assets/brand/lake-dawn.png') center 54%/cover no-repeat;mask-image:none;-webkit-mask-image:none;transform:scale(1.01012)}
.scene .shade{background:linear-gradient(180deg,#fff2 0%,transparent 50%,#1423280a 100%)}
.scene .brand{left:50%;top:30%;width:clamp(310px,40vw,610px);transform:translate(-50%,-50%) scale(.8);transform-origin:center;color:#151a19;z-index:2}
.brand h1{margin:0;line-height:1}.calligraphy{width:100%;height:auto;display:block;mix-blend-mode:multiply}
.hero-scroll{position:absolute;bottom:7%;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:3px;color:#303c3f;text-decoration:none;text-align:center;z-index:3}
.hero-scroll span{display:block;width:1px;height:32px;background:linear-gradient(transparent,#3b4949);margin:0 auto 12px}
body.playing,body.playing::before{background:#ede6d9}
body.playing .hero-scroll{opacity:0}
@media(max-width:650px){.stage{height:86svh;min-height:550px}.nav{height:72px;padding:0 6%}.scene .brand{top:29%;width:min(105vw,470px)}.scene .image{background-position:57% center}.hero-scroll{bottom:8%}}
.scene .brand{width:clamp(380px,52vw,760px);top:30%}
@media(max-width:650px){.scene .brand{width:min(122vw,530px);top:29%}}
/* 标题第二稿：横向展开字势，英文与独立篆刻章留出间隔。 */
.scene .brand{width:clamp(490px,76vw,1120px);top:32%}
.brand-signature{display:flex;align-items:center;justify-content:center;gap:32px;margin-top:24px;padding-left:80px}
.brand .brand-english{font-family:"Times New Roman",serif;font-size:clamp(12px,1.15vw,18px);font-weight:400;letter-spacing:.42em;line-height:1.5;margin:0;color:#253438;white-space:nowrap}
.brand-seal{display:block;width:clamp(60px,5.2vw,80px);height:auto;mix-blend-mode:multiply}
@media(max-width:650px){.scene .brand{width:132vw;max-width:650px;top:30%}.brand-signature{gap:19px;margin-top:19px;padding-left:48px}.brand .brand-english{font-size:12px;letter-spacing:.23em}.brand-seal{width:48px}}
.brand .brand-english{font-size:clamp(18px,1.7vw,25px);letter-spacing:.34em}
@media(max-width:650px){.brand .brand-english{font-size:14px;letter-spacing:.2em}}
/* 第三稿：题字质感统一到导航标识，整体增大，字章关系保持。 */
.scene .brand{width:clamp(550px,88vw,1280px)}
.nav .wordmark{display:flex;align-items:center;gap:12px;letter-spacing:0}
.nav .wordmark .nav-calligraphy{display:block;width:clamp(90px,9vw,140px);aspect-ratio:3.4;overflow:hidden;margin:0}
.nav-calligraphy img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.nav-seal{display:block;width:clamp(25px,2.3vw,34px);height:auto;mix-blend-mode:multiply}
@media(max-width:650px){.scene .brand{width:145vw;max-width:730px}.nav .wordmark{gap:8px}.nav .wordmark .nav-calligraphy{width:86px}.nav-seal{width:23px}}
.nav .wordmark .nav-calligraphy{aspect-ratio:2.8}
.scene .brand{width:clamp(600px,96vw,1400px)}
@media(max-width:650px){.scene .brand{width:145vw;max-width:730px}}

/* 第四稿：主字与副题独立排版，白色飞白不再使用正片叠底。 */
.scene .brand{width:clamp(480px,72vw,1040px);top:35%}
.calligraphy{mix-blend-mode:normal}
.studio-subtitle{position:relative;overflow:hidden;width:48%;aspect-ratio:770/140;margin:30px auto 0}
.studio-subtitle img{position:absolute;width:252.4675%;height:auto;max-width:none;left:-76.6234%;top:-471.4286%;mix-blend-mode:multiply}
.brand-signature{margin-top:25px;gap:26px;padding-left:65px}
.brand .brand-english{font-size:clamp(16px,1.5vw,22px);letter-spacing:.3em}
.brand-seal,.nav-seal{filter:url(#seal-white);mix-blend-mode:normal}
.brand-seal{width:clamp(48px,4.2vw,62px)}
.nav .wordmark{gap:5px}
.nav .wordmark .nav-calligraphy{width:clamp(86px,9vw,128px);aspect-ratio:auto;overflow:visible}
.nav-calligraphy img{mix-blend-mode:normal}
.nav-seal{width:clamp(19px,1.6vw,24px)}
@media(max-width:650px){
 .scene .brand{width:128vw;max-width:610px;top:34%}
 .studio-subtitle{margin-top:24px;width:52%}
 .brand-signature{margin-top:22px;gap:18px;padding-left:44px}
 .brand .brand-english{font-size:14px;letter-spacing:.2em}
 .brand-seal{width:44px}
 .nav .wordmark{gap:4px}
 .nav .wordmark .nav-calligraphy{width:86px}
 .nav-seal{width:18px}
}

/* 沿两字之间的透明空隙分别移动，保留完整笔锋。 */
.separated-title{position:relative}
.separated-title .glyph-left{clip-path:polygon(0 0,55% 0,55% 46%,64% 100%,0 100%);transform:translateX(-3%)}
.separated-title .glyph-right{position:absolute;inset:0;width:100%;height:auto;clip-path:polygon(55% 0,100% 0,100% 100%,64% 100%,55% 46%);transform:translateX(3%)}

/* 副题完整显示上方起笔，横向展开中文与英文。 */
.studio-subtitle{aspect-ratio:770/165;transform:scaleX(1.2)}
.studio-subtitle img{top:-384.8485%}
.brand .brand-english{letter-spacing:.55em}
@media(max-width:650px){.brand .brand-english{letter-spacing:.38em}}

/* 副标题逐字留空，不再把整行横向放大来代替字距。 */
.studio-subtitle{display:flex;gap:4.419889%;width:56.415584%;aspect-ratio:905/165;overflow:visible}
.subtitle-glyph{display:block;position:relative;height:100%;overflow:hidden;flex-shrink:0;aspect-ratio:auto}
.studio-subtitle .subtitle-glyph img{top:-384.8485%;height:auto}
.separated-title .glyph-left{transform:translateX(-5%)}
.separated-title .glyph-right{transform:translateX(5%)}
@media(max-width:650px){.studio-subtitle{width:61.116883%}}

/* 已选定印章标识：高度与书法字势协调，保留紧凑留白。 */
.nav-brand-seal{display:block;flex-shrink:0;width:auto;height:50px;margin-right:3px}
@media(max-width:650px){.nav-brand-seal{height:40px;margin-right:2px}}

/* 导航字章整体收小，保留原有飞白；英文增加阅读对比。 */
.nav .wordmark{transform:scale(.84);transform-origin:left center}
.brand .brand-english{font-weight:600}

/* 横卷开场：最终画幅固定为16:9，远景推进后回到同一横幅。 */
.stage{height:auto;min-height:0;aspect-ratio:16/9}
.scene{width:100%;height:100%;transform:translate(-50%,-50%);}
.scene .image{background-position:center;background-size:cover;transform:none}
.scene .brand{width:58%;max-width:1040px;top:43%;transform:translate(-50%,-50%) scale(.8)}
.studio-subtitle{margin-top:clamp(10px,1.8vw,30px)}
.brand-signature{margin-top:clamp(8px,1.5vw,25px)}
.brand .brand-english{font-size:clamp(10px,1.15vw,20px)}
.hero-scroll{bottom:5%}
body.playing .scene{will-change:transform,top,left}
@media(max-width:650px){
 .stage{height:auto;min-height:0;aspect-ratio:16/9}
 .scene .brand{width:64%;max-width:none;top:48%}
 .studio-subtitle{margin-top:5px}
 .brand-signature{gap:8px;margin-top:5px;padding-left:16px}
 .brand .brand-english{font-size:6px;letter-spacing:.28em}
 .brand-seal{width:18px}
 .hero-scroll{font-size:7px;bottom:4%;letter-spacing:2px}
 .hero-scroll span{height:10px;margin-bottom:4px}
 .nav{height:52px}
 .nav .wordmark{transform:scale(.70)}
 nav button{font-size:10px;padding:6px 10px}
}

/* 黑场镜头：外层负责回收到顶端三分之一，内层整幅画保持同一坐标。 */
.stage{height:34svh;min-height:230px;max-height:420px;aspect-ratio:auto}
.scene{inset:0;width:100%;height:100%;transform:none;background:#000}
.camera-world{position:absolute;left:50%;top:50%;width:calc(100% / .67);aspect-ratio:16/9;transform:translate(-50%,-50%) scale(.67);transform-origin:center;overflow:hidden}
.scene .image{background-position:center;background-size:cover}
.scene .brand{width:48%;max-width:1040px;top:50%;transform:translate(-50%,-50%) scale(.8)}
body.playing,body.playing::before{background:#000}
body.playing .scene{background:#000;will-change:height}
body.playing .camera-world{will-change:transform,opacity}
body.playing.settling::before{background:transparent}
@media(max-width:650px){
 .stage{height:34svh;min-height:200px;max-height:300px;aspect-ratio:auto}
 .camera-world{aspect-ratio:16/9}
 .scene .brand{width:66%;top:50%;max-width:none}
}
/* 窄横幅以视窗高度限制题字，回收后完整容纳中文、英文和印章。 */
.scene .brand{width:min(48%,55svh)}
@media(max-width:650px){.scene .brand{width:min(66%,55svh)}}

html.intro-pending body::after{content:"";position:fixed;inset:0;background:#000;z-index:9}
@media(max-width:650px){.camera-world{aspect-ratio:auto;height:calc(100svh / .67)}}

/* 导航等回收落位后再淡入，不在原位提前等候。 */
body.playing .nav,body.playing.settling .nav{opacity:0;pointer-events:none;transition:none}
body.finished .nav{opacity:1;transition:opacity .38s ease .08s}
.landscape-depth{display:block;width:100%;height:100%}

/* 独立品牌封面：背景固定，点击后淡出到既有主页。 */
body.cover-open{overflow:hidden}
.brand-cover{position:fixed;inset:0;z-index:30;overflow:hidden;background:#e7d9c4 url('assets/brand/lake-dawn.png') center/cover no-repeat;opacity:1;transition:opacity .6s cubic-bezier(.22,.61,.36,1);cursor:pointer;outline:none}
.brand-cover[hidden]{display:none}
.brand-cover.leaving{opacity:0;pointer-events:none}
.cover-art{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff0a,transparent 65%)}
.cover-logo{position:absolute;z-index:2;left:5%;top:26px;width:auto;height:58px;object-fit:contain}
.brand-cover .brand{left:50%;top:44%;width:min(70vw,100svh,960px);transform:translate(-50%,-50%) scale(.9);transform-origin:center;color:#151a19;z-index:1}
.brand-cover .separated-title{transform-origin:center;will-change:transform}
.brand-cover.entering .separated-title{animation:cover-title-arrive 1.65s cubic-bezier(.22,.61,.36,1) both}
@keyframes cover-title-arrive{0%{transform:scale(.80)}65%{transform:scale(1.055)}100%{transform:scale(1)}}
.cover-enter{position:absolute;z-index:3;bottom:6%;left:50%;transform:translateX(-50%);border:0;background:transparent;color:#fff;font-size:18px;font-weight:600;letter-spacing:5px;padding:18px 24px;text-shadow:0 1px 8px #14232866;white-space:nowrap}
.cover-enter:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:8px}
.nav .wordmark{transform:scale(.70)}
.hero-scroll{color:#087bff;font-weight:600;text-shadow:0 0 12px #ffffffd9,0 0 18px #218cff88}
.hero-scroll span{background:linear-gradient(transparent,#087bff)}
@media(max-width:650px){
 .cover-logo{height:46px;top:22px;left:6%}
 .brand-cover .brand{width:95vw;top:45%;transform:translate(-50%,-50%) scale(.94)}
 .brand-cover .studio-subtitle{margin-top:16px}
 .brand-cover .brand-signature{gap:13px;margin-top:17px;padding-left:30px}
 .brand-cover .brand-english{font-size:9px;letter-spacing:.3em}
 .brand-cover .brand-seal{width:30px}
 .cover-enter{font-size:16px;bottom:8%}
 .nav .wordmark{transform:scale(.60)}
}
@media(prefers-reduced-motion:reduce){.brand-cover{transition:none}.brand-cover.entering .separated-title{animation:none}}

/* 固定封面 + 整组题字登场 + 点击后连续回收到宽阔主页。 */
.stage{height:72svh;min-height:420px;max-height:900px;aspect-ratio:auto}
.camera-world{width:100%;height:100%;aspect-ratio:auto;transform:translate(-50%,-50%)}
.scene .image{background-position:center;background-size:cover}
.scene .brand,.brand-cover .brand{width:min(65vw,100svh,960px);max-width:none;top:42%}
.scene .brand{transform:translate(-50%,-50%) scale(.8)}
.brand-cover .brand{transform:translate(-50%,-50%) scale(1)}
.brand-cover{bottom:auto;height:100svh;transition:none;background-position:center;will-change:height,background-size}
.cover-art{background:linear-gradient(180deg,#fff2 0%,transparent 50%,#1423280a 100%)}
.brand-cover.entering .separated-title{animation:none;transform:none;will-change:auto}
.brand-cover.entering .brand{animation:cover-brand-arrive 1.9s both;will-change:transform}
@keyframes cover-brand-arrive{
  0%{transform:translate(-50%,-50%) scale(.085);animation-timing-function:cubic-bezier(.55,.03,.30,1)}
  84%{transform:translate(-50%,-50%) scale(1.055);animation-timing-function:cubic-bezier(.22,.61,.36,1)}
  100%{transform:translate(-50%,-50%) scale(1)}
}
.brand-cover.returning{cursor:default;pointer-events:none}
.brand-cover.returning .cover-enter{opacity:0;transition:opacity .18s ease}
body.cover-open .nav{opacity:0;pointer-events:none;transition:none}
body.home-ready .nav{opacity:1;transition:opacity .35s ease .06s}
body.cover-open main,body.cover-open footer{opacity:0;transform:translateY(20px)}
body.cover-returning main,body.cover-returning footer{opacity:1;transform:none;transition:opacity .85s ease,transform .85s ease}
@media(max-width:650px){
 .stage{height:68svh;min-height:420px;max-height:none}
 .camera-world{width:100%;height:100%;aspect-ratio:auto}
 .scene .brand,.brand-cover .brand{width:92vw;max-width:none;top:42%}
 .brand-cover .studio-subtitle,.scene .studio-subtitle{margin-top:16px}
 .brand-cover .brand-signature,.scene .brand-signature{gap:13px;margin-top:17px;padding-left:30px}
 .brand-cover .brand-english,.scene .brand-english{font-size:9px;letter-spacing:.3em}
 .brand-cover .brand-seal,.scene .brand-seal{width:30px}
}
@media(prefers-reduced-motion:reduce){
 .brand-cover.entering .brand{animation:none}
 body.home-ready .nav{transition:none}
}

/* 只收起主画面底部，保持原有山水与题字构图。 */
.stage{height:64svh;min-height:380px;max-height:800px}
.camera-world{top:0;height:clamp(420px,72svh,900px);transform:translateX(-50%)}
@media(max-width:650px){
 .stage{height:62svh;min-height:380px;max-height:none}
 .camera-world{top:0;height:max(420px,68svh);transform:translateX(-50%)}
}

/* 点击后的离场与内容显现共用同一条时间线，避免产品区提前切入。 */
body.cover-returning main,body.cover-returning footer{
 opacity:var(--entry-reveal,0);
 transform:translateY(calc((1 - var(--entry-reveal,0))*24px));
 transition:none;
}
.brand-cover.returning .cover-enter{transform:translate(-50%,-8px);transition:opacity .24s ease,transform .32s ease}

/* 山水独立成层：入场由虚到实，离场雾化交叠，不影响书法清晰度。 */
.brand-cover{background:transparent}
.brand-cover::before{content:"";position:absolute;inset:0;pointer-events:none;background:#e7d9c4 url('assets/brand/lake-dawn.png') var(--landscape-position,center)/var(--landscape-size,cover) no-repeat;filter:blur(var(--landscape-blur,0px)) brightness(var(--landscape-brightness,1))}
.brand-cover.entering::before{animation:landscape-focus 1.9s cubic-bezier(.22,.61,.36,1) both}
@keyframes landscape-focus{from{filter:blur(18px);opacity:.35}to{filter:blur(0);opacity:1}}
body.cover-open .scene .brand{opacity:0}
body.cover-returning .scene .brand{opacity:var(--home-reveal,0)}
@media(prefers-reduced-motion:reduce){.brand-cover.entering::before{animation:none}}

/* 回收只使用封面山水；落位前不透出第二幅背景和浅色矩形。 */
body.cover-open .scene{visibility:hidden}
.brand-cover .ink-fragment{pointer-events:none;will-change:transform,opacity;z-index:2}

/* 回收落位之后，整组主页题字轻轻浮现。 */
body.home-ready .scene .brand{animation:home-brand-reveal 2.2s cubic-bezier(.4,0,.25,1) both}
@keyframes home-brand-reveal{
 from{opacity:0;filter:blur(14px);transform:translate(-50%,calc(-50% + 48px)) scale(.8)}
 20%{opacity:.12;filter:blur(10px)}
 to{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(.8)}
}
@media(prefers-reduced-motion:reduce){body.home-ready .scene .brand{animation:none}}


/* 左上角品牌与主页题字同一时刻、同一节奏显现。 */
body.home-ready .nav .wordmark{animation:home-wordmark-reveal 2.2s cubic-bezier(.4,0,.25,1) both}
@keyframes home-wordmark-reveal{
 from{opacity:0;filter:blur(7px)}
 20%{opacity:.12;filter:blur(5px)}
 to{opacity:1;filter:blur(0)}
}
@media(prefers-reduced-motion:reduce){body.home-ready .nav .wordmark{animation:none}}


/* 首页长卷骨架：暖白留白连接橱窗、工作室与横向产品。 */
.homepage-content{background:#f7f2e8;color:#272a28;overflow:hidden}
.showcase{padding:48px 5% 54px}
.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;max-width:1440px;margin:auto}
.showcase-item{text-align:center;min-width:0}
.empty-showcase{height:clamp(190px,20vw,310px);border:1px solid #a49b884d;display:grid;place-items:center;font:clamp(23px,2.2vw,32px) 'Songti SC','STSong',serif;background:#ffffff12}
.detail-placeholder{display:inline-flex;align-items:center;gap:14px;padding:9px 2px;margin:10px 0 0;border:0;border-bottom:1px solid #afa18d;background:transparent;color:#575448;font:14px 'Songti SC','STSong',serif;cursor:default}
.detail-placeholder:hover{color:#272a28;border-color:#575448}
.detail-placeholder:active{transform:translateY(1px)}
.studio-introduction{display:grid;grid-template-columns:64% 36%;align-items:center;max-width:1600px;margin:auto;padding:10px 5% 62px;background:transparent;color:inherit}
.studio-landscape{position:relative;aspect-ratio:1.65;overflow:hidden}
.studio-landscape img{display:block;width:100%;height:100%;object-fit:cover;object-position:37% center;mask-image:linear-gradient(to right,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 76%,transparent 100%)}
.studio-copy{padding:0 2% 0 8%}
.studio-copy h2{font:clamp(25px,2.7vw,40px)/1.5 'Songti SC','STSong',serif;white-space:nowrap}
.copy-placeholder{display:grid;gap:27px;margin-top:34px}
.copy-placeholder span{display:block;height:1px;background:#b9ae9b80;width:100%}
.product-gallery{padding:0 0 26px 5%;max-width:1600px;margin:auto}
.product-gallery>h2{display:flex;align-items:center;gap:20px;font:25px 'Songti SC','STSong',serif;margin:0 0 22px}
.product-gallery>h2>span{width:36px;height:1px;background:#4d514a}
.product-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-right:5%;overscroll-behavior-x:contain}
.product-track::-webkit-scrollbar{display:none}
.product-slot{flex:0 0 46%;min-width:0;height:clamp(210px,21vw,320px);border:1px solid #a49b884d;display:flex;flex-direction:column;align-items:center;justify-content:center;scroll-snap-align:start;background:#ffffff12}
.product-slot>div{font:clamp(23px,2.2vw,32px) 'Songti SC','STSong',serif;margin:24px 0}
.gallery-controls{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:20px 5.25% 0 0}
.gallery-controls button{width:40px;height:40px;border:1px solid #a49b8866;border-radius:50%;background:transparent;color:#383d37;font:30px/1 serif}
.gallery-controls button:hover{background:#e9e1d3}
.gallery-controls button:disabled{opacity:.35;cursor:default}
.gallery-progress{width:150px;height:1px;background:#bfb5a3;margin-right:10px;position:relative}
.gallery-progress span{display:block;position:absolute;top:-1px;left:0;width:36px;height:2px;background:#42483f}
.closing-landscape{margin-top:10px;background:#171914;position:relative;overflow:hidden}
.closing-landscape img{width:100%;height:clamp(290px,34vw,560px);display:block;object-fit:cover;object-position:center 56%}
.closing-landscape::after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#171914)}
.studio-footer{display:flex;align-items:center;justify-content:center;gap:48px;background:#171914;border:0;padding:32px 5% 42px;color:#d3cdbf}
.studio-footer>img{height:48px;width:auto}
.studio-footer>div{display:flex;gap:0}
.studio-footer>div>span{font:14px 'Songti SC','STSong',serif;padding:0 30px;border-right:1px solid #d3cdbf66}
.studio-footer>div>span:last-child{border:0}
@media(max-width:650px){
 .showcase{padding:28px 6% 38px}.showcase-grid{gap:16px}.empty-showcase{height:150px;font-size:23px}.detail-placeholder{font-size:12px;gap:8px}
 .studio-introduction{padding:0 6% 38px;grid-template-columns:1fr;gap:24px}.studio-landscape{aspect-ratio:1.65}.studio-landscape img{mask-image:none;-webkit-mask-image:none}.studio-copy{padding:0 3%}.studio-copy h2{font-size:27px}.copy-placeholder{margin-top:20px;gap:20px}
 .product-gallery{padding-left:6%}.product-gallery>h2{font-size:23px}.product-track{gap:16px;padding-right:6%}.product-slot{flex-basis:82%;height:230px}.gallery-controls{padding-right:6.4%;gap:12px}.gallery-progress{width:90px}
 .closing-landscape img{height:280px;object-position:53% center}.studio-footer{flex-direction:row;gap:18px;padding:25px 4% 32px}.studio-footer>img{height:38px}.studio-footer>div>span{font-size:12px;padding:0 12px}
}

/* 缩小两幅配图，为简介正文和页脚保留独立留白。 */
.studio-introduction{grid-template-columns:53% 47%;padding-bottom:62px}
.studio-landscape{aspect-ratio:1.8}
.studio-copy{padding:0 17% 0 10%}
.closing-landscape img{height:clamp(220px,25vw,400px)}
.closing-landscape::after{display:none}
.studio-footer{min-height:230px;background:#fff;padding:50px 6%;color:#272a28}
@media(max-width:650px){
 .studio-introduction{grid-template-columns:1fr;padding-bottom:38px}
 .studio-copy{padding:0 8% 0 3%}
 .closing-landscape img{height:210px}
 .studio-footer{min-height:180px;padding:35px 6%}
}

/* 关于我们：保留完整正文与段落层次。 */
.studio-introduction{align-items:start}
.studio-landscape{margin-top:12px}
.studio-copy{min-width:0;padding:0 10% 0 8%}
.studio-copy h2{margin:0 0 25px}
.studio-about-text{font:15px/1.95 'Songti SC','STSong',serif;color:#44483f;overflow-wrap:anywhere}
.studio-about-text h3{margin:0 0 18px;font-size:23px;line-height:1.55;font-weight:600;color:#272a28}
.studio-about-text p{margin:0 0 18px}
.studio-about-text strong{font-weight:600;color:#30372e}
.studio-about-text p:last-child{margin-bottom:0}
@media(max-width:650px){
 .studio-copy{padding:0 5% 0 3%}
 .studio-copy h2{margin-bottom:20px}
 .studio-about-text{font-size:15px;line-height:1.9}
 .studio-about-text h3{font-size:22px}
}

/* 桌面端山水竖幅随关于我们正文等高，保持原图比例。 */
@media(min-width:651px){
 .studio-introduction{align-items:stretch}
 .studio-landscape{aspect-ratio:auto;min-height:0;margin-top:0;align-self:stretch}
 .studio-landscape img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% center}
}

/* 底部配图保留桌子下沿与前景，从上方裁切。 */
.closing-landscape img{object-position:center bottom}

/* 底部采用参考图的宽高比，保留松枝、远山与桌椅的完整层次。 */
.closing-landscape img{height:auto;aspect-ratio:2.38 / 1;object-fit:cover;object-position:center bottom}

/* 电脑窄窗口仍保持图文左右排列，手机使用独立的上下阅读布局。 */
@media(min-width:651px) and (max-width:1000px){
 .studio-introduction{grid-template-columns:45% 55%;padding-left:4%;padding-right:4%}
 .studio-copy{padding:0 5% 0 8%}
 .studio-copy h2{font-size:29px;margin-bottom:18px}
 .studio-about-text{font-size:14px;line-height:1.85}
 .studio-about-text h3{font-size:21px}
}

/* 电脑侧栏虽窄仍使用双栏；触屏手机才切换为纵向阅读。 */
.studio-introduction{grid-template-columns:53% 47%;align-items:stretch}
.studio-landscape{aspect-ratio:auto;min-height:0;margin-top:0;align-self:stretch;width:auto;max-width:none}
.studio-landscape img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% center;mask-image:linear-gradient(to right,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 76%,transparent 100%)}
@media(max-width:1000px){
 .studio-introduction{grid-template-columns:45% 55%;gap:0;padding-left:4%;padding-right:4%}
 .studio-copy{padding:0 5% 0 8%}
 .studio-copy h2{font-size:clamp(21px,3vw,29px);white-space:normal}
 .studio-about-text{font-size:clamp(12px,1.8vw,14px);line-height:1.85}
 .studio-about-text h3{font-size:clamp(17px,2.5vw,21px)}
}
@media(max-width:650px) and (hover:none) and (pointer:coarse){
 .studio-introduction{grid-template-columns:1fr;gap:24px;padding-left:6%;padding-right:6%}
 .studio-landscape{aspect-ratio:1.8;align-self:auto}
 .studio-landscape img{position:static;mask-image:none;-webkit-mask-image:none}
 .studio-copy{padding:0 5% 0 3%}
 .studio-copy h2{font-size:27px}
 .studio-about-text{font-size:15px;line-height:1.9}
 .studio-about-text h3{font-size:22px}
}

/* 精选橱窗与产品栏共用平移循环。 */
.loop-gallery{--loop-gap:8px;--loop-visible:2}
.loop-viewport{overflow:hidden;touch-action:pan-y;outline:none}
.loop-track,.product-track.loop-track{display:flex;gap:var(--loop-gap);overflow:visible;padding:0;scroll-snap-type:none;will-change:transform;transition:transform 620ms cubic-bezier(.22,.68,.25,1)}
.loop-track.is-resetting{transition:none}
.loop-card,.product-slot.loop-card{flex:0 0 calc((100% - var(--loop-gap))/2);min-width:0;margin:0;scroll-snap-align:none}
.showcase-picture{display:block;width:100%;padding:0;border:1px solid #a49b8833;background:#edf0f5;overflow:hidden;cursor:default}
.showcase-picture img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:contain;user-select:none}
.showcase-caption{padding:24px 12px 0;text-align:center}
.showcase-caption h2{font:600 clamp(20px,2vw,28px)/1.4 'Songti SC','STSong',serif;margin:0 0 10px;color:#272a28}
.showcase-caption p{font:15px/1.7 'Songti SC','STSong',serif;margin:0;color:#636358}
.showcase-caption .detail-placeholder{margin-top:12px}
.loop-controls{display:flex;justify-content:center;align-items:center;gap:24px;padding-top:26px}
.loop-controls>button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #a49b8855;border-radius:50%;background:transparent;color:#42483f;font:27px/1 Georgia,serif;cursor:pointer}
.loop-controls>button:hover{background:#e8e0d1}
.loop-dots{display:flex;align-items:center;gap:12px}
.loop-dot{position:relative;width:24px;height:28px;padding:0;border:0;background:none;cursor:pointer}
.loop-dot::after{content:'';position:absolute;width:5px;height:5px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#b6b1a6}
.loop-dot[aria-current="true"]::after{background:#444b40;width:7px;height:7px}
.loop-controls button:focus-visible,.showcase-picture:focus-visible{outline:2px solid #6c7565;outline-offset:4px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.product-gallery.loop-gallery{padding-right:5%}
.product-gallery .product-slot{height:clamp(210px,21vw,320px)}
@media(max-width:650px){
 .loop-gallery{--loop-gap:8px;--loop-visible:1}
 .loop-card,.product-slot.loop-card{flex-basis:100%}
 .showcase-caption{padding:20px 8px 0}
 .showcase-caption p{font-size:14px}
 .product-gallery.loop-gallery{padding-right:6%}
 .loop-controls{gap:20px;padding-top:20px}
}
@media(prefers-reduced-motion:reduce){.loop-track,.product-track.loop-track{transition:none}}
/* 橱窗图之间只留细缝；异形比例素材完整显示，不添加有色画框。 */
.showcase.loop-gallery{--loop-gap:8px}
.showcase-picture{border:0;background:transparent;box-shadow:none}
.showcase-picture img{background:transparent}
.showcase-picture:focus{outline:none}
.showcase-picture:focus-visible{outline:2px solid #6c7565;outline-offset:3px}
/* 图片按原比例铺满卡片宽度，避免笔记图的两侧留白被误作间距。 */
.showcase-item.loop-card{display:flex;flex-direction:column}
.showcase-picture{flex:none}
.showcase-picture img{width:100%;height:auto;aspect-ratio:auto;object-fit:initial}
.showcase-caption{margin-top:auto}
/* 所有橱窗使用同一画幅，统一上下边缘；不拉伸素材、不添加底框。 */
.showcase-picture{aspect-ratio:8/5;overflow:hidden}
.showcase-picture img{display:block;width:100%;height:100%;aspect-ratio:8/5;object-fit:cover;object-position:center}
.showcase-picture img[src$="mindtrace-writing.png"]{object-position:center 45%}

/* 精选橱窗限制整体幅宽，窄缝不再通过扩张图片获得。 */
.showcase.loop-gallery{width:100%;max-width:1160px;margin-left:auto;margin-right:auto;padding:48px 24px 54px;--loop-gap:8px}
.showcase-heading{margin:0 0 26px;font:30px/1.5 'Songti SC','STSong',serif;font-weight:500;letter-spacing:.04em}
.showcase-caption h2{display:flex;justify-content:center;align-items:center;gap:12px;font-size:23px}
.product-app-icon{display:block;flex:0 0 44px;width:44px;height:44px;object-fit:contain;border-radius:10px}
@media(max-width:650px){
 .showcase.loop-gallery{padding:30px 6% 38px}
 .showcase-heading{font-size:26px;margin-bottom:22px}
 .showcase-caption h2{font-size:21px;gap:10px}
 .product-app-icon{flex-basis:40px;width:40px;height:40px;border-radius:9px}
}
/* 简介与精选产品共用版心，保留左右等高和原文。 */
.studio-introduction{width:100%;max-width:1160px;padding-left:24px;padding-right:24px}
@media(max-width:650px){.studio-introduction{padding-left:6%;padding-right:6%}}

/* 五款产品与上方共用1160版心、画幅、图标和窄缝。 */
.product-gallery.loop-gallery{width:100%;max-width:1160px;margin:0 auto;padding:12px 24px 48px;--loop-gap:8px}
.product-gallery>.catalog-heading{display:block;margin:0 0 26px;font:500 30px/1.5 'Songti SC','STSong',serif;letter-spacing:.04em}
.catalog-card{display:flex;flex-direction:column;text-align:center}
.catalog-card .showcase-caption{margin-top:auto}
@media(max-width:650px){
 .product-gallery.loop-gallery{padding:8px 6% 38px}
 .product-gallery>.catalog-heading{font-size:26px;margin-bottom:22px}
}

/* 主图和详情共用真实产品页链接。 */
a.showcase-picture{cursor:pointer}
a.detail-placeholder{cursor:pointer;text-decoration:none}

/* Footer composition and a shallower closing landscape. */
.closing-landscape img{aspect-ratio:2.94/1;object-position:center 60%}
.studio-footer{display:block;min-height:0;background:#17191a;color:#a7a7a3;padding:64px 0 32px;font:15px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
.studio-footer>.footer-inner{display:block;width:100%;max-width:1160px;padding:0 24px;margin:auto}
.footer-brand p{margin:0 0 8px}.footer-brand .footer-title{font-size:44px;font-weight:650;line-height:1.2;color:#f5f3ec;margin-bottom:14px}.footer-brand .footer-name{font-size:20px;font-weight:600;color:#c4c1ba}
.footer-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-block:1px solid #ffffff26;margin-top:36px;padding:32px 0}.footer-columns h2{font:600 18px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:#f5f3ec;margin:0 0 14px}.footer-columns p{margin:9px 0}.footer-records{text-align:center;font-size:13px;padding-top:28px}.footer-records p{margin:8px 0}.footer-records span{display:inline-block;margin:0 10px}
@media(max-width:650px){.studio-footer{padding:40px 0 24px}.studio-footer>.footer-inner{padding-inline:6%}.footer-columns{gap:16px;padding-block:24px}.footer-columns h2{font-size:16px}.footer-columns p{font-size:13px}.footer-brand .footer-title{font-size:36px}.footer-brand .footer-name{font-size:18px}.footer-brand>p:last-child{font-size:13px}.footer-records{font-size:11px}.footer-records span{display:block;margin:5px 0}}
/* Shared footer links and registration, with space for the future police record. */
.studio-footer{padding-top:48px;padding-bottom:26px}.footer-brand .footer-title{display:flex;align-items:center;gap:20px}.footer-title img{display:block;width:42px;height:46px;object-fit:contain}.footer-columns{margin-top:30px;padding-block:26px}.studio-footer a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}.footer-records{padding-top:15px;font-size:12px}.footer-records p{margin:6px 0}.footer-records span.icp-number{margin:0 0 0 8px}.footer-records span.record-space{display:inline-block;min-width:150px;min-height:1em;margin:0}.police-record{color:#91958f}@media(max-width:650px){.studio-footer{padding:36px 0 24px}.footer-brand .footer-title{gap:16px}.footer-title img{width:34px;height:38px}.footer-records{font-size:11px}.footer-records span.icp-number{display:block;margin:4px 0}}
.studio-footer a{color:inherit;text-decoration:none}.studio-footer a:hover{color:#fff;text-decoration:underline}.footer-title img{filter:url(#footer-seal-white)}
.police-record[hidden]{display:none!important}
/* Navigation stays available in an ordinary desktop window and on small screens. */
.nav>nav>a{display:inline-flex;align-items:center;white-space:nowrap}.nav>nav{gap:clamp(12px,2.3vw,32px)}
@media(max-width:650px){.nav>nav{gap:12px}.nav>nav>a{font-size:12px}.nav>nav>button{font-size:11px;padding:8px 11px;white-space:nowrap}}
@media(max-width:370px){.nav>nav{gap:9px}.nav>nav>a{font-size:11px}.nav>nav>button{padding:7px 8px;font-size:10px}}
