.routes-public{--route-ink:#1c3443;--route-accent:#a7504a;--route-paper:#f3f0eb;--route-muted:#53616b;padding-top:28px;padding-bottom:64px;color:var(--route-ink)}
.routes-public a{color:var(--route-accent);text-underline-offset:4px}.routes-public :is(a,button,summary,select):focus-visible{outline:2px solid var(--route-accent);outline-offset:5px}.routes-public ::selection{background:#ead2cc;color:#1c3443}.routes-nav{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:.94rem}.routes-nav a{text-decoration:none}.routes-nav a:last-child{margin-left:auto}.routes-heading{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:56px;align-items:end;margin:40px 0}.routes-public h1{font-size:clamp(2.3rem,4.3vw,4rem);line-height:1.06;letter-spacing:-.035em;margin:0 0 22px;text-wrap:balance}.routes-lead{font-size:1.4rem;font-weight:600;line-height:1.45;max-width:38ch}.routes-intro{max-width:66ch;line-height:1.65;margin-bottom:0}.routes-terms{background:var(--route-paper);padding:24px;font-size:.9rem;line-height:1.75;border-radius:12px}.routes-public section{padding:0;margin:64px 0;scroll-margin-top:100px}.routes-public h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.025em;margin:0 0 16px}.routes-public section>p{max-width:70ch;line-height:1.65}.routes-public h3{line-height:1.25;letter-spacing:-.02em;text-wrap:balance}.routes-month{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);background:#102538;color:#fff;border-radius:16px;overflow:hidden}.month-copy{padding:40px}.routes-month h2{font-size:1rem;letter-spacing:0;font-weight:500;color:#e6b9ad;margin:0 0 24px}.routes-month h3{font-size:clamp(1.5rem,2.5vw,2.15rem);margin:0 0 18px}.routes-month p{line-height:1.65;color:#e2e8ec;max-width:52ch}.routes-month a{display:inline-block;margin-top:10px;color:#fff;background:#a7504a;padding:13px 20px;border-radius:10px;text-decoration:none;font-weight:600}.month-cover{min-height:320px}.month-cover img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1.15}.routes-filter{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:28px 0 36px}.routes-filter label{display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:600;max-width:100%}.routes-filter select{font:inherit;color:var(--route-ink);padding:13px 40px 13px 14px;max-width:100%;background:#fff;border:1px solid #c6ced2;border-radius:8px;min-width:280px}.routes-filter p{color:var(--route-muted);font-size:.9rem}.routes-list{display:flex;flex-direction:column;gap:26px}.route-item{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:36px;padding:28px;background:#f6f5f2;border-radius:16px;scroll-margin-top:100px}.route-cover{align-self:start}.route-cover img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.route-copy{min-width:0}.route-item h3{font-size:clamp(1.3rem,2.15vw,1.75rem);margin:8px 0 16px;max-width:40ch}.route-item p{line-height:1.65;margin:12px 0}.route-item .route-meta{font-size:.85rem;line-height:1.55;color:var(--route-muted);margin:0 0 10px}.route-item .route-meta:first-child{color:#874139;font-weight:600}.route-action{margin-top:18px}.routes-button{font:inherit;font-size:.94rem;font-weight:600;display:inline-block;padding:12px 20px;border:0;border-radius:10px;background:var(--route-accent);color:#fff!important;text-decoration:none;cursor:pointer;line-height:1.5;text-align:center}.routes-button:hover,.routes-month a:hover{background:#894039}.routes-button:disabled{opacity:.65;cursor:wait}.route-item summary,.public-cycle summary{font-weight:600;cursor:pointer;line-height:1.5;padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;list-style:none;min-height:44px}.route-item summary::-webkit-details-marker,.public-cycle summary::-webkit-details-marker{display:none}.route-item summary::after,.public-cycle summary::after{content:"";flex:none;width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-right:5px;transition:transform .18s ease-out}.route-item details[open]>summary::after,.public-cycle[open]>summary::after{transform:rotate(225deg)}.route-item ol,.public-cycle ol{list-style:none;counter-reset:step;padding:0;margin:14px 0}.route-item li,.public-cycle li{position:relative;padding:14px 0 14px 44px;counter-increment:step}.route-item li::before,.public-cycle li::before{content:counter(step);position:absolute;left:0;top:13px;width:28px;height:28px;border-radius:50%;background:#e7e3db;color:var(--route-ink);display:grid;place-items:center;font-size:.8rem;font-weight:600}.route-item li p,.public-cycle li p{font-size:.94rem;margin:.4rem 0 0;line-height:1.65;color:#455660}.route-item details[open]{margin-top:16px;background:#fff;padding:8px 20px;border-radius:10px}.public-cycle{background:var(--route-paper);padding:20px 24px;border-radius:14px;margin:18px 0}.public-cycle summary{justify-content:flex-start;font-size:1.3rem;padding:0;gap:26px}.public-cycle summary>span{flex:1}.public-cycle summary strong{display:block;font-weight:650;line-height:1.35;text-wrap:balance}.cycle-cover{width:136px;height:100px;object-fit:cover;border-radius:8px;flex:none}.cycle-count{display:block;font-size:.86rem;font-weight:400;color:#53616b;margin-top:10px}.public-cycle>p,.public-cycle>ol{margin-left:162px;max-width:70ch;line-height:1.65}.public-cycle li h3{font-size:1.05rem;margin:0}.public-cycle small{display:block;margin-top:8px;color:#874139}.routes-help{background:#eee7e1;padding:32px!important;border-radius:14px}.routes-help h2{font-size:1.6rem}.routes-help p{max-width:70ch}.routes-public [hidden]{display:none!important}.routes-public #routes-feedback:empty{display:none}.routes-public #routes-feedback{padding:16px;background:#f5e6df;border-radius:8px}.routes-public p,.routes-public h3,.routes-public summary{overflow-wrap:anywhere}
@media(max-width:950px){.routes-heading{grid-template-columns:1fr;gap:24px}.routes-terms{max-width:75ch}.route-item{grid-template-columns:220px minmax(0,1fr);gap:24px;padding:24px}.month-copy{padding:28px}.routes-month h3{font-size:1.7rem}}
@media(max-width:600px){.routes-public{padding-top:20px}.routes-nav{gap:12px 20px;font-size:.86rem}.routes-nav a:last-child{margin-left:0}.routes-heading{margin:28px 0}.routes-public h1{font-size:2.25rem;margin-bottom:18px}.routes-lead{font-size:1.2rem}.routes-intro{font-size:.98rem}.routes-terms{font-size:.86rem;padding:18px}.routes-public section{margin:40px 0}.routes-public h2{font-size:1.8rem}.routes-month{display:flex;flex-direction:column}.month-cover{min-height:0;order:-1}.month-cover img{height:176px;aspect-ratio:auto;object-position:center}.month-copy{padding:24px}.routes-month h2{margin-bottom:16px}.routes-month h3{font-size:1.6rem}.routes-month p{font-size:.94rem}.routes-filter{display:block;margin-bottom:24px}.routes-filter select{width:100%;min-width:0;box-sizing:border-box}.route-item{display:block;padding:18px}.route-cover img{height:154px;aspect-ratio:auto;object-position:center}.route-copy{padding-top:20px}.route-item h3{font-size:1.35rem}.route-item p{font-size:.96rem}.routes-button{box-sizing:border-box;max-width:100%;width:100%}.route-item details[open]{padding:4px 12px}.route-item summary{font-size:.94rem}.public-cycle{padding:18px}.public-cycle summary{gap:14px;font-size:1.12rem;align-items:start}.cycle-cover{width:72px;height:86px}.cycle-count{font-size:.8rem}.public-cycle summary::after{margin-top:8px}.public-cycle>p,.public-cycle>ol{margin-left:0}.public-cycle>p{font-size:.95rem}.routes-help{padding:24px!important}}
@media(prefers-reduced-motion:reduce){.routes-public *{transition:none!important;scroll-behavior:auto!important}}
/* Author portraits complement the lecture artwork without replacing it. */
.cycle-visuals{display:block;position:relative;flex:none!important;width:166px;height:112px}.cycle-visuals .cycle-cover{width:136px;height:100px}.cycle-person{position:absolute;right:0;bottom:0;width:76px;height:76px;object-fit:cover;border-radius:50%;border:4px solid var(--route-paper);box-sizing:border-box}.cycle-teacher{display:block;font-size:.9rem;font-weight:500;line-height:1.5;margin-top:10px;color:var(--route-ink)}.cycle-teacher+.cycle-count{margin-top:4px}.public-cycle>p,.public-cycle>ol{margin-left:192px}
@media(max-width:600px){.cycle-visuals{width:76px;height:112px}.cycle-visuals .cycle-cover{width:76px;height:58px}.cycle-person{width:66px;height:66px;right:0;bottom:0;border-width:3px}.cycle-teacher{font-size:.84rem;margin-top:8px}.public-cycle>p,.public-cycle>ol{margin-left:0}}
