@font-face{font-family:Playfair;src:url("../fonts/playfair-display/PlayfairDisplay.ttf") format("truetype");font-display:swap}
@font-face{font-family:Lora;src:url("../fonts/lora/Lora.ttf") format("truetype");font-display:swap}
@font-face{font-family:Caveat;src:url("../fonts/caveat/Caveat.ttf") format("truetype");font-display:swap}

:root{
  --purple:#6d28d9;
  --deep:#3d0b91;
  --night:#210451;
  --gold:#ffc107;
  --cream:#fff8ed;
  --ink:#1a1a1a;
  --teal:#00c2a8;
  --pink:#ff4d8d;
  --orange:#ff8a00;
}

*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
html{background:var(--night);scroll-behavior:smooth}
body{overflow-x:hidden;color:var(--ink);font-family:Lora,Georgia,serif}
button,a{font:inherit;-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible{outline:4px solid var(--gold);outline-offset:5px}
.skip-link{position:fixed;z-index:200;top:.8rem;left:.8rem;padding:.75rem 1rem;border:2px solid var(--ink);background:var(--cream);color:var(--ink);font:800 .78rem/1 system-ui,sans-serif;text-decoration:none;text-transform:uppercase;transform:translateY(-170%)}
.skip-link:focus{transform:none}

.experience{min-height:100svh}
.gate,.realm{position:relative;min-height:100svh;isolation:isolate;overflow:hidden}
.gate{display:grid;place-items:center;padding:clamp(3.5rem,8vh,6rem) 1.25rem 4rem;background:radial-gradient(circle at 50% 44%,#8b50ef 0,#6d28d9 31%,#3d0b91 68%,#210451 100%);color:var(--cream)}
.night{position:absolute;z-index:-5;inset:0;overflow:hidden}
.night:before{position:absolute;inset:0;background:radial-gradient(circle at 15% 21%,rgb(255 255 255/.95) 0 1px,transparent 2px) 0 0/79px 71px,radial-gradient(circle at 71% 57%,rgb(255 193 7/.8) 0 1px,transparent 2px) 0 0/119px 103px;content:"";mix-blend-mode:screen;opacity:.28;animation:glitter-field-a 5.6s steps(4,end) infinite}
.night:after{position:absolute;inset:0;background:radial-gradient(circle at 34% 63%,rgb(255 248 237/.9) 0 1px,transparent 2px) 0 0/97px 83px,radial-gradient(circle at 82% 26%,rgb(255 77 141/.75) 0 1px,transparent 2px) 0 0/137px 127px;content:"";mix-blend-mode:screen;opacity:.18;animation:glitter-field-b 7.2s steps(5,end) infinite}
.moon{position:absolute;top:-21%;right:-11%;width:min(52vw,46rem);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 40%,#fffdf4 0,#fff8d7 56%,#ffc107 78%,rgb(255 193 7/.18) 79%);box-shadow:0 0 120px rgb(255 193 7/.42);opacity:.96}
.cat-constellation{position:absolute;top:5%;left:3%;width:clamp(18rem,28vw,28rem);aspect-ratio:1;filter:drop-shadow(0 0 24px rgb(255 193 7/.28))}
.constellation__art{display:block;width:100%;height:100%;object-fit:contain;opacity:.78}
.constellation__motion{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.constellation__traveler{fill:var(--gold);opacity:.72;filter:drop-shadow(0 0 8px rgb(255 193 7/.92));animation:traveler-glint 6.4s ease-in-out infinite}.constellation__traveler--two{fill:var(--cream);animation-delay:-2.1s}.constellation__traveler--three{animation-delay:-4.2s}.constellation__traveler--four{fill:var(--cream);animation-delay:-1.3s}
.constellation__halo{fill:none;stroke:var(--gold);stroke-width:2;opacity:.32}
.constellation-spark{position:absolute;color:var(--gold);font-size:clamp(.48rem,.8vw,.82rem);line-height:1;text-shadow:0 0 8px rgb(255 193 7/.82);animation:twinkle 7.2s ease-in-out infinite}.constellation-spark--one{top:5%;left:48%;font-size:1rem;animation-delay:-1.2s}.constellation-spark--two{top:22%;left:2%;color:var(--cream);animation-delay:-4.1s}.constellation-spark--three{top:18%;right:2%;animation-delay:-2.6s}.constellation-spark--four{top:49%;left:4%;animation-delay:-5.2s}.constellation-spark--five{top:57%;right:0;color:var(--cream);animation-delay:-.7s}.constellation-spark--six{right:13%;bottom:4%;font-size:.95rem;animation-delay:-3.4s}.constellation-spark--seven{bottom:10%;left:8%;color:var(--cream);animation-delay:-6s}.constellation-spark--eight{top:43%;left:48%;font-size:.62rem;animation-delay:-2s}
.star,.crown{position:absolute;color:var(--gold);text-shadow:0 0 18px rgb(255 193 7/.82)}
.star{font-size:clamp(1rem,2vw,2rem);animation:twinkle 6.2s ease-in-out infinite}
.star--one{top:12%;left:16%}.star--two{top:22%;right:18%;animation-delay:-1.2s}.star--three{right:8%;bottom:23%;color:var(--cream);animation-delay:-2.4s}.star--four{bottom:16%;left:10%;font-size:.9rem;animation-delay:-.7s}.star--five{top:8%;right:38%;font-size:.85rem;animation-delay:-1.9s}
.star--six{top:8%;left:34%;font-size:1.25rem;animation-delay:-.4s}.star--seven{top:17%;right:29%;font-size:.72rem;animation-delay:-2.1s}.star--eight{top:36%;left:19%;font-size:.8rem;animation-delay:-1.5s}.star--nine{right:18%;bottom:37%;font-size:1.2rem;animation-delay:-.9s}.star--ten{right:34%;bottom:9%;font-size:.76rem;animation-delay:-2.7s}.star--eleven{top:59%;left:5%;font-size:1.05rem;animation-delay:-1.8s}.star--twelve{top:69%;right:6%;font-size:.72rem;animation-delay:-.2s}.star--thirteen{bottom:8%;left:38%;font-size:1.35rem;animation-delay:-2.3s}
.crown{width:clamp(2.6rem,4.2vw,4rem);height:auto;opacity:.56;filter:drop-shadow(3px 4px 0 rgb(33 4 81/.3))}
.crown--one{top:43%;left:7%;transform:rotate(-17deg)}
.crown--two{top:51%;right:7%;transform:rotate(15deg)}
.royal-door{position:absolute;z-index:-2;top:6.2%;left:50%;width:clamp(22rem,46vw,40rem);height:86%;border:3px solid rgb(255 193 7/.72);border-bottom:0;border-radius:48% 48% 0 0/28% 28% 0 0;background:linear-gradient(180deg,rgb(255 248 237/.88),rgb(225 211 241/.8) 67%,rgb(61 11 145/.34));box-shadow:inset 0 0 80px rgb(109 40 217/.14),0 0 0 10px rgb(61 11 145/.42),0 0 0 12px rgb(255 193 7/.24),0 20px 70px rgb(10 0 30/.45);transform:translateX(-50%)}
.royal-door:before,.royal-door:after{position:absolute;top:24%;bottom:0;width:1px;background:linear-gradient(transparent,rgb(255 193 7/.54));content:""}
.royal-door:before{left:12%}.royal-door:after{right:12%}
.door-glow{position:absolute;inset:12% 12% 0;border-radius:50% 50% 0 0/25% 25% 0 0;background:linear-gradient(180deg,rgb(255 248 237/.2),transparent 70%);filter:blur(8px)}
.door-ring{position:absolute;left:50%;border:1px dashed rgb(255 248 237/.34);border-radius:50%;transform:translateX(-50%)}
.door-ring--outer{top:9%;width:76%;aspect-ratio:1}
.door-ring--inner{top:14%;width:63%;aspect-ratio:1}

.gate__content{position:relative;z-index:4;display:flex;width:min(92vw,47rem);align-items:center;flex-direction:column;text-align:center}
.gate__logo{display:block;width:clamp(18rem,47vh,35rem);max-width:72vw;height:auto;margin:clamp(-1rem,-2vh,0rem) auto clamp(-1.2rem,-2vh,-.5rem);filter:drop-shadow(0 18px 24px rgb(20 0 55/.28))}
.enter-button{position:relative;display:inline-flex;min-height:4.4rem;align-items:center;gap:1rem;margin-top:1.25rem;padding:.64rem .72rem .64rem 1.45rem;border:3px solid var(--ink);border-radius:99px;background:var(--gold);box-shadow:0 7px 0 var(--ink),0 14px 32px rgb(20 0 55/.38);color:var(--ink);font-family:system-ui,sans-serif;letter-spacing:.045em;text-decoration:none;text-transform:uppercase;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.enter-button:hover{background:#ffcf33;box-shadow:0 9px 0 var(--ink),0 18px 38px rgb(20 0 55/.42);transform:translateY(-2px)}
.enter-button:active{box-shadow:0 3px 0 var(--ink);transform:translateY(4px)}
.enter-button__copy{display:grid;gap:.2rem;text-align:left}.enter-button__copy small{font-size:.55rem;font-weight:800;letter-spacing:.16em}.enter-button__copy strong{font-size:clamp(.72rem,1.25vw,.86rem);line-height:1.15}
.enter-button__seal{display:grid;width:2.9rem;height:2.9rem;flex:0 0 auto;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--cream)}
.enter-button__seal img{width:1.55rem;height:auto;filter:brightness(0)}
.cat-note{margin:.95rem 0 0;padding:.2rem .7rem;color:var(--cream);font:600 clamp(1.05rem,2vw,1.35rem)/1.15 Caveat,cursive;transform:rotate(-1deg)}
.cat-note span{color:var(--gold)}
.network-link{display:inline-block;margin-top:.2rem;padding:.55rem .8rem;border:1px solid rgb(255 248 237/.48);border-radius:99px;color:var(--cream);font:800 .6rem/1 system-ui,sans-serif;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}
.network-link:hover{border-color:var(--gold);color:var(--gold)}
.royal-cats{position:absolute;z-index:5;bottom:0;left:clamp(.5rem,4vw,4rem);width:clamp(13rem,21vw,19rem);height:auto;filter:drop-shadow(7px 8px 0 rgb(20 0 55/.25));opacity:1}.gate-cartoon-cat{position:absolute;z-index:5;right:clamp(.75rem,5vw,5rem);bottom:1rem;width:clamp(9rem,15vw,13rem);height:auto;filter:drop-shadow(7px 8px 0 rgb(20 0 55/.28));animation:map-cat-bob 5.5s ease-in-out infinite}
.hill{position:absolute;z-index:0;right:-8%;bottom:-12%;left:-8%;height:25%;border-radius:50% 50% 0 0;background:var(--deep)}
.hill--back{bottom:-4%;height:20%;background:#5520a5;transform:rotate(2deg)}
.hill--front{transform:rotate(-2deg)}
.gate__hint{position:absolute;z-index:3;right:clamp(1rem,3vw,3rem);bottom:1rem;margin:0;color:rgb(255 248 237/.65);font:700 .61rem/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.realm{position:fixed;inset:0;display:none;min-height:100svh;overflow:hidden;background:var(--night);color:var(--cream)}
.atlas-bar{position:absolute;z-index:60;top:0;right:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.85rem clamp(.75rem,2vw,1.7rem);pointer-events:none}
.atlas-bar>*{pointer-events:auto}.back-button,.atlas-tools button{min-height:2.85rem;border:2px solid var(--ink);background:rgb(255 248 237/.94);box-shadow:3px 4px 0 rgb(26 26 26/.24);color:var(--ink);font:850 .68rem/1 system-ui,sans-serif;text-transform:uppercase}
.back-button{justify-self:start;padding:.55rem .85rem;border-radius:99px}.atlas-title{padding:.45rem 1rem .5rem;border:1px solid rgb(255 193 7/.4);border-radius:99px;background:rgb(33 4 81/.7);box-shadow:0 8px 30px rgb(20 0 55/.28);text-align:center;backdrop-filter:blur(8px)}.atlas-title small{display:block;color:var(--gold);font:800 .52rem/1 system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase}.atlas-title h1{margin:.16rem 0 0;color:var(--cream);font:650 clamp(1rem,2.1vw,1.55rem)/1 Playfair,Georgia,serif}
.atlas-tools{display:flex;justify-self:end;gap:.34rem}.atlas-tools button{display:grid;width:2.85rem;place-items:center;padding:0;border-radius:50%;font-size:1.1rem}.atlas-tools .atlas-guide-button{width:auto;padding-inline:.78rem;border-radius:99px;font-size:.6rem;letter-spacing:.05em}
.atlas-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;background:radial-gradient(circle at 50% 48%,rgb(143 94 229/.2),transparent 42%),radial-gradient(circle at 19% 21%,rgb(255 248 237/.7) 0 1px,transparent 2px) 0 0/79px 71px,radial-gradient(circle at 73% 58%,rgb(255 193 7/.45) 0 1px,transparent 2px) 0 0/127px 109px,linear-gradient(145deg,#210451,#3d0b91 58%,#6d28d9);cursor:grab}.atlas-viewport.is-dragging{cursor:grabbing}.atlas-viewport:focus-visible{outline:4px solid var(--gold);outline-offset:-6px}
.atlas-cat-backdrop{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}.atlas-cat-backdrop img{position:absolute;width:clamp(10rem,17vw,18rem);height:auto;opacity:.14;filter:saturate(1.25) drop-shadow(0 0 24px rgb(255 193 7/.3));mix-blend-mode:screen;animation:atlas-cat-float 8s ease-in-out infinite}.atlas-cat-backdrop img:nth-child(1){top:7%;left:-3%;transform:rotate(-9deg)}.atlas-cat-backdrop img:nth-child(2){top:10%;right:-3%;animation-delay:-2s;transform:rotate(8deg)}.atlas-cat-backdrop img:nth-child(3){bottom:1%;left:1%;animation-delay:-4s;transform:rotate(6deg)}.atlas-cat-backdrop img:nth-child(4){right:1%;bottom:-3%;animation-delay:-6s;transform:rotate(-7deg)}.atlas-world{position:absolute;top:0;left:0;width:1800px;height:1200px;transform-origin:0 0;will-change:transform}.atlas-svg{display:block;width:1800px;height:1200px}
.atlas-sea-stars circle{fill:var(--gold);filter:url(#soft-glow);animation:atlas-star 7s ease-in-out infinite}.atlas-sea-stars circle:nth-child(2n){fill:var(--cream);animation-delay:-2.4s}.atlas-sea-stars circle:nth-child(3n){animation-delay:-4.7s}
.atlas-ripples path{fill:none;stroke:rgb(255 248 237/.2);stroke-width:3;stroke-linecap:round}.atlas-land,.atlas-island{fill:url(#paper-glow);stroke:var(--ink);stroke-width:6}.atlas-island{filter:url(#paper-shadow)}.atlas-region-washes path{opacity:.58}.atlas-region-washes path:nth-child(1){fill:#d9c2ff}.atlas-region-washes path:nth-child(2){fill:#ffb8d2}.atlas-region-washes path:nth-child(3){fill:#8ce7d7}.atlas-region-washes path:nth-child(4){fill:#ffd39c}.atlas-island-cats{filter:drop-shadow(3px 5px 0 rgb(109 40 217/.25))}.atlas-coast{fill:none;stroke:rgb(109 40 217/.23);stroke-width:2;stroke-dasharray:5 15;stroke-linecap:round}.atlas-contours path{fill:none;stroke:rgb(109 40 217/.12);stroke-width:3;stroke-linecap:round}.atlas-lake{fill:#a8e6df;stroke:var(--ink);stroke-width:4}.atlas-rivers path{fill:none;stroke:#5bc8c2;stroke-width:13;stroke-linecap:round;filter:drop-shadow(0 2px 0 rgb(26 26 26/.18))}.atlas-rivers path:after{stroke:var(--cream)}.atlas-fields path{fill:none;stroke:#cf8a3b;stroke-width:4;stroke-linecap:round;opacity:.5}.atlas-mountains use{fill:#8f5ee5;stroke:var(--ink);stroke-width:2}.atlas-mountains use:nth-child(2n){fill:var(--pink)}.atlas-mountains use:nth-child(3n){fill:var(--orange)}.atlas-mountains .snow{fill:var(--cream);stroke:none}.atlas-forest use{width:44px;height:62px;fill:#00a98f;stroke:var(--ink);stroke-width:2}.atlas-forest use:nth-child(2n){fill:#78d64b}.atlas-forest use:nth-child(3n){fill:#22b8cf}.atlas-landmarks use{stroke:var(--ink);stroke-width:3;filter:drop-shadow(4px 5px 0 rgb(109 40 217/.2))}.atlas-castle{fill:#ffcf33}.atlas-castle .flag{fill:var(--pink)}.atlas-village{fill:#f3b66e}.atlas-village .roof{fill:none;stroke:var(--ink);stroke-width:5}.atlas-ruins{fill:#aa8ca2}.atlas-ruins .crack{fill:none;stroke:var(--ink);stroke-width:4}.atlas-port{fill:none;stroke:var(--ink)!important;stroke-width:6!important}.atlas-region-labels text{fill:var(--deep);stroke:rgb(255 248 237/.9);stroke-width:7;paint-order:stroke fill;font:900 18px Playfair,Georgia,serif;letter-spacing:3px;text-anchor:middle}.atlas-region-labels .atlas-detail-label{fill:#8a1851;font:900 16px system-ui,sans-serif;letter-spacing:2px}.atlas-region-labels .atlas-sea-label{fill:var(--cream);stroke:rgb(33 4 81/.45);font-size:20px}.atlas-compass circle{fill:rgb(255 248 237/.72);stroke:var(--ink);stroke-width:3}.atlas-compass path{fill:var(--purple);stroke:var(--ink);stroke-width:2}.atlas-compass text{fill:var(--ink);font:800 21px Playfair,Georgia,serif;text-anchor:middle}
.atlas-arrival path{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.atlas-arrival .atlas-arrival-paw{fill:var(--gold);stroke:var(--ink);stroke-width:3}.atlas-route{fill:none;stroke:var(--ink);stroke-width:7;stroke-linecap:round;stroke-dasharray:2 20}.atlas-route-glow{fill:none;stroke:rgb(255 193 7/.42);stroke-width:16;stroke-linecap:round;opacity:.34}.atlas-route-dust{fill:none;stroke:var(--purple);stroke-width:2;stroke-linecap:round;stroke-dasharray:10 28;animation:road-flow 18s linear infinite}
.atlas-lanterns path{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round}.atlas-lanterns circle{fill:var(--gold);stroke:var(--ink);stroke-width:3;filter:url(#soft-glow);animation:lantern-flicker 4.8s ease-in-out infinite}.atlas-lanterns g:nth-child(2) circle{animation-delay:-1.6s}.atlas-lanterns g:nth-child(3) circle{animation-delay:-3.2s}
.atlas-actor use{stroke:var(--ink);stroke-width:2;paint-order:stroke fill}.atlas-map-cats image{filter:drop-shadow(4px 6px 0 rgb(109 40 217/.23));transform-box:fill-box;transform-origin:center;animation:map-cat-bob 5.5s ease-in-out infinite}.atlas-map-cats image:nth-child(2n){animation-delay:-1.8s}.atlas-map-cats image:nth-child(3n){animation-delay:-3.6s}.atlas-actor{color:var(--gold);fill:var(--gold);filter:drop-shadow(3px 4px 0 rgb(109 40 217/.22))}.atlas-actor:nth-child(2n){color:var(--pink);fill:var(--pink)}.atlas-actor:nth-child(3n){color:var(--teal);fill:var(--teal)}.atlas-actor:nth-child(4n){color:var(--orange);fill:var(--orange)}.atlas-actor:nth-child(5n){color:#8f5ee5;fill:#8f5ee5}.atlas-origin__glow{fill:rgb(255 77 141/.16);stroke:rgb(109 40 217/.22);stroke-width:2;filter:url(#soft-glow)}.atlas-origin__ring{fill:none;stroke:var(--gold);stroke-width:4;stroke-dasharray:6 11}.atlas-origin__paper{fill:var(--cream);stroke:var(--ink);stroke-width:5}.atlas-origin image{filter:brightness(0)}.atlas-origin__flag{fill:var(--purple);stroke:var(--ink);stroke-width:4;stroke-linejoin:round;transform-origin:78px -90px;animation:flag-wave 5s ease-in-out infinite}.atlas-origin__title{fill:var(--ink);font:800 26px Playfair,Georgia,serif;letter-spacing:5px;text-anchor:middle}.atlas-origin__note{fill:var(--purple);font:700 18px Caveat,cursive;text-anchor:middle}
.atlas-place-layer{position:absolute;inset:0;pointer-events:none}.atlas-place-marker{position:absolute;width:176px;height:176px;padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto}.atlas-place-marker:before{position:absolute;inset:-5px;border:4px solid transparent;border-radius:50%;content:""}.atlas-place-marker:hover:before,.atlas-place-marker:focus-visible:before{border-color:var(--purple);box-shadow:0 0 0 7px var(--cream),0 0 0 11px var(--gold)}.atlas-place-marker span{position:absolute;top:calc(100% + .55rem);left:50%;width:max-content;padding:.35rem .6rem;border:2px solid var(--ink);border-radius:99px;background:var(--gold);box-shadow:3px 4px 0 var(--ink);font:850 .65rem/1 system-ui,sans-serif;text-transform:uppercase;transform:translateX(-50%);opacity:.96;transition:transform .16s,background .16s}.atlas-place-marker:nth-child(2n) span{background:#ff9fc2}.atlas-place-marker:nth-child(3n) span{background:#7de5d5}.atlas-place-marker:hover span,.atlas-place-marker:focus-visible span{background:var(--cream);transform:translateX(-50%) translateY(-3px) scale(1.06)}
.atlas-hint{position:absolute;z-index:55;bottom:.8rem;left:50%;margin:0;padding:.42rem .78rem;border:1px solid rgb(255 193 7/.4);border-radius:99px;background:rgb(33 4 81/.72);color:var(--cream);font:800 .58rem/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;transform:translateX(-50%);pointer-events:none}.atlas-note{position:absolute;z-index:70;right:1rem;bottom:1rem;width:min(25rem,calc(100vw - 2rem));padding:1.35rem 3.1rem 1.3rem 1.3rem;border:3px solid var(--ink);border-radius:1.2rem;background:var(--cream);box-shadow:8px 9px 0 var(--gold);color:var(--ink)}.atlas-note button,.atlas-guide>[data-atlas-guide-close]{position:absolute;top:.55rem;right:.55rem;display:grid;width:2.7rem;height:2.7rem;place-items:center;border:2px solid var(--ink);border-radius:50%;background:var(--gold);font-size:1.25rem;font-weight:900}.atlas-note>p:first-of-type,.atlas-guide__eyebrow{margin:0 0 .4rem;color:var(--purple);font:900 .6rem/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}.atlas-note h2,.atlas-guide h2{margin:0;font:700 2rem/1 Playfair,Georgia,serif}.atlas-note>p:last-child,.atlas-guide>p{margin:.7rem 0 0;line-height:1.5}
.atlas-guide{width:min(31rem,calc(100vw - 2rem));padding:1.7rem 3.5rem 1.5rem 1.5rem;border:3px solid var(--ink);border-radius:1.4rem;background:var(--cream);box-shadow:10px 12px 0 var(--purple);color:var(--ink)}.atlas-guide::backdrop{background:rgb(23 2 56/.68);backdrop-filter:blur(4px)}.atlas-guide ul{display:grid;margin:1rem 0 0;padding:0;grid-template-columns:repeat(3,1fr);gap:.55rem;list-style:none}.atlas-guide li{padding:.7rem .5rem;border:2px solid var(--ink);border-radius:.8rem;background:#eadcff;text-align:center;font-size:.72rem}.atlas-guide li:nth-child(2){background:#fff0ae}.atlas-guide li:nth-child(3){background:#ffd8bd}.atlas-guide strong{display:block;font:700 1.6rem Playfair,Georgia,serif}.atlas-noscript{position:absolute;z-index:100;inset:auto 1rem 1rem;padding:1rem;border:3px solid var(--ink);background:var(--cream);color:var(--ink)}
@keyframes atlas-star{0%,100%{opacity:.25;transform:scale(.65)}50%{opacity:1;transform:scale(1.25)}}@keyframes atlas-cat-float{0%,100%{translate:0 0}50%{translate:0 -14px}}@keyframes map-cat-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}@keyframes road-flow{to{stroke-dashoffset:-380}}@keyframes lantern-flicker{0%,100%{opacity:.55}45%{opacity:1}55%{opacity:.72}}@keyframes flag-wave{0%,100%{transform:skewY(0)}50%{transform:skewY(6deg)}}

.door-transition{position:fixed;z-index:150;inset:0;display:none;overflow:hidden;pointer-events:none}
.door-panel{position:absolute;top:0;bottom:0;width:51%;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,rgb(255 77 141/.2),transparent 54%),linear-gradient(135deg,#170238,#3d0b91 48%,#6d28d9 78%,#8f5ee5);box-shadow:inset 0 0 100px rgb(0 0 0/.38),inset 0 0 55px rgb(255 77 141/.18)}
.door-panel:before{position:absolute;z-index:2;inset:3%;border:2px solid rgb(255 193 7/.55);box-shadow:inset 0 0 25px rgb(255 193 7/.08);content:""}
.door-panel:after{position:absolute;inset:0;background:radial-gradient(circle at 11% 16%,rgb(255 248 237/.9) 0 1px,transparent 2px),radial-gradient(circle at 83% 31%,rgb(255 193 7/.8) 0 1.5px,transparent 2.5px),radial-gradient(circle at 28% 73%,rgb(255 77 141/.72) 0 1px,transparent 2px),radial-gradient(circle at 68% 88%,rgb(255 248 237/.72) 0 1px,transparent 2px);content:"";mix-blend-mode:screen;opacity:.25;animation:transition-glitter 4s steps(5,end) infinite}
.door-panel--left{left:0;transform:translateX(-102%)}
.door-panel--right{right:0;transform:translateX(102%)}
.transition-stars{position:absolute;z-index:1;inset:0;overflow:hidden;opacity:0}
.transition-stars i{position:absolute;top:var(--y);left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:var(--cream);box-shadow:0 0 5px 1px rgb(255 248 237/.68);opacity:0;transform:scale(.35)}
.transition-stars i:nth-child(4n){background:var(--gold);box-shadow:0 0 7px 1px rgb(255 193 7/.72)}.transition-stars i:nth-child(7n){background:var(--pink);box-shadow:0 0 7px 1px rgb(255 77 141/.72)}.transition-stars i:nth-child(9n){border-radius:1px;transform:rotate(45deg)}
.transition-constellation{position:absolute;z-index:1;top:50%;left:50%;width:min(78rem,92vw);max-width:none;height:auto;opacity:0;filter:drop-shadow(0 0 42px rgb(255 193 7/.26));mix-blend-mode:screen;transform:translate(-50%,-50%) scale(.8) rotate(-3deg)}
.mystic-aura{position:absolute;z-index:2;top:50%;left:50%;width:min(25rem,76vw);aspect-ratio:1;opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(-12deg)}
.aura-ring{position:absolute;border-radius:50%}.aura-ring--one{inset:0;border:1px solid rgb(255 248 237/.48);box-shadow:0 0 34px rgb(143 94 229/.45),inset 0 0 30px rgb(255 77 141/.18)}.aura-ring--two{inset:12%;border:2px dashed rgb(255 193 7/.6)}.aura-ring--three{inset:27%;border:1px solid rgb(255 77 141/.75);box-shadow:0 0 26px rgb(255 77 141/.42)}
.aura-star{position:absolute;color:var(--gold);font-style:normal;text-shadow:0 0 14px rgb(255 193 7/.9);animation:aura-twinkle 1.8s ease-in-out infinite}.aura-star--one{top:4%;left:48%;font-size:1.4rem}.aura-star--two{top:24%;right:4%;color:var(--cream);animation-delay:-.5s}.aura-star--three{right:12%;bottom:14%;font-size:1.2rem;animation-delay:-1.1s}.aura-star--four{bottom:2%;left:42%;color:var(--cream);animation-delay:-.8s}.aura-star--five{bottom:20%;left:5%;font-size:1.3rem;animation-delay:-1.5s}.aura-star--six{top:19%;left:7%;color:var(--cream);animation-delay:-.2s}
.transition-seal{position:absolute;z-index:3;top:50%;left:50%;display:grid;width:10.5rem;aspect-ratio:1;place-items:center;border:4px solid var(--ink);border-radius:50%;background:radial-gradient(circle at 42% 35%,#ffe070,var(--gold) 62%,#e5a900);box-shadow:0 0 0 10px var(--cream),0 0 0 13px var(--ink),0 0 38px rgb(255 77 141/.7),0 0 82px rgb(143 94 229/.7);opacity:0;transform:translate(-50%,-50%) scale(.5)}
.transition-seal img{width:5rem;height:auto;filter:brightness(0)}
.paw-trail{position:absolute;z-index:4;right:7%;bottom:8%;display:flex;gap:1.15rem;color:var(--gold);opacity:0;transform:rotate(-17deg)}
.paw-trail i{font-style:normal;font-size:.9rem;text-shadow:0 0 12px rgb(255 193 7/.85)}
html.is-transitioning .door-transition{display:block}
html.is-transitioning .door-panel--left{animation:door-left 4s cubic-bezier(.7,0,.3,1) both}
html.is-transitioning .door-panel--right{animation:door-right 4s cubic-bezier(.7,0,.3,1) both}
html.is-transitioning .transition-stars{animation:transition-stars-in 4s ease both}
html.is-transitioning .transition-stars i{animation:transition-star-random var(--dur) ease-in-out var(--d) infinite}
html.is-transitioning .transition-constellation{animation:transition-constellation 4s ease both}
html.is-transitioning .mystic-aura{animation:mystic-aura 4s ease both}
html.is-transitioning .aura-ring--two{animation:aura-orbit 7s linear infinite}
html.is-transitioning .transition-seal{animation:seal 4s ease both}
html.is-transitioning .paw-trail{animation:trail 4s ease both}
html.world-open .gate{display:none}
html.world-open .realm{display:block}

@keyframes twinkle{0%,100%{opacity:.28;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.17) rotate(20deg)}}
@keyframes glitter-field-a{0%,100%{opacity:.18;filter:brightness(.8)}18%{opacity:.62;filter:brightness(1.7)}36%{opacity:.25}68%{opacity:.5;filter:brightness(1.35)}}
@keyframes glitter-field-b{0%,100%{opacity:.12;filter:brightness(.8)}24%{opacity:.35}46%{opacity:.16}76%{opacity:.58;filter:brightness(1.8)}}
@keyframes traveler-glint{0%,100%{opacity:.38}46%{opacity:.82}54%{opacity:1}64%{opacity:.55}}
@keyframes transition-glitter{0%,100%{opacity:.13;filter:brightness(.85)}22%{opacity:.38;filter:brightness(1.6)}47%{opacity:.2}72%{opacity:.46;filter:brightness(1.8)}}
@keyframes transition-stars-in{0%,17%{opacity:0}30%,72%{opacity:1}88%,100%{opacity:0}}
@keyframes transition-star-random{0%,100%{opacity:.12;transform:scale(.35) rotate(0)}19%{opacity:.82;transform:scale(1.35) rotate(18deg)}31%{opacity:.24;transform:scale(.62) rotate(28deg)}67%{opacity:1;transform:scale(1.7) rotate(45deg)}81%{opacity:.3;transform:scale(.7) rotate(58deg)}}
@keyframes transition-constellation{0%,20%{opacity:0;transform:translate(-50%,-50%) scale(.8) rotate(-3deg)}35%,65%{opacity:.34;transform:translate(-50%,-50%) scale(1) rotate(0)}79%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.13) rotate(3deg)}}
@keyframes aura-twinkle{0%,100%{opacity:.28;transform:scale(.65) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(22deg)}}
@keyframes aura-orbit{to{transform:rotate(360deg)}}
@keyframes door-left{0%{transform:translateX(-102%)}30%,70%{transform:translateX(0)}100%{transform:translateX(-102%)}}
@keyframes door-right{0%{transform:translateX(102%)}30%,70%{transform:translateX(0)}100%{transform:translateX(102%)}}
@keyframes mystic-aura{0%,23%{opacity:0;transform:translate(-50%,-50%) scale(.55) rotate(-12deg)}36%,64%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}77%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.18) rotate(12deg)}}
@keyframes seal{0%,24%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(-12deg)}37%,64%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}78%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.22) rotate(8deg)}}
@keyframes trail{0%,46%{opacity:0;transform:translateX(-4rem) rotate(-17deg)}56%,78%{opacity:1;transform:translateX(0) rotate(-17deg)}100%{opacity:0;transform:translateX(5rem) rotate(-17deg)}}

@media(max-width:800px){
  .gate{padding-top:3rem}.royal-door{top:9%;width:min(84vw,31rem);height:83%}.gate__logo{width:min(70vw,24rem)}.royal-cats{bottom:0;left:-.75rem;width:11.5rem;opacity:1}.gate-cartoon-cat{right:-.75rem;bottom:.5rem;width:9.5rem}.cat-constellation{top:9%;left:1%;width:15rem}.constellation__art{opacity:.72}.gate__hint{display:none}.crown--one{left:3%}.crown--two{right:3%}
  .atlas-bar{grid-template-columns:1fr auto;padding:.65rem}.atlas-title{position:absolute;top:4rem;left:50%;min-width:max-content;padding:.35rem .75rem;transform:translateX(-50%)}.atlas-title h1{font-size:1rem}.atlas-tools{gap:.22rem}.atlas-tools button{width:2.7rem;min-height:2.7rem}.atlas-tools .atlas-guide-button{width:auto}.atlas-hint{bottom:.55rem;font-size:.52rem}.atlas-note{right:.65rem;bottom:3.2rem;left:.65rem;width:auto}
}
@media(max-width:480px){
  .transition-constellation{width:142vw}
  .transition-seal{width:9.25rem}.transition-seal img{width:4.4rem}
  .gate__logo{width:min(78vw,21rem);margin-bottom:-.4rem}.enter-button{max-width:92vw;min-height:4rem;padding-left:1rem}.enter-button__copy small{font-size:.5rem}.enter-button__copy strong{font-size:.67rem}.enter-button__seal{width:2.55rem;height:2.55rem}.cat-note{font-size:1.05rem}.royal-cats{width:9.5rem;left:-.6rem}.gate-cartoon-cat{right:-.8rem;width:8.25rem}.moon{top:-4%;right:-52%;width:105vw}.cat-constellation{top:9%;left:-2%;width:14rem}.back-button{font-size:.56rem}.atlas-tools button{width:2.5rem;min-height:2.5rem}.atlas-tools .atlas-guide-button{padding-inline:.55rem;font-size:.52rem}.atlas-title{top:3.7rem}.atlas-guide{padding:1.45rem 3.3rem 1.3rem 1.2rem}.atlas-guide ul{grid-template-columns:1fr}.atlas-hint{max-width:80vw;text-align:center}
}
@media(max-height:720px) and (min-width:801px){
  .gate{padding-top:2.5rem}.gate__logo{width:min(42vh,28rem)}.enter-button{min-height:3.8rem;margin-top:.8rem}.cat-note{margin-top:.55rem}.royal-cats{width:13rem}.gate-cartoon-cat{width:9rem}
}
@media(max-height:620px) and (max-width:800px){
  .gate{padding-top:2.2rem;padding-bottom:2rem}.gate__logo{width:min(42vh,17rem);margin-bottom:-.5rem}.enter-button{min-height:3.5rem;margin-top:.65rem}.cat-note{margin-top:.45rem;font-size:.95rem}.royal-cats{width:7rem}.royal-door{top:5%;height:93%}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.door-transition,.constellation__motion{display:none!important}
}
html.no-js .realm{display:block}html.no-js .gate,html.no-js .atlas-bar,html.no-js .atlas-hint,html.no-js .atlas-place-layer,html.no-js .atlas-note,html.no-js .atlas-guide,html.no-js .door-transition{display:none!important}html.no-js .atlas-world{width:100vw;height:100vh;transform:none!important}html.no-js .atlas-svg{width:100%;height:100%}
