.tdfp-page{
  overflow-x:hidden;
}

.tdfp-hero{
  position:relative;
  padding:44px 0 22px;
  isolation:isolate;
}

.tdfp-hero::before,
.tdfp-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:999px;
  filter:blur(8px);
  opacity:.75;
  pointer-events:none;
}

.tdfp-hero::before{
  width:460px;
  height:460px;
  left:-210px;
  top:-160px;
  background:radial-gradient(circle, rgba(180,136,66,.22), rgba(180,136,66,0));
}

.tdfp-hero::after{
  width:520px;
  height:520px;
  right:-260px;
  top:10px;
  background:radial-gradient(circle, rgba(106,89,74,.18), rgba(106,89,74,0));
}

.tdfp-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 470px);
  gap:38px;
  align-items:center;
}

.tdfp-hero-copy{
  min-width:0;
}

.tdfp-hero-copy h1{
  max-width:900px;
  margin-bottom:18px;
}

.tdfp-lead{
  max-width:760px;
  font-size:20px;
  line-height:1.75;
  color:var(--text);
}

.tdfp-hero-badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:24px 0 0;
}

.tdfp-hero-badges span,
.tdfp-verdict,
.tdfp-pill,
.tdfp-profile-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(92,72,52,.14);
  background:rgba(255,255,255,.86);
  color:#42362d;
  font-size:13px;
  font-weight:800;
  box-shadow:0 8px 22px rgba(50,40,30,.07);
}

.tdfp-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}

.tdfp-primary-link,
.tdfp-run{
  background:linear-gradient(135deg, #856744 0%, #624b37 100%);
  color:#fff;
  border:none;
  box-shadow:0 16px 35px rgba(79,59,38,.22);
}

.tdfp-primary-link:hover,
.tdfp-run:hover{
  transform:translateY(-2px);
  filter:brightness(1.03);
}

.tdfp-disclaimer{
  max-width:760px;
  margin-top:20px;
  font-size:14px;
  color:var(--text-soft);
}

.tdfp-race-card{
  position:relative;
  min-height:438px;
  padding:22px;
  border-radius:30px;
  border:1px solid rgba(80,60,45,.13);
  background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(239,230,219,.96));
  box-shadow:0 28px 70px rgba(67,52,39,.16);
  overflow:hidden;
}

.tdfp-race-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 18%, rgba(180,136,66,.20), transparent 32%),
    radial-gradient(circle at 82% 18%, rgba(111,93,73,.16), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.30), rgba(255,255,255,0));
  pointer-events:none;
}

.tdfp-race-card-head,
.tdfp-mini-dashboard,
.tdfp-track{
  position:relative;
  z-index:1;
}

.tdfp-race-card-head{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:48px;
  padding:12px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(80,60,45,.10);
  font-weight:800;
  font-size:14px;
  color:#44372d;
}

.tdfp-live-dot,
.tdfp-status-orb{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#7fac65;
  box-shadow:0 0 0 0 rgba(127,172,101,.52);
  animation:tdfpPulse 2s infinite;
  flex:0 0 auto;
}

.tdfp-track{
  height:252px;
  margin-top:18px;
  border-radius:25px;
  background:linear-gradient(180deg, rgba(236,223,205,.70), rgba(216,196,174,.96));
  border:1px solid rgba(80,60,45,.10);
  overflow:hidden;
}

.tdfp-track-horizon{
  position:absolute;
  inset:auto 0 54% 0;
  height:1px;
  background:rgba(80,60,45,.10);
}

.tdfp-mountain{
  position:absolute;
  bottom:52%;
  width:240px;
  height:130px;
  background:linear-gradient(135deg, rgba(121,101,80,.34), rgba(121,101,80,.10));
  clip-path:polygon(50% 0, 100% 100%, 0 100%);
}

.tdfp-mountain-a{
  left:-34px;
}

.tdfp-mountain-b{
  right:-42px;
  width:284px;
  height:160px;
  opacity:.82;
}

.tdfp-road{
  position:absolute;
  inset:auto -10% 0 -10%;
  height:52%;
  background:linear-gradient(180deg, #8c745d, #6b5642);
  clip-path:polygon(22% 0, 78% 0, 100% 100%, 0 100%);
}

.tdfp-road-line{
  position:absolute;
  top:5%;
  left:50%;
  width:4px;
  height:95%;
  transform:translateX(-50%);
  background:repeating-linear-gradient(
    to bottom,
    rgba(255,242,220,.95) 0,
    rgba(255,242,220,.95) 18px,
    transparent 18px,
    transparent 34px
  );
  opacity:.86;
}

.tdfp-bike{
  position:absolute;
  font-size:31px;
  filter:drop-shadow(0 10px 10px rgba(0,0,0,.20));
  animation:tdfpRide 5.6s ease-in-out infinite;
}

.tdfp-bike-one{
  left:22%;
  bottom:18px;
  animation-delay:0s;
}

.tdfp-bike-two{
  left:46%;
  bottom:58px;
  animation-delay:.55s;
}

.tdfp-bike-three{
  right:18%;
  bottom:28px;
  animation-delay:1.1s;
}

.tdfp-mini-dashboard{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-top:16px;
}

.tdfp-mini-dashboard div{
  min-height:86px;
  padding:14px 12px;
  border-radius:18px;
  border:1px solid rgba(80,60,45,.10);
  background:rgba(255,255,255,.88);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  text-align:center;
}

.tdfp-mini-dashboard strong{
  font-size:23px;
  line-height:1;
  color:#3c3027;
}

.tdfp-mini-dashboard span{
  font-size:12px;
  color:var(--text-soft);
  font-weight:700;
}

.tdfp-app-shell{
  padding:26px;
  border-radius:32px;
  border:1px solid rgba(80,60,45,.13);
  background:linear-gradient(180deg, rgba(255,255,255,.58), rgba(248,245,241,.96));
  box-shadow:0 22px 64px rgba(56,44,34,.10);
}

.tdfp-app-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}

.tdfp-app-head h2{
  margin-bottom:10px;
}

.tdfp-app-status{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:250px;
  max-width:360px;
  min-height:58px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(80,60,45,.12);
  background:rgba(255,255,255,.90);
  color:#46392f;
  font-size:14px;
  font-weight:800;
  box-shadow:0 10px 28px rgba(50,40,30,.06);
}

.tdfp-app-status.is-error .tdfp-status-orb{
  background:#b6614f;
  animation:none;
}

.tdfp-app-status.is-ready .tdfp-status-orb{
  background:#7fac65;
}

.tdfp-tabs{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:22px;
}

.tdfp-tab{
  border:1px solid rgba(80,60,45,.14);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#4c3d32;
  min-height:48px;
  padding:0 19px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.tdfp-tab:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(50,40,30,.08);
}

.tdfp-tab.is-active{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(135deg, #8a6843, #614a37);
  box-shadow:0 16px 34px rgba(82,62,42,.20);
}

.tdfp-panel[hidden]{
  display:none !important;
}

.tdfp-panel-layout{
  display:grid;
  grid-template-columns:minmax(290px, 390px) minmax(0, 1fr);
  gap:22px;
  align-items:stretch;
}

.tdfp-control-card,
.tdfp-output-card{
  min-height:570px;
  border-radius:28px;
  border:1px solid rgba(80,60,45,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 40px rgba(50,40,30,.07);
}

.tdfp-control-card{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:24px;
}

.tdfp-control-card h3{
  margin-bottom:0;
  font-size:27px;
}

.tdfp-control-card p{
  font-size:15px;
  color:var(--text-soft);
}

.tdfp-mode-kicker{
  width:max-content;
  min-height:32px;
  padding:6px 12px;
  border-radius:999px;
  background:#efe4d5;
  color:#6b5137;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.tdfp-field{
  display:grid;
  gap:8px;
}

.tdfp-field span{
  font-size:13px;
  font-weight:900;
  color:#4b3e33;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.tdfp-field select{
  width:100%;
  min-height:54px;
  padding:0 15px;
  border-radius:16px;
  border:1px solid rgba(80,60,45,.18);
  background:#fff;
  color:#352b23;
  font-size:15px;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.70);
}

.tdfp-field select:focus,
.tdfp-tab:focus,
.tdfp-run:focus{
  outline:3px solid rgba(180,136,66,.34);
  outline-offset:2px;
}

.tdfp-inline-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.tdfp-run{
  width:100%;
  min-height:58px;
  margin-top:2px;
  border-radius:18px;
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, filter .18s ease, opacity .18s ease;
}

.tdfp-run[disabled]{
  cursor:wait;
  opacity:.72;
  transform:none;
}

.tdfp-stage-chip{
  margin-top:auto;
  min-height:88px;
  padding:16px;
  border-radius:20px;
  background:linear-gradient(135deg, #f5eee5, #ece2d5);
  border:1px solid rgba(80,60,45,.12);
}

.tdfp-stage-chip strong,
.tdfp-stage-chip span,
.tdfp-stage-chip small{
  display:block;
}

.tdfp-stage-chip strong{
  color:#392e26;
  margin-bottom:4px;
  font-size:15px;
}

.tdfp-stage-chip span{
  color:#5c4b3e;
  font-size:14px;
  font-weight:800;
}

.tdfp-stage-chip small{
  margin-top:7px;
  color:var(--text-soft);
  font-size:12px;
}

.tdfp-output-card{
  padding:24px;
  position:relative;
  overflow:hidden;
}

.tdfp-output-card::before{
  content:"";
  position:absolute;
  inset:auto -80px -90px auto;
  width:280px;
  height:280px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(180,136,66,.17), rgba(180,136,66,0));
  pointer-events:none;
}

.tdfp-empty-state,
.tdfp-loading-state,
.tdfp-error-state{
  min-height:520px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
  position:relative;
  z-index:1;
}

.tdfp-empty-state span,
.tdfp-error-state span{
  font-size:52px;
  line-height:1;
}

.tdfp-empty-state strong,
.tdfp-error-state strong{
  font-size:26px;
  color:#352b23;
}

.tdfp-empty-state p,
.tdfp-error-state p{
  max-width:520px;
  margin:0;
  color:var(--text-soft);
}

.tdfp-loading-state{
  align-items:stretch;
  justify-content:center;
}

.tdfp-scan-hero{
  display:flex;
  align-items:center;
  gap:16px;
  max-width:560px;
  margin:0 auto 24px;
  padding:18px 20px;
  border-radius:22px;
  border:1px solid rgba(80,60,45,.12);
  background:linear-gradient(135deg, #f5eee5, #fff);
}

.tdfp-scan-disc{
  width:64px;
  height:64px;
  border-radius:50%;
  border:4px solid rgba(106,89,74,.18);
  border-top-color:#886742;
  animation:tdfpSpin 1s linear infinite;
  flex:0 0 auto;
}

.tdfp-scan-hero strong,
.tdfp-scan-hero span{
  display:block;
}

.tdfp-scan-hero strong{
  color:#392e26;
  font-size:22px;
}

.tdfp-scan-hero span{
  color:var(--text-soft);
  font-weight:700;
}

.tdfp-loading-bars{
  display:grid;
  gap:14px;
}

.tdfp-loading-line{
  height:22px;
  border-radius:999px;
  background:linear-gradient(90deg, #ede3d7 20%, #f9f5ef 40%, #ede3d7 60%);
  background-size:240% 100%;
  animation:tdfpShimmer 1.15s linear infinite;
}

.tdfp-loading-line:nth-child(2){ width:84%; }
.tdfp-loading-line:nth-child(3){ width:92%; }
.tdfp-loading-line:nth-child(4){ width:74%; }
.tdfp-loading-line:nth-child(5){ width:88%; }

.tdfp-result{
  position:relative;
  z-index:1;
  animation:tdfpReveal .48s ease both;
}

.tdfp-result-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:20px;
}

.tdfp-result-head h3{
  margin-bottom:8px;
  font-size:31px;
}

.tdfp-result-head p{
  max-width:720px;
  margin-bottom:0;
  color:var(--text-soft);
}

.tdfp-profile-pill{
  background:#efe4d5;
  color:#654d35;
  border-color:rgba(106,89,74,.12);
}

.tdfp-metrics{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin:20px 0;
}

.tdfp-metric,
.tdfp-podium-card,
.tdfp-team-card,
.tdfp-reason-box,
.tdfp-duel-card,
.tdfp-summary-card{
  border-radius:22px;
  border:1px solid rgba(80,60,45,.12);
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 28px rgba(50,40,30,.06);
}

.tdfp-metric{
  padding:18px;
}

.tdfp-metric strong,
.tdfp-metric span{
  display:block;
}

.tdfp-metric strong{
  font-size:30px;
  line-height:1.05;
  color:#352b23;
}

.tdfp-metric span{
  margin-top:5px;
  color:var(--text-soft);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.tdfp-grid-split{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(260px, .88fr);
  gap:18px;
}

.tdfp-section-title{
  margin:22px 0 12px;
  font-size:18px;
  letter-spacing:.02em;
}

.tdfp-podium-list,
.tdfp-team-list,
.tdfp-reason-list{
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.tdfp-podium-card,
.tdfp-team-card{
  padding:16px;
}

.tdfp-podium-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
}

.tdfp-rank-badge{
  width:46px;
  height:46px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:#efe4d5;
  color:#674f35;
  font-size:18px;
  font-weight:900;
}

.tdfp-podium-card:nth-child(1) .tdfp-rank-badge{
  background:linear-gradient(135deg, #d5ab5d, #b48842);
  color:#fff;
}

.tdfp-podium-meta strong,
.tdfp-podium-meta span,
.tdfp-team-card strong,
.tdfp-team-card span{
  display:block;
}

.tdfp-podium-meta strong,
.tdfp-team-card strong{
  color:#352b23;
  font-size:17px;
}

.tdfp-podium-meta span,
.tdfp-team-card span{
  color:var(--text-soft);
  font-size:14px;
}

.tdfp-score-stack{
  min-width:120px;
  text-align:right;
}

.tdfp-score-number{
  display:block;
  font-weight:900;
  font-size:20px;
  color:#49392d;
}

.tdfp-score-track{
  width:120px;
  height:10px;
  margin-top:7px;
  border-radius:999px;
  background:#eadfce;
  overflow:hidden;
}

.tdfp-score-fill{
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, #b48842, #6a594a);
  transition:width .88s cubic-bezier(.2,.8,.2,1);
}

.tdfp-team-card{
  display:grid;
  gap:12px;
}

.tdfp-team-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.tdfp-team-rank{
  min-width:42px;
  min-height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#f0e7db;
  color:#654e36;
  font-weight:900;
}

.tdfp-reason-box,
.tdfp-summary-card{
  padding:18px;
}

.tdfp-reason-list li{
  position:relative;
  padding-left:22px;
  color:#4a3d32;
  font-size:15px;
}

.tdfp-reason-list li::before{
  content:"✦";
  position:absolute;
  left:0;
  top:0;
  color:#b48842;
  font-weight:900;
}

.tdfp-cautions{
  margin-top:16px;
  padding:16px;
  border-radius:18px;
  background:#f8eee9;
  border:1px solid rgba(182,97,79,.18);
}

.tdfp-cautions strong{
  display:block;
  margin-bottom:8px;
  color:#7a493d;
}

.tdfp-verdict{
  background:linear-gradient(135deg, #efe4d5, #fff);
  color:#654d35;
}

.tdfp-duel-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:16px;
  align-items:center;
  margin:22px 0;
}

.tdfp-duel-card{
  padding:20px;
  min-height:220px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
}

.tdfp-duel-vs{
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, #8a6843, #614a37);
  color:#fff;
  font-weight:900;
  box-shadow:0 14px 28px rgba(82,62,42,.22);
}

.tdfp-duel-card h4{
  margin:0;
  color:#352b23;
  font-size:22px;
}

.tdfp-duel-card p{
  margin:0;
  font-size:14px;
  color:var(--text-soft);
}

.tdfp-duel-edge{
  margin-top:16px;
  padding:18px;
  border-radius:22px;
  background:linear-gradient(135deg, #f1e4d2, #fff);
  border:1px solid rgba(80,60,45,.12);
}

.tdfp-duel-edge strong,
.tdfp-duel-edge span{
  display:block;
}

.tdfp-duel-edge strong{
  font-size:21px;
  color:#3b3028;
}

.tdfp-duel-edge span{
  margin-top:6px;
  color:var(--text-soft);
  font-weight:700;
}

.tdfp-team-focus{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:20px;
}

.tdfp-summary-card h4{
  margin:0 0 10px;
  font-size:20px;
}

.tdfp-summary-card p{
  margin:0;
}

.tdfp-error-state{
  color:#7a493d;
}

.tdfp-explainer-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(320px, .88fr);
  gap:22px;
  align-items:stretch;
}

.tdfp-explainer-copy{
  margin-top:0;
  min-height:100%;
}

.tdfp-rule-cards{
  display:grid;
  gap:16px;
}

.tdfp-rule-card{
  position:relative;
  padding:22px;
  border-radius:24px;
  border:1px solid rgba(80,60,45,.12);
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 34px rgba(50,40,30,.07);
}

.tdfp-rule-card span{
  display:inline-grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:12px;
  border-radius:16px;
  color:#fff;
  font-size:14px;
  font-weight:900;
  background:linear-gradient(135deg, #8a6843, #614a37);
}

.tdfp-rule-card h3{
  margin-bottom:8px;
}

.tdfp-rule-card p{
  margin-bottom:0;
  color:var(--text-soft);
}

.tdfp-footer{
  margin-top:74px;
}

@keyframes tdfpPulse{
  0%{ box-shadow:0 0 0 0 rgba(127,172,101,.52); }
  70%{ box-shadow:0 0 0 12px rgba(127,172,101,0); }
  100%{ box-shadow:0 0 0 0 rgba(127,172,101,0); }
}

@keyframes tdfpRide{
  0%, 100%{ transform:translate3d(0,0,0) scale(1); }
  50%{ transform:translate3d(0,-8px,0) scale(1.02); }
}

@keyframes tdfpSpin{
  to{ transform:rotate(360deg); }
}

@keyframes tdfpShimmer{
  0%{ background-position:160% 0; }
  100%{ background-position:-80% 0; }
}

@keyframes tdfpReveal{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:translateY(0); }
}

@media (max-width: 1080px){
  .tdfp-hero-grid,
  .tdfp-explainer-grid{
    grid-template-columns:1fr;
  }

  .tdfp-race-card{
    max-width:620px;
  }

  .tdfp-app-head{
    display:grid;
  }

  .tdfp-app-status{
    min-width:0;
    max-width:none;
  }

  .tdfp-panel-layout{
    grid-template-columns:1fr;
  }

  .tdfp-control-card,
  .tdfp-output-card{
    min-height:auto;
  }

  .tdfp-empty-state,
  .tdfp-loading-state,
  .tdfp-error-state{
    min-height:380px;
  }
}

@media (max-width: 820px){
  .tdfp-hero{
    padding-top:28px;
  }

  .tdfp-lead{
    font-size:18px;
  }

  .tdfp-app-shell{
    padding:18px;
    border-radius:26px;
  }

  .tdfp-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .tdfp-tab{
    width:100%;
    padding:0 12px;
    font-size:14px;
  }

  .tdfp-control-card,
  .tdfp-output-card{
    padding:18px;
    border-radius:24px;
  }

  .tdfp-control-card h3,
  .tdfp-result-head h3{
    font-size:25px;
  }

  .tdfp-inline-fields,
  .tdfp-grid-split,
  .tdfp-team-focus,
  .tdfp-metrics{
    grid-template-columns:1fr;
  }

  .tdfp-podium-card{
    grid-template-columns:auto minmax(0,1fr);
  }

  .tdfp-score-stack{
    grid-column:1 / -1;
    text-align:left;
    min-width:0;
    padding-left:60px;
  }

  .tdfp-score-track{
    width:min(100%, 280px);
  }

  .tdfp-duel-grid{
    grid-template-columns:1fr;
  }

  .tdfp-duel-vs{
    margin:0 auto;
  }

  .tdfp-race-card{
    min-height:410px;
    padding:18px;
  }

  .tdfp-mini-dashboard{
    grid-template-columns:1fr;
  }
}

@media (max-width: 560px){
  .tdfp-tabs{
    grid-template-columns:1fr;
  }

  .tdfp-hero-badges{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .tdfp-hero-badges span{
    text-align:center;
  }

  .tdfp-hero-actions{
    display:grid;
  }

  .tdfp-hero-actions .btn{
    width:100%;
  }

  .tdfp-race-card{
    min-height:390px;
  }

  .tdfp-track{
    height:220px;
  }

  .tdfp-bike{
    font-size:27px;
  }

  .tdfp-podium-card{
    grid-template-columns:1fr;
  }

  .tdfp-score-stack{
    grid-column:auto;
    padding-left:0;
  }

  .tdfp-team-top,
  .tdfp-result-head{
    display:grid;
  }
}

@media (prefers-reduced-motion: reduce){
  .tdfp-live-dot,
  .tdfp-status-orb,
  .tdfp-bike,
  .tdfp-scan-disc,
  .tdfp-loading-line,
  .tdfp-result{
    animation:none !important;
  }

  .tdfp-score-fill,
  .tdfp-tab,
  .tdfp-run,
  .tdfp-primary-link{
    transition:none !important;
  }
}


/* Expandable SEO intro: readable by default, non-invasive on the page. */
.tdfp-seo-intro{
  max-width:800px;
  margin:0 0 18px;
}

.tdfp-seo-intro .tdfp-lead{
  margin-bottom:12px;
}

.tdfp-seo-intro .tdfp-lead strong{
  font-weight:700;
}

.tdfp-seo-details{
  border:1px solid rgba(92,72,52,.14);
  border-radius:20px;
  background:rgba(255,255,255,.58);
  box-shadow:0 10px 26px rgba(50,40,30,.06);
  overflow:hidden;
}

.tdfp-seo-details summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-height:48px;
  padding:12px 16px;
  color:#4c3d31;
  font-size:14px;
  font-weight:800;
  user-select:none;
}

.tdfp-seo-details summary::-webkit-details-marker{
  display:none;
}

.tdfp-seo-summary-open{
  display:none;
}

.tdfp-seo-details[open] .tdfp-seo-summary-closed{
  display:none;
}

.tdfp-seo-details[open] .tdfp-seo-summary-open{
  display:inline;
}

.tdfp-seo-summary-arrow{
  margin-left:2px;
  font-size:18px;
  line-height:1;
  transition:transform .22s ease;
}

.tdfp-seo-details[open] .tdfp-seo-summary-arrow{
  transform:rotate(180deg);
}

.tdfp-seo-details-body{
  padding:0 18px 18px;
  border-top:1px solid rgba(92,72,52,.10);
}

.tdfp-seo-details-body p{
  margin-top:16px;
  margin-bottom:0;
  font-size:16px;
  line-height:1.82;
  color:var(--text);
}

/* Poster discovery blocks injected by the build script.
   Kept deliberately compact so the app remains the main focus. */
.tdfp-poster-showcase{
  position:relative;
  border:1px solid rgba(92,72,52,.12);
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(242,234,224,.90));
  box-shadow:0 12px 28px rgba(50,40,30,.06);
  overflow:hidden;
}

.tdfp-poster-showcase::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-110px;
  top:-120px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(180,136,66,.14), rgba(180,136,66,0));
  pointer-events:none;
}

.tdfp-poster-showcase-inline{
  margin:14px 0 18px;
  padding:14px 16px 16px;
}

.tdfp-poster-outro-wrap{
  padding-top:6px;
  padding-bottom:18px;
}

.tdfp-poster-showcase-outro{
  padding:16px 18px 18px;
}

.tdfp-poster-head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.tdfp-poster-head h3,
.tdfp-poster-head h2{
  margin-bottom:4px;
  font-size:clamp(18px, 2.2vw, 24px);
}

.tdfp-poster-head .eyebrow{
  margin-bottom:6px;
}

.tdfp-poster-head p{
  max-width:680px;
  margin:0;
  color:var(--text-soft);
  font-size:14px;
  line-height:1.55;
}

.tdfp-poster-grid{
  position:relative;
  z-index:1;
  display:flex;
  gap:12px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  padding:2px 2px 8px;
  scrollbar-width:thin;
}

.tdfp-poster-grid::-webkit-scrollbar{
  height:8px;
}

.tdfp-poster-grid::-webkit-scrollbar-thumb{
  background:rgba(110,84,61,.30);
  border-radius:999px;
}

.tdfp-poster-card{
  flex:0 0 176px;
  scroll-snap-align:start;
  display:grid;
  grid-template-rows:auto 1fr;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(92,72,52,.11);
  border-radius:16px;
  background:rgba(255,255,255,.94);
  color:inherit;
  box-shadow:0 8px 18px rgba(50,40,30,.07);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tdfp-poster-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 22px rgba(50,40,30,.11);
  border-color:rgba(92,72,52,.22);
}

.tdfp-poster-card-media{
  height:138px;
  overflow:hidden;
  background:#eadfce;
}

.tdfp-poster-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0;
  transition:transform .28s ease;
}

.tdfp-poster-card:hover .tdfp-poster-card-media img{
  transform:scale(1.03);
}

.tdfp-poster-card-body{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:10px 11px 11px;
}

.tdfp-poster-card-body strong{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  min-height:2.7em;
  color:#332b24;
  font-size:13px;
  line-height:1.35;
}

.tdfp-poster-card-body span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#7a5c3f;
  font-size:12px;
  font-weight:800;
}

.tdfp-poster-card-body span::after{
  content:"→";
}

@media (max-width: 760px){
  .tdfp-seo-details summary{
    align-items:flex-start;
    line-height:1.35;
  }

  .tdfp-poster-showcase-inline,
  .tdfp-poster-showcase-outro{
    padding:14px;
  }

  .tdfp-poster-outro-wrap{
    padding-top:0;
    padding-bottom:14px;
  }

  .tdfp-poster-grid{
    gap:10px;
  }

  .tdfp-poster-card{
    flex-basis:154px;
  }

  .tdfp-poster-card-media{
    height:118px;
  }
}

@media (prefers-reduced-motion: reduce){
  .tdfp-seo-summary-arrow,
  .tdfp-poster-card,
  .tdfp-poster-card-media img{
    transition:none;
  }
}


/* =========================
   V5 polish: presentation image, discreet carousel, rider portraits,
   clearer progress bars, centred markers, share actions.
   ========================= */
.tdfp-presentation-card{
  margin:0;
  align-self:stretch;
  overflow:hidden;
  min-height:360px;
  border-radius:30px;
  border:1px solid rgba(80,60,45,.13);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,232,221,.94));
  box-shadow:0 22px 50px rgba(50,40,30,.11);
}

.tdfp-presentation-card img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  border-radius:0;
}

.tdfp-seo-details summary{
  position:relative;
  justify-content:flex-start;
  padding-right:62px;
}

.tdfp-seo-summary-arrow{
  position:absolute;
  right:22px;
  top:50%;
  margin:0;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  font-size:22px;
}

.tdfp-seo-details[open] .tdfp-seo-summary-arrow{
  transform:translateY(-50%) rotate(180deg);
}

.tdfp-poster-carousel{
  position:relative;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 40px;
  gap:10px;
  align-items:center;
}

.tdfp-poster-grid{
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding:2px;
  scroll-behavior:smooth;
}

.tdfp-poster-grid::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}

.tdfp-poster-nav{
  width:40px;
  height:40px;
  border:1px solid rgba(92,72,52,.18);
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.92);
  color:#5b4633;
  box-shadow:0 8px 18px rgba(50,40,30,.10);
  font-size:28px;
  line-height:1;
  font-weight:700;
  cursor:pointer;
  transition:transform .18s ease, opacity .18s ease, background .18s ease;
}

.tdfp-poster-nav:hover,
.tdfp-poster-nav:focus-visible{
  transform:translateY(-1px);
  background:#fff;
}

.tdfp-poster-nav[disabled]{
  opacity:.34;
  cursor:default;
  transform:none;
}

.tdfp-poster-dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  min-height:18px;
  margin-top:10px;
}

.tdfp-poster-dot{
  width:9px;
  height:9px;
  padding:0;
  border:0;
  border-radius:999px;
  background:rgba(92,72,52,.25);
  cursor:pointer;
}

.tdfp-poster-dot.is-active{
  width:24px;
  background:#8d6a43;
}

.tdfp-poster-showcase-inline .tdfp-poster-card,
.tdfp-poster-showcase-outro .tdfp-poster-card{
  flex-basis:168px;
}

.tdfp-rank-badge,
.tdfp-team-rank{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
}

.tdfp-team-rank{
  width:48px;
  height:48px;
  min-width:48px;
  min-height:48px;
  padding:0;
  border-radius:16px;
}

.tdfp-score-track{
  background:#d9e6d6;
}

.tdfp-score-fill{
  background:linear-gradient(90deg, #69b66a, #2f8a4b);
}

.tdfp-rider-row{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.tdfp-rider-avatar{
  position:relative;
  width:54px;
  height:54px;
  flex:0 0 54px;
  overflow:hidden;
  border-radius:999px;
  border:2px solid rgba(80,60,45,.14);
  background:linear-gradient(135deg, #f3eadf, #e7d6bd);
  display:grid;
  place-items:center;
}

.tdfp-rider-avatar img{
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:cover;
}

.tdfp-rider-avatar-fallback{
  display:none;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  color:#76573a;
  font-size:16px;
  font-weight:900;
  letter-spacing:.02em;
}

.tdfp-rider-avatar.is-fallback .tdfp-rider-avatar-fallback{
  display:flex;
}

.tdfp-rider-avatar.is-fallback img{
  display:none;
}

.tdfp-rider-heading{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.tdfp-duel-rider-head{
  display:flex;
  align-items:center;
  gap:12px;
}

.tdfp-share-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(80,60,45,.10);
}

.tdfp-share-label{
  width:100%;
  color:#5b493a;
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.tdfp-share-button{
  min-height:40px;
  padding:0 14px;
  border:1px solid rgba(80,60,45,.16);
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:#392e26;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}

.tdfp-share-button:hover,
.tdfp-share-button:focus-visible{
  transform:translateY(-1px);
  background:#fff;
  border-color:rgba(80,60,45,.30);
}

.tdfp-share-button.is-copied{
  background:#e5f2e6;
  border-color:rgba(47,138,75,.34);
  color:#246e3b;
}

@media (max-width: 760px){
  .tdfp-presentation-card,
  .tdfp-presentation-card img{
    min-height:250px;
  }

  .tdfp-poster-carousel{
    grid-template-columns:36px minmax(0,1fr) 36px;
    gap:8px;
  }

  .tdfp-poster-nav{
    width:36px;
    height:36px;
    font-size:24px;
  }

  .tdfp-podium-card{
    grid-template-columns:auto minmax(0,1fr);
  }

  .tdfp-podium-card .tdfp-score-stack{
    grid-column:1 / -1;
    width:100%;
    text-align:left;
  }

  .tdfp-score-track{
    width:100%;
  }

  .tdfp-rider-heading{
    align-items:flex-start;
  }
}

@media (prefers-reduced-motion: reduce){
  .tdfp-poster-grid{
    scroll-behavior:auto;
  }
  .tdfp-poster-nav,
  .tdfp-share-button{
    transition:none;
  }
}


/* =========================
   V6 polish: platform-coloured share buttons, team logos,
   stronger vertical centring for rank badges.
   ========================= */
.tdfp-team-top{
  align-items:center;
}

.tdfp-team-rank,
.tdfp-rank-badge{
  align-self:center;
  font-variant-numeric:tabular-nums;
  line-height:1;
}

.tdfp-team-identity,
.tdfp-team-heading{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.tdfp-team-heading h3,
.tdfp-team-heading p{
  margin-bottom:0;
}

.tdfp-team-logo{
  position:relative;
  width:54px;
  height:54px;
  flex:0 0 54px;
  overflow:hidden;
  border-radius:16px;
  border:2px solid rgba(80,60,45,.14);
  background:linear-gradient(135deg, #f3eadf, #e7d6bd);
  display:grid;
  place-items:center;
}

.tdfp-team-logo img{
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:contain;
  padding:5px;
  background:#fff;
}

.tdfp-team-logo-fallback{
  display:none;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  color:#76573a;
  font-size:15px;
  font-weight:900;
  letter-spacing:.02em;
}

.tdfp-team-logo.is-fallback .tdfp-team-logo-fallback{
  display:flex;
}

.tdfp-team-logo.is-fallback img{
  display:none;
}

.tdfp-share-button[data-share-network="facebook"]{
  background:#4c6f9f;
  border-color:#4c6f9f;
  color:#fff;
}

.tdfp-share-button[data-share-network="x"]{
  background:#222;
  border-color:#222;
  color:#fff;
}

.tdfp-share-button[data-share-network="reddit"]{
  background:#b96a42;
  border-color:#b96a42;
  color:#fff;
}

.tdfp-share-button[data-share-network="whatsapp"]{
  background:#4f9365;
  border-color:#4f9365;
  color:#fff;
}

.tdfp-share-button[data-share-network="copy"]{
  background:#fff;
  border-color:rgba(80,60,45,.22);
  color:#392e26;
}

.tdfp-share-button[data-share-network="facebook"]:hover,
.tdfp-share-button[data-share-network="x"]:hover,
.tdfp-share-button[data-share-network="reddit"]:hover,
.tdfp-share-button[data-share-network="whatsapp"]:hover{
  filter:brightness(.96);
}

@media (max-width:760px){
  .tdfp-team-heading,
  .tdfp-team-identity{
    align-items:flex-start;
  }
}


/* =========================
   V7 refinements: rank centring, rider/team presentation,
   quieter share colours.
   ========================= */
.tdfp-team-card span.tdfp-team-rank{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
  padding:0;
}

.tdfp-podium-card.tdfp-rider-podium-card{
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
}

.tdfp-rider-stage-card{
  min-width:0;
}

.tdfp-rider-stage-card .tdfp-rider-row{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:12px;
  align-items:center;
}

.tdfp-rider-copy{
  min-width:0;
}

.tdfp-rider-name-line{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  margin-bottom:9px;
}

.tdfp-rider-name-line strong{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#352b23;
  font-size:17px;
}

.tdfp-rider-name-line .tdfp-team-logo{
  width:34px;
  height:34px;
  flex-basis:34px;
  border-radius:11px;
}

.tdfp-rider-name-line .tdfp-team-logo img{
  padding:4px;
}

.tdfp-rider-stage-card .tdfp-score-stack{
  width:100%;
  min-width:0;
  text-align:left;
  display:grid;
  grid-template-columns:auto minmax(100px, 1fr);
  gap:12px;
  align-items:center;
}

.tdfp-rider-stage-card .tdfp-score-number{
  min-width:52px;
}

.tdfp-rider-stage-card .tdfp-score-track{
  width:100%;
  margin-top:0;
}

@media (max-width:760px){
  .tdfp-rider-stage-card .tdfp-score-stack{
    grid-template-columns:1fr;
    gap:7px;
  }

  .tdfp-rider-name-line strong{
    white-space:normal;
  }
}
