:root{
      --ink:#0b1324;
      --muted:#5e6879;
      --line:#e5eaf1;
      --soft:#f6f8fb;
      --card:#ffffff;
      --blue:#2158d5;
      --blue-2:#1746ad;
      --cyan:#0c9aa9;
      --green:#18794e;
      --amber:#a75b00;
      --violet:#7147c7;
      --rose:#b43a5a;
      --shadow:0 14px 35px rgba(14,27,56,.08);
      --radius:22px;
      --max:1180px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.5}
    button,input,select{font:inherit}
    a{color:inherit;text-decoration:none}
    .skip{position:absolute;left:-9999px;top:0}.skip:focus{left:16px;top:16px;background:#fff;padding:10px 14px;border-radius:10px;z-index:9999}
    .wrap{width:min(calc(100% - 34px),var(--max));margin-inline:auto}
    .topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(229,234,241,.9)}
    .nav{height:72px;display:flex;align-items:center;gap:24px}
    .brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
    .mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--ink);color:#fff;font-size:17px;font-weight:900}
    .brand small{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.02em;margin-top:-2px}
    .navlinks{display:flex;gap:18px;margin-left:auto;font-size:14px;font-weight:700;color:#4d5666}
    .navlinks a:hover{color:var(--ink)}
    .nav-cta{padding:10px 14px;border-radius:999px;background:var(--ink);color:white;font-size:14px;font-weight:800}
    .menu-btn{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:12px;width:42px;height:42px}

    .hero{position:relative;overflow:hidden;padding:80px 0 46px;background:linear-gradient(180deg,#f8faff 0%,#fff 100%)}
    .hero:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(33,88,213,.13),rgba(33,88,213,0) 68%);right:-160px;top:-210px;pointer-events:none}
    .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
    .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-weight:850;text-transform:uppercase;letter-spacing:.09em;font-size:12px;margin-bottom:18px}
    .eyebrow:before{content:"";width:24px;height:3px;background:var(--blue);border-radius:10px}
    h1{font-size:clamp(42px,5.5vw,72px);line-height:1.02;letter-spacing:-.055em;margin:0 0 20px;max-width:800px}
    .lead{font-size:clamp(18px,2vw,23px);line-height:1.55;color:#4a5668;max-width:710px;margin:0 0 28px}
    .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:14px 18px;font-weight:850;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s background}
    .btn:hover{transform:translateY(-1px)}
    .btn-primary{background:var(--blue);color:white;box-shadow:0 10px 26px rgba(33,88,213,.22)}
    .btn-primary:hover{background:var(--blue-2)}
    .btn-secondary{background:white;color:var(--ink);border:1px solid var(--line)}
    .micro{margin-top:18px;display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px;font-weight:650}
    .micro span:before{content:"✓";color:var(--green);font-weight:900;margin-right:6px}

    .route-preview{background:#fff;border:1px solid var(--line);border-radius:30px;padding:22px;box-shadow:var(--shadow);position:relative}
    .route-preview .top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
    .route-preview .badge{font-size:12px;font-weight:900;color:var(--blue);background:#edf3ff;padding:7px 9px;border-radius:999px}
    .route-preview h3{font-size:23px;letter-spacing:-.03em;margin:0 0 5px}
    .route-preview p{color:var(--muted);margin:0;font-size:14px}
    .preview-progress{margin:20px 0 18px;height:8px;background:#edf0f5;border-radius:999px;overflow:hidden}.preview-progress i{display:block;height:100%;width:43%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:999px}
    .today{border:1px solid #dbe6ff;background:#f7f9ff;border-radius:18px;padding:16px}
    .today small{font-weight:900;color:var(--blue);text-transform:uppercase;letter-spacing:.07em}.today strong{display:block;margin:4px 0 2px;font-size:17px}.today span{font-size:13px;color:var(--muted)}
    .dots{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:16px}.dot{height:34px;border-radius:10px;display:grid;place-items:center;background:#f1f3f7;color:#8b93a1;font-size:12px;font-weight:900}.dot.done{background:#eaf7f0;color:var(--green)}.dot.now{background:var(--ink);color:#fff}

    section{padding:76px 0}.soft{background:var(--soft)}
    .section-head{max-width:780px;margin-bottom:30px}.kicker{font-size:12px;color:var(--blue);font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}.section-head h2{font-size:clamp(31px,4vw,48px);letter-spacing:-.045em;line-height:1.08;margin:0 0 12px}.section-head p{font-size:17px;color:var(--muted);margin:0;line-height:1.65}

    .finder{border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
    .finder-grid{display:grid;grid-template-columns:.92fr 1.08fr}
    .finder-form{padding:30px;border-right:1px solid var(--line)}
    .finder-result{padding:30px;background:linear-gradient(160deg,#f8faff,#fff)}
    .field{margin-bottom:18px}.field label{display:block;font-size:13px;font-weight:850;margin-bottom:8px}.field select{width:100%;height:50px;border:1px solid #dce2eb;background:white;border-radius:13px;padding:0 13px;color:var(--ink);outline:none}.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(33,88,213,.1)}
    .finder-note{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.55}
    .result-empty{min-height:335px;display:grid;place-items:center;text-align:center;color:var(--muted)}
    .result-empty strong{display:block;color:var(--ink);font-size:19px;margin-bottom:5px}
    .result-card{display:none}.result-card.show{display:block}
    .result-card .r-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:850;background:#edf2f8;color:#465164}.pill.blue{background:#eaf1ff;color:var(--blue)}
    .result-card h3{font-size:28px;line-height:1.15;letter-spacing:-.035em;margin:8px 0 10px}.result-card>p{color:var(--muted);margin:0 0 18px}.result-why{border-top:1px solid var(--line);padding-top:15px;margin-top:16px;font-size:13px;color:#4e5969}.result-why strong{color:var(--ink)}
    .alt-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#6c7583;margin:18px 0 8px}.alts{display:grid;gap:8px}.alt{padding:10px 12px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:13px;font-weight:750;cursor:pointer;text-align:left}

    .family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.family{border:1px solid var(--line);border-radius:20px;padding:20px;background:#fff;transition:.2s}.family:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.family .f-symbol{width:44px;height:44px;border-radius:14px;background:#eff4ff;color:var(--blue);display:grid;place-items:center;font-weight:950;margin-bottom:14px}.family h3{font-size:18px;margin:0 0 6px;letter-spacing:-.02em}.family p{margin:0;color:var(--muted);font-size:14px}

    .toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-weight:800;font-size:13px;cursor:pointer}.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}
    .route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.route-card{border:1px solid var(--line);background:#fff;border-radius:22px;padding:20px;display:flex;flex-direction:column;min-height:285px;transition:.2s}.route-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.route-card .route-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--blue);margin-bottom:12px}.route-card h3{font-size:21px;letter-spacing:-.028em;line-height:1.22;margin:0 0 9px}.route-card p{font-size:14px;color:var(--muted);margin:0 0 17px}.route-card .meta-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;margin-bottom:15px}.route-card button{width:100%}

    .logic{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px}.logic-step{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}.logic-step b{font-size:12px;color:var(--blue);display:block;margin-bottom:8px}.logic-step strong{display:block;font-size:17px;margin-bottom:5px}.logic-step span{font-size:13px;color:var(--muted)}
    .logic-note{margin-top:18px;padding:16px 18px;border-radius:16px;background:#edf5ff;border:1px solid #dbe8ff;color:#334156;font-size:14px}.logic-note strong{color:var(--ink)}

    .role-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.role{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}.role .tag{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--blue)}.role h3{font-size:16px;margin:6px 0 4px}.role p{font-size:13px;color:var(--muted);margin:0}.role a{display:inline-block;margin-top:10px;color:var(--blue);font-size:12px;font-weight:850}

    .compare{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.compare article{border-radius:22px;padding:24px;border:1px solid var(--line);background:#fff}.compare .num{font-size:12px;font-weight:900;color:var(--blue)}.compare h3{font-size:22px;margin:8px 0 7px}.compare p{color:var(--muted);font-size:14px;margin:0}.compare article:last-child{border-color:#cfdcff;background:#f8faff}

    .cta{padding:34px;border-radius:28px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}.cta h2{font-size:30px;letter-spacing:-.04em;margin:0 0 7px}.cta p{color:#bec7d5;margin:0;max-width:680px}.cta .btn{background:#fff;color:var(--ink)}
    footer{padding:32px 0 40px;border-top:1px solid var(--line);color:#6d7685;font-size:13px}.foot{display:flex;justify-content:space-between;gap:20px;align-items:center}.foot nav{display:flex;gap:14px;flex-wrap:wrap}

    dialog{width:min(920px,calc(100% - 24px));max-height:90vh;border:0;border-radius:26px;padding:0;box-shadow:0 30px 80px rgba(4,12,28,.25);overflow:hidden}dialog::backdrop{background:rgba(6,12,24,.58);backdrop-filter:blur(3px)}
    .modal-head{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--line);padding:20px 22px;display:flex;gap:16px;justify-content:space-between;align-items:flex-start}.modal-head h2{font-size:26px;line-height:1.1;letter-spacing:-.035em;margin:4px 0}.modal-head p{margin:0;color:var(--muted);font-size:13px}.close{border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:20px}.modal-body{padding:22px;overflow:auto;max-height:calc(90vh - 105px)}
    .route-summary{display:grid;grid-template-columns:1fr 220px;gap:16px;margin-bottom:20px}.summary-box{border:1px solid var(--line);background:var(--soft);border-radius:16px;padding:14px}.summary-box strong{display:block;font-size:13px;margin-bottom:4px}.summary-box span{font-size:12px;color:var(--muted)}
    .route-progressbar{height:8px;background:#e8edf4;border-radius:999px;overflow:hidden;margin-top:9px}.route-progressbar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));width:0%}
    .timeline{display:grid;gap:10px}.day{border:1px solid var(--line);border-radius:17px;background:#fff;overflow:hidden}.day-head{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:14px}.day-index{width:42px;height:42px;border-radius:13px;background:#f0f3f7;display:grid;place-items:center;font-weight:900;font-size:13px}.day.done .day-index{background:#e8f6ef;color:var(--green)}.day h4{margin:0 0 3px;font-size:15px}.day .day-sub{font-size:12px;color:var(--muted)}.exp{font-size:11px;font-weight:900;color:var(--blue);background:#edf3ff;border-radius:999px;padding:6px 8px;white-space:nowrap}.day-content{display:none;border-top:1px solid var(--line);padding:14px 14px 15px;background:#fbfcfe}.day.open .day-content{display:block}.day-content p{margin:0 0 12px;font-size:13px;color:#4f5a6b}.day-actions{display:flex;gap:8px;flex-wrap:wrap}.small-btn{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 11px;font-size:12px;font-weight:850;cursor:pointer}.small-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.toggle-day{border:0;background:transparent;font-weight:900;color:#606b7c;cursor:pointer;padding:8px}
    .done-btn.done{background:#e9f7ef;color:var(--green);border-color:#cfe9da}
    .route-rule{margin-top:18px;border-radius:16px;padding:14px;background:#fff8e8;border:1px solid #f0dfb8;font-size:12px;color:#6e5521}

    @media(max-width:980px){
      .navlinks,.nav-cta{display:none}.menu-btn{display:block}.hero-grid,.finder-grid{grid-template-columns:1fr}.hero{padding-top:54px}.route-preview{max-width:720px}.finder-form{border-right:0;border-bottom:1px solid var(--line)}.family-grid,.route-grid{grid-template-columns:repeat(2,1fr)}.logic{grid-template-columns:repeat(2,1fr)}.role-grid{grid-template-columns:repeat(3,1fr)}
    }
    @media(max-width:680px){
      .wrap{width:min(calc(100% - 24px),var(--max))}.nav{height:64px}.brand small{display:none}.hero{padding:44px 0 32px}.hero-grid{gap:30px}h1{font-size:42px}.lead{font-size:17px}.route-preview{padding:17px;border-radius:22px}.dots{gap:5px}.dot{height:30px}.section-head h2{font-size:34px}section{padding:56px 0}.finder-form,.finder-result{padding:20px}.family-grid,.route-grid,.role-grid,.compare{grid-template-columns:1fr}.logic{grid-template-columns:1fr 1fr}.cta{grid-template-columns:1fr;padding:24px}.foot{align-items:flex-start;flex-direction:column}.route-summary{grid-template-columns:1fr}.day-head{grid-template-columns:44px 1fr}.day-head .exp{grid-column:2}.toggle-day{position:absolute;right:32px;margin-top:4px}.modal-head{padding:17px}.modal-body{padding:15px}.modal-head h2{font-size:22px}
    }
    @media(max-width:430px){.logic{grid-template-columns:1fr}.hero-actions .btn{width:100%}.micro{display:grid;gap:7px}.finder-result{min-height:360px}.route-card{min-height:0}}
