:root{--sky: #4CD7D4;--far: #01C2BC;--mid: #268786;--ground: #0F4A55;--sun: #FBC119;--halo: #FDE08C;--top: #141A3A}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--ground);color:#fff;overflow:hidden;font-family:Figtree,sans-serif;-webkit-font-smoothing:antialiased;transition:background-color 1.2s}.screen{position:relative;height:100dvh;overflow:clip;isolation:isolate;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);padding:max(20px,env(safe-area-inset-top)) 22px max(18px,env(safe-area-inset-bottom))}.scene{position:absolute;left:0;right:0;top:0;height:47%;z-index:-1}.scene svg{width:100%;height:100%;display:block}.scene *{transition:fill 1.2s linear}.sky{fill:var(--sky)}.far{fill:var(--far);animation:drift 16s ease-in-out infinite alternate}.mid{fill:var(--mid);animation:drift 22s ease-in-out infinite alternate-reverse}.ground{fill:var(--ground)}.sun{fill:var(--sun)}.halo{fill:var(--halo);animation:breathe 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.bite{fill:var(--sky)}.star{fill:var(--sun);animation:twinkle 3s ease-in-out infinite}.stars{transition:opacity 1.2s}.sunG{transition:transform 1s linear}@keyframes drift{to{transform:translate(-14px)}}@keyframes breathe{50%{transform:scale(1.08)}}@keyframes twinkle{50%{opacity:.2}}header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-weight:600;font-size:15px;color:var(--top);transition:color 1.2s}header .clock{font:600 15px Martian Mono,monospace;font-stretch:87.5%}main{align-self:end;padding-bottom:22px}.kind{font-weight:600;font-size:16px;margin-bottom:8px;color:var(--sun);transition:color 1.2s}h1{font:800 clamp(48px,15vw,150px)/.9 Syne;letter-spacing:-.035em;overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual}h1 .line{display:block;overflow:hidden}h1 .line>span{display:inline-block;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}h1 .line:nth-child(2)>span{animation-delay:.07s}@keyframes rise{0%{transform:translateY(105%)}}.left{font:700 clamp(26px,7vw,40px)/1.1 Syne;margin-top:12px;letter-spacing:-.01em}.note{font-size:17px;line-height:1.4;margin-top:10px;max-width:34ch;opacity:.92}.note b{font-weight:600}.route{position:relative;height:92px;margin:2px 0 6px}.track{position:absolute;left:0;right:0;top:46px;height:2px;background:#fff;opacity:.3}.seg{position:absolute;top:24px;height:46px;border-radius:10px;box-shadow:inset 0 0 0 1.5px #ffffff47;transition:top .6s,height .6s,transform .6s}.seg.past{top:40px;height:14px;border-radius:7px}.seg.now{outline:3px solid #FFFFFF;outline-offset:2px}.seg.skipped{opacity:.35}.seg.flash{animation:flash .9s ease-out}@keyframes flash{40%{transform:scaleY(1.35)}}.marker{position:absolute;top:0;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px var(--ground),0 0 0 5px var(--sun);transition:left 1s linear,background-color 1.2s}.needle{position:absolute;top:18px;bottom:16px;width:2px;margin-left:-1px;background:var(--sun);transition:left 1s linear}.ticks{position:absolute;left:0;right:0;bottom:0;height:14px;font:400 11px Martian Mono,monospace;font-stretch:87.5%;white-space:nowrap;opacity:.85}.ticks span{position:absolute;transform:translate(-50%)}.ticks span:first-child{transform:none}.ticks span:last-child{transform:translate(-100%)}.next{font-size:16px;margin:10px 0 16px}.next b{font-weight:600}.actions{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}.actions .wide{grid-column:1 / -1}button.compact{height:48px;font-size:16px}button{font:700 18px Syne;height:60px;border-radius:30px;cursor:pointer;border:2.5px solid #FFFFFF;color:#fff;background:transparent;transition:transform .15s}button:active{transform:scale(.97)}button:disabled{cursor:default;opacity:.6}button.primary{background:var(--sun);border-color:var(--sun);color:#141a3a;transition:background-color 1.2s}button[hidden]{display:none}.sheet{position:absolute;left:12px;right:12px;bottom:12px;z-index:5;background:#fff;color:#141a3a;border-radius:28px;padding:22px 20px 18px;transform:translateY(calc(100% + 80px));transition:transform .5s cubic-bezier(.2,.8,.2,1)}.sheet.open{transform:none}.sheet p{font:700 24px/1.15 Syne;margin-bottom:6px}.sheet small{display:block;font-size:15px;margin-bottom:16px}.sheet button{border-color:#141a3a;color:#141a3a}.sheet button.primary{background:#141a3a;color:#fff;border-color:#141a3a}@media (min-width: 900px){.screen{padding:32px 56px 40px}.scene{height:44%}h1{font-size:clamp(80px,8vw,140px)}main{max-width:70%}.footer{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:40px;align-items:end}.footer .route{grid-column:1 / -1}.sheet{left:auto;width:440px;right:56px;bottom:40px}}.login h1{font-size:clamp(40px,12vw,96px)}.form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:18px}.error{font-size:17px;line-height:1.4;margin-top:12px;color:var(--sun)}.page{height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.band{position:relative;flex:none;height:30dvh;min-height:190px;isolation:isolate}.band .scene{height:100%;z-index:-1}.band header{position:absolute;left:0;right:0;top:0;padding:max(20px,env(safe-area-inset-top)) 22px 0}.body{flex:1 0 auto;padding:8px 22px 20px;min-width:0}.foot{position:sticky;bottom:0;background:var(--ground);transition:background-color 1.2s;padding:12px 22px max(18px,env(safe-area-inset-bottom))}.back{font:600 15px Figtree;height:auto;border:0;padding:0;color:var(--top);border-radius:0}.question{font:800 clamp(30px,9vw,56px)/1 Syne;letter-spacing:-.03em;margin-bottom:20px;overflow-wrap:normal;-webkit-hyphens:manual;hyphens:manual}.heading{font:800 clamp(30px,9vw,56px)/1 Syne;letter-spacing:-.03em;margin-bottom:12px}.label{display:block;font-weight:600;font-size:15px;margin:16px 0 8px;opacity:.92}.field,.area{width:100%;min-width:0;font:500 17px Figtree;color:#fff;background:transparent;border:2px solid rgba(255,255,255,.5);border-radius:16px;padding:0 14px;height:52px;color-scheme:dark;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field::placeholder,.area::placeholder{color:#fff9}.field:focus,.area:focus{outline:none;border-color:#fff}.field[type=time]{font:600 17px Martian Mono,monospace;font-stretch:87.5%}.area{height:auto;min-height:96px;padding:12px 14px;line-height:1.4;resize:vertical}.pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.row{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:0 0 14px}.row+.row{border-top:1.5px solid rgba(255,255,255,.18);padding-top:14px}.foot .error{margin:0 0 10px}.inline{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px}.unit{position:relative;display:block;min-width:0}.unit .field{padding-right:46px}.unit>span{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;opacity:.75;pointer-events:none}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:600 16px Figtree;height:44px;padding:0 16px;border-radius:22px;border-width:2px}.chip.on{background:var(--sun);border-color:var(--sun);color:#141a3a}.chip.ghost{border-style:dashed}.chip.again{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:18px;background:#fff;border-color:#fff;color:#141a3a}.link{font:600 15px Figtree;height:36px;border:0;padding:0;border-radius:0;text-decoration:underline;text-underline-offset:3px;justify-self:start}.progress{font:600 15px Martian Mono,monospace;font-stretch:87.5%}.blocks{list-style:none;margin:8px 0 4px}.blocks li{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 8px;border-radius:12px}.blocks .t{font:600 14px Martian Mono,monospace;font-stretch:87.5%}.blocks .name{font-weight:600;font-size:17px;line-height:1.3;overflow-wrap:anywhere}.blocks small{display:block;font-weight:500;font-size:14px;color:var(--sun)}.blocks li.changed{background:#ffffff1f;box-shadow:inset 3px 0 0 var(--sun)}.blocks li.gone .name{text-decoration:line-through;opacity:.7}.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.compare .blocks li{grid-template-columns:minmax(0,1fr);gap:0;padding:7px 8px}.compare .name{font-size:15px}.compare h3,.section{font:700 18px Syne;margin:22px 0 6px}.compare h3{margin-top:12px}.sentence{font-size:17px;line-height:1.4;margin-top:10px}.sentence b{font-weight:600}.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
