:root{--wood: #6b3f22;--wood2: #8f5a30;--wood3: #c48a4a;--paper: #f6e6c0;--paper2: #ecd6a4;--ink: #3a2418;--ink2: #6b4a32;--gold: #f6c445;--red: #d24a3a;--green: #4f9a3a;--blue: #3a6ea5;--outline: #2a1f2d}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#140e16;overflow:hidden;font-family:Trebuchet MS,Segoe UI,Verdana,sans-serif;color:var(--ink);-webkit-user-select:none;user-select:none}#game{position:absolute;left:0;top:0;image-rendering:pixelated;image-rendering:crisp-edges;cursor:crosshair}#ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui>*{pointer-events:auto}.hidden{display:none!important}img.icon{image-rendering:pixelated;width:48px;height:48px;display:block}img.icon.sm{width:32px;height:32px}img.icon.xs{width:24px;height:24px}.panel{background:linear-gradient(#f8ebc8,#efd9a8);border:4px solid var(--wood);border-radius:8px;box-shadow:inset 0 0 0 2px var(--wood3),inset 0 0 0 4px #fff3d6,0 0 0 2px var(--outline),0 8px #00000059}.btn{display:inline-block;padding:8px 16px;font:700 16px Trebuchet MS,sans-serif;color:#fff8e0;cursor:pointer;background:linear-gradient(#d07a3a,#a8541f);border:3px solid var(--outline);border-radius:6px;box-shadow:inset 0 2px #ffffff59,inset 0 -3px #00000040,0 3px #00000059;text-shadow:0 2px 0 rgba(0,0,0,.4)}.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn.green{background:linear-gradient(#6fb34a,#3f8a3f)}.btn.blue{background:linear-gradient(#5ea5d8,#3a6ea5)}.btn.grey{background:linear-gradient(#a4a9b6,#6d7282)}.btn.small{padding:4px 10px;font-size:13px}.btn[disabled]{filter:grayscale(.8) brightness(.8);cursor:default;transform:none}#clock{position:absolute;right:12px;top:12px;width:190px;padding:8px 12px;text-align:right}#clock .date{font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center}#clock .time{font-weight:700;font-size:22px;letter-spacing:1px;display:flex;justify-content:space-between;align-items:center;margin:2px 0}#clock .gold{font-weight:700;font-size:18px;color:#7a4a10;background:#fff3d0;border:2px solid var(--wood3);border-radius:4px;padding:1px 8px;display:flex;justify-content:space-between;align-items:center}#clock .gold .coin{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff07a,#e8a02f 60%,#a8641f);border:2px solid #6a3a10}#clock .wx{font-size:18px}.sundial{width:34px;height:34px;border-radius:50%;border:3px solid var(--wood);position:relative;overflow:hidden;background:linear-gradient(#9fd6f0,#5ea5d8)}.sundial .hand{position:absolute;left:50%;top:50%;width:3px;height:15px;background:var(--outline);transform-origin:50% 0}#bars{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;align-items:flex-end}.bar{width:26px;height:150px;padding:4px;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.bar .fill{width:100%;border-radius:2px;transition:height .2s}.bar .lbl{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-weight:900;font-size:13px;color:#fff;text-shadow:0 0 3px #000,0 0 2px #000}.bar.energy .fill{background:linear-gradient(90deg,#8fd45a,#4f9a3a)}.bar.energy.low .fill{background:linear-gradient(90deg,#f07a5a,#d24a3a);animation:pulse .6s infinite alternate}.bar.hp .fill{background:linear-gradient(90deg,#ff8a7a,#c8302a)}@keyframes pulse{0%{filter:brightness(1)}to{filter:brightness(1.5)}}#hotbar{position:absolute;left:50%;bottom:10px;transform:translate(-50%);display:flex;gap:4px;padding:6px}.slot{width:58px;height:58px;background:linear-gradient(#e8cf98,#d8b878);border:3px solid var(--wood2);border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 3px #0000001f;cursor:pointer}.slot.sel{border-color:#ff3a2a;box-shadow:0 0 0 2px #fff4a0,inset 0 3px #0000001f;transform:translateY(-3px)}.slot .n{position:absolute;right:3px;bottom:0;font:700 15px Trebuchet MS;color:#fff;text-shadow:-1px -1px 0 #2a1f2d,1px -1px 0 #2a1f2d,-1px 1px 0 #2a1f2d,1px 1px 0 #2a1f2d}.slot .q{position:absolute;left:2px;bottom:2px;width:16px;height:16px;image-rendering:pixelated}.slot .k{position:absolute;left:3px;top:0;font:700 11px Trebuchet MS;color:var(--ink2);opacity:.7}.slot .water{position:absolute;left:6px;right:6px;bottom:3px;height:4px;background:#3a2418;border-radius:2px}.slot .water i{display:block;height:100%;background:#5ea5d8;border-radius:2px}.slot.locked{background:#a88a5a;opacity:.5}.slot.drag{opacity:.4}#hoverinfo{position:absolute;z-index:60;pointer-events:none;padding:8px 12px;max-width:280px;font-size:14px}#hoverinfo b{font-size:16px;display:block}#hoverinfo .cat{font-size:12px;color:var(--ink2);text-transform:capitalize}#hoverinfo .price{color:#7a4a10;font-weight:700;margin-top:4px}#hoverinfo .en{color:#2f7a2f;font-weight:700}#toasts{position:absolute;left:12px;bottom:96px;display:flex;flex-direction:column-reverse;gap:6px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 6px;font-weight:700;font-size:15px;animation:toastIn .25s ease-out;min-height:40px}.toast.t-info{padding:8px 14px}.toast.t-warn{background:linear-gradient(#ffe2c8,#f4c49a)}.toast.t-gold{background:linear-gradient(#fff3b0,#f6d470)}.toast.out{animation:toastOut .4s ease-in forwards}@keyframes toastIn{0%{transform:translate(-30px);opacity:0}to{transform:none;opacity:1}}@keyframes toastOut{to{transform:translate(-30px);opacity:0}}#dialog{position:absolute;left:50%;bottom:90px;transform:translate(-50%);width:min(860px,94vw);min-height:170px;display:flex;gap:14px;padding:16px 18px;cursor:pointer;z-index:30}#dialog .text{flex:1;font-size:20px;line-height:1.45;min-height:120px}#dialog .text i{color:var(--ink2)}#dialog .who{display:flex;flex-direction:column;align-items:center;gap:6px}#dialog .portrait{width:128px;height:128px;image-rendering:pixelated;border:4px solid var(--wood);border-radius:6px;background:#c48a4a}#dialog .name{font-weight:700;font-size:17px;background:var(--wood2);color:#fff3d6;padding:2px 12px;border-radius:4px;border:2px solid var(--outline)}#dialog .more{position:absolute;right:18px;bottom:10px;animation:bob .6s infinite alternate;font-size:18px;color:var(--wood2)}#dialog .choices{display:flex;flex-direction:column;gap:6px;margin-top:10px}#dialog .choices .btn{text-align:left;font-size:16px}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}#modal{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#140c1873;z-index:40}.menu{width:min(1060px,96vw);max-height:92vh;padding:16px 20px;display:flex;flex-direction:column;position:relative}.menu h2{margin:0 0 10px;font-size:26px;color:var(--wood);text-shadow:0 2px 0 #fff3d6}.menu .close{position:absolute;right:10px;top:8px;width:36px;height:36px;font:700 20px sans-serif;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--red);color:#fff;border:3px solid var(--outline);border-radius:6px}.tabs{display:flex;gap:4px;margin:-4px 0 10px;flex-wrap:wrap}.tab{padding:6px 14px;font-weight:700;cursor:pointer;background:var(--paper2);border:3px solid var(--wood2);border-radius:6px 6px 0 0;color:var(--ink2)}.tab.on{background:#fff3d6;color:var(--ink);border-bottom-color:#fff3d6}.grid{display:grid;grid-template-columns:repeat(12,58px);gap:4px}.body{overflow:auto;flex:1}.row{display:flex;gap:14px;align-items:flex-start}.col{display:flex;flex-direction:column;gap:8px}.info{flex:1;min-width:0;padding:10px 14px;background:#fff3d6;border:3px solid var(--wood3);border-radius:6px;min-height:140px}.info b{font-size:18px}.shoplist{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow:auto;padding-right:6px}.shopitem{display:flex;align-items:center;gap:10px;padding:4px 10px;background:#fff3d6;border:3px solid var(--wood3);border-radius:6px;cursor:pointer}.shopitem:hover{background:#fffbe8;border-color:var(--wood2)}.shopitem.cant{opacity:.55}.shopitem .nm{flex:1;font-weight:700;font-size:17px}.shopitem .nm small{display:block;font-weight:400;font-size:13px;color:var(--ink2)}.shopitem .pr{font-weight:700;color:#7a4a10;font-size:17px;min-width:80px;text-align:right}.keeper{display:flex;flex-direction:column;align-items:center;gap:8px;width:200px}.keeper img{width:160px;height:160px;image-rendering:pixelated;border:4px solid var(--wood);border-radius:6px}.keeper .say{background:#fff;border:3px solid var(--wood3);border-radius:8px;padding:8px;font-size:15px}.goldline{font-weight:700;font-size:18px;color:#7a4a10}#title{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50}#title canvas.bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}#title .logo{position:relative;font:900 88px Georgia,Times New Roman,serif;color:#fff3c0;letter-spacing:3px;text-shadow:0 4px 0 #a8541f,0 8px 0 #6b3f22,0 12px 0 #2a1f2d,0 0 40px rgba(255,200,100,.5);margin-bottom:4px;animation:float 3s ease-in-out infinite alternate}#title .sub{position:relative;font:italic 700 20px Georgia,serif;color:#fff8e0;text-shadow:0 2px 0 #2a1f2d;margin-bottom:30px}#title .buttons{position:relative;display:flex;flex-direction:column;gap:12px;width:260px}#title .buttons .btn{font-size:22px;padding:12px;text-align:center}#title .foot{position:absolute;bottom:10px;color:#fff8e0;opacity:.75;font-size:13px;text-shadow:0 1px 0 #000}@keyframes float{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.newgame{width:min(720px,94vw);padding:20px 26px;position:relative}.newgame label{font-weight:700;display:block;margin:8px 0 4px}.newgame input[type=text]{width:100%;font:700 18px Trebuchet MS;padding:6px 10px;border:3px solid var(--wood3);border-radius:6px;background:#fffbe8;color:var(--ink)}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:28px;height:28px;border:3px solid var(--outline);border-radius:4px;cursor:pointer}.swatch.on{outline:3px solid #ff3a2a}.preview{width:128px;height:256px;image-rendering:pixelated;background:radial-gradient(#a6d466,#6fb34a);border:4px solid var(--wood);border-radius:8px}#dayend{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(#2a2440,#0e0a14);z-index:45}#dayend .menu{width:min(640px,94vw)}.shipline{display:flex;align-items:center;gap:10px;padding:2px 6px;font-size:16px;animation:toastIn .3s ease-out backwards}.shipline .g{margin-left:auto;font-weight:700;color:#7a4a10}.total{font-size:26px;font-weight:900;color:#7a4a10;text-align:right;margin-top:8px}.lvlcard{padding:12px 16px;background:linear-gradient(#fff6c8,#f6d470);border:3px solid var(--wood2);border-radius:8px;margin:6px 0;animation:pop .5s ease-out backwards}@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.06)}to{transform:none;opacity:1}}.hearts{color:#d24a6a;letter-spacing:1px;font-size:18px}.hearts .off{color:#c8b08a}.skillrow{display:flex;align-items:center;gap:10px;margin:6px 0;font-weight:700;font-size:17px}.skillrow .pips{display:flex;gap:3px}.skillrow .pip{width:14px;height:18px;background:#d8c090;border:2px solid var(--wood2);border-radius:2px}.skillrow .pip.on{background:linear-gradient(#ffe070,#e8922f)}.letter{background:#fffaf0;border:3px solid var(--wood3);padding:18px 24px;font:18px Georgia,serif;line-height:1.5;white-space:pre-wrap;max-height:55vh;overflow:auto}.fadein{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#banner{position:absolute;left:50%;top:22%;transform:translate(-50%);font:900 40px Georgia,serif;color:#fff3c0;text-shadow:0 3px 0 #a8541f,0 6px 0 #2a1f2d;pointer-events:none;animation:banner 2.6s ease-out forwards;white-space:nowrap;z-index:35}@keyframes banner{0%{opacity:0;transform:translate(-50%,20px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.qty{display:flex;align-items:center;gap:6px}.qty input{width:60px;font:700 16px sans-serif;text-align:center;border:2px solid var(--wood3);border-radius:4px}.social{display:grid;grid-template-columns:1fr 1fr;gap:6px}.socialrow{display:flex;align-items:center;gap:10px;padding:4px 8px;background:#fff3d6;border:3px solid var(--wood3);border-radius:6px}.socialrow img{width:56px;height:56px;image-rendering:pixelated;border:2px solid var(--wood2);border-radius:4px}.socialrow .nm{font-weight:700;font-size:16px}.socialrow small{color:var(--ink2)}.craftgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.craft{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#fff3d6;border:3px solid var(--wood3);border-radius:6px;cursor:pointer;position:relative}.craft.no{opacity:.45;filter:grayscale(.6)}.craft.locked{opacity:.25;filter:brightness(0)}.goal{padding:6px 10px;margin:4px 0;background:#fff3d6;border:3px solid var(--wood3);border-radius:6px;font-size:16px}.goal.done{text-decoration:line-through;opacity:.6}kbd{background:#fff;border:2px solid var(--wood3);border-bottom-width:3px;border-radius:4px;padding:0 6px;font:700 13px monospace}.mapview{image-rendering:pixelated;border:3px solid var(--wood);border-radius:6px;max-width:100%}#worldtip{position:absolute;z-index:20;pointer-events:none;padding:4px 10px;font-weight:700;font-size:14px;white-space:nowrap}#worldtip small{font-weight:400;color:var(--ink2)}#goalhint{position:absolute;left:50%;bottom:92px;transform:translate(-50%);padding:4px 14px;font-size:14px;font-weight:700;pointer-events:none;white-space:nowrap;opacity:.92}#selname{position:absolute;left:50%;bottom:128px;transform:translate(-50%);font:700 18px Trebuchet MS;color:#fff8e0;text-shadow:0 2px 0 #2a1f2d,0 0 4px #2a1f2d;pointer-events:none;transition:opacity .3s;opacity:0}#clock .gold.up{color:#2f7a2f;transform:scale(1.04)}#clock .gold.down{color:#b8302a}#clock .gold{transition:transform .15s}#clock{width:230px}#clock .clockrow{display:flex;align-items:center;gap:8px}#clock .clockcol{flex:1}#clock img.dial{width:80px;height:80px;image-rendering:pixelated;margin:-14px -6px -12px -8px}#clock img.ic{width:24px;height:24px;image-rendering:pixelated}#clock img.coinimg{width:22px;height:22px;image-rendering:pixelated}#clock{width:250px}#clock .date{white-space:nowrap;font-size:15px}.hv-social{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:60vh;overflow-y:auto;padding-right:4px}.hv-srow{display:flex;align-items:center;gap:10px;padding:5px 8px;background:#fff3d6;border:3px solid var(--wood3, #a8703f);border-radius:6px;position:relative}.hv-srow.unmet{opacity:.6;filter:saturate(.4)}.hv-srow.bday{background:#ffe9ef;border-color:#d24a6a}.hv-srow .pt{width:56px;height:56px;image-rendering:pixelated;border:2px solid var(--wood2, #7a4b33);border-radius:4px;background:#c48a4a;flex:none}.hv-srow .col1{flex:1;min-width:0}.hv-srow .nm{font-weight:700;font-size:16px;display:flex;align-items:center;gap:6px}.hv-srow .tag{font-size:11px;font-weight:400;padding:0 5px;border-radius:8px;background:#f3dcae;color:#6b4a32}.hv-srow .tag.date{background:#ffd2dc;color:#a8304a}.hv-srow .tag.wed{background:#ffe58a;color:#7a5a10}.hv-srow .hh{font-size:15px;letter-spacing:0px;line-height:1.1}.hv-srow .hh span.on{color:#d24a6a;text-shadow:0 1px 0 #7a1f35}.hv-srow .hh span.off{color:#d9c29a}.hv-srow .hh span.lock{color:#b8a888;opacity:.45}.hv-srow .hh span.part{background:linear-gradient(to top,#d24a6a var(--p),#d9c29a var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}.hv-srow small{color:var(--ink2, #6b4a32);font-size:12px}.hv-srow small .ok{color:#3f7a2f;font-weight:400}.hv-srow small .no{color:#a0703a}.hv-srow .loves{font-size:11px;color:#a8304a;display:flex;align-items:center;gap:2px}.hv-srow .loves img{width:16px;height:16px;image-rendering:pixelated}.hv-srow .bd{font-size:11px;color:#6b4a32;text-align:right;white-space:nowrap;align-self:flex-start}.hv-srow.bday .bd b{color:#d24a6a}.hv-cal{--paper: #fffaf0;--ink: #4a3426;--accent: #d24a6a;position:relative;margin:6px auto 0;max-width:860px;background:var(--paper);border:3px solid #a8703f;border-radius:4px 4px 10px 10px;padding:18px 14px 10px;box-shadow:0 6px #d8c39a,0 8px 14px #00000040;color:var(--ink)}.hv-cal.sn0{--band: #f6c8d6;--band2: #a6d466;--accent: #d24a6a}.hv-cal.sn1{--band: #ffe58a;--band2: #6fc0e8;--accent: #e8922f}.hv-cal.sn2{--band: #f0b070;--band2: #c8641f;--accent: #b8541f}.hv-cal.sn3{--band: #d8e6f4;--band2: #8aa8c8;--accent: #4a7ad0}.hv-cal .rings{position:absolute;top:-9px;left:0;right:0;display:flex;justify-content:space-around;padding:0 40px}.hv-cal .rings i{width:8px;height:18px;border-radius:4px;background:linear-gradient(#e6e9ef,#8a91a0);border:1px solid #5d6372}.hv-cal .top{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--band),var(--band2));border-radius:6px;padding:6px 10px;margin-bottom:8px;border:2px solid rgba(0,0,0,.12)}.hv-cal .title{display:flex;align-items:baseline;gap:10px}.hv-cal .title .art{font-size:26px}.hv-cal .title b{font-size:26px;letter-spacing:1px;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.25)}.hv-cal .title small{font-size:13px;color:#fff;opacity:.9}.hv-cal .arrow{font:inherit;font-size:16px;background:#fff3d6;border:2px solid #a8703f;border-radius:6px;color:#6b4a32;padding:2px 10px;cursor:pointer}.hv-cal .arrow:hover{background:#ffe9b8}.hv-cal .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.hv-cal .hd{text-align:center;font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:1px}.hv-cal .cell{position:relative;min-height:84px;background:#fff;border:2px solid #e3d2b0;border-radius:4px;padding:2px 4px;overflow:hidden}.hv-cal .cell.wkend{background:#fffcf4}.hv-cal .cell.past{opacity:.55}.hv-cal .cell.hasfest{background:repeating-linear-gradient(45deg,#fff,#fff 6px,#fff6e0 6px,#fff6e0 12px)}.hv-cal .cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.hv-cal .cell.today .num{background:var(--accent);color:#fff;border-radius:50%}.hv-cal .cell:hover{border-color:#a8703f}.hv-cal .num{display:inline-block;min-width:20px;text-align:center;font-weight:700;font-size:14px;line-height:20px}.hv-cal .wx{position:absolute;top:2px;right:4px;font-size:13px}.hv-cal .marks{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-top:2px}.hv-cal .marks .bd{width:30px;height:30px;image-rendering:pixelated;border-radius:50%;border:2px solid #f6c445;background:#ffe9ef}.hv-cal .marks .fest{width:100%;font-size:10px;line-height:1.1;color:#fff;background:var(--accent);border-radius:3px;padding:2px 3px;text-align:center}.hv-cal .marks .wed{font-size:18px}.hv-cal .wagon{image-rendering:pixelated}.hv-cal .infobar{margin-top:8px;min-height:36px;font-size:13px;background:#fff3d6;border:2px dashed #d8c39a;border-radius:6px;padding:4px 8px}.hv-cal .legend{display:flex;gap:14px;justify-content:center;font-size:11px;color:#8a6a4a;margin-top:4px;align-items:center}.hv-cal .legend span{display:inline-flex;align-items:center;gap:3px}.menu.mine-elev{width:min(560px,94vw)}.mine-elev-note{margin:0 0 12px;font-size:15px;color:#5a3a22}.mine-elev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}.btn.mine-stop{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;text-align:center;min-height:64px}.btn.mine-stop .n{font-size:26px;font-weight:900;line-height:1;text-shadow:0 2px 0 rgba(0,0,0,.35)}.btn.mine-stop .l{font-size:11px;opacity:.9;margin-top:4px;white-space:nowrap}.btn.mine-stop.t0{background:linear-gradient(#b08a62,#7a5a3e)}.btn.mine-stop.t1{background:linear-gradient(#8ab8d8,#4a7aa8)}.btn.mine-stop.t2{background:linear-gradient(#e0784a,#9a3a28)}.btn.mine-stop.t3{background:linear-gradient(#b48ae0,#6a4a9a)}.btn.mine-stop.here{outline:3px solid #fff3c0;outline-offset:-3px}.btn.mine-surface{display:block;margin-top:14px;text-align:center}.col-sub{display:flex;gap:6px;margin:0 0 8px;flex-wrap:wrap}.col-sub .col-pill{padding:4px 10px;border-radius:8px;border:2px solid #b8895a;background:#ead3a8;cursor:pointer;font-weight:700;font-size:13px;color:#5a3a22}.col-sub .col-pill.on{background:#fff4d8;border-color:#8a5a34}.col-sub .col-pill small{font-weight:400;color:#8a6a4a;margin-left:4px}.col-bar{height:10px;border-radius:5px;background:#d8c09a;border:2px solid #8a5a34;overflow:hidden;margin:2px 0 8px}.col-bar>div{height:100%;background:linear-gradient(#8ee06a,#4fae3a)}.col-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.col-head h2{margin:0}.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:5px;max-height:380px;overflow:auto;padding-right:4px}.col-cell{position:relative;height:52px;border-radius:6px;background:#f7ead0;border:2px solid #c79a5a;display:flex;align-items:center;justify-content:center;cursor:default}.col-cell.off{background:#e2cfa8;border-color:#b89a70}.col-cell img{width:36px;height:36px;image-rendering:pixelated}.col-cell.off img{filter:brightness(0) opacity(.32)}.col-cell .n{position:absolute;right:3px;bottom:1px;font-size:11px;font-weight:700;color:#fff;text-shadow:0 0 2px #000,0 0 2px #000}.col-info{min-height:38px;margin-top:8px;padding:6px 10px;border-radius:6px;background:#fff4d8;border:2px solid #c79a5a;font-size:13px;color:#5a3a22}.col-ach{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px;max-height:400px;overflow:auto;padding-right:4px}.col-ach .a{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;border:2px solid #b89a70;background:#e6d4b0;color:#6b4a32;font-size:12px}.col-ach .a.got{background:linear-gradient(#fff6d0,#f6e2a0);border-color:#d8a030;color:#4a2a18}.col-ach .a img{width:32px;height:32px;image-rendering:pixelated;flex:none}.col-ach .a:not(.got) img{filter:grayscale(1) brightness(.6) opacity(.6)}.col-ach .a b{font-size:13px;display:block}.col-ach .mini{height:5px;border-radius:3px;background:#cdb48a;margin-top:3px;overflow:hidden}.col-ach .mini>div{height:100%;background:#d8a030}#ach-banner{position:fixed;left:50%;top:14px;transform:translate(-50%,-140%);z-index:60;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 12px;min-width:300px;border-radius:12px;border:3px solid #7a4a10;background:linear-gradient(#ffe48a,#f2b93a 60%,#d8962a);box-shadow:0 4px #5a3410,0 8px 24px #00000059;color:#4a2808;font-family:inherit;pointer-events:none;transition:transform .45s cubic-bezier(.2,1.4,.4,1)}#ach-banner.in{transform:translate(-50%)}#ach-banner .ic{width:44px;height:44px;border-radius:10px;background:#fff6d8;border:2px solid #7a4a10;display:flex;align-items:center;justify-content:center}#ach-banner .ic img{width:32px;height:32px;image-rendering:pixelated}#ach-banner .k{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#8a4a10}#ach-banner .t{font-size:19px;font-weight:700;text-shadow:0 1px 0 #fff3b0}#ach-banner .d{font-size:12px;color:#6a3a10}#ach-banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 45%,transparent 60%);background-size:250% 100%;animation:ach-shine 1.6s ease-out .3s 1 both}@keyframes ach-shine{0%{background-position:120% 0}to{background-position:-60% 0}}#ranch-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:55;background:#140c1873;display:flex;align-items:center;justify-content:center}#ranch-name{width:340px;padding:18px 20px 16px;text-align:center;animation:pop .25s ease-out}#ranch-name .pet{width:96px;height:96px;image-rendering:pixelated;display:block;margin:0 auto 4px;animation:bob .5s infinite alternate}#ranch-name h3{margin:0 0 4px;font-size:21px;color:var(--wood)}#ranch-name p{margin:0 0 10px;font-size:14px;color:var(--ink2)}#ranch-name input{width:100%;box-sizing:border-box;font:700 20px Trebuchet MS,sans-serif;text-align:center;padding:6px 8px;border:3px solid var(--wood2);border-radius:6px;background:#fff8e4;color:var(--ink);outline:none}#ranch-name input:focus{border-color:var(--gold)}#ranch-name .btns{display:flex;gap:10px;justify-content:center;margin-top:12px}#ranch-card{position:absolute;left:50%;top:14px;transform:translate(-50%);z-index:25;pointer-events:none;display:flex;gap:12px;align-items:center;padding:10px 16px 10px 10px;min-width:250px;animation:pop .2s ease-out;transition:opacity .4s}#ranch-card.out{opacity:0}#ranch-card img{width:64px;height:64px;image-rendering:pixelated;background:radial-gradient(#fff3d6,#e8cf98);border:3px solid var(--wood2);border-radius:8px}#ranch-card .nm{font-weight:700;font-size:19px;color:var(--wood)}#ranch-card .kind{font-size:13px;color:var(--ink2)}#ranch-card .hearts{font-size:17px;letter-spacing:1px;color:#d8344a;text-shadow:0 1px 0 #fff3d6}#ranch-card .hearts .off{color:#b9a07a}#ranch-card .hbar{display:inline-block;vertical-align:middle;width:46px;height:6px;margin-left:8px;background:#e8d6b0;border:2px solid var(--wood2);border-radius:4px;overflow:hidden}#ranch-card .hbar i{display:block;height:100%;background:linear-gradient(#ff9ab8,#d8344a)}#ranch-card .st{font-size:13px;color:var(--ink)}#ranch-card .st .ok{color:#2f7a2f;font-weight:700}#ranch-card .st .no{color:#b8302a;font-weight:700}#ranch-place{position:absolute;left:50%;bottom:112px;transform:translate(-50%);z-index:25;pointer-events:none;padding:10px 18px;font-size:16px;text-align:center;animation:pop .25s ease-out}#ranch-place b{color:var(--wood);font-size:18px}#ranch-place .keys{font-size:13px;color:var(--ink2);margin-top:2px}#ranch-place.bad b{color:var(--red)}.hv-off{width:min(1040px,97vw);background:linear-gradient(#fbefd0,#efd7a2)}.hv-off-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:8px}.hv-off-head h2{margin:0;font:900 30px Georgia,serif;color:#6b3f22;text-shadow:0 2px 0 #fff3d6,0 0 18px rgba(255,190,90,.5)}.hv-sub{color:var(--ink2);font-style:italic}.hv-flames{display:flex;gap:8px;margin-right:50px}.hv-flame{width:22px;height:30px;border-radius:50% 50% 45% 45%/62% 62% 38% 38%;background:radial-gradient(circle at 50% 75%,#8a8290,#4a4450);border:2px solid var(--outline);opacity:.55}.hv-flame.on{opacity:1;background:radial-gradient(circle at 50% 72%,#fff07a 0,#fff07a 22%,#f6a43a 45%,#d2542a 80%);box-shadow:0 0 14px #ffb34a;animation:hvFlick .9s ease-in-out infinite alternate}@keyframes hvFlick{0%{transform:scale(1) rotate(-2deg)}to{transform:scale(1.08,1.12) rotate(2deg)}}.hv-tabs .tab{display:flex;align-items:center;gap:6px}.hv-tabs .tab small{color:var(--ink2);font-weight:400}.hv-tabs .tab.hv-done{background:linear-gradient(#fff3b0,#f6d470)}.hv-off-body{display:flex;flex-direction:column;gap:10px}.hv-unlock{padding:6px 12px;background:#fff3d6;border:2px dashed var(--wood3);border-radius:6px;color:var(--ink2)}.hv-unlock.done{background:linear-gradient(#fff6c8,#f6d470);border-style:solid;color:#6b3f22;font-weight:700}.hv-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hv-card{position:relative;background:#fff8e4;border:3px solid var(--wood3);border-radius:8px;padding:26px 10px 8px;cursor:pointer;transition:transform .12s,box-shadow .12s}.hv-card:hover{transform:translateY(-2px)}.hv-card.sel{border-color:var(--wood);box-shadow:0 0 0 3px var(--rib),0 4px #0003}.hv-card.done{background:linear-gradient(#fffbe8,#fbeab0)}.hv-ribbon{position:absolute;left:-8px;top:4px;right:30%;height:22px;background:var(--rib);border:2px solid var(--outline);border-left:none;color:#fff;font-weight:900;font-size:15px;padding:0 10px 0 14px;display:flex;align-items:center;text-shadow:0 1px 0 rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.5);clip-path:polygon(0 0,100% 0,calc(100% - 10px) 50%,100% 100%,0 100%)}.hv-ribbon:before{content:"";position:absolute;left:0;bottom:-8px;border:4px solid #2a1f2d;border-left-color:transparent;border-bottom-color:transparent}.hv-card.done .hv-ribbon:after{content:"✦ complete";margin-left:8px;font-size:12px;color:#fff6c0}.hv-slots{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.hv-slot{width:48px;height:48px;position:relative;display:flex;align-items:center;justify-content:center;background:#e9d6aa;border:2px solid var(--wood3);border-radius:50%}.hv-slot img.icon{filter:grayscale(1) brightness(.55) opacity(.55)}.hv-slot.on{background:radial-gradient(#fff6c0,#f6c445);border-color:#a8641f;box-shadow:0 0 10px #ffc850cc}.hv-slot.on img.icon{filter:none}.hv-slot.skip{opacity:.35}.hv-slot .n{position:absolute;right:-2px;bottom:-4px;font:700 13px Trebuchet MS;color:#fff;text-shadow:-1px -1px 0 #2a1f2d,1px -1px 0 #2a1f2d,-1px 1px 0 #2a1f2d,1px 1px 0 #2a1f2d}.hv-slot .q{position:absolute;left:-2px;bottom:-2px;width:16px;height:16px;image-rendering:pixelated}.hv-slot .chk{position:absolute;right:-4px;top:-6px;color:#fff;background:#4f9a3a;border:2px solid var(--outline);border-radius:50%;width:18px;height:18px;font-size:11px;display:flex;align-items:center;justify-content:center}.hv-slot.hv-pop{animation:hvPop .5s ease-out}@keyframes hvPop{0%{transform:scale(.5)}60%{transform:scale(1.25)}to{transform:none}}.hv-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-weight:700;color:var(--ink2)}.hv-foot small{font-weight:400}.hv-reward{display:flex;align-items:center;gap:4px;background:#fff3d6;border:2px solid var(--wood3);border-radius:12px;padding:0 8px}.hv-coin{display:inline-block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff07a,#e8a02f 60%,#a8641f);border:2px solid #6a3a10;vertical-align:middle}.hv-coin.big{width:30px;height:30px}.hv-card.hv-complete{animation:hvGlow 1.4s ease-out}@keyframes hvGlow{0%{box-shadow:0 0 #ffdc78e6;transform:scale(1)}30%{box-shadow:0 0 40px 18px #ffd264d9;transform:scale(1.04)}to{box-shadow:0 0 #ffdc7800;transform:none}}.hv-inv{background:#fff3d6;border:3px solid var(--wood3);border-radius:8px;padding:8px}.hv-invhint{color:var(--ink2);font-style:italic;margin:0 0 6px}.hv-grid{grid-template-columns:repeat(12,58px)}.hv-grid .slot.hv-match{box-shadow:0 0 0 3px #ffd36a,0 0 14px #ffb34a;animation:hvPulse 1s ease-in-out infinite alternate}.hv-grid .slot.hv-match2{box-shadow:0 0 0 2px #e8c88a}.hv-grid .slot.hv-dim{opacity:.45}.hv-grid .slot.hv-shake{animation:hvShake .3s}@keyframes hvPulse{0%{filter:brightness(1)}to{filter:brightness(1.15)}}@keyframes hvShake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.hv-goldpay{display:flex;align-items:center;gap:12px;margin-bottom:8px}.btn.hv-pulse{animation:hvPulse .8s ease-in-out infinite alternate}.hv-fly{position:fixed;z-index:90;pointer-events:none;transition:left .38s cubic-bezier(.4,-.3,.6,1),top .38s cubic-bezier(.4,-.3,.6,1),transform .38s,opacity .38s}.hv-spark{position:fixed;z-index:91;width:6px;height:6px;pointer-events:none;border-radius:1px;animation:hvSpark .85s ease-out forwards;box-shadow:0 0 6px #fff3a0}@keyframes hvSpark{0%{transform:translate(0) scale(1.4);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.2) rotate(180deg);opacity:0}}.hv-judge{width:min(860px,96vw)}.hv-table{display:flex;gap:8px;justify-content:center;padding:12px;margin-bottom:8px;background:linear-gradient(#a8703f,#7a4b33);border:3px solid var(--outline);border-radius:8px;box-shadow:inset 0 3px #ffffff40}.hv-tslot.on{box-shadow:0 0 12px #ffd36a;cursor:pointer}.hv-results{width:min(560px,94vw);text-align:center}.hv-win{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:24px;color:#a8541f;animation:pop .6s ease-out}.hv-win img{width:64px;height:64px;image-rendering:pixelated;filter:drop-shadow(0 0 10px #ffd36a)}.hv-rows{display:flex;flex-direction:column;gap:4px;margin:8px 0;text-align:left}.hv-rrow{display:flex;gap:10px;align-items:center;padding:5px 10px;background:#fff3d6;border:2px solid var(--wood3);border-radius:6px;animation:toastIn .35s ease-out backwards}.hv-rrow.you{background:linear-gradient(#fff6c8,#f6d470);border-color:var(--wood2)}.hv-rrow .m{width:24px;font-size:18px;text-align:center}.hv-rrow .t{margin-left:auto;color:var(--ink2)}.hv-prize{font-weight:700;color:#7a4a10;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.hv-mc{width:min(560px,94vw)}.hv-dests{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hv-dest{padding:12px;background:#fff3d6;border:3px solid var(--wood3);border-radius:8px;cursor:pointer;font-weight:700;font-size:18px}.hv-dest small{display:block;font-weight:400;font-size:13px;color:var(--ink2)}.hv-dest:hover{background:#fffbe8;border-color:var(--wood2);transform:translateY(-1px)}.hv-dest.here{opacity:.45;cursor:default}#hv-ending{position:absolute;top:0;right:0;bottom:0;left:0;z-index:46;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#ffaa508c,#281218eb 70%);animation:fadeIn 1.2s ease-out}#hv-ending .panel{width:min(720px,94vw);padding:22px 28px;text-align:center}#hv-ending h1{margin:0;font:900 40px Georgia,serif;color:#a8541f;text-shadow:0 3px 0 #fff3d6,0 0 30px rgba(255,180,80,.8)}#hv-ending .sub{font:italic 18px Georgia,serif;color:var(--ink2);margin:6px 0 14px}.hv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.hv-stat{background:#fff3d6;border:2px solid var(--wood3);border-radius:6px;padding:6px}.hv-stat b{display:block;font-size:22px;color:#7a4a10}.hv-friends{display:flex;justify-content:center;gap:10px;margin:8px 0 14px}.hv-friends div{display:flex;flex-direction:column;align-items:center;font-size:13px;font-weight:700}.hv-friends img{width:56px;height:56px;image-rendering:pixelated;border:2px solid var(--wood2);border-radius:4px;background:#c48a4a}.hv-stamp{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:5;pointer-events:none;padding:14px 30px;text-align:center;background:radial-gradient(#fffbe8,#f6d470);border:4px solid var(--outline);border-radius:12px;box-shadow:0 0 0 4px var(--rib),0 0 60px 20px #ffd26ebf;animation:hvStamp .55s cubic-bezier(.2,1.6,.4,1) backwards}.hv-stamp .t{font:900 26px Georgia,serif;color:#6b3f22;text-shadow:0 2px 0 #fff3d6;white-space:nowrap}.hv-stamp .r{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px;font-size:18px;color:#7a4a10}.hv-stamp .x{margin-top:6px;font:italic 700 18px Georgia,serif;color:#a8541f}.hv-stamp.out{transition:opacity .45s,transform .45s;opacity:0;transform:translate(-50%,-60%) scale(.9)}@keyframes hvStamp{0%{transform:translate(-50%,-50%) scale(2.2) rotate(-6deg);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.hv-howto{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;padding:6px 12px;background:linear-gradient(#fffbe8,#fff1c4);border:2px solid #e8c88a;border-radius:6px;color:var(--ink2);font-size:14px}.hv-howto b{color:#6b3f22}.hv-howto i{color:#a8641f;font-style:normal;font-weight:700}.hv-off{max-height:94vh}.hv-off .body,.hv-off-body{overflow-y:auto;min-height:0}.ev-cart{width:min(860px,96vw);background:linear-gradient(#fbefd8,#f0d6b0)}.ev-cart h2{color:#6a3a7a!important}.ev-hint{margin-top:8px;color:var(--ink2);font-style:italic;font-size:14px}.lib-menu{width:min(980px,96vw);background:linear-gradient(#f6ead2,#e8d2a8)}.lib-head h2{margin:0;font:900 28px Georgia,serif;color:#4a2f5a;text-shadow:0 2px 0 #fff3d6}.lib-sub{color:var(--ink2);font-style:italic;margin-bottom:8px}.lib-shelf{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:10px;background:linear-gradient(#7a4b33,#5a3a2c);border:3px solid var(--outline);border-radius:8px;box-shadow:inset 0 -6px #4a2f27}.lib-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;background:#3a2418;border:2px solid #8a5a34;border-radius:6px;color:#c8b08a;font-size:11px;text-align:center;min-height:74px}.lib-slot img{width:40px;height:40px;image-rendering:pixelated;filter:brightness(0) opacity(.45)}.lib-slot.on{background:radial-gradient(#fff6d8,#f0d48a);color:#4a2f27;font-weight:700;box-shadow:0 0 10px #ffd26e99}.lib-slot.on img{filter:none}.lib-slot.keep.on{background:radial-gradient(#fff0f6,#f2c0d8)}.lib-miles{display:flex;gap:8px;margin:10px 0}.lib-mile{flex:1;display:flex;gap:8px;align-items:center;padding:6px 10px;background:#fff3d6;border:2px dashed var(--wood3);border-radius:6px;font-size:13px;color:var(--ink2)}.lib-mile b{font-size:20px;color:#a8641f}.lib-mile.got{border-style:solid;background:linear-gradient(#fff6c8,#f6d470);color:#6b3f22}.lib-mile.got b:after{content:" ✓";font-size:14px;color:#2f7a2f}.lib-inv{background:#fff3d6;border:3px solid var(--wood3);border-radius:8px;padding:8px}.lib-inv .slot.lib-ok{box-shadow:0 0 0 3px #ffd36a,0 0 14px #ffb34a}.lib-inv .slot.lib-dim{opacity:.45}
