/* WE DANCE website · story.css — about / teachers / troupes / join-us / refer / contact.
   Builds on site.css tokens only. All classes prefixed st- so nothing leaks into other pages. */

/* ---------- page header with photo ---------- */
.st-hd{padding:0;background:var(--white);border-bottom:1px solid var(--line2)}
.st-hd-in{display:grid;gap:0}
.st-hd-txt{padding:32px var(--gut) 28px}
.st-hd-txt h1{margin-bottom:12px}
.st-hd-txt .lead{margin-bottom:20px}
.st-hd-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink)}
.st-hd-img img{width:100%;height:100%;object-fit:cover}
@media (min-width:900px){
  .st-hd-in{max-width:var(--wrap);margin:0 auto;grid-template-columns:1.05fr 1fr;align-items:center;gap:40px;padding:48px var(--gut)}
  .st-hd-txt{padding:0}
  .st-hd-img{aspect-ratio:4/3.1;clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,0 100%)}
}
.st-btns{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
.st-btns .btn{min-height:48px}
@media (max-width:420px){.st-btns .btn{flex:1 1 100%}}

/* ---------- small type helpers ---------- */
.st-eyebrow{font-family:var(--font-en);font-style:italic;font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.sec.ink .st-eyebrow{color:var(--mute2)}
.st-prose{max-width:44em}
.st-prose p{color:var(--ink3)}
.st-quote{margin:0 0 20px;padding:4px 0 4px 18px;border-left:5px solid var(--stage);font-size:clamp(20px,2.6vw,28px);font-weight:800;line-height:1.3}
.st-quote span{display:block;font-family:var(--font-en);font-style:italic;font-weight:600;font-size:14px;color:var(--mute);margin-top:6px;letter-spacing:.06em}
.st-split{display:grid;gap:28px;align-items:start}
@media (min-width:900px){.st-split{grid-template-columns:1fr 1fr;gap:56px}.st-split.rev>:first-child{order:2}}
.st-photo{position:relative;overflow:hidden;background:var(--line2);aspect-ratio:3/2}
.st-photo img{width:100%;height:100%;object-fit:cover}
.st-cap{font-size:13px;color:var(--mute);margin-top:8px}

/* ---------- stat strip ---------- */
.st-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#2b2825;margin-top:8px}
.st-stat{background:var(--ink);padding:18px 16px}
.st-stat b{display:block;font-family:var(--font-en);font-style:italic;font-weight:700;font-size:clamp(34px,6vw,52px);line-height:1;color:#fff}
.st-stat b.red{color:#ff6b57}
.st-stat span{display:block;margin-top:8px;font-size:14px;color:#d9d4cb;line-height:1.45}
@media (min-width:900px){.st-stats{grid-template-columns:repeat(4,1fr)}.st-stat{padding:24px 22px}}
.st-src{font-size:13px;color:var(--mute2);margin-top:14px}

/* ---------- style / value cards ---------- */
.st-cards{display:grid;gap:12px}
@media (min-width:640px){.st-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.st-cards.c3{grid-template-columns:repeat(3,1fr)}}
.st-card{background:var(--white);padding:20px 20px 18px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.sec.white .st-card{background:var(--paper)}
.st-card h3{display:flex;gap:10px;align-items:center;font-size:19px;margin-bottom:8px}
.st-card h3::before{content:"";flex:none;width:5px;height:18px;background:var(--ink);transform:skewX(var(--skew))}
.st-card p{margin:0;color:var(--ink3);font-size:15.5px}
.st-card .st-eyebrow{display:block;margin-bottom:4px}

/* ---------- numbered steps ---------- */
.st-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:st}
@media (min-width:900px){.st-steps{grid-template-columns:repeat(3,1fr)}}
.st-steps li{counter-increment:st;background:var(--white);padding:20px;position:relative;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.sec.white .st-steps li{background:var(--paper)}
.st-steps li::before{content:counter(st,decimal-leading-zero);display:block;font-family:var(--font-en);font-style:italic;font-weight:700;font-size:30px;line-height:1;color:var(--stage);margin-bottom:10px}
.st-steps h3{font-size:18px;margin-bottom:6px}
.st-steps p{margin:0;color:var(--ink3);font-size:15.5px}

/* ---------- teachers ---------- */
.st-team{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:560px){.st-team{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.st-team{grid-template-columns:repeat(3,1fr)}}
.st-person{background:var(--white);display:flex;flex-direction:column;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.st-person .ph{aspect-ratio:4/5;background:var(--line2)}
.st-person .ph img{object-position:50% 20%}
.st-person-b{padding:16px 18px 20px}
.st-person h3{font-size:22px;margin:0 0 6px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.st-person .tags{display:flex;flex-wrap:wrap;gap:6px 4px;margin:0 0 12px}
.st-person .tag{font-size:12px}
.st-person ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.st-person li{position:relative;padding-left:16px;font-size:15px;color:var(--ink3);line-height:1.5}
.st-person li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:3px;background:var(--stage);transform:skewX(var(--skew))}
.st-lead2{display:grid;gap:16px}
@media (min-width:768px){.st-lead2{grid-template-columns:1fr 1fr}}
.st-lead2 .st-person{flex-direction:row}
.st-lead2 .st-person .ph{flex:0 0 38%;aspect-ratio:auto;min-height:220px}
/* phones: photo beside text so the list stays scannable */
@media (max-width:559px){
  .st-person,.st-lead2 .st-person{flex-direction:row;align-items:stretch}
  .st-person .ph,.st-lead2 .st-person .ph{flex:0 0 38%;aspect-ratio:auto;min-height:190px}
  .st-person-b{padding:14px 14px 16px}
  .st-person h3{font-size:20px}
  .st-person li{font-size:14px;padding-left:14px}
  .st-person .tag{font-size:11.5px;white-space:normal}
}

/* ---------- results ---------- */
.st-results{display:grid;gap:16px}
@media (min-width:900px){.st-results{grid-template-columns:repeat(3,1fr)}}
.st-comp{background:#1c1a18;padding:20px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.st-comp h3{color:#fff;font-size:19px;margin:0 0 2px}
.st-comp time{display:block;font-size:14px;color:var(--mute2);margin-bottom:14px}
.st-comp ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.st-comp li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:15px;color:#e8e3da;line-height:1.45}
.st-place{display:inline-block;min-width:40px;text-align:center;font-family:var(--font-en);font-style:italic;font-weight:700;font-size:14px;padding:2px 8px;color:#fff;position:relative;isolation:isolate}
.st-place::before{content:"";position:absolute;inset:0;background:var(--stage);transform:skewX(var(--skew));z-index:-1}
.st-place.p2::before{background:#57524b}
.st-comp li small{display:block;color:var(--mute2);font-size:13px}
.st-big{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:8px 0 28px}
@media (min-width:900px){.st-big{display:flex;gap:16px 56px}}
.st-big div b{display:block;font-family:var(--font-en);font-style:italic;font-weight:700;font-size:clamp(44px,8vw,72px);line-height:1;color:#fff}
.st-big div span{font-size:14px;color:#d9d4cb}

/* ---------- troupes ---------- */
.st-troupes{display:grid;gap:16px}
@media (min-width:640px){.st-troupes{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.st-troupes{grid-template-columns:repeat(3,1fr)}}
.st-troupe{background:var(--white);display:flex;flex-direction:column;border-top:4px solid var(--ink);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.st-troupe-b{padding:16px 18px 20px;flex:1}
.st-troupe h3{font-size:20px;margin:0 0 4px}
.st-motto{font-style:italic;color:var(--mute);margin:0 0 12px;font-size:15px}
.st-troupe ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14.5px;color:var(--ink3)}
.st-troupe li{display:flex;gap:8px;align-items:baseline}
.st-troupe li .st-place{font-size:12px;min-width:34px;padding:1px 6px}
.st-past{columns:1;font-size:15px;color:var(--ink3);margin:0;padding-left:18px}
@media (min-width:768px){.st-past{columns:2;column-gap:40px}}
.st-past li{break-inside:avoid;margin-bottom:10px}
.st-past b{color:var(--ink)}

/* ---------- jobs ---------- */
.st-job{background:var(--white);padding:22px 20px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.st-job+.st-job{margin-top:16px}
.st-job h2{font-size:clamp(21px,3vw,28px);margin-bottom:12px}
.st-job h3{font-size:16px;margin:20px 0 8px;text-transform:none}
.st-job ul{margin:0;padding-left:20px;color:var(--ink3)}
.st-job li{margin-bottom:6px}
.st-job p{color:var(--ink3)}
.st-apply{margin-top:20px;padding-top:16px;border-top:1px solid var(--line2)}
@media (min-width:768px){.st-job{padding:32px 36px}}

/* ---------- contact ---------- */
.st-acts{display:grid;gap:12px}
@media (min-width:768px){.st-acts{grid-template-columns:repeat(3,1fr)}}
.st-act{display:flex;gap:14px;align-items:center;min-height:84px;padding:16px 18px;background:var(--white);color:var(--ink);text-decoration:none;
  clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);transition:background .15s}
a.st-act:hover{background:var(--line2)}
.page-hd .st-act:not(.main){background:var(--paper)}
.page-hd a.st-act:not(.main):hover{background:var(--line2)}
.st-act svg{flex:none;width:30px;height:30px}
.st-act b{display:block;font-size:13px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.st-act span{display:block;font-size:clamp(18px,2.4vw,21px);font-weight:800;word-break:break-word}
.st-act.main{background:var(--stage);color:#fff}
.st-act.main b{color:#ffd9d2}
a.st-act.main:hover{background:var(--stage-dk)}
.st-wechat{background:var(--ink);color:#fff;padding:22px 20px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.st-wechat h2{font-size:22px;margin:0 0 6px;color:#fff}
.st-wechat p{color:#d9d4cb;margin:0 0 14px}
.st-wid{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.st-wid code{font-family:var(--font-en);font-style:italic;font-weight:700;font-size:clamp(24px,4.4vw,32px);letter-spacing:.04em;color:#fff;background:none;user-select:all;-webkit-user-select:all}
.st-copied{font-size:14px;font-weight:700;color:#8fd5a6}
@media (min-width:768px){.st-wechat{padding:28px 32px}}
.st-hours{width:100%;border-collapse:collapse;background:var(--white);font-size:16px}
.st-hours th,.st-hours td{padding:12px 14px;border-bottom:1px solid var(--line2);text-align:left}
.st-hours th{font-weight:700;width:46%}
.st-hours tr.today th,.st-hours tr.today td{background:var(--blush)}
.st-map{position:relative;aspect-ratio:4/3;background:var(--line2);overflow:hidden}
@media (min-width:900px){.st-map{aspect-ratio:16/11}}
.st-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.st-addr{font-style:normal;font-size:18px;font-weight:700;line-height:1.5;margin:0 0 14px}
.st-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0;padding:0;list-style:none}
.st-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}

/* ---------- refer ---------- */
@media (min-width:900px){.st-steps.st-steps2{grid-template-columns:repeat(2,1fr)}}
.st-fine{font-size:14px;color:var(--mute);margin-top:12px}

/* ---------- closing CTA ---------- */
.st-cta{display:grid;gap:18px;align-items:center}
@media (min-width:900px){.st-cta{grid-template-columns:1.4fr 1fr}}
.st-cta h2{margin:0 0 6px}
.st-cta p{margin:0;color:#d9d4cb}
.st-cta .st-btns{justify-content:flex-start}
@media (min-width:900px){.st-cta .st-btns{justify-content:flex-end}}

/* in-page jump links */
.st-jump{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px var(--gut);margin:0 auto;max-width:var(--wrap);scrollbar-width:none}
.st-jump::-webkit-scrollbar{display:none}
.st-jump a{flex:none}
.st-prose p.kicker{color:var(--stage)}
.st-card p.st-eyebrow,.st-card span.st-eyebrow{color:var(--mute)}
.sec.white .st-person,.sec.white .st-troupe,.sec.white .st-job{background:var(--paper)}
html[lang^="zh"] .st-motto{font-style:normal}
@media (min-width:600px) and (max-width:899px){.st-hd-img{aspect-ratio:21/9}}

/* teachers without a photo yet (profile coming soon) */
.st-person.st-nophoto{border-top:4px solid var(--ink)}
.st-soon{margin:12px 0 0;font-size:14px;color:var(--mute)}
.st-jobmore{margin-top:18px}
.st-jobmore details{background:var(--paper)}
.st-jobmore details>div ul{margin:0;padding-left:20px}

/* troupe badges (Frank's 7 designs, from troupes.emblem_url, background removed) */
.st-troupe-h{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.st-badge{width:76px;height:76px;flex:none;object-fit:contain}
.st-troupe-h h3{margin:0 0 4px}
.st-troupe-h .st-motto{margin:0}
@media (max-width:399px){.st-badge{width:64px;height:64px}}
