:root{--ink:#1E2229;--ink2:#2A2F38;--line:rgba(245,236,220,.16);--paper:#F5ECDC;--mute:rgba(245,236,220,.68);--gold:#D4B07A;
--serif:'Noto Serif SC','Source Han Serif SC','Songti SC','STSong','SimSun',serif;
--sans:-apple-system,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif;--pad:clamp(20px,5vw,72px)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--ink)}
body{font-family:var(--sans);color:var(--paper);background:var(--ink);line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:var(--ink)}
.grain{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;mix-blend-mode:overlay;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.top{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);transition:background .4s,padding .4s,border-color .4s;border-bottom:1px solid transparent}
.top.solid{background:rgba(30,34,41,.9);backdrop-filter:blur(10px);padding:14px var(--pad);border-color:var(--line)}
.mark{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:19px;letter-spacing:.1em}
.mark em{font-style:normal;font-family:var(--sans);font-size:10px;letter-spacing:.32em;color:var(--mute);margin-left:10px}
.seal{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--gold);color:var(--gold);font-size:15px}
.top nav{display:flex;gap:34px;font-size:13px;letter-spacing:.2em;color:var(--mute)}
.top nav a{position:relative;transition:color .3s}.top nav a:hover{color:var(--paper)}
.top nav a::after{content:'';position:absolute;left:0;bottom:-4px;height:1px;width:0;background:var(--gold);transition:width .4s}
.top nav a:hover::after{width:100%}
section{padding:clamp(90px,13vw,180px) var(--pad);border-top:1px solid var(--line);position:relative}
.grid{display:grid;grid-template-columns:minmax(160px,3fr) 9fr;gap:clamp(24px,4vw,64px)}
.label{font-size:12px;letter-spacing:.3em;color:var(--mute);text-transform:uppercase}
.label .no{display:block;font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.1em;margin-bottom:8px}
h1,h2,h3{font-family:var(--serif);font-weight:600}
h2{font-size:clamp(32px,4.6vw,68px);line-height:1.22;letter-spacing:.02em}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.7,.1,1),transform 1.1s cubic-bezier(.2,.7,.1,1)}
.reveal.in{opacity:1;transform:none}
/* hero */
.hero{min-height:min(100vh,940px);border-top:0;display:flex;flex-direction:column;justify-content:space-between;padding-top:120px;padding-bottom:48px;overflow:hidden;
background:radial-gradient(90% 70% at 85% 10%,rgba(212,176,122,.14),transparent 60%),linear-gradient(180deg,#1E2229,#252A33)}
.hero-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.3em;color:var(--mute);border-bottom:1px solid var(--line);padding-bottom:18px}
.hero h1{font-size:clamp(40px,9.6vw,150px);line-height:1.08;letter-spacing:.01em;margin:6vh 0;position:relative;z-index:2}
.hero h1 .indent{display:inline-block;padding-left:1.6em}
.hero h1 i{font-style:normal;color:var(--gold)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;position:relative;z-index:2}
.lede{max-width:560px;font-size:clamp(15px,1.25vw,18px);color:var(--mute)}.lede b{color:var(--paper);font-weight:500}
.scroll{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.3em;color:var(--mute)}
.scroll i{width:1px;height:64px;background:linear-gradient(var(--gold),transparent);animation:drop 2.4s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-orb{position:absolute;right:-8vw;top:14vh;width:52vw;height:52vw;max-width:780px;max-height:780px;border-radius:50%;
border:1px solid rgba(212,176,122,.28);transition:transform 1.2s cubic-bezier(.2,.7,.1,1);z-index:1}
.hero-orb::before,.hero-orb::after{content:'';position:absolute;inset:12%;border-radius:50%;border:1px solid rgba(212,176,122,.16)}
.hero-orb::after{inset:30%;background:radial-gradient(circle,rgba(212,176,122,.22),transparent 70%);border-color:rgba(212,176,122,.38)}
/* about */
.about-body h2{margin-bottom:56px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;color:var(--mute);font-size:16px;max-width:980px}
.pairs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:72px;border-top:1px solid var(--line)}
.pairs div{padding:28px 24px 0 0}
.pairs dt{font-size:12px;letter-spacing:.3em;color:var(--mute)}
.pairs dd{font-family:var(--serif);font-size:clamp(20px,2vw,28px);margin-top:10px}
/* business rail */
.business .head{margin-bottom:64px}
.rail{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--pad)*-1);padding:0 var(--pad) 24px;scrollbar-width:thin;scrollbar-color:var(--gold) transparent}
.rail:focus{outline:none}
.card{flex:0 0 clamp(290px,34vw,500px);min-height:440px;scroll-snap-align:start;background:var(--ink2);padding:40px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background .5s}
.card:hover{background:#343A45}
.card .big{font-family:var(--serif);font-size:clamp(90px,10vw,150px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(212,176,122,.55);transition:color .6s}
.card:hover .big{color:rgba(212,176,122,.18)}
.card h3{font-size:30px;margin:auto 0 14px}
.card p{color:var(--mute);font-size:15px}
.card small{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.3em;color:var(--gold)}
.industries{margin-top:96px}
.industries ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.industries li{padding:24px 0;border-bottom:1px solid var(--line);color:var(--mute);display:flex;gap:20px;align-items:baseline}
.industries li:nth-child(odd){padding-right:32px}
.industries b{font-family:var(--serif);color:var(--paper);font-weight:600;font-size:22px;min-width:5.5em}
/* products */
.plist{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.prod{background:var(--ink);padding:36px;display:flex;flex-direction:column;min-height:280px;transition:background .4s}
.prod:hover{background:#2A2F38}
.prod.feature{grid-column:1/-1;min-height:380px;background:linear-gradient(120deg,#332C22,#1E2229 60%)}
.prod.feature h3{font-size:clamp(56px,8vw,120px);line-height:1;margin-bottom:24px}
.ptag{font-size:11px;letter-spacing:.3em;color:var(--gold);margin-bottom:24px}
.prod h3{font-size:28px;margin-bottom:12px}
.prod p{color:var(--mute);font-size:15px;max-width:560px}
.go{margin-top:auto;padding-top:28px;font-size:13px;letter-spacing:.15em;display:flex;gap:10px}
.go i{font-style:normal;color:var(--gold);transition:transform .4s}.prod:hover .go i{transform:translate(4px,-4px)}
/* method */
.method .head{margin-bottom:72px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.steps li{padding:36px 28px 0 0;position:relative}
.steps li::before{content:'';position:absolute;top:-1px;left:0;width:36px;height:1px;background:var(--gold)}
.steps span{font-family:var(--serif);font-size:clamp(48px,5vw,76px);line-height:1;color:var(--gold);opacity:.9}
.steps h3{font-size:22px;margin:22px 0 10px}.steps p{color:var(--mute);font-size:14px}
.principles{margin-top:96px}
.principles ul{list-style:none;display:flex;flex-wrap:wrap;gap:12px}
.principles li{border:1px solid var(--line);padding:10px 20px;border-radius:999px;font-size:14px;color:var(--mute)}
/* contact */
.contact{background:radial-gradient(70% 90% at 10% 100%,rgba(212,176,122,.16),transparent 60%)}
.contact h2{font-size:clamp(48px,9vw,140px);margin:28px 0 56px}
.cta-row{display:flex;gap:48px;align-items:center;flex-wrap:wrap}
.cta{display:inline-flex;gap:18px;align-items:center;background:var(--gold);color:var(--ink);padding:20px 36px;font-size:16px;letter-spacing:.2em;font-weight:600;transition:gap .4s,background .3s}
.cta:hover{gap:30px;background:#E0C08A}.cta i{font-style:normal}
.note{color:var(--mute);font-size:14px}
.ph{color:rgba(212,176,122,.85);font-size:13px}
.foot{padding:80px var(--pad) 36px;border-top:1px solid var(--line);overflow:hidden}
.fbig{font-family:var(--serif);font-size:clamp(120px,26vw,400px);line-height:.9;color:transparent;-webkit-text-stroke:1px rgba(236,228,214,.14);letter-spacing:.05em;margin-bottom:40px}
.frow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--mute);border-top:1px solid var(--line);padding-top:24px}
.frow a:hover{color:var(--gold)}
@media (max-width:860px){
 .top nav{display:none}
 .grid{grid-template-columns:1fr}
 .cols,.pairs,.industries ul,.plist{grid-template-columns:1fr}
 .pairs div{padding:20px 0 0}
 .industries li:nth-child(odd){padding-right:0}
 .steps{grid-template-columns:1fr 1fr;row-gap:40px}
 .hero h1 .indent{padding-left:.8em}
 .hero h1{font-size:10.5vw}
 .hero-meta span:last-child{display:none}
 .hero-orb{width:90vw;height:90vw;right:-30vw;top:18vh}
 .scroll{display:none}
 .card{min-height:380px;padding:30px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.nw{white-space:nowrap}
