:root{--nv-bg: #f6f4ee;--nv-panel: #ffffff;--nv-ink: #1f1d2b;--nv-muted: #6b6880;--nv-line: #d9d5c7;--nv-accent: #3d7a5a;--nv-accent-ink: #ffffff;--nv-err: #b33a3a}@media (prefers-color-scheme: dark){:root{--nv-bg: #12121c;--nv-panel: #1c1c2a;--nv-ink: #ecebf5;--nv-muted: #9a97b0;--nv-line: #33334a;--nv-accent: #6fcf9d;--nv-accent-ink: #0d1a13;--nv-err: #ff8a80}}.nv-center{min-height:100vh;display:grid;place-items:center;padding:16px}.nv-card{background:var(--nv-panel);color:var(--nv-ink);border:1px solid var(--nv-line);border-radius:10px;padding:24px}.nv-muted{color:var(--nv-muted)}.nv-err{color:var(--nv-err)}.nv-primary{background:var(--nv-accent);color:var(--nv-accent-ink);border:0;border-radius:6px;padding:9px 16px;font:inherit;cursor:pointer}.nv-primary:disabled{opacity:.5;cursor:default}.nv-auth{width:min(100%,380px);display:flex;flex-direction:column;gap:12px}.nv-auth-head{display:flex;align-items:center;gap:12px}.nv-auth h1{margin:0;font-size:22px}.nv-auth p{margin:0}.nv-auth label{display:flex;flex-direction:column;gap:4px;font-size:14px}.nv-auth input{font:inherit;padding:8px 10px;border:1px solid var(--nv-line);border-radius:6px;background:transparent;color:inherit}.nv-tabs{display:flex;gap:6px}.nv-tabs button{flex:1;font:inherit;padding:6px;border:1px solid var(--nv-line);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.nv-tabs button.on{border-color:var(--nv-accent);color:var(--nv-accent)}.nv-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:16px;z-index:100}.nv-admin{max-width:1100px;margin:0 auto;padding:16px;color:var(--nv-ink)}.nv-admin header{display:flex;justify-content:space-between;align-items:center}.nv-admin section{margin:24px 0;overflow-x:auto}.nv-admin table{border-collapse:collapse;width:100%;font-size:13px}.nv-admin th,.nv-admin td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--nv-line);white-space:nowrap}.nv-admin tr.off{opacity:.45}.nv-admin button{font:inherit;font-size:12px;cursor:pointer}.nv-stats{display:flex;flex-wrap:wrap;gap:12px}.nv-stats div{background:var(--nv-panel);border:1px solid var(--nv-line);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column}.nv-stats b{font-size:22px}.nv-stats span{color:var(--nv-muted);font-size:12px}.nv-pages{display:flex;gap:6px;flex-wrap:wrap;margin-top:24px;border-bottom:1px solid var(--nv-line)}.nv-pages button{display:flex;align-items:baseline;gap:6px;padding:8px 14px;border:1px solid var(--nv-line);border-bottom:0;border-radius:8px 8px 0 0;background:transparent;color:var(--nv-muted);font-size:14px;margin-bottom:-1px}.nv-pages button.on{background:var(--nv-panel);color:var(--nv-ink);font-weight:700}.nv-pages small{font-size:12px;font-weight:400;color:var(--nv-muted)}.nv-pages+section{margin-top:12px}.nv-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px}.nv-row label{display:flex;flex-direction:column;font-size:12px;gap:2px}.nv-row input{font:inherit;width:120px;padding:5px 7px}.nv-codes{width:100%;font-family:ui-monospace,Menlo,monospace;margin-bottom:12px}.nv-actions{display:flex;gap:4px}.nv-note{background:var(--nv-panel);border:1px solid var(--nv-accent);border-radius:6px;padding:8px 12px;margin-bottom:10px}.nv-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--nv-accent);margin-right:6px}.nv-codex{display:flex;flex-direction:column;gap:10px}.nv-codex h2{margin:0;font-size:18px}.nv-codex p{margin:0}.nv-codex .nv-tabs{flex-wrap:wrap}.nv-codex .nv-tabs button{flex:0 1 auto;padding:4px 10px}.nv-entities{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.nv-entity{background:var(--nv-panel);border:1px solid var(--nv-line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.nv-entity-head{display:flex;align-items:center;gap:6px}.nv-entity-icon{font-size:20px}.nv-entity p{font-size:14px}.nv-chronicle{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px;max-height:420px;overflow:auto}.nv-chronicle small{margin-right:6px}.nv-wish input{flex:1;width:auto;min-width:0;font:inherit;padding:8px 10px;border:1px solid var(--nv-line);border-radius:6px;background:transparent;color:inherit}.nv-wish ul{margin:8px 0 0;padding-left:18px;font-size:14px}.nv-code{display:flex;gap:6px}.nv-code input{flex:1;min-width:0;letter-spacing:2px}.nv-code button{font:inherit;font-size:13px;white-space:nowrap;padding:6px 10px;border:1px solid var(--nv-line);border-radius:6px;background:transparent;color:inherit;cursor:pointer}.nv-code button:disabled{opacity:.5;cursor:default}.nv-link{align-self:center;border:0;background:none;color:var(--nv-muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.nv-entity-img{border-radius:6px;object-fit:cover;display:block}.nv-entity-icon{line-height:1}.nv-adopt-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.nv-adopt-list button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;text-align:center}.nv-adopt-list small{color:var(--nv-muted);font-size:12px}.nv-decisions{display:flex;flex-direction:column;gap:8px}.nv-decision{border:1px solid var(--nv-line);border-left:3px solid var(--nv-accent, #4a7);border-radius:6px;padding:8px 10px}.nv-decision .nv-row{margin:6px 0 0}.nv-agent-settings{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:13px}.nv-recaps{list-style:none;margin:0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:4px}.nv-changelog{display:flex;flex-direction:column;gap:10px}.nv-changelog h3{margin:0 0 4px;font-size:12px;color:var(--nv-muted);font-variant-numeric:tabular-nums}.nv-changelog ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.nv-changelog li{display:flex;gap:8px;align-items:baseline;font-size:13px;line-height:1.5}.nv-cl-tag{flex:none;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px}.nv-cl-new{background:#dcfce7;color:#15803d}.nv-cl-fix{background:#e0f2fe;color:#0369a1}.nv-changelog-btn{position:relative;font:inherit;padding:4px 10px;border:1px solid var(--nv-line);border-radius:6px;background:var(--nv-panel);color:inherit;cursor:pointer;white-space:nowrap}.nv-changelog-btn:hover{border-color:var(--nv-accent)}.nv-changelog-btn.dot:after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px var(--nv-panel)}.nv-changelog-card{width:min(520px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;padding:0;overflow:hidden}.nv-changelog-card>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--nv-line)}.nv-changelog-card>header b{font-size:16px}.nv-changelog-card>header button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--nv-muted);font-size:18px;line-height:1;cursor:pointer}.nv-changelog-card>header button:hover{background:var(--nv-line);color:var(--nv-ink)}.nv-changelog-body{overflow-y:auto;padding:12px 16px 16px}:root{--nv-bg: #efe3c2;--nv-panel: #fbf3dc;--nv-ink: #3b2a17;--nv-muted: #8a7357;--nv-line: #d8c49a;--nv-accent: #5b8c3a;--nv-accent-ink: #fffbea;--nv-err: #b33a3a;--wood: #8a5a2b;--wood-dark: #5e3b1a;--gold: #e0a52b;--soil: #9b6a3e;--soil-wet: #5f3d22;--heart: #e2557a}@media (prefers-color-scheme: dark){:root{--nv-bg: #1b1610;--nv-panel: #272017;--nv-ink: #f3e7cc;--nv-muted: #b29e7e;--nv-line: #4a3c2a;--nv-accent: #8ccb5e;--nv-accent-ink: #13200b;--wood: #6e4723;--wood-dark: #3f2812}}*{box-sizing:border-box}body{margin:0;background:var(--nv-bg);color:var(--nv-ink);font:15px/1.55 ui-rounded,Nunito,-apple-system,PingFang SC,Hiragino Sans,Microsoft YaHei,sans-serif}button,select,input{font:inherit;color:inherit}button{cursor:pointer}.muted{color:var(--nv-muted)}.small{font-size:13px}.login{min-height:100vh;background:linear-gradient(#bfe3f5,#e9f5d8 55%,#8fc46a 56%,#6aa548)}.login .nv-card{box-shadow:0 6px 0 var(--wood-dark);border:3px solid var(--wood)}.game{max-width:1320px;margin:0 auto;padding:0 16px 40px}.hud{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 -16px 12px;padding:8px 16px;background:linear-gradient(var(--wood),var(--wood-dark));color:#fff4d6;border-bottom:3px solid #3a240f;box-shadow:0 2px 8px #00000040}.hud .brand{display:flex;align-items:center;gap:8px;font-size:18px;letter-spacing:.5px}.hud .clock{display:flex;flex-direction:column;line-height:1.2;background:#0003;padding:4px 10px;border-radius:8px}.hud .clock .date{font-size:12px;opacity:.9}.hud .clock .time{font-weight:700;font-variant-numeric:tabular-nums}.hud .purse{display:flex;align-items:center;gap:14px}.hud .gold{font-weight:700;color:#ffd76a;font-variant-numeric:tabular-nums}.hud .energy{display:flex;align-items:center;gap:4px}.hud .energy i{display:block;width:90px;height:10px;border-radius:6px;background:#00000059;overflow:hidden;border:1px solid rgba(255,255,255,.25)}.hud .energy i b{display:block;height:100%;background:linear-gradient(90deg,#f2c94c,#7ed957);transition:width .4s}.hud .grow{flex:1}.hud .festival{background:#ffd76a2e;border:1px solid rgba(255,215,106,.5);border-radius:8px;padding:2px 8px;font-size:13px;font-weight:700;color:#ffe9a8}.hud .festival small{font-weight:400;opacity:.85}.hud .festival.now{background:#ffd76a;color:#3b2a17;animation:pulse 1.6s infinite}.hud .account{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px}.hud .account a{color:#ffe9a8}.hud .account button{background:#ffffff1f;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:2px 8px}.offline{background:var(--nv-err);color:#fff;text-align:center;border-radius:6px;padding:4px;margin-bottom:8px}.cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.cols main,.cols aside{display:flex;flex-direction:column;gap:12px;min-width:0}@media (max-width: 960px){.cols{grid-template-columns:minmax(0,1fr)}}.card{background:var(--nv-panel);border:2px solid var(--nv-line);border-radius:10px;padding:10px 14px;box-shadow:0 3px 0 var(--nv-line)}.card h3,.card h4{margin:0 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card h3{font-size:16px}.card h4{font-size:14px;margin-top:10px}.card h4:first-child{margin-top:0}.tabs{display:flex;gap:6px}.tabs button{border:2px solid var(--nv-line);border-bottom:0;border-radius:10px 10px 0 0;background:transparent;padding:6px 14px;color:var(--nv-muted)}.tabs button.on{background:var(--nv-panel);color:var(--nv-ink);font-weight:700}.tabs button:disabled{opacity:.4;cursor:default}.valley{position:relative;border-radius:12px;overflow:hidden;border:3px solid var(--wood);box-shadow:0 4px 0 var(--wood-dark);background:#9bd4c3}.scroller{overflow-x:auto;overscroll-behavior-x:contain}.map{position:relative;width:100%;min-width:760px;transition:filter 2s}.map .sea,.map .ground{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.map .sea{background:url(/px/water0.png) 0 0 / calc(100% / 54) auto;animation:sea 2.4s steps(1) infinite}@keyframes sea{0%{background-image:url(/px/water0.png)}25%{background-image:url(/px/water1.png)}50%{background-image:url(/px/water2.png)}75%{background-image:url(/px/water3.png)}}.valley.spring .ground{filter:saturate(1.08)}.valley.summer .ground{filter:saturate(1.25) contrast(1.03)}.valley.fall .ground{filter:sepia(.45) hue-rotate(-18deg) saturate(1.5)}.valley.winter .ground{filter:grayscale(.55) brightness(1.22) contrast(.92)}.valley.winter .sea{filter:grayscale(.4) brightness(1.1)}.tint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transition:background 2s}.spot,.walker{position:absolute;border:0;background:none;padding:0;color:#2b1d0e}.spot{z-index:2;border-radius:8px}.spot:hover{box-shadow:inset 0 0 0 2px #fff8e1e6;background:#fff8e126}.spot .name{position:absolute;bottom:100%;left:50%;transform:translate(-50%,2px);z-index:1;pointer-events:none;font-size:10px;font-weight:700;white-space:nowrap;color:#fff8e6;background:#5e3b1ad1;border-radius:4px;padding:0 4px;line-height:1.45}.spot.role-water .name{background:#28648cd9}.walker{width:calc(150% / 18);aspect-ratio:1;transform:translate(-50%,-76%);transition:left 1.8s linear,top 1.8s linear;display:flex;flex-direction:column;align-items:center}.walker .sprite{width:100%;aspect-ratio:1;image-rendering:pixelated;pointer-events:none;background:url(/px/char.png) 0 0 / 800% 800% no-repeat;animation:frames 1.2s steps(8) infinite}.walker.walking .sprite{animation-duration:.7s}.walker.asleep .sprite{animation:none;opacity:.7}@keyframes frames{0%{background-position-x:0%}to{background-position-x:114.2857%}}.walker .name{position:absolute;top:74%;left:50%;transform:translate(-50%);pointer-events:none;font-size:9px;font-weight:700;white-space:nowrap;background:#fffaebd9;border-radius:4px;padding:0 3px;line-height:1.4}.walker.up .name{top:auto;bottom:88%}.walker.crowd .name{display:none}.walker.crowd:hover .name{display:block;z-index:5}.walker.farmer .name{background:#e1f5cdeb}.walker.me .name{background:#ffd76a;color:#3b2a17}.walker .zz{position:absolute;top:18%;right:8%;font-size:10px;pointer-events:none}.walker .bubble{position:absolute;bottom:62%;left:50%;transform:translate(-50%);z-index:3;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;background:#fffdf4;color:#2b1d0e;font-size:11px;padding:2px 7px;border-radius:8px;border:1px solid #c9b07c}@keyframes bob{50%{transform:translateY(-3px)}}.critter{display:inline-block;image-rendering:pixelated;background-repeat:no-repeat;pointer-events:none}.map .critter{position:absolute;z-index:1;transform:translate(-50%,-100%)}.critter.chicken{width:calc(100% / 54);aspect-ratio:1;background-image:url(/px/chicken.png);background-size:400% 200%;animation:hen 1s steps(2) infinite}.critter.cow{width:calc(200% / 54);aspect-ratio:1;background-image:url(/px/cow.png);background-size:300% 200%;animation:moo 1.8s steps(3) infinite}.critter.flip{transform:translate(-50%,-100%) scaleX(-1)}@keyframes hen{0%{background-position-x:0%}to{background-position-x:66.667%}}@keyframes moo{0%{background-position-x:0%}to{background-position-x:150%}}.animals .critter.chicken{width:32px}.animals .critter.cow{width:40px}.rain,.snow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.rain{background:repeating-linear-gradient(105deg,transparent 0 14px,rgba(200,225,255,.35) 14px 15px);background-size:200% 200%;animation:rain .5s linear infinite}.snow{background-image:radial-gradient(#fff 1.5px,transparent 2px),radial-gradient(#fff 1px,transparent 1.5px);background-size:40px 40px,23px 23px;animation:snow 6s linear infinite;opacity:.8}@keyframes rain{to{background-position:-40px 80px}}@keyframes snow{to{background-position:20px 400px,-10px 230px}}.picked{position:relative}.picked .close{position:absolute;top:6px;right:8px;border:0;background:none;color:var(--nv-muted)}.facts{margin:0;font-size:13px;color:var(--nv-muted)}.hearts{color:var(--heart);letter-spacing:1px}.hearts em{font-style:normal;color:var(--nv-line)}.farm{display:flex;flex-direction:column;gap:12px}.field-card{background:linear-gradient(#8fc46a,#77ad52);border-color:var(--wood);box-shadow:0 3px 0 var(--wood-dark);color:#22160a}.field-card .muted{color:#3f5a2a}.field{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-width:560px}.plot{aspect-ratio:1;display:grid;place-items:center;position:relative;border-radius:6px;background:repeating-linear-gradient(#d9a066 0,#d9a066 6px,#c88b52 6px,#c88b52 9px);border:2px solid #8a5a2b;box-shadow:inset 0 -4px #0000001f;transition:background .5s}.plot.wet{background:repeating-linear-gradient(#9b6a3e 0,#9b6a3e 6px,#84562f 6px,#84562f 9px)}.plot .crop{width:100%;height:100%;background:url(/px/plants.png) 0 0 / 500% 1500% no-repeat;image-rendering:pixelated}.plot.ready .crop{animation:bob 1.2s ease-in-out infinite;filter:drop-shadow(0 0 4px #fff6a0)}.plot.ready{border-color:#ffe27a;box-shadow:0 0 0 2px #ffe27a,inset 0 -4px #0000001f}.plot.dead .crop{filter:grayscale(1) sepia(.6) brightness(.8)}.plot.sprinkled:after{content:"💧";position:absolute;top:2px;right:3px;font-size:10px;opacity:.8}.farm-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.farm-cols{grid-template-columns:1fr}}.items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.items li{display:flex;align-items:center;gap:4px;background:#8a5a2b1a;border:1px solid var(--nv-line);border-radius:8px;padding:2px 8px 2px 4px;font-size:13px}.skills,.friends,.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.skills li{display:grid;grid-template-columns:1fr auto 90px;gap:8px;align-items:center}.skills i{display:block;height:8px;border-radius:4px;background:var(--nv-line);overflow:hidden}.skills i b{display:block;height:100%;background:var(--nv-accent)}.friends li{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center}.friends .hearts{font-size:11px}.animals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.animals li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:8px;align-items:center;background:#8a5a2b14;border:1px solid var(--nv-line);border-radius:10px;padding:6px 8px;font-size:13px}.animals li .critter{grid-row:1 / 4}.animals .hearts{font-size:10px}.items .emo{font-size:18px;line-height:22px;width:22px;text-align:center}.nv-agent-settings label:has(>input[type=checkbox]){display:none}.thought{font-size:13px;font-style:italic;color:var(--nv-muted)}.queue{font-size:13px;background:#e0a52b1a;border-left:3px solid var(--gold);border-radius:4px;padding:4px 8px}.queue ol{margin:2px 0;padding-left:20px}.linkish,.ask-toggle{border:0;background:none;padding:0;color:var(--nv-accent);font-size:13px;text-align:left}.ask-toggle{font-weight:700;color:var(--nv-ink)}.diary h4{margin:12px 0 4px;font-size:14px}.diary ul{list-style:none;margin:0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:3px;max-height:260px;overflow:auto}.diary small{color:var(--nv-muted);margin-right:4px;font-variant-numeric:tabular-nums}.companion h3 small{font-weight:400;font-size:12px}.companion h3 span{display:flex;flex-direction:column;line-height:1.25}.companion>p{margin:0 0 10px}.hands{margin-bottom:10px}.hands .nv-decision{border-left-color:var(--gold);background:#e0a52b1a}.hands .nv-decision button{border:1px solid var(--wood);background:#fff5d6;color:#3b2a17;border-radius:6px;padding:4px 10px}.command{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.doing{display:flex;align-items:center;gap:6px;font-size:14px}.dot{width:9px;height:9px;border-radius:50%;background:#9aa;display:inline-block}.dot.busy{background:var(--nv-accent);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.35}}.cmds{display:flex;flex-wrap:wrap;gap:6px}.cmds button{border:1px solid var(--nv-line);border-radius:8px;padding:4px 10px;font-size:13px;text-align:left;background:var(--nv-bg);box-shadow:0 2px 0 var(--nv-line)}.cmds button:hover{border-color:var(--wood)}.cmds button:active{transform:translateY(2px);box-shadow:none}.cmds button.suggest{border-color:var(--nv-accent);box-shadow:0 2px 0 var(--nv-accent)}.say{display:flex;gap:6px}.say input{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--nv-line);border-radius:8px;background:transparent}.nv-adopt-list button{background:var(--nv-bg);border:2px solid var(--nv-line);border-radius:10px}.nv-adopt-list button:hover{border-color:var(--nv-accent)}.nv-agent-settings select{max-width:100%;background:var(--nv-bg);color:var(--nv-ink);border:1px solid var(--nv-line);border-radius:6px;padding:2px 4px}.feed{list-style:none;margin:0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:3px;max-height:360px;overflow:auto}.feed small{color:var(--nv-muted);margin-right:4px;font-variant-numeric:tabular-nums}.board{counter-reset:r}.board li{display:flex;justify-content:space-between;gap:8px}.board li:before{counter-increment:r;content:counter(r) ".";color:var(--nv-muted);width:1.4em}.board li span{flex:1}@media (max-width: 640px){.game{padding:0 10px 30px}.hud{margin:0 -10px 10px;padding:6px 10px}.hud .account{width:100%}.spot .name,.walker .name{font-size:7px}.walker .bubble{max-width:120px;font-size:10px}}.credit{text-align:center;font-size:12px;margin-top:18px}.credit a{color:inherit}
