*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Inter,system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}.app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#1e1b4b}@keyframes appear{0%{opacity:0}to{opacity:1}}.sky{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity 1.8s ease;pointer-events:none}.sky-day{background:linear-gradient(180deg,#7cc4f0,#a8d8f0 40%,#fbcfe8 75%,#fde8c8);opacity:1}.sky-night{background:linear-gradient(180deg,#0a0a23,#1e1b4b 50%,#4c2a6e 85%,#6d3a7e);opacity:0}.night .sky-day{opacity:0}.night .sky-night{opacity:1}.stars{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.8s ease;pointer-events:none}.night .stars{opacity:1}.star{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 5px 1px #ffffff80;animation:twinkle ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.75)}50%{opacity:.95;transform:scale(1.15)}}.firefly{position:absolute;width:4px;height:4px;border-radius:50%;background:#fde047;box-shadow:0 0 8px 2px #fde04799;opacity:0;animation:drift ease-in-out infinite;pointer-events:none;transition:opacity 1.8s}.night .firefly{animation-play-state:running}@keyframes drift{0%,to{transform:translate(0);opacity:0}20%{opacity:.9}50%{transform:translate(4vw,-6vh);opacity:.5}80%{opacity:.9}}.app:not(.night) .firefly{opacity:0!important;animation-play-state:paused}.cloud{position:absolute;left:-30vw;width:180px;height:40px;border-radius:999px;background:#ffffffd9;box-shadow:30px -14px 0 6px #ffffffbf,70px -6px 0 2px #fffc;animation:cloud-drift linear infinite;transition:opacity 1.8s;pointer-events:none}.night .cloud{opacity:.08}@keyframes cloud-drift{0%{left:-30vw}to{left:110vw}}.bfly{position:absolute;left:-8vw;z-index:90;pointer-events:none;animation:flyX linear infinite;transition:opacity 1.8s}.night .bfly{opacity:0}.bfly span{display:inline-block;font-size:20px;animation:flyY 2.6s ease-in-out infinite alternate}@keyframes flyX{0%{transform:translate(0)}to{transform:translate(120vw)}}@keyframes flyY{0%{transform:translateY(-2.5vh) rotate(-8deg)}to{transform:translateY(2.5vh) rotate(10deg)}}.sun{position:absolute;top:9vh;right:14vw;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle at 40% 36%,#fff7cf,#fde047 55%,#f59e0b);box-shadow:0 0 50px 14px #fde0478c,0 0 140px 40px #fde04733;transition:transform 1.8s ease,opacity 1.8s ease;pointer-events:none}.night .sun{transform:translateY(60vh);opacity:0}.moon{position:absolute;top:9vh;right:14vw;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 62% 38%,#fdf6d8,#f5e9b8 55%,#e8d795);box-shadow:0 0 30px 6px #fdf6d859,0 0 90px 20px #fdf6d81f;transition:transform 1.8s ease,opacity 1.8s ease;transform:translateY(-40vh);opacity:0;pointer-events:none}.moon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 30% 32%,rgba(0,0,0,.12) 0 9px,transparent 10px),radial-gradient(circle at 58% 62%,rgba(0,0,0,.1) 0 7px,transparent 8px)}.night .moon{transform:translateY(0);opacity:1}.hills{position:absolute;left:-10vw;right:-10vw;bottom:-8vh;pointer-events:none;transition:background-color 1.8s ease,filter 1.8s ease}.hills-far{height:72vh;border-radius:50% 50% 0 0/24% 30% 0 0;background-color:#7fb069}.hills-near{height:46vh;border-radius:44% 56% 0 0/30% 22% 0 0;background-color:#5c9451}.night .hills-far{background-color:#1d3a2f}.night .hills-near{background-color:#142b22}.tflower{position:absolute;translate:-50% 0;pointer-events:none;animation:appear 1.4s both}.tflower svg{display:block;transform-origin:50% 100%;animation:sway ease-in-out infinite;transition:filter 1.8s ease,opacity 1.8s ease}.night .tflower svg{filter:brightness(.55) saturate(.7)}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2.4deg)}}.stone{position:absolute;translate:-50% -50%;border-radius:50%;background:linear-gradient(180deg,#e7d8be,#c9b393 70%,#a98f6e);box-shadow:0 3px 5px #00000040;animation:appear .9s both;transition:background 1.8s ease,box-shadow 1.8s ease;pointer-events:none}.night .stone{background:linear-gradient(180deg,#8d9bb5,#5f6d8c 70%,#454f68);box-shadow:0 3px 6px #00000073,0 0 12px #c4b5fd26}.stop{position:absolute;translate:-50% -50%;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;animation:appear 1.2s both;cursor:pointer;z-index:150}.stop-stone{width:calc(86px * var(--s));height:calc(26px * var(--s));border-radius:50%;background:linear-gradient(180deg,#f0e2c8,#d3bd9c 70%,#b09577);box-shadow:0 4px 8px #0000004d,0 0 #fde04700;transition:background 1.8s ease,box-shadow .9s ease}.night .stop-stone{background:linear-gradient(180deg,#a5b3cf,#6f7da0 70%,#525d7a);box-shadow:0 4px 10px #00000080,0 0 18px #c4b5fd59}.stop-sign{font-size:calc(2rem * var(--s));line-height:1;margin-bottom:calc(-8px * var(--s));filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:bob 2.6s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-5px * var(--s)))}}.stop-label{font-family:Cormorant Garamond,Georgia,serif;font-weight:700;font-style:italic;font-size:calc(1.25rem * var(--s) + .25rem);color:#3b2a1a;letter-spacing:.06em;text-shadow:0 1px 6px rgba(255,255,255,.5);transition:color 1.8s ease,text-shadow 1.8s ease}.night .stop-label{color:#fde68a;text-shadow:0 0 12px rgba(253,230,138,.55),0 1px 6px rgba(0,0,0,.6)}.stop:hover .stop-sign,.stop:focus-visible .stop-sign{transform:scale(1.18);transition:transform .25s}.stop:hover .stop-stone{box-shadow:0 4px 10px #00000059,0 0 22px 6px #fde04773}.toto{position:absolute;font-size:26px;z-index:140;cursor:pointer;padding:8px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));-webkit-user-select:none;user-select:none}.toto-cat{display:inline-block}.meow{position:absolute;bottom:calc(100% - 2px);left:50%;transform:translate(-50%);background:#fffffff2;color:#3b2a4a;font-family:Inter,system-ui,sans-serif;font-size:.72rem;font-weight:600;white-space:nowrap;padding:5px 10px;border-radius:12px;box-shadow:0 2px 8px #00000040;animation:meow-pop 1.7s ease-out both;pointer-events:none}.meow:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#fffffff2}@keyframes meow-pop{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.7)}12%{opacity:1;transform:translate(-50%) translateY(0) scale(1.05)}20%{transform:translate(-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.hub-header{position:absolute;top:4vh;left:0;right:0;text-align:center;z-index:200;pointer-events:none;animation:appear 1.6s .2s both}.hub-header h1{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:.04em;color:#3b2a4a;text-shadow:0 0 26px rgba(255,255,255,.65);transition:color 1.8s ease,text-shadow 1.8s ease}.hub-header p{margin-top:4px;font-size:clamp(.82rem,1.9vw,1rem);color:#3b2a4abf;letter-spacing:.05em;transition:color 1.8s ease}.night .hub-header h1{color:#fff;text-shadow:0 0 30px rgba(196,181,253,.8),0 2px 14px rgba(0,0,0,.5)}.night .hub-header p{color:#ffffffad}.mode-toggle{position:absolute;top:16px;right:16px;z-index:300;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:#ffffff38;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:1.4rem;cursor:pointer;transition:transform .25s,background .3s}.mode-toggle:hover{transform:scale(1.1) rotate(12deg)}.night .mode-toggle{background:#1e1b4b80;border-color:#c4b5fd66}.page-footer{position:absolute;left:16px;bottom:14px;z-index:300;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#3b2a4a8c;transition:color 1.8s ease;animation:appear 1.5s 1.6s both}.night .page-footer{color:#ffffff73}@media(max-width:600px){.hub-header h1{font-size:1.6rem}.mode-toggle{width:42px;height:42px;font-size:1.2rem;top:12px;right:12px}.sun{width:62px;height:62px;right:10vw;top:11vh}.moon{width:54px;height:54px;right:10vw;top:11vh}.toto{font-size:22px}.stop-label{font-size:calc(1.05rem * var(--s) + .3rem)}.stop-sign{font-size:calc(1.8rem * var(--s) + .3rem)}}
