Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 17:02, 27 July 2026 by Aurelianus (talk | contribs) (Make room for Save, Cancel, and Delete row controls)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* HarvestWiki — bespoke dark cultivation atlas */ :root { --hw-forest-950: #08110d; --hw-forest-900: #0d1a14; --hw-forest-800: #14281e; --hw-forest-700: #1d3a2b; --hw-forest-600: #2f654b; --hw-brass: #c9a75f; --hw-brass-bright: #efd28a; --hw-rice: #f2ead8; --hw-ash: #a7b4ac; --hw-border: #31463b; --hw-panel: #111d17; --hw-panel-2: #18251e; --hw-red: #8b3531; --hw-blue: #284e66; --hw-purple: #4e365e; --hw-shadow: 0 5px 14px rgba(0,0,0,.28); } body { background-color: var(--color-surface-0, #0c120f); background-image: linear-gradient(135deg, rgba(201,167,95,.035) 25%, transparent 25%), linear-gradient(225deg, rgba(201,167,95,.035) 25%, transparent 25%), linear-gradient(315deg, rgba(201,167,95,.035) 25%, transparent 25%), linear-gradient(45deg, rgba(201,167,95,.035) 25%, transparent 25%); background-position: 14px 0, 14px 0, 0 0, 0 0; background-size: 28px 28px; background-attachment: fixed; } /* Replace the installation placeholder mark with a wiki emblem. */ .mw-logo-icon { display: none !important; } .mw-logo::before { content: "道"; display: grid; place-items: center; width: 38px; height: 38px; box-sizing: border-box; border: 2px solid var(--hw-brass); border-radius: 50%; background: var(--hw-forest-900); color: var(--hw-brass-bright); font: 700 21px/1 Georgia, serif; box-shadow: inset 0 0 0 3px var(--hw-forest-900), inset 0 0 0 4px rgba(201,167,95,.35); } .mw-parser-output { max-width: 1180px; line-height: 1.62; } .mw-first-heading, .firstHeading { font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: -.018em; } .mw-parser-output h2 { margin-top: 2rem; padding: .55rem .75rem; border: 0; border-left: 4px solid var(--hw-brass); background: linear-gradient(90deg, rgba(201,167,95,.12), transparent 72%); font-size: 1.42rem; letter-spacing: .01em; } .mw-parser-output h3 { color: var(--hw-brass); } .mw-parser-output a { text-underline-offset: .16em; } .mw-parser-output a:not(.new) { color: #79aee0; } .mw-parser-output a:hover { color: #a9cdf0; } .mw-parser-output .new { color: #ce7771; } /* Dense reference tables */ .mw-parser-output table.wikitable, .mw-parser-output .hw-table { width: 100%; margin: 1rem 0 1.5rem; border: 2px solid var(--hw-border); border-collapse: separate; border-spacing: 0; border-radius: 7px; overflow: hidden; background: var(--color-surface-1, var(--hw-panel)); box-shadow: var(--hw-shadow); } .mw-parser-output table.wikitable th, .mw-parser-output .hw-table th { padding: .7rem .75rem; border: 0; border-right: 1px solid rgba(255,255,255,.08); background: #172f24; color: var(--hw-rice); font-size: .74rem; text-align: left; text-transform: uppercase; letter-spacing: .075em; } .mw-parser-output table.wikitable td, .mw-parser-output .hw-table td { padding: .68rem .75rem; border: 0; border-right: 1px solid var(--hw-border); border-bottom: 1px solid var(--hw-border); vertical-align: middle; } .mw-parser-output table.wikitable th:last-child, .mw-parser-output table.wikitable td:last-child, .mw-parser-output .hw-table th:last-child, .mw-parser-output .hw-table td:last-child { border-right: 0; } .mw-parser-output table.wikitable tr:last-child td, .mw-parser-output .hw-table tr:last-child td { border-bottom: 0; } .mw-parser-output table.wikitable tr:nth-child(even) td, .mw-parser-output .hw-table tr:nth-child(even) td { background: rgba(201,167,95,.04); } .mw-parser-output table.wikitable tr:hover td, .mw-parser-output .hw-table tr:hover td { background: rgba(201,167,95,.1); } /* Main page portal */ .hw-portal { width: 100%; margin: .25rem 0 1.5rem; } .hw-portal a { text-decoration: none; } .hw-masthead { position: relative; min-height: 340px; display: grid; grid-template-columns: 190px minmax(0,1fr); align-items: center; gap: clamp(1rem,4vw,3rem); box-sizing: border-box; overflow: hidden; padding: clamp(1.4rem,4vw,3rem); border: 4px solid #25372f; border-radius: 10px; background: radial-gradient(circle at 14% 47%, rgba(239,210,138,.16) 0 7rem, transparent 7.1rem), linear-gradient(180deg, rgba(7,15,11,.08), rgba(7,15,11,.68)), repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 13px), linear-gradient(120deg, #152c21, #0e1a15 62%, #261d13); box-shadow: inset 0 0 0 1px rgba(201,167,95,.2), var(--hw-shadow); color: var(--hw-rice); } .hw-masthead::before, .hw-masthead::after { content: ""; position: absolute; pointer-events: none; } .hw-masthead::before { inset: 13px; border: 1px solid rgba(201,167,95,.3); border-radius: 4px; } .hw-masthead::after { right: -7%; bottom: -52%; width: 58%; aspect-ratio: 1; border: 1px solid rgba(201,167,95,.13); border-radius: 50%; box-shadow: 0 0 0 28px rgba(201,167,95,.025), 0 0 0 58px rgba(201,167,95,.018); } .hw-emblem { position: relative; z-index: 2; display: grid; place-items: center; width: 170px; height: 170px; border: 2px solid var(--hw-brass); border-radius: 50%; background: radial-gradient(circle, #1d392b, #0b1711 68%); color: var(--hw-brass-bright); font: 700 78px/1 Georgia, serif; box-shadow: inset 0 0 0 8px #0d1a14, inset 0 0 0 9px rgba(201,167,95,.36), 0 8px 22px rgba(0,0,0,.35); } .hw-emblem::before, .hw-emblem::after { content: "HARVEST"; position: absolute; top: 20px; color: var(--hw-brass); font: 700 8px/1 system-ui,sans-serif; letter-spacing: .32em; } .hw-emblem::after { content: "THE DAO"; top: auto; bottom: 20px; } .hw-masthead-copy { position: relative; z-index: 2; min-width: 0; } .hw-overline { margin-bottom: .55rem; color: var(--hw-brass); font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; } .hw-masthead h2 { margin: 0 0 .55rem !important; padding: 0 !important; border: 0 !important; background: none !important; color: #fff !important; font: 700 clamp(2.2rem,5.5vw,4.2rem)/.98 Georgia,"Times New Roman",serif; letter-spacing: -.04em; } .hw-masthead-copy > p { max-width: 720px; margin: .5rem 0 .9rem; color: #c6d0ca; font-size: 1rem; } .hw-wiki-stats { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: .7rem 0 1rem; color: var(--hw-brass-bright); font-size: .82rem; font-weight: 700; } .hw-wiki-stats span::before { content: "◆"; margin-right: .45rem; color: var(--hw-brass); font-size: .55rem; vertical-align: .15em; } .hw-socials { display: flex; flex-wrap: wrap; gap: .4rem; } .hw-social { display: inline-block; padding: .45rem .72rem; border: 1px solid rgba(255,255,255,.15); border-radius: 5px; color: #fff !important; font-size: .76rem; font-weight: 800; box-shadow: 0 2px 5px rgba(0,0,0,.2); } .hw-social:hover { filter: brightness(1.14); transform: translateY(-1px); } .hw-social--game { background: #242725; } .hw-social--group { background: #35493c; } .hw-social--discord { background: #5865f2; } .hw-social--studio { background: #7c552b; } .hw-about { margin: 8px 0; padding: 1rem 1.15rem; border: 3px solid var(--hw-border); border-radius: 8px; background: linear-gradient(90deg, rgba(201,167,95,.06), transparent 35%), repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 1px, transparent 1px 11px), var(--hw-panel); box-shadow: var(--hw-shadow); color: #c7d0ca; } .hw-about strong { color: var(--hw-rice); } .hw-about a:last-child { float: right; font-weight: 800; } .hw-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; margin: 8px 0; padding: 12px; border: 3px solid var(--hw-border); border-radius: 8px; background: repeating-linear-gradient(45deg, rgba(255,255,255,.018) 0 1px, transparent 1px 10px), var(--hw-panel); box-shadow: var(--hw-shadow); } .hw-directory a { display: grid; grid-template-columns: 34px 1fr; align-items: center; min-height: 52px; overflow: hidden; border: 1px solid rgba(255,255,255,.07); border-radius: 4px; background: #1b3428; color: #f4f4ed !important; font-size: .82rem; font-weight: 800; } .hw-directory a:hover { filter: brightness(1.15); transform: translateY(-1px); } .hw-nav-key { display: grid; place-items: center; align-self: stretch; background: rgba(0,0,0,.22); color: var(--hw-brass-bright); font-family: Georgia,serif; font-size: 1rem; } .hw-nav-label { padding: .35rem .5rem; line-height: 1.1; } .hw-nav-label small { display: block; margin-top: .22rem; color: rgba(255,255,255,.58); font-size: .64rem; font-weight: 600; } .hw-directory .hw-nav--herbs { background: #24583d; } .hw-directory .hw-nav--tools { background: #38526a; } .hw-directory .hw-nav--world { background: #74403b; } .hw-directory .hw-nav--people { background: #684c25; } .hw-directory .hw-nav--guide { background: #3c5931; } .hw-directory .hw-nav--item { background: #4c3d62; } .hw-directory .hw-nav--community { background: #533337; } .hw-directory .hw-nav--random { background: #3a4640; } .hw-dashboard { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: 8px; margin-top: 8px; } .hw-module { position: relative; overflow: hidden; min-width: 0; padding: 1rem; border: 2px solid var(--hw-border); border-radius: 8px; background: repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 1px, transparent 1px 12px), var(--hw-panel); box-shadow: var(--hw-shadow); } .hw-module-title { margin: -1rem -1rem .85rem; padding: .55rem .75rem; border-bottom: 1px solid var(--hw-border); background: #0b1510; color: var(--hw-brass-bright); font-size: .75rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; } .hw-feature-name { margin: 0 0 .2rem; color: #fff; font: 700 1.55rem/1.15 Georgia,serif; } .hw-feature-copy { margin: .25rem 0 .85rem; color: var(--hw-ash); } .hw-stat-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; margin: .8rem 0; } .hw-stat { padding: .55rem .35rem; border: 1px solid var(--hw-border); border-radius: 4px; background: rgba(0,0,0,.17); text-align: center; } .hw-stat b { display: block; color: var(--hw-brass-bright); font-size: 1rem; } .hw-stat small { color: var(--hw-ash); font-size: .62rem; text-transform: uppercase; letter-spacing: .05em; } .hw-module-link { display: inline-block; margin-top: .35rem; padding: .42rem .65rem; border-radius: 4px; background: var(--hw-brass); color: #211a0d !important; font-size: .73rem; font-weight: 900; } .hw-records { margin: 0 !important; padding: 0 !important; list-style: none !important; } .hw-records li { display: grid; grid-template-columns: 1fr auto; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid var(--hw-border); font-size: .82rem; } .hw-records li:last-child { border-bottom: 0; } .hw-records a { font-weight: 750; } .hw-records span { color: var(--hw-ash); font-size: .72rem; } .hw-subtle { color: var(--hw-ash); font-size: .8rem; } .hw-rule { height: 1px; margin: .8rem 0; background: var(--hw-border); } /* Article utility components */ .hw-note { margin: 1rem 0 1.35rem; padding: .8rem .9rem; border: 1px solid rgba(201,167,95,.45); border-left: 4px solid var(--hw-brass); border-radius: 5px; background: rgba(201,167,95,.08); } .hw-clear, .hw-section-clear { clear: both; } .hw-infobox { float: right; clear: right; width: 320px; max-width: 42%; margin: 0 0 1.2rem 1.4rem; padding: .75rem; box-sizing: border-box; overflow: hidden; border: 2px solid var(--hw-border); border-radius: 8px; background: repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 1px, transparent 1px 11px), var(--color-surface-1, var(--hw-panel)); box-shadow: var(--hw-shadow); } .hw-infobox-title { margin: -.75rem -.75rem .7rem; padding: .72rem .8rem; border-bottom: 1px solid rgba(201,167,95,.35); background: #12271d; color: var(--hw-rice); text-align: center; font: 700 1.18rem/1.2 Georgia,serif; } .hw-infobox-heading { margin: .7rem 0 .25rem; padding: .38rem .5rem; border: 1px solid var(--hw-border); border-radius: 3px; background: rgba(201,167,95,.09); color: var(--hw-brass-bright); text-align: center; font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; } .hw-infobox-row { display: grid; grid-template-columns: 44% 56%; gap: .55rem; align-items: start; padding: .44rem .1rem; border-bottom: 1px solid var(--hw-border); } .hw-infobox-row:last-child { border-bottom: 0; } .hw-infobox-label { color: var(--hw-ash); font-size: .75rem; font-weight: 800; } .hw-infobox-value { overflow-wrap: anywhere; } .hw-infobox-blurb { margin: 0 0 .65rem !important; padding: 0 0 .65rem !important; border: 0 !important; border-bottom: 1px solid var(--hw-border) !important; background: transparent !important; box-shadow: none !important; color: inherit; text-align: center; } .mw-category-generated, .catlinks { margin-top: 2rem; border-radius: 6px; } @media screen and (max-width: 850px) { .hw-masthead { grid-template-columns: 1fr; min-height: 0; text-align: center; } .hw-emblem { width: 126px; height: 126px; margin: auto; font-size: 58px; } .hw-emblem::before { top: 13px; }.hw-emblem::after { bottom: 13px; } .hw-masthead-copy > p { margin-left: auto; margin-right: auto; } .hw-wiki-stats,.hw-socials { justify-content: center; } .hw-directory { grid-template-columns: repeat(2,minmax(0,1fr)); } .hw-dashboard { grid-template-columns: 1fr; } .hw-infobox { float: none; width: auto; max-width: none; margin: 0 0 1rem; } .mw-parser-output table.wikitable, .mw-parser-output .hw-table { display: block; overflow-x: auto; white-space: nowrap; } } @media screen and (max-width: 480px) { .hw-directory { grid-template-columns: 1fr; } .hw-stat-strip { grid-template-columns: repeat(2,1fr); } .hw-about a:last-child { float: none; display: block; margin-top: .5rem; } } /* Shared record banners and archive navigation */ .hw-record-banner, .hw-archive-banner { position: relative; clear: both; display: flex; min-height: 150px; margin: .25rem 0 1rem; padding: 1.15rem 1.3rem; overflow: hidden; box-sizing: border-box; flex-direction: column; justify-content: flex-end; border: 3px solid var(--hw-border); border-radius: 8px; background: linear-gradient(180deg, transparent, rgba(4,10,7,.82)), repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 12px), #173326; color: var(--hw-rice); box-shadow: inset 0 0 0 1px rgba(201,167,95,.18), var(--hw-shadow); } .hw-record-banner::after, .hw-archive-banner::after { content: ""; position: absolute; top: -105px; right: -65px; width: 260px; height: 260px; border: 1px solid rgba(201,167,95,.2); border-radius: 50%; box-shadow: 0 0 0 24px rgba(201,167,95,.03), 0 0 0 48px rgba(201,167,95,.02); } .hw-record-code { position: relative; z-index: 1; color: var(--hw-brass); font-size: .67rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; } .hw-record-name { position: relative; z-index: 1; margin: .22rem 0; color: #fff; font: 700 clamp(1.65rem, 4vw, 2.65rem)/1.05 Georgia, serif; letter-spacing: -.025em; } .hw-record-summary { position: relative; z-index: 1; max-width: 760px; color: #bdcbc4; font-size: .86rem; } .hw-record-banner--shovel { background: linear-gradient(180deg, rgba(21,39,48,.15), rgba(5,12,16,.88)), repeating-linear-gradient(135deg, rgba(119,163,184,.05) 0 1px, transparent 1px 12px), #213b47; } .hw-record-banner--herb { background: linear-gradient(180deg, rgba(28,74,47,.15), rgba(5,15,9,.88)), repeating-linear-gradient(135deg, rgba(115,190,129,.05) 0 1px, transparent 1px 12px), #1d5034; } .hw-record-banner--location { background: linear-gradient(180deg, rgba(91,58,31,.12), rgba(15,10,6,.88)), repeating-linear-gradient(135deg, rgba(210,162,96,.05) 0 1px, transparent 1px 12px), #533d27; } .hw-record-banner--npc { background: linear-gradient(180deg, rgba(86,61,49,.12), rgba(14,9,8,.88)), repeating-linear-gradient(135deg, rgba(204,148,118,.05) 0 1px, transparent 1px 12px), #4b312a; } .hw-infobox-badge { margin: -.15rem 0 .65rem; padding: .32rem .5rem; border: 1px solid var(--hw-border); border-radius: 3px; background: rgba(201,167,95,.08); color: var(--hw-brass-bright); text-align: center; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; } .hw-tier-1 .hw-infobox-title { border-bottom: 3px solid #788d82; } .hw-tier-2 .hw-infobox-title { border-bottom: 3px solid #4f82a0; } .hw-tier-3 .hw-infobox-title { border-bottom: 3px solid var(--hw-brass); } .hw-rarity-Common .hw-infobox-title { border-bottom: 3px solid #779786; } .hw-rarity-Uncommon .hw-infobox-title { border-bottom: 3px solid #5da46e; } .hw-rarity-Rare .hw-infobox-title { border-bottom: 3px solid #4e7bb6; } .hw-rarity-Legendary .hw-infobox-title { border-bottom: 3px solid #b7833b; } .hw-rarity-Mythical .hw-infobox-title { border-bottom: 3px solid #9b4f87; } .hw-archive-banner { min-height: 180px; padding: 1.35rem 1.5rem; } .hw-archive-banner--herbs { background: linear-gradient(180deg, rgba(28,74,47,.12), rgba(5,15,9,.9)), repeating-linear-gradient(135deg, rgba(115,190,129,.05) 0 1px, transparent 1px 12px), #1b4a30; } .hw-archive-banner--shovels { background: linear-gradient(180deg, rgba(26,57,72,.12), rgba(5,12,16,.9)), repeating-linear-gradient(135deg, rgba(119,163,184,.05) 0 1px, transparent 1px 12px), #1e3e4c; } .hw-archive-banner--locations { background: linear-gradient(180deg, rgba(91,58,31,.12), rgba(15,10,6,.9)), repeating-linear-gradient(135deg, rgba(210,162,96,.05) 0 1px, transparent 1px 12px), #503923; } .hw-archive-banner--npcs { background: linear-gradient(180deg, rgba(83,48,61,.12), rgba(14,8,11,.9)), repeating-linear-gradient(135deg, rgba(195,117,143,.05) 0 1px, transparent 1px 12px), #482837; } .hw-archive-stats { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .65rem; color: var(--hw-brass-bright); font-size: .72rem; font-weight: 800; } .hw-archive-stats span::before { content: "◆"; margin-right: .35rem; color: var(--hw-brass); font-size: .58rem; } .hw-page-nav { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 1.15rem; padding: .45rem; border: 1px solid var(--hw-border); border-radius: 5px; background: var(--hw-panel); box-shadow: 0 3px 9px rgba(0,0,0,.18); } .hw-page-nav a { padding: .28rem .58rem; border-radius: 3px; background: rgba(255,255,255,.035); font-size: .72rem; font-weight: 800; text-decoration: none; } .hw-page-nav a:hover { background: rgba(201,167,95,.12); color: var(--hw-brass-bright); } .hw-directory .hw-nav--herbs a { background: #24583d; } .hw-directory .hw-nav--shovels a { background: #284e66; } .hw-directory .hw-nav--locations a { background: #684526; } .hw-directory .hw-nav--npcs a { background: #5b3545; } @media (max-width: 600px) { .hw-record-banner, .hw-archive-banner { min-height: 135px; padding: 1rem; } .hw-record-name { font-size: 1.7rem; } .hw-archive-stats { gap: .25rem .65rem; } } /* Stable, single sort indicators for MediaWiki archive tables. */ .mw-parser-output table.sortable th.headerSort, .mw-parser-output table.sortable th.headerSortUp, .mw-parser-output table.sortable th.headerSortDown { padding-right: .75rem; background-image: none !important; } .mw-parser-output table.sortable th.headerSort::after { content: "↕"; float: right; margin-left: .45rem; color: var(--hw-brass-bright); font-size: .72rem; line-height: 1.2; opacity: .62; } .mw-parser-output table.sortable th.headerSortUp::after { content: "↑"; opacity: 1; } .mw-parser-output table.sortable th.headerSortDown::after { content: "↓"; opacity: 1; } /* Scenic Mainland backdrop and floating Citizen page shell */ body { background-color: #07100c !important; background-image: linear-gradient(180deg, rgba(4,10,7,.48), rgba(4,10,7,.68)), url("/images/7/76/Mainland.jpg") !important; background-position: center center !important; background-size: cover !important; background-repeat: no-repeat !important; background-attachment: fixed !important; } .citizen-page-container { background: transparent !important; } .citizen-header, .citizen-sticky-header-container { background: rgba(6,13,10,.88) !important; border-bottom: 1px solid rgba(201,167,95,.22); box-shadow: 0 8px 24px rgba(0,0,0,.28); backdrop-filter: blur(12px) saturate(.85); } #content.mw-body { box-sizing: border-box; width: calc(100% - clamp(1.4rem, 6vw, 6rem)) !important; max-width: 1240px; margin-right: auto; margin-left: auto; margin-top: clamp(1rem, 3vw, 2.2rem); margin-bottom: 1.25rem; border: 1px solid rgba(201,167,95,.3); border-radius: 16px; background: rgba(7,15,11,.9); box-shadow: 0 18px 55px rgba(0,0,0,.48), inset 0 0 0 1px rgba(255,255,255,.025); backdrop-filter: blur(9px) saturate(.78); } .citizen-footer { box-sizing: border-box; width: calc(100% - clamp(1.4rem, 6vw, 6rem)); max-width: 1240px; margin: 0 auto 2rem; padding: 1rem 1.25rem; border: 1px solid rgba(201,167,95,.24); border-radius: 12px; background: rgba(7,15,11,.87); box-shadow: 0 14px 34px rgba(0,0,0,.34); backdrop-filter: blur(8px); } .hw-location-image { position: relative; float: left; clear: none; box-sizing: border-box; width: calc(100% - 370px); aspect-ratio: 16 / 7; margin: .25rem 0 1.5rem; overflow: hidden; border: 3px solid var(--hw-border); border-radius: 9px; background: var(--hw-panel); box-shadow: var(--hw-shadow); } .hw-location-image .mw-file-description { display: block; width: 100%; height: 100%; } .hw-location-image img { display: block; width: 100% !important; max-width: none !important; height: 100% !important; margin: 0 !important; object-fit: cover; object-position: center 52%; transition: transform .35s ease; } .hw-location-image:hover img { transform: scale(1.018); } .hw-location-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 46%, rgba(3,8,5,.86)); } .hw-location-image-caption { position: absolute; z-index: 1; right: 1.15rem; bottom: .9rem; left: 1.15rem; color: #d5dfd9; font-size: .78rem; } .hw-location-image + h2 { clear: both; } .hw-location-image-caption strong { display: block; margin-bottom: .16rem; color: var(--hw-brass-bright); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; } @media screen and (max-width: 850px) { body { background-attachment: scroll !important; } #content.mw-body { margin-top: .7rem; border-radius: 11px; } .citizen-footer { margin-bottom: .75rem; border-radius: 10px; } .hw-location-image { float: none; clear: both; width: auto; aspect-ratio: 16 / 9; } }

/* One consistent frame for Citizen-wrapped data tables. */
.mw-parser-output .citizen-overflow-wrapper:has(> .citizen-overflow-content > table.wikitable),
.mw-parser-output .citizen-overflow-wrapper:has(> .citizen-overflow-content > .hw-table) {
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.mw-parser-output .citizen-overflow-wrapper:has(> .citizen-overflow-content > table.wikitable) > .citizen-overflow-content,
.mw-parser-output .citizen-overflow-wrapper:has(> .citizen-overflow-content > .hw-table) > .citizen-overflow-content {
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.mw-parser-output table.wikitable,
.mw-parser-output .hw-table {
  border: 1px solid var(--hw-border) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Centralized Cargo archives, forms, crystal records, and location filters. */
.hw-archive-banner--crystals,
.hw-record-banner--crystal {
  background: linear-gradient(180deg, rgba(83,64,123,.12), rgba(8,6,15,.92)),
    repeating-linear-gradient(135deg, rgba(182,154,236,.055) 0 1px, transparent 1px 12px), #352c54;
}
.hw-record-banner--crystal::before {
  content: "◆";
  position: absolute;
  top: 1.25rem;
  right: 1.5rem;
  color: rgba(239,210,138,.34);
  font-size: 4.5rem;
  line-height: 1;
}
.hw-crystal-rarity-Mortal .hw-infobox-title { border-bottom: 3px solid #7e9b91; }
.hw-crystal-rarity-Refined .hw-infobox-title { border-bottom: 3px solid #8c69ae; }
.hw-crystal-rarity-Spirit .hw-infobox-title { border-bottom: 3px solid var(--hw-brass); }
.hw-rarity-Mythic .hw-infobox-title { border-bottom: 3px solid #9b4f87; }

.hw-filter-panel {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .3rem .9rem;
  align-items: center;
  margin: .75rem 0 1rem;
  padding: .8rem .9rem;
  border: 1px solid var(--hw-border);
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(201,167,95,.075), transparent 44%), var(--hw-panel);
}
.hw-filter-kicker {
  grid-column: 1 / -1;
  color: var(--hw-brass);
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.hw-filter-label {
  color: var(--hw-rice);
  font-size: .78rem;
  font-weight: 800;
}
.hw-herb-filter { display: flex; flex-wrap: wrap; gap: .38rem; }
.hw-filter-chip {
  appearance: none;
  padding: .36rem .68rem;
  border: 1px solid var(--hw-border);
  border-radius: 999px;
  background: rgba(255,255,255,.035);
  color: var(--hw-ash);
  font: 800 .7rem/1.2 system-ui,sans-serif;
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.hw-filter-chip:hover { transform: translateY(-1px); border-color: rgba(201,167,95,.55); color: var(--hw-rice); }
.hw-filter-chip.is-active { border-color: rgba(201,167,95,.62); background: rgba(201,167,95,.16); color: var(--hw-brass-bright); }
.hw-filter-chip:disabled { cursor: default; opacity: .72; transform: none; }
.hw-herb-catalog tr[hidden] { display: none !important; }
.hw-filter-loading { color: var(--hw-ash); font-size: .75rem; }

.hw-location-herb-list { text-align: left; line-height: 1.5; }
.hw-location-placeholder {
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 45%, rgba(239,210,138,.13), transparent 28%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 16px),
    linear-gradient(145deg, #203e31, #111d17 60%, #302515);
}
.hw-location-placeholder-seal {
  color: rgba(239,210,138,.68);
  font: 700 clamp(4rem,10vw,8rem)/1 Georgia,serif;
  text-shadow: 0 6px 18px rgba(0,0,0,.36);
}

.hw-form-shell {
  padding: 1rem;
  border: 1px solid var(--hw-border);
  border-radius: 10px;
  background: var(--hw-panel);
}
.hw-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.hw-form-grid > div, .hw-form-wide { display: grid; gap: .3rem; }
.hw-form-wide { grid-column: 1 / -1; margin-top: .8rem; }
.hw-form-shell input[type="text"],
.hw-form-shell input[type="number"],
.hw-form-shell select,
.hw-form-shell textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid var(--hw-border);
  border-radius: 5px;
  background: #0c1711;
  color: var(--hw-rice);
}
.hw-form-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.hw-loot-pool { clear: both; }

@media screen and (max-width: 650px) {
  .hw-filter-panel { grid-template-columns: 1fr; }
  .hw-form-grid { grid-template-columns: 1fr; }
}


/* HarvestWiki rarity palette — Herb and Crystal data tables */
:root {
  --hw-rarity-common: rgb(229, 231, 231);
  --hw-rarity-uncommon: rgb(135, 255, 151);
  --hw-rarity-rare: rgb(109, 144, 255);
  --hw-rarity-legendary: rgb(255, 246, 135);
  --hw-rarity-mythic: rgb(255, 121, 203);
  --hw-rarity-secret: rgb(18, 0, 92);
  --hw-rarity-mortal: rgb(206, 241, 232);
  --hw-rarity-refined: rgb(70, 71, 71);
  --hw-rarity-spirit: rgb(0, 195, 242);
}

.hw-rarity-row[data-hw-rarity="common"] { --hw-rarity-color: var(--hw-rarity-common); }
.hw-rarity-row[data-hw-rarity="uncommon"] { --hw-rarity-color: var(--hw-rarity-uncommon); }
.hw-rarity-row[data-hw-rarity="rare"] { --hw-rarity-color: var(--hw-rarity-rare); }
.hw-rarity-row[data-hw-rarity="legendary"] { --hw-rarity-color: var(--hw-rarity-legendary); }
.hw-rarity-row[data-hw-rarity="mythic"] { --hw-rarity-color: var(--hw-rarity-mythic); }
.hw-rarity-row[data-hw-rarity="secret"] { --hw-rarity-color: var(--hw-rarity-secret); }
.hw-rarity-row[data-hw-rarity="mortal"] { --hw-rarity-color: var(--hw-rarity-mortal); }
.hw-rarity-row[data-hw-rarity="refined"] { --hw-rarity-color: var(--hw-rarity-refined); }
.hw-rarity-row[data-hw-rarity="spirit"] { --hw-rarity-color: var(--hw-rarity-spirit); }

.mw-parser-output table tr.hw-rarity-row > td {
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--hw-rarity-color) 17%, #0d1511),
      color-mix(in srgb, var(--hw-rarity-color) 8%, #0d1511)
    ) !important;
  border-bottom-color: color-mix(in srgb, var(--hw-rarity-color) 34%, var(--hw-border)) !important;
  transition: background .14s ease, box-shadow .14s ease;
}

.mw-parser-output table tr.hw-rarity-row:hover > td {
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--hw-rarity-color) 25%, #101b15),
      color-mix(in srgb, var(--hw-rarity-color) 13%, #101b15)
    ) !important;
}

.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-item {
  box-shadow: inset 4px 0 0 var(--hw-rarity-color);
  font-weight: 850;
}

.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-item,
.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-item > a,
.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-label {
  color: color-mix(in srgb, var(--hw-rarity-color) 72%, white) !important;
  text-shadow: 0 1px 1px rgba(0,0,0,.82),
    0 0 10px color-mix(in srgb, var(--hw-rarity-color) 20%, transparent);
}

.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-label {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.mw-parser-output table tr.hw-rarity-row > td.hw-rarity-item > a:hover {
  color: color-mix(in srgb, var(--hw-rarity-color) 48%, white) !important;
  text-decoration-color: var(--hw-rarity-color);
}


/* HarvestWiki Weather archive and records */
.hw-archive-banner--weather {
  background:
    radial-gradient(circle at 82% 18%, rgba(161,221,255,.19), transparent 21%),
    linear-gradient(135deg, rgba(70,132,163,.20), rgba(8,15,24,.94) 58%),
    repeating-linear-gradient(145deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px),
    #12212a;
}
.hw-record-banner--weather {
  background:
    radial-gradient(circle at 82% 22%, rgba(178,227,255,.18), transparent 23%),
    linear-gradient(140deg, rgba(74,141,177,.20), rgba(7,13,20,.95) 62%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 1px, transparent 1px 13px),
    #12212a;
}
.hw-record-banner--weather::before {
  content: "☁";
  position: absolute;
  top: .6rem;
  right: 1.5rem;
  color: rgba(196,232,251,.20);
  font-size: 6rem;
  line-height: 1;
  text-shadow: -1.7rem 1.9rem 0 rgba(239,210,138,.11);
}
.hw-weather-infobox .hw-infobox-badge {
  border-color: rgba(111,194,236,.42);
  background: rgba(50,123,160,.18);
  color: #b9e8ff;
}
.hw-weather-type-Standard .hw-infobox-title {
  border-bottom: 3px solid #74b7d5;
}
.hw-weather-type-Special .hw-infobox-title {
  border-bottom: 3px solid var(--hw-brass-bright);
}
.hw-weather-type-Special .hw-infobox-badge {
  border-color: rgba(239,210,138,.52);
  background: rgba(201,167,95,.15);
  color: var(--hw-brass-bright);
}
.hw-weather-catalog .field_Weather {
  box-shadow: inset 4px 0 0 #5ba6cb;
  font-weight: 850;
}
.hw-weather-catalog .field_Weather a {
  color: #a9def7 !important;
}
.hw-weather-catalog .field_Type,
.hw-weather-catalog .field_Effect {
  font-weight: 800;
}

.hw-directory .hw-nav--weather { background: #345d73; }

/* Herb preference fallbacks */
.hw-preference-value:empty {
  display: none;
}

.hw-preference-value:not(:empty) + .hw-preference-none {
  display: none;
}


/* HarvestWiki four-zodiac celestial calendar */
.hw-zodiac-cycle {
  position: relative;
  overflow: hidden;
  margin-top: 8px;
  padding: 1rem;
  border: 2px solid var(--hw-border);
  border-radius: 8px;
  background:
    radial-gradient(circle at 88% 0, rgba(239,210,138,.10), transparent 30%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.018) 0 1px, transparent 1px 12px),
    var(--hw-panel);
  box-shadow: var(--hw-shadow);
}
.hw-zodiac-cycle::before {
  content: "天時";
  position: absolute;
  top: -.45rem;
  right: 1.25rem;
  color: rgba(239,210,138,.055);
  font-size: 6.5rem;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}
.hw-zodiac-head,
.hw-zodiac-foot {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}
.hw-zodiac-kicker {
  display: block;
  margin-bottom: .2rem;
  color: var(--hw-brass);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hw-zodiac-head strong {
  display: block;
  color: var(--hw-rice);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.2rem, 2.4vw, 1.75rem);
  line-height: 1.1;
}
.hw-zodiac-timer {
  min-width: 150px;
  text-align: right;
}
.hw-zodiac-timer span {
  display: block;
  color: var(--hw-ash);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hw-zodiac-timer b {
  color: var(--hw-brass-bright);
  font-variant-numeric: tabular-nums;
  font-size: 1.15rem;
}
.hw-zodiac-progress {
  position: relative;
  z-index: 1;
  height: 3px;
  margin: .85rem 0;
  overflow: hidden;
  border-radius: 999px;
  background: #29372f;
}
.hw-zodiac-progress span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--hw-brass), var(--hw-brass-bright));
  transition: width .4s linear;
}
.hw-zodiac-track {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 6px;
}
.hw-zodiac-season {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: .65rem;
  padding: .72rem;
  border: 1px solid var(--hw-border);
  border-radius: 6px;
  background: rgba(8,17,13,.72);
  color: var(--hw-ash);
  opacity: .68;
  transition: border-color .2s ease, background .2s ease, opacity .2s ease, transform .2s ease;
}
.hw-zodiac-season.is-current {
  border-color: var(--hw-brass);
  background: linear-gradient(135deg, rgba(201,167,95,.16), rgba(13,26,20,.92));
  box-shadow: inset 0 0 0 1px rgba(239,210,138,.12);
  color: var(--hw-rice);
  opacity: 1;
  transform: translateY(-2px);
}
.hw-zodiac-seal {
  display: grid;
  flex: 0 0 2.35rem;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: rgba(0,0,0,.18);
  color: var(--hw-brass);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 900;
}
.hw-zodiac-season--dragon .hw-zodiac-seal { color: #df7a69; }
.hw-zodiac-season--tiger .hw-zodiac-seal { color: #e0b55d; }
.hw-zodiac-season--phoenix .hw-zodiac-seal { color: #e2778e; }
.hw-zodiac-season--tortoise .hw-zodiac-seal { color: #74b7a3; }
.hw-zodiac-name {
  min-width: 0;
  font-size: .77rem;
  font-weight: 900;
  line-height: 1.25;
}
.hw-zodiac-name small {
  display: block;
  margin-top: .22rem;
  color: var(--hw-ash);
  font-size: .62rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.hw-zodiac-season.is-current .hw-zodiac-name small { color: var(--hw-brass-bright); }
.hw-zodiac-foot {
  align-items: center;
  margin-top: .75rem;
  color: #84958b;
  font-size: .61rem;
  font-weight: 700;
  letter-spacing: .035em;
}
@media (max-width: 850px) {
  .hw-zodiac-track { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px) {
  .hw-zodiac-head, .hw-zodiac-foot { align-items: flex-start; flex-direction: column; gap: .45rem; }
  .hw-zodiac-timer { min-width: 0; text-align: left; }
  .hw-zodiac-track { grid-template-columns: 1fr; }
  .hw-zodiac-season { padding: .62rem .7rem; }
}


/* Page Forms multi-page spreadsheet usability */
.pfSpreadsheet.jexcel_container {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  border: 2px solid var(--hw-border);
  border-radius: 8px;
  background: var(--hw-panel);
  box-shadow: var(--hw-shadow);
}
.pfSpreadsheet .jexcel_filter,
.pfSpreadsheet .jexcel_pagination {
  padding: .7rem .8rem;
  background: #0b1510;
}
.pfSpreadsheet .jexcel_content {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-color: var(--hw-brass) #0b1510;
  scrollbar-width: thin;
}
.pfSpreadsheet .jexcel_content::-webkit-scrollbar { height: 11px; }
.pfSpreadsheet .jexcel_content::-webkit-scrollbar-track { background: #0b1510; }
.pfSpreadsheet .jexcel_content::-webkit-scrollbar-thumb {
  border: 3px solid #0b1510;
  border-radius: 999px;
  background: var(--hw-brass);
}
.pfSpreadsheet table.jexcel {
  width: max-content !important;
  min-width: 100%;
}
.pfSpreadsheet .jexcel td:last-child {
  position: sticky;
  right: 0;
  z-index: 3;
  min-width: 78px !important;
  background: #111d17 !important;
  box-shadow: -4px 0 8px rgba(0,0,0,.28);
}
.pfSpreadsheet a.save-changes {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 62px;
  height: 28px !important;
  margin: 3px;
  padding: 0 .55rem;
  border: 1px solid var(--hw-brass);
  border-radius: 4px;
  background: rgba(201,167,95,.14);
  color: var(--hw-brass-bright) !important;
  font-size: .7rem;
  font-weight: 900;
  text-decoration: none !important;
  cursor: pointer;
}
.pfSpreadsheet a.save-changes::before { content: "✓ Save"; }
.pfSpreadsheet a.save-changes:hover {
  background: var(--hw-brass);
  color: #211a0d !important;
}
.pfSpreadsheet a.save-changes .oo-ui-iconWidget { display: none !important; }
.pfSpreadsheet a.save-changes.is-saving::before { content: "Saving…"; }
.pfSpreadsheet a.save-changes.is-saved::before { content: "✓ Saved"; }
.pfSpreadsheet .hw-bulk-editor-note {
  padding: .55rem .8rem;
  border-top: 1px solid var(--hw-border);
  background: rgba(201,167,95,.08);
  color: var(--hw-ash);
  font-size: .68rem;
  font-weight: 700;
}

.pfSpreadsheet .save-or-cancel {
  display: inline-flex !important;
  align-items: center;
  gap: .3rem;
  font-size: 0;
}
.pfSpreadsheet a.cancel-changes {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 28px !important;
  padding: 0 .5rem;
  border: 1px solid #56665d;
  border-radius: 4px;
  background: rgba(255,255,255,.035);
  color: var(--hw-ash) !important;
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none !important;
}
.pfSpreadsheet a.cancel-changes::before { content: "Cancel"; }
.pfSpreadsheet a.cancel-changes .oo-ui-iconWidget { display: none !important; }

/* Multi-page record deletion */
.pfSpreadsheet .jexcel td:last-child { min-width: 210px !important; }
.pfSpreadsheet button.hw-delete-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 28px;
  padding: 0 .62rem;
  border: 1px solid #a4534d;
  border-radius: 4px;
  background: rgba(139,53,49,.15);
  color: #efaaa3;
  font: 900 .7rem/1 system-ui,sans-serif;
  letter-spacing: .025em;
  cursor: pointer;
}
.pfSpreadsheet button.hw-delete-row:hover {
  background: #8b3531;
  color: #fff;
}
.pfSpreadsheet button.hw-delete-row:focus-visible {
  outline: 2px solid #efaaa3;
  outline-offset: 2px;
}
.pfSpreadsheet button.hw-delete-row.is-deleting {
  opacity: .65;
  cursor: progress;
}