.scroll-x{overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding-inline:var(--space-6);overflow:auto hidden}.scroll-x::-webkit-scrollbar{display:none}@property --scroll-x-start{syntax:"<length>";inherits:false;initial-value:0}@property --scroll-x-end{syntax:"<length>";inherits:false;initial-value:0}@keyframes scroll-x-edges{0%{--scroll-x-start:0px;--scroll-x-end:var(--space-5)}8%,92%{--scroll-x-start:var(--space-5);--scroll-x-end:var(--space-5)}to{--scroll-x-start:var(--space-5);--scroll-x-end:0px}}@supports (animation-timeline:scroll()){.scroll-x-fade{-webkit-mask-image:linear-gradient(to right, transparent 0, black var(--scroll-x-start), black calc(100% - var(--scroll-x-end)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, black var(--scroll-x-start), black calc(100% - var(--scroll-x-end)), transparent 100%);animation:linear both scroll-x-edges;animation-timeline:scroll(self inline)}}
svg[data-motion]{overflow:visible}
.wordmark-svg{width:auto;display:block;overflow:visible}.wm-letter{fill:var(--logo-ink)}.wm-dot{fill:var(--logo-dot)}.wm-letter,.wm-tittle,.wm-dot-x,.wm-dot-y,.wm-dot{transform-box:view-box}@media (prefers-reduced-motion:no-preference){.wm-letter{animation:wm-rise .64s var(--ease-out) calc(var(--i) * 45ms + 80ms + var(--wm-intro-delay,0s)) backwards, wm-flash .56s var(--ease-in-out) calc(.76s + (7 - var(--i)) * 45ms + var(--wm-intro-delay,0s))}.wm-dot-y{animation:wm-drop 1s linear calc(.36s + var(--wm-intro-delay,0s)) backwards}.wm-dot{animation:wm-squash 1s linear calc(.36s + var(--wm-intro-delay,0s)) backwards}}@keyframes wm-rise{0%{opacity:0;translate:0 44px}55%{opacity:1}}@keyframes wm-flash{40%{fill:var(--logo-paint)}}@keyframes wm-drop{0%{animation-timing-function:cubic-bezier(.33,0,.67,.33);translate:0 -230px}38%{animation-timing-function:cubic-bezier(.33,.67,.67,1);translate:0}54.6%{animation-timing-function:cubic-bezier(.33,0,.67,.33);translate:0 -44px}71.2%{animation-timing-function:cubic-bezier(.33,.67,.67,1);translate:0}79.1%{animation-timing-function:cubic-bezier(.33,0,.67,.33);translate:0 -10px}87%,to{translate:0}}@keyframes wm-squash{0%,34%{scale:.9 1.14}38%{scale:1.3 .7}43%{scale:.92 1.1}50%,66%{scale:1}71.2%{scale:1.16 .84}75%,85%{scale:1}87%{scale:1.06 .94}91%,to{scale:1}}
.cube-stage{display:none}@media (max-width:767px){.route-content{background:var(--background)}html[data-tab-swipe] .route-content{touch-action:pan-y}.route-content[data-cube-face]{backface-visibility:hidden;will-change:transform}html[data-swiping] body{background:var(--cube-backdrop)}.cube-stage{z-index:calc(var(--layer-chrome) - 1);pointer-events:none;display:block;position:fixed;inset:0}.cube-face{padding-top:var(--header-height);background:var(--background);backface-visibility:hidden;pointer-events:auto;touch-action:none;display:none;position:absolute;inset:0;overflow:hidden}.cube-face[data-on]{display:block}html[data-cube-skeleton]{overflow:hidden}html[data-cube-skeleton] .route-content:not([data-cube-face]){visibility:hidden}}
.app-splash{z-index:60;background:var(--ink);animation:splash-out .3s var(--ease-in-out) 1.1s forwards;place-items:center;display:grid;position:fixed;inset:0}.app-splash:not([data-play]),.app-splash[data-done]{display:none}.app-splash-mark{width:112px;height:auto;animation:splash-open .32s var(--ease-in) 1.08s forwards;overflow:visible}.app-splash-i{fill:var(--background)}.app-splash-h{fill:var(--logo-paint)}.app-splash-i,.app-splash-h{transform-box:fill-box;transform-origin:50% 100%}@media (prefers-reduced-motion:no-preference){.app-splash-i{animation:splash-hop .52s linear .12s both, splash-pass .42s var(--ease-in-out) .7s both}.app-splash-h{animation:.52s linear .24s both splash-hop}}html:has(.app-splash[data-play]){--wm-intro-delay:1.15s}@keyframes splash-hop{0%{animation-timing-function:cubic-bezier(.33,.67,.67,1);translate:0;scale:1}16%{animation-timing-function:cubic-bezier(.33,.67,.67,1);translate:0;scale:1.1 .86}46%{animation-timing-function:cubic-bezier(.33,0,.67,.33);translate:0 -24%;scale:.94 1.08}66%{animation-timing-function:cubic-bezier(.33,.67,.67,1);translate:0;scale:1.12 .86}84%{translate:0;scale:.98 1.03}to{translate:0;scale:1}}@keyframes splash-pass{40%{fill:var(--logo-paint)}}@keyframes splash-open{to{opacity:0;scale:1.7}}@keyframes splash-out{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.app-splash{animation-delay:.45s}.app-splash-mark{animation:none}}
.offline-signal-slot{top:calc(var(--header-height) + var(--space-3));z-index:var(--layer-popover);padding-inline:var(--space-4);pointer-events:none;justify-content:center;display:flex;position:fixed;left:0;right:0}.offline-signal{align-items:center;gap:var(--space-3);max-width:420px;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--ink);box-shadow:var(--shadow-popover);color:var(--background);pointer-events:none;animation:offline-in .36s var(--ease-out) both;display:flex}.offline-signal[data-state=online]{animation:offline-in .36s var(--ease-out) both, offline-out .36s var(--ease-in) 2.04s forwards}.offline-signal-mark{flex:none;width:30px;height:auto;overflow:visible}.offline-signal-copy{font-size:var(--text-small);gap:1px;line-height:1.3;display:grid}.offline-signal-copy span{opacity:.72}.link-mark-i{fill:var(--background)}.link-mark-h{fill:var(--logo-paint)}.link-mark-bar,.link-mark-right{transform-box:fill-box}[data-state=offline] .link-mark-bar{fill:color-mix(in oklab, var(--background) 45%, var(--ink));transform-origin:0%;rotate:30deg}@media (prefers-reduced-motion:no-preference){[data-state=offline] .link-mark-bar{animation:link-dangle 1.6s var(--ease-in-out) infinite}[data-state=offline] .link-mark-right{animation:link-drift 1.6s var(--ease-in-out) infinite}[data-state=online] .link-mark-bar{transform-origin:0%;animation:link-snap .56s var(--ease-out) both}}@keyframes link-dangle{0%,to{opacity:.6;rotate:24deg}50%{opacity:1;rotate:40deg}}@keyframes link-drift{50%{translate:14%}}@keyframes link-snap{0%{rotate:34deg}60%{rotate:-6deg}to{rotate:none}}@keyframes offline-in{0%{opacity:0;translate:0 -12px;scale:.96}}@keyframes offline-out{to{opacity:0;translate:0 -8px}}@media (prefers-reduced-motion:reduce){.offline-signal,.offline-signal[data-state=online]{animation:none}}
