*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--c-bg);color:var(--c-ink);font:15px/1.7 var(--font-sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.muted{color:var(--c-mut)}.small{font-size:12px}
.tbd{display:inline-block;font-size:11px;line-height:1.5;padding:1px 7px;border-radius:4px;border:1px dashed var(--c-tbd);color:var(--c-tbd);background:rgba(183,121,31,.07);font-weight:500;vertical-align:middle;white-space:nowrap}
.tbd-dark{color:#E8B866;border-color:#E8B866;background:rgba(232,184,102,.08)}
.demo-ribbon{background:#2B2B30;color:#cfcfd4;font-size:12px;text-align:center;padding:4px 10px}
.demo-ribbon b{color:#F2C46B}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 22px;border-radius:999px;font-weight:600;font-size:15px;white-space:nowrap;transition:.15s}
.btn-sm{height:34px;padding:0 16px;font-size:14px}.btn-lg{height:52px;padding:0 30px;font-size:16px}.btn-block{width:100%}
.btn-primary{background:var(--c-accent);color:var(--c-accent-ink);box-shadow:0 6px 18px rgba(228,68,47,.28)}.btn-primary:hover{filter:brightness(1.06)}
.btn-dark{background:var(--c-ink);color:#fff}.btn-light{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-ghost{border:1px solid var(--c-line);background:var(--c-surface)}
/* today bar + header */
.todaybar{background:var(--c-dark);color:var(--c-dark-mut);font-size:12.5px}
.todaybar .wrap{display:flex;align-items:center;gap:8px;height:34px;white-space:nowrap;overflow:hidden}
.todaybar b{color:var(--c-dark-tx);font-weight:600}.todaybar .sep{opacity:.4}
.todaybar .old{margin-left:auto;color:var(--c-pencil)}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--c-accent);box-shadow:0 0 0 3px rgba(228,68,47,.25);flex:none}
.topbar{position:sticky;top:0;z-index:40;background:rgba(247,245,240,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--c-line)}
.topbar .wrap{display:flex;align-items:center;height:68px;gap:40px}
.brand img{height:40px;width:auto}
.mainnav{display:flex;gap:30px;font-size:15px}
.mainnav a{position:relative;color:#3b3b42}.mainnav a.on,.mainnav a:hover{color:var(--c-ink);font-weight:600}
.mainnav a.on:after{content:"";position:absolute;left:0;right:0;bottom:-23px;height:2px;background:var(--c-accent)}
.actions{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:14px}
.actions .forum{font-weight:600}.actions .login{color:var(--c-mut)}
.menu-btn{display:none;font-size:22px;width:40px;height:40px}
.drawer{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:.2s}
.drawer.open{opacity:1;pointer-events:auto}
.drawer-in{position:absolute;right:0;top:0;bottom:0;width:78%;max-width:320px;background:var(--c-bg);padding:64px 24px 24px;display:flex;flex-direction:column;gap:4px}
.drawer-in a{padding:12px 4px;border-bottom:1px solid var(--c-line);font-size:16px}.drawer-in .btn{margin-top:16px;border:0}
.drawer-x{position:absolute;right:16px;top:14px;font-size:20px;width:40px;height:40px}
/* video placeholder */
.vid{position:relative;aspect-ratio:16/9;border-radius:var(--radius-sm);overflow:hidden;background:
  radial-gradient(120% 90% at 30% 20%,#55565c 0,#2d2e33 60%,#1f2024 100%);color:#d7d7db}
.vid:before{content:"";position:absolute;inset:0;background:
  linear-gradient(transparent 49.6%,rgba(255,255,255,.06) 50%,transparent 50.4%),
  linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.06) 50%,transparent 50.2%)}
.vid.tone2{background:radial-gradient(120% 90% at 70% 20%,#5b5752 0,#302d2a 60%,#201e1c 100%)}
.vid.tone3{background:radial-gradient(120% 90% at 40% 80%,#4f565a 0,#2b3033 60%,#1d2022 100%)}
.vid.tone4{background:radial-gradient(120% 90% at 60% 30%,#55524f 0,#2f3230 60%,#1f2120 100%)}
.vid.tone5{background:radial-gradient(120% 90% at 20% 60%,#5a5258 0,#322c31 60%,#211d20 100%)}
.vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid-play{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35)}
.vid-play:after{content:"";position:absolute;left:19px;top:15px;border-left:14px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent}
.vid-code{position:absolute;left:12px;top:10px;font:600 12px/1 var(--font-latin);letter-spacing:.12em;opacity:.8}
.vid-lab{position:absolute;left:12px;bottom:10px;right:12px;font-size:12px;opacity:.75}
.vid-dur{position:absolute;right:10px;bottom:8px;font-size:11px;background:rgba(0,0,0,.45);padding:0 6px;border-radius:4px}
.vid-big{border-radius:var(--radius)}.vid-big .vid-play{width:72px;height:72px;margin:-36px 0 0 -36px}.vid-big .vid-play:after{left:29px;top:22px;border-left-width:20px;border-top-width:14px;border-bottom-width:14px}
.vid-big .vid-lab{font-size:14px}
/* hero */
.hero{position:relative;background:var(--c-dark);color:var(--c-dark-tx);min-height:640px;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}.hero-bg .vid{position:absolute;inset:0;aspect-ratio:auto;border-radius:0;opacity:.85}
.hero-bg .vid-play{left:74%}.hero-bg .vid-lab{left:auto;right:32px;bottom:28px;text-align:right}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,12,14,.96) 0,rgba(11,12,14,.75) 45%,rgba(11,12,14,.1) 100%)}
.hero-in{position:relative;z-index:2;width:100%;padding-top:60px;padding-bottom:60px}
.kicker{font:600 12px/1.4 var(--font-latin);letter-spacing:.28em;text-transform:uppercase;color:var(--c-accent);margin-bottom:10px}
.kicker.light{color:var(--c-pencil)}
.hero h1{font:700 64px/1.15 var(--font-display);letter-spacing:.04em;max-width:640px}
.hero-sub{font-size:20px;color:var(--c-dark-tx);opacity:.85;margin-top:14px;max-width:620px}
.hero-found{margin-top:26px;padding-left:16px;border-left:2px solid var(--c-accent);color:var(--c-pencil);font-size:16px;max-width:560px}
.hero-btns{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-small{margin-top:22px;font-size:13px;color:var(--c-dark-mut)}.hero-small a{color:var(--c-dark-tx);border-bottom:1px solid rgba(255,255,255,.3)}
/* ten years */
.ten{background:var(--c-dark-2);color:var(--c-dark-tx);padding:56px 0}
.ten-in{display:grid;grid-template-columns:auto 1.1fr 1fr;gap:40px;align-items:center}
.ten-num{display:flex;align-items:flex-end;gap:6px}.ten-num b{font:700 120px/0.85 var(--font-latin);color:var(--c-accent)}.ten-num span{font-size:22px;color:var(--c-pencil)}
.ten-txt h2{font:700 28px/1.3 var(--font-display)}.ten-txt p{color:var(--c-dark-mut);margin-top:8px;font-size:14px}
.logos{display:flex;gap:22px;align-items:center;margin-top:12px;flex-wrap:wrap}.logos img{height:22px;width:auto;filter:grayscale(1) brightness(0) invert(.85);opacity:.85}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1);border-radius:var(--radius);overflow:hidden;position:relative}
.stats>div{background:var(--c-dark-2);padding:18px 14px;text-align:center}
.stats b{display:block;font:700 30px/1.2 var(--font-latin);color:#fff}.stats span{font-size:12px;color:var(--c-dark-mut)}
.stats-note{grid-column:1/-1;background:var(--c-dark-2);font-size:11px;color:#77777e;text-align:center;padding:6px}
/* sections */
.sec{padding:84px 0}.sec-tint{background:var(--c-tint)}
.sec-dark{background:var(--c-dark);color:var(--c-dark-tx)}.sec-dark .sub{color:var(--c-dark-mut)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}
.sec-head h2{font:700 34px/1.25 var(--font-display);letter-spacing:.02em}
.sub{color:var(--c-mut);margin-top:8px;font-size:15px}
.more{font-weight:600;font-size:14px;white-space:nowrap;border-bottom:1px solid currentColor;padding-bottom:2px}.more.light{color:var(--c-pencil)}
.note{font-size:13px;color:var(--c-mut);margin-top:16px}
.h2s{font:700 24px/1.3 var(--font-display);margin-bottom:18px}
/* wall */
.wall{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.wtile b{display:block;margin-top:10px;font-size:14px}.wtile small{display:block;color:var(--c-mut);font-size:12.5px}
.wtile .ok{display:inline-block;margin-top:4px;font-size:12px;color:var(--c-ok);font-weight:600}
/* feature */
.feature{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:auto auto;gap:22px}
.fcard{text-align:left;display:flex;flex-direction:column;gap:12px}
.fcard.big{grid-row:span 2}.fcard.big .vid{aspect-ratio:16/10}
.fc-b small{color:var(--c-pencil);font-size:12px;letter-spacing:.06em;display:block}
.fc-b b{display:block;font-size:17px;margin-top:2px}
.fc-b q{display:block;color:var(--c-dark-mut);font-size:14px;margin-top:6px}.fc-b q:before{content:"导师："}
.fcard:hover .vid-play{background:var(--c-accent);border-color:var(--c-accent)}
/* stages */
.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.stage-card{background:var(--c-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.2s}
.stage-card:hover{transform:translateY(-4px)}.stage-card .vid{border-radius:0}
.sc-body{padding:16px 16px 20px}.sc-num{font:700 30px/1 var(--font-latin);color:var(--c-accent)}
.sc-body h3{font-size:17px;margin-top:8px;line-height:1.35}.sc-en{font-size:12px;color:var(--c-mut);letter-spacing:.04em}.sc-meta{font-size:12.5px;color:var(--c-mut);margin-top:8px}
/* how */
.how{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.steps{list-style:none;counter-reset:s;display:grid;gap:14px}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;column-gap:14px;background:var(--c-surface);padding:16px 18px;border-radius:var(--radius-sm)}
.steps li:before{content:counter(s,decimal-leading-zero);grid-row:span 2;font:700 26px/1.1 var(--font-latin);color:var(--c-accent)}
.steps b{font-size:16px}.steps span{font-size:13.5px;color:var(--c-mut)}
/* daily cards */
.daily-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.dcard{display:block;background:var(--c-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.2s}.dcard:hover{transform:translateY(-3px)}
.dimg{aspect-ratio:16/10;background:#d9d4ca;display:flex;align-items:flex-end;padding:10px;position:relative}
.dimg:before{content:"图 / GIF";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(0,0,0,.28);font-size:13px}
.dimg span{position:relative;font-size:12px;background:var(--c-ink);color:#fff;padding:1px 8px;border-radius:4px}
.dimg.tag-直播 span{background:var(--c-accent)}.dimg.tag-故事 span{background:#3D6A8A}.dimg.tag-作品集 span{background:#7A5A2F}
.db{padding:14px 16px 18px}.db small{color:var(--c-mut);font-size:12px}.db b{display:block;font-size:15px;line-height:1.45;margin-top:4px}
.db p{font-size:13px;color:var(--c-mut);margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* mentors */
.mentor-strip{display:flex;gap:28px;flex-wrap:wrap}
.mm{display:flex;flex-direction:column;align-items:center;text-align:center;width:120px}
.mm-ph{width:84px;height:84px;border-radius:50%;background:#d6d0c4;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:28px;color:#fff;font-weight:700;flex:none}
.mm-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.mm.lead .mm-ph{width:104px;height:104px;outline:2px solid var(--c-accent);outline-offset:3px}
.mm b{margin-top:10px}.mm small{font-size:12px;color:var(--c-mut);line-height:1.4}
/* faq */
.faq-wrap{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.faq details{border-bottom:1px solid var(--c-line)}
.faq summary{list-style:none;cursor:pointer;padding:16px 36px 16px 0;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:6px;top:12px;font-size:22px;color:var(--c-mut);font-weight:300}
.faq details[open] summary:after{content:"–"}.faq p{padding:0 0 16px;color:var(--c-mut);font-size:14px}
.ask{background:var(--c-dark);color:var(--c-dark-tx);border-radius:var(--radius);padding:28px;position:sticky;top:96px}
.ask h3{font-size:22px}.ask p{color:var(--c-dark-mut);margin:6px 0 18px}.ask .more{display:inline-block;margin-left:14px;color:var(--c-pencil)}
/* end cta */
.endcta{background:var(--c-dark);color:var(--c-dark-tx);padding:72px 0;text-align:center}
.endcta h2{font:700 34px/1.3 var(--font-display)}.endcta .hero-btns{justify-content:center;margin-top:26px}
/* page heads */
.phead{padding:72px 0 48px;border-bottom:1px solid var(--c-line)}
.phead h1{font:700 48px/1.2 var(--font-display)}.phead .sub{font-size:17px;max-width:720px}.phead .sub.big{font-size:20px;color:var(--c-ink)}
.jump{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}
.jump a{background:var(--c-surface);border:1px solid var(--c-line);border-radius:999px;padding:8px 16px;font-size:14px}.jump b{color:var(--c-accent);margin-right:6px;font-family:var(--font-latin)}
/* course rows */
.crow{display:grid;grid-template-columns:1fr 1.25fr;gap:44px;padding:44px 0;border-bottom:1px solid var(--c-line);scroll-margin-top:90px}
.crow:first-child{padding-top:0}.crow:last-child{border-bottom:0}
.crow-vid .vid{border-radius:var(--radius)}
.crow-body h3{font:700 30px/1.25 var(--font-display)}.crow-learn{margin-top:10px;color:#3b3b42;font-size:16px}
.crow-meta{list-style:none;display:flex;gap:22px;margin:14px 0;font-size:14px;color:var(--c-mut);flex-wrap:wrap}.crow-meta b{color:var(--c-ink)}
.crow-meta.light{color:var(--c-dark-mut)}.crow-meta.light b{color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{font-size:12.5px;background:var(--c-surface);border:1px solid var(--c-line);border-radius:6px;padding:3px 9px}
.crow-cls{font-size:13px;color:var(--c-mut);margin-bottom:18px}
.cls-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.clm{background:var(--c-surface);border-radius:var(--radius);padding:20px;border:1px solid transparent;display:flex;flex-direction:column;gap:4px;transition:.2s}
.clm:hover{border-color:var(--c-accent)}.clm b{font-size:17px}.clm span{font-size:13px;color:var(--c-accent);font-weight:600}.clm small{color:var(--c-mut);font-size:13px}
.clm.best{border-color:var(--c-accent)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.two-3-7{grid-template-columns:.75fr 2fr}.two-6-4{grid-template-columns:1.4fr 1fr}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.week{width:100%;border-collapse:collapse;background:var(--c-surface);border-radius:var(--radius);overflow:hidden}
.week th,.week td{padding:12px 16px;border-bottom:1px solid var(--c-line);text-align:left;font-size:14px;vertical-align:top}
.week th{width:70px;color:var(--c-accent);white-space:nowrap}
.week-notes{list-style:none;margin:0;padding:0;background:var(--c-surface);border-radius:var(--radius);overflow:hidden}.week-notes li{padding:12px 16px;border-bottom:1px solid var(--c-line);font-size:14px}.week-notes li:last-child{border-bottom:0}
/* stage detail */
.shead{background:var(--c-dark);color:var(--c-dark-tx);padding:56px 0 64px}
.shead-in{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.shead h1{font:700 52px/1.15 var(--font-display)}.crumb{font-size:13px;color:var(--c-dark-mut);margin-bottom:18px}.crumb a{color:var(--c-dark-tx)}
.tasks{list-style:none;display:grid;gap:8px}
.tasks li{display:grid;grid-template-columns:52px 1fr;column-gap:10px;background:var(--c-surface);padding:12px 14px;border-radius:var(--radius-sm)}
.tcode{grid-row:span 2;font:700 13px/1.6 var(--font-latin);color:var(--c-accent);letter-spacing:.06em}
.tcount{font-size:12px;color:var(--c-ok)}
.task-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.task-filter button,.fgroup button,.seg button{padding:6px 14px;border-radius:999px;border:1px solid var(--c-line);background:var(--c-surface);font-size:13px}
.task-filter button.on,.fgroup button.on,.seg button.on{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.grid{display:grid;gap:22px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
.wcard{text-align:left;display:block}.wcard:hover .vid-play{background:var(--c-accent);border-color:var(--c-accent)}
.wc-b{display:block;margin-top:10px;position:relative}.wc-b b{display:block;font-size:15px}.wc-b small{color:var(--c-mut);font-size:12.5px}
.wc-b .badge{position:absolute;right:0;top:2px}
.badge{font-size:11px;background:rgba(228,68,47,.1);color:var(--c-accent);padding:1px 7px;border-radius:4px;font-weight:600}
.empty{grid-column:1/-1;color:var(--c-mut);padding:30px;text-align:center;background:var(--c-surface);border-radius:var(--radius)}
.revs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.revs figcaption{font-size:13px;color:var(--c-mut);margin-top:8px}.revs figcaption b{color:var(--c-accent);margin-right:6px;font-family:var(--font-latin)}
.box{background:var(--c-surface);border-radius:var(--radius);padding:24px}.box h3{font-size:17px;margin-bottom:10px}.box p{font-size:14px;color:#3b3b42;margin-top:6px}
.mrow{display:flex;gap:16px;align-items:center}.mrow .mm{width:96px;flex:none}.mrow p{font-size:13px}
.pager{display:flex;justify-content:space-between;margin-top:40px;font-weight:600}
/* works */
.whead{background:var(--c-dark);color:var(--c-dark-tx);padding:64px 0 72px}
.whead h1{font:700 52px/1.2 var(--font-display)}.reel{margin-top:36px}  /* 2026-10-29 轩哥：原 21:9 占位框已换成点播台（16:9，样式在 player.css） */
.filters{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.fgroup{display:flex;gap:8px;flex-wrap:wrap}.fgroup2{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fgroup2 select{height:34px;border-radius:8px;border:1px solid var(--c-line);background:var(--c-surface);padding:0 10px;font:inherit;font-size:13px;max-width:220px}
.seg{display:flex;gap:4px}
.count{font-size:13px;color:var(--c-mut);margin-bottom:16px}
.src-note{font-size:12.5px;color:var(--c-mut);margin-top:28px;padding-top:16px;border-top:1px dashed var(--c-line)}
.phead .fgroup{margin-top:24px}
/* timeline */
.timeline{display:grid;gap:36px}
.tday{display:grid;grid-template-columns:90px 1fr;gap:24px}
.tdate{font:700 26px/1 var(--font-latin);color:var(--c-accent);position:sticky;top:100px;align-self:start}
.titems{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.todaycard{background:var(--c-dark);color:var(--c-dark-tx);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:6px}
.todaycard b{font-size:18px}.todaycard span{color:var(--c-dark-mut);font-size:14px}.todaycard i{font-style:normal;color:#fff;font-weight:700;font-size:18px}
.todaycard small{margin-top:auto;font-size:11px;color:#77777e}
/* about */
.prose h3{font-size:17px;margin:22px 0 6px}.prose p{color:#3b3b42}
.lead-card{background:var(--c-dark);color:var(--c-dark-tx);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-columns:1fr}
.lead-card img{aspect-ratio:4/3;object-fit:cover;object-position:50% 25%;width:100%}
.lead-card>div{padding:24px}.lead-card h3{font:700 30px/1.2 var(--font-display)}.lead-card h3 small{font-size:16px;color:var(--c-pencil);font-weight:400}
.lead-card p{color:var(--c-dark-mut);margin-top:8px;font-size:14px}
.mcard{display:flex;gap:16px;background:var(--c-surface);border-radius:var(--radius);padding:20px}
.mcard b{font-size:17px}.mcard small{display:block;color:var(--c-accent);font-size:12.5px}.mcard p{font-size:13.5px;color:var(--c-mut);margin-top:4px}
.links{list-style:none;display:grid;gap:10px}.links li{background:var(--c-surface);padding:14px 18px;border-radius:var(--radius-sm);font-weight:500}
/* enroll */
.ehead{background:var(--c-dark);color:var(--c-dark-tx);padding:60px 0 52px}
.ehead h1{font:700 50px/1.2 var(--font-display)}
.eflow{list-style:none;display:flex;gap:10px;margin-top:30px;flex-wrap:wrap}
.eflow li{display:flex;align-items:center;gap:8px;padding:8px 16px 8px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--c-dark-mut);font-size:14px}
.eflow li b{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:13px}
.eflow li.on{color:#fff}.eflow li.on b{background:var(--c-accent)}.eflow small{font-size:11px;color:#E8B866}
.copy-note{margin-top:18px}
.guide{display:grid;gap:16px;max-width:860px}
.gq{background:var(--c-surface);border-radius:var(--radius);padding:22px 24px}.gq p{font-size:16px}
.gopts{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.gopts button{border:1px solid var(--c-line);border-radius:10px;padding:12px 18px;background:var(--c-bg);font-weight:500;text-align:left}
.gopts button:hover,.gopts button.on{border-color:var(--c-accent);color:var(--c-accent)}
.ccards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.ccard{position:relative;background:var(--c-surface);border-radius:var(--radius);padding:26px 22px 22px;border:2px solid transparent;display:flex;flex-direction:column;transition:.2s}
.ccard.best{border-color:var(--c-accent)}.ccard.picked{border-color:var(--c-ink);box-shadow:0 0 0 4px rgba(22,23,27,.08)}
.ribbon{position:absolute;top:-12px;left:22px;background:var(--c-accent);color:#fff;font-size:12px;padding:2px 10px;border-radius:999px}
.ccard h3{font-size:19px}.cc-st{font-size:13px;color:var(--c-mut)}
.cc-price{margin:14px 0}.cc-price b{font:700 32px/1 var(--font-latin)}.cc-price s{color:var(--c-mut);margin-left:8px;font-size:14px}
.ccard ul{list-style:none;display:grid;gap:6px;font-size:13.5px;color:#3b3b42;margin-bottom:20px;flex:1}
.ccard li:before{content:"·";color:var(--c-accent);font-weight:700;margin-right:6px}
.incl{margin-top:28px;background:var(--c-surface);border-radius:var(--radius);padding:24px}
.incl h3{font-size:16px}.incl ul{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 24px;margin:10px 0 0 18px;font-size:14px}
.eform{display:grid;gap:16px;scroll-margin-top:90px}
.eform .sec-head{margin-bottom:8px}
.eform label{display:grid;gap:6px;font-size:14px;font-weight:600}
.eform input:not([type=checkbox]),.eform select,.eform textarea{font:inherit;font-weight:400;border:1px solid var(--c-line);border-radius:10px;background:var(--c-surface);padding:11px 14px;font-size:15px;width:100%}
.eform input:focus,.eform select:focus,.eform textarea:focus{outline:2px solid rgba(228,68,47,.35);border-color:var(--c-accent)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.agree{display:flex!important;align-items:center;gap:8px;font-weight:400!important;font-size:13px!important}.agree a{color:var(--c-accent)}
.pending{font-size:13px;color:var(--c-tbd);background:rgba(183,121,31,.08);border:1px dashed var(--c-tbd);padding:10px 14px;border-radius:10px}
.paybox{background:var(--c-surface);border-radius:var(--radius);padding:26px;position:sticky;top:96px}
.paybox p{font-size:14px;margin-top:10px}
.pay-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay{border:1px dashed var(--c-line);border-radius:10px;padding:14px;text-align:center;color:var(--c-mut)}.pay b{display:block;color:var(--c-ink)}.pay small{color:var(--c-tbd)}
.paybox-c{margin-top:22px;padding-top:18px;border-top:1px solid var(--c-line)}.paybox-c h4{font-size:15px}.paybox-c .btn{margin-top:10px}
/* footer */
.footer{background:var(--c-dark);color:var(--c-dark-mut);padding:56px 0 28px;font-size:13.5px}
.footer .wrap{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:36px}
.f-brand img{height:40px;width:auto}.f-brand p{margin-top:16px;max-width:320px;color:var(--c-pencil)}
.f-col{display:flex;flex-direction:column;gap:8px}.f-col h4{color:var(--c-dark-tx);font-size:14px;margin-bottom:4px}
.f-legal{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap;align-items:center;border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:12.5px}
/* consult */
.consult-fab{position:fixed;right:24px;bottom:28px;z-index:60;display:flex;align-items:center;gap:8px;background:var(--c-accent);color:#fff;height:52px;padding:0 22px 0 18px;border-radius:999px;font-weight:700;box-shadow:0 10px 26px rgba(228,68,47,.4)}
.consult{position:fixed;inset:0;z-index:80}
.consult-scrim{position:absolute;inset:0;background:rgba(10,10,14,.28)}
.consult-card{position:absolute;right:24px;bottom:96px;width:400px;background:var(--c-surface);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.25);padding:22px;animation:pop .18s ease-out}
@keyframes pop{from{transform:translateY(12px);opacity:0}}
.consult-x{position:absolute;right:12px;top:10px;width:34px;height:34px;font-size:16px;color:var(--c-mut)}
.consult-head{display:flex;gap:12px;align-items:center}.consult-head b{font-size:18px;display:block}.consult-head small{color:var(--c-mut);font-size:13px}
.avatar-dot{width:44px;height:44px;border-radius:50%;background:var(--c-dark) url(/assets/img/logo_v_white.png) center/70% no-repeat;position:relative;flex:none}
.avatar-dot:after{content:"";position:absolute;right:0;bottom:2px;width:11px;height:11px;border-radius:50%;background:var(--c-ok);border:2px solid #fff}
.consult-ctx{margin-top:12px;font-size:12.5px;background:var(--c-tint);padding:6px 10px;border-radius:8px}
.consult-qr{display:grid;grid-template-columns:150px 1fr;gap:16px;margin-top:18px;align-items:center}
.qr-box{aspect-ratio:1;border-radius:12px;border:2px dashed #cfc8ba;background:repeating-linear-gradient(45deg,#f4f1ea 0 8px,#efebe2 8px 16px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--c-mut);font-size:13px;text-align:center}
.qr-side{display:grid;gap:10px}.qr-side p{font-size:13px;color:var(--c-mut)}
.wxid{display:flex;justify-content:space-between;align-items:center;background:var(--c-bg);border-radius:8px;padding:8px 12px;font-size:13px}.wxid b{color:var(--c-tbd)}
.hint-m,.hint-m-btn{display:none!important}
.consult-tips{list-style:none;margin-top:18px;border-top:1px solid var(--c-line);padding-top:14px;display:grid;gap:6px;font-size:13px;color:var(--c-mut)}
.consult-tips a{color:var(--c-accent);font-weight:600}
.consult-open .consult-fab{opacity:0;pointer-events:none}
/* modal */
.modal{position:fixed;inset:0;z-index:85;display:flex;align-items:center;justify-content:center;padding:32px}
.modal-scrim{position:absolute;inset:0;background:rgba(8,8,10,.78)}
.modal-card{position:relative;background:var(--c-surface);border-radius:18px;width:min(1080px,100%);max-height:100%;overflow:auto;display:grid;grid-template-columns:1.6fr 1fr}
.modal-x{position:absolute;right:12px;top:10px;width:36px;height:36px;font-size:16px;z-index:2;color:var(--c-ink);background:rgba(255,255,255,.92);border-radius:50%}
.mv{background:#0b0c0e;display:flex;align-items:center;padding:0}.mv .vid{width:100%;border-radius:0}
.mi{padding:28px 26px}.mi h3{font:700 26px/1.3 var(--font-display)}.by{margin-top:4px;color:var(--c-mut)}.by b{color:var(--c-ink)}
.why{margin-top:18px;background:var(--c-tint);border-radius:10px;padding:14px 16px}.why h4,.vers h4{font-size:13px;color:var(--c-mut);font-weight:600}.why p{margin-top:4px;font-size:15px}
.vers{margin:16px 0 20px}.vers div{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:6px}
.vers span{font:600 12px/1 var(--font-latin);padding:5px 7px;border-radius:5px;background:var(--c-bg);border:1px solid var(--c-line)}.vers span.fin{background:var(--c-ok);color:#fff;border-color:var(--c-ok)}
.vers i{font-style:normal;color:var(--c-mut);font-size:11px}.vers small{font-size:12px;color:var(--c-mut)}
.mi .muted{margin-top:8px;text-align:center}.sample{margin-top:14px;font-size:11px;color:var(--c-tbd);text-align:center}
.toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);background:rgba(20,20,24,.92);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;z-index:100;max-width:90vw;text-align:center}
.tabbar{display:none}
.ti{display:inline-block;width:20px;height:20px;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.ti-home{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}
.ti-works{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M10 9l5 3-5 3z' fill='black'/%3E%3C/svg%3E")}
.ti-chat{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E")}
.ti-forum{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='9' cy='9' r='3'/%3E%3Ccircle cx='17' cy='10' r='2.5'/%3E%3Cpath d='M3 19c0-3 3-5 6-5s6 2 6 5M15 15c3 0 6 1.5 6 4'/%3E%3C/svg%3E")}

/* ===== 平板 ===== */
@media (max-width:1100px){
  .mainnav{gap:20px}.topbar .wrap{gap:24px}.actions .login{display:none}
  .ten-in{grid-template-columns:auto 1fr}.stats{grid-column:1/-1}
  .stages{grid-template-columns:repeat(3,1fr)}.wall,.daily-row,.grid-4,.ccards,.cls-mini{grid-template-columns:repeat(2,1fr)}
  .titems{grid-template-columns:repeat(2,1fr)}
}
/* ===== 手机 ===== */
@media (max-width:760px){
  body{font-size:15px;padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .wrap{padding:0 18px}
  .todaybar{font-size:11.5px}.todaybar .wrap{gap:6px;height:30px}.todaybar .old,.todaybar .sep:nth-of-type(2),.todaybar span:nth-of-type(5),.todaybar span:nth-of-type(4){display:none}
  .topbar .wrap{height:56px}.brand img{height:30px}
  .mainnav,.actions .forum,.actions .login{display:none}.actions{gap:8px}.menu-btn{display:block}
  .hero{min-height:auto}.hero-bg{position:relative;inset:auto}.hero{flex-direction:column;align-items:stretch}
  .hero-bg .vid{position:relative;aspect-ratio:16/10}.hero-bg:after{background:linear-gradient(transparent 55%,var(--c-dark))}
  .hero-bg .vid-play{left:50%}.hero-bg .vid-lab{right:14px;left:14px;text-align:left;bottom:auto;top:30px;font-size:12px}
  .hero-in{padding:8px 18px 40px}
  .hero h1{font-size:34px}.hero-sub{font-size:16px}.hero-found{font-size:14.5px;margin-top:18px}
  .hero-btns{margin-top:24px;gap:10px}.hero-btns .btn{flex:1 1 140px;padding:0 14px}.btn-lg{height:48px;font-size:15px}
  .ten{padding:40px 0}.ten-in{grid-template-columns:1fr;gap:22px}.ten-num b{font-size:84px}.ten-txt h2{font-size:22px}
  .logos{gap:18px}.logos img{height:20px}
  .stats{grid-template-columns:repeat(2,1fr)}.stats b{font-size:24px}
  .sec{padding:52px 0}.sec-head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:22px}
  .sec-head h2,.endcta h2{font-size:25px}.phead{padding:40px 0 30px}.phead h1,.whead h1,.shead h1,.ehead h1{font-size:32px}
  .phead .sub.big{font-size:17px}
  .wall{grid-template-columns:repeat(2,1fr);gap:14px}.wtile small{font-size:11.5px}
  .feature{grid-template-columns:1fr}.fcard.big{grid-row:auto}
  .stages{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:70%;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -18px;padding:4px 18px 14px}
  .stage-card{scroll-snap-align:start}
  .how,.two,.two-3-7,.two-6-4,.three,.faq-wrap,.shead-in{grid-template-columns:1fr;gap:28px}
  .daily-row{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:76%;overflow-x:auto;margin:0 -18px;padding:4px 18px 14px;gap:14px}
  .mentor-strip{gap:12px;flex-wrap:nowrap;overflow-x:auto;margin:0 -18px;padding:0 18px 8px}.mm{width:96px;flex:none}
  .ask{position:static}
  .crow{grid-template-columns:1fr;gap:18px;padding:32px 0}.crow-body h3{font-size:24px}
  .cls-mini,.ccards,.grid-3,.grid-4{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr);gap:14px}
  .grid-3[data-stage-works]{grid-template-columns:repeat(2,1fr);gap:14px}
  .wc-b .badge{position:static;display:inline-block;margin-top:4px}
  .revs{grid-template-columns:repeat(2,1fr)}
  .jump{flex-wrap:nowrap;overflow-x:auto;margin:22px -18px 0;padding:0 18px 6px}.jump a{white-space:nowrap}
  .filters{flex-direction:column;flex-wrap:nowrap}.filters>*{min-width:0}.fgroup{flex-wrap:nowrap;overflow-x:auto;margin:0 -18px;padding:0 18px 6px}.fgroup button{white-space:nowrap}
  .fgroup2 select{flex:1;max-width:none}
  .tday{grid-template-columns:1fr;gap:10px}.tdate{position:static}.titems{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}.incl ul{grid-template-columns:1fr}.paybox{position:static}
  .eflow{gap:6px}.eflow li{font-size:12.5px;padding:6px 12px 6px 6px}
  .footer .wrap{grid-template-columns:1fr 1fr;gap:24px}.f-brand{grid-column:1/-1}.f-col:last-of-type{grid-column:1/-1}
  .consult-fab{display:none}
  .tabbar{display:grid;grid-template-columns:repeat(3,1fr);/* 10-30 去掉「作品」tab */position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.97);border-top:1px solid var(--c-line);padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(10px)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 7px;font-size:11px;color:var(--c-mut)}
  .tabbar a.on{color:var(--c-accent)}.tabbar a[data-tab=consult]{color:var(--c-accent);font-weight:600}
  .consult{z-index:95}.consult-card{left:0;right:0;bottom:0;width:auto;border-radius:20px 20px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom))}
  .consult-qr{grid-template-columns:1fr}.qr-box{width:150px;margin:0 auto}
  .hint-pc{display:none}.hint-m{display:block!important}.hint-m-btn{display:inline-flex!important}
  .modal{padding:0;align-items:flex-end}.modal-card{grid-template-columns:1fr;border-radius:18px 18px 0 0;max-height:92vh}.mi{padding:20px 18px 28px}
  .toast{bottom:84px}
}

/* ===== 预览用水印：只做 CSS 叠加层，不改原图（v4 移植，2026-10-29）=====
   正式水印样式待陶sir 看样确认后再定；确认前不批量烧进图片文件。
   位置：角落小字，避开播放钮 / 时长和画面中心人脸（内页右上，首页右下，见 home.css）。 */
.vid:has(img):before,.vid:has(video):before,.hero-bg:before,.end-bg:before{content:"© 陶婶动画 · 学员作品";display:block;position:absolute;inset:9px 10px auto auto;z-index:3;background:none;
  font:500 11px/1 var(--font-sans);letter-spacing:.06em;color:rgba(255,255,255,.55);text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none;white-space:nowrap}
.fcard.big .vid:before,.vid-big:before{font-size:12px}
.hero-bg:before{inset:auto 32px 30px auto;font-size:12px}
.end-bg:before{inset:auto 24px 20px auto}
.ls-ui .vid:before{display:none!important}
@media (max-width:760px){
  .vid:has(img):before,.vid:has(video):before{content:"© 陶婶动画";font-size:9px;inset:6px 6px auto auto;color:rgba(255,255,255,.45)}
  .hero-bg:before,.end-bg:before{display:none}
}
.vers h4 .ui-tag{display:inline-block;margin-left:6px;font-style:normal;font-weight:400;font-size:11px;color:#B8862B;border:1px dashed rgba(184,134,43,.7);padding:0 6px;border-radius:3px;vertical-align:1px}
/* 没有二维码时（config.consultWechatQr 为空）咨询窗只留微信号 + 复制 */
.consult-qr.no-qr{grid-template-columns:1fr}.consult-qr.no-qr .hint-pc{display:none}

/* ===== 2026-10-29 白林：关于页 #award 奖项（首页 hero 徽章跳到这里） ===== */
.award-sec{scroll-margin-top:68px}
.award-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:56px;align-items:center}
.award-copy{max-width:30em}
.award-copy .nw{white-space:nowrap}   /* .nw 只在 home.css 里定义，关于页没有，这里局部补上 */
.award-copy p:not(.kicker){color:#3b3b42;font-size:15px;line-height:1.8}
.award-copy .more{display:inline-block;margin-top:20px;color:var(--c-accent)}
.award-copy .more:hover{color:var(--c-ink)}
.award-copy .more:focus-visible{outline:2px solid var(--c-accent);outline-offset:4px;border-radius:2px}
.award-ph{display:grid;grid-template-columns:440px 150px;gap:16px;align-items:end}
.award-ph figure{margin:0}
.award-ph img{width:100%;height:auto;border-radius:var(--radius-sm);background:var(--c-line)}
.award-ph figcaption{margin-top:8px;font-size:12px;line-height:1.5;color:var(--c-mut)}
@media (max-width:1100px){.award-in{grid-template-columns:1fr;gap:28px}.award-ph{grid-template-columns:minmax(0,440px) 150px}}
@media (max-width:760px){.award-sec{scroll-margin-top:56px}.award-ph{grid-template-columns:minmax(0,1fr) 31%;gap:12px}}

/* 2026-10-29 轩哥：.nw 全站可用（原来只在 home.css） */
.nw{white-space:nowrap}

/* =====================================================================
   10-29 批量修改（轩哥）：新增区块。全部用独立 class，白林改样式只动这一节，不用改结构。
   loop5-* 怎么上课 5 步 + 3↔4 回环 ｜ co-* 学员去向公司墙 ｜ fb-* 导师怎么改
   crow-cta / cmp-* / ebar 课程页报名入口 ｜ hero-motto 首屏两行标题
   ===================================================================== */

/* 首屏两行标题 */
.hero-motto .hero-line{display:block;white-space:nowrap}

/* ---- 怎么上课：5 步 + 第 3↔4 步回环 ---- */
.loop5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:24px;row-gap:0}
.loop5-list{display:contents;list-style:none}
.loop5-step{grid-row:1;position:relative;padding:26px 10px 0 0;border-top:1px solid var(--c-line-2,var(--c-line))}
.loop5-step:after{content:"";position:absolute;left:0;top:-1px;width:40px;height:2px;background:var(--c-accent)}
.loop5-step.is-loop{border-top-color:var(--c-accent)}
.loop5-num{display:block;font:500 13px/1 var(--font-latin);letter-spacing:.2em;color:var(--c-tx-3,var(--c-mut))}
.loop5-name{display:block;font:800 22px/1.3 var(--font-display);margin-top:14px}
.loop5-desc{display:block;font-size:14.5px;line-height:1.8;color:var(--c-mut);margin-top:10px}
.loop5-back{grid-row:2;grid-column:3 / span 2;position:relative;margin-top:22px;padding-top:40px;text-align:center}
.loop5-arrow{position:absolute;left:12%;right:12%;top:0;height:28px;border:2px solid var(--c-accent);border-top:0;border-radius:0 0 16px 16px}
.loop5-arrow:before{content:"";position:absolute;left:-7px;top:-2px;border:6px solid transparent;border-bottom:10px solid var(--c-accent);border-top:0}
.loop5-label{display:inline-block;font-weight:700;font-size:15px;color:var(--c-accent);letter-spacing:.06em}
.loop5-vers{display:block;margin-top:6px;font:500 12px/1.4 var(--font-latin);letter-spacing:.12em;color:var(--c-tx-3,var(--c-mut))}
@media (max-width:760px){
  .loop5{grid-template-columns:minmax(0,1fr) 56px;column-gap:10px}
  .loop5-step{grid-column:1;padding:20px 0 18px}
  .loop5-step:nth-child(1){grid-row:1}.loop5-step:nth-child(2){grid-row:2}.loop5-step:nth-child(3){grid-row:3}.loop5-step:nth-child(4){grid-row:4}.loop5-step:nth-child(5){grid-row:5}
  .loop5-back{grid-column:2;grid-row:3 / span 2;margin:0;padding:0 0 0 22px;display:flex;align-items:center;text-align:left}
  .loop5-arrow{left:0;right:auto;top:18%;bottom:18%;width:16px;height:auto;border:2px solid var(--c-accent);border-left:0;border-radius:0 14px 14px 0}
  .loop5-arrow:before{left:-4px;top:-7px;border:6px solid transparent;border-right:10px solid var(--c-accent);border-left:0}
  .loop5-label{writing-mode:vertical-rl;font-size:14px;letter-spacing:.2em}
  .loop5-vers{display:none}
}
.about-how-wrap{display:grid;gap:56px}

/* ---- 学员去向公司墙 ---- */
.co-wall{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:44px;border-top:1px solid var(--c-line);border-left:1px solid var(--c-line)}
.co-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:132px;padding:20px 14px;text-align:center;border-right:1px solid var(--c-line);border-bottom:1px solid var(--c-line)}
.co-logo{display:flex;flex-direction:column;align-items:center;gap:4px}
.co-img{max-height:40px;max-width:150px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.co-word{font:700 19px/1.3 var(--font-sans);letter-spacing:.12em;color:var(--c-ink);opacity:.85}
.co-word.is-lat{font-family:var(--font-latin);letter-spacing:.04em;font-weight:800}
.co-city{font-size:12px;letter-spacing:.2em;color:var(--c-tx-3,var(--c-mut))}
.co-works{font-size:12.5px;line-height:1.6;color:var(--c-mut);max-width:20em}
.co-more .co-word{font-weight:400;font-size:14px;letter-spacing:.2em;color:var(--c-tx-3,var(--c-mut))}
.co-note{margin-top:14px;font-size:12px;color:var(--c-tx-3,var(--c-mut))}
@media (max-width:760px){
  .co-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .co-item{min-height:96px;padding:14px 8px}.co-word{font-size:15px;letter-spacing:.06em}.co-works{font-size:11.5px}
}

/* ---- 导师怎么改（反馈案例占位） ---- */

/* ---- 课程页：阶段卡报名按钮 ---- */
.crow-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.crow-cta .crow-cls{margin:0 0 0 6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.crow-cls-link{font-size:12.5px;font-weight:600;color:var(--c-accent);border:1px solid rgba(228,68,47,.35);border-radius:999px;padding:2px 10px}
.crow-cls-link:hover{background:rgba(228,68,47,.06)}

/* ---- 课程页：班型对比卡 ---- */
.cmp-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.cmp-card{position:relative;display:flex;flex-direction:column;background:var(--c-surface);border:2px solid transparent;border-radius:var(--radius);padding:24px 18px 18px}
.cmp-card.is-best{border-color:var(--c-accent)}
.cmp-flag{position:absolute;top:-11px;left:16px;background:var(--c-accent);color:#fff;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px}
.cmp-name{font-size:18px}.cmp-who{font-size:12.5px;color:var(--c-mut);margin-top:4px;min-height:3.2em}
.cmp-price{margin:12px 0 10px;display:flex;align-items:baseline;gap:8px}
.cmp-price b{font:800 26px/1 var(--font-latin);color:var(--c-accent)}.cmp-price s{font-size:13px;color:var(--c-mut)}
.cmp-facts{display:grid;gap:4px;font-size:13px;margin-bottom:12px}
.cmp-facts div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--c-line);padding:4px 0}
.cmp-facts dt{color:var(--c-mut)}.cmp-facts dd{font-weight:600;text-align:right}
.cmp-stages{list-style:none;display:grid;gap:4px;font-size:12.5px;margin-bottom:16px;flex:1}
.cmp-st{color:var(--c-mut);opacity:.45;text-decoration:line-through}
.cmp-st.is-in{opacity:1;text-decoration:none;color:var(--c-ink)}
.cmp-st-no{font-family:var(--font-latin);font-weight:700;margin-right:6px}
.cmp-st.is-in .cmp-st-no{color:var(--c-accent)}
.cmp-card.is-single .cmp-st{opacity:1;text-decoration:none;color:var(--c-ink)}
@media (max-width:1100px){.cmp-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.cmp-cards{grid-template-columns:1fr;gap:20px}.cmp-who{min-height:0}}
.ccards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* ---- 课程页：底部常驻报名栏 ---- */
.ebar{position:fixed;left:0;right:0;bottom:0;z-index:65;background:rgba(11,12,14,.94);color:#fff;backdrop-filter:blur(10px);transform:translateY(110%);transition:transform .3s;border-top:1px solid rgba(255,255,255,.08)}
.ebar.is-on{transform:none}
.ebar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:58px}
.ebar-txt{display:flex;align-items:baseline;gap:10px;font-size:14px}
.ebar-txt b{font-size:16px}.ebar-sep{opacity:.5}.ebar-price em{font-style:normal;color:#E8B866}
.has-ebar .consult-fab{bottom:76px}
@media (max-width:760px){
  .ebar{bottom:calc(56px + env(safe-area-inset-bottom))}
  .ebar-in{height:50px}.ebar-txt{font-size:13px}
}
/* 10-29 23:23 单阶段定价 */
.cmp-st-price{float:right;font-family:var(--font-latin);font-weight:700;color:var(--c-accent)}
.crow-enroll{display:inline-flex;align-items:center;gap:8px}
.crow-enroll-price{font-size:12px;font-weight:500;opacity:.9}
.cc-sp{line-height:1.8}
.stage-pick[hidden]{display:none}
.cmp-card.is-single .cmp-st{display:flex;align-items:baseline;gap:4px}
.cmp-card.is-single .cmp-st-price{float:none;margin-left:auto;white-space:nowrap}
.cc-sp .nw{display:inline-block;margin-right:10px;line-height:1.7}
.ccard li.cc-sp{display:block;line-height:1.7}
/* 10-29 阶段页：头部「也包含在」班型链接（深色头图上） */
.crow-cls-hero{margin-top:14px;color:rgba(255,255,255,.7)}
.crow-cls-hero .crow-cls-link{color:#fff;border-color:rgba(255,255,255,.45)}
/* 10-29 首页阶段卡：整卡去阶段页（stretched link），右下角单阶段价 + 报名单独可点 */
.stage-card{position:relative}
.sc-link{color:inherit;text-decoration:none}
.sc-link:after{content:"";position:absolute;inset:0;z-index:1}
.sc-link:focus-visible{outline:none}.stage-card:focus-within{outline:2px solid var(--c-accent);outline-offset:2px}
.sc-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.sc-meta-tx{flex:1;min-width:0}
.sc-enroll{position:relative;z-index:3;flex:none;display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px;color:var(--c-accent);font-weight:600;font-size:12.5px;white-space:nowrap;text-decoration:none;letter-spacing:0}
.sc-enroll b{font:700 15px/1 var(--font-latin);color:inherit}
.sc-enroll:hover{text-decoration:underline;text-underline-offset:3px}
/* 五张卡下面一条：全科班 */
.qk-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:16px 20px 16px 24px;border-radius:var(--radius-sm,10px);background:var(--c-surface);border:1px solid var(--c-line)}
.qk-txt{font-size:15px}.qk-txt b{font-size:16px}.qk-sep{opacity:.5;margin:0 8px}.qk-txt em{font-style:normal;font-weight:700;color:var(--c-accent);font-family:var(--font-latin)}
.qk-go{flex:none}
@media (max-width:760px){.qk-bar{padding:14px 14px 14px 16px;gap:10px}.qk-txt{font-size:13.5px}.qk-txt b{font-size:14.5px}.qk-sep{margin:0 5px}}
/* stretched link 要以整张卡为定位基准：.sc-body 不再做定位/层叠上下文，里面的块各自 relative 压住图片渐变 */
.stage-card .sc-body{position:static;z-index:auto}
.stage-card .sc-body>*:not(h3){position:relative}
.stage-card .sc-link:after{z-index:4}
.stage-card .sc-enroll{z-index:5}
/* ===== 10-29 白林视觉复查（review_1029）===== */
/* M4 课程页底栏出现时收起咨询浮钮 */
.has-ebar .consult-fab{opacity:0;pointer-events:none}
/* M5 手机底栏出现时，顶栏「报名咨询」改描边，避免两个实心红钮 */
@media (max-width:760px){.has-ebar .topbar .hd-cta{background:transparent;color:var(--c-accent);box-shadow:none;border:1.5px solid var(--c-accent)}}
/* N 桌面回环箭头加粗 */
.loop5-arrow{border-width:2.5px}
.loop5-label br{display:none}
@media (max-width:760px){
  .loop5{grid-template-columns:minmax(0,1fr) 44px}
  .loop5-arrow{width:12px;border-width:2.5px}
  .loop5-label{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.06em;line-height:1.1;font-size:13px}
  .loop5-label br{display:inline}
  .loop5-back{padding-left:15px}
}
/* N1 反馈时长大字 */
/* N2 logo 墙：≥1100 七列刚好两行；代表作平衡换行 */
@media (min-width:1100px){.co-wall{grid-template-columns:repeat(7,minmax(0,1fr))}}
.co-works{text-wrap:balance}
/* N3 卡片小字 */
.sc-en{min-height:2.8em}
.sc-meta-tx .nw{white-space:nowrap}
.crow .kicker,.phead .kicker,.stage-hero .kicker{text-wrap:balance}
/* 卡片底部：左侧两行固定（任务·周 / 难度），右侧价格 + 报名 */
.stage-card .sc-meta-tx .nw{display:block;white-space:nowrap}
.stage-card .sc-meta-sep{display:none}
/* ===== 10-29 咨询窗口 cw-*（全站，10-30 简化：chips → 加咨询老师微信）===== */
.cw .consult-card{width:420px;max-height:calc(100vh - 120px);overflow:auto;overscroll-behavior:contain}
.cw-card:focus{outline:none}
.cw-k{margin-top:18px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--c-mut)}
.cw-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.cw-qa{display:contents}
.cw-chip{border:1px solid var(--c-line);background:var(--c-bg);border-radius:999px;padding:7px 14px;font-size:13.5px;color:var(--c-ink);cursor:pointer}
.cw-chip:hover{border-color:var(--c-accent);color:var(--c-accent)}
.cw-chip[aria-expanded=true]{background:var(--c-accent);border-color:var(--c-accent);color:#fff}
.cw-ans{order:99;flex-basis:100%;background:var(--c-tint);border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.75}
.cw-ans-more{display:inline-block;margin-top:6px;color:var(--c-accent);font-weight:600;font-size:13px}
.end-ask-tx{margin-top:14px;font-size:14px;line-height:1.75;color:var(--c-mut)}
@media (max-width:760px){
  .cw .consult-card{width:auto;max-height:88vh;animation:cwup .22s ease-out}
}
@keyframes cwup{from{transform:translateY(40px);opacity:0}}
@media (prefers-reduced-motion:reduce){.cw .consult-card{animation:none}}
.consult.cw{z-index:200}

/* ===== 10-30 全科班条第二行：其他优惠组合（build.py qk_more）===== */
.qk-main{min-width:0}
.qk-more{margin-top:6px;font-size:13px;line-height:1.6;color:var(--c-mut)}
.qk-more .qk-p{font-weight:600;color:var(--c-ink);opacity:.9;font-family:var(--font-latin)}
.qk-more-go{color:var(--c-mut);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.qk-more-go:hover,.qk-more-go:focus-visible{color:var(--c-ink);border-bottom-color:currentColor}
@media (max-width:760px){.qk-more{font-size:12px;margin-top:4px}.qk-gap{display:block;height:0;overflow:hidden}}

/* ===== 10-30 陶sir：作品卡 / 阶段卡 / 海报上去掉「© 陶婶动画 · 学员作品」叠字（图片和视频本身已烧 logo 水印）===== */
.vid:has(img):before,.vid:has(video):before,.end-bg:before,.fcard.big .vid:before,.vid-big:before{content:none!important;display:none!important}
/* ===== 10-30 白林 logo 墙：白色单色 logo（public/assets/home/logos/），尺寸按 logo 比例写在 img width/height（宽 ≤130，扁的高 ≤44，近方的高 ≤58） ===== */
.co-img{max-height:none;max-width:100%;height:auto;filter:none;opacity:.88;transition:opacity .2s}
.co-item:hover .co-img{opacity:1}
.co-logo{min-height:58px;justify-content:center}
@media (max-width:760px){.co-img{transform:scale(.85)}.co-logo{min-height:50px}}
/* ===== 10-30 报名页：提高班 / 高级班作品附件 + 提交状态（site.js 报名页段） ===== */
.eform .exam{border:1px solid var(--c-line);border-radius:12px;padding:16px 16px 18px;margin:0;display:grid;gap:12px;min-width:0}
.eform .exam legend{font-size:14px;font-weight:600;padding:0 6px}
.exam-note{font-size:13.5px;line-height:1.7;color:var(--c-mut);margin:0}
.eform .exam-drop{display:grid;gap:4px;place-items:center;text-align:center;border:1.5px dashed var(--c-line);border-radius:10px;padding:18px 12px;cursor:pointer;font-weight:400;transition:border-color .15s,background .15s}
.eform .exam-drop:hover,.eform .exam-drop.is-over,.eform .exam-drop:focus-within{border-color:var(--c-accent);background:rgba(228,68,47,.04)}
.eform .exam-drop input{position:absolute;width:1px;height:1px;opacity:0}
.exam-drop-t b{color:var(--c-accent);margin-right:6px}
.exam-drop small{font-size:12px;color:var(--c-mut)}
.exam-files{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px}
.exam-files li{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;background:var(--c-surface);border:1px solid var(--c-line)}
.exam-files .ef-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exam-files .ef-s{color:var(--c-mut);font-variant-numeric:tabular-nums}
.exam-files .ef-x{border:0;background:none;color:var(--c-mut);cursor:pointer;font-size:13px;padding:2px 4px}
.exam-files .ef-sum{background:none;border:0;padding:2px 2px 0;color:var(--c-mut);justify-content:flex-end}
.exam-files .ef-sum.over{color:var(--c-accent);font-weight:600}
.eform .opt{font-weight:400;color:var(--c-mut);margin-left:2px}
.esend{font-size:14px;line-height:1.7;padding:12px 14px;border-radius:10px;border:1px solid var(--c-line)}
.esend.is-busy{color:var(--c-mut)}
.esend.is-ok{border-color:rgba(46,160,90,.5);background:rgba(46,160,90,.08)}
.esend.is-fail{border-color:rgba(228,68,47,.55);background:rgba(228,68,47,.07)}
.eform .exam-drop{position:relative}
/* 10-30 报名页底部扫码付款（build.py pay_qr，content.PAY_QR）：原图显示，最宽 240px */
/* 10-30 收款码放进 STEP 3 交费框（原图不裁切；底部单独的扫码区块已删） */
.pay-opts{grid-template-columns:repeat(2,minmax(0,200px));justify-content:center;gap:14px}
.paybox .pqr{margin:0;padding:8px 6px 6px;border:1px solid var(--c-line);border-style:solid;background:#fff;color:var(--c-ink)}
.pqr figcaption{font-size:14px;font-weight:700;margin-bottom:8px;color:var(--c-ink)}
.pqr img{display:block;width:100%;height:auto;border-radius:6px}
.paybox .pay-note{font-size:14px;line-height:1.7;margin-top:14px}
.pay-note b{color:var(--c-accent);font-weight:700}
@media (min-width:761px){.paybox:has(.pqr){padding:22px 16px}}
@media (max-width:1100px){.paybox{padding:20px 14px}.pay-opts{gap:10px}}
@media (max-width:760px){.pay-opts{grid-template-columns:minmax(0,240px);gap:16px}}

/* 10-30 导师怎么改（白林版式）：左右 学员版静音（桌面悬停播放）｜中 导师反馈红框大图 → 弹层有声播放；手机横滑一屏一个 */
.fb-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}
.fb-cases-n4,.fb-cases-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fb-case{display:flex;flex-direction:column;gap:14px;min-width:0}
.fb-flow{display:grid;grid-template-columns:1fr auto 1.7fr auto 1fr;align-items:center;gap:6px}
.fb-slot{position:relative;aspect-ratio:16/10;border-radius:var(--radius-sm);background:#0b0c0e;overflow:hidden;display:block;padding:0;border:0;min-width:0}
.fb-slot video,.fb-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fb-slot-lab{position:absolute;left:6px;bottom:6px;font-size:11px;line-height:1.3;color:#fff;background:rgba(8,8,10,.62);padding:2px 6px;border-radius:4px;pointer-events:none}
.fb-slot.fb-video{aspect-ratio:4/3;cursor:pointer;outline:2px solid var(--c-accent);outline-offset:-2px;box-shadow:0 6px 22px rgba(0,0,0,.18)}
.fb-video .fb-slot-lab{background:var(--c-accent);font-weight:600}
.fb-play{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:rgba(8,8,10,.6);box-shadow:0 0 0 2px rgba(255,255,255,.85) inset;transition:transform .2s,background .2s}
.fb-play::after{content:"";position:absolute;left:21px;top:16px;border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent #fff}
.fb-video:hover .fb-play,.fb-video:focus-visible .fb-play,.ls-shot:hover .fb-play{transform:scale(1.08);background:var(--c-accent)}
.fb-to{font-family:var(--font-latin);color:var(--c-tx-3,var(--c-mut));font-size:14px}
.fb-meta{display:flex;flex-direction:column;gap:4px}
.fb-no{font:500 12px/1 var(--font-latin);letter-spacing:.2em;color:var(--c-tx-3,var(--c-mut))}
.fb-title{font-size:16px}
.fb-len{display:flex;align-items:baseline;gap:6px;color:var(--c-accent);font-weight:600}
.fb-len-k,.fb-len-u{font-size:12px;font-weight:500}
.fb-len-n{font:700 28px/1 var(--font-latin)}
@media (max-width:1000px){.fb-cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .fb-cases,.fb-cases-n4,.fb-cases-n2{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 calc(-1*22px);padding:0 22px 8px;scroll-padding:0 22px;scrollbar-width:none;overscroll-behavior-x:contain}
  .fb-cases::-webkit-scrollbar{display:none}
  .fb-case{flex:0 0 100%;scroll-snap-align:start}
  .fb-flow{grid-template-columns:1fr 1fr;gap:8px}.fb-to{display:none}
  .fb-slot.fb-video{grid-column:1/-1;grid-row:1;aspect-ratio:4/3}
}
/* 视频弹层（导师反馈 / 学习系统视频） */
.modal-card.is-video{display:block;width:min(1100px,100%);background:#0b0c0e}
.modal-card.is-video video{display:block;width:100%;max-height:calc(100vh - 120px);background:#000}
.modal-card.is-video .mvt{color:#fff;font-size:14px;padding:10px 56px 12px 16px;margin:0}
@media (max-width:760px){.modal{align-items:center}.modal-card.is-video{border-radius:12px}}

/* 10-30 报名表：论坛用户名下方小字提示 */
.eform .fhint{font-size:12px;font-weight:400;color:var(--c-mut);line-height:1.5}
/* 10-30 报名表三组（个人资料 / 基础情况 / 报名信息）：桌面两列，手机一列 */
.eform [hidden]{display:none!important}
.eform .egrp{border:1px solid var(--c-line);border-radius:12px;padding:16px 18px 20px;margin:0;min-width:0;display:grid;gap:14px}
.eform .egrp>legend{font-size:15px;font-weight:700;padding:0 6px;color:var(--c-ink)}
.eform .egrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;align-items:start}
.eform .egrid>.span2{grid-column:1 / -1}
.eform .req{font-style:normal;color:var(--c-accent);font-weight:700}
.eform .fld{display:grid;gap:8px;min-width:0}
.eform .fld-k{font-size:14px;font-weight:600}
.eform .chips{display:flex;flex-wrap:wrap;gap:8px}
.eform .chips label{display:inline-flex;align-items:center;gap:6px;font-weight:400;font-size:14px;border:1px solid var(--c-line);border-radius:999px;padding:7px 13px;background:var(--c-surface);cursor:pointer;line-height:1.2}
.eform .chips label:has(input:checked){border-color:var(--c-ink);background:var(--c-ink);color:#fff}
.eform .chips input{margin:0;accent-color:var(--c-accent)}
@media (max-width:760px){.eform .egrid{grid-template-columns:1fr}.eform .egrp{padding:14px 14px 18px}}
/* 10-30 提高 / 高级「先提交作品审核」小表（#review，在 STEP 2 之前） */
.rform{max-width:760px;margin:0 auto;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:26px 26px 22px}
.rform .sec-head{margin-bottom:0}
.rform-lead{margin:-4px 0 0;font-size:15px;line-height:1.7;color:var(--c-ink)}
.rform .exam,.rform .exam-drop{background:var(--c-bg,#fff)}
.eform .exam-tip{grid-column:1 / -1;margin:0;font-size:13.5px;line-height:1.7;padding:10px 14px;border-radius:10px;background:rgba(228,68,47,.06);border:1px solid rgba(228,68,47,.3)}
.eform .exam-tip a{color:var(--c-accent);font-weight:600}
@media (max-width:760px){.rform{padding:18px 14px}}
.rform .egrid .chips label{display:inline-flex;white-space:nowrap;width:auto}
/* 10-30 咨询窗「加咨询老师微信」：微信名片图原样显示（约 220px 宽） */
.cw-wx{margin-top:16px;border-top:1px solid var(--c-line);padding-top:4px;text-align:center}
.cw-wx .cw-k{text-align:left}
.cw-wx-qr{display:flex;justify-content:center;margin-top:10px}
.cw-wx-qr img{width:220px;height:auto;border:1px solid var(--c-line);border-radius:10px;background:#fff}
.cw-wx-ph{width:200px;height:200px;display:grid;place-content:center;gap:4px;border:1.5px dashed var(--c-tbd);border-radius:10px;color:var(--c-tbd);font-size:13px}
.cw-wx-line{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;font-size:13.5px}
.cw-wx-k{color:var(--c-mut)}
.cw-wx-id{font:600 15px/1 var(--font-latin);color:var(--c-ink);letter-spacing:.02em}
.cw-wx-tbd{color:var(--c-tbd);font-family:inherit}
.cw-wx-copy{font-size:12.5px;border:1px solid var(--c-line);border-radius:999px;padding:4px 12px;background:var(--c-bg);cursor:pointer}
.cw-wx-copy:hover{border-color:var(--c-accent);color:var(--c-accent)}
.cw-wx-tip{margin-top:8px;font-size:12.5px;color:var(--c-mut)}
/* 10-30 微信 / QQ 一行，至少一项 */
.eform .wxqq{display:grid;gap:6px}
.eform .wxqq-row{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.eform .wxqq .fhint{margin:0}
.eform .wxqq.is-bad .fhint{color:var(--c-accent);font-weight:600}
.eform .wxqq.is-bad input{border-color:var(--c-accent)}
/* 10-30 报名页：两张表折叠成手风琴（默认关闭），STEP 3 收款码常显；STEP 1 → 2 → 3 间距统一收紧 */
#guide,#classes,#apply{padding:56px 0}
#apply .sec-head{margin-bottom:18px}
.accs{display:flex;flex-direction:column;gap:14px;min-width:0}
.acc{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);scroll-margin-top:84px}
.acc-h{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:18px 22px;background:none;border:0;cursor:pointer;text-align:left;color:inherit;font:inherit}
.acc-t{display:flex;flex-direction:column;gap:4px}
.acc-t b{font:700 19px/1.35 var(--font-display)}
.acc-t small{font-size:13.5px;color:var(--c-mut,#6b7280)}
.acc-chev{flex:none;transition:transform .2s}
.acc.is-open .acc-chev{transform:rotate(180deg)}
.acc.is-open .acc-h{border-bottom:1px solid var(--c-line)}
.acc-h:hover .acc-t b{color:var(--c-primary,inherit)}
.acc-b{padding:6px 22px 22px}
.acc-b .eform,.acc-b .rform{max-width:none;margin:0;background:none;border:0;padding:0;box-shadow:none}
@media (max-width:760px){#guide,#classes,#apply{padding:40px 0}.acc-h{padding:15px 14px}.acc-b{padding:4px 14px 16px}.acc-t b{font-size:17px}}
/* 10-30 报名页每一步可折叠 */
.step-h{display:flex;align-items:center;gap:14px;width:100%;padding:4px 0 14px;background:none;border:0;border-bottom:1px solid var(--c-line);cursor:pointer;text-align:left;color:inherit;font:inherit;margin-bottom:20px}
.step:not(.is-open)>.step-h{margin-bottom:0}
.step-k{flex:none;font:700 12px/1 var(--font-display);letter-spacing:.14em;color:#fff;background:var(--c-ink,#1d1d1f);border-radius:999px;padding:6px 10px}
.step-t{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.step-t b{font:700 26px/1.25 var(--font-display);letter-spacing:.02em}
.step-t small{font-size:13.5px;color:var(--c-mut)}
.step-h .acc-chev{width:24px;height:24px;transition:transform .2s}
.step.is-open>.step-h .acc-chev{transform:rotate(180deg)}
.step-h:focus-visible,.acc-h:focus-visible{outline:2px solid var(--c-ink,#000);outline-offset:3px;border-radius:6px}
.step-sub{font:700 20px/1.35 var(--font-display);margin:0 0 14px}
.step-part+.step-part{margin-top:40px}
.step-note{font-size:14px;color:var(--c-mut);margin:-6px 0 16px}
.paybox.step>.step-h{padding-top:0}
.paybox .step-t b{font-size:22px}
#step1{padding-bottom:40px}#apply{padding-top:40px}
@media (max-width:760px){.step-t b{font-size:21px}.paybox .step-t b{font-size:19px}.step-part+.step-part{margin-top:28px}#step1{padding:36px 0 28px}#apply{padding:28px 0 40px}}
/* 10-30 陶sir 定稿：选套餐 → 付款 → 填报名表；最下面「先给老师看看作品」 */
#apply{padding:44px 0 48px}
#apply>.wrap>.step+.step{margin-top:30px}
.pkgs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding-top:12px}
.pkg-c{display:flex;flex-direction:column;gap:6px;min-width:0}
.pkg{position:relative;display:flex;flex-direction:column;gap:6px;width:100%;flex:1;text-align:left;cursor:pointer;background:var(--c-surface);color:inherit;font:inherit;border:2px solid var(--c-line);border-radius:var(--radius);padding:20px 18px 16px;transition:border-color .15s,box-shadow .15s}
.pkg:hover{border-color:var(--c-ink)}
.pkg.best{border-color:var(--c-accent)}
.pkg.picked{border-color:var(--c-ink);box-shadow:0 0 0 4px rgba(22,23,27,.1)}
.pkg.picked::after{content:"✓ 已选";position:absolute;top:10px;right:12px;font-size:12px;font-weight:700;color:var(--c-ink)}
.pkg-n{font:700 18px/1.3 var(--font-display)}
.pkg-p b{font:700 24px/1.2 var(--font-display)}.pkg-p s{margin-left:8px;font-size:13px;color:var(--c-mut)}
.pkg-st,.pkg-fz{font-size:13px;color:var(--c-mut)}
.pkg-w{font-size:14px;line-height:1.55}
.pkg-tag{align-self:flex-start;font-size:12.5px;color:var(--c-accent);text-decoration:none;border:1px solid currentColor;border-radius:999px;padding:2px 10px}
.pkg-tag:hover{text-decoration:underline}
.pkg-single{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.pkg-single-k{font-weight:700;font-size:15px}.pkg-single-k small{font-weight:400;color:var(--c-mut);margin-left:6px}
.pkg-stages{display:flex;gap:8px;flex-wrap:wrap}
.pkg-stage{display:inline-flex;align-items:baseline;gap:6px;cursor:pointer;background:var(--c-surface);color:inherit;font:inherit;font-size:13.5px;border:1.5px solid var(--c-line);border-radius:999px;padding:6px 12px}
.pkg-stage b{font-size:12px;color:var(--c-mut)}.pkg-stage i{font-style:normal;font-weight:700}
.pkg-stage:hover{border-color:var(--c-ink)}.pkg-stage.picked{border-color:var(--c-ink);background:var(--c-ink);color:#fff}.pkg-stage.picked b{color:#ddd}
.incl-d{margin-top:14px}.incl-d summary{cursor:pointer;font-size:14px;color:var(--c-mut)}.incl-d .incl{margin-top:10px}
.step-sum{margin:12px 0 0;font-size:15px}.step.is-open>.step-sum{display:none}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--c-accent);text-decoration:underline;cursor:pointer}
.step-b.paybox{position:static;padding:22px}
#pay{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;align-items:start}
#pay .pay-sel{grid-column:1/-1;margin:0;font-size:15px}#pay .pay-sel .pay-amt{font:700 22px/1 var(--font-display);margin-left:8px}
#pay .pay-opts{grid-template-columns:repeat(2,200px);justify-content:start}
.pay-copy .pay-note{margin-top:0}.pay-copy .pay-note+.pay-note{margin-top:10px}.pay-copy .paybox-c{margin-top:16px}
.fwrap{max-width:820px}
.paid-hint{margin:0;font-size:13.5px;color:var(--c-mut)}
.rev-sec{padding:40px 0 56px}
.step.rev{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:18px 22px}
.step.rev>.step-h{border-bottom:0;padding:0;margin:0}.step.rev.is-open>.step-h{padding-bottom:14px;border-bottom:1px solid var(--c-line);margin-bottom:18px}
.step.rev .step-t b{font-size:21px}
.step.rev .rform{max-width:760px;margin:0;border:0;background:none;padding:0}
@media (max-width:1100px){.pkgs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){
 #apply{padding:28px 0 36px}#apply>.wrap>.step+.step{margin-top:24px}
 .pkgs{grid-template-columns:1fr 1fr;gap:10px}.pkg{padding:14px 12px 12px}.pkg-n{font-size:16px}.pkg-p b{font-size:20px}.pkg-p s{display:block;margin:2px 0 0}.pkg-w{font-size:13px}
 .pkg.picked::after{top:6px;right:8px}
 #pay{grid-template-columns:1fr}#pay .pay-opts{grid-template-columns:1fr 1fr;justify-content:stretch}
 .step-b.paybox{padding:14px 12px}.step.rev{padding:14px}.step.rev .step-t b{font-size:18px}
 .rev-sec{padding:28px 0 40px}
}
.pkg-sub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.pkg-paid{font-size:12.5px}
[data-step]{scroll-margin-top:78px}
.eform .chips label{white-space:nowrap}
@media (max-width:760px){[data-step]{scroll-margin-top:64px}}
.pay-ex a,.rn-note a{color:var(--c-accent);text-decoration:underline}
#apply #classes{padding:0}
/* 10-30 冻结说明：共享术语 + 提示（#fz-tip 挂在 body，position:fixed，不受卡片 overflow 裁切） */
.fz-t{display:inline-flex;align-items:center;gap:3px;padding:0;margin:0;border:0;background:none;font:inherit;color:inherit;cursor:help;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:3px;border-radius:3px}
.fz-t:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.fz-i{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border:1px solid currentColor;border-radius:50%;font:700 9px/1 Georgia,"Times New Roman",serif;font-style:italic;opacity:.75;text-decoration:none}
.fz-t[aria-expanded="true"] .fz-i,.fz-t:hover .fz-i{opacity:1}
.fz-tip{position:fixed;z-index:1000;max-width:min(300px,calc(100vw - 24px));padding:10px 12px;border-radius:10px;background:#16171b;color:#f3efe6;font:13px/1.65 var(--font-sans);text-align:left;font-weight:400;box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:auto}
.fz-tip[hidden]{display:none}
.fz-tip::after{content:"";position:absolute;left:var(--ax,20px);width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg)}
.fz-tip[data-pos="top"]::after{bottom:-5px}.fz-tip[data-pos="bottom"]::after{top:-5px}
.pkg-in{position:relative;display:flex;flex:1;min-width:0}
.pkg-fz-sp{visibility:hidden;margin-top:auto;display:block}
.pkg-in>.pkg-fz{position:absolute;left:20px;right:20px;bottom:18px}
@media (max-width:760px){.pkg-in>.pkg-fz{left:14px;right:14px;bottom:14px}}
.cmp-facts dt .fz-t{color:inherit}
/* 10-30 组合套餐 + 单阶段：同一套紧凑行样式 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pkg-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:8px 16px;margin-top:16px}
.pkg-row-k{font-weight:700;font-size:15px;padding-top:8px}.pkg-row-k small{display:block;font-weight:400;font-size:12.5px;color:var(--c-mut);margin:2px 0 0}
.pkg-single.pkg-row .pkg-single-k small{margin-left:0}
.pkg-minis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start}
.pkg-mini-c{position:relative;min-width:0;background:var(--c-surface);border:1.5px solid var(--c-line);border-radius:12px;transition:border-color .15s}
.pkg-mini-c:hover{border-color:var(--c-ink)}.pkg-mini-c.is-picked{border-color:var(--c-ink);box-shadow:0 0 0 3px rgba(22,23,27,.1)}
.pkg-mini{display:flex;align-items:baseline;gap:8px;width:100%;cursor:pointer;background:none;border:0;color:inherit;font:inherit;font-size:13.5px;text-align:left;padding:9px 52px 9px 12px;white-space:nowrap;border-radius:12px}
.pkg-mini b{font-weight:700}.pkg-mini-w{color:var(--c-mut);font-size:12.5px}
.pkg-mini-p{margin-left:auto}.pkg-mini-p i{font-style:normal;font-weight:700}.pkg-mini-p s{margin-left:5px;font-size:11.5px;color:var(--c-mut)}
.pkg-mini.picked b::before{content:"✓ ";color:var(--c-accent)}
.pkg-mini-x{position:absolute;top:7px;right:8px;background:none;border:0;padding:2px 4px;font:inherit;font-size:12px;color:var(--c-mut);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.pkg-mini-d{padding:0 12px 10px;font-size:12.5px;color:var(--c-mut);line-height:1.6;border-top:1px dashed var(--c-line);padding-top:8px;margin:0 2px}
.pkg-mini-d p{margin:0}.pkg-mini-d p+p{margin-top:2px}
.pkg-row .pkg-stages{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.pkg-row .pkg-stage{border-radius:12px;padding:9px 12px;justify-content:flex-start}.pkg-row .pkg-stage i{margin-left:auto}
.cmb{margin-top:28px}.cmb-h{font:700 18px/1.3 var(--font-display);margin-bottom:10px}.cmb-h small{font:400 13px var(--font-sans);color:var(--c-mut);margin-left:8px}
.cmb-scroll{overflow-x:auto}
.cmb-t{width:100%;border-collapse:collapse;background:var(--c-surface);border-radius:var(--radius);font-size:14px}
.cmb-t th,.cmb-t td{padding:10px 14px;border-bottom:1px solid var(--c-line);text-align:left;vertical-align:middle}
.cmb-t thead th{font-size:12.5px;color:var(--c-mut);font-weight:400}.cmb-t tbody tr:last-child>*{border-bottom:0}
.cmb-st{color:var(--c-mut);font-size:13px}.cmb-p b{font-weight:700}.cmb-p s{margin-left:6px;font-size:12px;color:var(--c-mut)}.cmb-t .nw{white-space:nowrap}
@media (max-width:760px){
 .pkg-row{grid-template-columns:1fr;gap:6px}.pkg-row-k{padding-top:0}.pkg-row-k small{display:inline;margin-left:6px}
 .pkg-minis{grid-template-columns:1fr}
 .pkg-row .pkg-stages{grid-template-columns:1fr}
 .cmb-scroll{overflow:visible}
 .cmb-t,.cmb-t tbody,.cmb-t th,.cmb-t td{display:block}.cmb-t thead{display:none}
 .cmb-t tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n p" "s s" "w go" "f go";gap:4px 12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--c-line)}
 .cmb-t tbody tr:last-child{border-bottom:0}
 .cmb-t th,.cmb-t td{padding:0;border:0}
 .cmb-n{grid-area:n;font-size:15px}.cmb-p{grid-area:p;text-align:right}.cmb-st{grid-area:s}.cmb-w{grid-area:w;font-size:13px}.cmb-f{grid-area:f;font-size:13px}.cmb-go{grid-area:go;align-self:end}
}
/* 10-30 阶段列表：任务 chips 折叠 */
.chips-tg{display:inline-flex;align-items:center;gap:4px;margin:4px 0 14px;padding:6px 12px;border:1px solid rgba(0,0,0,.14);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.chips-tg:hover{border-color:var(--c-accent);color:var(--c-accent)}
.chips-tg:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.chips-tg+.chips{margin-top:-4px;margin-bottom:14px}
.chips[hidden]{display:none!important}
/* 10-30 报名页：STEP 2 / 3 默认关；没选套餐时锁住（灰色 + 「先选套餐」） */
.step-lock{display:none}
.step.is-locked>.step-h{cursor:not-allowed;opacity:.45}
.step.is-locked>.step-h .step-lock{display:inline-block;align-self:flex-start;margin-top:2px;font-size:12.5px;font-weight:700;color:var(--c-ink,#1d1d1f);background:var(--c-line);border-radius:999px;padding:2px 10px}
.step.is-locked>.step-h [data-step-sub]{display:none}
.step.is-locked>.step-h .acc-chev{opacity:.5}
.pay-done{display:flex;width:100%;justify-content:center;margin:18px 0 6px}
/* 10-30 老学员续费行 */
.pkg-renews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pkg-row .pkg-rn{flex-wrap:wrap;row-gap:2px}
.pkg-rn b{font-size:13.5px;color:inherit;font-weight:700}
.pkg-rn-x{flex-basis:100%;font-size:12px;color:var(--c-accent);font-weight:700}
.pkg-rn.picked .pkg-rn-x{color:#ffd2c8}
.pkg-renew.is-flash{animation:rnflash 1.6s ease 2}
@keyframes rnflash{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 6px rgba(232,72,43,.18);border-radius:12px}}
@media (max-width:760px){.pkg-renews{grid-template-columns:1fr}}
.pkg-rn-note{grid-column:1/-1;margin:2px 0 0;font-size:12.5px;line-height:1.65;color:var(--c-mut)}
.stepper{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.stepper .stp-b{width:38px;height:38px;border-radius:10px;border:1.5px solid var(--c-line);background:var(--c-surface);font:inherit;font-size:20px;line-height:1;cursor:pointer;color:inherit}
.stepper .stp-b:hover{border-color:var(--c-ink)}.stepper .stp-b:focus-visible{outline:2px solid var(--c-ink);outline-offset:2px}
.stepper input[type=number]{width:64px;text-align:center;-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stp-u{font-size:14px;color:var(--c-mut)}.stp-sum{margin-left:8px;font-size:16px}
/* 10-30 /renew/ 老学员续费页 */
.shead-s{padding:48px 0 40px}.shead-s h1{margin:6px 0 8px}
.rn-wrap{max-width:760px}
.rn-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);padding:24px 26px}
.rn-card+.rn-card{margin-top:18px}
.rn-h{font:700 20px/1.3 var(--font-display);margin:0 0 14px;display:flex;align-items:baseline;gap:10px}
.rn-calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0}
.rn-calc dt{font-size:12.5px;color:var(--c-mut)}.rn-calc dd{margin:2px 0 0;font-weight:700;font-size:16px}
.rn-calc{grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0 10px;padding-top:16px;border-top:1px dashed var(--c-line)}
.rn-calc small{font-weight:400;color:var(--c-mut);font-size:12px}
.rn-total{font-size:24px!important;color:var(--c-accent)}.rn-new{font-size:18px!important}
.rn-note{font-size:13px;color:var(--c-mut);line-height:1.7}
.rn-card.paybox{position:static}
.rn-card [data-rn-submit]{margin-top:16px}
@media (max-width:760px){.rn-card{padding:18px 16px}.rn-calc{grid-template-columns:1fr 1fr}.rn-calc>div:last-child{grid-column:1/-1}.shead-s{padding:32px 0 26px}}
.rn-n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--c-ink,#1d1d1f);color:#fff;font:700 13px/1 var(--font-display);flex:none;align-self:center}
.rn-form{max-width:none;margin:0;border:0;background:none;padding:0}
.rn-form .egrid{grid-template-columns:1fr}
/* 10-31 隐私政策页（/privacy/）长文 */
.doc-sec{padding-top:40px}
.doc{max-width:760px;margin:0 auto;font-size:16px;line-height:1.85;color:var(--c-ink,#1d1d1f)}
.doc h2{font:700 21px/1.4 var(--font-display);margin:40px 0 12px;padding-top:18px;border-top:1px solid var(--c-line)}
.doc h2:first-of-type{margin-top:28px}
.doc p{margin:0 0 14px;color:#3b3b42}
.doc ul{margin:0 0 16px;padding-left:1.3em}.doc li{margin:6px 0;color:#3b3b42}
.doc b{color:var(--c-ink,#1d1d1f)}
.doc-tbl{overflow-x:auto;margin:6px 0 18px;-webkit-overflow-scrolling:touch}
.doc table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.6;min-width:320px}
.doc th,.doc td{border:1px solid var(--c-line);padding:9px 12px;text-align:left;vertical-align:top}
.doc th{background:var(--c-surface);font-weight:700;white-space:nowrap}
.doc td:first-child{width:42%}
.doc-meta{font-size:14px}
.agree a{color:var(--c-accent);text-decoration:underline}
.agree-opt{margin-top:-4px;align-items:flex-start!important}.agree-opt input{margin-top:3px}.agree-opt .opt{display:block;margin:2px 0 0;color:var(--c-mut);font-size:12.5px;line-height:1.55}
.rn-card .agree,.rform .agree{margin-top:14px}
@media (max-width:640px){.doc{font-size:15.5px}.doc h2{font-size:19px}.doc th,.doc td{padding:8px 9px}}

/* 10-31 表单接通：作品附件上传未开放时 */
.exam-drop.is-off{opacity:.55;pointer-events:none}
.files-off{display:block;color:#b45309}
.files-off[hidden]{display:none}
