:root {
	--graphite: #090d0e;
	--carbon: #111718;
	--steel: #1b2527;
	--steel-light: #2a3638;
	--metal: #829093;
	--mist: #dbe2df;
	--paper: #eef1ed;
	--signal: #38d9c8;
	--signal-dark: #087d73;
	--warning: #ff6b2c;
	--warning-dark: #a93812;
	--line-dark: rgba(219, 226, 223, 0.18);
	--line-light: rgba(9, 13, 14, 0.2);
	--text-muted: #9aa7a8;
	--font: "Noto Sans TC", sans-serif;
	--container: 1440px;
	--page-pad: clamp(24px, 4.5vw, 72px);
	--section-space: clamp(84px, 10vw, 152px);
	--transition: 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

* { box-sizing: border-box; }

html { scroll-behavior: auto; }

body { margin: 0; overflow-x: hidden; background: var(--graphite); color: var(--mist); font-family: var(--font); font-size: 17px; line-height: 1.8; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }

img { display: block; width: 100%; max-width: 100%; }

a { color: inherit; text-decoration: none; }

button { color: inherit; font: inherit; }

a:focus-visible, button:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }

::selection { background: var(--warning); color: var(--graphite); }

.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 10px 16px; background: var(--signal); color: var(--graphite); font-weight: 800; transform: translateY(-160%); transition: transform 180ms ease; }
.skip-link:focus { transform: translateY(0); }

.site-shell { width: min(100%, var(--container)); margin: 0 auto; padding-right: var(--page-pad); padding-left: var(--page-pad); }

.section-kicker { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; color: var(--signal-dark); font-size: 14px; font-weight: 800; letter-spacing: 0.12em; }
.section-kicker::before { width: 34px; height: 3px; background: currentColor; content: ""; }
.section-title { max-width: 820px; margin: 0; font-size: clamp(29px, 3.1vw, 44px); line-height: 1.28; letter-spacing: -0.035em; }
.section-intro { max-width: 700px; margin: 24px 0 0; color: var(--text-muted); }

.action-link { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 10px 20px; border: 1px solid currentColor; font-size: 15px; font-weight: 800; line-height: 1.4; transition: background-color var(--transition), color var(--transition), border-color var(--transition); }
.action-link::after { margin-left: 14px; content: "↗"; }
.action-link:hover { background: var(--signal); border-color: var(--signal); color: var(--graphite); }
.action-link.is-warning:hover { background: var(--warning); border-color: var(--warning); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity 600ms ease, transform 600ms ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.clip-reveal { clip-path: inset(0 100% 0 0); transition: clip-path 900ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.clip-reveal.is-visible { clip-path: inset(0 0 0 0); }

/* header */
header.site-header { position: relative; min-height: 920px; overflow: hidden; background: var(--graphite); }
header .nav-shell { position: relative; z-index: 20; display: grid; grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr); min-height: 78px; align-items: center; border-bottom: 1px solid var(--line-dark); transition: background-color var(--transition), min-height var(--transition); }
header .brand-mark { justify-self: start; color: var(--mist); font-size: 15px; font-weight: 900; letter-spacing: 0.08em; }
header .brand-mark strong { color: var(--signal); }
header .primary-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.4vw, 38px); }
header .primary-nav a { position: relative; padding: 26px 0 24px; color: #bec8c7; font-size: 14px; font-weight: 700; transition: color var(--transition); }
header .primary-nav a::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; background: var(--signal); content: ""; transform: scaleX(0); transform-origin: left; transition: transform var(--transition); }
header .primary-nav a:hover, header .primary-nav a.is-active { color: #fff; }
header .primary-nav a:hover::after, header .primary-nav a.is-active::after { transform: scaleX(1); }
header .nav-status { justify-self: end; color: var(--warning); font-size: 13px; font-weight: 800; letter-spacing: 0.08em; }
header .menu-toggle { display: none; min-width: 84px; min-height: 44px; border: 1px solid var(--line-dark); background: transparent; font-size: 14px; font-weight: 800; cursor: pointer; }
header.is-scrolled .nav-shell { background: rgba(9, 13, 14, 0.96); }
header .hero { position: relative; z-index: 2; min-height: 842px; padding-top: clamp(64px, 8vw, 116px); padding-bottom: 70px; }
header .hero-heading { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); gap: 40px; align-items: end; }
header .hero-kicker { margin: 0 0 15px; color: var(--signal); font-size: 14px; font-weight: 800; letter-spacing: 0.12em; }
header h1 { max-width: 820px; margin: 0; color: #f2f5f1; font-size: clamp(38px, 5.4vw, 64px); line-height: 1.16; letter-spacing: -0.055em; }
header h1 span { display: block; margin-top: 12px; color: var(--metal); font-size: clamp(18px, 2vw, 27px); font-weight: 600; letter-spacing: 0.08em; }
header .hero-summary { max-width: 410px; margin: 0; padding-left: 26px; border-left: 4px solid var(--warning); color: #b8c3c2; font-size: 16px; }
header .hero-stage { position: relative; min-height: 560px; margin-top: 54px; }
header .hero-code { position: absolute; top: 14px; left: 0; z-index: 4; width: 164px; color: var(--metal); }
header .hero-code p { margin: 0; padding: 15px 0; border-top: 1px solid var(--line-dark); font-size: 13px; line-height: 1.55; }
header .hero-code p:last-child { border-bottom: 1px solid var(--line-dark); }
header .hero-code strong { display: block; margin-bottom: 3px; color: var(--mist); font-size: 12px; letter-spacing: 0.08em; }
header .hero-media { position: absolute; top: 0; right: 0; bottom: 0; left: 11%; overflow: hidden; background: var(--steel); clip-path: polygon(7% 9%, 100% 0, 100% 100%, 0 100%); }
header .hero-media::after { position: absolute; inset: 0; background: rgba(5, 9, 10, 0.32); content: ""; }
header .hero-media img { height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(0.72) contrast(1.1); transform: scale(1.03); transition: transform 1200ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 700ms ease; }
header .hero-media.is-visible img { transform: scale(1); }
header .hero-media:hover img { filter: saturate(0.95) contrast(1.08); }
header .hero-overlay { position: absolute; right: 24px; bottom: 22px; z-index: 3; display: grid; width: min(670px, 64%); grid-template-columns: repeat(3, 1fr); background: rgba(9, 13, 14, 0.9); border-top: 3px solid var(--signal); }
header .hero-overlay p { min-height: 88px; margin: 0; padding: 17px 20px; border-right: 1px solid var(--line-dark); color: #aab5b4; font-size: 13px; line-height: 1.55; }
header .hero-overlay p:last-child { border-right: 0; }
header .hero-overlay strong { display: block; margin-bottom: 5px; color: #fff; font-size: 14px; }
header .hero-actions { position: absolute; bottom: 22px; left: 0; z-index: 5; display: flex; flex-direction: column; gap: 10px; width: 178px; }
header .hero-actions .action-link { width: 100%; background: var(--graphite); }
header .hero-actions .action-link:first-child { background: var(--warning); border-color: var(--warning); color: var(--graphite); }
header .hero-actions .action-link:first-child:hover { background: var(--signal); border-color: var(--signal); }

/* world */
#world { position: relative; padding: var(--section-space) 0; background: var(--paper); color: var(--graphite); }
#world .world-layout { display: grid; grid-template-columns: minmax(230px, 0.7fr) minmax(0, 1.3fr); gap: clamp(56px, 8vw, 128px); }
#world .world-index { align-self: start; padding-top: 8px; }
#world .world-index ol { margin: 48px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
#world .world-index li { display: grid; grid-template-columns: 54px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line-light); }
#world .world-index span { color: var(--warning-dark); font-size: 13px; font-weight: 900; }
#world .world-index strong { font-size: 16px; }
#world .world-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 0.62fr); gap: clamp(36px, 5vw, 72px); align-items: start; }
#world .world-copy .section-title { grid-column: 1/-1; }
#world .world-copy-text { max-width: 620px; }
#world .world-copy-text p { margin: 0 0 22px; }
#world .world-copy-text p:last-child { margin-bottom: 0; }
#world .world-note { padding: 24px 0 0 24px; border-top: 4px solid var(--signal-dark); border-left: 1px solid var(--line-light); }
#world .world-note strong { display: block; margin-bottom: 10px; font-size: 18px; }
#world .world-note p { margin: 0; color: #4d5959; font-size: 15px; }
#world .world-media { position: relative; margin-top: 68px; overflow: hidden; }
#world .world-media img { aspect-ratio: 21/9; object-fit: cover; object-position: center 58%; filter: saturate(0.55) contrast(1.05); }
#world .world-media figcaption { display: grid; grid-template-columns: 1fr auto; gap: 24px; padding: 14px 0; border-bottom: 1px solid var(--line-light); color: #53605f; font-size: 14px; }
#world .world-media figcaption strong { color: var(--graphite); }

/* combat */
#combat { padding: var(--section-space) 0; background: var(--mist); color: var(--graphite); }
#combat .combat-layout { display: grid; grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr); gap: clamp(48px, 7vw, 112px); }
#combat .combat-heading { align-self: start; }
#combat .combat-heading .section-intro { color: #4d5b5b; }
#combat .combat-panel { border-top: 1px solid var(--line-light); }
#combat .combat-row { display: grid; grid-template-columns: 72px minmax(170px, 0.55fr) minmax(0, 1fr); gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line-light); }
#combat .combat-row-index { color: var(--warning-dark); font-size: 13px; font-weight: 900; letter-spacing: 0.08em; }
#combat .combat-row h3 { margin: 0; font-size: clamp(21px, 2vw, 27px); line-height: 1.35; }
#combat .combat-row p { max-width: 590px; margin: 0; color: #4b5858; font-size: 16px; }
#combat .combat-media { position: relative; margin-top: 48px; padding-left: 9%; }
#combat .combat-media::before { position: absolute; top: 34px; bottom: 34px; left: 0; width: 1px; background: var(--signal-dark); content: ""; }
#combat .combat-media::after { position: absolute; top: 33px; left: -5px; width: 11px; height: 11px; background: var(--signal-dark); content: ""; }
#combat .combat-media img { aspect-ratio: 16/9; object-fit: cover; object-position: center 56%; filter: saturate(0.65) contrast(1.08); }
#combat .combat-caption { display: flex; justify-content: space-between; gap: 24px; margin: 14px 0 0; color: #586564; font-size: 13px; }

/* loadout */
#loadout { position: relative; padding: var(--section-space) 0; background: var(--carbon); }
#loadout .loadout-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 430px); gap: 48px; align-items: end; }
#loadout .loadout-head .section-intro { margin: 0; }
#loadout .loadout-matrix { display: grid; grid-template-columns: minmax(180px, 0.5fr) minmax(360px, 1.1fr) minmax( 220px, 0.64fr ); margin-top: 70px; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
#loadout .loadout-types { border-right: 1px solid var(--line-dark); }
#loadout .loadout-types article { min-height: 128px; padding: 24px 28px 24px 0; border-bottom: 1px solid var(--line-dark); }
#loadout .loadout-types article:last-child { border-bottom: 0; }
#loadout .loadout-types span { display: block; margin-bottom: 8px; color: var(--signal); font-size: 12px; font-weight: 900; letter-spacing: 0.1em; }
#loadout .loadout-types h3 { margin: 0 0 8px; font-size: 19px; }
#loadout .loadout-types p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 1.65; }
#loadout .loadout-media { position: relative; overflow: hidden; background: var(--steel); clip-path: polygon(6% 0, 100% 0, 94% 100%, 0 100%); }
#loadout .loadout-media img { height: 100%; min-height: 512px; object-fit: cover; object-position: center; filter: grayscale(0.65) contrast(1.12) brightness(0.7); transition: filter var(--transition), transform 900ms ease; }
#loadout .loadout-media:hover img { filter: grayscale(0.15) contrast(1.08) brightness(0.82); transform: scale(1.025); }
#loadout .loadout-readout { display: flex; flex-direction: column; justify-content: space-between; padding: 32px 0 32px 34px; }
#loadout .readout-block { padding: 0 0 24px; border-bottom: 1px solid var(--line-dark); }
#loadout .readout-block:last-child { padding-bottom: 0; border-bottom: 0; }
#loadout .readout-block span { color: var(--warning); font-size: 12px; font-weight: 900; letter-spacing: 0.1em; }
#loadout .readout-block strong { display: block; margin: 6px 0 8px; font-size: 20px; }
#loadout .readout-block p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 1.7; }
#loadout .loadout-statement { display: grid; grid-template-columns: minmax(180px, 0.5fr) minmax(0, 1.7fr); gap: 32px; margin-top: 40px; }
#loadout .loadout-statement span { color: var(--signal); font-size: 14px; font-weight: 900; }
#loadout .loadout-statement p { max-width: 900px; margin: 0; color: #c4cdcc; font-size: clamp(19px, 2vw, 28px); font-weight: 600; line-height: 1.55; }

/* maps */
#maps { padding: var(--section-space) 0; background: var(--steel); }
#maps .maps-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 450px); gap: 48px; align-items: end; }
#maps .maps-head .section-intro { margin: 0; }
#maps .map-route { position: relative; margin-top: 66px; padding: 38px 0; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
#maps .route-line { position: absolute; top: 50%; right: 4%; left: 4%; height: 2px; background: var(--signal); }
#maps .route-line::after { position: absolute; top: -5px; right: 0; width: 12px; height: 12px; background: var(--warning); content: ""; transform: rotate(45deg); }
#maps .route-list { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); padding: 0; margin: 0; list-style: none; }
#maps .route-list li { position: relative; padding-top: 32px; color: #a9b5b4; font-size: 14px; }
#maps .route-list li::before { position: absolute; top: -5px; left: 0; width: 12px; height: 12px; border: 2px solid var(--signal); background: var(--steel); content: ""; }
#maps .route-list li:nth-child(2)::before, #maps .route-list li:nth-child(4)::before { border-color: var(--warning); }
#maps .route-list strong { display: block; margin-bottom: 5px; color: #fff; font-size: 16px; }
#maps .zone-list { display: grid; grid-template-columns: 1.15fr 0.75fr 1fr; gap: 12px; margin-top: 42px; }
#maps .zone-figure { position: relative; margin: 0; overflow: hidden; background: var(--carbon); }
#maps .zone-figure:nth-child(2) { margin-top: 52px; }
#maps .zone-figure img { aspect-ratio: 4/5; height: 100%; object-fit: cover; filter: saturate(0.58) contrast(1.12); transition: filter var(--transition), transform 800ms ease; }
#maps .zone-figure:first-child img { object-position: center 50%; }
#maps .zone-figure:nth-child(2) img { object-position: center 58%; }
#maps .zone-figure:nth-child(3) img { object-position: center 48%; }
#maps .zone-figure:hover img { filter: saturate(0.9) contrast(1.06); transform: scale(1.02); }
#maps .zone-figure figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; gap: 16px; padding: 18px 20px; background: rgba(9, 13, 14, 0.9); border-top: 2px solid var(--signal); color: #b8c3c2; font-size: 13px; }
#maps .zone-figure:nth-child(2) figcaption { border-color: var(--warning); }
#maps .zone-figure strong { color: #fff; font-size: 15px; }

/* enemy */
#enemy { padding: var(--section-space) 0; background: var(--paper); color: var(--graphite); }
#enemy .enemy-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 440px); gap: 48px; align-items: end; }
#enemy .enemy-head .section-intro { margin: 0; color: #4f5c5b; }
#enemy .enemy-console { display: grid; grid-template-columns: minmax(190px, 0.48fr) minmax(360px, 1.05fr) minmax( 260px, 0.62fr ); margin-top: 64px; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
#enemy .enemy-tabs { display: flex; flex-direction: column; border-right: 1px solid var(--line-light); }
#enemy .enemy-tab { position: relative; flex: 1; min-height: 118px; padding: 20px 28px 20px 0; border: 0; border-bottom: 1px solid var(--line-light); background: transparent; color: #53605f; text-align: left; cursor: pointer; transition: color var(--transition), padding-left var(--transition), background-color var(--transition); }
#enemy .enemy-tab:last-child { border-bottom: 0; }
#enemy .enemy-tab::before { position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: var(--warning); content: ""; transform: scaleY(0); transition: transform var(--transition); }
#enemy .enemy-tab span { display: block; margin-bottom: 6px; color: var(--warning-dark); font-size: 12px; font-weight: 900; letter-spacing: 0.08em; }
#enemy .enemy-tab strong { color: inherit; font-size: 18px; }
#enemy .enemy-tab:hover, #enemy .enemy-tab.is-active { padding-left: 20px; background: #e2e7e2; color: var(--graphite); }
#enemy .enemy-tab.is-active::before { transform: scaleY(1); }
#enemy .enemy-media { position: relative; min-height: 520px; overflow: hidden; background: var(--steel); }
#enemy .enemy-media img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: top center; filter: saturate(0.62) contrast(1.12); transition: opacity 220ms ease, transform 600ms ease; }
#enemy .enemy-media.is-changing img { opacity: 0.25; transform: scale(1.02); }
#enemy .enemy-detail { display: flex; flex-direction: column; justify-content: space-between; padding: 36px 0 36px 38px; }
#enemy .enemy-meta { color: var(--signal-dark); font-size: 13px; font-weight: 900; letter-spacing: 0.08em; }
#enemy .enemy-detail h3 { margin: 16px 0 18px; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; }
#enemy .enemy-detail p { margin: 0; color: #4f5b5a; font-size: 15px; }
#enemy .enemy-directive { margin-top: 36px; padding-top: 20px; border-top: 3px solid var(--warning); }
#enemy .enemy-directive strong { display: block; margin-bottom: 8px; }
#enemy .enemy-directive span { color: #556261; font-size: 14px; }

/* boss */
#boss { position: relative; min-height: 760px; overflow: hidden; background: var(--graphite); }
#boss .boss-background { position: absolute; inset: 0; }
#boss .boss-background::after { position: absolute; inset: 0; background: rgba(5, 8, 9, 0.54); content: ""; }
#boss .boss-background img { height: 100%; object-fit: cover; object-position: center 54%; filter: saturate(0.45) contrast(1.18); }
#boss .boss-layout { position: relative; z-index: 2; display: grid; min-height: 760px; grid-template-columns: minmax(0, 1fr) minmax(290px, 440px); gap: 60px; align-items: end; padding-top: 100px; padding-bottom: 80px; }
#boss .boss-title { max-width: 780px; }
#boss .boss-title .section-kicker { color: var(--warning); }
#boss .boss-title .section-title { font-size: clamp(34px, 4.2vw, 58px); }
#boss .boss-title p { max-width: 600px; margin: 26px 0 0; color: #bcc6c5; }
#boss .boss-protocol { background: rgba(9, 13, 14, 0.9); border-top: 4px solid var(--warning); }
#boss .boss-protocol article { padding: 22px 26px; border-bottom: 1px solid var(--line-dark); }
#boss .boss-protocol article:last-child { border-bottom: 0; }
#boss .boss-protocol span { color: var(--signal); font-size: 12px; font-weight: 900; letter-spacing: 0.1em; }
#boss .boss-protocol h3 { margin: 5px 0 8px; font-size: 19px; }
#boss .boss-protocol p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 1.65; }

/* updates */
#updates { padding: var(--section-space) 0; background: var(--mist); color: var(--graphite); }
#updates .updates-head { max-width: 820px; }
#updates .updates-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(56px, 7vw, 112px); margin-top: 68px; }
#updates .update-column-title { display: flex; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 14px; border-bottom: 4px solid var(--graphite); font-size: 19px; }
#updates .update-column-title span { color: var(--warning-dark); font-size: 13px; }
#updates .update-list { margin: 0; padding: 0; list-style: none; }
#updates .update-list li { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 24px; padding: 25px 0; border-bottom: 1px solid var(--line-light); }
#updates .update-list time { color: #667170; font-size: 13px; font-weight: 800; }
#updates .update-list h3 { margin: 0 0 8px; font-size: 18px; }
#updates .update-list p { margin: 0; color: #52605f; font-size: 15px; line-height: 1.7; }
#updates .journal-list { margin: 0; padding: 0; list-style: none; counter-reset: journal; }
#updates .journal-list li { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 20px; padding: 25px 0; border-bottom: 1px solid var(--line-light); counter-increment: journal; }
#updates .journal-list li::before { color: var(--signal-dark); font-size: 13px; font-weight: 900; content: "0" counter(journal); }
#updates .journal-list h3 { margin: 0 0 8px; font-size: 18px; }
#updates .journal-list p { margin: 0; color: #52605f; font-size: 15px; }
#updates .updates-actions { display: flex; gap: 12px; margin-top: 34px; }
#updates .updates-actions .action-link { border-color: var(--graphite); }
#updates .updates-actions .action-link:hover { border-color: var(--signal); }

/* entry */
#entry { padding: clamp(88px, 11vw, 170px) 0; background: var(--warning); color: var(--graphite); }
#entry .entry-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.55fr); gap: 56px; align-items: end; }
#entry .entry-label { margin: 0 0 18px; font-size: 14px; font-weight: 900; letter-spacing: 0.1em; }
#entry .entry-title { max-width: 900px; margin: 0; font-size: clamp(30px, 4vw, 54px); line-height: 1.25; letter-spacing: -0.045em; }
#entry .entry-copy { margin: 0; padding-left: 26px; border-left: 4px solid var(--graphite); font-weight: 600; }
#entry .entry-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
#entry .entry-actions .action-link { border-color: var(--graphite); }
#entry .entry-actions .action-link:hover { background: var(--graphite); border-color: var(--graphite); color: var(--signal); }

/* footer */
footer.site-footer { background: var(--graphite); color: var(--mist); }
footer .footer-brand { padding-top: clamp(64px, 8vw, 110px); padding-bottom: clamp(48px, 7vw, 72px); border-bottom: 1px solid var(--line-dark); }
footer .footer-brand strong { display: block; max-width: 1100px; font-size: clamp(22px, 6vw, 48px); font-weight: 900; line-height: 1.1; letter-spacing: -0.055em; }
footer .footer-brand span { display: block; margin-top: 15px; color: var(--signal); font-size: 16px; font-weight: 700; letter-spacing: 0.1em; }
footer .footer-axis { display: grid; grid-template-columns: 1fr auto; gap: 42px; align-items: center; min-height: 104px; }
footer .footer-nav { display: flex; flex-wrap: wrap; gap: 12px 30px; }
footer .footer-nav a { color: #aab5b4; font-size: 14px; font-weight: 700; transition: color var(--transition); }
footer .footer-nav a:hover { color: var(--signal); }
footer .footer-note { color: #778483; font-size: 13px; text-align: right; }

@media (max-width: 1280px) {
	:root { --page-pad: 40px; }
	header.site-header { min-height: 850px; }
	header .hero { min-height: 772px; padding-top: 78px; }
	header .hero-stage { min-height: 500px; }
	header .hero-media { left: 13%; }
	header .hero-overlay { width: 68%; }
	#world .world-layout { gap: 72px; }
	#loadout .loadout-matrix { grid-template-columns: 210px minmax(340px, 1fr) 250px; }
	#enemy .enemy-console { grid-template-columns: 210px minmax(340px, 1fr) 270px; }
}
@media (max-width: 960px) {
	:root { --page-pad: 30px; --section-space: 100px; }
	header .nav-shell { grid-template-columns: 1fr auto; }
	header .primary-nav { position: fixed; inset: 78px 0 auto 0; z-index: 30; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 20px 30px 32px; background: var(--graphite); border-bottom: 1px solid var(--line-dark); }
	header .primary-nav.is-open { display: flex; }
	header .primary-nav a { padding: 16px 0; border-bottom: 1px solid var(--line-dark); font-size: 16px; }
	header .primary-nav a::after { display: none; }
	header .nav-status { display: none; }
	header .menu-toggle { display: block; justify-self: end; }
	header .hero-heading { grid-template-columns: 1fr; gap: 26px; }
	header .hero-summary { max-width: 600px; }
	header .hero-stage { min-height: 550px; }
	header .hero-code { top: auto; bottom: 106px; width: 150px; }
	header .hero-media { left: 0; bottom: 98px; clip-path: polygon(5% 5%, 100% 0, 100% 100%, 0 100%); }
	header .hero-overlay { right: 0; bottom: 0; width: 100%; }
	header .hero-actions { bottom: 112px; left: 18px; width: 190px; }
	#world .world-layout { grid-template-columns: 1fr; gap: 52px; }
	#world .world-index { display: grid; grid-template-columns: 250px 1fr; gap: 40px; }
	#world .world-index ol { margin-top: 0; }
	#world .world-copy { grid-template-columns: 1fr 0.65fr; }
	#combat .combat-layout { grid-template-columns: 1fr; gap: 54px; }
	#combat .combat-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
	#combat .combat-heading .section-intro { margin-top: 0; }
	#loadout .loadout-head, #maps .maps-head, #enemy .enemy-head { grid-template-columns: 1fr; gap: 25px; }
	#loadout .loadout-matrix { grid-template-columns: 190px minmax(0, 1fr); }
	#loadout .loadout-readout { grid-column: 1/-1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; padding: 32px 0; border-top: 1px solid var(--line-dark); }
	#loadout .readout-block { padding: 0 20px 0 0; border-right: 1px solid var(--line-dark); border-bottom: 0; }
	#loadout .readout-block:last-child { border-right: 0; }
	#enemy .enemy-console { grid-template-columns: 190px minmax(0, 1fr); }
	#enemy .enemy-detail { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 30px 0; border-top: 1px solid var(--line-light); }
	#enemy .enemy-directive { margin-top: 0; }
	#boss .boss-layout { grid-template-columns: 1fr; align-content: end; }
	#boss .boss-protocol { display: grid; grid-template-columns: repeat(3, 1fr); }
	#boss .boss-protocol article { border-right: 1px solid var(--line-dark); border-bottom: 0; }
	#boss .boss-protocol article:last-child { border-right: 0; }
	#updates .updates-layout { gap: 54px; }
}
@media (max-width: 768px) {
	:root { --page-pad: 22px; --section-space: 82px; }
	body { font-size: 16px; }
	header.site-header { min-height: auto; }
	header .nav-shell { min-height: 68px; }
	header .primary-nav { inset: 68px 0 auto 0; padding-right: 22px; padding-left: 22px; }
	header .hero { min-height: 820px; padding-top: 54px; padding-bottom: 30px; }
	header h1 { max-width: 580px; }
	header .hero-summary { padding-left: 18px; }
	header .hero-stage { min-height: 548px; margin-top: 40px; }
	header .hero-media { top: 0; bottom: 170px; }
	header .hero-code { display: none; }
	header .hero-actions { right: 0; bottom: 110px; left: 0; flex-direction: row; width: auto; }
	header .hero-actions .action-link { width: auto; flex: 1; }
	header .hero-overlay { grid-template-columns: 1fr; }
	header .hero-overlay p { min-height: auto; padding: 13px 16px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
	header .hero-overlay p:last-child { border-bottom: 0; }
	#world .world-index { grid-template-columns: 1fr; gap: 20px; }
	#world .world-index ol { display: grid; grid-template-columns: repeat(3, 1fr); }
	#world .world-index li { display: block; padding: 15px 12px; border-right: 1px solid var(--line-light); }
	#world .world-index li:last-child { border-right: 0; }
	#world .world-index span { display: block; margin-bottom: 6px; }
	#world .world-copy { grid-template-columns: 1fr; gap: 34px; }
	#world .world-media { margin-top: 48px; }
	#world .world-media img { aspect-ratio: 4/3; }
	#combat .combat-heading { grid-template-columns: 1fr; gap: 18px; }
	#combat .combat-row { grid-template-columns: 48px minmax(0, 1fr); gap: 18px; }
	#combat .combat-row p { grid-column: 2; }
	#combat .combat-media { padding-left: 0; }
	#combat .combat-media::before, #combat .combat-media::after { display: none; }
	#loadout .loadout-matrix { grid-template-columns: 1fr; }
	#loadout .loadout-types { display: grid; grid-template-columns: repeat(2, 1fr); border-right: 0; border-bottom: 1px solid var(--line-dark); }
	#loadout .loadout-types article { min-height: auto; padding: 22px; border-right: 1px solid var(--line-dark); }
	#loadout .loadout-types article:nth-child(2) { border-right: 0; }
	#loadout .loadout-media { clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%); }
	#loadout .loadout-media img { min-height: 430px; }
	#loadout .loadout-readout { grid-template-columns: 1fr; }
	#loadout .readout-block { padding: 0 0 22px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
	#loadout .loadout-statement { grid-template-columns: 1fr; gap: 12px; }
	#maps .route-list { grid-template-columns: repeat(2, 1fr); gap: 34px 12px; }
	#maps .route-line { display: none; }
	#maps .route-list li { padding: 18px 0 0 22px; border-top: 1px solid var(--line-dark); }
	#maps .route-list li::before { top: 14px; }
	#maps .zone-list { grid-template-columns: 1fr 1fr; }
	#maps .zone-figure:first-child { grid-column: 1/-1; }
	#maps .zone-figure:first-child img { aspect-ratio: 16/9; }
	#maps .zone-figure:nth-child(2) { margin-top: 0; }
	#enemy .enemy-console { grid-template-columns: 1fr; }
	#enemy .enemy-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-right: 0; border-bottom: 1px solid var(--line-light); }
	#enemy .enemy-tab { min-height: 104px; padding: 15px; border-right: 1px solid var(--line-light); border-bottom: 0; }
	#enemy .enemy-tab:last-child { border-right: 0; }
	#enemy .enemy-tab:hover, #enemy .enemy-tab.is-active { padding-left: 15px; }
	#enemy .enemy-tab::before { top: auto; right: 0; bottom: 0; width: auto; height: 4px; transform: scaleX(0); }
	#enemy .enemy-tab.is-active::before { transform: scaleX(1); }
	#enemy .enemy-media { min-height: 460px; }
	#enemy .enemy-detail { grid-template-columns: 1fr; gap: 24px; }
	#boss { min-height: 850px; }
	#boss .boss-layout { min-height: 850px; padding-top: 80px; padding-bottom: 48px; }
	#boss .boss-protocol { grid-template-columns: 1fr; }
	#boss .boss-protocol article { border-right: 0; border-bottom: 1px solid var(--line-dark); }
	#updates .updates-layout { grid-template-columns: 1fr; }
	#entry .entry-layout { grid-template-columns: 1fr; gap: 34px; }
	#entry .entry-copy { max-width: 620px; }
	footer .footer-axis { grid-template-columns: 1fr; gap: 24px; padding-top: 30px; padding-bottom: 30px; }
	footer .footer-note { text-align: left; }
}
@media (max-width: 500px) {
	:root { --page-pad: 17px; --section-space: 70px; }
	body { font-size: 16px; }
	.section-title { font-size: 30px; }
	.action-link { width: 100%; min-height: 50px; }
	header .brand-mark { max-width: 190px; font-size: 13px; }
	header .menu-toggle { min-width: 72px; }
	header .hero { min-height: 790px; padding-top: 42px; }
	header h1 { font-size: 36px; letter-spacing: -0.045em; }
	header h1 span { font-size: 17px; }
	header .hero-kicker { font-size: 12px; }
	header .hero-summary { font-size: 15px; }
	header .hero-stage { min-height: 500px; margin-top: 32px; }
	header .hero-media { bottom: 202px; clip-path: polygon(0 4%, 100% 0, 100% 100%, 0 96%); }
	header .hero-media img { object-position: 58% center; }
	header .hero-actions { bottom: 124px; flex-direction: column; gap: 7px; }
	header .hero-overlay { bottom: 0; }
	header .hero-overlay p { padding: 9px 13px; font-size: 12px; }
	header .hero-overlay strong { display: inline; margin-right: 7px; }
	#world .world-index ol { grid-template-columns: 1fr; }
	#world .world-index li { display: grid; grid-template-columns: 42px 1fr; border-right: 0; }
	#world .world-media img { aspect-ratio: 1/1; object-position: 58% center; }
	#world .world-media figcaption { grid-template-columns: 1fr; gap: 2px; }
	#combat .combat-row { grid-template-columns: 40px 1fr; padding: 24px 0; }
	#combat .combat-caption { display: block; }
	#combat .combat-caption span { display: block; margin-top: 5px; }
	#loadout .loadout-types { grid-template-columns: 1fr; }
	#loadout .loadout-types article { border-right: 0; }
	#loadout .loadout-media img { min-height: 350px; }
	#maps .route-list { grid-template-columns: 1fr; gap: 10px; }
	#maps .zone-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
	#maps .zone-figure { min-width: 82vw; scroll-snap-align: start; }
	#maps .zone-figure:first-child { min-width: 88vw; }
	#maps .zone-figure:first-child img, #maps .zone-figure img { aspect-ratio: 4/5; }
	#enemy .enemy-tabs { grid-template-columns: 1fr; }
	#enemy .enemy-tab { min-height: auto; padding: 15px 14px; border-right: 0; border-bottom: 1px solid var(--line-light); }
	#enemy .enemy-tab:last-child { border-bottom: 0; }
	#enemy .enemy-tab span { display: inline; margin-right: 8px; }
	#enemy .enemy-media { min-height: 390px; }
	#boss .boss-title .section-title { font-size: 36px; }
	#boss .boss-background img { object-position: 58% center; }
	#updates .update-list li { grid-template-columns: 1fr; gap: 5px; }
	#updates .updates-actions { flex-direction: column; }
	#entry .entry-title { font-size: 34px; }
	#entry .entry-actions { flex-direction: column; }
	footer .footer-brand strong { font-size: 40px; }
	footer .footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto; transition-duration: 0.01ms; animation-duration: 0.01ms; animation-iteration-count: 1; }
	.reveal { opacity: 1; transform: none; }
	.clip-reveal { clip-path: none; }
}