/* yhads-3d premium v7 — restrained platforms + process */
.v7-plat,.v7-flow{position:relative;background:#f1f1f1;isolation:isolate}
.v7-plat{height:420vh}.v7-flow{height:260vh}
.v7-plat::before,.v7-flow::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 55% at 50% 50%,rgba(46,38,34,.035),transparent 70%)}
.v7-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.v7-eyebrow{font-family:"Outfit","Noto Sans TC",sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:#7a6a5e;margin:0 0 1.6rem}
.v7-h{font-family:"Outfit","Noto Sans TC",sans-serif;font-weight:600;font-size:clamp(2.4rem,4.2vw,3.9rem);line-height:1.12;letter-spacing:-.02em;color:#39312d;margin:0;text-shadow:none}
/* platforms */
.v7-plat .v7-sticky{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;max-width:1240px;margin:0 auto;padding:0 6vw;gap:4vw}
.v7-list{list-style:none;margin:3.2rem 0 0;padding:0;border-top:1px solid rgba(46,38,34,.08)}
.v7-item{display:grid;grid-template-columns:3rem 1fr;padding:1.15rem 0;border-bottom:1px solid rgba(46,38,34,.08);position:relative;transition:opacity .6s ease}
.v7-item::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:#7a6a5e;transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.v7-item.on::before{transform:scaleX(1)}
.v7-idx{font-family:"Outfit",sans-serif;font-weight:300;font-size:.85rem;color:rgba(57,49,45,.4);padding-top:.3rem;letter-spacing:.08em}
.v7-item h3{font-family:"Outfit","Noto Sans TC",sans-serif;font-weight:500;font-size:1.35rem;letter-spacing:-.005em;color:rgba(57,49,45,.45);margin:0;transition:color .6s}
.v7-item.on h3{color:#39312d}.v7-item.on .v7-idx{color:#7a6a5e}
.v7-line1,.v7-desc{margin:0;overflow:hidden;max-height:0;opacity:0;transition:max-height .7s ease,opacity .6s ease,margin .6s}
.v7-line1{font-size:1rem;color:#39312d;font-weight:500}
.v7-desc{font-size:.92rem;line-height:1.8;color:rgba(57,49,45,.6)}
.v7-item.on .v7-line1{max-height:3rem;opacity:1;margin-top:.5rem}.v7-item.on .v7-desc{max-height:6rem;opacity:1;margin-top:.3rem}
.v7-stage{position:relative;height:100vh;display:grid;place-items:center}
.v7-stage canvas.gl{position:absolute;inset:0;width:100%!important;height:100%!important}
.v7-phone-css{position:relative;width:min(290px,60vw);aspect-ratio:540/1170;border-radius:46px;padding:10px;background:#e7e7e7;box-shadow:inset 0 0 0 1.5px #aaa39d,0 40px 70px -30px rgba(247,247,247,.8)}
.v7-phone-css .v7-screen{width:100%;height:100%;border-radius:37px;display:block}
.v7-shadow{position:absolute;bottom:12vh;left:50%;width:260px;height:30px;margin-left:-130px;background:radial-gradient(ellipse,rgba(247,247,247,.55),transparent 70%);filter:blur(6px)}
.v7-plat.gl .v7-phone-css,.v7-plat.gl .v7-shadow{display:none}
.v7-caption{position:absolute;right:6vw;bottom:5vh;margin:0;font-size:.7rem;letter-spacing:.18em;color:rgba(57,49,45,.32)}
/* process */
.v7-flow .v7-sticky{display:flex;flex-direction:column;justify-content:center;max-width:1240px;margin:0 auto;padding:0 6vw}
.v7-sub{margin:1.4rem 0 0;color:rgba(57,49,45,.6);font-size:1rem;max-width:34rem}
.v7-track{position:relative;margin-top:5.5rem}
.v7-rail{position:absolute;left:0;right:0;top:0;height:1px;background:rgba(46,38,34,.12)}
.v7-fill{position:absolute;inset:0;background:#7a6a5e;transform:scaleX(var(--p,0));transform-origin:left}
.v7-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:3vw}
.v7-st{position:relative;padding-top:2.2rem;opacity:.22;transform:translateY(calc(18px * (1 - var(--o,0))));transition:opacity .7s ease}
.v7-st::before{content:"";position:absolute;top:-4px;left:0;width:9px;height:9px;border-radius:50%;background:#f1f1f1;border:1px solid rgba(46,38,34,.35);transition:all .6s}
.v7-st.on{opacity:1}.v7-st.on::before{background:#7a6a5e;border-color:#7a6a5e}
.v7-num{display:block;font-family:"Outfit",sans-serif;font-weight:200;font-size:clamp(3rem,5vw,4.6rem);line-height:1;letter-spacing:-.03em;color:#39312d}
.v7-st.on .v7-num{color:#7a6a5e}
.v7-st h3{font-family:"Outfit","Noto Sans TC",sans-serif;font-weight:600;font-size:1.25rem;color:#39312d;margin:1.4rem 0 .6rem}
.v7-st p{font-size:.92rem;line-height:1.85;color:rgba(57,49,45,.62);margin:0;max-width:16rem}
@media (max-width:820px){
 .v7-plat{height:420vh}.v7-plat .v7-sticky{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:84px 7vw 0;gap:0;align-items:start}
 .v7-h{font-size:2rem}.v7-eyebrow{margin-bottom:1rem}.v7-list{margin-top:1.4rem}
 .v7-item{padding:.7rem 0}.v7-item:not(.on){display:none}.v7-item h3{font-size:1.15rem}
 .v7-stage{height:52vh;min-height:380px}.v7-phone-css{width:min(200px,50vw)}.v7-shadow{bottom:0}
 .v7-caption{right:7vw;bottom:3vh}
 .v7-flow{height:auto}.v7-flow .v7-sticky{position:relative;height:auto;padding:6rem 7vw}
 .v7-track{margin-top:3rem;padding-left:1.6rem}
 .v7-rail{left:0;right:auto;top:0;bottom:0;width:1px;height:auto}.v7-fill{transform:scaleY(var(--p,0));transform-origin:top}
 .v7-steps{grid-template-columns:1fr;gap:2.6rem}.v7-st{padding-top:0}.v7-st::before{left:calc(-1.6rem - 4px);top:.9rem}
 .v7-num{font-size:2.6rem}.v7-st h3{margin-top:.6rem}
}
@media (prefers-reduced-motion:reduce){.v7-st{opacity:1!important;transform:none!important}.v7-fill{transform:none!important}}
