@font-face{font-family:Nunito;src:url(/fonts/nunito-bold.ttf) format("truetype");font-weight:600 800;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-black.ttf) format("truetype");font-weight:900 1000;font-display:swap}:root{font-family:Nunito,ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif;color:#123f53;background:#7dca7c;font-synthesis:none;--ink:#123f53;--cream:#fff7de;--gold:#ffd243;--red:#ef5b50;--blue:#299fdb;--yellow:#e2a214;--purple:#8c5bd6;--shadow:#245b4640}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;touch-action:manipulation}button:disabled{cursor:default;opacity:.48}button:focus-visible{outline:3px solid #14576c;outline-offset:5px}button:not(:disabled):active{transform:translateY(3px);box-shadow:none}button{transition:transform .14s,filter .14s,opacity .2s}button:hover:not(:disabled){filter:brightness(1.035)}[hidden]{display:none!important}.game-shell{position:relative;width:100%;height:100svh;min-height:320px;overflow:hidden;isolation:isolate}#world{display:block;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,#1c654a12 100%)}.top-bar{position:absolute;top:max(22px,env(safe-area-inset-top));left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.top-bar>*{pointer-events:auto}.round-button{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(#fffef0,#f6efd4);box-shadow:0 4px #c2c99c,0 7px 12px #24633c25;border:1px solid #fff9}.icon{width:26px;height:26px;flex:none}.round-button .icon{width:27px;height:27px}.level-pill,.brand{display:flex;gap:12px;align-items:center;background:var(--cream);padding:8px 24px 9px;border-radius:25px;box-shadow:0 3px #8fc58555;border:0;color:var(--ink);cursor:pointer;touch-action:manipulation;transition:transform .14s,filter .14s}.level-pill:hover{filter:brightness(1.03)}.level-pill:active{transform:translateY(2px);box-shadow:0 1px #8fc58555}.level-pill h1{margin:0;font-size:24px;line-height:1;font-weight:1000;letter-spacing:1px;color:var(--ink)}.brand-dot{width:6px;height:6px;border-radius:50%;background:#efbb48}.level-card{position:absolute;top:18%;left:calc(50% - 400px);min-width:140px;padding:12px 16px 11px;background:var(--cream);border-radius:20px;box-shadow:0 5px #80b57865;text-align:center}.eyebrow{display:block;font-size:10px;letter-spacing:1.8px;font-weight:900;opacity:.65;margin-bottom:6px}.service-status{display:flex;align-items:center;gap:9px;justify-content:center;flex-wrap:wrap}.service-status .icon{width:22px;height:25px}.train-red{color:var(--red)}.train-blue{color:var(--blue)}.train-yellow{color:var(--yellow)}.train-purple{color:var(--purple)}.service-status>span{position:relative}.service-status>.finished:after{content:"✓";position:absolute;right:-7px;top:-6px;font-size:12px;background:#fff7de;border-radius:50%;color:#2a956a;line-height:14px;width:14px;font-weight:1000}.status-divider{height:22px;width:1px;background:#d7cbaa;margin:0 1px}.service-status strong{font-size:20px;font-weight:1000;white-space:nowrap}.level-card #tick{font-size:12px;margin:8px 0 0;border-top:1px solid #e6debd;padding-top:6px}.board-badge{position:absolute;top:calc(50% - 236px);left:calc(50% + 170px);font-size:10px;letter-spacing:2px;font-weight:900;color:#346748;display:flex;align-items:center;gap:5px;opacity:.65}.board-badge>span{width:5px;height:5px;border-radius:50%;background:#297f52}.controls{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(460px,92%);text-align:center}.helper{display:inline-block;padding:4px 15px 5px;border-radius:17px;background:#fff9e2eb;font-weight:900;font-size:14px;box-shadow:0 2px #7caa6860;margin-bottom:12px}.action-row{display:flex;justify-content:center;align-items:center;width:100%}.control-unit{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}.control-unit>span{font-size:11px;font-weight:900}.control-unit>.round-button{width:57px;height:57px}.start-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;width:auto;min-width:175px;max-width:230px;padding:0 24px;background:linear-gradient(#ffdf58,#ffc129);border:2px solid #fff3a1;border-bottom-color:#f1ad2a;border-radius:24px;box-shadow:0 4px #d99c27,0 8px 14px #556d4030;font-weight:1000;letter-spacing:.6px;font-size:17px;white-space:nowrap}.start-button>.icon{width:21px;height:21px}.start-button:disabled{cursor:default;opacity:.72;transform:none!important;box-shadow:0 3px #c2b07e}.start-button.is-running{background:#f3edd3;font-size:15px;color:#677c73;box-shadow:0 3px #c0bca0}.control-caption{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;font-weight:800;margin-top:12px;color:#22513fd9}.control-caption>.icon{width:12px;height:12px}.control-caption>span{margin:0 3px;opacity:.5}.text-button{display:inline-flex;align-items:center;gap:4px;background:none;padding:3px 2px;font-size:11px;font-weight:900}.text-button>.icon{width:14px;height:14px}.toast{position:absolute;left:50%;top:calc(50% + 255px);width:max-content;max-width:min(370px,90%);transform:translate(-50%,10px);opacity:0;pointer-events:none;background:#123f53f2;border-radius:15px;padding:12px 18px;color:var(--cream);font-size:13px;font-weight:800;box-shadow:0 5px 18px #123f5330;transition:opacity .2s,transform .2s;text-align:center;z-index:6}.toast.show{opacity:1;transform:translate(-50%)}.switch-panel{position:absolute;right:6%;top:26%;padding:12px;background:var(--cream);box-shadow:0 4px #6c995560;border-radius:16px;display:flex;align-items:center;gap:10px;font-size:11px;font-weight:900}.small-button{display:flex;gap:5px;align-items:center;background:#ffe28a;border-radius:10px;padding:8px 10px;font-size:11px;font-weight:900}.small-button>.icon{width:16px;height:16px}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#82cb7e;z-index:30}.loading-train{color:var(--cream);animation:bob 1s ease-in-out infinite alternate}.loading-train>.icon{width:64px;height:64px}.loading>strong{font-size:23px;font-weight:1000}.loading>span{font-size:13px;opacity:.65}.loading.error{background:#f8e7c3}.dialog-backdrop{position:absolute;inset:0;z-index:20;background:#113e4f66;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:22px}.dialog{position:relative;background:var(--cream);border-radius:30px;padding:35px 28px 24px;width:min(420px,100%);max-height:90%;overflow:auto;outline:0;box-shadow:0 8px #d6d2af,0 22px 60px #103e4d55;text-align:center;animation:appear .2s ease-out}.dialog-close{position:absolute;right:15px;top:14px;display:grid;place-items:center;background:#eee8ce;width:30px;height:30px;border-radius:50%;z-index:25}.dialog-close>.icon{width:16px;height:16px}.dialog .eyebrow{font-size:9px;margin-top:12px}.dialog h2{font-size:27px;letter-spacing:-.4px;line-height:1.2;font-weight:1000;margin:11px 0 12px}.dialog p{font-size:14px;line-height:1.7;color:#527069;margin:10px 0 20px;font-weight:700}.result-art{width:70px;height:70px;border-radius:24px;display:grid;place-items:center;margin:0 auto 19px;transform:rotate(-5deg)}.result-art>.icon{width:40px;height:40px}.success-art{background:#d9edb5;color:#2c9460}.failure-art{background:#ffdbc7;color:#dc7352}.guide-art{background:#cae8e2;color:#3284a1}.result-stats{display:flex;justify-content:center;margin:24px 0;gap:30px}.result-stats>span{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#6b806b}.result-stats strong{font-size:29px;line-height:1;color:var(--ink);font-weight:1000}.full{width:100%;min-height:56px;font-size:16px;margin-top:17px}.secondary-button{display:inline-flex;justify-content:center;align-items:center;gap:6px;background:none;padding:15px 10px 1px;font-size:12px;font-weight:900;text-decoration:underline;text-underline-offset:4px}.secondary-button>.icon{width:16px;height:16px}.tip-card{padding:15px;background:#f2e9cc;border-radius:16px;text-align:left;display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.6;font-weight:800;color:#657463}.tip-card>.icon{color:#b39436;width:22px;height:22px}.guide-list{list-style:none;padding:0;margin:20px 0;text-align:left;display:flex;flex-direction:column;gap:16px}.guide-list li{display:flex;align-items:center;gap:13px}.guide-list b{display:grid;place-items:center;width:34px;height:34px;flex:none;background:#e1eaca;border-radius:12px;font-size:12px;color:#628952}.guide-list span{font-size:12px;line-height:1.5;color:#617569}.guide-list strong{display:block;color:var(--ink);font-size:14px;margin-bottom:3px}.dialog .keyboard-note{font-size:10px;line-height:1.6}.setting-row{width:100%;display:flex;align-items:center;gap:12px;background:#f1e9cc;border-radius:15px;margin-top:13px;padding:15px;font-size:14px;font-weight:900;text-align:left}.setting-row>span,.setting-row>.icon:last-child{margin-left:auto}.setting-row>span{font-size:12px;color:#63845e}.setting-row>.icon{width:21px;height:21px}.about-card{margin-top:24px;color:#8b937d;font-size:12px;line-height:1.8}.about-card>small{display:block;margin-top:8px;font-size:10px}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0 10px}.level-button{height:53px;border-radius:15px;background:#e5ead0;box-shadow:0 3px #cbd6ad;font-size:19px;font-weight:1000;display:grid;place-items:center}.level-button.current{background:#ffdc63;box-shadow:0 3px #d9b04b}.level-button>.icon{width:19px;height:19px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only:focus-within{clip:auto;width:auto;height:auto;max-height:180px;overflow:auto;left:10px;top:90px;z-index:40;background:var(--cream);padding:10px;border-radius:10px;display:grid;grid-template-columns:repeat(7,1fr)}.sr-only button{font-size:10px;max-width:80px;background:#e8e4c8;padding:5px}.sr-only:focus-within button:focus{background:var(--gold)}@keyframes appear{0%{transform:translateY(12px) scale(.96);opacity:0}to{transform:none;opacity:1}}@keyframes bob{0%{transform:translateY(-4px)}to{transform:translateY(4px)}}@media(max-width:700px){.top-bar{top:max(17px,env(safe-area-inset-top));left:18px;right:18px}.top-bar .round-button{width:43px;height:43px}.top-bar .round-button>.icon{width:23px;height:23px}.level-pill,.brand{font-size:20px;padding:6px 16px 7px;border-radius:22px;gap:8px}.level-pill h1{font-size:20px}.brand-dot{width:5px;height:5px}.level-card{left:5%;top:13%;padding:9px 10px;min-width:0;width:116px;border-radius:17px}.level-card .eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:4px}.service-status{gap:6px}.service-status .icon{width:18px;height:21px}.service-status strong{font-size:16px}.board-badge{inset:auto 12% 29% auto;font-size:8px}.controls{width:90%;bottom:max(20px,env(safe-area-inset-bottom))}.action-row{gap:11px}.control-unit>.round-button{width:46px;height:46px}.control-unit .icon{width:24px;height:24px}.control-unit>span{font-size:9px;white-space:nowrap}.start-button{min-height:44px;font-size:15px;min-width:160px;max-width:210px;padding:0 20px;gap:8px;border-radius:22px}.start-button>.icon{width:19px;height:19px}.helper{font-size:12px;padding:4px 13px;margin-bottom:12px}.control-caption{font-size:9px;margin-top:10px;gap:4px}.text-button{font-size:10px}.toast{top:71%;font-size:12px;padding:10px 14px}.switch-panel{top:27%;right:5%;font-size:10px;gap:6px;padding:8px}.small-button{font-size:10px;padding:7px 8px}.dialog{padding:33px 22px 22px;border-radius:26px}.dialog h2{font-size:25px}.dialog p{font-size:13px}.dialog .full{font-size:14px}}@media(max-height:700px){.level-card{top:12%;padding:8px 10px}.level-card .eyebrow{display:none}.controls{bottom:12px}.helper{margin-bottom:8px;font-size:11px}.control-caption{margin-top:6px}.control-unit>span{display:none}.brand{font-size:20px}.dialog{max-height:92%;padding-top:25px}.result-art{width:54px;height:54px;margin-bottom:12px}.result-art>.icon{width:30px;height:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:701px){.level-card{left:28px;right:auto;top:92px}.board-badge{top:calc(var(--board-top) - 18px);left:auto;right:calc(100% - var(--board-right) + 6px)}}@media(min-width:700px)and (max-height:520px){.top-bar{top:12px;left:18px;right:18px}.top-bar .round-button{width:38px;height:38px}.level-pill,.brand{font-size:16px;padding:5px 14px}.level-pill h1{font-size:16px}.controls{left:auto;right:20px;bottom:30px;transform:none;width:220px}.controls .helper,.controls .control-caption{display:none}.action-row{gap:8px;align-items:center;flex-wrap:wrap}.start-button{font-size:13px;min-height:46px;order:-1;flex-basis:100%}.control-unit{flex:1}.control-unit>.round-button{width:38px;height:38px}.control-unit>span{display:none}.level-card{top:84px;left:20px;right:auto;width:140px;min-width:0}.board-badge{display:none}.toast{top:auto;bottom:15px;left:50%;max-width:40%}.switch-panel{top:auto;bottom:160px;right:20px}}.start-button.is-starting{animation:startKick .35s ease-out}@keyframes startKick{0%{transform:scale(.96)}50%{transform:scale(1.05);filter:brightness(1.1)}to{transform:scale(1)}}.service-status>.just-arrived{animation:arrivalPop .65s cubic-bezier(.34,1.56,.64,1) both}@keyframes arrivalPop{0%{transform:scale(1)}40%{transform:scale(1.45);filter:drop-shadow(0 2px 8px #ffd243)}to{transform:scale(1)}}.confetti-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:16px;z-index:0}.confetti{position:absolute;width:9px;height:14px;border-radius:2px;opacity:0}.c1{background:#ff4757;left:12%;top:-10px;animation:confettiFall 2.4s cubic-bezier(.25,.46,.45,.94) .05s infinite}.c2{background:#ffa502;left:26%;top:-10px;animation:confettiFall 2.6s cubic-bezier(.25,.46,.45,.94) .25s infinite}.c3{background:#2ed573;left:40%;top:-10px;animation:confettiFall 2.2s cubic-bezier(.25,.46,.45,.94) .12s infinite}.c4{background:#1e90ff;left:56%;top:-10px;animation:confettiFall 2.5s cubic-bezier(.25,.46,.45,.94) .35s infinite}.c5{background:#9b59b6;left:70%;top:-10px;animation:confettiFall 2.7s cubic-bezier(.25,.46,.45,.94) .18s infinite}.c6{background:#ff6b81;left:84%;top:-10px;animation:confettiFall 2.3s cubic-bezier(.25,.46,.45,.94) .4s infinite}.c7{background:#eccc68;left:18%;top:-10px;animation:confettiFall 2.8s cubic-bezier(.25,.46,.45,.94) .5s infinite}.c8{background:#70a1ff;left:64%;top:-10px;animation:confettiFall 2.4s cubic-bezier(.25,.46,.45,.94) .3s infinite}.c9{background:#2ed573;left:34%;top:-10px;animation:confettiFall 2.6s cubic-bezier(.25,.46,.45,.94) .15s infinite}.c10{background:#ff4757;left:78%;top:-10px;animation:confettiFall 2.5s cubic-bezier(.25,.46,.45,.94) .45s infinite}@keyframes confettiFall{0%{transform:translateZ(0) rotate(0) rotateY(0);opacity:1}30%{transform:translate3d(14px,90px,0) rotate(140deg) rotateY(180deg)}60%{transform:translate3d(-12px,190px,0) rotate(280deg) rotateY(360deg)}85%{transform:translate3d(10px,280px,0) rotate(420deg) rotateY(540deg);opacity:.9}to{transform:translate3d(-5px,380px,0) rotate(540deg) rotateY(720deg);opacity:0}}.sunburst-rays{position:absolute;top:-35px;left:50%;width:280px;height:280px;transform:translate(-50%);background:radial-gradient(circle,#ffd24373,#ffd24300 70%),conic-gradient(from 0deg,transparent 0deg 15deg,rgba(255,225,102,.35) 15deg 30deg,transparent 30deg 45deg,rgba(255,225,102,.35) 45deg 60deg,transparent 60deg 75deg,rgba(255,225,102,.35) 75deg 90deg,transparent 90deg 105deg,rgba(255,225,102,.35) 105deg 120deg,transparent 120deg 135deg,rgba(255,225,102,.35) 135deg 150deg,transparent 150deg 165deg,rgba(255,225,102,.35) 165deg 180deg,transparent 180deg 195deg,rgba(255,225,102,.35) 195deg 210deg,transparent 210deg 225deg,rgba(255,225,102,.35) 225deg 240deg,transparent 240deg 255deg,rgba(255,225,102,.35) 255deg 270deg,transparent 270deg 285deg,rgba(255,225,102,.35) 285deg 300deg,transparent 300deg 315deg,rgba(255,225,102,.35) 315deg 330deg,transparent 330deg 345deg,rgba(255,225,102,.35) 345deg 360deg);border-radius:50%;pointer-events:none;z-index:0;animation:spinSunburst 20s linear infinite,sunburstFadeIn .5s ease-out both}@keyframes spinSunburst{0%{transform:translate(-50%) rotate(0)}to{transform:translate(-50%) rotate(360deg)}}@keyframes sunburstFadeIn{0%{opacity:0;transform:translate(-50%) scale(.5)}to{opacity:1;transform:translate(-50%) scale(1)}}.casual-stars-row{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:12px;margin:8px auto 14px;z-index:1}.casual-star{position:relative;display:grid;place-items:center;color:#ffc926;filter:drop-shadow(0 6px 14px rgba(245,166,35,.55))}.star-wrapper{display:grid;place-items:center}.star-wrapper .icon{width:56px;height:56px}.casual-star.star-1{animation:starDrop1 .55s cubic-bezier(.34,1.56,.64,1) .08s both}.casual-star.star-1 .star-wrapper{animation:starFloat1 2.8s ease-in-out infinite alternate .65s}.casual-star.star-2{color:#ffd243;filter:drop-shadow(0 8px 20px rgba(255,210,67,.75));animation:starDrop2 .55s cubic-bezier(.34,1.56,.64,1) .24s both}.casual-star.star-2 .star-wrapper .icon{width:76px;height:76px}.casual-star.star-2 .star-wrapper{animation:starFloat2 2.6s ease-in-out infinite alternate .8s}.casual-star.star-3{animation:starDrop3 .55s cubic-bezier(.34,1.56,.64,1) .4s both}.casual-star.star-3 .star-wrapper{animation:starFloat3 3s ease-in-out infinite alternate .95s}@keyframes starDrop1{0%{transform:scale(0) rotate(-35deg) translateY(-25px);opacity:0}65%{transform:scale(1.18) rotate(-10deg) translateY(0)}85%{transform:scale(.95) rotate(-15deg)}to{transform:scale(1) rotate(-14deg);opacity:1}}@keyframes starDrop2{0%{transform:scale(0) translateY(-30px);opacity:0}65%{transform:scale(1.22) translateY(0)}85%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes starDrop3{0%{transform:scale(0) rotate(35deg) translateY(-25px);opacity:0}65%{transform:scale(1.18) rotate(10deg) translateY(0)}85%{transform:scale(.95) rotate(15deg)}to{transform:scale(1) rotate(14deg);opacity:1}}@keyframes starFloat1{0%{transform:rotate(-14deg) translateY(0)}to{transform:rotate(-12deg) translateY(-3px)}}@keyframes starFloat2{0%{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(1.02)}}@keyframes starFloat3{0%{transform:rotate(14deg) translateY(0)}to{transform:rotate(12deg) translateY(-3px)}}.star-glow-ring{position:absolute;inset:-10px;border-radius:50%;border:3px solid #ffe259;opacity:0;pointer-events:none;animation:ringBurst .7s ease-out .35s both}@keyframes ringBurst{0%{transform:scale(.5);opacity:.9}to{transform:scale(1.6);opacity:0}}.star-sparkle{position:absolute;color:#fff;pointer-events:none}.star-sparkle .icon{width:16px;height:16px;filter:drop-shadow(0 0 4px #ffd700)}.s-top-left{top:-6px;left:-6px;animation:sparkleTwinkle 1.8s ease-in-out .5s infinite}.s-top{top:-12px;left:50%;transform:translate(-50%);animation:sparkleTwinkle 1.9s ease-in-out .7s infinite}.s-bottom-right{bottom:-4px;right:-8px;animation:sparkleTwinkle 2s ease-in-out .9s infinite}.s-top-right{top:-6px;right:-6px;animation:sparkleTwinkle 1.8s ease-in-out .6s infinite}@keyframes sparkleTwinkle{0%,to{transform:scale(0) rotate(0);opacity:0}50%{transform:scale(1.25) rotate(90deg);opacity:1}}.casual-level-badge{position:relative;z-index:1;display:inline-block;padding:4px 15px;border-radius:14px;background:#ebe2c4;color:#596a5d;font-size:11px;font-weight:1000;letter-spacing:1.2px;margin-bottom:6px;animation:badgeSlide .4s ease-out .25s both}@keyframes badgeSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.casual-win-title{position:relative;z-index:1;font-size:33px;font-weight:1000;letter-spacing:-.5px;color:#123f53;margin:4px 0 6px!important;text-shadow:0 2px 0 #fff;animation:titlePopIn .45s cubic-bezier(.34,1.56,.64,1) .35s both}@keyframes titlePopIn{0%{opacity:0;transform:scale(.75) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.casual-win-sub{position:relative;z-index:1;font-size:14.5px!important;color:#526d62!important;margin:0 0 20px!important;font-weight:800;animation:fadeSlideUp .4s ease-out .42s both}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.casual-btn-next{position:relative;z-index:1;min-height:56px;font-size:18px;border-radius:24px;box-shadow:0 5px #d99c27,0 12px 24px #d99c276b;overflow:hidden;animation:pulseButton 2.2s ease-in-out infinite,fadeSlideUp .4s ease-out .48s both}.casual-btn-next:after,.mechanic-btn-go:after{content:"";position:absolute;top:-50%;left:-80%;width:45%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:rotate(25deg);pointer-events:none;animation:buttonGlint 2.8s ease-in-out infinite}@keyframes buttonGlint{0%,30%{left:-80%}65%,to{left:160%}}.casual-btn-next .btn-text,.mechanic-btn-go .btn-text,.casual-btn-next .icon,.mechanic-btn-go .icon{position:relative;z-index:2}.casual-btn-replay{position:relative;z-index:1;margin-top:10px;color:#678275;font-size:13px;padding:8px}.mechanic-modal-card{position:relative;text-align:center;padding:10px 4px 6px}.mechanic-badge{display:inline-block;padding:5px 16px;border-radius:15px;background:#8c5bd622;color:#6f3ab6;font-size:11px;font-weight:1000;letter-spacing:1.5px;margin-bottom:14px;animation:badgeSlide .4s ease-out .1s both}.mechanic-icon-circle{width:92px;height:92px;margin:0 auto 16px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#f5e8ff,#deb7fc);border:3px solid #8c5bd6;box-shadow:0 8px 26px #8c5bd666;display:grid;place-items:center;position:relative;animation:titlePopIn .45s cubic-bezier(.34,1.56,.64,1) .18s both}.portal-vortex{position:relative;width:100%;height:100%;display:grid;place-items:center}.portal-swirl{position:absolute;border-radius:50%;pointer-events:none}.swirl-outer{width:78px;height:78px;border:2px dashed #9d65f5;animation:spinCW 7s linear infinite}.swirl-mid{width:64px;height:64px;border:2px dotted #c084fc;animation:spinCCW 4.5s linear infinite}@keyframes spinCW{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinCCW{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.portal-pulse-ring{position:absolute;inset:10px;border-radius:50%;border:2.5px solid #a855f7;pointer-events:none;animation:portalWave 2s ease-out infinite}@keyframes portalWave{0%{transform:scale(.7);opacity:.9}to{transform:scale(1.4);opacity:0}}.portal-core{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#9333ea,#581c87);box-shadow:0 0 16px #a855f7bf;display:grid;place-items:center;animation:corePulse 1.8s ease-in-out infinite alternate}@keyframes corePulse{0%{transform:scale(.95)}to{transform:scale(1.08);box-shadow:0 0 22px #c084fce6}}.portal-core .icon{width:28px;height:28px;color:#fff}.portal-spark{position:absolute;color:gold;font-size:12px;font-weight:900;pointer-events:none}.ps-1{top:4px;right:12px;animation:sparkOrbit 3s ease-in-out infinite}.ps-2{bottom:6px;left:10px;animation:sparkOrbit 3.2s ease-in-out .8s infinite}.ps-3{top:32px;left:2px;animation:sparkOrbit 2.8s ease-in-out 1.5s infinite}@keyframes sparkOrbit{0%,to{transform:scale(.7) translateY(0);opacity:.5}50%{transform:scale(1.3) translateY(-4px);opacity:1}}.mechanic-title{font-size:25px;font-weight:1000;letter-spacing:.4px;color:#123f53;margin:4px 0 14px!important;animation:titlePopIn .4s ease-out .26s both}.mechanic-bullet-box{background:#f3eacc;border-radius:18px;padding:14px 16px;text-align:left;display:flex;flex-direction:column;gap:11px;margin-bottom:20px;border:1px solid #e5dac0;animation:fadeSlideUp .4s ease-out .34s both}.mechanic-bullet-row{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.55;color:#456057}.mechanic-sparkle .icon{width:16px;height:16px;color:#e2a214;flex:none;margin-top:2px;animation:sparkleTwinkle 2s ease-in-out infinite}.mechanic-btn-go{position:relative;min-height:54px;font-size:17px;overflow:hidden;animation:fadeSlideUp .4s ease-out .42s both}:root{--ink: #123e49;--cream: #fff6df;--enamel: #096653;--enamel-dark: #064c42;--brass: #c58b32;--brass-light: #f3cd74;--ease-pop: cubic-bezier(.22, 1.35, .4, 1)}.top-bar{top:max(24px,env(safe-area-inset-top));align-items:flex-start}.round-button{width:52px;height:52px;color:var(--ink);background:transparent;border:0;box-shadow:none}.image-icon{display:inline-block;object-fit:contain;pointer-events:none}.game-shell .top-bar .round-button>.image-icon,.dialog .dialog-close>.image-icon{width:100%;height:100%}.station-brand{position:absolute;left:50%;top:0;transform:translate(-50%);pointer-events:none;z-index:2;display:flex;align-items:center;justify-content:center}.level-pill{position:relative;display:inline-flex;flex-direction:column;gap:0;width:auto;padding:0;margin:0;border-radius:0;border:0;background:none;box-shadow:none}.station-name{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:5px;margin:0;padding:6px 16px;z-index:1;color:#fff5d5;background:url(/images/ui/skin/title-green.webp) center / 100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;font-size:9px;font-weight:1000;letter-spacing:.5px;white-space:nowrap}.station-name .icon{width:14px;height:14px;color:#ffd567}.ticket-label{display:flex;width:142px;height:40px;min-height:40px;padding:0 16px;align-items:center;justify-content:center;background:url(/images/ui/skin/hud-ticket.webp) center / 100% 100% no-repeat}.level-pill .brand-dot{display:none}#level-number{font-size:18px;font-weight:1000;line-height:1.2;letter-spacing:1px;transform:translateY(1.5px)}.brand-dot{width:7px;height:7px;background:radial-gradient(circle at 32% 25%,#fff0a5,#e4ab38 45%,#9f661f);box-shadow:0 1px #fff;border-radius:50%}.board-badge{display:none}.traffic-status{position:absolute;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 58px);left:50%;transform:translate(-50%);width:min(340px,92vw);padding:5px 8px;border-radius:12px;background:#fff9e7ed;color:#24584d;text-align:center;pointer-events:none}.traffic-status>strong{display:block;font-size:11px;margin-bottom:4px}.traffic-identities{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}.traffic-chip{display:inline-flex;gap:2px;align-items:center;justify-content:center;font-size:11px;min-height:18px;border-radius:6px;background:#e7edce}.traffic-chip i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--train-color);border:1px solid #164b4260}.traffic-chip.finished{opacity:.55}@media(min-width:900px){.traffic-status{top:92px;bottom:auto}}@media(min-width:700px)and (max-height:520px){.traffic-status{inset:76px 18px auto auto;transform:none;width:190px}.traffic-identities{grid-template-columns:repeat(5,1fr)}}.controls{bottom:max(30px,env(safe-area-inset-bottom))}.helper{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;margin-bottom:15px;color:#315c54;height:34px;min-height:34px;background:transparent;border-width:0 14px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/row-cream.webp) 0 64 fill / 0 14px / 0 stretch;border-radius:0;box-shadow:none;font-size:12px;font-weight:800;box-sizing:border-box}.helper .icon{width:16px;height:16px;color:#c89727}.start-button{position:relative;isolation:isolate;min-height:50px;max-width:none;padding:0 24px;border:0;border-radius:0;color:var(--ink);background:url(/images/ui/skin/button-gold.webp) center / 100% 100% no-repeat;box-shadow:none;font-size:16px;font-weight:1000;letter-spacing:.3px}.start-button:hover:not(:disabled){filter:brightness(1.05)}.start-button:not(:disabled):active{transform:translateY(3px);filter:brightness(.98)}.start-button:disabled{opacity:.85;box-shadow:none}.start-button.is-running{color:#fff5dc;background:url(/images/ui/skin/title-green.webp) center / 100% 100% no-repeat;border:0;box-shadow:none}.start-button.is-running .icon{animation:trainRock .75s ease-in-out infinite}.toast{background:#124e43f2;border:1px solid #f4cc7680;border-radius:13px}.dialog-backdrop{background:#123e37a3;backdrop-filter:blur(7px) saturate(.7);padding:24px 20px;animation:backdropIn .2s ease-out}.dialog{width:min(410px,100%);max-height:min(760px,calc(100svh - 48px));padding:6px 2px 5px;overflow:visible;border:32px solid transparent;border-radius:0;border-image:url(/images/ui/skin/modal-frame-9patch.webp) 112 fill / 32px / 0 stretch;background:transparent;box-shadow:none;animation:ticketArrive .48s var(--ease-pop)}#dialog-content{max-height:calc(min(760px,100svh - 48px) - 48px);padding:4px 10px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#cdbb8a transparent}.dialog-close{top:-20px;right:-10px;width:44px;height:44px;border:0;color:#164a50;background:none;box-shadow:none;z-index:35;cursor:pointer}.dialog-close:hover{filter:brightness(1.08)}.dialog-close:active{transform:translateY(2px) scale(.96)}.dialog-close>.icon{width:15px;height:15px}.dialog .eyebrow,.mechanic-badge{display:block;font-size:9px;font-weight:1000;letter-spacing:1.6px;color:#80907a;opacity:1;margin:6px auto 12px}.dialog h2{position:relative;z-index:1;width:min(244px,calc(100% - 24px));aspect-ratio:640 / 147;height:auto;min-height:unset;margin:0 auto 16px!important;padding:0 32px 2px;background:url(/images/ui/skin/title-green.webp) center / 100% 100% no-repeat;color:#fff5da;border:0;border-radius:0;box-shadow:none;font-size:21px;line-height:1;font-weight:1000;letter-spacing:-.3px;text-shadow:0 2px 0 #173c3c66;display:flex;align-items:center;justify-content:center}.dialog h2:before,.dialog h2:after{content:none}.dialog h2:before{left:9px}.dialog h2:after{right:9px}.dialog p{color:#557269;font-size:13px;line-height:1.6;margin:12px 0 18px}.dialog .full{display:flex;min-width:0;width:min(230px,100%);min-height:56px;font-size:17px;margin:16px auto 5px;padding:0 16px;gap:8px}.secondary-button{font-size:12px;font-weight:900;color:#476e60;padding:15px 8px 3px;text-decoration:none}.secondary-button:hover{text-decoration:underline;text-underline-offset:4px}.result-art{width:58px;height:58px;margin:0 auto 15px}.result-art>.icon{width:30px;height:30px}.dialog[data-kind=win]{overflow:visible!important;overscroll-behavior:none;touch-action:none}.dialog[data-kind=win] #dialog-content{overflow:hidden!important}.casual-win-card{position:relative;text-align:center;padding:14px 0 0;overflow:visible;border-radius:16px}.casual-stars-row{gap:8px;margin:0 auto 6px}.star-wrapper .icon{width:46px;height:46px;stroke:#d79124;stroke-width:1}.casual-star.star-2 .star-wrapper .icon{width:62px;height:62px}.casual-star,.casual-star.star-2{filter:none}.casual-star.star-1 .star-wrapper{animation-name:gentleStarLeft}.casual-star.star-3 .star-wrapper{animation-name:gentleStarRight}.sunburst-rays{width:240px;height:240px;top:-55px;opacity:.5;mask-image:radial-gradient(circle,#000 5%,transparent 70%);animation:spinSunburst 30s linear infinite}.casual-level-badge{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 6px;height:24px;min-height:24px;padding:0 10px;font-size:10px;font-weight:1000;letter-spacing:1.2px;color:#726c50;background:transparent;border-width:0 10px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/row-cream.webp) 0 64 fill / 0 10px / 0 stretch;border-radius:0;box-sizing:border-box}.dialog .casual-win-title{font-size:22px;margin:0 auto 6px!important;padding:0 32px 2px;width:min(244px,calc(100% - 24px));aspect-ratio:640 / 147;height:auto;min-height:unset;display:flex;align-items:center;justify-content:center}.modal-illustration{position:relative;margin:2px auto 0;height:110px;pointer-events:none}.win-illustration{height:110px}.modal-illustration img{display:block;width:100%;height:100%;object-fit:contain}.win-illustration img{animation:trainRollIn .7s var(--ease-pop) .35s both,trainRock 3s ease-in-out 1.1s infinite}.dialog .casual-win-sub{margin:6px 0!important;font-size:13px!important;color:#557269!important}.casual-win-card .casual-btn-next{width:min(224px,100%);min-height:56px;height:56px;padding:0 16px;margin:12px auto 4px;font-size:18px!important;font-weight:1000;letter-spacing:.6px;gap:8px;animation:ctaBreathe 3.2s ease-in-out 1.4s infinite}.casual-btn-next .icon{width:14px;height:14px;stroke-width:3.6;transform:translateY(1px)}.casual-btn-next:after,.mechanic-btn-go:after{animation:glintSweep 4.5s ease-in-out 1.4s infinite;left:-80%;transform:skew(-22deg)}.casual-win-card .casual-btn-replay{margin-top:2px;padding:6px 10px}.confetti{animation-iteration-count:2}.confetti-burst{z-index:0}.dialog[data-kind=retry] h2{background:url(/images/ui/skin/title-coral.webp) center / 100% 100% no-repeat}.retry-illustration{height:165px;margin-top:8px}.retry-illustration img{animation:trainRollIn .6s var(--ease-pop),trainRock 3.5s ease-in-out .6s infinite}.dialog .retry-message{font-size:14px;font-weight:900;margin:10px 0}.fault-detail{font-size:11px;line-height:1.5;color:#8b8b72}.setting-row{margin-top:8px;min-height:48px;height:48px;padding:0 16px;gap:11px;background:transparent;border-width:0 20px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/row-cream.webp) 0 64 fill / 0 20px / 0 stretch;border-radius:0;box-shadow:none;font-size:14px;box-sizing:border-box}.setting-row>.icon{width:21px;height:21px;color:#236255}.setting-row>.icon:last-child{width:14px;height:14px;stroke-width:3.2}.setting-row .sound-switch{display:inline-flex;flex:none;align-items:center;width:43px;height:25px;padding:0;background:url(/images/ui/skin/toggle-off.webp) center / contain no-repeat;border:0;border-radius:0;box-shadow:none}.sound-switch i{display:none}.setting-row .sound-switch.on{background-image:url(/images/ui/skin/toggle-on.webp)}.utility-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0 16px}.utility-grid button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:4px 4px 3px;border-radius:0;border-width:10px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/utility-tile-9patch.webp) 52 fill / 10px / 0 stretch;background:transparent;font-size:11px;font-weight:900;box-shadow:none;box-sizing:border-box}.utility-grid .icon{width:23px;height:23px;color:#317263}.utility-grid button:first-child .icon{color:#c59223}.about-card{margin-top:18px;font-size:10px;color:#8b947d}.journey-label{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:900;color:#73806b;margin:0 0 17px}.journey-label .icon{width:16px;height:16px}.journey-label span{margin-left:auto;padding:3px 7px;border-radius:6px;background:#e7edce;color:#56775c}.level-grid{gap:9px;margin:0 0 5px}.level-pagination{display:flex;align-items:center;gap:8px;margin:0 0 14px}.level-pagination button{display:grid;place-items:center;flex:none;width:44px;height:44px;background:#e7edce;border-radius:12px}.level-pagination .icon{width:19px;height:19px}.level-pagination select{min-width:0;flex:1;height:44px;border:1px solid #cdbb8a;border-radius:10px;background:#fff8df;color:#24584d;font:inherit;font-size:13px;font-weight:900;padding:0 8px}.level-pagination select:focus-visible{outline:3px solid #14576c;outline-offset:2px}.level-button{position:relative;height:56px;gap:0;align-content:center;border:0;border-radius:0;background:url(/images/ui/skin/ticket-normal.webp) center / 100% 100% no-repeat;box-shadow:none;font-size:18px}.level-button small{display:block;height:12px;margin-top:1px}.level-button small .icon{width:12px;height:12px;color:#478b6d;stroke-width:3}.level-button.current{background:url(/images/ui/skin/ticket-selected.webp) center / 100% 100% no-repeat;box-shadow:none}.level-button.current small .icon{color:#796726}.level-button:disabled{opacity:.75;background:url(/images/ui/skin/ticket-locked.webp) center / 100% 100% no-repeat;border:0;box-shadow:none}.level-button:disabled span{color:#6f8279}.level-button:disabled small .icon{color:#8f9b8e}.mechanic-modal-card{padding:0}.mechanic-badge{padding:0;background:transparent;border-radius:0;color:#9b7cb2}.dialog .mechanic-title{width:min(264px,calc(100% - 16px));font-size:18px;white-space:nowrap;background:url(/images/ui/skin/title-purple.webp) center / 100% 100% no-repeat;margin-bottom:10px!important;padding:0 32px 2px}.portal-demo{position:relative;height:180px;margin:0 auto 10px;max-width:310px;pointer-events:none}.portal-art{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}.junction-demo{position:relative;height:136px;margin:-6px auto 10px;max-width:280px;pointer-events:none;display:flex;align-items:center;justify-content:center}.junction-art{width:auto;height:102px;margin-bottom:12px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(22,60,40,.28));animation:lockedFloat 3s ease-in-out infinite}.junction-badge{position:absolute;bottom:0;background:#396758;border:2px solid #82b9a7;color:#fff;font-weight:900;font-size:11px;padding:4px 10px;border-radius:14px;box-shadow:0 3px #1b4538;display:flex;align-items:center;gap:5px;letter-spacing:.5px;white-space:nowrap}.junction-badge .icon{width:14px;height:14px;object-fit:contain}.locked-demo{position:relative;height:145px;margin:0 auto 10px;max-width:280px;pointer-events:none;display:flex;align-items:center;justify-content:center}.locked-art{width:auto;height:125px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(22,60,40,.28));animation:lockedFloat 3s ease-in-out infinite}.locked-lock-badge{position:absolute;bottom:0;right:18px;background:#396758;border:2px solid #82b9a7;color:#fff;font-weight:900;font-size:11px;padding:4px 10px;border-radius:14px;box-shadow:0 3px #1b4538;display:flex;align-items:center;gap:5px;letter-spacing:.5px}.locked-lock-badge .icon{width:12px;height:12px}@keyframes lockedFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.portal-energy{position:absolute;width:37px;height:57px;border-radius:50%;z-index:2;background:radial-gradient(ellipse,#eecbff88,transparent 65%);animation:energyPulse 2.7s ease-in-out infinite}.energy-left{left:20%;top:45%}.energy-right{right:22%;top:31%;animation-delay:1.35s}.portal-arc{position:absolute;inset:-5% 0 0;width:100%;height:100%;z-index:3;fill:none;stroke:#ac65de;stroke-width:2.5;stroke-dasharray:5 6;animation:routeDash 1s linear infinite}.portal-arc .arc-arrow{stroke-dasharray:none}.portal-demo-train{position:absolute;z-index:4;width:65px;height:48px;object-fit:contain;top:39%;left:14%;animation:trainWarp 3.8s ease-in-out infinite}.portal-spark{z-index:5}.portal-demo .ps-1{top:15%;right:18%}.portal-demo .ps-2{bottom:15%;left:10%}.mechanic-bullet-box{border:18px solid transparent;border-image:url(/images/ui/skin/panel-cream-9patch.webp) 48 fill / 18px / 0 stretch;padding:8px 12px;margin-bottom:16px;background:transparent;box-shadow:none;display:flex;flex-direction:column;gap:9px;border-radius:0}.mechanic-bullet-row{font-size:12px;line-height:1.6;gap:8px}.mechanic-sparkle .icon{width:13px;height:13px;animation:none}.signal-demo{position:relative;height:155px;width:240px;margin:15px auto}.signal-light{position:absolute;left:150px;top:0;padding:8px;display:grid;gap:6px;background:#234d4a;border:3px solid #d3b877;border-radius:15px;box-shadow:0 4px #183a38}.signal-light:after{content:"";position:absolute;top:100%;left:calc(50% - 4px);width:8px;height:65px;background:#9d986e}.signal-light i{width:23px;height:23px;border-radius:50%;background:#e97264;animation:signalRed 4s steps(1) infinite}.signal-light i+i{background:#4c7860;animation-name:signalGreen}.signal-train{position:absolute;bottom:14px;left:30px;color:#2586b4;animation:signalDepart 4s ease-in-out infinite}.signal-train .icon{width:52px;height:52px}.signal-rail{position:absolute;left:0;right:0;bottom:7px;height:12px;border-block:3px solid #63817a;background:repeating-linear-gradient(90deg,transparent 0 12px,#b6945c 12px 17px)}.clock-watch-banner,.ice-banner{position:absolute;top:18px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:8px;z-index:5}.clock-watch-badge{background:#d9911e;color:#fff;font-weight:800;font-size:13px;padding:6px 14px;border-radius:20px;box-shadow:0 3px #9e640b;letter-spacing:.5px}.ice-badge-torch{background:#d9531e;color:#fff;font-weight:800;font-size:12px;padding:5px 10px;border-radius:16px;box-shadow:0 3px #932c04}.ice-badge-ice{background:#2fa1b8;color:#fff;font-weight:800;font-size:12px;padding:5px 10px;border-radius:16px;box-shadow:0 3px #186878}.ice-arrow{font-size:16px;font-weight:900;color:#3c544d}.guide-list{gap:9px;margin:18px 0}.guide-list li{padding:6px 14px;border-width:0 20px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/row-cream.webp) 0 64 fill / 0 20px / 0 stretch;background:transparent;border-radius:0;gap:12px;box-sizing:border-box}.guide-list b{width:42px;height:42px;background:transparent;color:#3c7b60;border-radius:0}.guide-list b .icon{width:34px;height:34px}.guide-list li:nth-child(1) b .icon{content:url(/images/ui/skin/track-corner.webp)}.guide-list li:nth-child(2) b .icon{content:url(/images/ui/skin/station.webp)}.guide-list li:nth-child(3) b .icon{content:url(/images/ui/skin/play-green.webp)}.guide-list li:first-child b{background:transparent;color:#c19026}.guide-list strong{font-size:13px}.guide-list span{font-size:11px;line-height:1.6}.dialog .keyboard-note{font-size:9px;color:#9a9b86;margin:14px 0}.loading{background:radial-gradient(ellipse at 50% 40%,#c4df9a,#83be79)}.loading-train{width:95px;height:95px;display:grid;place-items:center;background:var(--enamel);border:3px solid #e4c37a;border-radius:30px;box-shadow:0 5px #335e45;color:#ffe19b}.loading-train>.icon{width:48px;height:48px}.loading>strong{font-size:22px}.ftue-overlay{position:absolute;inset:0;pointer-events:none;z-index:15;overflow:hidden}.ftue-target{position:absolute;width:0;height:0;pointer-events:none;transition:left .25s cubic-bezier(.2,.8,.4,1),top .25s cubic-bezier(.2,.8,.4,1)}.ftue-ring{position:absolute;left:0;top:0;width:48px;height:48px;margin-left:-24px;margin-top:-24px;border-radius:50%;border:2.5px solid #ffdc63;box-shadow:0 0 14px #ffc129,inset 0 0 8px #ffc129aa;pointer-events:none}.ftue-ripple{position:absolute;left:0;top:0;width:48px;height:48px;margin-left:-24px;margin-top:-24px;border-radius:50%;border:2.5px solid #ffe28a;box-shadow:0 0 14px #ffc129aa;pointer-events:none;animation:ftueRipple 1.6s ease-out infinite}.ftue-ripple-delay{animation-delay:.55s}.ftue-hand{position:absolute;left:0;top:0;width:74px;height:49px;margin-left:-16px;margin-top:-9px;pointer-events:none;animation:ftueTapMove 1.6s ease-in-out infinite;transform-origin:16px 9px}.ftue-hand-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 6px 12px rgba(16,44,30,.32));user-select:none}.ftue-hand-point{opacity:1;animation:ftueStatePoint 1.6s ease-in-out infinite}.ftue-hand-tap{opacity:0;animation:ftueStateTap 1.6s ease-in-out infinite}.ftue-bubble{position:absolute;left:56px;top:-24px;white-space:nowrap;background:#fff8e3;border:2px solid #efbe4a;box-shadow:0 4px 10px #163c2838;border-radius:12px;padding:4px 10px 5px;font-size:11px;font-weight:1000;letter-spacing:.3px;color:#1a4a3a;display:flex;align-items:center;gap:5px;animation:ftueBubbleFloat 1.6s ease-in-out infinite;pointer-events:none}.ftue-bubble:after{content:"";position:absolute;bottom:-5px;left:12px;width:8px;height:8px;background:#fff8e3;border-right:2px solid #efbe4a;border-bottom:2px solid #efbe4a;transform:rotate(45deg)}@keyframes ftueRipple{0%,42%{transform:scale(.4);opacity:0}48%{transform:scale(.6);opacity:.95}85%,to{transform:scale(1.6);opacity:0}}@keyframes ftueTapMove{0%,32%{transform:translate(14px,14px) scale(1.04)}45%{transform:translate(0) scale(1)}52%{transform:translate(-2px,-3px) scale(.96)}66%{transform:translate(-2px,-3px) scale(.96)}76%{transform:translate(4px,4px) scale(1)}90%,to{transform:translate(14px,14px) scale(1.04)}}@keyframes ftueStatePoint{0%,47%{opacity:1}49%,67%{opacity:0}70%,to{opacity:1}}@keyframes ftueStateTap{0%,47%{opacity:0}49%,67%{opacity:1}70%,to{opacity:0}}@keyframes ftueBubbleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.ftue-target.flip-bubble-left .ftue-bubble{left:auto;right:28px}.ftue-target.flip-bubble-left .ftue-bubble:after{left:auto;right:12px}.ftue-target.targeting-start .ftue-bubble{left:18px;top:-34px}.start-button.ready-pulse{animation:ctaBreathe 2s ease-in-out infinite}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes ticketArrive{0%{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes trainRollIn{0%{opacity:0;transform:translate(-25px) rotate(-3deg)}to{opacity:1;transform:none}}@keyframes trainRock{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-3px) rotate(.5deg)}}@keyframes gentleStarLeft{0%{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-4px) rotate(2deg)}}@keyframes gentleStarRight{0%{transform:translateY(0) rotate(2deg)}to{transform:translateY(-4px) rotate(-2deg)}}@keyframes ctaBreathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.06)}}@keyframes glintSweep{0%,65%{left:-80%}95%,to{left:160%}}@keyframes energyPulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}@keyframes routeDash{to{stroke-dashoffset:-22}}@keyframes trainWarp{0%,12%{opacity:0;transform:translateY(10px) scale(.8)}22%{opacity:1;transform:translate(5px) scale(1)}44%{opacity:1;transform:translate(60px,-20px) scale(.85)}52%{opacity:0;transform:translate(80px,-25px) scale(.1)}56%{opacity:0;transform:translate(115px,-15px) scale(.1)}67%{opacity:1;transform:translate(140px,-5px) scale(.9)}85%{opacity:1;transform:translate(170px,20px) scale(1)}to{opacity:0;transform:translate(185px,30px) scale(1)}}@keyframes signalRed{0%,to{background:#ff7563;box-shadow:0 0 10px #ff756366}50%{background:#754d43;box-shadow:none}}@keyframes signalGreen{0%,to{background:#4c7860;box-shadow:none}50%{background:#83df73;box-shadow:0 0 10px #83df7366}}@keyframes signalDepart{0%,48%{transform:translate(0);opacity:1}85%{transform:translate(140px);opacity:1}95%,to{transform:translate(155px);opacity:0}}@media(max-width:899px){.top-bar{top:max(18px,env(safe-area-inset-top));left:18px;right:18px;height:72px}.top-bar .round-button{width:42px;height:42px}.top-bar .round-button>.icon{width:22px;height:22px}.station-brand{top:0;left:50%;transform:translate(-50%)}.station-name{font-size:8px;gap:4px;padding:5px 14px}.station-name .icon{width:12px;height:12px}.level-pill{position:absolute;left:50%;top:27px;transform:translate(-50%);width:auto;margin:0;z-index:2}.ticket-label{width:142px;height:40px;min-height:40px;padding:0 16px}#level-number{font-size:18px;transform:translateY(1.5px)}.controls{bottom:max(28px,env(safe-area-inset-bottom))}.controls .start-button{min-height:48px;font-size:15px;padding:0 25px;min-width:190px}.helper{font-size:11px;margin-bottom:16px}.dialog-backdrop{padding:16px 10px}.dialog{width:100%;border-width:26px;border-image-width:26px;padding:4px 0 5px;border-radius:0}#dialog-content{padding:4px 6px}.setting-row{padding:0 12px;font-size:13px}.user-card-setting{padding:0 12px}.dialog h2,.dialog .casual-win-title{font-size:22px}.dialog .mechanic-title{font-size:18px}.dialog .full{font-size:16px}.dialog .casual-btn-next{font-size:18px!important}}@media(max-width:359px){.top-bar{left:12px;right:12px}.station-name{font-size:7px;padding:4px 11px}.level-pill{top:25px}.ticket-label{width:124px;height:35px;min-height:35px;padding:0 12px}#level-number{font-size:15px;transform:translateY(1.5px)}.dialog-backdrop{padding:12px 6px}.dialog{padding-inline:0;border-width:24px;border-image-width:24px}.dialog-close{top:-20px;right:-8px;width:40px;height:40px}.dialog h2{font-size:20px}.dialog .mechanic-title{font-size:16px}.setting-row{font-size:12px;padding:0 10px}.user-card-setting{padding:0 10px}}@media(max-height:700px){.dialog{padding-top:2px}.dialog .eyebrow,.mechanic-badge{margin:4px auto 10px}.modal-illustration{height:115px}.retry-illustration{height:130px}.casual-stars-row{margin-top:0;margin-bottom:8px}.star-wrapper .icon{width:40px;height:40px}.casual-star.star-2 .star-wrapper .icon{width:56px;height:56px}.portal-demo{height:145px}.level-button{height:48px}.controls{bottom:max(18px,env(safe-area-inset-bottom))}}@media(min-width:700px)and (max-height:520px){.top-bar{top:14px;left:18px;right:18px;display:flex;align-items:center;justify-content:flex-start;gap:12px;height:auto}.level-pill{position:static;transform:none;width:auto;margin:0}.ticket-label{width:118px;height:34px;min-height:34px;padding:0 12px}#level-number{font-size:15px;transform:translateY(1.5px)}.station-brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.station-name{font-size:8px;height:32px;padding:0 16px}#settings{margin-left:auto}.controls{bottom:26px;right:22px;width:200px}.controls .start-button{font-size:13px}.dialog{max-height:calc(100svh - 40px)}}@media(min-width:900px){.top-bar{top:22px;left:36px;right:36px;display:flex;align-items:center;justify-content:flex-start;gap:12px;height:auto}#levels{position:static;flex:none}.level-pill{position:static;transform:none;margin:0;width:auto;flex:none}.ticket-label{width:126px;height:36px;min-height:36px;padding:0 14px}#level-number{font-size:16px;transform:translateY(1.5px)}.station-brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.station-name{margin:0;height:38px;font-size:11px;padding:0 20px}#settings{margin-left:auto;flex:none}.dialog{width:min(440px,100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetti-burst,.portal-demo-train,.portal-energy,.ftue-ripple{display:none!important}.ftue-hand-point{opacity:1}.ftue-hand-tap{opacity:0}}.user-card-setting{display:flex;align-items:center;gap:12px;margin-top:8px;min-height:58px;height:58px;padding:0 16px;background:transparent;border-width:0 24px;border-style:solid;border-color:transparent;border-image:url(/images/ui/skin/row-cream.webp) 0 64 fill / 0 24px / 0 stretch;border-radius:0;text-align:left;box-sizing:border-box}.user-avatar{width:40px;height:40px;border-radius:50%;background:#e2ecc9;display:grid;place-items:center;color:#236255;flex:none}.user-avatar .icon{width:22px;height:22px}.user-info{min-width:0;flex:1}.user-name{font-size:15px;font-weight:1000;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-id{font-size:11px;font-weight:700;color:#72847b}.user-edit-btn{width:36px;height:36px;border-radius:50%;background:#ecdcb4;display:grid;place-items:center;color:var(--ink);flex:none}.user-edit-btn .icon{width:17px;height:17px}.language-list{max-height:280px;overflow-y:auto;margin:12px 0;display:flex;flex-direction:column;gap:6px;padding-right:4px}.language-option{margin-top:0;cursor:pointer;display:flex;align-items:center}.language-option.active{filter:brightness(.96);font-weight:1000}.language-option .icon{margin-left:auto;color:#236255;width:18px;height:18px}.name-input{width:100%;box-sizing:border-box;padding:12px 16px;border-radius:16px;border:2px solid #ccd8ba;background:#fffef8;font-family:inherit;font-size:16px;font-weight:800;color:var(--ink);outline:none;transition:border-color .15s}.name-input:focus{border-color:#236255}
