/* Farm Valley v170: existing stylesheet order plus shared scene status. */

/* dist/style.css */
:root{color-scheme:dark;--bg:#201d31;--panel:#2d2940;--border:#484158;--ink:#faf3e5;--muted:#b6acc8;--lime:#c5ef8a;--purple:#a991e8;--gold:#ffd684;--shadow:#14121f;font-family:'Golos Text',system-ui,sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button{color:inherit}a{color:inherit;text-decoration:none}.app-shell{max-width:1560px;margin:auto;padding:0 48px}.topbar{height:108px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:12px;font-family:'Rubik',sans-serif;font-size:15px;font-weight:800;line-height:1.25;letter-spacing:1px}.brand-mark{font-size:51px;color:var(--lime);line-height:1}.demo-badge{font-size:10px;letter-spacing:1.4px;border:1px solid #5f526e;color:#baaacc;border-radius:5px;padding:7px 9px}.wallet{margin-left:auto;display:flex;gap:10px}.wallet>span{background:#2b273c;border:1px solid var(--border);padding:10px 16px;border-radius:8px;min-width:110px;display:grid;grid-template-columns:auto auto;column-gap:8px;font-size:18px}.wallet small{grid-column:2;color:var(--muted);font-size:12px}.page-heading{padding:32px 0 27px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:700;color:var(--muted)}h1{font-size:clamp(20px,2vw,28px);font-weight:600;letter-spacing:-.6px;margin:10px 0 0}h2{font-size:24px;line-height:1.25;font-weight:600;letter-spacing:-.3px;margin:14px 0}h3{font-size:16px;margin:0 0 8px}.season{white-space:nowrap;color:var(--gold);font-size:14px}.tabs{display:flex;gap:10px;margin-bottom:22px}.tabs button{display:flex;gap:10px;align-items:center;background:transparent;border:0;border-radius:7px;color:var(--muted);font-size:14px;padding:12px 18px;font-weight:600}.tabs button.active{background:var(--lime);color:#263626;box-shadow:0 3px 0 #779252}.tabs button:hover:not(.active){background:#353046}.tabs button>[id$="-count"]{background:#ffffff12;padding:2px 6px;border-radius:4px;font-size:12px}.farm-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.world-wrap{min-width:0}.world{height:490px;position:relative;border-radius:14px;border:4px solid #514867;box-shadow:0 5px 0 var(--shadow);overflow:hidden;background:#75a34d;background-size:cover;background-position:center;image-rendering:pixelated}.world-label{position:absolute;top:20px;left:20px;background:#201d31dd;border:1px solid #fff2;padding:12px 16px;border-radius:6px;display:flex;flex-direction:column;gap:5px;font-size:14px;backdrop-filter:blur(5px)}.world-label span{font-size:12px;color:#dacfea}.plots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:42%;position:absolute;top:45%;left:24%;transform:rotate(-2deg)}.plot{min-height:76px;border:3px solid #b79153;border-bottom:6px solid #614427;background:#75512de8;box-shadow:0 3px 0 #3e311b7a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#edd5a3;border-radius:4px;padding:4px;transform:rotate(2deg)}.plot>span{font-size:27px}.plot small{font-size:12px}.plot:hover{filter:brightness(1.2);transform:translateY(-3px) rotate(2deg)}.world-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:13px 20px;background:#253322d9;font-size:12px;color:#d5e8b8}.seed-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px 0}.seed-bar p{font-size:14px;color:#c6bdd3;margin:8px 0 0}.seeds{display:flex;gap:8px}.seed{border:1px solid #4e465f;border-radius:7px;background:#302b43;padding:10px 13px;font-size:14px;text-align:left}.seed small{display:block;padding-top:4px;color:var(--muted);font-size:12px}.seed.selected{border-color:var(--lime);background:#3c423c}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px}.gift-panel{background:linear-gradient(150deg,#443452,#2c293e);text-align:center}.gift-panel .eyebrow{color:#d8bbf0}.gift-panel h2{font-size:23px}.crate-icon{font-size:94px;line-height:1.7;filter:drop-shadow(0 10px 0 #17102050)}.gift-panel p{color:#cdc0db;font-size:14px;line-height:1.6;margin:0 0 22px}.button{border:1px solid var(--border);border-radius:7px;padding:12px 17px;font-weight:600;font-size:14px;background:#41394f;display:inline-flex;justify-content:center;align-items:center;gap:16px;min-height:44px}.button.primary{background:var(--lime);border:1px solid #d8ffb0;color:#273921;box-shadow:0 3px 0 #759550}.button:hover{filter:brightness(1.1)}.gift-panel .button{width:100%}.fine{display:block;font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}.tip{display:flex;gap:13px;margin-top:18px;padding:20px;background:transparent}.tip>span{color:var(--gold);font-size:24px}.tip p{color:var(--muted);font-size:14px;line-height:1.6;margin:0}footer{border-top:1px solid #3c354c;margin-top:15px;padding:21px 0 26px;display:flex;justify-content:space-between;gap:15px;color:#8f849f;font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--lime);color:#20341b;padding:14px 24px;border-radius:8px;box-shadow:0 6px 24px #0005;z-index:30;max-width:calc(100% - 32px);width:max-content;display:none}#toast.show{display:block}dialog{border:1px solid #66567f;background:var(--panel);color:var(--ink);border-radius:18px;max-width:calc(100% - 32px);width:460px;padding:30px;text-align:center}dialog::backdrop{background:#100d1dde;backdrop-filter:blur(8px)}@media(min-width:1440px){.world{height:530px}}@media(max-width:1100px){.app-shell{padding:0 24px}.demo-badge{display:none}.farm-layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.world{height:460px}.seed-bar{align-items:stretch;flex-direction:column}.seed{flex:1}.seeds{width:100%}.plots{width:53%;left:17%}.panel{padding:19px}}@media(max-width:760px){.app-shell{padding:0 16px}.topbar{height:auto;min-height:132px;padding:17px 0;flex-wrap:wrap;gap:14px}.brand{font-size:13px}.brand-mark{font-size:35px}.wallet{gap:6px;width:100%;margin:0}.wallet>span{min-width:0;flex:1;padding:7px 10px;font-size:16px}.wallet small{font-size:12px}.page-heading{padding:23px 0;align-items:start}.page-heading .eyebrow{font-size:10px}h1{font-size:21px;line-height:1.35}.season{font-size:12px}.tabs{gap:2px;justify-content:space-between}.tabs button{padding:10px 8px;font-size:12px;gap:5px}.tabs button>[id$="-count"]{display:none}.farm-layout{grid-template-columns:1fr}.world{height:440px}.plots{width:58%;left:15%;gap:6px;top:44%}.plot{min-height:68px}.world-label{top:12px;left:12px}.world-bottom{font-size:12px;padding:12px}aside{display:grid;grid-template-columns:1fr}.gift-panel .crate-icon{font-size:70px;line-height:1.4}.tip{margin-bottom:10px}footer{flex-direction:column;gap:8px}.season{display:none}.seed-bar .eyebrow{font-size:12px}}

.world{background-image:none}.world-label{top:17px;left:auto;right:17px;padding:10px 14px}.world-label span{display:none}.plots{top:40%;left:27%;width:39%;gap:8px;transform:none}.plot{min-height:73px;transform:none;border-color:#ac8547;background:#6a4926eb}.plot:hover{transform:translateY(-3px)}.plot.empty{background:#65502bba;border-style:dashed;border-bottom-style:solid}.plot.ripe{border-color:#e8c773;background:#94723b;box-shadow:0 0 0 2px #ffe58655,0 4px 0 #514626}.plot.ripe small{color:#fff2bc;font-weight:700}.plot-progress{width:75%;height:4px;background:#38291f;border-radius:2px;overflow:hidden}.plot-progress i{display:block;height:100%;background:#bcec84;transition:width .8s linear}.plot.growing>span{font-size:25px}.resident{position:absolute;left:7%;bottom:58px;background:#25203bdf;border:2px solid #aca078;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 10px 0 0;box-shadow:0 3px 0 #354b2e}.resident .animal-sprite{width:65px;height:65px;border-radius:6px}.resident>span{font-size:12px}.resident b{color:var(--lime);padding-left:6px}.animal-sprite{width:180px;height:180px;background-image:url('/assets/animal-atlas.png');background-size:200% 200%;image-rendering:pixelated;background-repeat:no-repeat;flex-shrink:0;background-color:#24203a}.sprite-0,.sprite-4{background-position:0 0}.sprite-1,.sprite-5{background-position:100% 0}.sprite-2,.sprite-6{background-position:0 100%}.sprite-3,.sprite-7{background-position:100% 100%}.sprite-4,.sprite-5,.sprite-6,.sprite-7{background-image:url('/assets/animal-atlas-2.png')}.farm-actions{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);background:#2a263b;border-radius:9px;padding:17px 19px;gap:15px}.farm-actions>div{display:flex;align-items:center;gap:15px}.farm-actions>div>span{font-size:31px}.farm-actions h3{margin-bottom:5px}.farm-actions p{font-size:14px;color:var(--muted);margin:0}.expansion{width:100%;margin-top:16px;padding:16px 20px;border:1px dashed #6f625f;background:#332d3d;border-radius:9px;text-align:left}.expansion>span{display:block;font-size:14px;font-weight:600;color:var(--gold)}.expansion small{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:28px 0}.section-heading h2{font-size:27px;margin:9px 0}.section-heading p{color:var(--muted);font-size:16px;line-height:1.6;margin:8px 0 0}.animal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.animal-card{background:#262139;border:1px solid #4d425c;border-radius:12px;padding:18px;overflow:hidden;position:relative}.animal-card-top{display:flex;justify-content:space-between;gap:6px;align-items:center}.rarity-label{color:var(--rarity);font-size:12px;font-weight:600}.yield{font-size:12px;color:var(--muted)}.animal-card .animal-sprite{width:100%;height:auto;aspect-ratio:1;margin:4px auto;border-radius:10px}.animal-info{display:flex;flex-direction:column;gap:4px;padding:2px 0 18px}.animal-info h3{font-size:22px;margin:0}.animal-info>span{font-size:14px;color:var(--muted)}.animal-card .button{width:100%}.rarity-uncommon{border-top:3px solid #9be3a1}.rarity-rare{border-top:3px solid #8ac8ff}.rarity-epic{border-top:3px solid #c9a3ff}.rarity-legendary{border-top:3px solid #ffdb87}.rarity-mythic{border-top:3px solid #ff9fcf}.quiet-note{font-size:14px;color:var(--muted);margin:24px 0;line-height:1.6}.cases-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.case-card{padding:18px;background:#2c263d;border:1px solid #624c73;border-radius:12px;text-align:center;overflow:hidden}.case-top{display:flex;justify-content:space-between;gap:5px;font-size:12px;letter-spacing:.3px;color:#d3b9e5}.case-top span:last-child{font-size:12px;color:#d7c38c}.case-card h3{font-size:19px}.case-card p{font-size:14px;line-height:1.5;color:var(--muted);min-height:43px}.case-card .button{width:100%;margin-top:6px}.odds-panel h2{font-size:24px}.odds-row{margin:24px 0}.odds-row>div:first-child{display:flex;justify-content:space-between;font-size:14px}.odds-track{margin-top:10px;height:5px;border-radius:5px;background:#171420;overflow:hidden}.odds-track i{height:100%;display:block;border-radius:5px;min-width:2px}.odds-panel p{font-size:14px;line-height:1.65;color:var(--muted)}.demo-note{padding-top:17px;margin-top:17px;border-top:1px solid var(--border);font-size:12px;line-height:1.7;color:#ad9ebd}.craft-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:23px 0}.craft-bar p{font-size:14px;color:var(--muted);margin:7px 0 0}.count-tag{font-size:14px;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:10px 14px;white-space:nowrap}.empty-state{padding:50px 25px;text-align:center;border:1px dashed var(--border);border-radius:12px;grid-column:1/-1}.empty-state>span{font-size:70px}.empty-state h3{font-size:22px;margin:15px 0}.empty-state p{font-size:16px;color:var(--muted);line-height:1.6}.storage-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 18px;border-bottom:1px solid var(--border)}.panel-title h3{margin:0;font-size:18px}.panel-title span{font-size:14px;color:var(--gold)}.inventory-row{display:flex;align-items:center;gap:16px;min-height:86px;border-bottom:1px solid #41394f;padding:14px 0}.inventory-row .item-icon{font-size:32px;width:40px;text-align:center}.inventory-row>div{flex:1}.inventory-row b{font-size:16px;display:block}.inventory-row small{font-size:12px;display:block;margin-top:7px;color:var(--muted)}.inventory-row strong{font-size:15px}.wide{width:100%;margin-top:20px}.resource-summary{display:flex;gap:15px;flex-wrap:wrap;padding-top:24px;font-size:14px;color:var(--muted)}.resource-summary b{color:var(--ink)}.dialog-close{position:absolute;top:10px;right:12px;background:none;border:0;font-size:28px;color:var(--muted);width:40px;height:40px}.opening .crate-sprite{width:270px;height:270px;margin:auto;animation:wobble .25s infinite alternate}.reward-animal{margin:22px auto 14px}.reward-animal .animal-sprite{width:220px;height:220px;margin:auto;border-radius:50%;box-shadow:0 0 60px color-mix(in srgb,var(--rarity) 23%,transparent)}.reward-animal .rarity-label{display:block;margin-top:18px;font-size:14px}.reward-text{color:var(--muted);font-size:16px;line-height:1.6}.demo-badge,.eyebrow{font-size:12px}.gift-panel p{font-size:16px}.page-heading .eyebrow{font-size:12px}.world-bottom{font-size:12px}.brand{font-size:14px}footer{margin-top:30px}.expanded{top:34%}.crate-sprite{background-image:url('/assets/crate-atlas.png');background-size:300% 200%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1;width:100%;margin:0 auto;background-position-y:50%;border-radius:8px}.crate-0{background-position-x:0}.crate-1{background-position-x:50%}.crate-2{background-position-x:100%}.gift-crate{height:180px;width:180px;margin:2px auto 10px}.case-tools{border-color:#51807f}.case-supplies{border-color:#777952}.craft-case{font-size:14px;background:none;border:0;width:100%;padding:17px 0 0;color:var(--muted)}.craft-case small{display:block;font-size:12px;margin-top:5px;color:var(--gold)}.case-guide{display:flex;gap:12px;color:var(--muted);font-size:14px;padding-top:12px;line-height:1.6}.case-guide>span{font-size:28px;color:var(--gold);padding-top:14px}.tool-reward{font-size:115px;line-height:1.6}.tools-panel{margin-top:24px}.tools-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding-top:20px}.tool-item{display:flex;align-items:center;gap:16px}.tool-item>span{font-size:40px}.tool-item b{display:block}.tool-item small{display:block;font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}details summary{font-size:14px;cursor:pointer;color:var(--gold);padding:10px 0}.nft-tag{font-size:12px;color:var(--gold);border:1px solid #9a865455;border-radius:4px;padding:3px 6px}.supply-nfts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.supply-card{background:#242033;border:1px solid var(--border);border-radius:8px;padding:18px}.supply-card .item-icon{font-size:35px}.supply-card h3{margin-top:10px}.supply-card .button{width:100%;margin-top:12px}.free-note{border-left:3px solid var(--lime);padding:9px 14px;background:#c5ef8a08;color:#c1d3b9;font-size:14px;line-height:1.6;margin:18px 0}.collection-summary{font-size:12px;color:var(--muted);line-height:1.6}@keyframes wobble{from{transform:rotate(-7deg) scale(.94)}to{transform:rotate(7deg) scale(1.04)}}@media(min-width:1440px){.world{height:560px}.plots{top:43%;width:38%}.expanded{top:36%}.plot{min-height:78px}}@media(max-width:1100px){.animal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plots{width:48%;left:23%;top:42%;gap:6px}.plot{min-height:65px}.expanded{top:34%}.world-label{display:none}.farm-actions{align-items:stretch;flex-direction:column}.farm-actions .button{width:100%}.animal-card-top{align-items:start;flex-direction:column}}@media(max-width:760px){.tabs button{font-size:14px;gap:4px;padding:10px 7px}.world{height:430px;background-position:center}.plots{width:56%;left:24%;top:37%;gap:6px}.plot{min-height:69px}.resident{left:5%;bottom:47px}.resident .animal-sprite{width:52px;height:52px}.world-bottom span:last-child{display:none}.section-heading{align-items:start;flex-direction:column}.section-heading h2{font-size:25px}.section-heading .button{width:100%}.animal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.animal-card{padding:12px}.animal-info h3{font-size:20px}.animal-info>span{font-size:14px}.animal-card .button{padding:10px 6px;font-size:14px}.cases-layout{grid-template-columns:1fr}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-card{padding:13px}.case-top{flex-direction:column;font-size:12px}.case-card h3{font-size:17px}.case-card p{font-size:14px}.case-card .button{font-size:14px;padding:10px 6px}.storage-layout{grid-template-columns:1fr}.craft-bar{align-items:start;flex-direction:column}.craft-bar .button{width:100%}.count-tag{display:none}.panel-title{align-items:start;flex-direction:column;gap:8px}.seed-bar .seeds{gap:5px}.seed{font-size:14px;padding:9px 8px}.seed small{font-size:12px}.expanded{top:30%}.inventory-row{gap:10px}.inventory-row b{font-size:14px}.inventory-row .button{padding:10px}.demo-badge{display:block;margin-left:auto;font-size:12px}.page-heading{padding-bottom:20px}.page-heading h1{font-size:21px}.tools-grid{grid-template-columns:1fr}.supply-nfts{grid-template-columns:repeat(2,1fr)}}@media(max-width:370px){.demo-badge{display:none}.plots{width:64%;left:20%}.seeds{flex-wrap:wrap}.seed{min-width:105px}.case-grid,.animal-grid,.supply-nfts{grid-template-columns:1fr}.tabs button{padding:10px 5px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
#language{background:#2c273e;border:1px solid var(--border);color:var(--ink);border-radius:6px;padding:8px;font-size:14px;max-width:108px}.market-tabs{display:flex;gap:12px;margin:22px 0}.market-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.market-card{background:#272239;border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px;text-align:center}.market-card .animal-sprite{width:100%;height:auto;aspect-ratio:1;border-radius:8px}.market-card h3{font-size:18px;margin:0}.market-card .button{width:100%;margin-top:auto}.market-icon{font-size:76px;line-height:2.1}.token-balance{border:1px solid #b29967;background:#423848;padding:14px 22px;border-radius:9px;font-size:24px;color:var(--gold);white-space:nowrap}.token-balance small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.demo-badge{display:none}.topbar{gap:20px}.wallet{margin-left:auto}.seed-bar{flex-wrap:wrap}.seed-bar>div:first-child{min-width:150px}.tabs{flex-wrap:wrap}.world .plot{min-width:0}.brand{white-space:nowrap}.free-note{margin-top:0}.market-card h3,.case-card h3,.animal-info h3{overflow-wrap:anywhere}.supply-card h3{line-height:1.4}html[lang=de] .animal-card .button{font-size:14px}html[lang=de] .animal-card-top{flex-wrap:wrap}html[lang=zh-CN]{font-family:'Golos Text','Microsoft YaHei',sans-serif}@media(max-width:1000px){.market-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.topbar{gap:12px}#language{margin-left:auto}.wallet{order:3;width:100%}.brand{font-size:13px}.tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;gap:3px;justify-content:start}.tabs button{white-space:nowrap;padding:10px 11px;flex-shrink:0}.market-grid{grid-template-columns:repeat(2,1fr);gap:12px}.market-card{padding:12px}.market-card h3{font-size:16px}.market-card .button{font-size:14px;padding:10px 6px}.token-balance{padding:12px 18px}.seed{min-width:100px}.plots{gap:5px;width:60%;left:21%}.plot small{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.plot .plot-progress{height:4px}.world-bottom{gap:6px}.world-bottom>span{font-size:12px}}
/* Illustrated resources and equipment */
.resource-icon{display:inline-block;width:1.7em;height:1.7em;background-image:var(--fv-resource-icons,none);background-size:400% 400%;background-repeat:no-repeat;image-rendering:pixelated;vertical-align:middle;flex-shrink:0;line-height:1;margin:-.18em .05em;pointer-events:none}.wallet .resource-icon{width:31px;height:31px;grid-row:1 / span 2;align-self:center;margin:0}.wallet>span{min-width:106px}.seed .resource-icon{width:28px;height:28px;margin-right:2px}.plot>span .resource-icon{width:38px;height:38px}.plot>span{line-height:1.2}.button .resource-icon{width:24px;height:24px;margin:-3px 0}.inventory-row .item-icon .resource-icon{width:42px;height:42px}.token-balance .resource-icon{width:34px;height:34px}.tool-art{width:118px;aspect-ratio:1;background-repeat:no-repeat;image-rendering:pixelated;border-radius:8px;flex-shrink:0;background-color:#24203a}.tool-atlas{background-image:url('/assets/tool-atlas.png');background-size:400% 200%}.rarity-art{background-size:300% 200%}.axe-art{background-image:url('/assets/axe-rarities.png')}.pickaxe-art{background-image:url('/assets/pickaxe-rarities.png')}.axe-art.rarity-art-3,.axe-art.rarity-art-4,.axe-art.rarity-art-5{aspect-ratio:512 / 559;background-size:300% 183.1842576%}.tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tool-item{background:#252033;border:1px solid #494057;border-radius:10px;align-items:center;padding:16px;gap:18px;min-width:0}.tool-item>div:last-child{min-width:0}.tool-name-line{display:flex;flex-direction:column;gap:7px}.tool-name-line b{font-size:19px}.tool-item .tool-description{font-size:14px;line-height:1.6;color:#c6bdd3;margin:12px 0}.tool-item small{font-size:12px;line-height:1.5}.tool-item .tool-effect{color:var(--lime);font-size:14px;font-weight:600}.market-card .tool-art{width:100%;max-width:210px;align-self:center;margin:auto}.market-tool-effect{font-size:14px;color:var(--lime);line-height:1.5;min-height:40px;margin:0}.reward-animal .tool-art{width:220px;margin:auto;box-shadow:0 0 45px color-mix(in srgb,var(--rarity) 18%,transparent)}.tiny-tool{width:36px;border-radius:4px}.sow-button{align-self:center;white-space:normal}.quarry-action{margin-top:12px}.gathering-help{margin:18px 0 0;background:#282638;border:1px solid var(--border);border-radius:9px;padding:18px;font-size:14px}.gathering-help p{font-size:14px;line-height:1.6;color:var(--muted);margin:10px 0 16px}.farm-actions>div>.resource-icon{font-size:24px;width:42px;height:42px}.farm-actions>div>span:has(.resource-icon){font-size:24px}.expansion small .resource-icon{width:21px;height:21px}.craft-case small{display:flex;justify-content:center;align-items:center;gap:3px;flex-wrap:wrap}.craft-case small .resource-icon{width:20px;height:20px}.inventory-row .button{flex-shrink:0}
/* Living animal yard */
.pasture-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start}.pasture-scene{position:relative;isolation:isolate;aspect-ratio:3 / 2;border:4px solid #514867;border-radius:14px;overflow:hidden;background:#344035;box-shadow:0 5px 0 #14121f;image-rendering:pixelated}.pasture-sign{position:absolute;top:18px;left:18px;background:#242038e8;padding:12px 16px;border:1px solid #857459;border-radius:7px;font-size:14px;display:flex;flex-direction:column;gap:5px;z-index:4}.pasture-sign span{font-size:12px;color:var(--gold)}.pasture-animal{position:absolute;left:var(--home-x);top:var(--home-y);width:100px;height:120px;background:none;border:0;padding:0;display:flex;align-items:center;flex-direction:column;z-index:2;cursor:pointer;transform-origin:center bottom}.pasture-sprite{width:96px;height:96px;background-color:transparent;border-radius:0;animation:animal-idle 4.5s ease-in-out infinite;animation-delay:var(--idle-delay)}.pasture-sprite.sprite-0,.pasture-sprite.sprite-1,.pasture-sprite.sprite-2,.pasture-sprite.sprite-3{filter:url('#pasture-chroma') drop-shadow(0 5px 1px #1b401946)}.pasture-sprite.sprite-4,.pasture-sprite.sprite-5,.pasture-sprite.sprite-6,.pasture-sprite.sprite-7{filter:drop-shadow(0 5px 1px #1b401946)}.animal-bubble{position:absolute;top:-17px;right:4px;min-width:29px;height:29px;display:flex;align-items:center;justify-content:center;font-size:14px;background:#fff7d9;border:2px solid #87643d;border-radius:6px;color:#4f422c;z-index:4;box-shadow:0 3px 0 #24432033}.animal-bubble .resource-icon{width:24px;height:24px;margin:0}.pasture-name{background:#263322cb;border:1px solid #d1e6a544;color:#fff5d8;font-size:12px;padding:4px 7px;border-radius:5px;max-width:130px;line-height:1.25;white-space:nowrap}.pasture-animal.selected .pasture-name{background:#c5ef8a;color:#233d1e;border-color:#e0ffbb;font-weight:700}.pasture-animal.selected .animal-bubble{border-color:#e1bd62}.pasture-animal.ready .animal-bubble{background:#d3efa1;border-color:#618639;animation:bubble-bob 1.6s ease-in-out infinite}.pasture-animal.eating{left:var(--feed-x);top:var(--feed-y);animation:walk-to-trough 1.2s ease-out both;z-index:3}.pasture-animal.eating .pasture-sprite{animation:animal-eating .6s ease-in-out infinite;animation-delay:1.2s;transform-origin:center 75%}.pasture-animal.eating .animal-bubble{background:#c5ef8a}.feed-particle{position:absolute;right:11px;top:45px;animation:feed-bite .7s ease-in-out 1.2s infinite;pointer-events:none}.feed-particle .resource-icon{width:20px;height:20px}.pasture-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;background:#24351de8;color:#e8f4cd;padding:11px 18px;font-size:12px;z-index:5}.pasture-bottom .resource-icon{width:25px;height:25px}.pasture-layout .focused-animal .animal-sprite{max-width:220px}.animal-status{font-size:14px;color:var(--lime);margin:0 0 15px}.pasture-layout .tip{padding:18px}.small-heading{margin-top:30px}.small-heading h2{font-size:23px}.pasture-layout .quiet-note{margin-bottom:0}.animal-card .button{gap:6px}.focused-animal .animal-info h3{font-size:24px}@keyframes animal-idle{0%,100%{transform:translate(0,0) rotate(-1deg)}30%{transform:translate(8px,-3px) rotate(1deg)}70%{transform:translate(-5px,1px) rotate(-1deg)}}@keyframes animal-eating{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(4px) rotate(5deg)}}@keyframes walk-to-trough{from{left:var(--home-x);top:var(--home-y)}to{left:var(--feed-x);top:var(--feed-y)}}@keyframes feed-bite{0%{opacity:0;transform:translate(8px,6px) scale(.7)}50%{opacity:1;transform:translate(0,-5px) scale(1)}100%{opacity:0;transform:translate(-10px,-12px) scale(.6)}}@keyframes bubble-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(max-width:1100px){.tools-grid{grid-template-columns:1fr}.tool-art{width:108px}.pasture-layout{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.pasture-scene{aspect-ratio:1.25}.pasture-animal{width:82px;height:102px}.pasture-sprite{width:80px;height:80px}.pasture-sign{top:12px;left:12px}.pasture-layout .focused-animal .animal-sprite{max-width:170px}.pasture-name{font-size:12px}.market-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.wallet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.wallet>span{min-width:0;padding:8px 6px;gap:3px}.wallet .resource-icon{width:25px;height:25px}.wallet small{font-size:12px}.tool-item{padding:12px;gap:12px;align-items:start}.tool-art{width:82px}.tool-name-line b{font-size:17px}.tool-description{font-size:14px}.tool-item small{font-size:12px}.tools-grid{gap:10px}.pasture-layout{grid-template-columns:1fr}.pasture-scene{aspect-ratio:1;min-height:360px}.pasture-animal{width:63px;height:80px}.pasture-sprite{width:62px;height:62px}.pasture-name{font-size:12px;max-width:90px;white-space:normal;padding:3px 5px}.animal-bubble{height:23px;min-width:23px;top:-13px;right:0}.animal-bubble .resource-icon{width:21px;height:21px}.pasture-sign{font-size:12px;max-width:155px;padding:9px 12px}.pasture-bottom{padding:9px 12px;font-size:12px}.pasture-layout>aside{display:grid;grid-template-columns:1fr}.focused-animal .animal-sprite{max-width:130px!important}.focused-animal{display:grid;grid-template-columns:110px 1fr;column-gap:18px}.focused-animal .animal-card-top{grid-column:1 / -1;flex-direction:row;margin-bottom:10px}.focused-animal .animal-sprite{grid-column:1;grid-row:2 / 5;align-self:center}.focused-animal .animal-info,.focused-animal .animal-status,.focused-animal .button{grid-column:2}.focused-animal .animal-info{padding-bottom:6px}.focused-animal .animal-status{font-size:12px;margin-bottom:10px}.focused-animal .button{font-size:14px}.market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.market-card .tool-art{max-width:150px}.resource-icon{width:1.6em;height:1.6em}.inventory-row .item-icon .resource-icon{width:34px;height:34px}.sow-button{width:100%}}
.resource-0{background-position:0.0% 0.0%;}
.resource-1{background-position:33.333333333333336% 0.0%;}
.resource-2{background-position:66.66666666666667% 0.0%;}
.resource-3{background-position:100.0% 0.0%;}
.resource-4{background-position:0.0% 33.333333333333336%;}
.resource-5{background-position:33.333333333333336% 33.333333333333336%;}
.resource-6{background-position:66.66666666666667% 33.333333333333336%;}
.resource-7{background-position:100.0% 33.333333333333336%;}
.resource-8{background-position:0.0% 66.66666666666667%;}
.resource-9{background-position:33.333333333333336% 66.66666666666667%;}
.resource-10{background-position:66.66666666666667% 66.66666666666667%;}
.resource-11{background-position:100.0% 66.66666666666667%;}
.resource-12{background-position:0.0% 100.0%;}
.resource-13{background-position:33.333333333333336% 100.0%;}
.resource-14{background-position:66.66666666666667% 100.0%;}
.resource-15{background-position:100.0% 100.0%;}
.tool-slot-0{background-position:0.0% 0%;}
.tool-slot-1{background-position:33.333333333333336% 0%;}
.tool-slot-2{background-position:66.66666666666667% 0%;}
.tool-slot-3{background-position:100.0% 0%;}
.tool-slot-4{background-position:0.0% 100%;}
.tool-slot-5{background-position:33.333333333333336% 100%;}
.tool-slot-6{background-position:66.66666666666667% 100%;}
.tool-slot-7{background-position:100.0% 100%;}
.rarity-art-0{background-position:0% 0%;}
.rarity-art-1{background-position:50% 0%;}
.rarity-art-2{background-position:100% 0%;}
.rarity-art-3{background-position:0% 100%;}
.rarity-art-4{background-position:50% 100%;}
.rarity-art-5{background-position:100% 100%;}
@media(prefers-reduced-motion:reduce){.pasture-animal,.pasture-sprite,.animal-bubble,.feed-particle{animation:none!important;transition:none!important}}.compare-tool{display:block;background:transparent;border:0;border-bottom:1px solid #c5ef8a66;color:var(--lime);padding:7px 0 4px;margin-top:8px;font-size:14px;cursor:pointer}dialog.rarity-dialog{width:900px;max-height:90vh;overflow:auto}.rarity-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:25px}.rarity-gallery article{background:#242033;border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:11px}.rarity-gallery .tool-art{width:100%;max-width:170px}.rarity-gallery strong{font-size:14px}.rarity-gallery span{font-size:14px;color:var(--muted);line-height:1.45}#tool-catalog{scroll-margin-top:18px}@media(max-width:650px){.rarity-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rarity-gallery article{padding:10px}.rarity-gallery .tool-art{max-width:125px}.rarity-gallery span{font-size:12px}dialog.rarity-dialog{padding:25px 16px}}.axe-art.rarity-art-0,.axe-art.rarity-art-1,.axe-art.rarity-art-2{aspect-ratio:512 / 465;background-size:300% 220.2150538%;background-position-y:0}.tabs .resource-icon{width:19px;height:19px;margin:0}.token-balance .resource-icon{width:30px;height:30px}.market-card .button .resource-icon{width:21px;height:21px}.rarity-gallery article{overflow:hidden}
/* Full marketplace catalogue */
.market-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:20px}.market-filters label{display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--muted);min-width:0}.market-filters select{width:100%;min-width:0;padding:12px 10px;border:1px solid var(--border);border-radius:8px;background:#211c31;color:var(--ink);font:inherit}.market-filters select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.market-result-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:4px 0 16px;color:var(--muted);font-size:14px}.market-result-line .compare-tool{margin:0}.market-price-guide{padding:15px 20px;margin:0 0 22px}.market-price-guide summary{cursor:pointer;color:var(--lime);font-size:15px;font-weight:600}.market-price-guide table{width:100%;border-collapse:collapse;margin:15px 0;font-size:14px;table-layout:fixed}.market-price-guide th,.market-price-guide td{text-align:left;padding:12px 6px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.market-price-guide thead th{font-weight:500;color:var(--muted)}.market-price-guide td{white-space:nowrap}.market-card{border-top:3px solid var(--rarity);gap:12px}.market-card-heading{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:39px}.market-card-heading small{color:var(--muted);font-size:13px}.market-card>.animal-sprite{width:144px;max-width:100%;margin:0 auto}.market-card>.tool-art{width:144px;max-width:100%;margin:0 auto}.market-card>.market-icon{font-size:64px;line-height:144px;height:144px;display:grid;place-items:center}.market-card>.market-icon .resource-icon{width:112px;height:112px;margin:0}.market-card h3{line-height:1.4}.market-card .market-tool-effect{margin:0;min-height:40px;line-height:1.5}.market-quote{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);display:grid;gap:9px}.market-quote>span{display:flex;justify-content:space-between;gap:8px;text-align:left;color:var(--muted);font-size:13px;align-items:center}.market-quote b{color:var(--ink);font-size:14px;white-space:nowrap}.market-quote .resource-icon{width:20px;height:20px}.market-card .button{margin-top:0}.sale-total{font-size:24px;color:var(--lime)}.market-grid>.empty-state{grid-column:1/-1;padding:30px;text-align:center}@media(max-width:1000px){.market-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.market-filters{gap:14px;padding:15px}.market-quote>span{flex-direction:column;gap:3px;align-items:center;text-align:center}.market-price-guide{padding:15px 10px}.market-price-guide th,.market-price-guide td{padding:10px 3px;font-size:12px}.market-price-guide td .resource-icon{width:16px;height:16px}.market-card .market-tool-effect{font-size:13px}.market-result-line{align-items:center}.market-result-line .compare-tool{font-size:13px}.market-tabs{gap:8px}}

.market-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.market-rule{display:grid;grid-template-columns:1.5fr 1fr;gap:25px;margin:0 0 22px;padding:22px}.market-rule h3{margin:10px 0;font-size:19px}.market-rule p{font-size:14px;color:var(--muted);line-height:1.6;margin:0}.market-common-prices{display:grid;gap:13px;align-content:center}.market-common-prices>span{display:flex;justify-content:space-between;gap:12px;font-size:14px}.market-common-prices b{white-space:nowrap;color:var(--gold)}.market-common-prices small{font-size:13px;line-height:1.5;color:var(--muted)}a.button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:12px}a.compare-tool{text-decoration:none;width:fit-content}.gift-demo-link{background:none;border:0;color:var(--muted);font-size:14px;padding:12px;cursor:pointer}.mint-case-link{background:#343a2d;border:1px solid #90aa6570;color:var(--lime)}.case-top{gap:8px}.case-top span:last-child{font-size:11px;color:var(--gold)}.case-card .fine{line-height:1.5}.pack-contents{text-align:left;border-top:1px solid var(--border);padding-top:16px;margin-top:17px}.pack-contents h4{font-size:15px;margin:0 0 13px}.pack-contents ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.pack-contents li{display:flex;align-items:center;gap:11px;font-size:14px;line-height:1.35;min-height:38px}.pack-contents li>.animal-sprite,.pack-contents li>.tool-art{width:38px;height:38px;flex:none;border-radius:5px}.pack-contents li>.resource-icon{width:38px;height:38px;margin:0}.pack-contents li span{min-width:0}.mint-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:25px}.mint-art-panel{display:flex;flex-direction:column;align-items:center;padding:30px}.mint-art-panel>.crate-sprite{width:100%;max-width:320px}.edition-seal{font-size:14px;color:var(--gold);letter-spacing:1px;margin:10px 0}.mint-art-panel .pack-contents{width:100%;max-width:440px}.mint-art-panel .pack-contents ul{grid-template-columns:repeat(2,minmax(0,1fr))}.mint-info{padding:32px;align-self:start}.mint-info h2{font-size:28px;line-height:1.3;margin:20px 0 12px}.mint-info p{color:var(--muted);line-height:1.65;font-size:15px}.mint-status{font-size:13px;letter-spacing:1px;border:1px solid #b6a27566;border-radius:20px;padding:7px 12px;color:var(--gold)}.mint-facts{margin:25px 0;display:grid;gap:16px}.mint-facts>div{display:flex;flex-direction:column;gap:7px;border-bottom:1px solid var(--border);padding-bottom:13px}.mint-facts span{font-size:13px;color:var(--muted)}.mint-facts b{font-size:16px}.mint-pack-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:24px 0}.mint-info .button{margin-top:15px}.gift-panel .button{width:100%}.case-card>.button{min-height:45px}@media(max-width:760px){.market-filters{grid-template-columns:1fr 1fr}.market-filters label:last-child{grid-column:1/-1}.market-rule,.mint-layout{grid-template-columns:1fr}.market-rule{gap:18px;padding:18px}.mint-info,.mint-art-panel{padding:22px}.mint-art-panel>.crate-sprite{max-width:230px}.mint-pack-links .button{width:100%}.mint-art-panel .pack-contents ul{grid-template-columns:1fr 1fr}}

.item-life{display:block;font-size:13px;line-height:1.5;color:var(--gold);padding:7px 9px;border:1px solid #b6a27544;border-radius:6px}.item-life b{white-space:nowrap}.tool-item .item-life{margin-top:7px;width:fit-content}.market-rule p+p{margin-top:13px}.material-shop{margin:24px 0;padding:24px}.material-row{display:flex;align-items:center;gap:15px;padding:18px 0;border-top:1px solid var(--border)}.material-row>.resource-icon{width:40px;height:40px;margin:0}.material-row>div{display:grid;gap:6px;flex:1}.material-row small{font-size:13px;color:var(--muted)}.material-row label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.material-row input{background:#211c31;border:1px solid var(--border);border-radius:6px;color:var(--ink);font:inherit;font-size:16px;width:95px;padding:9px}.material-row .button{align-self:end}.focused-animal .item-life{margin-bottom:5px}@media(max-width:650px){.material-row{display:grid;grid-template-columns:40px minmax(0,1fr)}.material-row label{grid-column:1;min-width:95px}.material-row .button{grid-column:2;justify-self:end;max-width:100%}.material-row label{font-size:12px}.material-row .button{font-size:13px;padding:12px}.material-shop{padding:18px}.market-card .item-life{font-size:12px}}

.market-rule{display:block;padding:17px 20px}.market-rule>summary{font-size:15px;color:var(--lime);cursor:pointer}.market-rule-content{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:20px}@media(max-width:760px){.market-rule-content{grid-template-columns:1fr}}

.life-label{display:flex;justify-content:space-between;align-items:center;gap:8px}.life-track{display:block;height:7px;background:#171526;border-radius:6px;overflow:hidden;margin-top:8px}.life-track i{height:100%;display:block;background:#a7d978;border-radius:6px}.life-track.low i{background:#eac967}.life-track.critical i{background:#ee8a81}.durability-meter{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.supply-card>.resource-icon{width:76px;height:76px;margin:5px auto 14px}.supply-amount{font-size:27px;color:var(--lime)}.supply-odds{margin:18px 0;color:var(--muted);font-size:14px;line-height:1.6}.supply-odds summary{cursor:pointer;color:var(--ink)}.supply-odds-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border)}

.product-icon{display:inline-block;width:1.7em;height:1.7em;background-image:var(--fv-product-icons,none);background-repeat:no-repeat;background-size:400% 200%;image-rendering:pixelated;vertical-align:middle;flex-shrink:0;pointer-events:none}.inventory-row .product-icon{width:45px;height:45px}.animal-info .product-icon{width:26px;height:26px}.animal-bubble .product-icon{width:25px;height:25px}.market-tool-effect .product-icon{width:25px;height:25px}.pack-item-button{display:flex;align-items:center;gap:9px;text-align:left;background:#201c3066;color:var(--ink);width:100%;border:1px solid transparent;border-radius:6px;padding:6px;cursor:pointer;font:inherit;font-size:13px}.pack-item-button:hover,.pack-item-button:focus-visible{border-color:#b4cd88;background:#393345;outline:none}.pack-item-button>.animal-sprite,.pack-item-button>.tool-art,.pack-item-button>.resource-icon{width:34px;height:34px;flex:none;border-radius:4px;margin:0}.pack-item-button>span:not(.resource-icon){flex:1;min-width:0}.pack-item-button>b{font-size:12px;color:var(--gold);white-space:nowrap}.pack-contents li{display:block}.quantity-art{display:flex;flex-direction:column;align-items:center;gap:14px}.quantity-art .resource-icon{width:80px;height:80px;margin:0}.quantity-art b{font-size:25px;color:var(--lime)}.rarity-gallery .drop-probability{font-size:20px;color:var(--lime)}.rarity-gallery .animal-sprite{width:100%;max-width:170px;aspect-ratio:1;flex-shrink:0}.rarity-gallery article{justify-content:start}.rarity-gallery .fine{font-size:13px}.mint-art-panel .pack-contents ul{grid-template-columns:1fr}
.product-0{background-position:0.00000000% 0%}
.product-1{background-position:33.33333333% 0%}
.product-2{background-position:66.66666667% 0%}
.product-3{background-position:100.00000000% 0%}
.product-4{background-position:0.00000000% 100%}
.product-5{background-position:33.33333333% 100%}
.product-6{background-position:66.66666667% 100%}
.product-7{background-position:100.00000000% 100%}

.animal-sprite.nft-animal{background:none!important;aspect-ratio:1;overflow:hidden;image-rendering:pixelated}.pasture-sprite.nft-animal{filter:drop-shadow(0 5px 1px #1b401946)}.rarity-gallery .nft-animal{height:170px}.animal-card .nft-animal{height:auto;aspect-ratio:1}.pasture-sprite.nft-animal{height:96px}.animal-card .compare-tool{margin:0 auto 12px}.focused-animal .item-life{min-width:0}.market-card>.nft-animal{height:144px}@media(max-width:1100px){.pasture-sprite.nft-animal{height:80px}}@media(max-width:760px){.pasture-sprite.nft-animal{height:62px}.focused-animal .item-life,.focused-animal .compare-tool{grid-column:2}.rarity-gallery .nft-animal{height:125px}.market-card>.nft-animal{height:auto}.life-label{flex-wrap:wrap;gap:4px}}

.nav-icon{display:inline-block;width:34px;height:34px;background-image:url('/assets/nav-icons.png');background-size:300% 200%;background-repeat:no-repeat;image-rendering:pixelated;flex:none}.nav-farm{background-position:0 0}.nav-animals{background-position:50% 0}.nav-cases{background-position:100% 0}.nav-storage{background-position:0 100%}.nav-market{background-position:50% 100%}.tabs button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px}.tabs button.active .nav-icon{filter:drop-shadow(0 2px 2px #426b2c55)}.area-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 12px}.area-tabs{display:flex;gap:10px;flex-wrap:wrap}.area-tabs .button{display:flex;align-items:center;gap:12px}.area-tabs small{opacity:.75;white-space:nowrap}.build-area{display:flex;flex-direction:column;gap:7px}.build-area small{font-size:12px}.build-area .resource-icon{width:18px;height:18px}.area-limit{font-size:13px;color:var(--muted);margin-bottom:22px}.animal-placement{display:flex;flex-direction:column;gap:6px;margin-top:12px;font-size:13px;color:var(--muted)}.animal-placement select{font:inherit;background:#211c31;color:var(--ink);border:1px solid var(--border);border-radius:6px;padding:8px;max-width:100%}.animal-body{display:block;width:96px;height:96px}.pasture-animal.eating{z-index:4;animation:walk-to-trough 1.4s ease-in-out both}.pasture-animal.eating .pasture-sprite{animation:eating-face .85s ease-in-out infinite;animation-delay:1.4s;transform-origin:65% 72%}.pasture-animal .feed-particle{left:10px;right:auto;top:42px}.pasture-animal.drinking{left:var(--drink-x);top:var(--drink-y);animation:walk-to-water 1.8s ease-in-out both;z-index:4}.pasture-animal.drinking .animal-body{transform:scaleX(-1)}.pasture-animal.drinking .pasture-sprite{animation:drinking-face .9s ease-in-out 1.8s infinite;transform-origin:65% 72%}.water-ripple{position:absolute;right:-8px;top:53px;width:26px;height:9px;border:2px solid #b9f3ff;border-radius:50%;animation:water-ripple 1.1s ease-out 1.8s infinite;opacity:0;pointer-events:none}.pasture-animal.drinking .animal-bubble{background:#caefff}.pasture-animal.eating .pasture-name,.pasture-animal.drinking .pasture-name{opacity:.6}@keyframes eating-face{0%,100%{transform:translateY(0) rotate(-13deg)}50%{transform:translate(-3px,5px) rotate(-23deg)}}@keyframes drinking-face{0%,100%{transform:translate(0,0) rotate(-16deg)}50%{transform:translate(-3px,4px) rotate(-25deg)}}@keyframes walk-to-water{0%{left:var(--feed-x);top:var(--feed-y)}100%{left:var(--drink-x);top:var(--drink-y)}}@keyframes water-ripple{0%{opacity:0;transform:scale(.4)}30%{opacity:.8}100%{opacity:0;transform:scale(1.25)}}@media(max-width:1100px){.animal-body{width:80px;height:80px}}@media(max-width:760px){.nav-icon{width:29px;height:29px}.tabs button{gap:5px;padding:9px 10px}.area-controls{align-items:stretch;flex-direction:column;gap:12px}.area-tabs .button{font-size:13px;padding:10px;gap:6px}.build-area{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center}.animal-body{width:62px;height:62px}.focused-animal .animal-placement{grid-column:1/-1}.water-ripple{top:34px;right:-4px;width:18px;height:6px}.pasture-animal .feed-particle{left:5px;top:27px}.pasture-animal.eating{top:calc(var(--feed-y) + 3%)}.area-limit{line-height:1.5}}@media(prefers-reduced-motion:reduce){.water-ripple,.animal-body,.pasture-animal.drinking{animation:none!important;transition:none!important}}

.pasture-animal.returning{animation:walk-home 2.5s ease-in-out both}@keyframes walk-home{from{left:var(--drink-x);top:var(--drink-y)}to{left:var(--home-x);top:var(--home-y)}}@media(prefers-reduced-motion:reduce){.pasture-animal.returning{animation:none!important}}

/* Coordinates target each animal's mouth; all source sprites face left. */
.pasture-scene{aspect-ratio:3/2;min-height:0;background-size:100% 100%;--animal-size:96px}
.pasture-animal{--feed-x:calc(var(--feed-target-x) - var(--mouth-x)*var(--animal-size));--feed-y:calc(var(--feed-target-y) - var(--mouth-y)*var(--animal-size));--drink-x:calc(92% - (1 - var(--mouth-x))*var(--animal-size));--drink-y:calc(var(--water-target-y) - var(--mouth-y)*var(--animal-size));width:var(--animal-size);height:calc(var(--animal-size) + 24px)}
.pasture-animal .animal-body,.pasture-animal .pasture-sprite.nft-animal{width:var(--animal-size);height:var(--animal-size);flex:none}
.pasture-animal.eating{top:var(--feed-y);animation:walk-to-trough 1.25s ease-in-out both;animation-delay:calc(0ms - var(--phase-elapsed,0ms))}
.pasture-animal.eating .pasture-sprite{transform-origin:var(--mouth-origin);animation:mouth-nibble .7s ease-in-out infinite;animation-delay:calc(1.25s - var(--phase-elapsed,0ms))}
.pasture-animal.drinking{animation:walk-to-water 1.5s ease-in-out both;animation-delay:calc(0ms - var(--phase-elapsed,0ms))}
.pasture-animal.drinking .pasture-sprite{transform-origin:var(--mouth-origin);animation:mouth-sip 1.05s ease-in-out infinite;animation-delay:calc(1.5s - var(--phase-elapsed,0ms))}
.pasture-animal.returning{animation:walk-home 2.4s ease-in-out both;animation-delay:calc(0ms - var(--phase-elapsed,0ms))}
.pasture-animal .feed-particle{left:calc(var(--mouth-x)*var(--animal-size) - 8px);top:calc(var(--mouth-y)*var(--animal-size));animation-delay:calc(1.25s - var(--phase-elapsed,0ms))}
.pasture-animal .water-ripple{left:calc((1 - var(--mouth-x))*var(--animal-size) - 10px);right:auto;top:calc(var(--mouth-y)*var(--animal-size) + 2px);width:22px;height:7px;animation-delay:calc(1.5s - var(--phase-elapsed,0ms))}
.pasture-animal.eating .pasture-name,.pasture-animal.drinking .pasture-name{opacity:.8}
@keyframes mouth-nibble{0%,100%{transform:rotate(-2deg) translateY(0)}35%{transform:rotate(-7deg) translateY(2px)}65%{transform:rotate(-3deg) translateY(1px)}}
@keyframes mouth-sip{0%,100%{transform:rotate(-3deg) translateY(-1px)}45%,65%{transform:rotate(-8deg) translateY(3px)}}
.supply-art{width:144px;height:128px;image-rendering:pixelated;flex:none;display:block;margin:6px auto 10px;overflow:hidden}
.quantity-art .supply-art{width:160px;max-width:100%;height:130px}.supply-card>.supply-art{width:140px;height:125px}.market-card>.supply-art{width:144px;height:144px}
.worker-icon{display:inline-block;width:39px;height:39px;background-image:url('/assets/worker-icons.png');background-size:200% 100%;background-repeat:no-repeat;image-rendering:pixelated;flex:none}.worker-wood{background-position:0 0}.worker-stone{background-position:100% 0}.farm-actions>.button{display:flex;gap:7px;align-items:center;min-width:185px;justify-content:center;padding:8px 13px}
@media(max-width:1100px){.pasture-scene{--animal-size:80px}}
@media(max-width:760px){.pasture-scene{--animal-size:56px}.pasture-sign{top:8px;left:8px;padding:6px 9px}.pasture-name{font-size:9px;padding:2px 4px}.animal-bubble{transform:scale(.78);transform-origin:bottom right}.pasture-bottom{font-size:10px}.worker-icon{width:32px;height:32px}.farm-actions>.button{min-width:145px}.quantity-art .supply-art{height:105px}}
@media(prefers-reduced-motion:reduce){.pasture-animal.eating,.pasture-animal.drinking,.pasture-animal.returning,.pasture-animal .pasture-sprite{animation:none!important}}

.tier-tool-art{display:block;background:none!important;aspect-ratio:1;image-rendering:pixelated;overflow:hidden}.market-card>.tier-tool-art{height:144px}.rarity-gallery .tier-tool-art{height:160px}.tool-item>.tier-tool-art{width:88px;height:100px;flex:none}.sow-button{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px}.sow-button small{width:100%;font-size:11px;opacity:.8}.price-breakdown{text-align:left;font-size:12px;line-height:1.55;color:var(--muted)}.price-breakdown summary{color:var(--lime);cursor:pointer}.price-breakdown p{margin:8px 0}.price-breakdown small{font-size:11px}.reward-dialog>.supply-art,dialog>.supply-art{width:180px;height:160px}

.brand-logo{width:60px;height:60px;object-fit:contain;image-rendering:pixelated;flex:none}.brand{gap:10px}@media(max-width:760px){.brand-logo{width:45px;height:45px}}

.boards-icon{background-image:url('/assets/sawmill-icons.png');background-size:200% 100%;background-position:0 0}.worker-mill{background-image:url('/assets/sawmill-icons.png');background-position:100% 0}.sawmill-action small{display:block;margin-top:6px;color:var(--muted);font-size:12px}.forage-button{display:inline-flex;align-items:center;gap:7px;margin-top:12px}.gathering-help>small{display:block;line-height:1.5;margin-top:10px;color:var(--muted)}

#sawmill{scroll-margin:20px}.wallet>span{min-width:96px;padding:9px 12px}@media(max-width:760px){.wallet{grid-template-columns:repeat(3,minmax(0,1fr))}.wallet>span{min-width:0;padding:7px 9px}.wallet>span:first-child{grid-column:span 2}.material-shop .panel-title{align-items:center;gap:10px}.material-shop .panel-title .button{font-size:12px;padding:8px}}

.supply-nfts{grid-template-columns:repeat(3,minmax(0,1fr))}.supply-card{min-width:0}.supply-card>.supply-art{max-width:100%}@media(max-width:900px){.supply-nfts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.supply-nfts{grid-template-columns:minmax(0,1fr)}}

/* Layout audit: grouped actions, tablet header, compact markets and keyboard access. */
.action-group{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px}
.action-group>.button{margin:0;max-width:100%;min-height:46px}
.gathering-actions{margin-top:16px}
.gathering-actions .forage-button{margin-top:0}
.dialog-actions{justify-content:center;margin-top:22px}
.button{line-height:1.4;text-align:center}
input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.market-card>.supply-art{max-width:100%}
.market-card .button{gap:7px;flex-wrap:wrap}
.panel-title>*{min-width:0}
.material-shop .panel-title{align-items:flex-start}
.market-tabs{flex-wrap:wrap}
#sawmill,#tool-catalog,#resource-workers{scroll-margin-top:24px}
@media(min-width:601px) and (max-width:1000px){
 .topbar{height:auto;min-height:0;flex-wrap:wrap;padding:18px 0;gap:16px}
 .wallet{display:grid;width:100%;grid-template-columns:repeat(5,minmax(0,1fr));margin-left:0}
 .wallet>span{min-width:0;padding:8px}
}
@media(max-width:600px){
 .gathering-actions>.button{flex:1 1 180px}
 .dialog-actions>.button{flex:1 1 180px}
}
@media(max-width:380px){
 .market-grid{grid-template-columns:minmax(0,1fr)}
 .market-card .animal-sprite,.market-card>.supply-art,.market-card .tool-art{max-width:100%}
 .wallet{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
 .seed-bar .seeds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .seed{min-width:0;width:100%;padding:10px 5px}
 .seed .resource-icon{display:block;margin:0 auto 6px}
}

/* Full balances remain readable even near the supported save limits. */
.wallet{min-width:0}
.wallet>span{grid-template-columns:31px minmax(0,1fr)}
.wallet b{min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.token-balance{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){.wallet>span{grid-template-columns:25px minmax(0,1fr)}}

/* Dialogs keep controls in a fixed header; only the inset content scrolls. */
dialog,dialog.rarity-dialog{padding:0;max-height:90vh;max-height:90dvh;overflow:hidden}
dialog[open]{display:flex;flex-direction:column}
.dialog-header{position:relative;flex:0 0 auto;min-height:64px;padding:8px 64px}
.dialog-header.has-title{padding:24px 64px 18px;border-bottom:1px solid var(--border)}
.dialog-header h2{margin:8px 0 0;line-height:1.25}
.dialog-header .reward-text{margin:12px 0 0;font-size:14px;line-height:1.5}
.dialog-header .dialog-close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;padding:0;border:1px solid #ffffff1f;border-radius:9px;background:#211c3199;color:var(--ink);font-size:25px;line-height:1}
.dialog-header .dialog-close:hover{background:#51445f;border-color:var(--muted)}
.dialog-body{min-height:0;flex:1 1 auto;padding:24px 20px;margin:0 10px 12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8c7c9d #211c3144}
.dialog-body::-webkit-scrollbar{width:10px}
.dialog-body::-webkit-scrollbar-track{background:#211c3144;border-radius:8px}
.dialog-body::-webkit-scrollbar-thumb{background:#8c7c9d;border:2px solid var(--panel);border-radius:8px}
.dialog-body::-webkit-scrollbar-thumb:hover{background:#b1a1c2}
.dialog-body .rarity-gallery{margin-top:0}
.rarity-gallery .animal-sprite,.rarity-gallery .tool-art,.rarity-gallery .supply-art{max-width:100%}
@media(max-width:600px){
 .dialog-header.has-title{padding:22px 54px 16px}
 .dialog-header h2{font-size:21px}
 .dialog-header .reward-text{font-size:13px}
 .dialog-header .dialog-close{right:9px;top:9px}
 .dialog-body{padding:16px 8px;margin:0 8px 8px}
}

/* Keep the current resale quote and the full-durability reference together. */
.resale-wear{display:grid;gap:6px;min-width:0;padding-top:9px;border-top:1px dashed var(--border);text-align:left}.resale-reference{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;color:var(--muted);font-size:12px;line-height:1.45}.resale-reference b{white-space:nowrap;font-size:13px;color:var(--muted)}.resale-wear small{font-size:11px;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}.market-quote .resale-current{align-items:baseline}.market-quote .resale-current b{color:var(--gold)}.resale-formula{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.resale-formula>b{color:var(--ink)}.resale-equation{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.dialog-body>.resale-wear{max-width:400px;width:100%;margin:0 auto 14px}.dialog-body>.item-life{max-width:400px;margin:0 auto 14px}.dialog-body>.resale-wear .resource-icon{width:20px;height:20px}.dialog-body>.resale-wear .resale-reference{font-size:14px}.dialog-body>.resale-wear small{font-size:13px}@media(max-width:540px){.resale-reference{flex-wrap:wrap}.market-quote .resale-current{align-items:center}.resale-wear small{text-align:center}}

/* First-edition supply is a plan, separate from the demo pack counter. */
.edition-preview{display:flex;flex-direction:column;gap:6px;padding:12px 10px;margin:10px 0;border:1px solid var(--border);border-radius:8px;background:#242033}.edition-preview>span,.edition-preview small{color:var(--muted);font-size:12px;line-height:1.5}.edition-preview strong{font-size:20px;color:var(--ink)}.edition-preview strong span{font-size:14px;font-weight:500}.rarity-gallery .edition-count{padding-top:8px;border-top:1px solid var(--border);width:100%;font-size:12px}.odds-panel h2{overflow-wrap:anywhere}

/* Seed inventory uses the marked sacks; crops on the plots keep crop artwork. */
.supply-art.seed-icon{display:inline-block;width:32px;height:32px;max-width:none;margin:-5px 3px -5px 0;vertical-align:middle;pointer-events:none}
.pack-item-button>.seed-icon{width:34px;height:34px;flex:none;margin:0}
.inventory-row .item-icon>.seed-icon{width:44px;height:44px;margin:0}
.button>.seed-icon{width:28px;height:28px;margin:-3px 0}


/* Rare animal light follows the transparent sprite silhouette, never the card box. */
/* Static light respects reduced motion and leaves feeding/drinking transforms intact. */
.nft-animal.animal-rarity-legendary{
  --animal-rarity-light:drop-shadow(0 0 2px #ffe4a080) drop-shadow(0 0 7px #ffc6513d);
  filter:var(--animal-rarity-light);
}
.nft-animal.animal-rarity-mythic{
  --animal-rarity-light:drop-shadow(-1px 0 2px #82cfff80) drop-shadow(1px 0 3px #bf8cff80) drop-shadow(0 0 8px #7964f747);
  filter:var(--animal-rarity-light);
}
.pasture-sprite.nft-animal.animal-rarity-legendary,
.pasture-sprite.nft-animal.animal-rarity-mythic{
  filter:drop-shadow(0 5px 1px #1b401946) var(--animal-rarity-light);
}


/* Grounded animal movement: the shadow stays on the ground while feet take turns. */
.pasture-scene .pasture-animal .animal-ground-shadow{
  position:absolute;pointer-events:none;z-index:0;
  left:calc(var(--shown-ground-x,var(--ground-x,.5))*var(--animal-size));
  top:calc(var(--ground-y,.84)*var(--animal-size));
  width:calc(var(--animal-size)*.42);height:calc(var(--animal-size)*.085);
  border-radius:50%;transform:translate(-50%,-50%);
  background:radial-gradient(ellipse,#19381166 0%,#19381140 45%,#19381100 73%);
}
.pasture-scene .pasture-animal .animal-body{
  position:relative;z-index:1;
  transform:scaleX(var(--animal-facing,1));transform-origin:50% 50%;
  transition:none;animation:none;
}
.pasture-scene .pasture-animal .pasture-sprite.nft-animal{
  filter:var(--animal-rarity-light,none);
  transform-origin:calc(var(--ground-x,.5)*100%) calc(var(--ground-y,.84)*100%);
  animation:grounded-animal-breath 4s ease-in-out infinite;
  animation-delay:var(--idle-delay,0s);transition:none;
}
.pasture-scene .pasture-animal:is(.eating,.drinking,.returning){animation-timing-function:linear}
.pasture-scene .pasture-animal:is(.eating,.drinking) .pasture-sprite.nft-animal{
  animation:grounded-animal-nibble 1s ease-in-out infinite;
  animation-delay:0s;
}
.pasture-scene .pasture-animal.is-walking .pasture-sprite.nft-animal{animation:none;transform:none}
.pasture-scene .pasture-animal .animal-walk-static{display:inline}
.pasture-scene .pasture-animal :is(.animal-walk-body,.animal-walk-leg-front,.animal-walk-leg-back){display:none}
.pasture-scene .pasture-animal.is-walking .animal-walk-static{display:none}
.pasture-scene .pasture-animal.is-walking :is(.animal-walk-body,.animal-walk-leg-front,.animal-walk-leg-back){display:inline}
.pasture-scene .pasture-animal.is-walking :is(.animal-walk-leg-front,.animal-walk-leg-back){
  transform-box:fill-box;transform-origin:50% 0%;
  animation:grounded-animal-step .36s steps(4,end) infinite;
  animation-delay:calc(0ms - var(--phase-elapsed,0ms));
}
.pasture-scene .pasture-animal.is-walking .animal-walk-leg-back{animation-delay:calc(-180ms - var(--phase-elapsed,0ms))}
.pasture-scene .pasture-animal :is(.animal-bubble,.pasture-name){z-index:2}
@keyframes grounded-animal-breath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.995)}}
@keyframes grounded-animal-nibble{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.992)}}
@keyframes grounded-animal-step{
  0%,100%{transform:translate(0,0)}
  25%{transform:translate(4px,-2px)}
  50%{transform:translate(0,0)}
  75%{transform:translate(-4px,0)}
}
@media(prefers-reduced-motion:reduce){
  .pasture-scene .pasture-animal .pasture-sprite.nft-animal,
  .pasture-scene .pasture-animal :is(.animal-walk-leg-front,.animal-walk-leg-back){animation:none!important;transform:none!important}
  .pasture-scene .pasture-animal.is-walking .animal-walk-static{display:inline}
  .pasture-scene .pasture-animal.is-walking :is(.animal-walk-body,.animal-walk-leg-front,.animal-walk-leg-back){display:none}
}

/* Scene controls remain above the depth-sorted animal layer (2вЂ“7). */
.pasture-scene .pasture-sign,.pasture-scene .pasture-bottom{z-index:20}

/* The route renderer owns ground movement; eating effects start only after arrival. */
.pasture-scene .pasture-animal.animal-motion-managed{animation:none!important;transition:none!important}
.pasture-animal.animal-motion-managed .feed-particle,.pasture-animal.animal-motion-managed .water-ripple{animation-delay:calc(var(--walk-duration,0ms) - var(--phase-elapsed,0ms))}
.pasture-animal.animal-motion-managed.is-walking .feed-particle,.pasture-animal.animal-motion-managed.is-walking .water-ripple{visibility:hidden}

.pasture-animal.motion-blocked .feed-particle,.pasture-animal.motion-blocked .water-ripple{display:none}
.pasture-animal.motion-blocked .pasture-sprite{animation:none!important}

/* Transparent pack artwork shares a 512px cell and a bottom outline at y=487. */
.crate-sprite.crate-0{background-image:url('/assets/pack-animals-next.png');background-size:contain;background-position:center}
.crate-sprite.crate-2{background-image:url('/assets/pack-supplies-next.png');background-size:contain;background-position:center}

.crate-sprite.crate-1{background-image:url('/assets/pack-tools-next.png');background-size:contain;background-position:center}

/* Worker rows share one action column regardless of label or cooldown text. */
.farm-actions{display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:center}
.farm-actions+.farm-actions{margin-top:12px}
.farm-actions>div,.farm-actions>div>div{min-width:0}
.farm-actions>.button{width:210px;min-width:0;min-height:56px;align-self:center;gap:8px;padding:8px 12px;line-height:1.35;text-align:center}
.farm-actions>.button>[data-timer]{min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){
 .farm-actions{grid-template-columns:minmax(0,1fr)}
 .farm-actions>.button{width:100%}
}

/* A compact action label and live quote stay together at every width. */
.material-row .material-sale{width:max-content;min-width:0;min-height:44px;flex:none;justify-content:center;gap:8px;padding:10px 14px;justify-self:end}
.material-sale-label{min-width:0;text-align:left}
.material-sale-value{display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--gold);font-variant-numeric:tabular-nums;min-width:0}
.material-sale-value>[data-sale-total]{overflow-wrap:anywhere}
.material-row .material-sale .resource-icon{width:20px;height:20px;margin:0}


/* Weekly task navigation, paired with existing farm icons. */
.task-nav-icon{width:34px;height:34px;flex:none;shape-rendering:crispEdges}@media(max-width:600px){.task-nav-icon{width:29px;height:29px}}

/* A simple invitation envelope for referrals. */
.nav-icon.nav-referrals{background-image:url('/assets/referral-invite-icon.svg');background-size:contain;background-position:center}

/* Keep the real farm private until its session is known; reserve the final resource layout. */
body.boot-pending #wallet>span{position:relative;grid-template-columns:31px minmax(4ch,auto)}
body.boot-pending #wallet>span::before{content:"";width:31px;height:31px;grid-column:1;grid-row:1 / span 2;align-self:center;border-radius:7px;background:#454056}
body.boot-pending #wallet .resource-icon{display:none}
body.boot-pending #wallet b{position:relative;grid-column:2;grid-row:1;color:transparent;min-width:4ch}
body.boot-pending #wallet b::after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:75%;height:12px;border-radius:4px;background:#51485f}
body.boot-pending #animal-count,body.boot-pending #crate-count,body.boot-pending .season{visibility:hidden}
body.boot-pending #screen{display:none}
.farm-boot{display:none}
body.boot-pending .farm-boot{display:grid;align-content:center;justify-items:center;gap:14px;min-height:320px;padding:40px 24px;text-align:center;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,#2d2940,#332b43)}
.farm-boot-mark{font-size:36px;line-height:1}
.farm-boot h2{font-size:clamp(22px,4vw,30px);line-height:1.3;margin:0}
.farm-boot p{max-width:440px;line-height:1.6;color:var(--muted);margin:0}
.farm-boot [hidden]{display:none!important}
body.boot-pending .home-entry,body.boot-pending .tabs,body.boot-pending main>.page-heading,body.boot-pending #account-panel,body.boot-pending .early-access-status,body.boot-pending .footer-notes{display:none!important}
@media(max-width:760px){body.boot-pending .farm-boot{min-height:280px;padding:32px 18px}}
/* Wallet sign-in is the entry point for every game screen. */
body.game-locked #wallet,body.game-locked #animal-count,body.game-locked #crate-count,body.game-locked .season,body.game-locked main>.page-heading{display:none!important}
body.game-locked .tabs>button:not([data-view="farm"]):not([data-view="cases"]){display:none}
body.game-locked main{padding-top:26px}
.game-auth-gate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);min-height:480px;padding:0;overflow:hidden;background:#2b253a;border-color:#595065}
.game-auth-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:48px 44px}
.game-auth-copy h2{font-size:clamp(30px,3.5vw,46px);line-height:1.13;letter-spacing:-.025em;margin:16px 0 20px;max-width:470px}
.game-auth-copy>p{max-width:420px;color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 25px}
.game-auth-copy .game-auth-signature{font-size:12px;margin:15px 0 26px;max-width:340px}
.game-auth-cta{min-height:51px;padding:14px 23px;display:inline-flex;gap:28px;align-items:center;justify-content:space-between}
.game-auth-collection{color:var(--gold);text-decoration:none;display:inline-flex;gap:20px;font-size:14px;align-items:center;border-bottom:1px solid transparent;padding-bottom:5px}
.game-auth-collection:hover,.game-auth-collection:focus-visible{border-color:var(--gold)}
.game-auth-art{min-width:0;min-height:380px;position:relative;background:linear-gradient(180deg,#18251400 30%,#192512cc 100%),url('/assets/farm-map.png') center/cover;image-rendering:pixelated}
.game-auth-art>div{position:absolute;inset:auto 25px 26px;display:flex;flex-direction:column;gap:8px;color:#fff8d9;text-shadow:0 2px 5px #12200e}
.game-auth-art span{font-size:12px;letter-spacing:.18em;font-weight:800;color:#e0efbb}.game-auth-art b{font-size:22px;line-height:1.3;max-width:320px}
.game-auth-noscript{padding:36px;border:1px solid var(--border);border-radius:14px;background:var(--panel);line-height:1.6}
@media(max-width:760px){.game-auth-gate{grid-template-columns:1fr;min-height:0}.game-auth-copy{padding:30px 24px}.game-auth-copy h2{font-size:34px}.game-auth-art{min-height:230px}.game-auth-copy>p{font-size:15px}.game-auth-cta{width:100%}.game-auth-art b{font-size:19px}body.game-locked main{padding-top:16px}}

/* Community links remain available before sign-in and on every farm tab. */
.site-footer{display:flex;flex-direction:column;gap:22px;padding-top:26px}
.community-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.community-row h2{margin:0;color:var(--ink);font-size:16px;font-weight:600;line-height:1.4}
.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.social-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none;font-size:13px;font-weight:500;line-height:1.4}
.social-link svg{flex:0 0 22px}
a.social-link:hover{border-color:var(--lime);background:#353349;color:var(--lime)}
a.social-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.social-link-pending{background:transparent;color:var(--muted);border-style:dashed}
.social-soon{padding:4px 7px;border-radius:5px;background:#373047;color:#cfc0e2;font-size:10px;font-weight:500;white-space:nowrap}
.footer-notes{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #3c354c;padding-top:18px;line-height:1.6}
@media(max-width:900px){.community-row{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:560px){.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.social-link{padding:12px 10px}.social-link-pending,.social-link-collection{grid-column:1/-1}.footer-notes{flex-direction:column;gap:5px}}

/* Public email is available before sign-in and without JavaScript. */
.footer-email{display:inline-flex;align-items:center;min-height:44px;min-width:0;max-width:100%;overflow-wrap:anywhere;color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-size:13px;line-height:1.6}
.footer-email:hover{color:var(--lime)}
.footer-email:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:3px}

.footer-about{border-top:1px solid var(--border);padding-top:20px}
.footer-about h2{margin:0 0 10px;color:var(--ink);font-size:16px;font-weight:600;line-height:1.4}
.footer-about p{margin:0;max-width:82ch;color:var(--muted);font-size:14px;line-height:1.75}

/* Dimensional pasture environment; collectible animals and feeders retain their artwork. */
.pasture-world{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit;image-rendering:auto}
.pasture-world-canvas{display:block;width:100%;height:100%;pointer-events:none;image-rendering:auto}
.pasture-scene.pasture-3d-ready{background-image:none;background-color:#9bbb45}
.pasture-scene.pasture-3d-ready .pasture-sign{background:#293c25e8;border-color:#c4aa6780;box-shadow:0 3px 12px #25351724}

/* Keep the collectible animals prominent beside compact shared equipment. */
.pasture-scene.pasture-3d-ready{--animal-size:116px;--pasture-feeder-max:156px}
.pasture-scene.pasture-3d-ready .pasture-feeder:not(.is-empty){width:min(20%,var(--pasture-feeder-max));top:min(69.72%,calc(84% - var(--animal-size)*.60 - min(3.375%,calc(var(--pasture-feeder-max)*.1125)) - 1px))}
@media(max-width:1100px){.pasture-scene.pasture-3d-ready{--animal-size:96px}}
@media(max-width:760px){.pasture-scene.pasture-3d-ready{--animal-size:56px;--pasture-feeder-max:96px}}

/* Cover the initial lazy import before any legacy scenery or proportions can paint. */
.pasture-scene.pasture-3d-pending{background:#839d42;background-image:linear-gradient(155deg,#9bb955 0%,#809c41 58%,#6d8738 100%)}
.pasture-scene.pasture-3d-pending>.pasture-world{visibility:hidden;pointer-events:none}

/* Official PlayToEarn badge is visible before sign-in and on every tab. */
.playtoearn-badge{flex:0 0 auto;width:120px;height:120px}
.playtoearn-badge a{display:block;width:120px;height:120px;border-radius:16px}
.playtoearn-badge img{display:block;width:120px;height:120px;object-fit:contain}
.playtoearn-badge a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}

/* Local font keeps Hindi text legible without an external font request. */
@font-face{font-family:'Noto Sans Devanagari';src:url('/assets/fonts/noto-sans-devanagari-variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
html:lang(hi){font-family:'Noto Sans Devanagari','Golos Text',system-ui,sans-serif}
html:lang(hi) :is(button,input,select,textarea,.brand){font-family:inherit}
html:lang(hi) :is(h1,h2,h3,h4,.eyebrow,.demo-badge,button,label,small){letter-spacing:normal;line-height:1.5}
html:lang(hi) p{line-height:1.75}
#language{min-width:72px;max-width:116px}

/* Current feed and coins stay visible while browsing animals or market offers. */
.view-balance[hidden]{display:none}
.view-balance{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:25;display:flex;align-items:stretch;gap:8px;width:max-content;max-width:100%;margin:0 0 18px auto;padding:6px;border:1px solid #c5ef8a45;border-radius:13px;background:#252135f5;box-shadow:0 5px 18px #14121f55;backdrop-filter:blur(10px)}
.view-balance-item{display:flex;align-items:center;gap:9px;min-width:116px;max-width:260px;padding:5px 13px;border-radius:8px}
.view-balance-item.is-primary{background:#c5ef8a12}
.view-balance-item .resource-icon{flex:0 0 29px;width:29px;height:29px;margin:0}
.view-balance-copy{display:flex;flex-direction:column;min-width:0;gap:1px}
.view-balance-copy small{font-size:11px;line-height:1.3;color:var(--muted)}
.view-balance-copy strong{font-size:18px;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.view-balance-item.is-primary strong{color:var(--lime)}
.context-balances-visible #screen :is(button,input,select,a){scroll-margin-top:86px}
@media(max-width:540px){.view-balance{width:100%;gap:4px;padding:5px;top:max(6px,env(safe-area-inset-top));margin-bottom:14px}.view-balance-item{flex:1;min-width:0;max-width:none;padding:4px 8px;gap:7px}.view-balance-item .resource-icon{flex-basis:25px;width:25px;height:25px}.view-balance-copy strong{font-size:17px}}



.pasture-scene .pasture-animal{cursor:default}
.pasture-scene .pasture-animal-select{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:100%;min-width:0;padding:0;border:0;border-radius:8px;background:none;color:inherit;font:inherit;cursor:pointer}
.pasture-scene .pasture-animal .animal-bubble{z-index:3;width:44px;min-width:44px;height:44px;padding:6px;right:-2px;top:-23px;border:0;border-radius:10px;background:none;box-shadow:none;transform:none;cursor:pointer;touch-action:manipulation}
.pasture-scene .animal-bubble-icon{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border:2px solid #87643d;border-radius:6px;background:#fff7d9;color:#4f422c;box-shadow:0 3px 0 #24432033;pointer-events:none}
.pasture-scene .pasture-animal.ready .animal-bubble-icon{background:#d3efa1;border-color:#618639}
.pasture-scene .pasture-animal.eating .animal-bubble-icon{background:#c5ef8a}
.pasture-scene .pasture-animal.drinking .animal-bubble-icon{background:#caefff}
.pasture-scene .pasture-animal.selected .animal-bubble-icon{border-color:#e1bd62}
.pasture-scene .animal-bubble[aria-disabled="true"] .animal-bubble-icon{opacity:.65;filter:saturate(.65)}
.pasture-scene .animal-bubble[aria-disabled="true"]:not(:disabled){cursor:help}
.pasture-scene .animal-bubble:disabled{cursor:wait}
.pasture-scene .animal-bubble:focus-visible,.pasture-scene .pasture-animal-select:focus-visible{outline:3px solid #f1d583;outline-offset:2px}

@media(max-width:760px){.pasture-scene .pasture-animal[data-pasture-slot="4"]:not(.eating):not(.drinking):not(.returning) .animal-bubble[data-animal-action]{left:auto;right:-2px}}

/* Homepage animal artwork is a full, uncropped capture of the actual pasture. */
.game-auth-art{align-self:center;min-height:0;margin:24px 24px 24px 0;display:flex;flex-direction:column;background:#2b3429;border:1px solid #62734e;border-radius:14px;overflow:hidden;image-rendering:auto;box-shadow:0 12px 30px #11170e24}
.game-auth-art::before{content:"";display:block;width:100%;aspect-ratio:870 / 581;background:url('/assets/home-animals.png?v=20260923-animals104') center / contain no-repeat}
.game-auth-art>div{position:static;padding:20px 22px 24px;gap:8px;text-shadow:none}
.game-auth-art b{max-width:none}
@media(max-width:760px){.game-auth-art{width:calc(100% - 32px);margin:0 16px 20px;min-height:0}.game-auth-art>div{padding:17px 18px 20px}.game-auth-art b{font-size:19px}}

/* Keep section navigation stable and keyboard focus inside its scroll container. */
.tabs>button:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.tabs>button.active:focus-visible{outline-color:#36502b}
.tabs>button>[id$="-count"]{min-width:calc(3ch + 12px);flex-shrink:0;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Keep the header above the section menu in place on the two guide screens as well. */
body:is(.roadmap-active,.whitepaper-active) main>.page-heading{display:flex}

/* Bulk purchases keep the existing card layout and quote the complete order. */
.shop-quantity{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 8px;font-size:12px;color:var(--muted);min-width:0}
.shop-quantity input{box-sizing:border-box;min-width:0;width:76px;max-width:40%;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}
.shop-quantity input[aria-invalid="true"]{border-color:#e69b93}

/* Scene errors keep current animal controls on a plain surface; never load old scenery. */
.pasture-scene:not(.pasture-3d-ready){background-image:none!important;background-color:#344035}


/* dist/feedback.css */
.feedback-open{min-height:44px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--ink);padding:10px 14px;font:inherit;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.feedback-open:hover{border-color:var(--lime);color:var(--lime)}
.feedback-open:focus-visible,#feedback-dialog :is(button,textarea,input,select,summary):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.footer-help{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:13px}
.game-auth-help{margin-top:18px}
#feedback-dialog{width:560px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px);padding:28px;border:1px solid #675574;border-radius:16px;background:var(--panel);color:var(--ink);text-align:left;overflow:auto;box-shadow:0 20px 80px #11102099;overscroll-behavior:contain}
#feedback-dialog::backdrop{background:#100c1dc9;backdrop-filter:blur(4px)}
.feedback-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.feedback-heading h2{font-size:26px;line-height:1.2;margin:10px 0 0}.feedback-close{display:grid;place-items:center;flex:none;box-sizing:border-box;width:44px;height:44px;padding:0;margin:0;background:#211c3155;border:1px solid var(--border);border-radius:8px;color:var(--ink);line-height:0;cursor:pointer}.feedback-close svg{display:block}
.feedback-intro{font-size:13px;line-height:1.6;color:var(--muted);margin:16px 0 22px}.feedback-form{display:flex;flex-direction:column;gap:8px}.feedback-form label{font-size:13px;font-weight:600;margin-top:9px}
.feedback-form :is(select,input,textarea){display:block;width:100%;box-sizing:border-box;border:1px solid #685e77;border-radius:8px;background:#211d30;color:var(--ink);padding:11px 12px;font:inherit;font-size:14px;min-height:44px;line-height:1.5}.feedback-form textarea{resize:vertical;min-height:130px}.feedback-form :is(input,textarea)::placeholder{color:#a79bb8}
.feedback-message-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.feedback-privacy{font-size:11px;color:var(--muted);line-height:1.6;margin:5px 0 12px}.feedback-submit{width:100%;min-height:48px}.feedback-status{padding:12px;border:1px solid #77658a;border-radius:8px;font-size:13px;line-height:1.5;margin-bottom:8px}.feedback-status.is-error{background:#583c4844;color:#f2c3bd;border-color:#ae7875}
#feedback-dialog [hidden]{display:none!important}.feedback-success{text-align:center;padding:20px 0}.feedback-success-mark{display:grid;place-items:center;margin:0 auto;width:54px;height:54px;border-radius:50%;background:#52643f;color:var(--lime);font-size:30px}.feedback-success h3{font-size:23px;line-height:1.3}.feedback-success p{font-size:13px;color:var(--muted);line-height:1.6}.feedback-success code{display:block;padding:12px;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:8px;color:var(--lime);font-size:12px}.feedback-success button{min-height:44px;margin-top:10px}
.feedback-data-note{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);font-size:11px;line-height:1.6;color:var(--muted)}.feedback-data-note summary{cursor:pointer;min-height:28px}.feedback-data-note p{margin:9px 0}
@media(max-width:560px){#feedback-dialog{padding:22px 18px}.feedback-heading h2{font-size:23px}.footer-help{align-items:flex-start;flex-direction:column}.footer-help .feedback-open{width:100%}}
@media(prefers-reduced-motion:reduce){#feedback-dialog::backdrop{backdrop-filter:none}}

/* dist/demo-guide.css */
.demo-guide{margin:0 0 20px;border:1px solid #536548;border-radius:12px;background:linear-gradient(115deg,#30362b,#2b283c);color:var(--text,#fff8df);overflow:hidden}
.demo-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:16px 20px;min-height:68px}
.demo-guide>summary::-webkit-details-marker{display:none}
.demo-guide>summary:hover{background:#ffffff06}
.demo-guide>summary:focus-visible,.demo-guide-link:focus-visible{outline:2px solid var(--gold,#ffd87b);outline-offset:-4px}
.demo-guide-heading{display:grid;gap:5px;min-width:0}
.demo-guide-heading>b{font-size:16px;line-height:1.35}
.demo-guide-heading>small{font-size:12px;line-height:1.4;color:var(--muted,#c0bcd3)}
.demo-guide-chevron{font-size:23px;line-height:1;flex-shrink:0;color:#cbeaaa;transition:transform .15s}
.demo-guide[open] .demo-guide-chevron{transform:rotate(180deg)}
.demo-guide-body{border-top:1px solid #ffffff16;padding:18px 20px 20px}
.demo-guide-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.demo-guide-steps>li{display:flex;align-items:flex-start;gap:10px;min-width:0}
.demo-guide-number{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:1px solid #bad68b5c;border-radius:7px;background:#b7d98a13;color:#d9eeaf;font-size:12px;font-weight:800}
.demo-guide-step-copy{min-width:0;flex:1}
.demo-guide h3{margin:2px 0 7px;font-size:14px;line-height:1.35}
.demo-guide p{margin:0 0 9px;color:var(--muted,#c0bcd3);font-size:12px;line-height:1.55}
.demo-guide-link{border:0;padding:6px 0;margin:0;background:transparent;color:#d5edab;text-align:left;font:inherit;font-size:12px;font-weight:700;line-height:1.4;cursor:pointer;display:inline-flex;align-items:center;gap:10px;min-height:30px;max-width:100%}
.demo-guide-link:hover{color:#edffce;text-decoration:underline;text-underline-offset:3px}
.demo-guide-link>span{flex-shrink:0}
.demo-guide-wait{border-top:1px solid #ffffff16;padding-top:15px;margin-top:17px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px}
.demo-guide-times{display:flex;flex-wrap:wrap;gap:7px 15px;margin:0 0 8px}
.demo-guide-time{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;line-height:1.6}
.demo-guide-time>b{font-weight:500;color:var(--muted,#c0bcd3)}
.demo-guide-time>span{color:#f1e4b8;font-weight:700;white-space:nowrap}
.demo-guide-actions{display:flex;flex-wrap:wrap;gap:3px 18px}
.demo-guide-wait p:last-child{margin-bottom:0}
@media(max-width:1050px){.demo-guide-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}}
@media(max-width:600px){.demo-guide>summary{padding:14px 16px}.demo-guide-body{padding:16px}.demo-guide-steps{gap:17px 15px}.demo-guide-steps>li{gap:7px}.demo-guide-number{flex-basis:21px;width:21px;height:21px}.demo-guide h3{font-size:13px}.demo-guide-wait{grid-template-columns:1fr;gap:13px}.demo-guide-link{min-height:34px}.demo-guide-heading>small{font-size:11px}}
@media(prefers-reduced-motion:reduce){.demo-guide-chevron{transition:none}}
@media(max-width:480px){.demo-guide-steps{grid-template-columns:1fr}.demo-guide-heading>small{overflow-wrap:anywhere}}
.demo-guide-link[data-guide-action="water"]{min-height:44px}


/* dist/auth.css */
/* Account UI is intentionally isolated from the farm and reward dialogs. */
.auth-panel{margin:18px 0 0;padding:14px 18px;background:#2b283d;border:1px solid var(--border,#484158);border-radius:12px;color:var(--ink,#faf3e5)}
.auth-panel-row{display:flex;align-items:center;gap:12px;min-width:0}
.auth-marker{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:9px;background:#3e4650;color:var(--lime,#c5ef8a);font-size:25px}
.auth-identity{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.auth-label{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.auth-detail{color:var(--muted,#b6acc8);font-size:11px;line-height:1.5}
.auth-button{min-height:44px;padding:10px 15px;border:1px solid #676078;border-radius:8px;background:#393346;color:var(--ink,#faf3e5);font:inherit;font-size:12px;line-height:1.35;font-weight:600;cursor:pointer}
.auth-button:hover:not(:disabled){background:#494053;border-color:#a991e8}
.auth-panel-action{white-space:nowrap;color:var(--lime,#c5ef8a)}
.auth-test-note{margin:12px 0 0;color:#b9abc8;font-size:11px;line-height:1.6}
#auth-dialog.auth-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 28px));max-width:480px;max-height:calc(100dvh - 32px);height:auto;margin:auto;padding:32px 26px 24px;border:1px solid #665771;border-radius:18px;background:#2b263b;color:var(--ink,#faf3e5);box-shadow:0 24px 100px #100a25aa;overflow:auto;text-align:left;isolation:isolate}
#auth-dialog::backdrop{background:#161125c9;backdrop-filter:blur(5px)}
#auth-dialog .auth-close{position:absolute;top:8px;right:8px;width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;margin:0;border:0;border-radius:10px;background:#ffffff08;color:#dacfe8;font:inherit;font-size:26px;line-height:1;cursor:pointer;z-index:2}
#auth-dialog .auth-close:hover{background:#ffffff15}
#auth-dialog .auth-eyebrow{padding-right:32px;font-size:10px;letter-spacing:1.5px;color:var(--lime,#c5ef8a);line-height:1.5}
#auth-dialog .auth-title{margin:13px 32px 12px 0;font-size:27px;line-height:1.2;letter-spacing:-.5px;color:var(--ink,#faf3e5)}
#auth-dialog .auth-description{margin:0;font-size:14px;line-height:1.65;color:#d0c5dd}
#auth-dialog .auth-sign-note{font-size:11px;line-height:1.6;color:#aebe9b;margin:12px 0 20px}
#auth-dialog .auth-wallets{display:flex;flex-direction:column;gap:10px;margin-top:20px}
#auth-dialog .auth-wallet-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;text-align:left;border:1px solid #544861;border-radius:10px;background:#373045;padding:14px;color:#faf3e5;font:inherit;cursor:pointer}
#auth-dialog .auth-wallet-choice:hover:not(:disabled){border-color:var(--lime,#c5ef8a);background:#3c3c45}
#auth-dialog .auth-wallet-choice:disabled{cursor:default;opacity:.48}
#auth-dialog .auth-wallet-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;background:#272135;border-radius:9px;font-size:26px;color:#c8b6f0}
#auth-dialog .auth-wallet-copy{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
#auth-dialog .auth-wallet-copy strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
#auth-dialog .auth-wallet-copy small{font-size:11px;color:#afa4c1}
#auth-dialog .auth-wallet-arrow{font-size:18px;color:#bda7d5}
#auth-dialog .auth-install-help{margin:14px 0;color:#aba0bb;font-size:11px;line-height:1.6}
#auth-dialog .auth-status{font-size:12px;line-height:1.6;padding:12px;background:#394338;border:1px solid #59664b;border-radius:8px;color:#d4e5c0;margin:16px 0}
#auth-dialog .auth-error{font-size:12px;line-height:1.6;padding:12px;border:1px solid #805e64;background:#48313b;color:#f3c9c7;border-radius:8px;margin:16px 0}
#auth-dialog .auth-retry{width:100%;margin:0 0 12px}
#auth-dialog .auth-guest{min-height:44px;display:block;width:100%;padding:12px 8px;border:0;background:transparent;color:#ded3eb;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;margin-top:10px}
#auth-dialog .auth-guest-note{text-align:center;color:#9e93b1;font-size:10px;line-height:1.6;margin:0 0 15px}
#auth-dialog .auth-test-note{padding-top:15px;border-top:1px solid #493e54;font-size:10px;text-align:left}
#auth-dialog .auth-signed-in{margin:22px 0 12px;padding:16px;background:#332e42;border:1px solid #514a5e;border-radius:10px}
#auth-dialog .auth-full-address{font:12px/1.7 ui-monospace,monospace;overflow-wrap:anywhere;color:#e6dcf0}
#auth-dialog .auth-save-note{color:#b4c99b;font-size:11px;line-height:1.6;margin:12px 0 18px}
#auth-dialog .auth-logout{width:100%}
#auth-dialog [hidden],.auth-panel [hidden]{display:none!important}
#auth-dialog button:focus-visible,.auth-panel button:focus-visible{outline:3px solid var(--gold,#ffd684);outline-offset:3px}
@media(max-width:600px){.auth-panel{margin-top:12px;padding:12px}.auth-marker{display:none}.auth-detail{font-size:10px}.auth-panel-action{padding:9px 10px;font-size:11px;white-space:normal;max-width:130px}.auth-test-note{font-size:10px}#auth-dialog.auth-dialog{padding:30px 20px 20px;border-radius:14px}#auth-dialog .auth-title{font-size:24px}}
@media(prefers-reduced-motion:reduce){#auth-dialog::backdrop{backdrop-filter:none}}

/* WalletConnect is explicit and stays inside the account dialog's focus boundary. */
#auth-dialog .auth-walletconnect{margin-top:10px;justify-content:center;font-size:14px;font-weight:600;color:#e0eafc;border-color:#586b88}
#auth-dialog .auth-walletconnect::before{content:'▦';font-size:25px;color:#b9d4ff}
#auth-dialog .auth-qr-box{margin:18px 0 10px;padding:16px 12px;border:1px solid #60556f;border-radius:12px;background:#332d43;text-align:center}
#auth-dialog .auth-qr-title{margin:0 0 10px;font-size:17px}
#auth-dialog .auth-qr-guide{margin:9px 0;font-size:12px;line-height:1.6;color:#cabed9}
#auth-dialog .auth-qr-canvas{display:block;max-width:100%;height:auto!important;margin:14px auto;border-radius:8px;background:#fff}
#auth-dialog .auth-qr-copy,#auth-dialog .auth-qr-cancel{width:100%;margin-top:9px}
#auth-dialog .auth-qr-restore{width:100%;margin:0 0 12px}
#auth-dialog .auth-qr-note{font-size:11px}

/* Wallet sign-in guidance uses the existing auth state; no connection is triggered here. */
.auth-panel[data-auth-state="guest"]{margin-top:10px;padding:8px 12px;background:#ffffff03}
.auth-panel[data-auth-state="guest"] .auth-marker{display:none}
.auth-panel[data-auth-state="guest"] .auth-panel-action{background:transparent;color:#ddd3e8;border-color:#62596f;font-weight:500}
.auth-panel[data-auth-state="guest"] .auth-label{font-size:12px}
.auth-panel[data-auth-state="guest"] .auth-detail{font-size:10px}
#auth-dialog .auth-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:16px 0 18px}
#auth-dialog .auth-step{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:10px 8px;border:1px solid #51465f;border-radius:9px;background:#ffffff03;color:#a99fb6;font-size:11px;line-height:1.45}
#auth-dialog .auth-step-number{display:grid;place-items:center;width:23px;height:23px;flex:0 0 23px;border-radius:50%;border:1px solid #776980;color:#c4b7d1;font-size:11px;font-weight:700}
#auth-dialog .auth-step-label{min-width:0;overflow-wrap:anywhere}
#auth-dialog .auth-step[data-state="current"]{border-color:#a8c780;background:#b8db8b12;color:#edf5df}
#auth-dialog .auth-step[data-state="current"] .auth-step-number{background:#c5ef8a;border-color:#c5ef8a;color:#26321c}
#auth-dialog .auth-step[data-state="complete"]{color:#bfceb2;border-color:#627650}
#auth-dialog .auth-step[data-state="complete"] .auth-step-number{color:#c5ef8a;border-color:#829c66}
#auth-dialog .auth-retry-hint{margin:-5px 0 16px;color:#e4d9eb;font-size:12px;line-height:1.55}
#auth-dialog .auth-device-help{padding:12px 0;margin:10px 0;border-top:1px solid #4c4158;border-bottom:1px solid #4c4158}
#auth-dialog .auth-device-help summary{min-height:24px;cursor:pointer;color:#ddd0e8;font-size:12px;font-weight:600;line-height:1.65}
#auth-dialog .auth-device-help summary:focus-visible{outline:3px solid var(--gold,#ffd684);outline-offset:3px;border-radius:3px}
#auth-dialog .auth-device-help p{margin:10px 0 0;color:#bbb0c9;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
#auth-dialog .auth-qr-phone{margin:11px 0 3px;color:#bbb0c9;font-size:11px;line-height:1.6;text-align:left}
#auth-dialog .auth-status,#auth-dialog .auth-error{overflow-wrap:anywhere}
@media(max-width:380px){#auth-dialog .auth-steps{grid-template-columns:1fr;gap:6px}#auth-dialog .auth-step{flex-direction:row;align-items:center;padding:7px 9px;gap:9px}#auth-dialog .auth-step-label{overflow-wrap:normal}}

.auth-panel-policy{margin-top:10px;font-size:11px;line-height:1.6}
.auth-panel-policy .auth-test-note{display:inline;margin:0;font-size:inherit}
.auth-policy-link{display:inline;padding:4px 0;margin:0 0 0 6px;border:0;background:transparent;color:#c5df9f;text-decoration:underline;text-underline-offset:3px;font:inherit;line-height:inherit;cursor:pointer}
.auth-policy-link:hover{color:#e5f6c9}

/* Account sign-in is independent of optional wallet ownership. */
#auth-dialog .auth-account-choices{display:grid;gap:15px;margin-top:20px}
#auth-dialog .auth-email-form{display:grid;gap:10px;margin:0;padding:16px;border:1px solid #584d64;border-radius:12px;background:#ffffff03}
#auth-dialog .auth-email-form label{font-size:12px;line-height:1.5;color:#e5dced}
#auth-dialog .auth-input{box-sizing:border-box;width:100%;min-width:0;min-height:46px;padding:11px 12px;border:1px solid #74647e;border-radius:8px;background:#211c2f;color:#fff4e9;font:inherit;font-size:15px;line-height:1.4}
#auth-dialog .auth-input:focus-visible{outline:3px solid var(--gold,#ffd684);outline-offset:2px}
#auth-dialog .auth-input:disabled{opacity:.6}
#auth-dialog .auth-email-send,#auth-dialog .auth-link-wallet{background:#c5ef8a;border-color:#c5ef8a;color:#25321c}
#auth-dialog .auth-email-send:hover:not(:disabled),#auth-dialog .auth-link-wallet:hover:not(:disabled){background:#d4f4aa;border-color:#d4f4aa}
#auth-dialog .auth-text-button{min-height:40px;padding:7px 0;border:0;background:transparent;color:#d4e8b8;font:inherit;font-size:12px;line-height:1.5;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
#auth-dialog .auth-email-note,#auth-dialog .auth-methods-note,#auth-dialog .auth-link-note{margin:2px 0 12px;font-size:12px;line-height:1.6;color:#bfb2ce;overflow-wrap:anywhere}
#auth-dialog .auth-wallet-alternative{width:100%;background:transparent;border-color:#64596f;color:#d3c7de;font-weight:500}
#auth-dialog .auth-wallet-back{margin:8px 0}
#auth-dialog .auth-login-identity{font-size:13px;line-height:1.6;overflow-wrap:anywhere;margin:0 0 14px;color:#f2e7fa}
#auth-dialog .auth-link-wallet{width:100%;margin:0 0 14px}
#auth-dialog button:disabled{cursor:default;opacity:.5}

/* Explicit wallet handoff keeps the farm session in this browser tab. */
#auth-dialog .auth-mobile-wallets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
#auth-dialog .auth-mobile-wallet{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;min-width:0;overflow-wrap:anywhere}
#auth-dialog .auth-qr-reload{width:100%;margin:0 0 12px;border-color:var(--lime,#c5ef8a)}


/* dist/mint.css */
/* Mint UI: separate paid inventory, giveaway reserve and wallet checkout. */
.mint-edition-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}
.mint-edition-overview>div{min-width:0;padding:16px 18px;border:1px solid var(--border);border-radius:10px;background:#292538;display:flex;flex-direction:column;gap:7px}
.mint-edition-overview span{font-size:13px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.mint-edition-overview strong{font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--ink)}
.mint-edition-overview>div:last-child strong{color:var(--gold)}
[data-mint-progress],[data-mint-checkout]{min-width:0;width:100%}
.mint-stock{padding:16px 0 12px;text-align:left;font-variant-numeric:tabular-nums}
.mint-stock-heading,.mint-stock-bottom{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 12px;line-height:1.45}
.mint-stock-heading{font-size:13px;color:var(--muted)}
.mint-stock-heading strong{color:var(--ink);white-space:nowrap;font-size:14px}
.mint-stock-track{height:11px;width:100%;margin:10px 0 12px;background:#181423;border:1px solid #51485f;border-radius:20px;overflow:hidden}
.mint-stock-track>i{display:block;max-width:100%;height:100%;background:linear-gradient(90deg,#9bcc66,var(--lime));border-radius:inherit;transition:width .25s ease-out}
.mint-stock-unknown .mint-stock-track{background:repeating-linear-gradient(135deg,#242030 0px,#242030 7px,#302a3d 7px,#302a3d 14px)}
.mint-stock-bottom{font-size:14px;color:var(--muted)}
.mint-stock-bottom b{color:var(--lime);font-size:20px;white-space:nowrap}
.mint-stock p.mint-stock-note,.mint-stock p.mint-reserve{min-height:0;margin:10px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}
.mint-stock p.mint-reserve{padding-top:10px;border-top:1px dashed var(--border)}
.mint-reserve b{color:var(--gold);font-weight:600}
.case-card .mint-stock{margin-bottom:8px;padding-top:10px}
.case-card .mint-stock-bottom{font-size:12px}
.case-card .mint-stock-bottom b{font-size:18px}
.case-card .mint-stock-heading strong{font-size:13px}
.mint-info{min-width:0}
.mint-info .mint-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:22px 0 12px}
.mint-facts>div{min-width:0;overflow-wrap:anywhere}
.mint-facts>div:last-child:nth-child(odd){grid-column:1/-1}
.mint-info .mint-status{display:inline-block;max-width:100%;font-size:12px;line-height:1.4}
.mint-checkout{display:grid;gap:16px;min-width:0;border-top:1px solid var(--border);margin-top:10px;padding-top:22px;text-align:left}
.mint-price-line{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:7px 14px;line-height:1.5;font-size:14px;color:var(--muted)}
.mint-price-line strong{color:var(--gold);font-size:23px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;max-width:100%}
.mint-checkout p,.mint-info .mint-checkout p{margin:0;font-size:13px;line-height:1.6;min-height:0}
.mint-info p.mint-network-note{padding:8px 11px;color:#c8d7ff;background:#283349;border:1px solid #566584;border-radius:6px;font-size:12px;line-height:1.5}
.mint-quantity-label{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);font-size:14px;line-height:1.45}
.mint-quantity-label input{width:104px;min-width:72px;max-width:42%;min-height:46px;padding:10px 12px;color:var(--ink);background:#211d30;border:1px solid #6d617f;border-radius:8px;text-align:center;font-size:18px;font-variant-numeric:tabular-nums}
.mint-quantity-label input:disabled{opacity:.65;cursor:not-allowed}
.mint-total{padding-top:15px;border-top:1px solid var(--border)}
.mint-total strong{font-size:27px;color:var(--lime)}
.mint-info .mint-checkout .button{width:100%;margin:0;min-height:49px;white-space:normal;line-height:1.45}
.mint-refresh{justify-self:center;min-height:38px;padding:7px 12px;border:0;background:transparent;color:var(--lime);border-radius:6px;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.mint-refresh:hover{background:#c5ef8a0a}
.mint-message:empty{display:none}
.mint-info p.mint-message,.mint-checkout .mint-notice{color:var(--gold);overflow-wrap:anywhere}
.mint-transaction{display:grid;gap:7px;padding:12px 14px;border:1px solid #65714d;border-radius:8px;background:#2f3428;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.mint-transaction a{color:var(--lime);text-decoration:underline;text-underline-offset:3px}
.mint-hash{font-family:ui-monospace,monospace;color:var(--ink)}
.mint-info p.mint-opening-note{font-size:13px;line-height:1.65;color:var(--muted);padding:15px 0 0;margin:21px 0 0;border-top:1px solid var(--border)}
.mint-info p.fine{font-size:12px;margin-bottom:0}
/* This confirmation uses its own scroll container and a sticky, reachable close button. */
dialog.mint-confirm{width:480px;max-width:calc(100vw - 24px);max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);padding:14px 24px 24px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8c7c9d #211c3144;text-align:center;border-radius:15px}
dialog.mint-confirm[open]{display:flex;flex-direction:column;align-items:stretch}
.mint-confirm>*{flex-shrink:0;min-width:0}
.mint-confirm>.dialog-close{position:sticky;top:0;align-self:flex-end;z-index:3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;margin:0 -9px -44px 0;padding:0;border:1px solid #71627e;border-radius:9px;background:#292236;color:var(--ink);font-size:25px;line-height:1;box-shadow:0 2px 8px #15111d77}
.mint-confirm>.dialog-close:hover{background:#4b3b5c}
.mint-confirm>h2{font-size:22px;line-height:1.3;margin:8px 40px 16px;overflow-wrap:anywhere}
.mint-confirm .mint-confirm-art{width:108px;height:108px;min-height:108px;margin:0 auto 10px}
.mint-confirm>h3{margin:0 0 16px;font-size:18px;line-height:1.4}
.mint-review{margin:0;text-align:left;display:grid;gap:0;min-width:0;font-size:13px;line-height:1.5}
.mint-review>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px 14px;padding:10px 0;border-bottom:1px solid var(--border)}
.mint-review dt{color:var(--muted)}
.mint-review dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;color:var(--ink)}
.mint-review .mint-review-total{align-items:center;padding-top:15px}
.mint-review-total dd{font-size:23px;color:var(--lime);font-weight:700}
.mint-confirm>p.fine{margin:13px 0 0;font-size:12px;line-height:1.55}
.mint-confirm>p.mint-network-note{margin:14px 0 0;font-size:12px;line-height:1.5;color:#c8d7ff;background:#273047;padding:9px 11px;border-radius:7px}
.mint-confirm>.action-group{margin-top:19px;gap:10px;justify-content:center}
.mint-confirm>.action-group>.button{flex:1 1 145px;min-height:47px;white-space:normal;font-size:13px;padding:11px}
.mint-confirm::-webkit-scrollbar{width:9px}
.mint-confirm::-webkit-scrollbar-thumb{background:#8c7c9d;border:2px solid var(--panel);border-radius:8px}
@media(max-width:900px){.mint-layout{gap:18px}.mint-info,.mint-art-panel{padding:22px}}
@media(max-width:760px){.mint-layout .mint-info{grid-row:1}.mint-layout .mint-art-panel{grid-row:2}.mint-edition-overview{gap:8px;margin-bottom:18px}.mint-edition-overview>div{padding:12px 10px}.mint-edition-overview strong{font-size:22px}.mint-edition-overview span{font-size:12px}.mint-info h2{font-size:25px}}
@media(max-width:440px){.mint-edition-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.mint-edition-overview>div:first-child{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.mint-info,.mint-art-panel{padding:18px}.mint-info .mint-facts{gap:12px}.mint-facts span{font-size:12px}.mint-info .mint-facts b{font-size:15px}.mint-price-line strong{font-size:22px}.mint-total strong{font-size:25px}.mint-quantity-label{font-size:13px}dialog.mint-confirm{padding:12px 18px 20px}.mint-confirm>h2{font-size:20px;margin:10px 37px 16px}.mint-confirm>.dialog-close{margin-right:-6px}.mint-confirm .mint-confirm-art{width:88px;height:88px;min-height:88px}.mint-review{font-size:12px}.mint-review-total dd{font-size:21px}}
@media(prefers-reduced-motion:reduce){.mint-stock-track>i{transition:none}}

.nav-giveaways{background-position:100% 0;filter:hue-rotate(28deg) saturate(1.25)}
.tabs{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#675774 transparent;padding-bottom:4px}
.tabs>button{flex:0 0 auto}
.giveaway-announcement{margin-bottom:22px;background:linear-gradient(120deg,#3e324b,#2d2940);padding:24px}
.giveaway-announcement .mint-status{display:inline-block;font-size:12px;line-height:1.5}
.giveaway-announcement h3{font-size:23px;line-height:1.35;margin:18px 0 8px}
.giveaway-announcement p{color:var(--muted);font-size:14px;line-height:1.65;margin:8px 0 0}
.giveaway-announcement p.fine{font-size:12px}
.giveaway-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.giveaway-card{display:flex;flex-direction:column;align-items:stretch;text-align:center;min-width:0}
.giveaway-card>.crate-sprite{width:100%;max-width:220px;margin:0 auto 12px}
.giveaway-card h3{font-size:21px;line-height:1.4;margin-bottom:17px}
.giveaway-card [data-mint-giveaway]{width:100%;min-width:0;flex:1}
.giveaway-card .button{width:100%;margin-top:20px}
.giveaway-stats{display:grid;gap:10px;text-align:left;font-size:14px;line-height:1.5}
.giveaway-stats>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid var(--border)}
.giveaway-stats span{color:var(--muted)}
.giveaway-stats b{font-variant-numeric:tabular-nums;color:var(--gold)}
.mint-recovery{display:grid;gap:10px;margin-top:10px;min-width:0;padding-top:12px;border-top:1px solid var(--border)}
.mint-recovery label{display:grid;gap:7px;font-size:12px;color:var(--muted);line-height:1.5}
.mint-recovery input[type=text],.mint-recovery input:not([type]){width:100%;min-width:0;max-width:100%;background:#211d30;color:var(--ink);border:1px solid #6d617f;border-radius:7px;padding:10px;font-size:13px}
.mint-recovery input[type=checkbox]{accent-color:var(--lime);width:17px;height:17px;flex:none;vertical-align:middle}
.mint-recovery .button{font-size:12px;min-height:44px}
@media(max-width:900px){.giveaway-grid{gap:12px}.giveaway-card{padding:18px}.giveaway-card h3{font-size:18px}}
@media(max-width:760px){.tabs{justify-content:flex-start}.giveaway-grid{grid-template-columns:1fr}.giveaway-card>.crate-sprite{max-width:180px}.giveaway-card{padding:22px}.giveaway-card h3{font-size:22px}}

.mint-confirm>p:not(.fine):not(.mint-network-note){margin:5px 0 16px;text-align:left;font-size:13px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.mint-recovery-label{display:grid;gap:8px;margin:0 0 14px;text-align:left;font-size:13px;line-height:1.5;color:var(--muted)}
.mint-recovery-label input{width:100%;min-width:0;min-height:46px;padding:10px;background:#211d30;color:var(--ink);border:1px solid #6d617f;border-radius:8px;font:13px ui-monospace,monospace}
.mint-recovery-check{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;text-align:left;font-size:13px;line-height:1.55;color:var(--ink)}
.mint-recovery-check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--lime)}
.mint-confirm>hr{width:100%;border:0;border-top:1px solid var(--border);margin:21px 0}
.mint-confirm>.button{min-height:46px;white-space:normal}
.mint-confirm>p.mint-message{margin:12px 0 0;color:var(--gold)}

/* Pack choice stays before the edition figures and checkout, on every screen size. */
.mint-pack-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 22px;justify-content:stretch}
.mint-pack-links .button{width:100%;min-width:0;min-height:48px;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
@media(max-width:600px){.mint-pack-links{gap:8px;margin-bottom:18px}.mint-pack-links .button{padding:11px 8px;min-height:57px;font-size:12px}}

/* The same checkout is available directly in each of the three pack cards. */
.mint-order-controls{display:grid;gap:16px;min-width:0}
.case-card .mint-checkout-compact{gap:12px;margin:2px 0 0;padding:16px 0 0}
.case-card .mint-checkout-compact .mint-price-line{font-size:12px;gap:6px 10px}
.case-card .mint-checkout-compact .mint-price-line strong{font-size:18px}
.case-card .mint-checkout-compact .mint-order-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px}
.case-card .mint-checkout-compact .mint-quantity-label{display:grid;justify-content:stretch;gap:7px;min-width:0;font-size:12px}
.case-card .mint-checkout-compact .mint-quantity-label input{width:100%;max-width:100%;min-width:0;min-height:44px;padding:9px 10px;font-size:16px}
.case-card .mint-checkout-compact .mint-total{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:7px;border:0;padding:0;text-align:right}
.case-card .mint-checkout-compact .mint-total strong{display:flex;align-items:center;justify-content:flex-end;min-height:44px;font-size:19px}
.case-card .mint-checkout-compact p{min-height:0;margin:0;font-size:11px;line-height:1.5}
.case-card .mint-checkout-compact .mint-network-note{color:#b8c9ee}
.case-card .mint-checkout-compact .button{margin:0;min-height:46px;padding:11px 9px;white-space:normal;line-height:1.45;font-size:13px}
.case-card .mint-checkout-compact .mint-refresh{min-height:32px;padding:5px 7px;font-size:12px}
.case-card .mint-case-link{background:none;border:0;display:flex;align-items:center;justify-content:center;min-height:44px;margin:8px 0 14px;color:var(--lime);font-size:13px;line-height:1.45;text-decoration:underline;text-underline-offset:4px}
.case-card .mint-card-demo{padding-top:14px;border-top:1px solid var(--border);margin-top:4px}
.case-card .mint-card-demo .button{min-height:44px;white-space:normal;line-height:1.45}

@media(max-width:600px){.case-grid{grid-template-columns:minmax(0,1fr)}.case-card .crate-sprite{max-width:260px}}

@media(max-width:600px){.mint-edition-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.mint-edition-overview>div:first-child{grid-column:auto;flex-direction:column;align-items:flex-start;justify-content:flex-start}}


/* dist/giveaways.css */
.giveaways-page{min-width:0}
.giveaway-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.8fr);gap:34px;padding:34px;border:1px solid #5b546d;border-radius:18px;background:radial-gradient(ellipse at 3% 0%,#49624955,transparent 60%),linear-gradient(125deg,#302b45,#262336);overflow:hidden}
.giveaway-hero-copy{min-width:0;align-self:center}
.giveaway-hero .eyebrow{color:var(--gold);font-size:11px;letter-spacing:1.65px;line-height:1.6}
.giveaway-phase{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;color:var(--lime);margin:20px 0 14px;padding:6px 10px;border:1px solid #98ba6d55;border-radius:30px;background:#c5ef8a09}
.giveaway-phase i{height:6px;width:6px;flex:none;border-radius:50%;background:var(--lime)}
.giveaway-hero h2{font-size:clamp(25px,3.5vw,43px);line-height:1.12;letter-spacing:-1px;margin:0 0 17px;max-width:640px;overflow-wrap:break-word}
.giveaway-hero-copy>p{font-size:15px;line-height:1.75;color:#c6bdd6;max-width:650px;margin:0}
.giveaway-hero-facts{display:flex;gap:26px;flex-wrap:wrap;margin:27px 0 13px;padding-top:22px;border-top:1px solid #90849933}
.giveaway-hero-facts>span{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}
.giveaway-hero-facts b{font-size:23px;color:var(--ink);line-height:1.25;font-variant-numeric:tabular-nums}
.giveaway-hero-copy>.giveaway-count-note{font-size:11px;line-height:1.55;color:var(--muted)}
[data-giveaway-entry]{min-width:0;display:flex}
.giveaway-entry{width:100%;align-self:center;padding:25px;background:#211e31c9;border:1px solid #655872;border-radius:13px;box-shadow:0 12px 32px #100b171f}
.giveaway-entry h3{font-size:21px;line-height:1.35;margin:0 0 12px}
.giveaway-entry p{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 18px}
.giveaway-entry .giveaway-entry-note{font-size:11px;margin:13px 0 0;line-height:1.7}
.giveaway-join{width:100%;min-height:50px;line-height:1.4;white-space:normal;display:flex;justify-content:center;gap:12px}
.giveaway-join:disabled{opacity:.68}
.giveaway-rules-link,.giveaway-refresh{display:inline-block;margin:16px 0 0;color:var(--lime);font-size:12px;line-height:1.55;text-decoration:underline;text-underline-offset:4px;background:none;border:0;padding:0;text-align:left}
.giveaway-entry-check{width:36px;height:36px;display:grid;place-items:center;background:#c5ef8a1f;color:var(--lime);border:1px solid #94bb6577;border-radius:50%;font-size:20px;margin:0 0 13px}
.giveaway-entry.is-registered{border-color:#8caf6588}
.giveaway-entry.is-registered .giveaway-join{opacity:1;color:var(--lime);background:#334133;border:1px solid #7da15555;box-shadow:none;cursor:default}
.giveaway-wallet{font:12px ui-monospace,monospace;display:inline-block;color:var(--ink);overflow-wrap:anywhere}
.giveaway-entry p.giveaway-error{margin:14px 0 0;padding:10px;border:1px solid #e8b87c55;border-radius:7px;background:#e8b87c09;color:var(--gold);font-size:12px}
.giveaway-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:32px 0 18px}
.giveaway-section-title h3,.giveaway-how>h3,.giveaway-rules h3{margin:0;font-size:23px;line-height:1.35}
.giveaway-section-title>span{font-size:12px;color:var(--muted)}
.giveaways-page .giveaway-grid{gap:18px}
.giveaways-page .giveaway-card{padding:20px;background:linear-gradient(150deg,#332e48,#292539);border-color:#554c68}
.giveaways-page .giveaway-card.case-animals{border-top:3px solid #b99ddb}
.giveaways-page .giveaway-card.case-tools{border-top:3px solid #86bdac}
.giveaways-page .giveaway-card.case-supplies{border-top:3px solid #d0b772}
.giveaway-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;text-align:left}
.giveaway-card-top>span{font-size:10px;letter-spacing:1.5px;color:var(--muted);line-height:1.5}
.giveaway-card-top>strong{font-size:29px;color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.giveaway-card-top small{font-size:11px;font-weight:400}
.giveaways-page .giveaway-card>.crate-sprite{margin:6px auto 8px;max-width:165px}
.giveaways-page .giveaway-card h3{margin:0 0 8px;font-size:20px}
.giveaway-card-copy{color:var(--muted);font-size:13px;line-height:1.55;margin:0;flex:1}
.giveaways-page .giveaway-card .button{margin-top:16px;min-height:43px;font-size:13px;white-space:normal;line-height:1.4}
.giveaway-how{padding:29px 0 30px}
.giveaway-how ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:21px 0 0;padding:0;gap:26px}
.giveaway-how li{display:flex;gap:13px;align-items:flex-start;min-width:0}
.giveaway-how li>span{font:700 12px ui-monospace,monospace;display:grid;place-items:center;flex:none;width:31px;height:31px;border-radius:8px;color:var(--lime);background:#c5ef8a0a;border:1px solid #c5ef8a33}
.giveaway-how li b{font-size:14px;line-height:1.5}
.giveaway-how li p{margin:7px 0 0;font-size:12px;line-height:1.7;color:var(--muted)}
.giveaway-rules{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(0,1.5fr);gap:35px;padding:25px;scroll-margin-top:20px}
.giveaway-rules .eyebrow{font-size:10px;color:var(--gold);line-height:1.7;margin-bottom:12px}
.giveaway-rules h3{font-size:20px}
.giveaway-rules p{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:0}
.giveaway-rules ul{margin:0;padding-left:18px;font-size:12px;line-height:1.75;color:var(--muted)}
.giveaway-rules li+li{margin-top:9px}
.giveaway-rules li::marker{color:var(--lime)}
@media(max-width:1050px){.giveaway-hero{gap:23px;padding:26px;grid-template-columns:minmax(0,1fr) minmax(290px,.8fr)}.giveaway-hero-facts{gap:18px}.giveaway-hero-facts b{font-size:20px}.giveaway-how ol{gap:18px}.giveaways-page .giveaway-card{padding:17px}.giveaway-entry{padding:21px}}
@media(max-width:760px){.giveaway-hero{grid-template-columns:1fr;gap:24px;padding:23px;border-radius:13px}.giveaway-hero h2{font-size:32px;max-width:550px}.giveaway-entry{padding:22px}.giveaway-hero-facts{gap:22px}.giveaway-section-title{align-items:flex-start;flex-direction:column;gap:7px;margin-top:26px}.giveaways-page .giveaway-grid{grid-template-columns:1fr}.giveaways-page .giveaway-card{padding:22px}.giveaways-page .giveaway-card>.crate-sprite{max-width:165px}.giveaway-card-copy{flex:initial}.giveaway-how ol{grid-template-columns:1fr;gap:21px}.giveaway-rules{grid-template-columns:1fr;gap:20px;padding:23px}.giveaway-rules p{margin-top:12px}.giveaway-how>h3,.giveaway-section-title h3{font-size:21px}}
@media(max-width:390px){.giveaway-hero{padding:19px}.giveaway-entry{padding:18px}.giveaway-hero h2{font-size:29px}.giveaway-hero-facts{gap:16px}.giveaway-hero-facts b{font-size:19px}}
.giveaway-balance-rule{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin:18px 0 12px;border:1px solid #ffd68433;border-radius:9px;background:#ffd68409}
.giveaway-balance-rule>span{font-size:20px;color:var(--gold);line-height:1.3}
.giveaway-balance-rule>div{display:grid;gap:5px;min-width:0}
.giveaway-balance-rule b{font-size:13px;color:var(--gold);line-height:1.5}
.giveaway-balance-rule div>span{font-size:11px;line-height:1.65;color:var(--muted)}
.giveaway-consent{display:flex;align-items:flex-start;gap:10px;text-align:left;font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 18px;cursor:pointer}
.giveaway-consent input{width:18px;height:18px;flex:none;margin:2px 0 0;accent-color:var(--lime)}
.giveaway-consent input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.giveaway-qualification{display:flex;align-items:flex-start;gap:9px;margin:0 0 18px;padding:11px;background:#ffd68408;border:1px solid #ffd68433;border-radius:8px}
.giveaway-qualification .giveaway-qualification-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none;margin-top:7px}
.giveaway-qualification p{font-size:12px;margin:0;color:var(--gold)}
.giveaway-qualification[data-qualification=eligible]{background:#c5ef8a09;border-color:#c5ef8a44}
.giveaway-qualification[data-qualification=eligible] p{color:var(--lime)}
.giveaway-qualification[data-qualification=eligible] .giveaway-qualification-dot{background:var(--lime)}
.giveaway-entry .giveaway-refresh{display:block}

.giveaway-distribution-note{margin:16px 0 0;padding:12px 16px;border-left:2px solid #c5ef8a66;border-radius:0 6px 6px 0;background:#c5ef8a06;color:var(--muted);font-size:13px;line-height:1.65}


/* dist/roadmap.css */
/* Public roadmap. All page styles are scoped to fv-roadmap. */
.fv-roadmap {
  min-width: 0;
  padding: 28px 0 16px;
  color: var(--ink, #faf3e5);
}

.fv-roadmap-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr);
  gap: 48px;
  align-items: center;
  padding: 44px;
  overflow: hidden;
  background: radial-gradient(ellipse at 0 0, #788c5026, transparent 60%), linear-gradient(125deg, #302e3e, #292438);
  border: 1px solid #615a67;
  border-radius: 18px;
  box-shadow: 0 5px 0 #14121f55;
}

.fv-roadmap-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 44px;
  width: 64px;
  height: 3px;
  background: var(--lime, #c5ef8a);
  border-radius: 0 0 4px 4px;
}

.fv-roadmap-hero-copy {
  min-width: 0;
}

.fv-roadmap-eyebrow {
  color: var(--lime, #c5ef8a);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 1.8px;
  margin: 0 0 17px;
}

.fv-roadmap-hero h1 {
  max-width: 650px;
  font-size: clamp(32px, 3.8vw, 52px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -1.3px;
  margin: 0;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.fv-roadmap-intro {
  max-width: 560px;
  margin: 21px 0 0;
  color: #c8c0d5;
  font-size: 17px;
  line-height: 1.75;
  text-wrap: pretty;
}

.fv-roadmap-demo {
  min-width: 0;
  padding: 24px;
  background: #211e3099;
  border: 1px solid #77718455;
  border-radius: 12px;
}

.fv-roadmap-demo h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 19px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}

.fv-roadmap-demo-dot,
.fv-roadmap-status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: 50%;
  background: var(--lime, #c5ef8a);
}

.fv-roadmap-demo-dot {
  box-shadow: 0 0 0 4px #c5ef8a13;
}

.fv-roadmap-features {
  display: grid;
  gap: 13px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.fv-roadmap-feature {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 15px;
  line-height: 1.45;
  color: #e0d8e9;
}

.fv-roadmap-feature-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: none;
  border: 1px solid #8ab66b33;
  border-radius: 9px;
  color: var(--lime, #c5ef8a);
  background: #c5ef8a0b;
}

.fv-roadmap-feature-icon-1 {
  border-color: #d8b06033;
  background: #ffd6840b;
  color: var(--gold, #ffd684);
}

.fv-roadmap-feature-icon-2 {
  border-color: #84bebe33;
  background: #8cd4dc0b;
  color: #a2d3d3;
}

.fv-roadmap-feature-icon svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fv-roadmap-path-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin: 38px 0 20px;
}

.fv-roadmap-path-heading h2 {
  max-width: 550px;
  margin: 0;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -.4px;
  text-wrap: balance;
}

.fv-roadmap-path-heading p {
  max-width: 340px;
  margin: 0;
  color: var(--muted, #b6acc8);
  font-size: 14px;
  line-height: 1.6;
}

.fv-roadmap-phases {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fv-roadmap-phase {
  position: relative;
  display: flex;
  flex-direction: column;
  grid-column: span 5;
  min-width: 0;
  padding: 29px 30px 30px;
  background: linear-gradient(145deg, #302b42, #292538);
  border: 1px solid #514960;
  border-radius: 14px;
}

.fv-roadmap-phase:nth-child(even) {
  grid-column: span 7;
}

.fv-roadmap-phase-current {
  display: grid;
  grid-template-columns: minmax(225px, .78fr) minmax(0, 1.5fr);
  align-items: center;
  gap: 40px;
  grid-column: 1 / -1;
  padding: 30px;
  background: linear-gradient(115deg, #38423366, #2c2b3b 80%);
  border-color: #90aa698c;
}

/* Current milestone and the final launched feature span the timeline. */
.fv-roadmap-phase:nth-last-child(2),
.fv-roadmap-phase.fv-roadmap-phase-current { grid-column: 1 / -1; }

.fv-roadmap-phase-current::before {
  content: '';
  position: absolute;
  top: 27px;
  bottom: 27px;
  left: -1px;
  width: 3px;
  background: var(--lime, #c5ef8a);
  border-radius: 0 3px 3px 0;
}

.fv-roadmap-phase-heading {
  min-width: 0;
}

.fv-roadmap-phase-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.fv-roadmap-number {
  color: #aa9abd;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -1px;
  font-variant-numeric: tabular-nums;
}

.fv-roadmap-phase-current .fv-roadmap-number {
  color: var(--lime, #c5ef8a);
}

.fv-roadmap-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  padding: 5px 9px;
  border: 1px solid #76658477;
  border-radius: 20px;
  color: #c6b9d6;
  background: #b49bdf07;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.fv-roadmap-phase-current .fv-roadmap-status {
  border-color: #91b16b66;
  background: #c5ef8a0a;
  color: var(--lime, #c5ef8a);
}

.fv-roadmap-phase:nth-child(2) .fv-roadmap-status {
  border-color: #c2a76855;
  background: #ffd68409;
  color: #e4ca93;
}

 .fv-roadmap-phase[data-roadmap-state="launched"] .fv-roadmap-status {
  border-color: #91b16b66;
  color: var(--lime, #c5ef8a);
}

.fv-roadmap-phase-ongoing .fv-roadmap-status {
  border-color: #8aabad55;
  background: #a2d3d30a;
  color: #acd0ce;
}

.fv-roadmap-phase h3 {
  margin: 0 0 18px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -.4px;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.fv-roadmap-phase-current h3 {
  margin-bottom: 0;
}

.fv-roadmap-phase-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.fv-roadmap-phase-copy p {
  margin: 0;
  color: #ccc3d7;
  font-size: 16px;
  line-height: 1.75;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.fv-roadmap-phase-current .fv-roadmap-phase-copy p {
  color: #dad4df;
}

.fv-roadmap-phase-copy p + p {
  margin-top: 21px;
  padding-top: 18px;
  border-top: 1px solid #9d8fa529;
}

.fv-roadmap-phase-ongoing .fv-roadmap-phase-copy p + p {
  color: #b3d4cc;
}

.fv-roadmap-note {
  max-width: 1080px;
  margin: 26px 0 5px;
  padding: 0 2px;
  color: #b6acc8;
  font-size: 14px;
  line-height: 1.8;
  text-wrap: pretty;
}

.roadmap-entry {
  color: var(--lime, #c5ef8a);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: #c5ef8a66;
  line-height: 1.6;
}

.roadmap-entry:hover {
  text-decoration-color: currentColor;
}

body.game-locked .tabs button.roadmap-nav[data-view="roadmap"] {
  display: inline-flex !important;
}

body.roadmap-active .page-heading {
  display: none;
}

@media (max-width: 1100px) {
  .fv-roadmap-hero {
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, .8fr);
    gap: 30px;
    padding: 34px;
  }

  .fv-roadmap-phase {
    padding: 25px;
  }

  .fv-roadmap-phase-current {
    gap: 30px;
  }
}

@media (max-width: 800px) {
  .fv-roadmap-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .fv-roadmap-hero h1 {
    max-width: 600px;
    font-size: 38px;
  }

  .fv-roadmap-demo {
    padding: 21px;
  }

  .fv-roadmap-demo h2 {
    margin-bottom: 17px;
  }

  .fv-roadmap-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .fv-roadmap-feature {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
  }

  .fv-roadmap-path-heading {
    display: block;
    margin-top: 30px;
  }

  .fv-roadmap-path-heading p {
    max-width: none;
    margin-top: 10px;
  }

  .fv-roadmap-phases {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .fv-roadmap-phase,
  .fv-roadmap-phase:nth-child(even) {
    grid-column: auto;
  }

  .fv-roadmap-phase-current {
    display: flex;
    gap: 0;
  }

  .fv-roadmap-phase-current h3 {
    margin-bottom: 18px;
  }

  .fv-roadmap-phase-top {
    justify-content: flex-start;
    gap: 16px;
  }
}

@media (max-width: 480px) {
  .fv-roadmap {
    padding-top: 20px;
  }

  .fv-roadmap-hero {
    padding: 26px 21px;
    gap: 24px;
    border-radius: 14px;
  }

  .fv-roadmap-hero::before {
    left: 21px;
  }

  .fv-roadmap-eyebrow {
    font-size: 10px;
    letter-spacing: 1.2px;
    margin-bottom: 14px;
  }

  .fv-roadmap-hero h1 {
    font-size: 32px;
    letter-spacing: -.8px;
  }

  .fv-roadmap-intro {
    font-size: 16px;
    line-height: 1.65;
    margin-top: 17px;
  }

  .fv-roadmap-demo {
    padding: 18px;
  }

  .fv-roadmap-features {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .fv-roadmap-feature {
    flex-direction: row;
    align-items: center;
    font-size: 14px;
  }

  .fv-roadmap-feature-icon {
    width: 33px;
    height: 33px;
  }

  .fv-roadmap-feature-icon svg {
    width: 23px;
    height: 23px;
  }

  .fv-roadmap-path-heading h2 {
    font-size: 22px;
  }

  .fv-roadmap-phase {
    padding: 23px 21px;
    border-radius: 12px;
  }

  .fv-roadmap-phase h3 {
    font-size: 22px;
  }

  .fv-roadmap-phase-top {
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 16px;
  }

  .fv-roadmap-status {
    font-size: 10px;
    padding: 5px 8px;
  }

  .fv-roadmap-phase-copy p {
    line-height: 1.7;
  }

  .fv-roadmap-note {
    margin-top: 22px;
    font-size: 13px;
    line-height: 1.8;
  }
}


/* dist/whitepaper.css */
/* Public document view. Article styles stay inside fv-whitepaper. */
.fv-whitepaper {
  min-width: 0;
  padding: 28px 0 18px;
  color: var(--ink, #faf3e5);
}

.fv-whitepaper-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 216px;
  align-items: center;
  gap: 36px;
  overflow: hidden;
  padding: 40px 44px;
  border: 1px solid #62576d;
  border-radius: 18px;
  background: radial-gradient(ellipse at 100% 20%, #6f876127, transparent 55%), linear-gradient(125deg, #332c46, #292538);
  box-shadow: 0 5px 0 #15111f44;
}

.fv-whitepaper-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 44px;
  width: 64px;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: var(--lime, #c5ef8a);
}

.fv-whitepaper-hero-copy {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.fv-whitepaper-eyebrow {
  margin: 0 0 17px;
  color: var(--lime, #c5ef8a);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 1.8px;
}

.fv-whitepaper-hero h1 {
  max-width: 750px;
  margin: 0;
  font-size: clamp(30px, 3.5vw, 46px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -1px;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.fv-whitepaper-intro {
  margin: 18px 0 0;
  max-width: 640px;
  color: #cfc5dc;
  font-size: 17px;
  line-height: 1.75;
  text-wrap: pretty;
}

.fv-whitepaper-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin-top: 21px;
  color: #bfb2ce;
  font-size: 13px;
  line-height: 1.6;
}

.fv-whitepaper-version {
  display: inline-block;
  padding: 4px 9px;
  color: #ded2ed;
  border: 1px solid #82728f70;
  border-radius: 5px;
  background: #b39ace09;
  font-size: 12px;
}

.fv-whitepaper-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 25px;
}

.fv-whitepaper-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  max-width: 100%;
  padding: 11px 17px;
  border: 1px solid #d9f9ad;
  border-radius: 7px;
  background: var(--lime, #c5ef8a);
  box-shadow: 0 3px 0 #738c50;
  color: #283b22;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}

.fv-whitepaper-download:hover {
  background: #d1f6a0;
}

.fv-whitepaper-download svg,
.fv-whitepaper-roadmap svg {
  flex: none;
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fv-whitepaper-download-note {
  color: #b7abc6;
  font-size: 12px;
  line-height: 1.6;
}

.fv-whitepaper-hero-art {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  aspect-ratio: 1;
}

.fv-whitepaper-hero-art img {
  position: relative;
  width: 168px;
  height: 168px;
  max-width: 100%;
  transform: rotate(-7deg);
  filter: drop-shadow(0 15px 8px #15131e44);
}

.fv-whitepaper-art-ring {
  position: absolute;
  inset: 0;
  border: 1px solid #a1b98022;
  border-radius: 50%;
  background: #b2ce8805;
}

.fv-whitepaper-art-ring::after {
  content: '';
  position: absolute;
  inset: 17px;
  border: 1px dashed #b7c6a429;
  border-radius: 50%;
}

.fv-whitepaper-layout {
  display: grid;
  grid-template-columns: 254px minmax(0, 1fr);
  gap: 48px;
  max-width: 1200px;
  margin: 42px auto 0;
}

.fv-whitepaper-sidebar {
  min-width: 0;
}

.fv-whitepaper-toc {
  position: sticky;
  top: 24px;
  max-height: calc(100dvh - 48px);
  padding: 4px 24px 6px 0;
  overflow-y: auto;
  border-right: 1px solid #63557266;
  scrollbar-width: thin;
  scrollbar-color: #64556f transparent;
}

.fv-whitepaper-toc h2 {
  margin: 0 0 19px;
  color: #f0e6f6;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0;
}

.fv-whitepaper-toc ol {
  display: grid;
  gap: 5px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.fv-whitepaper-toc li {
  min-width: 0;
}

.fv-whitepaper-toc li a {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 9px;
  padding: 9px 8px 9px 0;
  color: #c1b4ce;
  border-radius: 5px;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.fv-whitepaper-toc li a:hover {
  background: #d8c2f30a;
  color: var(--ink, #faf3e5);
}

.fv-whitepaper-toc-number {
  color: #8e809f;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  line-height: 1.9;
}

.fv-whitepaper-toc li a:hover .fv-whitepaper-toc-number {
  color: var(--lime, #c5ef8a);
}

.fv-whitepaper-roadmap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  color: var(--lime, #c5ef8a);
  font-size: 13px;
  line-height: 1.65;
  text-decoration: none;
}

.fv-whitepaper-roadmap:hover span {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.fv-whitepaper-toc > .fv-whitepaper-roadmap {
  margin-top: 22px;
  padding-top: 19px;
  border-top: 1px solid #63557266;
}

.fv-whitepaper-article {
  min-width: 0;
  max-width: 850px;
}

.fv-whitepaper-section {
  min-width: 0;
  margin-bottom: 37px;
  padding-bottom: 34px;
  border-bottom: 1px solid #62566e66;
  scroll-margin-top: 24px;
}

.fv-whitepaper-section h2 {
  margin: 0 0 21px;
  color: #faf1e1;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -.4px;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.fv-whitepaper-section h3 {
  margin: 29px 0 14px;
  color: #e7ddec;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -.15px;
}

.fv-whitepaper-section h2 + h3 {
  margin-top: 0;
}

.fv-whitepaper-section p,
.fv-whitepaper-section li {
  color: #cec5d9;
  font-size: 16px;
  line-height: 1.85;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.fv-whitepaper-section p {
  margin: 0 0 17px;
}

.fv-whitepaper-section p:last-child {
  margin-bottom: 0;
}

.fv-whitepaper-section ul {
  display: grid;
  gap: 8px;
  margin: 8px 0 22px;
  padding: 0 0 0 21px;
}

.fv-whitepaper-section li {
  padding-left: 5px;
}

.fv-whitepaper-section li::marker {
  color: #acc880;
  font-size: 12px;
}

.fv-whitepaper-inline-link {
  color: #c9e4a1;
  text-decoration: underline;
  text-decoration-color: #c9e4a166;
  text-underline-offset: 4px;
}

.fv-whitepaper-inline-link:hover {
  text-decoration-color: currentColor;
}

.fv-whitepaper-table-wrap {
  max-width: 100%;
  margin: 4px 0 21px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  border: 1px solid #655874;
  border-radius: 10px;
  scrollbar-width: thin;
  scrollbar-color: #80728c #282437;
}

.fv-whitepaper-table-wrap:focus-visible {
  outline: 3px solid var(--gold, #ffd684);
  outline-offset: 4px;
}

.fv-whitepaper-table {
  width: 100%;
  min-width: 580px;
  border-collapse: collapse;
  text-align: left;
  font-size: 14px;
  line-height: 1.75;
}

.fv-whitepaper-table th,
.fv-whitepaper-table td {
  padding: 15px 17px;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.fv-whitepaper-table thead th {
  background: #3a334a;
  color: #e2d6ed;
  font-size: 12px;
  font-weight: 600;
}

.fv-whitepaper-table tbody th {
  width: 25%;
  color: #ece1d2;
  font-weight: 500;
}

.fv-whitepaper-table tbody td {
  color: #c8bdd4;
}

.fv-whitepaper-table tbody td:last-child {
  width: 23%;
  color: #bad198;
  font-size: 13px;
}

.fv-whitepaper-table tbody tr {
  background: #2d283b;
  border-top: 1px solid #6b5d764f;
}

.fv-whitepaper-table tbody tr:nth-child(even) {
  background: #312b40;
}

.fv-whitepaper-end {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin: -9px 0 21px;
}

.whitepaper-entry {
  display: inline-flex;
  color: var(--lime, #c5ef8a);
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-color: #c5ef8a66;
  text-underline-offset: 4px;
}

.whitepaper-entry:hover {
  text-decoration-color: currentColor;
}

.footer-roadmap {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 20px;
}

.game-auth-copy > .whitepaper-entry {
  margin-top: 8px;
}

body.game-locked .tabs button.whitepaper-nav[data-view="whitepaper"] {
  display: inline-flex !important;
}

body.whitepaper-active .page-heading {
  display: none;
}

@media (max-width: 1100px) {
  .fv-whitepaper-hero {
    grid-template-columns: minmax(0, 1fr) 170px;
    gap: 28px;
    padding: 34px;
  }

  .fv-whitepaper-hero-art img {
    width: 138px;
    height: 138px;
  }

  .fv-whitepaper-layout {
    grid-template-columns: 225px minmax(0, 1fr);
    gap: 32px;
  }

  .fv-whitepaper-toc {
    padding-right: 20px;
  }
}

@media (max-width: 800px) {
  .fv-whitepaper-hero {
    grid-template-columns: minmax(0, 1fr) 128px;
    padding: 30px;
    gap: 20px;
  }

  .fv-whitepaper-hero-art img {
    width: 110px;
    height: 110px;
  }

  .fv-whitepaper-hero h1 {
    font-size: 34px;
  }

  .fv-whitepaper-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    margin-top: 30px;
  }

  .fv-whitepaper-toc {
    position: static;
    max-height: none;
    padding: 22px;
    border: 1px solid #63557288;
    border-radius: 12px;
    background: #2c273955;
  }

  .fv-whitepaper-toc h2 {
    margin-bottom: 13px;
  }

  .fv-whitepaper-toc ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3px 20px;
  }

  .fv-whitepaper-toc > .fv-whitepaper-roadmap {
    margin-top: 16px;
    padding-top: 14px;
  }

  .fv-whitepaper-article {
    max-width: none;
  }

  .fv-whitepaper-section {
    scroll-margin-top: 16px;
  }
}

@media (max-width: 520px) {
  .fv-whitepaper {
    padding-top: 20px;
  }

  .fv-whitepaper-hero {
    display: block;
    padding: 27px 22px;
    border-radius: 14px;
  }

  .fv-whitepaper-hero::before {
    left: 22px;
  }

  .fv-whitepaper-hero-art {
    display: none;
  }

  .fv-whitepaper-eyebrow {
    margin-bottom: 14px;
    font-size: 10px;
    letter-spacing: 1.1px;
  }

  .fv-whitepaper-hero h1 {
    font-size: 31px;
    line-height: 1.17;
    letter-spacing: -.7px;
  }

  .fv-whitepaper-intro {
    margin-top: 16px;
    font-size: 16px;
    line-height: 1.7;
  }

  .fv-whitepaper-meta {
    margin-top: 17px;
    gap: 9px 12px;
    font-size: 12px;
  }

  .fv-whitepaper-hero-actions {
    gap: 12px;
    margin-top: 22px;
  }

  .fv-whitepaper-download {
    font-size: 13px;
    padding: 11px 14px;
  }

  .fv-whitepaper-download-note {
    font-size: 11px;
  }

  .fv-whitepaper-layout {
    margin-top: 24px;
    gap: 30px;
  }

  .fv-whitepaper-toc {
    padding: 20px;
  }

  .fv-whitepaper-toc ol {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .fv-whitepaper-toc li a {
    font-size: 13px;
    padding: 8px 0;
  }

  .fv-whitepaper-section {
    margin-bottom: 29px;
    padding-bottom: 28px;
  }

  .fv-whitepaper-section h2 {
    margin-bottom: 18px;
    font-size: 23px;
    line-height: 1.4;
  }

  .fv-whitepaper-section h3 {
    margin-top: 25px;
    font-size: 18px;
  }

  .fv-whitepaper-section p,
  .fv-whitepaper-section li {
    line-height: 1.8;
  }

  .fv-whitepaper-table th,
  .fv-whitepaper-table td {
    padding: 13px 14px;
  }

  .fv-whitepaper-end {
    margin-top: -5px;
    gap: 22px;
  }
}


/* Consistent footer navigation, including legacy guide links. */
.site-footer .footer-roadmap {
  gap: 6px 8px;
  padding: 12px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.site-footer .footer-roadmap a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 0;
  max-width: 100%;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #d1cadf;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.site-footer .footer-roadmap a:hover,
.site-footer .footer-roadmap a:focus-visible {
  color: var(--lime);
  background: #c5ef8a0a;
  border-color: #c5ef8a40;
}
.site-footer .footer-roadmap a[aria-current="page"] {
  color: var(--lime);
  background: #c5ef8a14;
  border-color: #c5ef8a66;
}
@media (max-width: 600px) {
  .site-footer .footer-roadmap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .site-footer .footer-roadmap a {
    justify-content: center;
    text-align: center;
    border-color: #ffffff1c;
    background: #ffffff03;
  }
  .site-footer .footer-roadmap a:hover,
  .site-footer .footer-roadmap a:focus-visible,
  .site-footer .footer-roadmap a[aria-current="page"] {
    border-color: #c5ef8a66;
    background: #c5ef8a14;
  }
}


/* dist/resources.css */
/* Resource gathering and the contextual shortcuts that lead to it. */
.fv-resources {
  min-width: 0;
  padding: 7px 0 12px;
  color: var(--ink, #faf3e5);
}
.fv-resources-heading { margin: 0 0 26px; }
.fv-resources-heading .fv-resources-eyebrow {
  margin: 0 0 10px;
  color: var(--lime, #c5ef8a);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  line-height: 1.6;
}
.fv-resources-heading h2 {
  margin: 0 0 12px;
  font-size: clamp(27px, 3vw, 39px);
  font-weight: 500;
  letter-spacing: -.8px;
  line-height: 1.2;
  text-wrap: balance;
}
.fv-resources-heading > p:last-child {
  margin: 0;
  color: #c2b8d1;
  font-size: 16px;
  line-height: 1.7;
}
.fv-resources-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 22px;
}
.fv-resources-card {
  --resource-accent: #c5ef8a;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #5b5266;
  border-radius: 16px;
  background: linear-gradient(160deg, #312d42, #292538);
  box-shadow: 0 4px 0 #15121f55;
  scroll-margin-top: 22px;
}
.fv-resources-quarry { --resource-accent: #b0d6df; }
.fv-resources-sawmill { --resource-accent: #efd097; }
.fv-resources-card-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 15px;
  padding: 23px 24px 0;
}
.fv-resources-card-heading > div:first-child { min-width: 0; }
.fv-resources-card-heading h3 {
  margin: 0 0 9px;
  color: #fbf0dd;
  font-size: 25px;
  font-weight: 500;
  letter-spacing: -.5px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.fv-resources-card-heading p {
  min-height: 42px;
  margin: 0;
  color: #bfb5ca;
  font-size: 13px;
  line-height: 1.65;
}
.fv-resources-stock {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  max-width: 43%;
  padding: 7px 9px 6px;
  border: 1px solid #a299b22b;
  border-radius: 8px;
  background: #17152140;
}
.fv-resources-stock > span {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  color: #efe5dc;
  font-size: 15px;
  line-height: 1.4;
}
.fv-resources-stock b {
  min-width: 0;
  font-weight: 500;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}
.fv-resources-stock small { color: #b3a6bf; font-size: 10px; line-height: 1.5; }
.fv-resources-stock .resource-icon { width: 24px; height: 24px; flex: none; }
.fv-resources-scene {
  position: relative;
  flex: none;
  width: 100%;
  height: 205px;
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(ellipse at 50% 66%, #78985023, transparent 66%);
}
.fv-resources-quarry .fv-resources-scene {
  background: radial-gradient(ellipse at 50% 66%, #9fbac424, transparent 66%);
}
.fv-resources-sawmill .fv-resources-scene {
  background: radial-gradient(ellipse at 50% 66%, #c69d6324, transparent 66%);
}
.fv-resources-scene canvas {
  position: absolute;
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
}
.fv-resources-scene canvas { z-index: 1; }
.fv-resources-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 0 24px 21px;
}
.fv-resources-yield {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 15px 0 17px;
  border-top: 1px solid #a295b227;
}
.fv-resources-yield > div { min-width: 0; }
.fv-resources-yield > div > span {
  display: block;
  margin-bottom: 6px;
  color: #b5aac2;
  font-size: 11px;
  line-height: 1.5;
}
.fv-resources-yield strong {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  color: var(--resource-accent);
  font-size: 27px;
  font-weight: 500;
  letter-spacing: -.6px;
  line-height: 1.2;
}
.fv-resources-yield strong > span:not(.resource-icon) {
  align-self: center;
  margin-left: 3px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
}
.fv-resources-yield .resource-icon { width: 31px; height: 31px; flex: none; }
.fv-resources-output-arrow {
  display: grid;
  place-items: center;
  flex: none;
  width: 31px;
  height: 31px;
  border: 1px solid #b2b69724;
  border-radius: 50%;
  color: var(--resource-accent);
  background: #c5ef8a08;
}
.fv-resources-output-arrow svg { width: 17px; height: 17px; }
.fv-resources-details {
  display: grid;
  gap: 12px;
  margin: 0 0 20px;
  padding: 0;
}
.fv-resources-details > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.fv-resources-details dt {
  max-width: 48%;
  padding-top: 2px;
  color: #b4a8c2;
  font-size: 12px;
  line-height: 1.6;
}
.fv-resources-details dd {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
  min-width: 0;
  margin: 0;
  color: #e0d5e9;
  font-size: 13px;
  line-height: 1.6;
  text-align: right;
}
.fv-resources-details dd > svg { width: 16px; height: 16px; color: #ae9dbc; }
.fv-resources-details .fv-resources-cost { gap: 3px 10px; }
.fv-resources-cost > span {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  max-width: 100%;
}
.fv-resources-cost b { font-weight: 500; }
.fv-resources-cost .resource-icon { width: 21px; height: 21px; flex: none; }
.fv-resources-current-tool {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 0;
  padding: 13px 12px;
  border: 1px solid #65587066;
  border-radius: 9px;
  background: #211d2f66;
}
.fv-resources-tool-art {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
}
.fv-resources-tool-art .fv-resources-equipped-art {
  display: block;
  flex: none;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  image-rendering: pixelated;
}
.fv-resources-current-tool > div { display: grid; gap: 3px; min-width: 0; }
.fv-resources-current-tool > div > span { color: #a99bb9; font-size: 10px; line-height: 1.5; }
.fv-resources-current-tool strong {
  color: #e7dfee;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.fv-resources-current-tool small { color: #b4c596; font-size: 11px; line-height: 1.5; }
.fv-resources-choose-tool {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 40px;
  margin: 8px 0 16px;
  padding: 8px 3px;
  border: 0;
  background: transparent;
  color: #d2c3e4;
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}
.fv-resources-choose-tool:hover { color: var(--lime, #c5ef8a); }
.fv-resources-choose-tool svg { width: 16px; height: 16px; flex: none; }
.fv-resources-action {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 13px;
  width: 100%;
  min-height: 47px;
  padding: 11px 13px;
  border: 1px solid #d8f3ae;
  border-radius: 8px;
  background: var(--lime, #c5ef8a);
  color: #283c21;
  box-shadow: 0 3px 0 #718e4c;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}
.fv-resources-action:hover:enabled { background: #d2f7a1; }
.fv-resources-action:disabled {
  opacity: 1;
  background: #43413e;
  border-color: #7d806455;
  box-shadow: 0 3px 0 #1c1b28;
  color: #b9bba6;
  cursor: not-allowed;
}
.fv-resources-action svg { width: 17px; height: 17px; flex: none; }
.fv-resources-action-note {
  min-height: 38px;
  margin: 12px 0 0;
  color: #b5a9c1;
  font-size: 11px;
  line-height: 1.7;
  text-wrap: pretty;
}
.fv-resources-guide {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 23px;
  padding: 20px 23px;
  border: 1px solid #76698244;
  border-radius: 11px;
  background: #c2a2e205;
}
.fv-resources-guide-symbol {
  display: grid;
  place-items: center;
  flex: none;
  width: 37px;
  height: 37px;
  border-radius: 50%;
  background: #b3d78713;
  color: var(--lime, #c5ef8a);
}
.fv-resources-guide-symbol svg { width: 20px; height: 20px; }
.fv-resources-guide h3 { margin: 0 0 6px; font-size: 15px; font-weight: 500; line-height: 1.5; }
.fv-resources-guide p { margin: 0; color: #beb2cb; font-size: 13px; line-height: 1.7; }
.fv-resources svg:not(.tier-tool-art),
.fv-resources-shortcut svg,
.fv-resources-tool-help svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.fv-resources-shortcut {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #91a67170;
  border-radius: 12px;
  background: linear-gradient(105deg, #414b352e, #302b40);
}
.fv-resources-shortcut > img { flex: none; width: 43px; height: 43px; }
.fv-resources-shortcut-copy { flex: 1; min-width: 170px; }
.fv-resources-shortcut h3 { margin: 0 0 5px; color: #f0e5d2; font-size: 17px; line-height: 1.4; font-weight: 500; }
.fv-resources-shortcut p { margin: 0; color: #bdb3c9; font-size: 12px; line-height: 1.6; }
.fv-resources-shortcut-links { display: flex; flex-wrap: wrap; gap: 8px; }
.fv-resources-shortcut-links a,
.fv-resources-help-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 39px;
  max-width: 100%;
  padding: 8px 12px;
  border: 1px solid #9aab6c55;
  border-radius: 7px;
  background: #b4d8830c;
  color: var(--lime, #c5ef8a);
  font-size: 12px;
  line-height: 1.5;
  text-decoration: none;
  text-align: center;
}
.fv-resources-shortcut-links a:hover,
.fv-resources-help-link:hover { background: #b4d8831b; }
.fv-resources-shortcut-links svg,
.fv-resources-help-link svg { flex: none; width: 15px; height: 15px; }
.fv-resources-tool-help {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 18px 0 23px;
  padding: 19px 21px;
  border: 1px solid #a8bf7866;
  border-left: 3px solid #c5ef8a;
  border-radius: 9px;
  background: linear-gradient(110deg, #58633f20, #25213444);
}
.fv-resources-tool-help > div { min-width: 0; }
.fv-resources-tool-help h4 { margin: 0 0 7px; color: #e8f0d3; font-size: 16px; font-weight: 500; line-height: 1.4; }
.fv-resources-tool-help p { max-width: 760px; margin: 0; color: #c8c0d1; font-size: 14px; line-height: 1.7; }
.fv-resources-tool-help .fv-resources-help-link { flex: none; font-size: 13px; }
@media (max-width: 1100px) {
  .fv-resources-grid { gap: 16px; }
  .fv-resources-card-heading { padding: 20px 19px 0; gap: 10px; }
  .fv-resources-card-heading h3 { font-size: 22px; }
  .fv-resources-card-body { padding-right: 19px; padding-left: 19px; }
  .fv-resources-details > div { gap: 8px; }
  .fv-resources-details dt { font-size: 11px; }
  .fv-resources-details dd { font-size: 12px; }
  .fv-resources-current-tool { padding: 11px 9px; gap: 8px; }
  .fv-resources-tool-art,
  .fv-resources-tool-art .fv-resources-equipped-art { width: 40px; height: 40px; }
}
@media (max-width: 850px) {
  .fv-resources-grid { grid-template-columns: minmax(0, 1fr); max-width: 650px; margin: auto; gap: 23px; }
  .fv-resources-card-heading { padding: 23px 25px 0; }
  .fv-resources-card-heading h3 { font-size: 26px; }
  .fv-resources-card-heading p { min-height: 0; }
  .fv-resources-card-body { padding: 0 25px 21px; }
  .fv-resources-scene { height: 215px; }
  .fv-resources-details dt { font-size: 13px; }
  .fv-resources-details dd { font-size: 14px; }
  .fv-resources-action-note { min-height: 0; }
  .fv-resources-current-tool { padding: 13px; }
  .fv-resources-current-tool strong { font-size: 14px; }
  .fv-resources-tool-help { gap: 17px; align-items: flex-start; flex-direction: column; }
}
@media (max-width: 480px) {
  .fv-resources-heading { margin-bottom: 22px; }
  .fv-resources-heading h2 { font-size: 28px; }
  .fv-resources-heading .fv-resources-eyebrow { font-size: 10px; letter-spacing: 1px; }
  .fv-resources-heading > p:last-child { font-size: 15px; }
  .fv-resources-card-heading { padding: 20px 20px 0; gap: 12px; }
  .fv-resources-card-heading h3 { font-size: 24px; }
  .fv-resources-card-heading p { font-size: 12px; }
  .fv-resources-stock { padding: 6px 7px; }
  .fv-resources-stock > span { font-size: 14px; }
  .fv-resources-stock .resource-icon { width: 22px; height: 22px; }
  .fv-resources-scene { height: 195px; }
  .fv-resources-card-body { padding: 0 20px 20px; }
  .fv-resources-details dt { font-size: 11px; }
  .fv-resources-details dd { font-size: 12px; }
  .fv-resources-current-tool strong { font-size: 13px; }
  .fv-resources-action { font-size: 13px; }
  .fv-resources-guide { padding: 17px; align-items: flex-start; gap: 12px; }
  .fv-resources-guide-symbol { width: 28px; height: 28px; }
  .fv-resources-guide-symbol svg { width: 17px; height: 17px; }
  .fv-resources-guide h3 { font-size: 14px; }
  .fv-resources-guide p { font-size: 12px; }
  .fv-resources-shortcut { gap: 11px; padding: 17px; }
  .fv-resources-shortcut > img { width: 36px; height: 36px; }
  .fv-resources-shortcut-copy { min-width: 0; flex-basis: calc(100% - 48px); }
  .fv-resources-shortcut h3 { font-size: 16px; }
  .fv-resources-shortcut-links { width: 100%; gap: 6px; margin-top: 4px; }
  .fv-resources-shortcut-links a { flex: 1; padding: 8px; gap: 6px; font-size: 11px; }
  .fv-resources-shortcut-links svg { width: 12px; height: 12px; }
  .fv-resources-tool-help { padding: 16px; }
  .fv-resources-tool-help h4 { font-size: 15px; }
  .fv-resources-tool-help p { font-size: 13px; }
}

.fv-resources-place-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: -8px 0 24px;
}
.fv-resources-place-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 15px;
  border: 1px solid #8ba16c66;
  border-radius: 8px;
  background: #b5d8830a;
  color: #d3e6b6;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
}
.fv-resources-place-links a:hover {
  border-color: #b4d887aa;
  background: #b5d88318;
}
.fv-resources-place-links .resource-icon {
  width: 24px;
  height: 24px;
  flex: none;
}
@media (max-width: 480px) {
  .fv-resources-place-links { gap: 6px; margin: -6px 0 21px; }
  .fv-resources-place-links a { flex: 1 1 75px; min-width: 0; gap: 5px; padding: 8px 7px; font-size: 12px; }
  .fv-resources-place-links .resource-icon { width: 21px; height: 21px; }
}

/* Keep tool selection beside the gathering action, collapsed until requested. */
.fv-resources-tool-picker {
  min-width: 0;
  margin: 8px 0 16px;
  border: 1px solid #65587066;
  border-radius: 9px;
  background: #211d2f66;
}
.fv-resources-tool-picker > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 8px;
  color: #e0d5e9;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}
.fv-resources-tool-picker > summary::-webkit-details-marker { display: none; }
.fv-resources-tool-picker > summary:hover { color: var(--lime, #c5ef8a); background: #c5ef8a08; }
.fv-resources-tool-picker > summary > svg { flex: none; width: 16px; height: 16px; transition: transform .15s ease; }
.fv-resources-tool-picker[open] > summary { border-radius: 8px 8px 0 0; border-bottom: 1px solid #65587055; }
.fv-resources-tool-picker[open] > summary > svg { transform: rotate(180deg); }
.fv-resources-tool-picker-body { padding: 11px 10px 10px; }
.fv-resources-tool-picker-note {
  margin: 0 1px 11px;
  color: #bdb0cb;
  font-size: 11px;
  line-height: 1.65;
}
.fv-resources-tool-picker ul {
  display: grid;
  gap: 7px;
  max-height: 280px;
  margin: 0;
  padding: 0 2px 2px 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  list-style: none;
  scrollbar-width: thin;
  scrollbar-color: #7a688c #211d2f;
}
.fv-resources-tool-option {
  --choice-rarity: #b6acc8;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid #6c5d7d66;
  border-radius: 7px;
  background: #30293e;
}
.fv-resources-tool-option.is-selected { border-color: #b4d78777; background: #b4d78710; }
.fv-resources-tool-option[data-resource-rarity="common"] { --choice-rarity: #c1d2b6; }
.fv-resources-tool-option[data-resource-rarity="uncommon"] { --choice-rarity: #9be3a1; }
.fv-resources-tool-option[data-resource-rarity="rare"] { --choice-rarity: #8ac8ff; }
.fv-resources-tool-option[data-resource-rarity="epic"] { --choice-rarity: #c9a3ff; }
.fv-resources-tool-option[data-resource-rarity="legendary"] { --choice-rarity: #ffdb87; }
.fv-resources-tool-option[data-resource-rarity="mythic"] { --choice-rarity: #ff9fcf; }
.fv-resources-tool-option-copy { display: grid; gap: 4px; min-width: 0; }
.fv-resources-tool-option-copy strong {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--choice-rarity);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.fv-resources-tool-option-copy strong > i { flex: none; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.fv-resources-tool-option-copy > span { color: #c3b6cf; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.fv-resources-tool-option-copy > small { color: #e1ccaa; font-size: 10px; line-height: 1.5; }
.fv-resources-tool-equip {
  min-height: 44px;
  max-width: 104px;
  padding: 7px 10px;
  border: 1px solid #a8bf7855;
  border-radius: 6px;
  background: #b4d8830c;
  color: var(--lime, #c5ef8a);
  font: inherit;
  font-size: 11px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.fv-resources-tool-equip:hover:enabled { background: #b4d88320; border-color: #a8bf7899; }
.fv-resources-tool-equip:disabled { opacity: 1; border-color: transparent; background: transparent; color: #c0cea7; cursor: default; }
.fv-resources-tool-inventory {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  margin-top: 9px;
  padding: 8px 2px 0;
  border: 0;
  background: transparent;
  color: #c8b6df;
  font: inherit;
  font-size: 11px;
  line-height: 1.5;
  text-align: left;
}
.fv-resources-tool-inventory:hover { color: var(--lime, #c5ef8a); }
.fv-resources-tool-inventory > svg { flex: none; width: 15px; height: 15px; }
.fv-resources-tool-picker > summary:focus-visible {
  outline: 2px solid var(--lime, #c5ef8a);
  outline-offset: -3px;
}
.fv-resources-tool-picker button:focus-visible {
  outline: 2px solid var(--lime, #c5ef8a);
  outline-offset: 3px;
}
@media (max-width: 1100px) and (min-width: 851px) {
  .fv-resources-tool-option { padding: 8px; gap: 5px; }
  .fv-resources-tool-equip { padding: 6px; max-width: 82px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .fv-resources-tool-picker > summary > svg { transition: none; }
}

/* Scene failures retain a neutral surface; retry UI is shared with the other worlds. */
.fv-resources-scene.is-3d-pending,
.fv-resources-scene.is-3d-error { background: #292538; }


/* dist/field-art.css */
/* Soil patches belong to the map. Text remains a separate, readable action label. */
.world .plots{top:34%;left:24%;width:58%;gap:8px 4px;grid-auto-rows:112px;transform:none}
.world .plots.expanded{top:23%;grid-auto-rows:106px}
.world .plot{position:relative;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;min-width:0;min-height:0;padding:0 2px 6px;border:0;border-radius:14px;background:none;box-shadow:none;transform:none;overflow:visible;isolation:isolate;cursor:pointer}
.world .plot.empty,.world .plot.ripe{background:none;border:0;box-shadow:none}
.world .plot .plot-terrain{position:absolute;inset:0;display:block;pointer-events:none}
.world .plot .field-art{width:100%;height:100%;overflow:visible;filter:none}
.world .plot>small{position:relative;display:block;max-width:100%;padding:2px 7px;border:0;border-radius:4px;background:#263c23d9;color:#fff3d5;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:none;z-index:2;pointer-events:none}
.world .plot.empty>small{color:#edf3d4;background:#294223bf}
.world .plot.ripe>small{background:#cfe9a4ed;color:#243715;border-color:transparent}
.world .plot:hover,.world .plot:focus-visible{transform:none;background:#fff0a41a;outline:2px solid #f6dc8b;outline-offset:2px}
.world .plot:hover .field-art{filter:brightness(1.1)}
.world .plot:active .plot-terrain{transform:none;filter:brightness(.96)}
.world .plot-progress{position:absolute;bottom:0;left:25%;width:50%;height:3px;margin:0;border-radius:3px;background:#36281e;overflow:hidden;z-index:3}
.world .plot-progress i{display:block;height:100%;background:#bbdf77;transition:width .8s linear}
.field-stem{transform-box:fill-box;transform-origin:50% 100%;animation:field-breeze 3.8s ease-in-out infinite;animation-delay:var(--stem-delay,0s)}
.stage-seed .field-stem{animation:none}
@keyframes field-breeze{0%,100%{rotate:-1deg}50%{rotate:1.5deg}}
.field-controls{margin:0 0 16px;padding:16px;border:1px solid #657451;border-radius:14px;background:linear-gradient(110deg,#333e2e90,#302b42);box-shadow:0 3px 0 #14111f55}
.field-controls-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.field-controls .area-tabs{gap:8px;min-width:0}
.field-controls .area-tabs .button{min-height:44px;gap:8px;padding:10px 14px;box-shadow:none}
.field-controls .field-limit{flex-shrink:0;font-size:12px;color:var(--muted);text-align:right}
.field-build-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.field-build{display:grid;grid-template-columns:34px minmax(0,1fr);gap:0 10px;align-items:center;min-width:0;padding:12px 14px;text-align:left;white-space:normal;border:1px solid #97b86488;background:#495c36;color:#f4ffe0;box-shadow:0 3px 0 #18211b}
.field-build:nth-child(2){background:#3b374e;border-color:#8a809f}
.field-build-icon{grid-row:1/3;font-size:30px;line-height:1;color:#c5ef86;text-align:center}
.field-build b{font-size:14px;line-height:1.4}
.field-build small{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:11px;line-height:1.5;color:#d2daC4;font-weight:500;margin-top:5px}
.field-build .resource-icon{width:17px;height:17px;flex-shrink:0;vertical-align:middle}
.field-build:disabled{opacity:.55;box-shadow:none;cursor:default}
.field-build:hover:not(:disabled){background:#526c3b;border-color:#d0f192}
.field-controls-note{margin:12px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
@media(min-width:1440px){.world .plots{top:35%;left:26%;width:54%;grid-auto-rows:124px}.world .plots.expanded{top:23%;grid-auto-rows:119px}}
@media(max-width:1100px){.world .plots{left:20%;width:64%;grid-auto-rows:105px}.world .plots.expanded{top:22%;grid-auto-rows:99px}.field-controls-top{align-items:flex-start;flex-direction:column}.field-controls .field-limit{text-align:left}.field-build{padding:10px;grid-template-columns:26px minmax(0,1fr);gap:0 6px}.field-build b{font-size:13px}}
@media(max-width:760px){.world .plots{top:34%;left:10%;width:82%;gap:9px 2px;grid-auto-rows:91px}.world .plots.expanded{top:24%;grid-auto-rows:87px}.world .plot>small{font-size:11px;padding:3px 6px}.field-controls{padding:12px}.field-controls .area-tabs .button{padding:9px 10px;font-size:12px}.field-controls .field-limit{font-size:11px}.field-build-actions{gap:8px}.field-build{display:flex;flex-wrap:wrap;gap:4px;padding:10px;align-content:flex-start}.field-build-icon{font-size:22px}.field-build b{font-size:12px}.field-build small{flex-basis:100%;font-size:10px;gap:2px;margin-top:1px}.field-build .resource-icon{width:15px;height:15px}.field-controls-note{font-size:11px}.world .resident{max-width:100px}}
@media(prefers-reduced-motion:reduce){.field-stem{animation:none}.world .plot-progress i{transition:none}}

/* Keep every bed inside the central lawn and keep residents out of crop hit areas. */
.world .plots{left:23%;width:51%;grid-auto-rows:104px}
.world .plots.expanded{top:21%;grid-auto-rows:99px}
.world .world-bottom{min-height:46px;padding:4px 12px;align-items:center;gap:10px}
.world .world-bottom .resident{position:static;display:flex;flex-shrink:0;max-width:none;min-height:36px;background:transparent;border:0;padding:0 5px;box-shadow:none;border-radius:5px;color:#edf5d7;gap:4px}
.world .world-bottom .resident:hover{background:#ffffff1a}
.world .world-bottom .resident .animal-sprite{width:32px;height:32px}
.world .world-bottom .resident>span{display:inline;font-size:11px}
.world .world-bottom .resident b{padding-left:2px}
@media(min-width:1440px){.world .plots{left:23%;width:51%;top:35%;grid-auto-rows:113px}.world .plots.expanded{top:23%;grid-auto-rows:111px}}
@media(max-width:1100px){.world .plots{left:20%;width:58%}.world .plots.expanded{top:21%;grid-auto-rows:94px}}
@media(max-width:760px){.world .plots{top:34%;left:9%;width:82%;grid-auto-rows:88px}.world .plots.expanded{top:24%;grid-auto-rows:82px}.world .world-bottom>span{font-size:10px}.world .world-bottom{padding:4px 8px;gap:4px}}
/* Crop rows sit above the shoreline even at the nine-bed limit. */
.world .plot .plot-terrain{inset:auto 0 0;height:125%}
.world .plots{top:32%;left:22%;width:52%;grid-auto-rows:100px}
.world .plots.expanded{top:21%;grid-auto-rows:76px}
@media(min-width:1440px){.world .plots{top:33%;left:23%;width:51%;grid-auto-rows:110px}.world .plots.expanded{top:22%;grid-auto-rows:92px}}
@media(max-width:1100px){.world .plots{left:20%;width:54%;grid-auto-rows:94px}.world .plots.expanded{top:21%;grid-auto-rows:75px}}
@media(max-width:760px){.world .plots{top:30%;left:9%;width:82%;grid-auto-rows:72px}.world .plots.expanded{top:24%;grid-auto-rows:59px}}

@media(min-width:761px) and (max-width:900px){.world .plot>small{font-size:11px;padding:3px 3px}}
.pasture-bottom .pasture-return{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:4px 10px;border:1px solid #aec89077;border-radius:7px;background:#2d452ce6;color:#eef8d5;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer;white-space:nowrap}
.pasture-bottom .pasture-return .seed-icon{width:26px;height:26px}
.pasture-bottom .pasture-return:hover{background:#496537;border-color:#d0ed9e}
.pasture-bottom .pasture-return:focus-visible{outline:2px solid #d0ed9e;outline-offset:2px}
.pasture-bottom{align-items:center;gap:8px;padding-top:5px;padding-bottom:5px}
@media(max-width:760px){.pasture-bottom .pasture-return{min-height:40px;font-size:11px;padding:4px 6px;gap:3px}.pasture-bottom .pasture-return .seed-icon{width:20px;height:20px}.pasture-bottom{gap:5px}.pasture-bottom>span{font-size:10px}.pasture-bottom>span .resource-icon{width:17px;height:17px}}
@media(max-width:360px){.pasture-bottom .pasture-return .seed-icon{display:none}.pasture-bottom>span{font-size:9px}}

/* Brief watering feedback shares the existing terrain plane and hit target. */
.watering-feedback{display:none;pointer-events:none}
.world .plot.is-watering .watering-feedback{display:block;animation:field-watering-feedback .9s ease both}
.world .plot.is-watering .watering-can{transform-origin:115px 34px;animation:field-watering-can .9s ease-in-out both}
.world .plot.is-watering .watering-drop{opacity:0;animation:field-water-drop .38s ease-in both}
.world .plot.is-watering .watering-drop-a{animation-delay:.18s}
.world .plot.is-watering .watering-drop-b{animation-delay:.30s}
.world .plot.is-watering .watering-drop-c{animation-delay:.42s}
@keyframes field-watering-feedback{0%,100%{opacity:0}12%,78%{opacity:1}}
@keyframes field-watering-can{0%,100%{transform:translateY(-3px) rotate(10deg)}24%,70%{transform:translateY(0) rotate(-22deg)}}
@keyframes field-water-drop{0%{opacity:0;transform:translate(0,-3px)}15%,65%{opacity:.95}100%{opacity:0;transform:translate(-8px,29px)}}
@media(prefers-reduced-motion:reduce){
 .world .plot.is-watering .watering-feedback{animation:none;opacity:1}
 .world .plot.is-watering .watering-can{animation:none;transform:rotate(-22deg)}
 .world .plot.is-watering .watering-drop{animation:none;opacity:.65;transform:translate(-4px,13px)}
}

/* Water is a visible action while a dry crop grows; the timer stays readable. */
.world .plot>small.plot-water-label{display:flex;align-items:center;justify-content:center;gap:4px;background:#26494ee8;color:#e0f6f5;padding:2px 5px}
.world .plot>small.plot-water-label>span:first-child{font-weight:700}
.world .plot>small.plot-water-label [data-timer]{font-size:10px;font-weight:500;color:#c4dfd8}
.plot-watered-mark{display:inline-block;width:12px;height:14px;margin-right:4px;vertical-align:-2px;line-height:1;flex:none}
.plot-watered-mark::before{content:"";display:block;width:12px;height:14px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2014%22%20shape-rendering%3D%22crispEdges%22%3E%3Cpath%20fill%3D%22%23153c4a%22%20d%3D%22M5%200h2v2h1v2h1v2h1v2h1v3h-1v2H8v1H4v-1H2v-2H1V8h1V6h1V4h1V2h1Z%22%2F%3E%3Cpath%20fill%3D%22%2354cce9%22%20d%3D%22M5%203h2v2h1v2h1v2h1v2H9v1H7v1H4v-1H3v-1H2V9h1V7h1V5h1Z%22%2F%3E%3Cpath%20fill%3D%22%23268eaf%22%20d%3D%22M3%2010h1v1h4v-1h2v1H9v1H7v1H4v-1H3Z%22%2F%3E%3Cpath%20fill%3D%22%23d6ffff%22%20d%3D%22M5%205h1v2H5v3H4V7h1Z%22%2F%3E%3C%2Fsvg%3E") center/12px 14px no-repeat;image-rendering:pixelated}
.field-watering{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid #70847688;border-radius:10px;background:#2c3b38;color:#ecf4df;min-height:44px}
.field-watering .field-watering-tool{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px}
.field-watering .field-watering-tool .tool-art{display:block;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;flex:none}
.field-watering .field-watering-tool img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.field-watering-copy{flex:1 1 200px;min-width:0}
.field-watering-copy b{display:block;font-size:13px;line-height:1.35}
.field-watering-copy small{display:block;margin-top:3px;font-size:11px;line-height:1.45;color:#c0d6c5}
.field-watering [data-focus-tools]{min-height:44px;max-width:100%;white-space:normal;padding:8px 12px;font-size:12px}
@media(max-width:760px){
 .world .plot>small.plot-water-label{flex-direction:column;gap:0;line-height:1.15;font-size:10px;padding:2px 5px}
 .world .plot>small.plot-water-label [data-timer]{font-size:9px;line-height:1.1}
 .field-watering{gap:8px;padding:9px 10px}
 .field-watering .field-watering-tool{width:34px;height:34px;flex-basis:34px}
 .field-watering-copy{flex-basis:160px}
 .field-watering-copy b{font-size:12px}
}


/* dist/field-world.css */
/* Existing buttons keep all game actions; the canvas is decorative and never takes input. */
.world.field-world-scene{height:auto;aspect-ratio:3/2;isolation:isolate;overflow:visible;margin-bottom:44px;background:#7f9e43;background-image:linear-gradient(155deg,#a4bd5b,#789640 70%,#678737);image-rendering:auto}
.field-world{position:absolute;inset:0;z-index:0;border-radius:9px;overflow:hidden;pointer-events:none}
.field-world-canvas{display:block;width:100%;height:100%;pointer-events:none}
.world.field-world-scene>.world-label{z-index:3;top:12px;right:12px;left:auto;max-width:calc(100% - 24px);padding:7px 11px;border:1px solid #e9f1bf8c;border-radius:7px;background:#f0edcfeb;color:#36522b;box-shadow:0 2px 8px #31402029;backdrop-filter:blur(3px);font-size:12px;line-height:1.3}
.world.field-world-scene>.world-bottom{z-index:3;top:100%;bottom:auto;min-height:44px;padding:4px 12px;border:1px solid #8ca66b;border-top:0;border-radius:0 0 10px 10px;background:#344d2e;color:#eff4d6;box-shadow:0 4px 0 #14121f55}
.world.field-world-scene>.world-bottom .resident{min-height:36px}
.world.field-world-scene.field-3d-pending>.field-world{visibility:hidden;pointer-events:none}
.world.field-world-scene>.plots{position:absolute;inset:0;width:auto;height:auto;display:block;transform:none;z-index:2;pointer-events:none}
.world.field-world-scene .plot{position:absolute;left:var(--field-left);top:var(--field-top);width:var(--field-width);height:var(--field-height);min-width:0;min-height:0;padding:0 3px 3px;gap:0;border:0;border-radius:9px;background:transparent;box-shadow:none;transform:none;pointer-events:auto;touch-action:manipulation;outline-offset:1px}
.world.field-world-scene .plot:hover,.world.field-world-scene .plot:focus-visible{background:#fff6bc21;outline:2px solid #fff2b8;filter:none;transform:none}
.world.field-world-scene .plot:active{background:#d7ed9c30}
.world.field-world-scene .plot-terrain{display:none;pointer-events:none}
.world.field-world-scene .field-art>:not(.watering-feedback){display:none}
.world.field-world-scene .plot>small{display:flex;align-items:center;justify-content:center;max-width:100%;padding:3px 8px;border:1px solid #77894b7a;border-radius:5px;background:#f4edcfed;color:#39502a;font-size:11px;line-height:1.2;font-weight:650;box-shadow:0 2px 4px #34482730;pointer-events:none}
.world.field-world-scene .plot.empty>small{background:#eee8cbe8;color:#3c542f}
.world.field-world-scene .plot.ripe>small{background:#d9efb6f2;border-color:#96b35d;color:#2c491f}
.world.field-world-scene .plot>small.plot-water-label{gap:4px;background:#e2eee0ed;border-color:#9eb5a5;color:#365d51}
.world.field-world-scene .plot>small.plot-water-label [data-timer]{color:#536f5c;font-size:10px}
.world.field-world-scene .plot-progress{bottom:-2px;left:24%;width:52%;height:3px;background:#3e5031b3;border:0;box-shadow:0 1px 2px #21371940;pointer-events:none}
.world.field-world-scene .plot-progress i{background:#d9ef94}
@media(max-width:760px){
 .world.field-world-scene>.world-label{top:8px;right:8px;max-width:calc(100% - 16px);padding:5px 8px;font-size:10px}
 .world.field-world-scene>.world-bottom{padding:3px 7px;gap:4px}
 .world.field-world-scene .plot{padding:0 1px 1px;border-radius:6px}
 .world.field-world-scene .plot>small{padding:2px 4px;border-radius:4px;font-size:10px;line-height:1.15}
 .world.field-world-scene .plot>small.plot-water-label{flex-direction:column;gap:0;padding:1px 4px;font-size:10px}
 .world.field-world-scene .plot>small.plot-water-label [data-timer]{font-size:9px;line-height:1.1}
 .world.field-world-scene .plot-progress{bottom:-3px}
}
/* Keep small phones comfortably tappable without overlapping adjacent crop rows. */
@media(max-width:360px){.world.field-world-scene .plot{min-height:40px}}

/* On phones, keep the soil and seedlings clear while the same button owns its label. */
@media(max-width:760px){
 .world.field-world-scene .plot{isolation:auto}
 .world.field-world-scene .plot>small{position:absolute;top:calc(100% + 1px);left:50%;bottom:auto;transform:translateX(-50%);width:max-content;max-width:100%;padding:1px 3px;font-size:9px;line-height:1.1;pointer-events:auto;z-index:4}
 .world.field-world-scene .plot>small.plot-water-label{flex-direction:row;gap:2px;padding:1px 3px;font-size:9px;line-height:1.1}
 .world.field-world-scene .plot>small.plot-water-label>span:first-child{display:inline-flex;align-items:center;flex:0 0 8px;width:8px;height:10px;font-size:0;line-height:0}
 .world.field-world-scene .plot>small.plot-water-label>span:first-child::before{content:'';display:block;width:8px;height:10px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2012%2014%22%20shape-rendering%3D%22crispEdges%22%3E%3Cpath%20fill%3D%22%23153c4a%22%20d%3D%22M5%200h2v2h1v2h1v2h1v2h1v3h-1v2H8v1H4v-1H2v-2H1V8h1V6h1V4h1V2h1Z%22%2F%3E%3Cpath%20fill%3D%22%2354cce9%22%20d%3D%22M5%203h2v2h1v2h1v2h1v2H9v1H7v1H4v-1H3v-1H2V9h1V7h1V5h1Z%22%2F%3E%3Cpath%20fill%3D%22%23268eaf%22%20d%3D%22M3%2010h1v1h4v-1h2v1H9v1H7v1H4v-1H3Z%22%2F%3E%3Cpath%20fill%3D%22%23d6ffff%22%20d%3D%22M5%205h1v2H5v3H4V7h1Z%22%2F%3E%3C%2Fsvg%3E") center/8px 10px no-repeat;image-rendering:pixelated}
 .world.field-world-scene .plot>small.plot-water-label [data-timer]{font-size:9px;line-height:1.1;white-space:nowrap}
 .world.field-world-scene .plot .plot-watered-mark{width:8px;height:10px;margin-right:2px}
 .world.field-world-scene .plot .plot-watered-mark::before{width:8px;height:10px;background-size:8px 10px}
 .world.field-world-scene .plot-progress{top:calc(100% + 13px);bottom:auto;height:2px;z-index:5}
}

/* Plain action targets remain readable without reviving legacy map/crop artwork. */
.world.field-world-scene:not(.field-3d-ready) .plot{border:1px solid #a9bd7b66;background:#30422da6}
.world.field-world-scene:not(.field-3d-ready) .plot:hover,.world.field-world-scene:not(.field-3d-ready) .plot:focus-visible{background:#52643bcc}


/* dist/tools-ui.css */
.tool-inventory{scroll-margin-top:20px}
.tool-inventory-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tool-inventory-heading .eyebrow{font-size:10px;line-height:1.5;color:var(--gold);margin-bottom:8px}
.tool-inventory-heading h3{font-size:26px;line-height:1.25;margin:0}
.tool-inventory-total{font-size:12px;line-height:1.5;color:var(--muted);background:#211d31;border:1px solid var(--border);border-radius:8px;padding:8px 12px;white-space:nowrap}
.tool-inventory-total b{font-size:16px;color:var(--lime);margin-left:6px}
.tool-inventory-intro{font-size:13px;line-height:1.65;margin:14px 0 21px;color:var(--muted)}
.tool-category-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}
.tool-category{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:7px;min-width:0;min-height:106px;padding:11px 6px 9px;border:1px solid #5c506a;border-radius:9px;background:#211c30;color:var(--muted)}
.tool-category:hover{background:#393249;border-color:#a38ab6}
.tool-category.is-selected{border-color:var(--lime);background:#405033;color:#e8fbcf;box-shadow:inset 0 0 0 1px #c5ef8a22}
.tool-category .tool-category-art{width:43px;height:45px;max-width:none;margin:0;flex:none}
.tool-category>span{font-size:11px;line-height:1.3;min-height:28px;display:flex;align-items:center;text-align:center;max-width:100%;overflow-wrap:break-word}
.tool-category>b{position:absolute;top:6px;right:6px;min-width:17px;height:17px;padding:0 4px;border-radius:5px;background:#0f0e195e;color:var(--gold);font-size:10px;line-height:17px;font-weight:600}
.tool-inventory-selection{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0 18px;border-bottom:1px solid #82728e33;margin-bottom:20px}
.tool-inventory-type-heading{min-width:0;display:flex;align-items:baseline;gap:9px 14px;flex-wrap:wrap}
.tool-inventory-type-heading h4{margin:0;font-size:22px;line-height:1.3}
.tool-inventory-type-heading>span{font-size:11px;line-height:1.5;color:var(--muted)}
.tool-inventory-links{flex-basis:100%;display:flex;gap:16px}
.tool-inventory-links button{background:none;border:0;padding:0;color:var(--lime);font-size:11px;line-height:1.5;text-decoration:underline;text-underline-offset:4px}
.tool-inventory-auto{position:relative;display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;min-height:40px;min-width:240px;max-width:350px;flex:none}
.tool-inventory-auto>span{display:grid;gap:4px;min-width:0}
.tool-inventory-auto b{font-size:13px;line-height:1.4}
.tool-inventory-auto small{font-size:10px;line-height:1.55;color:var(--muted)}
.tool-inventory-auto input{position:absolute;width:44px;height:26px;right:0;top:50%;margin:0;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}
.tool-inventory-auto i{position:relative;display:block;flex:none;width:44px;height:26px;background:#4a435b;border:1px solid #776a8b;border-radius:30px;transition:background .12s ease}
.tool-inventory-auto i::before{content:'';position:absolute;width:18px;height:18px;top:3px;left:3px;border-radius:50%;background:#b7adc6;transition:transform .12s ease}
.tool-inventory-auto input:checked+i{background:#658246;border-color:#a8d67a}
.tool-inventory-auto input:checked+i::before{transform:translateX(18px);background:#e5ffc6}
.tool-inventory-auto input:focus-visible+i{outline:3px solid var(--gold);outline-offset:4px}
.tool-inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;align-items:stretch}
.tool-inventory-card{display:flex;flex-direction:column;align-items:stretch;position:relative;min-width:0;text-align:center;border:1px solid #594d69;border-top:3px solid var(--item-rarity);border-radius:10px;padding:14px;background:#221d315c}
.tool-inventory-card.is-active{border-color:#add978;background:#829e4f0b;box-shadow:0 0 0 1px #aaca7422}
.tool-inventory-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px;font-size:10px;line-height:1.4;text-align:left}
.tool-inventory-card-top>span{color:var(--item-rarity)}
.tool-inventory-card-top>b{color:var(--lime);background:#a5c87115;border:1px solid #a5c87133;border-radius:5px;padding:3px 6px;font-size:9px;font-weight:500;white-space:nowrap}
.tool-inventory-card-top>small{color:var(--muted);font-size:10px}
.tool-inventory-card .tool-inventory-art{width:87px;height:99px;max-width:none;flex:none;margin:14px auto 7px}
.tool-inventory-card.is-base .tool-inventory-art{opacity:.58;filter:saturate(.6)}
.tool-inventory-card h5{font-size:16px;line-height:1.35;margin:4px 0 5px}
.tool-inventory-origin{font-size:10px;line-height:1.6;color:var(--muted)}
.tool-inventory-effect{color:var(--lime);font-size:12px;line-height:1.55;margin:13px 0;flex:1}
.tool-inventory-card .item-life{width:100%;margin:0 0 13px;min-height:48px;padding:8px;font-size:10px;line-height:1.5;display:flex;flex-direction:column;justify-content:center}
.tool-inventory-card .item-life .life-label{font-size:10px;gap:5px}
.tool-inventory-card .item-life .life-track{height:5px;margin-top:6px}
.tool-inventory-card .tool-inventory-use{width:100%;min-height:38px;padding:8px 9px;font-size:12px;line-height:1.4;box-shadow:none;white-space:normal;margin:0}
.tool-inventory-card .tool-inventory-use:disabled{background:#3b4931;color:var(--lime);border:1px solid #97b87066;opacity:1;cursor:default}
.tool-inventory-sale{margin-top:9px;min-height:39px;display:flex;align-items:center;justify-content:center}
.tool-inventory-sale .tool-inventory-sell{width:100%;min-height:37px;margin:0;padding:8px;font-size:11px;line-height:1.4;gap:5px;box-shadow:none;background:#393147;border:1px solid #746180;white-space:normal}
.tool-inventory-sell .resource-icon{width:17px;height:17px;flex:none}
.tool-inventory-sale p{font-size:10px;line-height:1.6;color:var(--muted);margin:0}
.tool-inventory-empty{font-size:12px;line-height:1.7;color:var(--muted);margin:20px 0 0}
@media(max-width:1100px){.tool-category-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.tool-inventory-selection{gap:18px}.tool-inventory-auto{min-width:220px;max-width:300px}.tool-inventory-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
@media(max-width:760px){.tool-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tool-category{min-height:89px;padding:8px 5px;gap:5px}.tool-category .tool-category-art{width:35px;height:37px}.tool-category>span{font-size:11px;min-height:27px}.tool-inventory-selection{align-items:flex-start;flex-direction:column;gap:17px}.tool-inventory-auto{min-width:0;width:100%;max-width:none}.tool-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool-inventory-card{padding:11px}.tool-inventory-card .tool-inventory-art{width:77px;height:88px}.tool-inventory-card h5{font-size:14px}.tool-inventory-effect{font-size:11px}.tool-inventory-card .item-life{padding:7px 5px;min-height:58px}.tool-inventory-card .item-life .life-label{flex-wrap:wrap;justify-content:center;gap:3px 7px}.tool-inventory-card .tool-inventory-use{font-size:11px}.tool-inventory-card-top{gap:4px;flex-wrap:wrap}.tool-inventory-card-top>b{font-size:8px;padding:3px 4px}}
@media(max-width:500px){.tool-inventory{padding:17px}.tool-inventory-heading h3{font-size:23px}.tool-inventory-intro{font-size:12px}.tool-inventory-type-heading h4{font-size:20px}.tool-inventory-card{padding:9px}.tool-inventory-card h5{font-size:13px}.tool-inventory-sale .tool-inventory-sell{font-size:10px;padding:8px 5px}.tool-inventory-card .tool-inventory-art{width:69px;height:83px}}
@media(max-width:340px){.tool-inventory-grid{grid-template-columns:1fr}.tool-category>span{font-size:10px}.tool-category>b{top:3px;right:3px}}
@media(prefers-reduced-motion:reduce){.tool-inventory-auto i,.tool-inventory-auto i::before{transition:none}}
.tool-inventory-global-auto{min-width:0;max-width:none;width:100%;margin:0 0 18px;padding:13px 15px;border:1px solid #81719266;background:#211c3044;border-radius:9px}
.tool-inventory-global-auto input{right:15px}
.tool-inventory-type-heading>.tool-inventory-current{color:var(--lime)}
@media(max-width:500px){.tool-inventory-global-auto{padding:11px 12px;gap:10px}.tool-inventory-global-auto input{right:12px}.tool-inventory-global-auto b{font-size:12px}.tool-inventory-global-auto small{font-size:10px}}


/* dist/pasture-feeders.css */
.pasture-scene{background-color:#839d42;background-image:var(--fv-pasture-ground,none)}
/* The field has a horizontal trough, independent of inventory illustrations. */
.pasture-feeder{position:absolute;left:50%;top:min(69.72%,calc(84% - var(--animal-size)*.60 - min(3.7125%,calc(var(--animal-size)*.21375)) - 1px));width:min(22%,calc(var(--animal-size)*1.9));height:auto;aspect-ratio:2.5;display:block;padding:0;margin:0;border:0;background:transparent;transform:translateX(-50%)}
.pasture-feeder{z-index:2;cursor:pointer}
.pasture-feeder .pasture-feeder-art{display:block;width:100%;height:100%;margin:0;max-width:none;background:none;border-radius:0;aspect-ratio:auto;filter:drop-shadow(0 3px 1px #18200c66)}
.pasture-feeder:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:7px}.pasture-feeder.is-empty{left:50%;top:71%;width:14%;height:11%;border:2px dashed #f3e6a177;border-radius:8px;background:#171d1233;color:#fff2bd;display:grid;place-content:center;gap:3px}.pasture-feeder-placeholder{font-size:24px;line-height:1}.pasture-feeder-empty-label{font-size:9px;text-shadow:0 1px 2px #000}
.feeder-rarity-legendary .tool-art{filter:drop-shadow(0 0 3px #ffe2a299) drop-shadow(0 0 8px #ffc24e66)}.feeder-rarity-mythic .tool-art{filter:drop-shadow(0 0 3px #b5f6ffaa) drop-shadow(0 0 7px #b974f988) drop-shadow(0 0 11px #fd92df55)}
.pasture-feeder-panel{margin:12px 0 0;padding:0;border:1px solid var(--border);border-radius:9px;background:#2c263e;scroll-margin-top:20px}.pasture-feeder-panel.needs-feeder{border-color:#a99455;background:#332f2b}.feeder-choices{margin:0;padding:0}.feeder-choices summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:52px;padding:9px 12px;cursor:pointer}.feeder-choices summary::-webkit-details-marker{display:none}.feeder-choices summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:8px}.feeder-summary-copy{flex:1;min-width:0;display:grid;gap:3px}.feeder-summary-copy b{font-size:12px;line-height:1.4}.feeder-summary-copy small{font-size:10px;line-height:1.45;color:var(--muted)}.feeder-toggle-label{font-size:11px;line-height:1.4;color:var(--lime);white-space:nowrap}.feeder-toggle-label>span{display:inline-block;font-size:13px;margin-left:3px}.feeder-choices[open] .feeder-toggle-label>span{transform:rotate(180deg)}.feeder-quick-buy{font-size:11px!important;line-height:1.4;min-height:30px;padding:6px 9px!important;margin:0!important;box-shadow:none!important;background:#52683c!important;color:#eefbdd!important}
.feeder-expanded{padding:12px;border-top:1px solid #82718f44}.feeder-expanded-actions{display:flex;gap:9px;flex-wrap:wrap}.feeder-expanded-actions .button{padding:7px 10px;min-height:32px;font-size:11px;box-shadow:none;margin:0}.feeder-expanded-actions .feeder-remove{background:transparent;color:var(--muted);border:1px solid #756781}.feeder-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin-top:11px}.feeder-choice{display:flex;align-items:center;gap:9px;border:1px solid #65556f;border-radius:7px;padding:9px;background:#211c3044;min-width:0}.feeder-choice-art{width:48px;height:46px;flex:none}.feeder-choice-art .tool-art{width:48px;height:46px;max-width:none;margin:0}.feeder-choice>div:nth-child(2){min-width:0;flex:1}.feeder-choice b{font-size:11px}.feeder-choice p{font-size:10px;line-height:1.45;margin:4px 0;color:var(--muted)}.feeder-choice small{font-size:9px;color:var(--muted)}.feeder-choice .button{font-size:10px;line-height:1.4;padding:7px 8px;min-height:32px;margin:0;box-shadow:none;white-space:normal}.feeder-choice-empty{font-size:11px;line-height:1.6;color:var(--muted);margin:11px 0 0}
.feeder-inventory-note{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 17px}.feeder-destination{display:grid;gap:7px;font-size:11px;line-height:1.5;text-align:left;color:var(--muted)}.feeder-destination select{width:100%;min-height:38px;border:1px solid #776582;border-radius:7px;background:#30283f;color:var(--text);padding:7px;font:inherit}.feeder-sale-note{font-size:10px;line-height:1.5;color:var(--muted);margin-top:5px}.feeder-inventory .tool-inventory-sale button:disabled{cursor:not-allowed;opacity:.45}
.pasture-layout .pasture-bottom{position:relative;inset:auto;z-index:auto;border:1px solid #514867;border-radius:0 0 10px 10px;margin:0 4px;padding:9px 12px;gap:10px;font-size:11px;flex-wrap:wrap}.pasture-layout .pasture-bottom>span{display:flex;align-items:center;gap:4px}.pasture-sign{z-index:20}
@media(max-width:760px){.pasture-feeder-panel{margin-top:9px}.feeder-choices summary{padding:9px 10px;gap:8px}.feeder-summary-copy b{font-size:11px}.feeder-summary-copy small{font-size:9px}.feeder-toggle-label{font-size:10px}.feeder-quick-buy{font-size:10px!important;padding:6px 8px!important}.feeder-expanded{padding:10px}.feeder-choice-grid{grid-template-columns:1fr}.feeder-choice{gap:7px;padding:8px}.feeder-choice-art,.feeder-choice-art .tool-art{width:40px;height:42px}.feeder-choice b{font-size:10px}.feeder-choice p{font-size:9px}.pasture-feeder-empty-label{font-size:7px}.pasture-feeder-placeholder{font-size:17px}.feeder-destination{font-size:10px}.pasture-layout .pasture-bottom{justify-content:center;font-size:9px;gap:6px;padding:7px}.pasture-layout .pasture-bottom .resource-icon{width:17px;height:17px}}

.pasture-scene .pasture-animal.eating .pasture-name{position:absolute;left:calc(100% + 4px);top:38px;bottom:auto;transform:none;white-space:nowrap;max-width:120px}


@media(max-width:760px){.pasture-layout .pasture-bottom{justify-content:space-between;flex-wrap:nowrap}}



@media(max-width:760px){
 .pasture-sign{padding:4px 6px;gap:2px;font-size:10px;line-height:1.2;max-width:110px}.pasture-sign span{font-size:8px;line-height:1.2}
 .pasture-scene .pasture-animal[data-pasture-slot="0"]{--home-x:12%!important;--home-y:23%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="1"]{--home-x:48%!important;--home-y:8%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="2"]{--home-x:73%!important;--home-y:20%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="3"]{--home-x:12%!important;--home-y:52%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="4"]{--home-x:32%!important;--home-y:31%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="5"]{--home-x:73%!important;--home-y:51%!important}
 .pasture-scene .pasture-animal[data-pasture-slot="0"]:not(.eating):not(.drinking):not(.returning) .animal-bubble{top:-10px}
 .pasture-scene .pasture-animal:is([data-pasture-slot="3"],[data-pasture-slot="4"],[data-pasture-slot="5"]):not(.eating):not(.drinking):not(.returning) .animal-bubble{left:-24px;right:auto}
}




.pasture-scene .pasture-animal.eating .animal-bubble{left:calc(100% + 2px);right:auto;top:8px}

/* Eating indicators appear only once the animal has reached its food. */
.pasture-scene .pasture-animal.is-walking :is(.pasture-name,.animal-bubble){visibility:hidden}

.pasture-scene .pasture-animal.is-backing :is(.animal-walk-leg-front,.animal-walk-leg-back){animation-direction:reverse}

/* Installed feeder, benefits and the actual pen's next feeding costs. */
.pasture-feeder-panel{border-radius:16px;overflow:hidden;background:linear-gradient(125deg,#31283f,#282238)}
.feeder-choices summary{gap:16px;padding:17px 20px;min-height:96px}
.feeder-summary-art{display:grid;place-items:center;flex:none;width:92px;height:62px;border:1px solid #8c795647;border-radius:12px;background:#caa3580a}
.feeder-summary-art .pasture-feeder-art{display:block;width:80px;height:40px;margin:0;max-width:none;filter:drop-shadow(0 4px 3px #0005)}
.feeder-summary-copy{gap:4px}.feeder-summary-copy b{font-size:17px;line-height:1.3}.feeder-summary-copy small{font-size:11px}
.feeder-toggle-label{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border:1px solid #82965c;border-radius:9px;background:#cfee9814;font-size:12px;font-weight:700}
.feeder-overview{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;padding:0 20px 14px}
.feeder-stat{display:flex;flex-direction:column;gap:5px;padding:13px 15px;min-width:0;border:1px solid #67587560;border-radius:11px;background:#1d18292e}
.feeder-stat>span{font-size:11px;color:var(--muted);line-height:1.4}.feeder-stat strong{font-size:23px;line-height:1.2;color:var(--lime)}.feeder-stat small{font-size:10px;line-height:1.4;color:var(--muted)}
.feeder-stat-food{border-color:#a9b97866;background:#c8e99709}.feeder-stat-food strong{color:#f4d493}
.feeder-roster{display:flex;flex-wrap:wrap;gap:7px;padding:0 20px 14px}.feeder-animal-cost{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #66577170;border-radius:9px;background:#1c182529;min-width:130px}.feeder-animal-cost>span:nth-child(2){display:grid;gap:1px;flex:1}.feeder-animal-cost b{font-size:11px;font-weight:600}.feeder-animal-cost small{font-size:9px;color:var(--muted)}.feeder-animal-cost strong{font-size:14px;color:#f4d493}
.feeder-animal-icon{width:30px;height:30px;flex:none;background:url('/assets/animal-atlas.png') no-repeat;background-size:200% 200%;image-rendering:pixelated}
.feeder-animal-rabbit,.feeder-animal-duck,.feeder-animal-goat,.feeder-animal-alpaca{background-image:url('/assets/animal-atlas-2.png')}
.feeder-animal-chicken,.feeder-animal-rabbit{background-position:0 0}.feeder-animal-cow,.feeder-animal-duck{background-position:100% 0}.feeder-animal-sheep,.feeder-animal-goat{background-position:0 100%}.feeder-animal-pig,.feeder-animal-alpaca{background-position:100% 100%}
.feeder-panel-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;background:#17131f35;border-top:1px solid #65577144;color:var(--muted);font-size:10px;line-height:1.5}.feeder-panel-note b{color:var(--text)}
@media(max-width:760px){.feeder-choices summary{padding:13px;gap:10px}.feeder-summary-art{width:64px;height:56px}.feeder-summary-art .pasture-feeder-art{width:58px;height:34px}.feeder-summary-copy b{font-size:15px}.feeder-summary-copy small{font-size:10px}.feeder-toggle-label{font-size:11px;padding:9px 10px}.feeder-overview{padding:0 13px 12px;gap:7px;grid-template-columns:1fr 1fr}.feeder-stat{padding:10px}.feeder-stat-food{grid-column:1/-1}.feeder-stat strong{font-size:21px}.feeder-roster{padding:0 13px 12px}.feeder-animal-cost{min-width:0;flex:1 1 125px}.feeder-panel-note{padding:10px 13px}}
@media(max-width:380px){.feeder-choices summary{flex-wrap:wrap}.feeder-toggle-label{margin-left:auto}.feeder-summary-copy{flex-basis:calc(100% - 80px)}}


/* dist/pack-opening.css */
.pack-opening{position:relative;width:min(280px,100%);aspect-ratio:4/5;margin:4px auto 8px;pointer-events:none;overflow:visible}
.pack-opening canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
@media(max-width:480px){.pack-opening{width:min(250px,100%);margin-top:0}}
@media(prefers-reduced-motion:reduce){.pack-opening{display:none}}


/* dist/referrals.css */
.referrals-page{min-width:0;color:var(--ink,#f6f1df)}
.referrals-page *{box-sizing:border-box}
.ref-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:36px;padding:34px;border:1px solid #655b75;border-radius:18px;background:radial-gradient(ellipse at 0 0,#72964e28,transparent 65%),linear-gradient(135deg,#342e48,#242133);overflow:hidden}
.ref-hero-copy,.ref-share{min-width:0}
.ref-hero .eyebrow{font-size:10px;line-height:1.7;letter-spacing:1.7px;color:#ccdf97}
.ref-hero h2{font-size:clamp(26px,3.2vw,41px);line-height:1.17;letter-spacing:-.8px;max-width:610px;margin:12px 0 15px;overflow-wrap:break-word}
.ref-hero-copy>p{font-size:14px;line-height:1.75;color:#c8c0d6;margin:0;max-width:610px}
.ref-hero-reward{display:flex;align-items:center;gap:18px;margin-top:24px}
.ref-hero-reward>strong{display:flex;align-items:center;gap:6px;color:var(--lime,#c5ef8a);font-size:48px;line-height:1;font-variant-numeric:tabular-nums}
.ref-hero-reward>strong .resource-icon{width:38px;height:38px;margin:0}
.ref-hero-reward>div{display:grid;gap:4px;min-width:0}
.ref-hero-reward b{font-size:16px;color:#e8f4d8}
.ref-hero-reward span{font-size:12px;color:#c4bace}
.ref-hero-reward small{font-size:10px;color:#b0a4c0;line-height:1.5}
.ref-share{padding:23px;border:1px solid #75638966;border-radius:13px;background:#211b31a8;box-shadow:0 10px 28px #150f2018}
.ref-share h3,.ref-share>label{display:block;font-size:17px;font-weight:700;line-height:1.4;margin:0 0 14px}
.ref-share>p{font-size:12px;line-height:1.7;color:#bdb2cd;margin:12px 0 0}
.ref-link-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
.referrals-page input{min-width:0;max-width:100%;width:100%;border:1px solid #5c506f;border-radius:7px;background:#191625;color:#e9e3f1;padding:12px;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.45}
.referrals-page input:focus-visible{outline:2px solid var(--lime,#c5ef8a);outline-offset:3px}
.referrals-page .button{min-height:44px;line-height:1.4;white-space:normal;justify-content:center;gap:8px;font-size:13px;padding:10px 13px}
.ref-link-controls .button{width:100%}
.ref-share-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid #c5ef8a40;background:#c5ef8a0c;border-radius:9px;color:var(--lime,#c5ef8a);font-size:21px;margin-bottom:13px}
.ref-guest>.button{margin-top:17px;width:100%}
.ref-share>.ref-pending-note{color:#d1e8aa;border-left:2px solid #b5d87e;padding-left:10px}
.ref-share>.ref-copy-notice{min-height:18px;color:#c5ef8a;font-size:11px;margin-top:9px}
.ref-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0 26px}
.ref-stats>div{padding:18px 22px;border:1px solid #51465f;border-radius:11px;background:#2d273e;min-width:0}
.ref-stats b{display:block;font-size:28px;line-height:1.2;color:#e5ebc8;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ref-stats span{display:block;font-size:11px;color:#b5abc5;line-height:1.5;margin-top:7px}
.ref-main-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.ref-panel{border:1px solid #51485f;border-radius:13px;background:linear-gradient(135deg,#302a41,#2a2539);padding:24px;min-width:0}
.ref-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:20px}
.ref-panel-heading h3{font-size:21px;line-height:1.3;margin:0;min-width:0;overflow-wrap:break-word}
.ref-reward-chip{display:inline-flex;align-items:center;gap:3px;color:var(--gold,#f6d67b);font-size:13px;font-weight:700;background:#dfb7610a;border:1px solid #b4a07140;border-radius:7px;padding:5px 7px;white-space:nowrap;flex:none}
.ref-reward-chip .resource-icon{width:20px;height:20px;margin:0}
.ref-checklist{list-style:none;padding:0;margin:0}
.ref-checklist>li{display:flex;align-items:flex-start;gap:13px;padding:19px 0;border-bottom:1px solid #80718b28;min-width:0}
.ref-checklist>li:first-child{padding-top:2px}
.ref-task-mark{display:grid;place-items:center;width:27px;height:27px;border:1px solid #8b7a9c77;border-radius:50%;font-size:11px;color:#c6bbd3;flex:none;margin-top:1px}
.ref-checklist>li.is-done .ref-task-mark{background:#c5ef8a18;border-color:#a8cc7866;color:#c5ef8a}
.ref-checklist>li>div{flex:1;min-width:0}
.ref-checklist b{font-size:14px;line-height:1.55;display:block}
.ref-checklist p{font-size:12px;line-height:1.65;color:#b8aec8;margin:7px 0 0}
.ref-checklist>li>strong{font-size:12px;line-height:1.6;white-space:nowrap;color:#cbdba8;flex:none;font-variant-numeric:tabular-nums}
.ref-text-button{appearance:none;font:inherit;font-size:12px;line-height:1.55;color:#c5ef8a;background:none;border:0;padding:0;text-align:left;text-decoration:underline;text-decoration-color:#95b16b88;text-underline-offset:4px;cursor:pointer;min-height:32px}
.ref-text-button:disabled{opacity:.55;cursor:wait}
.ref-checklist .ref-text-button{margin-top:7px}
.ref-time{display:block;font-size:11px;color:#d6c1ec;line-height:1.55;margin-top:10px}
.ref-fine{font-size:11px;color:#afa2c0;line-height:1.75;margin:16px 0 0}
.ref-status{padding:13px 15px;border:1px solid #b5cd7940;background:#afd17809;border-radius:8px;margin:0 0 21px}
.ref-status>b{display:block;font-size:13px;color:#d4e3b6}
.ref-status>p{font-size:12px;color:#c0c6ae;line-height:1.65;margin:7px 0 0}
.ref-status.is-complete{border-color:#b5d88280;background:#9ebf6813}
.ref-bind-form{border-top:1px solid #75648744;margin-top:21px;padding-top:19px}
.ref-bind-form h4{font-size:15px;margin:0 0 8px}
.ref-bind-form p{font-size:11px;line-height:1.75;color:#b8aec8;margin:0 0 14px}
.ref-bind-form>label{font-size:11px;display:block;color:#c3b6d2;margin-bottom:7px}
.ref-bind-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
.ref-bind-controls input{text-transform:uppercase;letter-spacing:1px;font-size:13px}
.ref-phase{font-size:10px;line-height:1.5;color:#c1d79e;border:1px solid #a5c17644;border-radius:7px;background:#99bc6809;padding:5px 8px;max-width:165px;flex-shrink:0}
.ref-intro{font-size:12px;line-height:1.75;color:#bfb5cd;margin:0 0 13px}
.ref-tournament-meta{display:flex;flex-wrap:wrap;gap:7px 14px;color:#ab9ebd;font-size:10px;line-height:1.6;margin-bottom:18px}
.ref-prize-pool{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid #71608140;border-bottom:1px solid #71608140}
.ref-prize-pool>div:first-child>span{font-size:11px;color:#baacc8;display:block;margin-bottom:5px}
.ref-prize-pool strong{font-size:31px;color:#eaca8b;line-height:1.2;white-space:nowrap}
.ref-prize-pool small{font-size:11px;font-weight:400}
.ref-prize-mix{display:grid;gap:7px;font-size:11px;color:#c5b8d1;line-height:1.4}
.ref-prize-mix b{color:#efe3c8;display:inline-block;min-width:22px;text-align:right;margin-right:4px}
.ref-prize-tiers{margin-top:17px}
.ref-prize-labels,.ref-prize-tier{display:grid;grid-template-columns:75px minmax(0,1fr);gap:15px;padding:10px 0;align-items:start}
.ref-prize-labels{font-size:10px;color:#ac9bbf;padding-top:0}
.ref-prize-tier{border-top:1px solid #74607f22;font-size:12px;line-height:1.6}
.ref-prize-tier>strong{color:#ead19b;font-size:13px}
.ref-prize-tier>div{display:flex;gap:6px 12px;flex-wrap:wrap;color:#c4b7d0}
.ref-prize-tier b{color:#eee4f5}
.ref-my-result{display:flex;justify-content:space-between;gap:14px;padding:12px 14px;background:#211b302e;border:1px solid #65537344;border-radius:8px;margin-top:18px;font-size:11px;line-height:1.6;color:#bfb1ce}
.ref-my-result b{color:#d5e7b0;margin-left:7px;font-size:13px;font-variant-numeric:tabular-nums}
.ref-table-wrap{max-width:100%;margin-top:18px;overflow-x:auto}
.ref-table-wrap table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}
.ref-table-wrap th{font-size:10px;line-height:1.4;color:#b6a6c6;font-weight:400;padding:10px 7px}
.ref-table-wrap td{padding:13px 7px;border-top:1px solid #74607f2a;line-height:1.5;white-space:nowrap}
.ref-table-wrap th:last-child,.ref-table-wrap td:last-child{text-align:right}
.ref-table-wrap code{font:11px ui-monospace,SFMono-Regular,Consolas,monospace;color:#d2c8dc}
.ref-table-wrap tr.is-me td{background:#accc7511;color:#d5e8b1}
.ref-you{font-size:9px;color:#c5ef8a;margin-left:7px}
.ref-leaders-empty{display:flex;gap:12px;align-items:center;padding:19px 0 1px;color:#a697b7}
.ref-leaders-empty>span{color:#c6b18a;font-size:22px;flex:none}
.ref-leaders-empty>p{font-size:11px;line-height:1.65;margin:0}
.ref-entitlement{font-size:12px;line-height:1.75;color:#d7e6b9;background:#c5ef8a0a;border:1px solid #a4bc7744;border-radius:8px;padding:13px;margin-bottom:0}
.ref-fair{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:22px;align-items:start;padding:24px 3px 6px}
.ref-fair h3{font-size:15px;line-height:1.5;margin:0}
.ref-fair p{font-size:11px;line-height:1.75;color:#a99ab9;margin:0}
.ref-error{padding:17px 20px;border:1px solid #d6ac6e66;border-radius:10px;background:#ca995711;color:#e4c796;margin-top:17px}
.ref-error p{font-size:13px;line-height:1.7;margin:0}
.ref-error>div{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:12px}
.ref-error .ref-text-button{color:#dfc697}
.ref-loading{font-size:12px;color:#c9dda9;margin:15px 0 0}
@media(max-width:1000px){.ref-hero{gap:22px;padding:26px}.ref-main-grid{grid-template-columns:minmax(0,1fr)}.ref-fair{grid-template-columns:1fr;gap:9px}.ref-phase{max-width:230px}.ref-bind-controls{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:650px){.ref-hero{grid-template-columns:minmax(0,1fr);padding:23px 20px;gap:24px}.ref-hero h2{font-size:29px}.ref-hero-copy>p{font-size:13px}.ref-share{padding:17px}.ref-stats{gap:8px;margin:13px 0 18px}.ref-stats>div{padding:15px 10px}.ref-stats b{font-size:23px}.ref-stats span{font-size:10px}.ref-panel{padding:20px 17px}.ref-panel-heading{gap:10px}.ref-panel-heading h3{font-size:19px}.ref-tournament .ref-panel-heading{flex-direction:column;gap:9px}.ref-phase{max-width:100%}.ref-main-grid{gap:17px}.ref-checklist>li{gap:10px}.ref-checklist b{font-size:13px}.ref-task-mark{width:24px;height:24px;font-size:10px}.ref-checklist>li>strong{font-size:11px}.ref-bind-controls{grid-template-columns:minmax(0,1fr)}.ref-my-result{padding:11px;gap:9px;font-size:10px}.ref-prize-pool{gap:14px}.ref-prize-labels,.ref-prize-tier{grid-template-columns:58px minmax(0,1fr);gap:14px}.ref-table-wrap th,.ref-table-wrap td{padding-left:4px;padding-right:4px}.ref-fair{padding:20px 1px 6px}.ref-error{padding:16px}}
@media(prefers-reduced-motion:reduce){.referrals-page *{scroll-behavior:auto!important}}

/* Referrals visual polish: same game rules, clearer rewards and compact progress. */
.ref-hero{padding:28px 30px;gap:32px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.ref-hero h2{font-size:clamp(26px,2.55vw,36px);line-height:1.18;margin:10px 0 13px;max-width:540px}
.ref-hero-copy>p{line-height:1.65}
.ref-hero-reward{gap:12px;margin-top:21px;align-items:center}
.ref-hero-reward>.ref-bonus{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:12px 17px;border:1px solid #b7d88730;border-radius:10px;background:#c5ef8a08;min-width:128px}
.ref-bonus>span{font-size:12px;color:#c9d6b6;line-height:1.4}
.ref-bonus>strong{display:flex;align-items:center;gap:7px;font-size:30px;line-height:1;color:#d6efab;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.ref-bonus .resource-icon{width:25px;height:25px;margin:0}
.ref-bonus-join{color:#a08eb5;font-size:20px}
.ref-hero-copy>.ref-reward-condition{font-size:11px;color:#b1a9be;margin-top:10px;line-height:1.5}
.ref-share{padding:21px;background:#201b2dd9;border-color:#82709355;box-shadow:none}
.ref-share h3,.ref-share>label{font-size:16px;margin-bottom:13px}
.ref-share>p{font-size:12px;line-height:1.6}
.ref-link-controls{grid-template-columns:minmax(0,1fr) auto;gap:8px}
.ref-link-controls input{font-size:11px;text-overflow:ellipsis}
.ref-link-controls .button{min-width:112px;width:auto}
.ref-share>.ref-copy-notice:empty{display:none}
.ref-stats{gap:0;margin:17px 0 22px;border:1px solid #51465f;border-radius:10px;background:#2d273e;padding:15px 0}
.ref-stats>div{border:0;border-radius:0;background:none;padding:0 23px}
.ref-stats>div+div{border-left:1px solid #75678548}
.ref-stats b{font-size:26px;line-height:1.15}
.ref-stats span{font-size:12px;line-height:1.45;margin-top:6px}
.ref-main-grid{margin-top:22px;gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.ref-stats+.ref-main-grid{margin-top:0}
.ref-panel{padding:23px}
.ref-panel-heading{margin-bottom:17px;align-items:flex-start}
.ref-panel-heading h3{font-size:20px}
.ref-phase{font-size:11px;padding:5px 8px;max-width:180px}
.ref-intro{font-size:13px;line-height:1.6}
.ref-tournament-meta{font-size:11px;margin-bottom:15px;line-height:1.5}
.ref-checklist>li{padding:17px 0;gap:12px}
.ref-checklist>li.is-done{background:linear-gradient(90deg,#b7db7f09,transparent);border-radius:6px}
.ref-checklist b{font-size:14px;line-height:1.45}
.ref-checklist p{font-size:12px;line-height:1.6;margin-top:6px}
.ref-task-mark{border-color:#9384a34a;background:#4639504d;color:#e2d5f0;font-weight:600}
.ref-checklist>li>strong{font-size:13px}
.ref-checklist .ref-text-button{display:inline-flex;align-items:center;min-height:36px;margin-top:10px;padding:6px 12px;border:1px solid #c5ef8a35;border-radius:6px;text-decoration:none;background:#c5ef8a08;font-size:12px}
.ref-checklist .ref-text-button:hover{background:#c5ef8a16}
.ref-fine{font-size:12px;line-height:1.65}
.ref-prize-pool{padding:14px 0;border-bottom:0}
.ref-prize-pool strong{font-size:33px}
.ref-prize-pool small{font-size:12px}
.ref-place-count{font-size:11px;color:#d6c3e9;line-height:1.5;text-align:right;background:#aa8ed510;border:1px solid #ae8ed52b;padding:6px 9px;border-radius:6px}
.ref-prize-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-bottom:1px solid #71608140;padding:3px 0 16px}
.ref-prize-case{display:flex;align-items:center;gap:4px;min-width:0}
.ref-prize-case>.crate-sprite{flex:none;width:68px;height:68px;margin:0;filter:drop-shadow(0 4px 4px #100c1a66)}
.ref-prize-case>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.ref-prize-case b{font-size:19px;line-height:1.1;color:#f4e2b4;font-variant-numeric:tabular-nums}
.ref-prize-case span:not(.crate-sprite){font-size:10px;line-height:1.4;color:#c4b5cf;overflow-wrap:break-word}
.ref-prize-labels,.ref-prize-tier{grid-template-columns:57px minmax(0,1fr);gap:10px;padding:11px 9px;align-items:center}
.ref-prize-labels{font-size:11px;padding-top:0;padding-bottom:8px}
.ref-prize-tier{font-size:12px;line-height:1.5}
.ref-prize-tier>strong{width:35px;min-height:29px;display:grid;place-items:center;font-size:13px;border-radius:6px;font-variant-numeric:tabular-nums;color:#c3b9cf}
.ref-prize-tier.ref-place-1{background:linear-gradient(90deg,#e3ba6913,transparent);border-radius:7px;border-color:transparent}
.ref-place-1>strong{background:#e9c77122;color:#f9d882;border:1px solid #e9c77133}
.ref-place-2>strong{background:#c5ccd518;color:#e0e6ec;border:1px solid #c5ccd523}
.ref-place-3>strong{background:#c6977018;color:#e3bd99;border:1px solid #c697702b}
.ref-bind-details{margin-top:19px;border-top:1px solid #75648744;padding-top:14px}
.ref-bind-details>summary{font-size:12px;color:#c4b2dc;cursor:pointer;line-height:1.6;padding:5px 0;min-height:32px;list-style-position:inside}
.ref-bind-details>summary:hover{color:#e6d3fa}
.ref-bind-form{border:0;margin:0;padding-top:13px}
.ref-fair{grid-template-columns:160px minmax(0,1fr) auto;gap:18px;padding:21px 2px 8px}
.ref-fair h3{font-size:13px}
.ref-fair p{font-size:12px;line-height:1.65}
.ref-fair .ref-text-button{font-size:12px}
@media(max-width:1100px){.ref-prize-case{flex-direction:column;text-align:center;gap:4px}.ref-prize-case>div{flex-direction:row;align-items:baseline;justify-content:center;gap:5px}.ref-prize-case>.crate-sprite{width:65px;height:65px}.ref-prize-case span:not(.crate-sprite){font-size:11px}.ref-main-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}}
@media(max-width:900px){.ref-main-grid{grid-template-columns:minmax(0,1fr)}.ref-hero{gap:20px;padding:25px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ref-hero h2{font-size:29px}.ref-link-controls{grid-template-columns:minmax(0,1fr)}.ref-link-controls .button{width:100%}.ref-prize-case{flex-direction:row;text-align:left;justify-content:center}.ref-prize-case>div{flex-direction:column;align-items:flex-start}.ref-prize-case>.crate-sprite{width:76px;height:76px}.ref-fair{grid-template-columns:1fr;gap:8px}}
@media(max-width:650px){.ref-hero{grid-template-columns:minmax(0,1fr);padding:22px 19px;gap:22px}.ref-hero h2{font-size:28px;line-height:1.2}.ref-hero-copy>p{font-size:13px;line-height:1.6}.ref-hero-reward{gap:10px;margin-top:18px}.ref-hero-reward>.ref-bonus{min-width:0;flex:1;padding:11px 13px}.ref-bonus>strong{font-size:28px}.ref-bonus>span{font-size:12px}.ref-share{padding:16px}.ref-share-mark{display:none}.ref-guest>.button{margin-top:13px}.ref-stats{padding:14px 0;margin:13px 0 18px}.ref-stats>div{padding:0 11px}.ref-stats b{font-size:23px}.ref-stats span{font-size:10px;line-height:1.55}.ref-main-grid{margin-top:17px;gap:17px}.ref-panel{padding:20px 17px}.ref-panel-heading h3{font-size:19px}.ref-tournament .ref-panel-heading{flex-direction:row;gap:10px;flex-wrap:wrap}.ref-phase{font-size:10px;max-width:100%;padding:4px 7px}.ref-prize-case{flex-direction:column;text-align:center;gap:4px}.ref-prize-case>div{flex-direction:column;align-items:center;gap:4px}.ref-prize-case>.crate-sprite{width:65px;height:65px}.ref-prize-case b{font-size:18px}.ref-prize-case span:not(.crate-sprite){font-size:11px}.ref-prize-cases{gap:4px;padding-bottom:14px}.ref-prize-labels,.ref-prize-tier{grid-template-columns:45px minmax(0,1fr);gap:7px;padding-left:3px;padding-right:3px}.ref-prize-labels{font-size:11px}.ref-prize-tier{font-size:12px}.ref-checklist b{font-size:13px}.ref-checklist>li>strong{font-size:12px}.ref-checklist .ref-text-button{min-height:40px}.ref-fine{font-size:11px}.ref-place-count{max-width:120px}.ref-fair p{font-size:11px}}

.ref-prize-tier{font-size:13px;color:#c6bbd3}.ref-prize-tier>div{color:#c6bbd3}.ref-checklist>li>strong[hidden]{display:none}
@media(max-width:650px){.ref-prize-tier{font-size:13px}.ref-tournament .ref-fine{font-size:12px}}

.ref-prize-tier>strong{width:45px;white-space:nowrap}.ref-place-1>strong,.ref-place-2>strong,.ref-place-3>strong{width:30px}

.ref-hero-reward{align-items:stretch}

/* Weekly farm tasks are a separate page; referral rules and rewards stay in their own view. */
.farm-tasks-page{min-width:0;color:var(--ink,#f6f1df)}
.farm-tasks-page *{box-sizing:border-box}
.farm-tasks-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:6px 0 22px}
.farm-tasks-heading>div:first-child{min-width:0;max-width:700px}
.farm-tasks-heading .eyebrow{font-size:10px;line-height:1.6;letter-spacing:1.6px;color:#bad98e;margin-bottom:10px}
.farm-tasks-heading h2{font-size:30px;line-height:1.2;margin:0 0 11px;letter-spacing:-.5px}
.farm-tasks-heading p{font-size:14px;line-height:1.65;color:#bfb3ce;margin:0}
.farm-tasks-summary{display:grid;gap:8px;padding:15px 21px;min-width:165px;background:#abc7780b;border:1px solid #9db86f39;border-radius:11px;flex:none}
.farm-tasks-summary>strong{font-size:28px;line-height:1.1;letter-spacing:-.7px;color:#d9ebb8;font-variant-numeric:tabular-nums}
.farm-tasks-summary>strong>span{font-size:20px;color:#a9aa92;font-weight:400}
.farm-tasks-summary>span{font-size:11px;line-height:1.5;color:#c4c9b2}
.farm-tasks-cycle{display:flex;align-items:center;gap:12px;border:1px solid #7f68944c;background:#b597d609;border-radius:9px;padding:14px 17px;margin-bottom:18px}
.farm-week-mark{display:grid;place-items:center;flex:none;width:32px;height:35px;border:1px solid #b296cd66;border-top:5px solid #b296cd77;border-radius:5px;font-size:14px;line-height:1;color:#ddcee9;font-weight:700}
.farm-tasks-cycle>div{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:10px 24px;flex:1;flex-wrap:wrap}
.farm-tasks-cycle b{font-size:13px;color:#ddd1e8;line-height:1.5}
.farm-tasks-cycle div>span{font-size:12px;color:#ad9dbe;line-height:1.55;font-variant-numeric:tabular-nums}
.farm-tasks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.farm-task{display:flex;flex-direction:column;gap:0;min-width:0;padding:20px;border:1px solid #64537173;border-radius:12px;background:linear-gradient(140deg,#322b43,#292336)}
.farm-task-heading{display:flex;align-items:center;gap:12px;min-width:0}
.farm-task-heading>div{min-width:0;flex:1}
.farm-task h3{font-size:17px;line-height:1.4;margin:0 0 4px;color:#ece5f2}
.farm-task-description{display:block;font-size:11px;line-height:1.5;color:#b3a3c2}
.farm-task-icon{display:grid;place-items:center;flex:none;width:45px;height:45px;border-radius:9px;border:1px solid #8d74952b;background:#1c172644}
.farm-task-icon>.resource-icon,.farm-task-icon>.worker-icon{width:34px;height:34px;margin:0}
.farm-task-reward{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 18px}
.farm-task-reward-item{display:inline-flex;align-items:center;gap:7px;background:#b3924b0b;border:1px solid #c7a96732;border-radius:7px;padding:7px 9px;min-width:0}
.farm-task-reward-item>b{font-size:16px;line-height:1;color:#edce87;font-variant-numeric:tabular-nums}
.farm-task-reward-item>.resource-icon{width:22px;height:22px;margin:0}
.farm-task-reward-item>span:last-child{font-size:11px;line-height:1.4;color:#d9c8a5;min-width:0}
.farm-task-progress-label{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-top:auto;margin-bottom:8px}
.farm-task-progress-label>span{font-size:11px;color:#afa0c0;line-height:1.5}
.farm-task-progress-label>b{font-size:12px;color:#d7cde2;line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums}
.farm-task-progress{height:5px;background:#181322;border:1px solid #76618129;border-radius:8px;overflow:hidden}
.farm-task-progress>span{display:block;height:100%;background:#a9c97a;border-radius:8px;max-width:100%}
.farm-task-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:17px;min-height:44px}
.farm-tasks-page .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:132px;padding:10px 14px;font-size:12px;line-height:1.5;white-space:normal}
.farm-task-go{background:#b198d00a;border-color:#bca5d237;color:#d8cce5;box-shadow:none}
.farm-task-go:hover{background:#b198d015;border-color:#bca5d269}
.farm-task-go>span{font-size:15px;color:#bcd58e}
.farm-task-claimed{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#bed694;line-height:1.5;min-height:44px}
.farm-task-claimed>span{font-size:15px}
.farm-task.is-ready{border-color:#b5d77b77;background:linear-gradient(140deg,#3b3c35,#2d2939)}
.farm-task.is-ready .farm-task-progress>span{background:#c7ee92}
.farm-task.is-ready .farm-task-progress-label>span{color:#d0e4ae}
.farm-task.is-claimed{background:#292534;border-color:#8093644d}
.farm-task.is-claimed .farm-task-progress>span{background:#7a9b59}
.farm-task.is-claimed .farm-task-reward-item{background:#899e6810;border-color:#91a66c32}
.farm-task.is-claimed .farm-task-reward-item>b{color:#c9dab0}
.farm-task-capacity{font-size:11px;line-height:1.65;color:#d7bc88;margin:12px 0 0}
.farm-task:focus-visible{outline:2px solid #c5ef8a;outline-offset:3px}
.farm-tasks-note{font-size:12px;line-height:1.75;color:#afa0bf;margin:20px 0 5px;max-width:900px}
@media(min-width:1200px){.farm-tasks-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.farm-tasks-heading{gap:16px;align-items:flex-start}.farm-tasks-heading h2{font-size:26px}.farm-tasks-heading p{font-size:13px}.farm-tasks-summary{min-width:130px;padding:13px 15px}.farm-tasks-summary>strong{font-size:25px}.farm-tasks-summary>span{font-size:10px}.farm-task{padding:18px 16px}.farm-task h3{font-size:15px}.farm-task-heading{gap:10px}.farm-task-icon{width:40px;height:40px}.farm-task-icon>.resource-icon,.farm-task-icon>.worker-icon{width:31px;height:31px}}
@media(max-width:580px){.farm-tasks-heading{flex-direction:column;gap:15px;padding-bottom:17px}.farm-tasks-heading h2{font-size:27px}.farm-tasks-summary{display:flex;align-items:center;gap:13px;min-width:0;padding:10px 14px}.farm-tasks-summary>strong{font-size:24px}.farm-tasks-summary>span{font-size:11px}.farm-tasks-cycle{padding:12px 13px;gap:10px;margin-bottom:14px}.farm-tasks-cycle>div{display:grid;gap:3px}.farm-tasks-cycle b{font-size:12px}.farm-tasks-cycle div>span{font-size:11px}.farm-tasks-grid{grid-template-columns:minmax(0,1fr);gap:12px}.farm-task{padding:17px}.farm-task h3{font-size:16px}.farm-task-reward{margin:14px 0 16px}.farm-task-actions{margin-top:14px}.farm-tasks-note{font-size:11px;margin-top:17px}}


/* Ongoing sales bonuses are separate from one-time invitation rewards. */
.ref-earnings-share{display:grid;grid-template-columns:76px minmax(0,1fr) minmax(150px,210px);gap:15px 20px;align-items:center;margin:18px 0 22px;padding:20px 23px;border:1px solid #8eae5e55;border-radius:12px;background:linear-gradient(115deg,#94b36113,#2a2438 58%);min-width:0}
.ref-share-rate{display:flex;align-items:baseline;justify-content:center;gap:2px;color:#cce996;font-size:48px;font-weight:700;line-height:1;letter-spacing:-2px;font-variant-numeric:tabular-nums}
.ref-share-rate>span{font-size:24px;letter-spacing:0}
.ref-share-explanation{min-width:0}
.ref-share-explanation>h3{margin:0 0 7px;font-size:17px;line-height:1.4;color:#e5ecd6}
.ref-share-explanation>p{margin:0;font-size:12px;line-height:1.65;color:#c6bed0;max-width:690px}
.ref-share-explanation>p.ref-share-carry{margin-top:7px;font-size:11px;color:#aebd92}
.ref-share-earned{display:flex;flex-direction:column;gap:7px;align-items:flex-start;min-width:0;padding-left:21px;border-left:1px solid #a7bf7636}
.ref-share-earned>span:first-child{font-size:11px;line-height:1.5;color:#baadc9}
.ref-share-earned>strong{display:flex;align-items:center;gap:5px;max-width:100%;min-width:0;color:#f0d18c;font-size:27px;line-height:1.25;font-variant-numeric:tabular-nums}
.ref-share-earned b{font:inherit;min-width:0;overflow-wrap:anywhere}
.ref-share-earned .resource-icon{width:24px;height:24px;margin:0;flex:none}
.ref-share-earned>.ref-share-coins{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ref-share-earned>small{font-size:11px;line-height:1.55;color:#b2a6bd}
.ref-share-pending{grid-column:2/-1;margin:0;padding-top:10px;border-top:1px solid #b79c5d33;color:#d4bd8a;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
@media(max-width:800px){.ref-earnings-share{grid-template-columns:62px minmax(0,1fr);padding:18px;gap:13px 15px}.ref-share-rate{font-size:42px}.ref-share-rate>span{font-size:23px}.ref-share-earned{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:13px 0 0;border-left:0;border-top:1px solid #a7bf7636}.ref-share-earned>strong{justify-content:flex-end;font-size:24px;max-width:190px}.ref-share-earned>small{grid-column:1/-1}.ref-share-pending{grid-column:1/-1}}
@media(max-width:420px){.ref-earnings-share{padding:17px 15px;gap:12px;margin:17px 0}.ref-share-explanation>h3{font-size:16px}.ref-share-explanation>p{font-size:12px}.ref-share-explanation>p.ref-share-carry{font-size:11px}.ref-share-earned>strong{max-width:165px}}

/* Accumulated sales bonuses are collected explicitly into the farm balance. */
.ref-earnings-share{grid-template-columns:76px minmax(0,1fr) minmax(210px,250px)}
.ref-share-claim{width:100%;min-height:42px;margin-top:4px;font-size:12px;line-height:1.5;white-space:normal}
.ref-share-collected{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;margin:2px 0 0;font-size:11px;line-height:1.5;color:#b5a7c5;max-width:100%;min-width:0}
.ref-share-collected>b{font-weight:600;color:#d5c5e4;overflow-wrap:anywhere;max-width:100%}
.ref-share-feedback{grid-column:1/-1;margin:0;padding-top:12px;border-top:1px solid #a7bf7636;font-size:12px;line-height:1.65;overflow-wrap:anywhere}
.ref-share-feedback.is-success{color:#cce996}.ref-share-feedback.is-error{color:#f3b9a8}
@media(max-width:800px){.ref-earnings-share{grid-template-columns:62px minmax(0,1fr)}.ref-share-claim,.ref-share-collected{grid-column:1/-1}.ref-share-earned>strong{max-width:100%}.ref-share-claim{margin-top:6px}.ref-share-collected{margin-top:3px}}

/* Reserved invitation bonuses are collected separately after official launch. */
.ref-invitation-bonus{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,250px);gap:25px;margin:24px 0;padding:24px;border:1px solid #b4a07166;border-radius:13px;background:linear-gradient(130deg,#3a3244,#2a2539);min-width:0}
.ref-bonus-explanation,.ref-bonus-balance{min-width:0}
.ref-bonus-explanation .ref-panel-heading{margin-bottom:13px}
.ref-bonus-explanation h3{font-size:21px}
.ref-bonus-explanation p{font-size:13px;line-height:1.75;color:#d2c6d8;margin:0}
.ref-bonus-explanation .ref-launch-preserved{margin-top:12px;color:#bccdab;font-size:12px}
.ref-bonus-balance{display:flex;flex-direction:column;gap:8px;align-items:stretch;justify-content:center}
.ref-bonus-balance>span,.ref-bonus-balance>small{font-size:11px;line-height:1.6;color:#beafcd}
.ref-bonus-balance>strong{display:flex;align-items:center;gap:7px;color:#edce87;font-size:30px;line-height:1.2;min-width:0}
.ref-bonus-balance>strong>b{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;min-width:0}
.ref-bonus-balance>strong>.resource-icon{flex:none;width:27px;height:27px}
.ref-bonus-balance>.button:disabled{opacity:.6;cursor:not-allowed}
.ref-demo-badge{display:inline-block;margin:0 0 9px;padding:3px 7px;border:1px solid #bd97dc44;border-radius:5px;font-size:10px;line-height:1.5;color:#ceb6e3;background:#9e74c20c}
.ref-share-explanation>p.ref-demo-reset-note{border-left:2px solid #c5a67977;padding-left:10px;margin-top:12px;color:#d6c4a8;font-size:12px;line-height:1.65}
@media(max-width:650px){.ref-invitation-bonus{grid-template-columns:minmax(0,1fr);padding:20px 17px;gap:20px;margin:18px 0}.ref-bonus-explanation .ref-panel-heading{flex-wrap:wrap;gap:10px}.ref-bonus-explanation h3{font-size:19px}.ref-bonus-balance{border-top:1px solid #a08b7140;padding-top:15px}.ref-bonus-balance>strong{font-size:28px}}


/* dist/craft.css */
.craft-page{--craft-muted:#b5a8c5;--craft-line:#65527466;margin:26px 0 36px;min-width:0}
.craft-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:26px;margin-bottom:17px}
.craft-heading h2{margin:9px 0 11px;font-size:31px;line-height:1.25;color:#f0e8f7}
.craft-heading p{max-width:700px;margin:0;color:var(--craft-muted);font-size:15px;line-height:1.65}
.craft-status{display:inline-flex;align-items:center;gap:8px;flex:none;padding:9px 12px;border:1px solid #b398625c;border-radius:7px;background:#b3986210;color:#e6cc96;font-size:12px;line-height:1.5;margin-top:6px}
.craft-status i{width:6px;height:6px;flex:none;background:#dbbb78;box-shadow:0 0 7px #dbbb7833}
.craft-launch-note{margin:0 0 24px;color:#aaa0b8;font-size:12px;line-height:1.7;max-width:850px}
.craft-preview{border:1px solid #74618e7a;background:radial-gradient(ellipse at 90% 30%,#63844412,transparent 55%),linear-gradient(130deg,#332c45,#292238);border-radius:15px;padding:23px 26px 19px}
.craft-preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}
.craft-preview-heading h3,.craft-subheading h3,.craft-rules h3{margin:0;font-size:18px;line-height:1.4;color:#eee6f5}
.craft-preview-heading>span{font-size:12px;white-space:nowrap;color:#cebfdf;letter-spacing:.03em}
.craft-preview-heading>span>b{margin:0 8px;color:#badb90}
.craft-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:22px;max-width:720px}
.craft-controls label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:12px;line-height:1.5;color:#c6b8d8}
.craft-controls select{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:46px;border:1px solid #8975978a;border-radius:7px;background:#221c31;color:#ede6f5;font:inherit;font-size:14px;padding:10px 12px;cursor:pointer}
.craft-controls select:focus-visible{outline:2px solid #c1e895;outline-offset:3px;border-color:#c1e895}
.craft-recipe{display:grid;grid-template-columns:minmax(0,3fr) 45px minmax(0,1.15fr);gap:20px;align-items:stretch}
.craft-source-group,.craft-result-group{min-width:0;display:flex;flex-direction:column}
.craft-group-label{margin:0 0 11px;font-size:11px;line-height:1.4;letter-spacing:.02em;color:#bcadcc}
.craft-source-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;flex:1}
.craft-animal-card{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:15px 10px 13px;border:1px solid #a78db746;border-top:2px solid var(--craft-rarity);border-radius:10px;background:#1f1a2c70}
.craft-card-rarity{font-size:11px;line-height:1.45;color:var(--craft-rarity);min-height:16px;max-width:100%;overflow-wrap:anywhere}
.craft-card-art{display:grid;place-items:center;width:100%;height:136px;margin:7px 0 3px}
.craft-page .craft-card-art>.animal-sprite{display:block;width:min(100%,132px);height:132px;max-width:100%;margin:0;background:none;border-radius:0;flex-shrink:1;image-rendering:pixelated;overflow:visible}
.craft-animal-card h4{font-size:14px;line-height:1.4;margin:3px 0 9px;max-width:100%;overflow-wrap:anywhere;color:#e7deed;font-weight:600}
.craft-card-yield{display:inline-flex;align-items:center;justify-content:center;min-width:47px;padding:4px 9px;border:1px solid #a994bf26;border-radius:5px;background:#afa0cc09;font-size:13px;line-height:1.35;color:#c6bdd2;font-variant-numeric:tabular-nums;margin-top:auto}
.craft-recipe-arrow{display:grid;place-items:center;color:#bfd493;padding-top:20px}
.craft-recipe-arrow svg{display:block;width:38px;height:28px;shape-rendering:crispEdges;filter:drop-shadow(0 2px 0 #15161b)}
.craft-result-card{flex:1;border-color:#a6c48185;border-top-color:var(--craft-rarity);background:radial-gradient(ellipse at 50% 44%,#b4d38914,transparent 70%),#272d2c50;box-shadow:inset 0 0 22px #a4c97804}
.craft-result-card .craft-card-yield{color:#d6edb8;border-color:#a9c98544;background:#b7d08e10;font-weight:700}
.craft-result-card .craft-card-rarity{font-weight:700}
.craft-metrics{display:grid;grid-template-columns:1.3fr 1fr;gap:25px;margin:23px 0 0;border-top:1px solid var(--craft-line);padding-top:19px}
.craft-metrics>div{min-width:0}
.craft-metrics dt{font-size:12px;color:#b9aaca;line-height:1.5;margin-bottom:8px}
.craft-metrics dd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;font-size:20px;line-height:1.45;font-variant-numeric:tabular-nums;color:#b7acbf}
.craft-metrics dd>strong{color:#d2edac;font-size:23px}
.craft-metric-arrow{font-size:17px;color:#a395b4}
.craft-gain{font-size:11px;color:#c8eaa6;background:#b5d68c15;border:1px solid #b5d68c33;padding:3px 6px;border-radius:5px;line-height:1.3}
.craft-calculation-note{font-size:11px;line-height:1.65;color:#9e90af;margin:15px 0 0}
.craft-progression{margin-top:28px}
.craft-subheading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:13px}
.craft-subheading>span{font-size:12px;line-height:1.5;color:#baa9c8}
.craft-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;list-style:none;margin:0;padding:0}
.craft-ladder li{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);align-items:center;gap:6px;padding:14px 11px;border:1px solid #62536f80;border-radius:8px;background:#30273e88;font-size:11px;line-height:1.6}
.craft-ladder li.is-current{border-color:#afce8477;background:#a0bd6c0d}
.craft-ladder span,.craft-ladder strong{min-width:0;font-weight:500}
.craft-ladder i{font-style:normal;color:#aa9abb;text-align:center}
.craft-mythic-note{display:flex;align-items:center;gap:10px;color:#e0b7db;font-size:12px;line-height:1.7;margin:13px 0 0}
.craft-mythic-note>span{color:#e7afdd;font-size:20px;flex:none}
.craft-rules{display:grid;grid-template-columns:1fr 1.35fr;gap:34px;margin-top:28px;border-top:1px solid var(--craft-line);padding-top:24px}
.craft-rules p{font-size:12px;line-height:1.8;color:#b5a5c3;margin:12px 0 0;max-width:760px}
.craft-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1100px){.craft-recipe{grid-template-columns:minmax(0,3fr) 33px minmax(0,1.15fr);gap:13px}.craft-source-cards{gap:9px}.craft-card-art{height:113px}.craft-page .craft-card-art>.animal-sprite{height:112px}.craft-recipe-arrow svg{width:31px}.craft-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}.craft-ladder li{padding:13px 15px;font-size:12px}}
@media(max-width:760px){.craft-heading{gap:15px;flex-wrap:wrap}.craft-heading h2{font-size:27px}.craft-heading p{font-size:14px}.craft-status{margin-top:0}.craft-launch-note{font-size:11px;margin-bottom:18px}.craft-preview{padding:19px 17px 17px}.craft-preview-heading h3,.craft-subheading h3,.craft-rules h3{font-size:17px}.craft-recipe{grid-template-columns:minmax(0,1fr);gap:12px}.craft-source-cards{gap:10px}.craft-recipe-arrow{padding:0;height:26px}.craft-recipe-arrow svg{transform:rotate(90deg);width:28px;height:21px}.craft-result-group{width:100%;max-width:285px;justify-self:center}.craft-result-group .craft-group-label{text-align:center;margin-bottom:8px}.craft-result-card{padding:12px 17px;display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px 15px;align-items:center}.craft-result-card .craft-card-art{grid-row:1/4;grid-column:1;height:103px;margin:0}.craft-result-card .craft-card-art>.animal-sprite{width:103px;height:103px}.craft-result-card .craft-card-rarity{grid-column:2;align-self:end}.craft-result-card h4{grid-column:2;margin:0}.craft-result-card .craft-card-yield{grid-column:2;justify-self:center;align-self:start;margin:0}.craft-metrics{gap:14px;margin-top:20px;padding-top:16px}.craft-metrics dd{gap:8px;font-size:18px}.craft-metrics dd>strong{font-size:21px}.craft-rules{gap:24px}.craft-subheading{align-items:flex-start;flex-direction:column;gap:5px}.craft-calculation-note{font-size:10px}}
@media(max-width:480px){.craft-page{margin-top:20px}.craft-heading h2{font-size:25px}.craft-preview{padding:17px 13px}.craft-preview-heading{align-items:flex-start;margin-bottom:17px;gap:12px}.craft-preview-heading h3{max-width:180px;font-size:16px}.craft-preview-heading>span{font-size:10px;margin-top:3px}.craft-preview-heading>span>b{margin:0 4px}.craft-controls{grid-template-columns:1fr;gap:12px;margin-bottom:19px}.craft-controls select{font-size:13px;min-height:44px}.craft-controls label{gap:6px;font-size:11px}.craft-source-cards{gap:7px}.craft-animal-card{padding:11px 5px 10px}.craft-card-rarity{font-size:10px}.craft-card-art{height:86px;margin-top:4px}.craft-page .craft-card-art>.animal-sprite{height:86px;width:min(100%,86px)}.craft-animal-card h4{font-size:11px;min-height:16px;margin:3px 0 7px}.craft-card-yield{font-size:11px;padding:4px 6px;min-width:35px}.craft-group-label{font-size:10px}.craft-result-card{padding:12px 16px}.craft-result-card .craft-card-art>.animal-sprite{width:103px;height:103px}.craft-result-card h4{font-size:14px}.craft-result-card .craft-card-rarity{font-size:12px}.craft-result-card .craft-card-yield{font-size:13px}.craft-metrics{grid-template-columns:1.35fr 1fr;gap:12px}.craft-metrics dt{font-size:11px}.craft-metrics dd{gap:7px;font-size:16px}.craft-metrics dd>strong{font-size:19px}.craft-gain{font-size:10px}.craft-ladder{gap:8px}.craft-ladder li{grid-template-columns:1fr 12px 1fr;padding:10px 9px;font-size:10px;gap:4px}.craft-mythic-note{font-size:11px}.craft-rules{grid-template-columns:1fr;gap:24px;padding-top:20px}.craft-rules p{font-size:11px}}

/* Use the same product and feed sprites as the barn and animal cards. */
.craft-card-yield{gap:5px;white-space:nowrap}
.craft-card-yield .product-icon{width:20px;height:20px;min-width:20px;flex:none;margin:0}
.craft-metric-value{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.craft-metric-value .product-icon,.craft-metric-value .resource-icon{width:23px;height:23px;min-width:23px;flex:none;margin:0}
@media(max-width:480px){.craft-card-yield{gap:4px}.craft-card-yield .product-icon{width:17px;height:17px;min-width:17px}.craft-metric-value{gap:4px}.craft-metric-value .product-icon,.craft-metric-value .resource-icon{width:19px;height:19px;min-width:19px}}

@media(max-width:480px){.craft-metrics{grid-template-columns:1fr;gap:15px}}

/* Selection and confirmation share the existing game-card art and buttons. */
.craft-inventory{margin-top:22px;padding:22px 24px;border:1px solid #796b8a77;border-radius:13px;background:linear-gradient(140deg,#342b454d,#282132a8)}
.craft-inventory-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.craft-inventory h3{margin:0;color:#eee6f5;font-size:19px;line-height:1.4}
.craft-inventory-heading p{margin:7px 0 0;color:#b5a8c5;font-size:12px;line-height:1.65}
.craft-selection-count{display:inline-flex;align-items:center;gap:7px;flex:none;font-size:12px;color:#c9bdd6;padding:8px 10px;background:#251f31;border:1px solid #796b8a66;border-radius:6px;white-space:nowrap}
.craft-selection-count b{font-size:15px;color:#d7edb4;font-variant-numeric:tabular-nums}
.craft-availability{margin:13px 0;color:#b5a8c5;font-size:12px;line-height:1.5}
.craft-owned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}
.craft-owned-card{box-sizing:border-box;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:13px 10px 12px;border:1px solid #72628088;border-top:2px solid var(--craft-rarity);border-radius:9px;background:#211b2d;cursor:pointer}
.craft-owned-card.is-selected{border-color:#b4d88b;background:#9fca6610;box-shadow:inset 0 0 0 1px #b4d88b33}
.craft-owned-card:focus-within{outline:2px solid #c9efa0;outline-offset:3px}
.craft-owned-card>input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.craft-owned-card:has(input:disabled){cursor:default}
.craft-owned-card>input:disabled{cursor:default}
.craft-owned-check{display:grid;place-items:center;position:absolute;top:9px;right:9px;width:20px;height:20px;border:1px solid #a999ba88;border-radius:4px;background:#352b45;color:#202a17;font-size:15px;font-weight:700}
.craft-owned-card.is-selected .craft-owned-check{background:#b7d98a;border-color:#b7d98a}
.craft-owned-card.is-unavailable .craft-owned-check{opacity:.35}
.craft-owned-location{display:block;width:100%;box-sizing:border-box;text-align:left;padding-right:25px;font-size:10px;color:#b4a4c3;line-height:1.5;min-height:21px}
.craft-owned-art{display:grid;place-items:center;width:100%;height:99px;margin:6px 0}
.craft-page .craft-owned-art>.animal-sprite{display:block;width:98px;height:98px;margin:0;max-width:100%;flex:none;background:none;border-radius:0;image-rendering:pixelated;overflow:visible}
.craft-owned-card>strong{color:#eadff3;font-size:13px;line-height:1.4;font-weight:600}
.craft-owned-yield{display:inline-flex;justify-content:center;align-items:center;gap:5px;white-space:nowrap;color:#c6bdd2;font-size:12px;line-height:1.5;margin-top:6px;font-variant-numeric:tabular-nums}
.craft-owned-yield>.product-icon{width:20px;height:20px;min-width:20px;margin:0;flex:none}
.craft-owned-reason{display:block;margin:8px 0 0;color:#abc891;font-size:10px;line-height:1.55;min-height:31px;overflow-wrap:anywhere}
.craft-owned-card.is-unavailable .craft-owned-reason{color:#b9a7ba}
.craft-inventory-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.craft-inventory-actions>.button,.craft-recovery>.button{min-height:44px}
.craft-empty{padding:20px 12px;margin:0;border:1px dashed #83709266;border-radius:7px;color:#b6a9c4;text-align:center;font-size:13px;line-height:1.65}
.craft-recovery{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;margin:0 0 16px;background:#c49a4520;border:1px solid #c49a4566;border-radius:8px}
.craft-recovery p{margin:0;color:#ddc795;font-size:12px;line-height:1.6}.craft-recovery>.button{flex:none}
#reward-dialog.craft-dialog{box-sizing:border-box;width:min(790px,calc(100vw - 32px));max-width:790px}
#reward-dialog.craft-dialog .dialog-body{padding-top:15px}
#reward-dialog.craft-dialog h2{font-size:25px;line-height:1.35;margin:0 0 10px}
#reward-dialog.craft-dialog .craft-confirm-mode,#reward-dialog.craft-dialog .craft-processing{font-size:12px;line-height:1.65;color:#b4a8c3;margin:0 0 18px}
.craft-confirm-recipe{display:grid;grid-template-columns:3fr 28px 1.05fr;gap:11px;align-items:center}
.craft-confirm-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.craft-confirm-card{display:flex;min-width:0;flex-direction:column;align-items:center;border:1px solid #79668777;border-top:2px solid var(--craft-rarity);border-radius:8px;padding:11px 6px;background:#251e32;text-align:center}
.craft-confirm-card[data-craft-confirm-role=result]{border-color:#aecb8a77;border-top-color:var(--craft-rarity);background:#849e5012}
.craft-confirm-art{display:grid;place-items:center;width:100%;height:96px;margin:4px 0}
#reward-dialog.craft-dialog .craft-confirm-art>.animal-sprite{display:block;width:96px;height:96px;max-width:100%;margin:0;flex:none;background:none;border-radius:0;overflow:visible;image-rendering:pixelated}
.craft-confirm-card>strong{font-size:12px;line-height:1.4;color:#e8deef}
.craft-confirm-arrow{font-size:24px;color:#c6e29e;text-align:center}
#reward-dialog.craft-dialog .craft-confirm-warning{font-size:13px;line-height:1.7;color:#debeaa;background:#ac784414;border:1px solid #c8985244;border-radius:7px;padding:13px 15px;margin:18px 0}
.craft-dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:17px}
.craft-dialog-actions>.button{min-height:46px}
#reward-dialog.craft-result-dialog{max-width:470px;text-align:center}
.craft-result-art{display:flex;flex-direction:column;align-items:center;gap:8px;margin:10px 0}
#reward-dialog.craft-dialog .craft-result-art>.animal-sprite{display:block;width:210px;height:210px;max-width:100%;margin:0;flex:none;background:none;border-radius:0;overflow:visible;image-rendering:pixelated}
.craft-result-art>strong{font-size:13px;line-height:1.5}
#reward-dialog.craft-result-dialog h3{font-size:20px;margin:8px 0;color:#eee7f5}
#reward-dialog.craft-result-dialog p{color:#bdb0cd;font-size:13px;line-height:1.7}
.craft-result-yield{display:flex;justify-content:center;align-items:center;gap:6px;margin:9px 0;font-size:18px!important;font-variant-numeric:tabular-nums}
.craft-result-yield>.product-icon{width:25px;height:25px;min-width:25px;flex:none;margin:0}
@media(max-width:760px){.craft-inventory{padding:18px 16px}.craft-inventory-heading{flex-wrap:wrap;gap:12px}.craft-selection-count{padding:6px 9px}.craft-owned-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.craft-recovery{align-items:flex-start;flex-direction:column}.craft-inventory-actions>.button{flex:1 1 160px}#reward-dialog.craft-dialog h2{font-size:22px}.craft-confirm-recipe{grid-template-columns:1fr;gap:10px}.craft-confirm-arrow{transform:rotate(90deg);font-size:24px;line-height:24px}.craft-confirm-card[data-craft-confirm-role=result]{width:150px;justify-self:center}.craft-confirm-art{height:82px}#reward-dialog.craft-dialog .craft-confirm-art>.animal-sprite{height:82px;width:82px}.craft-confirm-card{padding:9px 5px}.craft-confirm-card>strong{font-size:11px}.craft-confirm-card .craft-card-rarity{font-size:10px}.craft-dialog-actions>.button{flex:1 1 140px}#reward-dialog.craft-dialog .craft-confirm-warning{font-size:12px;padding:11px 12px}.craft-confirm-recipe .craft-owned-yield{font-size:11px}.craft-confirm-recipe .product-icon{width:17px;height:17px;min-width:17px}}
@media(max-width:380px){.craft-inventory{padding:16px 12px}.craft-owned-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.craft-owned-card{padding:11px 7px}.craft-owned-art{height:84px}.craft-page .craft-owned-art>.animal-sprite{width:83px;height:83px}.craft-owned-card>strong{font-size:12px}.craft-confirm-sources{gap:5px}.craft-confirm-card .craft-card-rarity{font-size:9px}.craft-confirm-card>strong{font-size:10px}}


/* dist/fishing.css */
.fishing-page{--lake-ink:#f3f1df;--lake-muted:#b3c6bc;--lake-green:#b7d99a;max-width:1440px;margin:0 auto 32px}.fishing-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:4px 0 23px}.fishing-intro h2{margin:9px 0 8px;font-size:clamp(23px,2.4vw,32px);font-family:'Rubik','Golos Text',sans-serif;letter-spacing:-.8px}.fishing-intro p,.fishing-section-heading p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.fishing-intro .eyebrow{color:#b5ce9b;letter-spacing:2.2px;font-size:10px}.fishing-lifetime{display:flex;align-items:center;gap:13px;border-left:1px solid var(--border);padding:8px 0 8px 24px;flex-shrink:0}.fishing-lifetime>b{font-family:'Rubik',sans-serif;font-size:29px;font-weight:500;color:var(--gold)}.fishing-lifetime>span{max-width:90px;font-size:11px;color:var(--muted);line-height:1.45}.fishing-layout{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:22px;align-items:start}.fishing-main{min-width:0;border-radius:15px;border:1px solid #4b4b53;background:#252b35;overflow:hidden;box-shadow:0 5px 0 #14141f}.fishing-scene{position:relative;isolation:isolate;aspect-ratio:3/2;min-height:290px;overflow:hidden;background:linear-gradient(160deg,#83aeb3,#527a7c 70%,#3e6065);touch-action:none;user-select:none;-webkit-user-select:none;cursor:url('./assets/fishing-cursor.svg') 4 3,pointer;outline-offset:-4px!important}.fishing-lake-label{position:absolute;top:19px;left:19px;display:flex;align-items:center;gap:10px;padding:11px 14px;background:#1e363bdc;border:1px solid #dce6b927;border-radius:9px;backdrop-filter:blur(7px);z-index:2;color:var(--lake-ink);box-shadow:0 3px 9px #223d3521}.fishing-location-mark{font-size:33px;line-height:1;color:#c9daa5}.fishing-lake-label>div{display:flex;flex-direction:column;gap:3px}.fishing-lake-label strong{font-size:13px;font-weight:600}.fishing-lake-label small{font-size:10px;color:#c7d9c1;letter-spacing:.1px}.fishing-status-badge{position:absolute;right:17px;top:22px;display:flex;align-items:center;gap:7px;color:#e8edcf;background:#263d40c9;border:1px solid #d4e5bc2c;padding:8px 11px;border-radius:20px;font-size:10px;z-index:2;backdrop-filter:blur(7px);max-width:46%}.fishing-status-badge i{width:5px;height:5px;border-radius:50%;background:#c5de92;box-shadow:0 0 7px #bade814d;flex-shrink:0}.fishing-bite-signal{position:absolute;top:49%;left:45%;transform:translate(-50%,-100%) rotate(-8deg);font-family:'Rubik',sans-serif;font-size:40px;font-weight:800;color:#ffe29a;text-shadow:3px 3px #4b383b,-2px -2px #4b383b;opacity:0;z-index:3;pointer-events:none}.fishing-page[data-phase=bite] .fishing-bite-signal{opacity:1;animation:fishing-bite .5s ease-in-out infinite alternate}.fishing-scene-caption{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:12px 18px;color:#eef0d5;font-size:10px;letter-spacing:.6px;text-shadow:0 1px 3px #192d31;z-index:2;pointer-events:none}.fishing-scene-weather{color:#f0d484;font-size:18px}.fishing-sound-bars{display:flex;align-items:center;gap:3px;margin-left:auto;height:17px;opacity:.7}.fishing-sound-bars i{width:2px;background:#ecf1d1;height:8px}.fishing-sound-bars i:nth-child(2){height:14px}.fishing-sound-bars i:nth-child(3){height:5px}.fishing-play-panel{background:linear-gradient(120deg,#2b343c,#282d38);padding:19px 21px 21px;border-top:1px solid #dce5b824}.fishing-play-status{display:flex;align-items:flex-start;gap:12px;min-height:61px}.fishing-phase-icon{width:35px;height:35px;display:grid;place-items:center;border:1px solid #5c7067;background:#394a46;color:#cbe6ad;border-radius:9px;font-size:24px;line-height:1;flex-shrink:0}.fishing-play-status h3{font-size:15px;color:#edf2e2;margin:1px 0 5px}.fishing-play-status p{font-size:11px;color:#b2c2bc;line-height:1.6;margin:0;max-width:590px}.fishing-page[data-phase=bite] .fishing-phase-icon{background:#695331;color:#ffe6a3;border-color:#a78045;animation:fishing-glow .9s infinite alternate}.fishing-page[data-phase=bite] .fishing-play-status h3{color:#ffe19b}.fishing-meters{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:16px 0 18px;border-top:1px solid #76857726;margin-top:12px;transition:opacity .2s}.fishing-meters[data-active=false]{opacity:.4}.fishing-meter-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:11px;color:#d9e3d5}.fishing-meter-heading b{font-size:11px;font-variant-numeric:tabular-nums;color:#d2d9c8;font-weight:500}.fishing-meter{height:8px;background:#161f28;box-shadow:inset 0 1px 2px #0b111950;border-radius:3px;overflow:hidden;position:relative;--meter:0%}.fishing-meter i{position:absolute;left:0;top:0;bottom:0;width:var(--meter);background:#b8d991;border-radius:3px;z-index:1;transition:background .2s}.fishing-danger-zone{position:absolute;right:0;top:0;bottom:0;width:20%;background:repeating-linear-gradient(120deg,#c276653d 0 3px,#b9635821 3px 6px)}.fishing-tension[data-danger=true] i{background:#ef987e}.fishing-distance i{background:#91babc}.fishing-meter-wrap>small{display:block;font-size:10px;color:#8fa59b;padding-top:6px;min-height:19px}.fishing-action-row{display:flex;align-items:stretch;gap:9px}.fishing-action-row .button{font-size:12px;min-height:46px;padding:10px 16px;gap:10px}.fishing-cast-button{flex:1;max-width:260px}.fishing-cancel-button{background:#343b45;border-color:#535964;color:#c2c8c6;font-size:11px!important}.fishing-hold-controls{display:none;gap:9px;flex:1}.fishing-hold-button{flex:1;text-align:left;border-color:#607668;background:#3a5046;color:#e7efdc;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:background .1s,transform .1s,box-shadow .1s}.fishing-hold-button>span:not(.fishing-control-symbol){display:flex;flex-direction:column;gap:3px}.fishing-hold-button small{font-size:9px;font-weight:400;letter-spacing:.4px;color:#abbdad}.fishing-control-symbol{font-size:23px;font-weight:400}.fishing-hold-button[aria-pressed=true]{background:#66845a;color:#f1ffdf;border-color:#b4d98e;box-shadow:inset 0 3px 0 #3c553c;transform:translateY(1px)}.fishing-hold-button[aria-pressed=true] small{color:#e4efca}.fishing-page[data-phase=fighting] .fishing-hold-controls{display:flex}.fishing-page[data-phase=fighting] .fishing-cast-button{display:none}.fishing-page[data-phase=fighting] .fishing-cancel-button{order:2;max-width:120px;padding:8px 11px}.fishing-mobile-help{display:none;margin:10px 0 0;font-size:10px;line-height:1.5;color:#9db0a5}.fishing-catch{display:flex;align-items:center;gap:13px;margin:12px 0 4px;padding:12px 15px;border:1px solid #a6c8804a;border-radius:8px;background:#8aa06d15}.fishing-catch[hidden]{display:none}.fishing-catch>.fishing-fish-art{width:70px;height:44px;filter:drop-shadow(0 5px 0 #0002)}.fishing-catch>div{display:flex;flex-direction:column;gap:5px}.fishing-catch strong{font-size:14px;color:#e5edcc}.fishing-catch small{font-size:10px;color:#a7b79d}.fishing-catch-price{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:15px;color:var(--gold)}.fishing-sidebar{display:flex;flex-direction:column;gap:21px}.fishing-gear.panel{padding:21px 20px;background:linear-gradient(150deg,#353544,#2b2c3b);border-color:#4e4c5b;box-shadow:0 4px 0 #171620}.fishing-gear .eyebrow{color:#b4baaa;font-size:10px;letter-spacing:1.6px}.fishing-rod-display{position:relative;margin:0 -4px;height:107px;display:flex;align-items:center;justify-content:center}.fishing-rod-display:before{content:'';position:absolute;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,#8a987928,transparent 70%)}.fishing-rod-art{width:145px;height:107px;filter:drop-shadow(3px 6px 0 #10162040)}.fishing-rod-display>span{position:absolute;right:0;top:20px;font-size:8px;letter-spacing:1px;font-weight:600;padding:5px 7px;border:1px solid #87987254;background:#46534242;color:#becda4;border-radius:4px;transform:rotate(4deg)}.fishing-gear>h3{font-size:14px;margin:0 0 7px}.fishing-gear>p{font-size:11px;color:#aaaebe;line-height:1.65;margin:0}.fishing-gear-divider{height:1px;background:#9c9caf24;margin:20px 0}.fishing-bait-title{display:flex;gap:10px;align-items:center}.fishing-bait-title h3{font-size:15px;margin:0 0 3px}.fishing-bait-title small{font-size:10px;color:#a6a5b7}.fishing-bait-title small b{font-size:12px;color:#f0ddba}.fishing-bait-price{display:flex;gap:5px;align-items:center;margin-left:auto;color:#e9cf95;font-size:14px}.fishing-coin{width:16px;height:16px;display:inline-block;vertical-align:-3px;flex-shrink:0;shape-rendering:crispEdges}.fishing-bait-note{margin:11px 0 12px!important;font-size:10px!important}.fishing-shop-buttons{display:flex;gap:8px}.fishing-shop-buttons>.button{padding:10px 8px;min-height:54px;flex:1;gap:6px;flex-direction:column;background:#414438;border-color:#68734b;color:#e5edce;font-size:11px;line-height:1.1}.fishing-shop-buttons small{display:flex;align-items:center;gap:4px;font-size:10px;color:#dcca92;font-weight:400}.fishing-shop-buttons .fishing-coin{width:11px;height:11px}.fishing-balance{display:flex;align-items:center;justify-content:space-between;padding-top:12px;font-size:10px;color:#a5a3b5}.fishing-balance>b{font-size:11px;color:#dacaac;display:flex;align-items:center;gap:5px;font-weight:500}.fishing-balance .fishing-coin{height:12px;width:12px}.fishing-instructions{padding:0 4px}.fishing-instructions h3{font-size:12px;color:#ded8e4;margin:0 0 12px}.fishing-instructions ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.fishing-instructions li{display:flex;gap:9px;align-items:flex-start;color:#b4adc1;font-size:10px;line-height:1.5}.fishing-instructions li>span{color:#8c9f80;font-size:9px;letter-spacing:1px;flex-shrink:0;line-height:1.8}.fishing-instructions p{border-top:1px solid #4d465b;margin:17px 0 0;padding-top:13px;font-size:10px;line-height:1.75;color:#8e899e}.fishing-catalogue{margin-top:34px}.fishing-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.fishing-section-heading .eyebrow{font-size:9px;letter-spacing:1.8px;color:#9597a0}.fishing-section-heading h2{font-size:20px;margin:7px 0 6px}.fishing-section-heading p{font-size:11px}.fishing-six{font-family:'Rubik',sans-serif;font-size:36px;font-weight:400;color:#6b647b;letter-spacing:-2px}.fishing-species-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}.fishing-species{--fish-accent:#b7c7ad;background:linear-gradient(155deg,#33323f,#2b293b);border:1px solid #4c475a;border-radius:10px;padding:12px;min-width:0;transition:transform .2s,border-color .2s}.fishing-species:hover{border-color:#8c967a;transform:translateY(-3px)}.fishing-uncommon{--fish-accent:#afd294}.fishing-rare{--fish-accent:#98c2d5}.fishing-species-art{height:64px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#b2cda210,transparent 70%)}.fishing-fish-art{width:95px;height:57px;image-rendering:pixelated;overflow:visible}.fishing-species-art>.fishing-fish-art{filter:drop-shadow(0 5px 0 #16182755);max-width:100%}.fishing-rarity-dot{position:absolute;right:0;top:1px;height:5px;width:5px;box-shadow:0 0 8px #acc28c23;border-radius:50%;background:var(--fish-accent)}.fishing-species-copy{margin:6px 0 11px}.fishing-species-copy small{color:var(--fish-accent);font-size:8px;letter-spacing:.4px}.fishing-species-copy h3{font-size:12px;font-weight:500;margin:4px 0 0;line-height:1.4}.fishing-species-bottom{padding-top:9px;border-top:1px solid #60596d59;display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:11px}.fishing-species-bottom>span:first-child{display:flex;align-items:center;gap:5px;color:#dccba6}.fishing-species-bottom .fishing-coin{width:12px;height:12px}.fishing-owned{color:#8f879e;font-size:10px}.fishing-owned b{color:#b8b0c3;font-weight:500}.fishing-storage{margin:30px 0 18px;padding-top:27px;border-top:1px solid var(--border)}.fishing-storage .fishing-section-heading .button{font-size:12px}.fishing-storage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fishing-storage-item{display:flex;align-items:center;gap:14px;background:#2d2b3f;border:1px solid #4b465b;border-radius:10px;padding:14px;flex-wrap:wrap;min-width:0}.fishing-storage-item>.fishing-fish-art{width:62px;height:42px;flex-shrink:0}.fishing-storage-copy{flex:1;min-width:120px}.fishing-storage-copy h3{font-size:13px;margin:0 0 7px}.fishing-storage-copy h3 span{font-weight:400;font-size:11px;color:#afa4bc;margin-left:5px}.fishing-storage-copy small{font-size:10px;color:#aba8b7}.fishing-storage-copy .fishing-coin{width:11px;height:11px;vertical-align:-2px}.fishing-storage-actions{display:flex;gap:7px;flex-wrap:wrap}.fishing-storage-actions .button{font-size:10px;padding:7px 10px;min-height:35px;gap:5px;background:#394433;border-color:#56664a;color:#d3e4b8}.fishing-storage-actions .button+button{background:#353343;border-color:#575062;color:#c7becf}.fishing-storage-empty{display:flex;align-items:center;gap:20px;padding:20px;background:#292636;border:1px dashed #524b60;border-radius:10px}.fishing-storage-empty .fishing-fish-art{opacity:.55;filter:grayscale(.6)}.fishing-storage-empty p{font-size:13px;color:#aca2bb}.fishing-storage-total{margin:12px 0 0;font-size:11px;color:#8e879e}.fishing-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.fishing-page [hidden]{display:none!important}
@keyframes fishing-bite{to{transform:translate(-50%,-115%) rotate(5deg)}}@keyframes fishing-glow{to{box-shadow:0 0 20px #f3c47f35}}
@media(min-width:1400px){.fishing-layout{grid-template-columns:minmax(0,1fr) 292px}.fishing-scene{max-height:570px;aspect-ratio:auto;height:calc((100vw - 458px)*.6667)}.fishing-gear.panel{padding:24px}.fishing-instructions{padding:0 10px}.fishing-instructions li,.fishing-instructions p{font-size:11px}.fishing-rod-display{height:128px}.fishing-rod-art{height:124px;width:160px}.fishing-species-art{height:75px}.fishing-species-art>.fishing-fish-art{width:108px;height:65px}}
@media(max-width:1100px){.fishing-layout{grid-template-columns:minmax(0,1fr) 234px;gap:16px}.fishing-gear.panel{padding:17px 15px}.fishing-scene{min-height:330px}.fishing-status-badge{top:auto;bottom:38px;right:13px}.fishing-lake-label{left:14px;top:14px}.fishing-play-panel{padding:17px}.fishing-meters{gap:16px}.fishing-action-row .button{padding:9px 11px;font-size:11px}.fishing-species-grid{gap:8px}.fishing-species{padding:10px}.fishing-species-copy h3{font-size:11px}.fishing-species-copy small{font-size:8px}.fishing-species-art{height:52px}.fishing-storage-grid{grid-template-columns:1fr}}
@media(max-width:800px){.fishing-layout{grid-template-columns:1fr}.fishing-scene{aspect-ratio:3/2;min-height:0}.fishing-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.fishing-gear.panel{padding:20px}.fishing-instructions{padding:20px 8px}.fishing-instructions li,.fishing-instructions p{font-size:11px}.fishing-species-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fishing-species{padding:14px}.fishing-species-art{height:67px}.fishing-species-copy h3{font-size:13px}.fishing-species-copy small{font-size:9px}.fishing-lifetime{padding-left:16px}.fishing-status-badge{top:20px;bottom:auto}.fishing-hold-button{min-height:58px!important}.fishing-hold-button small{font-size:10px}.fishing-mobile-help{display:block}.fishing-cast-button{max-width:none}.fishing-gear .fishing-rod-display{height:75px;float:right;width:88px;margin:3px -2px 4px 7px}.fishing-gear .fishing-rod-art{width:102px;height:80px}.fishing-gear .fishing-rod-display>span{font-size:7px;top:0;right:-2px}.fishing-gear>.eyebrow{margin-bottom:16px}.fishing-gear-divider{clear:both}.fishing-play-status p{font-size:12px}.fishing-play-status h3{font-size:16px}}
@media(max-width:500px){.fishing-intro{gap:13px;margin:0 0 18px;align-items:flex-start}.fishing-intro h2{font-size:22px;line-height:1.22;letter-spacing:-.6px;max-width:255px}.fishing-intro p{font-size:11px;line-height:1.55}.fishing-intro .eyebrow{font-size:9px}.fishing-lifetime{padding:5px 0 5px 13px;display:block;max-width:74px}.fishing-lifetime>b{font-size:24px}.fishing-lifetime>span{display:block;font-size:9px;margin-top:3px}.fishing-scene{aspect-ratio:1.32;min-height:245px;background-size:cover}.fishing-lake-label{top:11px;left:11px;padding:8px 10px;gap:7px;max-width:calc(100% - 22px)}.fishing-lake-label strong{font-size:11px}.fishing-lake-label small{font-size:8px}.fishing-location-mark{font-size:28px}.fishing-status-badge{bottom:38px;top:auto;right:10px;max-width:80%;font-size:9px;padding:7px 9px}.fishing-scene-caption{padding:10px 13px;font-size:9px}.fishing-scene-weather{font-size:15px}.fishing-play-panel{padding:16px 13px}.fishing-play-status{gap:9px;min-height:70px}.fishing-play-status h3{font-size:14px}.fishing-play-status p{font-size:11px}.fishing-phase-icon{height:31px;width:31px;font-size:22px}.fishing-meters{gap:14px;margin-top:11px;padding:14px 0}.fishing-meter-heading{font-size:10px;gap:4px}.fishing-meter-heading b{font-size:9px}.fishing-meter-wrap>small{font-size:9px;min-height:20px}.fishing-action-row{flex-wrap:wrap}.fishing-hold-controls{width:100%;gap:8px}.fishing-action-row .fishing-hold-button{padding:9px 11px;gap:8px;font-size:12px}.fishing-page[data-phase=fighting] .fishing-cancel-button{flex-basis:100%;max-width:none;min-height:34px;background:transparent;border-color:transparent;color:#9eadac;padding:6px}.fishing-sidebar{grid-template-columns:1fr;gap:17px}.fishing-gear.panel{padding:20px}.fishing-gear .fishing-rod-display{height:79px;width:115px;margin-top:-3px}.fishing-gear .fishing-rod-art{width:128px;height:94px}.fishing-gear .fishing-rod-display>span{right:-1px;top:10px}.fishing-gear>h3{font-size:15px}.fishing-gear>p{max-width:210px;font-size:11px}.fishing-bait-title{gap:13px}.fishing-shop-buttons>.button{flex-direction:row;justify-content:space-between;padding:12px;min-height:46px;font-size:12px}.fishing-shop-buttons small{font-size:11px}.fishing-bait-note{font-size:11px!important;max-width:none!important}.fishing-instructions{padding:0 7px}.fishing-instructions ol{gap:9px}.fishing-instructions li{font-size:11px}.fishing-instructions p{margin-top:12px;padding-top:12px}.fishing-catalogue{margin-top:26px}.fishing-section-heading{gap:12px;margin-bottom:15px}.fishing-section-heading h2{font-size:18px}.fishing-section-heading p{font-size:10px}.fishing-six{font-size:28px}.fishing-species-grid{gap:8px}.fishing-species{padding:10px}.fishing-species-art{height:50px}.fishing-species-copy h3{font-size:11px;min-height:16px}.fishing-species-copy small{font-size:8px}.fishing-species-bottom{font-size:10px}.fishing-species-bottom .fishing-coin{width:11px;height:11px}.fishing-owned{font-size:9px}.fishing-catch{padding:10px;gap:8px}.fishing-catch>.fishing-fish-art{width:58px}.fishing-catch strong{font-size:13px}.fishing-catch small{font-size:9px}.fishing-catch-price{font-size:13px}.fishing-storage .fishing-section-heading{align-items:flex-start}.fishing-storage .fishing-section-heading .button{font-size:10px;white-space:nowrap;padding:8px 9px;min-height:36px;gap:6px}.fishing-storage-item{padding:12px;gap:10px}.fishing-storage-actions{width:100%}.fishing-storage-actions .button{flex:1;min-height:40px;font-size:11px}.fishing-storage-empty{gap:10px;padding:16px}.fishing-storage-empty>.fishing-fish-art{width:62px}.fishing-storage-empty p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.fishing-page *{animation:none!important;transition:none!important}.fishing-species:hover{transform:none}}
.fishing-epic{--fish-accent:#c8a1ee}.fishing-legendary{--fish-accent:#efd082}.fishing-mythic{--fish-accent:#eca4c8}.fishing-page[data-phase=landing] .fishing-play-status h3{color:#d7e8ad}.fishing-page[data-phase=landing] .fishing-phase-icon{animation:fishing-glow .9s infinite alternate}.fishing-page[data-phase=landing] .fishing-meters{opacity:1}
/* The catch meter is always on the left; the relaxing line meter is on the right. */
.fishing-distance i{background:linear-gradient(90deg,#9bc878,#c4e796)}.fishing-tension i{background:linear-gradient(90deg,#91bbc1,#b5d4ae)}.fishing-tension[data-danger=true] i{background:linear-gradient(90deg,#d5ae72,#ef9179)}.fishing-progress-wrap .fishing-meter-heading label{color:#c6e3a6}.fishing-tension-wrap .fishing-meter-heading label{color:#c2d4d6}.fishing-input-feedback{display:flex;align-items:center;gap:7px;margin:-3px 0 13px;font-size:11px;line-height:1.5;color:#a7b9b2;min-height:17px}.fishing-input-feedback>i{height:6px;width:6px;flex-shrink:0;border-radius:50%;background:#81958f}.fishing-page[data-mode=reel] .fishing-input-feedback,.fishing-page[data-mode=lift] .fishing-input-feedback{color:#d9eebc}.fishing-page[data-mode=reel] .fishing-input-feedback>i,.fishing-page[data-mode=lift] .fishing-input-feedback>i{background:#bde68c;box-shadow:0 0 8px #bfde8777}.fishing-page[data-phase=fighting][data-mode=rest] .fishing-tension-wrap>small{color:#a4d4d2}.fishing-page[data-phase=fighting][data-mode=rest] .fishing-progress-wrap>small{color:#c0af93}.fishing-page[data-phase=fighting]:not([data-mode=rest]) .fishing-progress-wrap>small{color:#b6d791}.fishing-page[data-phase=fighting] .fishing-play-panel{cursor:default}.fishing-meter-wrap>small{line-height:1.45;min-height:21px}.fishing-hold-controls{position:relative;z-index:1}.fishing-page[data-phase=caught] .fishing-meters,.fishing-page[data-phase=escaped] .fishing-meters{opacity:.55}.fishing-play-status p{min-height:34px}@media(max-width:500px){.fishing-input-feedback{font-size:10px;margin-bottom:12px}.fishing-meter-wrap>small{font-size:9px;min-height:29px}.fishing-play-status{min-height:79px}.fishing-meter-heading label{font-size:10px}.fishing-meter-heading b{font-size:10px}}
/* Three bait choices keep purchase controls separate from selection. */
.fishing-bait-shop-heading h3{font-size:14px;margin:0 0 6px}.fishing-bait-shop-heading p{font-size:10px;line-height:1.6;color:#aaa9b7;margin:0 0 13px}.fishing-bait-list{display:grid;grid-template-columns:1fr;gap:10px}.fishing-bait-card{border:1px solid #514d5f;background:#272a36;border-radius:9px;padding:10px;min-width:0;transition:border-color .15s,background .15s}.fishing-bait-card[data-selected=true]{background:#344035;border-color:#97b67e;box-shadow:0 0 0 1px #91aa6b16}.fishing-bait-card[data-bait=boilie],.fishing-bait-card[data-fishing-bait-card=boilie]{--bait-accent:#d5a7c1}.fishing-bait-choice{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;border-radius:4px;text-align:left;min-height:42px}.fishing-bait-choice:disabled{opacity:1;cursor:default}.fishing-bait-choice:disabled:not([aria-checked=true]){opacity:.58}.fishing-bait-choice .fishing-bait-art{width:37px;height:37px;flex-shrink:0}.fishing-bait-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.fishing-bait-copy strong{font-size:12px;font-weight:600;line-height:1.2}.fishing-bait-copy small{font-size:9px;color:#9faea5;line-height:1.4}.fishing-bait-copy small b{font-size:10px;color:#e1d8b9;font-weight:500}.fishing-bait-unit{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap;max-width:58px;font-size:12px;color:#e3ce97}.fishing-bait-unit .fishing-coin{width:12px;height:12px}.fishing-bait-unit i{border:1px solid #747b70;height:11px;width:11px;border-radius:50%;margin-left:4px}.fishing-bait-choice[aria-checked=true] .fishing-bait-unit i{background:#bdde94;box-shadow:inset 0 0 0 2px #38472f;border-color:#bbd997}.fishing-bait-odds{display:flex;justify-content:space-between;align-items:center;gap:5px;color:#a99ab9;font-size:9px;margin:9px 0 8px}.fishing-bait-odds b{font-size:10px;color:#d5bce9;font-weight:500}.fishing-bait-card .fishing-shop-buttons{gap:6px}.fishing-bait-card .fishing-shop-buttons>.button{min-height:34px;flex-direction:row;justify-content:space-between;padding:7px 8px;gap:5px;font-size:10px;background:#394235;border-color:#526548;line-height:1.2}.fishing-bait-card .fishing-shop-buttons small{font-size:9px;gap:3px}.fishing-bait-card .fishing-shop-buttons .fishing-coin{height:10px;width:10px}.fishing-bait-lock{font-size:9px!important;line-height:1.55!important;color:#a8b4a4!important;padding-top:10px}.fishing-selected-bait{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;color:#cbd9bd;line-height:1.4;margin:7px 0 12px;padding:6px 9px;background:#a6bb9210;border:1px solid #92a58626;border-radius:6px}.fishing-selected-bait>span:first-child{display:flex;align-items:center}.fishing-selected-bait .fishing-bait-art{width:24px;height:24px;filter:none}.fishing-selected-bait>small{font-size:10px;color:#99afa3;margin-left:auto}.fishing-species-chance{display:flex;justify-content:space-between;gap:5px;font-size:9px;color:#938aab;line-height:1.4;margin:8px 0 0}.fishing-species-chance b{font-weight:500;color:#c7cfae}.fishing-gear .fishing-rod-display{height:90px}.fishing-gear .fishing-rod-art{height:90px;width:143px}.fishing-gear .fishing-gear-divider{margin:16px 0}.fishing-bait-art{display:block;object-fit:contain;image-rendering:auto;flex-shrink:0}.fishing-bait-list .fishing-shop-buttons button:disabled{opacity:.4}
@media(min-width:1400px){.fishing-gear.panel{padding:20px}.fishing-bait-card .fishing-shop-buttons>.button{font-size:11px;padding:8px 9px}.fishing-bait-card{padding:11px}.fishing-bait-copy strong{font-size:13px}}
@media(max-width:1100px){.fishing-bait-card{padding:9px}.fishing-bait-card .fishing-shop-buttons>.button{padding:7px 5px;font-size:9px}.fishing-bait-unit{font-size:11px}.fishing-bait-copy strong{font-size:11px}.fishing-bait-choice{gap:6px}.fishing-bait-choice .fishing-bait-art{height:31px;width:31px}.fishing-species-chance{font-size:8px}}
@media(max-width:800px){.fishing-sidebar{grid-template-columns:1fr;gap:20px}.fishing-bait-list{grid-template-columns:repeat(3,minmax(0,1fr))}.fishing-gear>p{max-width:80%}.fishing-gear .fishing-rod-display{height:65px;width:90px}.fishing-gear .fishing-rod-art{height:78px;width:105px}.fishing-bait-shop-heading p{max-width:none}.fishing-bait-choice{flex-wrap:wrap;gap:7px}.fishing-bait-unit{width:100%;max-width:none;justify-content:flex-start;margin:0 0 0 2px}.fishing-bait-unit i{margin-left:auto}.fishing-bait-card .fishing-shop-buttons>.button{flex-direction:column;gap:5px;font-size:10px;padding:8px 5px}.fishing-bait-copy strong{font-size:12px}.fishing-instructions{padding:0 8px}.fishing-instructions ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.fishing-instructions p{margin-top:13px}.fishing-bait-lock{max-width:none!important}.fishing-species-chance{font-size:9px}}
@media(max-width:500px){.fishing-bait-list{grid-template-columns:1fr;gap:10px}.fishing-bait-card{padding:12px}.fishing-bait-choice{flex-wrap:nowrap;gap:10px}.fishing-bait-choice .fishing-bait-art{width:41px;height:41px}.fishing-bait-copy strong{font-size:14px}.fishing-bait-copy small{font-size:10px}.fishing-bait-copy small b{font-size:12px}.fishing-bait-unit{width:auto;max-width:none;margin-left:auto;font-size:14px}.fishing-bait-unit i{margin-left:5px}.fishing-bait-unit .fishing-coin{height:15px;width:15px}.fishing-bait-odds{font-size:10px;margin:9px 0}.fishing-bait-odds b{font-size:12px}.fishing-bait-card .fishing-shop-buttons>.button{flex-direction:row;font-size:12px;min-height:40px;padding:9px 12px}.fishing-bait-card .fishing-shop-buttons small{font-size:11px}.fishing-bait-card .fishing-shop-buttons .fishing-coin{width:12px;height:12px}.fishing-bait-shop-heading h3{font-size:15px}.fishing-bait-shop-heading p{font-size:11px;line-height:1.6}.fishing-gear>p{max-width:74%}.fishing-gear .fishing-rod-display{height:68px;width:88px}.fishing-instructions ol{grid-template-columns:1fr;gap:9px}.fishing-selected-bait{font-size:10px;gap:5px}.fishing-selected-bait>small{font-size:9px}.fishing-species-chance{flex-wrap:wrap;font-size:8px;gap:1px}.fishing-species-chance b{margin-left:auto}.fishing-gear .fishing-rod-display>span{font-size:7px;right:-5px;top:0}}

/* A confirmed catch stays on the lake until dismissed or the next cast. */
.fishing-catch-presentation{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:18px;pointer-events:none;cursor:default}.fishing-catch-presentation[hidden]{display:none}.fishing-catch-dialog{--fish-accent:#c2d8ad;position:relative;pointer-events:auto;touch-action:pan-y;user-select:text;-webkit-user-select:text;width:min(340px,100%);max-height:100%;overflow:auto;padding:20px 24px 18px;text-align:center;color:#f1efdf;border:1px solid #a7c29580;border-radius:14px;background:linear-gradient(150deg,#344b43f7,#23343afc 65%);box-shadow:0 15px 45px #1028276b,0 0 0 4px #e5edb80a;outline-offset:3px;animation:fishing-catch-arrive .24s ease-out}.fishing-catch-dialog.fishing-common{--fish-accent:#b6c7bb}.fishing-catch-dialog.fishing-uncommon{--fish-accent:#b5d592}.fishing-catch-dialog.fishing-rare{--fish-accent:#9ecedb}.fishing-catch-dialog.fishing-epic{--fish-accent:#c8a1ee}.fishing-catch-dialog.fishing-legendary{--fish-accent:#efd082}.fishing-catch-dialog.fishing-mythic{--fish-accent:#eca4c8}.fishing-catch-close{position:absolute;right:8px;top:7px;width:36px;height:36px;border:0;border-radius:7px;background:transparent;color:#cfddd0;font-size:26px;line-height:1;cursor:pointer}.fishing-catch-close:hover{background:#d6e7ca17}.fishing-catch-heading{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:600;color:#e0e9be;padding:2px 26px}.fishing-catch-hero{display:grid;place-items:center;height:112px;margin:3px auto 0;background:radial-gradient(ellipse,#c5dba323,transparent 67%)}.fishing-catch-hero>.fishing-fish-art{width:190px;max-width:85%;height:auto;filter:drop-shadow(0 9px 0 #142a313d)}.fishing-catch-dialog h3{font-family:'Rubik','Golos Text',sans-serif;font-size:25px;line-height:1.2;margin:0 0 7px;letter-spacing:-.5px}.fishing-catch-rarity{display:inline-block;font-size:10px;color:var(--fish-accent);border:1px solid currentColor;border-radius:20px;padding:3px 10px;line-height:1.3}.fishing-catch-stats{display:grid;grid-template-columns:1fr 1fr;margin:17px 0 10px;padding:12px 0;border-top:1px solid #bdd2b827;border-bottom:1px solid #bdd2b827;gap:12px}.fishing-catch-stats>div+div{border-left:1px solid #bdd2b827}.fishing-catch-stats dt{font-size:9px;line-height:1.3;color:#b3c8bb}.fishing-catch-stats dd{margin:5px 0 0;display:flex;justify-content:center;align-items:center;gap:5px;font-size:19px;line-height:1.3;font-weight:600;color:#ede0b7}.fishing-catch-stats .fishing-coin{height:17px;width:17px}.fishing-catch-dialog>p{font-size:10px;line-height:1.5;color:#bed2bf;margin:0 0 14px}.fishing-catch-dialog-actions{display:flex;gap:8px;justify-content:center}.fishing-catch-dialog-actions>.button{flex:1;min-height:38px;padding:8px 10px;white-space:normal;font-size:11px;line-height:1.3}.fishing-meter-limit{display:block;color:#afc6a5;font-size:9px;line-height:1.4;margin-top:6px}.fishing-tension-wrap .fishing-meter-limit{color:#c9af9e}.fishing-meter-heading{gap:8px}.fishing-meter-heading label{line-height:1.35}.fishing-meter-heading b{flex-shrink:0}
@keyframes fishing-catch-arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:800px){.fishing-catch-dialog{padding:14px 20px}.fishing-catch-hero{height:86px}.fishing-catch-hero>.fishing-fish-art{width:151px}.fishing-catch-dialog h3{font-size:23px}.fishing-catch-stats{margin-top:12px;padding:9px 0}.fishing-catch-dialog>p{margin-bottom:10px}}
@media(max-width:500px){.fishing-catch-presentation{padding:10px}.fishing-catch-dialog{width:270px;max-width:100%;padding:11px 15px 12px;border-radius:10px}.fishing-catch-heading{font-size:9px;padding-top:1px}.fishing-catch-hero{height:66px;margin:0 auto}.fishing-catch-hero>.fishing-fish-art{width:118px}.fishing-catch-dialog h3{font-size:21px;margin-bottom:5px}.fishing-catch-rarity{font-size:9px;padding:2px 9px}.fishing-catch-stats{margin:9px 0 7px;padding:7px 0}.fishing-catch-stats dd{font-size:16px;margin-top:3px}.fishing-catch-stats dt{font-size:8px}.fishing-catch-dialog>p{font-size:9px;margin-bottom:9px}.fishing-catch-dialog-actions>.button{font-size:10px;min-height:34px;padding:7px 8px}.fishing-catch-close{top:3px;right:3px}.fishing-meter-limit{font-size:8px;min-height:22px}.fishing-meter-heading{align-items:flex-start;min-height:28px}}
@media(prefers-reduced-motion:reduce){.fishing-catch-dialog{animation:none}}
@media(max-width:500px){.fishing-catch-dialog{display:grid;grid-template-columns:78px minmax(0,1fr);column-gap:10px;width:290px;align-items:center}.fishing-catch-heading{grid-column:2;grid-row:1;text-align:left;letter-spacing:1px;padding:0 21px 0 0;align-self:end}.fishing-catch-hero{grid-column:1;grid-row:1/4;width:78px;height:74px;margin:0}.fishing-catch-hero>.fishing-fish-art{width:83px;max-width:none}.fishing-catch-dialog h3{grid-column:2;grid-row:2;text-align:left;font-size:20px;margin:3px 0;overflow-wrap:anywhere}.fishing-catch-rarity{grid-column:2;grid-row:3;justify-self:start;align-self:start}.fishing-catch-stats{grid-column:1/-1;width:100%;margin:8px 0 6px;padding:6px 0}.fishing-catch-dialog>p{grid-column:1/-1;margin:0 0 8px}.fishing-catch-dialog-actions{grid-column:1/-1;width:100%}}.fishing-catch-dialog{width:min(300px,100%)}.fishing-catch-dialog-actions>.button{gap:5px;flex-wrap:wrap}.fishing-catch-dialog-actions>.button>span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.fishing-catch-dialog-actions .fishing-coin{width:12px;height:12px}.fishing-catch-dialog>.fishing-catch-error{color:#f4b5a5;margin:0 0 10px;font-size:10px}.fishing-catch-error[hidden]{display:none}@media(max-width:500px){.fishing-catch-dialog{width:290px}.fishing-catch-error{grid-column:1/-1}}
/* Reward reveal matches the farm's case rewards and uses the browser top layer. */
dialog.fishing-catch-presentation{position:fixed;inset:0;width:min(320px,calc(100vw - 28px));max-width:calc(100vw - 28px);height:fit-content;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:15px;overflow:auto;pointer-events:auto;display:none;background:transparent;color:var(--ink);box-shadow:0 20px 65px #0b101a80;cursor:default;touch-action:pan-y}
dialog.fishing-catch-presentation[open]{display:block}dialog.fishing-catch-presentation[hidden]{display:none}dialog.fishing-catch-presentation::backdrop{background:#100d1dbd;backdrop-filter:blur(5px)}
dialog.fishing-catch-presentation .fishing-catch-dialog{display:block;width:100%;max-height:none;padding:24px 22px 20px;overflow:visible;border:1px solid #72617e;border-radius:15px;background:linear-gradient(155deg,#41384f,#292636 68%);box-shadow:inset 0 0 45px #c3aed909;text-align:center}
dialog.fishing-catch-presentation .fishing-catch-heading{text-align:center;padding:0 25px;font-size:10px;line-height:1.5;letter-spacing:1.7px;color:#e2d5aa}
dialog.fishing-catch-presentation .fishing-catch-hero{display:grid;width:100%;height:133px;margin:7px auto 1px;background:radial-gradient(ellipse,color-mix(in srgb,var(--fish-accent) 23%,transparent),transparent 69%)}
dialog.fishing-catch-presentation .fishing-catch-hero>.fishing-fish-art{width:202px;max-width:92%;height:auto;filter:drop-shadow(0 12px 4px #17132566);animation:fishing-reward-fish .55s cubic-bezier(.2,.8,.3,1) both}
dialog.fishing-catch-presentation h3{text-align:center;font-size:26px;line-height:1.2;margin:1px 0 8px;overflow-wrap:anywhere}
dialog.fishing-catch-presentation .fishing-catch-rarity{font-size:11px;padding:4px 12px;background:color-mix(in srgb,var(--fish-accent) 9%,transparent)}
dialog.fishing-catch-presentation .fishing-catch-stats{width:100%;padding:11px 0;margin:17px 0 11px;border-color:#c2afd52b}dialog.fishing-catch-presentation .fishing-catch-stats>div+div{border-color:#c2afd52b}dialog.fishing-catch-presentation .fishing-catch-stats dt{font-size:10px;color:#bcb4c8}dialog.fishing-catch-presentation .fishing-catch-stats dd{font-size:20px;margin-top:5px}dialog.fishing-catch-presentation .fishing-catch-dialog>p{font-size:11px;line-height:1.5;color:#bcb7c9;margin:0 0 17px}dialog.fishing-catch-presentation .fishing-catch-dialog>.fishing-catch-error{color:#f4b5a5}
dialog.fishing-catch-presentation .fishing-catch-dialog-actions>.button{font-size:12px;min-height:43px;padding:9px 10px}dialog.fishing-catch-presentation .fishing-catch-close{top:7px;right:7px;color:#c6bed2}
@keyframes fishing-reward-fish{from{opacity:0;transform:translateY(18px) scale(.84)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:500px){dialog.fishing-catch-presentation{width:min(300px,calc(100vw - 28px))}dialog.fishing-catch-presentation .fishing-catch-dialog{padding:20px 18px 18px}dialog.fishing-catch-presentation .fishing-catch-hero{height:116px;margin:4px auto 0}dialog.fishing-catch-presentation .fishing-catch-hero>.fishing-fish-art{width:186px}dialog.fishing-catch-presentation h3{font-size:24px}dialog.fishing-catch-presentation .fishing-catch-stats{margin:14px 0 10px;padding:9px 0}dialog.fishing-catch-presentation .fishing-catch-dialog>p{font-size:10px;margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){dialog.fishing-catch-presentation .fishing-catch-hero>.fishing-fish-art{animation:none}}
/* Keep catch progress and line tension immediately beside the lake. */
.fishing-play-panel{padding-top:12px}.fishing-play-panel>.fishing-meters{margin-top:0;padding:0 0 8px;border-top:0}.fishing-play-panel>.fishing-input-feedback{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #76857726}.fishing-play-panel>.fishing-meters .fishing-meter-heading{margin-bottom:6px}.fishing-play-panel>.fishing-meters .fishing-meter-limit{margin-top:5px}.fishing-play-panel>.fishing-meters .fishing-meter-wrap>small{padding-top:4px}
@media(max-width:500px){.fishing-play-panel{padding-top:11px}.fishing-play-panel>.fishing-meters{padding-bottom:6px}.fishing-play-panel>.fishing-input-feedback{margin-bottom:11px;padding-bottom:9px}}

/* Barn fish sales: one total for every species, with individual sale controls. */
.fishing-storage .fishing-section-heading{flex-wrap:wrap}
.fishing-storage-toolbar{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:wrap;gap:9px}
.fishing-storage-toolbar .button{min-height:42px;gap:12px}
.fishing-storage-toolbar .fishing-sell-all{justify-content:space-between}
.fishing-sale-value{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.fishing-sale-value .fishing-coin{width:16px;height:16px;flex-shrink:0}
@media(max-width:760px){.fishing-storage-toolbar{width:100%;justify-content:flex-start}.fishing-storage-toolbar .fishing-sell-all{flex:1}}
@media(max-width:500px){.fishing-storage .fishing-section-heading .fishing-storage-toolbar .button{min-height:42px;font-size:11px;white-space:normal}.fishing-storage-toolbar .fishing-sell-all{gap:10px}}

/* Only the current renderer is used. Shared recovery UI handles loading/retry. */
.fishing-scene:is(.fishing-3d-pending,.fishing-3d-error)>.fishing-bite-signal{visibility:hidden}


/* dist/nft-wallet.css */
.nft-wallet-panel{margin:25px 0 30px;border:1px solid #75648470;border-radius:12px;background:linear-gradient(130deg,#32283f9e,#272131);overflow:hidden}
.nft-wallet-summary{display:flex;align-items:center;gap:12px;min-height:66px;box-sizing:border-box;padding:15px 19px;cursor:pointer;list-style:none;color:#ede5f4}
.nft-wallet-summary::-webkit-details-marker{display:none}
.nft-wallet-summary::marker{content:''}
.nft-wallet-summary:focus-visible{outline:2px solid #bedb98;outline-offset:-4px;border-radius:11px}
.nft-wallet-symbol{display:grid;place-items:center;width:31px;height:33px;flex:none;color:#ccb1ee;font-size:32px;line-height:1;text-shadow:0 2px 0 #191321}
.nft-wallet-summary>span:nth-child(2){display:flex;flex-direction:column;gap:4px;min-width:0}
.nft-wallet-summary strong{font-size:15px;line-height:1.4;font-weight:600}
.nft-wallet-summary small{font-size:11px;line-height:1.5;color:#b2a2c2}
.nft-wallet-chevron{margin-left:auto;color:#b5c99b;font-size:23px;line-height:1;flex:none;transition:transform .15s ease}
.nft-wallet-panel[open] .nft-wallet-chevron{transform:rotate(180deg)}
.nft-wallet-body{padding:0 19px 17px;border-top:1px solid #75648438}
.nft-wallet-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0 0}
.nft-wallet-welcome p{margin:0;color:#c4b8d1;font-size:13px;line-height:1.7}
.nft-wallet-welcome .button{flex:none;min-height:44px}
.nft-wallet-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:65px;padding:11px 0;box-sizing:border-box}
.nft-wallet-toolbar>.button{margin-left:auto;min-height:44px}
.nft-wallet-count{display:inline-flex;gap:7px;align-items:baseline;flex-wrap:wrap;color:#c7b9d7;font-size:12px;line-height:1.6}
.nft-wallet-count b{font-size:17px;color:#d0e5b4;font-variant-numeric:tabular-nums}
.nft-wallet-message,.nft-wallet-empty,.nft-wallet-error{margin:0;padding:16px 14px;border-radius:7px;background:#211a2c8c;border:1px solid #75648442;color:#bdafce;font-size:13px;line-height:1.7}
.nft-wallet-empty{border-style:dashed;text-align:center;padding:25px 16px}
.nft-wallet-error{background:#a8624210;border-color:#bc8f5866;color:#ddc5a3}
.nft-wallet-body>[data-nft-wallet-retry]{margin-top:12px;min-height:44px}
.nft-wallet-message.is-loading{color:#c8ddb0}
.nft-wallet-note{font-size:11px;line-height:1.7;color:#a697b5;margin:13px 0 0}
.nft-wallet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:11px}
.nft-wallet-card{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 9px;border:1px solid #79668b55;border-top:2px solid var(--nft-wallet-rarity);border-radius:8px;background:#211b2d66}
.nft-wallet-rarity{color:var(--nft-wallet-rarity);font-size:10px;line-height:1.5;min-height:15px;overflow-wrap:anywhere;max-width:100%}
.nft-wallet-art{display:grid;place-items:center;width:100%;height:102px;margin:7px 0}
.nft-wallet-panel .nft-wallet-art>.animal-sprite,.nft-wallet-panel .nft-wallet-art>.tool-art:not(.rarity-art),.nft-wallet-panel .nft-wallet-art>.supply-art{display:block;width:100px;height:100px;max-width:100%;margin:0;min-width:0;flex:none;background:none;border-radius:0;image-rendering:pixelated;overflow:visible}
.nft-wallet-panel .nft-wallet-art>.rarity-art{width:100px;height:100px;margin:0;max-width:100%;flex:none}
.nft-wallet-card h4{font-size:12px;font-weight:600;line-height:1.5;color:#e7ddef;margin:3px 0 0;overflow-wrap:anywhere;max-width:100%}
.nft-wallet-quantity{display:block;font-size:12px;line-height:1.5;color:#c5d6b2;margin-top:5px;font-variant-numeric:tabular-nums}
.nft-wallet-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;color:#b7a8c7;font-size:11px;line-height:1.5}
.nft-wallet-pagination>.button{min-height:44px}
@media(max-width:760px){.nft-wallet-summary{padding:14px 15px;min-height:65px;gap:10px}.nft-wallet-body{padding:0 14px 15px}.nft-wallet-welcome{align-items:flex-start;flex-direction:column;gap:13px}.nft-wallet-welcome p,.nft-wallet-message,.nft-wallet-empty,.nft-wallet-error{font-size:12px}.nft-wallet-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:9px}.nft-wallet-note{font-size:10px}.nft-wallet-count{font-size:11px}.nft-wallet-count b{font-size:15px}.nft-wallet-toolbar{gap:12px}}
@media(max-width:380px){.nft-wallet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nft-wallet-summary strong{font-size:14px}.nft-wallet-summary small{font-size:10px}.nft-wallet-toolbar{align-items:flex-start;flex-wrap:wrap}.nft-wallet-art{height:89px}.nft-wallet-panel .nft-wallet-art>.animal-sprite,.nft-wallet-panel .nft-wallet-art>.tool-art:not(.rarity-art),.nft-wallet-panel .nft-wallet-art>.supply-art,.nft-wallet-panel .nft-wallet-art>.rarity-art{width:87px;height:87px}.nft-wallet-pagination{gap:9px}.nft-wallet-card h4{font-size:11px}}
@media(prefers-reduced-motion:reduce){.nft-wallet-chevron{transition:none}}

.nft-wallet-filters{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;margin:0 0 15px}
.nft-wallet-filters>.button{justify-content:center;min-width:78px;min-height:44px;margin:0;padding:9px 14px;border:1px solid #76638b70;background:#2a2237;color:#bfb0cd;font-size:12px;line-height:1.5;white-space:nowrap}
.nft-wallet-filters>.button.is-active{border-color:#b4d78b99;background:#8dac6424;color:#d7edb9;box-shadow:inset 0 0 0 1px #abc97b20}
.nft-wallet-filters>.button:hover{border-color:#a491b9;color:#e5ddef}
.nft-wallet-filters>.button:focus-visible{outline:2px solid #bedb98;outline-offset:3px}
.nft-wallet-filter-empty{margin:0;padding:22px 15px;border:1px dashed #75648465;border-radius:7px;background:#211a2c55;color:#bdafce;font-size:13px;line-height:1.7;text-align:center}
.nft-wallet-pagination b{font-weight:500;font-variant-numeric:tabular-nums}
@media(max-width:520px){.nft-wallet-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:12px}.nft-wallet-filters>.button{min-width:0;max-width:100%;padding:9px 10px;font-size:12px}.nft-wallet-filter-empty{font-size:12px;padding:19px 13px}}

.collection-sources{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin:16px 0 2px;border:1px solid #77658b66;border-radius:9px;background:#211a2c}
.collection-sources>.button{min-height:44px;min-width:125px;justify-content:center;padding:9px 18px;margin:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#bcaece;font-size:13px;line-height:1.5;white-space:nowrap}
.collection-sources>.button.is-active{background:#59683a66;border-color:#abc87b66;color:#d9e9bd;box-shadow:0 1px 2px #17121f77}
.collection-sources>.button:focus-visible{outline:2px solid #bedb98;outline-offset:2px}
.collection-game-toolbar{display:flex;align-items:baseline;gap:7px;margin:16px 0 13px;color:#bfb0ce;font-size:12px;line-height:1.6}
.collection-game-toolbar b{color:#d4e3b6;font-size:17px;font-variant-numeric:tabular-nums}
.collection-game-card-labels{display:flex;align-items:flex-start;justify-content:space-between;gap:7px;width:100%;min-height:18px}
.collection-game-card-labels>.nft-wallet-rarity{text-align:left;min-width:0;flex:1}
.collection-game-badge{flex:none;font-size:9px;line-height:1.4;color:#b7cd9c;background:#abc97810;border:1px solid #aac47f33;border-radius:4px;padding:2px 4px}
.collection-game-card>.button{margin:12px 0 0;min-height:44px;padding:8px 9px;width:100%;justify-content:center;font-size:11px;line-height:1.5}
.collection-game-card h4{margin-bottom:auto}
.collection-game-card>.nft-wallet-quantity{margin-bottom:auto}
.collection-game-pages{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:17px;font-size:12px;line-height:1.5;color:#bdafce}
.collection-game-pages>.button{min-height:44px;padding:9px 15px;font-size:12px}
.collection-game-pages>span{display:inline-flex;gap:5px;align-items:baseline;flex-wrap:wrap;justify-content:center;text-align:center}
.collection-game-pages b{font-weight:500;font-variant-numeric:tabular-nums}
.collection-game-tools{min-width:0}
.collection-game-tools>#tool-catalog{margin:0;border:none;border-radius:0;background:none;padding:0}
@media(max-width:520px){.collection-sources{display:grid;width:100%;box-sizing:border-box}.collection-sources>.button{min-width:0;padding:9px 10px;font-size:12px}.collection-game-toolbar{font-size:11px;margin-top:13px}.collection-game-toolbar b{font-size:15px}.collection-game-card-labels{flex-direction:column;align-items:center;gap:4px;min-height:38px}.collection-game-card-labels>.nft-wallet-rarity{text-align:center;flex:none}.collection-game-badge{font-size:9px}.collection-game-card>.button{font-size:11px;padding:8px 7px}.collection-game-pages{gap:8px;font-size:11px}.collection-game-pages>.button{padding:9px 11px;font-size:11px}}

/* Keep all page slots so the last page has the same number of rows. */
.collection-game-grid{grid-auto-rows:auto;align-items:start}
.collection-page-space{visibility:hidden;pointer-events:none;min-width:0}
/* Reserve two label lines even when this page only has shorter rarity names. */
.collection-game-grid .collection-game-card-labels{min-height:30px}
@media(max-width:520px){.collection-game-grid .collection-game-card-labels{min-height:53px}}

.nft-wallet-address{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 7px;margin:14px 0 0;color:#b8adc8;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.nft-wallet-address small{color:#9bbd7a;font-size:10px}
.nft-wallet-pack-art{width:100px;height:100px;max-width:100%;object-fit:contain;image-rendering:pixelated}
.nft-wallet-token-number{color:#cfbc94;font-size:11px;margin-top:4px;font-variant-numeric:tabular-nums}
.nft-wallet-pack-status{color:#bcb0c7;font-size:10px;line-height:1.6;margin:9px 0 12px}
.nft-wallet-market-link{margin:auto 0 0;padding:8px;min-height:44px;box-sizing:border-box;max-width:100%;font-size:10px;text-align:center;text-decoration:none;white-space:normal;justify-content:center}

.nft-packs-heading{display:flex;align-items:center;gap:12px;padding:18px 19px;border-bottom:1px solid #75648440}
.nft-packs-heading>div{min-width:0}
.nft-packs-heading h3{margin:0;color:#ede5f4;font-size:18px;line-height:1.4}
.nft-packs-heading p{margin:5px 0 0;color:#bfb0ce;font-size:12px;line-height:1.6}
.nft-packs-panel .nft-wallet-body{padding-top:1px}
.nft-packs-grid{align-items:stretch}
.nft-packs-panel .nft-wallet-pagination>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:520px){.nft-packs-heading{padding:15px 14px}.nft-packs-heading h3{font-size:17px}.nft-packs-heading p{font-size:11px}.nft-packs-panel .nft-wallet-pagination{align-items:flex-start;flex-wrap:wrap}}

/* Explicit wallet actions and persisted opening recovery. */
.nft-actions{margin-top:18px;padding:16px;border:1px solid #615269;border-radius:16px;background:#211c2b;min-width:0}
.nft-actions h4{margin:16px 0 10px}.nft-action-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.nft-action-message{color:#d7f1af}.nft-action-pending{padding:14px;border:1px solid #ba9860;border-radius:12px;background:#352c2b;display:grid;gap:10px;min-width:0}
.nft-action-pending code,.nft-action-dialog dd{overflow-wrap:anywhere;word-break:break-word}.nft-action-pending p{margin:0}
.nft-action-pending label{display:grid;gap:6px;min-width:0}.nft-action-pending input{box-sizing:border-box;max-width:100%;width:100%;padding:10px;border:1px solid #716479;border-radius:8px;color:#fff;background:#211c2b}
.nft-opening-list{display:grid;gap:8px}.nft-opening-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:#302739;min-width:0}
.nft-opening-row>div{min-width:0}.nft-opening-row p{margin:6px 0}.nft-opening-row button{flex-shrink:0;max-width:50%;white-space:normal}
.nft-action-dialog{box-sizing:border-box;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;color:#f8f2e7;background:#2b2337;border:1px solid #766280;border-radius:20px}
.nft-action-dialog::backdrop{background:#0d091bcc;backdrop-filter:blur(4px)}.nft-action-dialog h2{padding-right:22px;font-size:24px;line-height:1.25}.nft-action-dialog p{line-height:1.6}.nft-action-dialog dt{color:#c8bdd5;margin-top:10px}.nft-action-dialog dd{margin:4px 0 0;font-weight:700}.nft-action-dialog .action-group{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.nft-action-dialog .button{white-space:normal}
.nft-wallet-card>button{max-width:100%;white-space:normal;overflow-wrap:anywhere;min-height:40px}.nft-wallet-card button.is-active{border-color:#cdf092;background:#3d5035}
@media(max-width:420px){.nft-actions{padding:12px}.nft-opening-row{align-items:stretch;flex-direction:column}.nft-opening-row button{max-width:100%}.nft-action-dialog{padding:18px}.nft-action-toolbar>.button{flex:1 1 140px}}

.nft-automation-pause{box-sizing:border-box;margin:0 0 16px;padding:14px 18px;border:1px solid #a58a55;border-radius:14px;background:#393024;color:#f7e5b2;font-size:14px;line-height:1.55;overflow-wrap:anywhere}

.collection-stack-count{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:9px;color:#dcf3aa;background:#6e8a3d38;font-weight:700;font-variant-numeric:tabular-nums}
.collection-stack-units{margin:2px 0 5px;color:#bfb0ce;font-size:11px;line-height:1.4;text-align:center}
.collection-stack-units b{color:#ede5f4}
.collection-supply-stack>.button{width:100%;box-sizing:border-box;margin-top:8px;white-space:normal}
.collection-stack-quantity{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:10px;color:#bfb0ce;font-size:11px;line-height:1.4}
.collection-stack-quantity input{box-sizing:border-box;min-width:0;width:66px;max-width:45%;padding:7px;border:1px solid #75648480;border-radius:7px;background:#282238;color:#f0e9f4;font:inherit}
.collection-stack-quantity input[aria-invalid="true"]{border-color:#e69b93}

/* Wallet-held reserve tiles share the existing resident roster. */
.feeder-roster{align-items:flex-start}.nft-barn,.nft-barn-grid{display:contents}.nft-barn[hidden]{display:none}.nft-barn-heading{order:1;flex:1 0 100%;display:flex;align-items:start;justify-content:space-between;gap:10px;padding-top:3px}.nft-barn-heading h3{font-size:11px;margin:0 0 3px;color:#d9c58f}.nft-barn-heading p,.nft-barn-empty,.nft-barn-notice{font-size:10px;line-height:1.45;color:var(--muted,#b9b1c5);margin:0}.nft-barn-heading p{max-width:430px}.nft-barn-heading>.button{font-size:10px;padding:6px 8px;flex-shrink:0}.nft-barn-notice,.nft-barn-empty,.nft-barn>.nft-wallet-error{order:2;flex:1 0 100%}.nft-barn-card{flex:0 1 225px;max-width:240px;min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:5px;padding:8px;background:#e7c7750b;border:1px solid #e7c77545;border-radius:10px}.nft-barn-art{width:42px;height:42px;display:grid;place-items:center}.nft-barn-art>svg{max-width:42px;max-height:42px}.nft-barn-card h4{font-size:12px;margin:2px 0}.nft-barn-card small{font-size:10px;color:var(--muted,#b9b1c5);overflow-wrap:anywhere}.nft-barn-badge{display:inline-block;font-size:9px;line-height:1.35;color:#e8cd88}.nft-barn-card>.button{grid-column:1/-1;font-size:11px;min-height:30px;padding:6px 8px}.nft-barn-more{order:2;font-size:11px}.feeder-roster:has(.nft-barn-card)>.feeder-animal-cost{flex:0 1 160px;min-height:58px}@media(max-width:440px){.nft-barn-heading{gap:7px}.nft-barn-heading p{font-size:9px}.nft-barn-heading>.button{max-width:88px;white-space:normal}.nft-barn-card{flex-basis:210px;max-width:100%}.feeder-roster:has(.nft-barn-card)>.feeder-animal-cost{flex-basis:130px}}

/* Owned packs are opened beside the separate sale checkout; history stays below. */
.nft-pack-inline{margin:14px 0;padding:14px;border:1px solid #786139;border-radius:14px;background:linear-gradient(135deg,#352c3d,#292534);text-align:left;min-width:0}
.nft-pack-inline[hidden]{display:none}
.nft-pack-inline h4{font-size:14px;color:#f3d28b;margin:0 0 10px}
.nft-pack-inline p{font-size:12px;line-height:1.5;margin:8px 0;overflow-wrap:anywhere}
.nft-pack-inline .nft-pack-count{color:#eee4d3}.nft-pack-inline .nft-pack-count b{color:#f3d28b;font-size:16px}
.nft-pack-inline .button{white-space:normal;min-height:38px;max-width:100%;margin-top:6px}
.nft-pack-select{display:grid;gap:6px;font-size:12px;margin:8px 0}
.nft-pack-select select{width:100%;min-width:0;padding:10px;border:1px solid #746183;border-radius:8px;background:#25202f;color:#fff3dc;font:inherit}
.nft-pack-inline .nft-opening-row{display:grid;gap:6px;margin-top:12px;padding:10px 0 0;border-top:1px solid #62546a}
.nft-pack-inline .nft-action-pending{padding:8px;min-width:0}
.nft-pack-inline .nft-action-pending code{display:block;overflow-wrap:anywhere;font-size:10px}
.nft-pack-inline input{box-sizing:border-box;width:100%;min-width:0}
.nft-packs-panel{margin-top:24px}.nft-packs-panel .nft-packs-heading{padding-bottom:0}

.nft-inline-result{display:flex;align-items:center;gap:10px;margin-top:8px}.nft-inline-result-art{display:grid;place-items:center;width:64px;height:64px;flex:none;overflow:hidden}.nft-inline-result-art>*{max-width:64px;max-height:64px}.nft-inline-result small{display:block;margin-top:4px}


/* dist/animal-collection.css */
/* Compact, independently expandable game inventories below the wallet collection. */
.animal-collection{margin:24px 0 30px;min-width:0}
.animal-collection>.nft-wallet-panel{margin:0 0 12px}
.animal-groups{display:grid;gap:12px}
.animal-group{border:1px solid var(--border);border-radius:12px;background:#29243a;min-width:0;overflow:hidden}
.animal-group>summary{display:flex;align-items:center;gap:14px;padding:16px 20px;min-height:74px;cursor:pointer;list-style:none}
.animal-group>summary::-webkit-details-marker{display:none}
.animal-group>summary::marker{content:''}
.animal-group>summary:focus-visible{outline:2px solid var(--lime);outline-offset:-4px;border-radius:11px}
.animal-group-title{display:flex;flex-direction:column;gap:5px;min-width:0}
.animal-group-title strong{font-size:16px;font-weight:600;line-height:1.4}
.animal-group-title small{font-size:12px;color:var(--muted);line-height:1.5}
.animal-group-count{margin-left:auto;flex:none;min-width:39px;padding:5px 10px;border-radius:7px;background:#c5ef8a13;border:1px solid #c5ef8a26;color:var(--lime);font-size:14px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.animal-group-chevron{flex:none;color:var(--muted);font-size:24px;line-height:1}
.animal-group[open] .animal-group-chevron{transform:rotate(180deg)}
.animal-group-body{padding:16px;border-top:1px solid var(--border)}
.animal-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.animal-group-grid>.animal-card{display:grid;grid-template-columns:80px minmax(0,1fr);align-content:start;gap:9px 12px;padding:13px;border-radius:9px;min-width:0}
.animal-group-grid .animal-card-top{grid-column:1/-1;flex-wrap:wrap;row-gap:4px;align-items:baseline;min-height:17px}
.animal-group-grid .rarity-label,.animal-group-grid .yield{font-size:10px;line-height:1.5}
.animal-group-grid .animal-card>.animal-sprite{grid-column:1;grid-row:2;width:80px;height:86px;aspect-ratio:auto;min-width:0;margin:0;align-self:center;border-radius:0}
.animal-group-grid .animal-info{grid-column:2;grid-row:2;padding:0;align-self:center;gap:5px;min-width:0}
.animal-group-grid .animal-info h3{font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.animal-group-grid .animal-info>span{font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.animal-group-grid .animal-info .product-icon{width:18px;height:18px;vertical-align:middle}
.animal-group-grid .animal-card>.item-life{grid-column:1/-1;min-height:30px;margin:0;padding:6px 9px;font-size:10px;line-height:1.5}
.animal-group-grid .life-label{font-size:10px;flex-wrap:wrap;gap:5px}
.animal-group-grid .life-track{margin-top:5px}
.animal-group-grid .animal-card>.button{grid-column:1/-1;min-height:44px;padding:9px 10px;white-space:normal;font-size:12px;line-height:1.4}
.animal-group-grid .animal-placement{grid-column:1/-1;margin:0;padding:0;gap:5px}
.animal-group-grid .animal-placement>span{font-size:10px;line-height:1.4}
.animal-group-grid .animal-placement>.button{min-height:44px;padding:8px;font-size:11px;line-height:1.4;white-space:normal}
.animal-group-empty{margin:0;padding:10px;color:var(--muted);font-size:13px;line-height:1.6}
.animal-group-pages{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.animal-group-pages>span{font-size:12px;color:var(--muted);text-align:center;line-height:1.5;font-variant-numeric:tabular-nums}
.animal-group-pages>.button{min-height:44px;padding:10px 15px;font-size:12px}
@media(max-width:1050px){.animal-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.animal-group>summary{padding:14px;gap:10px}.animal-group-title strong{font-size:14px}.animal-group-title small{font-size:11px}.animal-group-count{font-size:12px;padding:5px 7px}.animal-group-body{padding:12px}.animal-group-grid{grid-template-columns:minmax(0,1fr);gap:10px}.animal-group-grid>.animal-card{grid-template-columns:74px minmax(0,1fr);padding:12px;gap:7px 12px}.animal-group-grid .animal-card>.animal-sprite{width:74px;height:78px}.animal-group-pages{gap:8px}.animal-group-pages>.button{padding:9px 11px;font-size:11px}.animal-group-pages>span{font-size:11px}}


/* dist/farm-seeder-control.css */
.farm-seeder-control{margin:0 0 16px;padding:14px 16px;border:1px solid #716649;border-radius:12px;background:linear-gradient(125deg,#3b3b2f,#2e2b3d);color:var(--ink);min-width:0}
.farm-seeder-heading{display:flex;align-items:center;gap:14px;min-width:0}
.farm-seeder-art{display:flex;align-items:center;justify-content:center;flex:0 0 72px;width:72px;height:72px;border:1px solid #c1a36a38;border-radius:10px;background:#25232e}
.farm-seeder-art .tool-art{width:64px;height:64px;max-width:100%;margin:0}
.farm-seeder-control.is-unavailable .farm-seeder-art{opacity:.7}
.farm-seeder-copy{flex:1;min-width:0}
.farm-seeder-copy h3{margin:0 0 4px;font-size:16px;line-height:1.4}
.farm-seeder-copy h3 span{font-size:12px;color:var(--gold);font-weight:500}
.farm-seeder-copy p{margin:0;font-size:12px;line-height:1.55;color:#d7d0c1}
.farm-seeder-status{display:block;margin-top:5px;font-size:11px;line-height:1.5;color:var(--muted)}
.farm-seeder-control.is-equipped .farm-seeder-status{color:var(--lime)}
.farm-seeder-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:12px}
.farm-seeder-actions .button{min-width:0;min-height:44px;white-space:normal;overflow-wrap:anywhere;text-align:center}
.farm-seeder-sow{flex:1 1 230px;flex-direction:column;gap:4px;padding:9px 14px;font-variant-numeric:tabular-nums}
.farm-seeder-sow small{font-size:11px;font-weight:400;line-height:1.45}
.farm-seeder-choose{flex:0 1 auto;font-size:12px}
.farm-seeder-reason{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--gold)}
@media(max-width:600px){.farm-seeder-control{padding:12px}.farm-seeder-heading{gap:10px}.farm-seeder-art{flex-basis:58px;width:58px;height:58px}.farm-seeder-art .tool-art{width:52px;height:52px}.farm-seeder-copy h3{font-size:14px}.farm-seeder-choose{flex:1 1 auto}.farm-seeder-sow{flex-basis:100%}}


/* Manual planting uses the seed art, distinct from an equipped seeder. */
.farm-seeder-art .seed-icon{width:54px;height:54px;max-width:100%;margin:0}
.manual-planting-art{display:flex;align-items:center;justify-content:center;min-height:113px;margin:7px 0}
.manual-planting-art .seed-icon{width:80px;height:90px;max-width:100%;margin:0}
@media(max-width:600px){.farm-seeder-art .seed-icon{width:44px;height:44px}.manual-planting-art{min-height:90px}.manual-planting-art .seed-icon{width:65px;height:75px}}


/* dist/community-invite.css */
.community-invite{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:20px;margin:18px 0;padding:25px 46px 25px 25px;border:1px solid rgba(201,239,138,.52);border-radius:16px;background:radial-gradient(ellipse at 0 0,rgba(201,239,138,.10),transparent 65%),linear-gradient(120deg,#302c43,#282437);box-shadow:0 0 24px rgba(201,239,138,.045),inset 0 1px 0 rgba(255,255,255,.04);color:#fff}
.community-invite[hidden]{display:none}
.community-invite-icon{display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(201,239,138,.22);border-radius:15px;background:#1e1b2a;box-shadow:0 5px 12px #14111e40;color:#eaf5d7}
.community-invite-icon svg{width:29px;height:29px}
.community-invite-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.3px;line-height:1.6;color:#c9ef8a}
.community-invite .community-invite-copy h2{margin:5px 0 7px;font-size:21px;line-height:1.2;color:#fff}
.community-invite .community-invite-copy p{max-width:470px;margin:0;font-size:12px;line-height:1.7;color:#c8c3d8}
.community-invite-actions{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:160px}
.community-invite-follow{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:44px;padding:11px 16px;border:1px solid #ceef9f;border-radius:9px;background:#c9ef8a;color:#263019;text-decoration:none;font-size:12px;font-weight:700;line-height:1.5;box-shadow:0 3px 0 #7b9253;transition:background .15s}
.community-invite-follow:hover{background:#daf6a9;color:#263019}
.community-invite-handle{font-size:10px;line-height:1.4;color:#bdb6cd}
.community-invite-close{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:32px;height:32px;padding:6px;border:0;border-radius:7px;background:transparent;color:#bdb6cd;cursor:pointer}
.community-invite-close svg{width:17px;height:17px}
.community-invite-close:hover{color:#fff;background:#ffffff0c}
.community-invite-follow:focus-visible,.community-invite-close:focus-visible{outline:2px solid #e7ffc1;outline-offset:4px}
@media(max-width:1050px){.community-invite{grid-template-columns:50px minmax(0,1fr);gap:14px;padding:23px 35px 23px 20px}.community-invite-icon{width:50px;height:50px;border-radius:12px}.community-invite-actions{grid-column:2;align-items:flex-start;gap:9px;min-width:0}.community-invite-follow{width:auto;min-width:165px}.community-invite-handle{padding-left:3px}}
@media(max-width:560px){.community-invite{grid-template-columns:42px minmax(0,1fr);padding:22px 18px 21px;gap:13px;border-radius:13px;margin:14px 0}.community-invite-icon{width:42px;height:42px;border-radius:11px;align-self:start;margin-top:4px}.community-invite-icon svg{width:22px;height:22px}.community-invite .community-invite-copy h2{font-size:18px;padding-right:9px;line-height:1.35}.community-invite .community-invite-copy p{font-size:12px;line-height:1.7}.community-invite-eyebrow{font-size:9px;letter-spacing:.8px;padding-right:13px}.community-invite-actions{grid-column:1/-1;align-items:center;padding-top:2px}.community-invite-follow{width:100%;min-height:46px}.community-invite-close{top:4px;right:4px}}
@media(prefers-reduced-motion:reduce){.community-invite-follow{transition:none}}


/* dist/launch-ui.css */
.launch-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,360px);gap:16px 24px;align-items:center;margin:0 0 24px;padding:22px 24px;border:1px solid #c5ad6b66;border-radius:13px;background:linear-gradient(115deg,#bb965b13,#2a2438 65%);min-width:0;color:var(--ink,#f6f1df)}
.launch-card-copy{min-width:0}.launch-card h3{font-size:19px;line-height:1.35;margin:0 0 8px;color:var(--gold,#e4c788);overflow-wrap:anywhere}.launch-card time{display:block;font-size:14px;line-height:1.55;overflow-wrap:anywhere}.launch-local-note{display:block;font-size:11px;line-height:1.5;color:var(--muted,#bbafc8);margin-top:4px}.launch-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0;font-variant-numeric:tabular-nums}.launch-countdown>div{display:grid;gap:5px;text-align:center;background:#19152288;border:1px solid #a693bd33;border-radius:8px;padding:12px 5px;min-width:0}.launch-countdown strong{font-size:28px;line-height:1.1;color:var(--ink,#f6f1df)}.launch-countdown span{font-size:10px;line-height:1.35;color:var(--muted,#bbafc8);overflow-wrap:anywhere}.launch-card-status{grid-column:1/-1;margin:0;font-size:13px;line-height:1.55;color:var(--muted,#bbafc8);overflow-wrap:anywhere}.launch-card-status[hidden]{display:none}.launch-card[data-launch-state=open]{border-color:#9cbe6877}.launch-card[data-launch-state=open] .launch-card-status{color:var(--lime,#c5ef8a)}
.giveaway-hero .launch-card,.ref-tournament .launch-card{grid-template-columns:minmax(0,1fr);padding:16px;margin:18px 0}.giveaway-hero .launch-card h3,.ref-tournament .launch-card h3{font-size:16px}.giveaway-hero .launch-card time,.ref-tournament .launch-card time{font-size:12px}.giveaway-hero .launch-countdown,.ref-tournament .launch-countdown{max-width:360px;width:100%}.giveaway-hero .launch-countdown strong,.ref-tournament .launch-countdown strong{font-size:24px}
@media(max-width:760px){.launch-card{grid-template-columns:minmax(0,1fr);padding:18px;gap:16px}.launch-countdown{max-width:440px;width:100%}.launch-card h3{font-size:18px}}
@media(max-width:360px){.launch-card{padding:15px}.launch-countdown{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-card time{font-size:12px}.launch-countdown strong{font-size:26px}}


/* dist/early-access-status.css */
.early-access-status{display:flex;align-items:center;gap:13px;padding:12px 16px;margin:16px 0 0;border:1px solid #c5ef8a38;border-radius:10px;background:#c5ef8a09;font-size:12px;line-height:1.55;color:var(--muted)}.early-access-status-label{flex:none;border-radius:5px;background:#c5ef8a18;padding:4px 7px;color:var(--lime);font-size:10px;font-weight:750;letter-spacing:.6px}.early-access-status-copy{flex:1}.early-access-status a{color:var(--lime);white-space:nowrap;font-size:11px}.early-access-status a:hover{text-decoration:underline}.early-access-status a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}@media(max-width:760px){.early-access-status{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:7px;padding:12px;margin-top:12px}.early-access-status-label{font-size:10px}.early-access-status-copy{font-size:12px}.early-access-status a{white-space:normal}}


/* dist/home-entry.css */
.home-entry{margin:16px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:22px;row-gap:12px;padding:15px 18px;border:1px solid #4a435c;border-radius:12px;background:linear-gradient(105deg,#303047,#282439);min-width:0}
.home-entry h2{margin:0;font-size:16px;font-weight:600;line-height:1.4;letter-spacing:0;color:var(--ink,#faf3e5)}
.home-entry-links{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;min-width:0}
.home-entry-links a{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;padding:10px 13px;border:1px solid #615974;border-radius:8px;background:#ffffff04;color:var(--ink,#faf3e5);font-size:13px;line-height:1.35;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s}
.home-entry-links a>span:last-child{color:var(--lime,#c5ef8a);flex-shrink:0}
.home-entry-links a:hover,.home-entry-links a:focus-visible{background:#c5ef8a0c;border-color:#a7c880}
.home-entry-progress{grid-column:1/-1;margin:0;padding-top:11px;border-top:1px solid #ffffff12;color:var(--muted,#b6acc8);font-size:12px;line-height:1.65;overflow-wrap:anywhere}
.home-entry-progress a{color:var(--lime,#c5ef8a);text-decoration:underline;text-underline-offset:3px;margin-left:5px;white-space:normal}
@media(max-width:1320px){.home-entry{grid-template-columns:minmax(0,1fr);row-gap:10px}.home-entry-links{width:100%}.home-entry-links a{flex:1 1 auto}}
@media(max-width:520px){.home-entry{margin:12px 0;padding:13px 12px;row-gap:10px}.home-entry h2{font-size:15px}.home-entry-links{gap:7px}.home-entry-links a{padding:10px;font-size:12px;gap:10px}.home-entry-progress{padding-top:9px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.home-entry-links a{transition:none}}

@media(max-width:600px){.home-entry-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.home-entry-links a{min-width:0;min-height:46px;overflow-wrap:anywhere;gap:8px}.home-entry-links a>span:first-child{min-width:0}}




/* dist/social-tasks.css */
/* Community tasks only; no global element, weekly-task or game overrides. */
.social-tasks{--social-surface:#2b263c;--social-line:#554b67;--social-ink:#f6f0e5;--social-muted:#c4b8d3;--social-lime:#caef90;color:var(--social-ink);margin:0 0 34px;font-family:inherit}
.social-tasks,.social-tasks *{box-sizing:border-box}
.social-tasks [hidden]{display:none!important}
.social-tasks .social-tasks-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:0 0 22px}
.social-tasks .social-tasks-heading>div:first-child{max-width:780px;min-width:0}
.social-tasks .social-tasks-eyebrow{margin:0 0 9px;font-size:10px;font-weight:700;letter-spacing:1.6px;line-height:1.5;color:var(--social-lime)}
.social-tasks h2{font-size:clamp(23px,2.5vw,31px);letter-spacing:-.6px;line-height:1.2;margin:0 0 12px;color:var(--social-ink)}
.social-tasks .social-tasks-intro{font-size:14px;line-height:1.65;margin:0;color:var(--social-muted)}
.social-tasks .social-tasks-total{display:flex;align-items:center;gap:9px;flex-shrink:0;padding:12px 15px;border:1px solid #a6c87b57;border-radius:14px;background:#a9cd6b0d;font-size:13px;line-height:1.5;color:#e4f4c7;max-width:240px}
.social-tasks .social-tasks-coin{width:23px;height:23px;flex-shrink:0}
.social-tasks .social-tasks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.social-tasks .social-tasks-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--social-line);border-radius:18px;padding:23px;background:linear-gradient(155deg,#332c45 0%,#292437 85%);box-shadow:0 4px 0 #16132155;overflow-wrap:anywhere}
.social-tasks .social-tasks-card[data-social-state=approved]{border-color:#89b56091;background:linear-gradient(155deg,#333c32,#292b33)}
.social-tasks .social-tasks-card[data-social-state=pending]{border-color:#8b7eac}
.social-tasks .social-tasks-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;min-height:44px}
.social-tasks .social-tasks-platform{display:grid;place-items:center;width:45px;height:45px;flex-shrink:0;border:1px solid #746983;border-radius:13px;background:#1b1825;color:#fff}
.social-tasks .social-tasks-platform svg{height:21px;width:21px}
.social-tasks .social-tasks-platform.is-telegram{background:#233745;color:#8ed9f2;border-color:#578295}
.social-tasks .social-tasks-platform.is-telegram svg{height:24px;width:24px}
.social-tasks .social-tasks-platform.is-playtoearn{background:#2e3827;color:#d0ee9b;border-color:#6b8352}
.social-tasks .social-tasks-platform.is-playtoearn svg{height:26px;width:26px}
.social-tasks .social-tasks-status{font-size:10px;line-height:1.4;border:1px solid #6c6078;border-radius:20px;padding:6px 10px;text-align:center;color:#d6cadf;max-width:calc(100% - 52px)}
.social-tasks [data-social-state=approved] .social-tasks-status{color:#d8f3b3;border-color:#8ca669}
.social-tasks [data-social-state=rejected] .social-tasks-status{color:#f0cea8;border-color:#a98256}
.social-tasks h3{font-size:20px;line-height:1.3;margin:0 0 10px;color:var(--social-ink);letter-spacing:-.25px}
.social-tasks .social-tasks-description{font-size:13px;line-height:1.65;color:var(--social-muted);margin:0 0 19px}
.social-tasks .social-tasks-reward{display:flex;align-items:center;gap:7px;margin:auto 0 16px;color:#ead6a0;font-size:12px;line-height:1.4}
.social-tasks .social-tasks-reward strong{font-size:26px;color:#f3dda0;font-weight:700;letter-spacing:-.7px}
.social-tasks .social-tasks-reward .social-tasks-coin{width:25px;height:25px}
.social-tasks .social-tasks-open{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 13px;border:1px solid #716578;border-radius:9px;color:#eadff4;background:#ffffff04;text-decoration:none;font-size:12px;font-weight:600;line-height:1.45}
.social-tasks .social-tasks-open:hover{border-color:#baa9ca;background:#ffffff0a}
.social-tasks form{display:flex;flex-direction:column;margin:18px 0 0;flex-grow:0}
.social-tasks label{display:block;font-size:12px;line-height:1.5;color:#e0d6e8;font-weight:500;margin:0 0 7px}
.social-tasks input{display:block;width:100%;min-width:0;font:inherit;font-size:12px;line-height:1.5;color:#f5f0fa;background:#1f1a2e;border:1px solid #6e5f7b;border-radius:8px;padding:11px 12px;min-height:43px;box-shadow:none;outline:none;transition:border-color .12s}
.social-tasks input+label{margin-top:13px}
.social-tasks input::placeholder{color:#a99ab9;opacity:1}
.social-tasks input[readonly]{color:#bcb1c7;background:#211e2c;border-color:#54495f}
.social-tasks input[aria-invalid=true]{border-color:#e8a393}
.social-tasks :is(input,button,a):focus-visible{outline:2px solid var(--social-lime);outline-offset:3px}
.social-tasks input:focus-visible{outline-offset:2px;border-color:#b2d380}
.social-tasks .social-tasks-feedback{font-size:12px;line-height:1.6}
.social-tasks .social-tasks-note,.social-tasks .social-tasks-review-note{margin:12px 0 0;color:#d4c6e5}
.social-tasks .social-tasks-note.is-approved{color:#d1edb2}
.social-tasks .social-tasks-review-note{padding:10px 12px;background:#d9af7310;border:1px solid #b18c534d;border-radius:8px;color:#e8d1b4}
.social-tasks .social-tasks-review-note p{margin:0;font-size:12px;line-height:1.6}
.social-tasks .social-tasks-rejection{margin-top:6px!important;color:#f1dfc8;white-space:pre-wrap}
.social-tasks .social-tasks-error{margin:10px 0 0;color:#ffd0c7;font-size:12px;line-height:1.6}
.social-tasks form>button{display:block;width:100%;font:inherit;font-size:12px;font-weight:650;line-height:1.4;text-align:center;cursor:pointer;border:1px solid #b6d781;background:var(--social-lime);color:#24311c;border-radius:9px;min-height:45px;padding:11px 12px;margin:18px 0 0;box-shadow:0 3px 0 #8cad5a}
.social-tasks form>button:not(:disabled):hover{background:#daf5b3}
.social-tasks form>button:disabled{cursor:default;background:#37323f;border-color:#62576c;box-shadow:none;color:#bfb2cb}
.social-tasks [data-social-state=approved] form>button:disabled{background:#43523c;border-color:#758c5f;color:#dbefc6}
.social-tasks .social-tasks-notice{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px;padding:13px 16px;border:1px solid #736284;border-radius:10px;background:#332c45;color:#dbcfe7;font-size:13px;line-height:1.6}
.social-tasks .social-tasks-notice.is-error{border-color:#b38961;color:#f4d4b3}
.social-tasks .social-tasks-footnote{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:17px 2px 0}
.social-tasks .social-tasks-footnote p{font-size:11px;line-height:1.65;color:#b2a4c0;margin:0;max-width:840px}
.social-tasks [data-social-refresh]{font:inherit;font-size:11px;line-height:1.5;flex-shrink:0;color:#d2eca9;background:none;border:0;border-bottom:1px solid #a7c18470;border-radius:0;padding:0 0 2px;cursor:pointer;max-width:100%}
.social-tasks [data-social-refresh]:disabled{color:#a297ad;border-color:#6f627b;cursor:default}
@media(max-width:1000px){.social-tasks .social-tasks-card{padding:18px}.social-tasks h3{font-size:18px}.social-tasks .social-tasks-heading{gap:18px}.social-tasks .social-tasks-total{max-width:190px;font-size:12px}.social-tasks .social-tasks-grid{gap:13px}}
@media(max-width:760px){.social-tasks .social-tasks-heading{flex-direction:column;gap:16px}.social-tasks .social-tasks-total{max-width:none;padding:10px 13px}.social-tasks .social-tasks-grid{grid-template-columns:1fr;gap:17px}.social-tasks .social-tasks-card{padding:22px}.social-tasks h3{font-size:21px}.social-tasks .social-tasks-description{font-size:14px}.social-tasks .social-tasks-card-heading{margin-bottom:15px}.social-tasks input{font-size:16px;min-height:46px}.social-tasks label{font-size:13px}.social-tasks .social-tasks-reward{margin-top:0}.social-tasks form>button{font-size:14px;min-height:47px}.social-tasks .social-tasks-open{font-size:13px;min-height:45px}.social-tasks .social-tasks-footnote{flex-direction:column;gap:9px}.social-tasks .social-tasks-notice{flex-wrap:wrap}.social-tasks .social-tasks-status{font-size:11px}}
@media(prefers-reduced-motion:reduce){.social-tasks input{transition:none}}

/* Share natural row heights across neighboring cards, including wrapped labels and review notes. */
@supports(grid-template-rows:subgrid){
 @media(min-width:761px){
  .social-tasks .social-tasks-card{display:grid;grid-row:span 9;grid-template-rows:subgrid;row-gap:0}
  .social-tasks .social-tasks-reward{margin-top:0}
  .social-tasks form{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
 }
}


/* dist/plus-task.css */
/* Lifetime Plus and VIP tasks; deliberately separate from weekly task grids/counters. */
.plus-task{margin:0 0 34px;color:#f6f0e5;font-family:inherit}
.plus-task,.plus-task *{box-sizing:border-box}
.plus-task .plus-task-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.plus-task h2{margin:0;font-size:clamp(23px,2.5vw,31px);line-height:1.25;letter-spacing:-.6px}
.plus-task .plus-task-heading>span{color:#c4b8d3;font-size:12px;text-align:right}
.plus-task .plus-task-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:28px;align-items:center;padding:25px;border:1px solid #84704b;border-radius:18px;background:linear-gradient(135deg,#3c3244,#2b263a);box-shadow:0 4px 0 #16132155;overflow-wrap:anywhere}
.plus-task .plus-task-copy{min-width:0}
.plus-task h3{margin:0 0 10px;font-size:23px;line-height:1.3;letter-spacing:-.3px}
.plus-task p{font-size:14px;line-height:1.65;margin:0 0 8px;color:#e1d7e8}
.plus-task .plus-task-history{color:#bdafcc;font-size:12px}
.plus-task .plus-task-status{margin:15px 0 0;color:#dfedc7;font-size:13px}
.plus-task .plus-task-error,.plus-task .is-error{color:#f2c6a0}
.plus-task .plus-task-error,.plus-task .plus-task-success{margin:10px 0 0;font-size:13px}
.plus-task .plus-task-success{color:#d2efaf}
.plus-task .plus-task-side{display:flex;flex-direction:column;gap:17px;min-width:0}
.plus-task .plus-task-reward{display:flex;align-items:center;justify-content:center;gap:10px;color:#f4d99a;font-size:17px;line-height:1.4}
.plus-task .plus-task-reward>.resource-icon{width:32px;height:32px;flex:none;margin:0}
.plus-task .plus-task-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.plus-task button{font:inherit;font-size:13px;font-weight:650;line-height:1.45;min-height:44px;white-space:normal;border:1px solid #d9e9a4;border-radius:10px;padding:11px 15px;background:#cdef95;color:#27242b;cursor:pointer}
.plus-task button:hover:not(:disabled){background:#def6b7}
.plus-task button:disabled{opacity:.55;cursor:default}
.plus-task button:focus-visible{outline:2px solid #f1cf7d;outline-offset:3px}
.plus-task .plus-task-refresh{border-color:#72647d;color:#ddd0e8;background:transparent;font-size:12px;font-weight:500}
.plus-task .plus-task-refresh:hover:not(:disabled){background:#ffffff0a}
.plus-task .plus-task-done{display:block;align-self:center;font-size:29px;color:#d2efaf}
.plus-task [data-plus-task-state=claimed],.plus-task [data-vip-task-state=claimed]{border-color:#7d9862;background:linear-gradient(135deg,#343b32,#292b36)}
@media(max-width:640px){.plus-task .plus-task-heading{align-items:flex-start;flex-direction:column;gap:6px}.plus-task .plus-task-heading>span{text-align:left}.plus-task .plus-task-card{grid-template-columns:minmax(0,1fr);gap:20px;padding:20px}.plus-task .plus-task-reward{justify-content:flex-start}.plus-task h3{font-size:21px}}



/* dist/premium.css */
/* Farm Valley Plus has its own rail and modal; game geometry stays unchanged. */
.fv-plus-rail,.fv-plus-dialog,.fv-plus-cat{--plus-lime:#cef18d;--plus-gold:#f4d894;--plus-cream:#fff8e9;--plus-muted:#c9c0d9;--plus-border:#5c516d;color:var(--plus-cream);font-family:inherit;box-sizing:border-box}
.fv-plus-rail *, .fv-plus-dialog *, .fv-plus-cat *{box-sizing:border-box}
.fv-plus-rail{position:fixed;top:14px;z-index:24;width:190px}
.fv-plus-rail-button{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding:12px 12px 13px;border:1px solid #8d794e;border-radius:20px;background:radial-gradient(ellipse at 50% 12%,#6d553845,transparent 75%),linear-gradient(145deg,#342b42,#292236 65%);box-shadow:0 8px 28px #100a234d;color:var(--plus-cream);font:inherit;text-align:center;cursor:pointer;overflow:visible;isolation:isolate}
.fv-plus-rail-button:hover{border-color:#f3d38b;box-shadow:0 10px 30px #100a2359,0 0 0 1px #f3d38b33}
.fv-plus-rail-art{position:relative;display:block;flex:none;width:96px;height:88px;margin:0 auto 8px;pointer-events:none}
.fv-plus-rail-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 7px #160d2080)}
.fv-plus-rail-copy{position:relative;display:grid;gap:7px;min-width:0;width:100%}
.fv-plus-rail-name{font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.015em}
.fv-plus-rail-name b{color:var(--plus-gold);font-size:19px;margin-left:3px}
.fv-plus-rail-price{font-size:11px;color:var(--plus-muted);line-height:1.35}
.fv-plus-rail-price b{font-size:17px;color:var(--plus-cream)}
.fv-plus-rail-cta{display:flex;justify-content:center;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:var(--plus-lime);color:#243016;font-size:12px;line-height:1.2;font-weight:750}
.fv-plus-rail.is-docked{top:auto;bottom:calc(14px + env(safe-area-inset-bottom));right:18px;width:214px;max-width:calc(100vw - 32px)}
.fv-plus-rail.is-docked .fv-plus-rail-button{flex-direction:row;min-height:65px;padding:10px 12px 10px 72px;text-align:left;border-radius:16px}
.fv-plus-rail.is-docked .fv-plus-rail-art{position:absolute;left:4px;top:-11px;transform:none;width:75px;height:83px;margin:0}
.fv-plus-rail.is-docked .fv-plus-rail-copy{gap:3px;width:100%}
.fv-plus-rail.is-docked .fv-plus-rail-name{font-size:11px}
.fv-plus-rail.is-docked .fv-plus-rail-name b{font-size:17px}
.fv-plus-rail.is-docked .fv-plus-rail-cta{padding:0;background:none;color:var(--plus-lime);font-size:11px;justify-content:flex-start}
.fv-plus-rail.is-docked .fv-plus-rail-price{font-size:10px}
.fv-plus-rail.is-docked .fv-plus-rail-price b{font-size:13px}
body.fv-plus-has-dock{padding-bottom:calc(102px + env(safe-area-inset-bottom))}
.fv-plus-dialog{position:fixed;inset:0;max-width:780px;width:calc(100% - 40px);max-height:calc(100dvh - 48px);padding:0;margin:auto;overflow:hidden;overscroll-behavior:contain;border:1px solid #8a7656;border-radius:28px;background:#282135;box-shadow:0 24px 100px #080510ad}
.fv-plus-scroll{margin:8px;max-height:calc(100dvh - 66px);min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border-radius:20px;scrollbar-width:thin;scrollbar-color:#877495 transparent}
@supports selector(::-webkit-scrollbar){.fv-plus-scroll{scrollbar-width:auto;scrollbar-color:auto}.fv-plus-scroll::-webkit-scrollbar{width:6px;height:6px}.fv-plus-scroll::-webkit-scrollbar-track{background:transparent;margin-block:12px}.fv-plus-scroll::-webkit-scrollbar-thumb{background:#877495;border-radius:999px}.fv-plus-scroll::-webkit-scrollbar-thumb:hover{background:#af98bc}.fv-plus-scroll::-webkit-scrollbar-button{display:none;width:0;height:0}.fv-plus-scroll::-webkit-scrollbar-corner{background:transparent}}
.fv-plus-dialog::backdrop{background:#100d1fbd;backdrop-filter:blur(6px)}
.fv-plus-close{position:absolute;right:24px;top:18px;z-index:4;padding:0;border:1px solid #74627d7a;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#241d33bf;color:var(--plus-cream);font-size:27px;line-height:1;cursor:pointer}
.fv-plus-close>svg{display:block;width:20px;height:20px;pointer-events:none;flex:none}
.fv-plus-hero{position:relative;display:grid;grid-template-columns:1.12fr 1fr;gap:5px;padding:40px 38px 22px;min-height:300px;background:radial-gradient(ellipse at 85% 40%,#e5b85521,transparent 58%),linear-gradient(140deg,#3c3045,#292237);border-bottom:1px solid #66516c7a;overflow:hidden}
.fv-plus-hero-copy{position:relative;z-index:2;padding-top:4px;align-self:center;min-width:0;text-align:left}
.fv-plus-kicker{display:block;color:var(--plus-gold);font-size:10px;font-weight:800;line-height:1.5;letter-spacing:.13em;text-transform:uppercase}
.fv-plus-hero h2{margin:12px 0 12px;font-size:clamp(30px,4.4vw,43px);line-height:1.05;font-weight:800;letter-spacing:-.035em;text-wrap:balance}
.fv-plus-hero p{max-width:none;margin:0;color:#d7ccdf;font-size:14px;line-height:1.6}
.fv-plus-hero-price{display:inline-block;margin-top:19px;color:var(--plus-gold);font-size:25px;font-weight:800;letter-spacing:-.03em}
.fv-plus-hero-price small{font-size:13px;font-weight:500;letter-spacing:0;color:var(--plus-muted)}
.fv-plus-hero-art{position:relative;min-height:242px;align-self:stretch;display:grid;place-items:center}
.fv-plus-hero-art img{position:relative;z-index:1;width:100%;height:280px;object-fit:contain;filter:drop-shadow(0 12px 14px #17101f77)}
.fv-plus-orbit{position:absolute;width:220px;height:220px;border:1px solid #ddbd774a;border-radius:50%;background:radial-gradient(circle,#e8bb5533,transparent 67%);box-shadow:0 0 0 18px #d4b66706,0 0 0 19px #d4b66713}
.fv-plus-orbit::before,.fv-plus-orbit::after{content:'\2726';position:absolute;color:#efcc83;font-size:20px}
.fv-plus-orbit::before{left:12px;top:10px}.fv-plus-orbit::after{right:-8px;bottom:35px;font-size:14px}
.fv-plus-dialog-body{padding:26px 32px 28px}
.fv-plus-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.fv-plus-benefits article{padding:17px 15px 18px;background:#332a40;border:1px solid #51415e;border-radius:17px;text-align:left}
.fv-plus-benefit-number{display:grid;place-items:center;width:45px;height:42px;margin-bottom:15px;border:1px solid #98805275;border-radius:13px;background:#f4d78b0e;color:var(--plus-gold);font-size:23px;font-weight:800;line-height:1}
.fv-plus-benefits h3{margin:0 0 8px;font-size:15px;line-height:1.3;letter-spacing:-.01em}
.fv-plus-benefits p{margin:0;color:var(--plus-muted);font-size:12px;line-height:1.65}
.fv-plus-purchase{position:relative;margin-top:22px;padding:23px 24px 12px;background:#211b2e;border:1px solid #66533f;border-radius:18px}
.fv-plus-price{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:9px;color:var(--plus-muted);font-size:12px}
.fv-plus-price strong{font-size:26px;line-height:1.2;color:var(--plus-cream);white-space:nowrap;letter-spacing:-.03em}
.fv-plus-price small{font-size:12px;font-weight:500;letter-spacing:0;color:var(--plus-muted)}
.fv-plus-network{display:flex;justify-content:space-between;gap:12px;margin:9px 0 19px;color:#e7dcbf;font-size:11px;line-height:1.5}
.fv-plus-network span{color:var(--plus-muted);text-align:right}
.fv-plus-button{appearance:none;display:block;width:100%;min-height:49px;padding:12px 16px;border:1px solid #dcf5af;border-radius:12px;color:#243016;background:linear-gradient(180deg,#dcf4aa,#c5e984);box-shadow:0 3px 0 #8aab59;font-family:inherit;font-size:14px;line-height:1.4;font-weight:800;cursor:pointer;overflow-wrap:anywhere}
.fv-plus-button:hover:not(:disabled){background:#e3fac0;transform:translateY(-1px)}
.fv-plus-button:disabled{cursor:default;color:#c6bfd0;background:#44394f;border-color:#62526e;box-shadow:none;opacity:.85}
.fv-plus-payment-note,.fv-plus-renewal{font-size:11px;line-height:1.6;text-align:center;color:var(--plus-muted);margin:13px 0 0}
.fv-plus-payment-note:empty{display:none}.fv-plus-renewal{font-size:10px;color:#b5acc2}
.fv-plus-active{display:block;margin:9px 0;color:var(--plus-lime);font-size:12px;line-height:1.5}
.fv-plus-quote-expiry{font-size:11px;text-align:center;margin:12px 0 0;color:var(--plus-gold)}
.fv-plus-message{margin:10px 0 0;min-height:5px;color:#ffc2b6;font-size:12px;line-height:1.6;text-align:center;overflow-wrap:anywhere}
.fv-plus-message.is-success{color:var(--plus-lime)}
.fv-plus-pending{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;border-radius:12px;background:#ddc78212;border:1px solid #aa8f4550;color:#f1dba8;font-size:13px;line-height:1.55;margin-bottom:15px}
.fv-plus-pending-dot{flex:none;margin-top:5px;width:8px;height:8px;background:#f5d988;border-radius:50%;box-shadow:0 0 0 4px #f5d98814;animation:fv-plus-pulse 2s ease-in-out infinite}
.fv-plus-terms{font-size:11px;line-height:1.8;color:#bcb1ca;margin:18px 4px 0}
.fv-plus-cat{position:relative;border:1px solid #665345;border-radius:20px;padding:12px 20px 20px;margin-bottom:22px;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,#b890481a,transparent 65%),#2d253a}
.fv-plus-cat-art{position:relative;display:grid;place-items:center;max-width:220px;aspect-ratio:1;margin:0 auto -7px}
.fv-plus-cat-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px #17102080);transform-origin:50% 75%}
.fv-plus-cat-heart{position:absolute;right:25%;top:27%;opacity:0;color:#f5a6b5;font-size:22px;pointer-events:none}
.fv-plus-cat-copy{position:relative;text-align:center}.fv-plus-cat-copy h3{font-size:24px;line-height:1.2;margin:7px 0 5px;color:var(--plus-cream);overflow-wrap:anywhere}
.fv-plus-cat-copy>p{color:var(--plus-muted);font-size:12px;line-height:1.6;margin:6px 0 13px}
.fv-plus-pet-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.fv-plus-pet-actions button{flex:1;min-width:65px;min-height:42px;padding:8px 9px;border:1px solid #74623e;border-radius:10px;background:#e3c47713;color:var(--plus-gold);font:inherit;font-size:11px;line-height:1.2;font-weight:700;cursor:pointer}
.fv-plus-pet-actions button:hover:not(:disabled){background:#e3c47728}.fv-plus-pet-actions button:disabled{opacity:.5;cursor:default}
.fv-plus-text-button{border:0;background:none;color:var(--plus-muted);padding:9px 5px;min-height:38px;font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.fv-plus-cat--dialog{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center;margin:23px 0 0;padding:18px;background:#30273e}
.fv-plus-cat--dialog .fv-plus-cat-art{width:190px;margin:0}
.fv-plus-cat--dialog .fv-plus-cat-copy{text-align:left}.fv-plus-cat--dialog .fv-plus-pet-actions{justify-content:flex-start}
.fv-plus-cat--dialog .fv-plus-pet-actions button{flex:initial;min-width:75px}
.fv-plus-cat-copy p.fv-plus-pet-message{font-size:11px;color:var(--plus-lime);margin:2px 0 0;min-height:17px}
.fv-plus-cat form{margin:8px 0 5px}.fv-plus-cat form label{display:block;font-size:11px;color:var(--plus-muted);margin:0 0 7px}
.fv-plus-name-row{display:flex;gap:7px;align-items:stretch}
.fv-plus-name-row input{min-width:0;width:100%;border:1px solid #7b688b;border-radius:9px;background:#201a2d;color:var(--plus-cream);font:inherit;font-size:13px;padding:10px}
.fv-plus-name-row .fv-plus-button{width:auto;min-height:42px;font-size:11px;padding:8px 11px;box-shadow:none;white-space:nowrap}
.fv-plus-cat[data-mood="pet"] .fv-plus-cat-art img{animation:fv-plus-nuzzle .8s ease-in-out}
.fv-plus-cat[data-mood="play"] .fv-plus-cat-art img{animation:fv-plus-hop .8s ease-in-out}
.fv-plus-cat[data-mood="treat"] .fv-plus-cat-art img{animation:fv-plus-nuzzle .8s ease-in-out}
.fv-plus-cat[data-mood="pet"] .fv-plus-cat-heart,.fv-plus-cat[data-mood="play"] .fv-plus-cat-heart,.fv-plus-cat[data-mood="treat"] .fv-plus-cat-heart{animation:fv-plus-heart 1.4s ease-out}
.fv-plus-rail button:focus-visible,.fv-plus-dialog button:focus-visible,.fv-plus-dialog input:focus-visible,.fv-plus-cat button:focus-visible{outline:3px solid #cef18d;outline-offset:3px}
.fv-plus-field-note{display:flex;gap:14px;justify-content:space-between;align-items:center;border:1px solid #85714a66;background:#f6d68109;color:#eedbaf;border-radius:12px;padding:12px 15px;margin:0 0 16px;font-size:12px;line-height:1.6}
.fv-plus-field-note button{flex:none;padding:8px 10px;border:1px solid #827147;border-radius:8px;background:#342d38;color:#e9dba9;font:inherit;font-size:11px;cursor:pointer}
.area-tabs .fv-plus-field{border-color:#a48a5666}.area-tabs .fv-plus-field.primary{background:#ead592;color:#312717}
.fv-plus-fish-badge{display:inline-block;border:1px solid #bf9e4f80;border-radius:999px;padding:4px 9px;color:#f4d894;background:#dbb34e0e;font-size:11px;line-height:1.4;margin:5px 0}
@keyframes fv-plus-pulse{50%{opacity:.4}}
@keyframes fv-plus-nuzzle{25%{transform:rotate(-3deg) scale(1.015)}65%{transform:rotate(3deg) scale(1.015)}}
@keyframes fv-plus-hop{30%{transform:translateY(-10px) rotate(-3deg)}60%{transform:translateY(-4px) rotate(3deg)}}
@keyframes fv-plus-heart{15%{opacity:1}to{opacity:0;transform:translateY(-40px) scale(1.3)}}
@media(max-width:640px){.fv-plus-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:23px}.fv-plus-scroll{max-height:calc(100dvh - 38px);border-radius:15px}.fv-plus-hero{padding:33px 23px 19px;grid-template-columns:1.12fr 1fr;min-height:230px;gap:0}.fv-plus-hero h2{font-size:30px}.fv-plus-hero p{font-size:12px}.fv-plus-hero-art{min-height:180px;margin:10px -12px 0 -17px}.fv-plus-hero-art img{height:205px}.fv-plus-orbit{width:150px;height:150px}.fv-plus-hero-price{font-size:22px;margin-top:12px}.fv-plus-hero-price small{font-size:11px}.fv-plus-kicker{font-size:9px;letter-spacing:.09em}.fv-plus-dialog-body{padding:18px 18px 23px}.fv-plus-benefits{grid-template-columns:1fr;gap:8px}.fv-plus-benefits article{display:flex;gap:14px;align-items:center;padding:13px}.fv-plus-benefit-number{flex:none;margin:0;width:42px;height:42px}.fv-plus-benefits h3{font-size:14px;margin-bottom:4px}.fv-plus-benefits p{font-size:11px;line-height:1.5}.fv-plus-purchase{padding:17px 15px 12px;margin-top:16px}.fv-plus-price{font-size:11px;gap:8px}.fv-plus-price strong{font-size:23px}.fv-plus-price small{font-size:10px}.fv-plus-network{flex-direction:column;gap:3px;margin:11px 0 15px}.fv-plus-network span{text-align:left}.fv-plus-cat--dialog{grid-template-columns:1fr;gap:0;padding:13px 17px 18px}.fv-plus-cat--dialog .fv-plus-cat-art{width:180px;margin:0 auto -7px}.fv-plus-cat--dialog .fv-plus-cat-copy{text-align:center}.fv-plus-cat--dialog .fv-plus-pet-actions{justify-content:center}.fv-plus-cat--dialog .fv-plus-pet-actions button{flex:1}.fv-plus-field-note{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:380px){.fv-plus-hero{padding:38px 18px 16px;grid-template-columns:1.2fr .8fr}.fv-plus-hero h2{font-size:26px}.fv-plus-hero-art{margin-left:-18px;margin-right:-14px}.fv-plus-hero-art img{height:180px}.fv-plus-orbit{width:118px;height:118px}.fv-plus-dialog-body{padding:15px 13px 20px}.fv-plus-rail.is-docked{right:12px;width:202px}.fv-plus-price{align-items:flex-start;flex-direction:column;gap:5px}}
@media(prefers-reduced-motion:reduce){.fv-plus-rail *,.fv-plus-dialog *,.fv-plus-cat *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.fv-plus-button:hover:not(:disabled){transform:none}}

.fv-plus-recovery{margin:17px 0 4px;color:#c9c0d9;font-size:11px;line-height:1.65}.fv-plus-recovery summary{cursor:pointer;color:#efdaa6;min-height:34px;padding:5px 0}.fv-plus-recovery p{margin:8px 0 11px}.fv-plus-recovery label{display:block;margin-bottom:6px}.fv-plus-recovery input{display:block;width:100%;min-height:42px;border:1px solid #796787;border-radius:9px;background:#282035;padding:10px;color:#fff8e9;font:inherit;font-size:12px;margin-bottom:10px}.fv-plus-recovery .fv-plus-button{font-size:12px;min-height:43px}.fv-plus-recovery summary:focus-visible{outline:2px solid #cef18d;outline-offset:3px}

@media(max-width:480px){.fv-plus-hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;height:auto;padding:38px 24px 16px;overflow:hidden}.fv-plus-hero-copy{align-self:stretch;padding:0;max-width:none}.fv-plus-hero h2{font-size:31px;line-height:1.1;max-width:100%;margin:11px 0 10px;overflow-wrap:normal}.fv-plus-hero p{max-width:none;font-size:12px}.fv-plus-hero-price{display:block;margin-top:12px;font-size:24px}.fv-plus-hero-art{min-height:0;height:175px;width:100%;margin:0 auto -8px;align-self:center}.fv-plus-hero-art img{height:190px;width:220px;max-width:100%}.fv-plus-orbit{width:145px;height:145px}.fv-plus-close{top:14px;right:22px;width:36px;height:36px}}
@media(max-width:350px){.fv-plus-hero{padding:39px 20px 13px}.fv-plus-hero h2{font-size:28px}.fv-plus-hero-art{height:160px}.fv-plus-hero-art img{height:175px}.fv-plus-hero-price{font-size:23px}}

.fv-plus-references{margin:12px 0;padding:11px;border-radius:9px;background:#171322;border:1px solid #534363}.fv-plus-references dt{color:#b9adc8;font-size:10px;margin-bottom:3px}.fv-plus-references dd{margin:0 0 9px;color:#e4daee;font:10px/1.6 monospace;overflow-wrap:anywhere}.fv-plus-references dd:last-child{margin-bottom:0}.fv-plus-support{display:inline-block;color:#d5eea4;text-underline-offset:3px;margin:2px 0 14px;min-height:30px}

.fv-plus-dialog[open]{display:block}.fv-plus-fish-badge[hidden]{display:none}

/* The companion lives in the 3D worlds; this panel is its accessible control menu. */
.fv-plus-cat{padding:20px}.fv-plus-cat--dialog{display:block;padding:20px}.fv-plus-cat-copy,.fv-plus-cat--dialog .fv-plus-cat-copy{text-align:left}.fv-plus-cat-copy h3{margin:8px 0}.fv-plus-cat-copy>p{max-width:48ch}.fv-plus-pet-actions{display:grid;grid-template-columns:1fr;gap:7px}.fv-plus-pet-actions button,.fv-plus-cat--dialog .fv-plus-pet-actions button{min-height:42px;text-align:left;padding:11px 13px;font-size:12px;white-space:normal}.fv-cat-find{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid #8f9f65;border-radius:10px;background:#d4ef9b;color:#27311d;padding:11px 13px;margin:15px 0 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.fv-cat-find:hover{background:#e1f7b7}
.fv-cat-menu{position:fixed;z-index:150;box-sizing:border-box;padding:21px 18px 18px;border:1px solid #a68b56;border-radius:18px;background:#2c2438;color:#fff8e9;box-shadow:0 16px 45px #09061288;font-family:inherit}.fv-cat-menu[hidden]{display:none}.fv-cat-menu h3{margin:9px 35px 17px 0;font-size:23px;overflow-wrap:anywhere}.fv-cat-menu-close{position:absolute;right:11px;top:10px;padding:0;display:grid;place-items:center;width:34px;height:34px;border:1px solid #74627d7a;border-radius:50%;background:#241d33;color:#fff8e9;cursor:pointer}.fv-cat-menu-close svg{display:block}.fv-cat-menu .fv-plus-kicker{font-size:9px;max-width:calc(100% - 30px)}.fv-cat-menu .fv-plus-pet-actions button{color:#f4d894;background:#e3c47713;border:1px solid #74623e;cursor:pointer}.fv-cat-menu .fv-plus-pet-actions button:hover:not(:disabled){background:#e3c47728}.fv-cat-menu button:focus-visible,.fv-cat-world-button:focus-visible,.fv-cat-find:focus-visible{outline:3px solid #cef18d;outline-offset:3px}
.fv-cat-world-button{position:absolute;z-index:8;transform:translate(-50%,0);display:flex;align-items:flex-start;justify-content:center;min-width:44px;min-height:44px;max-width:120px;padding:2px 0 0;border:0;border-radius:12px;background:transparent;color:#fff4d2;font:inherit;font-size:10px;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:none;white-space:nowrap}.fv-cat-world-button span{display:block;box-sizing:border-box;max-width:120px;min-width:34px;padding:4px 8px;border:1px solid #f5d59099;border-radius:999px;background:#302531dc;box-shadow:0 2px 5px #15101b33;overflow:hidden;text-overflow:ellipsis}.fv-cat-world-button[hidden]{display:none}.fv-cat-world-button:hover{background:transparent}.fv-cat-world-button:hover span{background:#55422ef2;border-color:#ffe2a6}
@media(min-width:641px){.fv-plus-cat--dialog .fv-plus-pet-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.fv-plus-cat--dialog .fv-plus-pet-actions button{text-align:center}}

/* A remembered, compact edge tab leaves the mobile farm visible. */
.fv-plus-rail-card{position:relative}.fv-plus-rail-compact,.fv-plus-rail-collapse{display:none}
@media(max-width:700px){
 .fv-plus-rail.is-docked{right:10px;width:244px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:calc(100vw - 20px)}
 .fv-plus-rail.is-docked .fv-plus-rail-button{min-height:72px;padding-right:43px}
 .fv-plus-rail:not(.is-mobile-compact) .fv-plus-rail-collapse{display:grid;place-items:center;position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:#f3d38b;cursor:pointer}
 .fv-plus-rail-collapse:hover{background:#f3d38b13}.fv-plus-rail-collapse svg,.fv-plus-rail-compact svg{display:block;pointer-events:none}
 .fv-plus-rail.is-mobile-compact{width:80px}
 .fv-plus-rail.is-mobile-compact .fv-plus-rail-card{display:none}
 .fv-plus-rail.is-mobile-compact .fv-plus-rail-compact{display:flex;align-items:center;justify-content:center;gap:7px;width:80px;min-height:44px;padding:9px 10px;border:1px solid #ad925e;border-radius:14px;background:linear-gradient(135deg,#3d3048,#2b2337);box-shadow:0 4px 16px #100a2340;color:#f3d38b;font:inherit;font-size:14px;line-height:1.2;font-weight:800;cursor:pointer}
 .fv-plus-rail-compact:hover{border-color:#f3d38b;background:#44344d}
 body.fv-plus-has-dock.fv-plus-dock-compact{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
}

/* The purchase reward is a separate lifetime task, not a recurring Plus benefit. */
.fv-plus-task-reward{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:13px;align-items:center;margin-top:18px;padding:17px 18px;border:1px solid #86734d88;border-radius:15px;background:#e7c97509;text-align:left}
.fv-plus-task-reward>.resource-icon{width:34px;height:34px;margin:0;align-self:start}
.fv-plus-task-reward h3{margin:0 0 5px;color:var(--plus-gold);font-size:16px;line-height:1.4}
.fv-plus-task-reward p{margin:0;color:#d7ccdf;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.fv-plus-task-reward p+p{margin-top:5px;color:var(--plus-muted);font-size:11px}
.fv-plus-task-open{display:flex;align-items:center;justify-content:center;gap:10px;max-width:160px;min-height:44px;padding:10px 13px;border:1px solid #8f815d;border-radius:10px;background:#f3d38b0c;color:var(--plus-gold);font:inherit;font-size:12px;font-weight:700;line-height:1.4;cursor:pointer;white-space:normal}
.fv-plus-task-open:hover{background:#f3d38b1c}
@media(max-width:640px){.fv-plus-task-reward{grid-template-columns:30px minmax(0,1fr);gap:10px;margin-top:14px;padding:14px}.fv-plus-task-reward>.resource-icon{width:30px;height:30px}.fv-plus-task-open{grid-column:2;justify-self:start;max-width:100%;margin-top:2px}.fv-plus-task-reward h3{font-size:15px}}

/* Plus and VIP share one storefront, with a distinct farm scene for VIP. */
.fv-plus-dialog{max-width:840px}
.fv-premium-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 66px 14px 22px;background:#241e30;border-bottom:1px solid #64517066}
.fv-premium-plan{display:grid;grid-template-columns:1fr auto;gap:5px 8px;text-align:left;padding:13px 15px;min-width:0;border:1px solid #594862;border-radius:13px;background:#2e263c;color:#c9c0d9;font:inherit;cursor:pointer}
.fv-premium-plan-name{display:flex;justify-content:space-between;align-items:baseline;gap:10px;grid-column:1/-1;font-size:19px;font-weight:800;color:#f7ecdc;line-height:1.25}
.fv-premium-plan-name strong{font-size:17px;font-weight:700;white-space:nowrap}
.fv-premium-plan>span:not(.fv-premium-plan-name){font-size:11px;line-height:1.5}
.fv-premium-plan>small{font-size:10px;line-height:1.6;white-space:nowrap;color:#b9aeca}
.fv-premium-plan.is-selected{border-color:#d8bb79;background:linear-gradient(130deg,#4b3e3f,#382d41);box-shadow:inset 0 0 0 1px #e7ce8322}
.fv-premium-plan.is-selected .fv-premium-plan-name{color:#f8dda0}
.fv-premium-plan:hover:not(:disabled){border-color:#e2c68a;background-color:#3b3049}
.fv-premium-plan:disabled{cursor:default;opacity:.65}.fv-premium-plan.is-selected:disabled{opacity:1}
.fv-plus-hero{padding-top:25px;min-height:290px}
.fv-vip-hero{grid-template-columns:1.08fr 1fr;gap:24px;background:radial-gradient(ellipse at 80% 45%,#71844024,transparent 62%),linear-gradient(140deg,#3b3142,#282335)}
.fv-vip-hero h2{font-size:clamp(32px,4.2vw,42px);max-width:10em}
.fv-vip-hero-art{align-self:center;min-height:0;height:248px;border:1px solid #b39d616e;border-radius:22px;overflow:hidden;box-shadow:0 13px 32px #0d0d1b55,0 0 0 6px #e0cb8220;background:#365026}
.fv-vip-hero-art img{height:100%;width:100%;max-width:none;object-fit:cover;object-position:center;filter:none}
.fv-vip-crest{position:absolute;z-index:2;bottom:14px;left:14px;display:grid;place-items:center;min-width:65px;min-height:35px;padding:5px 12px;border:1px solid #d6bd74;border-radius:10px;background:#302435e8;color:#fae6af;font-size:18px;letter-spacing:.12em;font-weight:850;box-shadow:0 4px 12px #17250e55}
.fv-plus-dialog[data-plan="vip-30d"] .fv-plus-benefit-number{width:53px;font-size:21px}
.fv-plus-dialog[data-plan="vip-30d"] .fv-plus-benefits article:last-child .fv-plus-benefit-number{font-size:16px}
.fv-vip-included{display:flex;align-items:center;gap:14px;margin-top:15px;border:1px solid #7e876446;border-radius:15px;padding:16px 18px;background:linear-gradient(100deg,#aec5810c,#81966d05)}
.fv-vip-plus-mark{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid #bfd88966;border-radius:11px;background:#c7eaa310;color:#d6eda9;font-size:30px;line-height:1}
.fv-vip-included h3,.fv-vip-how h3,.fv-vip-controls h3{margin:0 0 5px;color:#f8e9ca;font-size:15px;line-height:1.4}
.fv-vip-included p,.fv-vip-how p,.fv-vip-controls>p{margin:0;color:#c9c0d9;font-size:12px;line-height:1.65}
.fv-vip-how{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;padding:22px 3px 0}
.fv-vip-how article{display:grid;grid-template-columns:27px minmax(0,1fr);gap:10px;align-items:start}
.fv-vip-how .resource-icon{width:27px;height:27px;margin:1px 0 0}
.fv-vip-how h3{font-size:14px}.fv-vip-how p{font-size:11px}
.fv-vip-how .fv-vip-supplies{grid-column:1/-1;margin:0;border-top:1px solid #64517066;padding:14px 0 0;color:#c9c0d9;line-height:1.75}
.fv-vip-controls{padding:19px 20px 14px;margin-top:20px;border:1px solid #87966b66;border-radius:16px;background:#22252a}
.fv-vip-controls h3{color:#d9e8b9;font-size:16px}
.fv-vip-switches{display:grid;gap:2px;margin-top:10px}
.fv-vip-switch{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;min-height:49px;padding:10px 0;border:0;border-bottom:1px solid #80857022;border-radius:0;background:transparent;color:#e8e4db;font:inherit;font-size:12px;line-height:1.5;text-align:left;cursor:pointer}
.fv-vip-switch:last-child{border-bottom:0}
.fv-vip-switch-state{display:flex;align-items:center;gap:9px;flex:none;color:#b8b5b7;font-size:11px}
.fv-vip-switch-state i{position:relative;display:block;width:37px;height:22px;border:1px solid #807287;border-radius:20px;background:#443c4a}
.fv-vip-switch-state i:after{content:'';position:absolute;width:14px;height:14px;top:3px;left:3px;border-radius:50%;background:#c0b5c8;transition:transform .15s ease}
.fv-vip-switch[aria-checked="true"] .fv-vip-switch-state{color:#d7e8ac}
.fv-vip-switch[aria-checked="true"] i{background:#b7d989;border-color:#cce5a5}
.fv-vip-switch[aria-checked="true"] i:after{background:#34442b;transform:translateX(15px)}
.fv-vip-switch:hover:not(:disabled){color:#e4f4c1}.fv-vip-switch:disabled{opacity:.55;cursor:default}
.fv-vip-controls .fv-vip-controls-note{padding-top:9px;color:#d2c090;font-size:11px}
.fv-vip-controls .fv-vip-controls-message{margin:7px 0 0;color:#d7e8ac;font-size:11px;min-height:0}.fv-vip-controls-message:empty{display:none}.fv-vip-controls .fv-vip-controls-message.is-error{color:#ffc2b6}
.fv-plus-rail-name b{display:block;margin:3px 0 0;font-size:18px}
.fv-plus-rail.is-docked .fv-plus-rail-name b{display:inline;margin-left:4px;font-size:14px}
.fv-plus-rail.is-docked{width:240px}.fv-plus-rail.is-docked .fv-plus-rail-price b{font-size:12px}
@media(max-width:700px){.fv-plus-rail.is-mobile-compact{width:119px}.fv-plus-rail.is-mobile-compact .fv-plus-rail-compact{width:119px;font-size:13px}}
@media(max-width:640px){
 .fv-premium-plans{padding:12px 49px 12px 12px;gap:7px}.fv-premium-plan{padding:11px 10px;grid-template-columns:1fr;gap:4px}.fv-premium-plan-name{font-size:17px;gap:5px}.fv-premium-plan-name strong{font-size:15px}.fv-premium-plan>small{grid-column:1/-1;font-size:9px}.fv-premium-plan>span:not(.fv-premium-plan-name){font-size:10px}
 .fv-plus-close{right:16px;top:21px;width:33px;height:33px}
 .fv-vip-hero{gap:18px;padding:25px 23px 22px;grid-template-columns:1.1fr 1fr}.fv-vip-hero h2{font-size:30px}
 .fv-vip-hero-art{height:200px;margin:0;border-radius:17px;box-shadow:0 9px 22px #0d0d1b55,0 0 0 4px #e0cb8216}
 .fv-vip-included{padding:14px;gap:11px}.fv-vip-included h3{font-size:14px}.fv-vip-included p{font-size:11px}
 .fv-vip-how{padding-top:18px;gap:15px;grid-template-columns:1fr}.fv-vip-how article{grid-template-columns:27px 1fr}
 .fv-vip-controls{padding:16px 15px 12px}.fv-vip-controls h3{font-size:15px}.fv-vip-controls>p{font-size:11px}
}
@media(max-width:480px){
 .fv-premium-plan-name{flex-wrap:wrap;gap:2px 7px;font-size:16px}.fv-premium-plan-name strong{font-size:15px}.fv-premium-plan>span:not(.fv-premium-plan-name){font-size:10px;line-height:1.4}
 .fv-plus-hero{padding-top:25px}.fv-vip-hero{display:flex;gap:20px;padding:24px 22px 23px}.fv-vip-hero h2{font-size:33px;max-width:11em}
 .fv-vip-hero-art{height:178px;width:100%;margin:0;align-self:stretch}.fv-vip-hero-art img{height:100%;width:100%;max-width:none;object-position:center 61%}.fv-vip-crest{bottom:11px;left:11px;min-height:31px;font-size:16px}
 .fv-vip-switch{font-size:11px;gap:10px}.fv-vip-switch-state{gap:6px;font-size:10px}
}
@media(max-width:350px){.fv-premium-plans{padding-right:45px}.fv-premium-plan{padding:10px 8px}.fv-premium-plan-name{font-size:15px}.fv-premium-plan-name strong{font-size:13px}.fv-vip-hero{padding:22px 18px}.fv-vip-hero h2{font-size:29px}}
.fv-plus-overlap{padding:12px 13px;margin:12px 0 15px;border:1px solid #a69b6655;border-radius:10px;background:#d4c27e0c;color:#e2d5b8;font-size:11px;line-height:1.7;text-align:left}

/* Keep the complete VIP illustration and the plan names intact at every rail width. */
.fv-vip-hero-art{height:auto;aspect-ratio:4/3;background:#302638}
.fv-vip-hero-art img{display:block;height:100%;width:100%;object-fit:contain;object-position:center}
.fv-plus-rail-name{display:block}
.fv-plus-rail-name b{display:block;width:max-content;max-width:100%;white-space:nowrap;margin:3px auto 0}
.fv-plus-rail.is-docked .fv-plus-rail-name b{display:block;width:max-content;max-width:100%;white-space:nowrap;margin:3px 0 0}

/* Keep the companion and copy in separate layout cells on small screens. */
@media(max-width:700px){.fv-plus-rail.is-docked .fv-plus-rail-button{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;padding:10px 43px 10px 10px;align-items:center}.fv-plus-rail.is-docked .fv-plus-rail-art{position:relative;inset:auto;transform:none;width:54px;height:64px;margin:0}}


/* dist/pvp-entry.css */
/* Local integration preview: shared navigation and a companion card for PvP. */
.tabs > .pvp-nav {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 9px 10px; border: 1px solid #aeda9233; border-radius: 9px;
  background: linear-gradient(120deg, #67a07916, #be575216); color: #e6e9dc;
  font: inherit; font-size: 13px; font-weight: 650; line-height: 1.3;
  text-decoration: none; white-space: nowrap; flex-shrink: 0;
}
.tabs > .pvp-nav:hover { background: #4a3e515c; border-color: #c8e89b66; }
.tabs > .pvp-nav:focus-visible { outline: 2px solid #d3eda4; outline-offset: -4px; }
.pvp-nav-art { display: flex; align-items: center; flex: none; width: 37px; height: 28px; }
.pvp-nav-art img { width: 28px; height: 28px; object-fit: contain; }
.pvp-nav-art img + img { margin-left: -18px; margin-top: 7px; width: 25px; height: 25px; }
.pvp-nav-art img:first-child { z-index: 1; }
.pvp-rail { position: fixed; z-index: 24; box-sizing: border-box; }
.pvp-rail[hidden] { display: none; }
.pvp-rail * { box-sizing: border-box; }
.pvp-rail-link {
  position: relative; display: flex; flex-direction: column; align-items: center;
  width: 100%; padding: 20px 13px 13px; border: 1px solid #82b58f65; border-radius: 20px;
  background: radial-gradient(ellipse at 15% 5%, #537b5945, transparent 65%), radial-gradient(ellipse at 100% 36%, #b24d4425, transparent 65%), linear-gradient(145deg, #302a3b, #211d2d);
  color: #f4f0e8; text-decoration: none; font: inherit; text-align: center;
  box-shadow: 0 9px 28px #100a2352, inset 0 1px 0 #fff1;
  transition: border-color .18s, box-shadow .18s;
}
.pvp-rail-link:hover { border-color: #badb8c; box-shadow: 0 12px 30px #100a2366, 0 0 0 1px #d5ef9f18; }
.pvp-rail-link:focus-visible { outline: 2px solid #d1ed9c; outline-offset: 4px; }
.pvp-rail-art { position: relative; display: block; width: 155px; max-width: 100%; height: 101px; pointer-events: none; }
.pvp-rail-art i { position: absolute; inset: 13px 10px 0; border-radius: 50%; background: radial-gradient(ellipse, #b9d17719, transparent 70%); filter: blur(7px); }
.pvp-rail-art img { position: absolute; width: 98px; height: 98px; object-fit: contain; filter: drop-shadow(0 9px 8px #0c0b123d); }
.pvp-coin-red { right: -3px; top: 11px; }
.pvp-coin-green { left: -3px; top: -3px; }
.pvp-rail-copy { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 100%; min-width: 0; }
.pvp-rail-eyebrow { font-size: 9px; font-weight: 800; letter-spacing: .18em; color: #c5dda5; margin-top: 5px; }
.pvp-rail h2 { margin: 0; color: #f5f1e8; font: inherit; font-size: 20px; font-weight: 800; line-height: 1.18; letter-spacing: -.025em; overflow-wrap: anywhere; }
.pvp-rail-subtitle { color: #bbb5c9; font-size: 11px; line-height: 1.45; }
.pvp-rail-cta { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin-top: 6px; padding: 10px 9px; border-radius: 10px; background: #d0eda5; color: #25331d; font-size: 12px; line-height: 1.2; font-weight: 800; }
.pvp-rail-cta svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.pvp-rail-compact-label { display: none; }
.pvp-rail.is-docked .pvp-rail-link { flex-direction: row; gap: 6px; min-height: 91px; padding: 12px 12px 12px 10px; border-radius: 16px; text-align: left; }
.pvp-rail.is-docked .pvp-rail-art { width: 54px; height: 60px; flex: none; }
.pvp-rail.is-docked .pvp-rail-art img { width: 47px; height: 47px; }
.pvp-rail.is-docked .pvp-coin-green { left: -8px; top: 0; }
.pvp-rail.is-docked .pvp-coin-red { right: -3px; top: 17px; }
.pvp-rail.is-docked .pvp-rail-copy { align-items: flex-start; gap: 4px; }
.pvp-rail.is-docked .pvp-rail-eyebrow { display: none; }
.pvp-rail.is-docked h2 { font-size: 14px; line-height: 1.2; }
.pvp-rail.is-docked .pvp-rail-subtitle { font-size: 9px; line-height: 1.4; }
.pvp-rail.is-docked .pvp-rail-cta { justify-content: flex-start; width: auto; background: none; color: #d0eda5; padding: 0; margin: 1px 0 0; font-size: 11px; gap: 5px; }
.pvp-rail.is-compact .pvp-rail-link { flex-direction: row; justify-content: center; gap: 5px; min-height: 44px; padding: 6px 9px 6px 4px; border-radius: 14px; }
.pvp-rail.is-compact .pvp-rail-art { width: 29px; height: 29px; flex: none; }
.pvp-rail.is-compact .pvp-rail-art img { width: 29px; height: 29px; }
.pvp-rail.is-compact .pvp-coin-green { top: 0; left: 0; }
.pvp-rail.is-compact .pvp-coin-red, .pvp-rail.is-compact .pvp-rail-art i, .pvp-rail.is-compact .pvp-rail-copy { display: none; }
.pvp-rail.is-compact .pvp-rail-compact-label { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 800; color: #d2e9b2; }
.pvp-rail-compact-label svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1080px) { .tabs > .pvp-nav { padding: 9px 10px; font-size: 12px; gap: 5px; } }
@media (max-width: 700px) { .tabs > .pvp-nav { padding: 10px 11px; font-size: 12px; } }
@media (prefers-reduced-motion: reduce) { .pvp-rail-link { transition: none; } }
@media (forced-colors: active) {
  .tabs > .pvp-nav, .pvp-rail-link { border-color: LinkText; }
  .pvp-rail-cta { border: 1px solid ButtonText; }
  .pvp-rail-link:focus-visible, .tabs > .pvp-nav:focus-visible { outline-color: Highlight; }
}


/* This preview must remain visibly distinct from the live farm. */
.topbar > .demo-badge {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  margin: 0; padding: 7px 9px; border: 1px solid #b2cf9255; border-radius: 7px;
  background: #b8d8900b; color: #c8e3a5; font-size: 10px; line-height: 1.4;
  letter-spacing: .015em; white-space: nowrap;
}
@media (max-width: 700px) {
  .topbar > .demo-badge { order: 2; flex-basis: 100%; min-height: 29px; }
}

/* Matching companion cards in the desktop bottom dock. */
@media (min-width: 701px) {
  .fv-plus-rail.is-docked { width: 238px; }
  .pvp-rail.is-docked .pvp-rail-link,
  .fv-plus-rail.is-docked .fv-plus-rail-button {
    display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 10px;
    align-items: center; min-height: 96px; padding: 10px 12px;
    border-radius: 16px; text-align: left;
  }
  .pvp-rail.is-docked .pvp-rail-art,
  .fv-plus-rail.is-docked .fv-plus-rail-art {
    position: relative; inset: auto; transform: none; width: 60px; height: 70px;
  }
  .pvp-rail.is-docked .pvp-coin-green { left: -3px; top: 3px; }
  .pvp-rail.is-docked .pvp-coin-red { right: -1px; top: 23px; }
  .pvp-rail.is-docked .pvp-rail-copy,
  .fv-plus-rail.is-docked .fv-plus-rail-copy {
    display: grid; grid-template-rows: minmax(32px, auto) minmax(14px, auto) 16px;
    align-content: center; align-items: end; gap: 3px; width: 100%; min-width: 0;
  }
  .pvp-rail.is-docked h2 { font-size: 13px; line-height: 16px; }
  .fv-plus-rail.is-docked .fv-plus-rail-name { font-size: 11px; line-height: 16px; }
  .fv-plus-rail.is-docked .fv-plus-rail-name b { font-size: 17px; line-height: 16px; }
  .pvp-rail.is-docked .pvp-rail-subtitle,
  .fv-plus-rail.is-docked .fv-plus-rail-price { font-size: 10px; line-height: 14px; }
  .pvp-rail.is-docked .pvp-rail-cta,
  .fv-plus-rail.is-docked .fv-plus-rail-cta {
    padding: 0; margin: 0; font-size: 11px; line-height: 16px; min-height: 16px; gap: 5px;
  }
  body.fv-plus-has-dock { padding-bottom: calc(126px + env(safe-area-inset-bottom)); }
}


/* dist/pvp/chat.css */
/* Farm Valley shared local chat: scoped independently from either site's layout. */
.fv-chat{--chat-lime:#c5ee91;--chat-ink:#f6f3fb;--chat-muted:#b0a7c0;--chat-border:#b9a8d321;position:fixed;left:max(22px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));z-index:90;width:370px;max-width:calc(100vw - 24px);font:13px/1.5 Manrope,"Segoe UI","Nirmala UI","Microsoft YaHei UI",sans-serif;color:var(--chat-ink);text-align:left;isolation:isolate}
.fv-chat *{box-sizing:border-box}.fv-chat [hidden]{display:none!important}.fv-chat-button{font:inherit;cursor:pointer}.fv-chat .fv-chat-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border:1px solid var(--chat-border);border-radius:11px;background:#ffffff06;color:var(--chat-ink);padding:8px 11px;box-shadow:none;letter-spacing:0;text-transform:none;transition:background .16s,border-color .16s}.fv-chat .fv-chat-button:hover{background:#ffffff0e;border-color:#c5ee9160}.fv-chat .fv-chat-button:focus-visible,.fv-chat textarea:focus-visible,.fv-chat-messages:focus-visible{outline:2px solid var(--chat-lime);outline-offset:3px}.fv-chat .fv-chat-button:disabled{opacity:.5;cursor:default}.fv-chat-icon{display:inline-flex;flex:none;width:20px;height:20px}.fv-chat-icon svg{width:100%;height:100%;display:block}.fv-chat .fv-chat-launcher{margin-right:auto;display:flex;width:max-content;min-height:48px;border-radius:17px;padding:11px 18px;background:linear-gradient(140deg,#354833,#24302b);border-color:#c5ee913b;box-shadow:0 12px 32px #0005;font-weight:800}.fv-chat-launcher>.fv-chat-icon{color:var(--chat-lime)}.fv-chat.is-open .fv-chat-launcher{display:none}.fv-chat-unread{min-width:20px;height:20px;padding:0 5px;border-radius:7px;background:var(--chat-lime);color:#24321d;text-align:center;font-size:11px}.fv-chat-panel{display:flex;flex-direction:column;height:min(610px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);overflow:hidden;border:1px solid #bca9d838;border-radius:23px;background:linear-gradient(150deg,#2a2434,#1b1723 70%);box-shadow:0 24px 90px #05020ec9,0 2px 12px #0003}.fv-chat-head{display:flex;align-items:center;gap:11px;padding:19px 17px 15px;border-bottom:1px solid var(--chat-border);flex-shrink:0}.fv-chat-mark{display:grid;place-items:center;width:39px;height:43px;background:linear-gradient(145deg,#43523e,#2a372d);border:1px solid #c5ee9136;border-radius:13px;color:var(--chat-lime)}.fv-chat-heading{min-width:0;flex:1}.fv-chat-heading h2{font:800 15px/1.4 Manrope,"Segoe UI",sans-serif;margin:0;color:var(--chat-ink);letter-spacing:0}.fv-chat-heading p{font-size:10px;color:var(--chat-muted);margin:3px 0 0}.fv-chat .fv-chat-minimize{padding:6px;width:34px;height:34px;min-height:34px;border-radius:10px}.fv-chat-demo{color:#a9bd96;background:#bed99708;padding:8px 18px;font-size:10px;line-height:1.45;border-bottom:1px solid var(--chat-border);flex-shrink:0}.fv-chat-messages{flex:1;min-height:80px;overflow:auto;overscroll-behavior:contain;padding:16px 13px;scrollbar-width:thin;scrollbar-color:#665b76 transparent;scrollbar-gutter:stable}.fv-chat-messages::-webkit-scrollbar{width:6px}.fv-chat-messages::-webkit-scrollbar-thumb{background:#665b76;border-radius:9px}.fv-chat-message{display:flex;gap:9px;margin:0 0 19px;min-width:0}.fv-chat-avatar{width:30px;height:30px;border-radius:10px;flex:none;display:grid;place-items:center;font-weight:800;font-size:12px;color:hsl(var(--chat-hue) 65% 79%);background:hsl(var(--chat-hue) 20% 23%);border:1px solid hsl(var(--chat-hue) 24% 33%)}.fv-chat-content{flex:1;min-width:0}.fv-chat-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:25px}.fv-chat-name{font-size:11px;font-weight:800;color:#e0d8ee;max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-chat-time{font-size:9px;color:#8f859f;margin-left:auto}.fv-chat-body{margin:4px 0 0;font-size:12px;color:#e1daeb;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.fv-chat-body.is-deleted{font-size:11px;color:#8f859f;font-style:italic}.fv-chat-message.is-admin .fv-chat-name{color:#e5cc8a}.fv-chat-message.is-admin .fv-chat-avatar{color:#ead08b;background:#53432b;border-color:#95733e69}.fv-chat-admin{display:inline-flex;gap:3px;align-items:center;font-size:8px;font-weight:800;letter-spacing:.03em;color:#e1c57d;border:1px solid #b68c3e44;border-radius:5px;padding:2px 4px;background:#c3a65e0a}.fv-chat-admin .fv-chat-icon{width:10px;height:10px}.fv-chat .fv-chat-more{width:24px;height:24px;min-height:24px;padding:3px;border-color:transparent;background:transparent}.fv-chat-more .fv-chat-icon{width:16px;height:16px}.fv-chat-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;padding:8px;background:#110c1880;border:1px solid var(--chat-border);border-radius:11px}.fv-chat .fv-chat-actions button{font-size:9px;padding:5px 7px;min-height:27px}.fv-chat-footer{padding:13px 15px 14px;border-top:1px solid var(--chat-border);background:#17131c55;flex-shrink:0}.fv-chat-form{display:flex;gap:7px;align-items:stretch;padding:9px;border:1px solid #c0afdb30;background:#100d166b;border-radius:14px}.fv-chat-form:focus-within{border-color:#c5ee9170;box-shadow:0 0 0 2px #c5ee9109}.fv-chat .fv-chat-input{font:12px/1.6 Manrope,"Segoe UI","Nirmala UI","Microsoft YaHei UI",sans-serif;display:block;min-width:0;flex:1;width:100%;height:42px;min-height:42px;max-height:90px;padding:2px 3px;resize:none;border:0;border-radius:0;background:transparent;color:var(--chat-ink);outline:none;box-shadow:none}.fv-chat-input::placeholder{color:#968ba8}.fv-chat .fv-chat-send{align-self:end;min-height:34px;width:34px;height:34px;padding:7px;border-radius:10px;background:var(--chat-lime);border-color:transparent;color:#253017}.fv-chat .fv-chat-send:hover{background:#d7f7b0}.fv-chat-counter{display:block;text-align:right;font-size:9px;color:#91869f;margin-top:5px;line-height:1.2}.fv-chat-status{font-size:10px;color:#958aa6;line-height:1.5;margin:6px 0 0;overflow-wrap:anywhere}.fv-chat-status.is-error{color:#efa4ab}.fv-chat-connect-copy,.fv-chat-restricted{font-size:11px;color:#bbb1ca;margin:0 0 10px}.fv-chat .fv-chat-connect{width:100%;color:#24301b;background:var(--chat-lime);font-weight:800;font-size:12px}.fv-chat-empty{height:100%;min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;color:var(--chat-muted)}.fv-chat-empty>.fv-chat-icon{width:38px;height:38px;color:#9eba83;margin-bottom:15px;opacity:.7}.fv-chat-empty strong{font-size:13px;color:#d7cee2}.fv-chat-empty p{font-size:11px;margin:7px 0 0;max-width:210px}.fv-chat .fv-chat-earlier{display:flex;margin:0 auto 17px;font-size:10px;min-height:28px;padding:5px 8px}@keyframes fvChatIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:480px){.fv-chat{left:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px)}.fv-chat-panel{height:min(580px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);border-radius:20px}.fv-chat-head{padding:15px 13px}.fv-chat-heading h2{font-size:14px}.fv-chat-heading p{font-size:9px}.fv-chat-footer{padding:11px 12px}.fv-chat-name{max-width:118px}.fv-chat-meta{gap:5px}.fv-chat-admin{font-size:7px}.fv-chat .fv-chat-launcher{min-height:44px;padding:10px 15px}.fv-chat-messages{padding:13px 10px}.fv-chat-avatar{width:27px;height:27px}.fv-chat-message{gap:7px}}
@media(prefers-reduced-motion:reduce){.fv-chat-panel{animation:none}.fv-chat .fv-chat-button{transition:none}}

/* Drag only the expanded panel; the collapsed launcher keeps its original anchor. */
.fv-chat-panel{position:fixed;left:max(22px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:370px;max-width:calc(100vw - 24px)}
.fv-chat-head{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;position:relative}
.fv-chat-head::after{content:"";position:absolute;left:50%;top:6px;transform:translateX(-50%);height:3px;width:28px;border-radius:3px;background:#c2b3d330;pointer-events:none}
.fv-chat-head:focus-visible{outline:2px solid var(--chat-lime);outline-offset:-4px;border-radius:21px 21px 0 0}
.fv-chat.is-dragging .fv-chat-head{cursor:grabbing}.fv-chat.is-dragging .fv-chat-panel{box-shadow:0 30px 90px #05020edd,0 0 0 1px #c5ee9133}
.fv-chat-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:480px){.fv-chat-panel{left:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px)}}

@media(max-width:480px){.fv-chat .fv-chat-launcher{width:46px;min-width:46px;height:46px;padding:11px;border-radius:15px;position:relative}.fv-chat-launcher>span:not(.fv-chat-icon){display:none}.fv-chat-launcher .fv-chat-unread{position:absolute;right:-5px;top:-5px;min-width:17px;height:17px;line-height:17px;padding:0 4px;font-size:9px}}

/* Keep the shared composer stacked even on pages with a global footer flex rule. */
.fv-chat .fv-chat-footer{display:block}.fv-chat .fv-chat-input:focus-visible{outline:none}.fv-chat .fv-chat-form:focus-within{outline:1px solid #c5ee9170;outline-offset:0}

/* Transparent anchor never blocks the page; only visible chat surfaces receive input. */
.fv-chat{pointer-events:none}.fv-chat .fv-chat-panel,.fv-chat .fv-chat-launcher{pointer-events:auto}

/* Personal unread count: clear on both the full launcher and the mobile icon. */
.fv-chat .fv-chat-launcher.has-unread{border-color:#eab7798c;box-shadow:0 12px 32px #0005,0 0 0 2px #eab77910}
.fv-chat .fv-chat-unread{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:24px;height:24px;padding:0 6px;border-radius:9px;background:#f3bd7d;color:#352410;font:800 11px/1 Manrope,"Segoe UI",sans-serif;box-shadow:0 2px 8px #0003;letter-spacing:0}
@media(max-width:480px){.fv-chat .fv-chat-launcher .fv-chat-unread{right:-7px;top:-7px;min-width:23px;height:23px;padding:0 5px;border:2px solid #222324;border-radius:10px;font-size:10px}}

/* An opaque launcher must never reveal page text through its hover state. */
.fv-chat .fv-chat-launcher,.fv-chat .fv-chat-launcher:hover,.fv-chat .fv-chat-launcher:focus-visible,.fv-chat .fv-chat-launcher:active{background:linear-gradient(140deg,#354833,#24302b)}
.fv-chat .fv-chat-launcher:hover,.fv-chat .fv-chat-launcher:focus-visible{background:linear-gradient(140deg,#435c3f,#2e4036)}
.fv-chat .fv-chat-launcher:active{background:linear-gradient(140deg,#2e412d,#213029)}

/* A compact picker inserts into the draft; sending remains a separate action. */
.fv-chat .fv-chat-footer{position:relative}
.fv-chat .fv-chat-emoji{width:30px;height:34px;min-height:34px;align-self:end;flex:none;padding:5px;border:0;background:transparent;color:#c2b8ce;border-radius:9px}
.fv-chat .fv-chat-emoji:hover,.fv-chat .fv-chat-emoji[aria-expanded="true"]{background:#3b3348;color:var(--chat-lime)}
.fv-chat .fv-chat-emoji-picker{position:absolute;left:12px;right:12px;bottom:calc(100% + 5px);display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;padding:9px;border:1px solid #776685;border-radius:14px;background:#292333;box-shadow:0 12px 32px #0005;z-index:2}
.fv-chat .fv-chat-emoji-choice{display:flex;align-items:center;justify-content:center;min-width:0;min-height:34px;padding:4px;border:0;border-radius:8px;background:transparent;font:22px/1.2 "Segoe UI Emoji","Apple Color Emoji",sans-serif;cursor:pointer}
.fv-chat .fv-chat-emoji-choice:hover,.fv-chat .fv-chat-emoji-choice:focus-visible{background:#484052;outline:1px solid #c5ee9170}

/* Farm reactions share the game's pixel art; sent content remains ordinary Unicode. */
.fv-chat .fv-chat-emoji-picker{display:block}
.fv-chat-emoji-farm{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid var(--chat-border)}
.fv-chat-emoji-reactions{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}
.fv-chat .fv-chat-emoji-farm .fv-chat-emoji-choice{padding:1px;min-height:32px;background:#ffffff04}
.fv-chat-pixel{display:inline-block;width:24px;height:24px;flex:none;vertical-align:-6px;border-radius:5px;background-image:url('/assets/animal-atlas.png');background-size:200% 200%;background-repeat:no-repeat;image-rendering:pixelated;font-size:0;line-height:0;color:transparent;overflow:hidden}
.fv-chat-pixel-rabbit,.fv-chat-pixel-duck,.fv-chat-pixel-goat,.fv-chat-pixel-alpaca{background-image:url('/assets/animal-atlas-2.png')}
.fv-chat-pixel-chicken,.fv-chat-pixel-rabbit{background-position:0 0}
.fv-chat-pixel-cow,.fv-chat-pixel-duck{background-position:100% 0}
.fv-chat-pixel-sheep,.fv-chat-pixel-goat{background-position:0 100%}
.fv-chat-pixel-pig,.fv-chat-pixel-alpaca{background-position:100% 100%}
.fv-chat-pixel-coin{background-image:var(--fv-resource-icons,none);background-size:400% 400%;background-position:0 33.33333333%;border-radius:0}
.fv-chat-body .fv-chat-pixel{margin:0 1px}
.fv-chat .fv-chat-input{font-family:Manrope,"Segoe UI","Nirmala UI","Microsoft YaHei UI","Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}

/* The separate arcade document has no farm asset loader. */
body>#app~.fv-chat .fv-chat-pixel-coin{background-image:url('/assets/resource-icons-v159.webp')}


/* dist/pvp-tab.css */
/* PvP uses the same farm navigation; its document persists across section changes. */
#pvp-tab[hidden],#screen[hidden]{display:none!important}
#pvp-tab{min-width:0;width:100%;position:relative}
.pvp-frame{display:block;width:100%;border:0;min-height:320px;background:transparent;color-scheme:dark}
.pvp-frame.pvp-frame-modal{position:fixed;inset:0;width:100vw;height:100dvh!important;min-height:0;z-index:2147483000}
body.pvp-active .pvp-rail{display:none!important}
body.pvp-active #view-balance{display:none!important}
.tabs>button.pvp-nav.active{background:#cdef91;color:#24202e;border-color:#cdef91}

body.game-locked .tabs>button[data-view="pvp"]{display:inline-flex!important}

#toast.pvp-error{color:#20341b}

/* Give every farm section the same surface; the active section stays green. */
.app-shell>main>nav.tabs>button{border:1px solid #78678755;border-radius:9px}
.app-shell>main>nav.tabs>button:not(.active){background:linear-gradient(120deg,#6d577426,#31534614);color:#d1c7dc;box-shadow:inset 0 1px 0 #ffffff07}
.app-shell>main>nav.tabs>button:not(.active):hover{background:#3a3349;border-color:#a593ba80}
.app-shell>main>nav.tabs>button.active{background:var(--lime);border-color:#d8ffb0;color:#273921;box-shadow:0 3px 0 #759550}
.app-shell>main>nav.tabs>button:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}

/* Equal section buttons; narrow screens keep the existing horizontal menu. */
.app-shell>main>nav.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(56px,1fr);gap:10px;justify-content:stretch;overflow-x:visible;padding-bottom:4px}
.app-shell>main>nav.tabs>button{width:100%;min-width:0;min-height:56px;height:100%;padding:9px 10px;gap:6px;justify-content:flex-start;white-space:normal;font-size:14px;line-height:1.25;text-align:left}
.app-shell>main>nav.tabs>button>span:not(.nav-icon):not(.pvp-nav-art):not([id$="-count"]){min-width:0;overflow-wrap:anywhere}
.app-shell>main>nav.tabs>button>:is(.nav-icon,.task-nav-icon,.pvp-nav-art){flex-shrink:0}
@media(min-width:850px){.app-shell>main>nav.tabs{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1200px){.app-shell>main>nav.tabs{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:650px){.app-shell>main>nav.tabs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:174px;grid-auto-rows:56px;overflow-x:auto;overscroll-behavior-x:contain;justify-content:start}}

@media(min-width:1200px) and (max-width:1350px){.app-shell>main>nav.tabs>button{font-size:13px;padding-inline:8px}}


/* dist/scene-recovery.css */
/* Neutral scene loading/error UI; gameplay controls retain their own state. */
.fv-scene-recovery{position:absolute;inset:0;z-index:25;display:grid;place-items:center;padding:16px;box-sizing:border-box;pointer-events:none}
.fv-scene-recovery[hidden]{display:none!important}
.fv-scene-recovery-card{max-width:100%;box-sizing:border-box;padding:14px 18px;border:1px solid rgba(237,241,218,.3);border-radius:12px;background:rgba(31,30,46,.94);color:#f3f2e8;text-align:center;pointer-events:auto;font:500 14px/1.5 system-ui,sans-serif;box-shadow:0 3px 16px rgba(0,0,0,.15)}
.fv-scene-recovery-card p{margin:0;overflow-wrap:anywhere;color:inherit;font:inherit}
.fv-scene-recovery-card .button{margin:12px 0 0;min-height:44px;max-width:100%;white-space:normal}
.fv-scene-recovery-card .button[hidden]{display:none!important}
.fv-scene-recovery-card .button:focus-visible{outline:3px solid #cff491;outline-offset:3px}

.fv-scene-recovery.fv-scene-recovery-after{position:relative;inset:auto;z-index:auto;padding:10px 0;min-width:0}


/* Compact resource stacks: one quantity control and one atomic open action. */
.collection-supply-stack .collection-game-card-labels{position:relative;padding-right:35px;box-sizing:border-box}
.collection-supply-stack .collection-stack-count{position:absolute;right:0;top:0;padding:3px 6px;font-size:12px;line-height:1.5;border-radius:6px}
.collection-supply-stack .nft-wallet-art{height:82px;margin:7px 0}
.nft-wallet-panel .collection-supply-stack .nft-wallet-art>.supply-art{width:82px;height:82px}
.collection-supply-stack h4{margin-bottom:0}
.collection-supply-stack .collection-stack-units{margin:4px 0 0;min-height:16px;font-size:10px;line-height:1.5}
.collection-stack-controls{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px;width:100%;margin-top:10px;align-items:stretch}
.collection-stack-controls .collection-stack-quantity{display:block;margin:0;width:44px}
.collection-stack-controls input{width:100%;max-width:none;min-height:44px;padding:5px 2px;text-align:center;font-size:12px}
.collection-stack-controls>.button{min-width:0;min-height:44px;margin:0;padding:6px 5px;justify-content:center;font-size:11px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.collection-stack-detail{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:520px){.collection-game-grid .collection-supply-stack .collection-game-card-labels{flex-direction:row;align-items:start;min-height:53px}.collection-supply-stack .collection-game-card-labels>.nft-wallet-rarity{text-align:left;flex:1}}

/* v182: asset identity is text-labelled, independent of rarity colour. */
.animal-identity{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;padding:5px 9px;border:1px solid #7f91a8;border-radius:6px;background:#303c4d;color:#e4edfa;font-size:11px;font-weight:700;line-height:1.4;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}.animal-identity-nft{border-color:#c7a5f6;background:#483459;color:#f2dfff}.animal-identity-detail{display:block;color:#c7bfd3;font-size:11px;line-height:1.5;margin:5px 0 2px}.animal-card>.animal-identity,.market-card>.animal-identity{margin-top:9px}.collection-game-card>.animal-identity{margin-top:7px}.craft-owned-card .animal-identity{margin:5px 0}.craft-owned-card .animal-identity-detail{margin:0}.craft-modes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.craft-mode{padding:18px;border:1px solid #665576;border-radius:12px;background:#292438}.craft-mode.is-current{border-color:#a9d57e;background:#30382e}.craft-mode h3{margin:0 0 9px;font-size:17px}.craft-mode p{font-size:13px;line-height:1.6;margin:0 0 12px;color:#e1dbe9}.craft-mode .button{max-width:100%;white-space:normal}.craft-animal-card .animal-identity,.craft-confirm-card .animal-identity{font-size:10px;padding:4px 6px}.craft-card-rarity{white-space:normal}.craft-owned-location{display:block}.craft-owned-card.is-unavailable{opacity:1}.craft-owned-card.is-unavailable .craft-owned-art{opacity:.5}@media(max-width:640px){.craft-modes{grid-template-columns:1fr}.craft-mode{padding:15px}.craft-owned-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.craft-owned-card{min-width:0}.craft-owned-reason{overflow-wrap:anywhere}}

/* Keep the sale countdown visible in section navigation without moving its controls each second. */
.app-shell>main>nav.tabs>button.has-pack-countdown{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:6px;row-gap:2px;align-content:center}
.app-shell>main>nav.tabs>button.has-pack-countdown>.nav-icon{grid-row:1 / 3}
.app-shell>main>nav.tabs>button>[data-pack-nav-countdown]{grid-column:2 / 4;white-space:nowrap;font-size:12px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.2px;color:var(--gold)}
.app-shell>main>nav.tabs>button.active>[data-pack-nav-countdown]{color:#344a20}
.app-shell>main>nav.tabs>button>[data-pack-nav-countdown][hidden]{display:none}

/* Coin exchange: scoped standalone layout, v242. */
.fv-coin-exchange{max-width:1120px;margin:26px auto 60px;color:#f6f2e9;font-family:inherit;line-height:1.6}
.fv-coin-exchange *{box-sizing:border-box}
.fv-coin-exchange .fv-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 4px 32px}
.fv-coin-exchange .fv-hero img{width:112px;height:112px;flex:0 0 auto}
.fv-coin-exchange .fv-eyebrow{font-size:11px;letter-spacing:.16em;color:#c9ef91;font-weight:800}
.fv-coin-exchange h1{font-size:clamp(28px,4vw,42px);line-height:1.2;margin:10px 0 12px;color:#f6f2e9}
.fv-coin-exchange h2{font-size:20px;line-height:1.35;margin:0 0 16px;color:#f6f2e9}
.fv-coin-exchange p{margin:12px 0;font-size:14px;line-height:1.65}
.fv-coin-exchange .fv-hero p{font-size:16px;color:#c7bfd7;margin:0}
.fv-coin-exchange .fv-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;align-items:start}
.fv-coin-exchange .fv-stack{display:grid;gap:22px}
.fv-coin-exchange .fv-panel{padding:26px;border:1px solid #4b415f;border-radius:22px;background:linear-gradient(150deg,#302a3d,#272235);box-shadow:0 14px 34px #0e0a171f;min-width:0}
.fv-coin-exchange .fv-title{display:flex;justify-content:space-between;align-items:center;gap:16px}
.fv-coin-exchange .fv-title h2{margin:0}
.fv-coin-exchange .fv-tag{padding:5px 12px;border:1px solid #bce88766;border-radius:999px;background:#bce88712;color:#d0f29f;font-weight:800;font-size:13px;white-space:nowrap}
.fv-coin-exchange .fv-hint{color:#bfb5cf;font-size:12px;line-height:1.65}
.fv-coin-exchange .fv-detail{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;margin:10px 0 18px;border-bottom:1px solid #ffffff13;font-size:13px;color:#c7bfd7}
.fv-coin-exchange .fv-detail strong{color:#edf5dd;font-size:16px}
.fv-coin-exchange .fv-amount{display:block;margin:18px 0 8px}
.fv-coin-exchange .fv-amount>span{display:block;margin-bottom:8px;font-size:12px;color:#c7bfd7}
.fv-coin-exchange .fv-amount>div{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #5d526c;border-radius:13px;background:#17142199}
.fv-coin-exchange .fv-amount input{appearance:none;border:0;background:transparent;box-shadow:none;outline:none;padding:0;color:#f6f2e9;font-family:inherit;font-size:24px;font-weight:700;min-height:32px}
.fv-coin-exchange .fv-amount>div:focus-within{border-color:#c9ef91;box-shadow:0 0 0 3px #c9ef9119}
.fv-coin-exchange .fv-amount strong{font-size:12px;color:#c9ef91;white-space:nowrap}
.fv-coin-exchange .fv-received>div{background:#c9ef910b;border-color:#c9ef9133}
.fv-coin-exchange output{flex:1;color:#d3f4a8;font-size:28px;font-weight:800;overflow-wrap:anywhere;min-width:0}
.fv-coin-exchange button,.fv-coin-exchange a.fv-secondary{appearance:none;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 16px;border:1px solid #675c78;border-radius:12px;background:#ffffff09;color:#eee8f7;font:inherit;font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
.fv-coin-exchange button:hover:not(:disabled),.fv-coin-exchange a.fv-secondary:hover{background:#ffffff13;border-color:#c9ef9188}
.fv-coin-exchange button.fv-primary{background:linear-gradient(130deg,#d7ffa9,#bde77f);border-color:#c9ef91;color:#263315;box-shadow:0 3px 0 #74934c}
.fv-coin-exchange button.fv-primary:hover:not(:disabled){background:#dcffb7;border-color:#e0ffbc}
.fv-coin-exchange button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.fv-coin-exchange .fv-exchange-status{font-size:13px}
@media(max-width:760px){.fv-coin-exchange .fv-columns{grid-template-columns:minmax(0,1fr)}.fv-coin-exchange .fv-panel{padding:20px}.fv-coin-exchange .fv-hero{padding:20px 0;gap:16px}.fv-coin-exchange h2{font-size:18px}}
.fv-coin-exchange .fv-hero img{filter:drop-shadow(0 14px 30px #0005);object-fit:contain}
.fv-coin-exchange .fv-exchange-form{border-color:#b9dc7e88;background:linear-gradient(145deg,#302b42,#252134)}
.fv-coin-exchange .fv-exchange-presets,.fv-coin-exchange .fv-exchange-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.fv-coin-exchange .fv-exchange-presets button{flex:1;min-width:75px}
.fv-coin-exchange .fv-exchange-buttons button{flex:1;min-width:180px}
.fv-coin-exchange .fv-exchange-status{min-height:3em;border-left:3px solid #c9ef91;background:#c9ef910a;padding:12px 14px;margin:18px 0;border-radius:0 10px 10px 0;overflow-wrap:anywhere}
.fv-coin-exchange .fv-exchange-status[data-error=true]{border-color:#f1b6aa}
.fv-coin-exchange .fv-exchange-history{margin-top:24px}
.fv-coin-exchange .fv-exchange-order{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(110px,.5fr);align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #ffffff12}
.fv-coin-exchange .fv-exchange-order small{display:block;color:#b8b0cf;margin-top:5px}
.fv-coin-exchange .fv-exchange-order code{font-size:12px;color:#c9ef91;justify-self:end}
.fv-coin-exchange .fv-amount input{min-width:0;width:100%}
.fv-coin-exchange button:focus-visible,.fv-coin-exchange a:focus-visible{outline:2px solid #c9ef91;outline-offset:3px}
@media(max-width:650px){.fv-coin-exchange .fv-exchange-order{grid-template-columns:1fr auto;gap:8px}.fv-coin-exchange .fv-exchange-order code{grid-column:1/-1;justify-self:start}.fv-coin-exchange .fv-hero img{width:76px;height:76px}.fv-coin-exchange .fv-exchange-buttons button{min-width:140px}}

/* Exchange rate presentation, v244. */
/* Rate badge only. Keep the translated explanation immediately below it. */
.fv-coin-exchange .fv-exchange-form .fv-title{flex-wrap:wrap;row-gap:14px}
.fv-coin-exchange .fv-exchange-form .fv-title h2{flex:1 1 180px}
.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex:0 0 auto;min-height:46px;padding:7px 12px;border:1px solid #bddc7b80;border-radius:13px;background:linear-gradient(125deg,#e4bb5521,#a8d56a14);box-shadow:inset 0 1px 0 #ffffff10,0 4px 12px #110d1e33;color:#f3f6df;font-size:18px;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.025em;white-space:nowrap}
.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag::before,.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag::after{content:"";display:block;width:28px;height:28px;flex:0 0 28px;background-position:center;background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 2px 2px #0005)}
.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag::before{background-image:url('/pvp/assets/icons-v3/coin.svg')}
.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag::after{background-image:url('/preview/assets/fvt-token-v1.png')}

/* v246: keep all three token navigation actions on the same row. */
.fv-tools-row:has(> button[data-view="coin-exchange"]) > button:first-child{grid-column:5}
@media(max-width:800px){
 .fv-tools-row:has(> button[data-view="coin-exchange"]){grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .fv-tools-row:has(> button[data-view="coin-exchange"]) > button:first-child{grid-column:auto}
 .fv-tools-row:has(> button[data-view="coin-exchange"]) > button{min-width:0;min-height:46px;padding:9px 5px;gap:5px;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
 .fv-tools-row:has(> button[data-view="coin-exchange"]) > button .fv-icon{width:17px;height:17px;flex:0 0 17px}
}

/* v248: reuse the actual in-game coin from the resource atlas. */
.fv-coin-exchange .fv-exchange-form .fv-title .fv-tag::before{background-image:url('/assets/resource-icons-v159.webp');background-size:400% 400%;background-position:0 33.33333333%;image-rendering:pixelated}

/* v249: align exchange controls independently of shared button margins. */
.fv-coin-exchange .fv-exchange-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;margin:18px 0 14px}
.fv-coin-exchange .fv-exchange-buttons>button{width:100%;min-width:0;min-height:52px;height:auto;margin:0;padding:13px 16px;align-self:stretch;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.fv-coin-exchange .fv-exchange-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px}
.fv-coin-exchange .fv-exchange-presets>button{width:100%;min-width:0;min-height:48px;margin:0;padding:11px 8px;line-height:1.4}
.fv-coin-exchange .fv-exchange-status{margin:18px 0 0}
.fv-coin-exchange .fv-exchange-buttons+.fv-hint{margin-top:0;margin-bottom:0}
@media(max-width:480px){.fv-coin-exchange .fv-exchange-buttons{grid-template-columns:minmax(0,1fr);gap:10px}.fv-coin-exchange .fv-exchange-buttons>button{padding:13px 12px}}
