MediaWiki:Common.css: Difference between revisions

From Winds Of Valen Wiki
Jump to navigation Jump to search
Total reset of header using absolute positioning to fix all overlaps
Force link color in header
(37 intermediate revisions by the same user not shown)
Line 25: Line 25:
/* --- 2. Base Body Override --- */
/* --- 2. Base Body Override --- */
body {
body {
     background: url('/resources/assets/background_stone.png') repeat !important;
     background-image: none !important;
     background-color: #2b2b2b !important;
     background-color: #e1d5be !important;
     font-family: 'Museo Sans', 'PT Serif', Georgia, serif;
     font-family: 'Museo Sans', 'PT Serif', Georgia, serif;
}
}
Line 49: Line 49:
}
}


/* --- 5. Fix Logo Clipping --- */
/* --- 5. Hide Foreground Logo (Use Background Instead) --- */
#p-logo a {
#p-logo a {
    background-size: contain !important;
     height: 140px !important;
    background-position: center center !important;
     height: 140px !important; /* Optional: shrink if it overlaps */
}
}


Line 60: Line 58:
.page-Main_Page .mw-first-heading {
.page-Main_Page .mw-first-heading {
     display: none !important;
     display: none !important;
}
/* Give all page titles some breathing room from the top border */
.firstHeading {
    padding-top: 15px !important;
}
}
.page-Main_Page .mw-body-content {
.page-Main_Page .mw-body-content {
Line 116: Line 119:
.header-intro {
.header-intro {
     flex: 1;
     flex: 1;
     background-color: #fcf6e8 !important;
    background: url('/resources/assets/welcomeimage.jpg') center center no-repeat !important;
     background-size: cover !important;
     border: 1px solid #b3a07d;
     border: 1px solid #b3a07d;
     padding: 25px;
     padding: 25px;
     text-align: center;
     text-align: center;
    position: relative;
    z-index: 1;
}
.header-intro::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.6); /* Dark overlay to make text pop against busy background */
    z-index: -1;
}
}
.header-title {
.header-title {
     font-size: 1.6em;
     font-size: 1.6em;
     font-weight: bold;
     font-weight: bold;
     color: #4a3c28;
     color: #ffd700; /* Gold text */
    text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
     margin-bottom: 8px;
     margin-bottom: 8px;
     line-height: 1.2;
     line-height: 1.2;
Line 130: Line 144:
.header-intro p {
.header-intro p {
     font-size: 0.95em;
     font-size: 0.95em;
     color: #5c4e38;
     color: #fff; /* White text */
    text-shadow: 1px 1px 3px rgba(0,0,0,0.8);
     margin: 0;
     margin: 0;
}
.header-intro p a {
    color: #55ccff !important; /* Bright sky blue for links on dark bg */
    font-weight: bold !important;
    text-decoration: underline !important;
}
.header-intro p a:hover {
    color: #fff !important;
}
}


Line 368: Line 391:
}
}
.plainlist li::before {
.plainlist li::before {
     content: "";
     content: "\2022 ";
     color: #611313;
     color: #611313;
     margin-right: 6px;
     margin-right: 6px;
Line 403: Line 426:
/* Base inactive tab style */
/* Base inactive tab style */
.vector-menu-tabs .vector-menu-content-list > li {
.vector-menu-tabs .vector-menu-content-list > li {
     background-color: #cfc08d !important; /* OSRS inactive tab beige */
     background-color: transparent !important;  
     border: 1px solid #94866d !important;
     border: none !important;
    border-bottom: none !important;
     margin-right: 0 !important;
    border-radius: 3px 3px 0 0;
     margin-right: 4px !important;
     display: inline-block;
     display: inline-block;
     padding: 0 !important;
     padding: 0 !important;
Line 414: Line 435:
/* Active tab style */
/* Active tab style */
.vector-menu-tabs .vector-menu-content-list > li.selected {
.vector-menu-tabs .vector-menu-content-list > li.selected {
     background-color: #f1e7d3 !important; /* Matches #content parchment */
     background-color: #ffffff !important;  
     border: 3px solid #3d2b1f !important;
     border: none !important;
    border-bottom: none !important;
     position: relative;
     position: relative;
     z-index: 2; /* Sit on top of the content border */
     z-index: 2;  
     margin-bottom: -3px; /* Pull it down over the content border */
     margin-bottom: 0;  
}
}


/* Tab link text */
/* Tab link text */
.vector-menu-tabs .vector-menu-content-list > li > a {
.vector-menu-tabs .vector-menu-content-list > li > a {
     color: #4a3c28 !important;
     color: #794900 !important;
     padding: 10px 12px 6px 12px !important;
     padding: 10px 14px !important;
     font-family: 'PT Serif', Georgia, serif;
     font-family: 'Museo Sans', 'PT Serif', sans-serif;
     font-weight: bold;
     font-weight: normal;
     font-size: 0.9em;
     font-size: 0.95em;
     background: transparent !important;
     background: transparent !important;
    height: 40px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
}
}


/* Active tab text */
/* Active tab text */
.vector-menu-tabs .vector-menu-content-list > li.selected > a {
.vector-menu-tabs .vector-menu-content-list > li.selected > a {
     color: #000000 !important;
     color: #3b240b !important;
     padding-bottom: 9px !important; /* Extra padding to cover the gap */
}
 
/* --- Right Navigation (Read, Edit, History) Overrides --- */
/* In OSRS, the right tabs are just text links, not white boxes */
#p-views .vector-menu-content-list > li.selected {
     background-color: transparent !important;
    margin-bottom: 0 !important;
    z-index: 2 !important;
}
#p-views .vector-menu-content-list > li.selected > a {
    color: #794900 !important;
}
}


Line 491: Line 525:
}
}


/* Re-apply the specific tab backgrounds we WANT */
/* Hide the Read tab to match OSRS */
.vector-menu-tabs .vector-menu-content-list > li {
#ca-view {
    background-color: #cfc08d !important; /* Inactive tab */
     display: none !important;
}
.vector-menu-tabs .vector-menu-content-list > li.selected {
     background-color: #f1e7d3 !important; /* Active tab */
}
}


Line 512: Line 543:
     color: #4a3c28 !important;
     color: #4a3c28 !important;
     font-weight: bold;
     font-weight: bold;
}
/* --- 11. Cut-off Background & Attach Welcome Box --- */
/* Change body background to repeat-x (horizontal only) so it cuts off,
  and use a solid color for the rest of the page behind the content */
body {
    background: url('/resources/assets/background_stone.png') center top repeat-x !important;
    background-color: #2b2b2b !important; /* Or #e1d5be if they want tan canvas */
}
/* Remove the top padding from #content ONLY on the Main Page so the
  Welcome box slides up and attaches perfectly to the top border */
.page-Main_Page #content {
    padding-top: 0 !important;
}
/* The Welcome Box and Stats Box touch the top border */
.page-Main_Page .mainpage-header {
    margin-top: 0;
}
}
/* --- 12. Remove Vector Text Shadows --- */
/* --- 12. Remove Vector Text Shadows --- */
Line 554: Line 567:
     padding-left: 14px !important;
     padding-left: 14px !important;
     padding-right: 14px !important;
     padding-right: 14px !important;
}
/* --- 14. Logo Subtext --- */
/* Inject text under the logo */
#p-logo::after {
    content: "The Winds of Valen Wiki";
    display: block;
    text-align: center;
    font-family: 'Kingthings Petrock', 'PT Serif', Georgia, serif; /* Using the custom OSRS font! */
    font-size: 1.3em;
    font-weight: normal;
    color: #f1e7d3; /* Parchment color */
    text-shadow: 2px 2px 3px #000000, -1px -1px 2px #000000; /* Strong dark outline to make it readable over backgrounds */
    position: relative;
    top: -35px; /* Pull it up into the logo bounding box so it sits right under the image */
    line-height: 1.2;
    z-index: 10;
}
/* Push the sidebar navigation down slightly to make room for the new text */
#p-navigation {
    margin-top: 10px !important;
}
}
/* --- 15. VisualEditor Toolbar Fixes --- */
/* --- 15. VisualEditor Toolbar Fixes --- */
Line 619: Line 611:
     margin-top: 48px !important; /* Push it down below the beige header bar */
     margin-top: 48px !important; /* Push it down below the beige header bar */
}
}
/* --- 17. Custom Top-Left Logo Background Banner --- */
 
/* Use the newly generated custom background image that only has art in the top-left corner,
 
   and make the rest of the body a matching solid beige canvas so it blends seamlessly. */
/* ==========================================================================
  BODY & BACKGROUND
   ========================================================================== */
body {
body {
     background: url('/resources/assets/header_bg_valen.png') left top no-repeat !important;
     background: #e1d5be;
    background-color: #e1d5be !important; /* Authentic OSRS beige outer canvas color */
     background-image: none;
     background-size: auto 160px; /* Constrain the height so it doesn't bleed down too far, adjust as needed */
}
}
/* --- 18. Mystical Shared Header Banner --- */
 
/* Remove legacy vector page fade/clouds on #mw-page-base */
/* ==========================================================================
#mw-page-base {
  LOGO TEXT (sidebar, below logo icon)
     background-image: none !important;
  ========================================================================== */
#p-logo::after {
    content: "The Winds of Valen Wiki";
    display: block;
    text-align: center;
    font-family: 'Kingthings Petrock', 'PT Serif', Georgia, serif;
    font-size: 1.1em;
    font-weight: normal;
    color: #f1e7d3;
    text-shadow: 2px 2px 4px #000000, -1px -1px 2px #000000;
    line-height: 1.2;
    padding: 0 6px;
     margin-top: 2px;
}
}


/* Apply the full-width mystical background behind both the logo and the header */
/* ==========================================================================
body {
  BANNER
    background: url('/resources/assets/mystical_header.png') center top no-repeat !important;
  #mw-page-base is already position:absolute in Vector Legacy skin.
    background-color: #e1d5be !important; /* Outer canvas color */
   We use it as the full-width banner container.
    background-size: 100% 180px !important; /* Stretch horizontally across the header height */
   ========================================================================== */
}
/* --- 19. Fix Header Banner & Solid Body Canvas --- */
/* Move the banner image from the body to the dedicated #mw-page-base container.  
   This explicitly crops the image to the header height (hiding the watermark)
   and prevents it from fading or bleeding down behind the main content area. */
#mw-page-base {
#mw-page-base {
     background: url('/resources/assets/bg.png') center center no-repeat !important;
     position: absolute !important;
     background-size: cover !important;
     top: 0 !important;
     height: 180px !important;
     left: 0 !important;
    right: 0 !important;
     width: 100% !important;
     width: 100% !important;
     position: absolute;
     height: 160px !important;
     top: 0;
     background-image: none !important;
     left: 0;
     background-color: transparent !important;
     z-index: 0;
     z-index: 0 !important;
    display: block !important;
}
}


/* Ensure the body is strictly a solid beige color, with NO background image */
/* Hide the redundant head-base gradient overlay */
body {
#mw-head-base {
     background-image: none !important;
     display: none !important;
    background-color: #e1d5be !important;
}
}


/* Make sure the content box (#content) has a solid background so it doesn't look faded */
/* ==========================================================================
#content {
  DESKTOP LAYOUT  >= 1000px
     background-color: #f1e7d3 !important;
  ========================================================================== */
@media screen and (min-width: 1000px) {
 
    /* Tab bar row: sits at the bottom of the 160px banner */
    #mw-head {
        position: absolute !important;
        top: 120px !important;
        left: 0 !important;
        right: 0 !important;
        height: 40px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 50 !important;
    }
 
    /* Beige bar behind the tabs */
    #mw-head::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        bottom: 0 !important;
        left: 165px !important;
        right: 0 !important;
        height: 40px !important;
        background-color: #d8ccb4 !important;
        border-top: 2px solid #3d2b1f !important;
        z-index: 0 !important;
    }
 
    /* Left nav: Main Page, Discussion tabs */
    #left-navigation {
        position: absolute !important;
        bottom: 0 !important;
        left: 165px !important;
        margin: 0 !important;
        float: none !important;
        z-index: 2 !important;
    }
 
    /* Right nav: Read, Edit, Search */
    #right-navigation {
        position: absolute !important;
        bottom: 0 !important;
        right: 0 !important;
        margin: 0 !important;
        float: none !important;
        z-index: 2 !important;
    }
 
    /* Personal tools: Create account / Log in ??? top right corner */
    #p-personal {
        position: absolute !important;
        top: -80px !important;
        right: 10px !important;
        margin: 0 !important;
        z-index: 200 !important;
    }
    #p-personal ul {
        background: rgba(241, 231, 211, 0.95) !important;
        border: 1px solid #b3a07d !important;
        padding: 6px 12px !important;
        border-radius: 4px;
        box-shadow: 0 2px 4px rgba(0,0,0,0.5);
    }
 
    /* Content box: starts at bottom of banner, shifted right of sidebar */
    #content {
        position: relative !important;
        z-index: 1 !important;
        margin-top: 160px !important;
        margin-left: 165px !important;
        padding-top: 0 !important;
    }
 
    /* Active tab latches onto content box top border (only left tabs) */
    #left-navigation .vector-menu-tabs .vector-menu-content-list > li.selected {
        margin-bottom: -3px !important;
        z-index: 3 !important;
        position: relative !important;
    }
   
    #right-navigation .vector-menu-tabs .vector-menu-content-list > li.selected {
        margin-bottom: 0 !important;
    }
 
     /* Sidebar: starts at top:0 so logo naturally overlaps the banner */
    #mw-panel {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 165px !important;
        padding-top: 0 !important;
        z-index: 10 !important;
        background: transparent !important;
    }
 
    /* Logo area: spans full 160px banner height */
    #p-logo {
        height: 160px !important;
        display: block !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
    }
 
    /* Logo anchor: shows the icon image in top portion, leaves room for text below */
    #p-logo a {
        display: block !important;
        width: 165px !important;
        height: 110px !important;
        background-size: 100px auto !important;
        background-position: center 8px !important;
        background-repeat: no-repeat !important;
    }
}
}
/* --- 20. Final Layout Fixes --- */
 
/* Remove absolute positioning from mw-page-base so it actually pushes the content down below the header again */
/* ==========================================================================
#mw-page-base {
  MOBILE LAYOUT  < 1000px
     position: static !important;
  ========================================================================== */
@media screen and (max-width: 999px) {
    body {
        background: #e1d5be !important;
        background-image: none !important;
    }
    #mw-page-base {
        display: none !important;
    }
    #content {
        margin-top: 20px !important;
        margin-left: 10px !important;
        margin-right: 10px !important;
        padding-top: 10px !important;
    }
    #mw-head {
        position: static !important;
        top: auto !important;
    }
    #mw-head::before {
        display: none !important;
    }
    #mw-panel {
        position: static !important;
    }
    #p-logo {
        height: auto !important;
    }
     #p-logo a {
        height: 80px !important;
        background-size: contain !important;
        background-position: center !important;
    }
    .vector-menu-tabs .vector-menu-content-list > li {
        margin-bottom: 2px !important;
    }
}
}


/* Ensure the main content box does NOT use the mountain background image, and is strictly solid beige */
/* ==========================================================================
#content {
  SIDEBAR PORTAL BACKGROUNDS
  ========================================================================== */
div.vector-menu-portal,
#mw-panel div.portal,
.portal,
.mw-portlet {
     background-image: none !important;
     background-image: none !important;
     background-color: #f1e7d3 !important;
     background-color: transparent !important;
}
/* --- 21. Pixel-Perfect Content Latch --- */
/* Make the header banner absolute again so it doesn't push the content down 180px */
#mw-page-base {
    position: absolute !important;
}
}


/* Explicitly push the content down by EXACTLY the distance of the tabs (15px top + 46px bar = 61px)
/* ==========================================================================
   so it latches perfectly onto the bottom of the navigation menu! */
   DISCORD WIDGET
#content {
  ========================================================================== */
    margin-top: 61px !important;
.discord-widget-modern {
     position: relative;
     position: relative;
     z-index: 1; /* Sit under the tabs which are z-index 2 */
     background-color: #5865F2;
    border-radius: 4px;
    overflow: hidden;
    font-family: 'Inter', sans-serif;
    color: #ffffff;
    margin-bottom: 20px;
    transition: background-color 0.2s ease;
}
}
/* --- 22. Fine-Tuned 4px Shift --- */
.discord-widget-modern a {
/* Push the content box down by 4 more pixels so the inactive tabs stop overlapping the border */
    position: absolute;
#content {
    top: 0; left: 0; right: 0; bottom: 0;
     margin-top: 65px !important;
    z-index: 10;
    text-decoration: none !important;
}
.discord-click-target { display: block; width: 100%; height: 100%; }
.discord-top { padding: 16px 20px; display: flex; align-items: center; }
.discord-icon {
    width: 45px; height: 35px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127.14 96.36" fill="%23ffffff"><path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1,105.25,105.25,0,0,0,32.19-16.14c0,0,.04-.06.05-.09,2.7-27.14-2.88-51.52-19-72.06ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.31,60,73.31,53s5-12.74,11.43-12.74S96.2,46,96.09,53,91.04,65.69,84.69,65.69Z"/></svg>');
    background-size: contain; background-repeat: no-repeat; background-position: center;
    margin-right: 15px;
}
.discord-text { flex-grow: 1; }
.discord-server-name { font-weight: 800; font-size: 17px; margin-bottom: 2px; }
.discord-join-text { font-size: 14px; }
.discord-arrow { font-size: 28px; font-weight: bold; margin-left: 10px; line-height: 1; }
.discord-bottom {
    background-color: #4752C4; padding: 10px; text-align: center;
     font-size: 12px; font-weight: 800; letter-spacing: 0.5px;
    transition: background-color 0.2s ease;
}
}
.discord-widget-modern:hover { background-color: #4752C4; cursor: pointer; }
.discord-widget-modern:hover .discord-bottom { background-color: #3b45a5; }
/* Hide Powered by MediaWiki */
#footer-poweredbyico { display: none !important; }


/* Because the content box moved down 4px, we must stretch the active tab down by 4 more pixels
/* OSRS Style Wikitables and Infoboxes */
  so it still seamlessly overlaps the dark brown border of the content box! */
table.infobox, table.wikitable {
.vector-menu-tabs .vector-menu-content-list > li.selected {
    background-color: #dfd0b6;
     margin-bottom: -7px !important;
    border: 1px solid #7d6b54;
    border-collapse: collapse;
    color: #2b2b2b;
}
table.infobox th, table.wikitable th {
    background-color: #cbb493;
    border: 1px solid #7d6b54;
    padding: 6px;
    text-align: center;
}
table.infobox td, table.wikitable td {
    border: 1px solid #7d6b54;
    padding: 6px;
}
table.infobox caption {
     background-color: #cbb493;
    border: 1px solid #7d6b54;
    border-bottom: none;
    padding: 4px;
    font-weight: bold;
}
}
/* --- 23. Shift Header Up & Unify Left Padding --- */
/* Section Headers */
/* The user requested #mw-head to move up. We apply the negative margin and move the content up equally */
#content h2 {
#mw-head {
    border-bottom: 2px solid #7d6b54;
     margin-top: -30px !important;
    font-family: 'PT Serif', Georgia, serif;
    color: #4a3c28;
     margin-top: 1.5em;
    padding-bottom: 2px;
}
}
#content {
#content h3 {
     margin-top: 35px !important; /* Shifted up 30px from 65px to stay connected to the tabs */
     font-family: 'PT Serif', Georgia, serif;
    color: #4a3c28;
}
}


/* Unify the left-side alignment of the beige bar, the tabs, and the main content box
/* --- TOC Styling --- */
  so the beige bar never sticks out to the left of the active tab. */
#toc, .toc, .mw-parser-output #toc, .mw-parser-output .toc {
#left-navigation {
    background-color: #e2d1b4 !important;
     margin-left: 175px !important;
    border: 1px solid #998363 !important;
    padding: 2px !important;
    display: inline-block;
    color: #2b2b2b;
    border-radius: 0;
    margin-bottom: 15px;
}
#toc .toctitle, .toc .toctitle, #toc h2, .toc h2 {
    background-color: #c7b08d !important;
    border-bottom: none !important;
    text-align: center;
    font-family: 'PT Serif', serif !important;
    font-size: 1.1em !important;
    font-weight: bold !important;
    margin: 0 !important;
    padding: 6px 15px !important;
    color: #4a3c28 !important;
}
#toc ul, .toc ul {
    list-style-type: none !important;
    padding: 10px 15px !important;
     margin: 0 !important;
    background-color: #e2d1b4 !important;
}
}
#content {
#toc ul ul, .toc ul ul {
     margin-left: 175px !important;
    padding-left: 1.5em !important;
    border-left: 1px dotted #a08c6c;
     margin-left: 5px !important;
    padding-top: 5px;
    padding-bottom: 5px;
}
}
#mw-head::before {
#toc li, .toc li {
     left: 175px !important;  
    margin-bottom: 4px !important;
    font-size: 0.95em;
     line-height: 1.4;
}
}
/* --- 24. Fix Buttons Overlapping and Login Visibility --- */
#toc a, .toc a {
/* Pull the login/register tools down so they don't disappear off the top of the screen */
     color: #5a3c21 !important;
#p-personal {
     text-decoration: none !important;
     top: 35px !important;  
     z-index: 100 !important;
}
}
 
#toc a:hover, .toc a:hover {
/* Ensure the entire navigation block (tabs, search, buttons) strictly sits ON TOP of the content box.
     text-decoration: underline !important;
  This prevents the content box from swallowing the Read/Edit buttons. */
#left-navigation,
#right-navigation {
     position: relative !important;
    z-index: 50 !important;
}
}


/* Ensure the content box is layered safely UNDER the navigation menu */
/* --- Popups (PagePreviews) Styling --- */
#content {
.mwe-popups {
     position: relative !important;
     background-color: transparent !important;
     z-index: 1 !important;
    border: none !important;
     box-shadow: 0 4px 10px rgba(0,0,0,0.6) !important;
}
}
/* --- 25. The Ultimate Absolute Header Reset --- */
.mwe-popups .mwe-popups-container {
/* Make page-base absolute so it stops interfering with vertical flow */
     background-color: #e2d1b4 !important;
#mw-page-base {
     border: 1px solid #7d6b54 !important;
     position: absolute !important;
     border-radius: 4px !important;
     top: 0 !important;
     overflow: hidden !important;
     left: 0 !important;
    right: 0 !important;
     height: 180px !important; /* Keep the sky banner 180px tall */
}
}
 
.mwe-popups .mwe-popups-extract {
/* Hardcode the header container to exactly 90px tall at the top of the page */
     color: #2b2b2b !important;
#mw-head {
     font-family: 'Museo Sans', sans-serif !important;
     position: absolute !important;
     padding: 15px !important;
     top: 0 !important;
     font-size: 0.95em !important;
     left: 0 !important;
     right: 0 !important;
    width: 100% !important;
    height: 90px !important;
    margin: 0 !important;
    z-index: 50 !important; /* Ensure header is always above content */
}
}
 
.mwe-popups.mwe-popups-is-tall .mwe-popups-extract {
/* Force personal tools (login) to sit at the absolute top right, far away from tabs */
     padding-top: 10px !important;
#p-personal {
     position: absolute !important;
    top: 10px !important;
    right: 15px !important;
    margin: 0 !important;
    z-index: 100 !important;
}
}
 
.mwe-popups .mwe-popups-settings-icon {
/* Force Left Navigation (Main Page tab) to sit at the absolute bottom left of the 90px header */
     opacity: 0.7 !important;
#left-navigation {
     position: absolute !important;
    bottom: 0 !important;
    left: 175px !important;
    margin: 0 !important;
    float: none !important;
}
}
 
.mwe-popups .mwe-popups-settings-icon:hover {
/* Force Right Navigation (Read/Edit/Search) to sit at the absolute bottom right of the 90px header */
     opacity: 1 !important;
#right-navigation {
     position: absolute !important;
    bottom: 0 !important;
    right: 15px !important;
    margin: 0 !important;
    float: none !important;
}
}
 
.mwe-popups .mwe-popups-extract::after {
/* Ensure the beige bar spans the entire width and anchors to the bottom */
     background-image: linear-gradient(to right, rgba(226, 209, 180, 0), #e2d1b4 50%) !important;
#mw-head::before {
     content: "";
    position: absolute !important;
    bottom: 0 !important;
    left: 175px !important;
    right: 0 !important;
    height: 46px !important;
    z-index: 0 !important; /* Behind the tabs */
}
}
 
.mwe-popups .mwe-popups-extract[dir='ltr']::after {
/* Push the content box down by exactly 90px so it latches perfectly to the header */
     background-image: linear-gradient(to right, rgba(226, 209, 180, 0), #e2d1b4 50%) !important;
#content {
    margin-top: 90px !important;
    margin-left: 175px !important;
    position: relative !important;
     z-index: 1 !important; /* Safely under the header */
}
}
 
svg.mwe-popups-settings-icon path {
/* Reset the active tab overlap to the correct 3px now that everything is perfectly absolute */
     fill: #2b2b2b !important;
.vector-menu-tabs .vector-menu-content-list > li.selected {
     margin-bottom: -3px !important;
}
}

Revision as of 17:46, 11 July 2026

/* ==========================================================================
   OSRS EXACT REPLICA DESIGN SYSTEM
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@0,400;0,700;1,400&family=Inter:wght@400;600;700&display=swap');

/* --- 1. Custom Fonts --- */
@font-face {
    font-family: 'Kingthings Petrock';
    src: url('/resources/assets/fonts/Kingthings_Petrock.woff2') format('woff2');
}
@font-face {
    font-family: 'League Spartan';
    src: url('/resources/assets/fonts/LeagueSpartan-Bold.woff2') format('woff2');
}
@font-face {
    font-family: 'Museo Sans';
    src: url('/resources/assets/fonts/MuseoSans-500.woff2') format('woff2');
}
@font-face {
    font-family: 'RuneScape Chat';
    src: url('/resources/assets/fonts/RuneScape-Chat.woff2') format('woff2');
}

/* --- 2. Base Body Override --- */
body {
    background-image: none !important;
    background-color: #e1d5be !important;
    font-family: 'Museo Sans', 'PT Serif', Georgia, serif;
}

/* --- 3. Content Parchment Container --- */
#content {
    background: url('/resources/assets/background_parchment.png') repeat #f1e7d3 !important;
    border: 3px solid #3d2b1f !important;
    border-radius: 4px;
    margin-top: 15px;
}

#mw-content-text {
    background-color: transparent !important;
}

/* --- 4. Header Styling --- */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Kingthings Petrock', serif;
    color: #4a3c28;
    border-bottom: 1px solid #b3a07d; /* Gold trim */
}

/* --- 5. Hide Foreground Logo (Use Background Instead) --- */
#p-logo a {
    height: 140px !important;
}

/* --- 6. Main Page Layout Tweaks --- */
.page-Main_Page #firstHeading,
.page-Main_Page .mw-first-heading {
    display: none !important;
}

/* Give all page titles some breathing room from the top border */
.firstHeading {
    padding-top: 15px !important;
}
.page-Main_Page .mw-body-content {
    padding-top: 0 !important;
}

/* --- 7. Margin Collapse Fix --- */
.mw-parser-output .column-grid > * {
    margin-top: 0;
}
.mw-parser-output .column-grid > *:last-child {
    margin-bottom: 0;
}

/* --- 8. Reader Mode --- */
body.reader-mode-active #mw-panel,
body.reader-mode-active #mw-head {
    display: none;
}
body.reader-mode-active #content {
    margin-left: auto;
    margin-right: auto;
    max-width: 960px;
    padding: 40px;
}

/* ==========================================================================
   OSRS NATIVE DOM ARCHITECTURE (Main Page Layout Engine)
   ========================================================================== */

.mainpage-container {
    max-width: 100%;
    color: #4a3c28;
    box-sizing: border-box;
    font-family: 'PT Serif', Georgia, serif;
}

.mainpage-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 14px;
    align-items: start;
}

@media screen and (max-width: 900px) {
    .mainpage-layout {
        grid-template-columns: 1fr;
    }
}

.mainpage-header {
    display: flex;
    gap: 14px;
    margin-bottom: 14px;
}
.header-intro {
    flex: 1;
    background: url('/resources/assets/welcomeimage.jpg') center center no-repeat !important;
    background-size: cover !important;
    border: 1px solid #b3a07d;
    padding: 25px;
    text-align: center;
    position: relative;
    z-index: 1;
}
.header-intro::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.6); /* Dark overlay to make text pop against busy background */
    z-index: -1;
}
.header-title {
    font-size: 1.6em;
    font-weight: bold;
    color: #ffd700; /* Gold text */
    text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
    margin-bottom: 8px;
    line-height: 1.2;
}
.header-intro p {
    font-size: 0.95em;
    color: #fff; /* White text */
    text-shadow: 1px 1px 3px rgba(0,0,0,0.8);
    margin: 0;
}
.header-intro p a {
    color: #55ccff !important; /* Bright sky blue for links on dark bg */
    font-weight: bold !important;
    text-decoration: underline !important;
}
.header-intro p a:hover {
    color: #fff !important;
}

.header-stats {
    width: 300px;
    flex-shrink: 0;
    background-color: #f1e7d3 !important;
    border: 1px solid #b3a07d;
    padding: 20px 25px;
    box-sizing: border-box;
}
.header-stats ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.header-stats li {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: 0.9em;
    border-bottom: 1px dashed #d1c4ac;
    padding-bottom: 6px;
}
.header-stats li:last-child {
    margin-bottom: 0;
    border-bottom: none;
    padding-bottom: 0;
}
.header-stats b {
    color: #4a3c28;
}

@media screen and (max-width: 900px) {
    .mainpage-header { flex-direction: column; }
    .header-stats { width: 100%; }
}

.section-title {
    font-family: 'PT Serif', Georgia, serif;
    font-size: 1.15em;
    font-weight: bold;
    color: #4a3c28;
    padding: 8px 14px 7px;
    border-bottom: 2px solid #b3a07d;
    background-color: #f1e7d3;
    margin: 0 0 14px 0;
}

.tile-row {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.updates-row {
    grid-template-columns: 1fr 1fr;
    background-color: #fcf6e8;
    border: 1px solid #b3a07d;
    gap: 0;
}
.categories-grid {
    grid-template-columns: repeat(4, 1fr);
    background-color: #f1e7d3;
    padding: 10px;
    border: 1px solid #b3a07d;
}

.tile-halves {
    display: flex;
    flex-direction: column;
}

.update-card {
    padding: 12px 14px;
    border-right: 1px solid #b3a07d;
}
.update-card:last-child { border-right: none; }
.update-header {
    font-family: 'Inter', sans-serif;
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    color: #5c4e38;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}
.update-title {
    font-size: 0.95em;
    font-weight: bold;
    margin-bottom: 6px;
    line-height: 1.3;
}
.update-title a {
    color: #a61c1c !important;
    text-decoration: none;
}
.update-title a:hover { text-decoration: underline; }

.categories-grid .tile-halves {
    border: 1px solid #b3a07d;
    background-color: #ffffff;
}
.tile-top.tile-image {
    background-color: #ffffff !important;
    height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border-bottom: 1px solid #b3a07d;
}
.tile-top.tile-image img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.tile-bottom.link-button {
    background-color: #fcf6e8 !important;
    padding: 8px 6px;
    text-align: center;
    font-size: 0.9em;
    flex-grow: 1;
}
.tile-bottom.link-button a {
    color: #611313 !important;
    font-weight: bold;
    text-decoration: none !important;
    display: block;
}
.tile-bottom.link-button a:hover { text-decoration: underline !important; }

.popular-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    background-color: #f1e7d3;
    padding: 10px;
    border: 1px solid #b3a07d;
    margin-bottom: 14px;
}
.link-button.dark-button a {
    display: block;
    background-color: #5c4e38 !important;
    color: #ffffff !important;
    font-family: 'Inter', sans-serif;
    font-weight: bold;
    font-size: 0.85em;
    text-align: center;
    padding: 12px 6px;
    text-decoration: none !important;
    border: 1px solid #3d3324;
}
.link-button.dark-button a:hover { background-color: #6e5e44 !important; }

.skills-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background-color: #fcf6e8;
    border: 1px solid #b3a07d;
    padding: 8px 10px;
    margin-bottom: 14px;
}
.skill-item {
    padding: 8px 10px;
    font-size: 0.85em;
    border-bottom: 1px solid #b3a07d;
    border-right: 1px solid #b3a07d;
    display: flex;
    align-items: center;
    gap: 8px;
}
.skill-item:nth-child(3n) { border-right: none; }
.skill-item a {
    color: #4a3c28 !important;
    font-weight: bold;
    text-decoration: none;
}
.skill-item a:hover { color: #611313 !important; text-decoration: underline; }

.discord-widget, .widget-box {
    background-color: #f1e7d3;
    border: 1px solid #b3a07d;
    margin-bottom: 14px;
}

.discord-widget {
    background-color: #3b5580 !important;
    border: 1px solid #263854 !important;
    color: #ffffff;
}
.discord-title {
    font-family: 'PT Serif', Georgia, serif;
    font-size: 1.15em;
    font-weight: bold;
    border-bottom: 1px solid #526e9c;
    padding: 10px 14px;
}
.discord-body { padding: 12px 14px; }
.discord-body p { margin: 0 0 12px 0; font-size: 0.85em; line-height: 1.5; color: #e2e8f0; }
.discord-btn a {
    display: block;
    background-color: #21324d !important;
    color: #ffffff !important;
    text-align: center;
    padding: 10px;
    font-family: 'Inter', sans-serif;
    font-weight: bold;
    text-decoration: none !important;
    border: 1px solid #141f30;
    border-radius: 2px;
}
.discord-btn a:hover { background-color: #17253a !important; }

.widget-title {
    font-family: 'PT Serif', Georgia, serif;
    font-size: 1.15em;
    font-weight: bold;
    color: #4a3c28;
    border-bottom: 1px solid #b3a07d;
    padding: 10px 14px;
}
.widget-body {
    padding: 12px 14px;
    font-size: 0.85em;
    background-color: #fcf6e8;
    line-height: 1.6;
}
.widget-body p { margin: 0 0 8px 0; }
.plainlist ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.plainlist li {
    margin-bottom: 4px;
}
.plainlist li::before {
    content: "\2022 ";
    color: #611313;
    margin-right: 6px;
    font-weight: bold;
}
.plainlist a {
    color: #611313 !important;
    font-weight: bold;
    text-decoration: none;
}
.plainlist a:hover { text-decoration: underline; }

@media screen and (max-width: 900px) {
    .updates-row, .categories-grid, .popular-grid, .skills-grid {
        grid-template-columns: 1fr;
    }
    .update-card { border-right: none; border-bottom: 1px solid #b3a07d; }
}

/* Responsive adjustments for legacy vector */
@media screen and (max-width: 980px) {
    #content { margin: 10px; border-width: 2px; }
}
/* --- 9. Vector Legacy Tabs Styling --- */
/* Remove default Vector tab backgrounds */
.vector-menu-tabs, 
.vector-menu-tabs a, 
.vector-menu-tabs li,
#p-views,
#p-cactions {
    background-image: none !important;
}

/* Base inactive tab style */
.vector-menu-tabs .vector-menu-content-list > li {
    background-color: transparent !important; 
    border: none !important;
    margin-right: 0 !important;
    display: inline-block;
    padding: 0 !important;
}

/* Active tab style */
.vector-menu-tabs .vector-menu-content-list > li.selected {
    background-color: #ffffff !important; 
    border: none !important;
    position: relative;
    z-index: 2; 
    margin-bottom: 0; 
}

/* Tab link text */
.vector-menu-tabs .vector-menu-content-list > li > a {
    color: #794900 !important;
    padding: 10px 14px !important;
    font-family: 'Museo Sans', 'PT Serif', sans-serif;
    font-weight: normal;
    font-size: 0.95em;
    background: transparent !important;
    height: 40px !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
}

/* Active tab text */
.vector-menu-tabs .vector-menu-content-list > li.selected > a {
    color: #3b240b !important;
}

/* --- Right Navigation (Read, Edit, History) Overrides --- */
/* In OSRS, the right tabs are just text links, not white boxes */
#p-views .vector-menu-content-list > li.selected {
    background-color: transparent !important;
    margin-bottom: 0 !important;
    z-index: 2 !important;
}
#p-views .vector-menu-content-list > li.selected > a {
    color: #794900 !important;
}

/* Remove the top margin on content so tabs touch the border */
#content {
    margin-top: 0 !important;
}

/* Push the whole header/navigation block down so it doesn't overlap the logo */
#mw-head {
    top: 15px !important;
}

/* Style the Search Box to match OSRS */
#p-search {
    margin-top: 4px !important;
    margin-left: 10px !important;
}
#simpleSearch {
    background-color: #efeee6 !important;
    border: 1px solid #94866d !important;
}
/* --- 10. OSRS Full-Width Header Bar --- */
/* Create the continuous beige bar behind the tabs */
#mw-head::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 170px; /* Starts just right of the logo */
    right: 0;
    height: 38px; /* Matches tab height */
    background-color: #d8ccb4; /* Darker parchment */
    border-top: 1px solid #94866d;
    z-index: 0;
}

/* Ensure navigation sits on top of the pseudo-element bar */
#left-navigation, 
#right-navigation {
    position: relative;
    z-index: 1;
}

/* Force transparency on all Vector legacy header backgrounds so the beige bar shows through */
#mw-head-base,
.vector-menu-tabs,
.vector-menu-tabs ul,
.vector-menu-tabs li,
#p-views,
#p-cactions,
#p-search,
#p-personal {
    background-image: none !important;
    background-color: transparent !important;
}

/* Hide the Read tab to match OSRS */
#ca-view {
    display: none !important;
}

/* Personal tools (top right: Create account, Log in) */
#p-personal {
    top: -20px !important; /* Push it up into the mushroom background */
}
#p-personal ul {
    background-color: rgba(241, 231, 211, 0.85); /* Semi-transparent parchment */
    padding: 4px 10px;
    border-radius: 4px;
    border: 1px solid #b3a07d;
}
#p-personal li a {
    color: #4a3c28 !important;
    font-weight: bold;
}
/* --- 12. Remove Vector Text Shadows --- */
/* Legacy Vector adds text-shadows to tabs and personal tools which look like a bad "backstroke" with our new dark text colors */
.vector-menu-tabs .vector-menu-content-list > li > a,
#p-personal li a,
.vector-menu-tabs li a {
    text-shadow: none !important;
}
/* --- 13. Header Bar Padding & Overlap Fixes --- */
/* Increase the height of the beige bar so it has more padding and fully encompasses the tabs and search bar */
#mw-head::before {
    height: 46px !important; 
}

/* Push the search bar down slightly so it's vertically centered in the taller beige bar */
#p-search {
    margin-top: 8px !important; 
    margin-right: 15px !important; /* Give it some breathing room on the right */
}

/* Ensure the tabs have a little extra padding inside so they don't look cramped */
.vector-menu-tabs .vector-menu-content-list > li > a {
    padding-left: 14px !important;
    padding-right: 14px !important;
}
/* --- 15. VisualEditor Toolbar Fixes --- */
/* Prevent the VE toolbar from overlapping the beige header bar by enforcing z-indexes */
#mw-head {
    position: absolute;
    z-index: 100 !important;
}
#mw-head::before {
    z-index: 0 !important;
}
#left-navigation, #right-navigation {
    z-index: 2 !important;
}

/* Style the VisualEditor toolbar to match the OSRS parchment theme */
.ve-init-mw-desktopArticleTarget-toolbar,
.oo-ui-toolbar-bar,
.oo-ui-toolbar {
    background-color: #f1e7d3 !important;
    border-bottom: 2px solid #b3a07d !important;
    border-top: none !important;
    z-index: 90 !important; /* Ensure it tucks UNDER the header tabs/bar if it tries to overlap */
}

/* Add the dark brown top border specifically to the VE toolbar so tabs have something to sit on */
.ve-init-mw-desktopArticleTarget-toolbar {
    border-top: 3px solid #3d2b1f !important;
}

/* Ensure dropdowns and menus in VE are also parchment colored */
.oo-ui-popupWidget-popup, 
.oo-ui-menuSelectWidget {
    background-color: #fcf6e8 !important;
    border: 1px solid #b3a07d !important;
}
/* --- 16. Push VisualEditor Down --- */
/* Remove the z-index that hid the toolbar, and physically push it down so the buttons are visible */
#mw-head {
    z-index: auto !important;
}
.ve-init-mw-desktopArticleTarget-toolbar {
    z-index: 10 !important;
    margin-top: 48px !important; /* Push it down below the beige header bar */
}


/* ==========================================================================
   BODY & BACKGROUND
   ========================================================================== */
body {
    background: #e1d5be;
    background-image: none;
}

/* ==========================================================================
   LOGO TEXT (sidebar, below logo icon)
   ========================================================================== */
#p-logo::after {
    content: "The Winds of Valen Wiki";
    display: block;
    text-align: center;
    font-family: 'Kingthings Petrock', 'PT Serif', Georgia, serif;
    font-size: 1.1em;
    font-weight: normal;
    color: #f1e7d3;
    text-shadow: 2px 2px 4px #000000, -1px -1px 2px #000000;
    line-height: 1.2;
    padding: 0 6px;
    margin-top: 2px;
}

/* ==========================================================================
   BANNER
   #mw-page-base is already position:absolute in Vector Legacy skin.
   We use it as the full-width banner container.
   ========================================================================== */
#mw-page-base {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 160px !important;
    background-image: none !important;
    background-color: transparent !important;
    z-index: 0 !important;
    display: block !important;
}

/* Hide the redundant head-base gradient overlay */
#mw-head-base {
    display: none !important;
}

/* ==========================================================================
   DESKTOP LAYOUT  >= 1000px
   ========================================================================== */
@media screen and (min-width: 1000px) {

    /* Tab bar row: sits at the bottom of the 160px banner */
    #mw-head {
        position: absolute !important;
        top: 120px !important;
        left: 0 !important;
        right: 0 !important;
        height: 40px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        z-index: 50 !important;
    }

    /* Beige bar behind the tabs */
    #mw-head::before {
        content: "" !important;
        display: block !important;
        position: absolute !important;
        bottom: 0 !important;
        left: 165px !important;
        right: 0 !important;
        height: 40px !important;
        background-color: #d8ccb4 !important;
        border-top: 2px solid #3d2b1f !important;
        z-index: 0 !important;
    }

    /* Left nav: Main Page, Discussion tabs */
    #left-navigation {
        position: absolute !important;
        bottom: 0 !important;
        left: 165px !important;
        margin: 0 !important;
        float: none !important;
        z-index: 2 !important;
    }

    /* Right nav: Read, Edit, Search */
    #right-navigation {
        position: absolute !important;
        bottom: 0 !important;
        right: 0 !important;
        margin: 0 !important;
        float: none !important;
        z-index: 2 !important;
    }

    /* Personal tools: Create account / Log in ??? top right corner */
    #p-personal {
        position: absolute !important;
        top: -80px !important;
        right: 10px !important;
        margin: 0 !important;
        z-index: 200 !important;
    }
    #p-personal ul {
        background: rgba(241, 231, 211, 0.95) !important;
        border: 1px solid #b3a07d !important;
        padding: 6px 12px !important;
        border-radius: 4px;
        box-shadow: 0 2px 4px rgba(0,0,0,0.5);
    }

    /* Content box: starts at bottom of banner, shifted right of sidebar */
    #content {
        position: relative !important;
        z-index: 1 !important;
        margin-top: 160px !important;
        margin-left: 165px !important;
        padding-top: 0 !important;
    }

    /* Active tab latches onto content box top border (only left tabs) */
    #left-navigation .vector-menu-tabs .vector-menu-content-list > li.selected {
        margin-bottom: -3px !important;
        z-index: 3 !important;
        position: relative !important;
    }
    
    #right-navigation .vector-menu-tabs .vector-menu-content-list > li.selected {
        margin-bottom: 0 !important;
    }

    /* Sidebar: starts at top:0 so logo naturally overlaps the banner */
    #mw-panel {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 165px !important;
        padding-top: 0 !important;
        z-index: 10 !important;
        background: transparent !important;
    }

    /* Logo area: spans full 160px banner height */
    #p-logo {
        height: 160px !important;
        display: block !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Logo anchor: shows the icon image in top portion, leaves room for text below */
    #p-logo a {
        display: block !important;
        width: 165px !important;
        height: 110px !important;
        background-size: 100px auto !important;
        background-position: center 8px !important;
        background-repeat: no-repeat !important;
    }
}

/* ==========================================================================
   MOBILE LAYOUT  < 1000px
   ========================================================================== */
@media screen and (max-width: 999px) {
    body {
        background: #e1d5be !important;
        background-image: none !important;
    }
    #mw-page-base {
        display: none !important;
    }
    #content {
        margin-top: 20px !important;
        margin-left: 10px !important;
        margin-right: 10px !important;
        padding-top: 10px !important;
    }
    #mw-head {
        position: static !important;
        top: auto !important;
    }
    #mw-head::before {
        display: none !important;
    }
    #mw-panel {
        position: static !important;
    }
    #p-logo {
        height: auto !important;
    }
    #p-logo a {
        height: 80px !important;
        background-size: contain !important;
        background-position: center !important;
    }
    .vector-menu-tabs .vector-menu-content-list > li {
        margin-bottom: 2px !important;
    }
}

/* ==========================================================================
   SIDEBAR PORTAL BACKGROUNDS
   ========================================================================== */
div.vector-menu-portal,
#mw-panel div.portal,
.portal,
.mw-portlet {
    background-image: none !important;
    background-color: transparent !important;
}

/* ==========================================================================
   DISCORD WIDGET
   ========================================================================== */
.discord-widget-modern {
    position: relative;
    background-color: #5865F2;
    border-radius: 4px;
    overflow: hidden;
    font-family: 'Inter', sans-serif;
    color: #ffffff;
    margin-bottom: 20px;
    transition: background-color 0.2s ease;
}
.discord-widget-modern a {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 10;
    text-decoration: none !important;
}
.discord-click-target { display: block; width: 100%; height: 100%; }
.discord-top { padding: 16px 20px; display: flex; align-items: center; }
.discord-icon {
    width: 45px; height: 35px;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127.14 96.36" fill="%23ffffff"><path d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1,105.25,105.25,0,0,0,32.19-16.14c0,0,.04-.06.05-.09,2.7-27.14-2.88-51.52-19-72.06ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.31,60,73.31,53s5-12.74,11.43-12.74S96.2,46,96.09,53,91.04,65.69,84.69,65.69Z"/></svg>');
    background-size: contain; background-repeat: no-repeat; background-position: center;
    margin-right: 15px;
}
.discord-text { flex-grow: 1; }
.discord-server-name { font-weight: 800; font-size: 17px; margin-bottom: 2px; }
.discord-join-text { font-size: 14px; }
.discord-arrow { font-size: 28px; font-weight: bold; margin-left: 10px; line-height: 1; }
.discord-bottom {
    background-color: #4752C4; padding: 10px; text-align: center;
    font-size: 12px; font-weight: 800; letter-spacing: 0.5px;
    transition: background-color 0.2s ease;
}
.discord-widget-modern:hover { background-color: #4752C4; cursor: pointer; }
.discord-widget-modern:hover .discord-bottom { background-color: #3b45a5; }

/* Hide Powered by MediaWiki */
#footer-poweredbyico { display: none !important; }

/* OSRS Style Wikitables and Infoboxes */
table.infobox, table.wikitable {
    background-color: #dfd0b6;
    border: 1px solid #7d6b54;
    border-collapse: collapse;
    color: #2b2b2b;
}
table.infobox th, table.wikitable th {
    background-color: #cbb493;
    border: 1px solid #7d6b54;
    padding: 6px;
    text-align: center;
}
table.infobox td, table.wikitable td {
    border: 1px solid #7d6b54;
    padding: 6px;
}
table.infobox caption {
    background-color: #cbb493;
    border: 1px solid #7d6b54;
    border-bottom: none;
    padding: 4px;
    font-weight: bold;
}
/* Section Headers */
#content h2 {
    border-bottom: 2px solid #7d6b54;
    font-family: 'PT Serif', Georgia, serif;
    color: #4a3c28;
    margin-top: 1.5em;
    padding-bottom: 2px;
}
#content h3 {
    font-family: 'PT Serif', Georgia, serif;
    color: #4a3c28;
}

/* --- TOC Styling --- */
#toc, .toc, .mw-parser-output #toc, .mw-parser-output .toc {
    background-color: #e2d1b4 !important;
    border: 1px solid #998363 !important;
    padding: 2px !important;
    display: inline-block;
    color: #2b2b2b;
    border-radius: 0;
    margin-bottom: 15px;
}
#toc .toctitle, .toc .toctitle, #toc h2, .toc h2 {
    background-color: #c7b08d !important;
    border-bottom: none !important;
    text-align: center;
    font-family: 'PT Serif', serif !important;
    font-size: 1.1em !important;
    font-weight: bold !important;
    margin: 0 !important;
    padding: 6px 15px !important;
    color: #4a3c28 !important;
}
#toc ul, .toc ul {
    list-style-type: none !important;
    padding: 10px 15px !important;
    margin: 0 !important;
    background-color: #e2d1b4 !important;
}
#toc ul ul, .toc ul ul {
    padding-left: 1.5em !important; 
    border-left: 1px dotted #a08c6c;
    margin-left: 5px !important;
    padding-top: 5px;
    padding-bottom: 5px;
}
#toc li, .toc li {
    margin-bottom: 4px !important;
    font-size: 0.95em;
    line-height: 1.4;
}
#toc a, .toc a {
    color: #5a3c21 !important;
    text-decoration: none !important;
}
#toc a:hover, .toc a:hover {
    text-decoration: underline !important;
}

/* --- Popups (PagePreviews) Styling --- */
.mwe-popups {
    background-color: transparent !important;
    border: none !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.6) !important;
}
.mwe-popups .mwe-popups-container {
    background-color: #e2d1b4 !important;
    border: 1px solid #7d6b54 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
}
.mwe-popups .mwe-popups-extract {
    color: #2b2b2b !important;
    font-family: 'Museo Sans', sans-serif !important;
    padding: 15px !important;
    font-size: 0.95em !important;
}
.mwe-popups.mwe-popups-is-tall .mwe-popups-extract {
    padding-top: 10px !important;
}
.mwe-popups .mwe-popups-settings-icon {
    opacity: 0.7 !important;
}
.mwe-popups .mwe-popups-settings-icon:hover {
    opacity: 1 !important;
}
.mwe-popups .mwe-popups-extract::after {
    background-image: linear-gradient(to right, rgba(226, 209, 180, 0), #e2d1b4 50%) !important;
}
.mwe-popups .mwe-popups-extract[dir='ltr']::after {
    background-image: linear-gradient(to right, rgba(226, 209, 180, 0), #e2d1b4 50%) !important;
}
svg.mwe-popups-settings-icon path {
    fill: #2b2b2b !important;
}