:root {
  --paper: #f5f1e8;
  --paper-deep: #ebe4d7;
  --ink: #111411;
  --muted: #6e6d66;
  --line: #d6cfc2;
  --red: #c62d22;
  --green: #17533c;
  --blue: #173f8f;
  --bronze: #9a7450;
  --white: #fffdf8;
  --max: 1320px;
  --display: "STSong", "Songti SC", "SimSun", serif;
  --sans: "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); }
body::selection { background: var(--red); color: white; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; max-width: 100%; }
main { min-height: 70vh; overflow: hidden; }
.section { max-width: var(--max); margin: 0 auto; padding: 104px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.site-header {
  height: 82px;
  padding: 0 max(24px, calc((100vw - var(--max)) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  background: rgba(245, 241, 232, .95);
  border-bottom: 1px solid rgba(17, 20, 17, .12);
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(16px);
}
.brand { display: flex; align-items: center; gap: 12px; min-width: 250px; }
.brand-seal {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: var(--red);
  color: white;
  font: 700 23px/1 var(--display);
}
.brand-copy b { display: block; font: 700 16px/1.2 var(--display); letter-spacing: .04em; }
.brand-copy small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; letter-spacing: .05em; }
.main-nav { display: flex; align-items: center; gap: 26px; font-size: 13px; }
.main-nav > a:not(.nav-cta), .nav-link-button { position: relative; padding: 30px 0 27px; }
.main-nav > a:not(.nav-cta)::after, .nav-link-button::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 19px;
  width: 0;
  height: 2px;
  background: var(--red);
  transition: width .25s ease;
}
.main-nav > a:hover::after, .main-nav > a:focus-visible::after, .nav-link-button:hover::after { width: 100%; }
.main-nav > a.active::after { width: 100%; }
.nav-cta { display: inline-flex; align-items: center; gap: 9px; padding: 12px 17px; border: 1px solid var(--ink); transition: .25s ease; }
.nav-cta:hover { background: var(--ink); color: var(--white); }
.nav-form { margin: 0; }
.nav-link-button { border: 0; background: transparent; cursor: pointer; color: var(--ink); }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 25px; }

.messages { position: fixed; right: 24px; top: 96px; z-index: 60; }
.message { display: flex; gap: 10px; align-items: center; padding: 14px 18px; background: var(--ink); color: white; box-shadow: 0 14px 40px rgba(0,0,0,.18); }

.hero {
  min-height: 715px;
  display: grid;
  grid-template-columns: 80px minmax(440px, .9fr) minmax(560px, 1.1fr);
  position: relative;
  border-bottom: 1px solid var(--line);
}
.hero-rail {
  padding: 42px 0 34px;
  border-right: 1px solid var(--line);
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 10px;
  writing-mode: vertical-rl;
  letter-spacing: .08em;
}
.hero-rail span { font: 700 12px/1 var(--display); }
.hero-rail b { font: 700 24px/1 var(--display); letter-spacing: .15em; }
.hero-rail small { font-size: 10px; color: var(--muted); }
.hero-copy { padding: 84px 44px 60px max(36px, calc((100vw - var(--max)) / 2)); position: relative; z-index: 2; }
.kicker { font-size: 13px; line-height: 1.8; font-weight: 600; letter-spacing: .06em; }
.hero h1 { margin: 35px 0 24px; font: 700 clamp(64px, 6.4vw, 98px)/1.06 var(--display); letter-spacing: -.05em; }
.hero h1 > span, .hero h1 em { display: inline-block; white-space: nowrap; }
.hero h1 em { color: var(--red); font-style: normal; }
.hero-lead { color: #4d504b; font: 500 16px/1.9 var(--display); }
.hero-date { margin-top: 45px; }
.hero-date span { display: block; margin-bottom: 8px; color: var(--muted); font-size: 12px; letter-spacing: .12em; }
.hero-date b { font: 500 30px/1.2 var(--display); letter-spacing: .03em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 0 25px; border: 1px solid transparent; font-weight: 600; font-size: 14px; transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--red); color: white; }
.button.primary:hover { background: #a92118; }
.button-red { background: var(--red); color: white; }
.button-red:hover { background: #a92118; }
.button-outline { border-color: #77766f; background: rgba(255,255,255,.34); }
.button-outline:hover { border-color: var(--ink); background: var(--white); }
.button-light { background: var(--white); color: var(--ink); }
.button.light { background: var(--white); color: var(--ink); }
.button.full { width: 100%; margin-top: 8px; }
.text-link { color: var(--red); font-weight: 700; }
.hero-visual { position: relative; min-width: 0; background: #151713; overflow: hidden; }
.hero-visual > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-visual-caption {
  position: absolute;
  right: 20px;
  top: 20px;
  bottom: 20px;
  width: 42px;
  padding: 18px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  background: rgba(17,20,17,.88);
  color: white;
  writing-mode: vertical-rl;
  font-size: 10px;
  letter-spacing: .15em;
}
.hero-visual-caption i { color: #d2a45e; font-style: normal; }

.notice-bar {
  min-height: 88px;
  display: grid;
  grid-template-columns: 145px 1fr auto auto;
  align-items: center;
  max-width: var(--max);
  margin: 0 auto;
  border-bottom: 1px solid var(--line);
}
.notice-title { font: 700 18px/1 var(--display); }
.notice-bar > a:not(.notice-more) { min-width: 0; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 14px; }
.notice-bar a i { padding: 4px 7px; background: var(--red); color: white; font-size: 10px; font-style: normal; }
.notice-bar a b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notice-bar a small { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notice-bar time { padding-left: 22px; color: var(--muted); font-size: 11px; }
.notice-more { display: inline-flex; align-items: center; gap: 8px; margin-left: 34px; font-size: 12px; }
.notice-more:hover { color: var(--red); }

.manifesto { display: grid; grid-template-columns: .8fr 1.25fr; gap: 58px; align-items: stretch; }
.manifesto-image { min-height: 470px; position: relative; overflow: hidden; background: var(--ink); }
.manifesto-image > img { width: 100%; height: 100%; object-fit: cover; opacity: .68; transition: transform .8s ease, opacity .4s ease; }
.manifesto-image:hover > img { transform: scale(1.035); opacity: .8; }
.manifesto-image > div { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 42px; color: white; }
.manifesto-image h2 { margin: 0; font: 600 34px/1.45 var(--display); letter-spacing: .02em; }
.manifesto-image span { color: #d8bda5; font-size: 10px; letter-spacing: .22em; }
.advantages { display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; }
.advantages article { min-height: 360px; padding: 42px 34px; border-left: 1px solid var(--line); }
.adv-no { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; font: 600 16px/1 var(--display); }
.adv-no.green { background: var(--green); }.adv-no.blue { background: var(--blue); }.adv-no.red { background: var(--red); }
.advantages h3 { margin: 22px 0 25px; font: 700 30px/1 var(--display); }
.advantages b { display: block; font: 500 22px/1.5 var(--display); }
.advantages p { margin-top: 28px; color: var(--muted); font-size: 13px; line-height: 1.9; }

.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 38px; }
.section-head span { display: block; color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.section-head h2 { margin: 9px 0 0; font: 700 36px/1.25 var(--display); }
.section-head > a { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; border-bottom: 1px solid var(--ink); padding-bottom: 7px; }
.section-head > a:hover { color: var(--red); border-color: var(--red); }
.section-head > p { margin: 0; color: var(--muted); font-size: 12px; }
.tracks { padding-top: 24px; }
.track-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.track-card { min-height: 520px; position: relative; overflow: hidden; color: white; background: var(--ink); }
.track-card > img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, opacity .35s ease; }
.track-card::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.18); transition: opacity .35s ease; }
.track-card:hover > img { transform: scale(1.045); }
.track-card:hover::after { opacity: .3; }
.track-copy { position: absolute; z-index: 2; inset: 0; padding: 28px 25px; display: flex; flex-direction: column; align-items: flex-start; }
.track-copy span { font-size: 10px; opacity: .82; }
.track-copy h3 { margin: 8px 0 0; font: 600 25px/1.25 var(--display); }
.track-copy p { margin: 18px 0 0; font: 500 15px/1.6 var(--display); }
.track-card:nth-child(1) .track-copy { background: rgba(12,67,46,.54); }
.track-card:nth-child(2) .track-copy { background: rgba(13,54,139,.48); }
.track-card:nth-child(3) .track-copy { background: rgba(162,30,20,.46); }
.track-card:nth-child(4) .track-copy { background: rgba(100,72,42,.42); }

.timeline-section { padding-top: 70px; }
.timeline { display: grid; grid-template-columns: repeat(5, 1fr); position: relative; padding-top: 30px; }
.timeline::before { content: ""; position: absolute; left: 8%; right: 8%; top: 38px; height: 1px; background: #8c8b84; }
.timeline article { position: relative; z-index: 1; text-align: center; padding: 0 15px; }
.timeline article > span { width: 17px; height: 17px; display: block; margin: 0 auto 23px; border-radius: 50%; border: 1px solid #7d7d77; background: var(--paper); box-shadow: inset 0 0 0 4px var(--paper); }
.timeline article.current > span { background: var(--green); border-color: var(--green); }
.timeline h3 { margin: 0; font: 700 19px/1.4 var(--display); }
.timeline article.current h3 { color: var(--green); }
.timeline b { display: block; margin: 11px 0; font: 500 15px/1.55 var(--display); }
.timeline p { color: var(--muted); font-size: 11px; }

.downloads { display: grid; grid-template-columns: .75fr 1.25fr; gap: 90px; border-top: 1px solid var(--line); }
.download-lead > span { color: var(--red); font-size: 10px; font-weight: 700; letter-spacing: .24em; }
.download-lead h2 { margin: 12px 0 20px; font: 700 44px/1.2 var(--display); }
.download-lead p { max-width: 410px; color: var(--muted); line-height: 1.9; }
.resource-list { border-top: 1px solid var(--ink); }
.resource-list > a { display: grid; grid-template-columns: 55px 1fr auto; align-items: center; gap: 20px; min-height: 98px; border-bottom: 1px solid var(--line); transition: padding .25s ease, color .25s ease; }
.resource-list > a:hover { padding-left: 12px; color: var(--red); }
.resource-list > a > span { color: var(--muted); font: 500 13px/1 var(--display); }
.resource-list > a b { display: block; font: 600 17px/1.5 var(--display); }
.resource-list > a small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.resource-list > a > i { font-size: 22px; }

.final-cta { padding: 68px max(24px, calc((100vw - var(--max)) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 40px; background: var(--red); color: white; }
.final-cta span { font-size: 9px; letter-spacing: .2em; opacity: .8; }
.final-cta h2 { margin: 12px 0 7px; font: 700 37px/1.35 var(--display); }
.final-cta p { margin: 0; opacity: .78; font-size: 13px; }

.site-footer { padding: 58px max(24px, calc((100vw - var(--max)) / 2)); display: grid; grid-template-columns: 1.2fr 1fr .8fr .5fr; gap: 50px; background: #0e110e; color: #ddd8ce; font-size: 12px; }
.footer-brand { display: flex; gap: 15px; align-items: start; }
.footer-brand b { font: 600 19px/1.4 var(--display); color: white; }
.site-footer span:not(.brand-seal) { color: #8f928b; font-size: 10px; }
.site-footer p { margin: 6px 0 18px; }
.footer-links { display: flex; flex-direction: column; gap: 14px; }
.footer-links a:hover { color: white; }

/* Shared interior pages */
.portal-hero, .page-hero { padding: 78px max(24px, calc((100vw - var(--max)) / 2)); display: flex; align-items: end; justify-content: space-between; gap: 35px; background: #101510; color: white; position: relative; }
.portal-hero::after, .page-hero::after { content: "万象新生"; position: absolute; right: 4vw; bottom: -18px; color: rgba(255,255,255,.035); font: 700 100px/1 var(--display); pointer-events: none; }
.eyebrow { color: #c99a73; font-size: 10px; font-weight: 700; letter-spacing: .22em; }
.eyebrow.dark { color: var(--red); }
.portal-hero h1, .page-hero h1 { margin: 10px 0; font: 700 46px/1.3 var(--display); }
.portal-hero p, .page-hero p { margin: 0; color: #abb3aa; }
.portal-layout { max-width: var(--max); margin: 64px auto 110px; display: grid; grid-template-columns: 1fr 335px; gap: 50px; }
.panel-heading { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--ink); padding-bottom: 17px; }
.panel-heading h2 { margin: 0; font: 700 28px/1.2 var(--display); }
.panel-heading span { color: var(--muted); font-size: 12px; }
.submission-card { min-height: 115px; display: flex; justify-content: space-between; align-items: center; padding: 24px 4px; border-bottom: 1px solid var(--line); transition: padding .25s ease, background .25s ease; }
.submission-card:hover { padding-left: 18px; padding-right: 18px; background: var(--white); }
.submission-card h3 { margin: 11px 0 6px; font: 600 20px/1.4 var(--display); }
.submission-card p { color: var(--muted); font-size: 12px; margin: 0; }
.submission-card > div:last-child { display: flex; align-items: center; gap: 9px; }
.submission-card > div:last-child b { font: 600 25px/1 var(--display); }
.submission-card > div:last-child small { color: var(--muted); }
.submission-card > div:last-child span { margin-left: 18px; font-size: 22px; }
.status { display: inline-block; padding: 5px 9px; background: #e4e9e2; color: var(--green); font-size: 10px; font-weight: 700; }
.status-shortlisted { background: #f3dbd5; color: var(--red); }
.status-reviewing { background: #ede4ce; color: #795c20; }
.aside-card { margin-bottom: 16px; padding: 25px; border: 1px solid var(--line); background: rgba(255,255,255,.22); }
.aside-card h3 { margin: 0 0 18px; font: 700 19px/1.3 var(--display); }
.aside-card > b { font: 600 28px/1 var(--display); }
.aside-card p, .aside-card small { color: var(--muted); font-size: 12px; }
.aside-card > a { display: flex; justify-content: space-between; gap: 10px; padding: 13px 0; border-top: 1px solid var(--line); font-size: 12px; }
.aside-card > a:hover { color: var(--red); }
.progress { height: 3px; margin: 20px 0 10px; background: var(--line); }
.progress span { display: block; width: 72%; height: 100%; background: var(--red); }
.admin-card { background: var(--ink); color: white; border: 0; }
.admin-card p { color: #a8afa7; }
.admin-card a { border-color: #434842; color: #dfb79b; }
.empty-card { margin-top: 24px; padding: 70px 40px; text-align: center; border: 1px dashed #aaa99f; }

.form-shell { max-width: var(--max); margin: 70px auto 110px; display: grid; grid-template-columns: 330px 1fr; gap: 65px; }
.form-intro { position: sticky; top: 118px; align-self: start; }
.form-intro h1 { margin: 14px 0 20px; font: 700 43px/1.25 var(--display); }
.form-intro > p { color: var(--muted); line-height: 1.9; }
.note { margin-top: 28px; padding: 20px; border-left: 3px solid var(--red); background: var(--paper-deep); }
.note b, .note span { display: block; }
.note span { margin-top: 8px; color: var(--muted); font-size: 12px; }
.form-card, .auth-card { padding: 38px; background: var(--white); border: 1px solid var(--line); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field.wide { grid-column: 1/-1; }
.field label { font-size: 12px; font-weight: 700; }
.field label em { color: var(--red); font-style: normal; }
.field input:not([type=checkbox]), .field select, .field textarea { width: 100%; min-height: 46px; padding: 12px 13px; border: 1px solid #bdb9af; background: #fffefa; outline: none; transition: border .2s ease, box-shadow .2s ease; }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,63,143,.1); }
.field small { color: var(--muted); font-size: 11px; line-height: 1.6; }
.errorlist { margin: 0; padding: 0; list-style: none; color: var(--red); font-size: 11px; }
.form-errors { margin-bottom: 15px; padding: 12px; background: #f6dfda; color: #8b1e17; }
.form-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 34px; padding-top: 25px; border-top: 1px solid var(--line); }

.detail-shell { max-width: var(--max); margin: 60px auto 110px; }
.back { color: var(--muted); font-size: 12px; }
.detail-head { display: flex; justify-content: space-between; align-items: end; padding: 40px 0; border-bottom: 1px solid var(--ink); }
.detail-head h1 { margin: 13px 0; font: 700 44px/1.3 var(--display); }
.detail-head p, .detail-head time { color: var(--muted); font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: 1fr 360px; gap: 70px; padding-top: 50px; }
.detail-grid article { line-height: 2; }
.detail-grid h2, .detail-grid h3 { font-family: var(--display); }
.detail-grid aside { padding-left: 32px; border-left: 1px solid var(--line); }
.detail-grid dl { display: grid; grid-template-columns: 90px 1fr; font-size: 12px; line-height: 2.1; }
.detail-grid dt { color: var(--muted); }
.file-row { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 12px; }

.news-list { max-width: var(--max); margin: 35px auto 110px; }
.news-list > article { display: grid; grid-template-columns: 150px 1fr; padding: 34px 0; border-bottom: 1px solid var(--line); }
.news-list time { color: var(--muted); }
.news-list h2 { margin: 7px 0; font: 700 24px/1.4 var(--display); }
.news-list article span { padding: 3px 7px; background: var(--red); color: white; font-size: 9px; }
.news-list p { color: var(--muted); line-height: 1.9; }
.news-list summary { cursor: pointer; color: var(--red); }

.auth-shell { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; background: var(--paper); }
.auth-side { padding: 135px max(45px, calc((100vw - var(--max)) / 2)); padding-right: 75px; background: var(--green); color: white; position: relative; overflow: hidden; }
.auth-side::after { content: "万象新生"; position: absolute; left: 50px; bottom: 40px; color: rgba(255,255,255,.08); font: 700 70px/1 var(--display); writing-mode: vertical-rl; }
.auth-side h1 { margin: 25px 0; font: 700 60px/1.28 var(--display); }
.auth-side > p:last-child { max-width: 420px; color: #cedbd3; line-height: 1.9; }
.auth-card { width: 480px; align-self: center; justify-self: center; }
.auth-card h2 { margin: 8px 0 28px; font: 700 30px/1.35 var(--display); }
.auth-card .field { margin-bottom: 18px; }
.auth-switch { text-align: center; color: var(--muted); font-size: 12px; }
.auth-switch a { color: var(--red); font-weight: 700; }
.notice-dialog { width: min(760px, calc(100vw - 32px)); max-height: min(820px, calc(100vh - 32px)); padding: 0; border: 0; color: var(--ink); background: var(--paper); box-shadow: 0 28px 90px rgba(9, 18, 12, .34); }
.notice-dialog::backdrop { background: rgba(9, 16, 11, .74); backdrop-filter: blur(8px); }
.notice-dialog-head { min-height: 120px; padding: 28px 34px; display: flex; align-items: center; justify-content: space-between; color: white; background: var(--green); }
.notice-dialog-head span { color: #b8cfc1; font-size: 9px; letter-spacing: .22em; }
.notice-dialog-head h2 { margin: 7px 0 0; font: 700 34px/1.2 var(--display); }
.notice-dialog-head b { color: #d8bda5; font: 500 12px/1 var(--display); letter-spacing: .14em; }
.notice-dialog-body { max-height: min(480px, calc(100vh - 330px)); padding: 28px 34px 18px; overflow-y: auto; scroll-behavior: smooth; }
.notice-dialog-body p { margin: 0; padding: 15px 0; color: #3f453f; line-height: 1.9; border-bottom: 1px solid var(--line); }
.notice-dialog-body p:first-child { padding-top: 0; }
.notice-dialog-action { padding: 22px 34px 30px; border-top: 1px solid var(--line); background: #eeeadf; }
.notice-check { display: flex; gap: 11px; align-items: flex-start; font-size: 13px; font-weight: 700; line-height: 1.6; cursor: pointer; }
.notice-check input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--red); }
.notice-confirm { width: 100%; margin-top: 18px; color: white; background: var(--red); cursor: pointer; }
.notice-confirm:disabled, #registerSubmit:disabled { opacity: .42; cursor: not-allowed; transform: none; }
.notice-reopen { width: 100%; margin-top: 15px; padding: 0; border: 0; color: var(--muted); background: transparent; font-size: 12px; cursor: pointer; }
.notice-reopen:hover { color: var(--red); }
.notice-error { margin-bottom: 18px; padding: 12px 14px; color: #8e1e17; background: #fff0ed; font-size: 12px; }
.empty { padding: 35px; text-align: center; color: var(--muted); }

/* Editorial homepage and dedicated competition pages */
.home-hero { min-height: 760px; }
.home-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: center; }
.home-intro-copy h2 { margin: 16px 0 24px; font: 700 48px/1.3 var(--display); }
.home-intro-copy p { max-width: 480px; color: var(--muted); line-height: 2; }
.editorial-link { display: inline-flex; align-items: center; gap: 18px; margin-top: 28px; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font-weight: 700; font-size: 12px; }
.home-intro-image { min-height: 520px; position: relative; overflow: hidden; color: white; }
.home-intro-image img { width: 100%; height: 520px; object-fit: cover; transition: transform .8s ease; }
.home-intro-image:hover img { transform: scale(1.035); }
.home-intro-image::after { content: ""; position: absolute; inset: 0; background: rgba(5,8,6,.25); }
.home-intro-image span { position: absolute; z-index: 2; left: 38px; bottom: 36px; font: 600 28px/1.55 var(--display); }
.home-intro-image > i { position: absolute; z-index: 2; right: 34px; top: 32px; font-size: 25px; }
.home-film { padding-top: 30px; }
.home-film-head { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 35px; }
.home-film-head span { color: var(--red); font-size: 9px; letter-spacing: .22em; }
.home-film-head h2 { margin: 16px 0 0; font: 700 46px/1.3 var(--display); }
.home-film-head > p { margin: 0 0 7px; color: var(--muted); text-align: right; line-height: 1.8; font-size: 13px; }
.home-film-head small { color: #9a968d; font-size: 10px; letter-spacing: .08em; }
.film-player { aspect-ratio: 16/9; position: relative; overflow: hidden; background: #080b09; }
.film-player video { width: 100%; height: 100%; display: block; object-fit: contain; }
.film-cover { position: absolute; inset: 0; padding: 42px; display: flex; align-items: center; justify-content: center; background: linear-gradient(180deg, rgba(5,9,7,.06), rgba(5,9,7,.12) 56%, rgba(5,9,7,.78)); transition: opacity .35s ease, visibility .35s ease; }
.film-cover > div { position: absolute; left: 42px; right: 42px; bottom: 36px; display: flex; align-items: end; justify-content: space-between; gap: 20px; color: white; }
.film-cover span { color: #d6d5cc; font-size: 9px; letter-spacing: .2em; }
.film-cover b { font: 600 18px/1.2 var(--display); }
.film-play { width: 88px; height: 88px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.76); border-radius: 50%; color: var(--ink); background: rgba(255,253,248,.92); font-size: 34px; cursor: pointer; box-shadow: 0 16px 55px rgba(0,0,0,.24); transition: transform .3s ease, background .3s ease; }
.film-play:hover { transform: scale(1.07); background: white; }
.film-play i { margin-left: 4px; }
.film-player.is-playing .film-cover { opacity: 0; visibility: hidden; pointer-events: none; }
.portal-grid { padding-top: 35px; }
.portal-cards { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.portal-card { min-height: 390px; padding: 34px; position: relative; border-right: 1px solid var(--line); transition: color .3s ease, background .3s ease, transform .3s ease; }
.portal-card:last-child { border-right: 0; }
.portal-card > span { font-size: 9px; letter-spacing: .18em; color: var(--muted); }
.portal-card h3 { margin: 72px 0 20px; font: 700 36px/1.35 var(--display); }
.portal-card p { max-width: 260px; color: var(--muted); line-height: 1.8; font-size: 13px; }
.portal-card > i { position: absolute; right: 30px; bottom: 28px; font-size: 25px; }
.portal-card:hover { color: white; transform: translateY(-7px); }
.portal-card:hover p, .portal-card:hover > span { color: rgba(255,255,255,.7); }
.portal-green:hover { background: var(--green); }.portal-blue:hover { background: var(--blue); }.portal-red:hover { background: var(--red); }
.home-statement { min-height: 480px; padding: 110px max(24px, calc((100vw - var(--max)) / 2)); background: #101510; color: white; display: grid; grid-template-columns: .45fr 1.55fr; align-items: start; }
.home-statement > span { color: #b78d70; font-size: 9px; letter-spacing: .24em; }
.home-statement p { margin: 0; font: 600 clamp(46px, 5vw, 72px)/1.35 var(--display); }

.subpage-hero { min-height: 670px; display: grid; grid-template-columns: .9fr 1.1fr; background: #0d110e; color: white; overflow: hidden; }
.subpage-hero > div { padding: 115px 70px 80px max(28px, calc((100vw - var(--max)) / 2)); display: flex; flex-direction: column; justify-content: center; }
.subpage-hero > div > span, .subpage-title > span { color: #c49a77; font-size: 10px; letter-spacing: .24em; }
.subpage-hero h1 { margin: 30px 0; font: 700 clamp(55px, 6vw, 88px)/1.2 var(--display); }
.subpage-hero h1 em { color: #d33a2d; font-style: normal; }
.subpage-hero p { color: #a8afa7; }
.subpage-hero > img { width: 100%; height: 100%; object-fit: cover; opacity: .74; }
.page-index { min-height: 76px; padding: 0 max(24px, calc((100vw - var(--max)) / 2)); display: flex; align-items: center; gap: 45px; border-bottom: 1px solid var(--line); }
.page-index span { margin-right: auto; font: 700 16px/1 var(--display); }
.page-index a { color: var(--muted); font-size: 12px; }
.page-index a:hover { color: var(--red); }
.story-section { display: grid; grid-template-columns: 120px .9fr 1.1fr; gap: 40px; }
.story-number { color: var(--red); font: 500 80px/1 var(--display); opacity: .16; }
.story-section h2 { margin: 15px 0; font: 700 43px/1.35 var(--display); }
.story-body { padding-left: 45px; border-left: 1px solid var(--line); color: var(--muted); line-height: 2.15; }
.value-stage { display: grid; grid-template-columns: .8fr 1.2fr; background: #111511; color: white; }
.value-image img { width: 100%; height: 100%; min-height: 720px; object-fit: cover; }
.value-copy { padding: 90px max(35px, calc((100vw - var(--max)) / 2)) 80px 70px; }
.value-copy > span { color: #bd9476; font-size: 9px; letter-spacing: .22em; }
.value-copy > h2 { margin: 22px 0 55px; font: 600 40px/1.4 var(--display); }
.value-list article { display: grid; grid-template-columns: 50px 180px 1fr; gap: 20px; align-items: center; padding: 28px 0; border-top: 1px solid #3a403b; }
.value-list article > b { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--red); }
.value-list h3 { font: 600 22px/1.3 var(--display); }
.value-list p { color: #a9b0aa; line-height: 1.8; font-size: 12px; }
.organizer-grid { display: grid; grid-template-columns: 1.2fr 1.2fr .8fr; border-top: 1px solid var(--ink); }
.organizer-grid article { min-height: 190px; padding: 32px 28px; border-right: 1px solid var(--line); }
.organizer-grid span { color: var(--muted); font-size: 10px; }.organizer-grid h3 { margin-top: 46px; font: 600 23px/1.4 var(--display); }

.subpage-title { min-height: 480px; padding: 100px max(24px, calc((100vw - var(--max)) / 2)); background: #0f140f; color: white; position: relative; overflow: hidden; }
.subpage-title::after { content: "万象新生"; position: absolute; right: -10px; bottom: -38px; color: rgba(255,255,255,.035); font: 700 150px/1 var(--display); }
.subpage-title h1 { margin: 30px 0 20px; font: 700 clamp(52px, 5.4vw, 78px)/1.25 var(--display); }
.subpage-title p { color: #aeb4ae; }
.track-showcase { padding-top: 70px; }
.track-showcase > article { min-height: 560px; display: grid; grid-template-columns: .9fr 1.1fr; margin-bottom: 30px; background: var(--white); border: 1px solid var(--line); }
.track-showcase > article:nth-child(even) { grid-template-columns: 1.1fr .9fr; }
.track-showcase > article:nth-child(even) img { order: -1; }
.track-showcase-copy { padding: 70px; display: flex; flex-direction: column; justify-content: center; }
.track-showcase-copy > span { color: var(--red); font-size: 9px; letter-spacing: .2em; }
.track-showcase-copy h2 { margin: 22px 0; font: 700 45px/1.3 var(--display); }
.track-showcase-copy p { color: var(--muted); line-height: 2; }
.track-showcase-copy b { margin-top: 45px; font-size: 11px; letter-spacing: .06em; }
.track-showcase img { width: 100%; height: 100%; min-height: 560px; object-fit: cover; }

.schedule-title { background: var(--blue); }
.schedule-board { padding-top: 70px; }
.schedule-board article { display: grid; grid-template-columns: 90px 220px 1fr 1.2fr 110px; gap: 28px; align-items: center; min-height: 145px; border-top: 1px solid var(--line); }
.schedule-board article:last-child { border-bottom: 1px solid var(--line); }
.schedule-board article > span { color: #b5b0a8; font: 500 24px/1 var(--display); }
.schedule-board time { font: 600 17px/1.4 var(--display); }
.schedule-board h2 { font: 700 28px/1.2 var(--display); }
.schedule-board p { color: var(--muted); line-height: 1.8; font-size: 12px; }
.schedule-board b { justify-self: end; padding: 7px 10px; border: 1px solid var(--line); font-size: 10px; }
.schedule-board .is-current { color: var(--green); }.schedule-board .is-current b { color: white; background: var(--green); border-color: var(--green); }
.schedule-note, .resource-help { padding: 60px max(24px, calc((100vw - var(--max)) / 2)); display: flex; align-items: center; gap: 35px; background: var(--paper-deep); }
.schedule-note > i { font-size: 36px; color: var(--red); }.schedule-note h2 { margin: 0 0 8px; font: 700 25px/1.2 var(--display); }.schedule-note p { margin: 0; color: var(--muted); }.schedule-note > a { margin-left: auto; font-weight: 700; font-size: 12px; }

.resource-title { background: var(--red); }
.resource-page { display: grid; grid-template-columns: 330px 1fr; gap: 95px; }
.resource-page aside > span { font-size: 9px; letter-spacing: .22em; color: var(--red); }.resource-page aside h2 { margin: 14px 0 20px; font: 700 43px/1.2 var(--display); }.resource-page aside p { color: var(--muted); line-height: 1.9; }.resource-page aside a { display: inline-flex; gap: 12px; margin-top: 28px; font-size: 12px; font-weight: 700; }
.resource-page-list { border-top: 1px solid var(--ink); }
.resource-page-list > a { min-height: 165px; display: grid; grid-template-columns: 70px 1fr auto; gap: 25px; align-items: center; border-bottom: 1px solid var(--line); transition: padding .25s ease, color .25s ease; }
.resource-page-list > a:hover { padding-left: 16px; color: var(--red); }.resource-page-list > a > span { color: var(--muted); font: 500 16px/1 var(--display); }.resource-page-list small { letter-spacing: .16em; }.resource-page-list h3 { margin: 8px 0; font: 600 24px/1.4 var(--display); }.resource-page-list p { margin: 0; color: var(--muted); font-size: 12px; }.resource-page-list > a > i { font-size: 24px; }
.resource-help { background: #101510; color: white; justify-content: space-between; }.resource-help span { color: #bd9476; font-size: 9px; letter-spacing: .2em; }.resource-help h2 { margin: 10px 0 0; font: 700 29px/1.3 var(--display); }.resource-help ul { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; color: #ccd1cc; font-size: 12px; }.resource-help li i { margin-right: 9px; color: #d43a2e; }

@media (max-width: 1120px) {
  .main-nav { gap: 16px; }
  .nav-resource { display: none; }
  .hero { grid-template-columns: 54px .9fr 1.1fr; }
  .hero-copy { padding-left: 35px; }
  .section, .notice-bar, .portal-layout, .form-shell, .detail-shell, .news-list { margin-left: 28px; margin-right: 28px; }
  .advantages article { padding-left: 22px; padding-right: 22px; }
  .track-card { min-height: 440px; }
}

@media (max-width: 960px) {
  .site-header { height: 70px; padding: 0 20px; }
  .brand-copy small { display: none; }
  .mobile-menu { display: block; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: 70px; padding: 18px 20px 24px; flex-direction: column; align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--line); }
  .menu-open .main-nav { display: flex; }
  .main-nav > a:nth-child(3), .main-nav > a:nth-child(4), .nav-resource { display: block; }
  .main-nav > a:not(.nav-cta), .nav-link-button { padding: 10px 0; }
  .main-nav > a:not(.nav-cta)::after, .nav-link-button::after { bottom: 4px; }
  .nav-cta { justify-content: center; }
  .hero { min-height: 0; grid-template-columns: 1fr; }
  .hero-rail { display: none; }
  .hero-copy { padding: 68px 24px 50px; }
  .hero h1 { font-size: clamp(56px, 16vw, 76px); }
  .hero-visual { min-height: 510px; order: 2; }
  .hero-visual-caption { width: 34px; }
  .notice-bar { margin: 0 20px; grid-template-columns: 90px 1fr auto; }
  .notice-bar a small, .notice-bar time { display: none; }
  .notice-more { margin-left: 10px; font-size: 0; }
  .notice-more i { font-size: 16px; }
  .section { margin: 0; padding: 76px 20px; }
  .manifesto { grid-template-columns: 1fr; gap: 28px; }
  .manifesto-image { min-height: 520px; }
  .advantages { grid-template-columns: 1fr; }
  .advantages article { min-height: 0; padding: 30px 12px; border-left: 0; border-bottom: 1px solid var(--line); }
  .track-grid { grid-template-columns: 1fr 1fr; }
  .track-card { min-height: 500px; }
  .timeline { grid-template-columns: 1fr; padding-left: 18px; }
  .timeline::before { left: 26px; right: auto; top: 34px; bottom: 50px; width: 1px; height: auto; }
  .timeline article { display: grid; grid-template-columns: 26px 1fr; column-gap: 18px; text-align: left; padding: 0 0 28px; }
  .timeline article > span { grid-row: 1/4; margin: 0; }
  .timeline h3, .timeline b, .timeline p { grid-column: 2; }
  .downloads { grid-template-columns: 1fr; gap: 35px; }
  .final-cta { padding: 55px 24px; flex-direction: column; align-items: flex-start; }
  .site-footer { padding: 48px 24px; grid-template-columns: 1fr 1fr; }
  .portal-layout, .form-shell, .detail-grid { grid-template-columns: 1fr; }
  .form-intro { position: static; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-side { min-height: 440px; padding: 75px 24px; }
  .auth-card { width: calc(100% - 36px); margin: 34px 18px; }
  .detail-grid aside { padding-left: 0; border-left: 0; }
  .home-intro, .value-stage, .track-showcase > article, .track-showcase > article:nth-child(even), .resource-page { grid-template-columns: 1fr; }
  .home-film-head { align-items: flex-start; flex-direction: column; gap: 20px; }.home-film-head > p { text-align: left; }
  .home-intro { gap: 35px; }.portal-cards { grid-template-columns: 1fr; }.portal-card { min-height: 300px; border-right: 0; border-bottom: 1px solid var(--line); }.portal-card h3 { margin-top: 48px; }
  .home-statement { min-height: 420px; grid-template-columns: 1fr; gap: 40px; }.home-statement p { font-size: 45px; }
  .subpage-hero { grid-template-columns: 1fr; }.subpage-hero > div { padding: 80px 24px; }.subpage-hero > img { max-height: 520px; }
  .story-section { grid-template-columns: 65px 1fr; }.story-body { grid-column: 2; padding-left: 0; border-left: 0; }
  .value-copy { padding: 70px 24px; }.value-list article { grid-template-columns: 50px 1fr; }.value-list p { grid-column: 2; }.organizer-grid { grid-template-columns: 1fr; }
  .track-showcase > article:nth-child(even) img { order: 0; }.track-showcase-copy { padding: 45px 28px; }
  .schedule-board article { grid-template-columns: 50px 1fr; padding: 28px 0; }.schedule-board time, .schedule-board h2, .schedule-board p, .schedule-board b { grid-column: 2; justify-self: start; margin: 0; }.schedule-board article > span { grid-row: 1/6; align-self: start; }
  .schedule-note, .resource-help { align-items: flex-start; flex-direction: column; }.schedule-note > a { margin-left: 0; }
}

@media (max-width: 520px) {
  .brand { min-width: 0; }
  .brand-copy b { font-size: 14px; }
  .hero-visual { min-height: 380px; }
  .hero-lead br { display: none; }
  .hero-date b { font-size: 24px; }
  .hero-actions .button { flex: 1 1 100%; }
  .notice-title { font-size: 15px; }
  .track-grid { grid-template-columns: 1fr; }
  .track-card { min-height: 470px; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .section-head h2 { font-size: 31px; }
  .downloads { padding-top: 60px; }
  .site-footer { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .field.wide { grid-column: auto; }
  .home-film { padding-top: 20px; }.home-film-head h2 { font-size: 34px; }.film-cover { padding: 22px; }.film-cover > div { left: 22px; right: 22px; bottom: 20px; }.film-cover span { display: none; }.film-play { width: 68px; height: 68px; font-size: 28px; }
  .notice-dialog-head, .notice-dialog-body, .notice-dialog-action { padding-left: 22px; padding-right: 22px; }
  .notice-dialog-head { min-height: 100px; }
  .notice-dialog-head h2 { font-size: 29px; }
  .notice-dialog-body { max-height: calc(100vh - 300px); }
  .form-card { padding: 24px; }
  .form-actions, .detail-head, .portal-hero, .page-hero { align-items: flex-start; flex-direction: column; }
  .news-list > article { grid-template-columns: 1fr; gap: 10px; }
}
