
:root {
  --bg:#D9E0E6;
  --bg2:#F0F2F3;
  --ink:#25333E;
  --ink2:#3A4853;
  --muted:#71808C;
  --burg:#8A2142;
  --burg2:#A43A5B;
  --dark:#263440;
  --dark2:#1B252E;
  --white:#F7F9FB;
  --line:rgba(37,51,62,.13);
  --ease:cubic-bezier(.22,1,.36,1);
  --pageTime:1.85s;
  --micro:.42s;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
button,a{font:inherit}
a{color:inherit;text-decoration:none}
#app{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg);transition:background var(--pageTime) var(--ease),color 1.25s var(--ease)}
#app.theme-light{background:linear-gradient(135deg,#D9E0E6 0%,#E7ECEF 55%,#D2DCE4 100%);color:var(--ink)}
#app.theme-paper{background:linear-gradient(135deg,#F0F2F3 0%,#E8EDF0 100%);color:var(--ink)}
#app.theme-dark{background:linear-gradient(135deg,#263440 0%,#1B252E 100%);color:var(--white)}
#app.theme-photo{background:#202B35;color:var(--white)}
#app.theme-burg{background:linear-gradient(135deg,#7A1E3A 0%,#98294B 100%);color:var(--white)}

.texture{position:absolute;inset:0;z-index:90;pointer-events:none;opacity:.075;mix-blend-mode:multiply;background-image:radial-gradient(rgba(0,0,0,.16) .32px,transparent .32px);background-size:5px 5px}
.theme-dark .texture,.theme-photo .texture,.theme-burg .texture{mix-blend-mode:screen;opacity:.035;background-image:radial-gradient(rgba(255,255,255,.2) .32px,transparent .32px)}

/* Fudan abstract architecture */
.fudan-lines{position:absolute;z-index:0;left:38vw;top:16vh;right:auto;bottom:auto;width:22vw;height:66vh;opacity:.18;pointer-events:none;transition:opacity var(--pageTime) var(--ease),transform var(--pageTime) var(--ease),left var(--pageTime) var(--ease),top var(--pageTime) var(--ease)}
.theme-paper .fudan-lines{opacity:.14;left:38vw;top:16vh;transform:scale(1.02)}
.theme-dark .fudan-lines,.theme-photo .fudan-lines{opacity:.12;left:37vw;top:15vh;transform:scale(.98)}
.theme-burg .fudan-lines{opacity:.09;left:38vw;top:16vh;transform:scale(1.0)}
.fudan-lines svg{width:100%;height:100%;display:block}
.fudan-label{position:absolute;z-index:1;right:4.4vw;top:12vh;bottom:auto;font-size:8px;letter-spacing:.24em;color:rgba(37,51,62,.30);writing-mode:vertical-rl;pointer-events:none;transition:opacity var(--pageTime) var(--ease),color 1.2s var(--ease)}
.theme-dark .fudan-label,.theme-photo .fudan-label,.theme-burg .fudan-label{color:rgba(255,255,255,.22)}

#app.page-1 .fudan-lines{left:38vw;top:15vh;opacity:.18}
#app.page-2 .fudan-lines{left:40vw;top:15vh;opacity:.16}
#app.page-3 .fudan-lines{left:41vw;top:17vh;opacity:.10}
#app.page-4 .fudan-lines{left:41vw;top:16vh;opacity:.075}
#app.page-5 .fudan-lines{left:40vw;top:16vh;opacity:.08}
#app.page-6 .fudan-lines{left:41vw;top:17vh;opacity:.09}
#app.page-7 .fudan-lines{left:39vw;top:16vh;opacity:.085}
#app.page-8 .fudan-lines{left:40vw;top:17vh;opacity:.08}
#app.page-9 .fudan-lines{left:39vw;top:16vh;opacity:.075}
#app.page-10 .fudan-lines{left:41vw;top:17vh;opacity:.095}
#app.page-11 .fudan-lines{left:39vw;top:16vh;opacity:.07}
#app.page-12 .fudan-lines{left:39vw;top:16vh;opacity:.08}
#app.page-3 .fudan-label,#app.page-4 .fudan-label,#app.page-5 .fudan-label,#app.page-6 .fudan-label,#app.page-7 .fudan-label,#app.page-8 .fudan-label,#app.page-9 .fudan-label,#app.page-10 .fudan-label,#app.page-11 .fudan-label,#app.page-12 .fudan-label{opacity:.12}


/* Header */
.topbar{position:fixed;z-index:80;left:0;right:0;top:0;height:68px;padding:0 clamp(16px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid transparent;transition:background 1.2s var(--ease),border-color 1.2s var(--ease),color 1.2s var(--ease)}
.scrolled .topbar{backdrop-filter:blur(12px)}
.theme-light .topbar,.theme-paper .topbar{color:var(--ink)}
.theme-dark .topbar,.theme-photo .topbar,.theme-burg .topbar{color:var(--white)}
.brand{display:flex;align-items:center;gap:11px;font-size:9px;letter-spacing:.18em;font-weight:700}
.brand i{display:block;width:27px;height:2px;background:var(--burg);transition:background 1s var(--ease)}
.theme-burg .brand i{background:#F3D6DF}
.header-index{font-size:8px;letter-spacing:.18em;opacity:.62}

/* Sections */
.viewport{position:absolute;inset:0}
.page{position:absolute;inset:0;padding:86px clamp(22px,6vw,96px) 64px;display:grid;align-items:center;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(42px) scale(.993);filter:blur(2px);transition:opacity .82s var(--ease),transform var(--pageTime) var(--ease),filter 1s var(--ease),visibility 0s linear var(--pageTime)}
.page.active{opacity:1;visibility:visible;pointer-events:auto;transform:none;filter:none;transition-delay:.23s,0s,0s,0s}
.page.leaving-up{opacity:0;transform:translateY(-44px) scale(.987);filter:blur(2px)}
.page.leaving-down{opacity:0;transform:translateY(44px) scale(.987);filter:blur(2px)}
.page-number{position:absolute;right:2.5vw;top:7vh;font:900 min(29vw,430px)/.82 Arial,sans-serif;letter-spacing:-.08em;color:rgba(138,33,66,.06);user-select:none;pointer-events:none}
.theme-dark .page-number,.theme-photo .page-number,.theme-burg .page-number{color:rgba(255,255,255,.035)}
.kicker{font-size:10px;letter-spacing:.25em;color:var(--burg);font-weight:750;margin-bottom:16px}
.theme-dark .kicker,.theme-photo .kicker{color:#DB7794}
.theme-burg .kicker{color:#F4CBD8}
.display{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:800;letter-spacing:-.045em;line-height:1.03;margin:0}
.lead{font-size:clamp(15px,1.3vw,19px);line-height:1.95;color:var(--ink2)}
.theme-dark .lead,.theme-photo .lead,.theme-burg .lead{color:rgba(247,249,251,.76)}
.smallcaps{font-size:9px;letter-spacing:.18em;color:var(--muted)}
.theme-dark .smallcaps,.theme-photo .smallcaps,.theme-burg .smallcaps{color:rgba(247,249,251,.55)}


/* React Bits MaskedHeading-inspired SOLID text mode
   No media inside glyphs: headings reveal as solid near-black text. */
.display{
  color:#111820!important;
  position:relative;
}
.reveal-heading{
  visibility:hidden;
}
.reveal-heading.is-prepared{
  visibility:visible;
}
.reveal-heading__line{
  display:block;
  overflow:hidden;
  padding-bottom:.06em;
  margin-bottom:-.06em;
}
.reveal-heading__inner{
  display:block;
  transform:translate3d(0,118%,0);
  opacity:.02;
  will-change:transform,opacity;
}
.page.active .reveal-heading__inner{
  animation:solidHeadingRise 1.52s var(--ease) forwards;
}
.page.active .reveal-heading__line:nth-child(2) .reveal-heading__inner{animation-delay:.14s}
.page.active .reveal-heading__line:nth-child(3) .reveal-heading__inner{animation-delay:.28s}
.page.active .reveal-heading__line:nth-child(4) .reveal-heading__inner{animation-delay:.42s}
@keyframes solidHeadingRise{
  0%{transform:translate3d(0,118%,0);opacity:.02}
  18%{opacity:1}
  100%{transform:translate3d(0,0,0);opacity:1}
}

/* secondary text enters after the heading, slower and cleaner */
.page .kicker,
.page .lead,
.page .result-list,
.page .triad,
.page .info-grid,
.page .keyword-stack,
.page .award-chip,
.page .comm-side,
.page .quote-block,
.page .project-flow,
.page .project-link,
.page .practice-list,
.page .smallcaps,
.page .commitments,
.page .motto,
.page .hero-role,
.page .hero-en,
.page .chips,
.page .event-flow,
.page .event-time,
.page .event-docs,
.page .event-resp,
.page .event-proof-note,
.page .event-proof-media{
  opacity:0;
  transform:translate3d(0,18px,0);
}
.page.active .kicker{animation:secondaryRise .74s var(--ease) .18s forwards}
.page.active .lead,
.page.active .motto,
.page.active .hero-role,
.page.active .hero-en{animation:secondaryRise .90s var(--ease) .52s forwards}
.page.active .result-list,
.page.active .triad,
.page.active .info-grid,
.page.active .keyword-stack,
.page.active .award-chip,
.page.active .comm-side,
.page.active .quote-block,
.page.active .project-flow,
.page.active .project-link,
.page.active .practice-list,
.page.active .smallcaps,
.page.active .commitments,
.page.active .chips,
.page.active .event-flow,
.page.active .event-time,
.page.active .event-docs,
.page.active .event-resp,
.page.active .event-proof-note,
.page.active .event-proof-media{animation:secondaryRise .94s var(--ease) .68s forwards}
@keyframes secondaryRise{
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* Former dark-page text is now black/dark to suit the light breathing palette */
.athlete-copy h2,
.results-copy h2,
.why-copy h2{color:#111820!important}
.theme-dark .lead,.theme-photo .lead,.theme-burg .lead,
#app.page-3 .lead,#app.page-4 .lead,#app.page-5 .lead,#app.page-7 .lead,#app.page-9 .lead,#app.page-11 .lead{
  color:#3A4853!important
}
.triad span{
  color:#364550!important;
  border-bottom-color:rgba(138,33,66,.58)!important
}
.result-list{border-top-color:rgba(37,51,62,.16)!important}
.result-row{border-bottom-color:rgba(37,51,62,.13)!important}
.result-title{color:#111820!important}
.result-sub{color:#667581!important}
.result-year{color:var(--burg)!important}
.commit{border-bottom-color:rgba(37,51,62,.14)!important}
.commit b{color:#111820!important}
.commit span{color:#5F6D78!important}
.mantra{color:var(--burg)!important}
.theme-dark .smallcaps,.theme-photo .smallcaps,.theme-burg .smallcaps{color:var(--muted)!important}

/* Keep heading type responsive but visually editorial */
@media(max-width:820px){
  .page.active .reveal-heading__inner{animation-duration:1.18s}
}
@media(prefers-reduced-motion:reduce){
  .reveal-heading__inner,
  .page .kicker,.page .lead,.page .result-list,.page .triad,.page .info-grid,
  .page .keyword-stack,.page .award-chip,.page .comm-side,.page .quote-block,
  .page .project-flow,.page .project-link,.page .practice-list,.page .smallcaps,
  .page .commitments,.page .motto,.page .hero-role,.page .hero-en,.page .chips{
    animation:none!important;transform:none!important;opacity:1!important
  }
}

/* shared image treatment */
.photo{position:relative;overflow:hidden;background:#C8D1D8}
.photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.4s var(--ease),filter 1.1s var(--ease)}
.photo.evidence{background:rgba(255,255,255,.06)}
.photo.evidence img{object-fit:contain!important;object-position:center!important}
.theme-light .photo.evidence,.theme-paper .photo.evidence{background:rgba(255,255,255,.48)}

.photo:hover img{transform:scale(1.025)}
.photo::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);pointer-events:none}
.round2{border-radius:2px}

/* 01 */
.p1{grid-template-columns:48% 52%;gap:2vw}
.hero-copy{position:relative;z-index:12}
.hero-copy h1{font-size:clamp(74px,9vw,148px)}
.hero-en{margin-top:17px;font-size:10px;letter-spacing:.34em;color:var(--muted)}
.rule{width:170px;height:1px;background:rgba(37,51,62,.64);margin:28px 0 20px}
.hero-role{font-size:clamp(18px,2vw,30px);line-height:1.52;font-weight:650}
.motto{margin-top:12px;font-family:"Songti SC","STSong",serif;font-size:16px;color:var(--ink2)}
.chips{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}
.chip{border:0;background:transparent;padding:0 0 7px;color:var(--muted);font-size:11px;letter-spacing:.08em;cursor:pointer;position:relative;transition:color var(--micro) var(--ease),transform var(--micro) var(--ease)}
.chip::after{content:"";position:absolute;left:0;bottom:0;width:16px;height:1px;background:var(--burg);transition:width var(--micro) var(--ease)}
.chip:hover,.chip.on{color:var(--burg);transform:translateY(-2px)} .chip:hover::after,.chip.on::after{width:100%}
.chip-note{margin-top:12px;min-height:34px;font-size:11px;line-height:1.65;color:var(--muted);opacity:0;transform:translateY(7px);transition:all var(--micro) var(--ease)}
.chip-note.show{opacity:1;transform:none}
.hero-portrait{height:80vh;align-self:end;justify-self:end;width:min(39vw,580px);clip-path:polygon(8% 0,100% 0,100% 100%,0 100%,0 8%);box-shadow:0 30px 68px rgba(43,61,76,.18)}
.hero-portrait img{object-position:center 22%;filter:saturate(.86) contrast(1.02)}

/* 02 */
.p2{grid-template-columns:34% 1fr;gap:8vw}
.about-portrait{height:58vh;align-self:start;margin-top:4vh;clip-path:polygon(0 7%,92% 0,100% 93%,10% 100%,0 90%);box-shadow:0 24px 60px rgba(43,61,76,.12)}
.about-portrait img{object-position:center 22%;filter:saturate(.82)}
.about-copy h2{font-size:clamp(46px,5.2vw,82px);margin-bottom:24px}
.info-grid{margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(2,1fr)}
.info-item{padding:16px 0}
.info-item:nth-child(odd){border-right:1px solid var(--line);padding-right:22px} .info-item:nth-child(even){padding-left:22px}
.info-label{font-size:8px;letter-spacing:.18em;color:var(--muted);margin-bottom:5px}
.info-value{font-size:13px;font-weight:650}

/* 03 Athlete */
.p3{grid-template-columns:42% 58%;gap:4vw}
.athlete-copy h2{font-size:clamp(52px,6.1vw,96px);margin-bottom:26px;color:var(--white)}
.triad{display:flex;gap:22px;margin-top:25px;flex-wrap:wrap}
.triad span{font-size:10px;letter-spacing:.17em;border-bottom:1px solid #B85A76;padding-bottom:8px;color:rgba(247,249,251,.78)}
.athlete-photo{height:76vh;box-shadow:0 30px 80px rgba(0,0,0,.24)}
.athlete-photo img{object-position:center center}

/* 04 Results */
.p4{grid-template-columns:44% 56%;gap:5vw}
.results-copy h2{font-size:clamp(56px,6.4vw,102px);color:var(--white);margin-bottom:18px}
.result-list{margin-top:26px;border-top:1px solid rgba(255,255,255,.15)}
.result-row{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.12);transition:padding-left var(--micro) var(--ease),background var(--micro) var(--ease)}
.result-row:hover{padding-left:8px}
.result-year{font-size:13px;letter-spacing:.08em;color:#DE7895;font-weight:700}
.result-title{font-size:15px;font-weight:650;line-height:1.5;color:white}
.result-sub{margin-top:4px;font-size:11px;line-height:1.65;color:rgba(255,255,255,.58)}
.results-media{position:relative;height:76vh;display:grid;grid-template-columns:1.16fr .84fr;grid-template-rows:1fr 1fr;gap:18px;align-items:stretch}
.results-media .main{position:static;grid-row:1 / span 2;grid-column:1;width:100%;height:100%;box-shadow:0 25px 60px rgba(0,0,0,.2);padding:14px}
.results-media .small{position:static;grid-row:1;grid-column:2;width:100%;height:100%;border:0;box-shadow:0 18px 46px rgba(0,0,0,.18);padding:12px}
.results-media .badge{position:static;grid-row:2;grid-column:2;width:100%;height:100%;border:0;box-shadow:0 18px 46px rgba(0,0,0,.18);padding:12px}
.results-media .photo img{object-fit:contain!important;object-position:center!important}

/* 05 Leadership placeholder */
.p5{grid-template-columns:52% 1fr;gap:6vw}
.placeholder{height:66vh;border:1px solid rgba(37,51,62,.22);display:flex;align-items:center;justify-content:center;position:relative;background:rgba(255,255,255,.16);overflow:hidden}
.placeholder::before{content:"";position:absolute;inset:8%;border:1px dashed rgba(37,51,62,.22)}
.placeholder-inner{position:relative;text-align:center;max-width:70%}
.placeholder-inner b{display:block;font-family:"Songti SC","STSong",serif;font-size:32px;margin-bottom:12px}
.placeholder-inner span{font-size:11px;line-height:1.8;color:var(--muted)}
.leadership-copy h2{font-size:clamp(47px,5.2vw,82px);margin-bottom:18px}
.keyword-stack{margin-top:28px}
.keyword-stack div{font-size:13px;letter-spacing:.12em;padding:14px 0;border-bottom:1px solid var(--line)}

/* 06 Organization */
.p6{grid-template-columns:42% 58%;gap:5vw}
.org-copy h2{font-size:clamp(48px,5.5vw,86px);margin-bottom:22px}
.org-visual{height:70vh;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:16px;align-self:center}
.org-photo{height:auto;min-height:0;padding:12px}
.org-photo img{object-fit:contain!important;object-position:center center!important}
.award-chip{display:inline-block;margin-top:22px;padding:10px 13px;border:1px solid rgba(138,33,66,.35);color:var(--burg);font-size:10px;letter-spacing:.08em}
.org-mini-row{display:flex;align-items:center;gap:14px;justify-content:flex-end}
.org-mini{position:static;width:38%;height:17vh;border:0;padding:8px;box-shadow:0 14px 34px rgba(43,61,76,.10)}
.org-mini img{object-fit:contain!important}
.org-mini-caption{font-size:8px;letter-spacing:.16em;color:var(--muted);white-space:nowrap}

/* 07 Communication */
.p7{grid-template-columns:1fr 38%;gap:8vw}
.communication h2{font-size:clamp(58px,6.6vw,104px);margin-bottom:30px}
.quote-block{font-family:"Songti SC","STSong",serif;font-size:clamp(22px,2.2vw,34px);line-height:1.55;color:var(--burg);margin-top:26px}
.comm-side{align-self:center;border-left:1px solid var(--line);padding-left:34px}
.comm-side .smallcaps{margin-bottom:16px}
.comm-side p{font-size:13px;line-height:2;color:var(--ink2)}

/* 08 Project */
.p8{grid-template-columns:36% 64%;gap:5vw}
.project-copy h2{font-size:clamp(46px,5vw,78px);margin-bottom:22px}
.project-flow{margin-top:25px}
.flow-row{display:grid;grid-template-columns:82px 1fr;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}
.flow-key{font-size:8px;letter-spacing:.18em;color:var(--burg);font-weight:700}
.flow-val{font-size:12px;line-height:1.65;color:var(--ink2)}
.project-link{display:inline-flex;margin-top:22px;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--burg);font-size:10px;letter-spacing:.12em;color:var(--burg);cursor:pointer;transition:gap var(--micro) var(--ease)}
.project-link:hover{gap:20px}
.project-gallery{height:74vh;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:center;position:relative}
.phone{position:relative;background:#F7F8F8;border-radius:16px;padding:8px;box-shadow:0 18px 44px rgba(43,61,76,.14);cursor:pointer;overflow:hidden;transition:transform .88s var(--ease),box-shadow .88s var(--ease),opacity .72s var(--ease),filter .72s var(--ease),z-index 0s}
.phone img{width:100%;height:100%;object-fit:contain;border-radius:10px;background:#F7F8F8}
.phone.one,.phone.two,.phone.three{position:relative;left:auto;right:auto;top:auto;width:100%;height:88%;transform:none}
@media (hover:hover) and (pointer:fine){
  .project-gallery:hover .phone{opacity:.55;filter:saturate(.85)}
  .project-gallery .phone:hover{z-index:5;opacity:1;filter:none;transform:scale(1.18) translateY(-2%);box-shadow:0 32px 80px rgba(43,61,76,.27)}
}


/* 09 Practice */
.p9{grid-template-columns:41% 59%;gap:5vw}
.practice-copy h2{font-size:clamp(44px,4.8vw,76px);margin-bottom:20px}
.practice-list{margin-top:24px}
.practice-item{padding:14px 0;border-bottom:1px solid var(--line)}
.practice-item b{display:block;font-size:13px;margin-bottom:5px}
.practice-item span{font-size:11px;line-height:1.7;color:var(--muted)}
.practice-collage{height:74vh;display:grid;grid-template-columns:1.08fr .92fr;grid-template-rows:1fr 1fr;gap:16px}
.practice-collage .demo{position:static;grid-column:1;grid-row:1 / span 2;width:100%;height:100%;padding:12px}
.practice-collage .demo img{object-fit:contain!important}
.practice-collage .interview{position:static;grid-column:2;grid-row:1;width:100%;height:100%;padding:10px}
.practice-collage .interview img{object-fit:contain!important}
.practice-collage .gala{position:static;grid-column:2;grid-row:2;width:100%;height:100%;border:0;padding:10px}
.practice-collage .gala img{object-fit:contain!important}
.practice-proof{grid-column:2;grid-row:2;align-self:end;justify-self:start;margin:0 0 12px 12px;z-index:4;background:rgba(240,242,243,.9);padding:9px 11px;font-size:8px;letter-spacing:.12em;color:var(--ink);box-shadow:0 8px 24px rgba(43,61,76,.08)}

/* 10 Recognition */
.p10{grid-template-columns:45% 55%;gap:5vw}
.rec-copy h2{font-size:clamp(58px,6.4vw,102px);margin-bottom:18px}
.rec-copy .award-cn{font-family:"Songti SC","STSong",serif;font-size:clamp(36px,3.6vw,56px);margin:5px 0 18px}
.rec-media{height:72vh;position:relative}
.rec-stage{position:absolute;right:0;top:0;width:84%;height:54%}
.rec-cert{position:absolute;left:0;bottom:0;width:68%;height:52%;border:8px solid #E9EDF0;box-shadow:0 22px 58px rgba(43,61,76,.17);cursor:pointer}
.rec-cert:hover img{transform:scale(1.015)}

/* 11 Why */
.p11{grid-template-columns:48% 1fr;gap:6vw}
.why-copy h2{font-size:clamp(60px,6.6vw,108px);color:white;margin-bottom:20px}
.commitments{align-self:center}
.commit{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.commit b{font-size:13px;color:white} .commit span{font-size:11px;line-height:1.7;color:rgba(255,255,255,.66)}
.mantra{margin-top:30px;font-family:"Songti SC","STSong",serif;font-size:clamp(24px,2.4vw,38px);line-height:1.45;color:#F8D9E3}

/* 12 Ending */
.p12{place-items:center;text-align:center}
.end h2{font-size:clamp(58px,7vw,112px);margin:0 0 22px}
.end p{font-size:13px;letter-spacing:.08em;color:var(--muted);line-height:1.9}
.end .name{margin-top:42px;font-size:13px;font-weight:700}
.end .thanks{margin-top:28px;font-size:9px;letter-spacing:.35em;color:var(--burg)}

/* Bottom UI */
.footer{position:fixed;z-index:80;left:clamp(16px,4vw,64px);bottom:20px;font-size:7px;letter-spacing:.18em;opacity:.55}
.pager{position:fixed;z-index:80;right:clamp(16px,4vw,64px);bottom:20px;display:flex;align-items:center;gap:11px;font-size:8px;letter-spacing:.15em;opacity:.66}
.track{width:100px;height:1px;background:rgba(37,51,62,.18);overflow:hidden}
.theme-dark .track,.theme-photo .track,.theme-burg .track{background:rgba(255,255,255,.18)}
.track span{display:block;height:100%;background:var(--burg);width:6.666667%;transform:translateX(0);transition:transform var(--pageTime) var(--ease),background 1s var(--ease)}
.theme-burg .track span{background:#F3D6DF}
.next{position:fixed;z-index:82;right:clamp(16px,4vw,64px);top:50%;transform:translateY(-50%);width:43px;height:43px;border-radius:50%;border:1px solid rgba(37,51,62,.18);background:rgba(240,242,243,.5);backdrop-filter:blur(10px);display:grid;place-items:center;cursor:pointer;transition:transform var(--micro) var(--ease),border-color var(--micro) var(--ease),background 1s var(--ease)}
.theme-dark .next,.theme-photo .next,.theme-burg .next{border-color:rgba(255,255,255,.2);background:rgba(20,28,34,.32)}
.next:hover{transform:translateY(-50%) scale(1.05);border-color:var(--burg)}
.next i{width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translate(-1px,-1px);transition:transform .6s var(--ease)}

/* Side nav desktop */
.sidenav{position:fixed;z-index:81;left:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px}
.dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.18;border:0;padding:0;cursor:pointer;transition:height var(--micro) var(--ease),opacity var(--micro) var(--ease),border-radius var(--micro) var(--ease)}
.dot.on{height:20px;border-radius:3px;opacity:.8;background:var(--burg)}
.theme-dark .dot.on,.theme-photo .dot.on,.theme-burg .dot.on{background:#E1A0B3}

/* overlays */
.overlay{position:fixed;z-index:120;inset:0;background:rgba(23,31,37,.72);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .55s var(--ease),visibility 0s linear .55s;display:grid;place-items:center;padding:5vw}
.overlay.open{opacity:1;visibility:visible;transition-delay:0s}
.overlay-card{width:min(92vw,1050px);height:min(88vh,820px);background:#EEF1F3;transform:scale(.93) translateY(22px);opacity:0;transition:transform .92s var(--ease),opacity .78s var(--ease);position:relative;overflow:auto;overscroll-behavior:contain}
.overlay.open .overlay-card{transform:none;opacity:1}
.overlay-card img{width:100%;height:auto;display:block;object-fit:contain}
.close{position:absolute;right:16px;top:14px;z-index:4;width:38px;height:38px;border-radius:50%;border:1px solid rgba(37,51,62,.18);background:rgba(240,242,243,.8);cursor:pointer;font-size:18px}

@media(max-width:820px){
  .topbar{height:56px;padding:0 15px} .brand{font-size:7px} .brand i{width:19px} .header-index{font-size:7px}
  .page{padding:72px 17px 54px;display:block;overflow:hidden}
  .page-number{right:-4vw;top:9vh;font-size:66vw}
  .fudan-lines{left:34vw;top:18vh;right:auto;bottom:auto;width:35vw;height:34vh;opacity:.12}
  .fudan-label{right:8px;top:11vh;bottom:auto;font-size:6px;opacity:.32}
  .p1,.p2,.p3,.p4,.p5,.p6,.p7,.p8,.p9,.p10,.p11{display:block}
  .hero-copy{position:absolute;left:18px;top:12vh;width:76vw}
  .hero-copy h1{font-size:23vw} .hero-en{font-size:6px;margin-top:9px} .rule{width:112px;margin:15px 0 11px}
  .hero-role{font-size:16px} .motto{font-size:12.5px} .chips{gap:14px;margin-top:13px} .chip{font-size:8.5px}
  .chip-note{font-size:8.5px;max-width:63vw}
  .hero-portrait{position:absolute;right:-7vw;bottom:0;width:72vw;height:54vh}
  .about-portrait{position:absolute;left:16px;top:78px;width:43vw;height:29vh;margin:0}
  .about-copy{position:absolute;left:17px;top:41vh;width:calc(100vw - 34px)} .about-copy h2{font-size:39px;margin-bottom:11px}
  .about-copy .lead{font-size:12px;line-height:1.74} .info-grid{margin-top:14px} .info-item{padding:8px 0}
  .info-label{font-size:5.5px} .info-value{font-size:10px}
  .athlete-copy{position:absolute;left:18px;top:10vh;width:70vw;z-index:4} .athlete-copy h2{font-size:48px;margin-bottom:12px}
  .athlete-copy .lead{font-size:11px;line-height:1.7} .triad{gap:12px;margin-top:14px} .triad span{font-size:7px}
  .athlete-photo{position:absolute;left:0;right:0;bottom:0;height:58vh} .athlete-photo::before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(180deg,rgba(32,43,53,.85),transparent 42%)}
  .results-copy{position:absolute;left:18px;top:9vh;width:85vw;z-index:5} .results-copy h2{font-size:48px;margin:0 0 10px}
  .result-list{margin-top:12px} .result-row{grid-template-columns:78px 1fr;padding:9px 0} .result-year{font-size:9px} .result-title{font-size:10.5px} .result-sub{font-size:8.5px}
  .results-media{position:absolute;left:17px;right:17px;bottom:3vh;height:36vh;display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:1fr 1fr;gap:8px}
  .results-media .main{width:100%;height:100%;padding:6px}.results-media .small{width:100%;height:100%;padding:5px}.results-media .badge{width:100%;height:100%;padding:5px}
  .placeholder{position:absolute;left:17px;right:17px;top:10vh;height:37vh} .placeholder-inner b{font-size:24px}
  .leadership-copy{position:absolute;left:17px;right:17px;top:51vh} .leadership-copy h2{font-size:39px;margin-bottom:9px} .leadership-copy .lead{font-size:11px;line-height:1.65}
  .keyword-stack{margin-top:10px} .keyword-stack div{font-size:9px;padding:8px 0}
  .org-copy{position:absolute;left:17px;top:8vh;width:80vw;z-index:4} .org-copy h2{font-size:39px;margin-bottom:10px} .org-copy .lead{font-size:11px;line-height:1.65}
  .org-visual{position:absolute;left:17px;right:17px;bottom:4vh;height:48vh;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}
  .org-photo{position:static;height:auto;width:100%;padding:6px}.org-mini-row{display:flex}.org-mini{display:block;width:34%;height:11vh;padding:4px}.org-mini-caption{font-size:5.8px}
  .award-chip{margin-top:12px;font-size:8px;padding:7px 9px}
  .communication{position:absolute;left:17px;right:17px;top:11vh} .communication h2{font-size:48px;margin-bottom:16px} .communication .lead{font-size:11.5px;line-height:1.8}
  .quote-block{font-size:22px;margin-top:18px} .comm-side{position:absolute;left:17px;right:17px;bottom:9vh;border-left:0;border-top:1px solid var(--line);padding:16px 0 0}
  .comm-side p{font-size:10.5px;line-height:1.75}
  .project-copy{position:absolute;left:17px;right:17px;top:7vh;z-index:4} .project-copy h2{font-size:34px;margin-bottom:8px} .project-copy .lead{font-size:10.5px;line-height:1.6}
  .project-flow{display:none} .project-link{margin-top:9px;font-size:7.5px}
  .project-gallery{position:absolute;left:9px;right:9px;bottom:3vh;height:55vh;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:center}
  .phone{border-radius:10px;padding:4px;height:88%!important;transform:none!important}
  .phone img{object-fit:contain!important}
  .practice-copy{position:absolute;left:17px;right:17px;top:8vh;z-index:4} .practice-copy h2{font-size:34px;margin-bottom:8px} .practice-copy .lead{font-size:10.5px;line-height:1.6}
  .practice-list{display:none}.practice-collage{position:absolute;left:14px;right:14px;bottom:3vh;height:55vh;display:grid;grid-template-columns:1.06fr .94fr;grid-template-rows:1fr 1fr;gap:7px}
  .practice-collage .demo,.practice-collage .interview,.practice-collage .gala{padding:5px}
  .practice-proof{font-size:5.8px;padding:5px 6px;margin:0 0 6px 6px}
  .rec-copy{position:absolute;left:17px;right:17px;top:8vh;z-index:5} .rec-copy h2{font-size:48px;margin-bottom:3px} .rec-copy .award-cn{font-size:31px;margin:0 0 7px} .rec-copy .lead{font-size:10px;line-height:1.6}
  .rec-media{position:absolute;left:15px;right:15px;bottom:4vh;height:51vh}
  .why-copy{position:absolute;left:17px;right:17px;top:9vh} .why-copy h2{font-size:52px;margin-bottom:10px} .why-copy .lead{font-size:11px;line-height:1.65}
  .commitments{position:absolute;left:17px;right:17px;top:40vh} .commit{grid-template-columns:100px 1fr;padding:9px 0;gap:10px} .commit b{font-size:9px} .commit span{font-size:8px}
  .mantra{margin-top:14px;font-size:20px}
  .end{position:absolute;left:20px;right:20px;top:50%;transform:translateY(-50%)} .end h2{font-size:50px}
  .footer{left:15px;bottom:12px;font-size:5.5px} .pager{right:15px;bottom:12px;font-size:6.5px} .track{width:63px}
  .next{right:15px;top:auto;bottom:45px;width:38px;height:38px;transform:none} .next:hover{transform:scale(1.04)}
  .sidenav{display:none}
}

/* =========================================================
   07–08 / EVENT OPERATIONS CASE — integrated from the
   confirmed parent-meeting case-site into the profile site.
   ========================================================= */
.event-ops-page{
  grid-template-columns:42% 58%;
  gap:4.5vw;
}
.event-ops-copy{
  position:relative;
  z-index:5;
  align-self:center;
}
.event-ops-copy h2{
  font-size:clamp(44px,4.7vw,76px);
  margin-bottom:18px;
}
.event-eventname{
  margin-top:4px;
  font-size:15px;
  font-weight:750;
  color:#153E6C;
}
.event-ops-desc{
  margin-top:10px;
  max-width:46ch;
  color:#53667A;
  font-size:12px;
  line-height:1.85;
}
.event-ops-quote{
  margin-top:18px;
  padding:13px 0 13px 24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:#234F7C;
  font-family:"Songti SC","STSong",serif;
  font-size:16px;
  line-height:1.65;
  position:relative;
}
.event-ops-quote::before{
  content:"“";
  position:absolute;
  left:0;
  top:4px;
  font:700 36px/1 Georgia,serif;
  color:rgba(12,77,152,.28);
}
.event-ops-quote b{color:#9A2749}
.event-flow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin-top:18px;
}
.event-step{
  min-height:82px;
  padding:10px 8px 9px;
  background:rgba(255,255,255,.30);
  border:1px solid rgba(12,77,152,.08);
  transition:transform .7s var(--ease),background .7s var(--ease);
}
.event-step:hover{transform:translateY(-4px);background:rgba(255,255,255,.52)}
.event-step-no{
  width:27px;height:27px;border-radius:50%;display:grid;place-items:center;
  background:#0C4D98;color:#fff;font-size:9px;font-weight:800;margin-bottom:6px;
}
.event-step b{display:block;color:#153E6C;font-size:8px;line-height:1.4}
.event-step small{display:block;color:#718196;font-size:6.5px;line-height:1.45;margin-top:4px}
.event-time{
  margin-top:18px;
  padding-top:13px;
  border-top:1px solid var(--line);
}
.event-time-title{font-size:10px;letter-spacing:.12em;color:#18518D;font-weight:750;margin-bottom:12px}
.event-time-row{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.event-time-point{text-align:center;color:#65768A;font-size:6.4px;line-height:1.5}
.event-time-point::before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:#0C4D98;margin:0 auto 5px;box-shadow:0 0 0 4px rgba(12,77,152,.07)}
.event-time-point b{display:block;color:#0C4D98;font-size:8px}

.event-docs{
  align-self:center;
  min-width:0;
  position:relative;
  height:75vh;
}
.event-doc-head{
  display:flex;
  gap:11px;
  align-items:flex-end;
  color:#0C4D98;
  margin:0 0 7px 3%;
  position:relative;
  z-index:8;
}
.event-doc-head .big{font:700 46px/1 Georgia,serif}
.event-doc-head b{font-size:15px}
.event-doc-head span{display:block;color:var(--muted);font-size:7px;letter-spacing:.16em;margin-top:3px}
.event-doc-stage{
  height:calc(100% - 56px);
  position:relative;
  perspective:1800px;
}
.event-doc-card{
  position:absolute;
  top:50%;left:50%;
  width:min(29vw,430px);
  height:min(63vh,585px);
  padding:9px 9px 49px;
  background:#F6F8FB;
  border:1px solid rgba(8,26,49,.10);
  box-shadow:0 28px 72px rgba(30,48,67,.18);
  cursor:pointer;
  overflow:hidden;
  transition:transform 1.28s var(--ease),opacity 1.10s var(--ease),filter 1.10s var(--ease),box-shadow 1.28s var(--ease);
  will-change:transform,opacity,filter;
}
.event-doc-card img{display:block;width:100%;height:100%;object-fit:contain;background:white}
.event-doc-card[data-depth="0"]{z-index:5;transform:translate(-50%,-50%) translateX(-24%) rotate(-1deg) scale(1);opacity:1}
.event-doc-card[data-depth="1"]{z-index:4;transform:translate(-50%,-50%) translateX(24%) translateY(2%) rotate(1.7deg) scale(.94);opacity:.84;filter:saturate(.82)}
.event-doc-card[data-depth="2"]{z-index:3;transform:translate(-50%,-50%) translateX(58%) translateY(5%) rotate(3deg) scale(.87);opacity:.60;filter:saturate(.69)}
.event-doc-card[data-depth="0"]:hover{transform:translate(-50%,-50%) translateX(-24%) translateY(-1%) rotate(-.4deg) scale(1.012)}
.event-doc-cap{
  position:absolute;left:9px;right:9px;bottom:0;height:49px;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:rgba(248,250,253,.97);border-top:1px solid rgba(8,26,49,.10);
}
.event-doc-cap span{font-size:6.5px;letter-spacing:.13em;color:#65768A}
.event-doc-cap b{font-size:10px;color:#163F6E;text-align:right}
.event-doc-cap em{font-style:normal;color:#B55F38;font-size:7px}
.event-doc-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:-1px;position:relative;z-index:8}
.event-doc-controls i{display:block;width:15px;height:1px;background:rgba(37,51,62,.18);transition:width .85s var(--ease),background .85s var(--ease)}
.event-doc-controls i.on{width:36px;background:#0C4D98}
.event-doc-count{font-size:8px;letter-spacing:.12em;color:var(--muted);margin-left:5px}

.event-proof-page{
  grid-template-columns:35% 65%;
  gap:5vw;
}
.event-proof-copy{position:relative;z-index:5;align-self:center}
.event-proof-copy h2{font-size:clamp(46px,5.2vw,84px);margin-bottom:20px}
.event-proof-note{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  color:#53667A;
  font-size:11px;
  line-height:1.9;
}
.event-proof-note b{color:#153E6C}
.event-resp{
  margin-top:22px;
  padding:18px 18px 16px;
  background:rgba(12,77,152,.055);
  border:1px solid rgba(12,77,152,.10);
}
.event-resp span{font-size:7px;letter-spacing:.16em;color:#6A7C90}
.event-resp strong{display:block;color:#0D447F;font-size:20px;line-height:1.52;margin-top:8px}
.event-resp p{font-size:10px;color:#657589;line-height:1.76;margin:8px 0 0}
.event-proof-media{
  height:72vh;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:16px;
  align-items:center;
}
.event-proof-photo{
  position:relative;
  overflow:hidden;
  background:#EEF3F7;
  border:10px solid rgba(247,249,251,.72);
  box-shadow:0 22px 58px rgba(43,61,76,.13);
  transition:transform .9s var(--ease),box-shadow .9s var(--ease);
}
.event-proof-photo:hover{transform:translateY(-5px);box-shadow:0 30px 70px rgba(43,61,76,.18)}
.event-proof-photo.scene{height:64vh}
.event-proof-photo.screen{height:53vh;align-self:end;margin-bottom:4vh}
.event-proof-photo img{width:100%;height:100%;display:block;object-fit:cover}
.event-proof-photo.screen img{object-fit:contain;background:#151B25}
.event-proof-label{
  position:absolute;left:10px;bottom:10px;
  background:rgba(3,23,48,.84);color:white;padding:8px 10px;
  font-size:7px;letter-spacing:.08em;backdrop-filter:blur(7px);
}

/* give later pages a Fudan line/label treatment after insertion */
#app.page-13 .fudan-lines,#app.page-14 .fudan-lines{left:39vw;top:16vh;opacity:.075}
#app.page-13 .fudan-label,#app.page-14 .fudan-label{opacity:.12}

@media(max-width:980px){
  .event-ops-page,.event-proof-page{grid-template-columns:1fr;gap:16px}
  .event-ops-copy,.event-proof-copy{align-self:start}
  .event-docs{height:54vh;min-height:430px}
  .event-proof-media{height:48vh;min-height:390px}
}
@media(max-width:820px){
  .event-ops-page,.event-proof-page{display:block;overflow:hidden;padding-left:17px;padding-right:17px}
  .event-ops-copy h2{font-size:36px;margin-bottom:10px}
  .event-eventname{font-size:11px}
  .event-ops-desc{font-size:9px;line-height:1.6;margin-top:6px;max-width:88vw}
  .event-ops-quote{font-size:11px;line-height:1.55;margin-top:9px;padding:8px 0 8px 19px}
  .event-ops-quote::before{font-size:28px}
  .event-flow{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:9px}
  .event-step{min-height:64px;padding:7px 5px 6px}
  .event-step-no{width:20px;height:20px;font-size:7px;margin-bottom:4px}
  .event-step b{font-size:5.4px}.event-step small{font-size:4.7px}
  .event-time{margin-top:8px;padding-top:8px}.event-time-title{font-size:7px;margin-bottom:7px}.event-time-point{font-size:4.5px}.event-time-point b{font-size:6px}
  .event-docs{height:43vh;min-height:330px;margin-top:4px}
  .event-doc-head{margin-left:2px}.event-doc-head .big{font-size:32px}.event-doc-head b{font-size:10px}.event-doc-head span{font-size:5px}
  .event-doc-stage{height:calc(100% - 40px)}
  .event-doc-card{width:min(72vw,330px);height:min(36vh,315px);padding:6px 6px 35px}
  .event-doc-card[data-depth="0"]{transform:translate(-50%,-50%) translateX(-5%) rotate(-.7deg) scale(1)}
  .event-doc-card[data-depth="1"]{transform:translate(-50%,-50%) translateX(11%) translateY(3%) rotate(1.2deg) scale(.955)}
  .event-doc-card[data-depth="2"]{transform:translate(-50%,-50%) translateX(21%) translateY(6%) rotate(2.1deg) scale(.91)}
  .event-doc-cap{left:6px;right:6px;height:35px}.event-doc-cap span{font-size:4.4px}.event-doc-cap b{font-size:6.5px}.event-doc-cap em{font-size:5px}
  .event-proof-copy h2{font-size:36px;margin-bottom:9px}
  .event-proof-copy .lead{font-size:9px;line-height:1.6}
  .event-proof-note{font-size:7.5px;line-height:1.65;margin-top:8px;padding-top:8px}
  .event-resp{margin-top:9px;padding:10px}.event-resp span{font-size:5px}.event-resp strong{font-size:14px;line-height:1.42}.event-resp p{font-size:7px;line-height:1.55}
  .event-proof-media{height:43vh;min-height:320px;margin-top:10px;gap:7px}
  .event-proof-photo{border-width:6px}.event-proof-photo.scene{height:39vh}.event-proof-photo.screen{height:31vh;margin-bottom:2vh}
  .event-proof-label{left:6px;bottom:6px;padding:5px 6px;font-size:5px}
}



/* =========================================================
   V6 GLOBAL VISUAL SYSTEM — DEEP BLUE / COOL WHITE / COPPER GOLD
   Unified from the confirmed Event Operations deep-blue palette.
   Content, layout, motion and interactions remain unchanged.
   ========================================================= */
:root{
  --deep:#061A37;
  --deep2:#0B2F66;
  --blue:#0C4D98;
  --blue2:#2F72B8;
  --paper:#EEF4FB;
  --paper2:#F8FBFF;
  --ink:#F4F8FC;
  --ink2:#CBD9E8;
  --muted:#8FA6BD;
  --burg:#2F72B8;
  --burg2:#6E9FD1;
  --accent:#9A2749;
  --gold:#B66C18;
  --dark:#061A37;
  --dark2:#041226;
  --white:#F8FBFF;
  --line:rgba(232,242,252,.14);
}
html,body{background:#061A37}
body{color:var(--ink)}
#app,
#app.theme-light,
#app.theme-paper,
#app.theme-dark,
#app.theme-photo,
#app.theme-burg{
  background:linear-gradient(135deg,#061A37 0%,#0B2B59 48%,#2F5F94 100%)!important;
  color:var(--ink)!important;
}
#app.theme-paper{background:linear-gradient(135deg,#071D3D 0%,#0A2E61 52%,#285986 100%)!important}
#app.theme-photo{background:linear-gradient(135deg,#04162F 0%,#092A58 50%,#244E78 100%)!important}
#app::before{
  content:"";position:absolute;inset:-14%;z-index:0;pointer-events:none;
  background:radial-gradient(circle at 68% 12%,rgba(133,177,230,.20),transparent 26%),radial-gradient(circle at 18% 74%,rgba(69,111,165,.16),transparent 32%);
  filter:blur(18px);animation:v6BlueBreath 13s ease-in-out infinite alternate;
}
@keyframes v6BlueBreath{from{transform:scale(1);opacity:.82}to{transform:scale(1.055) translateY(-1.5%);opacity:1}}
.texture{mix-blend-mode:screen!important;opacity:.028!important;background-image:radial-gradient(rgba(255,255,255,.22) .32px,transparent .32px)!important}
.fudan-lines{opacity:.11!important}
.fudan-lines svg g{stroke:#9BBCE0!important}
.fudan-label{color:rgba(228,240,252,.26)!important}

/* Navigation / global UI */
.topbar{color:rgba(240,247,255,.88)!important}
.scrolled .topbar{background:rgba(4,20,43,.24);border-bottom-color:rgba(255,255,255,.08)}
.brand i{background:var(--blue2)!important}
.header-index,.footer,.pager{color:rgba(235,244,253,.62)!important}
.track{background:rgba(235,244,253,.22)!important}
.track span{background:var(--blue2)!important}
.next{color:#EFF6FD;border-color:rgba(235,244,253,.22)!important;background:rgba(4,20,43,.34)!important}
.next:hover{border-color:var(--blue2)!important;background:rgba(10,45,92,.56)!important}
.dot{color:#EAF3FC}.dot.on{background:var(--blue2)!important}
.page-number{color:rgba(143,188,235,.055)!important}

/* Typography */
.display,
.athlete-copy h2,.results-copy h2,.why-copy h2,
.about-copy h2,.leadership-copy h2,.org-copy h2,.communication h2,.project-copy h2,.practice-copy h2,.rec-copy h2,.event-ops-copy h2,.event-proof-copy h2,.end h2{
  color:#F8FBFF!important;
}
.kicker{color:#8EBBE7!important}
.lead,
.theme-dark .lead,.theme-photo .lead,.theme-burg .lead,
#app.page-3 .lead,#app.page-4 .lead,#app.page-5 .lead,#app.page-7 .lead,#app.page-9 .lead,#app.page-11 .lead{
  color:#C8D7E7!important;
}
.smallcaps,.theme-dark .smallcaps,.theme-photo .smallcaps,.theme-burg .smallcaps{color:#8FA6BD!important}
.hero-en,.motto{color:#AFC1D3!important}
.rule{background:rgba(226,239,252,.46)!important}
.hero-role{color:#F7FBFF}

/* Chips / lines / list systems */
.chip{color:#9DB2C7!important}.chip::after{background:var(--blue2)!important}
.chip:hover,.chip.on{color:#D9EBFB!important}
.chip-note{color:#91A8BE!important}
.info-grid,.result-list,.result-row,.keyword-stack div,.flow-row,.practice-item,.commit,.comm-side{border-color:rgba(232,242,252,.14)!important}
.info-label{color:#8FA6BD!important}.info-value{color:#F5FAFF!important}
.triad span{color:#D2E0EE!important;border-bottom-color:rgba(92,151,211,.68)!important}
.result-year{color:#D09A55!important}.result-title{color:#F7FBFF!important}.result-sub{color:#9FB2C6!important}
.keyword-stack div{color:#DDE8F3!important}
.award-chip{border-color:rgba(182,108,24,.62)!important;color:#D19A56!important;background:rgba(182,108,24,.06)}
.quote-block{color:#D1A268!important}
.flow-key{color:#8DB9E5!important}.flow-val{color:#CBD9E8!important}
.project-link{color:#A9C9EA!important;border-bottom-color:#4D83BA!important}
.practice-item b{color:#F7FBFF!important}.practice-item span{color:#96ACC1!important}
.commit b{color:#F7FBFF!important}.commit span{color:#9FB2C6!important}.mantra{color:#D4A66D!important}
.end p{color:#9FB2C6!important}.end .name{color:#F7FBFF!important}.end .thanks{color:#8DB9E5!important}

/* Photos and light surfaces */
.photo{background:#DDE8F2!important}
.photo.evidence{background:rgba(238,244,251,.08)!important}
.hero-portrait,.about-portrait,.athlete-photo,.results-media .photo,.org-photo,.org-mini,.practice-collage .photo,.rec-stage{
  box-shadow:0 28px 76px rgba(0,10,28,.30)!important;
}
.placeholder{border-color:rgba(230,241,252,.20)!important;background:rgba(238,244,251,.055)!important}
.placeholder::before{border-color:rgba(230,241,252,.18)!important}
.placeholder-inner b{color:#F7FBFF!important}.placeholder-inner span{color:#93A9BF!important}
.phone{background:#F4F7FA!important;box-shadow:0 20px 50px rgba(0,13,34,.30)!important}
.phone img{background:#F4F7FA!important}
.practice-proof{background:rgba(242,247,252,.94)!important;color:#163F6E!important;box-shadow:0 10px 30px rgba(0,15,36,.22)!important}
.rec-cert{border-color:#E5EDF5!important;box-shadow:0 24px 62px rgba(0,15,36,.28)!important}

/* Event operations pages — preserve the confirmed blue language */
.event-eventname{color:#A8C9EA!important}
.event-ops-desc{color:#AABED1!important}
.event-ops-quote{color:#D6E4F1!important;border-color:rgba(231,242,252,.14)!important}
.event-ops-quote::before{color:rgba(133,177,230,.46)!important}
.event-ops-quote b{color:#D2A065!important}
.event-step{background:rgba(238,244,251,.075)!important;border-color:rgba(133,177,230,.15)!important}
.event-step:hover{background:rgba(238,244,251,.13)!important}
.event-step-no{background:#2F72B8!important}
.event-step b{color:#EAF4FD!important}.event-step small{color:#91A8BE!important}
.event-time{border-color:rgba(231,242,252,.14)!important}
.event-time-title{color:#A8C9EA!important}.event-time-point{color:#8FA6BD!important}
.event-time-point::before{background:#2F72B8!important;box-shadow:0 0 0 4px rgba(47,114,184,.14)!important}
.event-time-point b{color:#B8D4EF!important}
.event-doc-head{color:#B8D4EF!important}.event-doc-head span{color:#8FA6BD!important}
.event-doc-controls i{background:rgba(231,242,252,.24)!important}.event-doc-controls i.on{background:#79A9D8!important}
.event-doc-count{color:#9BB0C4!important}
.event-proof-note{color:#AABED1!important;border-color:rgba(231,242,252,.14)!important}.event-proof-note b{color:#C6DDF2!important}
.event-resp{background:rgba(47,114,184,.10)!important;border-color:rgba(133,177,230,.18)!important}
.event-resp span{color:#8FA6BD!important}.event-resp strong{color:#C2DCF4!important}.event-resp p{color:#A1B5C9!important}
.event-proof-photo{background:#DCE8F3!important;border-color:rgba(246,250,255,.84)!important;box-shadow:0 24px 62px rgba(0,13,34,.28)!important}
.event-proof-photo:hover{box-shadow:0 34px 78px rgba(0,13,34,.36)!important}

/* Modal remains light for document/image readability */
.overlay{background:rgba(2,13,29,.78)!important}
.overlay-card{background:#EEF4FB!important}
.close{color:#123A68!important;border-color:rgba(8,26,49,.18)!important;background:rgba(248,251,255,.90)!important}

/* Mobile contrast correction */
@media(max-width:820px){
  .athlete-photo::before{background:linear-gradient(180deg,rgba(4,20,43,.92),rgba(4,20,43,.10) 46%,transparent 70%)!important}
  .comm-side{border-top-color:rgba(232,242,252,.14)!important}
}


/* =========================================================
   V7 — Long headline two-line fit correction
   Keep author-defined <br> as the only line break on key pages.
   ========================================================= */
.p3 .athlete-copy h2{
  font-size:clamp(48px,5.2vw,78px)!important;
  line-height:1.06!important;
}
.p8 .project-copy h2{
  font-size:clamp(34px,4.05vw,62px)!important;
  line-height:1.08!important;
}
.p3 .athlete-copy .reveal-heading__inner,
.p8 .project-copy .reveal-heading__inner{
  white-space:nowrap;
}
@media(max-width:820px){
  .p3 .athlete-copy h2{font-size:clamp(30px,8.5vw,36px)!important;line-height:1.08!important}
  .p8 .project-copy h2{font-size:clamp(27px,7.5vw,32px)!important;line-height:1.10!important}
}


/* =========================================================
   V8 / PAGE 11 — OFFICIAL TEXTBOOK PROFESSIONAL PRACTICE
   Approved 1-large + 2-small evidence layout.
   ========================================================= */
.textbook-practice-page{grid-template-columns:minmax(330px,.72fr) minmax(650px,1.35fr);gap:clamp(28px,4vw,64px);align-items:center}
.textbook-copy{position:relative;z-index:5;align-self:center;max-width:570px}
.textbook-copy h2{font-size:clamp(48px,5.2vw,82px);line-height:1.03;margin:0 0 22px;color:#F7FAFF!important}
.textbook-copy .lead{max-width:41ch;color:#C7D8EA!important}
.textbook-proof{margin-top:25px;border-top:1px solid rgba(208,227,247,.18);border-bottom:1px solid rgba(208,227,247,.18);padding:17px 0}
.textbook-proof-title{font-size:13px;font-weight:800;color:#F7FAFF;line-height:1.65}
.textbook-proof-meta{margin-top:5px;font-size:10px;line-height:1.75;color:#93AAC2}
.textbook-tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}
.textbook-tags span{padding:8px 10px;border:1px solid rgba(115,168,222,.26);background:rgba(255,255,255,.035);font-size:9px;letter-spacing:.12em;color:#BDD5ED}
.textbook-note{margin-top:18px;font-size:10px;line-height:1.8;color:#8FA6BD}
.textbook-note b{color:#D39A51;font-weight:750}
.textbook-gallery{height:min(72vh,700px);display:grid;grid-template-columns:1.08fr .92fr;grid-template-rows:1fr 1fr;gap:16px;align-self:center;position:relative;z-index:4}
.textbook-card{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(244,248,252,.98),rgba(225,235,246,.95));border:1px solid rgba(255,255,255,.34);box-shadow:0 24px 65px rgba(0,12,30,.26);cursor:pointer;transition:transform .72s var(--ease),box-shadow .72s var(--ease),border-color .72s var(--ease)}
.textbook-card:hover{transform:translateY(-5px);box-shadow:0 32px 78px rgba(0,12,30,.36);border-color:rgba(185,214,244,.58)}
.textbook-cover{grid-row:1 / span 2;min-width:0}
.textbook-media{position:absolute;inset:0 0 54px;background:#F8FBFF;overflow:hidden}
.textbook-media img{width:100%;height:100%;object-fit:contain;display:block;transition:transform 1s var(--ease)}
.textbook-card:hover .textbook-media img{transform:scale(1.018)}
.textbook-cap{position:absolute;left:0;right:0;bottom:0;height:54px;background:rgba(246,249,253,.97);border-top:1px solid rgba(7,30,58,.10);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 13px;color:#173F6D}
.textbook-cap b{font-size:11px}.textbook-cap span{font-size:7px;letter-spacing:.13em;color:#698099}.textbook-cap em{font-style:normal;font-size:8px;color:#A45D23;white-space:nowrap}
.textbook-badge{position:absolute;left:12px;top:12px;z-index:3;padding:7px 8px;background:rgba(3,23,48,.82);backdrop-filter:blur(8px);font-size:7px;letter-spacing:.15em;color:white}
.textbook-zoom{position:absolute;right:10px;top:10px;z-index:3;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(3,23,48,.74);color:white;font-size:14px;opacity:0;transform:scale(.9);transition:.35s ease}
.textbook-card:hover .textbook-zoom{opacity:1;transform:none}
.page .textbook-proof,.page .textbook-tags,.page .textbook-note,.page .textbook-gallery{opacity:0;transform:translate3d(0,18px,0)}
.page.active .textbook-proof,.page.active .textbook-tags,.page.active .textbook-note,.page.active .textbook-gallery{animation:secondaryRise .94s var(--ease) .68s forwards}
@media(max-width:980px){.textbook-practice-page{grid-template-columns:38% 62%;gap:3vw}.textbook-gallery{height:66vh}.textbook-copy h2{font-size:clamp(42px,5vw,68px)}}
@media(max-width:820px){
  .textbook-practice-page{display:block;overflow:hidden;padding-left:17px;padding-right:17px}
  .textbook-copy{position:absolute;left:17px;right:17px;top:7.5vh;max-width:none;z-index:5}
  .textbook-copy h2{font-size:34px;margin-bottom:8px;line-height:1.05}
  .textbook-copy .lead{font-size:9.6px;line-height:1.58;max-width:88vw}
  .textbook-proof{margin-top:8px;padding:7px 0}.textbook-proof-title{font-size:8.5px}.textbook-proof-meta{font-size:6.5px;line-height:1.5;margin-top:2px}
  .textbook-tags{margin-top:7px;gap:4px}.textbook-tags span{font-size:5.4px;padding:4px 5px;letter-spacing:.07em}
  .textbook-note{display:none}
  .textbook-gallery{position:absolute;left:12px;right:12px;bottom:3.2vh;height:48vh;display:grid;grid-template-columns:1.08fr .92fr;grid-template-rows:1fr 1fr;gap:7px}
  .textbook-media{bottom:39px}.textbook-cap{height:39px;padding:0 7px}.textbook-cap b{font-size:7px}.textbook-cap span{font-size:4.7px}.textbook-cap em{font-size:5.2px}
  .textbook-badge{left:6px;top:6px;padding:4px 5px;font-size:4.6px}.textbook-zoom{display:none}
}


/* 12 Media & Stage */
.media-stage-page{grid-template-columns:38% 62%;gap:4.8vw}
.media-stage-copy{position:relative;z-index:6;align-self:center;max-width:500px}
.media-stage-copy h2{font-size:clamp(46px,5.1vw,82px);margin-bottom:18px}
.media-stage-copy .lead{max-width:34ch}
.media-stage-list{margin-top:20px}
.media-stage-item{padding:14px 0;border-bottom:1px solid var(--line)}
.media-stage-item small{display:block;font-size:8px;letter-spacing:.18em;color:#7EA9D6;margin-bottom:6px}
.media-stage-item b{display:block;font-size:14px;line-height:1.45;color:#F7FBFF}
.media-stage-item span{display:block;margin-top:5px;font-size:10.5px;line-height:1.7;color:rgba(230,241,253,.62)}
.media-stage-hint{margin-top:16px;font-size:8px;letter-spacing:.16em;color:rgba(214,229,245,.46)}
.media-stage-visual{position:relative;height:78vh;min-height:560px;perspective:1800px;align-self:center}
.media-stage-stack{position:absolute;inset:0}
.media-stage-card{position:absolute;right:2%;top:50%;width:min(52vw,860px);height:min(70vh,720px);transform-origin:50% 50%;overflow:hidden;background:#0B2648;border:1px solid rgba(255,255,255,.17);box-shadow:0 30px 90px rgba(0,8,24,.34);transition:transform 1.32s var(--ease),opacity 1.1s var(--ease),filter 1.1s var(--ease),box-shadow 1.32s var(--ease);will-change:transform,opacity,filter}
.media-stage-card img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.94) contrast(1.02);transition:transform 1.4s var(--ease)}
.media-stage-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,15,34,.01) 45%,rgba(2,16,38,.24) 68%,rgba(2,14,34,.88) 100%);pointer-events:none}
.media-stage-card.interview{z-index:4;transform:translateY(-50%) translateX(-4.5%) rotate(-.65deg) scale(1);opacity:1}
.media-stage-card.gala{z-index:2;transform:translateY(-50%) translateX(3.8%) translateY(3.4%) rotate(2deg) scale(.95);opacity:.62;filter:saturate(.72) brightness(.8)}
.media-stage-stack.show-gala .media-stage-card.interview{z-index:2;transform:translateY(-50%) translateX(-10%) translateY(-2.5%) rotate(-2deg) scale(.94);opacity:.58;filter:saturate(.68) brightness(.72)}
.media-stage-stack.show-gala .media-stage-card.gala{z-index:5;transform:translateY(-50%) translateX(-2.2%) rotate(.35deg) scale(1);opacity:1;filter:none;box-shadow:0 42px 112px rgba(0,6,20,.44)}
.media-stage-badge{position:absolute;z-index:5;left:20px;top:18px;padding:9px 11px;background:rgba(3,22,48,.76);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);font:700 10px/1.2 Arial,sans-serif;letter-spacing:.18em}
.media-stage-caption{position:absolute;z-index:5;left:28px;right:28px;bottom:23px}
.media-stage-caption small{display:block;font-size:8px;letter-spacing:.22em;color:#A7CAEB;margin-bottom:8px}
.media-stage-caption strong{display:block;font-family:"Songti SC","STSong",serif;font-size:clamp(25px,2.2vw,38px);line-height:1.24;color:white}
.media-stage-caption p{margin:7px 0 0;font-size:10px;line-height:1.65;color:rgba(234,243,252,.68)}
#app.page-12 .fudan-lines{left:39vw;top:16vh;opacity:.078}
#app.page-12 .fudan-label{opacity:.12}
#app.page-13 .fudan-lines,#app.page-14 .fudan-lines,#app.page-15 .fudan-lines{left:39vw;top:16vh;opacity:.075}
#app.page-13 .fudan-label,#app.page-14 .fudan-label,#app.page-15 .fudan-label{opacity:.12}
@media(max-width:820px){
  .media-stage-page{display:block}
  .media-stage-copy{position:absolute;left:17px;top:8vh;width:38vw;max-width:none;z-index:12}
  .media-stage-copy h2{font-size:34px;margin-bottom:9px}
  .media-stage-copy .lead{font-size:9px;line-height:1.6;margin-top:10px}
  .media-stage-list{margin-top:10px}
  .media-stage-item{padding:8px 0}
  .media-stage-item small{font-size:5.5px}
  .media-stage-item b{font-size:9px}
  .media-stage-item span{font-size:6.8px;line-height:1.45}
  .media-stage-hint{font-size:5.5px;margin-top:9px}
  .media-stage-visual{position:absolute;right:8px;top:50%;transform:translateY(-48%);width:63vw;height:72vh;min-height:0}
  .media-stage-card{width:61vw;height:58vh;right:0}
  .media-stage-badge{left:10px;top:10px;font-size:6px;padding:6px 7px}
  .media-stage-caption{left:13px;right:13px;bottom:12px}
  .media-stage-caption small{font-size:5.3px}
  .media-stage-caption strong{font-size:18px}
  .media-stage-caption p{font-size:6.6px}
}


/* FINAL DESKTOP / PAGE 05 LEADERSHIP */
.p5{grid-template-columns:48% 52%;gap:5vw}
.p5 .leadership-training-photo{height:68vh;border:0;background:#0B2648;box-shadow:0 28px 76px rgba(0,10,30,.24);overflow:hidden;clip-path:polygon(0 4%,96% 0,100% 96%,5% 100%,0 92%)}
.p5 .leadership-training-photo::before{display:none}
.p5 .leadership-training-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;filter:saturate(.92) contrast(1.02);transition:transform 1.4s var(--ease)}
.p5 .leadership-training-photo:hover img{transform:scale(1.025)}
.p5 .leadership-copy h2{font-size:clamp(40px,4.35vw,70px);line-height:1.08;margin-bottom:18px}
.p5 .leadership-copy .reveal-heading__line{white-space:nowrap}
@media(max-width:1100px) and (min-width:821px){
  .p5{grid-template-columns:46% 54%;gap:4vw}
  .p5 .leadership-copy h2{font-size:clamp(36px,4.1vw,58px)}
}



/* =========================================================
   V12 / PAGE 02 — 2026 ADMISSION PERFORMANCE
   ========================================================= */
.profile-admission-page{
  grid-template-columns:34% 1fr!important;
  gap:6.5vw!important;
  align-items:center!important;
}
.profile-admission-photo{
  height:64vh!important;
  align-self:center!important;
  margin-top:0!important;
  clip-path:polygon(0 7%,92% 0,100% 93%,10% 100%,0 90%)!important;
  box-shadow:0 28px 70px rgba(6,26,55,.14)!important;
}
.profile-admission-photo img{
  object-position:center 22%!important;
  filter:saturate(.84) contrast(.98)!important;
}
.profile-admission-copy{
  align-self:center!important;
  max-width:980px;
}
.profile-admission-heading{
  font-size:clamp(44px,4.9vw,78px)!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
  margin:0 0 20px!important;
}
.profile-admission-lead{
  font-size:clamp(14px,1.05vw,17px)!important;
  line-height:1.84!important;
  margin:0!important;
  max-width:900px!important;
}
.profile-admission-lead b{color:var(--ink)!important}
.profile-admission-wrap{margin-top:22px}
.profile-admission-label{
  font-size:9px;letter-spacing:.22em;color:#7b8ea2;
  font-weight:800;margin-bottom:9px
}
.profile-admission-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:12px
}
.profile-stat{
  min-height:120px;border-radius:16px;padding:17px 21px;
  position:relative;overflow:hidden;border:1px solid rgba(11,47,102,.12)
}
.profile-stat-primary{
  background:linear-gradient(135deg,#061A37,#0B2F66 60%,#0C4D98);
  color:#fff;box-shadow:0 14px 36px rgba(6,26,55,.16)
}
.profile-stat-secondary{
  background:rgba(255,255,255,.76);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)
}
.profile-stat-top{display:flex;align-items:baseline;gap:12px}
.profile-stat-big{
  font-family:Georgia,"Times New Roman",serif;font-weight:800;
  font-size:clamp(46px,4.3vw,68px);line-height:.95;letter-spacing:-.05em
}
.profile-stat-primary .profile-stat-big{color:#fff}
.profile-stat-secondary .profile-stat-big{color:#0C4D98}
.profile-stat-tag{
  font-size:10px;letter-spacing:.13em;font-weight:800;opacity:.76
}
.profile-stat-title{margin-top:8px;font-size:14px;font-weight:800}
.profile-stat-sub{margin-top:4px;font-size:10.5px;line-height:1.55;opacity:.68}
.profile-stat-primary:after{
  content:"2026";position:absolute;right:16px;bottom:4px;
  font-size:52px;font-weight:900;letter-spacing:-.05em;
  color:rgba(255,255,255,.055)
}
.profile-info-grid{
  margin-top:17px!important;
}
.profile-info-grid .info-item{padding:10px 0!important}
.profile-info-grid .info-label{font-size:7.5px!important}
.profile-info-grid .info-value{font-size:12px!important}
.profile-admission-closing{
  margin-top:11px;font-size:10px;line-height:1.6;color:#657586;
  padding-left:11px;border-left:2px solid rgba(12,77,152,.4)
}



/* V4 recognition hierarchy adjustment */
.recognition-major-title{
  font-size:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  color:inherit!important;
  margin:inherit!important;
}



/* V5 — Annual athlete award uses the exact same visual hierarchy as the headmaster award */
.annual-athlete-major-title{
  font-size:inherit;
  font-weight:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  color:inherit;
}
