/* /atelier 生产页专用样式（2026-10-19 改版；设计稿 design-preview/jewelry/DESIGN-ATELIER.md）。
   只在本页加载（view/atelier.templ 里 cssHref("atelier.css")）。类名一律 at- 前缀，不碰全站类。
   颜色只用全站 :root token（--ink / --gold / --paper-2 …），本文件不新增色板与字体。 */
.at{--at-serif:"Tenor Sans","Times New Roman",serif;--at-sans:"Montserrat",-apple-system,"Segoe UI",Roboto,sans-serif;font-family:var(--at-sans);color:var(--ink);letter-spacing:.15px}
.at *{box-sizing:border-box}
.at :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.at-h1{font:400 clamp(28px,3.3vw,46px)/1.1 var(--at-serif);text-transform:uppercase;letter-spacing:.02em;margin:0;max-width:22ch}
.at-h2{font:400 clamp(26px,2.8vw,36px)/1.18 var(--at-serif);margin:0;max-width:24ch}
.at-h3{font:400 21px/1.3 var(--at-serif);margin:0 0 12px}
.at-lead{font-size:18px;line-height:1.6;max-width:46ch;margin:26px 0 0}
.at-lead2{font-size:16px;line-height:1.65;color:var(--ink-soft);max-width:46ch;margin:14px 0 0}
.at-intro{color:var(--ink-soft);font-size:17px;line-height:1.65;max-width:60ch;margin:14px 0 0}
.at-tlink{font-weight:500;color:inherit;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;transition:color .2s}
.at-tlink:hover{color:var(--gold-d)}
.at-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;background:var(--ink);color:#fff;border:1px solid var(--ink);font:500 14px/1 var(--at-sans);letter-spacing:.06em;text-decoration:none;transition:background .2s,color .2s}
.at-btn:hover{background:#000;color:#fff}.at-btn:active{transform:translateY(1px)}
.at-btn-line{background:transparent;color:var(--ink)}.at-btn-line:hover{background:var(--ink);color:#fff}
.at-sec{padding:clamp(56px,7vw,104px) 0}
.at-pt0{padding-top:0}
.at-stone{background:var(--paper-2)}

/* ── 首屏 + 工序：左栏文字往下读，右栏那件货 sticky；舞台宽受视口高约束（舞台 + 说明要整块露出）── */
.at-top{--at-figw:min(540px,calc((100vh - 300px) * .88));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--at-figw));grid-template-areas:"hero fig" "steps fig";column-gap:clamp(40px,6vw,104px);padding:clamp(40px,5vw,72px) 0 clamp(16px,2vw,24px)}
.at-top-solo{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "steps"}
.at-hero{grid-area:hero}
.at-steps-wrap{grid-area:steps;margin-top:clamp(56px,7vw,96px)}
.at-fig{grid-area:fig;position:sticky;top:150px;align-self:start;width:100%;margin:0}
/* 吸顶的图比单步高：列表底部补留白，读到最后一步（顶边过视口中线）时图仍整块吸住 */
@media(min-width:1024px){.at-steps-wrap{padding-bottom:max(0px,calc(50vh - 120px))}.at>.container-x+.at-sec{padding-top:clamp(24px,3vw,48px)}}

.at-stage{position:relative;background:var(--paper-2)}
.at-clip{position:absolute;inset:0;overflow:hidden}
.at-clip img{position:absolute;top:0;max-width:none;height:auto;display:block;mix-blend-mode:multiply}

/* 工序标点：视觉 30px，热区 44px */
.at-pin{position:absolute;z-index:2;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:#fff;border:1px solid var(--gold);color:var(--ink);font:500 13px/28px var(--at-sans);text-align:center;text-decoration:none;letter-spacing:0;box-shadow:0 0 0 4px rgba(255,255,255,.6);transition:background .2s,color .2s,border-color .2s}
.at-pin::after{content:"";position:absolute;inset:-7px;border-radius:50%}
.at-pin:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* 放大镜：直径 = 舞台宽 34%（与 http/atelier.go atelierLensFrac 一致）；镜内同一张图放大，偏移由 handler 算好 */
.at-lens{position:absolute;z-index:3;width:34%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#fff;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 1px var(--gold),0 0 0 6px #fff,0 0 0 7px var(--line),0 18px 36px -16px rgba(33,31,28,.4);transition:left .6s var(--ease),top .6s var(--ease)}
.at-lens img{position:absolute;max-width:none;height:auto;display:block;transition:left .6s var(--ease),top .6s var(--ease)}

.at-cap{margin-top:20px}
.at-cap-step{margin:0;display:flex;flex-direction:column;gap:3px;min-height:50px}
.at-cap-step span{font-size:12.5px;color:var(--ink-soft)}
.at-cap-step b{font-weight:500;font-size:15px;line-height:1.45}
.at-cap-piece{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.5;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:2px 10px}
.at-cap-piece a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);transition:border-color .2s}
.at-cap-piece a:hover{border-color:var(--gold)}

/* 唯一的编排动效：标点按工序顺序出现，放大镜最后落在第一步 */
@keyframes at-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes at-lens-in{from{opacity:0;transform:translate(-50%,-50%) scale(.55)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.at-pin{animation:at-pop .45s var(--ease) both;animation-delay:calc(.25s + var(--i) * .09s)}
.at-lens{animation:at-lens-in .7s var(--ease) .8s both}

/* 工序列表（真序列，所以用序号） */
.at-steps{list-style:none;margin:28px 0 0;padding:0}
.at-step{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:8px;padding:26px 0;border-top:1px solid var(--line);scroll-margin-top:42vh}
.at-step:last-child{border-bottom:1px solid var(--line)}
.at-step-n{font:400 30px/1 var(--at-serif);color:var(--ink-soft);opacity:.5;transition:color .3s,opacity .3s}
.at-step.is-on .at-step-n{color:var(--gold-d);opacity:1}
.at-step-t{font:600 17px/1.35 var(--at-sans);margin:2px 0 8px;letter-spacing:.1px}
.at-step-b{margin:0;font-size:15.5px;line-height:1.7;color:var(--ink-soft);max-width:58ch}
.at-step-on{margin:12px 0 0;font-size:14px;line-height:1.55}
.at-step-on span{color:var(--gold-d);font-weight:600;margin-right:2px}

/* 用的什么料 */
.at-mat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px);margin-top:40px}
.at-mat>div{border-top:1px solid var(--ink);padding-top:22px}
.at-mat p{margin:0 0 18px;font-size:15.5px;line-height:1.7;color:var(--ink-soft)}

/* 跟谁买：标题左、事实右 */
.at-who{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(24px,5vw,80px);align-items:start;border-top:1px solid var(--line);padding-top:clamp(56px,7vw,104px)}
.at-dl{margin:0}
.at-dl>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 24px;padding:16px 0;border-bottom:1px solid var(--line)}
.at-dl>div:first-child{border-top:1px solid var(--line)}
.at-dl dt{font-weight:600;font-size:14px;line-height:1.65}
.at-dl dd{margin:0;font-size:15.5px;line-height:1.65;color:var(--ink-soft)}

/* 出问题怎么办 */
.at-fix{list-style:none;padding:0;margin:36px 0 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,72px)}
.at-fix li{display:flex;flex-direction:column;gap:6px;padding:20px 0;border-top:1px solid var(--line)}
.at-fix b{font-weight:600;font-size:16px}
.at-fix span{font-size:15.5px;line-height:1.65;color:var(--ink-soft);max-width:52ch}

.at-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}

@media(max-width:1023px){
	.at-top{grid-template-columns:minmax(0,1fr);grid-template-areas:"hero" "fig" "steps"}
	.at-fig{position:static;justify-self:center;max-width:440px;margin-top:36px}
	.at-steps-wrap{margin-top:56px}
	.at-mat,.at-who,.at-fix{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:640px){
	.at-h1{font-size:27px}
	.at-lead{font-size:17px}
	.at-step{grid-template-columns:40px minmax(0,1fr)}
	.at-step-n{font-size:26px}
	.at-dl>div{grid-template-columns:minmax(0,1fr)}
	.at-actions .at-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
	.at-pin,.at-lens{animation:none}
	.at-lens,.at-lens img,.at-step-n{transition:none}
}
