/* Gentle movement, with native controls and a complete static fallback. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--motion-duration:750ms}
.topbar{transition:box-shadow .3s,background .3s}
.topbar.is-scrolled{box-shadow:0 8px 28px #263e3008;background:#faf9f4f5}
.reading-progress{height:2px;position:absolute;inset:auto 0 -1px;overflow:hidden;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#88a787,#2e6655);transform:scaleX(0);transform-origin:left}
.motion-toggle{border:1px solid #dbe1d3;background:#f2f4eb;color:#65785f;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;transition:background .2s,transform .2s}
.motion-toggle svg{width:15px;height:15px}.motion-toggle:hover{background:#e5ebdc}.motion-toggle:active{transform:scale(.95)}
.nav-actions{gap:16px}.brand img{background:#edf0e5;border:1px solid #e4e8db;padding:3px;object-fit:contain}
@media(max-width:700px){.nav>.brand{min-width:0;flex:1}.nav>.brand img{flex-shrink:0}.nav>.brand>span{min-width:0}.nav>.brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.03em}.nav-actions{flex-shrink:0}.nav-actions .lang{white-space:nowrap;flex-shrink:0}}
.button{position:relative;isolation:isolate;overflow:hidden;gap:15px;letter-spacing:.015em;border-radius:18px;padding:14px 25px;box-shadow:0 4px 0 #234c40,0 9px 20px #2e665516,inset 0 1px 0 #ffffff35;transition:transform .25s var(--ease-out),box-shadow .25s,background .25s,border-color .25s}
.button:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffff24,transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none}
.button:hover{transform:translateY(-3px);box-shadow:0 6px 0 #234c40,0 13px 25px #2e66551c;background:#356e5b}
.button:hover:before{opacity:1}.button:active{transform:translateY(2px);box-shadow:0 1px 0 #234c40,0 4px 10px #2e665514}
.button.primary{padding:10px 12px 10px 23px;background:linear-gradient(135deg,#3c7964,#2a5b4c)}
.button-orb{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;background:#ffffff1c;border:1px solid #ffffff20;transition:background .25s,transform .3s var(--ease-out)}
.button-orb svg{width:18px;height:18px;transition:transform .3s var(--ease-out)}
.button:hover .button-orb{background:#ffffff2a}.button:hover .button-orb svg{transform:translateX(2px)}
.button.outline{background:#fffef9;border:1px solid #ced8c6;box-shadow:0 3px 0 #e2e8db,inset 0 1px 0 #fff;color:#4b6c58}
.button.outline:hover{background:#edf2e6;border-color:#aabb9e;box-shadow:0 5px 0 #dbe3d4,0 10px 20px #4e68330b}
.button.outline:active{box-shadow:0 1px 0 #dbe3d4;transform:translateY(2px)}
.button.small{border-radius:14px;padding:7px 8px 7px 17px;gap:11px;min-height:42px;box-shadow:0 3px 0 #234c40,0 6px 14px #2e665510}
.button.small .button-orb{width:27px;height:27px;border-radius:9px}.button.small svg{width:15px;height:15px}
.text-link{position:relative;border-bottom:0;padding-bottom:6px}
.text-link:after{content:"";height:1px;background:#afbf9f;position:absolute;bottom:0;left:0;width:100%;transform-origin:left;transition:transform .3s,background .3s}
.text-link:hover:after{transform:scaleX(.75);background:var(--green)}
.navlinks a{position:relative}.navlinks a:after{content:"";position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:#8ba07c;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.navlinks a:hover:after,.navlinks a:focus-visible:after{transform:scaleX(1)}
.hero-art{min-height:530px;--scene-offset:0px;--scene-progress:0}
.hero-art .halo{width:405px;height:405px;top:36px;background:radial-gradient(circle at 35% 30%,#f5e6cc,#ead5b4);transform:translate(-50%,var(--scene-offset));transition:transform .1s linear}
.hero-art .orbit{inset:24px 10px 65px;border-style:dashed;border-color:#cdd7bf;border-spacing:8px}
.cat-companion{position:absolute;z-index:2;left:50%;top:0;width:min(440px,95%);height:440px;transform:translateX(-50%);padding:0;border:0;background:none;border-radius:45%;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline-offset:0}
.cat-lean{display:block;width:100%;height:100%;transform-origin:50% 88%;transform:translate(var(--cat-x,0px),var(--cat-y,0px)) rotate(var(--cat-r,0deg));transition:transform .65s var(--ease-out);will-change:auto}
.cat-illustration{width:100%;height:100%;object-fit:contain;transform-origin:50% 88%;filter:drop-shadow(0 12px 8px #5548290a);animation:cat-breathe 5.6s ease-in-out infinite;animation-play-state:paused}
.hero-art.is-visible .cat-illustration{animation-play-state:running}
.cat-ground{position:absolute;width:230px;height:22px;left:50%;top:400px;transform:translateX(-50%);border-radius:50%;background:#74694716;filter:blur(9px);pointer-events:none}
.hero-art .ticket{z-index:3;bottom:12px;left:-4px;width:280px;transform:translateY(calc(var(--scene-offset) * -.45)) rotate(-4deg);transition:transform .15s linear;pointer-events:none}
.hero-art .art-case{z-index:1;width:91px;right:2px;bottom:55px;transform:translateY(calc(var(--scene-offset) * -.35)) rotate(8deg)}
.hero-art .art-plane{z-index:1;transform:translateY(calc(var(--scene-offset) * -.7)) rotate(-16deg);opacity:.7}
.art-caption{bottom:-9px;right:7px;letter-spacing:.04em;color:#697b60}
.cat-speech{position:absolute;z-index:5;right:0;top:20px;max-width:190px;background:#fffef8;border:1px solid #e3e7d6;padding:10px 16px;border-radius:17px 17px 17px 4px;font-size:13px;color:#55704d;box-shadow:0 8px 25px #4f5f3110;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .4s var(--ease-out);pointer-events:none}
.cat-speech.is-speaking{opacity:1;transform:translateY(0)}
.cat-hearts{position:absolute;inset:0;pointer-events:none;overflow:visible}
.cat-heart{position:absolute;width:21px;height:21px;color:#d58f75;opacity:0;left:74%;top:33%;animation:cat-love 1.25s var(--ease-out) forwards}
.cat-heart:nth-child(2){left:26%;top:29%;width:14px;height:14px;animation-delay:.12s;color:#cfad72}
.cat-heart:nth-child(3){left:80%;top:25%;width:12px;height:12px;animation-delay:.24s;color:#9aae83}
@keyframes cat-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.006,1.018)}}
@keyframes cat-love{0%{opacity:0;transform:translateY(7px) scale(.65) rotate(-8deg)}18%{opacity:.9}75%{opacity:.65}100%{opacity:0;transform:translateY(-53px) scale(1.05) rotate(13deg)}}
.reveal{transition:opacity var(--motion-duration) var(--ease-out),translate var(--motion-duration) var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.reveal.is-waiting{opacity:0;translate:0 30px}.reveal.is-revealed{opacity:1;translate:0 0}
.feature{transform:translateY(0);transition:transform .4s var(--ease-out),box-shadow .4s,border-color .4s;box-shadow:inset 0 1px 0 #ffffff90}
.feature:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,30%),#ffffff72,transparent 70%);opacity:0;transition:opacity .35s;pointer-events:none}
.feature h3,.feature p,.feature-art{position:relative}
.feature-art{display:flex;align-items:center;justify-content:center;width:96px;height:96px;margin-bottom:21px;isolation:isolate}
.feature .feature-art img{flex-shrink:0;width:100%;height:100%;max-width:none;object-fit:contain;margin:0;filter:drop-shadow(0 5px 4px #61553c12);transition:transform .6s var(--ease-out)}
.feature-art--plane:before{content:"";position:absolute;inset:6px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#829676,#6a805f);box-shadow:inset 0 1px 0 #ffffff35,0 5px 12px #52613d0f;z-index:-1}
.feature .feature-art--plane img{width:128%;height:128%;filter:drop-shadow(0 5px 3px #28321e3d)}
@media(max-width:700px){.feature-art{grid-row:1/3;align-self:center;width:80px;height:89px;margin:0}.feature-art--plane:before{inset:9px 3px}.feature .feature-art--plane img{width:128%;height:118%}}
@media(max-width:370px){.feature-art{width:65px;height:78px}.feature-art--plane:before{inset:9px 2px}}
@media(hover:hover) and (pointer:fine){.feature:hover{transform:translateY(-7px);border-color:#bdcdae;box-shadow:0 16px 32px #5268340d,inset 0 1px 0 #ffffffb0}.feature:hover:before{opacity:1}.feature:hover .feature-art img{transform:translateY(-4px) rotate(-5deg)}}
html[data-motion="reduced"] .feature:hover .feature-art img{transform:none}
.route{position:relative;isolation:isolate}.route-track{position:absolute;z-index:-1;left:9%;right:11%;top:12px;height:1px;background:#d4dec8;overflow:hidden}.route-track i{display:block;height:100%;width:100%;background:#759462;transform-origin:left;transform:scaleX(var(--route-progress,0));transition:transform .16s linear}
.stop{background:#eff2e9;padding:0 9px;position:relative}.stop .pin{transition:background .4s,box-shadow .4s}.stop.is-passed .pin{background:#668650;box-shadow:0 0 0 5px #dbe7ce}
.travel-ledger{transform:translateY(var(--ledger-offset,0px)) rotate(var(--ledger-tilt,0deg));transition:transform .12s linear}
.ledger-row{transition:opacity .7s,translate .7s var(--ease-out);transition-delay:var(--row-delay,0ms)}
.travel-ledger.is-waiting .ledger-row{opacity:.35;translate:12px 0}
.travel-ledger.is-revealed .ledger-row{opacity:1;translate:0 0}
.field select,.inputbox{transition:background .25s,border-color .25s,box-shadow .25s}
.field select:hover,.inputbox:hover{border-color:#c2d1b4}.inputbox:focus-within,.field select:focus{background:#fffef8;border-color:#8fa879;box-shadow:0 0 0 4px #cfddbf4d}
.result{transition:background .4s,box-shadow .4s}.result.is-updated{background:#e4efd9;box-shadow:0 0 0 5px #dbe8ce55}
.people span{animation:chip-arrive .38s var(--ease-out) both;animation-delay:calc(var(--chip-index,0) * 35ms)}
@keyframes chip-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.store{transition:border-color .3s,background .3s}.store:hover{background:#fffcf6;border-color:#cebba6}
html[data-motion="reduced"]{scroll-behavior:auto}
html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{animation:none!important;transition:none!important}
html[data-motion="reduced"] .reveal{opacity:1;translate:none}
html[data-motion="reduced"] .cat-lean,html[data-motion="reduced"] .cat-illustration,html[data-motion="reduced"] .travel-ledger{transform:none}
html[data-motion="reduced"] .feature:hover{transform:none}
html[data-motion="reduced"] .cat-heart{display:none}
.page-inactive *{animation-play-state:paused!important}
@media(max-width:1100px){.cat-companion{height:410px;width:min(410px,98%)}.cat-ground{top:376px}.hero-art{min-height:495px}.hero-art .halo{width:365px;height:365px}.hero-art .ticket{width:265px}.hero .actions .button{padding:12px 19px}.hero .actions .button.primary{padding:9px 10px 9px 19px;gap:10px}}
@media(max-width:950px){.nav-actions{gap:10px}.motion-toggle{width:30px;height:30px}.nav .button.small{gap:7px;padding:6px 7px 6px 12px}.nav .button.small .button-orb{width:22px;height:22px}.cat-companion{height:355px;top:8px}.hero-art{min-height:445px}.cat-ground{top:328px;width:195px}.hero-art .halo{width:320px;height:320px}.hero-art .ticket{width:244px;padding:16px 18px}.hero-art .ticket-row strong{font-size:21px}.hero-art .art-case{width:75px;bottom:42px}.cat-speech{font-size:11px;max-width:155px;top:10px}.hero .actions{gap:12px}.button-orb{width:29px;height:29px}.button-orb svg{width:16px;height:16px}}
@media(max-width:700px){.nav-actions{gap:8px}.nav .button.small{display:none}.brand img{padding:2px}.hero .actions{gap:12px}.hero .actions .button{min-height:48px;border-radius:15px;font-size:13px;padding:12px 18px}.hero .actions .button.primary{padding:8px 9px 8px 17px;gap:11px}.hero-art{min-height:430px;margin-top:12px;max-width:390px}.cat-companion{width:min(360px,98%);height:360px;top:0}.hero-art .halo{width:310px;height:310px;top:28px}.cat-ground{top:332px;width:195px}.hero-art .orbit{inset:15px 9px 68px}.hero-art .ticket{width:240px;left:0;bottom:11px;padding:14px 17px;border-radius:18px}.hero-art .ticket-row{padding:5px 0}.hero-art .ticket-row strong{font-size:21px}.hero-art .ticket .label{font-size:10px}.hero-art .art-case{width:75px;right:1px;bottom:43px}.hero-art .art-plane{width:65px}.cat-speech{right:4px;top:13px;font-size:12px;max-width:167px}.art-caption{font-size:10px;bottom:-13px}.route-track{left:7%;right:7%;top:11px}.stop{padding:0 5px}.reveal.is-waiting{translate:0 20px}.feature:hover{transform:none}.button:hover{transform:none}.button:active{transform:translateY(2px)}html:lang(en) .hero .actions .button{font-size:12px}html:lang(en) .hero .actions .button.primary{padding-left:13px;gap:8px}html:lang(en) .hero .actions .button.outline{padding:12px 15px}}
@media(max-width:370px){.motion-toggle{width:28px;height:28px}.nav-actions{gap:6px}.hero .actions{gap:11px}.hero .actions .button{font-size:12px;padding:11px 14px}.hero .actions .button.primary{padding-left:13px;gap:8px}.hero-art{min-height:405px}.cat-companion{height:332px}.hero-art .halo{width:285px;height:285px}.cat-ground{top:307px}.hero-art .ticket{width:224px}.hero-art .art-case{width:66px}.cat-speech{max-width:150px;font-size:11px}.route{gap:8px}.stop{padding:0 3px}.stop strong{font-size:13px}}
