:root{--paper:#F7F9FC;--sand:#E6EDF6;--rake:#DAE3EF;--blue:#1565D8;--blue-deep:#0F4FAE;--navy:#0A1A3A;--muted:#46557A;--line:#CFDAEA;--pin:#F5B400;--head:"Bricolage Grotesque",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden}body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;font-family:var(--head);font-weight:500;color:var(--navy);background:radial-gradient(ellipse 60% 48% at 50% 38%,#FFF 0,rgba(255,255,255,.85) 45%,rgba(255,255,255,0) 100%),repeating-radial-gradient(circle at 8% 92%,transparent 0 26px,var(--rake) 26px 27px),repeating-radial-gradient(circle at 94% 6%,transparent 0 26px,var(--rake) 26px 27px),var(--sand)}.stage{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;width:100%;max-width:1100px;margin:0 auto;padding:14px 16px 10px;text-align:center;overflow:hidden}.brand img{display:block;height:clamp(30px,5svh,42px);width:auto}.board{position:relative;margin:clamp(6px,1.6svh,16px) 0 clamp(6px,1.4svh,14px);width:min(100%,540px,calc((100svh - 350px) * 1.43));min-width:260px}.board svg{display:block;width:100%;height:auto;overflow:visible}.copy{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.5svh,14px);max-width:640px}.steps{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:clamp(.7rem,2.6vw,.8rem);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px}.steps b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--pin);color:var(--navy);font-weight:500;font-size:.72rem}.steps i{font-style:normal;color:var(--blue)}h1{font-weight:800;font-size:clamp(1.6rem,4.6vw,2.9rem);line-height:1.04;letter-spacing:-.02em;color:var(--navy);max-width:18ch}h1 em{font-style:normal;color:var(--blue)}.lede{font-size:clamp(.95rem,2.2vw,1.12rem);line-height:1.42;color:var(--muted);max-width:44ch}.cta{display:inline-flex;align-items:center;gap:12px;margin-top:2px;font-family:var(--head);font-weight:800;font-size:clamp(1.05rem,2.4vw,1.2rem);color:#fff;text-decoration:none;background:var(--blue);border-radius:12px;padding:clamp(13px,2svh,16px) 22px clamp(13px,2svh,16px) 26px;box-shadow:0 10px 24px -10px rgba(21,101,216,.7),inset 0 -3px 0 rgba(0,0,0,.14);transition:transform .15s ease,background-color .15s ease}.cta:hover{background:var(--blue-deep);transform:translateY(-1px)}.cta:focus-visible{outline:3px solid var(--pin);outline-offset:3px}.cta svg{width:20px;height:20px;animation:nudge 3.2s ease-in-out infinite}.fine{font-family:var(--mono);font-size:clamp(.7rem,2.4vw,.78rem);color:var(--muted);letter-spacing:.02em}footer{width:100%;padding:14px 16px 16px;text-align:center;font-family:var(--mono);font-size:clamp(.68rem,2.2vw,.74rem);color:var(--muted)}.lbl{font-family:var(--mono);font-weight:500;letter-spacing:.06em}.callout{opacity:0;animation:fadein .5s ease forwards}.c1{animation-delay:.6s}.c2{animation-delay:1.2s}.sweep{transform-box:view-box;transform-origin:200px 130px;animation:spin 7s linear infinite}.pulse{transform-box:fill-box;transform-origin:center;animation:beat 2.5s ease-out infinite}.burst{transform-box:fill-box;transform-origin:center;opacity:0}.burst.on{animation:burst .7s ease-out}#stick{cursor:grab;touch-action:none}#stick:active{cursor:grabbing}#mapHit{cursor:crosshair}@keyframes spin{to{transform:rotate(360deg)}}@keyframes beat{0%{transform:scale(.6);opacity:.9}70%{transform:scale(2.4);opacity:0}100%{opacity:0}}@keyframes burst{0%{transform:scale(.3);opacity:1}100%{transform:scale(3);opacity:0}}@keyframes fadein{to{opacity:1}}@keyframes nudge{0%,70%,100%{transform:translateX(0)}80%{transform:translateX(5px)}90%{transform:translateX(0)}}@media(min-width:768px){.stage{padding-top:20px}.board{width:min(100%,540px,calc((100svh - 390px) * 1.43))}}@media(prefers-reduced-motion:reduce){.sweep,.pulse,.cta svg{animation:none}.sweep{opacity:0}.callout{animation:none;opacity:1}.burst.on{animation:none}}html,body{max-width:100%;overflow-x:clip}