.spirit-sanctuary{--spirit-gold:#e5c47e;--spirit-ink:#101b25;padding:4px 0 40px;max-width:1600px;margin:auto}.pet-page-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:9px 0 22px}.pet-page-heading h1{font:clamp(2rem,3.6vw,3.3rem) var(--serif);margin:7px 0;color:#f4e4bd}.pet-page-heading p{max-width:700px;color:#c2bbaa;font-size:13px;line-height:1.6;margin:0}.pet-habitat-tally{display:grid;gap:5px;min-width:185px;padding:14px 20px;text-align:right;border-right:2px solid #c4a266;background:linear-gradient(90deg,transparent,#1d2630aa)}.pet-habitat-tally>b{font:30px var(--serif);color:#efcf8d}.pet-habitat-tally small{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#b4afa2}.pet-habitat-tally>span{font-size:11px;color:#a8ddc6}.pet-sanctuary-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px}.pet-view-toggle{display:flex;gap:6px}.pet-view-toggle .selected{border-color:#d3b56e;background:linear-gradient(#6c5a37,#302f28);color:#ffe5a5}.pet-sanctuary-hint{display:flex;align-items:center;gap:7px;color:#b6b4aa;font-size:10px}.pet-sanctuary-hint svg{width:18px;height:18px;color:#d2ba83}.pet-sanctuary-layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:21px;align-items:start}.pet-world-column{min-width:0}.pet-map-frame{border:2px solid #a78b54;border-radius:20px;overflow:hidden;background:#0b1520;box-shadow:inset 0 0 0 5px #d2af5c11,0 18px 45px #0006}.pet-map-viewport{overflow:auto;overscroll-behavior:contain;scrollbar-color:#8e7852 #14212a;scrollbar-width:thin}.pet-map-viewport:focus-visible{outline:2px solid #f7d388;outline-offset:-4px}.pet-world{position:relative;aspect-ratio:1.24;min-height:590px;background:linear-gradient(#08101e12,#09182735),url('../assets/art/pet-habitat-map.webp') center/cover;isolation:isolate;overflow:hidden}.pet-world:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px 20px #071019c9;border-radius:18px;z-index:1}.pet-map-clouds{position:absolute;inset:-10%;background:radial-gradient(ellipse at 18% 31%,#d8eff027,transparent 18%),radial-gradient(ellipse at 64% 60%,#c4e4ee19,transparent 22%),radial-gradient(ellipse at 90% 10%,#cbceee2b,transparent 20%);filter:blur(14px);animation:pet-domain-clouds 30s ease-in-out infinite alternate;pointer-events:none}.pet-map-river{position:absolute;inset:0;background:radial-gradient(ellipse at 66% 73%,#8db8ef13,transparent 20%),radial-gradient(ellipse at 40% 29%,#a4e8b514,transparent 17%);animation:pet-domain-glimmer 8s ease-in-out infinite alternate;pointer-events:none}.pet-biome-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:end;transform:translate(-50%,-50%);width:155px;min-height:158px;border:0;background:transparent;color:#f5e5bd;padding:0 0 6px;z-index:3;cursor:pointer;text-shadow:0 2px 5px #000,0 0 8px #000}.pet-biome-node:focus-visible{outline:2px solid #f4d995;outline-offset:3px;border-radius:15px}.pet-node-runes{position:absolute;width:115px;height:37px;left:20px;top:95px;border:1px solid color-mix(in srgb,var(--pet-color) 60%,transparent);border-radius:50%;box-shadow:0 0 25px color-mix(in srgb,var(--pet-color) 30%,transparent),inset 0 0 14px #091821aa;opacity:.6;transform:rotate(-9deg)}.pet-node-runes:before,.pet-node-runes:after{content:'';position:absolute;inset:5px 11px;border:1px dashed color-mix(in srgb,var(--pet-color) 75%,transparent);border-radius:50%;transform:rotate(20deg)}.pet-node-runes:after{inset:11px 24px;transform:rotate(-20deg);border-style:solid}.pet-node-creature{position:relative;width:120px;height:118px;display:block;z-index:1;filter:drop-shadow(0 4px 8px #0008) drop-shadow(0 0 8px color-mix(in srgb,var(--pet-color) 28%,transparent));transition:filter .25s,transform .25s}.pet-node-creature img{width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse 65% 62% at 50% 50%,#000 49%,#000e 63%,transparent 80%)}.pet-biome-node.unhatched .pet-node-creature{width:88px;height:104px;animation:pet-egg-pulse 4.5s ease-in-out infinite}.pet-biome-node.unhatched .pet-node-creature img{mask-image:radial-gradient(ellipse 62% 70% at 50% 49%,#000 46%,#000e 59%,transparent 75%)}.pet-biome-node.hatched .pet-node-creature{animation:pet-creature-breath 5s ease-in-out infinite}.pet-biome-node:nth-of-type(2n) .pet-node-creature{animation-delay:-2.2s}.pet-biome-node:nth-of-type(3n) .pet-node-creature{animation-delay:-1.3s}.pet-node-name{font:600 14px var(--serif);line-height:1.3;color:#f6e6bd;margin-top:-4px;position:relative;z-index:2}.pet-biome-node>small{font-size:9px;letter-spacing:.4px;color:#c9c7b3;line-height:1.5}.pet-node-state{font-size:8px;text-transform:uppercase;letter-spacing:.9px;color:var(--pet-color);padding:2px 6px;border-radius:5px;background:#09131ed9;margin-top:2px;border:1px solid #b99c5a33}.pet-biome-node.selected .pet-node-runes{opacity:1;box-shadow:0 0 32px color-mix(in srgb,var(--pet-color) 50%,transparent);border-color:#ffe5a9}.pet-biome-node.selected .pet-node-name{color:#ffe7a5}.pet-biome-node.selected .pet-node-creature,.pet-biome-node:hover .pet-node-creature{filter:drop-shadow(0 5px 6px #000a) drop-shadow(0 0 13px color-mix(in srgb,var(--pet-color) 55%,transparent))}.pet-biome-node.equipped:after{content:'✦';position:absolute;top:15px;right:20px;font-size:17px;color:#fde4a1;text-shadow:0 0 13px #e9bd59}.pet-map-cartouche{position:absolute;left:18px;bottom:15px;z-index:2;display:grid;gap:4px;pointer-events:none;opacity:.85}.pet-map-cartouche>span{font-size:9px;letter-spacing:2px;color:#edce87}.pet-map-cartouche small{font:italic 10px var(--serif);color:#bdbbaa}.pet-map-controls{display:flex;align-items:center;gap:10px;padding:10px 13px;background:linear-gradient(90deg,#27312f,#111c27);border-top:1px solid #c4a86e66;color:#e9d5a0}.pet-map-controls .btn{width:34px;min-height:31px;padding:4px;font-size:18px}.pet-map-controls>span{font-size:11px;min-width:38px;text-align:center}.pet-map-controls small{margin-left:auto;color:#b6b3a0;font-size:9px}.pet-domain-note{display:flex;align-items:start;gap:12px;padding:15px 8px;color:#b9b8ad}.pet-domain-note>svg{width:25px;height:25px;flex:none;color:#b6a36d}.pet-domain-note p{font-size:11px;line-height:1.65;margin:0;max-width:650px}.pet-detail-panel{border:1px solid #9b8659;border-radius:17px;padding:18px;background:linear-gradient(145deg,#29332fef,#101b27f5 55%);box-shadow:inset 0 0 0 3px #e8c87c0b,0 13px 32px #0006;min-width:0}.pet-panel-heading{display:flex;justify-content:space-between;gap:9px;align-items:start}.pet-panel-heading>.eyebrow{font-size:8px;letter-spacing:1.5px}.pet-active-badge{font-size:8px;border:1px solid #84caab88;background:#1b3b31;color:#ade5c6;padding:3px 5px;border-radius:5px;white-space:nowrap}.pet-selected-art{position:relative;width:100%;height:205px;isolation:isolate;margin:5px 0 0;display:grid;place-items:center}.pet-selected-art>img{position:relative;width:220px;height:220px;object-fit:contain;mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,#000 50%,#000e 61%,transparent 82%);z-index:1;filter:drop-shadow(0 0 15px color-mix(in srgb,var(--pet-color) 25%,transparent))}.pet-selected-art.living>img{animation:pet-creature-breath 5s ease-in-out infinite}.pet-selected-art.egg>img{width:180px;height:190px;animation:pet-egg-pulse 4.5s ease-in-out infinite}.pet-art-aura{position:absolute;inset:22% 8% 4%;background:radial-gradient(ellipse,color-mix(in srgb,var(--pet-color) 22%,transparent),transparent 67%);filter:blur(9px);z-index:0}.pet-detail-panel>h2{font:26px var(--serif);color:#f2dfb4;text-align:center;margin:6px 0 10px}.pet-species-description{font-size:11px;line-height:1.7;color:#c3c1b4;margin:0 0 14px}.pet-cultivation{padding:12px 0;border-top:1px solid #ada07035;border-bottom:1px solid #ada07035;margin:10px 0 13px}.pet-cultivation>div:first-child{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.pet-cultivation b{color:#e7dbbb;font-size:12px}.pet-cultivation span{color:#9bceba;font-size:10px}.pet-cultivation .meter{height:6px;margin:8px 0}.pet-cultivation>small{font-size:10px;color:#b7b5a4;display:block;margin-top:7px;line-height:1.5}.pet-dormant-caption{text-align:center;font:italic 13px var(--serif);color:#c9b993;margin:12px 0}.pet-main-actions{display:flex;gap:7px;flex-wrap:wrap;margin:13px 0}.pet-main-actions>.btn{flex:1 1 auto;font-size:11px;padding:9px 10px}.pet-main-actions>.primary{flex-basis:100%}.pet-blocker{display:flex;gap:7px;align-items:start;font-size:10px;line-height:1.65;color:#ddbedc;padding:9px 10px;background:#271f327a;border:1px solid #aa7dba42;border-radius:7px;margin:9px 0}.pet-blocker>svg{width:14px;height:14px;flex:none;margin-top:1px}.pet-ability-catalogue>.eyebrow{font-size:9px;margin:19px 0 9px}.pet-ability-detail{display:flex;gap:9px;padding:10px 0;border-top:1px solid #9ba28f24}.pet-ability-symbol{display:grid;place-items:center;width:30px;height:33px;flex:none;border:1px solid #a58a4d7a;border-radius:8px;background:#0c1826;color:#d8c18a}.pet-ability-symbol svg{width:18px;height:18px}.pet-ability-detail>div{min-width:0;flex:1}.pet-ability-detail h4{display:flex;justify-content:space-between;gap:9px;font:600 12px var(--serif);color:#e6d5a6;margin:0 0 5px}.pet-ability-detail h4>small{font:8px var(--sans);color:#a7cabb;text-align:right;max-width:105px;line-height:1.5}.pet-ability-detail p{font-size:10px;color:#bbbeb5;line-height:1.6;margin:0 0 4px}.pet-rule{display:block;font-size:9px;color:#d6c69f;line-height:1.6}.pet-ability-detail.locked{opacity:.57}.pet-unlock{display:flex;gap:4px;align-items:center;font-size:8px;color:#c7a9d5;margin-top:5px}.pet-unlock svg{width:11px;height:11px}.pet-fineprint{font-size:10px;color:#b8b9af;line-height:1.65;margin:13px 0}.pet-costs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;padding:10px 0}.pet-costs>span{display:flex;align-items:center;gap:5px;font-size:11px;color:#ead5a2;background:#111c27;border:1px solid #aa915454;border-radius:8px;padding:6px 8px}.pet-costs svg{width:16px;height:16px}.pet-costs img{width:28px;height:28px;object-fit:cover;border-radius:5px}.pet-costs small{font-size:8px;max-width:90px;line-height:1.4}.pet-ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pet-ledger-entry{display:flex;gap:12px;align-items:center;min-width:0;text-align:left;border:1px solid #8b7d53;background:linear-gradient(140deg,#1d2b31,#101a25);border-radius:13px;padding:12px;cursor:pointer;color:#ebd9af}.pet-ledger-entry.selected{border-color:#eacb83;box-shadow:inset 0 0 18px #d2c17715}.pet-ledger-entry>img{width:74px;height:80px;object-fit:contain;mask-image:radial-gradient(ellipse,#000 50%,transparent 80%);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--pet-color) 30%,transparent))}.pet-ledger-entry>span{display:grid;gap:5px;min-width:0;flex:1}.pet-ledger-entry b{font:16px var(--serif)}.pet-ledger-entry small{font-size:9px;color:#b9bbac}.pet-ledger-entry em{font-size:8px;font-style:normal;color:var(--pet-color)}.pet-ledger-entry>svg{width:17px;height:17px;flex:none}.pet-dialog-portrait{width:220px;height:220px;margin:0 auto;display:grid;place-items:center}.pet-dialog-portrait>img{width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse,#000 48%,transparent 80%)}.pet-dialog-portrait.egg>img{width:180px;height:200px}.pet-evolution-preview{display:flex;justify-content:center;align-items:center;gap:16px;margin:10px 0 20px}.pet-evolution-preview>div{display:grid;justify-items:center;gap:8px;flex:1}.pet-evolution-preview img{width:170px;height:170px;object-fit:contain;mask-image:radial-gradient(ellipse,#000 48%,transparent 80%)}.pet-evolution-preview small{font-size:11px;color:#d5c398;text-align:center}.pet-evolution-preview>svg{width:30px;height:30px;color:#cbb779;flex:none}.pet-feed-warning{display:block;background:#41212d78;border:1px solid #bc7e745e;border-radius:8px;padding:12px;color:#ebc9ba;font-size:12px;line-height:1.6}.pet-feed-warning svg{width:17px;height:17px;vertical-align:middle;margin-right:5px}.pet-feed-card-summary{display:flex;gap:15px;align-items:center;border:1px solid #8d7f4d66;background:#101b24;border-radius:11px;padding:11px;margin:14px 0}.pet-feed-card-summary>img{width:76px;height:94px;object-fit:cover;border:1px solid #aa9859;border-radius:7px}.pet-feed-card-summary>div{display:grid;gap:7px}.pet-feed-card-summary b{font:19px var(--serif);color:#ebd9aa}.pet-feed-card-summary span{font-size:11px;color:#b7cdbe}.pet-feed-card-summary small{font-size:10px;color:#b9b6a7}.pet-feed-card-summary em{font-size:11px;font-style:normal;color:#cbb0ed}.pet-feed-live{display:grid;gap:9px;padding:12px 0}.pet-feed-live>span,.pet-feed-result{display:flex;justify-content:space-between;gap:12px;color:#bdbbad;font-size:11px}.pet-feed-live b,.pet-feed-result b{color:#e5c8f0}.pet-feed-result{padding:15px 0;border-block:1px solid #a0976b44;margin:8px 0}.pet-detail-panel .btn:disabled,.pet-command:disabled{cursor:default}.battle-spirit{position:absolute;left:17%;bottom:3%;width:255px;border:1px solid #ac925973;background:linear-gradient(140deg,#192b2edb,#0c1825f0);border-radius:13px;padding:9px;z-index:4;box-shadow:0 7px 20px #0005}.battle-spirit-header{display:flex;gap:9px;align-items:center}.battle-spirit-portrait{width:70px;height:65px;flex:none;position:relative;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--pet-color) 35%,transparent));animation:pet-creature-breath 5s ease-in-out infinite}.battle-spirit-portrait>img{width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse,#000 44%,transparent 80%)}.battle-spirit-header>div{display:grid;gap:4px}.battle-spirit-header small{font-size:7px;letter-spacing:1px;color:#d5bd8b}.battle-spirit-header b{font:15px var(--serif);color:#f3ddb0}.battle-spirit-header>div>span{font-size:8px;color:#a9cfbb}.battle-spirit-passives{display:flex;gap:5px;flex-wrap:wrap;margin:4px 0 8px}.battle-spirit-passives>span{display:flex;align-items:center;gap:3px;border:1px solid #8b9d7555;border-radius:5px;background:#152e2e88;padding:3px 4px;color:#b9d2bd}.battle-spirit-passives svg{width:11px;height:11px}.battle-spirit-passives b{font-size:7px;font-weight:400}.battle-pet-abilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.pet-command{position:relative;display:grid;grid-template-columns:21px 1fr;gap:2px 4px;align-items:center;text-align:left;border:1px solid #b89e6677;background:linear-gradient(#36443c,#162a2d);border-radius:7px;color:#ead6a8;padding:6px 5px;min-height:43px;cursor:pointer;overflow:hidden}.pet-command-glyph{grid-row:span 2;display:grid;place-items:center;color:#e8cd8d}.pet-command-glyph svg{width:18px;height:18px}.pet-command>b{font:600 9px var(--serif);line-height:1.2}.pet-command>small{font-size:7px;color:#a5d4b6}.pet-command.ready{box-shadow:inset 0 0 12px #91e1c51f}.pet-command.ready:hover{border-color:#e5d59c;background:linear-gradient(#52634b,#203638)}.pet-command.cooling{filter:saturate(.45);opacity:.65;background:#15202a}.pet-command.locked{opacity:.4}.pet-cooldown-dial{position:absolute;inset:0;background:#0a111c70;display:flex;justify-content:flex-end;align-items:center;padding-right:8px;font-style:normal;pointer-events:none}.pet-cooldown-dial>b{display:grid;place-items:center;width:25px;height:25px;border:2px solid #c2b58e88;border-radius:50%;color:#f0e2bd;background:#111c29;font-size:13px}.pet-cooldown-dial>svg{width:17px;height:17px;color:#a4a5ab}.pet-celebration{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;overflow:hidden;background:#050c15f5;--pet-color:#8acfc3;isolation:isolate}.pet-cinematic-sky{position:absolute;inset:-20%;background:radial-gradient(ellipse at 50% 42%,color-mix(in srgb,var(--pet-color) 29%,transparent),transparent 48%),radial-gradient(ellipse at 50% 100%,#b59c3730,transparent 48%);animation:pet-sky-awaken 4.3s ease-out both}.pet-cinematic-ring{position:absolute;left:50%;top:43%;width:min(70vw,540px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--pet-color) 80%,transparent);border-radius:50%;box-shadow:0 0 35px color-mix(in srgb,var(--pet-color) 15%,transparent),inset 0 0 35px color-mix(in srgb,var(--pet-color) 12%,transparent);transform:translate(-50%,-50%) rotateX(25deg);animation:pet-seal-spin 4.3s ease-in-out both}.pet-cinematic-ring:before,.pet-cinematic-ring:after{content:'';position:absolute;inset:6%;border:2px dashed #e1c98688;border-radius:50%}.pet-cinematic-ring:after{inset:15%;border:1px solid color-mix(in srgb,var(--pet-color) 55%,transparent)}.pet-cinematic-ring.ring-two{width:min(58vw,440px);animation-direction:reverse;transform:translate(-50%,-50%) rotateX(48deg);animation-delay:.12s}.pet-cinematic-ring.ring-three{width:min(90vw,700px);border-style:dashed;opacity:.5;animation-delay:.28s}.pet-cinematic-rays{position:absolute;left:50%;top:43%;width:min(100vw,1000px);aspect-ratio:1;background:repeating-conic-gradient(from 0deg,transparent 0deg 13deg,#fff2b930 14deg 15deg,transparent 16deg 30deg);mask-image:radial-gradient(circle,transparent 10%,#000 26%,transparent 68%);transform:translate(-50%,-50%);animation:pet-reveal-rays 4.3s ease-in-out both}.pet-cinematic-egg{position:absolute;left:50%;top:43%;width:min(48vw,315px);height:min(53vw,345px);transform:translate(-50%,-50%);animation:pet-egg-hatch 4.3s ease-in-out both;filter:drop-shadow(0 0 40px color-mix(in srgb,var(--pet-color) 55%,transparent))}.pet-cinematic-egg>img{width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse,#000 46%,transparent 78%)}.pet-shell-crack{position:absolute;inset:25% 34%;background:#fff4ca;clip-path:polygon(42% 0,61% 28%,43% 37%,75% 58%,54% 70%,64% 100%,41% 66%,58% 56%,29% 34%,49% 27%);filter:drop-shadow(0 0 10px #fff);animation:pet-crack-glow 4.3s ease-in-out both}.pet-cinematic-reveal{position:absolute;left:50%;top:41%;width:min(74vw,530px);height:min(77vw,550px);transform:translate(-50%,-50%);animation:pet-spirit-reveal 4.3s cubic-bezier(.16,.65,.25,1) both;filter:drop-shadow(0 0 45px color-mix(in srgb,var(--pet-color) 50%,transparent))}.pet-cinematic-reveal>img{width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse,#000 48%,transparent 80%)}.pet-cinematic-title{position:absolute;top:72%;left:15px;right:15px;text-align:center;animation:pet-title-reveal 4.3s ease-out both;color:#f5dfaa}.pet-cinematic-title>.eyebrow{font-size:11px;letter-spacing:3px;color:#d2ba7d}.pet-cinematic-title h1{font:clamp(2rem,5vw,4rem) var(--serif);margin:10px 0 6px;text-shadow:0 0 25px color-mix(in srgb,var(--pet-color) 50%,transparent)}.pet-cinematic-title p{font-size:13px;color:#b6dcc9;margin:6px 0}.pet-cinematic-title>span{font:italic 14px var(--serif);color:#c3bdab}.pet-cinematic-skip{position:absolute;right:25px;bottom:22px;border-color:#b49c64;color:#e2cc94;background:#0d1b27dd;font-size:11px}.pet-cinematic-particles{position:absolute;inset:0;pointer-events:none}.pet-cinematic-particles>i{position:absolute;left:calc(16% + var(--i)*3%);top:80%;width:3px;height:3px;border-radius:50%;background:#fff0b3;box-shadow:0 0 8px var(--pet-color);animation:pet-spirit-particle 3.4s ease-out both;animation-delay:calc(var(--i)*.06s)}.pet-celebration.evolve .pet-cinematic-egg{opacity:.3;filter:blur(5px) drop-shadow(0 0 65px var(--pet-color));animation-name:pet-spirit-cocoon}.pet-celebration.evolve .pet-shell-crack{display:none}.pet-celebration.reduced-motion .pet-cinematic-egg,.pet-celebration.reduced-motion .pet-cinematic-particles,.pet-celebration.reduced-motion .pet-cinematic-rays{display:none}.pet-celebration.reduced-motion .pet-cinematic-reveal,.pet-celebration.reduced-motion .pet-cinematic-title,.pet-celebration.reduced-motion .pet-cinematic-ring,.pet-celebration.reduced-motion .pet-cinematic-sky{animation:none;opacity:1}.pet-celebration.reduced-motion .pet-cinematic-ring{transform:translate(-50%,-50%)}
@keyframes pet-domain-clouds{from{transform:translate(-2%,-1%)}to{transform:translate(3%,2%)}}@keyframes pet-domain-glimmer{from{opacity:.3}to{opacity:1}}@keyframes pet-creature-breath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.025)}}@keyframes pet-egg-pulse{0%,100%{transform:translateY(0);filter:brightness(.95)}50%{transform:translateY(-2px);filter:brightness(1.16)}}@keyframes pet-sky-awaken{0%{opacity:.3;transform:scale(.85)}45%{opacity:1}100%{opacity:1;transform:scale(1.1)}}@keyframes pet-seal-spin{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-80deg)}20%{opacity:1}65%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(55deg)}100%{opacity:.35;transform:translate(-50%,-50%) scale(1.12) rotate(110deg)}}@keyframes pet-egg-hatch{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}18%{opacity:1;transform:translate(-50%,-50%) scale(1)}30%{transform:translate(-51%,-50%) rotate(-3deg)}35%{transform:translate(-49%,-50%) rotate(3deg)}40%{transform:translate(-51%,-50%) rotate(-5deg)}47%{opacity:1;transform:translate(-49%,-50%) scale(1.07) rotate(5deg);filter:brightness(1.4)}53%{opacity:0;transform:translate(-50%,-50%) scale(1.5);filter:brightness(1.9)}100%{opacity:0}}@keyframes pet-crack-glow{0%,30%{opacity:0;transform:scaleY(.3)}44%{opacity:.9;transform:scaleY(1)}50%{opacity:1;transform:scale(1.3)}56%,100%{opacity:0}}@keyframes pet-spirit-reveal{0%,46%{opacity:0;transform:translate(-50%,-45%) scale(.55);filter:brightness(1.8) blur(10px)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.05);filter:brightness(1.3) blur(0)}80%,100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:brightness(1) blur(0)}}@keyframes pet-reveal-rays{0%,40%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(0deg)}54%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(18deg)}100%{opacity:.25;transform:translate(-50%,-50%) scale(1.3) rotate(40deg)}}@keyframes pet-title-reveal{0%,55%{opacity:0;transform:translateY(18px)}75%,100%{opacity:1;transform:translateY(0)}}@keyframes pet-spirit-particle{0%{opacity:0;transform:translate(0,0)}25%{opacity:.9}100%{opacity:0;transform:translate(calc((var(--i) - 12)*12px),-75vh)}}@keyframes pet-spirit-cocoon{0%{opacity:.1;transform:translate(-50%,-50%) scale(.6)}35%{opacity:.8;transform:translate(-50%,-50%) scale(1.4)}55%,100%{opacity:0;transform:translate(-50%,-50%) scale(2)}}
@media(max-width:1150px){.pet-sanctuary-layout{grid-template-columns:minmax(0,1fr) 310px;gap:15px}.pet-world{min-height:610px;aspect-ratio:.9}.pet-biome-node{width:130px;min-height:145px}.pet-node-creature{width:105px;height:108px}.pet-node-name{font-size:12px}.pet-node-runes{left:12px;width:106px}.pet-biome-node.unhatched .pet-node-creature{width:76px;height:94px}.battle-spirit{left:16%;width:220px}.battle-spirit-header b{font-size:13px}}
@media(max-width:850px){.pet-sanctuary-layout{grid-template-columns:1fr}.pet-world{min-height:600px;aspect-ratio:1.2}.pet-detail-panel{display:block}.pet-selected-art{height:170px}.pet-selected-art>img{height:190px;width:190px}.pet-ability-catalogue{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.pet-ability-catalogue>.eyebrow,.pet-ability-catalogue>.pet-fineprint{grid-column:1/-1}.pet-page-heading h1{font-size:35px}.pet-habitat-tally{min-width:150px}.pet-sanctuary-hint{max-width:240px;line-height:1.5}.battle-spirit{left:17%;bottom:4%;width:185px;padding:7px}.battle-spirit-portrait{width:53px;height:51px}.battle-spirit-header b{font-size:11px}.battle-spirit-header small{font-size:6px}.pet-command{grid-template-columns:16px 1fr;min-height:39px;padding:5px 4px}.pet-command-glyph svg{width:15px;height:15px}.pet-command>b{font-size:8px}.pet-command>small{font-size:6px}.battle-spirit-passives b{font-size:6px}}
@media(max-width:600px){.spirit-sanctuary{padding-top:0}.pet-page-heading{display:block;padding-bottom:15px}.pet-page-heading h1{font-size:30px;line-height:1.1}.pet-page-heading p{font-size:11px;margin-top:9px}.pet-habitat-tally{display:flex;align-items:center;justify-content:start;flex-wrap:wrap;text-align:left;padding:9px 12px;margin-top:13px;border:1px solid #9e895055;border-radius:9px;gap:8px}.pet-habitat-tally>b{font-size:21px}.pet-habitat-tally small{font-size:8px;letter-spacing:.8px}.pet-habitat-tally>span{margin-left:auto;font-size:8px}.pet-sanctuary-toolbar{display:block}.pet-view-toggle .btn{font-size:11px;padding:8px 12px}.pet-sanctuary-hint{max-width:none;font-size:9px;margin-top:10px}.pet-sanctuary-layout{gap:14px}.pet-map-frame{border-radius:13px}.pet-world{min-height:550px;aspect-ratio:.65;background-position:center}.pet-world:after{box-shadow:inset 0 0 30px 7px #071019a6}.pet-biome-node{width:106px;min-height:139px}.pet-node-creature{width:88px;height:100px}.pet-biome-node.unhatched .pet-node-creature{width:68px;height:94px}.pet-node-runes{left:8px;width:91px;top:85px;height:29px}.pet-node-name{font-size:11px;margin-top:-7px;max-width:110px;line-height:1.15}.pet-biome-node>small{font-size:7px;max-width:100px;text-align:center;line-height:1.4;margin-top:3px}.pet-node-state{font-size:6px;letter-spacing:.3px;padding:2px 3px}.pet-biome-node.equipped:after{right:5px;top:16px;font-size:13px}.pet-map-cartouche{left:9px;bottom:11px}.pet-map-cartouche>span{font-size:7px;letter-spacing:1px}.pet-map-cartouche small{font-size:8px}.pet-map-controls{padding:8px 9px;gap:7px}.pet-map-controls small{font-size:8px;max-width:145px;text-align:right}.pet-domain-note{padding:12px 2px;gap:8px}.pet-domain-note p{font-size:10px}.pet-ledger{grid-template-columns:1fr;gap:9px}.pet-ledger-entry{padding:10px}.pet-ledger-entry>img{width:68px;height:70px}.pet-detail-panel{padding:15px}.pet-ability-catalogue{display:block}.pet-detail-panel>h2{font-size:25px}.pet-ability-detail h4{font-size:13px}.pet-ability-detail p{font-size:11px}.pet-rule{font-size:10px}.pet-ability-detail h4>small{font-size:9px}.pet-main-actions>.btn{font-size:11px;min-height:38px}.pet-evolution-preview{gap:7px}.pet-evolution-preview img{width:120px;height:130px}.pet-evolution-preview>svg{width:22px;height:22px}.pet-evolution-preview small{font-size:9px}.pet-feed-card-summary{gap:10px}.pet-feed-card-summary>img{width:60px;height:80px}.pet-feed-card-summary b{font-size:16px}.pet-feed-card-summary span,.pet-feed-card-summary small{font-size:9px}.pet-feed-warning{font-size:11px}.battle-spirit{left:9px;bottom:105px;width:130px;padding:5px;border-radius:9px}.battle-spirit-header{gap:4px}.battle-spirit-portrait{width:40px;height:45px}.battle-spirit-header b{font-size:9px;line-height:1.1}.battle-spirit-header small{font-size:5px;letter-spacing:.3px}.battle-spirit-header>div>span{font-size:6px}.battle-spirit-header>div{gap:3px}.battle-spirit-passives{gap:3px;margin:2px 0 5px}.battle-spirit-passives>span{padding:2px}.battle-spirit-passives b{font-size:5px}.battle-spirit-passives svg{width:8px;height:8px}.battle-pet-abilities{gap:3px}.pet-command{grid-template-columns:1fr;gap:2px;min-height:41px;padding:4px 3px;text-align:center}.pet-command-glyph{display:none}.pet-command>b{font-size:7px;line-height:1.2}.pet-command>small{font-size:6px}.pet-cooldown-dial{padding-right:3px;justify-content:center;background:#0a111c8a}.pet-cooldown-dial>b{width:22px;height:22px;font-size:11px}.pet-cinematic-title{top:69%}.pet-cinematic-title>.eyebrow{font-size:8px;letter-spacing:1.8px}.pet-cinematic-title h1{font-size:32px;margin-top:9px}.pet-cinematic-title p{font-size:11px}.pet-cinematic-title>span{font-size:12px}.pet-cinematic-skip{right:15px;bottom:18px;min-height:40px}.pet-cinematic-reveal{width:92vw;height:96vw;top:39%}.pet-cinematic-egg{width:64vw;height:70vw;top:39%}.pet-cinematic-ring{top:39%;width:88vw}.pet-cinematic-ring.ring-two{width:70vw}.pet-cinematic-ring.ring-three{width:112vw}.pet-cinematic-rays{top:39%;width:120vw}}
@media(prefers-reduced-motion:reduce){.pet-map-clouds,.pet-map-river,.pet-node-creature,.pet-selected-art>img,.battle-spirit-portrait{animation:none!important}.pet-node-creature{transition:none}.pet-celebration .pet-cinematic-egg,.pet-celebration .pet-cinematic-particles,.pet-celebration .pet-cinematic-rays{display:none}.pet-celebration .pet-cinematic-ring,.pet-celebration .pet-cinematic-reveal,.pet-celebration .pet-cinematic-title,.pet-celebration .pet-cinematic-sky{animation:none;opacity:1}.pet-celebration .pet-cinematic-ring{transform:translate(-50%,-50%)}}
/* Keep atlas geography and habitat centers aligned at every viewport width. */
.pet-world{aspect-ratio:8/5;min-height:0;background-image:linear-gradient(#08101e12,#09182735),var(--pet-map-art);background-size:100% 100%;background-position:center}
@media(max-width:1150px) and (min-width:851px){.pet-biome-node{width:120px;min-height:110px}.pet-node-creature{width:85px;height:82px}.pet-biome-node.unhatched .pet-node-creature{width:65px;height:76px}.pet-node-runes{width:80px;height:25px;left:20px;top:65px}.pet-node-name{font-size:10px}.pet-biome-node>small{font-size:7px}.pet-node-state{font-size:6px}}
@media(max-width:600px){.pet-world{aspect-ratio:8/5;min-height:0}.pet-biome-node{width:82px;height:66px;min-height:66px;padding:0}.pet-node-creature{width:57px;height:52px;flex:none}.pet-biome-node.unhatched .pet-node-creature{width:43px;height:49px}.pet-node-runes{width:52px;height:17px;left:15px;top:37px}.pet-node-name{font-size:7px;line-height:1.12;margin-top:-4px;max-width:82px}.pet-biome-node>small{display:none}.pet-node-state{font-size:5px;padding:1px 3px;line-height:1.1;margin-top:1px}.pet-biome-node:not(.selected) .pet-node-state{display:none}.pet-biome-node.equipped:after{font-size:9px;right:9px;top:0}.pet-map-cartouche{left:8px;bottom:6px;opacity:.75}.pet-map-cartouche>span{font-size:5px;letter-spacing:.8px}.pet-map-cartouche small{display:none}}
/* The living companion sits in the arena; commands stay in a stable row below. */
.battle-spirit{position:relative;left:auto;bottom:auto;width:auto;display:grid;grid-template-columns:175px minmax(0,1fr);gap:5px 14px;margin:8px 0 9px;padding:8px 12px}.battle-spirit-header{grid-column:1;grid-row:1/3}.battle-spirit-header .battle-spirit-portrait{display:none}.battle-spirit-header b{font-size:15px}.battle-spirit-header small{font-size:7px}.battle-spirit-header>div>span{font-size:9px}.battle-spirit-passives{grid-column:2;grid-row:1;margin:0}.battle-pet-abilities{grid-column:2;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.pet-command{min-height:39px}.pet-command>b{font-size:10px}.pet-command>small{font-size:8px}.battle-companion{position:absolute;left:calc(50% + 80px);bottom:18px;width:110px;height:112px;border:0;background:transparent;padding:0;z-index:3;cursor:pointer;isolation:isolate}.battle-companion>img{position:relative;width:100%;height:92px;object-fit:contain;mask-image:radial-gradient(ellipse,#000 48%,transparent 80%);animation:pet-creature-breath 5s ease-in-out infinite;filter:drop-shadow(0 0 9px color-mix(in srgb,var(--pet-color,#9bdcc8) 35%,transparent))}.battle-companion>small{display:block;font:10px var(--serif);color:#e5d2a4;text-shadow:0 1px 3px #000;white-space:nowrap}.battle-companion-halo{position:absolute;left:16%;right:16%;height:25px;bottom:22px;border:1px solid color-mix(in srgb,var(--pet-color,#9bdcc8) 75%,transparent);border-radius:50%;box-shadow:0 0 0 calc(var(--pet-realm,0)*.7px) color-mix(in srgb,var(--pet-color,#9bdcc8) 16%,transparent),0 0 22px color-mix(in srgb,var(--pet-color,#9bdcc8) 35%,transparent);transform:rotate(-9deg)}.battle-companion-halo:after{content:'';position:absolute;inset:5px 10px;border:1px dashed color-mix(in srgb,var(--pet-color,#9bdcc8) 60%,transparent);border-radius:50%}.pet-realm-halo{position:absolute;width:180px;height:180px;left:50%;top:50%;transform:translate(-50%,-50%);z-index:0;pointer-events:none}.pet-realm-halo>i{position:absolute;inset:calc(var(--ring)*5px);border:1px solid color-mix(in srgb,var(--pet-color) 36%,transparent);border-radius:50%;transform:rotate(calc(var(--ring)*17deg));box-shadow:0 0 11px color-mix(in srgb,var(--pet-color) 10%,transparent)}.pet-realm-halo>i:nth-child(2n){border-style:dashed}.pet-biome-node.hatched .pet-node-runes{box-shadow:0 0 0 calc(var(--pet-realm,0)*.6px) color-mix(in srgb,var(--pet-color) 14%,transparent),0 0 25px color-mix(in srgb,var(--pet-color) 30%,transparent)}
@media(max-width:850px){.battle-spirit{grid-template-columns:145px minmax(0,1fr);gap:5px 9px;padding:7px 9px}.battle-spirit-header b{font-size:13px}.pet-command>b{font-size:8px}.pet-command>small{font-size:7px}.battle-companion{left:calc(50% + 70px);width:90px;height:96px}.battle-companion>img{height:77px}.battle-companion>small{font-size:8px}}
@media(max-width:600px){.battle-spirit{display:grid;grid-template-columns:1fr;gap:6px;padding:8px;margin:6px 0 7px;left:auto;bottom:auto;width:auto}.battle-spirit-header{grid-column:1;grid-row:1}.battle-spirit-header>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.battle-spirit-header b{font-size:12px}.battle-spirit-header small{font-size:6px;letter-spacing:.7px}.battle-spirit-header>div>span{font-size:7px;margin-left:auto}.battle-spirit-passives{grid-column:1;grid-row:2;gap:5px}.battle-spirit-passives b{font-size:6px}.battle-spirit-passives svg{width:10px;height:10px}.battle-pet-abilities{grid-column:1;grid-row:3;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.pet-command{min-height:44px;padding:5px 3px;grid-template-columns:1fr}.pet-command>b{font-size:8px}.pet-command>small{font-size:6px}.pet-command-glyph{display:none}.battle-companion{left:calc(50% + 52px);bottom:15px;width:72px;height:84px}.battle-companion>img{height:67px}.battle-companion>small{font-size:7px}.battle-companion-halo{height:16px;bottom:17px}.pet-realm-halo{width:160px;height:160px}}
@media(prefers-reduced-motion:reduce){.battle-companion>img{animation:none}}
.pet-fed-glow{animation:pet-feeding-glow 1.2s ease-out}@keyframes pet-feeding-glow{0%{filter:brightness(1)}30%{filter:brightness(1.5) drop-shadow(0 0 16px #b1e9d4)}100%{filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.pet-fed-glow{animation:none}}
.pet-command-glyph{width:27px;height:28px;border:1px solid color-mix(in srgb,var(--pet-color) 65%,#d7b66b);border-radius:8px;background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--pet-color) 30%,transparent),#10242ddc 70%);box-shadow:inset 0 1px #fff3,0 2px 3px #0007;color:#ffdf96}.pet-command-glyph svg{width:20px;height:20px;filter:drop-shadow(0 1px 1px #000)}.pet-command{grid-template-columns:28px 1fr}.pet-ability-symbol{color:#ffe1a2;background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--pet-color,#9acfb9) 25%,transparent),#10242d 70%)}
@media(max-width:600px){.pet-command{grid-template-columns:1fr;min-height:64px;justify-items:center}.pet-command-glyph{display:grid;grid-row:auto;width:23px;height:24px;border-radius:6px}.pet-command-glyph svg{width:18px;height:18px}.pet-command>b{font-size:7px}.pet-command>small{font-size:6px}}
.duel-arena:has(.battle-companion){height:clamp(330px,43svh,500px);min-height:330px}
@media(max-width:670px){.duel-arena:has(.battle-companion){height:330px;min-height:330px}.duel-stage:has(.battle-companion) .duel-hand{padding-top:9px;padding-bottom:5px}}
.pet-map-viewport{cursor:grab}.pet-map-viewport.panning{cursor:grabbing;user-select:none}.pet-biome-node{cursor:pointer}
.pet-map-viewport{aspect-ratio:8/5}
