/* Forever uses local artwork and CSS motion only: no video or remote fonts. */
body.forever-era::before, body.page-forever_armory::before, body.page-forever_home::before {
  background:radial-gradient(ellipse at 85% 0,#426c6340,transparent 55%),linear-gradient(#0c1c25,#080e15);
}
.fv-portal { --fv-gold:#d8b77b; --fv-muted:#b5b5aa; --fv-line:#d7be7b40; padding:24px 0 24px; color:#f4efdf; }
.fv-hero {
  position:relative; isolation:isolate; overflow:hidden; min-height:490px; display:flex; align-items:center;
  border:1px solid var(--fv-line); border-radius:2px; padding:clamp(30px,4.6vw,66px);
  background:linear-gradient(90deg,#071720f5,#071720a8 45%,#07172008 80%),url('art/forever-dawn-display.webp') center 48%/cover;
  box-shadow:0 24px 65px #0004;
}
.fv-hero::after { content:""; position:absolute; inset:10px; pointer-events:none; border:1px solid #ead6a515; border-radius:3px; }
.fv-hero-copy { max-width:550px; }
.fv-kicker { color:var(--fv-gold); letter-spacing:.16em; text-transform:uppercase; font-size:.7rem; font-weight:700; line-height:1.7; }
.fv-hero h1 { font:500 clamp(2.8rem,5.3vw,5.3rem)/1.03 Georgia,serif; letter-spacing:-.045em; max-width:12ch; margin:23px 0; text-wrap:balance; }
.fv-hero p:not(.fv-kicker) { color:#d1dedb; max-width:38ch; font-size:1.05rem; line-height:1.8; }
.fv-hero-links { display:flex; flex-wrap:wrap; gap:22px; align-items:center; margin-top:30px; font-size:.86rem; }
.fv-hero-links>a { color:var(--fv-gold); }
.fv-hero-links>a.primary { color:#201b10; }
.fv-landscape-caption { position:absolute; right:30px; bottom:28px; color:#f7dfb2; font-size:.58rem; letter-spacing:.2em; text-shadow:0 1px 8px #000; }
.fv-landscape-caption>span { padding:0 9px; }
.fv-hero-compact { min-height:280px; display:block; padding:40px; }
.fv-hero-compact h1 { font-size:clamp(2.2rem,4vw,3.4rem); max-width:20ch; }
.fv-status { font-size:.75rem; color:var(--fv-gold); border:1px solid var(--fv-line); padding:6px 10px; border-radius:20px; }

.fv-panel,.fv-notice { margin:24px 0; padding:clamp(22px,3vw,36px); border:1px solid var(--fv-line); border-radius:2px; background:linear-gradient(135deg,#142731ed,#0b1722f5); box-shadow:inset 0 1px #ffffff05; }
.fv-panel h2,.fv-section-title h2 { font:500 clamp(1.6rem,2.5vw,2.2rem)/1.25 Georgia,serif; margin:8px 0 22px; text-wrap:balance; }
.fv-home-search { display:grid; grid-template-columns:210px minmax(0,1fr); gap:0 30px; align-items:center; margin:16px 0 44px; padding:28px 32px 22px; scroll-margin-top:30px; }
.fv-home-search h2 { font-size:1.7rem; margin:8px 0 0; max-width:14ch; }
.fv-home-search .fv-muted { grid-column:2; margin-top:13px; font-size:.71rem; }
.fv-form { display:grid; grid-template-columns:minmax(110px,.72fr) repeat(2,minmax(130px,1fr)) auto; gap:12px; align-items:end; min-width:0; }
.fv-form label { display:grid; gap:8px; margin:0; color:#dce5e5; font-size:.78rem; }
.fv-form input,.fv-form select { width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid #637c8880; background:#091821; color:#eef4f1; border-radius:4px; font:inherit; }
.fv-form input::placeholder { color:#92a7b0; font-size:.75rem; }
.fv-form button { min-height:46px; white-space:nowrap; font-size:.83rem; gap:12px; }
.fv-muted { font-size:.82rem; line-height:1.8; color:var(--fv-muted); margin:18px 0 0; }
.fv-section-title { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:32px 0 20px; }
.fv-section-title h2 { margin-bottom:0; }
.fv-section-title>a { font-size:.8rem; white-space:nowrap; padding-bottom:5px; }
.fv-section-rule { height:1px; flex:1; background:linear-gradient(90deg,var(--fv-line),transparent); margin:0 0 12px 20px; }
.fv-destinations { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; }
.fv-destination { position:relative; overflow:hidden; min-width:0; padding:27px 30px; border:1px solid var(--fv-line); border-radius:2px; background:linear-gradient(120deg,#183443,#0c1a25 85%); text-decoration:none; color:#f2e9d5; transition:transform .2s,border-color .2s; }
.fv-destination:hover { transform:translateY(-3px); border-color:var(--fv-gold); text-decoration:none; }
.fv-destination h3 { font:1.65rem/1.2 Georgia,serif; margin:18px 0 10px; text-wrap:balance; }
.fv-destination p { color:var(--fv-muted); font-size:.87rem; line-height:1.75; max-width:40ch; }
.fv-destination-number { display:block; color:#cbb684; font:600 .64rem/1.5 system-ui,sans-serif; letter-spacing:.15em; }
.fv-destination-guild { grid-row:span 2; display:flex; flex-direction:column; justify-content:space-between; min-height:360px; background:linear-gradient(90deg,#0b1b28ee,#0b1b2880),linear-gradient(0deg,#09151df7,transparent),url('art/guilds-banner.webp') 70% center/cover; }
.fv-destination-guild h3 { max-width:16ch; font-size:2.15rem; margin-top:55px; }
.fv-destination-guild p { color:#c2cdd0; }
.fv-destination-action { display:inline-flex; align-items:center; gap:24px; margin-top:22px; font-size:.82rem; color:var(--fv-gold); }
.fv-destination-catalog { background:radial-gradient(ellipse at right top,#6a54362a,transparent 70%),linear-gradient(120deg,#292b25,#101c24); }
.fv-card-arrow { position:absolute; top:25px; right:30px; color:var(--fv-gold); }
.fv-journal { margin-top:42px; }
.fv-news-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:0 30px; border-block:1px solid var(--fv-line); }
.fv-news-card { padding:25px 0; min-width:0; }
.fv-news-card:last-child { border-top:1px solid var(--fv-line); }
.fv-news-featured { grid-row:span 2; border-right:1px solid var(--fv-line); padding:32px 35px 32px 0; display:flex; flex-direction:column; align-items:flex-start; }
.fv-news-meta { display:flex; flex-wrap:wrap; gap:8px 22px; font-size:.65rem; color:#9db0b8; }
.fv-news-meta>span { color:var(--fv-gold); letter-spacing:.12em; }
.fv-news-card h3 { font:1.3rem/1.35 Georgia,serif; margin:15px 0 12px; text-wrap:balance; }
.fv-news-featured h3 { font-size:2rem; margin-top:24px; }
.fv-news-card h3 a { color:#eee5d2; }
.fv-news-card p { font-size:.85rem; line-height:1.8; color:var(--fv-muted); }
.fv-news-featured p { font-size:.92rem; }
.fv-news-read { display:inline-flex; align-items:center; gap:14px; font-size:.75rem; margin-top:18px; }
.fv-news-featured .fv-news-read { margin-top:auto; padding-top:30px; }

/* Results and the portal use the same visual vocabulary. */
.fv-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:24px 0; border-bottom:1px solid var(--fv-line); padding-bottom:10px; }
.fv-tabs a { padding:12px 18px; color:#bfced5; text-decoration:none; border-radius:5px; }
.fv-tabs a[aria-current],.fv-tabs a:hover { color:var(--fv-gold); background:#d6b76e12; }
.fv-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.fv-entry { padding:22px; border:1px solid #8aa4ae25; border-radius:2px; background:#07141c80; overflow-wrap:anywhere; }
.fv-entry h3,.fv-entry h4 { margin:10px 0; font:1.2rem/1.45 Georgia,serif; color:var(--fv-gold); }
.fv-entry p { color:var(--fv-muted); line-height:1.7; }
.fv-entry small { display:block; color:var(--fv-muted); font-size:.75rem; }
.fv-entry ul { padding-left:18px; line-height:1.8; }
.fv-facts { display:flex; flex-wrap:wrap; gap:24px; margin:24px 0; }
.fv-facts>div { padding-right:24px; border-right:1px solid var(--fv-line); }
.fv-facts dt { color:var(--fv-muted); font-size:.75rem; }
.fv-facts dd { margin:7px 0; font-size:1.3rem; color:var(--fv-gold); }
.fv-notice { border-left:3px solid #e4c17e; background:#272319; }
.fv-result-heading { display:flex; align-items:center; gap:20px; }
.fv-result-heading img { border:1px solid var(--fv-gold); border-radius:2px; }
.fv-portal :is(a,input,select,button):focus-visible { outline:2px solid #f4dba5; outline-offset:4px; }

/* This control is rendered exclusively by the local preview server. */
.fv-preview-bar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 0 16px; color:#a6b5ba; font-size:.75rem; }
.fv-preview-bar button { display:inline-flex; gap:10px; align-items:center; min-height:38px; padding:7px 13px; border:1px solid #a78c575c; border-radius:5px; background:#14212b; color:#ebd19a; font-size:.75rem; }

/* One self-removing, skippable transition at launch; no polling or video. */
.forever-opening { position:fixed; z-index:10000; inset:0; overflow:hidden; display:grid; place-items:center; background:#061017; color:#ffe4a7; opacity:0; animation:fv-opening 6.4s ease forwards; }
.forever-opening-scene,.forever-opening-light,.forever-opening-ring { position:absolute; pointer-events:none; }
.forever-opening-scene { inset:-3%; background-position:center; background-size:cover; }
.forever-opening-before { background-image:linear-gradient(#08121c70,#050d13cc),url('art/outland-hero.webp'); animation:fv-old-world 6.4s ease both; }
.forever-opening-after { background-image:linear-gradient(#07172035,#0717209c),url('art/forever-dawn-display.webp'); animation:fv-new-world 6.4s ease both; }
.forever-opening-light { inset:-40%; background:radial-gradient(ellipse,#ffe7ac73 0,#f4c66d26 24%,transparent 58%); animation:fv-opening-light 6.4s ease both; }
.forever-opening-ring { width:min(68vw,570px); aspect-ratio:1; border:1px solid #f0d29f60; border-radius:50%; box-shadow:0 0 0 15px #f0d29f06,0 0 0 16px #f0d29f16,inset 0 0 80px #d8ae5c14; animation:fv-opening-ring 6.4s ease both; }
.forever-opening-copy { position:relative; text-align:center; max-width:90vw; text-shadow:0 3px 30px #0008; animation:fv-opening-copy 6.4s ease both; }
.forever-opening-eyebrow { display:block; text-transform:uppercase; letter-spacing:.4em; font-size:clamp(.6rem,1vw,.8rem); }
.forever-opening-title { display:block; margin:18px 0 10px; font:500 clamp(4rem,12vw,10rem)/1.08 Georgia,serif; letter-spacing:-.055em; }
.forever-opening-subtitle { display:block; font-size:clamp(.75rem,1.3vw,1rem); letter-spacing:.16em; color:#f2e7cf; }
.forever-opening-line { display:block; width:100px; height:1px; margin:28px auto 0; background:linear-gradient(90deg,transparent,#f7e4ae,transparent); }
.forever-opening-skip { position:absolute; bottom:32px; right:32px; min-height:44px; background:#071720b3; color:#f3dfb7; border:1px solid #e0c28b6b; padding:10px 18px; font-size:.8rem; }
.forever-opening-skip:focus-visible { outline:2px solid #ffe9b3; }
html.fv-transition-active { overflow:hidden; }
@keyframes fv-opening { 0%{opacity:0} 7%,87%{opacity:1} 100%{opacity:0} }
@keyframes fv-old-world { 0%,18%{opacity:1;transform:scale(1)} 53%,100%{opacity:0;transform:scale(1.09)} }
@keyframes fv-new-world { 0%,20%{opacity:0;transform:scale(1.09)} 60%,100%{opacity:1;transform:scale(1)} }
@keyframes fv-opening-light { 0%,8%{opacity:0;transform:scale(.2)} 42%{opacity:1;transform:scale(1)} 78%,100%{opacity:0;transform:scale(1.3)} }
@keyframes fv-opening-ring { 0%,17%{opacity:0;transform:scale(.8) rotate(-12deg)} 40%,76%{opacity:.8} 100%{opacity:0;transform:scale(1.08) rotate(8deg)} }
@keyframes fv-opening-copy { 0%,27%{opacity:0;transform:translateY(20px)} 48%,84%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-8px)} }

@media(min-width:901px) {
  .forever-era .navigation { flex-wrap:nowrap; gap:18px; padding-block:0; min-height:80px; }
  .forever-era .navigation .nav-links { display:flex; grid-template-columns:none; order:0; width:auto; flex:1; gap:4px; justify-content:flex-end; margin:0; padding:0; border:0; }
  .forever-era .navigation .nav-links>a { flex:0 1 auto; padding-inline:9px; font-size:.79rem; gap:7px; white-space:nowrap; }
  .forever-era .navigation .nav-links>a>span { overflow-wrap:normal; }
  .forever-era .navigation .brand { font-size:1rem; gap:10px; }
}
@media(max-width:1100px) {
  .fv-home-search { grid-template-columns:1fr; gap:20px; padding:26px; }
  .fv-search-title { display:flex; align-items:center; gap:22px; }
  .fv-home-search h2 { max-width:none; font-size:1.65rem; margin:0; }
  .fv-home-search .fv-muted { grid-column:1; margin:0; }
  .fv-hero { min-height:455px; }
}
@media(max-width:900px) {
  .forever-era .navigation .nav-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; width:100%; }
  .forever-era .navigation .nav-links>a { padding:8px 3px; font-size:.69rem; }
  .fv-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fv-form { grid-template-columns:1fr 1fr; }
  .fv-hero-copy { max-width:440px; }
  .fv-hero { min-height:420px; }
  .fv-landscape-caption { display:none; }
  .fv-destination { padding:23px; }
  .fv-news-featured { padding-right:25px; }
  .fv-news-featured h3 { font-size:1.7rem; }
}
@media(max-width:620px) {
  .fv-portal { padding-top:16px; }
  .fv-grid,.fv-destinations,.fv-news-grid,.fv-form { grid-template-columns:1fr; }
  .fv-hero { padding:35px 24px; min-height:420px; background-position:60% center; }
  .fv-hero h1 { font-size:3.2rem; }
  .fv-hero p:not(.fv-kicker) { font-size:.95rem; }
  .fv-hero-compact { min-height:280px; }
  .fv-hero-compact h1 { font-size:2.5rem; }
  .fv-hero-links { align-items:stretch; flex-direction:column; gap:18px; }
  .fv-hero-links>a { text-align:center; }
  .fv-search-title { display:block; }
  .fv-search-title h2 { margin-top:7px; }
  .fv-home-search { margin:14px 0 30px; padding:24px; gap:20px; }
  .fv-home-search .fv-muted { line-height:1.7; }
  .fv-section-title { align-items:start; flex-wrap:wrap; gap:12px; margin:25px 0 18px; }
  .fv-section-rule { display:none; }
  .fv-destination-guild { grid-row:auto; min-height:315px; }
  .fv-destination-guild h3 { font-size:1.9rem; }
  .fv-destination-realms,.fv-destination-catalog { min-height:165px; }
  .fv-news-featured { grid-row:auto; padding:25px 0; border-right:0; border-bottom:1px solid var(--fv-line); }
  .fv-news-featured h3 { font-size:1.7rem; }
  .fv-tabs a { padding:10px; }
  .fv-preview-bar { font-size:.65rem; }
  .fv-preview-bar button { font-size:.68rem; padding:6px 9px; }
  .forever-opening-ring { width:83vw; }
  .forever-opening-skip { right:20px; bottom:24px; }
}

/* Forever: a restrained atlas, with bronze rules and readable stone surfaces. */
body.forever-era::before { background:radial-gradient(ellipse at 90% 0,#2b3a312e,transparent 55%),#101411; }
.forever-era .topbar { background:#111612f5; border-bottom:1px solid #8d795044; box-shadow:none; }
.forever-era main.wrap { max-width:1320px; }
.fv-portal { --fv-line:#b49a6940; --fv-gold:#d8b77b; --fv-muted:#b5b5aa; padding-top:30px; }
.fv-hero { min-height:540px; border:0; border-bottom:1px solid var(--fv-line); border-radius:0; box-shadow:none; background-image:linear-gradient(90deg,#101710fa,#101710c2 38%,#10171018 78%),url('art/forever-dawn-display.webp'); }
.fv-hero::after { inset:18px; border-color:#dfc79726; border-radius:0; }
.fv-hero h1 { color:#f0eadb; font-size:clamp(3.5rem,6.7vw,6.3rem); letter-spacing:-.055em; }
.fv-hero p:not(.fv-kicker) { color:#c4c9b9; line-height:1.75; }
.fv-hero-copy { max-width:560px; }
.fv-home-search { position:relative; margin:0 0 55px; border-top:0; background:#1b211b; border-color:#b49a6960; box-shadow:0 14px 30px #0002; }
.fv-panel { background:#191e19; box-shadow:none; }
.fv-form input,.fv-form select,.fv-filter input { background:#111611; border:1px solid #626858; border-radius:2px; color:#eeeadd; }
.fv-destinations { grid-template-columns:1.3fr 1fr; gap:1px; background:var(--fv-line); border:1px solid var(--fv-line); }
.fv-destination { border:0; border-radius:0; background:#1a211b; }
.fv-destination:hover { transform:none; background-color:#232c23; }
.fv-destination-guild { background:linear-gradient(0deg,#111a13 3%,#111a1370 75%),url('art/guilds-banner.webp') center/cover; }
.fv-destination-realms { background:linear-gradient(110deg,#19231c,#26372a); }
.fv-destination-catalog { background:linear-gradient(110deg,#27291f,#1d231b); }
.fv-destination-number { letter-spacing:.12em; color:#bda77d; }
.fv-destination h3 { color:#eee6d1; }
.fv-news-card h3 a { color:#eee6d1; }
.fv-news-card h3 a:hover { color:var(--fv-gold); }
.fv-hero-compact { min-height:230px; padding:35px 42px; background-position:center 60%; }
.fv-hero-compact h1 { font-size:clamp(2.5rem,4.5vw,4rem); margin:14px 0; max-width:none; }
.fv-hero-compact p:not(.fv-kicker) { max-width:65ch; font-size:.95rem; }
.fv-hero-guild { background-image:linear-gradient(90deg,#111910f5,#111910a0 65%,#11191045),url('art/guilds-banner.webp'); }
.fv-hero-catalog { background-image:linear-gradient(90deg,#191c13f5,#191c13aa 65%,#191c1355),url('art/workshop-banner.webp'); }
.fv-tabs { gap:0; margin:0 0 28px; padding:0; background:#171e18; }
.fv-tabs a { border-radius:0; padding:17px 24px; border-bottom:2px solid transparent; }
.fv-tabs a[aria-current] { border-bottom-color:var(--fv-gold); background:#b49a6912; }
.fv-grid { gap:1px; background:var(--fv-line); border:1px solid var(--fv-line); }
.fv-entry { background:#141b15; border:0; border-radius:0; padding:20px 24px; }
.fv-entry:hover { background:#1d271e; }
.fv-entry[hidden] { display:none; }
.fv-entry h3,.fv-entry h4 { margin:5px 0 9px; }
.fv-entry small { color:#a8af9f; }
.fv-entry p { font-size:.86rem; }
.fv-equipment img { float:left; margin:0 14px 12px 0; border:1px solid #aa9368; border-radius:3px; }
.fv-equipment ul { clear:both; font-size:.82rem; color:#b7c6a6; }
.fv-facts { background:#111710; padding:22px; border-block:1px solid var(--fv-line); gap:22px; }
.fv-facts dd { font-family:Georgia,serif; }
.fv-filter { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:25px 0 16px; font-size:.8rem; }
.fv-filter input { min-height:44px; padding:10px 14px; flex:1; min-width:180px; }
.fv-filter output { color:var(--fv-muted); min-width:90px; }
.forever-era .forever-news-hero { border-radius:2px; border-color:#b49a6940; }
.forever-era .forever-page :is(.forever-news-card,.forever-release,.forever-faq) { border-radius:2px; }
@media(max-width:900px) { .fv-hero { min-height:430px; } .fv-hero-compact { min-height:235px; } }
@media(max-width:620px) {
 .fv-portal { padding-top:14px; } .fv-hero { min-height:420px; padding:35px 24px; } .fv-hero h1 { font-size:3.5rem; }
 .fv-hero-compact { min-height:240px; } .fv-hero-compact h1 { font-size:2.6rem; }
 .fv-home-search { margin-bottom:35px; } .fv-destinations { grid-template-columns:1fr; }
 .fv-tabs a { padding:14px 12px; font-size:.8rem; } .fv-filter { align-items:stretch; } .fv-filter label { width:100%; }
 .fv-facts { padding:16px; } .fv-entry { padding:18px; }
}
@media(prefers-reduced-motion:reduce) { .fv-destination { transition:none; } .forever-opening,.forever-opening * { animation:none; } }
@media(forced-colors:active) { .fv-hero,.fv-panel,.fv-destination,.fv-entry { border:1px solid CanvasText; } }

.fv-collection { display:flex; align-items:center; gap:18px; padding:25px; background:#172018; text-decoration:none; color:#e5dbc4; }
.fv-collection h3 { flex:1; font:1.15rem/1.3 Georgia,serif; margin:0; }
.fv-collection-index { color:#9b8c69; font:.7rem/1.5 system-ui,sans-serif; }
.fv-collection:hover { background:#263326; color:#f3d69b; text-decoration:none; }
.forever-era .forever-launch-panel { background:#182019e8; border-color:#b49a6940; }
.forever-era .forever-launch-panel h2 { font:2rem/1.2 Georgia,serif; color:#ece2cc; }
.forever-era .forever-launch-panel p { color:#c1c4b4; line-height:1.7; }

body.forever-era { background-color:#101411; }
