@font-face{font-family:Farm;src:local('Zen Maru Gothic'),local('Hiragino Maru Gothic ProN'),local('BIZ UDPGothic')}*{box-sizing:border-box} :root{--ink:#513a29;--cream:#fff9e9;--paper:#fffaf0;--coral:#e78577;--green:#638c6b;--gold:#e6b452;--shadow:0 4px 0 #8d674828,0 7px 16px #5b48221a}html,body{margin:0;min-height:100%;background:#f2eadb;color:var(--ink);font-family:Farm,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;font-weight:600}body{background-image:radial-gradient(#d9c9a92b .8px,transparent .8px);background-size:5px 5px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #568d87;outline-offset:4px}button{border:0;background:none}button:active:not(:disabled){transform:translateY(2px)}a{color:var(--green)}.loading{display:grid;place-content:center;gap:24px;text-align:center;min-height:100dvh}.loading span{font-size:60px;animation:bob 2s infinite}#app{min-height:100dvh;max-width:1800px;margin:auto}.shell{padding:22px clamp(14px,3.6vw,66px) 0}.brand-row{display:flex;align-items:center;gap:16px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand .paw{background:var(--green);color:var(--cream);padding:7px 10px;border-radius:12px;font-size:25px;transform:rotate(-7deg)}.brand b{font-size:22px;letter-spacing:.06em}.brand small{display:block;font-size:9px;letter-spacing:.23em;margin-top:4px;color:#9b8064}.topnav{display:flex;gap:4px;margin-left:36px;align-items:center}.topnav button{font-size:12px;padding:10px 14px;border-radius:22px;color:#8c775e}.topnav button.active{background:#e3e9d8;color:#456a50}.utility{display:flex;gap:8px;align-items:center;margin-left:auto}.icon-btn{border:1px solid #d9cbb2;background:#fffaf0a8;border-radius:12px;min-width:40px;height:40px;font-size:18px}.save-status{font-size:10px;color:#8b927a;white-space:nowrap}.intro-line{display:flex;justify-content:space-between;align-items:end;margin:20px 0 18px}.eyebrow{font-size:10px;color:#95816a;letter-spacing:.2em}.intro-line h1{font-size:clamp(23px,2.5vw,34px);margin:5px 0 0;letter-spacing:.05em}.intro-line p{font-size:12px;color:#98846c;margin:0}.ranch{height:min(67vw,650px);min-height:470px;position:relative;isolation:isolate;overflow:hidden;border-radius:26px;border:7px solid #fffaf0;box-shadow:var(--shadow);background:#cde1b9 url('assets/ranch.png') center/cover}.ranch:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(#f5e1a20a,transparent 40%,#c2b36d20)}.ranch-top{position:absolute;left:20px;right:20px;top:18px;display:flex;gap:12px;align-items:start}.paper{background:var(--paper);border:1px solid #e0d1b2;box-shadow:var(--shadow);border-radius:15px;position:relative}.paper:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.18' filter='url(%23n)'/%3E%3C/svg%3E")}.identity{padding:14px 18px;display:flex;gap:12px;align-items:center;min-width:235px}.identity b{display:block;font-size:23px}.identity small{font-size:10px;color:#927c65}.identity .mini-avatar{width:48px;height:48px}.badge{font-size:11px;background:#e5ebd7;color:#55704d;border-radius:6px;padding:4px 7px;display:inline-block}.badge.pink{background:#f7dfd8;color:#a46d58}.date-card{padding:12px 17px;font-size:12px;display:grid;gap:5px}.date-card b{font-size:15px}.money-card{margin-left:auto;padding:13px 18px;display:flex;gap:14px;align-items:center}.money-card span{font-size:22px;color:#bd944d}.money-card b{font-size:19px}.money-card small{font-size:10px}.ranch-sidebar{position:absolute;top:108px;left:20px;width:235px;padding:18px 20px}.section-title{font-size:10px;letter-spacing:.16em;color:#9c866a;margin-bottom:12px}.stat-row{display:grid;grid-template-columns:65px 1fr 33px;align-items:center;gap:8px;font-size:11px;margin-bottom:11px}.stat-row b{text-align:right;font-size:13px}.meter{height:7px;background:#e6dfcf;border-radius:20px;overflow:hidden}.meter i{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width .3s}.stats-line{border-top:1px dashed #d8cbb4;margin-top:14px;padding-top:14px}.condition{margin-bottom:12px}.condition header{display:flex;justify-content:space-between;font-size:10px;margin-bottom:6px}.condition strong{font-weight:600}.condition small{color:#9c866a}.nature-note{font-size:10px;color:#9a8468;line-height:1.8;margin:12px 0 0}.sprite{position:relative;display:block;width:100%;height:100%;filter:drop-shadow(0 8px 2px #57452a20);transform-origin:50% 90%}.sprite-wrap{display:block;position:relative;aspect-ratio:1/1;flex-shrink:0}.sprite.custom{background:none;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:22%}.sprite img{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:14px;transform-origin:bottom center}.sprite.ghost{opacity:.72;filter:drop-shadow(0 0 16px #b8e1ff) hue-rotate(20deg)}.sprite.boss{filter:drop-shadow(0 0 9px #ed9dc9) saturate(.7)}.sprite.boss:after{content:'♛';position:absolute;font-size:50px;color:#d9a245;left:40%;top:-13%;text-shadow:0 2px white}.hero-pet{position:absolute;width:clamp(190px,26vw,360px);left:58%;top:49%;transform:translate(-50%,-50%)}.hero-pet .sprite{animation:bob 3.5s ease-in-out infinite}.pet-shadow{position:absolute;bottom:2%;left:15%;width:70%;height:9%;background:#5c633839;filter:blur(10px);border-radius:50%}.hero-tag{position:absolute;left:50%;top:90%;transform:translateX(-50%);font-size:10px;white-space:nowrap;padding:5px 11px;border-radius:20px;background:#fffbf0ed;color:#826649}.speech{position:absolute;left:50%;top:-17%;transform:translateX(-50%) rotate(-2deg);background:#fffbed;padding:10px 18px;border-radius:18px;box-shadow:0 3px 0 #997d4120;font-size:12px;white-space:nowrap}.speech:after{content:'';position:absolute;bottom:-7px;left:45%;border-left:8px solid transparent;border-top:8px solid #fffbed;border-right:8px solid transparent}.ranch-tools{position:absolute;right:18px;top:108px;display:grid;gap:9px}.side-tool{background:#fff9e9e8;border:1px solid #e3d1af;border-radius:12px;padding:12px 10px;display:grid;gap:4px;text-align:center;min-width:65px;font-size:20px;box-shadow:var(--shadow)}.side-tool small{font-size:9px}.ranch-bottom{position:absolute;left:20px;right:20px;bottom:18px;display:flex;gap:12px;align-items:stretch}.action-tile{flex:1;min-width:0;border:3px solid #fff9ed;border-radius:18px;padding:15px 8px 11px;background:#f7d3c0;box-shadow:0 3px 0 #b5875e3b;text-align:center;transition:transform .15s,filter .15s}.action-tile:hover{filter:brightness(1.04);transform:translateY(-3px)}.action-tile .emoji{font-size:29px;display:block;margin-bottom:8px}.action-tile b{display:block;font-size:18px;letter-spacing:.04em}.action-tile small{font-size:9px;opacity:.65;display:block;margin-top:4px}.action-tile.play{background:#f5df9d}.action-tile.rest{background:#d8dbed}.action-tile.food{background:#d7e4c7}.action-tile.cup{background:#e9cba8}.ranch-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 4px;color:#9b876e;font-size:10px;gap:12px}.journal-preview{max-width:70%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mini-link{border-bottom:1px dashed #b7a68f;padding-bottom:3px;font-size:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 19px;border-radius:12px;border:1px solid #d4c5ac;background:#fff9eb;box-shadow:0 3px 0 #d2c1a049;font-size:12px;min-height:44px}.btn.primary{background:#739778;color:white;border-color:#63886b}.btn.coral{background:#e58c7e;color:white;border-color:#d37e72}.btn.danger{color:#a25d50;background:#f9e1d9}.btn.small{padding:7px 11px;min-height:34px;font-size:10px}.btn.wide{width:100%}.pill{padding:5px 9px;border-radius:7px;background:#eee6d6;font-size:10px;display:inline-block}.page{padding-bottom:24px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 20px}.page-heading h1{margin:0;font-size:28px}.page-heading p{font-size:11px;color:#95806b;margin:7px 0 0}.page-heading .btn{margin-left:12px}.training-layout{display:grid;grid-template-columns:1fr 280px;gap:22px}.training-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.train-card{padding:22px;border-radius:18px;text-align:left;transition:transform .2s;display:flex;flex-direction:column;gap:10px;min-height:195px}.train-card:hover{transform:translateY(-4px)}.train-card .emoji{font-size:34px}.train-card h3{margin:0;font-size:16px}.train-card p{font-size:10px;color:#a08b72;line-height:1.8;margin:0;flex:1}.train-card .gains{font-size:11px;color:#6d8b63}.train-card .costs{font-size:9px;color:#ae8975}.pet-summary{padding:22px;text-align:center;align-self:start;position:sticky;top:15px}.pet-summary .sprite-wrap{width:145px;margin:auto}.pet-summary h3{margin:12px 0 6px}.pet-summary small{color:#9d876e;font-size:10px}.pet-summary .stat-row{margin:13px 0;text-align:left}.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}.tab{padding:11px 22px;border-radius:11px;border:1px solid #ded1b8;background:#f4ecdd;font-size:12px}.tab.active{background:var(--green);border-color:var(--green);color:white}.exp-card{padding:23px;display:flex;flex-direction:column;gap:13px}.exp-card h3,.exp-card p{margin:0}.exp-card p{font-size:11px;line-height:1.8;color:#947d64}.exp-card .emoji{font-size:35px}.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.skill-preview{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:9px;background:#f3eddd;border-radius:8px;gap:10px}.skill-preview strong{color:#739376}.cup-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.cup-list{display:grid;gap:14px;align-content:start}.cup-ticket{padding:24px;display:flex;align-items:center;gap:18px;text-align:left;border:2px solid transparent}.cup-ticket.selected{border-color:#d5b567;background:#fff8df}.cup-ticket .emoji{font-size:38px}.cup-ticket h3{margin:0 0 7px;font-size:18px}.cup-ticket p{margin:0;font-size:10px;color:#9f896d;line-height:1.9}.cup-ticket .pill{margin-left:auto;white-space:nowrap}.cup-details{padding:28px;text-align:center}.cup-details h2{font-size:25px;margin:12px 0}.cup-details p{font-size:12px;line-height:1.9;color:#947e63}.rivals{display:flex;justify-content:center;gap:18px;margin:26px 0}.rivals .sprite-wrap{width:75px}.rivals small{font-size:10px}.rank-path{display:flex;gap:10px;align-items:center;justify-content:center;margin:22px 0 12px;font-size:14px}.rank-path span{padding:5px 9px;border:1px solid #dac9ab;border-radius:8px;background:#f6efdd}.rank-path .current{background:var(--green);color:white}.help-line{color:#9c866c;font-size:10px;line-height:1.8}.empty{padding:40px;text-align:center;color:#947c63}.animal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.animal-card{padding:20px;text-align:center}.animal-card .sprite-wrap{width:130px;margin:0 auto 10px}.animal-card h3{margin:8px 0;font-size:17px}.animal-card p{font-size:10px;color:#9a856b;line-height:1.8}.animal-card .badge{margin:3px}.animal-card .btn{margin-top:9px}.collection-head{display:flex;gap:10px;flex-wrap:wrap}.memorial .sprite{filter:sepia(.2);opacity:.7}.record-list{display:grid;gap:10px}.record-row{padding:18px;display:flex;gap:18px;font-size:12px;line-height:1.8}.record-row small{color:#a18c73;white-space:nowrap}.modal-shade{position:fixed;inset:0;background:#473c2cb0;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{max-width:660px;width:100%;max-height:90dvh;overflow:auto;padding:30px;background:var(--paper);border:5px solid #fffdf4;border-radius:22px;box-shadow:0 20px 80px #2e261c66;position:relative}.modal.wide-modal{max-width:900px}.modal h2{font-size:23px;margin:0 0 8px}.modal p{font-size:12px;line-height:1.9;color:#917c64}.modal .close{position:absolute;top:12px;right:15px;font-size:25px;color:#a18b70}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:23px;flex-wrap:wrap}.modal label{display:block;font-size:11px;margin:14px 0 7px}.modal input:not([type=checkbox]):not([type=range]),.modal select,.modal textarea{width:100%;padding:11px;border:1px solid #daccb2;background:#fffdf7;border-radius:8px;font-size:12px}.modal input[type=file]{padding:9px!important;font-size:10px!important}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.field-full{grid-column:1/-1}.check-row{display:flex!important;align-items:center;gap:10px;padding:14px;background:#edeedc;border-radius:10px;font-size:12px!important}.check-row input{accent-color:var(--green);width:18px;height:18px}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:20px 0}.choice{padding:23px 12px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.choice .emoji{font-size:35px}.choice b{font-size:14px}.choice small{font-size:10px;color:#a18a70;line-height:1.8}.result{text-align:center}.result .sprite-wrap{width:160px;margin:10px auto}.result h2{margin:14px 0}.result .result-text{font-size:14px;color:#6a5945;white-space:pre-line}.result-meta{font-size:11px;color:#a38b6a}.media-row{display:grid;grid-template-columns:100px 1fr 1fr;gap:14px;border-top:1px dashed #dacbb4;padding:12px 0;align-items:center}.media-row strong{font-size:11px}.media-row .pose-preview{width:64px;height:64px;background:#eee7d5;border-radius:10px;object-fit:contain;display:block;margin-top:8px}.media-row label{margin:0 0 5px;font-size:9px}.media-row input{max-width:100%}.media-row button{margin-top:5px}.material-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:15px}.material-note{padding:12px 16px;background:#edf0df;border-radius:10px}.howto{display:grid;grid-template-columns:1fr 1fr;gap:14px}.howto article{padding:16px;border:1px solid #ddd0b7;border-radius:13px}.howto h3{font-size:13px;margin:0 0 8px}.howto p{font-size:11px;margin:0;line-height:1.9}.footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ddd2be;padding:15px 0 20px;color:#ab977c;font-size:9px}.welcome{max-width:760px;text-align:center}.welcome .hero-title{font-size:36px;margin:8px 0 16px;letter-spacing:.1em}.welcome .sprite-wrap{width:170px;margin:auto}.welcome .badge{margin-bottom:12px}.welcome .btn{min-width:190px}.welcome p{max-width:480px;margin:0 auto 20px}.hint-box{border:1px dashed #cfb88f;padding:12px;border-radius:10px;font-size:11px;color:#968063;line-height:1.9}.battle-shell{max-width:1700px;margin:0 auto;height:100dvh;min-height:450px;padding:12px;background:#e8e4d4}.battle-board{height:100%;position:relative;overflow:hidden;background:#d7e6bd url('assets/ranch.png') center/cover;border:5px solid #fff8e6;border-radius:22px;isolation:isolate}.battle-board:before{content:'';position:absolute;left:0;right:0;bottom:0;top:35%;background:linear-gradient(transparent,#edd8a5aa 70%);z-index:-1}.battle-top{display:grid;grid-template-columns:1fr 100px 1fr;gap:20px;padding:18px 22px}.combatant-panel{padding:13px 18px;display:grid;grid-template-columns:50px 1fr;gap:12px;align-items:center}.combatant-panel .sprite-wrap{width:48px}.combatant-panel b{font-size:17px}.combatant-panel .hp-label{display:flex;justify-content:space-between;font-size:9px;margin-top:5px}.combatant-panel .meter{height:12px;margin:8px 0 3px;border:2px solid #fffdf4}.combatant-panel.enemy .meter i{background:#d97b72}.battle-timer{background:#fff6e5;padding:10px;text-align:center;border:1px solid #dec5a0;border-radius:15px;align-self:start;box-shadow:var(--shadow)}.battle-timer small{font-size:9px;display:block}.battle-timer b{font-size:40px;line-height:1.3}.battle-message{position:absolute;top:28%;left:50%;transform:translateX(-50%);border-radius:18px;background:#fff9e8df;padding:8px 20px;font-size:12px;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.battle-actors{position:absolute;top:34%;bottom:21%;left:5%;right:5%}.fighter{position:absolute;width:clamp(140px,21vw,300px);bottom:0;transition:left .07s linear;transform:translateX(-50%)}.fighter .sprite{animation:bob 2.8s infinite}.fighter.enemy .sprite{animation-delay:-1.2s}.fighter .shadow{position:absolute;bottom:-3%;left:13%;width:74%;height:9%;background:#524e332e;filter:blur(8px);border-radius:50%}.fighter .damage-number{position:absolute;top:5%;left:50%;font-size:35px;font-weight:900;color:#ae6355;text-shadow:2px 2px #fff;animation:damage .7s forwards;z-index:2}.fighter.hit .sprite{animation:hit .4s}.fighter.attacking .sprite{animation:attack .35s}.fighter.win .sprite{animation:bounce .7s infinite}.fighter.lose .sprite{transform:rotate(-14deg) scaleY(.7);opacity:.65;animation:none}.battle-bottom{position:absolute;left:20px;right:20px;bottom:15px;display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:20px;align-items:end}.move-controls{display:flex;gap:10px}.move-btn{background:#f8d3bc;border:3px solid #fffcf0;border-radius:16px;min-height:88px;flex:1;font-size:16px;box-shadow:var(--shadow);user-select:none;touch-action:none}.move-btn.away{background:#d2e3e9}.move-btn span{font-size:26px;display:block}.move-btn small{font-size:9px;opacity:.6}.guts-panel{padding:12px 18px;text-align:center}.guts-panel b{font-size:15px}.guts-panel .meter{height:14px;margin:9px 0}.guts-panel .meter i{background:#dcae4f}.guts-panel small{font-size:10px}.attack-controls{display:grid;grid-template-columns:32px 1fr 32px;gap:6px;align-items:center}.arrow-skill{background:#fff9e9e8;border-radius:9px;height:54px;font-size:20px}.attack-card{padding:10px 10px 8px;min-height:105px;background:#f5d67c;border:3px solid #fffbee;border-radius:17px;text-align:center;box-shadow:var(--shadow);user-select:none;touch-action:none}.attack-card[aria-disabled=true]{background:#d7d3c7;color:#8f887d}.attack-card b{display:block;font-size:18px}.attack-card .skill-icon{font-size:23px}.attack-card small{font-size:9px;display:block;margin-top:4px}.battle-pause{position:absolute;right:22px;top:26%;z-index:5;background:#fff8e6e8;padding:7px 13px;border-radius:8px;font-size:11px}.distance{position:absolute;top:18%;left:50%;transform:translateX(-50%);width:240px;background:#fff8e8f0;padding:8px 14px;border-radius:13px;font-size:9px;text-align:center}.distance-track{height:5px;border-radius:20px;background:linear-gradient(90deg,#e6a18a,#d8c681,#8db3aa);position:relative;margin:9px 0}.distance-track i{position:absolute;width:12px;height:12px;top:-4px;background:#65573d;border:2px solid white;border-radius:50%}.distance-labels{display:flex;justify-content:space-between;font-size:8px}.round-badges{display:flex;gap:8px;justify-content:center}.round-badges span{width:30px;height:30px;border:1px solid #d3c5ab;border-radius:50%;display:grid;place-items:center;font-size:12px}.round-badges .win{background:#d6e6cd;color:#55774f}.round-badges .lose{background:#f4d9cf;color:#ab7367}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);max-width:90vw;padding:13px 22px;border-radius:13px;background:#4d644e;color:white;font-size:12px;box-shadow:var(--shadow);z-index:200;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#rotate-hint{display:none;position:fixed;bottom:0;left:0;right:0;background:#5f765eea;color:white;z-index:70;padding:12px 18px;font-size:11px;text-align:center;align-items:center;justify-content:center;gap:15px}#rotate-hint button{color:white;font-size:24px}.storage-warning{background:#ffe2d1;color:#985c42;padding:12px;text-align:center;font-size:11px}.music-indicator{position:fixed;bottom:10px;right:12px;opacity:.5;font-size:9px;pointer-events:none}.milestone{margin-top:14px;padding:14px 18px;font-size:11px;background:#edf0df;border-radius:13px;display:flex;justify-content:space-between;align-items:center}.boss-note{font-size:9px;color:#9b736d}.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.slider-field label{font-size:10px!important}.slider-field input{width:100%}.release-note{color:#a28b6e;font-size:10px;padding-top:12px}.retired-banner{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);padding:18px 22px;text-align:center;max-width:90%;width:390px;z-index:5}.retired-banner h3{margin:0 0 7px;font-size:17px}.retired-banner p{font-size:11px;line-height:1.7}.ghost-star{color:#7e8eaf}.hide{display:none!important}@keyframes bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-6px) rotate(1deg)}}@keyframes bounce{50%{transform:translateY(-25px) rotate(5deg)}}@keyframes hit{20%,60%{filter:brightness(2);transform:translateX(6px)}40%,80%{transform:translateX(-7px)}}@keyframes attack{50%{transform:translateX(20px) rotate(10deg)}}@keyframes damage{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-50px)}}@media(min-width:1500px){.ranch{height:680px;min-height:680px}.ranch-sidebar{width:270px}.ranch-top .identity{min-width:270px}.hero-pet{width:360px}.action-tile{padding:19px 8px 16px}.ranch-sidebar .stat-row{font-size:12px;margin-bottom:15px}.ranch-top{top:23px}.ranch-sidebar{top:116px}}
@media(max-width:1050px){.shell{padding:15px 22px 0}.topnav{margin-left:10px}.topnav button{padding:9px 10px;font-size:11px}.brand b{font-size:18px}.brand small{font-size:8px}.intro-line h1{font-size:25px}.ranch{min-height:460px;height:66vw}.training-cards{grid-template-columns:1fr 1fr}.animal-grid{grid-template-columns:repeat(3,1fr)}.ranch-sidebar{width:210px;padding:16px}.identity{min-width:210px}.ranch-tools{top:110px}.training-layout{grid-template-columns:1fr 240px}.cup-details{padding:20px}.battle-message{top:30%}.distance{top:22%}.battle-actors{top:40%;bottom:23%}.battle-bottom{gap:12px}.battle-top{padding:14px;gap:12px}.combatant-panel{padding:10px 13px}.combatant-panel b{font-size:14px}}
@media(max-height:650px) and (orientation:landscape){.shell{padding:10px 18px 0}.brand-row{margin-bottom:8px;gap:10px}.brand .paw{font-size:18px;padding:4px 7px}.brand b{font-size:16px}.brand small{font-size:7px}.utility .icon-btn{height:32px;min-width:34px;font-size:15px}.save-status{display:none}.intro-line{margin:9px 0 9px}.intro-line h1{font-size:20px}.intro-line .eyebrow{display:none}.intro-line p{font-size:10px}.ranch{height:calc(100dvh - 118px);min-height:260px;border-width:4px;border-radius:18px}.ranch-top{top:10px;left:12px;right:12px;gap:8px}.identity{padding:8px 12px;min-width:180px;gap:7px}.identity .mini-avatar{width:32px;height:32px}.identity b{font-size:17px}.identity small{font-size:8px}.date-card{padding:8px 11px;font-size:9px;gap:2px}.date-card b{font-size:11px}.money-card{padding:9px 12px;gap:7px}.money-card b{font-size:16px}.money-card small{display:none}.ranch-sidebar{left:12px;top:73px;width:180px;padding:10px 12px;bottom:13px;overflow:auto}.ranch-sidebar .section-title{font-size:8px;margin-bottom:7px}.stat-row{font-size:9px;margin-bottom:6px;gap:6px;grid-template-columns:55px 1fr 25px}.stat-row b{font-size:10px}.stats-line{margin-top:8px;padding-top:8px}.condition{margin-bottom:6px}.condition header{font-size:8px;margin-bottom:4px}.nature-note{font-size:8px;margin:6px 0 0}.ranch-tools{right:12px;top:75px;gap:5px}.side-tool{padding:7px;min-width:48px;font-size:16px}.side-tool small{font-size:8px}.hero-pet{width:clamp(120px,22vw,240px);left:56%;top:43%}.speech{font-size:9px;padding:7px 12px;top:-15%}.hero-tag{font-size:8px}.ranch-bottom{left:210px;right:75px;bottom:12px;gap:7px}.action-tile{border-width:2px;border-radius:12px;padding:8px 4px 7px}.action-tile .emoji{font-size:21px;margin-bottom:4px}.action-tile b{font-size:12px}.action-tile small{font-size:7px;margin-top:2px}.ranch-footer{padding:8px 2px;font-size:8px}.footer{display:none}.page-heading{margin:12px 0}.page-heading h1{font-size:23px}.training-cards{grid-template-columns:repeat(3,1fr);gap:10px}.train-card{min-height:160px;padding:15px;gap:7px}.train-card h3{font-size:13px}.train-card .emoji{font-size:25px}.training-layout{grid-template-columns:1fr 200px;gap:15px}.pet-summary{padding:14px}.pet-summary .sprite-wrap{width:90px}.pet-summary .stat-row{margin:8px 0}.tabs{margin-bottom:12px}.tab{padding:8px 18px}.modal{max-height:94dvh;padding:22px 26px}.welcome .sprite-wrap{width:85px}.welcome .hero-title{font-size:27px;margin:4px 0 10px}.welcome p{font-size:11px;margin-bottom:10px}.welcome .badge{margin-bottom:6px}.choice-grid{margin:14px 0;gap:10px}.choice{padding:15px 10px;gap:8px}.result .sprite-wrap{width:90px}.result h2{font-size:19px;margin:6px 0}.modal-actions{margin-top:15px}.cup-ticket{padding:17px}.cup-details{padding:16px}.cup-details h2{font-size:20px}.rivals{margin:15px 0}.rivals .sprite-wrap{width:55px}.cup-details p{font-size:10px}.rank-path{margin:12px 0}.battle-shell{padding:5px;min-height:300px}.battle-board{border-radius:15px;border-width:3px}.battle-top{grid-template-columns:1fr 70px 1fr;padding:9px 12px;gap:14px}.combatant-panel{padding:7px 12px;grid-template-columns:34px 1fr;gap:8px}.combatant-panel .sprite-wrap{width:34px}.combatant-panel b{font-size:12px}.combatant-panel .meter{height:9px;margin:5px 0 2px}.combatant-panel .hp-label{font-size:8px}.battle-timer{padding:5px}.battle-timer b{font-size:28px}.battle-timer small{font-size:7px}.distance{top:24%;width:190px;padding:5px 10px;font-size:8px}.distance-track{margin:7px 0}.battle-message{top:40%;font-size:9px;padding:5px 12px}.battle-pause{top:25%;right:13px;font-size:9px}.battle-actors{top:35%;bottom:27%}.fighter{width:clamp(105px,18vw,215px)}.battle-bottom{left:12px;right:12px;bottom:10px;grid-template-columns:1fr 1fr 1.2fr;gap:12px}.move-btn{min-height:68px;font-size:12px;border-width:2px;border-radius:12px}.move-btn span{font-size:21px}.move-btn small{font-size:7px}.guts-panel{padding:9px 13px}.guts-panel b{font-size:12px}.guts-panel small{font-size:8px}.guts-panel .meter{margin:6px 0;height:10px}.attack-card{min-height:79px;padding:5px;border-width:2px;border-radius:12px}.attack-card .skill-icon{font-size:18px}.attack-card b{font-size:13px}.attack-card small{font-size:7px}.arrow-skill{height:43px;font-size:16px}.attack-controls{grid-template-columns:28px 1fr 28px}.retired-banner{bottom:105px;padding:10px 16px}.retired-banner h3{font-size:14px}.retired-banner p{font-size:10px}.milestone{margin:10px 0;font-size:10px}.animal-grid{grid-template-columns:repeat(4,1fr);gap:10px}.animal-card{padding:12px}.animal-card .sprite-wrap{width:80px}.animal-card h3{font-size:13px}}
@media(max-width:640px) and (orientation:portrait){.shell{padding:15px 12px 35px}.brand-row{flex-wrap:wrap;gap:10px}.brand b{font-size:18px}.utility{gap:5px}.topnav{order:3;width:100%;margin:0;justify-content:space-between}.topnav button{padding:8px 14px}.save-status{display:none}.intro-line p{display:none}.ranch{min-height:660px;height:calc(100dvh - 220px);border-radius:20px}.ranch-top{left:10px;right:10px;top:12px;flex-wrap:wrap;gap:8px}.identity{min-width:0;flex:1;padding:10px}.identity b{font-size:18px}.identity .mini-avatar{width:36px;height:36px}.date-card{font-size:9px;padding:9px}.date-card b{font-size:11px}.money-card{position:absolute;top:73px;right:0;padding:8px 11px}.money-card small{display:none}.money-card b{font-size:15px}.ranch-sidebar{top:90px;left:10px;width:160px;padding:12px}.ranch-sidebar .section-title{font-size:8px}.ranch-sidebar .stat-row{grid-template-columns:48px 1fr 25px;font-size:9px;gap:4px;margin-bottom:7px}.ranch-sidebar .stat-row b{font-size:10px}.condition header{font-size:9px}.nature-note{font-size:8px}.hero-pet{width:200px;left:66%;top:58%}.speech{font-size:10px;max-width:180px;white-space:normal;text-align:center}.ranch-tools{top:145px;right:10px;gap:6px}.side-tool{min-width:52px;padding:8px;font-size:18px}.ranch-bottom{left:10px;right:10px;bottom:12px;gap:6px;flex-wrap:wrap}.action-tile{flex:1 1 28%;padding:10px 4px}.action-tile b{font-size:13px}.action-tile .emoji{font-size:22px;margin-bottom:4px}.action-tile small{font-size:7px}.ranch-footer{font-size:8px}.footer{font-size:8px;padding-bottom:50px}.training-layout{display:flex;flex-direction:column-reverse;gap:15px}.training-cards{grid-template-columns:1fr 1fr;gap:10px}.train-card{padding:16px;min-height:180px}.train-card h3{font-size:13px}.pet-summary{position:static;padding:15px}.pet-summary .sprite-wrap{width:65px;float:left;margin-right:15px}.pet-summary h3{text-align:left;margin:7px 0}.pet-summary>.stat-row{display:none}.pet-summary .condition{display:none}.pet-summary small{display:block;text-align:left}.exp-grid{grid-template-columns:1fr}.cup-layout{grid-template-columns:1fr}.cup-ticket{padding:17px;gap:12px}.cup-ticket h3{font-size:15px}.cup-ticket .emoji{font-size:28px}.cup-details{padding:20px}.page-heading h1{font-size:23px}.page-heading p{font-size:10px}.animal-grid{grid-template-columns:1fr 1fr;gap:10px}.animal-card{padding:15px 10px}.animal-card .sprite-wrap{width:95px}.animal-card h3{font-size:14px}.modal-shade{padding:10px}.modal{padding:24px 18px;max-height:91dvh}.modal h2{font-size:20px}.form-grid{grid-template-columns:1fr}.choice-grid{gap:7px}.choice{padding:15px 7px}.choice b{font-size:11px}.choice small{font-size:8px}.media-row{grid-template-columns:65px 1fr;gap:9px}.media-row>div:last-child{grid-column:2}.material-toolbar{grid-template-columns:1fr}.howto{grid-template-columns:1fr}.welcome .hero-title{font-size:27px}.welcome .sprite-wrap{width:130px}.battle-shell{min-width:0;height:100dvh;min-height:600px}.battle-top{grid-template-columns:1fr 55px 1fr;gap:6px;padding:10px 7px}.combatant-panel{padding:9px;grid-template-columns:1fr;gap:3px}.combatant-panel .sprite-wrap{display:none}.combatant-panel b{font-size:12px}.battle-timer{padding:9px 3px}.battle-timer b{font-size:26px}.battle-timer small{font-size:7px}.distance{top:23%;width:200px}.battle-message{top:35%;font-size:10px}.battle-actors{top:40%;bottom:30%;left:0;right:0}.fighter{width:135px}.battle-bottom{left:9px;right:9px;bottom:55px;grid-template-columns:1fr 1fr;gap:9px}.guts-panel{grid-column:1/-1;grid-row:1;padding:7px 13px}.guts-panel .meter{margin:6px 0}.move-controls{gap:5px}.move-btn{min-height:80px;font-size:12px}.move-btn small{display:none}.attack-controls{gap:3px;grid-template-columns:22px 1fr 22px}.attack-card{min-height:90px;padding:7px 4px}.attack-card b{font-size:12px}.attack-card small{font-size:7px}.arrow-skill{font-size:12px}.battle-pause{top:17%;right:10px;font-size:9px}#rotate-hint{display:flex}.retired-banner{bottom:190px;width:85%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* First companion selection */
.start-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 8px}.start-option{padding:16px 12px;display:grid;place-items:center;gap:5px;min-height:105px;border:2px solid #e4d4ba;transition:transform .15s,background .15s}.start-option:hover{background:#f2f5e6;transform:translateY(-2px)}.start-option span{font-size:25px}.start-option b{font-size:16px}.start-option small{font-size:10px;color:#917c64}.start-choice .check-row{text-align:left}.start-choice>.help-line{margin:8px auto 0}
@media (orientation:landscape) and (max-height:650px){
 .shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:0}
 .brand-row{height:32px;margin:0 0 5px}.topnav button{padding:7px 8px}.intro-line{margin:5px 0 6px;height:25px}.intro-line h1{font-size:18px;margin:0}.intro-line p{font-size:9px}
 .ranch{height:calc(100dvh - 88px);min-height:0}.ranch-footer{display:none}
 .ranch-sidebar{top:64px;bottom:8px;left:9px;width:168px;padding:8px 10px}.ranch-sidebar .section-title{margin-bottom:4px}.ranch-sidebar .stat-row{margin-bottom:4px}.ranch-sidebar .stats-line{padding-top:5px;margin-top:5px}.ranch-sidebar .condition{margin-bottom:4px}.ranch-sidebar .condition header{margin-bottom:2px}.ranch-sidebar .meter{height:5px}.ranch-sidebar .nature-note{margin-top:4px}.ranch-tools{top:64px;right:8px}.side-tool{min-width:45px;padding:5px}.ranch-bottom{left:185px;right:62px;bottom:8px;gap:5px}.action-tile{padding:5px 3px}.action-tile .emoji{font-size:19px;margin-bottom:1px}.action-tile b{font-size:11px}.action-tile small{font-size:7px}.hero-pet{left:55%;top:45%;width:min(26vw,47vh)}
 .battle-shell{height:100dvh;min-height:0;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:max(4px,env(safe-area-inset-bottom));padding-left:max(5px,env(safe-area-inset-left));padding-right:max(5px,env(safe-area-inset-right))}
 .start-choice .sprite-wrap{width:min(70px,19vh)}.start-choice .hero-title{font-size:22px;margin:3px 0 5px}.start-choice p{font-size:10px;margin:0 auto 6px}.start-choice .badge{margin-bottom:2px}.start-choice .check-row{padding:8px 12px;font-size:10px!important}.start-options{margin:8px 0 2px;gap:8px}.start-option{min-height:65px;padding:7px;gap:2px}.start-option span{font-size:18px}.start-option b{font-size:12px}.start-option small{font-size:9px}.modal{max-height:94dvh}.modal-shade{padding:8px}
}
@media (orientation:landscape) and (max-height:450px){
 .ranch .speech,.ranch .hero-tag{display:none}.ranch-top .identity{min-width:150px;padding:6px 8px}.ranch-top .identity b{font-size:14px}.ranch-top .mini-avatar{width:26px;height:26px}.date-card{padding:6px 8px}.money-card{padding:6px 9px}.ranch-sidebar{top:53px}.ranch-tools{top:53px}.side-tool{font-size:13px;min-width:40px}.side-tool small{font-size:7px}.ranch-bottom{left:185px;right:55px}.hero-pet{top:42%;width:min(24vw,42vh)}.action-tile .emoji{font-size:16px}.action-tile b{font-size:10px}.action-tile small{display:none}
 .brand b{font-size:14px}.brand small{display:none}.brand .paw{font-size:15px}.topnav{margin-left:0}.topnav button{font-size:10px;padding:6px}.utility{gap:4px}.utility .icon-btn{height:29px;min-width:30px}.brand-row{gap:5px}.intro-line p{display:none}.intro-line h1{font-size:16px}.battle-top{grid-template-columns:1fr 55px 1fr;gap:8px}.combatant-panel b{font-size:11px}.battle-timer b{font-size:23px}.battle-actors{top:38%;bottom:27%}.fighter{width:min(18vw,34vh)}.battle-message{top:39%;max-width:48%;font-size:8px}.battle-bottom{gap:6px}.move-btn{min-height:56px}.guts-panel{padding:6px 9px}.attack-card{min-height:66px}.attack-card b{font-size:11px}.arrow-skill{height:40px}.distance{top:23%;width:150px}.battle-pause{top:22%}
}
@media (orientation:landscape) and (max-height:450px){
 .hero-pet{top:51%;width:min(20vw,31vh)}
 .ranch-sidebar .nature-note,.ranch-sidebar .stats-line .condition:nth-child(3){display:none}
 .ranch-sidebar .stat-row{margin-bottom:3px}.ranch-sidebar .section-title{margin-bottom:3px}
}
@media (orientation:landscape) and (max-height:450px){
 .modal{padding:14px 18px}.start-choice>.sprite-wrap,.start-choice>.badge{display:none}.start-choice .hero-title{font-size:20px;margin:0 0 3px}.start-choice p{line-height:1.5;font-size:10px;margin-bottom:5px}.start-choice .check-row{padding:5px 10px!important}.start-options{margin:6px 0 3px}.start-option{min-height:58px;padding:5px}.start-option span{font-size:16px}.start-option b{font-size:12px}.start-option small{font-size:8px}.start-choice>.help-line{margin-top:2px}
}
.mobile-ranch-bar{display:none}
/* 横向きのスマホや、表示領域が小さいアプリ内ブラウザ用 */
@media (orientation:landscape) and (max-height:450px) and (max-width:1100px){
 .ranch-shell{padding:0 max(3px,env(safe-area-inset-right)) max(3px,env(safe-area-inset-bottom)) max(3px,env(safe-area-inset-left))}
 .ranch-shell>.brand-row,.ranch-shell>.intro-line,.ranch-shell>.ranch-footer,.ranch-shell>.footer,.ranch-shell>.milestone{display:none}
 .ranch-shell>.ranch{height:calc(100dvh - 3px);width:100%;min-height:0;border-width:3px;border-radius:12px;overflow:hidden}
 .ranch-top,.ranch-sidebar,.ranch-tools{display:none}
 .mobile-ranch-bar{position:absolute;z-index:6;display:flex;align-items:flex-start;gap:5px;top:6px;left:7px;right:7px}
 .mobile-status{min-width:140px;background:#fff9eced;border:1px solid #dfcfb1;border-radius:10px;padding:6px 10px;text-align:left;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;color:#523a29;box-shadow:var(--shadow)}
 .mobile-status b{font-size:15px;line-height:1.2}.mobile-status span{font-size:11px;line-height:1.3}.mobile-status small{font-size:10px;color:#7e735b}
 .mobile-meta{display:flex;gap:5px;flex:1;justify-content:center;flex-wrap:wrap;font-size:11px}.mobile-meta span{background:#fff9eced;border-radius:8px;padding:6px 8px;white-space:nowrap}
 .mobile-ranch-menu{display:flex;gap:5px;margin-left:auto}.mobile-ranch-menu button{font-size:12px;min-height:38px;min-width:43px;background:#fff9eced;border:1px solid #dfcfb1;border-radius:9px;padding:5px 8px;box-shadow:var(--shadow)}
 .hero-pet{left:50%;top:47%;width:min(26vw,45dvh);max-width:200px;z-index:1}.hero-pet .speech,.hero-pet .hero-tag{display:none}
 .ranch-bottom{z-index:5;left:8px;right:8px;bottom:6px;gap:6px}.action-tile{min-height:52px;border:2px solid #fff9ed;border-radius:11px;padding:4px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center}.action-tile .emoji{font-size:18px;line-height:1.1;margin:0 0 2px}.action-tile b{font-size:14px;line-height:1.1}.action-tile small{display:none}
 .retired-banner{bottom:65px;padding:8px 12px;z-index:7}.retired-banner h3{font-size:13px}.retired-banner p{display:none}.retired-banner .btn{min-height:35px;padding:6px 12px}
 .shell:not(.ranch-shell){padding-left:max(9px,env(safe-area-inset-left));padding-right:max(9px,env(safe-area-inset-right))}.shell:not(.ranch-shell) .brand-row{height:38px}.shell:not(.ranch-shell) .topnav button{font-size:12px;padding:8px}.shell:not(.ranch-shell) .page-heading h1{font-size:20px}.shell:not(.ranch-shell) .page-heading p{font-size:12px}.shell:not(.ranch-shell) .btn{font-size:12px}
 .battle-shell{height:100dvh;min-height:0}.battle-board{height:100%}.battle-top{padding:5px 8px;grid-template-columns:1fr 48px 1fr;gap:6px}.combatant-panel{padding:5px 9px;min-height:41px}.combatant-panel b{font-size:12px}.combatant-panel .hp-label{font-size:10px}.combatant-panel .meter{margin:3px 0;height:8px}.battle-timer{padding:2px}.battle-timer b{font-size:22px}.battle-timer small{font-size:8px}.distance{top:48px;width:150px;padding:3px 8px}.distance b{font-size:10px}.distance-track{margin:5px 0}.distance-labels{font-size:9px}.battle-pause{top:50px;right:8px;padding:6px 9px;font-size:11px}.battle-actors{top:55px;bottom:58px}.fighter{width:min(18vw,37dvh)}.battle-message{top:auto;bottom:64px;max-width:55%;padding:4px 8px;font-size:10px}.battle-bottom{left:7px;right:7px;bottom:5px;gap:6px}.move-controls{gap:5px}.move-btn{min-height:50px;font-size:13px}.move-btn span{font-size:17px}.move-btn small{display:none}.guts-panel{padding:6px 8px}.guts-panel b{font-size:12px}.guts-panel small{font-size:10px}.guts-panel .meter{height:8px;margin:4px 0}.attack-card{min-height:55px}.attack-card b{font-size:13px}.attack-card small{font-size:9px}.arrow-skill{height:44px;min-width:27px;font-size:16px}
}
@media (orientation:landscape) and (max-height:250px) and (max-width:1100px){
 .mobile-status{min-width:0;max-width:210px;padding:5px 8px}.mobile-status b{font-size:13px}.mobile-status span{font-size:10px}.mobile-status small{display:none}.mobile-meta{font-size:10px}.mobile-meta span{padding:5px}.mobile-ranch-menu button{min-height:34px;padding:4px 6px}.hero-pet{top:45%;width:min(20vw,44dvh)}.action-tile{min-height:45px}.action-tile .emoji{font-size:15px}.action-tile b{font-size:13px}.ranch-bottom{bottom:4px}
 .battle-top{grid-template-columns:1fr 44px 1fr}.combatant-panel{min-height:35px}.distance{top:41px}.battle-pause{top:42px}.battle-actors{top:45px;bottom:52px}.fighter{width:min(16vw,34dvh)}.battle-message{bottom:56px}.battle-bottom{bottom:4px}.move-btn{min-height:45px}.attack-card{min-height:49px}.guts-panel{padding:3px 7px}
}
@media (orientation:landscape) and (max-height:250px) and (max-width:1100px){
 .modal-shade{padding:4px}.modal{max-height:calc(100dvh - 8px);padding:8px 12px}.start-choice{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.4fr);grid-template-areas:'title choices' 'description choices' 'life choices';column-gap:14px;align-items:center;text-align:left}.start-choice .hero-title{grid-area:title;text-align:left;font-size:20px;margin:0}.start-choice>p:not(.help-line){grid-area:description;font-size:11px;margin:3px 0}.start-choice .check-row{grid-area:life;margin:3px 0;padding:5px!important;font-size:11px!important}.start-choice .check-row small{font-size:9px}.start-options{grid-area:choices;align-self:center;margin:0;gap:8px}.start-option{min-height:75px}.start-option span{font-size:20px}.start-option b{font-size:14px}.start-option small{font-size:10px}.start-choice>.help-line{display:none}
}
@media (orientation:landscape) and (max-height:250px) and (max-width:1100px){
 .result{display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:14px;text-align:left;align-items:center}.result>.sprite-wrap{grid-column:1;grid-row:1 / span 7;width:90px;margin:0 auto}.result>:not(.sprite-wrap){grid-column:2}.result>.badge{justify-self:start;font-size:10px}.result h2{font-size:17px;line-height:1.3;margin:2px 0}.result p,.result .result-text{font-size:11px;line-height:1.45;margin:2px 0}.result .modal-actions{margin-top:4px;justify-content:flex-start!important}.result .modal-actions .btn{min-height:34px;padding:6px 12px}
}
@media (orientation:landscape) and (max-height:450px) and (max-width:1100px){
 .shell:not(.ranch-shell) .brand{display:none}.shell:not(.ranch-shell) .topnav{margin-left:0;gap:3px}.shell:not(.ranch-shell) .topnav button{font-size:13px;padding:9px 10px}.shell:not(.ranch-shell) .utility .icon-btn{min-width:38px;height:38px}.shell:not(.ranch-shell) .brand-row{height:42px}.train-card h3{font-size:15px}.train-card p,.exp-card p,.cup-ticket p,.cup-details p,.help-line{font-size:12px}.train-card .gains,.train-card .costs,.skill-preview{font-size:11px}.cup-ticket h3{font-size:16px}.tab{font-size:13px;min-height:40px}.page-heading p{line-height:1.5}
}
@media (orientation:landscape) and (max-height:250px) and (max-width:1100px){
 .battle-timer small{display:none}.battle-timer b{font-size:22px;line-height:1.2}.distance{top:38px;width:135px}.distance-track{margin:3px 0}.distance-labels{display:none}.battle-pause{top:40px}.training-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.train-card{min-height:150px}.training-layout{grid-template-columns:minmax(0,1fr) 170px}.pet-summary{padding:10px}.pet-summary .sprite-wrap{width:70px}.cup-ticket{padding:14px}.cup-details{padding:14px}
}
@media (orientation:landscape) and (max-height:450px) and (max-width:1100px){.battle-pause{top:auto;bottom:64px;right:8px}}
@media (orientation:landscape) and (max-height:250px) and (max-width:1100px){.battle-pause{bottom:55px}}
/* Each activity has its own illustrated prop and animation. */
.activity-art{display:block;aspect-ratio:1;filter:drop-shadow(0 4px 2px #6d4b2822)}
.card-art{width:84px;height:84px;margin:-7px 0 -2px;flex:none;transition:transform .2s}.train-card:hover .card-art,.exp-card:hover .card-art{transform:rotate(-5deg) scale(1.06)}
.activity-view .activity-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.activity-top h2{margin:6px 0 2px;font-size:23px}.activity-top p{margin:0;font-size:12px;color:#8e775e}.activity-top .btn{flex:none}
.activity-stage{position:relative;height:290px;overflow:hidden;border-radius:16px;border:3px solid #fff9e9;background:#e6ebcf url('assets/ranch.png') center 52%/cover;isolation:isolate}.activity-stage:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#f8edce40);z-index:-1}.activity-stage:after{content:'';position:absolute;bottom:9%;left:19%;width:62%;height:12%;border-radius:50%;background:#73694a29;filter:blur(9px);z-index:0}
.activity-pet,.activity-object{position:absolute;bottom:11%;z-index:1;width:clamp(125px,22vw,200px);height:auto;aspect-ratio:1}.activity-pet{left:27%;animation:pet-step 1s ease-in-out infinite}.activity-pet .sprite-wrap{width:100%;height:100%}.activity-object{left:54%;animation:object-gentle 1.3s ease-in-out infinite}.activity-object .activity-art{width:100%;height:100%}.activity-marks{position:absolute;left:56%;top:16%;color:#ffef94;text-shadow:0 2px #a47a42;font-size:25px;animation:sparkle .8s ease-in-out infinite alternate}.activity-sun{position:absolute;left:13%;top:15%;font-size:32px;color:#fff7b9;animation:sparkle 1s ease-in-out infinite alternate}.activity-progress{height:6px;background:#e8decc;border-radius:10px;margin-top:12px;overflow:hidden}.activity-progress span{display:block;width:100%;height:100%;transform-origin:left;background:#8bad85;animation:progress-fill 3.4s linear forwards}
.scene-log .activity-pet{animation:pet-push 1.05s ease-in-out infinite}.scene-log .activity-object{animation:log-roll 1.05s ease-in-out infinite}.scene-cushion .activity-pet{animation:pet-brace .8s ease-in-out infinite}.scene-cushion .activity-object{animation:cushion-bounce .8s ease-in-out infinite}.scene-dodge .activity-pet{animation:pet-dodge 1s ease-in-out infinite}.scene-dodge .activity-object{animation:ball-roll 1s ease-in-out infinite}.scene-target .activity-pet{animation:pet-aim 1s ease-in-out infinite}.scene-target .activity-object{animation:target-bump 1.1s ease-in-out infinite}.scene-target .activity-marks{animation:target-spark 1.1s ease-out infinite}.scene-puzzle .activity-pet{animation:pet-think 1.6s ease-in-out infinite}.scene-puzzle .activity-object{animation:puzzle-think 1.6s ease-in-out infinite}.scene-walk .activity-pet{animation:pet-walk 1.2s ease-in-out infinite}.scene-walk .activity-object{animation:object-gentle 1.2s ease-in-out infinite}.scene-heavy .activity-pet{animation:pet-lift 1s ease-in-out infinite}.scene-heavy .activity-object{animation:rock-lift 1s ease-in-out infinite}.scene-power .activity-pet{animation:climb 1.6s ease-in-out infinite}.scene-power .activity-object{animation:object-gentle 1.6s ease-in-out infinite}.scene-wisdom .activity-pet{animation:pet-think 1.2s ease-in-out infinite}.scene-wisdom .activity-object{animation:book-glow 1.1s ease-in-out infinite}.scene-speed .activity-pet{animation:dash-pet .8s ease-in-out infinite}.scene-speed .activity-object{animation:wind-tree .8s ease-in-out infinite}.scene-aim .activity-pet{animation:pet-aim 1s ease-in-out infinite}.scene-aim .activity-object{animation:target-bump 1s ease-in-out infinite}
@keyframes progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pet-step{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(calc(-1 * var(--artwork-step,12px))) rotate(4deg)}}@keyframes object-gentle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes pet-push{0%,100%{transform:translateX(-7px) rotate(-5deg)}55%{transform:translateX(18px) rotate(9deg)}}@keyframes log-roll{0%,100%{transform:translateX(0) rotate(0)}55%{transform:translateX(22px) rotate(16deg)}}@keyframes pet-brace{0%,100%{transform:scale(1,1)}50%{transform:scale(1.12,.85) translateX(-8px)}}@keyframes cushion-bounce{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translate(-12px,8px) scale(1.1,.85) rotate(-8deg)}}@keyframes pet-dodge{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--artwork-rise,28px))) rotate(-8deg)}}@keyframes ball-roll{0%{transform:translateX(30px) rotate(0)}50%{transform:translateX(-55px) rotate(-150deg)}100%{transform:translateX(30px) rotate(0)}}@keyframes pet-aim{0%,100%{transform:rotate(-4deg)}50%{transform:translateX(8px) rotate(5deg)}}@keyframes target-bump{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(9deg)}85%{transform:rotate(-6deg)}}@keyframes target-spark{0%,55%{opacity:0;transform:translateX(-90px) scale(.5)}75%{opacity:1;transform:translateX(8px) scale(1)}100%{opacity:0;transform:translateX(10px) scale(1.2)}}@keyframes pet-think{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(7deg) translateY(-4px)}}@keyframes puzzle-think{0%,100%{transform:rotate(0)}50%{transform:rotate(5deg) translateY(-6px)}}@keyframes pet-walk{0%,100%{transform:translate(-8px,0) rotate(-3deg)}50%{transform:translate(12px,calc(-1 * var(--artwork-step,12px))) rotate(4deg)}}@keyframes pet-lift{0%,100%{transform:scale(1,1) translateY(0)}50%{transform:scale(1.08,.92) translateY(5px)}}@keyframes rock-lift{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(calc(-1 * var(--artwork-rise,25px))) rotate(4deg)}}@keyframes climb{0%,100%{transform:translate(-20px,var(--artwork-drop,10px)) rotate(-8deg)}50%{transform:translate(22px,calc(-1 * var(--artwork-rise,28px))) rotate(8deg)}}@keyframes book-glow{0%,100%{transform:scale(.97) rotate(-3deg);filter:brightness(1)}50%{transform:scale(1.06) rotate(3deg);filter:brightness(1.16)}}@keyframes dash-pet{0%,100%{transform:translateX(-26px) rotate(-5deg)}50%{transform:translate(25px,calc(-1 * var(--artwork-step,14px))) rotate(5deg)}}@keyframes wind-tree{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes sparkle{0%{opacity:.3;transform:scale(.75)}100%{opacity:1;transform:scale(1.15)}}
@media (orientation:landscape) and (max-height:450px){.card-art{width:55px;height:55px;margin:-5px 0}.activity-top{margin-bottom:6px!important}.activity-top h2{font-size:17px;margin:3px 0}.activity-top p{font-size:11px}.activity-stage{height:min(200px,48dvh)}.activity-pet,.activity-object{width:min(130px,38dvh)}.activity-marks{font-size:18px}.activity-progress{margin-top:6px}.monthly-result .result-text{font-size:12px}}
@media (orientation:landscape) and (max-height:250px){.activity-top .badge{display:none}.activity-top h2{font-size:16px}.activity-top p{font-size:10px}.activity-top .btn{min-height:30px}.activity-stage{height:calc(100dvh - 72px);min-height:65px}.activity-pet,.activity-object{width:min(18vw,43dvh);bottom:0}.activity-pet{left:32%}.activity-object{left:52%}.activity-sun,.activity-marks{font-size:14px}.activity-progress{margin-top:4px;height:4px}}
@media(prefers-reduced-motion:reduce){.activity-stage *,.activity-progress span{animation:none!important}}
@media (orientation:landscape) and (max-height:250px){.activity-stage{height:calc(100dvh - 100px);min-height:58px}.activity-pet,.activity-object{width:min(16vw,36dvh)}.activity-top h2{margin:1px 0}.activity-top{margin-bottom:3px!important}}
/* Play, sleep and meals use individually illustrated props. */

.choice-art{width:75px;height:75px;margin:-2px auto;flex:none}
.scene-toy .activity-pet{animation:play-chase 1.05s ease-in-out infinite}.scene-toy .activity-object{animation:toy-sway 1.05s ease-in-out infinite}.scene-toy .activity-marks{color:#ffe398;animation:sparkle .7s ease-in-out infinite alternate}
.scene-ball .activity-pet{animation:pet-dodge .9s ease-in-out infinite}.scene-ball .activity-object{animation:yarn-roll 1.3s ease-in-out infinite}.scene-ball .activity-marks{animation:sparkle .8s ease-in-out infinite alternate}
.scene-pet .activity-pet{animation:happy-purr 1.15s ease-in-out infinite}.scene-pet .activity-object{left:43%;bottom:28%;width:clamp(85px,14vw,145px);z-index:3;animation:gentle-pat 1.15s ease-in-out infinite}.scene-pet .activity-marks{left:46%;top:12%;color:#f58e9b;animation:hearts-rise 1.15s ease-out infinite}
.scene-rest .activity-object{left:40%;bottom:4%;width:clamp(150px,25vw,230px);z-index:1;animation:rest-bed 2s ease-in-out infinite}.scene-rest .activity-pet{left:43%;bottom:20%;z-index:2;animation:slow-breath 2s ease-in-out infinite}.scene-rest .activity-marks{left:61%;top:12%;color:#7f89b8;animation:sleepy-z 2s ease-out infinite}.scene-rest .activity-sun{color:#ecddad;opacity:.6}
.scene-basic .activity-pet,.scene-treat .activity-pet,.scene-healthy .activity-pet{animation:eat-pet 1s ease-in-out infinite}.scene-basic .activity-object{animation:bowl-nudge 1s ease-in-out infinite}.scene-treat .activity-object{animation:fish-wiggle 1s ease-in-out infinite}.scene-healthy .activity-object{animation:bowl-bounce 1s ease-in-out infinite}.scene-basic .activity-marks,.scene-treat .activity-marks,.scene-healthy .activity-marks{left:48%;top:12%;animation:sparkle .9s ease-in-out infinite alternate}
@keyframes play-chase{0%,100%{transform:translate(0,0) rotate(-6deg)}50%{transform:translate(20px,calc(-1 * var(--artwork-rise,24px))) rotate(7deg)}}@keyframes toy-sway{0%,100%{transform:translate(0,0) rotate(-22deg)}50%{transform:translate(-14px,calc(-1 * var(--artwork-step,12px))) rotate(20deg)}}@keyframes yarn-roll{0%,100%{transform:translateX(25px) rotate(0)}50%{transform:translateX(-30px) rotate(-120deg)}}@keyframes happy-purr{0%,100%{transform:rotate(-4deg) scale(1)}50%{transform:rotate(4deg) scale(1.04)}}@keyframes gentle-pat{0%,100%{transform:translate(5px,calc(-1 * var(--artwork-step,10px))) rotate(-8deg)}50%{transform:translate(-8px,8px) rotate(8deg)}}@keyframes hearts-rise{0%{opacity:0;transform:translateY(10px) scale(.8)}45%{opacity:1}100%{opacity:0;transform:translateY(-25px) scale(1.25)}}@keyframes slow-breath{0%,100%{transform:scale(1,.92) translateY(5px)}50%{transform:scale(1.04,.97) translateY(0)}}@keyframes rest-bed{0%,100%{transform:scale(1)}50%{transform:scale(1.02,.98)}}@keyframes sleepy-z{0%{opacity:0;transform:translateY(12px)}35%{opacity:1}100%{opacity:0;transform:translate(15px,-20px)}}@keyframes eat-pet{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(5deg) translate(8px,7px)}}@keyframes bowl-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px) rotate(3deg)}}@keyframes fish-wiggle{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg) translateY(-3px)}}@keyframes bowl-bounce{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.04)}}
@media (orientation:landscape) and (max-height:450px){.choice-art{width:50px;height:50px}.scene-rest .activity-object{width:min(27vw,45dvh)}.scene-pet .activity-object{width:min(15vw,30dvh)}}
@media (orientation:landscape) and (max-height:250px){.choice-art{width:36px;height:36px}.choice{padding:7px 5px;gap:3px}.choice b{font-size:12px}.choice small{font-size:9px;line-height:1.4}.choice-grid{margin:6px 0;gap:8px}.scene-rest .activity-object{width:min(22vw,45dvh)}.scene-rest .activity-pet{bottom:15%}.scene-pet .activity-object{width:min(12vw,28dvh);bottom:24%}}
@media(prefers-reduced-motion:reduce){.activity-stage *,.activity-progress span{animation:none!important}}

@media (orientation:landscape) and (max-height:250px){
 .care-choice-view h2{font-size:16px;line-height:1.25;margin:0 0 3px}.care-choice-view>p{font-size:10px;line-height:1.3;margin:2px 0}.care-choice-view .choice-grid{margin:4px 0}.care-choice-view .choice{min-height:75px}.care-choice-view .help-line{display:none}
}
/* Keep the profile link reachable above the ranch action buttons on large screens. */
@media (min-width:1051px) and (min-height:651px){.ranch-sidebar{max-height:calc(100% - 280px);overflow:auto}}
.health-badge{display:inline-block;background:#f9ddd4;color:#9b4f43;border-radius:8px;padding:5px 8px;margin:0 0 8px;font-size:11px}.health-notice{color:#994d41;font-weight:bold;background:#f9e5dc;border-radius:10px;padding:10px}
.event-icon{font-size:52px;animation:event-float 1.6s ease-in-out infinite}.event-scene{background-color:#e9efd6}.event-scene-icon{display:grid;place-items:center;font-size:clamp(60px,12vw,145px);animation:event-float 1.2s ease-in-out infinite}.event-scene .activity-pet{animation:play-chase 1.1s ease-in-out infinite}.event-scene .activity-marks{animation:sparkle .8s ease-in-out infinite alternate}.event-month-12{background-color:#d4e3e6;filter:saturate(.9)}.event-month-8{background-color:#f9e3b7}.event-month-2{background-color:#dceaf1}@keyframes event-float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(calc(-1 * var(--artwork-step,12px))) rotate(4deg)}}.item-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed #d9cbb2}.item-row small{display:block;color:#927c65;font-size:11px}.special-button{width:100%;margin-top:5px;background:#dfc789;border-radius:8px;padding:5px;color:#533c21;font-size:11px;font-weight:bold}.special-button:disabled{opacity:.65}.special-button.ready{background:#f49e86;box-shadow:0 0 10px #f5c950;animation:event-float 1.4s ease-in-out infinite}.special-glow{filter:drop-shadow(0 0 20px #ffe358) brightness(1.2)}
@media (orientation:landscape) and (max-height:250px){.event-scene-icon{font-size:min(14vw,34dvh)}.special-button{padding:2px;margin-top:2px;font-size:9px}.guts-panel .meter{margin:2px 0}.guts-panel small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.event-icon,.event-scene *,.special-button.ready{animation:none!important}}
@media (orientation:landscape) and (max-height:250px){.guts-panel{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:1px 4px;align-items:center}.guts-panel b{font-size:10px}.guts-panel .meter{margin:0}.guts-panel small{font-size:9px}.special-button{grid-column:2;grid-row:1 / 4;min-height:42px;height:100%;font-size:12px;margin:0;padding:3px}}
/* Personality, friendship and tournament preparation. */
.speech{min-width:160px;max-width:270px;white-space:normal;text-align:center;line-height:1.6;pointer-events:none}.mobile-pet-speech{display:none}.battle-preparation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px 22px;margin-bottom:20px;align-items:center}.battle-preparation p{font-size:12px;line-height:1.6;margin:6px 0;color:#917b64}.prep-controls{display:grid;gap:9px;min-width:200px}.prep-controls label{font-size:11px;display:flex;gap:8px;align-items:center}.prep-controls select{min-height:36px;padding:6px;border:1px solid #d5c5a9;border-radius:8px;background:#fffaf0}.equipped-chips{display:flex;flex-wrap:wrap;gap:5px}.equipped-chips span{font-size:10px;padding:4px 8px;background:#e8eddb;border-radius:7px;color:#5d7656}.loadout-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.loadout-row{display:flex;align-items:start;gap:10px;padding:12px;background:#f8efdc;border:1px solid #e3d3b4;border-radius:12px;cursor:pointer}.loadout-row input{width:20px;height:20px;flex-shrink:0;accent-color:#739778}.loadout-row strong{display:block;font-size:13px}.loadout-row small{display:block;font-size:10px;color:#937d63;line-height:1.7;margin-top:4px}.special-profile{padding:12px;background:#f7e4da;border:1px solid #ead2bd;border-radius:10px;font-size:12px;line-height:1.7;margin-top:12px}.scene-lazy .activity-pet{animation:slow-breath 2s ease-in-out infinite;transform:rotate(-7deg)}.scene-lazy .activity-object{left:40%;bottom:4%;z-index:1}.scene-lazy .activity-pet{z-index:2;bottom:15%}.scene-lazy .activity-marks{color:#8e92b8;animation:sleepy-z 2s ease-out infinite}.attack-card small{white-space:pre-line;line-height:1.4}.special-button .special-scaling{display:block;font-size:9px;line-height:1.25;margin-top:2px;white-space:normal}
@media(max-width:640px) and (orientation:portrait){.battle-preparation{grid-template-columns:1fr;padding:15px}.loadout-list{grid-template-columns:1fr}}
@media(orientation:landscape) and (max-height:450px){.battle-preparation{padding:11px 14px;margin-bottom:12px;gap:10px}.prep-controls{min-width:190px;gap:5px}.prep-controls .btn{padding:7px 11px;min-height:36px}.loadout-row{padding:8px}.loadout-row strong{font-size:12px}.loadout-row small{font-size:10px}.attack-card small{font-size:9px}}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.mobile-pet-speech{display:block;position:absolute;left:63%;right:12px;top:47%;transform:translateY(-50%);z-index:4;pointer-events:none;background:#fffaf0f0;box-shadow:0 2px 0 #8c6c3e29;border:1px solid #e0cfb0;border-radius:12px;padding:6px 9px;font-size:12px;line-height:1.45}.mobile-pet-speech:before{content:'';position:absolute;left:-6px;top:45%;width:10px;height:10px;transform:rotate(45deg);background:#fffaf0;border-left:1px solid #e0cfb0;border-bottom:1px solid #e0cfb0}}
@media(orientation:landscape) and (max-height:250px){.mobile-pet-speech{font-size:11px;padding:5px 7px;right:10px}.battle-preparation p{font-size:10px}.special-button .special-scaling{font-size:8px}.attack-card small{font-size:8px}.loadout-row small{line-height:1.45}}
@media(prefers-reduced-motion:reduce){.scene-lazy *{animation:none!important}}

/* Promotion reminders stay visible without interrupting the player's choices. */
.action-tile.promotion-ready{background:#f7d48f;border-color:#fff3b1;box-shadow:0 0 0 3px #e1a54c,0 4px 12px #aa6a3455}.action-tile.promotion-ready small{color:#82451f;font-weight:800;opacity:1}.promotion-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff1cd;border:2px solid #e2ad55;border-radius:15px;padding:13px 18px;margin-bottom:18px;box-shadow:var(--shadow)}.promotion-banner strong{display:block;font-size:17px;color:#a45c29}.promotion-banner span{display:block;font-size:12px;line-height:1.5;margin-top:4px}.promotion-ticket{border:2px solid #e0a549;background:#fff3d7}.promotion-ticket .pill{background:#f4cc83;color:#7d471d}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.action-tile.promotion-ready .emoji{display:none}.action-tile.promotion-ready small{display:block;font-size:10px;line-height:1.15;margin-top:2px}.promotion-banner{padding:8px 12px;margin-bottom:10px}.promotion-banner strong{font-size:15px}.promotion-banner span{font-size:11px}}

/* A small birthday celebration in the same paper-and-pastel style. */
.birthday-ranch{position:absolute;z-index:6;top:20px;left:50%;transform:translateX(-50%);background:#fff0d7;border:2px solid #e5a477;border-radius:24px;padding:9px 15px;color:#94502e;font-size:12px;box-shadow:0 3px 0 #a16c4c33;white-space:nowrap}.birthday-ranch:active{transform:translate(-50%,2px)!important}.birthday-party{position:relative;overflow:hidden}.birthday-confetti{text-align:center;font-size:20px;letter-spacing:.2em;color:#db9d70;animation:birthday-float 2s ease-in-out infinite}.birthday-header{display:flex;align-items:center;gap:20px}.birthday-header .sprite-wrap{width:115px;animation:birthday-hop 1s ease-in-out infinite}.birthday-header h2{margin:8px 0;color:#9e5d4a}.birthday-header p{font-size:12px;line-height:1.6}.birthday-gifts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}.birthday-gift{text-align:left;border:1px solid #e1c6a8;border-radius:13px;background:#fff6e7;padding:10px 12px;min-height:90px;transition:transform .15s,background .15s}.birthday-gift:hover:not(:disabled){background:#ffefd4;transform:translateY(-2px)}.birthday-gift span{font-size:23px;display:block}.birthday-gift strong{display:block;font-size:13px}.birthday-gift small{display:block;margin-top:4px;font-size:10px;line-height:1.5;color:#866c53}.birthday-note{font-size:10px;color:#8b735e;margin:6px 0}.birthday-party .modal-actions{margin-top:10px}@keyframes birthday-hop{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(3deg)}}@keyframes birthday-float{50%{transform:translateY(4px)}}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.birthday-ranch{left:9px;top:40%;transform:translateY(-50%);padding:6px 9px;font-size:11px}.birthday-ranch:active{transform:translateY(calc(-50% + 2px))!important}.birthday-header .sprite-wrap{width:70px}.birthday-header h2{font-size:17px;margin:3px 0}.birthday-header p{font-size:11px;margin:3px 0}.birthday-confetti{font-size:14px}.birthday-gifts{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:6px 0}.birthday-gift{min-height:58px;padding:5px 8px}.birthday-gift span{font-size:16px;display:inline}.birthday-gift strong{display:inline;font-size:11px}.birthday-gift small{font-size:10px;margin-top:1px}.birthday-party .modal-actions{margin-top:5px}}
@media(prefers-reduced-motion:reduce){.birthday-header .sprite-wrap,.birthday-confetti{animation:none}}
@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){
 .birthday-party{display:grid;grid-template-columns:minmax(165px,28%) minmax(0,1fr);grid-template-areas:'intro gifts' 'actions gifts';gap:4px 10px;align-items:start}.birthday-party .birthday-confetti,.birthday-party .birthday-note,.birthday-header .sprite-wrap{display:none}.birthday-header{grid-area:intro;display:block}.birthday-header .badge{font-size:9px;padding:3px 5px}.birthday-header h2{font-size:15px;line-height:1.3}.birthday-header p{font-size:10px;line-height:1.3}.birthday-gifts{grid-area:gifts;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:4px}.birthday-gift{min-height:53px;padding:4px 6px}.birthday-gift strong{font-size:11px}.birthday-gift small{font-size:9px;line-height:1.25}.birthday-party .modal-actions{grid-area:actions;margin:0;justify-content:flex-start;gap:4px}.birthday-party .modal-actions .btn{min-height:31px;padding:5px 7px;font-size:9px}
}
@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){.birthday-header h2{font-size:13px;margin:3px 0;line-height:1.2}.birthday-header p{font-size:9px;line-height:1.2;margin:2px 0}.birthday-party .modal-actions{flex-wrap:nowrap}.birthday-party .modal-actions .btn{white-space:nowrap;min-height:30px}}

/* A card is prepared locally; sharing is always initiated by the player. */
.share-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.85fr);gap:22px;align-items:start}.share-panel h2{margin:9px 0}.share-panel p{font-size:12px;line-height:1.6;color:#856d59}.share-panel canvas{display:block;width:100%;height:auto;border-radius:12px;border:1px solid #dfd1ba;background:#f4ecda}.share-panel label{display:block;margin:5px 0 7px;font-size:12px}.share-panel textarea{width:100%;min-height:170px;resize:vertical;border:1px solid #d9c6aa;border-radius:12px;background:#fffaf1;padding:10px;line-height:1.5;font-size:12px}.share-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.share-actions .btn{text-decoration:none;text-align:center}.share-panel .share-hint{font-size:10px;line-height:1.55;margin:7px 0;color:#8a7966}
@media(max-width:640px) and (orientation:portrait){.share-panel{grid-template-columns:1fr;gap:8px}.share-panel textarea{min-height:110px}.share-actions .btn{flex:1 1 auto}}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.share-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.share-panel h2{font-size:15px;margin:3px 0}.share-panel p{font-size:10px;margin:4px 0}.share-panel textarea{min-height:78px;font-size:11px}.share-actions{margin-top:4px;gap:4px}.share-actions .btn{min-height:32px;padding:5px 8px;font-size:10px}.share-panel .share-hint{font-size:9px;line-height:1.35;margin:3px 0}}
@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){.share-panel{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}.share-panel>div:first-child>p,.share-panel>div:first-child>.badge{display:none}.share-panel h2{margin:0 0 4px;font-size:14px}.share-panel canvas{width:auto;max-width:100%;height:auto;max-height:110px}.share-panel label{font-size:10px;margin:0 0 3px}.share-panel textarea{min-height:50px;height:55px;padding:4px 6px;line-height:1.2;font-size:10px}.share-actions{flex-wrap:nowrap;gap:3px}.share-actions .btn{font-size:9px;min-height:31px;padding:3px 5px;line-height:1.2;flex:1}.share-panel .share-hint{font-size:9px;line-height:1.25;margin:3px 0}}

/* Supplies can be bought before a tournament and used once per bout. */
.shop-items{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.inventory-view .item-row{min-width:0;gap:9px}.inventory-view .item-row>div{flex:1;min-width:0}.inventory-view .item-row .item-icon{font-size:24px;flex:0 0 30px;text-align:center}.inventory-view .item-row b{font-size:13px}.inventory-view .item-row small{font-size:10px;line-height:1.5;margin-top:3px}.inventory-view .item-row .btn,.inventory-view .item-row .pill{flex-shrink:0}.inventory-view .item-row .pill{font-size:9px}.inventory-view>p{font-size:12px;line-height:1.6}.battle-item-button{position:absolute;z-index:19;right:18px;top:115px;min-height:44px;padding:9px 14px;background:#fff6de;border:2px solid #ddbe7f;border-radius:12px;box-shadow:var(--shadow);font-size:12px;color:#785d35}.battle-item-button:disabled{opacity:.7}.battle-item-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.battle-item-card{text-align:left;padding:15px;border-radius:14px}.battle-item-card>span{display:block;font-size:28px}.battle-item-card b{display:block;font-size:13px;line-height:1.4}.battle-item-card small{display:block;font-size:11px;color:#87735b;line-height:1.6;margin-top:4px}.battle-items-view>p{font-size:12px;line-height:1.5}.battle-items-view .modal-actions{margin-top:12px}.opponent-special-note{font-size:11px!important;color:#a56d55}.enemy-special-status{display:inline-block;min-width:65px;text-align:center;font-weight:800;color:#9b6653;white-space:nowrap;border-radius:4px;background:linear-gradient(to right,#f2d5a6 var(--enemy-charge,0%),#f3e9d7 var(--enemy-charge,0%));padding:1px 4px;margin-left:6px;font-size:10px;line-height:1.3}.enemy-special-status.is-winding{background:#f8d3c4;color:#a74437;outline:1px solid #c77e62}.combatant-panel .hp-label{align-items:center;gap:4px}
@media(max-width:640px) and (orientation:portrait){.shop-items{grid-template-columns:1fr}.battle-item-list{grid-template-columns:1fr}.battle-item-card{display:grid;grid-template-columns:32px 1fr;gap:3px 8px;padding:10px}.battle-item-card>span{grid-row:1 / 3;font-size:24px}.battle-item-card small{margin:0}.battle-item-button{top:110px;font-size:11px;padding:6px 9px}.enemy-special-status{font-size:8px;min-width:53px;margin-left:0}}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.battle-item-button{top:auto;right:auto;left:8px;bottom:66px;min-height:34px;padding:5px 8px;font-size:11px;border-radius:9px}.enemy-special-status{font-size:9px;min-width:61px;padding:1px 3px}.battle-items-view h2{font-size:18px;margin:0 0 5px}.battle-items-view>p{font-size:11px;margin:4px 0}.battle-item-card{padding:8px}.battle-item-card>span{font-size:20px}.battle-item-card b{font-size:12px}.battle-item-card small{font-size:10px;line-height:1.35}.shop-items{gap:0 12px}.inventory-view h2{font-size:18px;margin:0 0 5px}.inventory-view>p{font-size:11px;margin:5px 0}.inventory-view .item-row{padding:8px 0}.inventory-view .item-row .item-icon{font-size:20px;flex-basis:24px}.inventory-view .item-row b{font-size:12px}}
@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){.battle-item-button{bottom:55px;min-height:29px;font-size:10px}.battle-items-view h2{font-size:16px;margin:0 0 3px}.battle-items-view>p{font-size:10px;margin:3px 0;line-height:1.25}.battle-items-view>.help-line{display:none}.battle-item-list{gap:6px}.battle-item-card{padding:5px 7px}.battle-item-card>span{display:inline;font-size:16px}.battle-item-card b{display:inline;font-size:11px}.battle-item-card small{font-size:9px;margin-top:2px;line-height:1.25}.battle-items-view .modal-actions{margin-top:5px}.battle-items-view .modal-actions .btn{min-height:30px;padding:5px 10px;font-size:10px}.enemy-special-status{font-size:9px}.opponent-special-note{font-size:10px!important;margin:3px 0!important}}
/* Keep HP and the distance indicator on separate rows on short screens. */
.training-condition{padding:15px 18px;margin:0 0 16px;border:1px solid #cbd8b9;border-radius:15px;background:#eef2e4;color:#5b7153}.training-chance-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.training-chance-heading strong{font-size:13px}.training-chance-heading strong>span{font-size:25px;margin-left:5px}.training-chance-heading>span{font-size:11px}.training-condition-meter{height:7px;border-radius:7px;background:#dce3d1;overflow:hidden;margin:8px 0}.training-condition-meter i{display:block;height:100%;background:#83a17a;border-radius:7px}.training-condition p{font-size:11px;line-height:1.6;margin:5px 0;color:#6f8062}.training-condition>small{font-size:10px;line-height:1.5;display:block;color:#829274}.training-card-chance{font-size:11px;font-weight:bold;color:#6b8c63;background:#eaf0df;border-radius:7px;padding:4px 8px}.training-condition.compact{margin-top:12px;padding:12px 14px}
@media(orientation:landscape) and (max-height:450px){.training-condition{padding:10px 12px;margin-bottom:12px}.training-chance-heading strong>span{font-size:21px}.training-condition p{font-size:11px}.training-condition-meter{margin:5px 0}.training-card-chance{font-size:11px;padding:3px 6px}}
@media(orientation:landscape) and (max-height:250px){.training-condition{padding:7px 10px;margin-bottom:8px}.training-condition.compact{padding:6px 10px;margin-top:5px}.training-chance-heading strong>span{font-size:18px}.training-condition-meter{margin:3px 0;height:5px}.training-condition p{font-size:10px;line-height:1.35;margin:3px 0}.training-condition>small{font-size:10px;line-height:1.35}}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.battle-top .combatant-panel{padding:4px 8px;grid-template-columns:1fr;min-height:0;gap:0}.battle-top .combatant-panel>.sprite-wrap{display:none}.battle-top .combatant-panel b{display:block;font-size:12px;line-height:1.1}.battle-top .combatant-panel .meter{height:7px;margin:3px 0}.battle-top .combatant-panel .hp-label{margin:0;font-size:10px;line-height:1.2}.battle-board .distance{top:55px}.battle-board .battle-actors{top:65px}}

@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){.train-confirm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px 16px;align-items:start}.train-confirm h2{font-size:16px;line-height:1.3;margin:0 0 5px}.train-confirm .training-condition{margin:0;padding:6px 9px}.train-confirm .training-chance-heading{gap:3px}.train-confirm .training-chance-heading strong{font-size:11px}.train-confirm .training-chance-heading>span{font-size:10px}.train-confirm-details>p{font-size:11px;line-height:1.4;margin:0 0 7px}.train-confirm-details .hint-box{font-size:11px;line-height:1.4;padding:8px;margin:0}.train-confirm>.modal-actions{grid-column:1/-1;margin-top:0;gap:7px}.train-confirm>.modal-actions .btn{min-height:32px;padding:5px 11px;font-size:11px}}

.music-toggle.is-on{background:#e5edda;color:#607e51;border-color:#bacba5}.music-settings{padding:14px 16px;background:#eef1e4;border:1px solid #d1d9bf;border-radius:14px;margin:16px 0}.music-settings h3{font-size:15px;margin:0 0 8px}.music-settings>.check-row{margin:0 0 9px}.music-settings>input[type=range]{width:100%}.music-settings #music-status{font-size:11px;line-height:1.5;margin:8px 0;color:#668153}.music-settings .music-gesture-note{font-size:10px;line-height:1.5;margin:4px 0}.music-credits{border-top:1px dashed #c8d2b8;margin-top:10px;padding-top:9px;font-size:10px;line-height:1.7;display:grid;gap:3px;color:#8d785f}.music-credits b{font-size:10px}.music-credits a{color:#7b9368;text-underline-offset:3px}.mobile-ranch-menu .music-toggle{padding:0;min-width:34px;height:34px;font-size:19px}.music-settings select{width:100%}
@media(orientation:landscape) and (max-height:450px) and (max-width:1100px){.music-settings{padding:10px 12px;margin:11px 0}.music-settings h3{font-size:14px}.music-settings label{margin-top:9px}.mobile-ranch-menu .music-toggle{min-width:32px;width:32px;height:34px}.music-credits{margin-top:7px;padding-top:6px}}
@media(orientation:landscape) and (max-height:250px) and (max-width:1100px){.mobile-ranch-menu .music-toggle{min-width:30px;width:30px;height:32px}.music-settings{padding:8px 10px}.music-settings #music-status{font-size:10px}.music-credits{font-size:9px}.music-credits b{font-size:9px}}

/* Each original illustration is fitted inside its own measured outline. */
.artwork-frame{display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}.sprite:not(.custom),.activity-art{background-image:none}.sprite:not(.custom){overflow:visible}

@media(orientation:landscape) and (max-height:450px){
 .activity-stage{--artwork-rise:min(24px,6dvh)}
 .activity-pet,.activity-object{width:min(130px,32dvh)}
 .activity-pet .sprite{animation:none}
}
@media(orientation:landscape) and (max-height:250px){
 .activity-stage{--artwork-rise:clamp(4px,calc((100dvh - 168px)/2),24px);--artwork-step:min(8px,var(--artwork-rise));--artwork-drop:2px}
 .activity-pet,.activity-object{width:min(16vw,32dvh,calc(100dvh - 124px));bottom:8px}
 .scene-rest .activity-pet{bottom:15%}.scene-rest .activity-object{width:min(22vw,45dvh);bottom:4%}
 .scene-pet .activity-object{width:min(12vw,28dvh);bottom:24%}
}
