:root{font-family:system-ui,"Noto Sans KR",sans-serif;color:#24191a;background:#171216;touch-action:manipulation}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100svh;background:radial-gradient(circle at 50% 35%,#4c3547,#171216 70%);display:grid;place-items:center}
button,input{font:inherit}
.device{width:min(96vw,680px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:#fff3e3;border:clamp(8px,2vw,18px) solid #d92f46;box-shadow:0 22px 70px #0009,inset 0 0 0 5px #65131f;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(2px,.7vw,7px);padding:9% 11% 11.5%}
header{width:76%;justify-self:center;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.35rem;font-weight:800;overflow:hidden}
#clock{justify-self:start;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:.2rem}
header button{flex:0 0 1.85rem;width:1.85rem;height:2.1rem;display:grid;place-items:center;padding:0;background:none;border:0;font-size:1rem;line-height:1}.header-actions{min-width:0;justify-self:stretch;display:flex;gap:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.header-actions::-webkit-scrollbar,nav::-webkit-scrollbar{display:none}
.sky{width:94%;justify-self:center;position:relative;isolation:isolate;border-radius:45% 45% 25% 25%;display:grid;grid-template-rows:minmax(0,1fr) auto auto;place-items:center;align-content:stretch;gap:.2rem;padding:.35rem 0 .5rem;background-color:#83c96c;background-image:url("assets/backgrounds/meadow.webp");background-size:cover;background-position:center 54%;overflow:hidden;min-height:0;box-shadow:inset 0 -30px 40px #14241222,inset 0 1px 0 #fff8;transition:filter .8s ease,background-image .45s ease}
.sky:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#fff0 55%,#16201220);pointer-events:none}
.sky>*{position:relative;z-index:1}
.device[data-biome="1"] .sky{background-image:url("assets/backgrounds/waterside.webp")}
.device[data-biome="2"] .sky{background-image:url("assets/backgrounds/forest.webp")}
.device[data-biome="3"] .sky{background-image:url("assets/backgrounds/volcano.webp")}
.device[data-biome="4"] .sky{background-image:url("assets/backgrounds/mountain.webp")}
.device[data-biome="5"] .sky{background-image:url("assets/backgrounds/snowfield.webp")}
.device[data-sleeping="true"] .sky{filter:brightness(.43) saturate(.65);box-shadow:inset 0 0 80px #151936aa}
.egg,#pet{--ground-offset:12px;width:clamp(76px,22%,135px);max-height:100%;align-self:end;aspect-ratio:.78;border-radius:50% 50% 45% 45%;background:linear-gradient(145deg,#fff,#f6d8b5);border:5px solid #523b3c;display:grid;place-items:center;font-size:clamp(1.1rem,4vw,2rem);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 3px 2px #0003);animation:bob 2.2s ease-in-out infinite;position:relative;transform-origin:center bottom}
.egg:active{transform:translateY(var(--ground-offset)) scale(.92)}
.egg-tapped{animation:egg-tap .35s ease,bob 2.2s .35s ease-in-out infinite}
.egg::before,.egg::after{position:absolute;z-index:2;color:#76554d;font-size:clamp(1.3rem,4vw,2rem);font-weight:900;line-height:1;opacity:0;pointer-events:none}.egg-stage-1::before{content:"╲";left:42%;top:12%;opacity:.8;transform:rotate(-12deg)}.egg-stage-2::before{content:"╲╱";left:31%;top:12%;opacity:.9;letter-spacing:-.25rem}.egg-stage-2::after,.egg-stage-3::after{content:"╱╲";left:38%;top:32%;opacity:.9;transform:rotate(16deg)}.egg-stage-3{filter:drop-shadow(0 0 9px #fff4a8) drop-shadow(0 3px 2px #0003);animation:egg-ready .7s ease-in-out infinite alternate}.egg-hatching{animation:egg-hatch .45s ease-in-out infinite}
@keyframes egg-ready{to{transform:translateY(calc(var(--ground-offset) - 5px)) rotate(3deg);filter:drop-shadow(0 0 18px #fff4a8)}}@keyframes egg-hatch{25%{transform:translateX(-5px) rotate(-5deg)}75%{transform:translateX(5px) rotate(5deg)}}
.egg-care-controls{width:min(94%,22rem);display:grid;gap:.25rem;justify-items:center}.egg-progress{width:100%;height:.42rem;overflow:hidden;border:1px solid #6e5149;border-radius:999px;background:#fff9}.egg-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffbd4b,#f25c72);transition:width .5s ease}.egg-care-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;width:100%}.egg-care-buttons button{display:flex;align-items:center;justify-content:center;gap:.2rem;min-width:0;padding:.25rem .35rem;border:1px solid #b78770;border-radius:.55rem;background:#fff9;font-size:.88rem;font-weight:800}.egg-care-buttons button:disabled{opacity:.42}.egg-care-buttons small{font-size:.67rem}.egg-care-controls>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.08rem .35rem;border-radius:.35rem;background:#fff9;color:#5d3f37;font-size:.65rem;font-weight:800}
.creature{aspect-ratio:1!important;border-radius:44% 44% 40% 40%!important;background:linear-gradient(145deg,#ffe357,#d89a13)!important}
#spriteCanvas{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 1px #0005)}#decorationCanvas{position:absolute;z-index:3;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}.sprite-ready{position:relative}
.sprite-ready{width:clamp(79px,21%,114px)!important;max-height:100%!important;aspect-ratio:1!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;filter:none!important}
#pet.sprite-ready{--ground-offset:-4px}
html[data-platform="windows"] #pet.sprite-ready{--ground-offset:-38px;width:clamp(87px,23%,126px)!important}
html[data-platform="windows"] .header-actions{padding-bottom:.25rem;scrollbar-width:thin;scrollbar-color:#9b6b70aa transparent;scroll-behavior:smooth;mask-image:linear-gradient(90deg,#000 0,#000 94%,transparent)}
html[data-platform="windows"] .header-actions::-webkit-scrollbar{display:block;height:5px}
html[data-platform="windows"] .header-actions::-webkit-scrollbar-thumb{background:#9b6b70aa;border-radius:999px}
html[data-platform="windows"] .header-actions:focus-visible{outline:2px solid #1682c4;outline-offset:1px;border-radius:.35rem}
.pet-ground-shadow{display:none}.sprite-ready .pet-ground-shadow{display:block;position:absolute;z-index:1;left:18%;right:18%;bottom:4%;height:10%;border-radius:50%;background:radial-gradient(ellipse,#130b0b75 0,#130b0b38 48%,transparent 74%);filter:blur(2px);transform:translateY(11px) scaleX(1.05);pointer-events:none}
.sky::after{position:absolute;z-index:4;left:50%;top:45%;transform:translate(-50%,-50%);font-size:clamp(1.6rem,5vw,3rem);pointer-events:none;opacity:0}
.sky.effect-feed::after{content:"🍓";animation:effect-pop 1.8s ease}
.sky.effect-play::after{content:"⚽";animation:effect-orbit 1.8s ease}
.sky.effect-clean::after{content:"🫧  🫧";animation:effect-rise 1.8s ease}
.sky.effect-train::after{content:"💥";animation:effect-pop 1.4s ease}
.sky.effect-pet::after{content:"💗";animation:effect-rise 1.5s ease}
#name{max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.72rem,2.2vw,1rem);line-height:1.15;font-weight:900;background:#fff9;padding:.15rem .7rem;border-radius:999px}
#message{max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.6rem,1.9vw,.88rem);line-height:1.15;background:#222c;color:white;padding:.22rem .55rem;border-radius:.5rem;text-align:center}
.stats{width:90%;justify-self:center;display:grid;grid-template-columns:1fr 1fr;gap:.15rem 1rem;padding:.25rem 1%}
.stats label{font-size:clamp(.6rem,2vw,.86rem);display:grid;grid-template-columns:3.5rem 1fr;align-items:center}
.stats progress{width:100%;accent-color:#dd4058}
nav{width:62%;justify-self:center;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(4px,.8vw,8px)}
nav button{min-width:0;border:0;border-radius:999px;background:#fff;box-shadow:0 2px 6px #0003;padding:.28rem .05rem;font-size:clamp(.9rem,2.6vw,1.4rem)}
nav small{display:block;white-space:nowrap;font-size:clamp(.45rem,1.45vw,.72rem)}
dialog{border:0;border-radius:1.2rem;max-width:min(92vw,480px);box-shadow:0 20px 60px #0008}
dialog::backdrop{background:#0009}dialog form{display:grid;gap:1rem}fieldset{display:grid;gap:.7rem;border-radius:.8rem}.row,menu{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.note{font-size:.85rem;color:#6d5458}.file{padding:.5rem;background:#eee;border-radius:.4rem}.file input{display:none}
.shop-dialog{width:min(94vw,720px);max-height:min(88vh,calc(100dvh - 1rem));overflow:auto;background:#fff8ed}.shop-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:.15rem 0 .45rem;background:#fff8ed}.shop-head h2{margin:.15rem 0}.shop-head strong{color:#9a6500;font-size:1.05rem}.shop-head>button{width:2.7rem;height:2.7rem;border:0;border-radius:50%}.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.shop-card{display:grid;gap:.25rem;padding:.7rem;border:1px solid #dfc8a8;border-radius:.9rem;background:#fff;box-shadow:0 2px 7px #4d283012}.shop-item{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.55rem}.shop-item>span{font-size:2rem}.shop-item>div{display:grid;gap:.1rem}.shop-card small{color:#6d5b55}.shop-owned{margin:.15rem 0;color:#786351;font-size:.78rem}.shop-card .shop-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;margin-top:.25rem}.shop-card button{min-height:2.35rem;padding:.35rem .65rem;border:0;border-radius:.65rem;background:#d92f46;color:#fff;font-weight:800}.shop-card button:disabled{background:#d8cec4;color:#827570}.shop-price{color:#fff4bd;font-weight:900}.reward-dialog{width:min(90vw,420px);background:linear-gradient(145deg,#fffbea,#fff0d8);border:3px solid #e3b84d}.reward-dialog h2{margin:.2rem 0;text-align:center}.reward-dialog>p{text-align:center;color:#765f32}.reward-dialog ul{display:grid;gap:.4rem;margin:.7rem 0;padding:0;list-style:none}.reward-dialog li{display:flex;justify-content:space-between;gap:.6rem;padding:.48rem .65rem;border-radius:.65rem;background:#fff;font-weight:750}.reward-dialog li .gain{color:#26713a}.reward-dialog li .cost{color:#8a4d43}
@media(max-width:450px){.shop-grid{grid-template-columns:1fr}.shop-dialog{width:calc(100vw - 1rem);padding:.8rem}}
.care-panel{border:1px solid #e5d4c4;border-radius:.8rem;padding:.7rem}.care-panel h3{margin:.1rem 0 .5rem}.care-panel dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .7rem;margin:.2rem 0 .7rem;font-size:.82rem}.care-panel dt{font-weight:700}.care-panel dd{margin:0}.medals{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem}.medal{font-size:.7rem;padding:.18rem .4rem;border-radius:999px;background:#eee;color:#8a7d7b}.medal.earned{background:#ffe18a;color:#49350a}
.pet-identity{display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem;margin-bottom:.5rem;border-radius:.7rem;background:#f4e9dc}.pet-identity div{display:grid;gap:.12rem}.pet-identity small{color:#786b69}.pet-identity button{border:0;border-radius:50%;width:2.25rem;height:2.25rem;background:#fff}.danger-zone{margin-top:.8rem;padding:.7rem;border:1px solid #d75b68;border-radius:.8rem;background:#fff2f3}.danger-zone .note{margin:.3rem 0}.danger-zone button,.danger{color:#fff;background:#b51f36;border:0;border-radius:.5rem;padding:.5rem .7rem}.danger:disabled{opacity:.45}.reset-check{display:flex;gap:.45rem;align-items:flex-start;margin:.8rem 0}#resetDialog>label:not(.reset-check){display:grid;gap:.35rem}
.dex-dialog{width:min(94vw,920px);height:min(88vh,760px);padding:1rem;background:#fff8ed}.dex-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff8ed;z-index:2}.dex-head h2,.dex-head p{margin:.1rem}.dex-head button{border:0;background:#eee;border-radius:50%;width:2.3rem;height:2.3rem}.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:.55rem;padding:.8rem 0}.dex-card{display:grid;place-items:center;gap:.15rem;min-height:130px;padding:.45rem;border:1px solid #e6d8c7;border-radius:.8rem;background:#fff;box-shadow:0 2px 7px #4d283015}.dex-card canvas{width:72px;height:72px;object-fit:contain;image-rendering:pixelated}.dex-card small{font-size:.68rem;color:#786b69}.dex-card.owned{border-color:#dd4058;background:#fff0f2}.dex-number{justify-self:start;font-size:.65rem;color:#8a7674}.dex-loading{grid-column:1/-1;text-align:center}
.collection-dialog{width:min(94vw,780px);max-height:88vh;overflow:auto;background:#fff8ed}.collection-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.6rem}.collection-card{display:grid;place-items:center;gap:.3rem;padding:.65rem;border:1px solid #dfcbbb;border-radius:1rem;background:#fff;text-align:center}.collection-card.active{border:2px solid #d92f46;background:#fff0f2}.collection-card canvas{width:88px;height:88px;image-rendering:pixelated}.collection-card small{color:#705f5f}.collection-card button,.collection-card select{width:100%;min-height:2.35rem;padding:.4rem;border:0;border-radius:.65rem}.collection-card select{border:1px solid #dbc7b7;background:#fff}.collection-card.active button:not(.release-mon){background:#eadfd4}.collection-card .release-mon{background:#fff0f1;color:#a31930;border:1px solid #d96373}.collection-card .mon-actions{display:grid;width:100%;gap:.35rem}.release-dialog{width:min(92vw,430px)}.release-dialog>label{display:grid;gap:.35rem}.release-preview{display:flex;align-items:center;gap:.8rem;padding:.65rem;border-radius:.8rem;background:#fff3e5}.release-preview canvas{width:82px;height:82px;image-rendering:pixelated}.release-preview div{display:grid;gap:.25rem}.skill-dialog{width:min(92vw,560px);max-height:88vh;overflow:auto;background:#fff8ed}.skill-dialog>label{display:grid;gap:.35rem;margin:.8rem 0}.skill-dialog select{min-height:2.7rem}.skill-details{display:grid;gap:.65rem}.skill-hero{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:center;padding:.85rem;border-radius:1rem;background:linear-gradient(135deg,#fff,#fff0c7);border:1px solid #e7c361}.skill-icon{font-size:2.8rem}.skill-card{padding:.75rem;border-radius:.85rem;background:#fff;border:1px solid #dfcfbf}.skill-card h3,.skill-card p{margin:.15rem 0}.skill-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.skill-meta span{padding:.2rem .45rem;border-radius:999px;background:#f1e3d2;font-size:.75rem;font-weight:800}
.game-dialog{width:min(92vw,560px);background:#fff8ed}.game-dialog h2,.game-dialog p{text-align:center}.game-score{text-align:center;margin:.5rem}.game-field{height:min(50vh,360px);position:relative;overflow:hidden;border-radius:1rem;background:linear-gradient(#8fd6ff 0 60%,#75bd66 60%)}#ballTarget{position:absolute;left:45%;top:45%;width:3.4rem;height:3.4rem;border:0;border-radius:50%;background:#fff;font-size:2rem;box-shadow:0 4px 9px #0004;transition:left .12s,top .12s}.training-target{display:block;width:9rem;height:9rem;margin:1rem auto;border:0;border-radius:50%;font-size:5rem;background:#f4e3d2;box-shadow:0 8px 18px #0003}.training-target.hit{animation:punch .18s ease}@keyframes punch{50%{transform:scale(.82) rotate(8deg);background:#ffd0d0}}
.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.region-grid button{padding:.7rem .2rem;border:1px solid #dfcbbb;border-radius:.8rem;background:#fff}.encounter-card{display:grid;place-items:center;gap:.55rem;margin:1rem 0;padding:1rem;border:3px solid #e3b84d;border-radius:1rem;background:linear-gradient(145deg,#fffbea,#fff0d8);box-shadow:0 8px 24px #6d44252e;text-align:center;scroll-margin:1rem}.encounter-card .result-label{padding:.2rem .7rem;border-radius:999px;background:#8b5c13;color:#fff;font-size:.78rem;font-weight:900}.encounter-card>strong{font-size:1.25rem;color:#5c3310}.encounter-card>p{margin:0;line-height:1.5;color:#4f4038}.encounter-card canvas{width:112px;height:112px;image-rendering:pixelated;transition:filter .45s,transform .45s}.encounter-card.mystery canvas{filter:brightness(0) drop-shadow(0 0 7px #8267a6);transform:scale(.92)}.expedition-rewards{display:grid;width:min(100%,28rem);gap:.4rem;margin:.1rem 0;padding:0;list-style:none}.expedition-rewards li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .7rem;border-radius:.7rem;background:#fff;border:1px solid #ead3a0}.expedition-rewards strong{color:#8b5200}.encounter-card>button{min-width:min(100%,16rem);min-height:2.65rem;border:0;border-radius:.75rem;background:#d92f46;color:#fff;font-weight:900}.encounter-card>#dismissExpeditionResult{background:#6d625b}#berryTarget{position:absolute;left:45%;top:45%;width:3.5rem;height:3.5rem;border:0;border-radius:50%;background:#fff;font-size:2rem;box-shadow:0 4px 9px #0004;transition:left .1s,top .1s}
.partner-dialog{width:min(94vw,680px);max-height:88vh;overflow:auto;background:#fff8ed}.partner-head{display:flex;align-items:center;justify-content:space-between}.partner-head h2{margin:.2rem}.partner-head button{border:0;border-radius:50%;width:2.25rem;height:2.25rem}.partner-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin:.7rem 0}.partner-tabs button{padding:.6rem;border:0;border-radius:.8rem;background:#eadfd4}.partner-tabs button[aria-selected="true"]{background:#d92f46;color:#fff;font-weight:800}.partner-stage{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:170px;padding:.6rem;border-radius:1rem;background:linear-gradient(#9cddff 0 60%,#92cf78 60%);overflow:hidden}.partner-stage article{display:grid;place-items:center;gap:.15rem;z-index:1}.partner-stage canvas{width:105px;height:105px;image-rendering:pixelated;filter:drop-shadow(0 6px 3px #0003)}.partner-stage strong{max-width:9rem;padding:.15rem .5rem;border-radius:999px;background:#fff9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.partner-heart{font-size:2rem;animation:heart-beat 1.2s ease-in-out infinite}.family-egg{position:absolute;left:50%;bottom:.35rem;opacity:0;font-size:2.6rem;transform:translate(-50%,150%) scale(.3)}.partner-stage.pairing article:first-child{animation:partner-left 1.6s ease}.partner-stage.pairing article:nth-of-type(2){animation:partner-right 1.6s ease}.partner-stage.pairing .partner-heart{animation:heart-burst 1.6s ease}.partner-stage.egg-born .family-egg{animation:egg-born 1.8s ease forwards}.partner-pickers{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.7rem}.partner-pickers label{display:grid;gap:.25rem}.family-list{display:grid;gap:.45rem;max-height:15rem;overflow:auto}.family-item{padding:.6rem;border:1px solid #e3d2c2;border-radius:.7rem;background:#fff}.family-item button{float:right}.family-tree .family-item{position:relative;margin-left:calc(var(--generation,1)*.5rem);border-left:4px solid #7bb66c;animation:family-node .45s ease both}.family-tree .family-item::before{content:"";position:absolute;left:-.75rem;top:50%;width:.65rem;border-top:2px solid #7bb66c}
.partner-stage.self-pair{grid-template-columns:1fr auto}.partner-stage.self-pair article:nth-of-type(2){display:none}.partner-stage.self-pair .partner-heart::after{content:" 같은 개체";font-size:.72rem;display:block;white-space:nowrap}
.battle-dialog{width:min(96vw,720px);background:#fff8ed}.battle-connect{display:grid;grid-template-columns:auto 1fr auto;gap:.4rem;margin:.7rem 0}.battle-connect input{text-transform:uppercase;text-align:center;font-weight:900;letter-spacing:.18rem}#battleArena{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:.75rem;min-height:310px;margin:.8rem 0;padding:1rem 1rem 1.2rem;overflow:hidden;border:4px solid #342c52;border-radius:1rem;background:linear-gradient(#83d8ff 0 55%,#b8e67f 55% 67%,#6db34e 67%);box-shadow:inset 0 0 0 3px #fff8,0 6px 0 #c5a986}.battle-sun{position:absolute;top:18px;right:12%;width:54px;height:54px;border-radius:50%;background:#fff5a5;box-shadow:0 0 0 8px #fff6,0 0 28px #fff}.battle-cloud{position:absolute;width:78px;height:24px;border-radius:999px;background:#fff9;filter:blur(.3px)}.battle-cloud::before,.battle-cloud::after{content:"";position:absolute;bottom:5px;border-radius:50%;background:inherit}.battle-cloud::before{left:15px;width:30px;height:30px}.battle-cloud::after{right:13px;width:22px;height:22px}.cloud-a{top:35px;left:10%;animation:battle-cloud 9s ease-in-out infinite}.cloud-b{top:78px;right:25%;scale:.7;animation:battle-cloud 11s ease-in-out infinite reverse}.battle-ground{position:absolute;bottom:13px;width:42%;height:42px;border-radius:50%;background:#4a923e;box-shadow:inset 0 7px #8bd065}.ground-left{left:2%}.ground-right{right:2%}.battle-versus{align-self:center;z-index:3;padding:.38rem .48rem;border:3px solid #fff;border-radius:50%;background:#d92f46;color:#fff;font-weight:1000;box-shadow:0 3px 0 #6f2030;transform:rotate(-8deg)}.fighter{position:relative;z-index:4;display:flex;min-width:0;flex-direction:column;align-items:center;padding:.4rem;border-radius:.8rem;text-align:center}.battle-nameplate{width:100%;padding:.35rem .5rem;border:3px solid #342c52;border-radius:.65rem;background:#fffdf5;box-shadow:0 3px 0 #342c52;text-align:left}.battle-nameplate strong,.battle-nameplate small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-nameplate small{font-size:.7rem;color:#655d70}.battle-sprite-shell{position:relative;display:grid;width:150px;height:145px;place-items:center;transform-origin:50% 100%}.battle-sprite-shell canvas{z-index:2;width:112px;height:112px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 6px 2px #27321e55)}.battle-left .battle-sprite-shell canvas{transform:scaleX(-1)}.battle-shadow{position:absolute;bottom:12px;width:105px;height:24px;border-radius:50%;background:#24451e55;filter:blur(2px)}.battle-fx{position:absolute;z-index:5;display:grid;place-items:center;width:78px;height:78px;border-radius:50%;font-size:2.7rem;opacity:0;pointer-events:none}.battle-hud{width:100%;padding:.38rem .48rem;border:3px solid #342c52;border-radius:.65rem;background:#fffdf5;box-shadow:0 3px 0 #342c52}.battle-hud progress{width:100%;height:.75rem;accent-color:#46bb62}.battle-hud small{display:block;font-size:.68rem}.battle-command-label{margin:.35rem 0;text-align:center;font-size:.78rem;font-weight:900;color:#59443d}.battle-basic-actions,.battle-skill-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.battle-basic-actions button,.battle-skill-actions button{min-height:2.7rem;border:2px solid #342c52;box-shadow:0 3px 0 #342c52;font-weight:900}.battle-skill-actions{margin-top:.45rem}.battle-log{max-height:7rem;overflow:auto;margin:.7rem 0;padding:.55rem .7rem .55rem 1.8rem;border:2px solid #dfcbbb;border-radius:.7rem;background:#fff;font-size:.78rem}.fighter.attacking .battle-sprite-shell{animation:battle-lunge .48s ease-in-out}.fighter.casting .battle-sprite-shell{animation:battle-cast .65s ease-in-out}.fighter.hit .battle-sprite-shell{animation:battle-hit .5s ease-in-out}.fighter.guarding .battle-sprite-shell::after{content:"🛡️";position:absolute;z-index:4;font-size:4.5rem;opacity:.78;animation:battle-guard .65s ease-out}.fighter.healing .battle-sprite-shell{animation:battle-heal .8s ease-out}.fighter.fainted .battle-sprite-shell{animation:battle-faint .8s ease-in forwards}.fighter.show-fx .battle-fx{animation:battle-fx .65s ease-out}.fighter.critical .battle-fx{filter:drop-shadow(0 0 8px #ffef45);font-size:3.4rem}#battleArena.impact{animation:battle-impact .28s linear}.fighter.mine .battle-nameplate{background:#fff3b2}.fighter.enemy .battle-nameplate{background:#ffe5e5}@keyframes battle-cloud{50%{translate:18px 3px}}@keyframes battle-lunge{45%{translate:42px -12px;scale:1.13}60%{rotate:7deg}100%{translate:0}}.battle-right.attacking .battle-sprite-shell{animation-name:battle-lunge-right}@keyframes battle-lunge-right{45%{translate:-42px -12px;scale:1.13}60%{rotate:-7deg}100%{translate:0}}@keyframes battle-cast{35%{translate:0 -15px;scale:1.15;filter:drop-shadow(0 0 12px #fff)}70%{scale:.95}}@keyframes battle-hit{20%,60%{translate:-10px 0;filter:brightness(2) saturate(2)}40%,80%{translate:10px 0}100%{translate:0}}@keyframes battle-guard{0%{scale:.5;opacity:0}45%{scale:1.2;opacity:.9}100%{scale:1;opacity:.1}}@keyframes battle-heal{35%{translate:0 -9px;filter:drop-shadow(0 0 10px #8cff9a);scale:1.08}}@keyframes battle-faint{to{translate:0 50px;rotate:12deg;opacity:0}}@keyframes battle-fx{0%{scale:.25;opacity:0}35%{scale:1.25;opacity:1}100%{scale:1.8;opacity:0}}@keyframes battle-impact{25%,75%{translate:-4px 0}50%{translate:4px 0}}
.transfer-connect{display:grid;grid-template-columns:auto 1fr auto;gap:.4rem}.transfer-connect input{text-transform:uppercase;text-align:center;font-weight:900;letter-spacing:.12rem;min-width:0}.friend-transfer{margin-top:.8rem}.game-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.game-menu button{display:grid;place-items:center;gap:.25rem;min-height:8rem;border:1px solid #dfcbbb;border-radius:1rem;background:#fff;font-size:2.1rem}.game-menu strong{font-size:.9rem}.game-menu small{font-size:.68rem;color:#6d5458}
.shadow-canvas{display:block;width:150px;height:150px;margin:.5rem auto;image-rendering:pixelated;filter:brightness(0);transition:filter .25s}.shadow-canvas.revealed{filter:none}.shadow-answers{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.shadow-answers button{min-height:3rem;border:1px solid #ddc9b7;border-radius:.75rem;background:#fff;font-weight:800}.shadow-answers button.correct{background:#bce8b7}.shadow-answers button.wrong{background:#ffd3d8}.reflex-target{display:block;width:min(100%,250px);height:9rem;margin:1rem auto;border:0;border-radius:1.2rem;background:#c9c0bb;color:#6f625d;font-size:1.5rem;font-weight:900;transition:transform .1s,background .15s}.reflex-target.ready{background:#ffe34f;color:#402d00;box-shadow:0 0 30px #ffd900}.reflex-target:active{transform:scale(.96)}
.starter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.starter-grid button{min-width:0;min-height:110px;border:1px solid #e5d4c4;border-radius:1rem;background:#fff;box-shadow:0 3px 8px #0002;font-size:2rem;display:grid;place-items:center}.starter-grid strong{font-size:.9rem}.starter-grid button:active{transform:scale(.96)}
.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin:.8rem 0}.memory-board button{min-height:4rem;border:1px solid #dcc9b8;border-radius:.7rem;background:#d92f46;color:#fff;font-size:1.6rem}.memory-board button.open,.memory-board button.matched{background:#fff;color:#24191a}.memory-board button.matched{outline:3px solid #79b969}.rhythm-target{display:block;width:9rem;height:9rem;margin:1rem auto;border:0;border-radius:50%;background:#e7ded5;font-size:4rem;transition:.12s}.rhythm-target.lit{background:#ffe058;box-shadow:0 0 0 12px #ffdc5577,0 0 35px #ffbd2e;transform:scale(1.08)}
#toast{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);background:#111;color:#fff;padding:.65rem 1rem;border-radius:999px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1}
@keyframes bob{0%,100%{transform:translateY(var(--ground-offset))}50%{transform:translateY(calc(var(--ground-offset) - 3px)) rotate(1deg)}}
@keyframes pet-jump{0%,100%{translate:0 0}50%{translate:0 -10px}}
.pet-jump{animation:bob 2.2s ease-in-out infinite,pet-jump .34s ease-out!important;will-change:transform,translate}
#pet.pet-care-disabled{cursor:not-allowed}
@keyframes egg-tap{0%,100%{transform:rotate(0)}25%{transform:rotate(-9deg) scale(.96)}75%{transform:rotate(9deg) scale(.96)}}
@keyframes effect-pop{0%{opacity:0;transform:translate(-50%,-20%) scale(.4)}25%,65%{opacity:1;transform:translate(-50%,-75%) scale(1)}100%{opacity:0;transform:translate(-50%,-110%) scale(.7)}}
@keyframes effect-rise{0%{opacity:0;transform:translate(-50%,30%)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-180%)}}
@keyframes effect-orbit{0%{opacity:0;transform:translate(-180%,20%) rotate(-30deg)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(90%,-120%) rotate(240deg)}}
@keyframes heart-beat{50%{transform:scale(1.2)}}@keyframes heart-burst{0%,100%{transform:scale(1)}45%{transform:scale(2.2);filter:drop-shadow(0 0 12px #ff5577)}70%{transform:scale(1.45)}}@keyframes partner-left{45%{transform:translateX(18%) rotate(5deg)}70%{transform:translateX(8%)}}@keyframes partner-right{45%{transform:translateX(-18%) rotate(-5deg)}70%{transform:translateX(-8%)}}@keyframes egg-born{0%,40%{opacity:0;transform:translate(-50%,150%) scale(.3)}65%{opacity:1;transform:translate(-50%,-18%) scale(1.25)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}@keyframes family-node{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
@media(max-width:450px){.device{width:100vw;border-width:7px;padding:9% 10.5% 12%}header{width:78%;gap:.45rem}#clock{font-size:clamp(.72rem,3.7vw,1rem)}header button{flex-basis:2rem;width:2rem;font-size:.95rem}.sky{width:96%;gap:.12rem;padding:.25rem 0 .38rem}.sprite-ready{width:clamp(79px,23%,101px)!important}#name{font-size:clamp(.68rem,2.6vw,.88rem)}#message{font-size:clamp(.56rem,2.25vw,.76rem);padding:.18rem .45rem}.stats{width:92%;gap:.08rem .4rem}.stats label{grid-template-columns:3rem 1fr}nav{width:58%;display:grid;grid-template-columns:repeat(3,1fr);padding:.18rem .25rem}nav button{min-width:0}.partner-stage{min-height:145px}.partner-stage canvas{width:82px;height:82px}.partner-pickers{grid-template-columns:1fr}.battle-dialog{width:calc(100vw - 1.2rem);max-height:calc(100dvh - 1.2rem);overflow:auto;padding:.9rem}.battle-connect,.transfer-connect{grid-template-columns:1fr}.battle-connect button,.battle-connect input,.transfer-connect button,.transfer-connect input{width:100%;min-height:2.75rem}.battle-dialog .row button{flex:1 1 30%}#battleArena{min-height:255px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.2rem;padding:.6rem .25rem 1rem}.battle-sprite-shell{width:105px;height:112px}.battle-sprite-shell canvas{width:88px;height:88px}.battle-nameplate,.battle-hud{padding:.28rem .3rem}.battle-nameplate strong{font-size:.76rem}.battle-versus{padding:.25rem;font-size:.7rem}.game-menu{grid-template-columns:1fr}.game-menu button{min-height:5.5rem;grid-template-columns:auto 1fr;justify-items:start;padding:.7rem 1rem}.game-menu small{grid-column:2}.starter-grid{grid-template-columns:repeat(2,1fr)}}

/* 획득 상태를 한눈에 구분하고, 가족 이야기 창을 모바일 뷰포트 안에서 스크롤한다. */
.dex-card{position:relative}.dex-card.owned{border:2px solid #54a36b;background:linear-gradient(145deg,#e8ffe9,#ccefd1);box-shadow:0 3px 10px #28773d35}.dex-card.owned::after{content:"✓";position:absolute;right:.4rem;top:.35rem;display:grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:50%;background:#3b9656;color:#fff;font-weight:900}.dex-card.owned small{color:#236b39;font-weight:800}
.rarity-badge{position:absolute;left:.35rem;top:1.45rem;padding:.12rem .38rem;border-radius:999px;font-size:.58rem;font-weight:900;line-height:1.25;color:#fff;box-shadow:0 1px 3px #0003}.rarity-badge.common{background:#73808c}.rarity-badge.evolution{background:#397ebd}.rarity-badge.rare{background:#9a45ba}.rarity-badge.legendary{background:linear-gradient(135deg,#dc8d00,#f2c335);color:#4b3100;box-shadow:0 0 7px #f1b922aa}
.partner-dialog{max-height:min(88vh,calc(100dvh - 1.5rem));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.partner-head{position:sticky;top:0;z-index:4;padding:.15rem 0;background:#fff8ed}
.partner-head button#closePartners{position:relative;z-index:10;flex:0 0 3rem;width:3rem;height:3rem;min-width:3rem;min-height:3rem;padding:0;border:2px solid #86cbed;background:#f5f8fb;color:#1682c4;font-size:1.15rem;font-weight:900;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}
@media(max-width:450px){.partner-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - max(1rem,env(safe-area-inset-top)) - max(1rem,env(safe-area-inset-bottom)));margin:auto;padding:.8rem}.partner-head{min-height:3.4rem;padding:.2rem 0 .35rem}.partner-head button#closePartners{flex-basis:3.25rem;width:3.25rem;height:3.25rem;min-width:3.25rem;min-height:3.25rem;margin:.05rem}}
#settingsDialog{width:min(94vw,680px);max-height:min(88vh,calc(100dvh - 1.5rem));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:#fff8ed}#settingsDialog form{min-height:0}.settings-head{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:.15rem 0 .35rem;background:#fff8ed}.settings-head h2{margin:.2rem}.settings-head button{position:relative;z-index:10;flex:0 0 3rem;width:3rem;height:3rem;min-width:3rem;min-height:3rem;padding:0;border:2px solid #86cbed;border-radius:50%;background:#f5f8fb;color:#1682c4;font-size:1.15rem;font-weight:900;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}
@media(max-width:450px){#settingsDialog{width:calc(100vw - 1rem);max-height:calc(100dvh - max(1rem,env(safe-area-inset-top)) - max(1rem,env(safe-area-inset-bottom)));margin:auto;padding:.8rem}.settings-head{min-height:3.4rem}.settings-head button{flex-basis:3.25rem;width:3.25rem;height:3.25rem;min-width:3.25rem;min-height:3.25rem}}

/* 서로 다른 조작감을 갖는 추가 미니게임 */
.berry-field{touch-action:none;cursor:ew-resize;background:linear-gradient(#94d9ff 0 72%,#74bd68 72%)}
#berryBasket{position:absolute;left:calc(50% - 2rem);bottom:.45rem;z-index:2;width:4rem;text-align:center;font-size:2.6rem;filter:drop-shadow(0 3px 2px #0004);user-select:none}
.falling-berry{position:absolute;top:0;width:2rem;height:2rem;display:grid;place-items:center;font-size:1.7rem;will-change:transform;user-select:none;pointer-events:none}
.puzzle-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem;margin:.8rem auto;max-width:24rem;padding:.65rem;border:3px solid #8064a8;border-radius:1rem;background:linear-gradient(145deg,#27244b,#4b376a);box-shadow:inset 0 0 1rem #0006}
.puzzle-board button{aspect-ratio:1;min-width:0;padding:0;border:2px solid #ffffff55;border-radius:.65rem;background:#ffffff18;font-size:clamp(1.35rem,6vw,2rem);filter:drop-shadow(0 2px 2px #0008);transition:transform .12s,background .12s}
.puzzle-board button:not(:disabled):active{transform:scale(.82);background:#fff6}.puzzle-board button.blocked{animation:puzzle-shake .2s linear}
@keyframes puzzle-shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.maze-board{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;width:min(100%,22rem);margin:.8rem auto;padding:.45rem;border:3px solid #6e5131;border-radius:.8rem;background:#d6b77b}
.maze-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:.25rem;background:#fff5cf;box-shadow:inset 0 0 0 1px #cda96b}.maze-cell.wall{background:#48694c;box-shadow:inset 0 0 0 2px #35513a}.maze-cell.goal::after{content:"💎";font-size:clamp(1.2rem,6vw,2rem)}.maze-cell.player::before{content:"🐾";position:absolute;z-index:2;font-size:clamp(1.25rem,6vw,2rem);filter:drop-shadow(0 2px 1px #0005);animation:maze-step .18s ease-out}.maze-cell.player.goal::after{opacity:.35}
@keyframes maze-step{from{transform:scale(.5) rotate(-15deg)}to{transform:scale(1)}}
.maze-message{min-height:1.5rem;text-align:center;font-weight:800;color:#5f442b}.maze-controls{display:grid;grid-template-columns:repeat(3,3.3rem);grid-template-areas:". up ." "left down right";justify-content:center;gap:.35rem;margin:.7rem}.maze-controls button{width:3.3rem;height:3.3rem;padding:0;border-radius:.8rem;font-size:1.25rem;font-weight:900}.maze-controls [data-maze-move="up"]{grid-area:up}.maze-controls [data-maze-move="left"]{grid-area:left}.maze-controls [data-maze-move="down"]{grid-area:down}.maze-controls [data-maze-move="right"]{grid-area:right}
.game-message{min-height:1.5rem;margin:.55rem;text-align:center;font-weight:800;color:#654a32}
.cooking-recipe{display:grid;place-items:center;min-height:5rem;margin:.8rem 0;padding:.6rem;border:2px dashed #dc8846;border-radius:1rem;background:#fff4d8;font-size:.95rem;font-weight:800;line-height:1.45;text-align:center}.cooking-recipe.showing-recipe{font-size:clamp(1.35rem,6vw,2rem);letter-spacing:.18rem}.cooking-ingredients{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.cooking-ingredients button{aspect-ratio:1;min-width:0;padding:0;border:2px solid #e9b56d;border-radius:.8rem;background:#fff;font-size:clamp(1.35rem,6vw,2rem)}
.mining-board{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;width:min(100%,22rem);margin:.8rem auto;padding:.65rem;border:3px solid #5b4a43;border-radius:1rem;background:#302b2b}.mining-board button{aspect-ratio:1;min-width:0;padding:0;border:2px solid #6d625d;border-radius:.55rem;background:linear-gradient(145deg,#80726b,#514944);color:#fff;font-size:clamp(1.1rem,5vw,1.7rem);font-weight:900}.mining-board button.dug{background:#d9c7a7;color:#4b3e34}.mining-board button.ore{background:radial-gradient(circle,#fff6a8,#8b6ab3);filter:saturate(1.3)}
.fishing-water{min-height:11rem;margin:.75rem 0;padding:2rem 1rem 1rem;border-radius:1rem;background:linear-gradient(#a8e5ff 0 25%,#50b9e7 25%);text-align:center}
.fishing-meter{position:relative;height:3.2rem;margin:1rem .25rem 2rem;border:3px solid #fff;border-radius:999px;background:#e7eff2;box-shadow:inset 0 2px 7px #0003}
.fishing-zone{position:absolute;left:42%;width:16%;height:100%;background:#75cf74}
#fishingBobber{position:absolute;top:-.2rem;left:0;z-index:2;font-size:2.4rem;transform:translateX(-50%);will-change:left}
.type-answers{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0}
.type-answers button{min-height:3.7rem;border:1px solid #ddc9b7;border-radius:.85rem;background:#fff;font-weight:800}
.type-answers button.correct{background:#bce8b7;border-color:#54a35b;box-shadow:0 0 0 3px #72b76c55}
@media(max-width:450px){.puzzle-board{gap:.25rem;padding:.45rem}.type-answers{grid-template-columns:1fr}.type-answers button{min-height:3.1rem}.fishing-water{min-height:9rem}}

.evolution-panel{margin:.8rem 0;padding:.8rem;border:2px solid #e6bd54;border-radius:1rem;background:linear-gradient(145deg,#fff9d8,#fff1d8)}
.evolution-panel h3,.evolution-panel h4{margin:.25rem 0 .6rem}.evolution-panel.no-evolution{border-color:#d8cec3;background:#f6f0e9}
#evolutionTarget{display:grid;gap:.2rem;margin-bottom:.6rem}#evolutionTarget strong{font-size:1.05rem}#evolutionTarget small{color:#755b2a}
.evolution-requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin:.55rem 0}
.evolution-requirement{display:flex;justify-content:space-between;gap:.4rem;padding:.45rem .55rem;border-radius:.6rem;background:#fff;color:#715b58;font-size:.82rem}.evolution-requirement.met{background:#dcf4d8;color:#286c31}
.evolution-inventory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.evolution-inventory article{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .4rem;padding:.48rem;border:1px solid #e0cba8;border-radius:.65rem;background:#fff}.evolution-inventory small{color:#786a61}.evolution-inventory button{grid-column:2;grid-row:1/3;padding:.35rem .55rem}
#evolutionNotice{position:absolute;left:50%;bottom:.45rem;z-index:4;transform:translateX(-50%);white-space:nowrap;padding:.38rem .7rem;border:1px solid #e4b431;border-radius:999px;background:#fff5a8;box-shadow:0 2px 8px #0003;font-weight:800;animation:evoNotice 1.5s ease-in-out infinite}
@keyframes evoNotice{50%{transform:translateX(-50%) scale(1.04);filter:brightness(1.08)}}
.evolution-overlay{position:fixed;inset:0;z-index:1000;place-items:center;align-content:center;gap:1rem;background:radial-gradient(circle,#fff 0,#fff9ac 24%,#5c498ee8 70%);color:#fff;text-align:center;font-size:1.25rem}.evolution-overlay.active{display:grid}.evolution-light{font-size:7rem;animation:evolutionPulse .55s ease-in-out infinite alternate}
@keyframes evolutionPulse{from{transform:scale(.65) rotate(-8deg);filter:brightness(1)}to{transform:scale(1.35) rotate(8deg);filter:brightness(1.8) drop-shadow(0 0 30px #fff)}}
@media(max-width:450px){.evolution-requirements,.evolution-inventory{grid-template-columns:1fr}#evolutionNotice{bottom:.3rem;font-size:.72rem}.evolution-inventory article{font-size:.82rem}}

.explore-dialog{max-height:min(88vh,calc(100dvh - 1rem));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.expedition-duration{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.65rem;margin:.7rem 0;padding:.6rem .75rem;border-radius:.8rem;background:#f1e7d9;font-weight:800}.expedition-duration select{min-height:2.6rem}
.expedition-progress{display:grid;place-items:center;gap:.45rem;margin:.75rem 0;padding:.8rem;border:2px solid #d9b46a;border-radius:1rem;background:linear-gradient(145deg,#fff5ca,#f3e1c9)}.expedition-progress>strong{font-size:1.1rem}.expedition-progress>span{font-size:1.55rem;font-weight:900;color:#81501e}.expedition-progress>small{text-align:center;color:#725e53}
@media(max-width:450px){.explore-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);padding:.8rem}.expedition-duration{grid-template-columns:1fr}.region-grid{grid-template-columns:repeat(2,1fr)}#pet.sprite-ready{--ground-offset:-20px;width:clamp(79px,23%,101px)!important}.sprite-ready .pet-ground-shadow{transform:translateY(3px) scaleX(1.05)}}

/* 모바일 브라우저 가로 회전: 원형 세로 레이아웃 대신 뷰포트를 빠짐없이 채운다. */
@media(orientation:landscape) and (max-height:600px){
html:not([data-platform="windows"]),html:not([data-platform="windows"]) body{width:100%;height:100%;min-height:100%;overflow:hidden}
html:not([data-platform="windows"]) body{display:block}
html:not([data-platform="windows"]) body>main{width:100dvw;height:100dvh}
html:not([data-platform="windows"]) .device{width:100dvw;height:100dvh;aspect-ratio:auto;border-width:clamp(4px,1.5vh,7px);border-radius:0;padding:max(6px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(2px,1vh,5px)}
html:not([data-platform="windows"]) header{width:min(94%,920px);min-height:0;gap:.3rem}
html:not([data-platform="windows"]) #clock{font-size:clamp(.72rem,3.8vh,1rem)}
html:not([data-platform="windows"]) header button{width:clamp(1.75rem,7vh,2.1rem);height:clamp(1.75rem,7vh,2.1rem);font-size:clamp(.9rem,4vh,1.15rem)}
html:not([data-platform="windows"]) .header-actions{justify-content:center}
html:not([data-platform="windows"]) .sky{width:min(96%,1040px);height:100%;border-radius:clamp(18px,7vh,34px);padding:.2rem 0 .3rem;gap:.08rem;background-position:center 56%}
html:not([data-platform="windows"]) #pet.sprite-ready{--ground-offset:-5px;width:clamp(78px,25vh,118px)!important}
html:not([data-platform="windows"]) #name{font-size:clamp(.65rem,3.2vh,.9rem);padding:.1rem .65rem}
html:not([data-platform="windows"]) #message{font-size:clamp(.55rem,2.7vh,.78rem);padding:.14rem .5rem}
html:not([data-platform="windows"]) .stats{width:min(94%,980px);grid-template-columns:repeat(4,minmax(0,1fr));gap:.15rem clamp(.4rem,2vw,1.2rem);padding:.08rem 1%}
html:not([data-platform="windows"]) .stats label{font-size:clamp(.56rem,2.8vh,.78rem);grid-template-columns:auto minmax(42px,1fr);gap:.25rem}
html:not([data-platform="windows"]) nav{width:min(66%,560px);gap:clamp(4px,1vw,8px)}
html:not([data-platform="windows"]) nav button{padding:.16rem .05rem;font-size:clamp(.82rem,4vh,1.15rem)}
html:not([data-platform="windows"]) nav small{font-size:clamp(.43rem,2.25vh,.65rem)}
html:not([data-platform="windows"]) dialog{max-height:calc(100dvh - 1rem);overflow:auto}
}
.skill-moves{display:grid;gap:.55rem}.skill-move{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;cursor:pointer}.skill-move input{width:1.25rem;height:1.25rem;margin-top:.2rem;accent-color:#d92f46}.skill-move.locked{opacity:.55;filter:grayscale(.45);cursor:not-allowed}.passive-card{border-color:#b998e8;background:#faf5ff}.battle-basic-actions,.battle-skill-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.4rem;margin:.4rem 0}.battle-skill-actions button{background:#7650a8}.battle-skill-actions button:disabled{background:#9d92a7}
