:root{color:#213225;background:#16291f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:330px minmax(0,1fr);grid-template-rows:82px minmax(0,1fr);height:100vh;overflow:hidden;border:3px solid #10281d;border-radius:12px;background:#f1ede2}.app-header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 20px 0 24px;border-bottom:1px solid #ddd6c7;background:linear-gradient(180deg,#ffffffbd,#efeadef5),#eee8db}.brand{display:flex;align-items:center;gap:14px;color:#183427}.brand-icon{flex:0 0 auto;width:44px;height:44px;border:1px solid #d8d0bf;border-radius:9px;object-fit:cover;box-shadow:0 1px 2px #10281d1a}.brand h1{margin:0;font-size:clamp(32px,3.1vw,44px);font-weight:780;line-height:1;letter-spacing:0}.header-actions{display:flex;align-items:center;gap:14px}.add-button,.codex-button,.header-button,.time-chip{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:46px;border:1px solid #d8d0bf;border-radius:8px;color:#243226;background:#f7f3ea;box-shadow:inset 0 1px #ffffffb3;font-size:16px;font-weight:540;white-space:nowrap}.add-button{padding:0 22px;border-color:#315d37;color:#fffdf4;background:#3b6b40;font-weight:680}.codex-button{padding:0 16px;border-color:#b9caa7;color:#24422b;background:#eef7e7;font-weight:720}.header-button{padding:0 18px}.time-chip{border-color:transparent;background:transparent;color:#5d5c53;box-shadow:none}.time-chip svg:first-child{color:#e19b22}.sidebar{display:flex;flex-direction:column;min-height:0;padding:18px 14px;background:linear-gradient(180deg,#103021f0,#183f2cf5),#163823;color:#f7faef}.search{display:none}.sidebar-count{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:0 6px 10px;border-bottom:1px solid rgb(255 255 255 / .08)}.sidebar-count span{font-size:16px;font-weight:650}.sidebar-count strong{color:#ffffffbd;font-size:16px;font-weight:500}.sidebar-count button{display:grid;width:40px;height:40px;place-items:center;border:1px solid rgb(255 255 255 / .2);border-radius:8px;color:#e9f5df;background:#ffffff0d}.roster{display:grid;gap:0;min-height:0;overflow:auto;padding:0 0 16px}.empty-pets{display:grid;justify-items:start;gap:6px;margin:12px 4px;padding:14px;border:1px dashed rgb(255 255 255 / .22);border-radius:8px;color:#f7faefdb;background:#ffffff0a}.empty-pets svg{color:#95d778}.empty-pets strong{font-size:15px}.empty-pets p{margin:0;color:#f7faefad;font-size:13px;line-height:1.35}.my-pet-strip{display:grid;gap:6px;margin:10px 0}.my-pet-strip button{display:grid;grid-template-columns:50px 1fr;align-items:center;gap:9px;min-height:54px;border:1px solid rgb(255 255 255 / .1);border-radius:8px;color:#f7faef;background:#ffffff0d;text-align:left}.my-pet-strip span{overflow:hidden;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.roster-item{display:grid;grid-template-columns:58px minmax(0,1fr) 26px 20px;align-items:center;gap:10px;min-height:76px;padding:8px 4px 8px 10px;border:0;border-bottom:1px solid rgb(255 255 255 / .09);border-radius:8px;color:#f8fbf2;text-align:left;background:transparent}.roster-item:hover,.roster-item.selected{background:#ffffff0f}.roster-item.off-screen{color:#f8fbf29e}.roster-item.off-screen .pet-sprite-frame,.roster-item.off-screen .drag-icon{opacity:.48}.roster-item.off-screen small{color:#f0c33cd1}.roster-item span{display:grid;min-width:0;gap:4px}.roster-item strong{overflow:hidden;font-size:16px;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.roster-item small{overflow:hidden;color:#95d778;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.status-icon.green,.status-text{color:#8fcd6f}.status-icon.yellow{color:#f0c33c}.status-icon.purple{color:#b382f0}.status-text{font-size:17px;font-weight:800}.drag-icon{color:#ffffff85}.collapse-button{display:inline-flex;align-items:center;gap:12px;min-height:46px;margin-top:auto;padding:0 14px;border:1px solid rgb(255 255 255 / .1);border-radius:8px;color:#eef6e8;background:#ffffff0a;font-size:15px}.collapse-button svg{rotate:90deg}.park-stage{position:relative;display:grid;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;background:#f1ede2}.park{position:relative;min-height:0;overflow:hidden;background-color:#7fae55;background-position:center;background-size:cover;image-rendering:pixelated}.park:after{position:absolute;inset:0;pointer-events:none;content:"";box-shadow:inset 0 0 0 1px #192a193d}.park-pet{position:absolute;z-index:2;display:grid;justify-items:center;width:112px;border:0;color:#1f2e1e;background:transparent;transform:translate(-50%,-50%);animation:bob 4.4s ease-in-out infinite}.park-pet.selected{z-index:5}.park-pet.selected:before{position:absolute;top:10px;width:68px;height:58px;border:3px solid rgb(255 255 255 / .9);border-radius:50%;content:"";box-shadow:0 0 0 5px #59853b40}.pet-label{max-width:116px;margin-top:-5px;padding:4px 8px;border-radius:999px;color:#243222;background:#fffdefe6;font-size:12px;font-weight:780;box-shadow:0 7px 18px #1d281629;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;overflow:hidden;background:#0a160f7a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.add-modal{position:relative;display:grid;gap:16px;width:min(720px,100%);max-height:min(760px,calc(100dvh - 48px));min-height:0;overflow:auto;padding:20px;border:1px solid #d7cfbd;border-radius:12px;background:linear-gradient(180deg,#ffffffc7,#f6f1e5f5),#f5efe2;box-shadow:0 30px 80px #030a0659}.modal-close{position:absolute;right:14px;top:14px;display:grid;width:34px;height:34px;place-items:center;border:0;color:#39463b;background:transparent}.add-modal header{display:flex;align-items:center;gap:12px;padding-right:36px;color:#1b3929}.add-modal header svg{fill:currentColor}.add-modal h2{margin:0;font-size:28px;line-height:1}.add-modal header p{margin:5px 0 0;color:#617062;font-size:14px}.pet-detail-modal{width:min(520px,100%)}.pet-detail-modal header{align-items:center;padding:10px 38px 10px 8px;border:1px solid #d8d0bf;border-radius:10px;background:linear-gradient(180deg,#fffdf6e0,#eef7e7eb),#f5efe2}.pet-detail-body{display:grid;gap:14px;padding:14px;border:1px solid #d8d0bf;border-radius:10px;background:#fffdf6}.pet-detail-body dl{display:grid;gap:12px;margin:0}.pet-detail-body dt{margin-bottom:5px;color:#5f735b;font-size:12px;font-weight:820;text-transform:uppercase}.pet-detail-body dd{margin:0;overflow-wrap:anywhere;color:#213225;line-height:1.4}.modal-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px;border:1px solid #ded6c7;border-radius:9px;background:#eee8dc}.modal-tabs button{height:40px;border:0;border-radius:7px;color:#39433a;background:transparent;font-weight:760}.modal-tabs button.active{color:#183627;background:#fffdf4;box-shadow:0 1px #ffffffbf}.gallery-picker{display:grid;gap:12px;min-height:0}.gallery-picker label{display:flex;align-items:center;gap:9px;height:42px;padding:0 12px;border:1px solid #d8d0bf;border-radius:8px;color:#66715e;background:#fffdf6}.gallery-picker input{width:100%;border:0;outline:0;color:#1d2f22;background:transparent}.gallery-picker>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:min(360px,42dvh);min-height:0;overflow-y:auto;padding-right:2px;overscroll-behavior:contain}.gallery-picker>div>button{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:10px;min-height:62px;padding:6px 10px;border:1px solid #ded6c7;border-radius:8px;color:#213225;background:#fffdf6;text-align:left}.gallery-picker>div>button:disabled{opacity:.55;cursor:default}.gallery-picker strong,.gallery-picker small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-picker small{color:#6a755f;font-size:12px}.pack-upload{display:grid;gap:10px}.pack-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.pack-upload label{display:grid;justify-items:center;gap:7px;padding:22px;border:1px dashed #9eae86;border-radius:10px;color:#23442c;background:#fbfbef;text-align:center}.pack-upload label span,.pack-upload p{margin:0;color:#65715e;font-size:13px}.customize-step{display:grid;gap:12px;padding:14px;border:1px solid #d8d0bf;border-radius:10px;background:#fffdf6}.back-button{justify-self:start;height:34px;padding:0 11px;border:1px solid #d8d0bf;border-radius:8px;color:#39483b;background:#f6f0e4;font-size:13px;font-weight:760}.customize-preview{display:flex;align-items:center;gap:12px;color:#41513f;font-size:13px;font-weight:740}.customize-step label{display:grid;gap:6px;color:#39483b;font-size:13px;font-weight:780}.customize-step input,.customize-step textarea{width:100%;border:1px solid #d8d0bf;border-radius:8px;outline:0;color:#1d2f22;background:#fff;font:inherit}.customize-step input{height:40px;padding:0 10px}.customize-step textarea{min-height:86px;resize:vertical;padding:10px;line-height:1.35}.confirm-add{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border:1px solid #315d37;border-radius:8px;color:#fffdf4;background:#3b6b40;font-weight:780}.pet-sprite-frame{--pet-scale: 1;display:block;width:calc(192px * var(--pet-scale));height:calc(208px * var(--pet-scale));overflow:hidden;image-rendering:pixelated}.pet-sprite{--sprite-row: 0;--sprite-frames: 6;--sprite-duration: 1.1s;--sprite-delay: 0ms;--sprite-static-x: 0px;--sprite-y: calc(var(--sprite-row) * -208px);--sprite-end-x: calc(var(--sprite-frames) * -192px);display:block;width:192px;height:208px;background-image:var(--sprite-url);background-repeat:no-repeat;background-size:1536px 1872px;image-rendering:pixelated;transform:scale(var(--pet-scale));transform-origin:top left;animation:pet-state var(--sprite-duration) steps(var(--sprite-frames)) infinite;animation-delay:var(--sprite-delay)}.pet-sprite.static{animation:none;background-position:var(--sprite-static-x) var(--sprite-y)}@keyframes pet-state{0%{background-position:0 var(--sprite-y)}to{background-position:var(--sprite-end-x) var(--sprite-y)}}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -5px}}@media(prefers-reduced-motion:reduce){.pet-sprite,.park-pet{animation:none}}@media(max-width:980px){body{overflow:auto;overflow-x:hidden}.app-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(560px,1fr);height:auto;min-height:100vh;overflow:visible;border-radius:0;border:0}.app-header{flex-wrap:wrap;padding:14px}.header-actions{width:100%;max-width:calc(100vw - 28px);overflow-x:auto}.sidebar{max-width:100vw;padding:12px 14px}.roster{grid-auto-flow:column;grid-auto-columns:230px;overflow-x:auto;padding-bottom:6px}.empty-pets,.my-pet-strip{min-width:220px}.collapse-button{display:none}.park-stage{grid-template-rows:560px;max-width:100vw;overflow:hidden}}@media(max-width:560px){.modal-backdrop{padding:12px}.add-modal{max-height:calc(100dvh - 24px);padding:18px}.brand h1{font-size:30px}.add-button,.header-button,.time-chip{height:42px}.gallery-picker>div{grid-template-columns:1fr;max-height:min(330px,38dvh)}.park-stage{grid-template-rows:520px}}
