/* ============ REHITO 前台样式 ============ */
:root{
  --black:#0d0d0d; --white:#f7f6f4; --gray:#8a8a8a; --line:#e2e0dc;
  --serif:'Cormorant Garamond','Noto Serif SC',serif;
  --sans:'Inter','Noto Serif SC',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--black);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
::selection{background:var(--black);color:var(--white)}

/* ---------- 导航 ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;
  padding:28px 48px;mix-blend-mode:difference;color:#fff}
nav .logo{font-family:var(--serif);font-size:22px;letter-spacing:.45em;font-weight:500}
nav ul{display:flex;gap:44px;list-style:none}
nav ul a{font-size:12px;letter-spacing:.28em;position:relative;padding:4px 0}
nav ul a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:#fff;transition:width .35s}
nav ul a:hover::after,nav ul a.on::after{width:100%}
@media(max-width:768px){nav{padding:20px 24px}nav ul{gap:20px}nav ul a{font-size:11px;letter-spacing:.15em}}

/* ---------- 首屏 ---------- */
.hero{position:relative;height:100vh;overflow:hidden;background:var(--black)}
.hero img{opacity:0;transform:scale(1.06);transition:opacity 2s ease,transform 2.6s cubic-bezier(.19,1,.22,1)}
.hero.loaded img{opacity:.92;transform:scale(1)}
.hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,0) 40%,rgba(0,0,0,.55) 100%)}
.hero .caption{position:absolute;left:48px;bottom:64px;color:#fff;z-index:2}
.hero .caption .kicker{font-size:11px;letter-spacing:.5em;color:rgba(255,255,255,.65);margin-bottom:18px;opacity:0;transform:translateY(24px);transition:all 1s .8s}
.hero .caption h1{font-family:var(--serif);font-weight:300;font-size:clamp(44px,7.2vw,104px);line-height:1.04;letter-spacing:.02em}
.hero .caption h1 span{display:block;overflow:hidden}
.hero .caption h1 span i{display:block;font-style:normal;transform:translateY(110%);transition:transform 1.2s cubic-bezier(.19,1,.22,1)}
.hero .caption h1 span:nth-child(1) i{transition-delay:.55s}
.hero .caption h1 span:nth-child(2) i{transition-delay:.7s;font-style:italic;color:rgba(255,255,255,.85)}
.hero.loaded .kicker{opacity:1;transform:none}
.hero.loaded h1 span i{transform:translateY(0)}
.hero .scroll-hint{position:absolute;right:48px;bottom:64px;color:rgba(255,255,255,.6);font-size:10px;letter-spacing:.4em;writing-mode:vertical-rl;z-index:2}
.hero .scroll-hint::after{content:'';display:block;width:1px;height:56px;background:rgba(255,255,255,.4);margin:14px auto 0;animation:drip 2.2s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:768px){.hero .caption{left:24px;bottom:48px}.hero .scroll-hint{display:none}}

/* ---------- 数字资历 ---------- */
.stats{display:flex;justify-content:center;border-bottom:1px solid var(--line)}
.stats div{flex:1;max-width:320px;text-align:center;padding:72px 24px;border-right:1px solid var(--line)}
.stats div:last-child{border-right:none}
.stats b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(40px,4.5vw,64px);line-height:1}
.stats b sup{font-size:.45em;font-style:italic}
.stats span{display:block;margin-top:14px;font-size:11px;letter-spacing:.35em;color:var(--gray)}
@media(max-width:640px){.stats div{padding:44px 12px}}

/* ---------- 章节标题 ---------- */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;padding:110px 48px 56px;gap:24px;flex-wrap:wrap}
.section-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(34px,4vw,56px);line-height:1.1}
.section-head h2 em{font-style:italic;color:var(--gray)}
.section-head .more{font-size:11px;letter-spacing:.3em;border-bottom:1px solid var(--black);padding-bottom:6px;transition:opacity .3s}
.section-head .more:hover{opacity:.5}
@media(max-width:768px){.section-head{padding:80px 24px 40px}}

/* ---------- 标签筛选 ---------- */
.filters{display:flex;padding:0 48px 48px;flex-wrap:wrap}
.filters a, .filters button{background:none;border:none;cursor:pointer;font-family:var(--sans);font-weight:300;font-size:12px;letter-spacing:.3em;color:var(--gray);padding:10px 22px 10px 0;margin-right:14px;position:relative;transition:color .3s}
.filters a::before,.filters button::before{content:'';position:absolute;left:0;top:50%;width:0;height:1px;background:var(--black);transition:width .3s}
.filters a.on,.filters a:hover,.filters button.on,.filters button:hover{color:var(--black)}
.filters a.on::before,.filters button.on::before{width:14px}
.filters a.on,.filters button.on{padding-left:26px}
@media(max-width:768px){.filters{padding:0 24px 36px}}

/* ---------- 首页作品网格（错落） ---------- */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;padding:0 48px 120px}
.work{position:relative;overflow:hidden;cursor:pointer;background:#e9e7e3}
.work .ph{overflow:hidden;height:100%}
.work img{transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.work:hover img{transform:scale(1.045)}
.work .meta{display:flex;justify-content:space-between;align-items:baseline;padding:16px 2px 0}
.work .meta h3{font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:.04em}
.work .meta span{font-size:10px;letter-spacing:.3em;color:var(--gray)}
.work .tag{position:absolute;top:16px;left:16px;background:rgba(247,246,244,.92);font-size:10px;letter-spacing:.25em;padding:6px 14px;z-index:2}
.w-a{grid-column:1/6;aspect-ratio:3/4}
.w-b{grid-column:6/13;aspect-ratio:16/11;margin-top:120px}
.w-c{grid-column:1/8;aspect-ratio:16/10}
.w-d{grid-column:8/13;aspect-ratio:3/4;margin-top:-90px}
.w-e{grid-column:3/10;aspect-ratio:3/2;margin-top:40px}
@media(max-width:900px){
  .grid{padding:0 24px 80px;gap:20px}
  .w-a,.w-b,.w-c,.w-d,.w-e{grid-column:1/13;margin-top:0;aspect-ratio:3/4}
  .w-c,.w-e{aspect-ratio:16/11}
}

/* ---------- 子页面头 ---------- */
.page-hero{background:var(--black);color:#fff;padding:190px 48px 90px}
.page-hero .kicker{font-size:11px;letter-spacing:.5em;color:rgba(255,255,255,.55);margin-bottom:20px}
.page-hero h1{font-family:var(--serif);font-weight:300;font-size:34px;line-height:1.3}
.page-hero h1 em{font-style:normal;font-size:.62em;letter-spacing:.12em;opacity:.55;margin-left:8px}
.page-hero p{margin-top:18px;font-size:13px;letter-spacing:.2em;color:rgba(255,255,255,.5)}
@media(max-width:768px){.page-hero{padding:140px 24px 60px}}
@media(max-width:640px){.page-hero h1{font-size:24px}}

/* ---------- 作品列表（规整网格） ---------- */
.wall{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:0 48px 120px}
.wall .work{aspect-ratio:3/4}
@media(max-width:1000px){.wall{grid-template-columns:repeat(2,1fr);padding:0 24px 80px;gap:20px}}
@media(max-width:560px){.wall{grid-template-columns:1fr}}

/* ---------- 分页 ---------- */
.pager{display:flex;justify-content:center;gap:18px;padding:0 48px 110px}
.pager a,.pager span{font-size:12px;letter-spacing:.2em;padding:10px 16px;border:1px solid var(--line);transition:all .3s}
.pager a:hover{border-color:var(--black)}
.pager span.cur{background:var(--black);color:#fff;border-color:var(--black)}

/* ---------- 作品详情 ---------- */
.wd-head{text-align:center;padding:180px 24px 70px}
.wd-head .kicker{font-size:11px;letter-spacing:.5em;color:var(--gray);margin-bottom:22px}
.wd-head h1{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5vw,72px);line-height:1.1}
.wd-head .info{margin-top:24px;font-size:12px;letter-spacing:.3em;color:var(--gray)}
.wd-head .desc{max-width:64ch;margin:34px auto 0;font-size:14px;line-height:2.1;color:#4a4a4a}
.gallery{max-width:1100px;margin:0 auto;padding:0 24px 60px}
.gallery figure{margin-bottom:28px;background:#e9e7e3;overflow:hidden}
.gallery img{height:auto;cursor:zoom-in}
.wd-models{max-width:1100px;margin:0 auto;padding:40px 24px 120px;border-top:1px solid var(--line)}
.wd-models h3{font-family:var(--serif);font-weight:300;font-size:30px;margin:48px 0 32px}
.wd-models .row{display:flex;gap:28px;flex-wrap:wrap}
.mcard{width:200px;text-align:center}
.mcard .ph{aspect-ratio:3/4;overflow:hidden;background:#e9e7e3}
.mcard img{transition:transform 1s}
.mcard:hover img{transform:scale(1.05)}
.mcard b{display:block;margin-top:14px;font-weight:400;font-size:14px;letter-spacing:.1em}
.mcard span{display:block;margin-top:4px;font-size:11px;letter-spacing:.2em;color:var(--gray)}
.mcard .minfo{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-top:6px}
.mcard .minfo b{margin-top:0}
.mcard .minfo span{margin-top:0;text-align:right;letter-spacing:.08em}

/* ---------- 模特墙 ---------- */
.mwall{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;padding:0 48px 120px}
.mwall .mcard{width:auto;text-align:left}
.mwall .mcard b{font-family:var(--serif);font-size:19px;font-weight:400}
.mwall .mcard .ph{box-shadow:0 8px 26px rgba(0,0,0,.13);transition:box-shadow .4s}
.mwall .mcard:hover .ph{box-shadow:0 16px 44px rgba(0,0,0,.2)}
@media(max-width:1100px){.mwall{grid-template-columns:repeat(4,1fr)}}
@media(max-width:800px){.mwall{grid-template-columns:repeat(3,1fr);padding:0 24px 80px;gap:18px}}
@media(max-width:640px){.mwall{grid-template-columns:repeat(3,1fr);padding:0 14px 60px;gap:12px}
  .mwall .mcard b{font-size:14px;margin-top:10px}
  .mwall .mcard span{font-size:10px;letter-spacing:.08em}
  .mwall .mcard .minfo{margin-top:5px}
  .mwall .mcard .minfo b{margin-top:0}
}

/* ---------- 模特详情 ---------- */
.md{display:grid;grid-template-columns:5fr 6fr;gap:64px;max-width:1200px;margin:0 auto;padding:180px 48px 100px}
.md .ph{aspect-ratio:3/4;overflow:hidden;background:#e9e7e3}
.md .ph img{}
.md .info .kicker{font-size:11px;letter-spacing:.5em;color:var(--gray);margin-bottom:18px}
.md .info h1{font-family:var(--serif);font-weight:300;font-size:clamp(34px,4.5vw,60px)}
.md .info .en{font-style:italic;font-family:var(--serif);font-size:22px;color:var(--gray);margin-top:6px}
.md .info .city{display:inline-block;margin-top:20px;font-size:11px;letter-spacing:.3em;border:1px solid var(--black);padding:7px 16px}
.spec{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:44px;border-top:1px solid var(--line)}
.spec div{padding:16px 0;border-bottom:1px solid var(--line)}
.spec b{display:block;font-size:10px;letter-spacing:.3em;color:var(--gray);margin-bottom:6px;font-weight:400}
.spec span{font-size:16px;font-family:var(--serif)}
.md .bio{margin-top:32px;font-size:14px;line-height:2.1;color:#4a4a4a}
@media(max-width:900px){.md{grid-template-columns:1fr;padding:140px 24px 70px;gap:40px}}

/* ---------- 关于页 ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.about .imgbox{aspect-ratio:4/5;overflow:hidden}
.about .imgbox img{}
.about .txt{display:flex;flex-direction:column;justify-content:center;padding:80px 64px}
.about .txt .kicker{font-size:11px;letter-spacing:.5em;color:var(--gray);margin-bottom:28px}
.about .txt h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.4vw,48px);line-height:1.25;margin-bottom:32px}
.about .txt h2 em{font-style:italic}
.about .txt p{font-size:14px;line-height:2.1;color:#4a4a4a;max-width:46ch;margin-bottom:18px}
.about .txt .sig{margin-top:24px;font-family:var(--serif);font-style:italic;font-size:22px}
@media(max-width:900px){.about{grid-template-columns:1fr}.about .txt{padding:56px 24px}}
.contact-block{max-width:900px;margin:0 auto;padding:110px 48px;text-align:center}
.contact-block h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,52px);margin-bottom:36px}
.contact-block p{font-size:14px;line-height:2.4;color:#4a4a4a;letter-spacing:.05em}

/* ---------- 空状态 ---------- */
.empty{padding:120px 48px;text-align:center;color:var(--gray);font-size:13px;letter-spacing:.3em}

/* ---------- 灯箱 ---------- */
.lightbox{position:fixed;inset:0;background:rgba(10,10,10,.94);z-index:200;display:none;align-items:center;justify-content:center;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:92vw;max-height:92vh;width:auto;height:auto;object-fit:contain;filter:none}
.lightbox .close{position:absolute;top:26px;right:36px;color:#fff;font-size:13px;letter-spacing:.3em;cursor:pointer}

/* ---------- 页脚 ---------- */
footer{background:var(--black);color:var(--white);padding:96px 48px 40px}
footer .big{font-family:var(--serif);font-weight:300;font-size:clamp(38px,6vw,88px);line-height:1.05;letter-spacing:.02em;margin-bottom:64px}
footer .big em{font-style:italic;color:rgba(255,255,255,.6)}
footer .cols{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.14);padding-top:36px}
footer .cols div{font-size:11px;letter-spacing:.25em;color:rgba(255,255,255,.55);line-height:2.4}
footer .cols b{display:block;color:#fff;font-weight:400;margin-bottom:6px;letter-spacing:.35em}
@media(max-width:768px){footer{padding:72px 24px 32px}}

/* ---------- 显现动画 ---------- */
.rv{opacity:0;transform:translateY(46px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.19,1,.22,1)}
.rv.in{opacity:1;transform:none}

/* ================= 模特登记 / 自助中心 ================= */
.join-wrap{max-width:860px;margin:0 auto;padding:40px 24px 100px}
.join-err{background:#fdf1ef;color:#b3261e;border:1px solid #eecfc9;padding:14px 18px;font-size:13px;margin-bottom:28px}
.join-ok{text-align:center;padding:60px 0}
.join-ok h2{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:400;margin-bottom:20px}
.join-ok p{color:var(--gray);line-height:2;margin-bottom:32px;font-size:14px}
.jf-title{font-size:12px;letter-spacing:.35em;color:var(--dark);margin:38px 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.jf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px 24px}
.jf-row label{display:block;font-size:11px;letter-spacing:.12em;color:var(--gray);margin-bottom:7px}
.jf-row input[type=text],.jf-row input[type=password],.jf-row textarea{width:100%;border:1px solid var(--line);background:#fff;padding:11px 13px;font-size:14px;font-family:inherit;color:var(--dark);outline:none;transition:border-color .2s}
.jf-row input:focus,.jf-row textarea:focus{border-color:var(--dark)}
.jf-row input[type=file]{font-size:13px;color:var(--gray)}
.jf-note{font-size:12px;color:var(--gray);margin:30px 0 16px;line-height:1.8}
.jbtn{display:inline-block;background:var(--dark);color:#fff;border:none;padding:14px 44px;font-size:12px;letter-spacing:.3em;cursor:pointer;text-decoration:none;font-family:inherit}
.jbtn:hover{background:#333}
.jbtn.ghost{background:transparent;color:var(--dark);border:1px solid var(--dark);margin-left:12px}
.jbtn.ghost:hover{background:var(--dark);color:#fff}

/* 模特登录 / 自助中心 */
.ma-wrap{max-width:460px;margin:0 auto;padding:70px 24px 110px}
.ma-wrap.wide{max-width:960px}
.ma-title{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:400;text-align:center;margin-bottom:8px}
.ma-sub{text-align:center;font-size:11px;letter-spacing:.3em;color:var(--gray);margin-bottom:44px}
.ma-card{border:1px solid var(--line);padding:34px 30px;background:#fff}
.ma-card .jf-row{margin-bottom:20px}
.ma-links{display:flex;justify-content:space-between;margin-top:18px;font-size:12px}
.ma-links a{color:var(--gray);text-decoration:none}
.ma-links a:hover{color:var(--dark)}
.ma-ok{background:#eef5f0;color:#1e6b2f;border:1px solid #cfe4d6;padding:12px 16px;font-size:13px;margin-bottom:24px}
.ma-section{margin-top:46px}
.ma-videos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}

/* ================= 视频卡片 + 浮动播放器 ================= */
.vrow{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.vcard{position:relative;cursor:pointer;background:#111;overflow:hidden}
.vcard video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;pointer-events:none;opacity:.92;transition:opacity .3s}
.vcard:hover video{opacity:1}
.vplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid rgba(255,255,255,.85);border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;padding-left:4px;background:rgba(0,0,0,.25);transition:all .3s}
.vcard:hover .vplay{background:rgba(255,255,255,.9);color:#111;border-color:#fff}
.vlab{position:absolute;left:12px;bottom:10px;font-size:10px;letter-spacing:.25em;color:#fff;background:rgba(0,0,0,.5);padding:4px 10px}

.vmodal{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.9);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;padding:24px}
.vmodal.show{opacity:1;visibility:visible}
.vbox{position:relative;width:min(1080px,100%)}
.vbox video{width:100%;max-height:82vh;background:#000;display:block}
.vclose{position:absolute;top:-38px;right:0;color:#fff;font-size:11px;letter-spacing:.3em;cursor:pointer;opacity:.8}
.vclose:hover{opacity:1}
