.nav{z-index:20;background:var(--paper);border-bottom:2px solid var(--rule-2);align-items:center;gap:14px;height:72px;margin:0 -20px;padding:0 20px;display:flex;position:sticky;top:0}.logo{letter-spacing:-.03em;color:var(--teal);align-items:center;gap:9px;font-size:29px;font-weight:900;display:flex}.logo svg{width:34px;height:34px;display:block}.navspace{margin-left:auto}.navtag{letter-spacing:.05em;text-transform:uppercase;color:var(--faint);font-size:13.5px;font-weight:700}.nav .navcta,.nav.stuck .navtag{display:none}.nav.stuck .navcta{width:150px;height:42px;animation:navin .28s var(--ease) both;font-size:13.5px;display:inline-flex}@keyframes navin{0%{opacity:0;transform:translateY(-9px)}}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:min(84vh,700px);padding:30px 0 10px;display:flex}.art svg{width:100%;height:auto;display:block;overflow:visible}.hero .art{width:100%;max-width:700px;margin-bottom:26px}.hero h1{letter-spacing:-.025em;max-width:620px;color:var(--ink);margin:0;font-size:clamp(30px,3.8vw,46px);font-weight:800;line-height:1.18}.hero .sub{color:var(--muted);max-width:46ch;margin:16px 0 0;font-size:18px}.btns{gap:14px;margin-top:34px;display:flex}.btns .btn{width:240px}@media (width<=620px){.btns{flex-direction:column;width:100%}.btns .btn{width:100%}}.railwrap{border-top:2px solid var(--rule-2);border-bottom:2px solid var(--rule-2);align-items:center;gap:2px;margin:0 -20px;padding:0 6px;display:flex;position:relative}.rail{scrollbar-width:none;scroll-behavior:smooth;flex:1;align-items:center;gap:26px;min-width:0;padding:16px 10px;display:flex;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.railbtn{cursor:pointer;width:36px;height:36px;color:var(--faint);background:0 0;border:none;border-radius:50%;flex:none;place-items:center;padding:0;transition:color .15s,background .15s;display:grid}.railbtn:hover{color:var(--ink);background:var(--panel-2)}.railbtn svg{width:20px;height:20px}.railbtn.off{visibility:hidden;pointer-events:none}.railwrap:before,.railwrap:after{content:"";pointer-events:none;z-index:1;width:34px;position:absolute;top:2px;bottom:2px}.railwrap:before{background:linear-gradient(90deg, var(--paper), transparent);left:42px}.railwrap:after{background:linear-gradient(270deg, var(--paper), transparent);right:42px}.railwrap.at-start:before,.railwrap.at-end:after{opacity:0}@media (prefers-reduced-motion:reduce){.rail{scroll-behavior:auto}}.course{white-space:nowrap;align-items:center;gap:11px;display:inline-flex}.course .flag{border-radius:4px;flex:none;width:40px;height:30px;display:block}.course b{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:15px;font-weight:700}.prow{grid-template-columns:1fr 1fr;align-items:center;gap:56px;min-height:min(62vh,530px);display:grid}.prow:nth-of-type(2n) .art{order:-1}.prow h2{letter-spacing:-.02em;color:var(--teal);margin:0 0 16px;font-size:clamp(32px,4.4vw,48px);font-weight:800;line-height:1.16}.prow p{color:var(--ink);max-width:460px;margin:0;font-size:17px;line-height:1.55}.bigsec{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:min(70vh,600px);display:flex}.bigsec h2{letter-spacing:-.025em;max-width:620px;color:var(--navy);margin:0;font-size:clamp(34px,5vw,60px);font-weight:800;line-height:1.1}.bigsec p{color:var(--ink);max-width:520px;margin:0;font-size:17px}.bigsec .art{width:100%;max-width:720px;margin-top:10px}.ctablock{text-align:center;flex-direction:column;align-items:center;gap:26px;padding-top:80px;display:flex}.ctablock h2{color:var(--teal);letter-spacing:-.025em;max-width:600px;margin:0;font-size:clamp(34px,5vw,60px);font-weight:800;line-height:1.1}.ctablock .btns{margin-top:0}.ctablock .art{width:100%;max-width:820px;margin-bottom:-46px}.bleed{width:100vw;margin-left:calc(50% - 50vw)}.wave svg{width:100%;height:clamp(64px,8vw,122px);display:block}.foot{background:var(--teal);color:#fff;margin-top:-2px;padding:18px 0 46px}.foot .inner{max-width:948px;margin:0 auto;padding:0 20px}.fcols{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px 20px;display:grid}.fcol h3{color:#fff;margin:0 0 14px;font-size:17px;font-weight:800}.fcol span{color:#ffffffc7;margin-bottom:10px;font-size:15px;font-weight:600;display:block}.fdiv{background:#ffffff4d;height:2px;margin:34px 0 22px}.flangs b{margin-bottom:12px;font-size:15px;font-weight:800;display:block}.flangs .list{flex-wrap:wrap;gap:10px 22px;display:flex}.flangs .list span{color:#fffc;font-size:14.5px;font-weight:600}.notes{flex-direction:column;gap:40px;padding:64px 0 90px;display:flex}.lab{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0 0 6px;font-size:11px}.notes h2{letter-spacing:-.02em;color:var(--ink);margin:0 0 10px;font-size:30px;font-weight:800}.notes p{color:var(--muted);max-width:72ch;margin:0;font-size:16px}.spec{border-collapse:collapse;width:100%;font-size:15px}.spec th{text-align:left;font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--rule);padding:0 14px 8px 0;font-size:10.5px;font-weight:500}.spec td{border-bottom:1px solid var(--rule-2);color:var(--muted);vertical-align:top;padding:10px 14px 10px 0}.spec td:first-child{color:var(--ink);font-weight:700}.spec code{font-family:var(--f-mono);color:var(--ink);font-size:13px}.specwrap{overflow-x:auto}.callout{background:var(--panel-2);border-radius:18px;flex-direction:column;gap:9px;padding:22px 24px;display:flex}.callout h3{color:var(--ink);margin:0;font-size:20px;font-weight:800}.callout p{font-size:15.5px}.srcs{flex-direction:column;gap:6px;font-size:13.5px;display:flex}.srcs a{color:var(--muted)}.fl{animation:fl 3.67s var(--ease) infinite;transform-box:fill-box;transform-origin:50%}@keyframes fl{0%,to{transform:translateY(0) rotate(var(--r0,0deg))}50%{transform:translateY(calc(-1 * var(--dy,20px))) rotate(var(--rot,0deg))}}.slide{animation:slide 3.67s var(--ease) infinite;transform-box:fill-box}@keyframes slide{0%,to{transform:translate(0)}50%{transform:translateX(var(--dx,4px))}}.m-float,.m-squash,.m-eyes,.m-pupils,.m-mouth,.m-tail,.m-hand{transform-box:fill-box}.m-float{animation:mfloat 3.67s var(--ease) infinite}.m-squash{animation:msquash 3.67s var(--ease) infinite;transform-origin:50% 94%}.m-eyes{transform-origin:50%;animation:5.4s ease-in-out infinite mblink}.m-pupils{animation:7.2s ease-in-out infinite mlook}.m-mouth{transform-origin:50% 24%;animation:6s ease-in-out infinite mtalk}.m-tail{animation:mtail 3.67s var(--ease) infinite;transform-origin:88% 4%}.m-hand{animation:mwave 3.67s var(--ease) infinite;transform-origin:18% 82%}@keyframes mfloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes msquash{0%,to{transform:scale(1)}25%{transform:scale(1.035,.965)}50%{transform:scale(.978,1.022)}75%{transform:scale(1.022,.978)}}@keyframes mblink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.07)}}@keyframes mlook{0%,16%{transform:translate(0)}28%,44%{transform:translate(5px)}56%,72%{transform:translate(-5px)}84%,to{transform:translate(0)}}@keyframes mtalk{0%,60%,to{transform:scaleY(.34)}64%{transform:scaleY(1)}68%{transform:scaleY(.42)}72%{transform:scaleY(.92)}76%{transform:scaleY(.36)}80%{transform:scaleY(.86)}84%{transform:scaleY(.34)}}@keyframes mtail{0%,to{transform:rotate(0)}50%{transform:rotate(-6deg)}}.m-point,.m-head,.m-ring{transform-box:fill-box}.m-point{animation:mpoint 3.83s var(--ease) infinite;transform-origin:8% 88%}.m-head{animation:mhead 3.83s var(--ease) infinite;transform-origin:50% 100%}.m-ring{animation:mring 3.83s var(--ease) infinite;transform-origin:50%}@keyframes mpoint{0%,22%{transform:rotate(0)}48%{transform:rotate(-12deg)}74%{transform:rotate(2deg)}to{transform:rotate(0)}}@keyframes mhead{0%,22%{transform:translateY(0)rotate(0)}48%{transform:translateY(-2px)rotate(1deg)}to{transform:translateY(0)rotate(0)}}.p-hop,.p-sway,.p-tumble{transform-box:fill-box}.p-hop{transform-origin:50% 100%;animation:.77s ease-in-out infinite phop}.p-sway{transform-origin:50% 100%;animation:.77s ease-in-out infinite psway}.p-tumble{transform-origin:50%;animation:1.32s ease-in-out infinite ptumble}@keyframes phop{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.01)}}@keyframes psway{0%,to{transform:rotate(-3.9deg)}50%{transform:rotate(3.8deg)}}@keyframes ptumble{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-21px)rotate(53deg)}}.s-bounce,.s-flame,.s-dust,.s-card{transform-box:fill-box}.s-bounce{transform-origin:50% 100%;animation:.67s cubic-bezier(.32,0,.5,1) infinite sbounce}.s-flame{transform-origin:50% 100%;animation:.67s ease-in-out infinite sflame}.s-dust{transform-origin:50% 100%;animation:.67s ease-out infinite sdust}.s-card{animation:scard 3.71s var(--ease) infinite;transform-origin:50% 100%}@keyframes sbounce{0%{transform:translateY(0)scale(1.12,.88)}16%{transform:translateY(-16px)scale(.93,1.09)}50%{transform:translateY(-52px)scale(1)}84%{transform:translateY(-16px)scale(.95,1.07)}to{transform:translateY(0)scale(1.12,.88)}}@keyframes sflame{0%,to{transform:scaleX(.96)rotate(-3deg)}50%{transform:scale(1.04,1.13)rotate(3deg)}}@keyframes sdust{0%{opacity:.55;transform:scale(.3)}40%{opacity:0;transform:scale(1.5)}to{opacity:0;transform:scale(1.5)}}@keyframes scard{0%,to{transform:rotate(0)}50%{transform:rotate(-1.6deg)}}.j-jump,.j-shadow,.t-bob{transform-box:fill-box}.j-jump{transform-origin:50% 100%;animation:1.1s cubic-bezier(.33,0,.5,1) infinite jjump}.j-shadow{transform-origin:50%;animation:1.1s cubic-bezier(.33,0,.5,1) infinite jshadow}.t-bob{animation:tbob 3.71s var(--ease) infinite}@keyframes jjump{0%{transform:translateY(0)scale(1.14,.86)}14%{transform:translateY(-24px)scale(.93,1.11)}50%{transform:translateY(-70px)scale(1)}86%{transform:translateY(-24px)scale(.95,1.09)}to{transform:translateY(0)scale(1.14,.86)}}.b-lens,.b-slow,.b-rise{transform-box:fill-box}.b-lens{transform-origin:50% 10%;animation:.87s ease-in-out infinite blens}.b-slow{transform-origin:50% 100%;animation:11.7s ease-in-out infinite bslow}.b-rise{transform-origin:50% 100%;animation:2.4s ease-out infinite brise}@keyframes blens{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(4px,9px)rotate(-6deg)}}@keyframes bslow{0%,to{transform:translate(0)rotate(-3deg)}50%{transform:translate(8px,6px)rotate(7deg)}}.a-float,.a-flip{transform-box:fill-box;transform-origin:50%}.a-float{animation:10.33s ease-in-out infinite afloat}.a-flip{animation:10.33s ease-in-out infinite aflip}.p-fly,.p-drift{transform-box:fill-box;transform-origin:50%}.p-fly{animation:4.97s ease-in-out infinite pfly}.p-drift{animation:3.34s ease-in-out infinite pdrift}.p-ring{transform-box:fill-box;transform-origin:50%;animation:9.6s linear infinite pring}@keyframes pring{to{transform:rotate(360deg)}}@keyframes pfly{0%{opacity:0;transform:translate(0)rotate(-25deg)scale(.6)}14%{opacity:1;transform:translate(calc(var(--fx) * .14), calc(var(--fy) * .14 - 26px)) rotate(-12deg) scale(1)}50%{transform:translate(calc(var(--fx) * .5), calc(var(--fy) * .5 - 38px)) rotate(4deg) scale(1.08)}86%{opacity:1;transform:translate(calc(var(--fx) * .86), calc(var(--fy) * .86 - 14px)) rotate(18deg) scale(1)}to{transform:translate(var(--fx), var(--fy)) rotate(25deg) scale(.6);opacity:0}}@keyframes pdrift{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(var(--dx,14px), var(--dy,-22px)) rotate(var(--r1,10deg))}}@keyframes afloat{0%,to{transform:translate(0, 0) rotate(var(--r0,0deg))}50%{transform:translate(var(--dx,8px), var(--dy,-22px)) rotate(var(--r1,18deg))}}@keyframes aflip{0%,to{transform:scaleX(1)}46%{transform:scaleX(.42)}54%{transform:scaleX(.42)}}.e-swing,.e-rise{transform-box:fill-box;transform-origin:50%}.e-swing{animation:eswing 3.83s var(--ease) infinite}.e-rise{animation:erise 3.83s var(--ease) infinite}@keyframes eswing{0%,23%{transform:rotate(0)translateY(0)}48%{transform:rotate(-12deg)translateY(-6px)}74%{transform:rotate(3deg)translateY(-2px)}to{transform:rotate(0)translateY(0)}}@keyframes erise{0%,23%{transform:translateY(0)}48%{transform:translateY(-9px)}to{transform:translateY(0)}}@keyframes brise{0%{opacity:0;transform:translateY(8px)scale(.4)}22%{opacity:1}to{opacity:0;transform:translateY(-34px)scale(1)}}@keyframes jshadow{0%,to{opacity:.22;transform:scale(1)}50%{opacity:.07;transform:scale(.48)}}@keyframes tbob{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.belt{transform-box:fill-box;animation:4.4s linear infinite belt}@keyframes belt{0%{transform:translate(0)}to{transform:translate(-528px,-260px)}}.f-out,.f-in,.f-bar{animation-duration:4.4s;animation-timing-function:step-end;animation-iteration-count:infinite}.f-out{animation-name:flitOut}.f-in{animation-name:flitIn}.f-bar{animation-name:flitBar}@keyframes flitOut{0%{fill:#d4483d}38%{fill:#aebbcb}}@keyframes flitIn{0%{fill:#f0a01c}38%{fill:#d3dbe4}}@keyframes flitBar{0%{fill:#12b3a1}38%{fill:#e3eaf2}}@keyframes mring{0%,34%{opacity:0;transform:scale(.4)}52%{opacity:.55;transform:scale(1)}68%,to{opacity:0;transform:scale(1.5)}}@keyframes mwave{0%,to{transform:rotate(-6deg)}50%{transform:rotate(12deg)}}@media (width<=880px){.stage{grid-template-columns:1fr;padding:22px 16px}}@media (width<=820px){.hero{grid-template-columns:1fr;gap:6px;min-height:0;padding:34px 0 10px}.hero .art{order:-1;max-width:380px;margin:0 auto}.prow,.prow:nth-of-type(2n){grid-template-columns:1fr;gap:14px;min-height:0;padding:44px 0}.prow .art,.prow:nth-of-type(2n) .art{order:-1;max-width:340px}.bigsec{min-height:0;padding:44px 0}.ctablock{padding-top:44px}.btns{width:100%}}.navtag{align-items:center;gap:8px;display:flex}.navtag select{font:inherit;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--paper);border:2px solid var(--rule);cursor:pointer;border-radius:10px;padding:6px 8px;font-size:13.5px;font-weight:800}.navtag select:hover{background:var(--panel-2)}@media (width<=620px){.navtag{font-size:12px}.navtag select{padding:5px 6px}}
