:root{--text:#4b5563;--text-h:#0f172a;--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--accent:#4f46e5;--accent-contrast:#fff;--positive:#059669;--negative:#dc2626;--attention:#d97706;--zone-1:#2a78d6;--zone-2:#eb6834;--zone-3:#1baf7a;--zone-1-map:#3987e5;--zone-2-map:#d95926;--zone-3-map:#199e70;--shadow:#0f172a0f 0 1px 3px, #0f172a0a 0 1px 2px;--chart-grid:#e2e8f0;--heat-0:#e2e8f0;--heat-1:#c7d2fe;--heat-2:#a5b4fc;--heat-3:#818cf8;--heat-4:#4f46e5;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#cbd5e1;--text-h:#f8fafc;--bg:#0f1117;--surface:#171a23;--border:#2b2f3a;--accent:#818cf8;--accent-contrast:#0f1117;--positive:#34d399;--negative:#f87171;--attention:#fbbf24;--zone-1:#3987e5;--zone-2:#d95926;--zone-3:#199e70;--shadow:#0006 0 4px 12px;--chart-grid:#2b2f3a;--heat-0:#232733;--heat-1:#312e81;--heat-2:#4338ca;--heat-3:#6366f1;--heat-4:#a5b4fc}}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--text-h);margin:0;font-weight:600}.app-shell{flex-direction:column;gap:28px;max-width:960px;margin:0 auto;padding:32px 20px 64px;display:flex}.app-header__icon{color:var(--accent);width:28px;height:28px}.how-to-download{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:18px 24px}.steps-list{flex-direction:column;gap:16px;margin:16px 0 0;padding:0;list-style:none;display:flex}.steps-list>li{align-items:flex-start;gap:12px;display:flex}.steps-list__badge{background:var(--accent);width:24px;height:24px;color:var(--accent-contrast);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.steps-list__text{flex-direction:column;gap:4px;min-width:0;display:flex}.steps-list__text strong{color:var(--text-h)}.steps-list__text p{margin:0;line-height:1.5}.steps-list__media{border-radius:8px;max-width:360px;margin-top:6px}.steps-list__media--placeholder{border:1px dashed var(--border);color:var(--text);text-align:center;width:240px;max-width:100%;padding:20px 12px;font-size:.75rem}.upload-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:24px;display:flex}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;padding:32px 20px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone--active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent)}.dropzone__icons{color:var(--accent);justify-content:center;gap:12px;margin-bottom:10px;display:flex}.dropzone__icons svg{width:26px;height:26px}.dropzone__title{color:var(--text-h);margin-bottom:4px;font-weight:600}.dropzone__hint{color:var(--text);font-size:.85rem}.file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.file-list li{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:.85rem;display:flex}.file-list button{color:var(--text);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:1rem;line-height:1}.file-list button:hover{color:var(--negative)}.analyze-button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:10px;padding:12px 20px;font-size:1rem;font-weight:600;transition:opacity .15s}.analyze-button:disabled{opacity:.5;cursor:not-allowed}.analyze-button:not(:disabled):hover{opacity:.9}.privacy-note{color:var(--text);text-align:center;font-size:.8rem}.error-text{color:var(--negative);margin:0;font-size:.9rem}.fare-guide{flex-direction:column;gap:20px;display:flex}.fare-guide p{line-height:1.6}.resource-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.resource-card{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;padding:14px 16px;text-decoration:none;transition:border-color .15s;display:flex}.resource-card:hover{border-color:var(--accent)}.resource-card__title{color:var(--text-h);font-weight:600}.resource-card__source{color:var(--accent);font-size:.75rem}.resource-card__detail{color:var(--text);margin-top:4px;font-size:.85rem}.results,.upload-anchor{flex-direction:column;gap:24px;display:flex}.recommendation-banner{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid var(--accent);text-align:left;border-radius:12px;padding:16px 20px}.recommendation-banner__label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:.75rem;font-weight:700}.recommendation-banner p{color:var(--text-h);margin-top:6px;font-size:1rem}.summary-section{flex-direction:column;gap:16px;display:flex}.summary-cards{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=700px){.summary-cards{grid-template-columns:repeat(2,1fr)}}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.summary-card__icon{width:18px;height:18px;color:var(--accent);opacity:.6;position:absolute;top:12px;right:12px}.summary-card--highlight{border-color:var(--accent)}.summary-card__label{color:var(--text);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.summary-card__value{color:var(--text-h);font-size:1.4rem;font-weight:700}.summary-card__value--small{font-size:.95rem;font-weight:600}.positive{color:var(--positive)}.negative{color:var(--negative)}.chart-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:20px}.chart-card h3{margin-bottom:4px;font-size:1rem}.chart-subtitle{color:var(--text);margin-bottom:12px;font-size:.8rem}.chart-tooltip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);white-space:normal;border-radius:8px;max-width:min(260px,70vw);padding:8px 12px;font-size:.8rem}.chart-tooltip__month{color:var(--text);margin-bottom:4px}.chart-tooltip__verdict{font-weight:700}.chart-tooltip__note{color:var(--text);margin-top:4px;font-size:.75rem}.monthly-chart-tooltip__row{color:var(--text-h);white-space:nowrap;align-items:center;gap:6px;padding:2px 0;display:flex}.monthly-chart-tooltip__row--multiline{flex-direction:column;align-items:flex-start;gap:2px}.monthly-chart-tooltip__note{color:var(--text);padding-left:16px;font-size:.72rem}.monthly-chart-tooltip__swatch{border-radius:2px;flex:none;width:9px;height:9px;display:inline-block}.savings-legend{color:var(--text);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:.75rem;display:flex}.savings-legend__swatch{border-radius:3px;width:10px;height:10px;margin-right:4px;display:inline-block}.heatmap-grid{flex-wrap:wrap;gap:20px;display:flex}.heatmap-month__label{color:var(--text-h);margin-bottom:6px;font-size:.8rem;font-weight:600}.heatmap-month__days{grid-template-columns:repeat(7,14px);gap:3px;display:grid}.heatmap-weekday{color:var(--text);text-align:center;font-size:.6rem}.heatmap-cell{border-radius:3px;width:14px;height:14px}.heatmap-cell--empty{background:0 0}.heatmap-legend{color:var(--text);align-items:center;gap:4px;margin-top:14px;font-size:.75rem;display:flex}.heatmap-legend__swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.table-scroll{overflow-x:auto}.monthly-table{border-collapse:collapse;width:100%;font-size:.85rem}.monthly-table th,.monthly-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}.monthly-table th{color:var(--text);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.monthly-table td{color:var(--text-h)}.est-marker{color:var(--accent);cursor:help;margin-left:2px}.table-footnote{color:var(--text);margin-top:10px;font-size:.75rem}.app-footer{text-align:center;color:var(--text);border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:16px;font-size:.75rem;display:flex}.app-footer__links{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:.85rem;display:flex}.app-footer__sep{color:var(--border)}.app-footer a{color:var(--accent);text-decoration:none}.app-footer a:hover{text-decoration:underline}.coffee-link{font-weight:600}.app-footer__verified{opacity:.8;font-style:italic}.trip-counter{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:999px;margin-top:4px;padding:4px 12px;font-size:.8rem;font-weight:600;display:inline-block}.upass-card__header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.upass-card__header svg{color:var(--accent);width:22px;height:22px}.upass-card__header h3{margin:0}.upass-card__input-row{color:var(--text-h);align-items:center;gap:8px;margin:14px 0;font-size:.9rem;font-weight:600;display:flex}.upass-card__input-wrap{border:1px solid var(--border);background:var(--bg);border-radius:8px;align-items:center;gap:2px;padding:4px 8px;display:inline-flex}.upass-card__input-wrap input{width:80px;color:var(--text-h);background:0 0;border:none;outline:none;font-size:.95rem;font-weight:600}.upass-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0;display:grid}.upass-summary>div{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.upass-summary .summary-card--highlight{border-color:var(--accent)}@media (width<=700px){.upass-summary{grid-template-columns:repeat(2,1fr)}}.wrapped-locked{text-align:center;color:var(--text);flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.wrapped-locked svg{width:32px;height:32px;color:var(--accent)}.story-wrap{outline:none;flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.story{aspect-ratio:9/16;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:20px;width:min(100%,420px,56.25svh - 84.375px);position:relative;overflow:hidden;box-shadow:0 20px 50px #0f172a59;container-type:inline-size}.story--intro{background:radial-gradient(circle at 30% 20%,#7c3aed,#312e81 55%,#0f0a2e)}.story--trips{background:linear-gradient(160deg,#0b3d91,#0e7490 60%,#064e3b)}.story--tier{background:linear-gradient(160deg,#f97316,#db2777 70%,#831843)}.story--time{background:radial-gradient(circle at 50% 0,#b91c1c,#450a0a 60%,#1c0606)}.story--stations{background:linear-gradient(#0f172a,#111827 60%,#1e1b4b)}.story--year{background:linear-gradient(#052e16,#022c22 50%,#0a0a0a)}.story--extremes{background:linear-gradient(#fb923c 0%,#be185d 45%,#1e1b4b 100%)}.story__progress{z-index:3;gap:4px;display:flex;position:absolute;top:10px;left:10px;right:10px}.story__segment{background:#ffffff4d;border-radius:2px;flex:1;height:3px}.story__segment--done,.story__segment--active{background:#fff}.story__slide{animation:.45s both story-enter;position:absolute;inset:0}.story__background{position:absolute;inset:0;overflow:hidden}.story__content{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2cqi;height:100%;padding:11cqi 7cqi 7cqi;display:flex;position:relative}.story__content>*{margin:0;animation:.6s both story-rise}.story__content>:nth-child(2){animation-delay:80ms}.story__content>:nth-child(3){animation-delay:.16s}.story__content>:nth-child(4){animation-delay:.24s}.story__content>:nth-child(5){animation-delay:.32s}.story__panel{-webkit-backdrop-filter:blur(6px);background:#00000073;border-radius:16px;flex-direction:column;align-items:center;gap:1.5cqi;padding:6cqi 7cqi;display:flex}.story__panel>*{margin:0}.story__icon{width:12cqi;height:12cqi}.story__eyebrow{letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-size:3.6cqi;font-weight:700}.story__title{color:#fff;font-size:8.5cqi;font-weight:800;line-height:1.1}.story__title--huge{font-size:12cqi}.story__big{letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums;font-size:22cqi;font-weight:900;line-height:1}.story__unit{letter-spacing:0;font-size:8cqi;font-weight:700}.story__lead{font-size:5cqi;font-weight:600}.story__note{opacity:.9;font-size:4.2cqi}.story__fine{opacity:.6;font-size:3cqi}.story__stat{font-size:4cqi;line-height:1.4}.story__stat small{opacity:.75}.story__key{vertical-align:middle;border-radius:2px;width:3cqi;height:3cqi;margin-right:1cqi;display:inline-block}.story__key--streak{border:2px solid #fde047}.story__key--busiest{background:#fff;box-shadow:0 0 6px #fff}.story__split{gap:3cqi;font-size:4cqi;font-weight:600;display:flex}.story__split-train{color:#fde047}.story__split-bus{color:#67e8f9}.trip-icons{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.trip-icons__icon{opacity:.55;animation:.4s both icon-pop}.trip-icons__icon--train{stroke:#fde047}.trip-icons__icon--bus{stroke:#67e8f9}.trip-icons__scale{text-align:center;opacity:.7;width:100%;margin:0;font-size:3cqi;position:absolute;bottom:3cqi}.tier-stairs{width:100%}.tier-stairs__steps{align-items:flex-end;gap:1.5cqi;height:62cqi;margin-top:8cqi;display:flex}.tier-stairs__step{transform-origin:bottom;background:#ffffff29;border-radius:8px 8px 2px 2px;flex:1;justify-content:center;align-items:flex-end;padding:0 .5cqi 2cqi;animation:.5s both step-grow;display:flex;position:relative}.tier-stairs__step--passed{background:#ffffff4d}.tier-stairs__step--you{color:#9d174d;background:#fff;box-shadow:0 0 24px #fff9}.tier-stairs__label{-webkit-hyphens:manual;hyphens:manual;font-size:2.3cqi;font-weight:700;line-height:1.15}.tier-stairs__marker{color:#111;background:#fde047;border-radius:999px;padding:.8cqi 2cqi;font-size:3cqi;font-weight:800;animation:1.2s ease-in-out .8s infinite bounce;position:absolute;top:-8cqi;left:50%;transform:translate(-50%)}.tier-stairs__next{opacity:.9;margin:5cqi 0 0;font-size:3.8cqi}.story-movie{background:#00000059;border:2px dashed #ffffff59;border-radius:16px;flex-direction:column;align-items:center;gap:1cqi;margin-top:3cqi;padding:5cqi 6cqi;display:flex}.story-movie p{margin:0}.story-movie__lead{opacity:.8;font-size:4cqi}.story-movie__title{color:#fde68a;font-size:7cqi;font-weight:800}.story-movie__times{font-size:14cqi;font-weight:900;line-height:1}.story-movie__others{opacity:.8;margin:2cqi 0 0;padding:0;font-size:3.4cqi;line-height:1.6;list-style:none}.station-map{width:100%;margin-top:3cqi}.station-map__svg{width:100%;height:auto;overflow:hidden}.station-map__water{fill:none;stroke:#38bdf81a;stroke-linecap:round;stroke-linejoin:round}.station-map__line{fill:none;stroke-width:11px;stroke-linecap:round;stroke-linejoin:round}.station-map__line--dashed{stroke-width:6px;stroke-dasharray:14 10}.station-map__lines--dim{opacity:.35}.station-map__stop{fill:#fff;stroke:#0f172a;stroke-width:3px}.station-map__link-outline{stroke:#0f172a;stroke-width:24px;stroke-linecap:round}.station-map__link{stroke:#fff;stroke-width:13px;stroke-linecap:round}.station-map__visit{transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.34,1.56,.64,1) both bubble-in}.station-map__bubble{fill:#f472b699;stroke:#f9a8d4;stroke-width:4px}.station-map__rank{fill:#fff;text-anchor:middle;font-size:28px;font-weight:800}.station-map__list{text-align:left;margin:4cqi 0 0;padding:0;font-size:3.8cqi;list-style:none}.station-map__list li{border-bottom:1px solid #ffffff1f;justify-content:space-between;gap:2cqi;padding:1cqi 0;display:flex}.station-map__name{flex:1}.station-map__count{font-variant-numeric:tabular-nums;font-weight:700}.year-grid{grid-template-columns:repeat(4,1fr);gap:4cqi 3cqi;padding:13cqi 6cqi 0;display:grid}.year-grid__month{animation:.5s both story-rise}.year-grid__label{text-transform:uppercase;letter-spacing:.06em;opacity:.7;margin-bottom:1cqi;font-size:2.8cqi;font-weight:700;display:block}.year-grid__days{grid-template-columns:repeat(7,1fr);gap:.5cqi;display:grid}.year-grid__cell{aspect-ratio:1;background:#ffffff14;border-radius:1.5px}.year-grid__cell--l1{background:#166534}.year-grid__cell--l2{background:#15803d}.year-grid__cell--l3{background:#22c55e}.year-grid__cell--l4{background:#86efac}.year-grid__cell--streak{outline-offset:-.5px;outline:1.5px solid #fde047}.year-grid__cell--busiest{z-index:1;background:#fff;animation:1.4s ease-in-out 1s infinite pulse;position:relative}.story--year .story__content{justify-content:flex-end;padding-bottom:6cqi}.story--year .story__big{font-size:18cqi}.story-extremes{grid-template-columns:1fr 1fr;gap:3cqi;width:100%;margin-top:4cqi;display:grid}.story-extremes__card{background:#0000004d;border-radius:16px;flex-direction:column;align-items:center;gap:1cqi;padding:5cqi 2cqi;display:flex}.story-extremes__emoji{font-size:10cqi}.story-extremes__label{text-transform:uppercase;letter-spacing:.08em;opacity:.8;font-size:3.2cqi}.story-extremes__value{font-size:7cqi;font-weight:800}.story-extremes__date{opacity:.75;font-size:3.2cqi}.story-quiz{flex-direction:column;gap:2.5cqi;width:100%;margin-top:4cqi;display:flex}.story-quiz__option{color:#fff;font:inherit;cursor:pointer;background:#ffffff1a;border:2px solid #fff9;border-radius:999px;padding:4cqi;font-size:4.5cqi;font-weight:700}.story-quiz__option:disabled{cursor:default;opacity:.6}.story-quiz__option--correct{background:#22c55e;border-color:#22c55e;opacity:1!important}.story-quiz__option--wrong{background:#ef4444;border-color:#ef4444;opacity:1!important}.story-controls{color:var(--text);align-items:center;gap:16px;font-size:.85rem;display:flex}.story-controls button{border:1px solid var(--border);background:var(--surface);color:var(--text-h);font:inherit;cursor:pointer;border-radius:999px;padding:8px 18px}.story-controls button:disabled{opacity:.4;cursor:default}@keyframes story-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes story-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes icon-pop{0%{opacity:0}to{opacity:.55}}@keyframes step-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes bounce{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-6px)}}@keyframes bubble-in{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes cell-in{to{opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 6px 2px #fff}50%{box-shadow:0 0 16px 6px #fff}}@media (prefers-reduced-motion:reduce){.story *,.story :before{animation-duration:10ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.touch-only{display:none}@media (hover:none) and (pointer:coarse){.touch-only{display:inline}.pointer-only{display:none}}.steps-list__text a{color:var(--accent);text-decoration:underline}.steps-list__tips{color:var(--text);margin:6px 0 0;padding-left:18px;font-size:.85rem}.steps-list__tips li{margin-bottom:4px}.steps-list__desktop-note{color:var(--text);margin:4px 0 0;font-size:.85rem}.results,.upload-anchor{scroll-margin-top:12px}.how-to-download__skip{color:var(--accent);font-weight:600;font:inherit;cursor:pointer;background:0 0;border:none;margin:4px 0 12px;padding:0;display:inline-block}.chart-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.chart-scroll__hint{color:var(--text);margin:4px 0 0;font-size:.8rem;display:none}@media (width<=700px){.chart-scroll__hint{display:block}}.summary-card__value.attention{color:var(--attention)}.story--clock{background:radial-gradient(circle at 50% 55%,#1e40af,#172554 60%,#020617)}.story--week{background:linear-gradient(160deg,#65a30d,#15803d 55%,#14532d)}.story--distance{background:linear-gradient(#0ea5e9,#0369a1 50%,#0c4a6e)}.story--collection{background:linear-gradient(#312e81,#1e1b4b 60%,#0f0a2e)}.story--route{background:linear-gradient(#111827,#1f2937 60%,#312e81)}.story--grade{color:#422006;background:linear-gradient(160deg,#fef3c7,#fde68a 40%,#f59e0b)}.story--grade .story__title,.story--grade .story__big{color:#422006}.story--grade .story__segment{background:#42200640}.story--grade .story__segment--done,.story--grade .story__segment--active{background:#422006}.hour-clock{width:96%;margin-top:2cqi;overflow:visible}.hour-clock__ring{fill:none;stroke:#ffffff1f;stroke-width:1.5px}.hour-clock__face{fill:#ffffff12}.hour-clock__tick{stroke:#ffffff59;stroke-width:1.5px;stroke-linecap:round}.hour-clock__bar{stroke:#93c5fdcc;stroke-width:7px;stroke-linecap:round;animation:.5s both story-rise}.hour-clock__bar--peak{stroke:#fde047;filter:drop-shadow(0 0 6px #fde047)}.hour-clock__icon{text-anchor:middle;font-size:15px}.hour-clock__label{fill:#ffffffbf;text-anchor:middle;font-size:11px;font-weight:700}.hour-clock__peak{fill:#fde047;text-anchor:middle;font-size:24px;font-weight:900}.hour-clock__peak-label{fill:#ffffffb3;letter-spacing:.1em;text-anchor:middle;text-transform:uppercase;font-size:11px;font-weight:700}.week-rhythm{align-items:flex-end;gap:2.5cqi;width:100%;height:60cqi;margin:4cqi 0 2cqi;display:flex}.week-rhythm__col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:1.5cqi;height:100%;display:flex}.week-rhythm__bar{transform-origin:bottom;background:#ffffff59;border-radius:8px 8px 3px 3px;width:100%;animation:.5s both step-grow}.week-rhythm__bar--weekend{background:#fef08a73}.week-rhythm__bar--top{background:#fff;box-shadow:0 0 18px #fff9}.week-rhythm__count{opacity:.8;font-size:3cqi}.week-rhythm__day{font-size:4cqi;font-weight:800}.distance-trip{width:100%;margin:10cqi 0 4cqi}.distance-trip__track{background:#fff3;border-radius:999px;height:2.2cqi;margin:0 4cqi;position:relative}.distance-trip__fill{transform-origin:0;background:linear-gradient(90deg,#fde047,#fff);border-radius:999px;height:100%;animation:1.4s both fill-grow}.distance-trip__stop{flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.distance-trip__dot{background:#0369a1;border:2px solid #fff;border-radius:50%;width:4cqi;height:4cqi}.distance-trip__dot--passed{background:#fde047}.distance-trip__name{white-space:nowrap;font-size:3.2cqi;font-weight:700;position:absolute;top:5.5cqi}.distance-trip__train{font-size:7cqi;animation:1.4s both train-slide;position:absolute;top:-9cqi;transform:translate(-50%)}.distance-trip__caption{margin:12cqi 0 0;font-size:4.2cqi;font-weight:600}.collection__got{fill:#fde047;stroke:#fff;stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:.4s cubic-bezier(.34,1.56,.64,1) both bubble-in}.collection__missing{fill:none;stroke:#ffffff80;stroke-width:3px}.collection__legend{opacity:.85;margin:3cqi 0 0;font-size:3.4cqi}.collection__key{vertical-align:middle;border-radius:50%;width:2.6cqi;height:2.6cqi;margin:0 1cqi 0 3cqi;display:inline-block}.collection__key--got{background:#fde047}.collection__key--missing{border:1px solid #fff9}.route__arc{fill:none;stroke:#f472b6;stroke-width:13px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;filter:drop-shadow(0 0 10px #f472b6);animation:1.4s .4s both draw-line}.route__end{fill:#fff;stroke:#f472b6;stroke-width:7px}.route__label{fill:#fff;text-anchor:middle;paint-order:stroke;stroke:#111827;stroke-width:10px;font-size:34px;font-weight:700}.report-card{flex-direction:column;align-items:center;gap:5cqi;margin:3cqi 0;display:flex}.report-card__grade{border:1.5cqi solid;border-radius:50%;place-items:center;width:42cqi;height:42cqi;font-size:22cqi;font-weight:900;line-height:1;animation:.5s cubic-bezier(.34,1.56,.64,1) .2s both stamp;display:grid;transform:rotate(-8deg)}.report-card__grade--Aplus,.report-card__grade--A{color:#15803d}.report-card__grade--B{color:#a16207}.report-card__grade--C,.report-card__grade--D{color:#b91c1c}.report-card__months{flex-wrap:wrap;justify-content:center;gap:1.5cqi;display:flex}.report-card__month{border-radius:8px;flex-direction:column;align-items:center;min-width:10cqi;padding:1.2cqi 1.5cqi;font-size:3cqi;font-weight:700;animation:.4s both story-rise;display:flex}.report-card__month b{font-size:4cqi}.report-card__month--good{color:#14532d;background:#15803d2e}.report-card__month--bad{color:#7f1d1d;background:#b91c1c2e}@keyframes fill-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes train-slide{0%{left:0}}@keyframes draw-line{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg)scale(2.2)}to{opacity:1;transform:rotate(-8deg)scale(1)}}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.site-header__brand{color:var(--text-h);font:inherit;letter-spacing:-.02em;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-size:1.25rem;font-weight:800;display:inline-flex}.site-nav{scrollbar-width:none;gap:4px;max-width:100%;display:flex;overflow-x:auto}.site-nav__item{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;padding:7px 12px;font-size:.9rem;font-weight:600}.site-nav__item:hover{color:var(--text-h)}.site-nav__item--active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.page-intro h2{letter-spacing:-.02em;color:var(--text-h);margin:0 0 6px;font-size:1.6rem}.page-intro p{color:var(--text);margin:0}.get-data{flex-direction:column;gap:20px;display:flex}.landing{flex-direction:column;gap:36px;display:flex}.landing-hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:32px;display:grid}.landing-hero__eyebrow{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(90deg,#7c3aed,#db2777);border-radius:999px;align-items:center;gap:6px;margin:0 0 12px;padding:5px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.landing-hero__eyebrow svg{width:16px;height:16px}.landing-hero__title{letter-spacing:-.035em;color:var(--text-h);margin:0;font-size:clamp(2.2rem,7vw,3.4rem);line-height:1.05}.landing-hero__lead{color:var(--text);margin:14px 0 22px;font-size:1.05rem;line-height:1.55}.landing-hero__actions{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.landing-hero__cta{color:#fff;background:linear-gradient(90deg,#7c3aed,#db2777);border-radius:999px;padding:15px 26px;font-size:1.05rem}.landing-hero__demo{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:8px 0;font-weight:700}.landing-hero__time{color:var(--text);margin:12px 0 0;font-size:.85rem}.landing-hero__preview{cursor:pointer;justify-content:center;display:flex;position:relative}.landing-hero__card{transform:rotate(3deg);box-shadow:0 30px 60px #0f172a59;width:min(280px,72vw)!important}.landing-hero__play{background:var(--surface);color:var(--text-h);font:inherit;box-shadow:var(--shadow);cursor:pointer;border:none;border-radius:999px;padding:9px 16px;font-size:.85rem;font-weight:700;position:absolute;bottom:-14px}.landing-steps ol{grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}.landing-steps li{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:12px;padding:16px;font-size:.92rem;line-height:1.45;display:flex}.landing-steps b{background:var(--accent);width:28px;height:28px;color:var(--accent-contrast);border-radius:50%;flex:none;place-items:center;display:grid}.landing-steps strong{color:var(--text-h)}.landing-tools{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.landing-tools button{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;font-size:.9rem;display:flex}.landing-tools button:hover{border-color:var(--accent)}.landing-tools svg{color:var(--accent)}.landing-tools strong{color:var(--text-h);font-size:1rem}@media (width<=700px){.landing-hero{grid-template-columns:1fr;gap:40px}.landing-steps ol,.landing-tools{grid-template-columns:1fr}}.wrapped-view{flex-direction:column;align-items:center;gap:20px;display:flex}.wrapped-cta{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.wrapped-cta p{color:var(--text);margin:0}.wrapped-cta__link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:8px;font-weight:700}.summary-picker{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.summary-picker button{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:600}.summary-picker .summary-picker__on{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.story--static,.story--static *{transition:none!important;animation:none!important}.story--static{cursor:default;box-shadow:none}.story__split-mixed{color:#f9a8d4}.trip-icons__icon--both{stroke:#f9a8d4}.station-map__rank-num{color:#f9a8d4;width:5cqi;font-weight:800}.story--question{background:radial-gradient(circle at 50% 30%,#f472b6,#9d174d 55%,#3b0764)}.story-quiz__result{min-height:2.6em}.story-quiz__option--lock{color:#9d174d;background:#fff;border-color:#fff;width:70%;margin-top:2cqi}.hours-guess{flex-direction:column;align-items:center;width:100%;margin:6cqi 0 2cqi;display:flex;position:relative}.hours-guess__value{font-variant-numeric:tabular-nums;font-size:20cqi;font-weight:900;line-height:1}.hours-guess__unit{margin-bottom:5cqi;font-size:5cqi;font-weight:600}.hours-guess__slider{accent-color:#fde047;cursor:pointer;width:100%;height:8cqi}.hours-guess__track{width:100%;height:11cqi;position:relative}.hours-guess__mark--actual{background:#fff;width:3px;height:7cqi;margin-left:-1.5px;position:absolute;top:-1cqi;box-shadow:0 0 8px #fff}.hours-guess__mark--actual:after{content:"actual";font-size:3cqi;font-weight:700;position:absolute;top:7.5cqi;left:50%;transform:translate(-50%)}.share-sheet{z-index:50;background:#0f172a8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.share-sheet__panel{width:min(560px,100%);max-height:92svh;padding:18px 16px calc(20px + env(safe-area-inset-bottom));background:var(--surface);border-radius:20px 20px 0 0;animation:.25s both sheet-in;overflow-y:auto}.share-sheet__head{justify-content:space-between;align-items:center;display:flex}.share-sheet__head h3{color:var(--text-h);margin:0}.share-sheet__close{color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1.8rem;line-height:1}.share-sheet__hint{color:var(--text);margin:4px 0 12px;font-size:.85rem}.share-sheet__options{gap:12px;padding-bottom:6px;display:flex;overflow-x:auto}.share-sheet__option{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:14px;flex-direction:column;flex:none;align-items:center;gap:6px;padding:6px;font-size:.8rem;font-weight:600;display:flex}.share-sheet__option--selected{border-color:var(--accent);color:var(--accent)}.share-sheet__thumb{pointer-events:none;display:block}.share-sheet__thumb .story{border-radius:10px}.share-sheet__actions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.share-sheet__secondary{border:1px solid var(--border);color:var(--text-h);font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:12px 20px;font-weight:600}.share-sheet__secondary:disabled{opacity:.5}.share-sheet__export{pointer-events:none;position:fixed;top:0;left:-10000px}.share-sheet__export .story{border-radius:0}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.story--summary-classic{color:#111;background:#f1efe8}.story--summary-ticket{background:radial-gradient(circle at 30% 0,#1d4ed8,#0f172a 70%)}.story--summary-line{background:#0b0b0f}.story--summary-poster{color:#111;background:linear-gradient(160deg,#ff3d7f,#ff7a18 55%,#ffd23f)}.story--summary-classic .story__segment,.story--summary-poster .story__segment{background:#0000002e}.story--summary-classic .story__segment--done,.story--summary-classic .story__segment--active,.story--summary-poster .story__segment--done,.story--summary-poster .story__segment--active{background:#111}.story[class*=story--summary-] .story__content{text-align:left;justify-content:flex-start;padding:0}.sum-classic{flex-direction:column;width:100%;height:100%;display:flex}.sum-classic__frame{background:repeating-conic-gradient(#111 0 25%, #f1efe8 0 50%) 0 0 / 7cqi 7cqi;height:47%;padding:9cqi 5cqi 4cqi 14cqi;position:relative}.sum-classic__year{transform-origin:50%;letter-spacing:-.04em;color:#8b5cf6;-webkit-text-stroke:.6cqi #111;white-space:nowrap;justify-content:center;width:12cqi;font-size:19cqi;font-weight:900;display:flex;position:absolute;top:50%;left:1cqi;transform:translateY(-50%)rotate(-90deg)}.sum-classic__photo{background:#0f172a;border:.8cqi solid #111;align-items:center;height:100%;display:flex;overflow:hidden}.sum-classic__photo .station-map__svg{width:100%}.sum-classic__cols{grid-template-columns:1fr 1fr;gap:4cqi;padding:5cqi 6cqi 0;display:grid}.sum-classic__head{opacity:.65;margin:0 0 1.5cqi;font-size:3.2cqi;font-weight:600}.sum-classic ol{margin:0;padding:0;font-size:4.1cqi;font-weight:700;line-height:1.45;list-style:none}.sum-classic ol li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sum-classic ol li span{width:4.5cqi;display:inline-block}.sum-classic__facts b{font-weight:900}.sum-classic__cols--hero{padding-top:4cqi}.sum-classic__hero{letter-spacing:-.03em;margin:0;font-size:10cqi;font-weight:900;line-height:1}.sum-classic__hero--text{font-size:6.4cqi;line-height:1.05}.sum-classic__foot{letter-spacing:.04em;justify-content:space-between;align-items:center;margin:auto 0 0;padding:0 6cqi 5cqi;font-size:3.6cqi;font-weight:900;display:flex}.sum-logo{background:#111;border-radius:50%;place-items:center;width:9cqi;height:9cqi;font-size:5cqi;display:grid}.sum-ticket{justify-content:center;align-items:center;width:100%;height:100%;padding:8cqi 7cqi;display:flex}.sum-ticket__card{color:#111;background:#fef9ec;border-radius:5cqi;width:100%;padding:6cqi;position:relative;transform:rotate(-2deg);box-shadow:0 4cqi 10cqi #00000073}.sum-ticket__top{letter-spacing:.08em;justify-content:space-between;font-size:4cqi;font-weight:900;display:flex}.sum-ticket__admit{letter-spacing:.1em;color:#b91c1c;margin:2cqi 0 5cqi;font-size:3cqi;font-weight:700}.sum-ticket small{letter-spacing:.12em;opacity:.55;font-size:2.6cqi;font-weight:700;display:block}.sum-ticket b{font-size:5.2cqi;font-weight:900;line-height:1.1;display:block}.sum-ticket__route{border-bottom:2px solid #111;align-items:center;gap:3cqi;padding-bottom:4cqi;display:flex}.sum-ticket__route>div{flex:1;min-width:0}.sum-ticket__arrow{font-size:7cqi;font-weight:900}.sum-ticket__grid{grid-template-columns:1fr 1fr;gap:4cqi;padding:5cqi 0;display:grid}.sum-ticket__grid b{font-size:9cqi}.sum-ticket__perf{border-top:.7cqi dashed #11111173;margin:0 -6cqi;position:relative}.sum-ticket__perf:before,.sum-ticket__perf:after{content:"";background:#0f172a;border-radius:50%;width:7cqi;height:7cqi;position:absolute;top:-4cqi}.sum-ticket__perf:before{left:-3.5cqi}.sum-ticket__perf:after{right:-3.5cqi}.sum-ticket__stub{text-align:center;padding-top:5cqi}.sum-ticket__barcode{justify-content:center;gap:2px;height:12cqi;display:flex}.sum-ticket__barcode span{background:#111}.sum-ticket__stub p{letter-spacing:.12em;margin:2cqi 0 0;font-size:2.8cqi;font-weight:700}.sum-ticket__site{opacity:.55}.sum-line{flex-direction:column;width:100%;height:100%;padding:12cqi 8cqi 7cqi;display:flex}.sum-line__eyebrow{letter-spacing:.14em;color:#fde047;margin:0;font-size:3.4cqi;font-weight:800}.sum-line__title{letter-spacing:-.03em;color:#fff;margin:1cqi 0 6cqi;font-size:10cqi;font-weight:900;line-height:1}.sum-line__stops{flex-direction:column;flex:1;justify-content:space-between;margin:0;padding:0 0 0 12cqi;list-style:none;display:flex;position:relative}.sum-line__stops:before{content:"";background:linear-gradient(#0033a0,#007c9f 35%,#ffcd00 70%,#f472b6);border-radius:999px;width:3cqi;position:absolute;top:2cqi;bottom:2cqi;left:3cqi}.sum-line__stops li{flex-direction:column;animation:.5s both story-rise;display:flex;position:relative}.sum-line__dot{background:#0b0b0f;border:1.4cqi solid #fff;border-radius:50%;width:6cqi;height:6cqi;margin-top:-3cqi;position:absolute;top:50%;left:-11.5cqi}.sum-line__big{color:#fff;font-size:9cqi;font-weight:900;line-height:1.05}.sum-line__big--text{font-size:6.4cqi}.sum-line__label{opacity:.7;font-size:3.4cqi}.sum-line__next{letter-spacing:.1em;opacity:.6;margin:5cqi 0 0;font-size:3cqi;font-weight:700}.sum-poster{flex-direction:column;width:100%;height:100%;padding:11cqi 7cqi 7cqi;display:flex;position:relative;overflow:hidden}.sum-poster__year{letter-spacing:.2em;margin:0;font-size:4.4cqi;font-weight:900}.sum-poster__stack{flex-direction:column;gap:1cqi;margin-top:4cqi;display:flex}.sum-poster__stack p{align-items:baseline;gap:3cqi;margin:0;line-height:.95;display:flex}.sum-poster__stack b{letter-spacing:-.05em;color:#111;font-size:22cqi;font-weight:900}.sum-poster__stack small{letter-spacing:-.02em;font-size:9cqi}.sum-poster__stack span{letter-spacing:.08em;font-size:5cqi;font-weight:900}.sum-poster__stack p:nth-child(2n) b{color:#fff;-webkit-text-stroke:.7cqi #111}.sum-poster__sticker{color:#fde047;text-align:center;background:#111;border-radius:4cqi;max-width:48cqi;padding:4cqi 5cqi;font-size:6cqi;font-weight:900;line-height:1.05;position:absolute;bottom:16cqi;right:5cqi;transform:rotate(-7deg);box-shadow:1.5cqi 1.5cqi #fff}.sum-poster__site{letter-spacing:.14em;margin:auto 0 0;font-size:3.4cqi;font-weight:900}.story--bus{background:linear-gradient(170deg,#0e7490,#155e75 45%,#172554)}.bus-stops{text-align:left;width:100%;margin:4cqi 0 2cqi;padding:0;list-style:none}.bus-stops li{border-bottom:1px solid #ffffff1f;align-items:center;gap:3cqi;padding:2cqi 0;animation:.45s both story-rise;display:flex}.bus-stops__rank{color:#67e8f9;flex:none;width:5cqi;font-size:4.4cqi;font-weight:900}.bus-stops__body{flex-direction:column;flex:1;gap:.6cqi;min-width:0;display:flex}.bus-stops__label{white-space:nowrap;text-overflow:ellipsis;font-size:4cqi;font-weight:700;overflow:hidden}.bus-stops__near{opacity:.7;font-size:3cqi}.bus-stops__bar{transform-origin:0;background:linear-gradient(90deg,#67e8f9,#fde047);border-radius:999px;height:1.4cqi;animation:.9s both fill-grow}.bus-stops__count{font-variant-numeric:tabular-nums;flex:none;font-size:4.4cqi;font-weight:800}.guide-section{flex-direction:column;gap:14px;display:flex}.guide-section h3{color:var(--text-h);margin:0;font-size:1.15rem}.guide-section__lead,.guide-section__text{color:var(--text);margin:0;line-height:1.55}.guide-basics{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.guide-basic{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 14%, var(--surface)), var(--surface));border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:6px;padding:18px;display:flex}.guide-basic svg{width:28px;height:28px;color:var(--accent)}.guide-basic strong{color:var(--text-h);font-size:1.02rem}.guide-basic span{font-size:.9rem;line-height:1.45}.price-row{flex-direction:column;gap:8px;display:flex}.price-row__label{color:var(--text-h);font-size:.85rem;font-weight:700}.price-row__tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.price-tile{border:1px solid var(--border);border-top:4px solid var(--tile-color);border-radius:12px;flex-direction:column;padding:12px;display:flex}.price-tile--z1{--tile-color:var(--zone-1)}.price-tile--z2{--tile-color:var(--zone-2)}.price-tile--z3{--tile-color:var(--zone-3)}.price-tile__zone{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.price-tile{min-width:0}.price-tile__price{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:clamp(1rem,4.4vw,1.35rem);font-weight:800}.price-tile__unit{font-size:.75rem}.price-extras{flex-wrap:wrap;gap:8px;display:flex}.price-extras span{background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:999px;padding:6px 12px;font-size:.85rem}.price-extras b{color:var(--text-h)}.zone-map{color:#fff;background:#0f172a;border-radius:14px;padding:14px 10px 12px}.zone-map__stop{stroke:#0f172a;stroke-width:4px}.zone-map__label{opacity:.9;font-weight:800}.zone-map__zone{letter-spacing:.06em;font-size:30px}.zone-map__place{fill:#ffffffa6;font-size:22px;font-weight:600}.zone-map__legend,.fare-history__legend,.calc__legend{flex-wrap:wrap;gap:6px 16px;font-size:.82rem;display:flex}.zone-map__legend{justify-content:center;margin-top:8px}.zone-map__legend i,.fare-history__legend i,.calc__legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.day-timeline{flex-direction:column;gap:10px;padding-bottom:22px;display:flex}.day-timeline__row{grid-template-columns:110px 1fr;align-items:center;gap:10px;display:grid}.day-timeline__name{color:var(--text-h);font-size:.82rem;font-weight:700}.day-timeline__bar{gap:2px;height:34px;display:flex}.day-timeline__seg{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;display:flex;overflow:hidden}.day-timeline__seg--zones{background:color-mix(in srgb, var(--zone-2) 22%, var(--surface));color:var(--text-h)}.day-timeline__seg--flat{background:var(--positive);color:#fff}.day-timeline__axis{height:0;margin-left:120px;position:relative}.day-timeline__axis span{white-space:nowrap;font-size:.72rem;position:absolute;top:0;transform:translate(-50%)}.day-timeline__axis span:first-child{transform:none}.day-timeline__axis span:last-child{transform:translate(-100%)}.day-timeline__cut{color:var(--text-h);font-weight:700}.rule-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;display:grid}.rule-card{border:1px solid var(--border);border-left:4px solid var(--border);border-radius:12px;gap:12px;padding:14px;display:flex}.rule-card--save{border-left-color:var(--positive)}.rule-card--cost{border-left-color:var(--attention)}.rule-card__icon{background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:1.15rem;display:grid}.rule-card__icon svg{width:18px;height:18px;color:var(--accent)}.rule-card strong{color:var(--text-h)}.rule-card p{margin:3px 0 0;font-size:.88rem;line-height:1.5}.transfer-flow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.transfer-flow>span{border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:700;position:relative}.transfer-flow>span:not(:last-child):after{content:"→";color:var(--text);margin-left:10px}.transfer-flow__step{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text-h)}.transfer-flow__window{background:var(--positive);color:#fff}.transfer-flow__window:after{color:#fff!important}.transfer-flow__step--warn{background:color-mix(in srgb, var(--attention) 18%, transparent)}.transfer-flow__step--addfare{background:var(--attention);color:#111}.addfare-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.addfare-card{border:1px solid var(--border);border-radius:12px;padding:12px 14px}.addfare-card strong{color:var(--text-h);font-size:.9rem}.addfare-card dl{margin:8px 0 0}.addfare-card dl div{border-top:1px solid var(--border);justify-content:space-between;padding:4px 0;font-size:.85rem;display:flex}.addfare-card dd{color:var(--text-h);margin:0;font-weight:700}.fare-history-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px 18px;display:grid}.fare-history{flex-direction:column;gap:6px;min-width:0;margin:0;display:flex}.fare-history__title,.calc__chart figcaption{color:var(--text-h);font-size:.9rem;font-weight:700}.fare-history__end-label{fill:var(--text-h);font-size:11px;font-weight:700}.fare-history__table summary{cursor:pointer;color:var(--accent);font-size:.82rem;font-weight:600}.fare-history__table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:6px;font-size:.82rem}.fare-history__table th,.fare-history__table td{border-bottom:1px solid var(--border);text-align:right;padding:5px 4px}.fare-history__table th:first-child,.fare-history__table td:first-child{text-align:left}.flat-history strong{color:var(--text-h);font-size:.9rem}.flat-history ol{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.flat-history li{border:1px solid var(--border);border-radius:10px;flex-direction:column;padding:6px 10px;font-size:.75rem;display:flex}.flat-history li:last-child{border-color:var(--accent)}.flat-history b{color:var(--text-h);font-size:.95rem}.guide-next{align-self:flex-start;padding-left:0}.breakeven-tiles{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.breakeven-tile{border:1px solid var(--border);border-top:5px solid var(--tile-color);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;padding:16px;display:flex}.breakeven-tile--z1{--tile-color:var(--zone-1)}.breakeven-tile--z2{--tile-color:var(--zone-2)}.breakeven-tile--z3{--tile-color:var(--zone-3)}.breakeven-tile__zone{font-size:.8rem;font-weight:700}.breakeven-tile__big{letter-spacing:-.03em;color:var(--text-h);font-size:2.8rem;font-weight:900;line-height:1.05}.breakeven-tile__unit{color:var(--text-h);font-size:.85rem;font-weight:600}.breakeven-tile__note{margin-top:6px;font-size:.8rem}.calc{flex-direction:column;gap:16px;display:flex}.calc__controls{flex-direction:column;gap:14px;display:flex}.calc__control{flex-direction:column;gap:6px;display:flex}.calc__label{color:var(--text-h);font-size:.85rem;font-weight:600}.calc__label b{color:var(--accent);margin-left:6px}.calc__control input[type=range]{width:100%;accent-color:var(--accent)}.calc__hint{font-size:.78rem}.segmented{border:1px solid var(--border);border-radius:999px;align-self:flex-start;padding:3px;display:inline-flex}.segmented button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:.88rem;font-weight:600}.segmented .segmented__on{background:var(--accent);color:var(--accent-contrast)}.calc__compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calc__option{border:2px solid var(--border);border-radius:14px;flex-direction:column;padding:14px;display:flex;position:relative;overflow:hidden}.calc__option span{font-size:.82rem;font-weight:600}.calc__option b{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.5rem}.calc__option i{background:var(--border);border-radius:999px;height:6px;margin-top:8px;display:block}.calc__option--best{border-color:var(--positive)}.calc__option--best i{background:var(--positive)}.calc__verdict{color:var(--text-h);background:color-mix(in srgb, var(--positive) 12%, transparent);border-radius:12px;margin:0;padding:12px 14px;font-weight:700}.calc__verdict span{color:var(--text);margin-top:2px;font-size:.85rem;font-weight:500;display:block}.calc__chart{margin:0}.calc__legend-dot{border-radius:50%!important}.calc__legend-dot--payoff{background:var(--surface);border:2px solid var(--text-h);box-sizing:border-box}.calc__legend-dash{background:repeating-linear-gradient(90deg, var(--text-h) 0 4px, transparent 4px 7px)!important;vertical-align:3px!important;height:3px!important}.persona-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.persona{border:1px solid var(--border);border-radius:14px;gap:12px;padding:14px;display:flex}.persona__emoji{flex:none;font-size:1.8rem;line-height:1}.persona__body{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.persona__body strong{color:var(--text-h)}.persona__body p{margin:0;font-size:.87rem;line-height:1.5}.persona__verdict{border:1px solid;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}.persona__verdict--pass,.persona__verdict--covered{color:var(--positive)}.persona__verdict--tap{color:var(--accent)}.persona__verdict--depends{color:var(--attention)}.strategy-callout-card{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:16px;flex-direction:column;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.strategy-callout-card p{margin:0;line-height:1.55}@media (width<=700px){.guide-basics,.breakeven-tiles{grid-template-columns:1fr}.guide-basic{grid-template-columns:32px 1fr;column-gap:12px;display:grid}.guide-basic svg{grid-row:span 2}.price-tile{padding:10px 8px}.breakeven-tile{grid-template-columns:auto 1fr;align-items:center;column-gap:14px;display:grid}.breakeven-tile__zone,.breakeven-tile__note{grid-column:1/-1}.breakeven-tile__big{grid-row:2}.day-timeline__row{grid-template-columns:74px 1fr}.day-timeline__axis{margin-left:84px}}.savings-legend__dash{background:var(--text-h);vertical-align:3px;border-radius:2px;width:16px;height:3px;margin-right:5px;display:inline-block}.month-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px;display:grid}.month-card{border:1px solid var(--border);border-top:4px solid var(--card-accent,var(--border));border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.month-card--good{--card-accent:var(--positive)}.month-card--miss{--card-accent:var(--negative)}.month-card--upass{--card-accent:#94a3b8}.month-card__head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.month-card__head h4{color:var(--text-h);margin:0;font-size:1rem}.month-card__trips{font-size:.82rem}.month-card__verdict{color:#fff;background:var(--card-accent);border-radius:999px;flex:none;padding:3px 10px;font-size:.78rem;font-weight:800}.zone-mix__bar{gap:2px;height:8px;display:flex}.zone-mix__bar span{border-radius:999px}.zone-mix__legend{flex-wrap:wrap;gap:2px 12px;margin-top:5px;font-size:.75rem;display:flex}.zone-mix__legend i{border-radius:50%;width:8px;height:8px;margin-right:3px;display:inline-block}.month-card__options{grid-template-columns:max-content 1fr auto;align-items:center;gap:7px 10px;font-size:.85rem;display:grid}.month-card__option{display:contents}.month-card__option-label{white-space:nowrap;color:var(--text-h);align-items:center;gap:5px;display:flex}.month-card__you{background:var(--accent);color:var(--accent-contrast);letter-spacing:.05em;border-radius:4px;padding:1px 6px;font-size:.65rem;font-style:normal;font-weight:800}.month-card__option-bar{background:color-mix(in srgb, var(--border) 60%, transparent);border-radius:999px;height:8px}.month-card__option-bar i{background:#94a3b8;border-radius:999px;height:100%;display:block}.month-card__option--cheapest .month-card__option-bar i{background:var(--positive)}.month-card__option-cost{text-align:right;min-width:5.5em;color:var(--text-h);font-variant-numeric:tabular-nums;font-weight:700}.month-card__check{color:var(--positive)}.month-card__tip{margin:0;font-size:.83rem;line-height:1.45}.month-cards-section .fare-history__table{margin-top:14px}.monthly-table-wrap{margin-top:8px}.upload-slow{text-align:center;color:var(--text);margin:0;font-size:.85rem}.page-loading{text-align:center;color:var(--text);margin:40px 0}.app-footer__privacy strong{color:var(--text-h)}
