:root{
  --ink:#050505;
  --muted:#777;
  --faint:#d8d8d8;
  --paper:#fff;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#fff;color:var(--ink);font-family:"Courier New",Courier,monospace}
body{position:fixed;inset:0;-webkit-user-select:none;user-select:none;touch-action:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0}
.hidden{display:none!important}
.app{position:relative;width:100%;height:100%;background:#fff;overflow:hidden}
.topbar{height:66px;padding:20px 24px 0;display:grid;grid-template-columns:80px 1fr 96px;align-items:start;position:relative;z-index:30}
.top-action{font-size:16px;height:34px;line-height:34px;letter-spacing:.02em}
#infoBtn{text-align:left;font-family:Arial,sans-serif;font-size:36px;font-weight:300;line-height:25px}
#itemsBtn{text-align:right;font-size:14px}
.ghost{cursor:pointer}
.habitat{position:absolute;left:0;right:0;top:88px;height:48%;min-height:330px;max-height:500px;overflow:hidden;touch-action:none}
.world-bg{position:absolute;inset:0;background-size:100% 100%;opacity:0;transition:opacity .6s linear;image-rendering:auto;pointer-events:none}
.room-bg{background-image:url('items/room.jpg');filter:blur(.25px) saturate(.8);transform:scale(1.1)}
.jungle-bg{background-image:url('items/jungle.jpg');filter:blur(.3px) saturate(.7);transform:scale(1.1)}
.facility-bg{background-image:url('items/facility.jpg');filter:blur(.25px) saturate(.5);transform:scale(1.1)}
.app.stage-room .room-bg{opacity:.28}
.app.stage-jungle .room-bg{opacity:0}.app.stage-jungle .jungle-bg{opacity:.38}
.app.stage-facility .room-bg,.app.stage-facility .jungle-bg{opacity:0}.app.stage-facility .facility-bg{opacity:.34}
.monkey-wrap{position:absolute;left:50%;top:49%;width:min(52vw,250px);height:min(52vw,250px);transform:translate(-50%,-50%);z-index:10;touch-action:none;transform-origin:50% 75%;will-change:transform}
.monkey-wrap img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none;filter:saturate(.94) contrast(1.02)}
.monkey-wrap.pet{transform:translate(-50%,-49%) scaleY(.96) scaleX(1.015)}
.monkey-wrap.happy{animation:hop .28s steps(2,end)}
@keyframes hop{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-56%)}}
.prop{position:absolute;z-index:7;object-fit:contain;mix-blend-mode:multiply;filter:saturate(.8) contrast(1.03);pointer-events:none}
.banana{width:58px;left:21%;top:63%;transform:rotate(-8deg)}
.brush{width:58px;right:20%;top:66%;transform:rotate(5deg)}
.tire{width:74px;left:22%;top:15%}
.crt{width:80px;right:15%;top:33%}
.pool{width:112px;left:50%;top:70%;transform:translateX(-50%);z-index:4;opacity:.95}
.friend{width:112px;left:9%;top:42%;transform:scaleX(-1);z-index:6}
.float-layer{position:absolute;inset:0;pointer-events:none;z-index:20}
.float{position:absolute;font:14px Arial,sans-serif;color:#111;animation:floatUp .48s linear forwards;pointer-events:none}
@keyframes floatUp{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-36px)}}
.readout{position:absolute;left:0;right:0;top:61%;text-align:center;z-index:25;display:flex;flex-direction:column;align-items:center;gap:15px;padding:0 22px}
.pets{font-size:20px;letter-spacing:.01em}.pps{font-size:14px}.combo{font-size:12px;color:#555;margin-top:-6px}.quick-buy{font-size:16px;letter-spacing:.02em;min-height:42px;padding:10px 14px;margin-top:10px;min-width:190px}.quick-buy:active{opacity:.35}
.toast{position:absolute;left:50%;bottom:11%;transform:translateX(-50%);z-index:55;max-width:82%;text-align:center;font-size:12px;line-height:1.5;background:#fff;padding:10px 12px;opacity:0;pointer-events:none;transition:opacity .1s linear}.toast.show{opacity:1}
.overlay{position:absolute;inset:0;background:#fff;z-index:50;padding:20px 24px 24px;overflow:hidden}
.overlay-top{height:54px;display:grid;grid-template-columns:90px 1fr 110px;align-items:center;font-size:14px;text-align:center}
.overlay-top>button:first-child{text-align:left;font-family:Arial,sans-serif;font-size:34px;line-height:1}.overlay-top>button:last-child{text-align:right;font-size:12px}
.store-list{display:flex;flex-direction:column;margin-top:32px}
.store-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;min-height:60px;border:0;border-bottom:1px solid #efefef;text-align:left;width:100%;font-size:14px}.store-row:last-child{border-bottom:0}.store-row:active{opacity:.35}.store-row.locked{color:#aaa}.store-row .meta{text-align:right;font-size:12px}.store-row .owned{display:block;color:#888;margin-top:2px;font-size:10px}.overlay-footer{position:absolute;bottom:34px;left:24px;right:24px;font-size:10px;color:#999;text-align:center;line-height:1.4}
.info-list{margin-top:36px;display:flex;flex-direction:column}.info-row,.text-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;min-height:56px;border-bottom:1px solid #efefef;width:100%;text-align:left;font-size:13px}.text-row:active{opacity:.35}.danger{margin-top:24px;color:#777;border-bottom:0}.achievement-list{margin-top:20px;display:flex;flex-direction:column;gap:18px;font-size:12px;line-height:1.45}.achievement-item.locked{color:#bbb}.achievement-item b{display:block;font-size:13px;font-weight:normal;margin-bottom:2px}.confirm-pane{position:absolute;inset:0;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px;gap:28px;font-size:14px;line-height:1.65}.confirm-pane .confirm-actions{display:flex;gap:40px}.confirm-pane button{font-size:14px;padding:10px}
@media(max-height:720px){.habitat{top:66px;height:48%;min-height:285px}.readout{top:60%;gap:10px}.monkey-wrap{width:min(46vw,215px);height:min(46vw,215px)}.topbar{height:54px;padding-top:12px}.store-list{margin-top:12px}.store-row{min-height:50px}.overlay{padding-top:10px}}
