.vw{display:inline-block}.v-caret{vertical-align:-.2em;background:var(--blue);border-radius:1px;width:2px;height:1.15em;margin-left:3px;animation:1.1s step-end infinite caretBlink;display:inline-block}@keyframes caretBlink{50%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.mp{color:#2257d6;white-space:nowrap;background:linear-gradient(#f8fbff,#ecf3ff);border:1px solid #fff;border-radius:999px;align-items:center;gap:10px;height:46px;padding:0 18px 0 11px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 0 0 1px #2a6bf91a,0 2px 4px #0d1b3e0f,0 18px 36px -18px #2248a080,inset 0 1px #fff}.mp[data-tone=warn]{color:#a85a00}.mp-msg,.mp-swap>span{align-items:center;gap:7px;display:inline-flex}.mp-swap{display:inline-grid}.mp-swap>span{grid-area:1/1}.mp-b{opacity:0}.works-in{text-align:center;padding:clamp(8px,1.5vw,20px) 0 clamp(44px,5vw,72px);position:relative}.works-in-label{color:var(--ink-3);margin:0 0 22px;font-size:15px}.works-in-apps{flex-wrap:wrap;justify-content:center;gap:clamp(10px,1.7vw,24px);margin:0;padding:0;list-style:none;display:flex}.works-in-apps img{filter:drop-shadow(0 12px 16px #00000059);width:56px;height:56px}.works-in-more{color:var(--ink-3);margin:20px 0 0;font-size:14px}@media (prefers-reduced-motion:no-preference){.works-in-apps li{animation:popIn .52s var(--ease) calc(.5s + var(--i) * 60ms) both}}.redo-section{position:relative}.redo-sticky{padding-block:clamp(56px,6vw,96px)}.redo-section[data-scroll] .redo-track{height:230vh}.redo-section[data-scroll] .redo-sticky{align-items:center;min-height:100vh;display:grid;position:sticky;top:0}.redo-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(32px,5vw,80px);display:grid}.redo-copy h2{font-size:clamp(2.2rem,3.8vw,3.3rem)}.redo-steps{gap:4px;margin:32px 0 0;padding:0;list-style:none;display:grid}.redo-steps li{color:var(--ink-3);transition:color .3s var(--ease);align-items:center;gap:14px;padding:9px 0;font-size:17px;display:flex}.redo-step-n{width:30px;height:30px;box-shadow:inset 0 0 0 1px var(--rim);font-variant-numeric:tabular-nums;transition:background-color .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease);border-radius:50%;flex:none;place-items:center;font-size:14px;display:grid}.redo-steps li[data-on="1"]{color:var(--ink)}.redo-steps li[data-on="1"] .redo-step-n{background:var(--blue);color:#fff;box-shadow:none}.redo-steps li[data-on=past] .redo-step-n{color:var(--sky);box-shadow:inset 0 0 0 1px #8db5fe80}.redo-section:not([data-scroll]) .redo-steps li{color:var(--ink-2)}.redo-copy .redo-body{max-width:42ch;color:var(--ink-3);margin:26px 0 0;font-size:15px}.redo-grid .redo{padding:clamp(26px,3vw,40px)}.redo-grid .redo-gesture{margin-top:0}.redo-grid .redo-lines>p{font-size:clamp(22px,2.1vw,27px)}.redo-grid .redo-field{padding:18px 22px 24px}.pv{background:radial-gradient(780px 540px at 50% 60%,#2a6bf94d,#2a6bf900 70%);padding-block:clamp(80px,9vw,132px);position:relative}.pv-head{text-align:center;max-width:780px;margin:0 auto clamp(34px,4vw,52px)}.pv-lock{width:58px;height:58px;box-shadow:inset 0 0 0 1px var(--rim);color:var(--sky);background:#edf4ff0f;border-radius:18px;place-items:center;margin-bottom:20px;display:inline-grid}.pv-head h2{font-size:clamp(2.4rem,4.6vw,4rem)}.pv-line{color:var(--sky);margin:18px 0 0;font-size:clamp(1.25rem,1.9vw,1.6rem);font-weight:300}.pv-facts{flex-wrap:wrap;justify-content:center;gap:14px 36px;margin:clamp(34px,4vw,48px) 0 0;padding:0;list-style:none;display:flex}.pv-facts li{color:var(--ink);align-items:center;gap:10px;font-size:16.5px;display:inline-flex}.pv-facts .without{color:var(--sky)}.pv-note{text-align:center;max-width:60ch;color:var(--ink-3);margin:14px auto 0;font-size:14px}.pv-exits{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:760px;margin:30px auto 0}.pv-exits summary{color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:18px 2px;font-size:16px;list-style:none;display:flex}.pv-exits summary::-webkit-details-marker{display:none}.pv-plus{width:30px;height:30px;box-shadow:inset 0 0 0 1px var(--rim);transition:transform .25s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.pv-exits[open] .pv-plus{transform:rotate(45deg)}.pv-exits .exit-list{padding:4px 2px 26px}.od{color:#0d1b3e;background:#f9fbff;border-radius:18px;width:min(100%,640px);margin:0 auto;position:relative;box-shadow:0 0 0 1px #8db5fe40,0 50px 100px -40px #000000d9,inset 0 1px #fff}.od-bar{border-bottom:1px solid #0d1b3e14;justify-content:space-between;align-items:center;height:42px;padding:0 14px;display:flex}.od-lights{gap:7px;display:flex}.od-lights i{background:#dfe6f3;border-radius:50%;width:11px;height:11px}.od-wifi{color:#0d1b3e;border-radius:7px;place-items:center;width:34px;height:28px;display:grid}.od-wifi g,.od-wifi circle{transition:opacity .4s var(--ease)}.od-slash{stroke:#0d1b3e;stroke-dasharray:22;stroke-dashoffset:22px;transition:stroke-dashoffset .42s var(--ease)}.od:not([data-p=a]) .od-slash,.od:not([data-js]) .od-slash{stroke-dashoffset:0}.od:not([data-p=a]) .od-wifi :is(g,circle),.od:not([data-js]) .od-wifi :is(g,circle){opacity:.4}.od:not([data-p=a]) .od-wifi{background:#0d1b3e0f}.od-body{padding:30px 30px 100px}.od-field{color:#0d1b3e;min-height:1.5em;margin:0;font-size:clamp(19px,2vw,23px);line-height:1.5}.od[data-js] .vw{opacity:0}.od[data-p=type] .vw{animation:wordIn .26s var(--ease) calc(var(--i) * .11s) both}.od[data-p=done] .vw{opacity:1}.od-pill{justify-content:center;display:flex;position:absolute;bottom:24px;left:0;right:0}.od .pill{position:relative;top:auto}.st{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(24px,4vw,56px);margin-top:clamp(28px,3vw,44px);display:grid}.st-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.st-tab{border-radius:var(--r-inner);width:100%;font:inherit;text-align:left;color:var(--ink-2);cursor:pointer;transition:background-color .25s var(--ease);background:0 0;border:0;align-items:flex-start;gap:14px;padding:13px 16px;display:flex}.st-tab:hover{background:#ffffff80}.st-tab[aria-selected=true]{color:var(--ink);background:#fff;box-shadow:0 0 0 1px #2a6bf912,0 18px 40px -26px #2248a073}.st-prog{flex:none;margin-top:1px}.st-prog svg{transform:rotate(-90deg)}.st-prog-track{fill:none;stroke:#0d1b3e1f;stroke-width:2px}.st-prog-fill{fill:none;stroke:var(--blue);stroke-width:2px;stroke-linecap:round;stroke-dasharray:59.7;stroke-dashoffset:0}.st[data-js][data-auto="1"] .st-prog-fill{animation:5.2s linear both ringFill}@keyframes ringFill{0%{stroke-dashoffset:59.7px}to{stroke-dashoffset:0}}.st[data-js]:not([data-run="1"]) :is(.st-prog-fill,.v,.v *){animation-play-state:paused}.st-text{transition:grid-template-rows .35s var(--ease);grid-template-rows:auto 0fr;display:grid}.st-tab[aria-selected=true] .st-text{grid-template-rows:auto 1fr}.st-title{font-size:17.5px;line-height:1.35}.st-body{min-height:0;color:var(--ink-2);opacity:0;transition:opacity .3s var(--ease);font-size:15px;line-height:1.45;overflow:hidden}.st-tab[aria-selected=true] .st-body{opacity:1}.st-stage{border-radius:var(--r-card);background:radial-gradient(420px 300px at 70% 20%,#ffffffe6,#fff0 70%),linear-gradient(160deg,#e9f1ff,#d9e6fd);place-items:center;min-height:400px;padding:clamp(24px,3vw,40px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #2a6bf914}.v{width:100%;animation:popIn .42s var(--ease) both;justify-items:center;gap:22px;display:grid}.v-card,.v-win,.v-msg,.v-line,.v-form{background:#fff;border-radius:14px;box-shadow:0 0 0 1px #2a6bf912,0 1px 2px #0d1b3e0d,0 24px 50px -30px #2248a080}.v-win{width:min(100%,400px);overflow:hidden}.v-win-bar{border-bottom:1px solid var(--line);height:34px;color:var(--ink-2);align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;display:flex}.v-win-bar i{background:#dfe6f3;border-radius:50%;width:10px;height:10px}.v-win-bar span{text-align:center;flex:1;margin-right:46px}.v-win ul{gap:4px;margin:0;padding:8px;list-style:none;display:grid}.v-win li{color:var(--ink);border-radius:9px;padding:11px 12px;font-size:14.5px}.v-new{animation:popIn .48s var(--ease) .25s both;background:#2a6bf914}.v-blank{width:var(--w);background:#e6edf9;border-radius:4px;height:8px;margin-block:5px;display:block}.v-history .mp,.v-login .mp{animation:popIn .38s var(--ease) .9s both}.v .mp-a{animation:swapOut .28s var(--ease) 2.6s both}.v .mp-b{animation:swapIn .28s var(--ease) 2.7s both}@keyframes swapOut{to{opacity:0;transform:translateY(-6px)}}@keyframes swapIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.v-msg{width:min(100%,400px);color:var(--ink);padding:18px 20px;font-size:20px}.v-stop .vw,.v-vocab .vw{animation:wordIn .26s var(--ease) calc(.15s + var(--i) * 90ms) both}.v-dot{color:var(--blue);opacity:0;animation:dotGone 1.8s var(--ease) 1.1s both;font-weight:700;display:inline-block}@keyframes dotGone{0%{opacity:0;transform:scale(1.8)}20%,55%{opacity:1;transform:scale(1.8)}to{opacity:0;transform:scale(0)}}.v-setting{width:min(100%,400px);color:var(--ink-2);background:#ffffffa6;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;font-size:14px;display:flex}.v-switch{background:#d5ddeb;border-radius:999px;flex:none;width:38px;height:22px;position:relative}.v-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0d1b3e40}.v-chips{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.v-chips-label{color:var(--ink-3);margin-right:4px;font-size:12.5px;font-weight:600}.v-chip{color:#2257d6;animation:popIn .32s var(--ease) calc(var(--i) * .11s) both;background:#fff;border-radius:999px;padding:5px 12px;font-size:14px;box-shadow:0 0 0 1px #2a6bf929}.v-line{width:min(100%,460px);color:var(--ink);margin:0;padding:18px 20px;font-size:20px;line-height:1.5}.v-vocab .vw{animation-delay:calc(.55s + var(--i) * 90ms)}.vw.hit{color:#2257d6;position:relative}.vw.hit:after{content:"";background:var(--azure);transform-origin:0;height:2px;animation:drawX .26s var(--ease) calc(.85s + var(--i) * 90ms) both;border-radius:1px;position:absolute;bottom:-1px;left:0;right:0}.v-pill{background:linear-gradient(#f8fbff,#ecf3ff);border:1px solid #fff;border-radius:999px;align-items:center;gap:14px;height:64px;padding:0 20px 0 14px;display:flex;box-shadow:0 0 0 1px #2a6bf91a,0 18px 36px -18px #2248a080,inset 0 1px #fff}.v-bars{align-items:center;gap:3px;height:38px;display:flex}.v-bars i{background:linear-gradient(180deg, var(--azure), var(--blue));width:4px;height:38px;transform:scaleY(calc(var(--h) * .7));animation:meterWave .64s ease-in-out calc(var(--i) * -110ms) infinite alternate;border-radius:2px}.v-bars i.hot{background:#ffb020}.v-bars i.clip{background:#ff4d4d}@keyframes meterWave{0%{transform:scaleY(.16)}to{transform:scaleY(var(--h))}}.v-meter .mp{animation:popIn .38s var(--ease) 1.4s both}.v-form{gap:10px;width:min(100%,360px);padding:18px;display:grid}.v-field{border-radius:9px;gap:3px;padding:9px 12px;display:grid;box-shadow:inset 0 0 0 1px #0d1b3e1f}.v-label{color:var(--ink-3);font-size:12px}.v-value{min-height:1.45em;color:var(--ink);font-size:15px}.v-focus{box-shadow:inset 0 0 0 1px #2a6bf98c,0 0 0 3px #2a6bf924}.v-keyrow{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.v-keycol{justify-items:center;gap:7px;display:grid}.v-keys .keycap{width:58px;height:58px;animation:keyPress 4.8s var(--ease) calc(var(--i) * .8s) infinite;position:relative}.v-keys .keycap:after{content:"";box-shadow:0 0 0 2px var(--blue);opacity:0;animation:keyRing 4.8s var(--ease) calc(var(--i) * .8s) infinite;border-radius:14px;position:absolute;inset:-4px}@keyframes keyPress{0%,12%,to{transform:none}4%{transform:translateY(2px)}}@keyframes keyRing{0%,16%,to{opacity:0}3%,12%{opacity:1}}.v-side{min-height:1.3em;color:var(--ink-3);font-size:12px}.v-gestures{gap:10px;display:flex}.v-g{color:var(--ink-3);background:#ffffff8c;border-radius:999px;padding:6px 14px;font-size:14px;animation:3.2s step-end infinite gOn}.v-g-b{animation-delay:-1.6s}@keyframes gOn{0%{color:#2257d6;background:#fff;box-shadow:0 0 0 1px #2a6bf940}50%{color:var(--ink-3);box-shadow:none;background:#ffffff8c}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.speed-fill{transform-origin:0;animation:linear both drawX;animation-timeline:view();animation-range:entry 20% cover 40%}}}.releases-page{padding:clamp(140px,14vw,180px) 0 clamp(64px,8vw,112px)}.releases-page h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.4rem,4.4vw,3.6rem);font-weight:300;line-height:1.06}.releases-wrap{max-width:calc(900px + 2 * var(--gutter))}.releases{margin:clamp(32px,4vw,52px) 0 0;padding:0;list-style:none;position:relative}.releases:before{content:"";background:linear-gradient(180deg, var(--blue-text), var(--line) 30%);width:1px;position:absolute;top:10px;bottom:10px;left:6px}.release{grid-template-columns:200px minmax(0,1fr);gap:8px 32px;padding:0 0 clamp(28px,3.4vw,40px) 36px;display:grid;position:relative}.release:before{content:"";background:var(--night);width:13px;height:13px;box-shadow:inset 0 0 0 1.5px var(--ink-3);border-radius:50%;position:absolute;top:6px;left:0}.release[data-latest]:before{background:var(--blue);box-shadow:0 0 0 4px #2a6bf940, inset 0 0 0 1.5px var(--blue)}.release-meta{align-content:start;gap:4px;display:grid}.release-v{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:22px;font-weight:400}.release-meta time{color:var(--ink-3);font-size:14px}.release-notes{gap:8px;margin:0;padding:0;list-style:none;display:grid}.release-notes li{color:var(--ink-2);padding-left:18px;font-size:16px;position:relative}.release-notes li:before{content:"";background:var(--sky);width:6px;height:1.5px;position:absolute;top:.68em;left:0}@media (max-width:860px){.redo-grid,.st{grid-template-columns:minmax(0,1fr)}.redo-section[data-scroll] .redo-track{height:auto}.redo-section[data-scroll] .redo-sticky{min-height:0;position:static}.st-stage{min-height:340px}.release{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.v-caret,.st .st-prog-fill,.v,.v *,.v :after,.od .vw{animation:none!important}.od[data-js] .vw{opacity:1}.od .od-slash{stroke-dashoffset:0}.od .od-wifi :is(g,circle){opacity:.4}}
