/* ===== 字体（本地托管，国内可用） ===== */
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-700.woff2) format("woff2");font-weight:700;font-display:swap}
/* 标志字：Outfit Bold（OFL），只保留名称用到的字母，约 3KB；改名字要重新生成子集 */
@font-face{font-family:"Logo";src:url(../fonts/outfit-logo.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Libre Baskerville";src:url(../fonts/libre-baskerville-400-italic.woff2) format("woff2");font-weight:400 500;font-style:italic;font-display:swap}

:root{
  --navy:#16526E; --blue:#116E99; --sky:#DEEFF8; --sky-2:#EBF8FF; --mist:rgba(230,237,245,.7);
  --paper:#FFFFFC; --ink:#000; --ink-80:rgba(0,0,0,.8); --ink-60:rgba(0,0,0,.6); --ink-50:rgba(0,0,0,.5); --ink-40:rgba(0,0,0,.4);
  --navy-60:rgba(22,82,110,.6);
  --peach:#FFF2E3; --lemon:#F9FAE3; --pink:#FADBFF; --apricot:#FFEAD1; --lilac:#DDD1FF;
  --sans:"Instrument Sans","PingFang SC","HarmonyOS Sans SC","MiSans","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --serif:"Libre Baskerville","Songti SC","STSong","Noto Serif SC","SimSun",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html{overflow-x:hidden}
/* 关掉浏览器的滚动锚定：否则它会把一直在动的字幕带文字当锚点，页面停着也会自己慢慢滚 */
html,body{overflow-anchor:none}
@supports (overflow:clip){html,body{overflow-x:clip}}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.2}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus:not(:focus-visible){outline:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.wrap{max-width:1320px;margin:0 auto;padding:0 60px}
.inner{max-width:1200px;margin:0 auto}

/* ===== 通用 ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 20px;border-radius:10px;background:var(--navy);color:#fff;font-size:16px;font-weight:600;line-height:1.3;transition:box-shadow .3s cubic-bezier(.44,0,.56,1),background-color .3s cubic-bezier(.44,0,.56,1);box-shadow:inset 0 0 0 0 rgba(255,255,255,0)}
/* 原站按钮悬停：内发光，不变色 */
.btn:hover{box-shadow:inset 0 0 10px 3px rgba(255,255,255,.3)}
.btn--form:hover{background:rgba(22,82,110,.6);box-shadow:none}
.btn--block{width:100%}
.pill{display:inline-block;padding:10px 14px 8px;border-radius:10px;background:var(--sky);color:var(--blue);font-size:18px;font-weight:700;line-height:1.2}
.pill--white{background:#fff}
.h2{font-size:46px;line-height:1.2;font-weight:700;letter-spacing:-.01em}
.lead{font-size:20px;line-height:1.4;font-weight:500;letter-spacing:-.02em;color:var(--ink-60)}
.head{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.head--center{align-items:center;text-align:center;margin:0 auto}
.tagnote{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;box-shadow:0 3px 10px 0 rgba(22,82,110,.14);font-family:var(--sans);font-style:normal;font-size:15px;line-height:1.35;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
/* 放在彩色面板上的小标签用白底，和面板拉开 */
.goal .goal__info .tagnote,.news-feat .news-feat__info .tagnote{background:#fff}
section{position:relative}

/* ===== 导航（浮动胶囊） ===== */
.nav{position:fixed;top:25px;left:0;right:0;margin:0 auto;z-index:60;width:800px;max-width:calc(100% - 32px);background:var(--paper);border-radius:15px;box-shadow:inset 0 0 14px 0 rgba(22,82,110,.08);padding:10px}
.nav__row{display:flex;align-items:center;justify-content:space-between}
.nav__logo{display:flex;align-items:center;padding:0 31px 0 6px;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--navy);white-space:nowrap}
.nav__links{display:flex;gap:25px;font-size:16px;font-weight:500;color:var(--navy-60)}
.nav .btn{padding:10.5px 15px;width:120px;white-space:nowrap}
.nav__burger{display:none;width:42px;height:42px;border-radius:10px;background:var(--sky);place-items:center}
.nav__links a{transition:color .2s cubic-bezier(.44,0,.56,1)}
.nav__links a:hover,.nav__links a.is-active{color:var(--navy)}
/* 汉堡按钮：三条线，展开时变成叉 */
.nav__burger i{position:relative;display:block;width:18px;height:2px;border-radius:2px;background:var(--navy);transition:background-color .2s}
.nav__burger i::before,.nav__burger i::after{content:"";position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:var(--navy);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.nav__burger i::before{top:-5px}
.nav__burger i::after{top:5px}
.nav.open .nav__burger i{background-color:transparent}
.nav.open .nav__burger i::before{transform:translateY(5px) rotate(45deg)}
.nav.open .nav__burger i::after{transform:translateY(-5px) rotate(-45deg)}
.nav__menu{display:none}
.skip{position:fixed;left:16px;top:-64px;z-index:100;padding:10px 14px;border-radius:8px;background:var(--navy);color:#fff;font-size:15px;font-weight:600;transition:top .2s}
.skip:focus{top:12px}
main:focus{outline:none}

/* ===== Hero ===== */
.hero{height:95vh;min-height:620px;padding:10px;background:var(--paper)}
.hero__box{position:relative;height:100%;border-radius:12px;overflow:hidden;padding:140px 60px 20px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.hero__media{position:absolute;inset:0;overflow:hidden;border-radius:inherit}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform-origin:50% 50%;will-change:transform}
.hero__box::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(180deg,rgba(255,255,252,0) 0%,rgba(255,255,252,.75) 55%,var(--paper) 88%);pointer-events:none}
.hero h1{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:54px;line-height:1.2;font-weight:700;letter-spacing:-.04em;color:#fff;text-align:center;text-shadow:0 2px 24px rgba(10,40,70,.18)}
.hero h1 .hl{display:inline-block;background:#fff;color:var(--blue);border-radius:170px;padding:8px 26px 12px;transform:rotate(-3deg);text-shadow:none}
.hero__cta{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:16px}
.hero__cta .btn{width:217px}
.proof{display:flex;align-items:center;gap:10px;padding:0 10px}
.proof__faces{display:flex}
.proof__faces img{width:28px;height:28px;border-radius:50%;border:2px solid var(--paper);margin-left:-9px;object-fit:cover}
.proof__faces img:first-child{margin-left:0}
.proof span{font-size:16px;font-weight:600;color:var(--navy-60)}

/* ===== 认可 ===== */
.recog{padding:60px 0 40px;text-align:center}
.recog p{font-size:20px;line-height:1.4;font-weight:500;color:var(--ink-50);letter-spacing:-.02em;margin-bottom:20px}
/* 滚动条：JS 驱动，50px/s 向左 */
.ticker{overflow:hidden}
.ticker__track{display:flex;width:max-content;will-change:transform}
.logos{max-width:1200px;margin:0 auto;-webkit-mask:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.logos .ticker__track{gap:60px;align-items:center}
.logo-item{display:flex;align-items:center;gap:8px;height:32px;font-size:22px;font-weight:700;letter-spacing:-.03em;color:#6B6B6B;white-space:nowrap;opacity:.85}
.logo-item svg{width:26px;height:26px}

/* ===== 初心 ===== */
.purpose__head{padding:80px 60px 60px}
.purpose__head .head{max-width:670px}
.purpose__scroll{position:relative;height:calc(max(675px,100vh) + 120vh)}
.purpose__stage{position:sticky;top:0;height:max(675px,100vh);padding:100px 60px;background:#0b2533;display:flex;align-items:center;justify-content:center}
.purpose__stage .infocard{flex:0 1 920px}
.purpose__stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.xfade{pointer-events:none}
.infocard{position:relative;z-index:2;width:920px;max-width:100%;margin:0 auto;background:#fff;border-radius:15px;padding:25px;display:grid;grid-template-columns:398px 1fr;gap:25px}
.infocard h5{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.1;margin-bottom:25px}
.toggles{display:flex;flex-direction:column;gap:10px}
.toggle{display:flex;align-items:center;gap:15px;padding:10px;border-radius:4px;text-align:left;transition:background-color .3s cubic-bezier(.44,0,.56,1);width:100%;background:rgba(230,237,245,0)}
.toggle.on{background:var(--mist)}
.toggle__ic{width:66px;height:66px;border-radius:5px;background:var(--sky-2);display:grid;place-items:center;color:var(--navy);transition:background-color .3s cubic-bezier(.44,0,.56,1),color .3s cubic-bezier(.44,0,.56,1),box-shadow .3s cubic-bezier(.44,0,.56,1);flex-shrink:0}
.toggle__ic svg{width:28px;height:28px}
.toggle.on .toggle__ic{background:var(--navy);color:#fff;box-shadow:0 0 4px 0 rgba(0,0,0,.25)}
.toggle h6{font-size:24px;font-weight:500;letter-spacing:-.01em;color:var(--ink-80)}
.infocard__img{position:relative;border-radius:10px;overflow:hidden;min-height:425px;background:#000}
.infocard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.infocard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.4) 100%)}
.infocard__img h4{position:absolute;z-index:2;left:25px;right:25px;top:25px;font-size:28px;line-height:1.2;font-weight:600;color:#fff}

/* ===== 弧形滚动字幕带 ===== */
/* 原站 ArcText：容器 300px 高、色带 72.8px、文字 30px/600、色 rgb(37,91,115) */
.ribbon{position:absolute;height:300px;pointer-events:none;z-index:5;overflow-anchor:none}
.ribbon svg{display:block;overflow:visible}
.rb-text,.rb-probe{font-family:var(--sans);font-size:30px;font-weight:600;letter-spacing:0;text-transform:capitalize}
.rb-text{fill:rgb(37,91,115)}
.rb-probe{visibility:hidden}

/* ===== 进行中项目 ===== */
.sec{padding:80px 0}
.sec .head{margin-bottom:60px}
.projects__head .head{max-width:760px}
.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.proj{position:relative;height:439px;border-radius:17px;overflow:hidden;background:var(--sky-2);padding:280px 15px 15px;display:flex;flex-direction:column;justify-content:flex-end}
.proj>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proj__info{position:relative;background:#fff;border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:20px}
.proj__info b{display:block;font-size:16px;font-weight:600;line-height:1.3}
.proj__info small{display:block;margin-top:5px;font-size:14px;font-weight:500;line-height:1.3;color:var(--ink-40)}
.proj__tag{position:absolute;top:15px;right:15px;background:#fff;border-radius:6px;padding:10px;display:flex;gap:5px;font-size:14px;font-weight:500;line-height:1.3}
.proj__tag span{color:var(--ink-80)}
.proj__tag b{font-weight:600}

/* ===== 目标 ===== */
.goals{display:flex;flex-direction:column;gap:0}
/* 滚动吸顶叠卡：与模板参数一致（第1张 top 80，第2张 top 60 盖上，第3张压上） */
.goal{position:relative;background:var(--paper)}
.goal.g1{position:sticky;top:80px;z-index:1;padding-bottom:20px;min-height:510px}
.goal.g1 .goal__info{min-height:490px}
.goal.g2{position:sticky;top:60px;z-index:2;padding:20px 0}
.goal.g3{z-index:3;padding-top:20px}
.goal{display:grid;grid-template-columns:660px 1fr;gap:20px;min-height:463px}
.goal--rev{grid-template-columns:1fr 660px}
.goal--rev .goal__img{order:2}
.goal__img{border-radius:10px;overflow:hidden;position:relative}
.goal__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.goal__info{position:relative;border-radius:10px;padding:30px;display:flex;flex-direction:column;justify-content:flex-end;gap:60px;min-height:463px}
.goal__thumb{position:absolute;top:30px;right:30px;width:190px;height:190px;background:#fff;border-radius:14px;padding:5px}
.goal--rev .goal__thumb{right:auto;left:30px}
.goal__thumb img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.goal__info .tagnote{position:absolute;top:144px;right:147px;max-width:200px}
.goal--rev .goal__info .tagnote{right:auto;left:160px;top:53px}
.goal__text{display:flex;flex-direction:column;gap:20px;max-width:460px}
.goal__text h3{font-size:36px;line-height:1.1;font-weight:700;letter-spacing:-.01em}
.goal__text p{font-size:18px;line-height:1.5;font-weight:500;letter-spacing:-.01em}
.g1 .goal__info,.g1 .tagnote{background:var(--peach)} .g1 .goal__text{color:#6E4616}
.g2 .goal__info,.g2 .tagnote{background:var(--lemon)} .g2 .goal__text{color:#6E5F16}
.g3 .goal__info,.g3 .tagnote{background:var(--sky)} .g3 .goal__text{color:var(--navy)}

/* ===== 成果（照片滚动） ===== */
.impacts{padding:80px 0}
.impacts .head{max-width:590px;margin-bottom:60px}
.impacts .ticker__track{gap:20px}
/* 原站：成果滚动条压在字幕带上方，字幕带从照片后面穿过 */
.impacts .ticker{position:relative;z-index:6;background:var(--paper)}
.imp{position:relative;width:390px;height:295px;background:#fff;border-radius:12px;padding:5px;flex-shrink:0}
.imp img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.imp .tagnote{position:absolute;left:20px;bottom:20px}

/* ===== 学生心声（轮播） ===== */
.testi{background:var(--sky);padding:80px 0;overflow:hidden}
.testi .h2{color:var(--navy)}
.testi .lead{color:var(--navy-60);max-width:640px}
.testi .head{margin-bottom:60px;max-width:890px}
.arrows{display:flex;gap:15px;margin-bottom:60px}
.arrows button{width:40px;height:40px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--navy);transition:opacity .2s}
.arrows button:disabled{opacity:.5;cursor:default}
.arrows svg{width:20px;height:20px}
.slider{position:relative}
.slides{display:flex;gap:40px}
.slide{flex:0 0 1080px;height:330px;display:grid;grid-template-columns:647px 1fr;gap:10px}
.slide__text{background:var(--paper);border-radius:10px;padding:30px;display:flex;flex-direction:column;justify-content:space-between}
.slide__text h5{font-size:24px;line-height:1.1;font-weight:600;letter-spacing:-.02em;color:var(--blue)}
.slide__text p{padding-top:20px;font-size:20px;font-weight:600;letter-spacing:.01em;color:var(--blue);opacity:.8}
.slide__img{border-radius:10px;overflow:hidden}
.slide__img img{width:100%;height:100%;object-fit:cover}

/* ===== 活动（自动滚动） ===== */
.events{background:#fff;padding:80px 0}
.events .head{max-width:440px;margin-bottom:60px}
.events .ticker__track{gap:20px}
.ev{position:relative;width:347px;height:425px;border-radius:17px;overflow:hidden;background:var(--sky);padding:15px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between}
.ev__media{position:absolute;inset:0;overflow:hidden}
.ev__media img{width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.ev:hover .ev__media img{transform:scale(1.058)}
.ev::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.25) 100%);transition:opacity .3s cubic-bezier(.44,0,.56,1)}
.ev:hover::after{opacity:.2}
.ev__head{position:relative;z-index:2;background:#fff;border-radius:12px;padding:15px;box-shadow:0 3px 6px rgba(0,0,0,.15);display:flex;flex-direction:column;gap:5px}
.ev__date{display:inline-flex;align-items:center;gap:8px;padding:3px;border-radius:6px;font-size:14px;font-weight:500;color:var(--blue)}
.ev__date svg{width:16px;height:16px}
.ev__head b{font-size:18px;line-height:1.5;font-weight:500;letter-spacing:-.01em}
.ev__loc{position:relative;z-index:2;align-self:flex-end;background:#fff;border-radius:6px;padding:10px;box-shadow:0 3px 6px rgba(0,0,0,.25);display:flex;align-items:center;gap:5px}
.ev__loc i{width:44px;height:44px;border-radius:4px;background:var(--sky);display:grid;place-items:center;color:var(--navy)}
.ev__loc i svg{width:17px;height:17px}
.ev__loc small{display:block;font-size:14px;font-weight:500;color:var(--ink-40);margin-bottom:6px}
.ev__loc span{display:block;font-size:14px;font-weight:500;padding-right:5px}

/* ===== FAQ ===== */
.faq{background:#fff;padding:80px 0}
.faq .head{max-width:500px;margin-bottom:60px}
.faq__list{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.qa{background:var(--sky-2);border-radius:15px;padding:20px}
.qa__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;font-size:20px;line-height:1.2;font-weight:600;letter-spacing:.01em;color:#000}
.qa__q i{width:28px;height:28px;border-radius:100px;flex-shrink:0;position:relative;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.qa__q i::before,.qa__q i::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;background:#000;transform:translate(-50%,-50%)}
.qa__q i::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa.open .qa__q i{transform:rotate(45deg)}
.qa__a{height:0;overflow:hidden}
.qa__a p{padding-top:20px;font-size:18px;line-height:1.5;font-weight:500;letter-spacing:-.01em;color:var(--ink-60)}

/* ===== 加入我们 ===== */
.join{position:relative;padding:80px 0;background:#9cc6e6}
.join>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.join .inner{position:relative;z-index:6;display:flex;justify-content:space-between;align-items:center;gap:60px}
.join__text{display:flex;flex-direction:column;gap:60px;max-width:705px}
.join .head{max-width:580px}
.join .h2{color:#fff}
/* 优化：左侧加一层淡淡的深蓝渐变，白字在浅色天空上也清楚 */
.join::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(12,64,112,.42) 0%,rgba(12,64,112,.16) 42%,rgba(12,64,112,0) 68%);pointer-events:none}
.join .lead{color:rgba(255,255,255,.94);text-shadow:0 1px 16px rgba(10,50,90,.35)}
.join .h2{text-shadow:0 2px 24px rgba(10,50,90,.25)}
.join__proof{display:flex;align-items:center;gap:12px;margin-top:4px}
.join__proof .proof__faces{flex-shrink:0}
.join__proof .proof__faces img{width:34px;height:34px;border-color:#fff}
.join__proof span{font-size:16px;font-weight:500;color:#fff;text-shadow:0 1px 10px rgba(10,50,90,.35)}
.join__proof b{font-weight:700}
.points{width:520px;max-width:100%;background:rgba(255,255,255,.8);border-radius:20px;padding:10px 24px;display:flex;flex-direction:column;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 20px 50px -24px rgba(10,50,90,.45),inset 0 0 0 1px rgba(255,255,255,.6)}
.points li{list-style:none;display:flex;align-items:center;gap:16px;padding:16px 0;color:var(--navy)}
.points li+li{border-top:1px solid rgba(22,82,110,.1)}
.points li>i{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff}
.points svg{width:18px;height:18px;flex-shrink:0}
.points b{display:block;font-size:19px;line-height:1.3;font-weight:600;letter-spacing:-.015em}
.points small{display:block;margin-top:3px;font-size:15px;line-height:1.4;font-weight:500;color:var(--navy-60)}
.form{width:435px;flex-shrink:0;background:var(--paper);border-radius:10px;box-shadow:inset 0 0 14px 0 rgba(22,82,110,.08);padding:20px;display:flex;flex-direction:column;gap:25px;align-self:flex-start}
.join .form{width:460px;align-self:center;padding:28px;gap:20px;border-radius:18px;background:#fff;box-shadow:0 34px 70px -30px rgba(10,50,90,.55),0 0 0 1px rgba(255,255,255,.7)}
.form__head{display:flex;flex-direction:column;gap:6px;padding-bottom:18px;border-bottom:1px solid rgba(22,82,110,.1)}
.form__head b{font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.015em;color:var(--navy)}
.form__head small{font-size:14px;line-height:1.45;font-weight:500;color:var(--navy-60)}
.field{display:flex;flex-direction:column;gap:10px}
.field label{font-size:14px;line-height:1.3;font-weight:500;color:var(--ink-80)}
.field input,.field select,.field textarea{width:100%;height:40px;padding:12px;border:1px solid rgba(0,0,0,.08);border-radius:6px;background:#fff;font-size:14px;color:#333;outline:none;transition:border-color .2s}
.field textarea{height:100px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;padding:0 12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E") right 12px center/14px no-repeat;color:#999}
.field input::placeholder,.field textarea::placeholder{color:#999}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form .btn{height:45px;padding:0}

/* ===== 便签 CTA ===== */
.cta{position:relative;z-index:3;background:var(--paper);padding:100px 0 0}
.cta .head{max-width:530px}
.cta .h2{font-size:46px}
.cta .btn{width:150px}
.notes{position:relative;height:146px;margin-top:140px;max-width:1200px;margin-left:auto;margin-right:auto}
.note{position:absolute;z-index:1;width:320px;border-radius:10px;padding:20px 20px 0;box-shadow:0 1px 10px 0 rgba(0,0,0,.06);display:flex;flex-direction:column;gap:15px;font-size:18px;line-height:1.5;font-weight:500;letter-spacing:-.01em}
.note b{display:block;margin:0 -20px;padding:12px 20px;background:rgba(0,0,0,.05);font-size:16px;font-weight:600;border-radius:0 0 10px 10px}

/* ===== 页脚 ===== */
.foot{background:var(--sky);padding:140px 0 60px}
.foot__top{display:flex;justify-content:space-between;gap:60px;padding-bottom:160px;margin-bottom:40px}
.foot__brand{display:flex;flex-direction:column;gap:40px}
.foot__logo{font-size:52px;line-height:76px;font-weight:700;letter-spacing:-.04em;color:var(--navy)}
.foot__logo--en{font-size:78px;letter-spacing:-.055em}
.socials{display:flex;gap:15px}
.socials a{width:32px;height:32px;padding:2px;opacity:.5;color:var(--navy)}
.foot__cols{display:flex;gap:80px}
.foot__col{display:flex;flex-direction:column;gap:16px}
.foot__col h4{font-size:18px;line-height:1.2;font-weight:700;color:var(--blue);margin-bottom:16px}
.foot__col a,.foot__col span{display:block;font-size:16px;font-weight:600;line-height:1.3;color:var(--navy-60)}

/* ===================== 子页面 ===================== */
.ev{color:inherit}
/* 列表页页头（浅蓝 + 右上弧形字幕带） */
.page-top{position:relative;background:var(--sky);padding:180px 0 60px;overflow:hidden}
.page-top .head{max-width:640px}
.page-top .h2{color:var(--navy)}
.page-top .lead{color:var(--navy-60)}
.list{padding:60px 0}
.list .projects{row-gap:20px}
.list .proj{height:440px}
.evgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.evgrid .ev{width:auto;height:425px}

/* 详情页：左右两栏 */
.detail{display:grid;background:var(--sky)}
.detail--project{grid-template-columns:864px 1fr}
.detail--event{grid-template-columns:1fr 864px}
.detail__main{background:var(--paper);padding:140px 40px 40px 84px;min-width:0}
.detail--project .detail__main{border-radius:0 0 15px 0}
.detail--event .detail__main{border-radius:0 0 0 15px;padding:140px 84px 40px 40px}
.detail__main>*{max-width:740px}
.detail__aside{padding:140px 50px 0}
/* 右侧表单滚到底时，底边和左侧白色正文面板的底边对齐，下面不留空 */
.detail--event .detail__aside{display:flex;justify-content:flex-end}
.crumbs{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:8px;background:rgba(230,237,245,.55);font-size:14px;font-weight:500;color:var(--navy);margin-bottom:24px}
.crumbs a:hover{text-decoration:underline}
.crumbs span[aria-hidden]{opacity:.5}
.detail__title{font-size:26px;line-height:1.4;font-weight:600;color:var(--navy)}
.detail__title--lg{font-size:36px;line-height:1.1;font-weight:700;letter-spacing:-.01em;margin-top:40px}
.detail__sub{margin-top:6px;font-size:16px;line-height:1.5;font-weight:500;color:var(--navy-60)}
.detail__sub--dark{color:rgba(22,82,110,.8);margin-top:5px}
.detail__img{position:relative;margin-top:24px;border-radius:8px;overflow:hidden;aspect-ratio:740/270}
.detail__img--tall{aspect-ratio:740/360;margin-top:0}
.detail__img img{width:100%;height:100%;object-fit:cover}
.spots{position:absolute;top:15px;right:15px;background:#fff;border-radius:8px;padding:10px 12px;font-size:16px;font-weight:600;color:var(--blue)}
.amounts{display:flex;justify-content:space-between;margin-top:24px;padding-bottom:20px;border-bottom:1px solid rgba(22,82,110,.12)}
.amounts div:last-child{text-align:right}
.amounts small{display:block;font-size:16px;font-weight:600;color:var(--navy-60);margin-bottom:10px}
.amounts b{font-size:20px;font-weight:600;color:var(--navy)}
.rich{margin-top:20px;display:flex;flex-direction:column;gap:18px;font-size:16px;line-height:1.5;font-weight:500;color:var(--navy-60)}
.rich strong{font-weight:700}
.rich--event{margin-top:80px;gap:0}
.rich--event h3{font-size:26px;line-height:1.4;font-weight:600;color:var(--navy);margin:0 0 14px}
.rich--event h3:not(:first-child){margin-top:40px}
.rich--event ul:not(.ticks){padding-left:21px}
.chips{display:flex;gap:15px;margin-top:20px}
.chips span{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;border-radius:6px;background:rgba(230,237,245,.55);font-size:14px;font-weight:500;color:var(--navy)}
.chips svg{width:16px;height:16px}
.dform{position:sticky;top:100px;width:380px;max-width:100%;background:#fff;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:24px;align-self:flex-start}
.dform__title{font-size:20px;line-height:1.2;font-weight:600;color:var(--navy)}
.dform__place{margin-top:5px;font-size:16px;font-weight:600;color:var(--navy-60)}
.dform__img{height:210px;border-radius:8px;overflow:hidden}
.dform__img img{width:100%;height:100%;object-fit:cover}
.dform .row2{gap:10px}
.dform .btn{height:45px;padding:0}

/* 志愿者页 */
.vol{position:relative;padding:160px 0 60px;background:#9cc6e6;overflow:hidden}
.vol>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vol .ribbon{z-index:1}
.vol__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:60px}
.vol .head{max-width:690px}
.vol .h2{color:#fff}
.vol .lead{color:rgba(255,255,255,.85)}
.form--vol{width:585px;max-width:100%;padding:30px;background:#fff;border-radius:20px;box-shadow:0 .36px 1.81px -1.25px rgba(0,0,0,.18),0 1.37px 6.87px -2.5px rgba(0,0,0,.16),0 6px 30px -3.75px rgba(0,0,0,.06);align-self:center}

@media (max-width:1240px){
  .detail--project{grid-template-columns:1.5fr 1fr}
  .detail--event{grid-template-columns:1fr 1.5fr}
}
@media (max-width:980px){
  .evgrid{grid-template-columns:1fr 1fr}
  .detail--project,.detail--event{grid-template-columns:minmax(0,1fr)}
  .dform{width:100%;max-width:380px}
  .detail--event .detail__aside{order:2;justify-content:center}
  .detail__aside{padding:40px 16px 60px;display:flex;justify-content:center}
  .detail__main,.detail--event .detail__main{padding:120px 24px 40px;border-radius:0 0 15px 15px}
  .dform{position:static}
}
@media (max-width:640px){
  .page-top{padding:130px 0 48px}
  .evgrid{grid-template-columns:1fr}
  .evgrid .ev{height:400px}
  .detail__main,.detail--event .detail__main{padding:110px 16px 32px}
  .detail__title--lg{font-size:28px;margin-top:28px}
  .rich--event{margin-top:48px}
  .rich--event h3{font-size:22px}
  .chips{flex-wrap:wrap;gap:8px}
  .vol{padding:120px 0 48px}
  .form--vol{padding:20px}
}


/* ===================== 新闻页（新增，沿用原站卡片体系） ===================== */
.news-feat{display:grid;grid-template-columns:660px 1fr;gap:20px;margin-bottom:40px;color:inherit}
.news-feat__img{position:relative;border-radius:10px;overflow:hidden;min-height:440px}
.news-feat__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.news-feat:hover .news-feat__img img{transform:scale(1.03)}
.news-feat__info{background:var(--peach);border-radius:10px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:30px}
.news-feat__info .tagnote{background:var(--peach)}
.news-feat__text b{display:block;font-size:36px;line-height:1.1;font-weight:700;letter-spacing:-.01em;color:#6E4616}
.news-feat__text small{display:block;margin-top:20px;font-size:18px;line-height:1.5;font-weight:500;letter-spacing:-.01em;color:#6E4616}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news-card{display:flex;flex-direction:column;gap:15px;background:var(--sky-2);border-radius:17px;padding:15px;color:inherit}
.news-card__img{position:relative;display:block;height:240px;border-radius:12px;overflow:hidden}
.news-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.news-card:hover .news-card__img img{transform:scale(1.058)}
.news-card__cat{position:absolute;top:12px;right:12px;background:#fff;border-radius:6px;padding:8px 10px;font-size:14px;font-weight:600;line-height:1.3}
.news-card__info{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:#fff;border-radius:12px;padding:15px}
.news-card__info b{font-size:18px;line-height:1.35;font-weight:600;letter-spacing:-.01em}
.news-card__info small{font-size:14px;line-height:1.5;font-weight:500;color:var(--ink-60)}
.news-card__more{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--navy)}
.news-card__more svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.news-card:hover .news-card__more svg{transform:translateX(3px)}
.rich--news{margin-top:32px}
.rels{display:flex;flex-direction:column;gap:12px}
.rel{display:flex;align-items:center;gap:12px;color:inherit}
.rel img{width:76px;height:60px;border-radius:8px;object-fit:cover;flex-shrink:0}
.rel small{display:block;font-size:12px;font-weight:600;color:var(--navy-60)}
.rel b{display:block;margin-top:2px;font-size:14px;line-height:1.35;font-weight:600;color:var(--navy)}
@media (max-width:980px){
  .news-feat{grid-template-columns:1fr}
  .news-feat__img{min-height:300px}
  .news-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .news-grid{grid-template-columns:1fr}
  .news-feat__text b{font-size:28px}
  .news-feat__text small{font-size:16px}
  .news-feat__info{padding:20px}
}


/* ===================== 优化轮新增：长文阅读页、项目进度、活动日程、404 ===================== */
.read-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:70;pointer-events:none}
.read-progress i{display:block;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:0 50%}
.news-card__meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;font-weight:600;color:var(--navy-60)}
.news-card__meta span{display:inline-flex;align-items:center;gap:5px}
.news-card__meta svg{width:15px;height:15px}

.art-head{background:var(--sky);padding:170px 0 230px}
.art-head__in{max-width:880px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.art-head .crumbs{background:#fff}
.art-head h1{font-size:56px;line-height:1.06;letter-spacing:-.035em;font-weight:700;color:var(--navy);text-wrap:balance}
.art-dek{margin-top:22px;max-width:720px;font-size:21px;line-height:1.5;font-weight:500;letter-spacing:-.01em;color:rgba(22,82,110,.72);text-wrap:pretty}
.art-meta{margin-top:34px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 22px;font-size:15px;font-weight:500;color:var(--navy)}
.art-author{display:inline-flex;align-items:center;gap:10px;text-align:left}
.art-author>i{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-style:normal;font-size:14px;font-weight:700;letter-spacing:.02em}
.art-author b{display:block;font-size:15px;font-weight:600;color:var(--navy)}
.art-author small{display:block;margin-top:2px;font-size:13px;font-weight:500;color:var(--navy-60)}
.art-meta__item{display:inline-flex;align-items:center;gap:6px;color:var(--navy-60)}
.art-meta__item svg{width:16px;height:16px}
.art-share{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;background:#fff;font-size:14px;font-weight:600;color:var(--navy);box-shadow:0 2px 8px rgba(22,82,110,.1);transition:box-shadow .3s cubic-bezier(.44,0,.56,1)}
.art-share:hover{box-shadow:0 6px 18px rgba(22,82,110,.2)}
.art-share svg{width:16px;height:16px}
.art-cover{position:relative;z-index:1;margin:-180px auto 0;max-width:1200px;aspect-ratio:2/1;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(22,82,110,.45)}
.art-cover img{width:100%;height:100%;object-fit:cover}
.art-grid{display:grid;grid-template-columns:minmax(0,720px) 290px;justify-content:center;gap:80px;padding:76px 0 56px}
.prose{font-size:19px;line-height:1.72;font-weight:400;color:rgba(0,0,0,.8)}
.prose>p{margin-bottom:1.15em}
.prose>p:first-child::first-letter{float:left;margin:.08em .12em 0 0;font-size:4.1em;line-height:.84;font-weight:700;color:var(--navy)}
.prose h2{margin:1.9em 0 .6em;scroll-margin-top:110px;font-size:31px;line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--navy);text-wrap:balance}
.prose strong{font-weight:600;color:#000}
.prose em{font-style:italic}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.pull{position:relative;margin:48px 0;padding:36px 40px 34px;border-radius:18px;background:var(--peach)}
/* 引号图标单独占一行，正文不再重复加引号 */
.pull::before{content:"";display:block;width:34px;height:28px;margin-bottom:20px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 28'%3E%3Cpath fill='%23F0BC80' d='M0 28V16C0 7 5 1.5 13 0l1.6 3.4C10 5 8 8.4 8 12h6v16H0zm20 0V16c0-9 5-14.5 13-16l1.6 3.4C30 5 28 8.4 28 12h6v16H20z'/%3E%3C/svg%3E") no-repeat}
.pull blockquote{position:relative;font-size:25px;line-height:1.42;letter-spacing:-.015em;font-weight:600;color:#6E4616;text-wrap:pretty}
.pull figcaption{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:15px;font-weight:600;color:rgba(110,70,22,.7)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:38px 0 42px}
.facts div{padding:24px 20px 22px;border-radius:14px;background:var(--sky)}
.facts b{display:block;font-size:38px;line-height:1;letter-spacing:-.035em;font-weight:700;color:var(--navy)}
.facts span{display:block;margin-top:10px;font-size:15px;line-height:1.4;font-weight:500;color:rgba(22,82,110,.75)}
.ticks{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0 0 1.3em}
.ticks li{position:relative;padding-left:34px}
.ticks li::before{content:"";position:absolute;left:0;top:.28em;width:21px;height:21px;border-radius:50%;background:var(--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.5 12.5l4.2 4.2L18.5 8' fill='none' stroke='%2316526E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
.art-end{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:52px;padding-top:28px;border-top:1px solid rgba(22,82,110,.14)}
.art-aside{position:sticky;top:110px;align-self:start;display:flex;flex-direction:column;gap:16px}
.toc{padding:22px;border-radius:14px;background:var(--sky-2)}
.toc>b{display:block;margin-bottom:12px;font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--navy-60)}
.toc nav{display:flex;flex-direction:column;border-left:2px solid rgba(22,82,110,.12)}
.toc a{margin-left:-2px;padding:8px 0 8px 14px;border-left:2px solid transparent;font-size:15px;line-height:1.35;font-weight:500;color:var(--navy-60);transition:color .2s,border-color .2s}
.toc a:hover{color:var(--navy)}
.toc a.on{color:var(--navy);border-left-color:var(--blue);font-weight:600}
.art-cta{padding:22px;border-radius:14px;background:var(--navy);color:#fff}
.art-cta b{font-size:20px;font-weight:700}
.art-cta p{margin:8px 0 16px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.78)}
.art-cta .btn{background:#fff;color:var(--navy)}
.pns{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:8px 0 90px}
.pn{display:flex;flex-direction:column;gap:10px;padding:26px;border-radius:16px;background:var(--sky-2);transition:background-color .3s cubic-bezier(.44,0,.56,1)}
.pn:hover{background:var(--sky)}
.pn small{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--navy-60)}
.pn small svg{width:16px;height:16px}
.pn b{font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.pn--next{align-items:flex-end;text-align:right}
.pn--all{background:var(--navy)}
.pn--all:hover{background:var(--blue)}
.pn--all small{color:rgba(255,255,255,.7)}
.pn--all b{color:#fff}
.pull figcaption::before{content:"";width:22px;height:2px;border-radius:2px;background:currentColor;opacity:.6}
.more-news{background:var(--sky)}
.more-news .news-card{background:var(--sky-2)}

/* 项目详情：筹款进度、分段正文 */
.meter{display:flex;align-items:center;gap:14px;margin-top:20px}
.meter__bar{flex:1;height:10px;border-radius:10px;background:var(--sky);overflow:hidden}
.meter__bar i{display:block;width:var(--p);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--navy),var(--blue) 70%,#4CB0DB);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.meter.in .meter__bar i,html:not(.js) .meter__bar i{transform:none}
.meter__label{font-size:15px;font-weight:600;color:var(--navy);white-space:nowrap}
.rich h3{margin-top:22px;font-size:24px;line-height:1.3;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.rich--project{margin-top:28px}
.rich--project h3:first-child{margin-top:0}
.rich .closing{padding:18px 20px;border-radius:12px;background:var(--sky-2);font-weight:600;color:var(--navy)}
.rich .ticks{margin:0;gap:10px}
.rich .ticks li::before{top:.05em}
.rich .ticks strong{color:var(--navy)}
/* 活动详情：当天日程 */
.sched{list-style:none;display:flex;flex-direction:column}
.sched li{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:13px 0;border-bottom:1px dashed rgba(22,82,110,.18)}
.sched li:first-child{border-top:1px dashed rgba(22,82,110,.18)}
.sched time{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}

/* 404 */
.nf{position:relative;min-height:100vh;display:grid;place-items:center;padding:140px 16px 80px;overflow:hidden;background:#9cc6e6}
.nf>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nf::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,82,110,.1),rgba(22,82,110,.45))}
.nf__in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.nf .h2{font-size:56px;color:#fff}
.nf .lead{color:rgba(255,255,255,.92)}
.nf__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}
.btn--ghost{background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}

@media (max-width:1100px){
  .art-grid{grid-template-columns:minmax(0,720px);gap:40px}
  .art-aside{position:static}
  .toc{display:none}
}
@media (max-width:640px){
  .art-head{padding:120px 0 150px}
  .art-head h1{font-size:34px;line-height:1.1}
  .art-dek{font-size:17px}
  .art-meta{gap:12px 16px;font-size:14px}
  .art-meta .art-author{flex-basis:100%;justify-content:center}
  .art-cover{margin-top:-120px;aspect-ratio:4/3;border-radius:12px}
  .art-grid{padding:44px 0 36px}
  .prose{font-size:17px;line-height:1.7}
  .prose h2{font-size:24px}
  .pull{margin:36px 0;padding:34px 22px 24px}
  .pull::before{width:28px;height:23px;margin-bottom:16px;background-size:contain}
  .pull blockquote{font-size:20px}
  .facts{grid-template-columns:1fr;gap:8px}
  .facts div{display:grid;grid-template-columns:max-content 1fr;align-items:center;gap:18px;padding:16px 18px}
  .facts b{white-space:nowrap}
  .facts b{font-size:28px}
  .facts span{margin-top:0}
  .pns{grid-template-columns:1fr;padding-bottom:60px}
  .pn--next{align-items:flex-start;text-align:left}
  .sched li{grid-template-columns:84px 1fr;gap:12px}
  .rich h3{font-size:21px}
  .nf .h2{font-size:34px}
}

/* 联系我们 */
.ct-hero{padding:10px 0 0;background:var(--paper)}
/* 首屏：文字在上方「延伸出来的天空」里，插画在下方，顶部渐隐进同色天空，文字不压人物 */
.ct-hero__box{position:relative;margin:0 10px;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#1f73c4 0%,#2280d2 60%,#2380d1 100%)}
.ct-hero__bg{position:relative;z-index:0;display:block;width:100%;height:auto;max-height:570px;aspect-ratio:2400/1219;object-fit:cover;object-position:50% 100%;margin-top:-140px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 34%);mask-image:linear-gradient(180deg,transparent 0,#000 34%)}
.ct-hero__text{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;padding:188px 20px 0;text-align:center}
.ct-title{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:60px;line-height:1.12;letter-spacing:-.04em;font-weight:700;color:#fff;text-shadow:0 2px 24px rgba(10,40,70,.22)}
.ct-title>span{display:inline-block}
.ct-title .hl{padding:6px 30px 12px;border-radius:170px;background:#fff;color:var(--blue);text-shadow:none;transform:rotate(-3deg)}
.ct-lead{font-size:19px;line-height:1.45;font-weight:500;letter-spacing:-.01em;color:#fff;text-shadow:0 1px 14px rgba(10,40,70,.35)}
.ct-bar{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:center;margin:-92px auto 0;padding:14px 14px 14px 10px;border-radius:18px;background:rgba(255,255,252,.86);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);box-shadow:0 24px 60px -24px rgba(22,82,110,.45),inset 0 0 0 1px rgba(255,255,255,.6)}
.ct-bar__item{display:flex;align-items:center;gap:14px;min-width:0;padding:10px 18px;border-right:1px solid rgba(22,82,110,.12)}
.ct-bar__item:nth-child(3){border-right:0}
.ct-bar__item>i{flex-shrink:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sky);color:var(--navy);transition:background-color .3s,color .3s}
.ct-bar__item>i svg{width:21px;height:21px}
a.ct-bar__item:hover>i{background:var(--navy);color:#fff}
.ct-bar__item small{display:block;font-size:13px;font-weight:500;color:var(--navy-60)}
.ct-bar__item b{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--navy)}
.ct-bar__btn{height:56px;padding:0 26px;margin-left:6px}
.ct-main{padding:90px 0 80px;scroll-margin-top:20px}
.ct-main__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ct-panel{display:flex;flex-direction:column;gap:18px;padding:40px;border-radius:20px;background:var(--navy);color:#fff}
.ct-panel h2{font-size:40px;line-height:1.1;letter-spacing:-.02em;font-weight:700}
.ct-panel>p{font-size:18px;line-height:1.5;font-weight:500;color:rgba(255,255,255,.75)}
.ct-steps{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:30px;margin-top:20px}
.ct-steps li{position:relative;padding-left:58px;counter-increment:s}
.ct-steps li::before{content:counter(s);position:absolute;left:0;top:-4px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.14);font-size:17px;font-weight:700}
.ct-steps b{display:block;font-size:19px;font-weight:600}
.ct-steps span{display:block;margin-top:6px;font-size:15px;line-height:1.5;font-weight:500;color:rgba(255,255,255,.7)}
.ct-social{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.16)}
.ct-social small{font-size:14px;font-weight:600;color:rgba(255,255,255,.7)}
.ct-social .socials a{color:#fff;opacity:.75;transition:opacity .2s}
.ct-social .socials a:hover{opacity:1}
.form--contact{width:auto;align-self:stretch;gap:22px;padding:40px}
.form--contact .dform__title{font-size:24px}
.form--contact textarea{height:150px}
.form__note{margin-top:6px;font-size:14px;font-weight:500;color:var(--navy-60)}
.ct-ways{padding:20px 0 130px}
.ct-ways .head{margin-bottom:64px}
.ct-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.ct-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-height:310px;padding:30px;border-radius:12px;box-shadow:0 8px 30px -12px rgba(22,82,110,.3);transition:translate .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.ct-card:hover{translate:0 -8px;box-shadow:0 22px 44px -16px rgba(22,82,110,.4)}
.ct-card>i{display:grid;place-items:center;width:52px;height:52px;margin-bottom:6px;border-radius:14px;background:rgba(255,255,255,.75);color:var(--navy)}
.ct-card>i svg{width:24px;height:24px}
.ct-card b{font-size:24px;line-height:1.2;letter-spacing:-.01em;font-weight:700;color:#1b1b1b}
.ct-card>span{font-size:16px;line-height:1.5;font-weight:500;color:rgba(0,0,0,.62)}
.ct-card>.ct-card__go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:16px;font-weight:600;color:var(--navy)}
.ct-card__go svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.ct-card:hover .ct-card__go svg{transform:translateX(4px)}
@media (max-width:1100px){
  .ct-main__grid{grid-template-columns:1fr}
  .ct-bar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ct-bar__btn{grid-column:1/-1;margin:8px 8px 0}
}
@media (max-width:980px){.ct-cards{grid-template-columns:1fr;gap:20px}.ct-card{min-height:0}}
@media (max-width:640px){
  .ct-hero{padding:6px 0 0}
  .ct-hero__box{margin:0 6px}
  .ct-hero__text{padding:164px 16px 0;gap:16px}
  .ct-hero__bg{height:300px;max-height:none;aspect-ratio:auto;margin-top:-60px}
  .ct-title{font-size:40px;gap:8px}
  .ct-title .hl{padding:4px 20px 9px}
  .ct-lead{font-size:16px}
  .ct-lead br{display:none}
  .ct-bar{grid-template-columns:1fr;margin-top:-70px;padding:8px}
  .ct-bar__item{padding:12px 10px;border-right:0;border-bottom:1px solid rgba(22,82,110,.12)}
  .ct-bar__item:nth-child(3){border-bottom:0}
  .ct-bar__item b{font-size:17px}
  .ct-bar__btn{height:50px;margin:6px 0 0}
  .ct-main{padding:56px 0 48px}.ct-ways{padding:16px 0 72px}
  .ct-ways .head{margin-bottom:36px}
  .ct-panel,.form--contact{padding:24px}
  .ct-panel h2{font-size:30px}
  .ct-card{padding:24px}
}

/* ===================== 法律页面 + 条款提示 ===================== */
.legal{padding:70px 0 110px}
.legal .art-grid{padding:0}
.legal-date{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;background:rgba(255,255,255,.7);font-size:14px;font-weight:600;color:var(--navy)}
.legal-date svg{width:16px;height:16px}
.prose--legal{font-size:17px;line-height:1.7}
.prose--legal h2{font-size:26px;margin-top:1.8em}
.prose--legal .ticks{gap:10px}
.prose--legal .ticks li::before{top:.2em}
.legal-summary{margin-bottom:12px;padding:26px 28px;border-radius:16px;background:var(--sky-2)}
.legal-summary>b{display:block;margin-bottom:14px;font-size:20px;font-weight:700;color:var(--navy)}
.legal-summary .ticks{margin:0;font-size:16px;line-height:1.55;color:var(--navy)}
.legal-other{display:inline-flex;align-items:center;gap:6px;padding:4px 2px;font-size:15px;font-weight:600;color:var(--navy)}
.legal-other svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.44,0,.56,1)}
.legal-other:hover svg{transform:translateX(3px)}
.foot__legal{display:flex;gap:22px}
.foot__legal a{color:var(--navy)}
.foot__legal a:hover{text-decoration:underline;text-underline-offset:3px}
.form__consent{margin-top:-6px;font-size:13px;line-height:1.45;font-weight:500;color:var(--navy-60);text-align:center}
.form__consent a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
@media (max-width:640px){.legal{padding:40px 0 72px}.legal-summary{padding:20px}.prose--legal{font-size:16px}.prose--legal h2{font-size:22px}.foot__legal{gap:18px}.foot__legal a{padding:6px 0}}

/* ===================== 表单反馈、页脚订阅、导航滚动态、打印 ===================== */
.field__err{display:flex;align-items:center;gap:6px;font-size:13px;line-height:1.35;font-weight:500;color:#B3261E}
.field__err::before{content:"!";display:grid;place-items:center;flex-shrink:0;width:15px;height:15px;border-radius:50%;background:#B3261E;color:#fff;font-size:11px;font-weight:700}
.has-err input,.has-err textarea,.has-err select{border-color:#D9534F;background:#FFF8F7}
.btn.is-busy{position:relative;color:transparent!important;pointer-events:none}
.btn.is-busy::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
form.is-sent>:not(.form__done){display:none!important}
.form__done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px 8px;text-align:center;outline:none;animation:vt-in .5s cubic-bezier(.2,.7,.2,1) both}
.form__done>i{display:grid;place-items:center;width:58px;height:58px;margin-bottom:4px;border-radius:50%;background:var(--sky);color:var(--navy)}
.form__done>i svg{width:26px;height:26px}
.form__done b{font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-.015em;color:var(--navy)}
.form__done p{max-width:320px;font-size:15px;line-height:1.5;font-weight:500;color:var(--navy-60)}
.form__done small{max-width:300px;font-size:12px;line-height:1.45;color:rgba(22,82,110,.5)}
.form__again{margin-top:6px;padding:8px 4px;font-size:15px;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.news-sub{display:flex;flex-direction:column;gap:10px;width:380px;max-width:100%}
.news-sub label{font-size:15px;font-weight:600;color:var(--navy)}
.news-sub__row{display:flex;gap:8px}
.news-sub input{flex:1;min-width:0;height:46px;padding:0 14px;border:1px solid rgba(22,82,110,.15);border-radius:10px;background:#fff;font-size:15px;color:#333;outline:none;transition:border-color .2s}
.news-sub input:focus{border-color:var(--blue)}
.news-sub .btn{height:46px;padding:0 18px;flex-shrink:0}
.nav{transition:box-shadow .3s cubic-bezier(.44,0,.56,1)}
.nav.scrolled{box-shadow:0 12px 34px -14px rgba(22,82,110,.35),inset 0 0 14px 0 rgba(22,82,110,.08)}
@media print{
  .nav,.skip,.foot,.toast,.ribbon,.read-progress,.art-aside,.more-news,.pns,.art-share,.detail__aside,.ticker{display:none!important}
  body{background:#fff}
  [data-anim]{opacity:1!important;transform:none!important}
  .art-grid{grid-template-columns:1fr!important;padding:0!important}
  .page-top,.art-head{padding:24px 0!important;background:none!important}
  .art-cover{margin:0 0 24px!important;box-shadow:none}
  .prose{font-size:12pt}
  a{text-decoration:underline}
}

/* ===================== 福州校园墙联盟：标志、页脚联系方式 ===================== */
.nav__logo{gap:9px}
.nav__mark{width:30px;height:30px;flex-shrink:0}
.foot__logo{display:inline-flex;align-items:center;gap:14px}
.foot__mark{width:64px;height:64px;flex-shrink:0}
.foot__tag{margin-top:-24px;font-size:17px;line-height:1.45;font-weight:600;color:var(--navy)}
.foot__tag span{font-weight:500;color:var(--navy-60)}
.foot__ic{display:inline-flex!important;align-items:center;gap:8px}
.foot__ic svg{width:18px;height:18px;flex-shrink:0}
.ct-plats{display:flex;flex-wrap:wrap;gap:8px}
.ct-plats span{padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.12);font-size:13px;font-weight:600;color:#fff}
.amounts div:last-child{text-align:right}
@media (max-width:640px){.hero__bg{object-position:74% 45%}.foot__mark{width:46px;height:46px}.foot__tag{margin-top:-8px;font-size:15px}.nav__mark{width:26px;height:26px}}

/* 页脚底栏：左侧版权+一句话介绍，右侧法律链接+回到顶部，上方一条细分隔线 */
.foot .foot__top{padding-bottom:72px;margin-bottom:0}
.foot__copy{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 48px;padding-top:28px;border-top:1px solid rgba(22,82,110,.14)}
.foot__copy-l b{display:block;font-size:15px;line-height:1.4;font-weight:600;color:var(--navy)}
.foot__copy small{display:block;margin-top:6px;font-size:13px;line-height:1.5;font-weight:500;color:var(--navy-60)}
.foot__copy-l small{max-width:520px}
.foot__copy-r{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.foot__copy .foot__legal{display:flex;align-items:center;gap:8px 24px;font-size:15px;font-weight:600}
.foot__legal .foot__up{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(22,82,110,.1);transition:box-shadow .3s cubic-bezier(.44,0,.56,1)}
.foot__copy .foot__legal a.foot__up:hover{text-decoration:none;box-shadow:0 6px 16px rgba(22,82,110,.2)}
.foot__up svg{width:14px;height:14px}
@media (max-width:980px){
  .foot__copy{flex-direction:column;align-items:flex-start}
  .foot__copy-r{align-items:flex-start;text-align:left}
  .foot__copy .foot__legal{flex-wrap:wrap}
}
@media (max-width:980px){.foot__col span.foot__ic{padding:8px 0}}
@media (max-width:640px){.foot .foot__top{padding-bottom:48px}.foot__copy-l b{font-size:14px}.foot__dot{display:none}.foot__cn{display:block;margin-top:2px}}

/* ===================== 名称字标 ===================== */
.nav__name{font-family:"Logo",var(--sans);font-size:16px;line-height:1;font-weight:700;letter-spacing:-.015em;white-space:nowrap;color:#1B4F6B}
.foot__name{font-family:"Logo",var(--sans);font-size:44px;line-height:1;font-weight:700;letter-spacing:-.02em;color:#1B4F6B}
.foot .foot__tag{margin-top:-18px}

/* ===================== Campus Board Guidelines 指南页 ===================== */
.gl-meta{display:flex;flex-wrap:wrap;gap:8px 10px}
.gl-meta span{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;background:rgba(255,255,255,.75);font-size:14px;font-weight:600;color:var(--navy)}
.gl-meta svg{width:16px;height:16px}
.gl-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.btn--light{background:#fff;color:var(--navy)}
.btn svg{width:18px;height:18px;flex-shrink:0}
.gl-principles{padding:90px 0 30px}
.gp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:50px}
.gp{padding:24px 24px 22px;border-radius:16px;background:var(--sky-2)}
.gp span{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--blue)}
.gp b{display:block;margin-top:10px;font-size:22px;font-weight:700;letter-spacing:-.015em;color:var(--navy)}
.gp p{margin-top:8px;font-size:15px;line-height:1.5;font-weight:500;color:var(--navy-60)}
.legal.gl{padding-top:50px}
.prose--guide h2{display:flex;align-items:center;gap:14px}
.prose--guide h2 .g-num{flex-shrink:0;display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:11px;background:var(--navy);color:#fff;font-size:17px;letter-spacing:0}
.prose--guide h3{margin:1.7em 0 .55em;font-size:20px;line-height:1.3;font-weight:700;letter-spacing:-.01em;color:var(--navy)}
.prose--guide h3 .g-num{margin-right:10px;color:var(--blue)}
.prose--guide>p,.prose--guide .g-appx>p{margin-bottom:1em}
.g-must{margin:18px 0 26px;padding:20px 22px 18px;border-radius:14px;background:#EEF6FB;box-shadow:inset 0 0 0 1px rgba(22,82,110,.14)}
.g-must>b{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;padding:4px 10px 4px 8px;border-radius:7px;background:var(--navy);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.g-must>b svg{width:14px;height:14px}
.g-must ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.g-must li{position:relative;padding-left:22px;font-size:16px;line-height:1.6;color:rgba(0,0,0,.82)}
.g-must li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--navy)}
.g-note{margin:18px 0 26px;padding:18px 22px;border-radius:14px;background:var(--lemon);box-shadow:inset 0 0 0 1px rgba(110,90,10,.12)}
.g-note b{display:block;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7A6410}
.g-note p{font-size:16px;line-height:1.6;color:rgba(0,0,0,.78)}
.g-table{margin:16px 0 26px;overflow-x:auto;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(22,82,110,.14);-webkit-overflow-scrolling:touch}
.g-table table{width:100%;min-width:520px;border-collapse:collapse;font-size:15px;line-height:1.5}
.g-table th{padding:12px 16px;background:var(--sky);text-align:left;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy)}
.g-table td{padding:13px 16px;vertical-align:top;border-top:1px solid rgba(22,82,110,.1);color:rgba(0,0,0,.8)}
.g-table td:first-child{font-weight:600;color:var(--navy)}
.g-table tbody tr:nth-child(even) td{background:rgba(235,248,255,.5)}
.g-ol{list-style:none;counter-reset:go;display:flex;flex-direction:column;gap:12px;margin:10px 0 24px}
.g-ol li{position:relative;padding-left:44px;counter-increment:go}
.g-ol li::before{content:counter(go);position:absolute;left:0;top:.05em;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sky);color:var(--navy);font-size:14px;font-weight:700}
.g-tpl{margin:14px 0 22px;padding:18px 20px 20px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1px rgba(22,82,110,.18),0 6px 20px -14px rgba(22,82,110,.35)}
.g-tpl__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.g-tpl__top b{font-size:15px;font-weight:700;color:var(--navy)}
.g-tpl p{font-size:15.5px;line-height:1.65;color:rgba(0,0,0,.8)}
.g-copy{padding:6px 12px;border-radius:8px;background:var(--sky);font-size:13px;font-weight:600;color:var(--navy);transition:background-color .2s}
.g-copy:hover{background:#cfe6f3}
.g-check{list-style:none;display:flex;flex-direction:column;gap:10px;margin:10px 0 24px}
.g-check li{position:relative;padding-left:34px}
.g-check li::before{content:"";position:absolute;left:0;top:.22em;width:19px;height:19px;border-radius:5px;box-shadow:inset 0 0 0 2px var(--navy);background:#fff}
.g-appx{margin-top:60px;padding-top:10px;border-top:2px solid var(--sky)}
.toc--guide nav{max-height:calc(100vh - 380px);overflow-y:auto;overscroll-behavior:contain}
.art-cta--light{background:var(--sky-2);color:var(--navy)}
.art-cta--light p{color:var(--navy-60)}
.art-cta--light .btn{background:var(--navy);color:#fff}
.gl-end{font-size:14px;font-weight:600;color:var(--navy-60)}
.gl-link{margin-top:28px}
.qa__link{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:980px){.gp-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .nav__name{font-size:15px}
  .foot__name{font-size:30px}
  .gp-grid{grid-template-columns:1fr;margin-top:32px}
  .gl-principles{padding:60px 0 10px}
  .prose--guide h2{gap:10px}
  .prose--guide h2 .g-num{min-width:32px;height:32px;font-size:15px;border-radius:9px}
  .prose--guide h3{font-size:18px}
  .g-must,.g-note{padding:16px}
  .g-must li,.g-note p{font-size:15px}
  .gl-actions .btn{flex:1 1 100%}
  /* 手机上表格改成一行一张卡片，不用左右滑 */
  .g-table{overflow:visible;box-shadow:none;border-radius:0}
  .g-table table{min-width:0}
  .g-table thead{display:none}
  .g-table tr{display:block;margin-bottom:10px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px rgba(22,82,110,.14);overflow:hidden}
  .g-table td{display:block;padding:10px 14px;border-top:1px solid rgba(22,82,110,.08)}
  .g-table td:first-child{border-top:0;background:var(--sky-2)}
  .g-table tbody tr:nth-child(even) td{background:none}
  .g-table tbody tr td:first-child{background:var(--sky-2)}
  .g-table td:not(:first-child)::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-60)}
}
@media print{.gl-actions,.g-copy,.gl-principles .head{display:none!important}.g-table{overflow:visible}.g-table table{min-width:0}}

/* ===================== 平板/手机：列表页页头的字幕带挪到文字下方 ===================== */
@media (max-width:980px){
  .page-top{padding-bottom:170px}
  .page-top .ribbon{left:-330px!important;right:-330px!important;width:auto!important;top:auto!important;bottom:-80px!important;transform:rotate(-5deg)!important;scale:.8}
}
/* ===================== 手机端精修 ===================== */
@media (max-width:640px){
  /* 弧形字幕带按比例缩小，不再压住正文 */
  .ribbon{scale:.62}
  /* 列表页页头：字幕带挪到文字下方，横穿页头底部 */
  .page-top{padding-bottom:150px}
  .page-top .ribbon{bottom:-96px!important;transform:rotate(-7deg)!important;scale:.62}
  /* 区块标题（小标签+大标题+导语）手机上居中 */
  .sec .head,.impacts .head,.testi .head,.events .head{align-items:center;text-align:center;margin-left:auto;margin-right:auto}
  .arrows{justify-content:center}
  /* 学生心声：标题、箭头、轮播之间的空白收紧 */
  .testi .head{margin-bottom:28px}
  .arrows{margin-bottom:24px}
  /* 便签：拉开一点间距，左右交替微微倾斜 */
  .note{margin-top:14px}
  .note:nth-child(odd){rotate:-1.2deg}
  .note:nth-child(even){rotate:1deg}
}
/* 触屏（手机+平板）：点击区域至少 37px 高，视觉位置不变 */
@media (max-width:980px){
  .nav__logo{padding-top:9px;padding-bottom:9px;margin:-9px 0}
  .foot__col{gap:0}
  .foot__col a{padding:8px 0}
  .foot__col h4{margin-bottom:8px}
  .crumbs a{padding:8px 4px;margin:-8px -4px}
  .qa{padding:0}
  .qa__q{padding:20px;min-height:64px}
  .qa__a{padding:0 20px}
  .qa__a p{padding:0 0 20px}
}

/* ===================== 页面之间的过渡 =====================
 * 支持跨页 View Transitions 的浏览器（Chrome/Edge 126+、Safari 18.2+）：导航固定不动，内容淡出上移、新页淡入
 * 其它浏览器：脚本拦截站内链接，先淡出再跳转，新页淡入 */
@view-transition{navigation:auto}
.nav{view-transition-name:site-nav}
::view-transition-group(site-nav){animation:none}
::view-transition-old(root){animation:vt-out .28s cubic-bezier(.44,0,.56,1) both}
::view-transition-new(root){animation:vt-in .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-14px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(18px)}}
html.no-vt main,html.no-vt .foot{animation:vt-in .5s cubic-bezier(.2,.7,.2,1) both}
html.no-vt.leaving main,html.no-vt.leaving .foot{animation:none;opacity:0;transform:translateY(-14px);transition:opacity .22s cubic-bezier(.44,0,.56,1),transform .22s cubic-bezier(.44,0,.56,1)}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}html.no-vt main,html.no-vt .foot{animation:none}}

/* ===== 提示 & 进场 ===== */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--navy);color:#fff;font-size:15px;font-weight:500;padding:12px 18px;border-radius:10px;transition:all .3s;z-index:99;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translate(-50%,0)}
/* 进场动画：JS 接管前先隐藏，避免闪一下 */
html.js:not(.anim-ready) [data-anim]{opacity:0}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ===== 响应式 ===== */
@media (max-width:1240px){
  .wrap{padding:0 40px}
  .goal,.goal--rev{grid-template-columns:1fr 1fr}
  .slide{flex-basis:calc(100vw - 80px)}
  .slide{grid-template-columns:1.5fr 1fr}
}
@media (max-width:980px){
  /* 手机/平板：导航比首屏图片框明显收窄（两边各多缩 16px 以上、最宽 520px），浮在图片上而不是和图片一样宽 */
  .nav{top:20px;width:calc(100% - 52px);max-width:520px;padding:8px 8px 8px 10px;border-radius:14px;background:rgba(255,255,252,.9);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 10px 30px -12px rgba(22,82,110,.35),inset 0 0 14px 0 rgba(22,82,110,.08)}
  .nav__logo{font-size:20px}
  .nav__links,.nav__row>.btn{display:none}
  .nav__burger{display:grid}
  /* 菜单收起时高度为 0，完全不露；展开用 0fr→1fr 过渡 */
  .nav__menu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1)}
  .nav.open .nav__menu{grid-template-rows:1fr}
  .nav__menu-in{min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:0 6px}
  .nav__menu-in>a:first-child{margin-top:8px}
  .nav__menu a{padding:13px 0;border-top:1px solid rgba(22,82,110,.1);font-size:17px;font-weight:500;color:var(--navy);opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1)}
  .nav__menu a.is-active{font-weight:700;color:var(--blue)}
  .nav.open .nav__menu a{opacity:1;transform:none}
  .nav.open .nav__menu a:nth-child(2){transition-delay:.03s}
  .nav.open .nav__menu a:nth-child(3){transition-delay:.06s}
  .nav.open .nav__menu a:nth-child(4){transition-delay:.09s}
  .nav.open .nav__menu a:nth-child(5){transition-delay:.12s}
  .nav.open .nav__menu a:nth-child(6){transition-delay:.15s}
  .nav__menu .btn{display:flex;margin:8px 0 6px;width:100%;color:#fff;border-top:0}
  .infocard{grid-template-columns:1fr}
  .purpose__scroll{height:auto}
  .purpose__stage{position:relative;height:auto;display:block}
  .infocard__img{min-height:320px}
  .projects{grid-template-columns:1fr 1fr}
  .goal,.goal--rev{grid-template-columns:1fr}
  .goal--rev .goal__img{order:0}
  .goal.g1,.goal.g2{position:relative;top:auto}
  .goal__img{min-height:320px}
  .join .inner{flex-direction:column;align-items:stretch}
  .join .form{align-self:stretch}
  .form,.join .form{width:100%}
  .foot__top{flex-direction:column}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .hero{padding:6px}
  .hero{height:88vh;min-height:560px}
  .hero__box{padding:110px 16px 18px}
  .hero h1{font-size:38px}
  .h2,.cta .h2{font-size:29px}
  .lead br{display:none}
  .lead{font-size:17px}
  .pill{font-size:15px}
  .recog p{font-size:16px;padding:0 16px}
  .purpose__head{padding:64px 16px 40px}
  .purpose__stage{padding:48px 12px}
  .infocard{padding:14px}
  .toggle__ic{width:52px;height:52px}
  .toggle h6{font-size:19px}
  .infocard__img h4{font-size:22px}
  .sec,.events,.faq,.testi,.join{padding:64px 0}
  .sec .head,.events .head,.faq .head{margin-bottom:36px}
  .projects{grid-template-columns:1fr}
  .goal__info{padding:20px;min-height:0;padding-top:190px;gap:0}
  .goal__thumb{width:130px;height:130px;top:20px;right:20px}
  .goal--rev .goal__thumb{left:20px}
  .goal__info .tagnote,.goal--rev .goal__info .tagnote{top:120px;left:20px;right:auto;max-width:190px;font-size:14px}
  .goal__text h3{font-size:28px}
  .goal__text p{font-size:16px}
  .imp{width:300px;height:226px}
  .slide{grid-template-columns:1fr;height:auto;flex-basis:calc(100vw - 32px)}
  .slide__img{height:220px;order:-1}
  .slide__text{gap:24px}
  .slide__text h5{font-size:20px}
  .slide__text p{font-size:16px}
  .ev{width:280px;height:360px}
  .qa__q{font-size:17px}
  .qa__a p{font-size:16px}
  .points{padding:6px 18px}
  .points b{font-size:17px}
  .points small{font-size:14px}
  .join::before{background:linear-gradient(180deg,rgba(12,64,112,.4) 0%,rgba(12,64,112,.12) 45%,rgba(12,64,112,0) 70%)}
  .join .form{padding:20px}
  .row2{grid-template-columns:1fr}
  .notes{height:auto;margin-top:60px;display:flex;flex-direction:column;align-items:center;gap:0;padding-bottom:20px}
  .note{position:relative;left:auto!important;top:auto!important;width:88%!important;margin-top:-6px}
  .note{transform:none!important}
  .note:first-child{margin-top:0}
  .foot{padding:80px 0 40px}
  .foot__top{padding-bottom:60px}
  .foot__logo{font-size:36px;line-height:1.3}
  .foot__cols{flex-wrap:wrap;gap:32px 48px}
  .foot__col h4{margin-bottom:16px}
}

/* ===================== 标志对齐：方砖标志和两行名称上下对齐 =====================
 * 标志 symbol 已裁掉留白（viewBox 2 4 36 32），盒子即方砖可见范围，宽高比 9:8。
 * Outfit：ascent 1.0、descent .26、大写高 .706。行高 1.08 时，
 * 第一行大写字母顶端到第二行基线的距离 = (1.08 + .706)em = 1.786em，
 * 所以标志高度设 1.786em；文字上移 .204em，让大写顶端贴住方砖顶边，第二行基线落在方砖底边。 */
.nav__logo,.foot__logo{align-items:flex-start}
.nav__logo{font-size:14.5px;gap:.62em}
.foot__logo{font-size:29px;line-height:1;gap:.5em}
.nav__mark,.foot__mark{width:2.009em;height:1.786em;flex-shrink:0}
.nav__name,.foot__name{font-size:1em;line-height:1.08;margin-top:-.204em}
.foot .foot__tag{margin-top:-14px}
@media (max-width:640px){.nav__logo{font-size:13.5px}.foot__logo{font-size:23px}.foot .foot__tag{margin-top:-6px}}

/* 页脚：Homepage 栏标题可点击；微信/QQ 用实心品牌图标 */
.foot__col h4 a.foot__h{display:inline-flex;align-items:center;gap:6px;padding:0;color:inherit;font:inherit}
.foot__h svg{width:16px;height:16px;opacity:.7;transition:transform .3s cubic-bezier(.44,0,.56,1),opacity .3s}
.foot__h:hover svg{transform:translateX(3px);opacity:1}
.foot__ic svg{width:18px;height:18px;overflow:visible}

/* 活动页：暂无活动 */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ev-empty{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:stretch}
.ev-empty__text{padding:40px;border-radius:20px;background:var(--sky-2)}
.ev-empty__ic{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#fff;color:var(--navy)}
.ev-empty__ic svg{width:26px;height:26px}
.ev-empty h2{margin-top:22px;font-size:34px;line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--navy)}
.ev-empty__text p{margin-top:14px;max-width:560px;font-size:17px;line-height:1.6;font-weight:500;color:var(--navy-60)}
.ev-empty__text p b{color:var(--navy)}
.ev-empty__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.ev-empty__sub{width:auto;justify-content:center;gap:12px;padding:40px;border-radius:20px;background:var(--navy);color:#fff}
.ev-empty__sub b{font-size:24px;font-weight:700;letter-spacing:-.015em}
.ev-empty__sub p{font-size:15px;line-height:1.55;color:rgba(255,255,255,.75)}
.ev-empty__sub input{border-color:transparent}
.ev-empty__sub .btn{background:#fff;color:var(--navy)}
.ev-empty__sub .field__err{color:#FFD4CF}
.ev-empty__sub .field__err::before{background:#FFD4CF;color:var(--navy)}
@media (max-width:980px){.ev-empty{grid-template-columns:1fr}}
@media (max-width:640px){.ev-empty__text,.ev-empty__sub{padding:24px}.ev-empty h2{font-size:26px}.ev-empty__btns .btn{flex:1 1 100%}}

/* 页脚 Find Us：四个图标统一放进白色圆形底座；微信、QQ 用品牌色，邮箱、地址用站点深蓝 */
.foot__col .foot__ic{gap:12px}
.foot__ic svg{box-sizing:content-box;width:16px;height:16px;padding:8px;border-radius:50%;background:#fff;color:var(--navy);box-shadow:0 2px 8px -2px rgba(22,82,110,.18);overflow:visible}
.foot__ic--wx svg{color:#07C160}
.foot__ic--qq svg{color:#1EBAFC}
a.foot__ic:hover svg{box-shadow:0 4px 12px -2px rgba(22,82,110,.3)}
@media (max-width:980px){.foot__col span.foot__ic{padding:5px 0}.foot__col a.foot__ic{padding:5px 0}}
/* Find Us 每行与左边两栏同高（16px×1.3 行高 + 16px 间距 = 37px）：底座 24px，栏内间距 13px */
.foot__ic svg{width:14px;height:14px;padding:5px}
.foot__cols .foot__col:last-child{gap:13px}
.foot__col .foot__ic{gap:10px}
@media (max-width:980px){.foot__cols .foot__col:last-child{gap:0}.foot__col span.foot__ic,.foot__col a.foot__ic{padding:6.5px 0}}

/* 平台品牌色（Simple Icons 官方色） */
.c-wx{color:#07C160!important}.c-qq{color:#1EBAFC!important}.c-xhs{color:#FF2442!important}.c-bili{color:#00A1D6!important}
/* 联系页联系条：图标底座统一白色，品牌图标用品牌色，邮箱用深蓝 */
.ct-bar__item>i{background:#fff;box-shadow:0 2px 10px -3px rgba(22,82,110,.22)}
.ct-bar__item>i svg{width:22px;height:22px}
/* 联系页深蓝面板「Find us on」：白色小标签 + 彩色平台图标 */
.ct-plats span{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;background:#fff;color:var(--navy)}
.ct-plats svg{width:16px;height:16px}
/* 首页平台滚动条里的平台图标 */
.logo-item svg.c-wx,.logo-item svg.c-qq,.logo-item svg.c-xhs,.logo-item svg.c-bili{width:28px;height:28px}
/* 页脚：四个平台图标 */
.foot__plats{display:flex;gap:8px;margin-top:6px}
.foot__plats span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;box-shadow:0 2px 8px -2px rgba(22,82,110,.18)}
.foot__plats svg{width:17px;height:17px}
@media (max-width:980px){.foot__plats{margin-top:10px}}

/* ===================== About 页 ===================== */
.ab-story{padding-top:100px}
.ab-story__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:center}
.ab-story__text{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.ab-prose p{font-size:18px;line-height:1.65;font-weight:500;color:rgba(0,0,0,.72)}
.ab-prose p+p{margin-top:14px}
.ab-prose strong{color:var(--navy);font-weight:700}
.ab-link{display:inline-flex;align-items:center;gap:6px;font-size:16px;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:4px}
.ab-link svg{width:16px;height:16px}
.ab-story__img{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3.3}
.ab-story__img img{width:100%;height:100%;object-fit:cover}
.ab-story__img .tagnote{position:absolute;left:18px;bottom:18px;background:#fff}
.ab-mission{padding:100px 0;background:var(--navy);color:#fff}
.ab-mission__text{margin-top:26px;max-width:1000px;font-size:44px;line-height:1.2;font-weight:700;letter-spacing:-.025em}
.ab-mission__text span{color:#9FD3EE}
.ab-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:60px}
.ab-stats div{padding:24px;border-radius:16px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.ab-stats b{display:block;font-size:46px;line-height:1;font-weight:700;letter-spacing:-.03em}
.ab-stats span{display:block;margin-top:12px;font-size:15px;line-height:1.45;font-weight:500;color:rgba(255,255,255,.72)}
.ab-what .head,.ab-values .head{margin-bottom:50px}
.ab-do-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ab-do{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:26px 24px;border-radius:16px;background:var(--sky-2);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.ab-do:hover{transform:translateY(-6px);box-shadow:0 18px 40px -20px rgba(22,82,110,.4)}
.ab-do>i{display:grid;place-items:center;width:50px;height:50px;margin-bottom:6px;border-radius:14px;background:#fff;color:var(--navy)}
.ab-do>i svg{width:24px;height:24px}
.ab-do b{font-size:21px;line-height:1.25;font-weight:700;letter-spacing:-.01em;color:var(--navy)}
.ab-do p{font-size:15px;line-height:1.55;font-weight:500;color:var(--navy-60)}
.ab-go{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:8px;font-size:15px;font-weight:600;color:var(--navy)}
.ab-go svg{width:15px;height:15px;transition:transform .3s}
.ab-do:hover .ab-go svg{transform:translateX(4px)}
.ab-values{background:var(--sky)}
.ab-values .gp{background:#fff}
.ab-values .gp-grid{margin-top:0}
.ab-center{display:flex;justify-content:center;margin-top:40px}
.ab-how__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:60px;align-items:start}
.ab-how__list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ab-how__list li{padding:24px;border-radius:16px;background:var(--peach)}
.ab-how__list li:nth-child(2){background:var(--lemon)}
.ab-how__list li:nth-child(3){background:var(--pink)}
.ab-how__list li:nth-child(4){background:var(--lilac)}
.ab-how__list b{font-size:21px;font-weight:700;letter-spacing:-.01em;color:#1b1b1b}
.ab-how__list p{margin-top:8px;font-size:15px;line-height:1.55;font-weight:500;color:rgba(0,0,0,.65)}
.ab-cta{padding:0 0 110px}
.ab-cta__box{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:44px 48px;border-radius:24px;background:var(--navy);color:#fff}
.ab-cta__box h2{font-size:32px;line-height:1.15;font-weight:700;letter-spacing:-.02em}
.ab-cta__box p{margin-top:10px;max-width:560px;font-size:17px;line-height:1.55;color:rgba(255,255,255,.75)}
.ab-cta__btns{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}
@media (max-width:980px){
  .ab-story__grid,.ab-how__grid{grid-template-columns:1fr;gap:36px}
  .ab-stats,.ab-do-grid{grid-template-columns:1fr 1fr}
  .ab-mission__text{font-size:34px}
  .ab-cta__box{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .ab-story{padding-top:64px}
  .ab-prose p{font-size:16px}
  .ab-mission{padding:64px 0}
  .ab-mission__text{font-size:26px}
  .ab-stats{gap:10px;margin-top:36px}
  .ab-stats div{padding:18px}
  .ab-stats b{font-size:34px}
  .ab-do-grid,.ab-how__list{grid-template-columns:1fr}
  .ab-cta__box{padding:28px 22px}
  .ab-cta__box h2{font-size:24px}
  .ab-cta__btns{width:100%}
  .ab-cta__btns .btn{flex:1 1 100%}
  .ab-what .head,.ab-values .head{margin-bottom:32px}
}

/* ===================== 双语：语言切换 ===================== */
@media (min-width:981px){.nav{width:860px}}
.nav__end{display:flex;align-items:center;gap:8px}
.nav__lang{display:inline-flex;align-items:center;gap:6px;height:41px;padding:0 12px;border-radius:10px;background:var(--sky-2);font-size:14px;font-weight:600;color:var(--navy);white-space:nowrap;transition:background-color .2s}
.nav__lang:hover{background:var(--sky)}
.nav__lang svg{width:16px;height:16px}
.nav__menu .nav__lang--menu{display:none}
@media (max-width:980px){
  .nav__end{display:none}
  .nav__menu .nav__lang--menu{display:flex;justify-content:center;gap:8px;height:auto;margin-top:8px;padding:12px 0;border-top:0;border-radius:10px;background:var(--sky-2)}
}

/* ===================== 中文页：标志、字距、行高 ===================== */
/* 中文不用负字距（英文标题的紧凑字距会让汉字挤在一起），行高稍放大，阅读更舒服 */
html[lang="zh-CN"] body *{letter-spacing:0!important}
html[lang="zh-CN"] .lead{line-height:1.7}
html[lang="zh-CN"] .h2{line-height:1.3}
html[lang="zh-CN"] .hero h1{line-height:1.3}
html[lang="zh-CN"] .prose{line-height:1.9}
html[lang="zh-CN"] .prose h2{line-height:1.4}
html[lang="zh-CN"] .rich,html[lang="zh-CN"] .ab-prose p,html[lang="zh-CN"] .qa__a p{line-height:1.8}
html[lang="zh-CN"] .art-head h1{line-height:1.3}
html[lang="zh-CN"] .ct-title{line-height:1.3}
html[lang="zh-CN"] .goal__text h3{line-height:1.3}
/* 中文标志：「福州校园墙联盟」+ 一行小号英文名，和方砖标志上下居中 */
html[lang="zh-CN"] .nav__logo,html[lang="zh-CN"] .foot__logo{align-items:center}
html[lang="zh-CN"] .nav__name,html[lang="zh-CN"] .foot__name{display:flex;flex-direction:column;margin-top:0;font-family:var(--sans);line-height:1.15}
html[lang="zh-CN"] .nav__name{font-size:17px}
html[lang="zh-CN"] .nav__name small,html[lang="zh-CN"] .foot__name small{font-family:"Logo",var(--sans);font-weight:700;color:var(--navy-60)}
html[lang="zh-CN"] .nav__name small{margin-top:3px;font-size:9px}
html[lang="zh-CN"] .nav__mark{width:33.75px;height:30px}
html[lang="zh-CN"] .foot__name{font-size:30px}
html[lang="zh-CN"] .foot__name small{margin-top:7px;font-size:13px}
html[lang="zh-CN"] .foot__mark{width:61.9px;height:55px}
@media (max-width:640px){
  html[lang="zh-CN"] .nav__name{font-size:16px}
  html[lang="zh-CN"] .nav__name small{font-size:8.5px}
  html[lang="zh-CN"] .nav__mark{width:31.5px;height:28px}
  html[lang="zh-CN"] .foot__name{font-size:24px}
  html[lang="zh-CN"] .foot__name small{font-size:11px}
  html[lang="zh-CN"] .foot__mark{width:49.5px;height:44px}
}
/* 中文指南：章、条体例 */
.g-art{margin:0 0 1.05em}
.g-art p{margin:0 0 .45em}
.g-art p+p{text-indent:2em}
.g-art__no{margin-right:.8em;font-weight:700;color:var(--navy)}
html[lang="zh-CN"] .prose--guide h2 .g-num{font-size:15px;padding:0 12px}
html[lang="zh-CN"] .g-note b{text-transform:none;letter-spacing:0;font-size:13px}
/* 中文版：关注公众号（代替邮件订阅） */
.wx-follow__name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:46px;padding:0 14px;border:1px solid rgba(22,82,110,.15);border-radius:10px;background:#fff;font-size:15px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wx-follow__name svg{width:18px;height:18px;flex-shrink:0;fill:#07C160}
html[lang="zh-CN"] .slide__text h5{line-height:1.45}
html[lang="zh-CN"] .slide__text p{font-size:16px;line-height:1.65;font-weight:500}
/* 首页“联系方式查询”点阵图：左文右图，福州市方点阵；数字用站内的便签（tagnote）贴在地图空白处 */
.netmap-sec{padding:100px 0}
.netmap-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.netmap-text.head{gap:22px}
.netmap-text .btn{margin-top:8px}
.netmap{position:relative;width:100%;margin:0}
.netmap canvas{display:block;width:100%}
.netmap__cap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(22,82,110,.12);font-size:14px;font-weight:500;color:var(--ink-60)}
.netmap__cap span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.netmap__cap i{display:inline-block;width:9px;height:9px;border-radius:1px;background:rgba(22,82,110,.22)}
.netmap__cap i.on{width:10px;height:10px;background:var(--blue)}
.netmap__cap b{margin:0 2px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.netmap__cap small{margin-left:auto;font-size:12px;color:var(--ink-40)}
@media (max-width:980px){
  .netmap-wrap{grid-template-columns:1fr;gap:36px}
}
@media (max-width:640px){
  .netmap-sec{padding:70px 0}
  .netmap__cap{gap:6px 16px;font-size:13px}
  .netmap__cap small{margin-left:0;flex-basis:100%}
}
/* 图形验证码（表单防刷） */
.field--cap .cap{display:flex;gap:10px;align-items:center}
.field--cap input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.15em}
.field--cap img{width:120px;height:40px;flex-shrink:0;border-radius:6px;border:1px solid rgba(0,0,0,.08);background:#F3F7FA;cursor:pointer}
.field__hint{font-size:12px;line-height:1.5;color:var(--ink-50)}
.row2{align-items:start}
/* 可搜索的校园墙选择框（成员校园墙会越来越多，不能用下拉列表一个个找） */
.combo{position:relative}
.field .combo input[type=text]{padding-right:36px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%23999' stroke-width='1.5'/%3E%3Cpath d='M10.5 10.5L14 14' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E") right 12px center/14px no-repeat}
.combo.is-picked input[type=text]{border-color:rgba(22,82,110,.35);background-color:#F4F9FC;color:var(--navy,#16526E);font-weight:500}
.combo__list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:320px;overflow:auto;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:8px;box-shadow:0 12px 32px rgba(16,40,60,.14)}
.combo__list li{padding:9px 10px;border-radius:6px;cursor:pointer;font-size:14px;line-height:1.35;color:#222}
.combo__list li small{display:block;margin-top:2px;font-size:12px;color:var(--ink-50)}
.combo__list li mark{background:none;color:var(--blue);font-weight:600}
.combo__list li.on,.combo__list li:hover{background:#EEF6FB}
.combo__list li.combo__manual{margin-top:4px;border-top:1px solid rgba(0,0,0,.06);border-radius:0 0 6px 6px;color:var(--blue)}
.combo__list li.combo__empty{cursor:default;color:var(--ink-50);background:none}
/* 截图上传：替换浏览器自带的英文“Choose Files”控件 */
.upl{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 6px 6px 6px;border:1px dashed rgba(22,82,110,.28);border-radius:6px;background:#F7FAFC;cursor:pointer;transition:border-color .2s,background .2s}
.upl:hover{border-color:var(--blue);background:#F1F7FB}
.upl:focus-within{border-color:var(--blue);outline:2px solid rgba(75,163,211,.35);outline-offset:1px}
.field .upl input{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.upl__btn{flex-shrink:0;height:34px;padding:0 14px;display:inline-flex;align-items:center;border-radius:5px;background:var(--navy,#16526E);color:#fff;font-size:13px;font-weight:500}
.upl__txt{min-width:0;font-size:13px;color:var(--ink-50);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upl.has-files .upl__txt{color:var(--ink-80)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
/* 投诉页 */
.cp-hero{padding:150px 0 30px;background:var(--paper)}
.cp-hero .head{max-width:760px}
.cp{padding:20px 0 90px;background:var(--paper)}
.cp__grid{display:grid;grid-template-columns:minmax(0,1fr) 585px;gap:40px;align-items:start}
.cp__side{display:flex;flex-direction:column;gap:14px;position:sticky;top:110px}
.cp__card{padding:20px 22px;border-radius:14px;background:var(--sky-2);color:var(--navy)}
.cp__card b{display:block;margin-bottom:6px;font-size:17px;font-weight:700}
.cp__card p{font-size:15px;line-height:1.65;color:rgba(22,82,110,.85)}
.cp__card--warn{background:#FFF3E6;color:#7A4A12}
.cp__card--warn p{color:#7A4A12}
.cp__form{width:100%;align-self:stretch}
.seg{display:flex;gap:8px}
.seg label{flex:1;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:10px 12px;border:1px solid rgba(0,0,0,.08);border-radius:6px;text-align:center;font-size:14px;font-weight:500;color:var(--ink-80);background:#fff;transition:all .2s}
.seg input:checked+span{border-color:var(--blue);background:var(--sky-2);color:var(--blue);font-weight:600}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.cp-status{padding:100px 0 120px;background:var(--sky-2);scroll-margin-top:0}
#status{scroll-margin-top:20px}
.cp-st__intro{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding-top:6px}
.cp-st__intro .h2{color:var(--navy)}
.cp-st__intro .lead{font-size:18px;line-height:1.6;color:var(--navy-60);max-width:520px}
.cp-st__tips{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:6px;max-width:520px}
.cp-st__tips li{padding:16px 18px;border-radius:12px;background:#fff;font-size:15px;line-height:1.6;color:rgba(22,82,110,.85);box-shadow:0 4px 20px -12px rgba(22,82,110,.25)}
.cp-st__tips b{display:block;margin-bottom:2px;font-size:15px;color:var(--navy)}
.cp-st__tips a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.cp-st__main{display:flex;flex-direction:column;gap:16px}
.cp-st__form{width:100%;background:#fff;box-shadow:0 10px 40px -18px rgba(22,82,110,.35)}
.cp-st__form .mono{letter-spacing:.08em;text-transform:uppercase}
.cp-st__form .mono::placeholder{letter-spacing:.02em;text-transform:none}
.cp-result:empty{display:none}
.cp-result__err{padding:14px 18px;border-radius:10px;background:#FDECEA;color:#B3261E;font-size:15px;line-height:1.5;font-weight:500}
.cp-res{padding:24px;border-radius:14px;background:#fff;box-shadow:0 10px 40px -18px rgba(22,82,110,.35)}
.cp-res__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:18px;border-bottom:1px solid rgba(22,82,110,.1)}
.cp-res__top small{display:block;margin-bottom:4px;font-size:13px;font-weight:500;color:var(--navy-60)}
.cp-res__top b{font-size:22px;color:var(--navy)}
.cp-badge{flex-shrink:0;padding:6px 12px;border-radius:999px;font-size:14px;font-weight:600;line-height:1.2;background:#FFF3E0;color:#9A5B00}
.cp-badge--done{background:#E6F4EA;color:#1E7A3C}
.cp-badge--muted{background:#EEF1F4;color:#55606B}
.cp-res__kv{display:grid;grid-template-columns:88px 1fr;gap:10px 16px;padding:18px 0;border-bottom:1px solid rgba(22,82,110,.1);font-size:15px;line-height:1.5}
.cp-res__kv dt{color:var(--ink-50)}
.cp-res__kv dd{color:var(--ink-80)}
.cp-res__kv dd.cp-res__outcome{color:#1E7A3C;font-weight:600}
.cp-res h4{margin:18px 0 12px;font-size:16px;color:var(--navy)}
.cp-tl{list-style:none;position:relative;padding-left:22px}
.cp-tl::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:rgba(22,82,110,.12)}
.cp-tl li{position:relative;padding:0 0 16px}
.cp-tl li:last-child{padding-bottom:0}
.cp-tl li::before{content:"";position:absolute;left:-22px;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid rgba(22,82,110,.35)}
.cp-tl li:last-child::before{background:var(--navy);border-color:var(--navy)}
.cp-tl b{font-size:15px;color:var(--navy);font-weight:600}
.cp-tl time{margin-left:8px;font-size:13px;color:var(--ink-50);font-variant-numeric:tabular-nums}
.cp-tl p{margin-top:4px;font-size:14px;line-height:1.6;color:var(--ink-60)}
@media (max-width:1100px){.cp__grid{grid-template-columns:1fr}.cp__side{position:static}}
@media (max-width:640px){
  .cp-hero{padding:120px 0 20px}
  .cp-status{padding:70px 0 80px}
  .cp-st__intro .lead{font-size:16px}
  .cp-res{padding:20px 18px}.cp-res__kv{grid-template-columns:76px 1fr;font-size:14px}
}

/* 表单：同意条款与个人信息出境（必须勾选） */
.field--agree{flex-direction:row;align-items:flex-start;gap:10px;cursor:pointer}
.field--agree input{flex-shrink:0;width:18px;height:18px;margin-top:2px;accent-color:var(--blue);padding:0}
.field--agree span{flex:1 1 0;min-width:0;font-size:13px;line-height:1.6;color:var(--ink-60)}
.field--agree a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.field--agree.has-err span{color:#B3261E}
.field--agree .field__err{flex-basis:100%}
.field--agree{flex-wrap:wrap}
/* 关注公众号：按钮文字较长，放不下时换到下一行，名称不截断 */
.wx-follow .news-sub__row{flex-wrap:wrap}
.wx-follow__name{flex:1 1 236px;overflow:visible;text-overflow:clip}
.wx-follow .btn{flex:0 0 auto}
