/*! © 2026 Hamster - 0967278663. Bảo lưu mọi quyền. Nghiêm cấm sao chép, sửa đổi hoặc phân phối khi chưa được phép. */
:root{--ink: #1a1c2c;--ink-2: #29304d;--ink-3: #333c57;--line: #566c86;--edge: #0d0e18;--paper: #f4f4f4;--paper-dim: #a9bccb;--gold: #ffcd75;--lotus: #ff9db5;--vermilion: #b13e53;--vermilion-hi: #cf5168;--vermilion-lo: #7c2a3c;--water: #73eff7;--male: #7cc4ff;--pixel: "VT323", "Courier New", ui-monospace, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box;border-radius:0}html,body{height:100%;margin:0}body{background:var(--ink);color:var(--paper);font:19px/1.2 var(--pixel);overflow:hidden;-webkit-font-smoothing:none;font-smooth:never}button,input,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--pixel);font-weight:400;margin:0}b,strong{font-weight:400;color:var(--gold)}[hidden]{display:none!important}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.muted{color:var(--paper-dim);font-weight:400}.small{font-size:17px}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}canvas{image-rendering:pixelated}#app{display:grid;grid-template-columns:minmax(0,1fr) 372px;height:100dvh}#stage{position:relative;min-width:0;overflow:hidden;background:var(--ink)}#scene{position:absolute;left:0;top:0;display:block;touch-action:manipulation}.topbar{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;pointer-events:none;flex-wrap:wrap}.brand{padding:5px 10px 6px;background:var(--ink);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--gold);margin:4px}.brand h1{font-size:30px;line-height:1;color:var(--gold)}.brand p{margin:1px 0 0;font-size:16px;color:var(--paper)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:4px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 3px;background:var(--ink);box-shadow:0 0 0 2px var(--edge);font-size:17px;color:var(--paper)}.chip b{font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;background:#888;display:inline-block}.dot.live{background:#a7f070}.dot.off{background:#ef7d57}.actions{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:12px}.away-list{list-style:none;margin:10px 0 0;padding:0;font-size:19px}.away-list li{padding:3px 0 3px 12px;box-shadow:inset 3px 0 0 var(--line);margin-bottom:5px;overflow-wrap:anywhere}.away-list li.good{box-shadow:inset 3px 0 #a7f070}.away-list li.bad{box-shadow:inset 3px 0 #ef7d57}.away-list li.gold{box-shadow:inset 3px 0 0 var(--gold);color:var(--gold)}.join-login{display:block;margin-top:12px}.acc-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:14px 0 0}.account-cta{display:block;width:100%;margin-top:7px;padding:3px 8px 5px;border:0;background:var(--gold);color:var(--ink);font-size:17px;cursor:pointer;text-align:left;box-shadow:0 0 0 2px var(--edge)}.account-cta:hover{background:#ffe9a8}.credit-donate{font-size:inherit}.donate-qr{display:block;width:auto;height:min(52dvh,420px);max-width:100%;margin:10px auto;object-fit:contain}a.btn{text-decoration:none}.sound-chip{pointer-events:auto;gap:8px}.sound-chip button{background:none;border:0;padding:0;cursor:pointer;color:var(--paper);font-size:17px;white-space:nowrap}.sound-chip button:hover{color:var(--gold)}.sound-chip input[type=range]{width:72px;height:14px;padding:0;background:none;box-shadow:none;accent-color:#ffcd75}.quests{margin:8px 12px 4px;padding:8px 10px;background:var(--ink-2);box-shadow:0 0 0 2px var(--line)}.quest-head{display:flex;justify-content:space-between;gap:8px;color:var(--gold);font-size:18px;margin-bottom:4px;flex-wrap:wrap}.quest-head .muted{font-size:16px}.quest{display:flex;justify-content:space-between;gap:10px;padding:2px 0;font-size:17px}.quest-reward{flex:none;color:var(--paper-dim);font-size:16px}.quest.done .quest-text{color:#a7f070}.book{margin:10px 12px 4px;padding:6px 10px;background:var(--ink-2);box-shadow:0 0 0 2px var(--line)}.book summary{cursor:pointer;color:var(--gold);font-size:18px}.book-hint{margin:6px 0}.book-grid{display:grid;grid-template-columns:repeat(4,44px);justify-content:space-between;gap:6px}.book-cell{width:44px;height:44px;background:var(--ink)}.book-cell.locked canvas{filter:brightness(0) opacity(.5)}.care-row{display:flex;flex-wrap:wrap;gap:10px;padding:2px}.care-hint{margin-top:6px}.rare-name{color:var(--gold)}.feed .k-rare time{color:var(--gold)}#alerts{position:absolute;left:50%;bottom:84px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 24px)}.alert-btn{padding:4px 12px 6px;border:0;background:var(--gold);color:var(--ink);font-size:20px;cursor:pointer;box-shadow:0 0 0 2px var(--edge),inset 2px 2px #ffe9a8,inset -2px -2px #d99a45,0 4px 0 2px var(--edge);animation:alert-blink 1s steps(2) infinite}.alert-btn b{color:var(--vermilion-lo)}.alert-btn:active{transform:translateY(2px)}.alert-chip{padding:1px 8px 3px;background:var(--ink);color:#a7f070;font-size:17px;box-shadow:0 0 0 2px var(--edge)}@keyframes alert-blink{50%{background:#ffe9a8}}.feed .k-note time{color:var(--paper-dim)}.feed .k-threat time{color:var(--orange, #ef7d57)}.feed .k-disease time{color:#a7f070}.feed .k-poacher time{color:#ef7d57}.feed .k-caught time{color:var(--gold)}.release-btn{display:flex;align-items:center;gap:6px;min-height:52px;padding:3px 16px 3px 6px;white-space:nowrap;border:0;background:var(--vermilion);color:#fff;font-size:22px;cursor:pointer;box-shadow:0 0 0 2px var(--edge),inset 2px 2px 0 var(--vermilion-hi),inset -2px -3px 0 var(--vermilion-lo),0 5px 0 2px var(--edge)}.release-btn:hover{background:var(--vermilion-hi)}.vip-btn{background:#6b3f0a;box-shadow:0 0 0 2px var(--edge),inset 2px 2px #a8701e,inset -2px -3px #452806,0 5px 0 2px var(--edge);color:var(--gold)}.vip-btn:hover{background:#855214}.vip-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.vip-soon{padding:2px 9px 4px;background:var(--gold);color:var(--ink);font-size:18px;box-shadow:0 0 0 2px var(--edge)}.vip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.vip-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 7px;background:var(--ink-2);box-shadow:0 0 0 2px #a8701e;text-align:center;font-size:16px;line-height:1.05}.vip-card canvas.vip-art{background:#257179}.vip-card.sky canvas.vip-art{background:#41a6f6}.vip-lock{position:absolute;top:2px;right:2px}.release-btn:active{transform:translateY(3px);box-shadow:0 0 0 2px var(--edge),inset 2px 2px 0 var(--vermilion-lo),0 2px 0 2px var(--edge)}.release-btn canvas{flex:none}.donate-btn{background:var(--gold);color:var(--ink);box-shadow:0 0 0 2px var(--edge),inset 2px 2px #ffe9a8,inset -2px -3px #c98a3a,0 5px 0 2px var(--edge);animation:donate-blink 1.6s steps(1) infinite}.donate-btn:hover,.donate-btn:focus-visible{background:#ffe9a8;animation:none}@keyframes donate-blink{50%{background:var(--ink);color:var(--gold);box-shadow:0 0 0 2px var(--edge),inset 0 0 0 2px var(--gold),0 5px 0 2px var(--edge)}}#tooltip{position:absolute;pointer-events:none;z-index:3;padding:3px 7px 4px;background:var(--ink);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--line);font-size:17px;white-space:nowrap}#banner{position:absolute;top:86px;left:50%;transform:translate(-50%);padding:3px 10px;background:var(--vermilion);box-shadow:0 0 0 2px var(--edge);color:#fff;font-size:18px;white-space:nowrap}#panel{position:relative;display:flex;flex-direction:column;min-height:0;background:var(--ink);border-left:4px solid var(--edge);box-shadow:inset 2px 0 0 var(--line)}#sheetHandle{display:none}#identity{padding:10px 14px;border-bottom:2px solid var(--line)}.id-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.id-name{font-size:22px;color:var(--gold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.id-stats{display:flex;gap:12px;margin-top:3px;font-size:17px;color:var(--paper-dim);flex-wrap:wrap}.id-stats b{color:var(--paper);font-variant-numeric:tabular-nums}.tabs{display:flex;border-bottom:2px solid var(--line);flex:none}.tabs button{flex:1;padding:8px 1px 7px;background:none;border:0;box-shadow:inset 0 -3px 0 transparent;color:var(--paper-dim);cursor:pointer;font-size:18px;white-space:nowrap}.tabs button:hover{color:var(--paper);background:var(--ink-2)}.tabs button.active{color:var(--gold);background:var(--ink-2);box-shadow:inset 0 -3px 0 var(--gold)}.badge{display:inline-block;min-width:16px;padding:0 3px;background:var(--lotus);color:var(--ink);font:15px/16px var(--pixel);text-align:center}.tab-body{flex:1;min-height:0;overflow-y:auto;padding:4px 0 12px;overscroll-behavior:contain;scrollbar-color:var(--line) var(--ink)}.feed{list-style:none;margin:0;padding:0}.feed li{padding:6px 14px;border-bottom:2px dotted var(--ink-3);font-size:18px;overflow-wrap:anywhere}.feed li.clickable{cursor:pointer}.feed li.clickable:hover{background:var(--ink-2)}.feed time{display:block;font-size:16px;color:var(--paper-dim)}.feed .k-birth time{color:var(--gold)}.feed .k-pair time{color:var(--lotus)}.feed .k-release time{color:var(--water)}.feed .fresh{animation:fresh 1.2s steps(4)}@keyframes fresh{0%{background:var(--ink-3)}to{background:transparent}}.empty{padding:22px 18px;text-align:center;color:var(--paper-dim)}#tab-chat{display:flex;flex-direction:column;padding:0;overflow:hidden}.chat-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;list-style:none;margin:0;padding:6px 0;scrollbar-color:var(--line) var(--ink)}.chat-list li{padding:4px 14px;font-size:19px;overflow-wrap:anywhere}.chat-list li.mine{background:var(--ink-2)}.chat-meta{display:flex;align-items:baseline;gap:6px;font-size:16px}.chat-name{color:var(--gold);background:none;border:0;padding:0;cursor:pointer;font-size:18px}.chat-name:hover{text-decoration:underline}.chat-meta .mono,.chat-meta time{color:var(--paper-dim);font-size:15px}.chat-form{flex:none;display:flex;gap:8px;padding:8px 12px;border-top:2px solid var(--line)}.chat-form input{flex:1;min-width:0}.chat-chip{display:none;pointer-events:auto;border:0;cursor:pointer}.credit{flex:none;padding:6px 14px;border-top:2px solid var(--line);font-size:15px;color:var(--paper-dim)}.credit a{color:inherit}.section-title{padding:10px 14px 4px;font-size:17px;color:var(--paper-dim)}.list-item{display:flex;align-items:center;gap:10px;width:100%;padding:5px 14px;background:none;border:0;text-align:left;cursor:pointer}.list-item:hover{background:var(--ink-2)}.list-item canvas{flex:none}.list-item .grow{flex:1;min-width:0}.list-item .t1{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:19px}.list-item .t2{display:block;font-size:16px;color:var(--paper-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item.dead{opacity:.55}.mono{font-family:var(--pixel);font-size:17px}.sex-F{color:var(--lotus)}.sex-M{color:var(--male)}.request{margin:8px 12px;padding:8px 10px;background:var(--ink-2);box-shadow:0 0 0 2px var(--line);font-size:18px}.request .row{margin-top:8px}.rank{width:24px;text-align:center;color:var(--paper-dim);font-variant-numeric:tabular-nums;flex:none}.rank.top{color:var(--gold)}.me-row{background:var(--ink-2)}.search{padding:10px 14px}.search label,dialog label{display:block;margin:10px 0 4px;font-size:18px}.search label{margin-top:0}.row{display:flex;gap:8px;align-items:center}.row input{flex:1;min-width:0}input,textarea{width:100%;padding:5px 8px 6px;border:0;background:var(--edge);box-shadow:inset 0 0 0 2px var(--line);resize:vertical;font-size:19px}input:focus,textarea:focus{outline:0;box-shadow:inset 0 0 0 2px var(--gold)}.btn{padding:4px 12px 6px;min-height:34px;border:0;background:var(--ink-3);cursor:pointer;font-size:18px;white-space:nowrap;box-shadow:0 0 0 2px var(--edge),inset 2px 2px #4c587c,inset -2px -2px #232a40}.btn:hover{background:#414c6e}.btn:active{box-shadow:0 0 0 2px var(--edge),inset 2px 2px #232a40}.btn.primary{background:var(--vermilion);color:#fff;box-shadow:0 0 0 2px var(--edge),inset 2px 2px 0 var(--vermilion-hi),inset -2px -2px 0 var(--vermilion-lo)}.btn.primary:hover{background:var(--vermilion-hi)}.btn.ghost{background:var(--ink);box-shadow:0 0 0 2px var(--line)}.btn:disabled{opacity:.55;cursor:default}.btn.small-btn{min-height:28px;padding:2px 9px 4px;font-size:17px}.link{background:none;border:0;padding:0;color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:2px;font-size:17px;text-align:left}.error{margin:8px 0 0;color:#ff9d85;font-size:18px}#card{position:absolute;inset:0;z-index:2;background:var(--ink);overflow-y:auto;overscroll-behavior:contain}.card-head{display:flex;gap:12px;align-items:center;padding:12px 14px 10px;position:sticky;top:0;background:var(--ink);border-bottom:2px solid var(--line);z-index:1}.card-portrait{flex:none;background:var(--teal, #257179);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--line);margin:4px}.card-portrait.sky{background:#41a6f6}.card-head .grow{flex:1;min-width:0}.card-head h2{font-size:26px;line-height:1.05;color:var(--gold);overflow-wrap:anywhere}.card-close{flex:none;align-self:flex-start;width:34px;height:34px;background:none;border:0;cursor:pointer;font-size:26px;line-height:1;color:var(--paper-dim)}.card-close:hover{background:var(--ink-2);color:var(--paper)}.copy-id{display:inline-flex;gap:6px;align-items:center;background:none;border:0;padding:0;color:var(--gold);cursor:pointer;font:18px var(--pixel);text-align:left;overflow-wrap:anywhere}.copy-id:hover{text-decoration:underline}.facts{display:grid;grid-template-columns:auto 1fr;gap:1px 14px;margin:0;padding:10px 14px;font-size:19px}.facts dt{color:var(--paper-dim)}.facts dd{margin:0;overflow-wrap:anywhere}.wish{margin:10px 14px 6px;padding:7px 10px;background:var(--ink-2);box-shadow:inset 3px 0 0 var(--gold);font-size:19px;overflow-wrap:anywhere}.memorial{margin:10px 14px 6px;padding:7px 10px;background:var(--ink-2);font-size:18px}.card-section{padding:6px 14px}.card-section h3{font-size:17px;color:var(--paper-dim);margin-bottom:4px}.kin{display:flex;flex-wrap:wrap;gap:6px}.kin button{background:var(--ink-2);border:0;box-shadow:0 0 0 2px var(--line);padding:1px 7px 3px;margin:2px;cursor:pointer;font:16px var(--pixel)}.kin button:hover{background:var(--ink-3)}.kin button.gone{opacity:.55}.life-log{list-style:none;margin:0;padding:0;font-size:17px}.life-log li{padding:2px 0;overflow-wrap:anywhere}.life-log time{color:var(--paper-dim);margin-right:6px;font-variant-numeric:tabular-nums}.candidate{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:17px}.candidate .grow{flex:1;min-width:0;overflow-wrap:anywhere}.hint{font-size:17px;color:var(--paper-dim);margin:0}dialog{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:18px;border:0;background:var(--ink);color:var(--paper);overflow-y:auto;box-shadow:0 0 0 3px var(--edge),0 0 0 6px var(--gold),0 0 0 9px var(--edge)}dialog::backdrop{background:#0d0e18b3}dialog h2{font-size:28px;color:var(--gold);margin-bottom:4px}dialog p{margin:5px 0}.dlg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.restore{margin-top:12px;font-size:18px;color:var(--paper-dim)}.restore summary{cursor:pointer}.restore label{color:var(--paper)}.species-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0 0;padding:0;border:0}.species-opt{display:block;margin:0!important;cursor:pointer}.species-opt input{position:absolute;opacity:0;width:1px}.species-opt .box{display:flex;flex-direction:column;align-items:center;gap:2px;height:100%;padding:5px 1px 6px;background:var(--ink-2);box-shadow:0 0 0 2px var(--line);text-align:center;font-size:16px;line-height:1}.species-opt:hover .box{background:var(--ink-3)}.species-opt input:checked+.box{background:var(--ink-3);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--gold);color:var(--gold)}.species-opt input:focus-visible+.box{outline:2px solid var(--water);outline-offset:4px}#toasts{position:fixed;left:18px;top:134px;z-index:50;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 36px))}.toast{padding:7px 10px 8px;background:var(--ink-2);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--gold);font-size:18px;animation:rise .2s steps(3);overflow-wrap:anywhere}.toast.err{background:var(--vermilion-lo);box-shadow:0 0 0 2px var(--edge),0 0 0 4px var(--orange, #ef7d57)}.toast .row{margin-top:8px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.actions{gap:8px}.release-btn{min-height:46px;gap:2px;padding:3px 8px 3px 2px;font-size:18px}.release-btn canvas{width:30px!important;height:30px!important}}@media(max-width:400px){.actions{gap:6px}.release-btn{padding:3px 5px 3px 1px;font-size:16px}.release-btn canvas{width:24px!important;height:24px!important}.donate-btn{padding-left:5px}.donate-btn canvas{display:none}}@media(max-width:760px){#app{display:block}#stage{position:absolute;inset:0}.topbar{padding:6px 8px;gap:4px}.brand h1{font-size:24px}.brand p{font-size:15px}.chip{font-size:16px}.chat-chip{display:inline-flex}#panel{position:fixed;left:0;right:0;bottom:0;height:62dvh;border-left:0;border-top:4px solid var(--edge);box-shadow:inset 0 2px 0 var(--line);z-index:10;transition:transform .2s steps(5);overflow:hidden}#panel.collapsed{transform:translateY(calc(62dvh - 46px))}#sheetHandle{display:flex;justify-content:center;align-items:center;flex:none;width:100%;height:20px;background:none;border:0;cursor:pointer}#sheetHandle span{width:40px;height:4px;background:var(--line)}#identity{padding:0 14px 8px}.actions{bottom:calc(60px + env(safe-area-inset-bottom))}#alerts{bottom:calc(120px + env(safe-area-inset-bottom))}.alert-btn{font-size:18px}.vip-grid{gap:8px}#toasts{top:150px}.species-opt .box{font-size:15px}dialog{padding:14px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.donate-btn{animation:none}}
