@font-face { font-family: "FSEX302"; src: url("../Assets/FSEX302.ttf") format("truetype"); font-style: normal; font-weight: normal; } :root, :root[data-palette="CatppuccinMocha"] { --Rosewater: #f5e0dc; --Flamingo: #f2cdcd; --Pink: #f5c2e7; --Mauve: #cba6f7; --Red: #f38ba8; --Maroon: #eba0ac; --Peach: #fab387; --Yellow: #f9e2af; --Green: #a6e3a1; --Teal: #94e2d5; --Sky: #89dceb; --Sapphire: #74c7ec; --Blue: #89b4fa; --Lavender: #b4befe; --Text: #cdd6f4; --Subtext1: #bac2de; --Subtext0: #a6adc8; --Overlay2: #9399b2; --Overlay1: #7f849c; --Overlay0: #6c7086; --Surface2: #585b70; --Surface1: #45475a; --Surface0: #313244; --Base: #1e1e2e; --Mantle: #181825; --Crust: #11111b; } html { font-family: "FSEX302"; color: var(--Text); background-image: url("../Assets/Img/Tile.png"); background-repeat: repeat; } body { margin: 0; padding: 2rem; display: grid; grid-template-columns: minmax(0, 800px) auto auto; justify-content: center; align-items: start; gap: 1rem; min-height: 100vh; font-family: inherit; color: inherit; } * { box-sizing: border-box; font-family: inherit; } .MainContainer { grid-column: 1; grid-row: 1; width: 100%; max-width: 800px; margin: 0; padding: 2rem; color: var(--Text); background-color: var(--Base); border: 4px solid var(--Mauve); } h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 1rem; color: var(--Mauve); } h1 { font-size: 2.5rem; padding-bottom: 0.5rem; border-bottom: 3px solid var(--Mauve); } h2 { font-size: 2rem; color: var(--Blue); } h3 { font-size: 1.5rem; color: var(--Green); } h4 { font-size: 1.25rem; color: var(--Peach); } h5 { font-size: 1rem; color: var(--Yellow); } h6 { font-size: 0.9rem; color: var(--Rosewater); } p { margin-top: 0; margin-bottom: 1rem; color: var(--Text); font-size: 1rem; line-height: 1.5; } a { color: var(--Blue); } a:hover { color: var(--Sky); } strong { color: var(--Peach); } em { color: var(--Lavender); } ul, ol { color: var(--Text); } li { margin-bottom: 0.5rem; } blockquote { margin-left: 0; padding: 1rem; color: var(--Subtext1); background-color: var(--Mantle); border-left: 4px solid var(--Mauve); } code { padding: 0.2rem 0.4rem; color: var(--Green); background-color: var(--Mantle); } pre { padding: 1rem; overflow-x: auto; color: var(--Text); background-color: var(--Crust); border: 2px solid var(--Surface2); } pre code { padding: 0; background-color: transparent; } hr { border: 0; border-top: 2px solid var(--Surface2); } input, button, textarea, select { font-family: inherit; color: inherit; } .Navbar { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; gap: 0.5rem; padding: 0.5rem; position: sticky; top: 2rem; align-self: start; background-color: var(--Base); border: 4px solid var(--Mauve); } .NavbarLink { display: block; width: 4rem; height: 4rem; padding: 0; line-height: 0; text-decoration: none; overflow: hidden; background-color: var(--Mantle); border: 3px solid var(--Surface2); box-shadow: 3px 3px 0 var(--Crust); } .NavbarLink:hover { background-color: var(--Surface0); border-color: var(--Sky); transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--Crust); } .NavbarLink:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } .NavbarLink[aria-current="page"] { background-color: var(--Surface1); border-color: var(--Mauve); } .NavbarLink[aria-current="page"]:hover { background-color: var(--Surface2); border-color: var(--Lavender); } .NavbarIcon { display: block; width: 100%; height: 100%; object-fit: fill; image-rendering: auto; } .SubNavbar { grid-column: 3; grid-row: 1; display: flex; flex-direction: column; gap: 0.5rem; padding: 0.5rem; position: sticky; top: 2rem; align-self: start; background-color: var(--Base); border: 4px solid var(--Mauve); } .SubNavbarLink { display: block; padding: 0.65rem 0.8rem; color: var(--Text); background-color: var(--Mantle); text-decoration: none; white-space: nowrap; border: 3px solid var(--Surface2); box-shadow: 3px 3px 0 var(--Crust); } .SubNavbarLink:hover { color: var(--Sky); background-color: var(--Surface0); border-color: var(--Sky); transform: translate( 1px, 1px ); box-shadow: 2px 2px 0 var(--Crust); } .SubNavbarLink:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } .SubNavbarLink[aria-current] { color: var(--Green); background-color: var(--Surface1); border-color: var(--Green); } .GardenStatus { margin-bottom: 1.5rem; padding: 0.75rem 1rem; background-color: var(--Mantle); border: 3px solid var(--Surface2); } .GardenLayout { display: grid; grid-template-columns: minmax(0, 1fr) 12rem; gap: 1rem; align-items: start; } .GardenGrid { --GardenWidth: 3; display: grid; grid-template-columns: repeat( var(--GardenWidth), minmax(0, 1fr) ); gap: 0.5rem; padding: 0.75rem; background-color: var(--Mantle); border: 4px solid var(--Green); } .GardenPlot { position: relative; width: 100%; aspect-ratio: 1; padding: 0; overflow: hidden; cursor: pointer; background-color: var(--Surface0); border: 3px solid var(--Surface2); box-shadow: 3px 3px 0 var(--Crust); } .GardenPlot:hover { background-color: var(--Surface1); border-color: var(--Sky); transform: translate( 1px, 1px ); box-shadow: 2px 2px 0 var(--Crust); } .GardenPlot:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } .GardenPlotEmpty { background-color: var(--Mantle); } .GardenPlotEmpty:hover { background-color: var(--Surface0); } .GardenPlotMature { border-color: var(--Green); } .GardenPlotMature:hover { border-color: var(--Yellow); } .GardenPlant { display: block; width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; } .SeedPanel { padding: 0.75rem; background-color: var(--Mantle); border: 4px solid var(--Mauve); } .SeedPanel h2 { margin-bottom: 0.75rem; } .SeedList { display: flex; flex-direction: column; gap: 0.5rem; } .SeedButton { width: 100%; padding: 0.6rem; cursor: pointer; color: var(--Text); background-color: var(--Surface0); border: 3px solid var(--Surface2); box-shadow: 3px 3px 0 var(--Crust); } .SeedButton:hover { color: var(--Sky); background-color: var(--Surface1); border-color: var(--Sky); transform: translate( 1px, 1px ); box-shadow: 2px 2px 0 var(--Crust); } .SeedButton[aria-current="true"] { color: var(--Green); background-color: var(--Surface1); border-color: var(--Green); } .GardenToolHeading { margin-top: 1rem; margin-bottom: 0.5rem; color: var(--Peach); } .ToolList { display: flex; flex-direction: column; gap: 0.5rem; } .ToolButton { width: 100%; padding: 0.6rem; cursor: pointer; color: var(--Text); background-color: var(--Surface0); border: 3px solid var(--Surface2); border-radius: 0; box-shadow: 3px 3px 0 var(--Crust); appearance: none; } .ToolButton:hover { color: var(--Sky); background-color: var(--Surface1); border-color: var(--Sky); transform: translate( 1px, 1px ); box-shadow: 2px 2px 0 var(--Crust); } .ToolButtonShovel[aria-current="true"] { color: var(--Red); background-color: var(--Surface1); border-color: var(--Red); } .GardenPlotRemove:hover { border-color: var(--Red); } #GardenMessage { margin-top: 1rem; margin-bottom: 0; padding: 0.75rem; color: var(--Subtext1); background-color: var(--Mantle); border-left: 4px solid var(--Blue); } .GardenUser, .Leaderboard { margin-top: 1.5rem; padding: 1rem; background-color: var(--Mantle); border: 4px solid var(--Mauve); } .GardenUser h2, .Leaderboard h2 { margin-bottom: 1rem; } .GardenUser input, .GardenUser button { padding: 0.6rem; font-size: 1rem; color: var(--Text); background-color: var(--Surface0); border: 3px solid var(--Surface2); border-radius: 0; appearance: none; } .GardenUser input { min-width: 12rem; outline: none; } .GardenUser input:hover { background-color: var(--Surface1); border-color: var(--Overlay2); } .GardenUser input:focus { background-color: var(--Surface1); border-color: var(--Sky); } .GardenUser input::placeholder { color: var(--Overlay1); } .GardenUser button { cursor: pointer; box-shadow: 3px 3px 0 var(--Crust); } .GardenUser button:hover { color: var(--Sky); background-color: var(--Surface1); border-color: var(--Sky); transform: translate( 1px, 1px ); box-shadow: 2px 2px 0 var(--Crust); } .GardenUser button:active { color: var(--Green); background-color: var(--Surface2); border-color: var(--Green); transform: translate( 2px, 2px ); box-shadow: 1px 1px 0 var(--Crust); } .GardenUser button:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } #UsernameMessage { margin-top: 0.75rem; margin-bottom: 0; color: var(--Subtext1); } #UsernameForm { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; } #UsernameForm[hidden] { display: none; } #UsernameMessage { flex-basis: 100%; margin: 0; color: var(--Subtext1); } .LeaderboardTableContainer { width: 100%; overflow-x: auto; } .LeaderboardTable { width: 97%; margin: 0 auto; border-collapse: collapse; color: var(--Text); background-color: var(--Base); font-size: 1.2rem; border: 3px solid var(--Surface2); box-shadow: 3px 3px 0 var(--Crust); } .LeaderboardTable th { padding: 0.75rem; color: var(--Blue); background-color: var(--Surface0); text-align: left; border-bottom: 3px solid var(--Surface2); } .LeaderboardTable td { padding: 0.7rem 0.75rem; border-bottom: 2px solid var(--Surface0); } .LeaderboardTable tbody tr:last-child td { border-bottom: 0; } .LeaderboardRow:hover td { background-color: var(--Surface0); } .LeaderboardRankColumn, .LeaderboardRank { width: 4rem; text-align: center; } .LeaderboardUsername { width: auto; } .LeaderboardDewColumn, .LeaderboardDew { width: auto; } .LeaderboardDew { color: var(--Green); } .LeaderboardRank1 .LeaderboardRank, .LeaderboardRank1 .LeaderboardUsername { color: var(--Yellow); } .LeaderboardRank2 .LeaderboardRank, .LeaderboardRank2 .LeaderboardUsername { color: var(--Text); } .LeaderboardRank3 .LeaderboardRank, .LeaderboardRank3 .LeaderboardUsername { color: var(--Peach); } .LeaderboardSelf td:first-child { border-left: 4px solid var(--Mauve); } .LeaderboardEmpty { padding: 1rem; color: var(--Subtext1); text-align: center; } .LeaderboardTable th:last-child, .LeaderboardTable td:last-child { text-align: right; } .ProfileSection { margin-top: 1.5rem; padding: 1rem; background-color: var(--Mantle); border: 4px solid var(--Mauve); } .ProfileSection h2 { margin-bottom: 1rem; } .ProfileFormRow, .ProfileButtonRow { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; } .ProfileButtonRow { margin-top: 0.75rem; } .ProfileSection label { display: block; margin-bottom: 0.5rem; color: var(--Blue); } .ProfileSection input, .ProfileSection textarea, .ProfileSection button { font-family: inherit; font-size: 1rem; color: var(--Text); background-color: var(--Surface0); border: 3px solid var(--Surface2); border-radius: 0; appearance: none; } .ProfileSection input, .ProfileSection textarea { padding: 0.6rem; outline: none; } .ProfileSection input { min-width: 12rem; } .ProfileSection textarea { width: 100%; max-width: 24rem; resize: vertical; } .ProfileSection input::placeholder, .ProfileSection textarea::placeholder { color: var(--Overlay1); } .ProfileSection input:hover, .ProfileSection textarea:hover { background-color: var(--Surface1); border-color: var(--Overlay2); } .ProfileSection input:focus, .ProfileSection textarea:focus { background-color: var(--Surface1); border-color: var(--Sky); } .ProfileSection button { padding: 0.6rem 0.8rem; cursor: pointer; box-shadow: 3px 3px 0 var(--Crust); } .ProfileSection button:hover { color: var(--Sky); background-color: var(--Surface1); border-color: var(--Sky); transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--Crust); } .ProfileSection button:active { color: var(--Green); background-color: var(--Surface2); border-color: var(--Green); transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--Crust); } .ProfileSection button:focus-visible, .ProfileSection summary:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } .ProfileMessage { margin-top: 0.75rem; margin-bottom: 0; color: var(--Subtext1); } .ProfileStatistics { display: flex; flex-direction: column; gap: 0.75rem; } .ProfileStatistic { display: flex; justify-content: space-between; gap: 1rem; padding: 0.75rem; background-color: var(--Base); border: 3px solid var(--Surface2); } .ProfileStatisticName { color: var(--Subtext1); } .AccountKeySpoiler { margin-top: 1rem; background-color: var(--Base); border: 3px solid var(--Surface2); } .AccountKeySpoiler summary { padding: 0.75rem; cursor: pointer; color: var(--Text); background-color: var(--Surface0); } .AccountKeySpoiler summary:hover { color: var(--Sky); background-color: var(--Surface1); } .AccountKeyContent { padding: 1rem; border-top: 3px solid var(--Surface2); } #AccountKeyDisplay { display: block; margin-top: 0.75rem; margin-bottom: 0.75rem; padding: 0.75rem; overflow-x: auto; white-space: pre-wrap; word-break: break-all; color: var(--Green); background-color: var(--Crust); border: 3px solid var(--Surface2); } .SubNavbarPrefix { display: inline-block; min-width: 1rem; margin-right: 0.25rem; color: var(--Overlay2); } .SubNavbarLink:hover .SubNavbarPrefix { color: var(--Sky); } .SubNavbarLink[aria-current="location"] .SubNavbarPrefix, .SubNavbarLink[aria-current="page"] .SubNavbarPrefix { color: var(--Green); } @media (max-width: 700px) { body { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1rem; } .Navbar { grid-column: 1; grid-row: 1; flex-direction: row; width: 100%; top: 0; overflow-x: auto; z-index: 1; } .NavbarLink { flex: 0 0 3.5rem; width: 3.5rem; height: 3.5rem; } .SubNavbar { grid-column: 1; grid-row: 2; flex-direction: row; width: 100%; position: static; overflow-x: auto; } .SubNavbarLink { flex: 0 0 auto; } .MainContainer { grid-column: 1; grid-row: 3; } .GardenLayout { grid-template-columns: 1fr; } .SeedPanel { grid-row: 1; } .SeedList, .ToolList { flex-direction: row; flex-wrap: wrap; } .SeedButton, .ToolButton { width: auto; } .GardenGrid { grid-row: 2; } .LeaderboardRankColumn, .LeaderboardRank { width: 2.5rem; } .LeaderboardTable th, .LeaderboardTable td { padding: 0.6rem 0.4rem; } .LeaderboardUsername { overflow-wrap: anywhere; } .ProfileFormRow, .ProfileButtonRow { flex-direction: column; align-items: stretch; } .ProfileSection input, .ProfileSection textarea, .ProfileSection button { width: 100%; } .ProfileStatistic { flex-direction: column; align-items: flex-start; } } .SeedEmpty { margin: 0; color: var(--Subtext1); } .GardenPlantMissing { display: flex; width: 100%; height: 100%; padding: 0.35rem; align-items: center; justify-content: center; color: var(--Subtext1); font-size: 0.75rem; line-height: 1.1; text-align: center; } .ShopStatus { margin-bottom: 1.5rem; padding: 0.75rem 1rem; background-color: var(--Mantle); border: 3px solid var(--Surface2); } .ShopSection { margin-top: 1.5rem; } .ShopSeedList { display: grid; grid-template-columns: repeat( auto-fit, minmax(15rem, 1fr) ); gap: 1rem; } .ShopItem { display: flex; flex-direction: column; gap: 0.75rem; padding: 0.75rem; background-color: var(--Mantle); border: 4px solid var(--Mauve); box-shadow: 3px 3px 0 var(--Crust); } .ShopItemHeader { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; padding-bottom: 0.5rem; border-bottom: 3px solid var(--Surface2); } .ShopItemHeader h3 { margin: 0; } .ShopItemBody { display: grid; grid-template-columns: 5.75rem minmax(0, 1fr); gap: 0.75rem; align-items: start; } .ShopPlantVisual { display: flex; flex-direction: column; gap: 0.35rem; width: 5.75rem; align-items: center; margin-top: 0.25rem; } .ShopPlantImageFrame { display: flex; width: 5.75rem; height: 5.75rem; align-items: center; justify-content: center; overflow: hidden; background-color: var(--Base); border: 3px solid var(--Surface2); } .ShopPlantImage { display: block; width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; } .ShopItemNumber { width: 100%; color: var(--Overlay2); text-align: center; } .ShopPlantMissing { padding: 0.35rem; color: var(--Overlay1); font-size: 0.75rem; text-align: center; } .ShopItemDetails p:last-child { margin-bottom: 0; } .ShopStat { display: flex; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.4rem; } .ShopStatName { color: var(--Subtext1); } .ShopBuyButton { width: 100%; padding: 0.65rem 0.8rem; cursor: pointer; color: var(--Text); background-color: var(--Surface0); border: 3px solid var(--Surface2); border-radius: 0; box-shadow: 3px 3px 0 var(--Crust); appearance: none; } .ShopBuyButton:hover:not(:disabled) { color: var(--Green); background-color: var(--Surface1); border-color: var(--Green); transform: translate(1px, 1px); box-shadow: 2px 2px 0 var(--Crust); } .ShopBuyButton:active:not(:disabled) { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--Crust); } .ShopBuyButton:focus-visible { outline: 3px solid var(--Yellow); outline-offset: 3px; } .ShopBuyButton:disabled { cursor: not-allowed; color: var(--Overlay1); background-color: var(--Surface0); border-color: var(--Surface1); box-shadow: none; } .ShopEmpty { margin: 0; padding: 1rem; color: var(--Subtext1); background-color: var(--Mantle); border: 3px solid var(--Surface2); } #ShopMessage { margin-top: 1rem; margin-bottom: 0; padding: 0.75rem; color: var(--Subtext1); background-color: var(--Mantle); border-left: 4px solid var(--Blue); } @media (max-width: 700px) { .ShopSeedList { grid-template-columns: 1fr; } .ShopItemBody { grid-template-columns: 5.25rem minmax(0, 1fr); } .ShopPlantVisual { width: 5.25rem; } .ShopPlantImageFrame { width: 5.25rem; height: 5.25rem; } } #ProfileColourForm { margin-top: 1.5rem; } .ProfileColourInput { width: 4rem; min-width: 4rem !important; height: 2.75rem; padding: 0.2rem !important; cursor: pointer; appearance: auto !important; } .ProfileColourPreview { min-width: 8rem; color: var(--Text); }