/* =========================================================
   宁润羊绒 NINGRUN CASHMERE — eco-luxury editorial
   ========================================================= */

:root{
  /* paper / ink */
  --paper:    #F2ECE0;
  --paper-2:  #E9DFCD;
  --paper-3:  #FBF7EF;
  --ink:      #1E241C;
  --ink-2:    #4A5142;
  /* green */
  --pine:      #1F3A2D;
  --pine-deep: #14271D;
  --pine-2:    #2C4E3B;
  --sage:      #7E8C68;
  /* accent */
  --camel:   #B5894F;
  --camel-2: #C8A06A;
  /* lines */
  --line:        rgba(30,36,28,.14);
  --line-strong: rgba(30,36,28,.28);
  --line-light:  rgba(245,240,230,.18);

  --serif-cn:"Noto Serif SC", serif;
  --sans-cn:"Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;
  --serif:"Fraunces","Noto Serif SC", serif;
  --label:"Jost","Noto Sans SC", sans-serif;

  --ease: cubic-bezier(.16,1,.3,1);
  --wrap: 1380px;
  --pad: clamp(22px, 5vw, 96px);
  --header-h: 84px;
}

/* ------------ reset ------------ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans-cn);
  background:var(--paper);
  color:var(--ink);
  line-height:1.75;
  font-weight:300;
  letter-spacing:.01em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
ul{list-style:none}
::selection{background:var(--pine);color:var(--paper-3)}

/* lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-stopped{overflow:hidden}

/* ------------ utilities ------------ */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.section{position:relative;padding-block:clamp(90px,13vh,190px)}
.display{font-family:var(--serif);font-weight:300;letter-spacing:.01em;line-height:1.06}
.display em{font-style:italic;color:var(--camel);font-weight:300}

.eyebrow{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--label);font-size:.74rem;font-weight:400;
  letter-spacing:.26em;text-transform:uppercase;color:var(--ink-2);
}
.eyebrow i{
  font-style:normal;font-size:.7rem;letter-spacing:.05em;
  color:var(--camel);border:1px solid var(--camel);border-radius:50%;
  width:1.9em;height:1.9em;display:grid;place-items:center;
}
.eyebrow--light{color:rgba(244,238,228,.72)}
.eyebrow--light i{color:var(--camel-2);border-color:rgba(200,160,106,.6)}

.h-sec{font-size:clamp(2rem,5.4vw,4.6rem)}

/* loop mark */
.loopmark{width:100%;height:100%;overflow:visible}
.loopmark__ring{fill:none;stroke:var(--line-strong);stroke-width:2}
.loopmark__a,.loopmark__b{fill:none;stroke:var(--camel);stroke-width:4;stroke-linecap:round}
.loopmark--sm .loopmark__ring{stroke:rgba(30,36,28,.32)}

/* buttons */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--label);font-size:.84rem;letter-spacing:.12em;
  padding:1.05em 1.7em;border-radius:60px;position:relative;overflow:hidden;
  transition:transform .5s var(--ease),color .5s var(--ease),border-color .5s;
  will-change:transform;
}
.btn svg{transition:transform .5s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn--solid{background:var(--pine);color:var(--paper-3)}
.btn--solid::before{content:"";position:absolute;inset:0;background:var(--camel);transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn--solid:hover{color:#1c1408}
.btn--solid:hover::before{transform:translateY(0)}
.btn--ghost{border:1px solid var(--line-strong);color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn--lg{padding:1.25em 2.2em;font-size:.92rem;margin-top:clamp(34px,5vw,60px)}

/* ------------ grain / progress / cursor ------------ */
.grain{
  position:fixed;inset:-150%;z-index:9000;pointer-events:none;opacity:.40;
  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 type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;animation:grain 7s steps(6) infinite;
}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-8%,4%)}40%{transform:translate(5%,-6%)}60%{transform:translate(-4%,8%)}80%{transform:translate(7%,3%)}100%{transform:translate(0,0)}}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:8000;pointer-events:none}
.scroll-progress__bar{display:block;height:100%;width:0;background:var(--camel);transform-origin:left}

.cursor{position:fixed;top:0;left:0;z-index:9500;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .4s}
.cursor__dot{position:absolute;width:9px;height:9px;border-radius:50%;background:#f4eee4;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),background .3s}
.cursor.is-hover .cursor__dot{width:54px;height:54px;background:rgba(244,238,228,.25)}
@media (hover:hover) and (pointer:fine){.cursor{opacity:1}}

/* ------------ preloader ------------ */
.preloader{position:fixed;inset:0;z-index:9999;background:var(--paper);display:grid;place-items:center;transition:opacity .8s ease}
.preloader__inner{display:flex;flex-direction:column;align-items:center;gap:26px;width:min(78vw,360px)}
.preloader__mark{width:60px;height:60px;animation:spin 9s linear infinite}
.preloader__word{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;overflow:hidden}
.preloader__cn{font-family:var(--serif-cn);font-weight:500;font-size:1.7rem;letter-spacing:.34em;text-indent:.34em;color:var(--ink);
  transform:translateY(110%);animation:rise .9s .15s var(--ease) forwards}
.preloader__en{font-family:var(--label);font-size:.68rem;letter-spacing:.4em;color:var(--ink-2);
  transform:translateY(110%);animation:rise .9s .28s var(--ease) forwards}
.preloader__line{width:100%;height:1px;background:var(--line)}
.preloader__line-fill{display:block;height:100%;width:0;background:var(--pine)}
.preloader__count{font-family:var(--label);font-size:.74rem;letter-spacing:.2em;color:var(--ink-2)}
.preloader__count i{font-style:normal;margin-left:1px}
@keyframes rise{to{transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
.preloader.is-done{opacity:0;pointer-events:none}
body.is-loading{overflow:hidden;height:100vh}

/* ------------ header ------------ */
.header{
  position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;
  padding-inline:var(--pad);
  transition:background .5s var(--ease),height .5s var(--ease),box-shadow .5s,border-color .5s;
  border-bottom:1px solid transparent;
}
.header.is-scrolled{
  height:66px;background:rgba(242,236,224,.82);backdrop-filter:blur(14px) saturate(1.1);
  border-bottom-color:var(--line);
}
.header.is-hidden{transform:translateY(-100%);transition:transform .5s var(--ease)}

.brand{display:flex;align-items:center;gap:13px;z-index:1002}
.brand__mark{width:34px;height:34px;flex:none;display:block}
.brand__txt{display:flex;flex-direction:column;line-height:1.15}
.brand__cn{font-family:var(--serif-cn);font-weight:700;font-size:1.18rem;letter-spacing:.14em}
.brand__en{font-family:var(--label);font-size:.56rem;letter-spacing:.28em;color:var(--ink-2);text-transform:uppercase}

.nav{display:flex;gap:clamp(14px,2vw,34px)}
.nav a{position:relative;font-size:.92rem;display:flex;align-items:center;gap:.45em;padding-block:6px;color:var(--ink)}
.nav a i{font-style:normal;font-family:var(--label);font-size:.62rem;letter-spacing:.05em;color:var(--camel);opacity:.85}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--ink);transition:width .45s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{width:100%}
.nav a.is-active i{opacity:1}

.header__cta{display:inline-flex;align-items:center;gap:.5em;font-family:var(--label);font-size:.8rem;letter-spacing:.1em;
  border:1px solid var(--line-strong);padding:.7em 1.25em;border-radius:50px;transition:all .45s var(--ease)}
.header__cta:hover{background:var(--pine);color:var(--paper-3);border-color:var(--pine)}
.header__cta svg{transition:transform .45s var(--ease)}
.header__cta:hover svg{transform:translateX(4px)}

.header__right{display:flex;align-items:center;gap:clamp(12px,2vw,26px);margin-left:auto}

/* language switcher */
.langsw{position:relative;flex:none}
.langsw__cur{display:inline-flex;align-items:center;gap:.45em;font-family:var(--label);font-size:.78rem;letter-spacing:.08em;
  padding:.5em .8em;border:1px solid var(--line-strong);border-radius:40px;transition:border-color .4s var(--ease),background .4s}
.langsw__cur:hover{border-color:var(--ink)}
.langsw__cur svg{width:15px;height:15px;opacity:.65}
.langsw__code{min-width:1.4em;text-align:center}
.langsw__list{position:absolute;top:calc(100% + 10px);right:0;min-width:172px;list-style:none;
  background:var(--paper-3);border:1px solid var(--line);border-radius:12px;padding:6px;
  box-shadow:0 22px 60px -24px rgba(20,39,29,.45);opacity:0;visibility:hidden;
  transform:translateY(-8px) scale(.98);transform-origin:top right;
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;z-index:30}
.langsw.is-open .langsw__list{opacity:1;visibility:visible;transform:none}
.langsw__list li{margin:0}
.langsw__opt{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;
  padding:.6em .8em;border-radius:8px;font-size:.9rem;color:var(--ink-2);transition:background .3s,color .3s}
.langsw__opt:hover{background:var(--paper-2);color:var(--ink)}
.langsw__opt.is-active{color:var(--pine);font-weight:500}
.langsw__opt i{font-style:normal;font-family:var(--label);font-size:.7rem;letter-spacing:.1em;color:var(--camel)}

.burger{display:none;width:46px;height:46px;position:relative;z-index:1002}
.burger span{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .45s var(--ease),opacity .3s,background .3s}
.burger span:nth-child(1){top:19px}
.burger span:nth-child(2){bottom:19px}
.menu-open .burger span{background:var(--paper-3)}
.menu-open .burger span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.menu-open .burger span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

/* ------------ mobile menu ------------ */
.menu{position:fixed;inset:0;z-index:1001;pointer-events:none;display:flex;flex-direction:column;justify-content:center}
.menu__bg{position:absolute;inset:0;background:var(--pine-deep);clip-path:circle(0% at calc(100% - 44px) 40px);transition:clip-path .8s var(--ease)}
.menu.is-open{pointer-events:auto}
.menu.is-open .menu__bg{clip-path:circle(150% at calc(100% - 44px) 40px)}
.menu__nav{position:relative;padding-inline:var(--pad);display:flex;flex-direction:column;gap:clamp(6px,1.6vh,16px)}
.menu__link{display:flex;align-items:baseline;gap:18px;color:var(--paper-3);overflow:hidden;
  transform:translateY(120%);opacity:0;transition:transform .7s var(--ease),opacity .7s}
.menu.is-open .menu__link{transform:translateY(0);opacity:1}
.menu__link i{font-family:var(--label);font-size:.74rem;letter-spacing:.1em;color:var(--camel-2);width:1.6em}
.menu__link span{font-family:var(--serif-cn);font-weight:500;font-size:clamp(1.8rem,7vw,2.8rem);letter-spacing:.08em}
.menu__link:active span{color:var(--camel-2)}
.menu__foot{position:relative;margin-top:clamp(30px,6vh,60px);padding-inline:var(--pad);color:rgba(244,238,228,.7);
  font-size:.82rem;display:flex;flex-direction:column;gap:8px;
  transform:translateY(20px);opacity:0;transition:.7s .4s var(--ease)}
.menu.is-open .menu__foot{transform:none;opacity:1}
.menu__foot .lbl{display:inline-block;width:3.4em;color:var(--camel-2);font-family:var(--label);letter-spacing:.1em;font-size:.72rem}

/* ------------ HERO ------------ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding-top:var(--header-h)}
.hero__media{position:absolute;inset:-8% 0;z-index:-2;will-change:transform}
.hero__img{width:100%;height:116%;object-fit:cover;object-position:60% 50%}
.hero__veil{position:absolute;inset:0;
  background:
    linear-gradient(98deg, rgba(242,236,224,.96) 0%, rgba(242,236,224,.78) 30%, rgba(242,236,224,.30) 58%, rgba(242,236,224,0) 80%),
    linear-gradient(0deg, var(--paper) 1%, rgba(242,236,224,0) 26%);
}
.hero__content{position:relative;width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.hero__eyebrow{display:inline-flex;align-items:center;gap:.7em;font-family:var(--label);
  font-size:clamp(.66rem,1.1vw,.8rem);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);margin-bottom:clamp(20px,3.5vw,38px)}
.hero__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--camel);box-shadow:0 0 0 4px rgba(181,137,79,.18)}
.hero__title{font-size:clamp(2.55rem,8.6vw,8rem);font-weight:300;color:var(--ink)}
.hero__title em{font-style:italic}
.hero__lead{max-width:46ch;margin-top:clamp(26px,3.5vw,42px);font-size:clamp(.96rem,1.18vw,1.12rem);
  line-height:2;color:var(--ink-2);font-weight:300}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(30px,4vw,46px)}

.hero__badge{position:absolute;right:var(--pad);bottom:clamp(28px,7vh,72px);width:118px;height:118px;display:grid;place-items:center}
.hero__badge-ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.hero__badge-ring text{font-family:var(--label);font-size:9.2px;letter-spacing:1.5px;fill:var(--ink-2);text-transform:uppercase}
.hero__badge-arrow{width:40px;height:40px;border-radius:50%;background:var(--pine);color:var(--paper-3);display:grid;place-items:center;transition:transform .5s var(--ease)}
.hero__badge:hover .hero__badge-arrow{transform:translateY(4px)}
.hero__badge-arrow svg{animation:nudge 2.4s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

.hero__side{position:absolute;left:var(--pad);bottom:clamp(28px,7vh,72px);writing-mode:vertical-rl;
  font-family:var(--label);font-size:.7rem;letter-spacing:.24em;color:var(--ink-2);text-transform:uppercase}
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--label);font-size:.6rem;letter-spacing:.3em;color:var(--ink-2)}
.hero__scroll i{width:1px;height:46px;background:linear-gradient(var(--ink-2),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--camel);animation:scrolldot 2s ease-in-out infinite}
@keyframes scrolldot{0%{top:-50%}60%,100%{top:120%}}

/* ------------ MESSAGE ------------ */
.message{text-align:center;overflow:hidden}
.ghost-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif-cn);font-weight:700;
  font-size:clamp(16rem,42vw,46rem);color:rgba(30,36,28,.035);z-index:0;pointer-events:none;white-space:nowrap;letter-spacing:.1em}
.message .wrap{position:relative;z-index:1}
.message .eyebrow{margin-bottom:clamp(34px,5vw,60px)}
.message__text{font-size:clamp(1.32rem,3.1vw,2.75rem);line-height:1.7;font-weight:300;max-width:20em;margin-inline:auto;color:var(--ink-2)}
.message__text span,.message__text b,.message__text em{transition:opacity 1s var(--ease),filter 1s var(--ease)}
.message__text b{font-weight:500;color:var(--ink);font-style:normal}
.message__text em{font-style:italic;color:var(--camel);font-family:var(--serif)}
.message__sign{margin-top:clamp(40px,6vw,72px);display:inline-flex;align-items:center;gap:14px;
  font-family:var(--serif-cn);letter-spacing:.12em;color:var(--ink);font-size:1rem}
.message__loop{width:30px;height:30px;display:block}
.message__loop .loopmark{animation:spin 12s linear infinite}

/* ------------ ABOUT ------------ */
.about__grid{display:grid;grid-template-columns:0.92fr 1.08fr;gap:clamp(40px,7vw,110px);align-items:start}
.about__sticky{position:sticky;top:120px}
.about__sticky .eyebrow{margin-bottom:26px}
.about__sticky .h-sec{margin-bottom:clamp(28px,4vw,46px)}
.about__fig{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/5;max-width:420px}
.about__fig img{width:100%;height:112%;object-fit:cover}
.about__fig figcaption{position:absolute;left:18px;bottom:16px;font-family:var(--label);font-size:.72rem;letter-spacing:.18em;
  color:var(--paper-3);text-transform:uppercase;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.about__body p{font-size:clamp(.98rem,1.12vw,1.08rem);line-height:2.05;color:var(--ink-2);margin-bottom:1.5em;font-weight:300}
.about__body p:first-child::first-letter{font-family:var(--serif);font-size:3.4em;line-height:.8;float:left;
  margin:.06em .14em -.05em 0;color:var(--pine);font-weight:400}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,30px);margin-top:clamp(40px,5vw,64px);
  padding-top:clamp(34px,4vw,48px);border-top:1px solid var(--line)}
.stat{display:flex;flex-direction:column;gap:8px}
.stat__num{font-family:var(--serif);font-size:clamp(2.4rem,4.6vw,3.7rem);font-weight:300;color:var(--pine);line-height:1;display:flex;align-items:baseline;gap:.08em}
.stat__num i{font-style:normal;font-family:var(--serif-cn);font-size:.34em;color:var(--camel)}
.stat__lbl{font-size:.84rem;color:var(--ink-2);letter-spacing:.02em}

/* ------------ BUSINESS ------------ */
.business{background:var(--paper-2)}
.sec-head{margin-bottom:clamp(46px,6vw,80px);max-width:760px}
.sec-head--center{text-align:center;margin-inline:auto}
.sec-head .eyebrow{margin-bottom:22px}
.sec-head__sub{margin-top:24px;font-size:clamp(.98rem,1.15vw,1.1rem);color:var(--ink-2);line-height:1.95;max-width:54ch}
.sec-head--center .sec-head__sub{margin-inline:auto}

.business__main{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,80px);align-items:center}
.business__fig{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3}
.business__fig img{width:100%;height:118%;object-fit:cover}
.business__tag{position:absolute;top:18px;left:18px;font-family:var(--label);font-size:.66rem;letter-spacing:.22em;
  background:rgba(20,39,29,.78);color:var(--paper-3);padding:.5em 1em;border-radius:40px;backdrop-filter:blur(4px)}
.business__name{font-family:var(--serif-cn);font-weight:700;font-size:clamp(1.4rem,2.4vw,2rem);margin-bottom:1em;letter-spacing:.03em}
.business__txt p{font-size:clamp(.98rem,1.12vw,1.06rem);line-height:2.05;color:var(--ink-2);font-weight:300}

.feat{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin:clamp(30px,3.5vw,42px) 0;border:1px solid var(--line)}
.feat li{background:var(--paper-2);padding:1.15em 1.2em;display:flex;flex-direction:column;gap:5px;transition:background .4s}
.feat li:hover{background:var(--paper-3)}
.feat li span{font-weight:500;color:var(--ink);font-size:1rem}
.feat li em{font-style:normal;font-size:.82rem;color:var(--ink-2)}

.applies{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.applies__lbl{font-family:var(--label);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-right:6px}
.chip{font-size:.85rem;border:1px solid var(--line-strong);border-radius:40px;padding:.5em 1.1em;transition:all .4s var(--ease)}
.chip:hover{background:var(--pine);color:var(--paper-3);border-color:var(--pine);transform:translateY(-2px)}

/* ------------ BAND (green) ------------ */
.band{position:relative;min-height:78vh;display:flex;align-items:center;overflow:hidden;color:var(--paper-3)}
.band__media{position:absolute;inset:-10% 0;z-index:0;will-change:transform}
.band__media img{width:100%;height:120%;object-fit:cover}
.band__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,32,22,.78) 0%,rgba(18,32,22,.5) 45%,rgba(18,32,22,.12) 100%)}
.band__content{position:relative;z-index:1;padding-block:clamp(70px,10vw,120px)}
.band .eyebrow{margin-bottom:28px}
.band__title{font-size:clamp(2.6rem,7vw,6rem);color:var(--paper-3);margin-bottom:30px}
.band__title em{color:var(--camel-2)}
.band__text{max-width:46ch;font-size:clamp(1rem,1.3vw,1.18rem);line-height:2;color:rgba(244,238,228,.86);font-weight:300}

/* ------------ STRENGTHS ------------ */
.strengths .sec-head--center{margin-bottom:clamp(40px,5vw,66px)}
.adv{border-top:1px solid var(--line)}
.adv__item{position:relative;border-bottom:1px solid var(--line);padding:clamp(26px,3.4vw,42px) 0;
  display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,60px);align-items:start;
  transition:padding-left .5s var(--ease)}
.adv__idx{font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.5rem);color:var(--camel);padding-top:.2em;font-weight:300}
.adv__head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.adv__head h3{font-family:var(--serif-cn);font-weight:700;font-size:clamp(1.3rem,2.6vw,2.15rem);letter-spacing:.03em;line-height:1.3}
.adv__head h3 .adv__t{font-weight:700}
.adv__head h3 .adv__s{font-weight:300;color:var(--ink-2);font-size:.62em;margin-left:.4em}
.adv__plus{position:relative;width:24px;height:24px;flex:none}
.adv__plus::before,.adv__plus::after{content:"";position:absolute;background:var(--ink-2);transition:transform .5s var(--ease),background .4s}
.adv__plus::before{top:50%;left:0;right:0;height:1.5px;transform:translateY(-50%)}
.adv__plus::after{left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%)}
.adv__item p{grid-column:2;max-width:62ch;color:var(--ink-2);font-size:clamp(.95rem,1.05vw,1.04rem);line-height:1.95;
  max-height:0;opacity:0;overflow:hidden;transform:translateY(8px);
  transition:max-height .6s var(--ease),opacity .5s var(--ease),transform .6s var(--ease),margin-top .6s var(--ease)}
.adv__item:hover{padding-left:clamp(8px,1.5vw,26px)}
.adv__item:hover .adv__idx{color:var(--pine)}
.adv__item:hover .adv__plus::after{transform:translateX(-50%) rotate(90deg);background:var(--camel)}
.adv__item:hover .adv__plus::before{background:var(--camel)}
.adv__item:hover p{max-height:240px;opacity:1;transform:none;margin-top:18px}
@media (hover:none){
  .adv__item p{max-height:240px;opacity:1;transform:none;margin-top:16px}
  .adv__plus{display:none}
}

/* ------------ PHILOSOPHY (dark) ------------ */
.philo{background:var(--pine-deep);color:var(--paper-3);overflow:hidden}
.philo__marquee{position:absolute;top:8%;left:0;right:0;opacity:.05;pointer-events:none;overflow:hidden}
.philo__track{display:flex;white-space:nowrap;animation:marquee 32s linear infinite;font-family:var(--serif-cn);
  font-weight:700;font-size:clamp(5rem,14vw,13rem)}
.philo__track span{padding-right:.4em}
@keyframes marquee{to{transform:translateX(-33.33%)}}
.philo .h-sec{color:var(--paper-3)}
.philo .h-sec em{color:var(--camel-2)}

.philo__values{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,4vw,64px);
  margin:clamp(46px,6vw,80px) 0;padding-block:clamp(30px,4vw,44px);border-block:1px solid var(--line-light)}
.philo__values span{font-family:var(--serif-cn);font-weight:500;font-size:clamp(1.6rem,4vw,3rem);letter-spacing:.16em;
  color:var(--paper-3);position:relative;transition:color .4s}
.philo__values span:hover{color:var(--camel-2)}

.culture{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(14px,1.6vw,22px)}
.culture__card{grid-column:span 2;border:1px solid var(--line-light);border-radius:5px;padding:clamp(26px,3vw,40px);
  background:rgba(255,255,255,.012);transition:background .5s var(--ease),transform .5s var(--ease),border-color .5s}
.culture__card--wide{grid-column:span 3}
.culture__card:hover{background:rgba(200,160,106,.06);border-color:rgba(200,160,106,.34);transform:translateY(-4px)}
.culture__k{display:block;font-family:var(--label);font-size:.74rem;letter-spacing:.2em;color:var(--camel-2);
  text-transform:uppercase;margin-bottom:18px}
.culture__card p{color:rgba(244,238,228,.82);font-size:clamp(.96rem,1.1vw,1.08rem);line-height:1.95;font-weight:300}
.culture__card--wide p{font-size:clamp(1.04rem,1.3vw,1.24rem);color:var(--paper-3)}

/* ------------ PARTNERSHIP ------------ */
.partner__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,100px);align-items:start}
.partner__lead .eyebrow{margin-bottom:22px}
.partner__lead .h-sec{margin-bottom:clamp(28px,3.5vw,42px)}
.partner__lead p{font-size:clamp(.98rem,1.12vw,1.08rem);line-height:2.05;color:var(--ink-2);margin-bottom:1.4em;font-weight:300}
.partner__cols{display:grid;gap:clamp(26px,3vw,40px);position:sticky;top:120px}
.partner__block{border-top:1px solid var(--line-strong);padding-top:24px}
.partner__k{display:block;font-family:var(--label);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--camel);margin-bottom:18px}
.partner__block ul{display:grid;gap:2px}
.partner__block li{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:.85em 0;border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease)}
.partner__block li:hover{padding-left:10px}
.partner__block li b{font-weight:500;font-size:1.06rem}
.partner__block li em{font-style:normal;font-size:.84rem;color:var(--ink-2);text-align:right}

/* ------------ CONTACT ------------ */
.contact{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;color:var(--paper-3);
  padding-block:clamp(90px,12vw,150px)}
.contact__media{position:absolute;inset:-10% 0;z-index:0;will-change:transform}
.contact__media img{width:100%;height:120%;object-fit:cover;object-position:50% 60%}
.contact__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,32,22,.62) 0%,rgba(18,32,22,.72) 60%,rgba(18,32,22,.86) 100%)}
.contact__content{position:relative;z-index:1;text-align:center}
.contact .eyebrow{margin-bottom:28px}
.contact__title{font-size:clamp(2.6rem,7.5vw,6.4rem);color:var(--paper-3)}
.contact__sub{margin:28px auto 0;max-width:40ch;font-size:clamp(1rem,1.25vw,1.16rem);color:rgba(244,238,228,.82);line-height:1.9}

.contact__cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.4vw,20px);
  margin-top:clamp(40px,5vw,64px);text-align:left}
.cc__v--email{font-family:var(--label);font-size:clamp(.92rem,1.15vw,1.05rem);letter-spacing:.01em;
  overflow-wrap:anywhere;line-height:1.5}
.cc{display:flex;flex-direction:column;gap:10px;padding:clamp(24px,2.6vw,36px);border:1px solid var(--line-light);border-radius:6px;
  background:rgba(255,255,255,.03);backdrop-filter:blur(6px);transition:background .5s var(--ease),transform .5s var(--ease),border-color .5s;
  text-align:left;align-items:flex-start}
.cc:not(.cc--static):hover{background:rgba(200,160,106,.12);border-color:rgba(200,160,106,.4);transform:translateY(-5px)}
.cc__k{font-family:var(--label);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--camel-2)}
.cc__v{font-family:var(--serif-cn);font-weight:500;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.4;color:var(--paper-3)}
.cc__sub{font-size:.84rem;color:rgba(244,238,228,.68);margin-top:auto}

/* ------------ FOOTER ------------ */
.footer{background:var(--ink);color:rgba(244,238,228,.72);padding-top:clamp(60px,7vw,100px)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:clamp(34px,4vw,60px);
  padding-bottom:clamp(46px,5vw,70px);border-bottom:1px solid rgba(244,238,228,.12)}
.footer__brand{display:flex;flex-direction:column;gap:7px}
.footer__brand .brand__mark{width:40px;height:40px;margin-bottom:8px}
.footer__brand .loopmark__ring{stroke:rgba(244,238,228,.3)}
.footer__cn{font-family:var(--serif-cn);font-weight:700;font-size:1.16rem;color:var(--paper-3);letter-spacing:.04em}
.footer__en{font-family:var(--label);font-size:.62rem;letter-spacing:.18em;color:rgba(244,238,228,.5);text-transform:uppercase}
.footer__slogan{margin-top:14px;font-family:var(--serif-cn);font-size:.96rem;color:var(--camel-2);letter-spacing:.06em}
.footer__nav{display:flex;flex-direction:column;gap:13px;align-content:start}
.footer__nav a{width:fit-content;font-size:.92rem;position:relative;transition:color .4s,padding-left .4s var(--ease)}
.footer__nav a:hover{color:var(--paper-3);padding-left:8px}
.footer__info{display:flex;flex-direction:column;gap:14px;font-size:.92rem}
.footer__info .lbl{display:inline-block;width:4em;color:var(--camel-2);font-family:var(--label);font-size:.74rem;letter-spacing:.1em}
.footer__info a:hover{color:var(--paper-3)}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-block:26px 32px;font-size:.78rem;color:rgba(244,238,228,.5);flex-wrap:wrap}
.footer__top{display:inline-flex;align-items:center;gap:.5em;font-family:var(--label);letter-spacing:.1em;transition:color .4s}
.footer__top:hover{color:var(--paper-3)}
.footer__top svg{transition:transform .4s var(--ease)}
.footer__top:hover svg{transform:translateY(-3px)}

/* ===================== REVEAL SYSTEM ===================== */
[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
[data-reveal].is-inview{opacity:1;transform:none}

.line{display:block;overflow:hidden;padding-block:.04em}
.line__inner{display:block;transform:translateY(115%);transition:transform 1.05s var(--ease)}
[data-reveal="mask"] .line:nth-child(2) .line__inner{transition-delay:.12s}
[data-reveal="mask"] .line:nth-child(3) .line__inner{transition-delay:.24s}
[data-reveal="mask"].is-inview .line__inner{transform:none}

[data-reveal="fade"]{opacity:1;transform:none}
.message__text span,.message__text b,.message__text em{opacity:.16;filter:blur(.5px)}
.message__text.is-inview span,.message__text.is-inview b,.message__text.is-inview em{opacity:1;filter:none}
.message__text.is-inview *:nth-child(1){transition-delay:.0s}
.message__text.is-inview *:nth-child(2){transition-delay:.12s}
.message__text.is-inview *:nth-child(3){transition-delay:.24s}
.message__text.is-inview *:nth-child(4){transition-delay:.36s}
.message__text.is-inview *:nth-child(5){transition-delay:.48s}
.message__text.is-inview *:nth-child(6){transition-delay:.6s}
.message__text.is-inview *:nth-child(7){transition-delay:.72s}
.message__text.is-inview *:nth-child(8){transition-delay:.84s}

[data-reveal-children] > *{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal-children].is-inview > *{opacity:1;transform:none}
[data-reveal-children].is-inview > *:nth-child(1){transition-delay:.05s}
[data-reveal-children].is-inview > *:nth-child(2){transition-delay:.13s}
[data-reveal-children].is-inview > *:nth-child(3){transition-delay:.21s}
[data-reveal-children].is-inview > *:nth-child(4){transition-delay:.29s}
[data-reveal-children].is-inview > *:nth-child(5){transition-delay:.37s}
[data-reveal-children].is-inview > *:nth-child(6){transition-delay:.45s}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1100px){
  .nav{display:none}
  .header__cta{display:none}
  .burger{display:block}
  .contact__cards{grid-template-columns:repeat(2,1fr)}
  .about__grid{grid-template-columns:1fr;gap:48px}
  .about__sticky{position:static;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end}
  .about__fig{max-width:none;grid-row:span 2}
  .culture__card,.culture__card--wide{grid-column:span 3}
}
@media (max-width:880px){
  :root{--header-h:70px}
  .business__main{grid-template-columns:1fr;gap:30px}
  .business__fig{aspect-ratio:16/10;order:-1}
  .partner__grid{grid-template-columns:1fr;gap:44px}
  .partner__cols{position:static}
  .stats{grid-template-columns:repeat(2,1fr);gap:30px 18px}
  .culture{grid-template-columns:repeat(2,1fr)}
  .culture__card,.culture__card--wide{grid-column:span 1}
  .about__sticky{grid-template-columns:1fr}
  .about__fig{grid-row:auto;aspect-ratio:16/11;order:-1}
  .hero__side{display:none}
}
@media (max-width:560px){
  :root{--pad:20px}
  .contact__cards{grid-template-columns:1fr}
  .langsw__cur{padding:.45em .65em}
  .hero__badge{display:none}
  .hero__scroll{display:none}
  .feat{grid-template-columns:1fr}
  .culture{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr;gap:36px}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
  .adv__item{grid-template-columns:1fr;gap:10px}
  .adv__item p{grid-column:1}
  .adv__idx{font-size:1rem}
  .message__text{font-size:clamp(1.3rem,5.6vw,1.8rem)}
  .stat__num{font-size:2.6rem}
  .btn{width:100%;justify-content:center}
  .hero__actions{width:100%}
}

/* ===================== REDUCED MOTION ===================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .grain{display:none}
  [data-reveal],[data-reveal-children] > *{opacity:1 !important;transform:none !important}
  .line__inner{transform:none !important}
  .message__text span,.message__text b,.message__text em{opacity:1 !important;filter:none !important}
  .hero__media,.band__media,.contact__media{inset:0 !important}
}
