:root{--red:#e30303;--black:#0a0a0a;--white:#fff;--grey-700:#3d3d3d;--grey-500:#6b6b6b;--grey-300:#c7c7c7;--grey-100:#f2f2f2;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--radius:10px;--space:16px;--tap:48px;--ease:cubic-bezier(.22, 1, .36, 1);--fast:.16s;--base:.32s;--slow:.56s;--sheet-radius:22px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--white);color:var(--black);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}img,svg{max-width:100%;display:block}h1,h2,h3,p,ol,ul{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--red);outline-offset:2px}.btn{width:100%;min-height:var(--tap);border-radius:var(--radius);cursor:pointer;border:0;justify-content:center;align-items:center;padding:12px 20px;font-size:17px;font-weight:600;display:inline-flex}.btn--primary{background:var(--red);color:var(--white)}.btn--secondary{background:var(--white);color:var(--black);box-shadow:inset 0 0 0 1.5px var(--black)}.btn:disabled{opacity:.5;cursor:default}.btn[aria-busy=true]{cursor:progress}@media (prefers-reduced-motion:no-preference){.btn{transition:transform var(--fast) var(--ease), filter var(--fast) var(--ease)}.btn:active:not(:disabled){transform:scale(.98)}}@media (hover:hover){.btn--primary:hover:not(:disabled){filter:brightness(.92)}}.link-btn{min-height:var(--tap);cursor:pointer;background:0 0;border:0;padding:0 4px;font-weight:600}.link-btn--red{color:var(--red)}.topbar{padding:calc(env(safe-area-inset-top) + 8px) var(--space) 8px;justify-content:space-between;align-items:center;display:flex}.topbar-start{align-items:center;gap:4px;display:flex}.topbar-back{width:var(--tap);height:var(--tap);color:var(--black);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-left:-12px;padding:0;display:grid}.topbar-back svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}@media (hover:hover){.topbar-back:hover{background:var(--grey-100)}}.topbar-home{min-height:var(--tap);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:flex}.topbar-home img{width:auto;height:22px}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:15px;font-weight:600}.field-box{border-radius:var(--radius);background:var(--white);box-shadow:inset 0 0 0 1.5px var(--grey-300);align-items:center;display:flex}.field-box:focus-within{box-shadow:inset 0 0 0 2px var(--black)}.field--error .field-box{box-shadow:inset 0 0 0 2px var(--red)}.field-lead{color:var(--grey-700);padding-left:14px;font-size:17px;font-weight:600}.field-input{min-width:0;height:52px;font:inherit;color:inherit;background:0 0;border:0;flex:1;padding:0 14px;font-size:17px}.field-input:focus-visible{outline:none}.field-input::placeholder{color:var(--grey-500)}.field-error,.field-hint{font-size:14px}.field-error{color:var(--red)}.field-hint{color:var(--grey-500)}.otp{flex-direction:column;gap:8px;display:flex}.otp-input{border-radius:var(--radius);background:var(--white);width:100%;height:64px;box-shadow:inset 0 0 0 1.5px var(--grey-300);font:600 28px/1 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.5em;text-align:center;color:inherit;border:0;padding:0 0 0 .5em}.otp-input:focus-visible{box-shadow:inset 0 0 0 2px var(--black);outline:none}.otp--error .otp-input{box-shadow:inset 0 0 0 2px var(--red)}.otp-resend{min-height:var(--tap);color:var(--grey-500);align-items:center;font-size:15px;display:flex}.otp-resend .link-btn{color:var(--red)}.notice{border-radius:var(--radius);background:var(--grey-100);gap:12px;padding:16px;display:flex}.notice-icon{width:20px;height:20px;fill:var(--black);flex:none;margin-top:1px}.notice--attention .notice-icon,.notice--problem .notice-icon{fill:var(--red)}.notice-icon path{fill:none;stroke:var(--white);stroke-width:2px;stroke-linecap:round}.notice-body{flex-direction:column;align-items:flex-start;gap:12px;min-width:0;display:flex}.notice-text{font-size:15px;line-height:1.45}.notice-action{min-height:var(--tap);border-radius:var(--radius);background:var(--white);box-shadow:inset 0 0 0 1.5px var(--black);cursor:pointer;border:0;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.notice-action svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.notice-ref{color:var(--grey-500);font-variant-numeric:tabular-nums;margin-top:-6px;font-size:12px}@media (prefers-reduced-motion:no-preference){.notice{animation:notice-in var(--base) var(--ease)}.notice-action{transition:background var(--fast) var(--ease), color var(--fast) var(--ease)}}@media (hover:hover){.notice-action:hover{background:var(--black);color:var(--white)}}@keyframes notice-in{0%{opacity:0;transform:translateY(-4px)}}.spinner{border:4px solid var(--grey-100);border-top-color:var(--red);border-radius:50%;width:40px;height:40px;display:inline-block}@media (prefers-reduced-motion:no-preference){.spinner{animation:.9s linear infinite spin}}@media (prefers-reduced-motion:reduce){.spinner{animation:1.6s ease-in-out infinite pulse}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}.modal{border-radius:var(--sheet-radius) var(--sheet-radius) 0 0;background:var(--white);width:100%;max-width:480px;max-height:92svh;color:var(--black);overscroll-behavior:contain;border:0;margin:auto auto 0;padding:0;overflow:auto}.modal::backdrop{background:#0a0a0a8c}.modal-inner{padding:24px var(--space) calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;gap:16px;display:flex}.modal-inner:focus{outline:none}.modal-title{letter-spacing:-.01em;font-size:22px;font-weight:800;line-height:1.2}.modal-footer{flex-direction:column;gap:8px;margin-top:4px;display:flex}@media (min-width:600px){.modal{border-radius:var(--sheet-radius);max-width:440px;margin:auto}.modal-inner{padding:28px}.modal--wide{max-width:min(960px,100% - 32px)}}@media (prefers-reduced-motion:no-preference){.modal[open]{animation:sheet-in var(--base) var(--ease)}.modal[open]::backdrop{animation:fade-in var(--base) var(--ease)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}}@keyframes fade-in{0%{opacity:0}}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:13px;font-weight:600;line-height:1.5;display:inline-flex}.badge--verified{background:var(--black);color:var(--white)}.badge--pending{box-shadow:inset 0 0 0 1.5px var(--grey-300);color:var(--grey-700)}.badge--problem{background:var(--red);color:var(--white)}.welcome{max-width:480px;margin:0 auto}.welcome-top,.welcome-cta{z-index:3;width:100%;max-width:480px;position:fixed;left:50%;transform:translate(-50%)}.welcome-top{padding:calc(env(safe-area-inset-top) + 8px) var(--space) 8px;background:linear-gradient(var(--white) 65%, #fff0);justify-content:space-between;align-items:center;display:flex;top:0}.welcome-logo{width:auto;height:22px}.welcome-cta{padding:72px var(--space) calc(env(safe-area-inset-bottom) + 16px);background:linear-gradient(#fff0, var(--white) 55%);pointer-events:none;bottom:0}.welcome-cta .btn{pointer-events:auto}.welcome-foot{padding:24px var(--space) calc(env(safe-area-inset-bottom) + 132px);text-align:center;color:var(--grey-500);font-size:13px}.story{--p:0;--fit:1.5;height:360svh;position:relative}.story-stage{--hint-off:clamp(0, calc(var(--p) / .05), 1);--bike-in:clamp(0, calc(var(--p) / .2), 1);--copy-a-out:clamp(0, calc((var(--p) - .14) / .1), 1);--copy-b-in:clamp(0, calc((var(--p) - .2) / .08), 1);--copy-b-out:clamp(0, calc((var(--p) - .36) / .08), 1);--copy-c-in:clamp(0, calc((var(--p) - .6) / .1), 1);--bike-back:clamp(0, calc((var(--p) - .3) / .25), 1);--phone-up:clamp(0, calc((var(--p) - .38) / .28), 1);--phone-near:clamp(0, calc((var(--p) - .66) / .24), 1);--frame-off:clamp(0, calc((var(--p) - .76) / .1), 1);--bike-in-e:calc(1 - (1 - var(--bike-in)) * (1 - var(--bike-in)));--phone-up-e:calc(1 - (1 - var(--phone-up)) * (1 - var(--phone-up)));--phone-near-e:calc(1 - (1 - var(--phone-near)) * (1 - var(--phone-near)));height:100svh;position:sticky;top:0;overflow:hidden}.story-copy{top:calc(env(safe-area-inset-top) + 84px);left:var(--space);right:var(--space);text-align:center;position:absolute}.story-copy h1,.story-copy h2{letter-spacing:-.02em;font-size:clamp(32px,9vw,44px);font-weight:800;line-height:1.05}.word-logo{vertical-align:-.11em;width:auto;height:.84em;margin-left:.04em;display:inline-block}.story-copy p{color:var(--grey-500);margin-top:12px}.story-copy--a{opacity:calc(1 - var(--copy-a-out));transform:translateY(calc(var(--copy-a-out) * -24px))}.story-copy--b{opacity:calc(var(--copy-b-in) - var(--copy-b-out));transform:translateY(calc((1 - var(--copy-b-in)) * 24px - var(--copy-b-out) * 24px))}.story-copy--c{display:none}.story-bike{width:min(92%,440px);height:auto;transform:translate(-50%, -50%) translateX(calc((1 - var(--bike-in-e)) * -68%)) translateY(calc(var(--bike-back) * -14svh)) scale(calc(1 - var(--bike-back) * .3));opacity:calc(1 - var(--bike-back));will-change:transform, opacity;background:radial-gradient(closest-side,#0a0a0a2e,#0a0a0a00) 50% 100%/88% 8% no-repeat;padding-bottom:2.5%;position:absolute;top:48%;left:50%}.story-hint{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 120px);letter-spacing:.04em;text-align:center;color:var(--grey-500);opacity:calc(1 - var(--hint-off));font-size:13px;position:absolute}.story-hint:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:8px;height:8px;margin:6px auto 0;display:block;transform:rotate(45deg)}.phone{z-index:2;aspect-ratio:9/19.5;width:min(68vw,300px);transform:translate(-50%, -50%) translateY(calc((1 - var(--phone-up-e)) * 75svh + (1 - var(--phone-near-e)) * 4svh)) scale(calc(.56 + var(--phone-up-e) * .16 + var(--phone-near-e) * (var(--fit) - .72)));font-size:calc(min(68vw,300px)/24);position:absolute;top:50%;left:50%}.phone-frame{background:var(--black);opacity:calc(1 - var(--frame-off));border-radius:15%/7%;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:0 30px 60px -20px #0a0a0a59}.phone-screen{background:var(--white);border-radius:12%/5.6%;position:absolute;top:.85em;bottom:.85em;left:.85em;right:.85em;overflow:hidden}.phone-status{height:3.2em;opacity:calc(1 - var(--frame-off));justify-content:space-between;align-items:center;padding:0 1.8em;font-size:.95em;font-weight:600;display:flex}.phone-island{background:var(--black);border-radius:1em;width:6.5em;height:1.9em}.phone-battery{background:var(--black);border-radius:.3em;width:2.2em;height:1em}.phone-body{padding:3.4em 1.7em 0}.phone-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--red);font-size:.85em;font-weight:700}.phone-body h2{letter-spacing:-.02em;margin-top:.4em;font-size:2em;font-weight:800;line-height:1.1}.phone-reasons{margin-top:1.2em;padding:0;list-style:none}.phone-reasons li{border-bottom:1px solid var(--grey-100);align-items:flex-start;gap:.8em;padding:.7em 0;display:flex}.phone-reasons h3{margin:0;font-size:1.05em;font-weight:700;line-height:1.3}.phone-reasons p{color:var(--grey-500);margin-top:.15em;font-size:.95em;line-height:1.4}.phone-tick{width:1.7em;height:1.7em;fill:var(--red);flex:none;margin-top:.05em}.phone-tick path{fill:none;stroke:var(--white);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.story-hint:after{animation:hint-bob 1.6s var(--ease) infinite}}@keyframes hint-bob{50%{translate:0 4px}}@keyframes bike-arrive{0%{opacity:0;translate:-6%}}@media (min-width:960px){.welcome{max-width:none}.welcome-top{max-width:none;padding:18px max(32px,50% - 600px)}.welcome-logo{height:28px}.welcome-cta{background:0 0;width:auto;max-width:none;padding:0;top:calc(50% + 104px);bottom:auto;left:max(32px,50% - 600px);transform:none}.welcome-cta .btn{width:auto;padding:14px 32px}.welcome-foot{padding:28px 32px}.story-copy{text-align:left;width:min(40%,500px);top:auto;bottom:calc(50% - 72px);left:max(32px,50% - 600px);right:auto}.story-copy h1,.story-copy h2{font-size:clamp(44px,4.6vw,68px)}.story-copy p{margin-top:16px;font-size:19px}.story-copy--b{transform:translateY(calc((1 - var(--copy-b-in)) * 24px));opacity:calc(var(--copy-b-in) - var(--copy-c-in))}.story-copy--c{opacity:var(--copy-c-in);transform:translateY(calc((1 - var(--copy-c-in)) * 24px));display:block}.story-bike{width:min(50vw,760px);transform:translate(-50%, -50%) translateY(calc(var(--bike-back) * -8svh)) scale(calc(1 - var(--bike-back) * .2));top:50%;left:70%}.story-hint{bottom:32px}.phone{width:min(300px,40svh);transform:translate(-50%, -50%) translateY(calc((1 - var(--phone-up-e)) * 75svh + (1 - var(--phone-near-e)) * 4svh)) scale(calc(.56 + var(--phone-up-e) * .16 + var(--phone-near-e) * .28));font-size:calc(min(300px,40svh)/24);left:70%}.phone-frame,.phone-status{opacity:1}}@media (min-width:960px) and (prefers-reduced-motion:no-preference){.story-bike{animation:bike-arrive var(--slow) var(--ease)}}@media (prefers-reduced-motion:reduce){.story{height:auto}.story-stage{height:auto;padding:calc(env(safe-area-inset-top) + 84px) var(--space) 40px;flex-direction:column;align-items:center;gap:40px;display:flex;position:static;overflow:visible}.story-copy,.story-bike{opacity:1;position:static;transform:none}.story-copy--c{display:none}.phone{position:relative;top:auto;left:auto;transform:none}.story-hint{display:none}.phone-frame,.phone-status{opacity:1}.welcome-cta{top:auto;bottom:0}}.screen{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex}.screen-main{padding:16px var(--space) calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;flex:1;gap:24px;display:flex}.screen-main h1{letter-spacing:-.02em;font-size:clamp(28px,7.5vw,36px);font-weight:800;line-height:1.1}.screen-lead{color:var(--grey-500);margin-top:8px}.screen-lead strong{color:var(--black)}.screen-lead+.link-btn{padding:0}.screen-form{flex-direction:column;gap:18px;display:flex}.steps{letter-spacing:.02em;color:var(--grey-500);flex-direction:column;gap:8px;font-size:13px;font-weight:600;display:flex}.steps-bar{background:var(--grey-100);border-radius:2px;height:4px;overflow:hidden}.steps-bar span{background:var(--red);height:100%;transform:scaleX(var(--progress));transform-origin:0;display:block}.details{border-radius:var(--radius);background:var(--grey-100);margin:0;padding:4px 16px}.details-row{grid-template-columns:104px 1fr;gap:12px;padding:12px 0;display:grid}.details-row+.details-row{border-top:1.5px solid var(--white)}.details dt{color:var(--grey-500);font-size:14px}.details dd{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.handoff-intro{color:var(--grey-700);font-size:15px;line-height:1.45}.handoff-list{flex-direction:column;gap:14px;padding:0;list-style:none;display:flex}.handoff-list li{gap:12px;display:flex}.handoff-list svg{width:20px;height:20px;fill:var(--red);flex:none;margin-top:1px}.handoff-list path{fill:none;stroke:var(--white);stroke-width:2px;stroke-linecap:round}.handoff-list div{flex-direction:column;gap:2px;display:flex}.handoff-list strong{font-size:15px;line-height:1.35}.handoff-list span{color:var(--grey-500);font-size:14px;line-height:1.4}.handoff-note{color:var(--grey-500);text-align:center;font-size:13px;line-height:1.4}@media (min-width:960px){.screen{grid-template-rows:auto 1fr;grid-template-columns:1fr minmax(380px,440px);column-gap:72px;max-width:none;padding:0 max(32px,50% - 600px);display:grid}.screen>.topbar{grid-column:1/-1;padding-inline-start:0;padding-inline-end:0}.screen:before{content:"";background:url(/img/bike.webp) 50%/contain no-repeat;grid-row:2;align-self:start;height:calc(100svh - 160px);position:sticky;top:80px}.screen-main{grid-area:2/2;justify-content:center;padding:32px 0 64px}}.outcome{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.outcome-icon{width:48px;height:48px}.outcome-icon--done circle,.outcome-icon--info circle{fill:var(--black)}.outcome-icon--warn circle{fill:var(--red)}.outcome-icon path{fill:none;stroke:var(--white);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:no-preference){.outcome-icon--done{animation:outcome-pop var(--slow) var(--ease)}}@keyframes outcome-pop{0%{opacity:0;transform:scale(.6)}}
