.streetSpeedSurface{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ssc-bg:#f4f4ef;--ssc-surface:#fff;--ssc-text:#17201b;--ssc-muted:#657069;--ssc-border:#d9ded9;--ssc-accent:#226c4d;--ssc-accent-soft:#e8f2ec;--ssc-line-a:#ffd34d;--ssc-line-b:#61d7ff;--ssc-danger:#a53232;min-height:100vh;color:var(--ssc-text);background:radial-gradient(circle at top right, #226c4d14, transparent 28rem), var(--ssc-bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif}.streetSpeedSurface *,.streetSpeedSurface :before,.streetSpeedSurface :after{box-sizing:border-box}.streetSpeedSurface button,.streetSpeedSurface input{font:inherit}.streetSpeedSurface button{-webkit-tap-highlight-color:transparent}.streetSpeedSurface .pageShell{width:min(100% - 28px,760px);margin:0 auto;padding:42px 0 72px}.streetSpeedSurface .hero{padding:12px 2px 24px}.streetSpeedSurface .eyebrow{color:var(--ssc-accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}.streetSpeedSurface .hero h1{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,8vw,3.4rem);line-height:1.06}.streetSpeedSurface .lead{margin:18px 0 8px;font-size:clamp(1.2rem,4vw,1.55rem);font-weight:750}.streetSpeedSurface .supporting{color:var(--ssc-muted);margin:0;line-height:1.75}.streetSpeedSurface .privacyNote{background:var(--ssc-accent-soft);border:1px solid #c9ddd1;border-radius:16px;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;padding:14px 16px;font-size:.9rem;display:flex}.streetSpeedSurface .privacyNote span{color:#476052}.streetSpeedSurface .card{border:1px solid var(--ssc-border);background:#ffffffeb;border-radius:22px;margin-top:14px;padding:20px;box-shadow:0 10px 35px #1f2e250d}.streetSpeedSurface .sectionHeading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.streetSpeedSurface .sectionHeading>div{align-items:center;gap:10px;display:flex}.streetSpeedSurface .sectionHeading h2{margin:0;font-size:1.04rem}.streetSpeedSurface .step{background:var(--ssc-text);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.78rem;font-weight:800;display:inline-grid}.streetSpeedSurface .fileBadge{text-overflow:ellipsis;white-space:nowrap;max-width:45%;color:var(--ssc-muted);font-size:.8rem;overflow:hidden}.streetSpeedSurface .muted{color:var(--ssc-muted);font-size:.85rem}.streetSpeedSurface .filePicker{cursor:pointer;text-align:center;background:#fbfcfa;border:1.5px dashed #aeb8b1;border-radius:16px;place-items:center;gap:5px;min-height:118px;padding:20px;display:grid}.streetSpeedSurface .filePicker input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.streetSpeedSurface .filePicker span{color:var(--ssc-accent);font-weight:800}.streetSpeedSurface .filePicker small{max-width:34rem;color:var(--ssc-muted);line-height:1.5}.streetSpeedSurface .modeGrid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.streetSpeedSurface .modeCard{border:1px solid var(--ssc-border);min-height:112px;color:var(--ssc-text);cursor:pointer;text-align:left;background:#fbfcfa;border-radius:15px;gap:7px;padding:16px;display:grid}.streetSpeedSurface .modeCard strong{font-size:.95rem}.streetSpeedSurface .modeCard span{color:var(--ssc-muted);font-size:.8rem;line-height:1.5}.streetSpeedSurface .modeCard.active{border-color:var(--ssc-accent);background:var(--ssc-accent-soft);outline:2px solid #226c4d29}.streetSpeedSurface .videoStage{touch-action:none;background:#1a1e1b;border-radius:15px;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.streetSpeedSurface .videoStage.portrait{width:min(100%,430px);margin-inline:auto}.streetSpeedSurface .videoStage video{object-fit:fill;background:#101310;width:100%;height:100%}.streetSpeedSurface .emptyStage{color:#aab2ad;text-align:center;place-items:center;gap:8px;display:grid}.streetSpeedSurface .emptyStage span{font-size:2.2rem}.streetSpeedSurface .emptyStage p{margin:0;font-size:.9rem}.streetSpeedSurface .detectionBox{z-index:2;pointer-events:none;border:3px solid #ff7849;border-radius:6px;position:absolute;box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #ffffff59}.streetSpeedSurface .detectionBox span{color:#171713;white-space:nowrap;background:#ff7849;border-radius:6px 6px 6px 0;padding:5px 7px;font-size:.7rem;font-weight:900;position:absolute;top:-30px;left:-3px;box-shadow:0 2px 8px #00000040}.streetSpeedSurface .measurementLine{z-index:3;cursor:ew-resize;touch-action:none;background:0 0;border:0;width:36px;padding:0;position:absolute;top:0;bottom:0;transform:translate(-50%)}.streetSpeedSurface .measurementLine:before{content:"";background:var(--ssc-line-a);border-radius:3px;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #00000038}.streetSpeedSurface .measurementLine.lineB:before{background:var(--ssc-line-b)}.streetSpeedSurface .measurementLine span{background:var(--ssc-line-a);color:#1b1b15;white-space:nowrap;border-radius:7px;padding:5px 7px;font-size:.66rem;font-weight:900;position:absolute;top:9px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.streetSpeedSurface .measurementLine.lineB span{background:var(--ssc-line-b)}.streetSpeedSurface .gateOverlay{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.streetSpeedSurface .gateLine{stroke-width:3px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px #000000b3)}.streetSpeedSurface .gateLine.gateA{stroke:var(--ssc-line-a)}.streetSpeedSurface .gateLine.gateB{stroke:var(--ssc-line-b)}.streetSpeedSurface .gateHandle{stroke:#17201b;stroke-width:1.1px;vector-effect:non-scaling-stroke;cursor:grab;pointer-events:all;touch-action:none}.streetSpeedSurface .gateHandle:active{cursor:grabbing}.streetSpeedSurface .gateHandle.gateA{fill:var(--ssc-line-a)}.streetSpeedSurface .gateHandle.gateB{fill:var(--ssc-line-b)}.streetSpeedSurface .gateLabel{z-index:3;color:#131713;pointer-events:none;border-radius:50%;place-items:center;width:25px;height:25px;font-size:.72rem;font-weight:900;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000040}.streetSpeedSurface .gateALabel{background:var(--ssc-line-a)}.streetSpeedSurface .gateBLabel{background:var(--ssc-line-b)}.streetSpeedSurface .lineHint{color:var(--ssc-muted);margin:10px 0 0;font-size:.78rem;line-height:1.55}.streetSpeedSurface .detectorPanel{background:#f8faf8;border:1px solid #d5d9d6;border-radius:14px;margin-top:14px;padding:14px}.streetSpeedSurface .detectorHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.streetSpeedSurface .detectorHeader>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.streetSpeedSurface .detectorHeader strong{font-size:.88rem}.streetSpeedSurface .detectorStatus{color:#536059;background:#e8ebe9;border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-size:.69rem;font-weight:800;display:inline-flex}.streetSpeedSurface .detectorStatus.loading{color:#70581c;background:#fff3d5}.streetSpeedSurface .detectorStatus.ready{background:var(--ssc-accent-soft);color:var(--ssc-accent)}.streetSpeedSurface .detectorStatus.error{color:var(--ssc-danger);background:#f8e3e3}.streetSpeedSurface .inferenceTime{color:var(--ssc-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.streetSpeedSurface .detectorActions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.streetSpeedSurface .detectorButton{border:1px solid var(--ssc-text);background:var(--ssc-text);color:#fff;cursor:pointer;border-radius:10px;min-height:40px;padding:8px 12px;font-size:.8rem;font-weight:800}.streetSpeedSurface .detectorButton.secondary{border-color:var(--ssc-border);color:var(--ssc-text);background:#fff}.streetSpeedSurface .detectorButton.secondary.active{border-color:var(--ssc-accent);background:var(--ssc-accent-soft);color:var(--ssc-accent)}.streetSpeedSurface .detectorButton:disabled{opacity:.45;cursor:not-allowed}.streetSpeedSurface .detectorNote,.streetSpeedSurface .detectorResult,.streetSpeedSurface .detectorError{margin:10px 0 0;font-size:.75rem;line-height:1.55}.streetSpeedSurface .detectorNote,.streetSpeedSurface .detectorResult{color:var(--ssc-muted)}.streetSpeedSurface .detectorError{color:var(--ssc-danger);font-weight:650}.streetSpeedSurface .videoControls{grid-template-columns:1fr 1.2fr 1fr;gap:8px;margin-top:16px;display:grid}.streetSpeedSurface .videoControls button{border:1px solid var(--ssc-border);min-height:46px;color:var(--ssc-text);background:#fff;border-radius:12px;font-weight:750}.streetSpeedSurface .videoControls button:disabled{opacity:.4;cursor:not-allowed}.streetSpeedSurface .playButton{background:var(--ssc-text)!important;color:#fff!important;border-color:var(--ssc-text)!important}.streetSpeedSurface .timelineRow{grid-template-columns:60px 1fr 60px;align-items:center;gap:10px;margin-top:14px;display:grid}.streetSpeedSurface .timelineRow span{color:var(--ssc-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.streetSpeedSurface .timelineRow span:last-child{text-align:right}.streetSpeedSurface .timelineRow input{width:100%;accent-color:var(--ssc-accent)}.streetSpeedSurface .frameNote{color:var(--ssc-muted);margin:10px 0 0;font-size:.75rem;line-height:1.55}.streetSpeedSurface .distanceField{display:block}.streetSpeedSurface .distanceField>span{color:var(--ssc-muted);margin-bottom:8px;font-size:.85rem;display:block}.streetSpeedSurface .distanceField>div{align-items:center;gap:10px;display:flex}.streetSpeedSurface .distanceField input{background:#fff;border:1px solid #aeb8b1;border-radius:12px;width:min(220px,80%);min-height:48px;padding:8px 12px;font-size:1.25rem;font-weight:750}.streetSpeedSurface .distanceField input[aria-invalid=true]{border-color:var(--ssc-danger);outline-color:var(--ssc-danger)}.streetSpeedSurface .mutedText,.streetSpeedSurface .error{margin:8px 0 0;font-size:.8rem}.streetSpeedSurface .mutedText{color:var(--ssc-muted)}.streetSpeedSurface .error{color:var(--ssc-danger);font-weight:650}.streetSpeedSurface .nextStep{color:var(--ssc-muted);margin-top:20px;padding:8px 4px;font-size:.84rem;line-height:1.6}.streetSpeedSurface .nextStep span{color:var(--ssc-accent);font-weight:800}.streetSpeedSurface .nextStep p{margin:4px 0 0}@media (max-width:520px){.streetSpeedSurface .pageShell{width:min(100% - 20px,760px);padding-top:26px}.streetSpeedSurface .card{border-radius:18px;padding:15px}.streetSpeedSurface .hero h1{max-width:12ch}.streetSpeedSurface .modeGrid{grid-template-columns:1fr}.streetSpeedSurface .modeCard{min-height:88px}.streetSpeedSurface .detectorActions{grid-template-columns:1fr;display:grid}.streetSpeedSurface .detectorButton{width:100%}.streetSpeedSurface .videoControls{grid-template-columns:1fr 1fr 1fr}.streetSpeedSurface .videoControls button{font-size:.8rem}.streetSpeedSurface .timelineRow{grid-template-columns:54px 1fr 54px;gap:6px}.streetSpeedSurface .fileBadge{display:none}}
.streetSpeedSurface .measurementCard{margin-top:14px}.streetSpeedSurface .measurementActions{flex-wrap:wrap;gap:8px;display:flex}.streetSpeedSurface .measurementButton{border:1px solid var(--ssc-text);background:var(--ssc-text);color:#fff;cursor:pointer;border-radius:12px;min-height:44px;padding:10px 14px;font-weight:800}.streetSpeedSurface .measurementButton.secondary{border-color:var(--ssc-border);color:var(--ssc-text);background:#fff}.streetSpeedSurface .measurementButton:disabled{opacity:.45;cursor:not-allowed}.streetSpeedSurface .measurementStatus{color:var(--ssc-muted);margin:12px 0 0;font-size:.82rem;line-height:1.55}.streetSpeedSurface .measurementStatus strong{color:var(--ssc-text)}.streetSpeedSurface .measurementError{color:var(--ssc-danger);margin:12px 0 0;font-size:.82rem;font-weight:700;line-height:1.55}.streetSpeedSurface .measurementProgress{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.streetSpeedSurface .measurementProgress>div{border:1px solid var(--ssc-border);background:#fbfcfa;border-radius:12px;padding:10px 12px}.streetSpeedSurface .measurementProgress span{color:var(--ssc-muted);font-size:.7rem;display:block}.streetSpeedSurface .measurementProgress strong{font-variant-numeric:tabular-nums;margin-top:4px;font-size:.92rem;display:block}.streetSpeedSurface .speedResult{background:var(--ssc-accent-soft);border:1px solid #c9ddd1;border-radius:16px;margin-top:14px;padding:16px}.streetSpeedSurface .speedResultValue{color:var(--ssc-accent);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,8vw,3.2rem);font-weight:900}.streetSpeedSurface .speedResultGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.streetSpeedSurface .speedResultGrid>div{background:#ffffffb8;border-radius:10px;padding:9px 10px}.streetSpeedSurface .speedResultGrid span{color:var(--ssc-muted);font-size:.67rem;display:block}.streetSpeedSurface .speedResultGrid strong{font-variant-numeric:tabular-nums;margin-top:3px;font-size:.82rem;display:block}.streetSpeedSurface .representativePoint{z-index:4;pointer-events:none;background:#ff7849;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #00000073}@media (max-width:520px){.streetSpeedSurface .measurementActions{grid-template-columns:1fr;display:grid}.streetSpeedSurface .measurementButton{width:100%}.streetSpeedSurface .measurementProgress{grid-template-columns:1fr}.streetSpeedSurface .speedResultGrid{grid-template-columns:1fr 1fr}}
