
:root{
  --bg:#FBF9F4; --surface:#FFFFFF; --surface-2:#F2F7F5;
  --ink:#1F3A3D; --ink-2:#3C5857; --muted:#627A77;
  --teal:#2E7D72; --teal-dark:#225E56; --teal-soft:#E6F2EF;
  --sky:#DCEEF2; --sky-deep:#7FB0BE; --sand:#F5E9D3; --sand-deep:#C89A5B;
  --coral:#C9714C; --line:#DCE7E3;
  --shadow:0 10px 32px rgba(31,58,61,.07);
  --shadow-sm:0 4px 16px rgba(31,58,61,.06);
  --radius:20px;
}
html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:6.5rem}
html.reduce-motion,html.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}html *,html *::before,html *::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
html.high-contrast{
  --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#F0F0F0;
  --ink:#0A1E20; --ink-2:#163536; --muted:#2B4544;
  --teal:#00594E; --teal-dark:#003E36; --teal-soft:#DDEEEA;
  --sky:#D3E7EE; --sky-deep:#2E6C80; --sand:#F2E4C8; --sand-deep:#8A5A15;
  --coral:#9A3F1C; --line:#6E8B87; --shadow:none; --shadow-sm:none;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans SC","Helvetica Neue",Arial,sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:var(--teal-dark);text-underline-offset:3px}
a:hover{color:var(--coral)}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{line-height:1.35;margin:0;letter-spacing:.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{width:min(1180px,calc(100% - 2.5rem));margin-inline:auto}
.section{padding:5.5rem 0}
.section--tint{background:var(--surface-2)}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;letter-spacing:.08em;color:var(--teal-dark);background:var(--teal-soft);border:1px solid var(--line);border-radius:999px;padding:.35rem .9rem}
.sec-head{max-width:48rem;margin-bottom:2.75rem}
.sec-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin:1rem 0 .75rem}
.sec-head p{color:var(--muted);font-size:1.05rem}
.lead{font-size:1.15rem;color:var(--ink-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:.7rem 1.5rem;border-radius:999px;border:2px solid var(--teal);font-weight:700;text-decoration:none;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--teal);color:#fff}
.btn--primary:hover{background:var(--teal-dark);color:#fff}
.btn--ghost{background:transparent;color:var(--teal-dark)}
.btn--ghost:hover{background:var(--teal-soft);color:var(--teal-dark)}
.btn svg{width:1.05rem;height:1.05rem;flex:none}
.skip{position:absolute;left:-9999px;top:0;background:var(--teal);color:#fff;padding:.75rem 1.25rem;z-index:200;border-radius:0 0 10px 0}
.skip:focus{left:0}
.todo{background:#FFF3D6;border-bottom:2px dotted #C89A5B;padding:0 .25rem;border-radius:3px;color:var(--ink)}
.todo::after{content:"（待补）";font-size:.75em;color:#8A5A15;margin-left:.25rem;font-weight:600}

/* ---------- utility bar ---------- */
.utility{background:var(--teal-dark);color:#E9F5F2;font-size:.82rem}
.utility .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem;flex-wrap:wrap}
.utility .org{letter-spacing:.02em}
.a11y{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.a11y-label{opacity:.85;margin-right:.25rem}
.a11y button{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:8px;min-width:2rem;height:1.9rem;padding:0 .45rem;cursor:pointer;font-size:.8rem;line-height:1}
.a11y button:hover,.a11y button[aria-pressed="true"]{background:#fff;color:var(--teal-dark)}
.a11y .scale-val{min-width:3.2rem;text-align:center;font-variant-numeric:tabular-nums;opacity:.9}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-height:4.5rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);flex:none}
.brand-logo{width:2.9rem;height:auto;flex:none;border-radius:10px;background:#fff}
.footer-logo{width:4.6rem;height:auto;background:#fff;border-radius:12px;padding:.35rem;margin-bottom:1rem}
.brand-txt strong{display:block;font-size:1.12rem;letter-spacing:.04em;line-height:1.2}
.brand-txt small{display:block;font-size:.68rem;color:var(--muted);letter-spacing:.12em;line-height:1.4}
.nav-toggle{display:none;background:var(--teal-soft);border:1px solid var(--line);border-radius:10px;color:var(--teal-dark);font-weight:700;padding:.5rem .9rem;cursor:pointer}
.main-nav ul{display:flex;align-items:center;gap:.35rem}
.main-nav a{display:block;padding:.5rem .75rem;text-decoration:none;color:var(--ink-2);font-size:.95rem;font-weight:600;border-radius:8px;white-space:nowrap}
.main-nav a:hover{background:var(--teal-soft);color:var(--teal-dark)}
.header-cta{flex:none}
.header-cta .btn{min-height:2.5rem;padding:.45rem 1.1rem;font-size:.9rem}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#FBF9F4 0%,#F1F8F5 52%,#E5F1F0 100%);border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;width:34rem;height:34rem;border-radius:50%;background:var(--sky);opacity:.38;right:-11rem;top:-13rem}
.hero::after{content:"";position:absolute;width:20rem;height:20rem;border-radius:50%;background:var(--sand);opacity:.3;left:-9rem;bottom:-11rem}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:3rem;align-items:center;padding-top:4.5rem;padding-bottom:4.5rem}
.hero h1{font-size:clamp(2.1rem,4.6vw,3.5rem);font-weight:800;letter-spacing:.03em;margin:1.25rem 0 1.25rem;color:var(--ink)}
.hero h1 .line2{color:var(--teal-dark)}
.hero .statement{font-size:1.16rem;color:var(--ink-2);max-width:34rem;border-left:4px solid var(--sky-deep);padding-left:1.1rem;line-height:1.9}
.hero .statement strong{color:var(--teal-dark)}
.hero-actions{display:flex;gap:.85rem;flex-wrap:wrap;margin-top:2rem}
.hero-note{margin-top:1.1rem;font-size:.9rem;color:var(--muted)}
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.75rem;padding-top:1.75rem;border-top:1px solid var(--line)}
.trust li{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--ink-2)}
.trust .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--teal);flex:none;margin-top:.55rem}
.trust b{display:block;color:var(--ink);font-size:.96rem}
.hero-art{display:flex;justify-content:center}
.hero-art svg{width:100%;max-width:30rem;height:auto;filter:drop-shadow(0 18px 36px rgba(31,58,61,.09))}

/* ---------- concerns ---------- */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem 1.85rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.card-num{font-size:2.6rem;font-weight:800;color:var(--sky-deep);opacity:.5;line-height:1;margin-bottom:1rem;font-variant-numeric:tabular-nums}
.card-icon{width:3rem;height:3rem;margin-bottom:1rem}
.card h3{font-size:1.35rem;margin-bottom:.5rem}
.card .kicker{font-size:.85rem;font-weight:700;color:var(--teal-dark);letter-spacing:.06em;margin-bottom:.35rem}
.card p{color:var(--muted);font-size:.98rem;flex:1}
.card .more{margin-top:1.25rem;font-weight:700;font-size:.94rem;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}
.card .more:hover{color:var(--coral)}
.disclaimer{font-size:.82rem;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:.85rem 1.1rem;margin-top:1.5rem}

/* ---------- method ---------- */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;position:relative}
.steps::before{content:"";position:absolute;left:8%;right:8%;top:1.55rem;height:2px;background:var(--line);z-index:0}
.step{position:relative;z-index:1;text-align:center;padding:0 .35rem}
.step .bubble{width:3.2rem;height:3.2rem;margin:0 auto 1.1rem;border-radius:50%;background:var(--surface);border:2px solid var(--teal);color:var(--teal-dark);display:grid;place-items:center;font-weight:800;font-size:1.1rem;box-shadow:0 0 0 7px var(--surface-2)}
.step:nth-child(2) .bubble,.step:nth-child(4) .bubble{background:var(--teal-soft)}
.step h3{font-size:1.05rem;margin-bottom:.5rem}
.step p{font-size:.9rem;color:var(--muted)}
.method-foot{margin:2.5rem auto 0;max-width:max-content;text-align:center;font-size:1.02rem;color:var(--ink-2);background:var(--sand);border-radius:14px;padding:1rem 1.5rem}

/* ---------- case library ---------- */
.case-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.75rem}
.case-filter{background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:.5rem 1.15rem;color:var(--ink-2);font-weight:700;font-size:.9rem;cursor:pointer}
.case-filter:hover{border-color:var(--teal);color:var(--teal-dark)}
.case-filter.is-active{background:var(--teal);border-color:var(--teal);color:#fff}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.case-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}
.case-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--ink)}
.case-card[hidden]{display:none}
.case-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center;background:var(--sky)}
.case-card[data-type="record"] .case-thumb{background:var(--sky)}
.case-card[data-type="video"] .case-thumb{background:var(--teal-soft)}
.case-card[data-type="class"] .case-thumb{background:var(--sand)}
.case-type{position:absolute;top:.75rem;left:.75rem;background:rgba(255,255,255,.94);color:var(--teal-dark);font-size:.75rem;font-weight:700;border-radius:999px;padding:.25rem .75rem}
.case-icon{width:5.2rem;height:5.2rem;opacity:.85}
.case-play{position:absolute;width:2.8rem;height:2.8rem;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:1rem;padding-left:.2rem;box-shadow:var(--shadow-sm)}
.case-body{padding:1.35rem 1.5rem 1.5rem;flex:1;display:flex;flex-direction:column}
.case-body h3{font-size:1.06rem;margin-bottom:.5rem}
.case-body p{font-size:.9rem;color:var(--muted);flex:1}
.case-meta{display:block;font-size:.8rem;color:var(--muted);margin-top:.9rem}
.case-go{margin-top:.9rem;font-weight:700;font-size:.92rem;color:var(--teal-dark);display:inline-flex;align-items:center;gap:.4rem}
.case-card:hover .case-go{color:var(--coral)}
.case-arrow{width:1rem;height:1rem}
.case-foot{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1.75rem}
.case-foot .privacy-note{flex:1;min-width:18rem;margin-top:0}
.privacy-note{display:flex;gap:.75rem;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--sand-deep);border-radius:12px;padding:1rem 1.25rem;font-size:.9rem;color:var(--ink-2)}
.privacy-note svg{width:1.4rem;height:1.4rem;flex:none;color:var(--sand-deep)}

/* ---------- live ---------- */
.live{background:linear-gradient(180deg,#F8FBFA 0%,#ECF4F2 100%);border-block:1px solid var(--line)}
.live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.live-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:1.15rem;align-items:stretch;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-sm);cursor:zoom-in;font:inherit;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}
.live-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.live-shot{position:relative;display:block;border-radius:12px;overflow:hidden}
.live-shot img{width:100%;height:auto;display:block}
.live-badge{position:absolute;left:.55rem;top:.55rem;background:rgba(34,94,86,.94);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.06em;border-radius:999px;padding:.18rem .6rem}
.live-body{display:flex;flex-direction:column;gap:.45rem;padding:.3rem .3rem .3rem 0;min-width:0;justify-content:center}
.live-kicker{align-self:flex-start;font-size:.76rem;font-weight:700;letter-spacing:.07em;color:var(--teal-dark);background:var(--teal-soft);border-radius:999px;padding:.15rem .55rem}
.live-body strong{font-size:1.12rem;line-height:1.5}
.live-desc{font-size:.9rem;color:var(--ink-2);line-height:1.72}
.live-meta{font-size:.86rem;color:var(--muted)}
.live-more{margin-top:.7rem;font-weight:700;font-size:.9rem;color:var(--teal-dark);display:inline-flex;align-items:center;gap:.35rem}
.live-card:hover .live-more{color:var(--coral)}
.live-note{margin-top:1.6rem;font-size:.88rem;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:.85rem 1.1rem}
.live-note strong{color:var(--ink-2)}
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;overflow:visible}
.lightbox[open]{position:fixed;inset:0;margin:auto;width:max-content;height:max-content;display:grid;place-items:center}
.lightbox::backdrop{background:rgba(18,42,44,.9)}
.lightbox-inner{position:relative;display:grid;place-items:center}
.lightbox img{max-width:min(92vw,34rem);max-height:88vh;width:auto;height:auto;border-radius:14px;background:#fff;box-shadow:0 24px 64px rgba(0,0,0,.42)}
.lightbox-close{position:absolute;top:-.65rem;right:-.65rem;width:2.4rem;height:2.4rem;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;box-shadow:var(--shadow)}

/* ---------- faq ---------- */
.faq-list{max-width:52rem;margin-inline:auto;display:grid;gap:.85rem}
.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
.faq-item summary{cursor:pointer;padding:1.15rem 1.4rem;font-weight:700;font-size:1.04rem;display:flex;align-items:center;gap:.85rem;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"?";width:1.7rem;height:1.7rem;flex:none;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark);display:grid;place-items:center;font-size:.9rem}
.faq-item summary::after{content:"+";margin-left:auto;color:var(--teal-dark);font-size:1.35rem;font-weight:400}
.faq-item[open] summary::after{content:"−"}
.faq-item .answer{padding:0 1.4rem 1.35rem 3.95rem;color:var(--muted);font-size:.98rem}
.faq-more{text-align:center;margin-top:2rem;font-size:.98rem;color:var(--muted)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3rem;align-items:start}
.contact-intro h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:1rem 0 1rem}
.contact-intro p{color:var(--ink-2);margin-bottom:1rem}
.contact-intro ul{display:grid;gap:.65rem;margin-top:1.5rem}
.contact-intro li{display:flex;gap:.65rem;align-items:flex-start;color:var(--ink-2);font-size:.97rem}
.contact-intro li svg{width:1.25rem;height:1.25rem;flex:none;color:var(--teal);margin-top:.25rem}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{margin-bottom:1.1rem}
.field label{display:block;font-weight:700;font-size:.9rem;margin-bottom:.4rem}
.field .req{color:var(--coral)}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:.7rem .85rem;color:var(--ink);min-height:2.9rem}
.field textarea{min-height:6rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px var(--teal-soft)}
.hint{font-size:.8rem;color:var(--muted);margin-top:.35rem}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;color:var(--muted);margin:.3rem 0 1.2rem}
.consent input{width:1.1rem;height:1.1rem;flex:none;margin-top:.25rem;accent-color:var(--teal)}
.form-card .btn{width:100%}
.form-msg{margin-top:1rem;border-radius:10px;padding:.8rem 1rem;font-size:.9rem;display:none}
.form-msg.ok{display:block;background:var(--teal-soft);color:var(--teal-dark);border:1px solid var(--teal)}
.form-msg.err{display:block;background:#FDEEE7;color:#8A3E22;border:1px solid var(--coral)}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:#DCE9E6;padding:3.5rem 0 1.5rem;font-size:.92rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:2rem;padding-bottom:2.5rem}
.site-footer h3{font-size:1rem;color:#fff;margin-bottom:1rem;letter-spacing:.05em}
.site-footer a{color:#CFE4DF;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer li{margin-bottom:.55rem}
.footer-brand strong{display:block;font-size:1.15rem;color:#fff;margin-bottom:.6rem}
.footer-brand p{color:#B6CFC9;line-height:1.8}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:1.5rem;display:grid;gap:.6rem;color:#AFC8C2;font-size:.84rem}
.footer-bottom b{color:#DCE9E6}

/* ---------- floats ---------- */
.totop{position:fixed;right:1.25rem;bottom:5.5rem;width:2.8rem;height:2.8rem;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--teal-dark);box-shadow:var(--shadow);cursor:pointer;font-size:1.2rem;display:none;z-index:90}
.totop.show{display:block}
.proto{position:fixed;right:1.25rem;bottom:1.25rem;z-index:110;font-size:.88rem}
.proto-toggle{background:var(--teal-dark);color:#fff;border:none;border-radius:999px;padding:.65rem 1.05rem;cursor:pointer;box-shadow:var(--shadow);font-weight:700}
.proto-panel{display:none;position:absolute;right:0;bottom:3.4rem;width:min(22rem,calc(100vw - 2.5rem));max-height:65vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:1.25rem 1.4rem;color:var(--ink-2)}
.proto-panel.open{display:block}
.proto-panel h4{font-size:1rem;margin-bottom:.6rem;color:var(--ink)}
.proto-panel p{font-size:.86rem;color:var(--muted);margin-bottom:.8rem}
.proto-panel ul{display:grid;gap:.4rem;font-size:.86rem}
.proto-panel li{padding-left:1rem;position:relative}
.proto-panel li::before{content:"·";position:absolute;left:0;color:var(--teal);font-weight:800}
.proto-panel .close{position:absolute;top:.7rem;right:.9rem;background:none;border:none;cursor:pointer;color:var(--muted);font-size:1.1rem}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}
html.reduce-motion .reveal{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;gap:2rem;padding-top:3rem;padding-bottom:3rem}
  .hero-art{order:-1;max-width:22rem;margin-inline:auto}
  .steps{grid-template-columns:repeat(2,1fr);gap:1.75rem}
  .steps::before{display:none}
  .method-foot{max-width:100%;display:block;text-align:center}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .nav-toggle{display:inline-flex;align-items:center;gap:.4rem}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:.75rem 1.25rem 1.25rem}
  .main-nav.open{display:block}
  .main-nav ul{display:grid;gap:.2rem}
  .main-nav a{padding:.7rem .8rem}
  .header-cta{display:none}
  .cards3,.case-grid{grid-template-columns:1fr}
  .live-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:2rem}
  .utility .org{display:none}
  .utility .wrap{justify-content:center;padding:.4rem 0}
}
@media (max-width:560px){
  .section{padding:3.5rem 0}
  .wrap{width:min(1180px,calc(100% - 1.75rem))}
  .trust{grid-template-columns:1fr;gap:.6rem}
  .form-row{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step{text-align:left;display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;align-items:start}
  .step .bubble{margin:0;grid-row:span 2}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  .hero-actions .btn{width:100%}
  .faq-item .answer{padding-left:1.4rem}
  .a11y-label{display:none}
  .live-card{grid-template-columns:1fr;gap:.9rem}
  .live-shot{max-width:18rem;margin-inline:auto}
  .live-body{padding:.2rem .15rem 0}
  .live-more{margin-top:.4rem}
}
@media print{.utility,.site-header,.proto,.totop,.hero-actions,.form-card{display:none}.hero{background:#fff}.reveal{opacity:1;transform:none}}

/* ---------- shared: thumbnails, badges, library, article ---------- */
.thumb-img{width:100%;height:100%;object-fit:cover;display:block}
.case-thumb>img+.case-type,.case-thumb>img+.case-play,.case-thumb>picture+.case-type,.case-thumb>picture+.case-play{z-index:1}
.case-thumb>picture{display:block;width:100%;height:100%}
.topic-nav{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin:1.15rem 0 0;font-size:.9rem}
.topic-nav>span{color:var(--muted);margin-right:.2rem}
.topic-nav a{padding:.38rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--teal-dark);text-decoration:none;white-space:nowrap}
.topic-nav a:hover,.topic-nav a:focus-visible{background:var(--surface-2)}
.case-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.tag{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;border-radius:999px;padding:.2rem .6rem;background:var(--teal-soft);color:var(--teal-dark)}
.tag--record{background:var(--sky);color:#2E6272}
.tag--video{background:var(--teal-soft);color:var(--teal-dark)}
.tag--academic{background:#EDE7F5;color:#5B4A7A}
.tag--class{background:var(--sand);color:#8A6134}
.tag--guide{background:#E4EFF6;color:#315F7A}
.tag--org{background:#EAEDEA;color:#4C6157}
.crumb{font-size:.88rem;color:var(--muted);margin-bottom:1.5rem}
.crumb a{color:var(--teal-dark);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.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}
.lib-hero,.art-head{padding:3.4rem 0 2.4rem;background:linear-gradient(180deg,var(--surface-2),var(--bg))}
.lib-lead,.art-sub{font-size:1.05rem;color:var(--ink-2);max-width:50rem;line-height:1.9;margin-top:1rem}
.lib-stats{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.lib-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.85rem 1.25rem;min-width:9.5rem}
.lib-stat b{display:block;font-size:1.45rem;color:var(--teal-dark);line-height:1.3}
.lib-stat span{font-size:.82rem;color:var(--muted)}
.lib-toolbar{display:grid;gap:1rem;margin-bottom:1.1rem}
.lib-controls{display:flex;flex-wrap:wrap;gap:.7rem}
.lib-controls input,.lib-controls select{background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:.6rem .85rem;color:var(--ink);font-size:.92rem;min-height:2.7rem;font-family:inherit}
.lib-controls input{flex:1;min-width:14rem}
.lib-controls input:focus,.lib-controls select:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px var(--teal-soft)}
.case-filter .cnt{font-weight:400;opacity:.78;font-size:.8rem;margin-left:.25rem}
.lib-result{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
.lib-grid .case-body h3{font-size:1.01rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lib-grid .case-body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.case-badges{display:flex;flex-wrap:wrap;gap:.32rem;margin-top:.7rem}
.lib-empty{display:none;background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:2.5rem;text-align:center;color:var(--muted)}
.lib-empty.show{display:block}
.lib-pager{display:flex;justify-content:center;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:2rem}
.lib-pager button{background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:.5rem .9rem;color:var(--ink-2);font-weight:700;cursor:pointer;font-size:.88rem;font-family:inherit}
.lib-pager button:hover:not(:disabled){border-color:var(--teal);color:var(--teal-dark)}
.lib-pager button.is-active{background:var(--teal);border-color:var(--teal);color:#fff}
.lib-pager button:disabled{opacity:.42;cursor:not-allowed}
.academic-callout{background:var(--surface);border:1px solid var(--line);border-left:5px solid #8A79B8;border-radius:16px;padding:1.8rem 2rem;display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.academic-callout h2{font-size:1.38rem;margin-bottom:.5rem}
.academic-callout p{color:var(--muted);max-width:39rem;font-size:.96rem;line-height:1.8}
.art-kicker{font-size:.86rem;font-weight:700;color:var(--teal-dark);letter-spacing:.08em}
.art-head h1{font-size:clamp(1.7rem,3.4vw,2.55rem);line-height:1.42;margin:.9rem 0 .9rem;max-width:52rem}
.art-meta{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-top:1.3rem;font-size:.88rem;color:var(--muted)}
.sample-bar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:.85rem 1rem;margin:1.6rem 0 1.9rem;font-size:.87rem}
.sample-bar span{color:var(--muted);font-weight:700;margin-right:.3rem}
.sample-bar button,.sample-bar select{background:var(--surface-2);border:1.5px solid var(--line);border-radius:999px;padding:.4rem .9rem;color:var(--ink-2);font-weight:700;cursor:pointer;font-size:.85rem;font-family:inherit}
.sample-bar button:hover,.sample-bar select:hover{border-color:var(--teal)}
.sample-bar select{border-radius:10px;max-width:16rem}
.art-wrap{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:2.6rem;align-items:start}
.art-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2.2rem 2.4rem;box-shadow:var(--shadow-sm);min-width:0}
.art-figure{margin:0 0 1.6rem}
.art-figure img{width:100%;max-height:19rem;object-fit:cover;border-radius:14px;background:var(--surface-2)}
.art-figure figcaption{font-size:.8rem;color:var(--muted);margin-top:.5rem;text-align:center}
.art-notice{background:var(--sand);border-radius:12px;padding:.9rem 1.2rem;font-size:.88rem;color:#6B5330;margin-bottom:1.5rem;line-height:1.75}
.art-content{font-size:1.01rem;line-height:2;color:var(--ink-2)}
.art-content p{margin-bottom:1.15rem}
.art-content h2{font-size:1.3rem;color:var(--ink);margin:1.9rem 0 .8rem;padding-left:.8rem;border-left:4px solid var(--teal)}
.art-content .quote{margin:1.4rem 0;padding:1rem 1.3rem;background:var(--surface-2);border-radius:12px}
.art-media{margin:1.8rem 0;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.5rem;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.art-media .play{width:3.1rem;height:3.1rem;flex:none;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:1.05rem;padding-left:.2rem}
.art-media p{flex:1;min-width:14rem;color:var(--ink-2);font-size:.95rem;line-height:1.7}
.art-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.art-side{display:grid;gap:1.15rem;position:sticky;top:1rem}
.side-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.35rem 1.45rem;box-shadow:var(--shadow-sm)}
.side-card h2{font-size:1rem;margin-bottom:.85rem}
.side-card ul{display:grid;gap:.65rem}
.side-card a{color:var(--teal-dark);text-decoration:none;font-size:.91rem;line-height:1.6;display:block}
.side-card a:hover{text-decoration:underline}
.side-card .side-note{font-size:.84rem;color:var(--muted);margin-top:.8rem;line-height:1.7}
@media(max-width:1000px){.art-wrap{grid-template-columns:1fr}.art-side{position:static}.academic-callout{padding:1.4rem}}
@media(max-width:820px){.lib-grid,.case-grid{grid-template-columns:1fr}}
@media(max-width:560px){.art-body{padding:1.4rem 1.2rem}.lib-stat{min-width:8rem;flex:1}.art-actions .btn{width:100%}}
/* ---------- 机构事实速览（GEO：清晰、可独立引用的实体事实） ---------- */
.fact-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.85rem;margin:1.9rem 0 2.2rem;padding:0}
.fact-list>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.95rem 1.15rem;box-shadow:var(--shadow-sm)}
.fact-list dt{font-size:.76rem;font-weight:700;letter-spacing:.05em;color:var(--muted);margin:0 0 .35rem}
.fact-list dd{margin:0;font-size:.94rem;line-height:1.8;color:var(--ink-2)}
@media(max-width:560px){.fact-list{grid-template-columns:1fr}}
/* ---------- 首页认可与同行区块（重点公开活动） ---------- */
#recognition .sec-head h2{text-wrap:balance}
.tag--family{background:#E6F1EE;color:#356B5C}
.spot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(21rem,1fr));gap:1.15rem;margin-top:1.9rem}
.spot-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.6rem 1.7rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.spot-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.8rem;color:var(--muted);margin-bottom:.9rem}
.spot-card h3{font-size:1.22rem;line-height:1.5;margin:0 0 1rem;color:var(--ink);text-wrap:balance}
.spot-list{margin:0 0 1.2rem;padding-left:1.15rem;display:grid;gap:.7rem}
.spot-list li{font-size:.93rem;line-height:1.85;color:var(--ink-2)}
.spot-card .more{margin-top:auto}
.spot-note{font-size:.85rem;color:var(--muted);line-height:1.8;margin-top:1.3rem}
@media(max-width:820px){.spot-grid{grid-template-columns:1fr}}

/* ---------- WordPress 正文兼容（上线新增） ---------- */
.art-content img,.art-content video,.art-content iframe,.art-content embed{max-width:100%;height:auto;border-radius:12px}
.art-content p{margin:0 0 1.15rem;line-height:1.9}
.art-content h1,.art-content h2,.art-content h3,.art-content h4{font-size:1.3rem;margin:1.9rem 0 .8rem;color:var(--ink);line-height:1.5}
.art-content ul,.art-content ol{padding-left:1.5rem;margin:0 0 1.2rem;line-height:1.9}
.art-content a{color:var(--teal-dark);text-decoration:underline}
.art-content table{max-width:100%;border-collapse:collapse}
.art-content td,.art-content th{padding:.5rem .7rem;border:1px solid var(--line)}
.art-content blockquote{margin:1.4rem 0;padding:1rem 1.3rem;background:var(--surface-2);border-radius:12px}
.art-content pre{overflow-x:auto;background:var(--surface-2);padding:1rem;border-radius:12px}
.art-figure img{width:100%;max-height:19rem;object-fit:cover;border-radius:14px;background:var(--surface-2)}
.loop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:2rem}
@media(max-width:1000px){.loop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.loop-grid{grid-template-columns:1fr}}
.loop-empty{padding:2.5rem;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:16px}
.side-card .btn--primary,.side-card a.btn.btn--primary{color:#fff;text-decoration:none;display:inline-flex}
.side-card a.btn{display:inline-flex;text-decoration:none}
.side-card .btn--ghost,.side-card a.btn.btn--ghost{color:var(--teal-dark)}

/* ---------- 文章页同类记录内链 ---------- */
.rel-list{list-style:none;padding:0;margin:0;line-height:1.9}
.rel-list li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.45rem 0;border-bottom:1px dashed var(--line)}
.rel-list a{color:var(--teal-dark);text-decoration:none}
.rel-list a:hover{text-decoration:underline}
.rel-date{color:var(--muted);font-size:.82rem;white-space:nowrap}
.art-related{margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.art-related h2{font-size:1.2rem;margin:0 0 .5rem;color:var(--ink)}
.art-related p{color:var(--muted);font-size:.9rem;margin:0 0 1rem}
.art-related .btn{margin-top:1.2rem;display:inline-flex}
