/* NoSpo 2026 visual system — inspired by modern spoiler-free match directories. */
:root{
  --bg:#070a09;
  --surface:#0d1210;
  --surface-2:#121815;
  --surface-3:#18201c;
  --line:#263029;
  --line-soft:#1a211d;
  --text:#f6f8f5;
  --muted:#a4aea8;
  --mint:#8bff5a;
  --mint-strong:#a0ff75;
  --mint-soft:#8bff5a16;
  --shadow:0 24px 70px #0008;
}

body{
  background:
    radial-gradient(900px 420px at 82% -5%,#79ff4320,transparent 66%),
    radial-gradient(700px 420px at 0 30%,#17351f45,transparent 65%),
    var(--bg);
  overflow-x:hidden;
}

.site-header{
  height:78px;
  border-bottom-color:#ffffff12;
  background:#070a09e8;
  box-shadow:0 8px 30px #0003;
}
.site-header nav{gap:8px;padding:5px;border:1px solid #ffffff0b;border-radius:999px;background:#ffffff05}
.site-header nav a{padding:0 15px;border-radius:999px;color:#aeb7b1;transition:color .18s,background .18s}
.site-header nav a:hover{color:#fff;background:#ffffff08}
.account-button{border-radius:999px;padding-inline:20px;background:#111713}
.safe-pill{border-radius:999px;background:#8bff5a0d}

.hero{
  width:min(1280px,calc(100% - 32px));
  min-height:500px;
  margin:28px auto 0;
  padding:76px clamp(28px,5vw,72px);
  border:1px solid #ffffff14;
  border-radius:28px;
  background:
    linear-gradient(90deg,#090d0b 0 54%,transparent 82%),
    radial-gradient(circle at 82% 48%,#8bff5a2b,transparent 31%),
    linear-gradient(140deg,#111813,#080b0a);
  box-shadow:var(--shadow);
}
.hero-grid{opacity:.12;background-size:64px 64px;mask-image:linear-gradient(90deg,#000,transparent 90%)}
.hero:after{right:3%;top:35px;font-size:clamp(210px,28vw,390px);color:#8bff5a08;-webkit-text-stroke:1px #8bff5a1f}
.hero h1{max-width:780px;font-size:clamp(52px,7vw,92px);line-height:.9;margin-top:20px}
.hero p{max-width:640px;font-size:clamp(17px,1.7vw,21px);line-height:1.65}
.hero .actions{align-items:center}
.hero .button.primary{padding:15px 22px;border-radius:999px;box-shadow:0 10px 32px #65ff3030}
.hero-proof{margin-top:45px;max-width:700px}
.hero-proof span{padding-top:17px}
.time-card{width:218px;border:1px solid #9cff6960;border-radius:20px;box-shadow:18px 18px 0 #8bff5a0a;transform:rotate(1.5deg)}

#resumenes.container{
  max-width:1240px;
  padding-top:86px;
  padding-bottom:40px;
}
#resumenes>.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);column-gap:60px;align-items:end;margin-bottom:34px}
#resumenes>.section-head .section-kicker,#resumenes>.section-head h2{grid-column:1}
#resumenes>.section-head p{grid-column:2;grid-row:1/3;margin:0}
.section-head h2{max-width:820px;font-size:clamp(34px,4.5vw,58px);line-height:.98}

.match-search{max-width:none;margin:0 0 18px}
.match-search>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.match-search input{height:58px;padding-left:22px;border-radius:16px;border-color:#ffffff14;background:#0c110f;box-shadow:inset 0 1px #ffffff08}
.match-search b{bottom:11px;right:22px}

.competition-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(155px,1fr));
  gap:10px;
  margin:0;
  padding:10px;
  border:1px solid #ffffff12;
  border-radius:20px;
  background:#0b0f0d;
}
.competition-tabs .tab[data-competition]{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:11px;
  min-height:58px;
  margin:0;
  padding:10px 14px;
  border:1px solid transparent;
  border-radius:14px;
  color:#aab3ad;
  font-size:10px;
  text-align:left;
}
.competition-tabs .tab[data-competition]:before{
  content:"L";
  flex:0 0 36px;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid #ffffff19;
  border-radius:11px;
  background:#161d19;
  color:#dce3de;
  font:15px/1 'Archivo Black',Impact,sans-serif;
}
.competition-tabs .tab[data-competition="LaLiga Hypermotion"]:before{content:"2"}
.competition-tabs .tab[data-competition="Premier League"]:before{content:"PL";font-size:11px}
.competition-tabs .tab[data-competition="Bundesliga"]:before{content:"B"}
.competition-tabs .tab.active{border-color:#8bff5a42;background:linear-gradient(145deg,#172019,#101611);color:#fff;box-shadow:0 8px 25px #0004}
.competition-tabs .tab.active:before{border-color:#8bff5a70;background:var(--mint);color:#091007;box-shadow:0 0 24px #8bff5a22}
.competition-tabs .tab.active:after{display:none}
.competition-tabs>.tab.disabled{display:none}

.round-selector{margin:24px 0 14px}
.round-selector select{border-radius:12px;background:#0f1511}
.round{margin-top:24px;padding:26px;border:1px solid #ffffff10;border-radius:24px;background:#0a0e0c}
.round-title{padding-bottom:21px;border-bottom-color:#ffffff11}
.round-title small{border-radius:11px;transform:none}
.round-title h3{font-size:25px}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}
.card{
  min-height:218px;
  padding:20px;
  border:1px solid #ffffff12;
  border-radius:18px;
  background:linear-gradient(145deg,#131a16,#0e1310);
  box-shadow:inset 0 1px #ffffff07;
}
.card:before{background:radial-gradient(circle at 100% 100%,#8bff5a10,transparent 42%)}
.card.available-card{border-top:1px solid #ffffff12}
.card.available-card:hover{transform:translateY(-3px);border-color:#8bff5a65;box-shadow:0 18px 46px #0007}
.card-index{top:20px;right:20px;font-size:42px}
.teams{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:22px 0 18px}
.team{flex-direction:column;justify-content:center;gap:9px;text-align:center;font-size:14px;line-height:1.25}
.crest{
  position:relative;
  width:54px;
  height:60px;
  border:1px solid #8bff5a45;
  border-radius:17px 17px 21px 21px;
  background:linear-gradient(145deg,#202a23,#111713);
  color:#e9f0eb;
  font-size:10px;
  box-shadow:inset 0 1px #ffffff16,0 9px 24px #0005;
  overflow:hidden;
}
.crest:after{content:"";position:absolute;inset:5px;border:1px solid #ffffff0c;border-radius:12px 12px 16px 16px;pointer-events:none}
.crest img{position:absolute;z-index:2;inset:5px;width:calc(100% - 10px);height:calc(100% - 10px);object-fit:contain;filter:drop-shadow(0 5px 7px #0007)}
.crest img[hidden]{display:none}
.available-card .crest{color:var(--mint)}
.versus{margin:0;padding:6px 7px;border-radius:999px;background:#ffffff08;color:#737e77}
.card-bottom{border-top:1px solid #ffffff0d;padding-top:14px}
.available,.pending{font-size:9px}

.experience-hub,.fan-champion{width:min(1240px,calc(100% - 32px));border-radius:24px}
.experience-hub{margin-top:70px;padding:30px;background:linear-gradient(140deg,#121915,#0b100d);border-color:#ffffff12}
.experience-main h2{font-size:clamp(28px,3.5vw,44px)}
.favorite-picker,.personal-stats{border-radius:15px;background:#080c0a}
.achievement-strip span{border-radius:13px}
.fan-champion{margin-top:24px;padding:42px;border-top-width:1px;background:radial-gradient(circle at 88% 48%,#8bff5a21,transparent 32%),linear-gradient(135deg,#121915,#090d0b)}
.fan-champion-card{border-radius:18px}
.trivia-home{width:min(1240px,calc(100% - 32px));margin:78px auto 0;padding-top:0}
.trivia-home-grid>*{border-radius:20px}

.social-follow a{border-radius:14px 0 0 14px}
footer{max-width:1240px;margin-top:90px}

@media(max-width:900px){
  #resumenes>.section-head{display:block}
  #resumenes>.section-head p{margin-top:14px}
  .competition-tabs{grid-template-columns:repeat(2,1fr)}
  .hero{grid-template-columns:1fr;min-height:auto}
}

@media(max-width:760px){
  .site-header{height:68px}
  .hero{width:calc(100% - 20px);margin-top:10px;padding:55px 23px;border-radius:22px}
  .hero h1{font-size:clamp(43px,13vw,62px)}
  .hero-proof{grid-template-columns:repeat(3,1fr)}
  .hero-proof span{padding:12px 8px 0;text-align:center;border-right:1px solid #ffffff12;border-bottom:0}
  .hero-proof span:last-child{border-right:0}
  .hero-proof b{font-size:19px}
  #resumenes.container{padding:62px 12px 25px}
  .competition-tabs{display:flex;padding:7px;border-radius:17px;overflow-x:auto;scroll-snap-type:x proximity}
  .competition-tabs .tab[data-competition]{flex:0 0 170px;min-height:54px;scroll-snap-align:start}
  .round{padding:15px;border-radius:18px}
  .grid{grid-template-columns:1fr}
  .card{min-height:210px}
  .experience-hub,.fan-champion,.trivia-home{width:calc(100% - 20px)}
  .experience-hub{margin-top:48px;padding:18px}
  .fan-champion{padding:27px 20px}
  .trivia-home{margin-top:58px}
}

@media(max-width:430px){
  .hero-proof span{font-size:8px}
  .hero-proof b{font-size:17px}
  .teams{gap:7px}
  .team{font-size:13px}
  .crest{width:50px;height:56px}
}

/* Compact home: matches become the primary content, as in a modern fixture browser. */
.hero{
  display:block;
  min-height:180px;
  padding:20px clamp(26px,4vw,48px);
}
.hero:after{top:-78px;font-size:240px}
.hero-copy{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);column-gap:50px;align-items:center;max-width:none}
.hero .eyebrow{grid-column:1/-1;margin-bottom:7px}
.hero h1{grid-column:1;grid-row:2/4;max-width:820px;margin:0;font-size:clamp(34px,4vw,53px);line-height:.93}
.hero h1 br{display:none}
.hero p{grid-column:2;grid-row:2;max-width:520px;margin:0;font-size:14px;line-height:1.5}
.hero .actions{grid-column:2;grid-row:3;margin-top:12px}
.hero .button.primary{padding:12px 17px}
.hero-proof{display:none}
.time-card{display:none}

#resumenes.container{padding-top:24px}
#resumenes>.section-head{display:block;margin-bottom:8px}
#resumenes>.section-head .section-kicker,#resumenes>.section-head p{display:none}
#resumenes>.section-head h2{margin:0;font-size:clamp(24px,2.5vw,33px);line-height:1}
.match-search{margin-bottom:9px}
.match-search input{height:42px;border-radius:11px;font-size:13px}

.competition-tabs{gap:8px;padding:7px;border-radius:16px}
.competition-tabs .tab[data-competition]{min-height:46px;padding:6px 10px;border-radius:11px}
.competition-tabs .tab[data-competition]:before{width:32px;height:32px;flex-basis:32px;border-radius:9px}
.competition-tabs .tab[data-competition]:after{display:block;margin-left:auto;color:#667169;font-size:9px;letter-spacing:0}
.competition-tabs .tab[data-competition="LaLiga"]:after{content:"1ª"}
.competition-tabs .tab[data-competition="LaLiga Hypermotion"]:after{content:"2ª"}
.competition-tabs .tab[data-competition="Premier League"]:after{content:"ENG"}
.competition-tabs .tab[data-competition="Bundesliga"]:after{content:"GER"}
.competition-tabs .tab.active:after{display:block;color:var(--mint)}

.round-selector{margin:9px 0 6px}
.round-selector select{min-height:40px}
.round{margin-top:7px;padding:14px;border-radius:17px}
.round-title{padding-bottom:13px}
.round-title small{width:31px;height:31px;border-radius:9px}
.round-title h3{font-size:21px}
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.card{min-height:174px;padding:13px;border-radius:13px;gap:8px}
.card-index{right:11px;top:12px;font-size:29px}
.card-top,.card-bottom{font-size:8px}
.available,.pending{font-size:8px}
.watch-check{width:25px;height:25px}
.teams{gap:6px;margin:8px 0 7px}
.team{gap:5px;font-size:11px}
.crest{width:39px;height:43px;border-radius:12px 12px 15px 15px;font-size:8px}
.crest:after{inset:3px;border-radius:9px 9px 12px 12px}
.crest img{inset:3px;width:calc(100% - 6px);height:calc(100% - 6px)}
.versus{padding:4px;font-size:7px}
.card-bottom{padding-top:9px}
.watch b{font-size:11px}
.waiting{max-width:95px}

.experience-hub{margin-top:45px}
.fan-champion{margin-top:15px}
.trivia-home{margin-top:48px}

/* Cinema mode and wrapper-owned fullscreen. */
.match{transition:max-width .28s ease}
.match.cinema-active{max-width:min(1460px,calc(100vw - 28px));padding-inline:0}
.match.cinema-active .player{box-shadow:0 30px 100px #000,0 0 0 1px #8bff5a2e}
.match.cinema-active .meta,.match.cinema-active h1,.match.cinema-active .match-sub,.match.cinema-active .shield-banner,.match.cinema-active .source,.match.cinema-active .reveal,.match.cinema-active .back{max-width:1180px;margin-left:auto;margin-right:auto}
.cinema-controls{position:absolute;right:10px;bottom:5px;z-index:7;display:flex;gap:6px}
.cinema-controls button{display:flex;align-items:center;gap:6px;min-height:34px;border:1px solid #ffffff30;border-radius:7px;padding:8px 10px;background:#080b0df2;color:#fff;font:800 9px/1 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(8px)}
.cinema-controls button:hover,.cinema-controls button:focus-visible,.cinema-controls button[aria-pressed="true"]{border-color:var(--mint);color:var(--mint)}
.fullscreen-button{position:static}
.player:fullscreen .cinema-toggle,.player.mobile-fullscreen .cinema-toggle{display:none}
.player:fullscreen .cinema-controls,.player.mobile-fullscreen .cinema-controls{right:12px;bottom:7px}

@media(max-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .hero{display:block;min-height:auto;padding:28px 22px}
  .hero-copy{display:block}
  .hero h1{font-size:clamp(35px,10vw,48px)}
  .hero h1 br{display:block}
  .hero p{font-size:14px}
  .time-card{display:none}
  #resumenes.container{padding-top:28px}
  #resumenes>.section-head h2{font-size:31px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .card{min-height:168px;padding:11px}
  .team{font-size:10px}
  .crest{width:36px;height:40px}
  .card-bottom>span:first-child{max-width:68px}
  .cinema-controls .cinema-toggle span{display:none}
  .match.cinema-active{width:100%;padding-inline:10px}
}
@media(max-width:430px){
  .grid{grid-template-columns:1fr}
  .card{min-height:157px}
  .teams{grid-template-columns:1fr auto 1fr}
  .competition-tabs .tab[data-competition]{flex-basis:155px}
}

/* Compact directory home: fixtures first, maximum clarity and density. */
body{background:#080b09}
body:has(#resumenes) .hero{display:none!important}
.site-header{height:64px;box-shadow:none}
.site-header nav{padding:3px}
.site-header nav a{min-height:38px;padding:0 12px;font-size:10px;letter-spacing:.045em}
.site-header .safe-pill,.account-button{min-height:38px}
#resumenes.container{max-width:1440px;padding:22px 18px 34px}
#resumenes>.section-head{display:block;margin:0 0 12px}
#resumenes>.section-head .section-kicker,#resumenes>.section-head p{display:none}
#resumenes>.section-head h2{margin:0;font:800 clamp(23px,2.4vw,32px)/1.18 Inter,system-ui,sans-serif;letter-spacing:-.025em;text-transform:none}
.match-search{margin:12px 0 8px}
.match-search input{height:40px;padding:0 46px 0 14px;border-radius:9px;font:500 13px/1.2 Inter,system-ui,sans-serif}
.match-search b{right:14px;bottom:6px;font-size:21px}
.competition-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:5px;border-radius:11px}
.competition-tabs .tab[data-competition]{min-width:0;min-height:40px;gap:7px;padding:4px 8px;border-radius:8px;font-size:9px;line-height:1.2;letter-spacing:.035em;white-space:normal}
.competition-tabs .tab[data-competition]:before{width:28px;height:28px;flex-basis:28px;border-radius:7px;font:800 11px/1 Inter,system-ui,sans-serif}
.competition-tabs .tab[data-competition]:after{font-size:8px}
.round,.agenda-day{margin-top:11px;padding:13px;border-radius:12px;background:#0c100e}
.round-title{min-height:34px;padding-bottom:9px}
.round-title>div{min-width:0;gap:9px}
.round-title small,.agenda-day .round-title small{display:block;width:auto;min-width:0;height:auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--mint);font:700 10px/1.25 Inter,system-ui,sans-serif;letter-spacing:.025em;text-transform:none;transform:none;white-space:nowrap}
.round-title h3{font:800 18px/1.15 Inter,system-ui,sans-serif;letter-spacing:-.015em;text-transform:none;white-space:nowrap}
.round-title>span{font-size:9px;line-height:1.2;white-space:nowrap}
.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;margin-top:10px}
.card{min-width:0;min-height:142px;padding:11px;border-radius:9px;gap:5px;background:#111613}
.card-index{display:none}
.card-top{min-width:0;gap:8px;font-size:8px;line-height:1.2;letter-spacing:.025em}
.card-top .pending,.card-top .available{min-width:0;max-width:calc(100% - 42px);font-size:8px;line-height:1.2;letter-spacing:.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-top>span:last-child{flex:none}
.watch-check{width:24px;height:24px}
.teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;margin:5px 0}
.team{min-width:0;gap:4px;font:700 11px/1.22 Inter,system-ui,sans-serif;overflow-wrap:anywhere}
.crest{width:34px;height:37px;border-radius:8px 8px 10px 10px}
.crest:after{display:none}
.versus{padding:3px 4px;font-size:7px}
.card-bottom{gap:8px;padding-top:7px;font-size:7.5px;line-height:1.2;letter-spacing:.015em}
.card-bottom>span:first-child{min-width:0;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none}
.waiting{max-width:45%;text-align:right;line-height:1.2}
.experience-hub,.fan-champion,.trivia-home{max-width:1404px}
.experience-hub{margin-top:24px}.fan-champion{margin-top:12px}.trivia-home{margin-top:38px}
.social-follow a{border-radius:10px 0 0 10px}
@media(max-width:980px){
  .competition-tabs{display:flex;overflow-x:auto}
  .competition-tabs .tab[data-competition]{flex:0 0 155px}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .site-header{height:58px;padding-inline:10px}
  .brand img{width:105px!important;height:34px!important}
  #resumenes.container{padding:14px 9px 24px}
  #resumenes>.section-head h2{font-size:22px;line-height:1.2}
  .competition-tabs .tab[data-competition]{flex-basis:142px;min-height:38px}
  .round,.agenda-day{padding:10px 8px}
  .round-title{align-items:flex-start}.round-title>div{display:block}
  .round-title h3{margin-top:2px;font-size:16px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .card{min-height:134px;padding:9px}.team{font-size:10px}.crest{width:31px;height:34px}
  .social-follow{display:none}
}
@media(max-width:480px){
  .grid{grid-template-columns:1fr}.card{min-height:112px}
  .team{flex-direction:row;justify-content:flex-start;text-align:left;font-size:11px}
  .team:last-child{flex-direction:row-reverse;text-align:right}
  .crest{flex:0 0 30px;width:30px;height:32px}.teams{margin:3px 0}.card-bottom{padding-top:5px}
}
