:root{--navy:#012230;--orange:#ee650e;--orange-dark:#c4530b;--red:#d60000;--blue:#1acdf0;--cream:#f0ece0;--white:#fff;--ink:#012230;--muted:#5d6e75;--bg:#f4f1e8;--card:#fff;--border:#e3ddcd;--radius:12px;--font-display:"Oswald", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}a{color:var(--orange-dark);text-decoration:none}a:hover{text-decoration:none}h1,h2{font-family:var(--font-display);letter-spacing:.5px;font-weight:700;line-height:1.05}h1{margin:0 0 1rem;font-size:2.2rem}h2{margin:1.75rem 0 .75rem;font-size:1.7rem}h3{margin:0;font-size:1.1rem}.muted{color:var(--muted)}.small{font-size:.85rem}main{max-width:520px;margin:0 auto;padding:2rem 1.25rem 4rem}main.wide{max-width:920px}.site-header{border-bottom:1px solid var(--border);background:var(--white);z-index:10;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:1rem;max-width:920px;margin:0 auto;padding:.6rem 1.25rem;display:flex}.brand{align-items:center;gap:.55rem;display:flex}.brand:hover{text-decoration:none}.brand-logo{border-radius:9px;width:38px;height:38px;display:block}.brand-text{font-family:"Karantina", var(--font-display);color:var(--navy);letter-spacing:.5px;font-size:1.7rem;font-weight:700;line-height:1}.nav-links{align-items:center;gap:1.1rem;display:flex}.nav-links a{color:var(--ink);font-size:.95rem}.nav-cta{background:var(--orange);border-radius:999px;padding:.4rem .95rem;font-weight:600;color:#fff!important}.nav-cta:hover{background:var(--orange-dark);text-decoration:none}.inline-form{margin:0;display:inline}.link-btn{color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;margin:0;padding:0}.link-btn:hover{color:var(--orange-dark)}.nav-toggle{cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;display:none}.nav-toggle:hover{background:var(--cream)}.nav-toggle-bar{background:var(--navy);border-radius:2px;width:100%;height:2px;display:block}.nav-backdrop,.nav-close{display:none}body.nav-open-lock{overflow:hidden}@media (max-width:768px){.nav-toggle{display:inline-flex}.nav-backdrop{opacity:0;pointer-events:none;z-index:40;background:#01223073;transition:opacity .25s;display:block;position:fixed;inset:0}.nav-backdrop.open{opacity:1;pointer-events:auto}.nav-links{background:var(--white);border-left:1px solid var(--border);z-index:50;flex-direction:column;align-items:stretch;gap:.25rem;width:min(280px,82vw);height:100dvh;padding:4rem 1.25rem 1.5rem;transition:transform .28s;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-8px 0 28px #0122302e}.nav-links.open{transform:translate(0)}.nav-links a,.nav-links .nav-account,.nav-links .nav-cta{border-radius:10px;width:100%;padding:.75rem .6rem;font-size:1.02rem}.nav-links a:hover,.nav-links .nav-account:hover{background:var(--cream);text-decoration:none}.nav-links .inline-form{display:block}.nav-links .link-btn{text-align:left;width:100%;padding:.75rem .6rem;font-size:1.02rem}.nav-links .link-btn:hover{background:var(--cream);color:var(--orange-dark);border-radius:10px}.nav-links .nav-cta{text-align:center;margin-top:.4rem}.nav-close{cursor:pointer;width:40px;height:40px;color:var(--navy);background:0 0;border:0;font-size:2rem;line-height:1;display:block;position:absolute;top:.6rem;right:.8rem}.nav-close:hover{color:var(--orange)}}@media (prefers-reduced-motion:reduce){.nav-links,.nav-backdrop{transition:none}}.hero{background:radial-gradient(120% 90% at 50% -10%, #ee650e8c, #d6000026 45%, transparent 70%), var(--navy);color:var(--cream)}.hero-inner{text-align:center;max-width:920px;margin:0 auto;padding:3.5rem 1.25rem 4rem}.hero-logo{border-radius:18px;width:150px;height:150px;margin-bottom:1.25rem;box-shadow:0 10px 30px #00000059}.hero h1{color:var(--white);margin:0 0 .6rem;font-size:3rem}.hero-sub{color:#e7ddd0;max-width:46ch;margin:0 auto;font-size:1.1rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.6rem;display:flex}.btn-primary,.btn-outline{border-radius:999px;padding:.65rem 1.4rem;font-size:1rem;font-weight:700}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark);text-decoration:none}.btn-outline{border:1.5px solid var(--cream);color:var(--cream)}.btn-outline:hover{background:#f0ece024;text-decoration:none}.features{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:2.5rem;display:grid}.feature-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);border-top:3px solid var(--orange);padding:1.25rem}.feature-card h3{color:var(--navy);margin-bottom:.5rem}.feature-card p{color:var(--muted);margin:0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.race-card,.workout-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.1rem;display:flex}.race-card-head,.workout-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.race-card-head h3 a,.workout-card-head h3{color:var(--navy)}.race-meta{color:var(--muted);margin:.4rem 0;font-size:.92rem}.race-card-actions{gap:1rem;margin-top:auto;padding-top:.75rem;font-size:.92rem;display:flex}.chips{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;display:flex}.chip{color:#075b6b;background:#e7f8fc;border:1px solid #bfeef8;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.rating-badge{white-space:nowrap;color:var(--navy);font-size:.85rem;font-weight:700}.rating-badge.muted{color:var(--muted);font-weight:400}.price-tier{background:var(--cream);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .6rem;font-size:.82rem;line-height:1.35;display:inline-flex}.price-tier .pt-sym{color:var(--navy);letter-spacing:-.03em;font-weight:700}.price-tier .pt-label{color:var(--muted);letter-spacing:.2px;font-size:.78rem;font-weight:600}.type-chip{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.type-chip.type-yol{color:#35505c;background:#eaeef0;border:1px solid #d5dee2}.type-chip.type-trail{color:#22633c;background:#e8f3ea;border:1px solid #c8e3d0}.race-filters{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0 1.25rem;padding:.85rem 1rem}.filter-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.filter-group+.filter-group{margin-top:.6rem}.filter-label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;min-width:62px;font-size:.78rem;font-weight:700}.filter-chip{background:var(--bg);color:var(--ink);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.85rem;font-weight:600;display:inline-block}.filter-chip:hover{border-color:var(--orange);color:var(--orange-dark);text-decoration:none}.filter-chip.active,.filter-chip.active:hover{background:var(--navy);border-color:var(--navy);color:#fff!important}.filter-summary{color:var(--muted);margin:.75rem 0 0;font-size:.85rem}.filter-clear{color:var(--orange-dark);font-weight:600}@media (max-width:560px){.filter-label{min-width:100%;margin-bottom:.1rem}}.post-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem;margin-top:1.5rem;display:grid}.post-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.post-card:hover{border-color:var(--orange);text-decoration:none;transform:translateY(-2px)}.post-card:hover h3{color:var(--orange-dark)}.post-cover{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.post-cover-empty{background:var(--cream);justify-content:center;align-items:center;font-size:2.2rem;display:flex}.post-body{flex-direction:column;flex:1;gap:.4rem;padding:.9rem 1rem 1.1rem;display:flex}.post-body h3{margin:0;line-height:1.3}.post-excerpt{color:var(--muted);margin:0;font-size:.92rem;line-height:1.5}.post-date{color:var(--muted);margin-top:auto;padding-top:.35rem;font-size:.8rem}.post-cat{color:#075b6b;white-space:nowrap;background:#e7f8fc;border:1px solid #bfeef8;border-radius:999px;align-self:flex-start;padding:.12rem .6rem;font-size:.76rem;font-weight:700}main.post-main{max-width:720px}.post-title{margin:.6rem 0 .3rem;font-size:2rem;line-height:1.2}.post-meta{color:var(--muted);margin:0 0 1.2rem;font-size:.9rem}.post-hero{border-radius:var(--radius);border:1px solid var(--border);width:100%;margin-bottom:1.5rem;display:block}.post-article{font-size:1.05rem;line-height:1.75}@media (max-width:560px){.post-title{font-size:1.55rem}.post-article{font-size:1rem}}.md>:first-child{margin-top:0}.md h2{color:var(--navy);margin:1.8rem 0 .6rem;font-size:1.35rem}.md h3{color:var(--navy);margin:1.4rem 0 .5rem;font-size:1.12rem}.md p{margin:0 0 1rem}.md ul,.md ol{margin:0 0 1rem;padding-left:1.3rem}.md li{margin-bottom:.35rem}.md a{color:var(--orange-dark);font-weight:600}.md strong{color:var(--navy)}.md blockquote{border-left:3px solid var(--orange);background:var(--cream);color:var(--muted);border-radius:0 8px 8px 0;margin:1.2rem 0;padding:.6rem 1rem}.md code{background:var(--cream);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.9em}.md pre{background:var(--navy);color:#e8f1f4;border-radius:10px;margin:0 0 1rem;padding:1rem;overflow-x:auto}.md pre code{color:inherit;background:0 0;border:0;padding:0}.md-img{border:1px solid var(--border);border-radius:10px;max-width:100%;height:auto;margin:1.2rem 0;display:block}.md table{border-collapse:collapse;width:100%;margin:0 0 1rem;font-size:.94rem}.md th,.md td{border:1px solid var(--border);text-align:left;padding:.5rem .7rem}.md th{background:var(--cream);font-weight:700}.md hr{border:0;border-top:1px solid var(--border);margin:1.8rem 0}.status-pill{vertical-align:middle;border-radius:999px;padding:.08rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.status-pill.live{color:#22633c;background:#e8f3ea;border:1px solid #c8e3d0}.status-pill.draft{background:var(--cream);color:var(--muted);border:1px solid var(--border)}.check-row{align-items:center;gap:.5rem;margin:1rem 0 .25rem;font-size:.95rem;font-weight:400;display:flex}.check-row input{width:auto;margin:0}.post-uploader{margin-bottom:.25rem}.uploaded-url{background:var(--cream);border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:.75rem;margin-top:.75rem;padding:.6rem;display:flex}.uploaded-thumb{object-fit:cover;border:1px solid var(--border);border-radius:8px;flex:none;width:84px;height:60px}.md-snippet{background:var(--white);border:1px solid var(--border);word-break:break-all;color:var(--navy);border-radius:6px;padding:.35rem .5rem;font-size:.78rem;display:block}.attendees{flex-wrap:wrap;gap:.35rem;margin:.6rem 0;display:flex}.attendee-pill{color:#075b6b;background:#e9f9fd;border:1px solid #bfeef8;border-radius:999px;padding:.12rem .55rem;font-size:.8rem}.attend-count{color:var(--navy);font-size:.9rem;font-weight:700}.btn-join,.btn-leave{cursor:pointer;border:0;border-radius:999px;width:100%;margin:.4rem 0 0;padding:.5rem 1rem;font-size:.92rem;font-weight:700}.btn-join{background:var(--orange);color:#fff}.btn-join:hover{background:var(--orange-dark)}.btn-leave{color:var(--navy);border:1.5px solid var(--navy);background:#fff}.blog{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin-top:1.75rem;padding:1.25rem}.blog h2{margin-top:0}.review-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.review{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.review-head{justify-content:space-between;align-items:center;display:flex}.review p{margin:.4rem 0}.stars{color:var(--orange);letter-spacing:2px}.review-form{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0;padding:1.1rem}textarea{width:100%;font:inherit;resize:vertical;border:1px solid #ccc;border-radius:8px;min-height:80px;padding:.6rem .75rem}select{font:inherit;border:1px solid #ccc;border-radius:8px;padding:.5rem .6rem}label{margin:.75rem 0 .25rem;font-size:.9rem;font-weight:600;display:block}input{border:1px solid #ccc;border-radius:8px;width:100%;padding:.6rem .75rem;font-size:1rem}button{cursor:pointer;background:var(--orange);color:#fff;border:0;border-radius:8px;margin-top:1rem;margin-right:.5rem;padding:.6rem 1.1rem;font-size:1rem;font-weight:600}button.secondary{color:var(--navy);border:1px solid var(--navy);background:#fff}.msg-error{color:var(--red);font-size:.9rem}.msg-ok{color:#0a7d28;font-size:.9rem}@media (max-width:600px){.hero h1{font-size:2.1rem}.brand-text{font-size:1.25rem}}.admin-bar{border-bottom:2px solid var(--navy);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.admin-bar>strong{font-family:var(--font-display);color:var(--navy);font-size:1.3rem}.admin-nav{gap:1rem;display:flex}.admin-nav a{color:var(--navy);font-weight:600}.admin-link{display:block}.admin-link:hover{border-top-color:var(--navy);text-decoration:none}.admin-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-row{background:var(--card);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.admin-row-actions{white-space:nowrap;align-items:center;gap:.9rem;display:flex}.link-btn.danger{color:var(--red);font-weight:600}.avatar-xs{object-fit:cover;vertical-align:middle;border-radius:50%;width:24px;height:24px}.avatar-md{object-fit:cover;border-radius:50%;width:72px;height:72px}.avatar-lg{object-fit:cover;border-radius:50%;width:120px;height:120px}.avatar-placeholder{background:var(--cream);color:var(--muted);border:1px solid var(--border);justify-content:center;align-items:center;font-size:1.8rem;display:flex}.nav-account{color:var(--ink);align-items:center;gap:.4rem;display:inline-flex}.account-head{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.account-head h1{margin:0}.account-actions{align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.avatar-upload{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.upload-btn{cursor:pointer;background:var(--navy);color:#fff;border-radius:999px;padding:.5rem 1rem;font-size:.92rem;font-weight:600;display:inline-block}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-top:1rem;display:grid}.gallery-photo,.gallery-item img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:10px;width:100%}.gallery-item{position:relative}.gallery-item .link-btn{background:#ffffffe6;border-radius:6px;padding:2px 8px;position:absolute;top:6px;right:8px}@media (max-width:560px){.brand-text{font-size:1.15rem}.hero-inner{padding:2.5rem 1.25rem 3rem}.hero h1{font-size:1.9rem}.hero-logo{width:110px;height:110px}}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin:2.5rem 0 .25rem;display:flex}.section-head:first-child{margin-top:0}.section-head h2{margin:0}.see-all{color:var(--orange-dark);white-space:nowrap;font-size:.95rem;font-weight:700}.section-head+.features{margin-top:1.25rem}.section-head+.next-workout,.section-head+.next-empty{margin-top:.75rem}.day-chip{vertical-align:middle;background:var(--navy);color:var(--cream);white-space:nowrap;border-radius:999px;margin-right:.5rem;padding:.12rem .6rem;font-size:.78rem;font-weight:700;display:inline-block}.day-chip.soon{background:var(--red)}.next-workout{background:radial-gradient(120% 140% at 0% 0%, #ee650e2e, transparent 55%), var(--navy);color:var(--cream);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;padding:1.4rem 1.5rem;display:flex}.nw-type{font-family:var(--font-display);text-transform:uppercase;letter-spacing:1px;color:var(--blue);font-size:.95rem;font-weight:700}.next-workout h3{font-family:var(--font-display);color:var(--white);letter-spacing:.5px;margin:.15rem 0 .4rem;font-size:1.6rem}.nw-meta{color:#d9d2c6;margin:0;font-size:.95rem}.nw-right{flex-direction:column;align-items:flex-end;gap:.55rem;display:flex}.nw-count{color:var(--cream);white-space:nowrap;font-size:.9rem}.btn-join-link{background:var(--orange);color:#fff;white-space:nowrap;border-radius:999px;padding:.55rem 1.25rem;font-weight:700;display:inline-block}.btn-join-link:hover{background:var(--orange-dark);text-decoration:none}.next-empty{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);padding:1.1rem 1.25rem}@media (max-width:560px){.next-workout{flex-direction:column;align-items:flex-start}.nw-right{align-items:flex-start}}.steps{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.step{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.step-num{font-family:var(--font-display);color:var(--orange);letter-spacing:1px;margin-bottom:.5rem;font-size:1.6rem;font-weight:700;line-height:1;display:inline-block}.step h3{color:var(--navy);margin-bottom:.4rem}.step p{color:var(--muted);margin:0}.contact-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:1.25rem;padding:1.5rem;display:grid}.contact-block .contact-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 .3rem;font-size:.85rem;font-weight:600}.contact-block a{font-weight:600}.contact-block p{margin:0}.contact-socials{flex-wrap:wrap;gap:.6rem;margin-top:.2rem;display:flex}.contact-socials a{border:1px solid var(--border);color:var(--navy);border-radius:999px;padding:.3rem .9rem;font-size:.9rem;font-weight:600}.contact-socials a:hover{background:var(--cream);text-decoration:none}.ig-follow{background:var(--card);border:1px solid var(--border);border-radius:16px;align-items:center;gap:1rem;margin-top:1.25rem;padding:1rem 1.25rem;transition:box-shadow .18s;display:flex;box-shadow:0 8px 24px #0122300f}.ig-follow:hover{text-decoration:none;box-shadow:0 10px 30px #0122301a}.ig-follow-icon{background:radial-gradient(circle at 30% 107%,#fdf497 0% 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%);border-radius:15px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.ig-follow-text{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.ig-follow-title{font-family:var(--font-display);color:var(--navy);letter-spacing:.3px;font-size:1.05rem;font-weight:600}.ig-follow-handle{color:var(--muted);font-size:.9rem}.ig-follow-btn{border:1.5px solid var(--border);color:var(--orange-dark);font-family:var(--font-display);text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap;border-radius:999px;flex:none;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;transition:background .18s,color .18s,border-color .18s}.ig-follow:hover .ig-follow-btn{background:var(--orange);border-color:var(--orange);color:#fff}@media (max-width:560px){.ig-follow{flex-wrap:wrap}.ig-follow-text{flex-basis:calc(100% - 52px - 1rem)}.ig-follow-btn{text-align:center;width:100%;margin-top:.25rem}}.strava-route-embed{margin-top:.85rem}.strava-route-embed iframe{border:1px solid var(--border);border-radius:var(--radius);display:block;width:100%!important}.auth-backdrop{z-index:100;background:#0122308c;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.auth-modal{background:linear-gradient(135deg,#ffcf9e 0%,#ffe3bf 25%,#bfe7f5 55%,#a9dcf2 75%,#ffcf9e 100%) 0 0/300% 300%;border-radius:16px;width:100%;max-width:420px;padding:1.75rem 1.5rem 1.5rem;animation:8s ease-in-out infinite auth-bg-shift;position:relative;box-shadow:0 20px 60px #01223059}@keyframes auth-bg-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.auth-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;margin:0;padding:0;font-size:1.6rem;line-height:1;position:absolute;top:.6rem;right:.6rem}.auth-close:hover{background:var(--bg);color:var(--ink)}.auth-tabs{border-bottom:1px solid var(--border);gap:.5rem;margin-bottom:1rem;display:flex}.auth-tab{color:var(--muted);font-family:var(--font-display);letter-spacing:.3px;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin:0;padding:.6rem .25rem;font-size:1rem;font-weight:600}.auth-tab.active{color:var(--navy);border-bottom-color:var(--orange)}.auth-title{font-family:var(--font-display);color:var(--navy);margin:0 0 .75rem;font-size:1.6rem}.auth-msg{margin:0 0 .75rem}.auth-field{margin-top:.9rem;position:relative}.auth-field input{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:100%;color:var(--ink);background:#ffffff8c;border:1px solid #ffffffa6;border-radius:10px;margin:0;padding:1.25rem .8rem .45rem;font-size:1rem}.auth-field input:focus{border-color:var(--orange);background:#ffffffc7;outline:none}.auth-field label{color:var(--muted);pointer-events:none;margin:0;padding:0;font-size:1rem;font-weight:400;transition:all .15s;display:block;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.auth-field input:focus+label,.auth-field input:not(:placeholder-shown)+label{color:var(--orange-dark);letter-spacing:.4px;text-transform:uppercase;font-size:.7rem;font-weight:600;top:.45rem;transform:translateY(0)}.auth-field.has-eye input{padding-right:4.6rem}.auth-eye{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;border-radius:8px;margin:0;padding:.35rem .6rem;font-size:.82rem;font-weight:600;position:absolute;top:.5rem;right:.5rem}.auth-eye:hover{background:var(--bg)}.auth-submit{background:var(--orange);color:#fff;width:100%;font-family:var(--font-display);letter-spacing:.5px;cursor:pointer;border:0;border-radius:999px;margin:1.1rem 0 0;padding:.7rem 1rem;font-size:1.05rem;font-weight:700}.auth-submit:hover{background:var(--orange-dark)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{text-align:center;color:var(--muted);margin:1rem 0 0;font-size:.92rem}.auth-switch button{color:var(--orange-dark);cursor:pointer;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:.92rem;font-weight:600}.auth-switch button:hover{text-decoration:none}@media (max-width:480px){.auth-modal{max-width:none}}@media (prefers-reduced-motion:reduce){.auth-field label{transition:none}.auth-modal{animation:none}}.gallery-photo{cursor:pointer;transition:transform .15s,box-shadow .15s}.gallery-photo:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0122302e}.lightbox{z-index:120;background:#012230d9;justify-content:center;align-items:center;padding:2rem 1rem;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:8px;width:auto;max-width:min(92vw,1100px);height:auto;max-height:86vh;box-shadow:0 20px 60px #00000080}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;width:44px;height:44px;margin:0;padding:0;font-size:1.8rem;line-height:1;position:absolute;top:1rem;right:1.1rem}.lightbox-close:hover{background:#ffffff40}.lightbox-nav{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;width:48px;height:48px;margin:0;padding:0;font-size:2rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#ffffff40}.lightbox-nav.prev{left:1rem}.lightbox-nav.next{right:1rem}@media (max-width:560px){.lightbox-nav{width:40px;height:40px;font-size:1.6rem}}.attend-actions{flex-direction:column;align-items:stretch;gap:.5rem;margin-top:.5rem;display:flex}.attend-actions a{text-align:center;border:1.5px solid var(--border);color:var(--orange-dark);border-radius:999px;padding:.45rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;display:block}.attend-actions a:hover{background:var(--orange);border-color:var(--orange);color:#fff;text-decoration:none}.attend-actions .inline-form{text-align:center;margin:0}.workout-list{flex-direction:column;gap:.85rem;margin-top:.5rem;display:flex}.workout-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-items:stretch;gap:1.1rem;padding:1rem 1.25rem;display:flex}.row-link{color:inherit;cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .15s}.row-link:hover{border-color:var(--orange);box-shadow:0 8px 22px #0122301a}.row-link:hover .wr-head h3{color:var(--orange-dark)}.wr-date{border-right:1px solid var(--border);min-width:62px;font-family:var(--font-display);flex-direction:column;flex:none;justify-content:center;align-items:center;padding-right:1.1rem;line-height:1;display:flex}.wr-month{letter-spacing:1px;color:var(--orange-dark);font-size:.78rem;font-weight:600}.wr-day{color:var(--navy);margin:.1rem 0;font-size:1.9rem;font-weight:700}.wr-time{color:var(--muted);font-size:.78rem}.wr-year{letter-spacing:.5px;color:var(--muted);font-size:.72rem;font-weight:600}.wr-main{flex:auto;min-width:0}.wr-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.wr-head h3{margin:0}.wr-meta{color:var(--muted);margin:.3rem 0 0;font-size:.95rem}.wr-desc{margin:.45rem 0 0}.wr-attend{margin-top:.55rem}.wr-actions{flex-direction:column;flex:none;justify-content:center;align-items:flex-end;gap:.5rem;display:flex}.wr-actions .attend-actions{margin-top:0}@media (max-width:640px){.workout-row{flex-wrap:wrap;gap:.75rem}.wr-date{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:baseline;gap:.4rem;width:100%;min-width:0;padding-bottom:.6rem;padding-right:0}.wr-day{margin:0;font-size:1.2rem}.wr-actions{align-items:stretch;width:100%}.wr-actions .attend-actions{justify-content:flex-start}}.cta-band{background:radial-gradient(120% 120% at 50% 0%, #ee650e59, #d600001a 50%, transparent 72%), var(--navy);color:var(--cream);margin-top:3.5rem}.cta-band-inner{text-align:center;max-width:920px;margin:0 auto;padding:3rem 1.25rem 3.25rem}.cta-band h2{color:var(--white);margin:0 0 .5rem;font-size:2.2rem}.cta-band p{color:#e7ddd0;max-width:50ch;margin:0 auto 1.5rem}.site-footer{background:var(--navy);color:var(--cream);border-top:3px solid var(--orange)}.footer-inner{grid-template-columns:1.4fr 1fr 1fr;gap:1.5rem 2rem;max-width:920px;margin:0 auto;padding:2.5rem 1.25rem 1.5rem;display:grid}.footer-brand{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.footer-brand img{border-radius:9px;width:40px;height:40px}.footer-brand span{font-family:var(--font-display);letter-spacing:.5px;color:var(--white);font-size:1.5rem;font-weight:700}.footer-tagline{color:#c8c0b2;max-width:36ch;margin:0;font-size:.92rem}.footer-col h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:1px;color:var(--blue);margin:0 0 .7rem;font-size:.9rem}.footer-col ul{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.footer-col a{color:var(--cream);font-size:.93rem}.footer-col a:hover{color:var(--white)}.footer-bottom{color:#b9b1a3;border-top:1px solid #f0ece026;max-width:920px;margin:0 auto;padding:1rem 1.25rem 1.75rem;font-size:.85rem}@media (max-width:600px){.cta-band h2{font-size:1.8rem}.footer-inner{grid-template-columns:1fr 1fr}.footer-brand-col{grid-column:1/-1}}.eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:2px;color:var(--orange-dark);margin-bottom:.6rem;font-size:.9rem;font-weight:600;display:block}.manifesto{background:var(--cream);border-bottom:1px solid var(--border)}.manifesto-inner{max-width:760px;margin:0 auto;padding:3rem 1.25rem 3.25rem}.manifesto-lead{font-family:var(--font-display);color:var(--navy);letter-spacing:.3px;margin:0 0 1rem;font-size:2.1rem;font-weight:600;line-height:1.18}.manifesto-lead em{color:var(--orange);font-style:normal}.manifesto p{color:var(--ink);max-width:62ch;margin:0}a.btn-join{text-align:center;text-decoration:none;display:block}a.btn-join:hover{background:var(--orange-dark);text-decoration:none}.route-loader{min-height:55vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.9rem;display:flex}.route-loader-text{font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;font-size:.95rem}.spinner{border:3px solid var(--border);border-top-color:var(--orange);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skel-line,.skel-chip{background:linear-gradient(90deg,#e9e4d6 25%,#f3efe4 37%,#e9e4d6 63%) 0 0/400% 100%;animation:1.4s infinite shimmer}.skel-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-height:150px;padding:1.1rem}.skel-line{border-radius:6px;height:14px;margin-bottom:.7rem}.skel-title{width:70%;height:20px}.skel-line.short{width:45%}.skel-chips{gap:.4rem;margin-top:.8rem;display:flex}.skel-chip{border-radius:999px;width:52px;height:22px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:600px){.manifesto-lead{font-size:1.7rem}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:1.8s}.skel-line,.skel-chip{animation:none}}.score-bars{gap:.55rem;margin:.85rem 0 0;display:grid}.score-bar{grid-template-columns:120px 1fr 34px;align-items:center;gap:.7rem;display:grid}.score-bar .bar-label{color:var(--ink);font-size:.9rem}.score-bar .bar-track{background:var(--border);border-radius:999px;width:100%;height:8px;display:block;overflow:hidden}.score-bar .bar-fill{background:var(--orange);border-radius:999px;height:100%;display:block}.score-bar .bar-val{color:var(--navy);text-align:right;font-size:.9rem;font-weight:700}.review-scores,.score-breakdown{flex-wrap:wrap;gap:.35rem;margin:.5rem 0;display:flex}.score-pill{color:var(--orange-dark);white-space:nowrap;background:#fdeee2;border:1px solid #f6d6c0;border-radius:999px;padding:.12rem .6rem;font-size:.8rem;font-weight:600}.score-pill b{color:var(--navy);margin-left:.25rem}.rating-grid{gap:.55rem;margin:.5rem 0 .75rem;display:grid}.rating-field{background:var(--bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem .75rem;display:flex}.rating-field label{margin:0;font-weight:600}.rating-field select{min-width:92px;margin:0}@media (max-width:560px){.score-bar{grid-template-columns:96px 1fr 30px;gap:.5rem}}.runners{margin:2.5rem -1.25rem 0;padding:.5rem 0 0}.runners-head{text-align:center;margin:0 auto 1.5rem;padding:0 1.25rem}.runners-head h2{color:var(--navy);text-transform:uppercase;margin:0 0 .4rem;font-size:2rem}.runners-head h2 .rn-accent{color:var(--orange)}.runners-head p{color:var(--muted);margin:0;max-width:52ch;margin-inline:auto}.runners-viewport{position:relative;overflow:hidden}.runners-viewport:before,.runners-viewport:after{content:"";z-index:2;pointer-events:none;width:64px;position:absolute;top:0;bottom:0}.runners-viewport:before{background:linear-gradient(to right, var(--bg), #f4f1e800);left:0}.runners-viewport:after{background:linear-gradient(to left, var(--bg), #f4f1e800);right:0}.runners-track{gap:20px;width:max-content;padding:4px 20px;animation:46s linear infinite runners-scroll;display:flex}.runners-viewport:hover .runners-track,.runners-track:focus-within{animation-play-state:paused}@keyframes runners-scroll{0%{transform:translate(0,0)}to{transform:translate(calc(-50% - 10px))}}.runner-card{border-radius:var(--radius);background:var(--cream);border:1px solid var(--border);flex:none;width:228px;height:308px;margin:0;position:relative;overflow:hidden}.runner-card img{object-fit:cover;filter:grayscale();width:100%;height:100%;transition:filter .35s,transform .5s;display:block;transform:scale(1.02)}.runner-card:hover img{filter:grayscale(0);transform:scale(1.06)}.runner-meta{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border-radius:10px;padding:.55rem .65rem;position:absolute;bottom:10px;left:10px;right:10px}.runner-name{font-family:var(--font-display);color:var(--navy);margin:0;font-size:1rem;font-weight:600;line-height:1.25}.runner-dist{flex-wrap:wrap;gap:.3rem;margin-top:.35rem;display:flex}.runner-dist .chip{padding:.1rem .5rem;font-size:.72rem}@media (max-width:768px){.runners{margin-top:2rem}.runners-head h2{font-size:1.6rem}.runners-viewport:before,.runners-viewport:after{width:40px}.runner-card{width:190px;height:262px}}@media (prefers-reduced-motion:reduce){.runners-viewport{-webkit-overflow-scrolling:touch;overflow-x:auto}.runners-track{width:auto;animation:none}.runners-dupe{display:none}}
