:root{
  --bg0:#f7fbff;
  --bg1:#eaf4ff;
  --card:#ffffff;
  --card2:#f3f8ff;
  --stroke:rgba(15,23,42,.10);
  --text:#0b1220;
  --muted:#475569;
  --accent:#2563eb;
  --accent2:#38bdf8;
  --danger:#ef4444;
  --shadow: 0 18px 60px rgba(2,8,23,.12);
  --radius:18px;
  --radius2:26px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--text);
  background: radial-gradient(1100px 620px at 18% 8%, rgba(56,189,248,.26), transparent 60%),
              radial-gradient(980px 560px at 82% 18%, rgba(37,99,235,.18), transparent 55%),
              linear-gradient(180deg, var(--bg0), var(--bg1));
}

.bg{
  position:fixed; inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 500px at 10% 80%, rgba(56,189,248,.22), transparent 60%),
    radial-gradient(900px 500px at 90% 85%, rgba(37,99,235,.16), transparent 60%);
  opacity:.9;
}

a{color:inherit; text-decoration:none}
code{font-family:var(--mono); font-size:.92em; color:#0b1220}

.container{max-width:1100px; margin:0 auto; padding:26px 18px 60px}
.topbar{position:sticky; top:0; z-index:20; background: rgba(247,251,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15,23,42,.10)}
.brand{display:flex; align-items:center; gap:10px}
.logo{font-size:22px}
.brandtext{font-weight:700; letter-spacing:.2px}
.brandtext .muted{font-weight:600; opacity:.7; margin-left:6px}
.nav{display:flex; gap:10px; align-items:center}
.nav a{padding:10px 12px; border-radius:12px; border:1px solid transparent; color:var(--muted)}
.nav a:hover{border-color:var(--stroke); color:var(--text)}
.nav a.active{border-color:rgba(37,99,235,.35); color:var(--text); background:rgba(37,99,235,.07)}
.inline{display:inline}

.hero{display:grid; grid-template-columns: 1.2fr .8fr; gap:18px; align-items:stretch; margin-top:14px}
@media (max-width: 920px){ .hero{grid-template-columns:1fr} }

h1{font-size: clamp(28px, 3.6vw, 44px); line-height:1.06; margin:0 0 10px}
h2{margin:0; font-size:22px}
.lead{color:var(--muted); font-size:16px; line-height:1.6; margin:0 0 18px}
.accent{background: linear-gradient(90deg, var(--accent), var(--accent2));
  -webkit-background-clip:text; background-clip:text; color:transparent}

.hero-actions{display:flex; gap:10px; flex-wrap:wrap}
.hero-badges{margin-top:18px; display:flex; gap:8px; flex-wrap:wrap}

.card{
  background: var(--card);
  border:1px solid var(--stroke);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
}
.card.subtle{
  background: var(--card2);
}
.card-link{transition: transform .15s ease, border-color .15s ease}
.card-link:hover{transform: translateY(-2px); border-color: rgba(37,99,235,.28)}

.card-head{padding:16px 18px 0}
.card-body{padding:14px 18px 18px}
.title{font-weight:800; letter-spacing:.2px}
.kicker{color:var(--muted); font-size:12px; margin-top:6px; text-transform:uppercase; letter-spacing:.16em}

.pill{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 10px; border-radius:999px;
  border:1px solid var(--stroke);
  color:var(--muted);
  background: rgba(255,255,255,.03);
  font-size:12px;
}
.pill-ok{border-color: rgba(37,99,235,.25); color:#c7f9d7; background: rgba(37,99,235,.08)}
.pill-muted{opacity:.75}
.meta{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px}
.small{font-size:13px}
.muted{color:var(--muted)}
.clamp{
  display:-webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 14px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.82);
  color: var(--text);
  cursor:pointer;
  font-weight:800;
  transition: transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
  box-shadow: 0 10px 26px rgba(2,8,23,.06);
}
.btn:hover{transform: translateY(-1px); border-color: rgba(37,99,235,.22); background: rgba(255,255,255,.92)}
.btn:active{transform: translateY(0px)}
.btn-primary{
  border-color: rgba(37,99,235,.26);
  background: linear-gradient(90deg, rgba(56,189,248,.32), rgba(37,99,235,.26));
}
.btn-ghost{background: rgba(37,99,235,.08)}
.btn-danger{border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08)}
.link{color: var(--accent)}
.link:hover{text-decoration:underline}

.form{display:flex; flex-direction:column; gap:10px}
.input{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(15,23,42,.12);
  color: var(--text);
  padding:12px 12px;
  border-radius: 14px;
  outline:none;
}
.input:focus{border-color: rgba(37,99,235,.35); box-shadow: 0 0 0 4px rgba(37,99,235,.10)}
textarea.input{resize:vertical}
label{font-size:13px; color: rgba(15,23,42,.76); font-weight:800}
.help{font-size:12px; color: rgba(15,23,42,.55); margin-top:-4px}
.row{display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:10px}

.grid2{display:grid; grid-template-columns: 1fr 1fr; gap:14px}
@media (max-width: 900px){ .grid2{grid-template-columns:1fr} }

.bar{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin: 14px 0}
.bar-actions{display:flex; gap:10px; align-items:center; flex-wrap:wrap}

.cards{display:grid; grid-template-columns: repeat(3, 1fr); gap:12px}
@media (max-width: 980px){ .cards{grid-template-columns: repeat(2, 1fr)} }
@media (max-width: 640px){ .cards{grid-template-columns: 1fr} }

.tablewrap{overflow:auto; border-radius:14px; border:1px solid var(--stroke)}
.table{width:100%; border-collapse:collapse; min-width:520px}
.table th, .table td{padding:12px 12px; border-bottom:1px solid rgba(255,255,255,.06); font-size:13px}
.table th{color:var(--muted); text-transform:uppercase; letter-spacing:.14em; font-size:11px}
.table tr.me{background: rgba(37,99,235,.06)}
.table .right{text-align:right}

.flashes{display:flex; flex-direction:column; gap:8px; margin: 12px 0}
.flash{
  border:1px solid var(--stroke);
  border-radius: 14px;
  padding:12px 12px;
  background: rgba(255,255,255,.03);
}
.flash.ok{border-color: rgba(37,99,235,.25); background: rgba(37,99,235,.08)}
.flash.err{border-color: rgba(239,68,68,.25); background: rgba(239,68,68,.08)}
.flash.warn{border-color: rgba(245,158,11,.25); background: rgba(245,158,11,.08)}
.flash.hide{opacity:0; transform: translateY(-4px); transition: all .35s ease}

.footer{margin-top:18px}
.footerbox{max-width:1100px; margin: 0 auto; padding: 10px 14px; display:flex; flex-direction:column; gap:6px; text-align:center}

.profile-top{display:flex; gap:14px; align-items:center; margin: 12px 0 16px}
.avatar{width:74px; height:74px; border-radius:22px; overflow:hidden; border:1px solid var(--stroke); background: rgba(255,255,255,.03); display:flex; align-items:center; justify-content:center}
.avatar img{width:100%; height:100%; object-fit:cover}
.avatar-fallback{font-size:34px}
.profile-head h2{margin:0}
.divider{height:1px; background: rgba(255,255,255,.08); margin: 12px 0}

.stats{display:grid; grid-template-columns: repeat(3, 1fr); gap:10px}
@media (max-width: 760px){ .stats{grid-template-columns: 1fr 1fr} }
.stat{border:1px solid rgba(255,255,255,.06); border-radius: 16px; padding:12px; background: rgba(255,255,255,.02)}
.stat .k{color:var(--muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase}
.stat .v{font-weight:900; font-size:18px; margin-top:6px}

.activity-grid{display:grid; grid-template-columns: repeat(2, 1fr); gap:12px}
@media (max-width: 980px){ .activity-grid{grid-template-columns: 1fr} }

.activity{
  border:1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding:12px;
  background: rgba(255,255,255,.02);
}
.activity-top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start}
.track{margin:10px 0 8px; border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; background: rgba(255,255,255,.86)}
.tracksvg{width:100%; height:160px; display:block}
.trackpath{
  fill:none;
  stroke: rgba(37,99,235,.85);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 8px 18px rgba(37,99,235,.18));
}
.activity-stats{display:grid; grid-template-columns: repeat(2, 1fr); gap:6px}
.activity-actions{display:flex; justify-content:space-between; gap:10px; margin-top:10px; flex-wrap:wrap}
.check{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--text)}
.check input{margin-top:2px}

.chips{display:flex; gap:8px; flex-wrap:wrap}

/* Penguin animation */
.penguin-stage{
  border:1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding:12px;
  background: radial-gradient(500px 260px at 50% 20%, rgba(14,165,233,.14), rgba(255,255,255,.02));
}
.penguin-bike{width:100%; height:auto; display:block}
.penguin-bike .wheel{
  fill:none;
  stroke: rgba(229,231,235,.5);
  stroke-width: 6;
}
.penguin-bike .frame,
.penguin-bike .handle,
.penguin-bike .seat,
.penguin-bike .leg{
  fill:none;
  stroke: rgba(229,231,235,.65);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.penguin-bike .penguin-body,
.penguin-bike .penguin-head{fill:#111827; stroke: rgba(255,255,255,.08); stroke-width:2}
.penguin-bike .penguin-belly{fill:#e5e7eb}
.penguin-bike .eye{fill:#e5e7eb}
.penguin-bike .beak{fill:#f59e0b}
.penguin-bike .scarf{fill:none; stroke: rgba(37,99,235,.85); stroke-width:6; stroke-linecap:round}
.penguin-bike .trail{fill:none; stroke: rgba(14,165,233,.45); stroke-width:6; stroke-linecap:round}

.anim-card .penguin-bike{animation: bob 1.8s ease-in-out infinite}
.penguin-bike .wheel{transform-origin: center; animation: spin 1.2s linear infinite}
.penguin-bike .leg{transform-origin: 255px 170px; animation: pedal 1.2s ease-in-out infinite}
.penguin-bike .trail{stroke-dasharray: 22 12; animation: dash 1.4s linear infinite}

@keyframes spin{to{transform: rotate(360deg)}}
@keyframes bob{
  0%,100%{transform: translateY(0)}
  50%{transform: translateY(-4px)}
}
@keyframes pedal{
  0%,100%{transform: rotate(-8deg)}
  50%{transform: rotate(8deg)}
}
@keyframes dash{to{stroke-dashoffset: -68}}

/* --- Home refresh --- */
.hero2 .eyebrow{
  display:inline-flex;
  gap:8px;
  padding:8px 12px;
  border:1px solid var(--stroke);
  border-radius:999px;
  background: rgba(255,255,255,.75);
  color: var(--muted);
  font-size: 13px;
  letter-spacing: .2px;
  margin-bottom: 14px;
}
.mini-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top: 22px;
}
.mini{
  border:1px solid var(--stroke);
  background: rgba(255,255,255,.75);
  border-radius: 16px;
  padding: 14px 14px;
  box-shadow: 0 10px 40px rgba(0,0,0,.20);
}
.mini-ico{font-size:18px; opacity:.95}
.mini-title{font-weight:700; margin-top:6px}
.mini-sub{color:var(--muted); font-size:13px; margin-top:2px}
.glass{
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(243,248,255,.86));
  backdrop-filter: blur(10px);
}
.section{margin-top: 18px}
@media (max-width: 980px){
  .mini-grid{grid-template-columns:1fr; }
}

/* progress */
.prog{
  height:10px;
  border-radius:999px;
  background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.18);
  overflow:hidden;
}
.progbar{
  height:100%;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(56,189,248,.85), rgba(37,99,235,.85));
}

/* --- Home centered with map background --- */
.home .bg:after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%271200%27%20height%3D%27700%27%20viewBox%3D%270%200%201200%20700%27%3E%0A%3Cdefs%3E%0A%3ClinearGradient%20id%3D%27g%27%20x1%3D%270%27%20x2%3D%271%27%20y1%3D%270%27%20y2%3D%271%27%3E%0A%20%20%3Cstop%20offset%3D%270%27%20stop-color%3D%27%2338bdf8%27%20stop-opacity%3D%27.35%27/%3E%0A%20%20%3Cstop%20offset%3D%271%27%20stop-color%3D%27%232563eb%27%20stop-opacity%3D%27.30%27/%3E%0A%3C/linearGradient%3E%0A%3C/defs%3E%0A%3Crect%20width%3D%271200%27%20height%3D%27700%27%20fill%3D%27none%27/%3E%0A%3Cg%20fill%3D%27none%27%20stroke%3D%27url%28%23g%29%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%3E%0A%20%20%3Cpath%20d%3D%27M120%20520%20C240%20420%2C%20310%20360%2C%20430%20330%20S680%20280%2C%20820%20220%20S1030%20160%2C%201120%20110%27/%3E%0A%20%20%3Cpath%20d%3D%27M90%20240%20C220%20220%2C%20330%20240%2C%20430%20300%20S650%20420%2C%20770%20470%20S990%20540%2C%201140%20610%27/%3E%0A%20%20%3Cpath%20d%3D%27M200%20120%20C260%20190%2C%20320%20240%2C%20410%20280%20S590%20350%2C%20660%20420%20S790%20560%2C%20910%20610%27/%3E%0A%20%20%3Cpath%20d%3D%27M520%20100%20C520%20170%2C%20530%20240%2C%20560%20320%20S620%20470%2C%20650%20560%27/%3E%0A%20%20%3Cpath%20d%3D%27M320%20590%20C380%20520%2C%20450%20470%2C%20520%20440%20S680%20360%2C%20760%20320%27/%3E%0A%3C/g%3E%0A%3Cg%20fill%3D%27%230b1220%27%20fill-opacity%3D%27.08%27%3E%0A%20%20%3Ccircle%20cx%3D%27120%27%20cy%3D%27520%27%20r%3D%277%27/%3E%3Ccircle%20cx%3D%27430%27%20cy%3D%27330%27%20r%3D%277%27/%3E%3Ccircle%20cx%3D%27650%27%20cy%3D%27420%27%20r%3D%277%27/%3E%3Ccircle%20cx%3D%27820%27%20cy%3D%27220%27%20r%3D%277%27/%3E%3Ccircle%20cx%3D%271120%27%20cy%3D%27110%27%20r%3D%277%27/%3E%0A%20%20%3Ccircle%20cx%3D%2790%27%20cy%3D%27240%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27430%27%20cy%3D%27300%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27770%27%20cy%3D%27470%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%271140%27%20cy%3D%27610%27%20r%3D%276%27/%3E%0A%20%20%3Ccircle%20cx%3D%27200%27%20cy%3D%27120%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27410%27%20cy%3D%27280%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27660%27%20cy%3D%27420%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27910%27%20cy%3D%27610%27%20r%3D%276%27/%3E%0A%20%20%3Ccircle%20cx%3D%27560%27%20cy%3D%27320%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27650%27%20cy%3D%27560%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27520%27%20cy%3D%27440%27%20r%3D%276%27/%3E%3Ccircle%20cx%3D%27760%27%20cy%3D%27320%27%20r%3D%276%27/%3E%0A%3C/g%3E%0A%3C/svg%3E");
  background-repeat:no-repeat;
  background-position: center 120px;
  background-size: min(1100px, 92vw);
  opacity:.22;
}
.home-hero{
  min-height: calc(100vh - 140px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding: 10px 0 24px;
}
.home-card{
  width: min(720px, 92vw);
  background: rgba(255,255,255,.80);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius2);
  box-shadow: var(--shadow);
  padding: 22px 22px 18px;
  backdrop-filter: blur(10px);
}
.home-mark{display:flex; gap:14px; align-items:flex-start}
.home-logo{
  width:46px; height:46px; border-radius: 16px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(180deg, rgba(56,189,248,.30), rgba(37,99,235,.18));
  border:1px solid rgba(37,99,235,.16);
  font-size:22px;
}
.home-eyebrow{color: rgba(15,23,42,.55); font-weight:900; font-size:12px; letter-spacing:.14em; text-transform:uppercase}
.home-h1{margin:6px 0 0; font-size: 32px; line-height: 1.12; letter-spacing: -.02em}
.home-sub{margin-top:8px; color: rgba(15,23,42,.62); font-weight:650}
.home-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.home-note{margin-top:10px}
.home-info{width: min(920px, 92vw)}
.info-grid{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px}
.info-card{
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: var(--radius);
  padding: 14px 14px;
  box-shadow: 0 10px 26px rgba(2,8,23,.06);
}
.info-title{font-weight:900}
.info-text{margin-top:6px; color: rgba(15,23,42,.62)}
@media (max-width: 900px){
  .info-grid{grid-template-columns: 1fr}
  .home-h1{font-size: 28px}
}


/* --- PenguChallenge landing (home) --- */
.landing-main{padding:0; max-width:none}
.topbar-landing{background: rgba(247,251,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(15,23,42,.10)}
.brand-landing .brandtext{font-weight:900; font-size:20px; letter-spacing:.2px}
.brand-landing .b1{color: rgba(15,23,42,.98)}
.brand-landing .b2{color: rgba(56,189,248,.98)}
.brand-landing .mark{display:inline-flex; align-items:center; justify-content:center}
.top-cta{
  display:inline-flex; align-items:center; justify-content:center;
  padding:10px 16px;
  border-radius: 12px;
  background: #fc4c02;
  color: white;
  font-weight:900;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.18);
}
.top-cta:hover{filter: brightness(1.02); transform: translateY(-1px)}
.top-cta:active{transform: translateY(0)}

.landing-hero{
  position:relative;
  min-height: 76vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
}
.landing-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: url("/assets/hero.jpg");
  background-size: cover;
  background-position: center;
  transform: scale(1.0);
}
.landing-hero::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(900px 500px at 50% 38%, rgba(0,0,0,.28), rgba(0,0,0,.2)),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.35));
}
.landing-hero-inner{
  position:relative;
  z-index:2;
  padding: 120px 18px 86px;
}
.landing-title{
  margin:0;
  font-size: clamp(44px, 6vw, 74px);
  font-weight: 950;
  letter-spacing: -0.02em;
  text-shadow: 0 10px 22px rgba(0,0,0,.35);
}
.landing-title .t1{color: rgba(255,255,255,.94)}
.landing-title .t2{color: rgba(56,189,248,.98)}
.landing-tagline{
  margin-top: 10px;
  font-size: clamp(16px, 2vw, 22px);
  letter-spacing: .12em;
  text-transform: lowercase;
  color: rgba(255,255,255,.86);
  text-shadow: 0 10px 22px rgba(0,0,0,.28);
}
.strava-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 14px 32px;
  border-radius: 12px;
  font-weight: 800;
  letter-spacing: .01em;
  background: #ff5a16;
  color: #fff;
  box-shadow: 0 18px 40px rgba(255,90,22,.28);
  border: 1px solid rgba(255,255,255,.14);
  transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
  min-width: 280px;
}
.strava-btn:hover{filter: brightness(1.02); transform: translateY(-1px)}
.strava-btn:active{transform: translateY(0)}
.landing-down{
  display:inline-flex;
  margin-top: 18px;
  opacity:.95;
}
.landing-down:hover{opacity:1; transform: translateY(1px)}
.landing-wave{
  position:absolute;
  left:0; right:0; bottom:-1px;
  height: 90px;
  z-index: 3;
}
.landing-wave svg{width:100%; height:100%; display:block}

.landing-features{
  position:relative;
  padding: 66px 18px 44px;
}
.landing-features::before{
  content:"";
  position:absolute; inset:0;
  background-image:url("/assets/hero.jpg");
  background-size: cover;
  background-position:center 15%;
  filter: blur(10px);
  opacity:.25;
  transform: scale(1.0);
}
.landing-features::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.96));
}
.features-inner{
  position:relative;
  z-index:2;
  max-width: 1100px;
  margin: 0 auto;
}
.feature-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.feature-card{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  padding: 18px 18px 16px;
  box-shadow: 0 16px 34px rgba(2,8,23,.08);
  backdrop-filter: blur(10px);
  text-align:center;
}
.feature-ic{
  width: 54px; height: 54px;
  border-radius: 16px;
  margin: 0 auto 10px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(180deg, rgba(40,200,255,.22), rgba(252,76,2,.12));
  border: 1px solid rgba(37,99,235,.16);
  color: rgba(15,23,42,.85);
}
.feature-title{
  font-weight: 950;
  font-size: 20px;
  letter-spacing: -.01em;
}
.feature-text{
  margin-top: 10px;
  color: rgba(15,23,42,.62);
  line-height: 1.45;
}
.landing-foot{
  display:flex;
  justify-content:center;
  gap: 10px;
  margin-top: 34px;
  color: rgba(15,23,42,.55);
  font-weight: 750;
}
.landing-link{color: rgba(37,99,235,.95)}
.landing-link:hover{text-decoration: underline}
.dot{opacity:.55}

@media (max-width: 900px){
  .feature-grid{grid-template-columns: 1fr; gap: 14px}
  .landing-hero-inner{padding: 106px 18px 82px}
  .strava-btn{font-size: 18px; padding: 14px 22px}
}


/* Landing header (minimal) */
.topbar-landing{justify-content:flex-start}
.brand-accent{color: var(--accent2); font-weight:900}
.brand .brandtext{font-weight:900}
.brand .brandtext .muted{display:none}

/* Landing disclaimer centered */
.landing-disclaimer{
  margin-top: 22px;
  text-align:center;
  font-size: 13px;
  color: rgba(15,23,42,.58);
}

/* Footer centered */
.footerbox{display:flex; justify-content:center; text-align:center}
.footer .small{max-width: 980px}


/* --- Profile (PenguChallenge) --- */
.profile-wrap{max-width:1100px; margin: 14px auto 26px; padding: 0 14px}
.profile-hero{padding: 16px 18px}
.profile-actions .btn{white-space:nowrap}
.h1{font-size: 34px; line-height:1.1; letter-spacing:-.02em}
@media (max-width: 720px){ .h1{font-size:28px} .profile-actions{width:100%; justify-content:flex-start; flex-wrap:wrap} }

.statrows{display:flex; flex-direction:column; gap:10px}
.statrow{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid var(--stroke); border-radius:16px; background: linear-gradient(180deg, rgba(37,99,235,.05), rgba(56,189,248,.04));}
.statrow .k{color:var(--muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase}
.statrow .v{font-size:18px; font-weight:800; color:var(--text)}
.toggle{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted)}
.toggle input{width:18px; height:18px}

.card.danger{border-color: rgba(239,68,68,.25); background: linear-gradient(180deg, rgba(239,68,68,.06), rgba(255,255,255,1));}

/* --- Challenges highlight card --- */
.card-challenges{position:relative; overflow:hidden}
.card-challenges::before{
  content:"";
  position:absolute; inset:-28px;
  background-image: url('/assets/hero.jpg');
  background-size: cover;
  background-position: center;
  opacity:.22;
  filter: blur(4px);
  transform: scale(1.08);
}
.card-challenges::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(700px 420px at 30% 20%, rgba(56,189,248,.20), rgba(56,189,248,0) 60%),
    radial-gradient(520px 320px at 85% 30%, rgba(37,99,235,.16), rgba(37,99,235,0) 62%),
    linear-gradient(180deg, rgba(255,255,255,.70), rgba(255,255,255,.92));
}
.card-challenges > *{position:relative; z-index:1}
.card-challenges{border-color: rgba(56,189,248,.35); box-shadow: 0 26px 70px rgba(2,8,23,.14)}
.card-challenges .card-head{padding-bottom: 6px}
.challenges-hero{
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 16px;
  background: rgba(255,255,255,.45);
  backdrop-filter: blur(8px);
  margin-bottom: 12px;
}
.ch-title{font-weight: 900; font-size: 16px; letter-spacing:-.01em; margin-top: 8px}
.ch-sub{color: var(--muted); font-size: 13px; line-height: 1.35; margin-top: 6px}
.card-challenges .btn{box-shadow: 0 14px 30px rgba(2,8,23,.10)}
.card-challenges .btn-primary{box-shadow: 0 18px 40px rgba(37,99,235,.20)}

/* --- Profile spacing tweaks --- */
.profile-wrap .grid2{margin-top:14px}
.profile-wrap > .card{margin-top:14px}
.profile-wrap > .card:first-child{margin-top:0}

.ch-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 34px; height: 34px;
  border-radius: 12px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 10px 22px rgba(2,8,23,.10);
  font-size: 18px;
}
/* --- Header layout unification --- */
.topbar-inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.nav{
  margin-left: auto;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.nav .inline{margin:0}
.nav .navlink{white-space:nowrap}

/* Make nav buttons consistent even with older .nav a rules */
.nav a.navlink{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 14px;
  border-radius: 14px;
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.82);
  color: var(--text);
  cursor:pointer;
  font-weight:800;
}
.nav a.navlink.btn-ghost{background: rgba(37,99,235,.08)}
.nav a.navlink:hover{filter: brightness(.985)}
.nav button.navlink{white-space:nowrap}

.nav .navlink.is-active{
  border-color: rgba(37,99,235,.35) !important;
  background: rgba(37,99,235,.07) !important;
  color: var(--text) !important;
}

/* Strava guideline: 'View on Strava' link treatment */
.view-on-strava{
  color:#FC5200;
  text-decoration: underline;
  font-weight: 700;
}
.view-on-strava:hover{filter: brightness(0.95)}

.footer-line{line-height:1.35; color: var(--muted)}
