TorturedCats (talk | contribs) No edit summary |
TorturedCats (talk | contribs) No edit summary |
||
| (25 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
- Legacy pages may still use .sinfar-page / .sf-card / .sf-heading | - Legacy pages may still use .sinfar-page / .sf-card / .sf-heading | ||
============================================================ */ | ============================================================ */ | ||
| Line 11: | Line 13: | ||
1. DESIGN TOKENS | 1. DESIGN TOKENS | ||
============================================================ */ | ============================================================ */ | ||
:root { | :root { | ||
| Line 19: | Line 22: | ||
--sf-bg-panel-soft: rgba(216, 180, 106, .08); | --sf-bg-panel-soft: rgba(216, 180, 106, .08); | ||
--sf-bg-hero: linear-gradient(135deg, #21150f, #3a2417); | --sf-bg-hero: linear-gradient(135deg, #21150f, #3a2417); | ||
--sf-border: rgba(216, 180, 106, .28); | --sf-border: rgba(216, 180, 106, .28); | ||
--sf-border-strong: rgba(216, 180, 106, .48); | --sf-border-strong: rgba(216, 180, 106, .48); | ||
--sf-border-muted: rgba(244, 239, 230, .09); | --sf-border-muted: rgba(244, 239, 230, .09); | ||
--sf-text: #f4efe6; | --sf-text: #f4efe6; | ||
| Line 30: | Line 35: | ||
--sf-link: #8fc6ff; | --sf-link: #8fc6ff; | ||
--sf-link-hover: #b8d6ff; | --sf-link-hover: #b8d6ff; | ||
--sf-red: #9f4b3e; | --sf-red: #9f4b3e; | ||
| Line 35: | Line 41: | ||
--sf-blue: #334e7a; | --sf-blue: #334e7a; | ||
--sf-purple: #60456f; | --sf-purple: #60456f; | ||
--sf-radius-sm: 7px; | --sf-radius-sm: 7px; | ||
| Line 40: | Line 47: | ||
--sf-gap: 8px; | --sf-gap: 8px; | ||
} | } | ||
| Line 45: | Line 54: | ||
2. SOVEREIGN PAGE SHELL | 2. SOVEREIGN PAGE SHELL | ||
============================================================ */ | ============================================================ */ | ||
.sf-page, | .sf-page, | ||
| Line 57: | Line 67: | ||
box-shadow: 0 0 22px rgba(0,0,0,.35); | box-shadow: 0 0 22px rgba(0,0,0,.35); | ||
} | } | ||
.sf-page *, | .sf-page *, | ||
| Line 62: | Line 73: | ||
box-sizing: border-box; | box-sizing: border-box; | ||
} | } | ||
.sf-page a, | .sf-page a, | ||
| Line 73: | Line 85: | ||
color: var(--sf-link); | color: var(--sf-link); | ||
} | } | ||
.sf-page a:hover, | .sf-page a:hover, | ||
| Line 79: | Line 92: | ||
text-decoration: underline; | text-decoration: underline; | ||
} | } | ||
.sf-page code, | .sf-page code, | ||
| Line 88: | Line 102: | ||
padding: 1px 4px; | padding: 1px 4px; | ||
} | } | ||
| Line 93: | Line 109: | ||
3. TYPOGRAPHY | 3. TYPOGRAPHY | ||
============================================================ */ | ============================================================ */ | ||
.sf-page h1, | .sf-page h1, | ||
| Line 102: | Line 119: | ||
color: var(--sf-gold-bright); | color: var(--sf-gold-bright); | ||
} | } | ||
.sf-section-title, | .sf-section-title, | ||
| Line 112: | Line 130: | ||
line-height: 1.2; | line-height: 1.2; | ||
} | } | ||
.sf-subheading { | .sf-subheading { | ||
| Line 118: | Line 137: | ||
font-size: 1.15rem; | font-size: 1.15rem; | ||
} | } | ||
.sf-muted { | .sf-muted { | ||
color: var(--sf-text-muted); | color: var(--sf-text-muted); | ||
} | } | ||
.sf-label, | .sf-label, | ||
| Line 128: | Line 149: | ||
font-weight: 700; | font-weight: 700; | ||
} | } | ||
.sf-center { | .sf-center { | ||
text-align: center; | text-align: center; | ||
} | } | ||
| Line 137: | Line 161: | ||
4. HEROES | 4. HEROES | ||
============================================================ */ | ============================================================ */ | ||
.sf-hero, | .sf-hero, | ||
| Line 147: | Line 172: | ||
text-align: center; | text-align: center; | ||
} | } | ||
.sf-hero h1, | .sf-hero h1, | ||
| Line 156: | Line 182: | ||
line-height: 1.15; | line-height: 1.15; | ||
} | } | ||
.sf-hero p, | .sf-hero p, | ||
| Line 163: | Line 190: | ||
margin: 0; | margin: 0; | ||
} | } | ||
.sf-eyebrow { | .sf-eyebrow { | ||
| Line 171: | Line 199: | ||
font-weight: 800; | font-weight: 800; | ||
} | } | ||
.sf-hero-main { | .sf-hero-main { | ||
padding: 22px; | padding: 22px; | ||
} | } | ||
.sf-hero-main h1 { | .sf-hero-main h1 { | ||
font-size: 2.35rem; | font-size: 2.35rem; | ||
} | } | ||
| Line 184: | Line 216: | ||
5. GRIDS / STATUS TILES | 5. GRIDS / STATUS TILES | ||
============================================================ */ | ============================================================ */ | ||
.sf-grid-2, | .sf-grid-2, | ||
| Line 195: | Line 228: | ||
margin-bottom: 14px; | margin-bottom: 14px; | ||
} | } | ||
.sf-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } | .sf-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } | ||
| Line 202: | Line 236: | ||
.sf-start-status { grid-template-columns: repeat(4, minmax(0, 1fr)); } | .sf-start-status { grid-template-columns: repeat(4, minmax(0, 1fr)); } | ||
.sf-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } | .sf-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } | ||
.sf-status-grid > div, | .sf-status-grid > div, | ||
| Line 210: | Line 245: | ||
padding: 8px 10px; | padding: 8px 10px; | ||
} | } | ||
.sf-status-grid b, | .sf-status-grid b, | ||
| Line 215: | Line 251: | ||
color: var(--sf-gold-bright); | color: var(--sf-gold-bright); | ||
} | } | ||
.sf-status-grid span, | .sf-status-grid span, | ||
| Line 220: | Line 257: | ||
color: var(--sf-text); | color: var(--sf-text); | ||
} | } | ||
| Line 225: | Line 264: | ||
6. QUICKBARS / INDEX GRIDS | 6. QUICKBARS / INDEX GRIDS | ||
============================================================ */ | ============================================================ */ | ||
.sf-quickbar, | .sf-quickbar, | ||
| Line 232: | Line 272: | ||
margin: 0 0 14px; | margin: 0 0 14px; | ||
} | } | ||
.sf-quickbar { | .sf-quickbar { | ||
grid-template-columns: repeat(2, minmax(0, 1fr)); | grid-template-columns: repeat(2, minmax(0, 1fr)); | ||
} | } | ||
.sf-index-grid { | .sf-index-grid { | ||
grid-template-columns: repeat(3, minmax(0, 1fr)); | grid-template-columns: repeat(3, minmax(0, 1fr)); | ||
} | } | ||
.sf-quickbar > div, | .sf-quickbar > div, | ||
| Line 251: | Line 294: | ||
color: var(--sf-text); | color: var(--sf-text); | ||
} | } | ||
.sf-quickbar b, | .sf-quickbar b, | ||
| Line 258: | Line 302: | ||
/* ============================================================ | |||
/* | |||
============================================================ | |||
6A. REFERENCE MANUAL LAYOUT | |||
Reusable side directory for long technical documentation. | |||
============================================================ */ | |||
.sf-manual-layout { | |||
display: grid; | |||
grid-template-columns: 240px minmax(0, 1fr); | |||
gap: 16px; | |||
align-items: start; | |||
} | |||
.sf-manual-content { | |||
min-width: 0; | |||
} | |||
.sf-manual-content [id] { | |||
scroll-margin-top: 18px; | |||
} | |||
.sf-manual-toc { | |||
position: sticky; | |||
top: 12px; | |||
max-height: calc(100vh - 24px); | |||
overflow-y: auto; | |||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-md); | |||
padding: 12px; | |||
} | |||
.sf-manual-toc-title { | |||
color: var(--sf-gold-bright); | |||
font-size: 1rem; | |||
font-weight: 900; | |||
margin: 0 0 8px; | |||
padding-bottom: 7px; | |||
border-bottom: 1px solid var(--sf-border-strong); | |||
} | |||
.sf-manual-toc-group { | |||
color: var(--sf-gold); | |||
font-size: .72rem; | |||
font-weight: 900; | |||
letter-spacing: .06em; | |||
text-transform: uppercase; | |||
margin: 12px 0 4px; | |||
} | |||
.sf-manual-toc a, | |||
.sf-manual-toc a:visited { | |||
display: block; | |||
padding: 5px 1px; | |||
color: var(--sf-link); | |||
border-bottom: 1px solid var(--sf-border-muted); | |||
font-size: .88rem; | |||
font-weight: 700; | |||
line-height: 1.25; | |||
text-decoration: none; | |||
} | |||
.sf-manual-toc a:hover { | |||
color: var(--sf-link-hover); | |||
text-decoration: none; | |||
} | |||
.sf-manual-example { | |||
background: rgba(216,180,106,.06); | |||
border: 1px solid var(--sf-border); | |||
border-left: 4px solid var(--sf-gold); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 10px 12px; | |||
margin: 7px 0 9px; | |||
} | |||
.sf-manual-example > :first-child { | |||
margin-top: 0; | |||
} | |||
.sf-manual-example > :last-child { | |||
margin-bottom: 0; | |||
} | |||
.sf-color-swatch { | |||
display: inline-block; | |||
width: 22px; | |||
height: 14px; | |||
margin-right: 7px; | |||
border: 1px solid rgba(255,255,255,.28); | |||
border-radius: 3px; | |||
vertical-align: -2px; | |||
} | |||
@media screen and (max-width: 900px) { | |||
.sf-manual-layout { | |||
grid-template-columns: 1fr; | |||
} | |||
.sf-manual-toc { | |||
position: static; | |||
max-height: none; | |||
} | |||
} | |||
/* | |||
=========================================================== | |||
7. DECISION PANELS | 7. DECISION PANELS | ||
============================================================ */ | ============================================================ */ | ||
.sf-decision-grid { | .sf-decision-grid { | ||
| Line 268: | Line 450: | ||
margin-bottom: 14px; | margin-bottom: 14px; | ||
} | } | ||
.sf-decision, | .sf-decision, | ||
| Line 278: | Line 461: | ||
padding: 12px; | padding: 12px; | ||
} | } | ||
.sf-decision-primary { | .sf-decision-primary { | ||
| Line 283: | Line 467: | ||
background: linear-gradient(135deg, rgba(60,38,20,.88), rgba(18,14,12,.78)); | background: linear-gradient(135deg, rgba(60,38,20,.88), rgba(18,14,12,.78)); | ||
} | } | ||
.sf-decision-kicker { | .sf-decision-kicker { | ||
| Line 291: | Line 476: | ||
font-weight: 800; | font-weight: 800; | ||
} | } | ||
.sf-decision h3 { | .sf-decision h3 { | ||
| Line 296: | Line 482: | ||
margin: 4px 0 6px; | margin: 4px 0 6px; | ||
} | } | ||
.sf-decision p { | .sf-decision p { | ||
| Line 301: | Line 488: | ||
color: var(--sf-text); | color: var(--sf-text); | ||
} | } | ||
| Line 306: | Line 495: | ||
8. ACTION LISTS / BUTTONS | 8. ACTION LISTS / BUTTONS | ||
============================================================ */ | ============================================================ */ | ||
.sf-action-list { | .sf-action-list { | ||
| Line 314: | Line 504: | ||
gap: 8px; | gap: 8px; | ||
} | } | ||
.sf-action-list li { | .sf-action-list li { | ||
| Line 319: | Line 510: | ||
padding: 0; | padding: 0; | ||
} | } | ||
.sf-action-list a, | .sf-action-list a, | ||
| Line 335: | Line 527: | ||
text-decoration: none; | text-decoration: none; | ||
} | } | ||
.sf-action-list a:hover, | .sf-action-list a:hover, | ||
| Line 343: | Line 536: | ||
text-decoration: none; | text-decoration: none; | ||
} | } | ||
| Line 348: | Line 543: | ||
9. TABLES | 9. TABLES | ||
============================================================ */ | ============================================================ */ | ||
.sf-table { | .sf-table { | ||
| Line 358: | Line 554: | ||
margin-bottom: 12px; | margin-bottom: 12px; | ||
} | } | ||
.sf-table th { | .sf-table th { | ||
| Line 366: | Line 563: | ||
text-align: left; | text-align: left; | ||
} | } | ||
.sf-table td { | .sf-table td { | ||
| Line 373: | Line 571: | ||
vertical-align: top; | vertical-align: top; | ||
} | } | ||
.sf-table tr:last-child td { | .sf-table tr:last-child td { | ||
border-bottom: 0; | border-bottom: 0; | ||
} | } | ||
.sf-table-scroll { | .sf-table-scroll { | ||
| Line 383: | Line 583: | ||
margin-bottom: 12px; | margin-bottom: 12px; | ||
} | } | ||
.sf-table-scroll .sf-table { | .sf-table-scroll .sf-table { | ||
| Line 388: | Line 589: | ||
margin-bottom: 0; | margin-bottom: 0; | ||
} | } | ||
.sf-value, | .sf-value, | ||
| Line 393: | Line 595: | ||
text-align: center; | text-align: center; | ||
} | } | ||
.sf-value { | .sf-value { | ||
color: #f4c96b; | color: #f4c96b; | ||
} | } | ||
.sf-good { | .sf-good { | ||
color: #9fe6bd; | color: #9fe6bd; | ||
} | } | ||
| Line 406: | Line 612: | ||
.sf-channel-table th:nth-child(1), | .sf-channel-table th:nth-child(1), | ||
.sf-channel-table td:nth-child(1) { width: 14%; } | .sf-channel-table td:nth-child(1) { width: 14%; } | ||
.sf-channel-table th:nth-child(2), | .sf-channel-table th:nth-child(2), | ||
.sf-channel-table td:nth-child(2) { width: 31%; } | .sf-channel-table td:nth-child(2) { width: 31%; } | ||
.sf-channel-table th:nth-child(3), | .sf-channel-table th:nth-child(3), | ||
.sf-channel-table td:nth-child(3) { width: 37%; } | .sf-channel-table td:nth-child(3) { width: 37%; } | ||
.sf-channel-table th:nth-child(4), | .sf-channel-table th:nth-child(4), | ||
.sf-channel-table td:nth-child(4) { width: 18%; } | .sf-channel-table td:nth-child(4) { width: 18%; } | ||
.sf-setup-table th:nth-child(1), | .sf-setup-table th:nth-child(1), | ||
.sf-setup-table td:nth-child(1) { width: 24%; } | .sf-setup-table td:nth-child(1) { width: 24%; } | ||
.sf-setup-table th:nth-child(2), | .sf-setup-table th:nth-child(2), | ||
.sf-setup-table td:nth-child(2) { width: 52%; } | .sf-setup-table td:nth-child(2) { width: 52%; } | ||
.sf-setup-table th:nth-child(3), | .sf-setup-table th:nth-child(3), | ||
.sf-setup-table td:nth-child(3) { width: 24%; } | .sf-setup-table td:nth-child(3) { width: 24%; } | ||
| Line 429: | Line 643: | ||
10. BADGES | 10. BADGES | ||
============================================================ */ | ============================================================ */ | ||
.sf-badge { | .sf-badge { | ||
| Line 439: | Line 654: | ||
white-space: nowrap; | white-space: nowrap; | ||
} | } | ||
.sf-badge-ic { background: #2f5d3a; color: #eaffef; } | .sf-badge-ic { background: #2f5d3a; color: #eaffef; } | ||
| Line 447: | Line 663: | ||
.sf-badge-support { background: #4e5563; color: #f0f3f8; } | .sf-badge-support { background: #4e5563; color: #f0f3f8; } | ||
.sf-badge-best { background: #6a5423; color: #fff0bd; } | .sf-badge-best { background: #6a5423; color: #fff0bd; } | ||
| Line 452: | Line 670: | ||
11. ALERTS / NOTES / RULES | 11. ALERTS / NOTES / RULES | ||
============================================================ */ | ============================================================ */ | ||
.sf-note, | .sf-note, | ||
| Line 462: | Line 681: | ||
margin: 8px 0; | margin: 8px 0; | ||
} | } | ||
.sf-note { | .sf-note { | ||
| Line 468: | Line 688: | ||
border-left: 4px solid var(--sf-gold); | border-left: 4px solid var(--sf-gold); | ||
} | } | ||
.sf-alert, | .sf-alert, | ||
| Line 475: | Line 696: | ||
border-left: 4px solid #d8a447; | border-left: 4px solid #d8a447; | ||
} | } | ||
.sf-alert b, | .sf-alert b, | ||
| Line 482: | Line 704: | ||
margin-bottom: 3px; | margin-bottom: 3px; | ||
} | } | ||
.sf-alert-info { | .sf-alert-info { | ||
| Line 487: | Line 710: | ||
border-left-color: #6fa8dc; | border-left-color: #6fa8dc; | ||
} | } | ||
.sf-alert-warning { | .sf-alert-warning { | ||
| Line 492: | Line 716: | ||
border-left-color: #d8a447; | border-left-color: #d8a447; | ||
} | } | ||
.sf-alert-danger, | .sf-alert-danger, | ||
| Line 498: | Line 723: | ||
border-left-color: var(--sf-red); | border-left-color: var(--sf-red); | ||
} | } | ||
.sf-rule { | .sf-rule { | ||
| Line 503: | Line 729: | ||
background: rgba(80,30,25,.30); | background: rgba(80,30,25,.30); | ||
} | } | ||
| Line 508: | Line 736: | ||
12. PROGRESS LINES | 12. PROGRESS LINES | ||
============================================================ */ | ============================================================ */ | ||
.sf-progress-line { | .sf-progress-line { | ||
| Line 515: | Line 744: | ||
margin: 0 0 14px; | margin: 0 0 14px; | ||
} | } | ||
.sf-progress-line div { | .sf-progress-line div { | ||
| Line 523: | Line 753: | ||
text-align: center; | text-align: center; | ||
} | } | ||
.sf-progress-line b { | .sf-progress-line b { | ||
| Line 534: | Line 765: | ||
margin-bottom: 4px; | margin-bottom: 4px; | ||
} | } | ||
.sf-progress-line span { | .sf-progress-line span { | ||
| Line 540: | Line 772: | ||
font-size: .88rem; | font-size: .88rem; | ||
} | } | ||
| Line 545: | Line 779: | ||
13. CODE / SCRIPTING DOCS | 13. CODE / SCRIPTING DOCS | ||
============================================================ */ | ============================================================ */ | ||
.sf-codeblock, | .sf-codeblock, | ||
| Line 558: | Line 793: | ||
line-height: 1.45; | line-height: 1.45; | ||
} | } | ||
.sf-codeblock code, | .sf-codeblock code, | ||
| Line 570: | Line 806: | ||
/* ============================================================ | |||
/* | |||
============================================================ | |||
14. IMAGES / SCREENSHOTS | 14. IMAGES / SCREENSHOTS | ||
============================================================ */ | ============================================================ */ | ||
.sf-img-frame { | .sf-img-frame { | ||
| Line 581: | Line 821: | ||
margin: 8px 0 12px; | margin: 8px 0 12px; | ||
} | } | ||
.sf-img-frame img { | .sf-img-frame img { | ||
| Line 588: | Line 829: | ||
border-radius: 4px; | border-radius: 4px; | ||
} | } | ||
/* | |||
============================================================ | |||
MAIN PAGE IMAGE SLOTS | |||
============================================================ */ | |||
.sf-img-slot{ | |||
position:relative; | |||
display:block; | |||
width:100%; | |||
overflow:hidden; | |||
border-radius:8px; | |||
border:1px solid var(--sf-border); | |||
background:#120d10; | |||
} | |||
.sf-main-page .sf-journey-img{ | |||
aspect-ratio:16/9; | |||
margin:0 0 14px; | |||
} | |||
.sf-main-page .sf-feature-img{ | |||
aspect-ratio:16/9; | |||
margin:0 0 12px; | |||
} | |||
.sf-img-slot img{ | |||
display:block; | |||
width:100%; | |||
height:100%; | |||
object-fit:cover; | |||
} | |||
| Line 594: | Line 880: | ||
Match in-game channel color identity. | Match in-game channel color identity. | ||
============================================================ */ | ============================================================ */ | ||
.sf-chan { | .sf-chan { | ||
| Line 599: | Line 886: | ||
text-shadow: 0 1px 2px rgba(0,0,0,.8); | text-shadow: 0 1px 2px rgba(0,0,0,.8); | ||
} | } | ||
.sf-chan-shout { color: #feef50; } | .sf-chan-shout { color: #feef50; } | ||
| Line 609: | Line 897: | ||
.sf-chan-build { color: #b7f520; } | .sf-chan-build { color: #b7f520; } | ||
.sf-chan-ffa { color: #20bff0; } | .sf-chan-ffa { color: #20bff0; } | ||
.sf-chan-talk { color: #fefefe; } | .sf-chan-talk { color: #fefefe; } | ||
| Line 616: | Line 905: | ||
.sf-chan-yell { color: #d92324; } | .sf-chan-yell { color: #d92324; } | ||
.sf-chan-party { color: #fefefe; } | .sf-chan-party { color: #fefefe; } | ||
| Line 621: | Line 912: | ||
16. FOOTERS | 16. FOOTERS | ||
============================================================ */ | ============================================================ */ | ||
.sf-footerlinks, | .sf-footerlinks, | ||
| Line 629: | Line 921: | ||
color: var(--sf-gold); | color: var(--sf-gold); | ||
} | } | ||
.sf-footer { | .sf-footer { | ||
| Line 635: | Line 928: | ||
padding: 12px 14px; | padding: 12px 14px; | ||
} | } | ||
| Line 641: | Line 936: | ||
Keeps older remaster pages readable without preserving chaos. | Keeps older remaster pages readable without preserving chaos. | ||
============================================================ */ | ============================================================ */ | ||
.sf-card--gold, | .sf-card--gold, | ||
| Line 647: | Line 943: | ||
border-color: var(--sf-border); | border-color: var(--sf-border); | ||
} | } | ||
.sf-card--green, | .sf-card--green, | ||
| Line 653: | Line 950: | ||
border-color: rgba(68,107,53,.72); | border-color: rgba(68,107,53,.72); | ||
} | } | ||
.sf-card--blue, | .sf-card--blue, | ||
| Line 659: | Line 957: | ||
border-color: rgba(52,87,122,.72); | border-color: rgba(52,87,122,.72); | ||
} | } | ||
.sf-card--red, | .sf-card--red, | ||
| Line 665: | Line 964: | ||
border-color: rgba(122,52,47,.72); | border-color: rgba(122,52,47,.72); | ||
} | } | ||
.sf-card--purple, | .sf-card--purple, | ||
| Line 671: | Line 971: | ||
border-color: rgba(91,59,120,.72); | border-color: rgba(91,59,120,.72); | ||
} | } | ||
.sf-heading--gold { color: var(--sf-gold-bright); border-bottom-color: var(--sf-border); } | .sf-heading--gold { color: var(--sf-gold-bright); border-bottom-color: var(--sf-border); } | ||
| Line 677: | Line 978: | ||
.sf-heading--red { color: #ff9c8f; border-bottom-color: #7a342f; } | .sf-heading--red { color: #ff9c8f; border-bottom-color: #7a342f; } | ||
.sf-heading--purple { color: #c49cff; border-bottom-color: #5b3b78; } | .sf-heading--purple { color: #c49cff; border-bottom-color: #5b3b78; } | ||
.sf-docket { | .sf-docket { | ||
| Line 686: | Line 988: | ||
margin: 9px 0 8px; | margin: 9px 0 8px; | ||
} | } | ||
.sf-docket th { | .sf-docket th { | ||
| Line 694: | Line 997: | ||
border-bottom: 1px solid var(--sf-border); | border-bottom: 1px solid var(--sf-border); | ||
} | } | ||
.sf-docket td { | .sf-docket td { | ||
| Line 700: | Line 1,004: | ||
padding: 10px 12px; | padding: 10px 12px; | ||
} | } | ||
| Line 705: | Line 1,011: | ||
18. LISTS | 18. LISTS | ||
============================================================ */ | ============================================================ */ | ||
.sf-page ul, | .sf-page ul, | ||
| Line 713: | Line 1,020: | ||
padding-left: 22px; | padding-left: 22px; | ||
} | } | ||
.sf-page li, | .sf-page li, | ||
| Line 718: | Line 1,026: | ||
margin: 2px 0; | margin: 2px 0; | ||
} | } | ||
| Line 723: | Line 1,033: | ||
19. MOBILE RULES | 19. MOBILE RULES | ||
============================================================ */ | ============================================================ */ | ||
@media screen and (max-width: 900px) { | @media screen and (max-width: 900px) { | ||
| Line 731: | Line 1,042: | ||
grid-template-columns: repeat(2, minmax(0, 1fr)); | grid-template-columns: repeat(2, minmax(0, 1fr)); | ||
} | } | ||
.sf-decision-grid, | .sf-decision-grid, | ||
| Line 737: | Line 1,049: | ||
} | } | ||
} | } | ||
@media screen and (max-width: 720px) { | @media screen and (max-width: 720px) { | ||
| Line 743: | Line 1,056: | ||
padding: 12px; | padding: 12px; | ||
} | } | ||
.sf-quickbar, | .sf-quickbar, | ||
| Line 754: | Line 1,068: | ||
grid-template-columns: 1fr; | grid-template-columns: 1fr; | ||
} | } | ||
.sf-table { | .sf-table { | ||
| Line 759: | Line 1,074: | ||
font-size: .92rem; | font-size: .92rem; | ||
} | } | ||
.sf-channel-table th:nth-child(n), | .sf-channel-table th:nth-child(n), | ||
| Line 772: | Line 1,088: | ||
Requires wrapper: <div class="sf-page sf-main-page"> | Requires wrapper: <div class="sf-page sf-main-page"> | ||
============================================================ */ | ============================================================ */ | ||
.sf-main-page { | .sf-main-page { | ||
| Line 777: | Line 1,094: | ||
margin: 0 auto; | margin: 0 auto; | ||
} | } | ||
/* ---------- Cinematic Main Hero ---------- */ | /* ---------- Cinematic Main Hero ---------- */ | ||
.sf-main-page .sf-hero-main { | .sf-main-page .sf-hero-main { | ||
position: relative; | |||
isolation: isolate; | |||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
| Line 787: | Line 1,107: | ||
align-items: center; | align-items: center; | ||
width: 100%; | |||
aspect-ratio: 16 / 9; | |||
min-height: 0; | |||
margin: 0 0 18px; | |||
padding: 64px 48px; | padding: 64px 48px; | ||
overflow: hidden; | |||
border-radius: 12px; | border-radius: 12px; | ||
background: #0b0d11; | |||
text-align: center; | |||
} | |||
/* ---------- Main Page Hero Artwork ---------- */ | |||
.sf-main-page .sf-hero-art-slot { | |||
position: absolute; | |||
inset: 0; | |||
z-index: 0; | |||
width: 100%; | |||
height: 100%; | |||
margin: 0; | |||
padding: 0; | |||
overflow: hidden; | |||
border: 0; | |||
border-radius: inherit; | |||
background: #0b0d11; | |||
} | |||
.sf-main-page .sf-hero-art-slot > a, | |||
.sf-main-page .sf-hero-art-slot > span, | |||
.sf-main-page .sf-hero-art-slot .mw-file-element { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
margin: 0; | |||
padding: 0; | |||
} | |||
.sf-main-page .sf-hero-art-slot img { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
max-width: none; | |||
margin: 0; | |||
padding: 0; | |||
object-fit: cover; | |||
object-position: center center; | |||
} | |||
/* Flat dark overlay for text readability. */ | |||
.sf-main-page .sf-hero-art-slot::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
z-index: 1; | |||
background: rgba(5, 8, 12, .48); | |||
pointer-events: none; | |||
} | |||
/* Keep hero text above the artwork and overlay. */ | |||
.sf-main-page .sf-hero-main > :not(.sf-hero-art-slot) { | |||
position: relative; | |||
z-index: 2; | |||
} | } | ||
.sf-main-page .sf-hero-main h1 { | .sf-main-page .sf-hero-main h1 { | ||
margin: 0 0 6px; | |||
color: var(--sf-gold-bright); | |||
font-size: 3.15rem; | font-size: 3.15rem; | ||
line-height: 1.08; | |||
letter-spacing: .08em; | letter-spacing: .08em; | ||
text-transform: uppercase; | text-transform: uppercase; | ||
text-shadow: | |||
0 2px 3px rgba(0,0,0,.95), | |||
0 0 14px rgba(0,0,0,.78); | |||
} | |||
.sf-main-page .sf-hero-main .sf-eyebrow, | |||
.sf-main-page .sf-hero-main p { | |||
text-shadow: 0 2px 4px rgba(0,0,0,.95); | |||
} | } | ||
.sf-main-page .sf-hero-main p { | .sf-main-page .sf-hero-main p { | ||
max-width: 680px; | max-width: 680px; | ||
margin: 0 0 12px; | |||
font-size: 1.08rem; | font-size: 1.08rem; | ||
} | } | ||
/* ---------- Main Page Journey Cards ---------- */ | /* ---------- Main Page Journey Cards ---------- */ | ||
.sf-main-page .sf-decision-grid { | .sf-main-page .sf-decision-grid { | ||
| Line 816: | Line 1,218: | ||
margin-bottom: 24px; | margin-bottom: 24px; | ||
} | } | ||
.sf-main-page .sf-decision { | .sf-main-page .sf-decision { | ||
| Line 821: | Line 1,224: | ||
padding: 22px; | padding: 22px; | ||
} | } | ||
.sf-main-page .sf-decision h3 { | .sf-main-page .sf-decision h3 { | ||
font-size: 1.45rem; | font-size: 1.45rem; | ||
} | } | ||
/* ---------- Main Page Feature Cards ---------- */ | /* ---------- Main Page Feature Cards ---------- */ | ||
.sf-main-page .sf-grid-3 { | .sf-main-page .sf-grid-3 { | ||
| Line 833: | Line 1,239: | ||
margin-bottom: 24px; | margin-bottom: 24px; | ||
} | } | ||
.sf-main-page .sf-card { | .sf-main-page .sf-card { | ||
| Line 838: | Line 1,245: | ||
padding: 20px; | padding: 20px; | ||
} | } | ||
.sf-main-page .sf-card h3 { | .sf-main-page .sf-card h3 { | ||
| Line 844: | Line 1,252: | ||
font-size: 1.25rem; | font-size: 1.25rem; | ||
} | } | ||
.sf-main-page .sf-card p { | .sf-main-page .sf-card p { | ||
margin: 0 0 10px; | margin: 0 0 10px; | ||
} | } | ||
/* ---------- Main Page Action Links ---------- */ | /* ---------- Main Page Action Links ---------- */ | ||
.sf-main-page .sf-action-links { | .sf-main-page .sf-action-links { | ||
| Line 859: | Line 1,270: | ||
line-height: 1.8; | line-height: 1.8; | ||
} | } | ||
.sf-main-page .sf-action-links a, | .sf-main-page .sf-action-links a, | ||
| Line 871: | Line 1,283: | ||
text-decoration: none; | text-decoration: none; | ||
} | } | ||
.sf-main-page .sf-action-links a:hover, | .sf-main-page .sf-action-links a:hover, | ||
| Line 877: | Line 1,290: | ||
text-decoration: underline; | text-decoration: underline; | ||
} | } | ||
/* ---------- Community Strip ---------- */ | /* ---------- Community Strip ---------- */ | ||
.sf-main-page .sf-quickbar { | .sf-main-page .sf-quickbar { | ||
| Line 885: | Line 1,300: | ||
} | } | ||
@media screen and (max-width: | /* ---------- Main Page Responsive Layout ---------- */ | ||
/* Split desktop, tablets, landscape */ | |||
@media screen and (min-width: 721px) and (max-width: 860px) { | |||
.sf-main-page .sf-decision-grid, | |||
.sf-main-page .sf-grid-3 { | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
gap: 16px; | |||
} | |||
.sf-main-page .sf-quickbar { | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
gap: 10px; | |||
} | |||
.sf-main-page .sf-decision, | |||
.sf-main-page .sf-card { | |||
min-height: 0; | |||
padding: 16px; | |||
} | |||
.sf-main-page .sf-hero-main { | |||
aspect-ratio: 16 / 9; | |||
min-height: 0; | |||
padding: 32px 20px; | |||
} | |||
.sf-main-page .sf-hero-main h1 { | |||
font-size: 2.35rem; | |||
} | |||
} | |||
/* Phones */ | |||
@media screen and (max-width: 720px) { | |||
.sf-main-page .sf-decision-grid, | .sf-main-page .sf-decision-grid, | ||
.sf-main-page .sf-grid-3, | .sf-main-page .sf-grid-3, | ||
| Line 895: | Line 1,345: | ||
.sf-main-page .sf-hero-main { | .sf-main-page .sf-hero-main { | ||
min-height: | aspect-ratio: 16 / 9; | ||
padding: | min-height: 0; | ||
padding: 24px 16px; | |||
} | } | ||
.sf-main-page .sf-hero-main h1 { | .sf-main-page .sf-hero-main h1 { | ||
font-size: 2. | font-size: 2.1rem; | ||
} | |||
} | |||
/* Small phones */ | |||
@media screen and (max-width: 520px) { | |||
.sf-main-page .sf-hero-main { | |||
padding: 18px 14px; | |||
} | |||
.sf-main-page .sf-hero-main .sf-eyebrow { | |||
font-size: .66rem; | |||
} | |||
.sf-main-page .sf-hero-main h1 { | |||
margin-bottom: 4px; | |||
font-size: 1.85rem; | |||
} | |||
.sf-main-page .sf-hero-main p { | |||
margin-bottom: 7px; | |||
font-size: .9rem; | |||
} | } | ||
} | } | ||
/* ========================================================= | /* ========================================================= | ||
COMMUNITY LINKS — DISCORD / PATREON | MAIN PAGE COMMUNITY LINKS — DISCORD / PATREON | ||
========================================================= */ | ========================================================= */ | ||
.community-link-grid { | .sf-main-page .community-link-grid { | ||
display: grid; | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
gap: 8px; | |||
width: 100%; | |||
max-width: 100%; | |||
margin: 8px 0 16px; | |||
} | |||
.sf-main-page .community-link { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 100%; | |||
min-width: 0; | |||
min-height: 58px; | |||
padding: 8px 16px; | |||
overflow: hidden; | |||
border: 0; | |||
border-radius: 6px; | |||
box-sizing: border-box; | |||
} | |||
/* Control MediaWiki-generated wrappers around file images. */ | |||
.sf-main-page .community-link > p, | |||
.sf-main-page .community-link > span, | |||
.sf-main-page .community-link > a, | |||
.sf-main-page .community-link .mw-file-description { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 100%; | |||
min-width: 0; | |||
margin: 0; | |||
padding: 0; | |||
} | |||
.sf-main-page .community-link img, | |||
.sf-main-page .community-link .mw-file-element { | |||
display: block; | |||
width: auto; | |||
height: 30px; | |||
max-width: 82%; | |||
margin: 0 auto; | |||
object-fit: contain; | |||
} | |||
.sf-main-page .community-link--discord { | |||
background-color: #5865f2; | |||
} | |||
.sf-main-page .community-link--patreon { | |||
background-color: #ff424d; | |||
} | |||
@media screen and (max-width: 520px) { | |||
.sf-main-page .community-link-grid { | |||
grid-template-columns: minmax(0, 1fr); | |||
} | |||
} | |||
/* ============================================================ | |||
MAIN PAGE — COLORED CARD SYSTEM | |||
Static layered gradients only. No glow, blur, or filters. | |||
============================================================ */ | |||
/* ---------- Shared Card Construction ---------- */ | |||
.sf-main-page .sf-journey-card, | |||
.sf-main-page .sf-feature-card { | |||
position: relative; | |||
overflow: hidden; | |||
isolation: isolate; | |||
background-color: #181214; | |||
background-image: | |||
linear-gradient( | |||
135deg, | |||
rgba(255,255,255,.025) 0%, | |||
transparent 34%, | |||
rgba(0,0,0,.12) 70%, | |||
rgba(0,0,0,.24) 100% | |||
), | |||
repeating-linear-gradient( | |||
118deg, | |||
rgba(255,255,255,.014) 0, | |||
rgba(255,255,255,.014) 1px, | |||
transparent 1px, | |||
transparent 7px | |||
); | |||
border: 1px solid var(--sf-card-border, var(--sf-border)); | |||
} | |||
/* Subtle inner line without glow or shadow. */ | |||
.sf-main-page .sf-journey-card::after, | |||
.sf-main-page .sf-feature-card::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 4px; | |||
z-index: -1; | |||
pointer-events: none; | |||
border: 1px solid rgba(244,239,230,.035); | |||
border-radius: 6px; | |||
} | |||
/* ---------- Card Header ---------- */ | |||
.sf-main-page .sf-card-head { | |||
display: flex; | |||
align-items: center; | |||
gap: 10px; | |||
min-height: 48px; | |||
margin: -22px -22px 14px; | |||
padding: 10px 16px; | |||
background-color: var(--sf-card-head, rgba(216,180,106,.10)); | |||
background-image: | |||
linear-gradient( | |||
90deg, | |||
rgba(255,255,255,.035), | |||
transparent 48%, | |||
rgba(0,0,0,.16) | |||
), | |||
repeating-linear-gradient( | |||
120deg, | |||
rgba(255,255,255,.012) 0, | |||
rgba(255,255,255,.012) 1px, | |||
transparent 1px, | |||
transparent 6px | |||
); | |||
border-bottom: 1px solid var(--sf-card-border, var(--sf-border)); | |||
} | |||
.sf-main-page .sf-card-head h3 { | |||
flex: 1; | |||
min-width: 0; | |||
margin: 0; | |||
color: var(--sf-gold-bright); | |||
font-size: 1.25rem; | |||
line-height: 1.15; | |||
} | |||
/* ---------- Header Icon Slot ---------- */ | |||
.sf-main-page .sf-card-icon { | |||
flex: 0 0 auto; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 38px; | |||
height: 38px; | |||
} | |||
.sf-main-page .sf-card-icon img, | |||
.sf-main-page .sf-card-icon .mw-file-element { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
max-width: 100%; | |||
object-fit: contain; | |||
} | |||
/* ---------- Journey Cards ---------- */ | |||
.sf-main-page .sf-journey-card { | |||
--sf-card-border: rgba(216,180,106,.42); | |||
min-height: 100%; | |||
} | |||
/* ---------- Featured System Cards ---------- */ | |||
.sf-main-page .sf-feature-card { | |||
--sf-card-border: rgba(216,180,106,.34); | |||
display: flex; | |||
flex-direction: column; | |||
min-height: 100%; | |||
padding: 14px; | |||
} | |||
.sf-main-page .sf-feature-card .sf-card-head { | |||
min-height: 40px; | |||
margin: -14px -14px 12px; | |||
padding: 8px 11px; | |||
gap: 8px; | |||
} | |||
.sf-main-page .sf-feature-card .sf-card-head h3 { | |||
font-size: 1.02rem; | |||
} | |||
.sf-main-page .sf-feature-card .sf-card-icon { | |||
width: 23px; | |||
height: 23px; | |||
} | |||
.sf-main-page .sf-feature-card .sf-action-links { | |||
margin-top: auto; | |||
padding-top: 8px; | |||
} | |||
/* ============================================================ | |||
CATEGORY THEMES | |||
============================================================ */ | |||
/* New arrivals — crimson */ | |||
.sf-main-page .sf-theme-crimson { | |||
--sf-card-head: rgba(83,20,20,.92); | |||
--sf-card-border: rgba(155,69,57,.70); | |||
background-color: #1b1011; | |||
} | |||
/* Player resources — midnight blue */ | |||
.sf-main-page .sf-theme-blue { | |||
--sf-card-head: rgba(18,46,74,.94); | |||
--sf-card-border: rgba(62,104,143,.72); | |||
background-color: #101922; | |||
} | |||
/* Builder resources — forest green */ | |||
.sf-main-page .sf-theme-green { | |||
--sf-card-head: rgba(29,65,38,.94); | |||
--sf-card-border: rgba(65,110,67,.72); | |||
background-color: #111a14; | |||
} | |||
/* Community — royal purple */ | |||
.sf-main-page .sf-theme-purple { | |||
--sf-card-head: rgba(67,32,79,.94); | |||
--sf-card-border: rgba(104,68,124,.72); | |||
background-color: #19121d; | |||
} | |||
/* Housing — slate blue */ | |||
.sf-main-page .sf-theme-slate { | |||
--sf-card-head: rgba(40,57,72,.94); | |||
--sf-card-border: rgba(76,102,123,.72); | |||
background-color: #141a1f; | |||
} | |||
/* Businesses — warm tavern bronze */ | |||
.sf-main-page .sf-theme-bronze { | |||
--sf-card-head: rgba(83,52,24,.94); | |||
--sf-card-border: rgba(133,89,43,.72); | |||
background-color: #1d1610; | |||
} | |||
/* Character development — arcane violet */ | |||
.sf-main-page .sf-theme-arcane { | |||
--sf-card-head: rgba(68,42,88,.94); | |||
--sf-card-border: rgba(104,70,132,.72); | |||
background-color: #19131e; | |||
} | |||
/* Dungeon running — deep teal */ | |||
.sf-main-page .sf-theme-teal { | |||
--sf-card-head: rgba(21,62,66,.94); | |||
--sf-card-border: rgba(48,104,108,.72); | |||
background-color: #101b1c; | |||
} | |||
/* PvP — battle red */ | |||
.sf-main-page .sf-theme-battle { | |||
--sf-card-head: rgba(92,31,26,.94); | |||
--sf-card-border: rgba(145,65,54,.74); | |||
background-color: #1c1110; | |||
} | |||
/* Custom scripting — dark builder green */ | |||
.sf-main-page .sf-theme-script { | |||
--sf-card-head: rgba(37,67,42,.94); | |||
--sf-card-border: rgba(71,111,73,.72); | |||
background-color: #121a13; | |||
} | |||
/* ============================================================ | |||
REFERENCE MANUAL — DEFINITIVE WIDTH CONTAINMENT | |||
Keeps later source examples from widening the entire manual. | |||
============================================================ */ | |||
.sf-manual-page, | |||
.sf-manual-layout, | |||
.sf-manual-content, | |||
.sf-manual-toc { | |||
min-width: 0; | |||
max-width: 100%; | |||
box-sizing: border-box; | |||
} | |||
.sf-manual-layout { | |||
width: 100%; | |||
} | |||
.sf-manual-content { | |||
width: 100%; | |||
overflow: hidden; | |||
} | |||
/* Every direct manual component must be permitted to shrink. */ | |||
.sf-manual-content > *, | |||
.sf-manual-example, | |||
.sf-manual-page .sf-card, | |||
.sf-manual-page .sf-note, | |||
.sf-manual-page .sf-alert, | |||
.sf-manual-page .sf-quickbar, | |||
.sf-manual-page .sf-start-status, | |||
.sf-manual-page .sf-progress-line, | |||
.sf-manual-page .sf-img-frame, | |||
.sf-manual-page .sf-footerlinks { | |||
min-width: 0; | |||
max-width: 100%; | |||
box-sizing: border-box; | |||
} | |||
/* Ordinary prose and callout content must wrap. */ | |||
.sf-manual-page p, | |||
.sf-manual-page li, | |||
.sf-manual-page dd, | |||
.sf-manual-page span, | |||
.sf-manual-page .sf-note, | |||
.sf-manual-page .sf-alert { | |||
overflow-wrap: anywhere; | |||
word-break: normal; | |||
} | |||
/* Preformatted source remains intact, but scrolls only | |||
inside its own code box. */ | |||
.sf-manual-page pre, | |||
.sf-manual-page .sf-codeblock, | |||
.sf-manual-page .sf-codebox { | |||
display: block; | |||
width: 100%; | |||
max-width: 100%; | |||
min-width: 0; | |||
box-sizing: border-box; | |||
white-space: pre; | |||
overflow-x: auto; | |||
overflow-y: hidden; | |||
-webkit-overflow-scrolling: touch; | |||
} | |||
/* Inline code inside tables and paragraphs may wrap. */ | |||
.sf-manual-page :not(pre) > code { | |||
white-space: normal; | |||
overflow-wrap: anywhere; | |||
word-break: break-word; | |||
} | |||
/* Tables may never establish the width of the whole page. */ | |||
.sf-manual-page .sf-table { | |||
width: 100%; | |||
max-width: 100%; | |||
min-width: 0; | |||
table-layout: fixed; | |||
} | |||
.sf-manual-page .sf-table th, | |||
.sf-manual-page .sf-table td { | |||
min-width: 0; | |||
max-width: 100%; | |||
overflow-wrap: anywhere; | |||
word-break: break-word; | |||
} | |||
/* Explicit wrapper for tables that genuinely need more width. */ | |||
.sf-manual-page .sf-table-scroll { | |||
display: block; | |||
width: 100%; | |||
max-width: 100%; | |||
min-width: 0; | |||
overflow-x: auto; | |||
overflow-y: hidden; | |||
-webkit-overflow-scrolling: touch; | |||
} | |||
/* Desktop manual layout. */ | |||
@media screen and (min-width: 901px) { | |||
.sf-manual-layout { | |||
grid-template-columns: 240px minmax(0, 1fr); | |||
} | |||
} | |||
/* Mobile and narrow-tablet layout. */ | |||
@media screen and (max-width: 900px) { | |||
.sf-manual-layout { | |||
display: grid; | display: grid; | ||
grid-template-columns: | grid-template-columns: minmax(0, 1fr); | ||
width: 100%; | |||
max-width: 100%; | |||
} | |||
.sf-manual-toc { | |||
position: static; | |||
width: 100%; | width: 100%; | ||
max-width: 100%; | |||
max-height: none; | |||
overflow-x: hidden; | |||
} | |||
.sf-manual-content { | |||
width: 100%; | |||
max-width: 100%; | |||
overflow: hidden; | |||
} | |||
.sf-manual-page .sf-table th, | |||
.sf-manual-page .sf-table td { | |||
padding-left: 7px; | |||
padding-right: 7px; | |||
} | |||
/* Only deliberately wide tables scroll horizontally. */ | |||
.sf-manual-page .sf-table-scroll .sf-table { | |||
width: 760px; | |||
min-width: 760px; | |||
max-width: none; | |||
} | |||
} | |||
/* ============================================================ | |||
SINFAR PREMIUM MAIN — MEDIAWIKI INTEGRATION REPAIR v1.2 | |||
COMPLETE REPLACEMENT for the former Phase I / II / III / IV-A | |||
premium blocks. | |||
Installation: | |||
- In MediaWiki:Common.css, remove the former premium blocks | |||
beginning with "SINFAR PREMIUM MAIN — PHASE I" and ending | |||
after Phase IV-A. | |||
- Paste this complete replacement in their place. | |||
- Keep the earlier Sinfar Wiki Visual System v3.0 CSS above it. | |||
Scope: | |||
- .sf-premium-main only. | |||
- Container-responsive, not viewport-dependent. | |||
- Normalizes MediaWiki image wrappers. | |||
- Uses pseudo-elements for ornamental rails. | |||
============================================================ */ | |||
/* ============================================================ | |||
1. PREMIUM TOKENS / CONTAINER | |||
============================================================ */ | |||
.sf-premium-main { | |||
--sf-premium-black: #080b0f; | |||
--sf-premium-panel: #0d1117; | |||
--sf-premium-gold: #d8b46a; | |||
--sf-premium-gold-bright: #f0d28a; | |||
--sf-premium-gold-line: rgba(216,180,106,.56); | |||
--sf-premium-text: #f4efe6; | |||
--sf-premium-muted: #c9bda9; | |||
container-type: inline-size; | |||
container-name: sf-premium; | |||
overflow: visible; | |||
} | } | ||
. | .sf-premium-main *, | ||
.sf-premium-main *::before, | |||
.sf-premium-main *::after { | |||
box-sizing: border-box; | |||
} | |||
.sf-premium-main .sf-premium-masthead p, | |||
.sf-premium-main .sf-premium-hero p, | |||
.sf-premium-main .sf-portal-grid p, | |||
.sf-premium-main .sf-featured-grid p { | |||
margin-top: 0; | |||
} | |||
/* ============================================================ | |||
2. MEDIAWIKI FILE WRAPPER NORMALIZATION | |||
============================================================ */ | |||
.sf-premium-main .sf-premium-hero-art, | |||
.sf-premium-main .sf-portal-image, | |||
.sf-premium-main .sf-feature-visual { | |||
position: relative; | |||
overflow: hidden; | |||
} | |||
/* Remove parser-generated paragraph/figure spacing. */ | |||
.sf-premium-main .sf-premium-hero-art > p, | |||
.sf-premium-main .sf-portal-image > p, | |||
.sf-premium-main .sf-feature-visual > p, | |||
.sf-premium-main .sf-premium-hero-art figure, | |||
.sf-premium-main .sf-portal-image figure, | |||
.sf-premium-main .sf-feature-visual figure { | |||
position: absolute; | |||
inset: 0; | |||
width: 100%; | |||
height: 100%; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
} | |||
/* Normalize every common MediaWiki file wrapper. */ | |||
.sf-premium-main .sf-premium-hero-art > a, | |||
.sf-premium-main .sf-premium-hero-art > span, | |||
.sf-premium-main .sf-premium-hero-art [typeof~="mw:File"], | |||
.sf-premium-main .sf-premium-hero-art .mw-file-description, | |||
.sf-premium-main .sf-premium-hero-art .mw-file-element, | |||
.sf-premium-main .sf-premium-hero-art .mw-default-size, | |||
.sf-premium-main .sf-portal-image > a, | |||
.sf-premium-main .sf-portal-image > span, | |||
.sf-premium-main .sf-portal-image [typeof~="mw:File"], | |||
.sf-premium-main .sf-portal-image .mw-file-description, | |||
.sf-premium-main .sf-portal-image .mw-file-element, | |||
.sf-premium-main .sf-portal-image .mw-default-size, | |||
.sf-premium-main .sf-feature-visual > a, | |||
.sf-premium-main .sf-feature-visual [typeof~="mw:File"], | |||
.sf-premium-main .sf-feature-visual .mw-file-description, | |||
.sf-premium-main .sf-feature-visual .mw-file-element, | |||
.sf-premium-main .sf-feature-visual .mw-default-size { | |||
display: block; | |||
width: 100%; | |||
height: 100%; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
} | |||
.sf-premium-main .sf-premium-hero-art img, | |||
.sf-premium-main .sf-portal-image img, | |||
.sf-premium-main .sf-feature-visual img { | |||
position: absolute; | |||
inset: 0; | |||
display: block; | |||
width: 100% !important; | |||
height: 100% !important; | |||
max-width: none !important; | |||
margin: 0 !important; | |||
object-fit: cover; | |||
object-position: center; | |||
} | |||
/* ============================================================ | |||
3. INTEGRATED MASTHEAD — MOBILE-FIRST | |||
============================================================ */ | |||
.sf-premium-main .sf-premium-masthead { | |||
display: grid; | |||
grid-template-columns: minmax(0, 1fr); | |||
align-items: stretch; | |||
margin: -16px -16px 0; | |||
overflow: hidden; | |||
border-bottom: 1px solid var(--sf-premium-gold-line); | |||
background: linear-gradient(180deg, rgba(15,18,22,.99), rgba(7,9,12,.99)); | |||
} | |||
.sf-premium-main .sf-premium-brand { | |||
position: relative; | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
justify-content: center; | |||
min-width: 0; | |||
min-height: 72px; | |||
padding: 10px 18px; | |||
border-bottom: 1px solid rgba(216,180,106,.24); | |||
background: | |||
linear-gradient(135deg, rgba(216,180,106,.07), transparent 52%), | |||
#090c10; | |||
text-align: center; | |||
} | |||
.sf-premium-main .sf-premium-brand-mark { | |||
position: absolute; | |||
top: 8px; | |||
left: 14px; | |||
color: var(--sf-premium-gold-bright); | |||
font-size: 1rem; | |||
line-height: 1; | |||
} | |||
.sf-premium-main .sf-premium-brand-name { | |||
color: var(--sf-premium-gold-bright); | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.65rem; | |||
line-height: .96; | |||
letter-spacing: .09em; | |||
text-transform: uppercase; | |||
} | |||
.sf-premium-main .sf-premium-brand-subtitle { | |||
margin-top: 6px; | |||
color: var(--sf-premium-muted); | |||
font-size: .54rem; | |||
font-weight: 700; | |||
letter-spacing: .11em; | |||
text-transform: uppercase; | |||
} | |||
.sf-premium-main .sf-premium-nav { | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-start; | |||
gap: 16px; | |||
min-width: 0; | |||
padding: 10px 14px; | |||
overflow-x: auto; | |||
scrollbar-width: thin; | |||
white-space: nowrap; | |||
} | |||
.sf-premium-main .sf-premium-nav > div { | |||
flex: 0 0 auto; | |||
min-width: 0; | |||
} | |||
.sf-premium-main .sf-premium-nav a, | |||
.sf-premium-main .sf-premium-nav a:visited { | |||
color: var(--sf-premium-gold-bright); | |||
font-size: .72rem; | |||
font-weight: 700; | |||
text-decoration: none; | |||
} | |||
.sf-premium-main .sf-premium-nav a:hover { | |||
color: #fff1b8; | |||
text-decoration: none; | |||
} | |||
.sf-premium-main .sf-premium-search { | |||
display: none; | |||
align-items: center; | |||
padding: 13px 16px 13px 0; | |||
} | |||
.sf-premium-main .sf-premium-search a, | |||
.sf-premium-main .sf-premium-search a:visited { | |||
position: relative; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
width: 100%; | |||
min-height: 34px; | |||
padding: 0 34px 0 12px; | |||
border: 1px solid rgba(216,180,106,.45); | |||
border-radius: 4px; | |||
background: rgba(3,5,7,.72); | |||
color: #9e978a; | |||
font-size: .72rem; | |||
font-weight: 400; | |||
text-decoration: none; | |||
} | |||
.sf-premium-main .sf-premium-search a::after { | |||
content: "⌕"; | |||
position: absolute; | |||
top: 50%; | |||
right: 10px; | |||
transform: translateY(-50%); | |||
color: var(--sf-premium-gold-bright); | |||
font-size: 1.05rem; | |||
} | |||
/* ============================================================ | |||
4. CINEMATIC HERO | |||
============================================================ */ | |||
.sf-premium-main .sf-premium-hero { | |||
position: relative; | |||
isolation: isolate; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 100%; | |||
aspect-ratio: 16 / 9; | |||
min-height: 0; | |||
margin: 0; | |||
overflow: hidden; | |||
border-right: 1px solid var(--sf-premium-gold-line); | |||
border-bottom: 1px solid var(--sf-premium-gold-line); | |||
border-left: 1px solid var(--sf-premium-gold-line); | |||
border-radius: 0 0 10px 10px; | |||
background: var(--sf-premium-black); | |||
text-align: center; | |||
} | |||
.sf-premium-main .sf-premium-hero::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 6px; | |||
z-index: 3; | |||
border: 1px solid rgba(216,180,106,.22); | |||
border-radius: 6px; | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-premium-hero-art { | |||
position: absolute; | |||
inset: 0; | |||
z-index: 0; | |||
width: 100%; | |||
height: 100%; | |||
} | |||
.sf-premium-main .sf-premium-hero-art::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
z-index: 2; | |||
background: | |||
linear-gradient(90deg, rgba(3,5,8,.48), rgba(3,5,8,.18) 36%, rgba(3,5,8,.18) 64%, rgba(3,5,8,.48)), | |||
linear-gradient(180deg, rgba(3,5,8,.12), rgba(3,5,8,.30)); | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-premium-hero-content { | |||
position: relative; | |||
z-index: 4; | |||
display: flex; | |||
flex-direction: column; | |||
align-items: center; | |||
width: 92%; | |||
padding: 10px 12px; | |||
background: linear-gradient( | |||
90deg, | |||
transparent, | |||
rgba(3,5,8,.24) 15%, | |||
rgba(3,5,8,.34) 50%, | |||
rgba(3,5,8,.24) 85%, | |||
transparent | |||
); | |||
} | |||
.sf-premium-main .sf-premium-eyebrow { | |||
color: var(--sf-premium-gold-bright); | |||
font-size: .60rem; | |||
font-weight: 800; | |||
letter-spacing: .15em; | |||
text-transform: uppercase; | |||
text-shadow: 0 2px 4px rgba(0,0,0,.95); | |||
} | |||
.sf-premium-main .sf-premium-hero h1 { | |||
margin: 3px 0 4px; | |||
color: var(--sf-premium-gold-bright); | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: clamp(1.7rem, 9cqi, 2.45rem); | |||
font-weight: 500; | |||
line-height: .96; | |||
letter-spacing: .10em; | |||
text-transform: uppercase; | |||
text-shadow: | |||
0 2px 2px rgba(0,0,0,1), | |||
0 5px 12px rgba(0,0,0,.78); | |||
} | |||
.sf-premium-main .sf-premium-tagline { | |||
color: var(--sf-premium-text); | |||
font-size: .58rem; | |||
font-weight: 700; | |||
letter-spacing: .08em; | |||
text-transform: uppercase; | |||
text-shadow: 0 2px 4px rgba(0,0,0,.95); | |||
} | |||
.sf-premium-main .sf-premium-hero-copy { | |||
display: none; | |||
margin: 12px 0 0; | |||
color: var(--sf-premium-text); | |||
font-size: .92rem; | |||
text-shadow: 0 2px 4px rgba(0,0,0,.95); | |||
} | |||
.sf-premium-main .sf-premium-hero-action { | |||
margin: 7px 0 0; | |||
} | |||
.sf-premium-main .sf-premium-hero-action a, | |||
.sf-premium-main .sf-premium-hero-action a:visited { | |||
display: inline-flex; | |||
align-items: center; | |||
justify-content: center; | |||
min-width: 0; | |||
min-height: 32px; | |||
padding: 5px 13px; | |||
border: 1px solid rgba(240,210,138,.78); | |||
border-radius: 3px; | |||
background: linear-gradient(180deg, rgba(120,24,18,.96), rgba(52,7,5,.98)); | |||
color: var(--sf-premium-text); | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: .66rem; | |||
font-weight: 700; | |||
letter-spacing: .05em; | |||
text-decoration: none; | |||
text-transform: uppercase; | |||
box-shadow: | |||
inset 0 0 0 2px rgba(0,0,0,.38), | |||
inset 0 1px 0 rgba(255,255,255,.08); | |||
} | |||
.sf-premium-main .sf-premium-hero-action a:hover { | |||
border-color: var(--sf-premium-gold-bright); | |||
background: linear-gradient(180deg, rgba(145,31,22,.98), rgba(65,9,6,.98)); | |||
color: #fff7dd; | |||
text-decoration: none; | |||
} | |||
/* ============================================================ | |||
5. MEDIAWIKI-SAFE SECTION DIVIDERS | |||
============================================================ */ | |||
.sf-premium-main .sf-premium-divider { | |||
position: relative; | |||
display: grid; | |||
grid-template-columns: minmax(20px, 1fr) auto minmax(20px, 1fr); | |||
align-items: center; | |||
gap: 10px; | |||
margin: 14px 0 10px; | |||
} | |||
.sf-premium-main .sf-premium-divider::before, | |||
.sf-premium-main .sf-premium-divider::after { | |||
content: ""; | |||
height: 1px; | |||
} | |||
.sf-premium-main .sf-premium-divider::before { | |||
background: linear-gradient(90deg, transparent, rgba(216,180,106,.68)); | |||
} | |||
.sf-premium-main .sf-premium-divider::after { | |||
background: linear-gradient(90deg, rgba(216,180,106,.68), transparent); | |||
} | |||
.sf-premium-main .sf-premium-divider h2 { | |||
position: relative; | |||
grid-column: 2; | |||
margin: 0; | |||
padding: 0 22px; | |||
border: 0; | |||
color: var(--sf-premium-gold-bright); | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.05rem; | |||
font-weight: 500; | |||
line-height: 1.12; | |||
letter-spacing: .05em; | |||
text-align: center; | |||
text-transform: uppercase; | |||
white-space: nowrap; | |||
} | |||
.sf-premium-main .sf-premium-divider h2::before, | |||
.sf-premium-main .sf-premium-divider h2::after { | |||
content: "✦"; | |||
position: absolute; | |||
top: 50%; | |||
transform: translateY(-50%); | |||
color: var(--sf-premium-gold); | |||
font-size: .62rem; | |||
} | |||
.sf-premium-main .sf-premium-divider h2::before { | |||
left: 4px; | |||
} | |||
.sf-premium-main .sf-premium-divider h2::after { | |||
right: 4px; | |||
} | |||
.sf-premium-main .sf-premium-divider--featured { | |||
margin-top: 20px; | |||
margin-bottom: 12px; | |||
} | |||
/* ============================================================ | |||
6. PRESTIGE PORTAL GRID — MOBILE-FIRST | |||
============================================================ */ | |||
.sf-premium-main .sf-portal-grid--prestige { | |||
display: grid; | |||
grid-template-columns: minmax(0, 1fr); | |||
gap: 29px; | |||
margin: 0 0 22px; | |||
padding-top: 29px; | |||
align-items: stretch; | |||
} | |||
.sf-premium-main .sf-portal-card { | |||
--portal-accent: #d8b46a; | |||
--portal-accent-bright: #f0d28a; | |||
--portal-line: rgba(216,180,106,.54); | |||
--portal-line-soft: rgba(216,180,106,.18); | |||
--portal-crown: #3f2919; | |||
--portal-mid: #1b1411; | |||
--portal-floor: #090c10; | |||
--portal-wash: rgba(216,180,106,.06); | |||
position: relative; | |||
isolation: isolate; | |||
display: flex; | |||
flex-direction: column; | |||
min-width: 0; | |||
min-height: 100%; | |||
overflow: visible; | |||
border: 1px solid var(--portal-line); | |||
border-radius: 8px; | |||
background: linear-gradient(180deg, var(--portal-crown) 0%, var(--portal-mid) 46%, var(--portal-floor) 100%); | |||
color: #f4efe6; | |||
box-shadow: | |||
inset 0 0 0 1px rgba(0,0,0,.72), | |||
inset 0 0 0 5px rgba(216,180,106,.035), | |||
0 5px 14px rgba(0,0,0,.32); | |||
} | |||
/* Inner frame. */ | |||
.sf-premium-main .sf-portal-card::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 6px; | |||
z-index: 6; | |||
border: 1px solid var(--portal-line-soft); | |||
border-radius: 4px; | |||
pointer-events: none; | |||
} | |||
/* Eight-line ornamental corners — no empty HTML spans required. */ | |||
.sf-premium-main .sf-portal-card::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 3px; | |||
z-index: 7; | |||
border-radius: 6px; | |||
background: | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) left top / 21px 1px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) left top / 1px 21px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) right top / 21px 1px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) right top / 1px 21px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) left bottom / 21px 1px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) left bottom / 1px 21px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) right bottom / 21px 1px no-repeat, | |||
linear-gradient(var(--portal-accent),var(--portal-accent)) right bottom / 1px 21px no-repeat; | |||
opacity: .88; | |||
pointer-events: none; | |||
} | |||
/* ---------- Medallion ---------- */ | |||
.sf-premium-main .sf-portal-medallion { | |||
position: absolute; | |||
top: -27px; | |||
left: 50%; | |||
z-index: 12; | |||
display: grid; | |||
place-items: center; | |||
width: 58px; | |||
height: 58px; | |||
transform: translateX(-50%); | |||
border: 1px solid var(--portal-accent-bright); | |||
border-radius: 50%; | |||
background: | |||
radial-gradient(circle at 50% 37%, rgba(255,255,255,.08), transparent 35%), | |||
linear-gradient(180deg, var(--portal-crown), #0a0b0d 82%); | |||
color: var(--portal-accent-bright); | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.52rem; | |||
font-weight: 700; | |||
line-height: 1; | |||
box-shadow: | |||
inset 0 0 0 4px rgba(0,0,0,.56), | |||
inset 0 0 0 5px var(--portal-line-soft), | |||
0 4px 8px rgba(0,0,0,.55); | |||
text-shadow: 0 2px 3px rgba(0,0,0,.96); | |||
} | |||
.sf-premium-main .sf-portal-medallion::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 7px; | |||
border: 1px solid var(--portal-line); | |||
border-radius: 50%; | |||
} | |||
.sf-premium-main .sf-portal-medallion::after { | |||
content: ""; | |||
position: absolute; | |||
top: 50%; | |||
left: 50%; | |||
z-index: -1; | |||
width: 84px; | |||
height: 1px; | |||
transform: translate(-50%,-50%); | |||
background: linear-gradient(90deg, transparent, var(--portal-accent), transparent); | |||
} | |||
/* ---------- Image chamber ---------- */ | |||
.sf-premium-main .sf-portal-image { | |||
z-index: 2; | |||
width: auto; | |||
aspect-ratio: 16 / 9; | |||
min-height: 0; | |||
margin: 7px 7px 0; | |||
border: 1px solid var(--portal-line-soft); | |||
border-radius: 4px 4px 2px 2px; | |||
background: #080a0d; | |||
} | |||
.sf-premium-main .sf-portal-image::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
z-index: 3; | |||
box-shadow: | |||
inset 0 0 0 1px rgba(0,0,0,.52), | |||
inset 0 0 34px rgba(0,0,0,.28); | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-portal-image::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
z-index: 4; | |||
background: | |||
linear-gradient(180deg, rgba(2,4,6,.02) 46%, rgba(2,4,6,.30) 100%), | |||
linear-gradient(90deg, var(--portal-wash), transparent 31%, transparent 69%, var(--portal-wash)); | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-portal-image img { | |||
} | |||
/* ---------- Portal body ---------- */ | |||
.sf-premium-main .sf-portal-body { | |||
position: relative; | |||
z-index: 3; | |||
display: flex; | |||
flex: 1 1 auto; | |||
flex-direction: column; | |||
align-items: center; | |||
min-width: 0; | |||
padding: 14px 15px 17px; | |||
border-top: 1px solid rgba(0,0,0,.65); | |||
background: | |||
linear-gradient(180deg, rgba(255,255,255,.018), transparent 24%), | |||
linear-gradient(180deg, var(--portal-mid), var(--portal-floor)); | |||
text-align: center; | |||
} | |||
.sf-premium-main .sf-portal-body::before { | |||
content: ""; | |||
position: absolute; | |||
top: -1px; | |||
left: 16%; | |||
right: 16%; | |||
height: 1px; | |||
background: linear-gradient(90deg, transparent, var(--portal-accent), transparent); | |||
opacity: .72; | |||
} | |||
.sf-premium-main .sf-portal-body::after { | |||
content: "◆"; | |||
position: absolute; | |||
left: 50%; | |||
bottom: 4px; | |||
transform: translateX(-50%); | |||
color: var(--portal-accent); | |||
font-size: .46rem; | |||
line-height: 1; | |||
opacity: .72; | |||
} | |||
/* ---------- MediaWiki-safe title rail ---------- */ | |||
.sf-premium-main .sf-portal-title-rail { | |||
position: relative; | |||
display: grid; | |||
grid-template-columns: minmax(12px, 1fr) auto minmax(12px, 1fr); | |||
align-items: center; | |||
gap: 9px; | |||
width: 100%; | |||
margin: 0 0 9px; | |||
} | |||
.sf-premium-main .sf-portal-title-rail::before, | |||
.sf-premium-main .sf-portal-title-rail::after { | |||
content: ""; | |||
height: 1px; | |||
} | |||
.sf-premium-main .sf-portal-title-rail::before { | |||
background: linear-gradient(90deg, transparent, var(--portal-line)); | |||
} | |||
.sf-premium-main .sf-portal-title-rail::after { | |||
background: linear-gradient(90deg, var(--portal-line), transparent); | |||
} | |||
.sf-premium-main .sf-portal-title-rail h3 { | |||
grid-column: 2; | |||
margin: 0; | |||
color: #f0d28a; | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.12rem; | |||
font-weight: 500; | |||
line-height: 1.12; | |||
letter-spacing: .035em; | |||
text-transform: uppercase; | |||
white-space: normal; | |||
} | |||
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) { | |||
flex: 1 1 auto; | |||
width: min(100%, 260px); | |||
margin: 0 auto; | |||
color: #f4efe6; | |||
font-size: .86rem; | |||
line-height: 1.52; | |||
} | |||
/* ---------- Portal button ---------- */ | |||
.sf-premium-main .sf-portal-action { | |||
width: 100%; | |||
margin: 15px 0 3px; | |||
} | |||
.sf-premium-main .sf-portal-action a, | |||
.sf-premium-main .sf-portal-action a:visited { | |||
position: relative; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 100%; | |||
min-height: 40px; | |||
padding: 8px 14px; | |||
border: 1px solid var(--portal-line); | |||
border-radius: 3px; | |||
background: | |||
linear-gradient(180deg, rgba(255,255,255,.025), transparent 42%), | |||
linear-gradient(180deg, rgba(2,4,6,.50), rgba(2,4,6,.78)); | |||
color: #f0d28a; | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: .78rem; | |||
font-weight: 700; | |||
letter-spacing: .07em; | |||
text-decoration: none; | |||
text-transform: uppercase; | |||
box-shadow: | |||
inset 0 0 0 2px rgba(0,0,0,.42), | |||
inset 0 1px 0 rgba(255,255,255,.025); | |||
} | |||
.sf-premium-main .sf-portal-action a::before, | |||
.sf-premium-main .sf-portal-action a::after { | |||
content: ""; | |||
position: absolute; | |||
top: 5px; | |||
bottom: 5px; | |||
width: 1px; | |||
background: linear-gradient(180deg, transparent, var(--portal-accent), transparent); | |||
opacity: .68; | |||
} | |||
.sf-premium-main .sf-portal-action a::before { left: 7px; } | |||
.sf-premium-main .sf-portal-action a::after { right: 7px; } | |||
.sf-premium-main .sf-portal-action a:hover { | |||
border-color: var(--portal-accent-bright); | |||
background: | |||
linear-gradient(180deg, var(--portal-wash), transparent 50%), | |||
linear-gradient(180deg, rgba(2,4,6,.38), rgba(2,4,6,.74)); | |||
color: #fff2bf; | |||
text-decoration: none; | |||
} | |||
/* ---------- Portal identities ---------- */ | |||
.sf-premium-main .sf-portal-card--crimson { | |||
--portal-accent: #be744d; | |||
--portal-accent-bright: #efbf73; | |||
--portal-line: rgba(190,116,77,.70); | |||
--portal-line-soft: rgba(190,116,77,.24); | |||
--portal-crown: #3a130f; | |||
--portal-mid: #24100e; | |||
--portal-floor: #0c090a; | |||
--portal-wash: rgba(153,45,34,.14); | |||
} | |||
.sf-premium-main .sf-portal-card--blue { | |||
--portal-accent: #527da9; | |||
--portal-accent-bright: #efc677; | |||
--portal-line: rgba(82,125,169,.72); | |||
--portal-line-soft: rgba(82,125,169,.25); | |||
--portal-crown: #0c2941; | |||
--portal-mid: #0a1d2b; | |||
--portal-floor: #080c11; | |||
--portal-wash: rgba(41,103,156,.14); | |||
} | |||
.sf-premium-main .sf-portal-card--green { | |||
--portal-accent: #587f4c; | |||
--portal-accent-bright: #efc677; | |||
--portal-line: rgba(88,127,76,.74); | |||
--portal-line-soft: rgba(88,127,76,.25); | |||
--portal-crown: #15341c; | |||
--portal-mid: #102417; | |||
--portal-floor: #080d0a; | |||
--portal-wash: rgba(51,111,59,.14); | |||
} | |||
.sf-premium-main .sf-portal-card--purple { | |||
--portal-accent: #7d5790; | |||
--portal-accent-bright: #efc677; | |||
--portal-line: rgba(125,87,144,.76); | |||
--portal-line-soft: rgba(125,87,144,.26); | |||
--portal-crown: #32173d; | |||
--portal-mid: #23112a; | |||
--portal-floor: #0d0910; | |||
--portal-wash: rgba(111,56,135,.15); | |||
} | |||
.sf-premium-main .sf-portal-card:hover { | |||
border-color: var(--portal-accent-bright); | |||
} | |||
/* ============================================================ | |||
7. FEATURED SYSTEMS — MOBILE-FIRST | |||
============================================================ */ | |||
.sf-premium-main .sf-featured-grid { | |||
display: grid; | |||
grid-template-columns: minmax(0, 1fr); | |||
gap: 12px; | |||
margin: 0 0 20px; | |||
padding: 0; | |||
} | |||
.sf-premium-main .sf-feature-card { | |||
position: relative; | |||
isolation: isolate; | |||
display: flex; | |||
flex-direction: column; | |||
min-width: 0; | |||
overflow: hidden; | |||
border: 1px solid rgba(216,180,106,.40); | |||
border-radius: 6px; | |||
background: linear-gradient(180deg, rgba(13,17,22,.99), rgba(6,9,12,.99)); | |||
color: #f4efe6; | |||
box-shadow: | |||
inset 0 0 0 1px rgba(0,0,0,.58), | |||
0 3px 10px rgba(0,0,0,.24); | |||
} | |||
.sf-premium-main .sf-feature-card::before { | |||
content: ""; | |||
position: absolute; | |||
inset: 4px; | |||
z-index: 4; | |||
border: 1px solid rgba(216,180,106,.10); | |||
border-radius: 3px; | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-feature-visual { | |||
z-index: 1; | |||
display: flex; | |||
align-items: flex-start; | |||
justify-content: flex-start; | |||
width: 100%; | |||
aspect-ratio: 16 / 9; | |||
min-height: 0; | |||
border-bottom: 1px solid rgba(216,180,106,.28); | |||
background: | |||
linear-gradient(135deg, rgba(216,180,106,.06), transparent 50%), | |||
#100b0e; | |||
color: #c9bda9; | |||
} | |||
.sf-premium-main .sf-feature-visual > span { | |||
position: relative; | |||
z-index: 3; | |||
display: block; | |||
padding: 8px 9px; | |||
color: rgba(244,239,230,.70); | |||
font-size: .66rem; | |||
line-height: 1.2; | |||
} | |||
.sf-premium-main .sf-feature-visual::after { | |||
content: ""; | |||
position: absolute; | |||
inset: 0; | |||
z-index: 2; | |||
background: linear-gradient(180deg, rgba(3,5,8,.02), rgba(3,5,8,.20)); | |||
pointer-events: none; | |||
} | |||
.sf-premium-main .sf-feature-visual--cooking { | |||
background: linear-gradient(135deg, rgba(116,65,22,.32), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-visual--housing { | |||
background: linear-gradient(135deg, rgba(47,69,54,.30), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-visual--business { | |||
background: linear-gradient(135deg, rgba(93,57,24,.30), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-visual--pvp { | |||
background: linear-gradient(135deg, rgba(84,37,37,.32), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-visual--character { | |||
background: linear-gradient(135deg, rgba(72,40,92,.34), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-visual--dungeon { | |||
background: linear-gradient(135deg, rgba(27,55,70,.32), rgba(8,10,12,.96)), #100b0e; | |||
} | |||
.sf-premium-main .sf-feature-content { | |||
position: relative; | |||
z-index: 3; | |||
display: flex; | |||
flex: 1 1 auto; | |||
flex-direction: column; | |||
min-width: 0; | |||
padding: 12px 14px 14px; | |||
} | |||
.sf-premium-main .sf-feature-title { | |||
display: grid; | |||
grid-template-columns: 26px minmax(0, 1fr); | |||
align-items: center; | |||
gap: 7px; | |||
min-width: 0; | |||
margin: 0 0 8px; | |||
} | |||
.sf-premium-main .sf-feature-icon { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
width: 26px; | |||
height: 26px; | |||
color: #d8b46a; | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.12rem; | |||
font-weight: 700; | |||
line-height: 1; | |||
} | |||
.sf-premium-main .sf-feature-title h3 { | |||
min-width: 0; | |||
margin: 0; | |||
color: #f0d28a; | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: 1.08rem; | |||
font-weight: 500; | |||
line-height: 1.12; | |||
letter-spacing: .02em; | |||
text-transform: uppercase; | |||
} | |||
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) { | |||
flex: 1 1 auto; | |||
margin: 0; | |||
color: #f4efe6; | |||
font-size: .84rem; | |||
line-height: 1.44; | |||
} | |||
.sf-premium-main .sf-feature-action { | |||
margin: 12px 0 0; | |||
} | |||
.sf-premium-main .sf-feature-action a, | |||
.sf-premium-main .sf-feature-action a:visited { | |||
color: #d8b46a; | |||
font-family: Georgia, "Times New Roman", serif; | |||
font-size: .76rem; | |||
font-weight: 700; | |||
letter-spacing: .025em; | |||
text-decoration: none; | |||
} | |||
.sf-premium-main .sf-feature-action a:hover { | |||
color: #f0d28a; | |||
text-decoration: none; | |||
} | |||
/* ============================================================ | |||
8. CONTAINER-RESPONSIVE LAYOUT | |||
============================================================ */ | |||
/* Two-column card stage. */ | |||
@container sf-premium (min-width: 560px) { | |||
.sf-premium-main .sf-premium-eyebrow { | |||
font-size: .72rem; | |||
} | |||
.sf-premium-main .sf-premium-hero h1 { | |||
font-size: clamp(2.3rem, 7cqi, 3.6rem); | |||
} | |||
.sf-premium-main .sf-premium-tagline { | |||
font-size: .70rem; | |||
letter-spacing: .12em; | |||
} | |||
.sf-premium-main .sf-premium-hero-copy { | |||
display: block; | |||
} | |||
.sf-premium-main .sf-premium-hero-action { | |||
margin-top: 12px; | |||
} | |||
.sf-premium-main .sf-premium-divider h2 { | |||
font-size: 1.22rem; | |||
} | |||
.sf-premium-main .sf-portal-grid--prestige { | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
gap: 24px 16px; | |||
padding-top: 31px; | |||
} | |||
.sf-premium-main .sf-portal-image { | |||
aspect-ratio: 16 / 9; | |||
} | |||
.sf-premium-main .sf-featured-grid { | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
} | |||
} | |||
/* Compact desktop / tablet stage. */ | |||
@container sf-premium (min-width: 760px) { | |||
.sf-premium-main .sf-premium-masthead { | |||
grid-template-columns: minmax(190px,.68fr) minmax(0,2.32fr); | |||
} | |||
.sf-premium-main .sf-premium-brand { | |||
align-items: flex-start; | |||
min-height: 76px; | |||
padding: 10px 18px 10px 54px; | |||
border-right: 1px solid rgba(216,180,106,.28); | |||
border-bottom: 0; | |||
text-align: left; | |||
} | |||
.sf-premium-main .sf-premium-brand-mark { | |||
top: 9px; | |||
left: 20px; | |||
font-size: 1.25rem; | |||
} | |||
.sf-premium-main .sf-premium-brand-name { | |||
font-size: 1.9rem; | |||
} | |||
.sf-premium-main .sf-premium-brand-subtitle { | |||
font-size: .60rem; | |||
} | |||
.sf-premium-main .sf-premium-nav { | |||
justify-content: flex-end; | |||
gap: 14px; | |||
padding: 0 18px; | |||
overflow: hidden; | |||
} | |||
.sf-premium-main .sf-premium-nav a, | |||
.sf-premium-main .sf-premium-nav a:visited { | |||
font-size: .74rem; | |||
} | |||
.sf-premium-main .sf-premium-hero-content { | |||
width: min(700px, 86%); | |||
padding: 18px 24px; | |||
} | |||
.sf-premium-main .sf-premium-eyebrow { | |||
font-size: .80rem; | |||
} | |||
.sf-premium-main .sf-premium-hero h1 { | |||
margin: 6px 0 8px; | |||
font-size: clamp(3rem, 6cqi, 4.6rem); | |||
} | |||
.sf-premium-main .sf-premium-tagline { | |||
font-size: clamp(.76rem, 1.35cqi, .96rem); | |||
letter-spacing: .17em; | |||
} | |||
.sf-premium-main .sf-premium-hero-copy { | |||
margin-top: 18px; | |||
font-size: 1rem; | |||
} | |||
.sf-premium-main .sf-premium-hero-action { | |||
margin-top: 16px; | |||
} | |||
.sf-premium-main .sf-premium-hero-action a, | |||
.sf-premium-main .sf-premium-hero-action a:visited { | |||
min-width: 230px; | |||
min-height: 44px; | |||
padding: 8px 22px; | |||
font-size: .86rem; | |||
} | |||
.sf-premium-main .sf-premium-divider { | |||
margin-top: 16px; | |||
} | |||
.sf-premium-main .sf-premium-divider h2 { | |||
font-size: 1.36rem; | |||
} | |||
.sf-premium-main .sf-featured-grid { | |||
grid-template-columns: repeat(3, minmax(0, 1fr)); | |||
} | |||
.sf-premium-main .sf-feature-visual { | |||
aspect-ratio: 16 / 8.7; | |||
} | |||
} | |||
/* Full premium desktop stage. */ | |||
@container sf-premium (min-width: 980px) { | |||
.sf-premium-main .sf-premium-masthead { | |||
grid-template-columns: minmax(210px,.8fr) minmax(0,2.3fr) minmax(190px,.7fr); | |||
} | |||
.sf-premium-main .sf-premium-brand { | |||
padding-left: 58px; | |||
} | |||
.sf-premium-main .sf-premium-brand-name { | |||
font-size: 2rem; | |||
} | |||
.sf-premium-main .sf-premium-nav { | |||
justify-content: center; | |||
gap: clamp(10px,1.5cqi,24px); | |||
} | |||
.sf-premium-main .sf-premium-nav a, | |||
.sf-premium-main .sf-premium-nav a:visited { | |||
font-size: .78rem; | |||
} | |||
.sf-premium-main .sf-premium-search { | |||
display: flex; | display: flex; | ||
} | |||
.sf-premium-main .sf-premium-hero-content { | |||
width: min(720px,78%); | |||
padding: 24px 34px; | |||
} | |||
.sf-premium-main .sf-premium-hero h1 { | |||
font-size: clamp(3.6rem,6cqi,5.4rem); | |||
} | |||
.sf-premium-main .sf-premium-hero-action a, | |||
.sf-premium-main .sf-premium-hero-action a:visited { | |||
min-width: 250px; | |||
min-height: 46px; | |||
padding: 9px 24px; | |||
font-size: .92rem; | |||
} | |||
.sf-premium-main .sf-premium-divider h2 { | |||
font-size: 1.42rem; | |||
} | |||
.sf-premium-main .sf-portal-grid--prestige { | |||
grid-template-columns: repeat(4, minmax(0, 1fr)); | |||
gap: 16px; | |||
} | |||
.sf-premium-main .sf-portal-medallion { | |||
top: -31px; | |||
width: 66px; | |||
height: 66px; | |||
font-size: 1.72rem; | |||
} | |||
.sf-premium-main .sf-portal-image { | |||
aspect-ratio: 16 / 10; | |||
margin: 8px 8px 0; | |||
} | |||
.sf-premium-main .sf-portal-body { | |||
padding: 15px 16px 17px; | |||
} | |||
.sf-premium-main .sf-portal-title-rail h3 { | |||
font-size: clamp(1rem,1.45cqi,1.28rem); | |||
} | |||
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) { | |||
font-size: .84rem; | |||
} | |||
.sf-premium-main .sf-featured-grid { | |||
grid-template-columns: repeat(6, minmax(0, 1fr)); | |||
gap: 10px; | |||
} | |||
.sf-premium-main .sf-feature-visual { | |||
aspect-ratio: 16 / 10; | |||
} | |||
.sf-premium-main .sf-feature-content { | |||
padding: 11px 12px 12px; | |||
} | |||
.sf-premium-main .sf-feature-title { | |||
grid-template-columns: 24px minmax(0, 1fr); | |||
} | |||
.sf-premium-main .sf-feature-title h3 { | |||
font-size: .96rem; | |||
} | |||
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) { | |||
font-size: .75rem; | |||
} | |||
} | |||
/* ============================================================ | |||
9. FALLBACK FOR BROWSERS WITHOUT CONTAINER QUERIES | |||
============================================================ */ | |||
@supports not (container-type: inline-size) { | |||
@media screen and (min-width: 760px) { | |||
.sf-premium-main .sf-portal-grid--prestige { | |||
grid-template-columns: repeat(2,minmax(0,1fr)); | |||
} | |||
.sf-premium-main .sf-featured-grid { | |||
grid-template-columns: repeat(3,minmax(0,1fr)); | |||
} | |||
} | |||
@media screen and (min-width: 1180px) { | |||
.sf-premium-main .sf-premium-masthead { | |||
grid-template-columns: minmax(210px,.8fr) minmax(0,2.3fr) minmax(190px,.7fr); | |||
} | |||
.sf-premium-main .sf-premium-search { | |||
display: flex; | |||
} | |||
.sf-premium-main .sf-portal-grid--prestige { | |||
grid-template-columns: repeat(4,minmax(0,1fr)); | |||
} | |||
.sf-premium-main .sf-featured-grid { | |||
grid-template-columns: repeat(6,minmax(0,1fr)); | |||
} | |||
} | |||
} | |||
/* ============================================================ | |||
10. STATIC-CARD PERFORMANCE LOCK / CRISP TYPOGRAPHY | |||
============================================================ */ | |||
/* | |||
The cards and their artwork are completely static. | |||
Link controls retain only an immediate 1–2px positional response. | |||
No transform animation or transition is used. | |||
*/ | |||
.sf-premium-main { | |||
text-rendering: auto; | |||
} | |||
/* ---------- Hard motion lock for card surfaces ---------- */ | |||
.sf-premium-main .sf-portal-card, | |||
.sf-premium-main .sf-portal-image, | |||
.sf-premium-main .sf-portal-image img, | |||
.sf-premium-main .sf-portal-body, | |||
.sf-premium-main .sf-portal-title-rail, | |||
.sf-premium-main .sf-portal-medallion, | |||
.sf-premium-main .sf-feature-card, | |||
.sf-premium-main .sf-feature-visual, | |||
.sf-premium-main .sf-feature-visual img, | |||
.sf-premium-main .sf-feature-content, | |||
.sf-premium-main .sf-feature-title { | |||
animation: none !important; | |||
transition: none !important; | |||
will-change: auto !important; | |||
} | |||
.sf-premium-main .sf-portal-card, | |||
.sf-premium-main .sf-portal-image img, | |||
.sf-premium-main .sf-feature-card, | |||
.sf-premium-main .sf-feature-visual img { | |||
transform: none !important; | |||
} | |||
/* No whole-card hover state. */ | |||
.sf-premium-main .sf-portal-card:hover, | |||
.sf-premium-main .sf-feature-card:hover { | |||
transform: none !important; | |||
} | |||
.sf-premium-main .sf-portal-card:hover { | |||
border-color: var(--portal-line); | |||
} | |||
.sf-premium-main .sf-portal-card:hover .sf-portal-image img, | |||
.sf-premium-main .sf-feature-card:hover .sf-feature-visual img { | |||
transform: none !important; | |||
filter: none !important; | |||
} | |||
/* ---------- Crisp functional typography ---------- */ | |||
.sf-premium-main .sf-premium-nav, | |||
.sf-premium-main .sf-premium-search, | |||
.sf-premium-main .sf-portal-body, | |||
.sf-premium-main .sf-feature-content, | |||
.sf-premium-main .sf-quickbar, | |||
.sf-premium-main .sf-footerlinks { | |||
font-family: Arial, "Segoe UI", Helvetica, sans-serif; | |||
} | |||
.sf-premium-main .sf-portal-title-rail h3, | |||
.sf-premium-main .sf-feature-title h3, | |||
.sf-premium-main .sf-premium-divider h2 { | |||
color: #f0cf7a; | |||
font-weight: 700; | |||
text-shadow: none !important; | |||
filter: none !important; | |||
opacity: 1; | |||
} | |||
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action), | |||
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) { | |||
color: #f8f4ec; | |||
font-weight: 400; | |||
letter-spacing: 0; | |||
text-shadow: none !important; | |||
filter: none !important; | |||
opacity: 1; | |||
} | |||
.sf-premium-main .sf-premium-nav a, | |||
.sf-premium-main .sf-premium-nav a:visited { | |||
color: #f0cf7a; | |||
text-shadow: none !important; | |||
} | |||
/* ---------- Link-only positional response ---------- */ | |||
.sf-premium-main .sf-premium-hero-action a, | |||
.sf-premium-main .sf-premium-hero-action a:visited, | |||
.sf-premium-main .sf-portal-action a, | |||
.sf-premium-main .sf-portal-action a:visited, | |||
.sf-premium-main .sf-feature-action a, | |||
.sf-premium-main .sf-feature-action a:visited { | |||
position: relative; | |||
top: 0; | |||
left: 0; | |||
animation: none !important; | |||
transition: none !important; | |||
transform: none !important; | |||
will-change: auto !important; | |||
} | |||
.sf-premium-main .sf-premium-hero-action a:hover, | |||
.sf-premium-main .sf-portal-action a:hover { | |||
top: -1px; | |||
transform: none !important; | |||
} | |||
.sf-premium-main .sf-premium-hero-action a:active, | |||
.sf-premium-main .sf-portal-action a:active { | |||
top: 0; | |||
} | |||
.sf-premium-main .sf-feature-action a:hover { | |||
left: 2px; | |||
transform: none !important; | |||
} | |||
.sf-premium-main .sf-feature-action a:active { | |||
left: 0; | |||
} | } | ||
/* ---------- Practical card-width typography ---------- */ | |||
@container sf-premium (min-width: 560px) { | |||
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) { | |||
font-size: .88rem; | |||
line-height: 1.48; | |||
} | |||
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) { | |||
font-size: .84rem; | |||
line-height: 1.46; | |||
} | |||
} | } | ||
. | @container sf-premium (min-width: 980px) { | ||
.sf-premium-main .sf-portal-title-rail h3 { | |||
font-size: clamp(1.02rem, 1.42cqi, 1.25rem); | |||
} | |||
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) { | |||
font-size: .84rem; | |||
line-height: 1.48; | |||
} | |||
.sf-premium-main .sf-feature-title h3 { | |||
font-size: .98rem; | |||
} | |||
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) { | |||
font-size: .78rem; | |||
line-height: 1.46; | |||
} | |||
} | } | ||
. | |||
/* ============================================================ | |||
11. ACCESSIBILITY / MOTION | |||
============================================================ */ | |||
============================================================ */ | |||
.sf-premium-main .sf-portal-action a:focus-visible, | |||
.sf-premium-main .sf-premium-hero-action a:focus-visible, | |||
.sf-premium-main .sf-premium-search a:focus-visible { | |||
outline: 2px solid #f0d28a; | |||
outline-offset: 2px; | |||
} | } | ||
. | @media (prefers-reduced-motion: reduce) { | ||
.sf-premium-main .sf-premium-hero-action a:hover, | |||
.sf-premium-main .sf-portal-action a:hover { | |||
top: 0; | |||
} | |||
.sf-premium-main .sf-feature-action a:hover { | |||
left: 0; | |||
} | |||
} | } | ||
/* ============================================================ | |||
12. FINAL ABSOLUTE MOTION OVERRIDE | |||
Must remain at the end of the premium module. | |||
============================================================ */ | |||
.sf-premium-main .sf-portal-card, | |||
.sf-premium-main .sf-portal-card:hover, | |||
.sf-premium-main .sf-portal-image img, | |||
.sf-premium-main .sf-portal-card:hover .sf-portal-image img, | |||
.sf-premium-main .sf-feature-card, | |||
.sf-premium-main .sf-feature-card:hover, | |||
.sf-premium-main .sf-feature-visual img, | |||
.sf-premium-main .sf-feature-card:hover .sf-feature-visual img { | |||
animation: none !important; | |||
transition: none !important; | |||
transform: none !important; | |||
filter: none !important; | |||
will-change: auto !important; | |||
} | } | ||
Latest revision as of 22:45, 21 July 2026
/* ============================================================
Sinfar Wiki Visual System v3.0
Unified Common.css Framework
Scope doctrine:
- New/refit pages use: <div class="sf-page">
- Legacy pages may still use .sinfar-page / .sf-card / .sf-heading
============================================================ */
/* ============================================================
1. DESIGN TOKENS
============================================================ */
:root {
--sf-bg-page: #0f141b;
--sf-bg-shell: #11161d;
--sf-bg-panel: rgba(18, 14, 12, .78);
--sf-bg-panel-solid: #181214;
--sf-bg-panel-soft: rgba(216, 180, 106, .08);
--sf-bg-hero: linear-gradient(135deg, #21150f, #3a2417);
--sf-border: rgba(216, 180, 106, .28);
--sf-border-strong: rgba(216, 180, 106, .48);
--sf-border-muted: rgba(244, 239, 230, .09);
--sf-text: #f4efe6;
--sf-text-muted: #c9bda9;
--sf-gold: #d8b46a;
--sf-gold-bright: #f0d28a;
--sf-link: #8fc6ff;
--sf-link-hover: #b8d6ff;
--sf-red: #9f4b3e;
--sf-green: #2f5d3a;
--sf-blue: #334e7a;
--sf-purple: #60456f;
--sf-radius-sm: 7px;
--sf-radius-md: 10px;
--sf-gap: 8px;
}
/* ============================================================
2. SOVEREIGN PAGE SHELL
============================================================ */
.sf-page,
.sinfar-page {
background: var(--sf-bg-shell);
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-md);
padding: 16px;
line-height: 1.45;
font-size: 14px;
box-shadow: 0 0 22px rgba(0,0,0,.35);
}
.sf-page *,
.sinfar-page * {
box-sizing: border-box;
}
.sf-page a,
.sf-page a:visited,
.sf-page a.external,
.sf-page a.external:visited,
.sinfar-page a,
.sinfar-page a:visited,
.sinfar-page a.external,
.sinfar-page a.external:visited {
color: var(--sf-link);
}
.sf-page a:hover,
.sinfar-page a:hover {
color: var(--sf-link-hover);
text-decoration: underline;
}
.sf-page code,
.sinfar-page code {
background: #120d10;
color: var(--sf-gold-bright);
border: 1px solid var(--sf-border);
border-radius: 4px;
padding: 1px 4px;
}
/* ============================================================
3. TYPOGRAPHY
============================================================ */
.sf-page h1,
.sf-page h2,
.sf-page h3,
.sinfar-page h1,
.sinfar-page h2,
.sinfar-page h3 {
color: var(--sf-gold-bright);
}
.sf-section-title,
.sf-heading {
color: var(--sf-gold-bright);
border-bottom: 1px solid var(--sf-border-strong);
margin: 18px 0 8px;
padding-bottom: 3px;
font-size: 1.45rem;
line-height: 1.2;
}
.sf-subheading {
color: var(--sf-gold-bright);
margin: 10px 0 6px;
font-size: 1.15rem;
}
.sf-muted {
color: var(--sf-text-muted);
}
.sf-label,
.sf-name {
color: var(--sf-gold-bright);
font-weight: 700;
}
.sf-center {
text-align: center;
}
/* ============================================================
4. HEROES
============================================================ */
.sf-hero,
.sf-hero-compact {
background: var(--sf-bg-hero);
border: 1px solid var(--sf-border-strong);
border-radius: var(--sf-radius-md);
padding: 14px 18px;
margin: 0 0 12px;
text-align: center;
}
.sf-hero h1,
.sf-hero-compact h1,
.sf-title {
color: var(--sf-gold-bright);
margin: 0 0 4px;
font-size: 1.85rem;
line-height: 1.15;
}
.sf-hero p,
.sf-hero-compact p,
.sf-subtitle {
color: var(--sf-text);
margin: 0;
}
.sf-eyebrow {
color: var(--sf-gold);
text-transform: uppercase;
font-size: .75rem;
letter-spacing: .08em;
font-weight: 800;
}
.sf-hero-main {
padding: 22px;
}
.sf-hero-main h1 {
font-size: 2.35rem;
}
/* ============================================================
5. GRIDS / STATUS TILES
============================================================ */
.sf-grid-2,
.sf-grid-3,
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status {
display: grid;
gap: var(--sf-gap);
margin-bottom: 14px;
}
.sf-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sf-grid-4,
.sf-status-grid,
.sf-start-status { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sf-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sf-status-grid > div,
.sf-start-status > div {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 8px 10px;
}
.sf-status-grid b,
.sf-start-status b {
color: var(--sf-gold-bright);
}
.sf-status-grid span,
.sf-start-status span {
color: var(--sf-text);
}
/* ============================================================
6. QUICKBARS / INDEX GRIDS
============================================================ */
.sf-quickbar,
.sf-index-grid {
display: grid;
gap: var(--sf-gap);
margin: 0 0 14px;
}
.sf-quickbar {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sf-index-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sf-quickbar > div,
.sf-index-grid > div,
.sf-pathline {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-left: 4px solid var(--sf-gold);
border-radius: var(--sf-radius-sm);
padding: 8px 10px;
color: var(--sf-text);
}
.sf-quickbar b,
.sf-index-grid b {
color: var(--sf-gold-bright);
}
/*
============================================================
6A. REFERENCE MANUAL LAYOUT
Reusable side directory for long technical documentation.
============================================================ */
.sf-manual-layout {
display: grid;
grid-template-columns: 240px minmax(0, 1fr);
gap: 16px;
align-items: start;
}
.sf-manual-content {
min-width: 0;
}
.sf-manual-content [id] {
scroll-margin-top: 18px;
}
.sf-manual-toc {
position: sticky;
top: 12px;
max-height: calc(100vh - 24px);
overflow-y: auto;
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-md);
padding: 12px;
}
.sf-manual-toc-title {
color: var(--sf-gold-bright);
font-size: 1rem;
font-weight: 900;
margin: 0 0 8px;
padding-bottom: 7px;
border-bottom: 1px solid var(--sf-border-strong);
}
.sf-manual-toc-group {
color: var(--sf-gold);
font-size: .72rem;
font-weight: 900;
letter-spacing: .06em;
text-transform: uppercase;
margin: 12px 0 4px;
}
.sf-manual-toc a,
.sf-manual-toc a:visited {
display: block;
padding: 5px 1px;
color: var(--sf-link);
border-bottom: 1px solid var(--sf-border-muted);
font-size: .88rem;
font-weight: 700;
line-height: 1.25;
text-decoration: none;
}
.sf-manual-toc a:hover {
color: var(--sf-link-hover);
text-decoration: none;
}
.sf-manual-example {
background: rgba(216,180,106,.06);
border: 1px solid var(--sf-border);
border-left: 4px solid var(--sf-gold);
border-radius: var(--sf-radius-sm);
padding: 10px 12px;
margin: 7px 0 9px;
}
.sf-manual-example > :first-child {
margin-top: 0;
}
.sf-manual-example > :last-child {
margin-bottom: 0;
}
.sf-color-swatch {
display: inline-block;
width: 22px;
height: 14px;
margin-right: 7px;
border: 1px solid rgba(255,255,255,.28);
border-radius: 3px;
vertical-align: -2px;
}
@media screen and (max-width: 900px) {
.sf-manual-layout {
grid-template-columns: 1fr;
}
.sf-manual-toc {
position: static;
max-height: none;
}
}
/*
===========================================================
7. DECISION PANELS
============================================================ */
.sf-decision-grid {
display: grid;
grid-template-columns: 1.25fr 1fr 1fr;
gap: var(--sf-gap);
margin-bottom: 14px;
}
.sf-decision,
.sf-card,
.sf-panel {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-md);
color: var(--sf-text);
padding: 12px;
}
.sf-decision-primary {
border-color: rgba(240,210,138,.58);
background: linear-gradient(135deg, rgba(60,38,20,.88), rgba(18,14,12,.78));
}
.sf-decision-kicker {
color: var(--sf-gold);
text-transform: uppercase;
font-size: .72rem;
letter-spacing: .07em;
font-weight: 800;
}
.sf-decision h3 {
color: var(--sf-gold-bright);
margin: 4px 0 6px;
}
.sf-decision p {
margin: 0 0 10px;
color: var(--sf-text);
}
/* ============================================================
8. ACTION LISTS / BUTTONS
============================================================ */
.sf-action-list {
list-style: none;
margin: 12px 0 0 0;
padding: 0;
display: grid;
gap: 8px;
}
.sf-action-list li {
margin: 0;
padding: 0;
}
.sf-action-list a,
.sf-action-list a:visited,
.sf-action-list a.external,
.sf-action-list a.external:visited {
display: block;
width: 100%;
background: rgba(216,180,106,.10);
border: 1px solid rgba(216,180,106,.32);
border-radius: 7px;
padding: 8px 11px;
color: #8fc6ff;
font-weight: 800;
text-align: left;
text-decoration: none;
}
.sf-action-list a:hover,
.sf-action-list a.external:hover {
background: rgba(216,180,106,.16);
border-color: rgba(240,210,138,.48);
color: #b8d6ff;
text-decoration: none;
}
/* ============================================================
9. TABLES
============================================================ */
.sf-table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
color: var(--sf-text);
margin-bottom: 12px;
}
.sf-table th {
color: var(--sf-gold-bright);
background: rgba(216,180,106,.14);
border-bottom: 1px solid var(--sf-border-strong);
padding: 8px 10px;
text-align: left;
}
.sf-table td {
color: var(--sf-text);
border-bottom: 1px solid var(--sf-border-muted);
padding: 7px 10px;
vertical-align: top;
}
.sf-table tr:last-child td {
border-bottom: 0;
}
.sf-table-scroll {
width: 100%;
overflow-x: auto;
margin-bottom: 12px;
}
.sf-table-scroll .sf-table {
min-width: 760px;
margin-bottom: 0;
}
.sf-value,
.sf-good {
text-align: center;
}
.sf-value {
color: #f4c96b;
}
.sf-good {
color: #9fe6bd;
}
/* Standard table column helpers */
.sf-channel-table th:nth-child(1),
.sf-channel-table td:nth-child(1) { width: 14%; }
.sf-channel-table th:nth-child(2),
.sf-channel-table td:nth-child(2) { width: 31%; }
.sf-channel-table th:nth-child(3),
.sf-channel-table td:nth-child(3) { width: 37%; }
.sf-channel-table th:nth-child(4),
.sf-channel-table td:nth-child(4) { width: 18%; }
.sf-setup-table th:nth-child(1),
.sf-setup-table td:nth-child(1) { width: 24%; }
.sf-setup-table th:nth-child(2),
.sf-setup-table td:nth-child(2) { width: 52%; }
.sf-setup-table th:nth-child(3),
.sf-setup-table td:nth-child(3) { width: 24%; }
/* ============================================================
10. BADGES
============================================================ */
.sf-badge {
display: inline-block;
border-radius: 999px;
padding: 2px 7px;
margin: 1px 2px 1px 0;
font-size: .78rem;
font-weight: 800;
white-space: nowrap;
}
.sf-badge-ic { background: #2f5d3a; color: #eaffef; }
.sf-badge-ooc { background: #334e7a; color: #eef4ff; }
.sf-badge-dm { background: #6f3b3b; color: #fff0f0; }
.sf-badge-range { background: #5f4c27; color: #fff2c2; }
.sf-badge-area { background: #60456f; color: #f7eaff; }
.sf-badge-support { background: #4e5563; color: #f0f3f8; }
.sf-badge-best { background: #6a5423; color: #fff0bd; }
/* ============================================================
11. ALERTS / NOTES / RULES
============================================================ */
.sf-note,
.sf-alert,
.sf-warning,
.sf-rule {
color: var(--sf-text);
border-radius: var(--sf-radius-sm);
padding: 8px 11px;
margin: 8px 0;
}
.sf-note {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-left: 4px solid var(--sf-gold);
}
.sf-alert,
.sf-warning {
background: rgba(94,63,18,.35);
border: 1px solid rgba(216,180,106,.24);
border-left: 4px solid #d8a447;
}
.sf-alert b,
.sf-warning b {
display: block;
color: var(--sf-gold-bright);
margin-bottom: 3px;
}
.sf-alert-info {
background: rgba(38,58,92,.34);
border-left-color: #6fa8dc;
}
.sf-alert-warning {
background: rgba(94,63,18,.35);
border-left-color: #d8a447;
}
.sf-alert-danger,
.sf-note--red {
background: rgba(80,30,25,.30);
border-left-color: var(--sf-red);
}
.sf-rule {
border-left: 4px solid var(--sf-red);
background: rgba(80,30,25,.30);
}
/* ============================================================
12. PROGRESS LINES
============================================================ */
.sf-progress-line {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: var(--sf-gap);
margin: 0 0 14px;
}
.sf-progress-line div {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 8px;
text-align: center;
}
.sf-progress-line b {
display: inline-block;
width: 24px;
height: 24px;
border-radius: 999px;
line-height: 24px;
background: rgba(216,180,106,.24);
color: var(--sf-gold-bright);
margin-bottom: 4px;
}
.sf-progress-line span {
display: block;
color: var(--sf-text);
font-size: .88rem;
}
/* ============================================================
13. CODE / SCRIPTING DOCS
============================================================ */
.sf-codeblock,
.sf-codebox,
.sf-page pre,
.sinfar-page pre {
background: #120d10;
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 10px 12px;
overflow-x: auto;
line-height: 1.45;
}
.sf-codeblock code,
.sf-codebox code,
.sf-page pre code,
.sinfar-page pre code {
background: transparent;
border: 0;
padding: 0;
color: var(--sf-text);
}
/*
============================================================
14. IMAGES / SCREENSHOTS
============================================================ */
.sf-img-frame {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 6px;
margin: 8px 0 12px;
}
.sf-img-frame img {
max-width: 100%;
height: auto;
display: block;
border-radius: 4px;
}
/*
============================================================
MAIN PAGE IMAGE SLOTS
============================================================ */
.sf-img-slot{
position:relative;
display:block;
width:100%;
overflow:hidden;
border-radius:8px;
border:1px solid var(--sf-border);
background:#120d10;
}
.sf-main-page .sf-journey-img{
aspect-ratio:16/9;
margin:0 0 14px;
}
.sf-main-page .sf-feature-img{
aspect-ratio:16/9;
margin:0 0 12px;
}
.sf-img-slot img{
display:block;
width:100%;
height:100%;
object-fit:cover;
}
/* ============================================================
15. CHAT CHANNEL COLOR LOCKS
Match in-game channel color identity.
============================================================ */
.sf-chan {
font-weight: 900;
text-shadow: 0 1px 2px rgba(0,0,0,.8);
}
.sf-chan-shout { color: #feef50; }
.sf-chan-dm { color: #f67271; }
.sf-chan-event { color: #ab23f2; }
.sf-chan-action { color: #b56a23; }
.sf-chan-ooc { color: #b1a2bd; }
.sf-chan-pvp { color: #fe5f2e; }
.sf-chan-sex { color: #f520e1; }
.sf-chan-build { color: #b7f520; }
.sf-chan-ffa { color: #20bff0; }
.sf-chan-talk { color: #fefefe; }
.sf-chan-whisper { color: #b0b0b0; }
.sf-chan-quiet { color: #777777; }
.sf-chan-silent { color: #666666; }
.sf-chan-yell { color: #d92324; }
.sf-chan-party { color: #fefefe; }
/* ============================================================
16. FOOTERS
============================================================ */
.sf-footerlinks,
.sf-footer {
margin-top: 14px;
padding-top: 10px;
border-top: 1px solid var(--sf-border);
color: var(--sf-gold);
}
.sf-footer {
text-align: center;
background: #120d10;
padding: 12px 14px;
}
/* ============================================================
17. LEGACY COMPATIBILITY
Keeps older remaster pages readable without preserving chaos.
============================================================ */
.sf-card--gold,
.sf-table--gold {
background: var(--sf-bg-panel);
border-color: var(--sf-border);
}
.sf-card--green,
.sf-table--green {
background: rgba(17,26,18,.82);
border-color: rgba(68,107,53,.72);
}
.sf-card--blue,
.sf-table--blue {
background: rgba(16,24,32,.82);
border-color: rgba(52,87,122,.72);
}
.sf-card--red,
.sf-table--red {
background: rgba(26,16,16,.82);
border-color: rgba(122,52,47,.72);
}
.sf-card--purple,
.sf-table--purple {
background: rgba(25,17,29,.82);
border-color: rgba(91,59,120,.72);
}
.sf-heading--gold { color: var(--sf-gold-bright); border-bottom-color: var(--sf-border); }
.sf-heading--green { color: #91d38f; border-bottom-color: #446b35; }
.sf-heading--blue { color: #8fc6ff; border-bottom-color: #34577a; }
.sf-heading--red { color: #ff9c8f; border-bottom-color: #7a342f; }
.sf-heading--purple { color: #c49cff; border-bottom-color: #5b3b78; }
.sf-docket {
width: 100%;
background: var(--sf-bg-panel);
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
margin: 9px 0 8px;
}
.sf-docket th {
background: rgba(216,180,106,.14);
color: var(--sf-gold-bright);
text-align: left;
padding: 9px 12px;
border-bottom: 1px solid var(--sf-border);
}
.sf-docket td {
background: rgba(18,14,12,.72);
color: var(--sf-text);
padding: 10px 12px;
}
/* ============================================================
18. LISTS
============================================================ */
.sf-page ul,
.sf-page ol,
.sinfar-page ul,
.sinfar-page ol {
margin: 6px 0 8px;
padding-left: 22px;
}
.sf-page li,
.sinfar-page li {
margin: 2px 0;
}
/* ============================================================
19. MOBILE RULES
============================================================ */
@media screen and (max-width: 900px) {
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sf-decision-grid,
.sf-index-grid {
grid-template-columns: 1fr;
}
}
@media screen and (max-width: 720px) {
.sf-page,
.sinfar-page {
padding: 12px;
}
.sf-quickbar,
.sf-grid-2,
.sf-grid-3,
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status,
.sf-progress-line {
grid-template-columns: 1fr;
}
.sf-table {
table-layout: auto;
font-size: .92rem;
}
.sf-channel-table th:nth-child(n),
.sf-channel-table td:nth-child(n),
.sf-setup-table th:nth-child(n),
.sf-setup-table td:nth-child(n) {
width: auto;
}
}
/* ============================================================
Sinfar Main Page Module v1.0
Purpose: cinematic front-door layout for Main Page only.
Requires wrapper: <div class="sf-page sf-main-page">
============================================================ */
.sf-main-page {
max-width: 1320px;
margin: 0 auto;
}
/* ---------- Cinematic Main Hero ---------- */
.sf-main-page .sf-hero-main {
position: relative;
isolation: isolate;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
aspect-ratio: 16 / 9;
min-height: 0;
margin: 0 0 18px;
padding: 64px 48px;
overflow: hidden;
border-radius: 12px;
background: #0b0d11;
text-align: center;
}
/* ---------- Main Page Hero Artwork ---------- */
.sf-main-page .sf-hero-art-slot {
position: absolute;
inset: 0;
z-index: 0;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
border: 0;
border-radius: inherit;
background: #0b0d11;
}
.sf-main-page .sf-hero-art-slot > a,
.sf-main-page .sf-hero-art-slot > span,
.sf-main-page .sf-hero-art-slot .mw-file-element {
display: block;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
.sf-main-page .sf-hero-art-slot img {
display: block;
width: 100%;
height: 100%;
max-width: none;
margin: 0;
padding: 0;
object-fit: cover;
object-position: center center;
}
/* Flat dark overlay for text readability. */
.sf-main-page .sf-hero-art-slot::after {
content: "";
position: absolute;
inset: 0;
z-index: 1;
background: rgba(5, 8, 12, .48);
pointer-events: none;
}
/* Keep hero text above the artwork and overlay. */
.sf-main-page .sf-hero-main > :not(.sf-hero-art-slot) {
position: relative;
z-index: 2;
}
.sf-main-page .sf-hero-main h1 {
margin: 0 0 6px;
color: var(--sf-gold-bright);
font-size: 3.15rem;
line-height: 1.08;
letter-spacing: .08em;
text-transform: uppercase;
text-shadow:
0 2px 3px rgba(0,0,0,.95),
0 0 14px rgba(0,0,0,.78);
}
.sf-main-page .sf-hero-main .sf-eyebrow,
.sf-main-page .sf-hero-main p {
text-shadow: 0 2px 4px rgba(0,0,0,.95);
}
.sf-main-page .sf-hero-main p {
max-width: 680px;
margin: 0 0 12px;
font-size: 1.08rem;
}
/* ---------- Main Page Journey Cards ---------- */
.sf-main-page .sf-decision-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin-bottom: 24px;
}
.sf-main-page .sf-decision {
min-height: 300px;
padding: 22px;
}
.sf-main-page .sf-decision h3 {
font-size: 1.45rem;
}
/* ---------- Main Page Feature Cards ---------- */
.sf-main-page .sf-grid-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin-bottom: 24px;
}
.sf-main-page .sf-card {
min-height: 190px;
padding: 20px;
}
.sf-main-page .sf-card h3 {
color: var(--sf-gold-bright);
margin: 0 0 8px;
font-size: 1.25rem;
}
.sf-main-page .sf-card p {
margin: 0 0 10px;
}
/* ---------- Main Page Action Links ---------- */
.sf-main-page .sf-action-links {
margin-top: 12px;
padding: 0;
background: transparent;
border: 0;
box-shadow: none;
line-height: 1.8;
}
.sf-main-page .sf-action-links a,
.sf-main-page .sf-action-links a:visited,
.sf-main-page .sf-action-links a.external,
.sf-main-page .sf-action-links a.external:visited {
background: transparent;
border: 0;
padding: 0;
color: var(--sf-link);
font-weight: 800;
text-decoration: none;
}
.sf-main-page .sf-action-links a:hover,
.sf-main-page .sf-action-links a.external:hover {
color: var(--sf-link-hover);
text-decoration: underline;
}
/* ---------- Community Strip ---------- */
.sf-main-page .sf-quickbar {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
/* ---------- Main Page Responsive Layout ---------- */
/* Split desktop, tablets, landscape */
@media screen and (min-width: 721px) and (max-width: 860px) {
.sf-main-page .sf-decision-grid,
.sf-main-page .sf-grid-3 {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.sf-main-page .sf-quickbar {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px;
}
.sf-main-page .sf-decision,
.sf-main-page .sf-card {
min-height: 0;
padding: 16px;
}
.sf-main-page .sf-hero-main {
aspect-ratio: 16 / 9;
min-height: 0;
padding: 32px 20px;
}
.sf-main-page .sf-hero-main h1 {
font-size: 2.35rem;
}
}
/* Phones */
@media screen and (max-width: 720px) {
.sf-main-page .sf-decision-grid,
.sf-main-page .sf-grid-3,
.sf-main-page .sf-quickbar {
grid-template-columns: 1fr;
}
.sf-main-page .sf-hero-main {
aspect-ratio: 16 / 9;
min-height: 0;
padding: 24px 16px;
}
.sf-main-page .sf-hero-main h1 {
font-size: 2.1rem;
}
}
/* Small phones */
@media screen and (max-width: 520px) {
.sf-main-page .sf-hero-main {
padding: 18px 14px;
}
.sf-main-page .sf-hero-main .sf-eyebrow {
font-size: .66rem;
}
.sf-main-page .sf-hero-main h1 {
margin-bottom: 4px;
font-size: 1.85rem;
}
.sf-main-page .sf-hero-main p {
margin-bottom: 7px;
font-size: .9rem;
}
}
/* =========================================================
MAIN PAGE COMMUNITY LINKS — DISCORD / PATREON
========================================================= */
.sf-main-page .community-link-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
width: 100%;
max-width: 100%;
margin: 8px 0 16px;
}
.sf-main-page .community-link {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
min-width: 0;
min-height: 58px;
padding: 8px 16px;
overflow: hidden;
border: 0;
border-radius: 6px;
box-sizing: border-box;
}
/* Control MediaWiki-generated wrappers around file images. */
.sf-main-page .community-link > p,
.sf-main-page .community-link > span,
.sf-main-page .community-link > a,
.sf-main-page .community-link .mw-file-description {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
min-width: 0;
margin: 0;
padding: 0;
}
.sf-main-page .community-link img,
.sf-main-page .community-link .mw-file-element {
display: block;
width: auto;
height: 30px;
max-width: 82%;
margin: 0 auto;
object-fit: contain;
}
.sf-main-page .community-link--discord {
background-color: #5865f2;
}
.sf-main-page .community-link--patreon {
background-color: #ff424d;
}
@media screen and (max-width: 520px) {
.sf-main-page .community-link-grid {
grid-template-columns: minmax(0, 1fr);
}
}
/* ============================================================
MAIN PAGE — COLORED CARD SYSTEM
Static layered gradients only. No glow, blur, or filters.
============================================================ */
/* ---------- Shared Card Construction ---------- */
.sf-main-page .sf-journey-card,
.sf-main-page .sf-feature-card {
position: relative;
overflow: hidden;
isolation: isolate;
background-color: #181214;
background-image:
linear-gradient(
135deg,
rgba(255,255,255,.025) 0%,
transparent 34%,
rgba(0,0,0,.12) 70%,
rgba(0,0,0,.24) 100%
),
repeating-linear-gradient(
118deg,
rgba(255,255,255,.014) 0,
rgba(255,255,255,.014) 1px,
transparent 1px,
transparent 7px
);
border: 1px solid var(--sf-card-border, var(--sf-border));
}
/* Subtle inner line without glow or shadow. */
.sf-main-page .sf-journey-card::after,
.sf-main-page .sf-feature-card::after {
content: "";
position: absolute;
inset: 4px;
z-index: -1;
pointer-events: none;
border: 1px solid rgba(244,239,230,.035);
border-radius: 6px;
}
/* ---------- Card Header ---------- */
.sf-main-page .sf-card-head {
display: flex;
align-items: center;
gap: 10px;
min-height: 48px;
margin: -22px -22px 14px;
padding: 10px 16px;
background-color: var(--sf-card-head, rgba(216,180,106,.10));
background-image:
linear-gradient(
90deg,
rgba(255,255,255,.035),
transparent 48%,
rgba(0,0,0,.16)
),
repeating-linear-gradient(
120deg,
rgba(255,255,255,.012) 0,
rgba(255,255,255,.012) 1px,
transparent 1px,
transparent 6px
);
border-bottom: 1px solid var(--sf-card-border, var(--sf-border));
}
.sf-main-page .sf-card-head h3 {
flex: 1;
min-width: 0;
margin: 0;
color: var(--sf-gold-bright);
font-size: 1.25rem;
line-height: 1.15;
}
/* ---------- Header Icon Slot ---------- */
.sf-main-page .sf-card-icon {
flex: 0 0 auto;
display: flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
}
.sf-main-page .sf-card-icon img,
.sf-main-page .sf-card-icon .mw-file-element {
display: block;
width: 100%;
height: 100%;
max-width: 100%;
object-fit: contain;
}
/* ---------- Journey Cards ---------- */
.sf-main-page .sf-journey-card {
--sf-card-border: rgba(216,180,106,.42);
min-height: 100%;
}
/* ---------- Featured System Cards ---------- */
.sf-main-page .sf-feature-card {
--sf-card-border: rgba(216,180,106,.34);
display: flex;
flex-direction: column;
min-height: 100%;
padding: 14px;
}
.sf-main-page .sf-feature-card .sf-card-head {
min-height: 40px;
margin: -14px -14px 12px;
padding: 8px 11px;
gap: 8px;
}
.sf-main-page .sf-feature-card .sf-card-head h3 {
font-size: 1.02rem;
}
.sf-main-page .sf-feature-card .sf-card-icon {
width: 23px;
height: 23px;
}
.sf-main-page .sf-feature-card .sf-action-links {
margin-top: auto;
padding-top: 8px;
}
/* ============================================================
CATEGORY THEMES
============================================================ */
/* New arrivals — crimson */
.sf-main-page .sf-theme-crimson {
--sf-card-head: rgba(83,20,20,.92);
--sf-card-border: rgba(155,69,57,.70);
background-color: #1b1011;
}
/* Player resources — midnight blue */
.sf-main-page .sf-theme-blue {
--sf-card-head: rgba(18,46,74,.94);
--sf-card-border: rgba(62,104,143,.72);
background-color: #101922;
}
/* Builder resources — forest green */
.sf-main-page .sf-theme-green {
--sf-card-head: rgba(29,65,38,.94);
--sf-card-border: rgba(65,110,67,.72);
background-color: #111a14;
}
/* Community — royal purple */
.sf-main-page .sf-theme-purple {
--sf-card-head: rgba(67,32,79,.94);
--sf-card-border: rgba(104,68,124,.72);
background-color: #19121d;
}
/* Housing — slate blue */
.sf-main-page .sf-theme-slate {
--sf-card-head: rgba(40,57,72,.94);
--sf-card-border: rgba(76,102,123,.72);
background-color: #141a1f;
}
/* Businesses — warm tavern bronze */
.sf-main-page .sf-theme-bronze {
--sf-card-head: rgba(83,52,24,.94);
--sf-card-border: rgba(133,89,43,.72);
background-color: #1d1610;
}
/* Character development — arcane violet */
.sf-main-page .sf-theme-arcane {
--sf-card-head: rgba(68,42,88,.94);
--sf-card-border: rgba(104,70,132,.72);
background-color: #19131e;
}
/* Dungeon running — deep teal */
.sf-main-page .sf-theme-teal {
--sf-card-head: rgba(21,62,66,.94);
--sf-card-border: rgba(48,104,108,.72);
background-color: #101b1c;
}
/* PvP — battle red */
.sf-main-page .sf-theme-battle {
--sf-card-head: rgba(92,31,26,.94);
--sf-card-border: rgba(145,65,54,.74);
background-color: #1c1110;
}
/* Custom scripting — dark builder green */
.sf-main-page .sf-theme-script {
--sf-card-head: rgba(37,67,42,.94);
--sf-card-border: rgba(71,111,73,.72);
background-color: #121a13;
}
/* ============================================================
REFERENCE MANUAL — DEFINITIVE WIDTH CONTAINMENT
Keeps later source examples from widening the entire manual.
============================================================ */
.sf-manual-page,
.sf-manual-layout,
.sf-manual-content,
.sf-manual-toc {
min-width: 0;
max-width: 100%;
box-sizing: border-box;
}
.sf-manual-layout {
width: 100%;
}
.sf-manual-content {
width: 100%;
overflow: hidden;
}
/* Every direct manual component must be permitted to shrink. */
.sf-manual-content > *,
.sf-manual-example,
.sf-manual-page .sf-card,
.sf-manual-page .sf-note,
.sf-manual-page .sf-alert,
.sf-manual-page .sf-quickbar,
.sf-manual-page .sf-start-status,
.sf-manual-page .sf-progress-line,
.sf-manual-page .sf-img-frame,
.sf-manual-page .sf-footerlinks {
min-width: 0;
max-width: 100%;
box-sizing: border-box;
}
/* Ordinary prose and callout content must wrap. */
.sf-manual-page p,
.sf-manual-page li,
.sf-manual-page dd,
.sf-manual-page span,
.sf-manual-page .sf-note,
.sf-manual-page .sf-alert {
overflow-wrap: anywhere;
word-break: normal;
}
/* Preformatted source remains intact, but scrolls only
inside its own code box. */
.sf-manual-page pre,
.sf-manual-page .sf-codeblock,
.sf-manual-page .sf-codebox {
display: block;
width: 100%;
max-width: 100%;
min-width: 0;
box-sizing: border-box;
white-space: pre;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
/* Inline code inside tables and paragraphs may wrap. */
.sf-manual-page :not(pre) > code {
white-space: normal;
overflow-wrap: anywhere;
word-break: break-word;
}
/* Tables may never establish the width of the whole page. */
.sf-manual-page .sf-table {
width: 100%;
max-width: 100%;
min-width: 0;
table-layout: fixed;
}
.sf-manual-page .sf-table th,
.sf-manual-page .sf-table td {
min-width: 0;
max-width: 100%;
overflow-wrap: anywhere;
word-break: break-word;
}
/* Explicit wrapper for tables that genuinely need more width. */
.sf-manual-page .sf-table-scroll {
display: block;
width: 100%;
max-width: 100%;
min-width: 0;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
/* Desktop manual layout. */
@media screen and (min-width: 901px) {
.sf-manual-layout {
grid-template-columns: 240px minmax(0, 1fr);
}
}
/* Mobile and narrow-tablet layout. */
@media screen and (max-width: 900px) {
.sf-manual-layout {
display: grid;
grid-template-columns: minmax(0, 1fr);
width: 100%;
max-width: 100%;
}
.sf-manual-toc {
position: static;
width: 100%;
max-width: 100%;
max-height: none;
overflow-x: hidden;
}
.sf-manual-content {
width: 100%;
max-width: 100%;
overflow: hidden;
}
.sf-manual-page .sf-table th,
.sf-manual-page .sf-table td {
padding-left: 7px;
padding-right: 7px;
}
/* Only deliberately wide tables scroll horizontally. */
.sf-manual-page .sf-table-scroll .sf-table {
width: 760px;
min-width: 760px;
max-width: none;
}
}
/* ============================================================
SINFAR PREMIUM MAIN — MEDIAWIKI INTEGRATION REPAIR v1.2
COMPLETE REPLACEMENT for the former Phase I / II / III / IV-A
premium blocks.
Installation:
- In MediaWiki:Common.css, remove the former premium blocks
beginning with "SINFAR PREMIUM MAIN — PHASE I" and ending
after Phase IV-A.
- Paste this complete replacement in their place.
- Keep the earlier Sinfar Wiki Visual System v3.0 CSS above it.
Scope:
- .sf-premium-main only.
- Container-responsive, not viewport-dependent.
- Normalizes MediaWiki image wrappers.
- Uses pseudo-elements for ornamental rails.
============================================================ */
/* ============================================================
1. PREMIUM TOKENS / CONTAINER
============================================================ */
.sf-premium-main {
--sf-premium-black: #080b0f;
--sf-premium-panel: #0d1117;
--sf-premium-gold: #d8b46a;
--sf-premium-gold-bright: #f0d28a;
--sf-premium-gold-line: rgba(216,180,106,.56);
--sf-premium-text: #f4efe6;
--sf-premium-muted: #c9bda9;
container-type: inline-size;
container-name: sf-premium;
overflow: visible;
}
.sf-premium-main *,
.sf-premium-main *::before,
.sf-premium-main *::after {
box-sizing: border-box;
}
.sf-premium-main .sf-premium-masthead p,
.sf-premium-main .sf-premium-hero p,
.sf-premium-main .sf-portal-grid p,
.sf-premium-main .sf-featured-grid p {
margin-top: 0;
}
/* ============================================================
2. MEDIAWIKI FILE WRAPPER NORMALIZATION
============================================================ */
.sf-premium-main .sf-premium-hero-art,
.sf-premium-main .sf-portal-image,
.sf-premium-main .sf-feature-visual {
position: relative;
overflow: hidden;
}
/* Remove parser-generated paragraph/figure spacing. */
.sf-premium-main .sf-premium-hero-art > p,
.sf-premium-main .sf-portal-image > p,
.sf-premium-main .sf-feature-visual > p,
.sf-premium-main .sf-premium-hero-art figure,
.sf-premium-main .sf-portal-image figure,
.sf-premium-main .sf-feature-visual figure {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
margin: 0 !important;
padding: 0 !important;
}
/* Normalize every common MediaWiki file wrapper. */
.sf-premium-main .sf-premium-hero-art > a,
.sf-premium-main .sf-premium-hero-art > span,
.sf-premium-main .sf-premium-hero-art [typeof~="mw:File"],
.sf-premium-main .sf-premium-hero-art .mw-file-description,
.sf-premium-main .sf-premium-hero-art .mw-file-element,
.sf-premium-main .sf-premium-hero-art .mw-default-size,
.sf-premium-main .sf-portal-image > a,
.sf-premium-main .sf-portal-image > span,
.sf-premium-main .sf-portal-image [typeof~="mw:File"],
.sf-premium-main .sf-portal-image .mw-file-description,
.sf-premium-main .sf-portal-image .mw-file-element,
.sf-premium-main .sf-portal-image .mw-default-size,
.sf-premium-main .sf-feature-visual > a,
.sf-premium-main .sf-feature-visual [typeof~="mw:File"],
.sf-premium-main .sf-feature-visual .mw-file-description,
.sf-premium-main .sf-feature-visual .mw-file-element,
.sf-premium-main .sf-feature-visual .mw-default-size {
display: block;
width: 100%;
height: 100%;
margin: 0 !important;
padding: 0 !important;
}
.sf-premium-main .sf-premium-hero-art img,
.sf-premium-main .sf-portal-image img,
.sf-premium-main .sf-feature-visual img {
position: absolute;
inset: 0;
display: block;
width: 100% !important;
height: 100% !important;
max-width: none !important;
margin: 0 !important;
object-fit: cover;
object-position: center;
}
/* ============================================================
3. INTEGRATED MASTHEAD — MOBILE-FIRST
============================================================ */
.sf-premium-main .sf-premium-masthead {
display: grid;
grid-template-columns: minmax(0, 1fr);
align-items: stretch;
margin: -16px -16px 0;
overflow: hidden;
border-bottom: 1px solid var(--sf-premium-gold-line);
background: linear-gradient(180deg, rgba(15,18,22,.99), rgba(7,9,12,.99));
}
.sf-premium-main .sf-premium-brand {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-width: 0;
min-height: 72px;
padding: 10px 18px;
border-bottom: 1px solid rgba(216,180,106,.24);
background:
linear-gradient(135deg, rgba(216,180,106,.07), transparent 52%),
#090c10;
text-align: center;
}
.sf-premium-main .sf-premium-brand-mark {
position: absolute;
top: 8px;
left: 14px;
color: var(--sf-premium-gold-bright);
font-size: 1rem;
line-height: 1;
}
.sf-premium-main .sf-premium-brand-name {
color: var(--sf-premium-gold-bright);
font-family: Georgia, "Times New Roman", serif;
font-size: 1.65rem;
line-height: .96;
letter-spacing: .09em;
text-transform: uppercase;
}
.sf-premium-main .sf-premium-brand-subtitle {
margin-top: 6px;
color: var(--sf-premium-muted);
font-size: .54rem;
font-weight: 700;
letter-spacing: .11em;
text-transform: uppercase;
}
.sf-premium-main .sf-premium-nav {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 16px;
min-width: 0;
padding: 10px 14px;
overflow-x: auto;
scrollbar-width: thin;
white-space: nowrap;
}
.sf-premium-main .sf-premium-nav > div {
flex: 0 0 auto;
min-width: 0;
}
.sf-premium-main .sf-premium-nav a,
.sf-premium-main .sf-premium-nav a:visited {
color: var(--sf-premium-gold-bright);
font-size: .72rem;
font-weight: 700;
text-decoration: none;
}
.sf-premium-main .sf-premium-nav a:hover {
color: #fff1b8;
text-decoration: none;
}
.sf-premium-main .sf-premium-search {
display: none;
align-items: center;
padding: 13px 16px 13px 0;
}
.sf-premium-main .sf-premium-search a,
.sf-premium-main .sf-premium-search a:visited {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
min-height: 34px;
padding: 0 34px 0 12px;
border: 1px solid rgba(216,180,106,.45);
border-radius: 4px;
background: rgba(3,5,7,.72);
color: #9e978a;
font-size: .72rem;
font-weight: 400;
text-decoration: none;
}
.sf-premium-main .sf-premium-search a::after {
content: "⌕";
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
color: var(--sf-premium-gold-bright);
font-size: 1.05rem;
}
/* ============================================================
4. CINEMATIC HERO
============================================================ */
.sf-premium-main .sf-premium-hero {
position: relative;
isolation: isolate;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
aspect-ratio: 16 / 9;
min-height: 0;
margin: 0;
overflow: hidden;
border-right: 1px solid var(--sf-premium-gold-line);
border-bottom: 1px solid var(--sf-premium-gold-line);
border-left: 1px solid var(--sf-premium-gold-line);
border-radius: 0 0 10px 10px;
background: var(--sf-premium-black);
text-align: center;
}
.sf-premium-main .sf-premium-hero::before {
content: "";
position: absolute;
inset: 6px;
z-index: 3;
border: 1px solid rgba(216,180,106,.22);
border-radius: 6px;
pointer-events: none;
}
.sf-premium-main .sf-premium-hero-art {
position: absolute;
inset: 0;
z-index: 0;
width: 100%;
height: 100%;
}
.sf-premium-main .sf-premium-hero-art::after {
content: "";
position: absolute;
inset: 0;
z-index: 2;
background:
linear-gradient(90deg, rgba(3,5,8,.48), rgba(3,5,8,.18) 36%, rgba(3,5,8,.18) 64%, rgba(3,5,8,.48)),
linear-gradient(180deg, rgba(3,5,8,.12), rgba(3,5,8,.30));
pointer-events: none;
}
.sf-premium-main .sf-premium-hero-content {
position: relative;
z-index: 4;
display: flex;
flex-direction: column;
align-items: center;
width: 92%;
padding: 10px 12px;
background: linear-gradient(
90deg,
transparent,
rgba(3,5,8,.24) 15%,
rgba(3,5,8,.34) 50%,
rgba(3,5,8,.24) 85%,
transparent
);
}
.sf-premium-main .sf-premium-eyebrow {
color: var(--sf-premium-gold-bright);
font-size: .60rem;
font-weight: 800;
letter-spacing: .15em;
text-transform: uppercase;
text-shadow: 0 2px 4px rgba(0,0,0,.95);
}
.sf-premium-main .sf-premium-hero h1 {
margin: 3px 0 4px;
color: var(--sf-premium-gold-bright);
font-family: Georgia, "Times New Roman", serif;
font-size: clamp(1.7rem, 9cqi, 2.45rem);
font-weight: 500;
line-height: .96;
letter-spacing: .10em;
text-transform: uppercase;
text-shadow:
0 2px 2px rgba(0,0,0,1),
0 5px 12px rgba(0,0,0,.78);
}
.sf-premium-main .sf-premium-tagline {
color: var(--sf-premium-text);
font-size: .58rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
text-shadow: 0 2px 4px rgba(0,0,0,.95);
}
.sf-premium-main .sf-premium-hero-copy {
display: none;
margin: 12px 0 0;
color: var(--sf-premium-text);
font-size: .92rem;
text-shadow: 0 2px 4px rgba(0,0,0,.95);
}
.sf-premium-main .sf-premium-hero-action {
margin: 7px 0 0;
}
.sf-premium-main .sf-premium-hero-action a,
.sf-premium-main .sf-premium-hero-action a:visited {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 0;
min-height: 32px;
padding: 5px 13px;
border: 1px solid rgba(240,210,138,.78);
border-radius: 3px;
background: linear-gradient(180deg, rgba(120,24,18,.96), rgba(52,7,5,.98));
color: var(--sf-premium-text);
font-family: Georgia, "Times New Roman", serif;
font-size: .66rem;
font-weight: 700;
letter-spacing: .05em;
text-decoration: none;
text-transform: uppercase;
box-shadow:
inset 0 0 0 2px rgba(0,0,0,.38),
inset 0 1px 0 rgba(255,255,255,.08);
}
.sf-premium-main .sf-premium-hero-action a:hover {
border-color: var(--sf-premium-gold-bright);
background: linear-gradient(180deg, rgba(145,31,22,.98), rgba(65,9,6,.98));
color: #fff7dd;
text-decoration: none;
}
/* ============================================================
5. MEDIAWIKI-SAFE SECTION DIVIDERS
============================================================ */
.sf-premium-main .sf-premium-divider {
position: relative;
display: grid;
grid-template-columns: minmax(20px, 1fr) auto minmax(20px, 1fr);
align-items: center;
gap: 10px;
margin: 14px 0 10px;
}
.sf-premium-main .sf-premium-divider::before,
.sf-premium-main .sf-premium-divider::after {
content: "";
height: 1px;
}
.sf-premium-main .sf-premium-divider::before {
background: linear-gradient(90deg, transparent, rgba(216,180,106,.68));
}
.sf-premium-main .sf-premium-divider::after {
background: linear-gradient(90deg, rgba(216,180,106,.68), transparent);
}
.sf-premium-main .sf-premium-divider h2 {
position: relative;
grid-column: 2;
margin: 0;
padding: 0 22px;
border: 0;
color: var(--sf-premium-gold-bright);
font-family: Georgia, "Times New Roman", serif;
font-size: 1.05rem;
font-weight: 500;
line-height: 1.12;
letter-spacing: .05em;
text-align: center;
text-transform: uppercase;
white-space: nowrap;
}
.sf-premium-main .sf-premium-divider h2::before,
.sf-premium-main .sf-premium-divider h2::after {
content: "✦";
position: absolute;
top: 50%;
transform: translateY(-50%);
color: var(--sf-premium-gold);
font-size: .62rem;
}
.sf-premium-main .sf-premium-divider h2::before {
left: 4px;
}
.sf-premium-main .sf-premium-divider h2::after {
right: 4px;
}
.sf-premium-main .sf-premium-divider--featured {
margin-top: 20px;
margin-bottom: 12px;
}
/* ============================================================
6. PRESTIGE PORTAL GRID — MOBILE-FIRST
============================================================ */
.sf-premium-main .sf-portal-grid--prestige {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 29px;
margin: 0 0 22px;
padding-top: 29px;
align-items: stretch;
}
.sf-premium-main .sf-portal-card {
--portal-accent: #d8b46a;
--portal-accent-bright: #f0d28a;
--portal-line: rgba(216,180,106,.54);
--portal-line-soft: rgba(216,180,106,.18);
--portal-crown: #3f2919;
--portal-mid: #1b1411;
--portal-floor: #090c10;
--portal-wash: rgba(216,180,106,.06);
position: relative;
isolation: isolate;
display: flex;
flex-direction: column;
min-width: 0;
min-height: 100%;
overflow: visible;
border: 1px solid var(--portal-line);
border-radius: 8px;
background: linear-gradient(180deg, var(--portal-crown) 0%, var(--portal-mid) 46%, var(--portal-floor) 100%);
color: #f4efe6;
box-shadow:
inset 0 0 0 1px rgba(0,0,0,.72),
inset 0 0 0 5px rgba(216,180,106,.035),
0 5px 14px rgba(0,0,0,.32);
}
/* Inner frame. */
.sf-premium-main .sf-portal-card::before {
content: "";
position: absolute;
inset: 6px;
z-index: 6;
border: 1px solid var(--portal-line-soft);
border-radius: 4px;
pointer-events: none;
}
/* Eight-line ornamental corners — no empty HTML spans required. */
.sf-premium-main .sf-portal-card::after {
content: "";
position: absolute;
inset: 3px;
z-index: 7;
border-radius: 6px;
background:
linear-gradient(var(--portal-accent),var(--portal-accent)) left top / 21px 1px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) left top / 1px 21px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) right top / 21px 1px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) right top / 1px 21px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) left bottom / 21px 1px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) left bottom / 1px 21px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) right bottom / 21px 1px no-repeat,
linear-gradient(var(--portal-accent),var(--portal-accent)) right bottom / 1px 21px no-repeat;
opacity: .88;
pointer-events: none;
}
/* ---------- Medallion ---------- */
.sf-premium-main .sf-portal-medallion {
position: absolute;
top: -27px;
left: 50%;
z-index: 12;
display: grid;
place-items: center;
width: 58px;
height: 58px;
transform: translateX(-50%);
border: 1px solid var(--portal-accent-bright);
border-radius: 50%;
background:
radial-gradient(circle at 50% 37%, rgba(255,255,255,.08), transparent 35%),
linear-gradient(180deg, var(--portal-crown), #0a0b0d 82%);
color: var(--portal-accent-bright);
font-family: Georgia, "Times New Roman", serif;
font-size: 1.52rem;
font-weight: 700;
line-height: 1;
box-shadow:
inset 0 0 0 4px rgba(0,0,0,.56),
inset 0 0 0 5px var(--portal-line-soft),
0 4px 8px rgba(0,0,0,.55);
text-shadow: 0 2px 3px rgba(0,0,0,.96);
}
.sf-premium-main .sf-portal-medallion::before {
content: "";
position: absolute;
inset: 7px;
border: 1px solid var(--portal-line);
border-radius: 50%;
}
.sf-premium-main .sf-portal-medallion::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
z-index: -1;
width: 84px;
height: 1px;
transform: translate(-50%,-50%);
background: linear-gradient(90deg, transparent, var(--portal-accent), transparent);
}
/* ---------- Image chamber ---------- */
.sf-premium-main .sf-portal-image {
z-index: 2;
width: auto;
aspect-ratio: 16 / 9;
min-height: 0;
margin: 7px 7px 0;
border: 1px solid var(--portal-line-soft);
border-radius: 4px 4px 2px 2px;
background: #080a0d;
}
.sf-premium-main .sf-portal-image::before {
content: "";
position: absolute;
inset: 0;
z-index: 3;
box-shadow:
inset 0 0 0 1px rgba(0,0,0,.52),
inset 0 0 34px rgba(0,0,0,.28);
pointer-events: none;
}
.sf-premium-main .sf-portal-image::after {
content: "";
position: absolute;
inset: 0;
z-index: 4;
background:
linear-gradient(180deg, rgba(2,4,6,.02) 46%, rgba(2,4,6,.30) 100%),
linear-gradient(90deg, var(--portal-wash), transparent 31%, transparent 69%, var(--portal-wash));
pointer-events: none;
}
.sf-premium-main .sf-portal-image img {
}
/* ---------- Portal body ---------- */
.sf-premium-main .sf-portal-body {
position: relative;
z-index: 3;
display: flex;
flex: 1 1 auto;
flex-direction: column;
align-items: center;
min-width: 0;
padding: 14px 15px 17px;
border-top: 1px solid rgba(0,0,0,.65);
background:
linear-gradient(180deg, rgba(255,255,255,.018), transparent 24%),
linear-gradient(180deg, var(--portal-mid), var(--portal-floor));
text-align: center;
}
.sf-premium-main .sf-portal-body::before {
content: "";
position: absolute;
top: -1px;
left: 16%;
right: 16%;
height: 1px;
background: linear-gradient(90deg, transparent, var(--portal-accent), transparent);
opacity: .72;
}
.sf-premium-main .sf-portal-body::after {
content: "◆";
position: absolute;
left: 50%;
bottom: 4px;
transform: translateX(-50%);
color: var(--portal-accent);
font-size: .46rem;
line-height: 1;
opacity: .72;
}
/* ---------- MediaWiki-safe title rail ---------- */
.sf-premium-main .sf-portal-title-rail {
position: relative;
display: grid;
grid-template-columns: minmax(12px, 1fr) auto minmax(12px, 1fr);
align-items: center;
gap: 9px;
width: 100%;
margin: 0 0 9px;
}
.sf-premium-main .sf-portal-title-rail::before,
.sf-premium-main .sf-portal-title-rail::after {
content: "";
height: 1px;
}
.sf-premium-main .sf-portal-title-rail::before {
background: linear-gradient(90deg, transparent, var(--portal-line));
}
.sf-premium-main .sf-portal-title-rail::after {
background: linear-gradient(90deg, var(--portal-line), transparent);
}
.sf-premium-main .sf-portal-title-rail h3 {
grid-column: 2;
margin: 0;
color: #f0d28a;
font-family: Georgia, "Times New Roman", serif;
font-size: 1.12rem;
font-weight: 500;
line-height: 1.12;
letter-spacing: .035em;
text-transform: uppercase;
white-space: normal;
}
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) {
flex: 1 1 auto;
width: min(100%, 260px);
margin: 0 auto;
color: #f4efe6;
font-size: .86rem;
line-height: 1.52;
}
/* ---------- Portal button ---------- */
.sf-premium-main .sf-portal-action {
width: 100%;
margin: 15px 0 3px;
}
.sf-premium-main .sf-portal-action a,
.sf-premium-main .sf-portal-action a:visited {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
min-height: 40px;
padding: 8px 14px;
border: 1px solid var(--portal-line);
border-radius: 3px;
background:
linear-gradient(180deg, rgba(255,255,255,.025), transparent 42%),
linear-gradient(180deg, rgba(2,4,6,.50), rgba(2,4,6,.78));
color: #f0d28a;
font-family: Georgia, "Times New Roman", serif;
font-size: .78rem;
font-weight: 700;
letter-spacing: .07em;
text-decoration: none;
text-transform: uppercase;
box-shadow:
inset 0 0 0 2px rgba(0,0,0,.42),
inset 0 1px 0 rgba(255,255,255,.025);
}
.sf-premium-main .sf-portal-action a::before,
.sf-premium-main .sf-portal-action a::after {
content: "";
position: absolute;
top: 5px;
bottom: 5px;
width: 1px;
background: linear-gradient(180deg, transparent, var(--portal-accent), transparent);
opacity: .68;
}
.sf-premium-main .sf-portal-action a::before { left: 7px; }
.sf-premium-main .sf-portal-action a::after { right: 7px; }
.sf-premium-main .sf-portal-action a:hover {
border-color: var(--portal-accent-bright);
background:
linear-gradient(180deg, var(--portal-wash), transparent 50%),
linear-gradient(180deg, rgba(2,4,6,.38), rgba(2,4,6,.74));
color: #fff2bf;
text-decoration: none;
}
/* ---------- Portal identities ---------- */
.sf-premium-main .sf-portal-card--crimson {
--portal-accent: #be744d;
--portal-accent-bright: #efbf73;
--portal-line: rgba(190,116,77,.70);
--portal-line-soft: rgba(190,116,77,.24);
--portal-crown: #3a130f;
--portal-mid: #24100e;
--portal-floor: #0c090a;
--portal-wash: rgba(153,45,34,.14);
}
.sf-premium-main .sf-portal-card--blue {
--portal-accent: #527da9;
--portal-accent-bright: #efc677;
--portal-line: rgba(82,125,169,.72);
--portal-line-soft: rgba(82,125,169,.25);
--portal-crown: #0c2941;
--portal-mid: #0a1d2b;
--portal-floor: #080c11;
--portal-wash: rgba(41,103,156,.14);
}
.sf-premium-main .sf-portal-card--green {
--portal-accent: #587f4c;
--portal-accent-bright: #efc677;
--portal-line: rgba(88,127,76,.74);
--portal-line-soft: rgba(88,127,76,.25);
--portal-crown: #15341c;
--portal-mid: #102417;
--portal-floor: #080d0a;
--portal-wash: rgba(51,111,59,.14);
}
.sf-premium-main .sf-portal-card--purple {
--portal-accent: #7d5790;
--portal-accent-bright: #efc677;
--portal-line: rgba(125,87,144,.76);
--portal-line-soft: rgba(125,87,144,.26);
--portal-crown: #32173d;
--portal-mid: #23112a;
--portal-floor: #0d0910;
--portal-wash: rgba(111,56,135,.15);
}
.sf-premium-main .sf-portal-card:hover {
border-color: var(--portal-accent-bright);
}
/* ============================================================
7. FEATURED SYSTEMS — MOBILE-FIRST
============================================================ */
.sf-premium-main .sf-featured-grid {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 12px;
margin: 0 0 20px;
padding: 0;
}
.sf-premium-main .sf-feature-card {
position: relative;
isolation: isolate;
display: flex;
flex-direction: column;
min-width: 0;
overflow: hidden;
border: 1px solid rgba(216,180,106,.40);
border-radius: 6px;
background: linear-gradient(180deg, rgba(13,17,22,.99), rgba(6,9,12,.99));
color: #f4efe6;
box-shadow:
inset 0 0 0 1px rgba(0,0,0,.58),
0 3px 10px rgba(0,0,0,.24);
}
.sf-premium-main .sf-feature-card::before {
content: "";
position: absolute;
inset: 4px;
z-index: 4;
border: 1px solid rgba(216,180,106,.10);
border-radius: 3px;
pointer-events: none;
}
.sf-premium-main .sf-feature-visual {
z-index: 1;
display: flex;
align-items: flex-start;
justify-content: flex-start;
width: 100%;
aspect-ratio: 16 / 9;
min-height: 0;
border-bottom: 1px solid rgba(216,180,106,.28);
background:
linear-gradient(135deg, rgba(216,180,106,.06), transparent 50%),
#100b0e;
color: #c9bda9;
}
.sf-premium-main .sf-feature-visual > span {
position: relative;
z-index: 3;
display: block;
padding: 8px 9px;
color: rgba(244,239,230,.70);
font-size: .66rem;
line-height: 1.2;
}
.sf-premium-main .sf-feature-visual::after {
content: "";
position: absolute;
inset: 0;
z-index: 2;
background: linear-gradient(180deg, rgba(3,5,8,.02), rgba(3,5,8,.20));
pointer-events: none;
}
.sf-premium-main .sf-feature-visual--cooking {
background: linear-gradient(135deg, rgba(116,65,22,.32), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-visual--housing {
background: linear-gradient(135deg, rgba(47,69,54,.30), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-visual--business {
background: linear-gradient(135deg, rgba(93,57,24,.30), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-visual--pvp {
background: linear-gradient(135deg, rgba(84,37,37,.32), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-visual--character {
background: linear-gradient(135deg, rgba(72,40,92,.34), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-visual--dungeon {
background: linear-gradient(135deg, rgba(27,55,70,.32), rgba(8,10,12,.96)), #100b0e;
}
.sf-premium-main .sf-feature-content {
position: relative;
z-index: 3;
display: flex;
flex: 1 1 auto;
flex-direction: column;
min-width: 0;
padding: 12px 14px 14px;
}
.sf-premium-main .sf-feature-title {
display: grid;
grid-template-columns: 26px minmax(0, 1fr);
align-items: center;
gap: 7px;
min-width: 0;
margin: 0 0 8px;
}
.sf-premium-main .sf-feature-icon {
display: flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
color: #d8b46a;
font-family: Georgia, "Times New Roman", serif;
font-size: 1.12rem;
font-weight: 700;
line-height: 1;
}
.sf-premium-main .sf-feature-title h3 {
min-width: 0;
margin: 0;
color: #f0d28a;
font-family: Georgia, "Times New Roman", serif;
font-size: 1.08rem;
font-weight: 500;
line-height: 1.12;
letter-spacing: .02em;
text-transform: uppercase;
}
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) {
flex: 1 1 auto;
margin: 0;
color: #f4efe6;
font-size: .84rem;
line-height: 1.44;
}
.sf-premium-main .sf-feature-action {
margin: 12px 0 0;
}
.sf-premium-main .sf-feature-action a,
.sf-premium-main .sf-feature-action a:visited {
color: #d8b46a;
font-family: Georgia, "Times New Roman", serif;
font-size: .76rem;
font-weight: 700;
letter-spacing: .025em;
text-decoration: none;
}
.sf-premium-main .sf-feature-action a:hover {
color: #f0d28a;
text-decoration: none;
}
/* ============================================================
8. CONTAINER-RESPONSIVE LAYOUT
============================================================ */
/* Two-column card stage. */
@container sf-premium (min-width: 560px) {
.sf-premium-main .sf-premium-eyebrow {
font-size: .72rem;
}
.sf-premium-main .sf-premium-hero h1 {
font-size: clamp(2.3rem, 7cqi, 3.6rem);
}
.sf-premium-main .sf-premium-tagline {
font-size: .70rem;
letter-spacing: .12em;
}
.sf-premium-main .sf-premium-hero-copy {
display: block;
}
.sf-premium-main .sf-premium-hero-action {
margin-top: 12px;
}
.sf-premium-main .sf-premium-divider h2 {
font-size: 1.22rem;
}
.sf-premium-main .sf-portal-grid--prestige {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 24px 16px;
padding-top: 31px;
}
.sf-premium-main .sf-portal-image {
aspect-ratio: 16 / 9;
}
.sf-premium-main .sf-featured-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
/* Compact desktop / tablet stage. */
@container sf-premium (min-width: 760px) {
.sf-premium-main .sf-premium-masthead {
grid-template-columns: minmax(190px,.68fr) minmax(0,2.32fr);
}
.sf-premium-main .sf-premium-brand {
align-items: flex-start;
min-height: 76px;
padding: 10px 18px 10px 54px;
border-right: 1px solid rgba(216,180,106,.28);
border-bottom: 0;
text-align: left;
}
.sf-premium-main .sf-premium-brand-mark {
top: 9px;
left: 20px;
font-size: 1.25rem;
}
.sf-premium-main .sf-premium-brand-name {
font-size: 1.9rem;
}
.sf-premium-main .sf-premium-brand-subtitle {
font-size: .60rem;
}
.sf-premium-main .sf-premium-nav {
justify-content: flex-end;
gap: 14px;
padding: 0 18px;
overflow: hidden;
}
.sf-premium-main .sf-premium-nav a,
.sf-premium-main .sf-premium-nav a:visited {
font-size: .74rem;
}
.sf-premium-main .sf-premium-hero-content {
width: min(700px, 86%);
padding: 18px 24px;
}
.sf-premium-main .sf-premium-eyebrow {
font-size: .80rem;
}
.sf-premium-main .sf-premium-hero h1 {
margin: 6px 0 8px;
font-size: clamp(3rem, 6cqi, 4.6rem);
}
.sf-premium-main .sf-premium-tagline {
font-size: clamp(.76rem, 1.35cqi, .96rem);
letter-spacing: .17em;
}
.sf-premium-main .sf-premium-hero-copy {
margin-top: 18px;
font-size: 1rem;
}
.sf-premium-main .sf-premium-hero-action {
margin-top: 16px;
}
.sf-premium-main .sf-premium-hero-action a,
.sf-premium-main .sf-premium-hero-action a:visited {
min-width: 230px;
min-height: 44px;
padding: 8px 22px;
font-size: .86rem;
}
.sf-premium-main .sf-premium-divider {
margin-top: 16px;
}
.sf-premium-main .sf-premium-divider h2 {
font-size: 1.36rem;
}
.sf-premium-main .sf-featured-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sf-premium-main .sf-feature-visual {
aspect-ratio: 16 / 8.7;
}
}
/* Full premium desktop stage. */
@container sf-premium (min-width: 980px) {
.sf-premium-main .sf-premium-masthead {
grid-template-columns: minmax(210px,.8fr) minmax(0,2.3fr) minmax(190px,.7fr);
}
.sf-premium-main .sf-premium-brand {
padding-left: 58px;
}
.sf-premium-main .sf-premium-brand-name {
font-size: 2rem;
}
.sf-premium-main .sf-premium-nav {
justify-content: center;
gap: clamp(10px,1.5cqi,24px);
}
.sf-premium-main .sf-premium-nav a,
.sf-premium-main .sf-premium-nav a:visited {
font-size: .78rem;
}
.sf-premium-main .sf-premium-search {
display: flex;
}
.sf-premium-main .sf-premium-hero-content {
width: min(720px,78%);
padding: 24px 34px;
}
.sf-premium-main .sf-premium-hero h1 {
font-size: clamp(3.6rem,6cqi,5.4rem);
}
.sf-premium-main .sf-premium-hero-action a,
.sf-premium-main .sf-premium-hero-action a:visited {
min-width: 250px;
min-height: 46px;
padding: 9px 24px;
font-size: .92rem;
}
.sf-premium-main .sf-premium-divider h2 {
font-size: 1.42rem;
}
.sf-premium-main .sf-portal-grid--prestige {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.sf-premium-main .sf-portal-medallion {
top: -31px;
width: 66px;
height: 66px;
font-size: 1.72rem;
}
.sf-premium-main .sf-portal-image {
aspect-ratio: 16 / 10;
margin: 8px 8px 0;
}
.sf-premium-main .sf-portal-body {
padding: 15px 16px 17px;
}
.sf-premium-main .sf-portal-title-rail h3 {
font-size: clamp(1rem,1.45cqi,1.28rem);
}
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) {
font-size: .84rem;
}
.sf-premium-main .sf-featured-grid {
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
}
.sf-premium-main .sf-feature-visual {
aspect-ratio: 16 / 10;
}
.sf-premium-main .sf-feature-content {
padding: 11px 12px 12px;
}
.sf-premium-main .sf-feature-title {
grid-template-columns: 24px minmax(0, 1fr);
}
.sf-premium-main .sf-feature-title h3 {
font-size: .96rem;
}
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) {
font-size: .75rem;
}
}
/* ============================================================
9. FALLBACK FOR BROWSERS WITHOUT CONTAINER QUERIES
============================================================ */
@supports not (container-type: inline-size) {
@media screen and (min-width: 760px) {
.sf-premium-main .sf-portal-grid--prestige {
grid-template-columns: repeat(2,minmax(0,1fr));
}
.sf-premium-main .sf-featured-grid {
grid-template-columns: repeat(3,minmax(0,1fr));
}
}
@media screen and (min-width: 1180px) {
.sf-premium-main .sf-premium-masthead {
grid-template-columns: minmax(210px,.8fr) minmax(0,2.3fr) minmax(190px,.7fr);
}
.sf-premium-main .sf-premium-search {
display: flex;
}
.sf-premium-main .sf-portal-grid--prestige {
grid-template-columns: repeat(4,minmax(0,1fr));
}
.sf-premium-main .sf-featured-grid {
grid-template-columns: repeat(6,minmax(0,1fr));
}
}
}
/* ============================================================
10. STATIC-CARD PERFORMANCE LOCK / CRISP TYPOGRAPHY
============================================================ */
/*
The cards and their artwork are completely static.
Link controls retain only an immediate 1–2px positional response.
No transform animation or transition is used.
*/
.sf-premium-main {
text-rendering: auto;
}
/* ---------- Hard motion lock for card surfaces ---------- */
.sf-premium-main .sf-portal-card,
.sf-premium-main .sf-portal-image,
.sf-premium-main .sf-portal-image img,
.sf-premium-main .sf-portal-body,
.sf-premium-main .sf-portal-title-rail,
.sf-premium-main .sf-portal-medallion,
.sf-premium-main .sf-feature-card,
.sf-premium-main .sf-feature-visual,
.sf-premium-main .sf-feature-visual img,
.sf-premium-main .sf-feature-content,
.sf-premium-main .sf-feature-title {
animation: none !important;
transition: none !important;
will-change: auto !important;
}
.sf-premium-main .sf-portal-card,
.sf-premium-main .sf-portal-image img,
.sf-premium-main .sf-feature-card,
.sf-premium-main .sf-feature-visual img {
transform: none !important;
}
/* No whole-card hover state. */
.sf-premium-main .sf-portal-card:hover,
.sf-premium-main .sf-feature-card:hover {
transform: none !important;
}
.sf-premium-main .sf-portal-card:hover {
border-color: var(--portal-line);
}
.sf-premium-main .sf-portal-card:hover .sf-portal-image img,
.sf-premium-main .sf-feature-card:hover .sf-feature-visual img {
transform: none !important;
filter: none !important;
}
/* ---------- Crisp functional typography ---------- */
.sf-premium-main .sf-premium-nav,
.sf-premium-main .sf-premium-search,
.sf-premium-main .sf-portal-body,
.sf-premium-main .sf-feature-content,
.sf-premium-main .sf-quickbar,
.sf-premium-main .sf-footerlinks {
font-family: Arial, "Segoe UI", Helvetica, sans-serif;
}
.sf-premium-main .sf-portal-title-rail h3,
.sf-premium-main .sf-feature-title h3,
.sf-premium-main .sf-premium-divider h2 {
color: #f0cf7a;
font-weight: 700;
text-shadow: none !important;
filter: none !important;
opacity: 1;
}
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action),
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) {
color: #f8f4ec;
font-weight: 400;
letter-spacing: 0;
text-shadow: none !important;
filter: none !important;
opacity: 1;
}
.sf-premium-main .sf-premium-nav a,
.sf-premium-main .sf-premium-nav a:visited {
color: #f0cf7a;
text-shadow: none !important;
}
/* ---------- Link-only positional response ---------- */
.sf-premium-main .sf-premium-hero-action a,
.sf-premium-main .sf-premium-hero-action a:visited,
.sf-premium-main .sf-portal-action a,
.sf-premium-main .sf-portal-action a:visited,
.sf-premium-main .sf-feature-action a,
.sf-premium-main .sf-feature-action a:visited {
position: relative;
top: 0;
left: 0;
animation: none !important;
transition: none !important;
transform: none !important;
will-change: auto !important;
}
.sf-premium-main .sf-premium-hero-action a:hover,
.sf-premium-main .sf-portal-action a:hover {
top: -1px;
transform: none !important;
}
.sf-premium-main .sf-premium-hero-action a:active,
.sf-premium-main .sf-portal-action a:active {
top: 0;
}
.sf-premium-main .sf-feature-action a:hover {
left: 2px;
transform: none !important;
}
.sf-premium-main .sf-feature-action a:active {
left: 0;
}
/* ---------- Practical card-width typography ---------- */
@container sf-premium (min-width: 560px) {
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) {
font-size: .88rem;
line-height: 1.48;
}
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) {
font-size: .84rem;
line-height: 1.46;
}
}
@container sf-premium (min-width: 980px) {
.sf-premium-main .sf-portal-title-rail h3 {
font-size: clamp(1.02rem, 1.42cqi, 1.25rem);
}
.sf-premium-main .sf-portal-body > p:not(.sf-portal-action) {
font-size: .84rem;
line-height: 1.48;
}
.sf-premium-main .sf-feature-title h3 {
font-size: .98rem;
}
.sf-premium-main .sf-feature-content > p:not(.sf-feature-action) {
font-size: .78rem;
line-height: 1.46;
}
}
/* ============================================================
11. ACCESSIBILITY / MOTION
============================================================ */
============================================================ */
.sf-premium-main .sf-portal-action a:focus-visible,
.sf-premium-main .sf-premium-hero-action a:focus-visible,
.sf-premium-main .sf-premium-search a:focus-visible {
outline: 2px solid #f0d28a;
outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
.sf-premium-main .sf-premium-hero-action a:hover,
.sf-premium-main .sf-portal-action a:hover {
top: 0;
}
.sf-premium-main .sf-feature-action a:hover {
left: 0;
}
}
/* ============================================================
12. FINAL ABSOLUTE MOTION OVERRIDE
Must remain at the end of the premium module.
============================================================ */
.sf-premium-main .sf-portal-card,
.sf-premium-main .sf-portal-card:hover,
.sf-premium-main .sf-portal-image img,
.sf-premium-main .sf-portal-card:hover .sf-portal-image img,
.sf-premium-main .sf-feature-card,
.sf-premium-main .sf-feature-card:hover,
.sf-premium-main .sf-feature-visual img,
.sf-premium-main .sf-feature-card:hover .sf-feature-visual img {
animation: none !important;
transition: none !important;
transform: none !important;
filter: none !important;
will-change: auto !important;
}