/* Shared visual language: paper, ink, crystal blue, restrained gold. */
:root{--ink:#213647;--muted:#63717b;--accent:#246580;--line:#d9e1e4;--paper:#fcfcf9;--soft:#edf3f5;--gold:#a58a51;--ffrs-header-height:72px;color-scheme:light}
html{scroll-padding-top:94px;scroll-behavior:smooth}body{background:var(--paper)!important;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.65}*{box-sizing:border-box}a{color:inherit}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}:focus-visible{outline:3px solid #3384a5!important;outline-offset:3px}h1,h2,h3,h4{color:var(--ink);text-align:left;font-weight:650;line-height:1.4}h1{font:600 clamp(27px,3vw,36px)/1.35 "Songti SC","Noto Serif SC",serif;letter-spacing:.04em}h2{font:600 23px/1.4 "Songti SC","Noto Serif SC",serif}h3{font-size:17px}h4{font-size:15px}p{line-height:1.75}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:.18em}.breadcrumbs{font-size:12px;color:var(--muted);margin-bottom:24px}.note,.hint{color:var(--muted)}.section-heading{justify-content:space-between}.section-heading>span{position:static}.section-heading .eyebrow{text-align:left}.skip{position:fixed;top:-80px;left:20px;z-index:3000;padding:10px;background:white}.skip:focus{top:10px}
.ffrs-global-header{position:sticky!important;top:0!important;z-index:1000!important;height:72px!important;min-height:72px!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid var(--line)!important;background:#fffffff2!important;backdrop-filter:blur(14px);color:var(--ink)!important;font:14px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif!important;text-align:left!important;box-shadow:none!important}.ffrs-global-header *{box-sizing:border-box;margin:0}.ffrs-header-inner{max-width:1440px;height:72px;padding:0 32px;margin:auto;display:flex;align-items:center;gap:32px}.ffrs-brand{display:flex!important;align-items:center;gap:10px!important;text-decoration:none!important;flex-shrink:0;color:var(--ink)!important}.ffrs-brand-logo{width:56px;height:40px;object-fit:contain;background:white}.ffrs-brand-text{font:600 19px/1.4 "Songti SC",serif;letter-spacing:1px;color:var(--ink)}.ffrs-brand-text small{display:block;font:10px/1.7 sans-serif;letter-spacing:3px;color:var(--muted)}.ffrs-global-header .ffrs-primary-nav{display:flex;align-items:center;gap:24px;height:100%;overflow:visible;flex:1}.ffrs-primary-nav>a,.ffrs-nav-group>summary{display:flex;align-items:center;gap:9px;min-height:44px;font-size:13px;white-space:nowrap;text-decoration:none;color:var(--ink);background:none;border:0;border-bottom:2px solid transparent}.ffrs-primary-nav>a:hover,.ffrs-nav-group>summary:hover{color:var(--accent)}.ffrs-primary-nav>a[aria-current]{border-bottom-color:var(--accent);font-weight:700}.ffrs-nav-group{position:relative;background:none!important;border:0!important;padding:0!important;margin:0!important}.ffrs-nav-group>summary{list-style:none}.ffrs-nav-group>summary::-webkit-details-marker{display:none}.ffrs-nav-group[open]>summary{color:var(--accent)}.ffrs-nav-panel{position:absolute;top:calc(100% + 8px);left:-16px;min-width:184px;padding:8px;background:white;border:1px solid var(--line);box-shadow:0 12px 36px #17324315;border-radius:6px}.ffrs-nav-panel a{display:block;padding:10px 12px;font-size:13px;white-space:nowrap;text-decoration:none;border-radius:3px}.ffrs-nav-panel a:hover,.ffrs-nav-panel a[aria-current]{background:var(--soft);color:var(--accent)}.ffrs-search-open,.ffrs-menu-toggle{border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink);font-size:12px;padding:8px 12px;min-height:38px;white-space:nowrap}.ffrs-search-open kbd{margin-left:20px;color:var(--muted)}.ffrs-menu-toggle{display:none}.ffrs-search-dialog{width:min(600px,calc(100vw - 32px));max-height:78dvh;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);margin:auto;box-shadow:0 24px 80px #10283633}.ffrs-search-dialog::backdrop{background:#12253380;backdrop-filter:blur(4px)}.ffrs-search-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.ffrs-search-top h2{margin:0;font-size:24px}.ffrs-search-top button{border:0;background:transparent;font-size:12px;color:var(--muted);padding:10px}.ffrs-search-dialog label{display:block;font-size:12px;color:var(--muted)}.ffrs-search-dialog input{width:100%;padding:13px;margin:8px 0;border:1px solid #a6bcc8;border-radius:4px;background:white;color:var(--ink)}.ffrs-search-count{font-size:12px;color:var(--muted)}.ffrs-search-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.ffrs-search-links a{display:flex;justify-content:space-between;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);text-decoration:none}.ffrs-search-links a:hover{color:var(--accent)}.ffrs-search-links small{color:var(--muted);font-size:10px}
/* Consistent, compact content hierarchy without changing data-table columns. */
.has-shared-header main:not(.map-main){padding-top:26px}.has-shared-header :is(.wrap,.characters-wrap,.summon-wrap,.mainline-wrap,.slates-wrap,.ancient-wrap){max-width:1360px;margin-left:auto;margin-right:auto}.has-shared-header :is(.intro,.page-intro,.character-index-heading){margin-top:0;margin-bottom:24px}.has-shared-header :is(.intro,.page-intro) h1{margin:0 0 8px}.has-shared-header :is(.intro,.page-intro) p{font-size:14px}.has-shared-header :is(.tabs,.tabbar,.profile-tabs,.section-nav){border-color:var(--line)}.has-shared-header :is(.tabs,.tabbar,.profile-tabs,.section-nav) :is(a,button){font-size:13px}.has-shared-header :is(.data-table,.item-list-row,.skill-row,.quest-row){font-size:13px}.has-shared-header :is(.item-list-head,.shop-list-head,.quest-list-head,.skill-list-head,.skill-columns,thead){background:var(--soft)!important;color:var(--ink)}.has-shared-header :is(.filters,.filter-bar,.toolbar){gap:10px}.has-shared-header :is(.filters,.filter-bar,.toolbar) :is(input,select){min-height:36px;border-color:var(--line);background:white;color:var(--ink)}.has-shared-header :is(.panel,.table-wrap,.list-table,.summon-card,.stage-card,.ancient-row){border-color:var(--line);box-shadow:none}.has-shared-header :is(.table-wrap,.list-table){border-radius:5px}.has-shared-header :is(.chapter-limit,.badge,.tag){border-color:#d7e1e2}.has-shared-header footer{font-size:12px;color:var(--muted)}
/* Character dossiers: compact switcher, official artwork, readable overview. */
.character-index-heading h1{margin:0 0 6px}.character-index-heading p{margin:0}.character-grid{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;gap:6px!important;margin-bottom:22px}.character-card{display:flex!important;align-items:center!important;flex-direction:column!important;gap:6px!important;padding:10px 4px!important;border:1px solid transparent!important;background:transparent!important;text-align:center!important;border-radius:5px!important}.character-card.active{background:#edf4f7!important;border-color:#adc6d1!important}.character-card img{width:48px!important;height:48px!important}.character-card strong{font-size:13px}.character-card span,.character-card small{display:none!important}.character-grid+.note{display:none}.character-hero{display:grid!important;grid-template-columns:260px 1fr!important;gap:28px!important;padding:24px 30px!important;background:linear-gradient(110deg,#eef4f8,#fcfcf9 70%)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-top:2px solid var(--gold)!important;border-radius:6px!important}.character-hero .hero-identity{margin:0!important;display:flex!important;flex-direction:column;align-items:center}.character-hero img.character-portrait{width:240px!important;height:260px!important;object-fit:contain!important;image-rendering:auto!important;border:0!important;background:transparent!important;filter:drop-shadow(0 8px 8px #21364715)}.character-hero h2{font-size:28px!important;color:var(--ink)!important;margin:8px 0 0!important;text-align:center}.character-hero .name-en{color:var(--muted)!important;margin:2px 0;text-align:center;letter-spacing:.08em;font-size:12px}.character-hero .hero-information{min-width:0;align-self:center}.character-hero .hero-facts{border-color:var(--line)!important}.character-hero :is(p,dt,dd,strong,small){color:inherit}.character-hero .badge{background:white;color:var(--ink)}.character-bio{font-size:15px;line-height:1.9;max-width:60ch;margin:18px 0 8px}.profile-credit{font-size:11px;color:var(--muted);margin:5px 0 18px}.profile-credit a{color:var(--accent)}.character-hero>.chapter-limit{grid-column:1/-1;margin:0}.character-tabs{margin-top:24px!important}.character-section h2{font-size:22px}.character-section h3{font-size:17px}.character-section .fields{background:white}.summon-banner,.dossier{background:linear-gradient(120deg,#183443,#284e63)!important;border-color:#73909b!important}.summon-banner h1,.dossier h1{color:#fff!important}.dossier h2,.summon-banner h2{color:#fff!important}.summon-card{background:white!important}.supplement-note{padding:14px 18px;border-left:2px solid var(--gold);background:#f4f7f8;font-size:13px;margin:18px 0}.supplement-note p{margin:5px 0}.supplement-note a{color:var(--accent)}
@media(max-width:1100px){.ffrs-header-inner{gap:20px;padding:0 20px}.ffrs-global-header .ffrs-primary-nav{gap:16px}.ffrs-brand-text{font-size:17px}.ffrs-search-open kbd{display:none}.ffrs-search-open{padding:8px}}
@media(max-width:850px){.ffrs-global-header{height:64px!important;min-height:64px!important}.ffrs-header-inner{height:64px;padding:0 16px;gap:10px}.ffrs-brand-logo{width:44px;height:36px}.ffrs-brand-text{font-size:17px}.ffrs-brand-text small{font-size:8px;letter-spacing:2px}.ffrs-menu-toggle{display:block;margin-left:auto}.ffrs-global-header .ffrs-primary-nav{display:none;position:absolute;top:64px;left:0;right:0;height:auto;max-height:calc(100dvh - 64px);overflow-y:auto;padding:16px 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px #18344318}.ffrs-global-header.menu-open .ffrs-primary-nav{display:block}.ffrs-primary-nav>a{padding:10px 0}.ffrs-nav-group>summary{padding:10px 0;justify-content:space-between}.ffrs-nav-panel{position:static;box-shadow:none;border:0;border-left:2px solid var(--line);padding:0 8px;margin:0 0 12px}.ffrs-nav-panel a{padding:12px}.ffrs-search-open{font-size:11px}.character-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.character-hero{grid-template-columns:160px 1fr!important;gap:18px!important;padding:20px!important}.character-hero img.character-portrait{width:150px!important;height:220px!important}.ffrs-search-links{grid-template-columns:1fr}.has-shared-header main:not(.map-main){padding-top:20px}}
@media(max-width:560px){.character-hero{grid-template-columns:1fr!important;padding:20px!important}.character-hero .hero-identity{flex-direction:row!important;justify-content:center;gap:24px}.character-hero img.character-portrait{width:150px!important;height:210px!important}.character-bio{font-size:14px}.character-hero h2{font-size:25px!important}.ffrs-search-dialog{padding:20px}.has-shared-header :is(.wrap,.characters-wrap,.summon-wrap,.mainline-wrap,.slates-wrap,.ancient-wrap){width:100%;padding-left:16px;padding-right:16px}.table-wrap{max-width:100%;overflow-x:auto!important}.section-heading{gap:12px}.section-heading>span{font-size:11px}.ffrs-brand{gap:6px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{margin:0;font-size:14px}.ffrs-global-header{letter-spacing:normal!important}.directory-link.ffrs-map-link{justify-content:flex-start}.directory-link.ffrs-map-link>span:not([aria-hidden]){flex:1}.directory-link.ffrs-map-link>span[aria-hidden]{display:none}.character-hero .profile-credit{color:#63717b}.character-hero .character-commands a{color:#315b70;border-color:#c8d8de;background:#fff}.character-section-nav{display:flex;overflow-x:auto;gap:4px;margin-top:24px;padding-bottom:0;border-bottom:1px solid var(--line)}.character-section-nav a{white-space:nowrap;background:none;padding:12px 16px;border:0;border-radius:0;font-size:13px}.character-section-nav a[aria-selected=true]{background:#edf3f5;color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.character-section .section-heading{justify-content:space-between}.character-section .section-heading>span{position:static;font-size:12px}.character-section :is(h3,h4){text-align:left}.character-section h3{font-size:18px!important}.character-section h4{font-size:15px!important}.character-section .note{font-size:12px}.character-section .stats{background:#f3f6f7}.character-section .fields div{border-color:var(--line)}
.summon-route{display:grid;grid-template-columns:250px minmax(0,1fr);gap:30px;margin:18px 0 24px;padding:22px 24px;background:#f0f5f7;border:1px solid var(--line);border-top:2px solid var(--gold);border-radius:5px}.summon-route h3{font-size:18px;margin:6px 0}.summon-route p{margin:0}.summon-route ol{margin:0;padding-left:22px}.summon-route li{font-size:14px;padding:2px 0 7px 6px}.summon-route li::marker{color:var(--accent);font-family:Georgia,serif}.summon-chapter{display:block;font-size:12px;color:var(--accent);margin:6px 0}.local-route-notes{margin:12px 0}.local-route-notes summary{font-size:12px;color:var(--muted)}.summon-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important}.summon-card .card-heading{padding:20px!important}.summon-card .card-info{padding:0 20px 16px}.summon-card .card-bottom{padding:12px 20px;font-size:12px;background:#f7f9fa!important}.summon-card h2{font-size:22px;text-align:left}.summon-card .face{width:76px;height:76px}.summon-banner .banner-facts{background:transparent}.summon-banner .eyebrow{color:#a9d1df}.summon-wrap .mechanics{background:#edf3f5;color:var(--ink)}.summon-wrap .intro-total{color:var(--accent)}.summon-wrap .tabbar{overflow-x:auto;flex-wrap:nowrap}.summon-wrap .tabbar button{white-space:nowrap;flex-shrink:0}.vision-banner{background:linear-gradient(120deg,#183443,#284e63)!important;border-color:#73909b!important}.vision-banner h1{color:white}.vision-banner .hero-desc{color:#deebef}.vision-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important}.vision-card{background:#fff!important;border-color:var(--line)!important;box-shadow:none!important;border-radius:5px!important}.vision-card:hover{border-color:#94b4c5!important}.vision-card h2,.vision-card h3{color:var(--ink);text-align:left}.index-controls{background:#f3f6f7!important;border-color:var(--line)!important}.archive-note{background:none!important;border:0!important;border-left:2px solid var(--gold)!important;font-size:12px!important}.archive-note>a{display:none}.index-heading h1{margin:0 0 8px}.index-total{color:var(--accent)}.role-filters button[aria-pressed=true]{background:#244d64!important;color:white!important;border-color:#244d64!important}.vision-reference{margin-top:14px;font-size:12px;color:var(--muted)}.vision-reference a{color:var(--accent)}.page-shell :is(.skill-desc,.timeline p,.relation-card>p,.dialog-description,.story-line>p){color:#405765!important;font-size:14px!important;line-height:1.75!important}.page-shell :is(.inline-note,.count-label,.list-heading){color:#627581!important;font-size:12px}.page-shell .content-section .section-head h2{font-size:24px}.page-shell .content-section .section-head>div>p:last-child:not(.section-kicker){font-size:13px}.archive-tabs>button{font-size:13px!important}.archive-tabs>button[aria-selected=true]{color:#244d64!important;border-color:#a6bdc9!important;box-shadow:inset 0 2px #5485a0!important}.page-shell .skill-row{min-height:60px}.page-shell .skill-unlock{font-size:12px;color:#526874}.page-shell .hero-actions .button{font-size:12px}.page-shell .skill-title h4{font-size:14px!important}.page-shell .profile-meta{font-size:12px;color:var(--muted)}
@media(max-width:850px){.vision-grid,.summon-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.summon-route{grid-template-columns:1fr;gap:12px}.summon-route h3{font-size:18px}}
@media(max-width:560px){.vision-grid,.summon-grid{grid-template-columns:1fr!important}.summon-route{padding:18px}.summon-route li{font-size:13px}.summon-wrap .intro{display:block}.summon-wrap .intro-total{display:none}.page-shell .profile-meta{font-size:11px}.page-shell .skill-row{min-height:70px}.page-shell .vision-banner .banner-resonance{min-width:0}.summon-wrap .mechanics{grid-template-columns:1fr}.summon-wrap .mechanics>div{border-right:0;border-bottom:1px solid var(--line);padding:10px 14px}.page-shell .skill-desc{font-size:13px!important}}
.character-hero .hero-identity figcaption{position:static!important;background:none!important;padding:0!important;width:auto!important;color:var(--ink)!important;text-align:center}.character-hero .badges .badge{background:#fff!important;border:1px solid #c9d8df!important;color:#36596c!important}.character-hero .profile-facts{color:#63717b!important}.character-hero>.chapter-limit{padding:10px 14px!important;background:#f2f6f7!important;border:0!important;border-left:2px solid #a3bdca!important}.character-hero>.chapter-limit h3{font-size:12px!important}.character-hero>.chapter-limit p{font-size:11px!important;margin:2px 0 0!important}.character-hero .hero-identity .name-en{color:#63717b!important}.character-hero .badge .native-icon{filter:none!important}.character-hero .character-commands a{font-size:13px!important}
.vision-entry{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px 16px;padding:20px;color:var(--ink);text-decoration:none}.vision-entry .card-avatar{width:64px!important;height:64px!important;align-self:center}.vision-entry-main{min-width:0}.vision-entry .card-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vision-entry h2{margin:0;font:600 21px/1.4 "Songti SC",serif}.vision-entry .role-tag{background:#edf3f5;color:#476878;border:0;font-size:10px;padding:2px 5px}.vision-entry .card-english{font-size:11px;color:var(--muted);display:block;margin:2px 0 6px}.vision-entry .card-attrs{display:flex;gap:8px;flex-wrap:wrap}.vision-entry .attribute{display:flex;align-items:center;gap:3px;font-size:11px}.vision-entry .attribute img{width:16px;height:16px}.vision-entry-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px;display:flex;justify-content:space-between;gap:12px;font-size:13px}.vision-entry-bottom small{font-size:11px;color:var(--muted);margin-right:8px}.vision-entry:hover h2{color:var(--accent)}
.ffrs-nav-group:has(a[aria-current])>summary{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:22px 0!important}.pagination button{padding:8px 12px;min-height:38px;border:1px solid var(--line);background:white;border-radius:4px;color:var(--ink)}.pagination button[aria-current]{background:#244d64;color:white;border-color:#244d64}.pagination button:disabled{opacity:.4;cursor:default}.pagination>span{font-size:12px;color:var(--muted)}

/* Keep the character overview compact enough to reach its tabs without a long scroll. */
.character-hero .hero-identity{padding-bottom:0!important}
@media(min-width:851px){.character-hero{grid-template-columns:230px 1fr!important;gap:14px!important;padding:16px 24px!important}.character-hero img.character-portrait{width:210px!important;height:210px!important}}
@media(max-width:600px){.hero .hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;padding:12px 0}.hero .hero-stats>div{min-width:0}.hero .hero-stats strong{font-size:21px}.hero .hero-stats span{font-size:10px;line-height:1.5}}
