*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0b0c09;color:#eee9dc;font:14px/1.6 Arial,sans-serif}a{color:inherit;text-decoration:none}.topbar{height:31px;border-bottom:1px solid #28291f;padding:8px 4%;font-size:9px;letter-spacing:2px;color:#858272;display:flex;justify-content:space-between}.topbar span{color:#686758}nav{height:76px;padding:0 4%;display:flex;align-items:center;gap:25px;border-bottom:1px solid #34352b;background:#0b0c09ee;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;width:54px;height:54px}.brand img{display:block;width:54px;height:54px;object-fit:contain}.brand{color:#c7a766;letter-spacing:2px}.navlinks{display:flex;gap:18px;margin-left:auto;align-items:center;text-transform:uppercase;font-size:10px;font-weight:bold;letter-spacing:1px;min-width:0}.navlinks>a,.navdrop{white-space:nowrap}.navlinks a:hover,.navright a:hover{color:#c7a766}.navright{display:flex;gap:14px;font-size:10px;text-transform:uppercase;font-weight:bold}.adminlink{color:#c7a766}.hero{min-height:610px;padding:105px 8%;display:flex;align-items:center;background:radial-gradient(circle at 80% 30%,#66563355,transparent 30%),linear-gradient(90deg,#0b0c09,#12130f)}.hero h1{font:clamp(55px,8vw,100px)/.87 Impact,Arial Black;margin:12px 0 25px}.hero h1 em,.pagehero em{font-style:normal;color:#c7a766}.lead{font-size:17px;max-width:760px;color:#b7b1a0}.eyebrow{color:#c7a766;font-size:10px;font-weight:bold;letter-spacing:3px}.section{padding:70px 7%;max-width:1320px;margin:auto}.section.dark{max-width:none;background:#11120e}.sectionhead{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.sectionhead h1,.sectionhead h2{font:44px/1 Impact,Arial Black;margin:5px 0}.sectionhead a{color:#c7a766}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-block;padding:12px 17px;border:1px solid #545447;background:#151610;color:#eee9dc;font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:1.5px}.btn.gold{background:#c7a766;color:#10110d;border-color:#c7a766}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid4{grid-template-columns:repeat(4,1fr)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{background:#151610;border:1px solid #34352b;padding:23px}.panel:hover{border-color:#625a40}.panel h3{margin:6px 0 8px;font-size:19px}.panel p{color:#999584}.panel small{color:#7f7a6a;font-size:9px;letter-spacing:1.5px}.fixture strong{color:#c7a766;margin:0 8px}.pill{display:inline-block;border:1px solid #505041;padding:4px 8px;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#c7a766}.textlink{display:block;margin-top:15px;color:#c7a766;font-size:10px;font-weight:bold}.stack{display:grid;gap:10px}.calendar{border:1px solid #34352b}.calrow{display:grid;grid-template-columns:72px 1fr auto;gap:20px;align-items:center;padding:17px;border-bottom:1px solid #2c2d25;background:#151610}.calrow:last-child{border:0}.calrow h3{margin:2px 0;font-size:15px}.calrow h3 strong{color:#c7a766;margin:0 8px}.calrow p{margin:0;color:#858070;font-size:11px}.calrow small{font-size:8px;color:#777363;letter-spacing:1px}.datebox{width:56px;height:56px;border:1px solid #4b4b3d;display:grid;place-content:center;text-align:center}.datebox b{font:27px Impact;color:#c7a766;line-height:1}.datebox small{font-size:8px}table{width:100%;border-collapse:collapse;background:#151610}th,td{text-align:left;padding:13px;border-bottom:1px solid #2d2e27;font-size:12px}th{font-size:9px;color:#817c6d;letter-spacing:1.4px}td b{color:#c7a766}.auth{min-height:650px;display:grid;place-items:center;padding:80px 7%}.auth .panel{width:min(520px,100%)}.auth h1,.pagehero{font:50px/.95 Impact,Arial Black;margin:12px 0 25px}.form{display:grid;gap:15px}.form label{display:grid;gap:6px;color:#aaa593;font-size:10px;text-transform:uppercase;letter-spacing:1px}.form input,.form select,.form textarea{width:100%;background:#0e0f0c;border:1px solid #3b3c31;color:#eee9dc;padding:11px;font:14px Arial}.form textarea{min-height:100px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid label:last-child{grid-column:1/-1}.form .btn{justify-self:start;cursor:pointer}.flash{padding:12px;margin:15px 0;border:1px solid #4b4b3d;background:#171812}.flash.bad{border-color:#75473e;color:#e0b0a4}.adminpage{max-width:1400px}.adminnav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:25px;padding-bottom:15px;border-bottom:1px solid #34352b}.adminnav a{padding:8px 11px;background:#151610;border:1px solid #34352b;font-size:9px;text-transform:uppercase;letter-spacing:1px}.stat{display:flex;flex-direction:column;gap:6px}.stat strong{font:48px Impact;color:#c7a766}.stat span{font-size:9px;color:#888373;text-transform:uppercase}.action{color:#c7a766;font-weight:bold}.inline{display:inline}.dangerlink{background:none;border:0;color:#b97869;cursor:pointer;font:inherit}.detail{margin-top:15px}.tabs{display:flex;gap:7px;margin-bottom:14px}.tabs a{padding:8px 12px;background:#151610;border:1px solid #34352b;font-size:9px;text-transform:uppercase}.tabs .active{background:#c7a766;color:#10110d}footer{border-top:1px solid #34352b;padding:40px 7%;display:flex;gap:25px;color:#777363;font-size:10px}footer b{color:#c7a766;font:30px Impact}@media(max-width:1050px){.navlinks{gap:10px}.cards,.grid4{grid-template-columns:1fr 1fr}}@media(max-width:800px){.navlinks{display:none}.navright{margin-left:auto}.grid3,.grid2,.cards,.grid4,.formgrid{grid-template-columns:1fr}.calrow{grid-template-columns:58px 1fr}.calrow .pill{grid-column:2}.sectionhead{align-items:start;flex-direction:column;gap:8px}.hero{padding:80px 6%}.hero h1{font-size:60px}.topbar{padding:8px 3%}footer{flex-direction:column}}

.navdrop{position:relative}.navtrigger{display:block;padding:0;border:0;background:transparent;color:#eee9dc;font:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;cursor:pointer}.navtrigger span{color:#c7a766;margin-left:3px}.dropdown{display:none;position:absolute;top:calc(100% + 18px);left:0;min-width:210px;background:#11120e;border:1px solid #34352b;padding:6px;box-shadow:0 15px 30px #0008}.navdrop:hover .dropdown,.navdrop:focus-within .dropdown{display:grid}.dropdown a{display:block;padding:10px 12px;font-size:9px;letter-spacing:1px}.dropdown a:hover{background:#1b1c16;color:#c7a766}
.calendarcontrols{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}.calendarserver{margin-bottom:30px}.calendarserver h3{margin:0 0 8px}.calendarserver h3 small{font-size:9px;color:#777363;margin-left:8px}.weekgrid{display:grid;grid-template-columns:74px repeat(7,minmax(100px,1fr));border-left:1px solid #34352b;border-top:1px solid #34352b}.dayhead,.timecell,.slot,.timehead{min-height:55px;border-right:1px solid #34352b;border-bottom:1px solid #34352b}.dayhead{display:grid;place-content:center;text-align:center;background:#191a14}.dayhead b{font:22px Impact;color:#c7a766;line-height:1}.dayhead small{font-size:8px;color:#777363;text-transform:uppercase}.timecell{display:grid;place-items:center;color:#777363;background:#11120e;font-size:10px}.slot{display:grid;place-content:center;text-align:center;padding:7px;background:#161711}.slot.available{background:#172017;border-color:#394939;color:#91b48f}.slot.booked{background:#211817;color:#e3b3a6}.slot span{font-size:8px;color:#777363}.slot small{font-size:7px;margin-top:2px}.filterbar{display:flex;justify-content:flex-end;margin-bottom:15px}.filterbar label{font-size:9px;text-transform:uppercase;color:#888373;display:grid;gap:4px}.filterbar select{background:#151610;border:1px solid #34352b;color:#eee9dc;padding:9px}.media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.media-card img{width:100%;height:150px;object-fit:cover;background:#0b0c09;border:1px solid #34352b}@media(max-width:900px){.weekgrid{overflow-x:auto}.media-grid{grid-template-columns:1fr 1fr}.calendarcontrols{flex-direction:column;align-items:stretch}}


.leaguegrid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}.leaguehero{padding:30px;border:1px solid #34352b;background:linear-gradient(120deg,#1b1c16,#0f100d);margin-bottom:24px}.leaguehero h1{margin:0;font-size:52px}.leaguecard{display:block;text-decoration:none}.leaguecard h2{font-size:30px;margin:4px 0 8px}.leaguecard b{color:#c7a766}.tablewrap{overflow:auto}.leaguegrid .sectionhead{margin-top:0}@media(max-width:900px){.leaguegrid{grid-template-columns:1fr}.leaguehero h1{font-size:38px}}

@media(max-width:1200px){nav{gap:18px}.navlinks{gap:12px;font-size:9px}.brand{width:48px;height:48px}.brand img{width:48px;height:48px}}
@media(max-width:950px){.navlinks{gap:8px;font-size:8px}.navright{font-size:9px}}

.homehero{position:relative;min-height:620px;display:grid;align-items:center;overflow:hidden;border-bottom:1px solid #34352b;background:radial-gradient(circle at 72% 45%,#6b593633,transparent 34%),linear-gradient(90deg,#090a08 0%,#11120e 55%,#17150f 100%)}
.homehero-bg{position:absolute;inset:0;background:radial-gradient(circle at 75% 35%,#c7a76622,transparent 24%),linear-gradient(90deg,rgba(7,8,6,.98) 0%,rgba(7,8,6,.78) 42%,rgba(7,8,6,.45) 100%)}
.homehero:after{content:"";position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,#090a08)}
.homehero-content{position:relative;z-index:1;width:min(1320px,86%);margin:auto;display:grid;grid-template-columns:430px 1fr;gap:60px;align-items:center}
.homehero-logo img{display:block;width:min(390px,100%);filter:drop-shadow(0 25px 35px #000b)}
.homehero-copy h1{font:clamp(52px,6vw,92px)/.88 Impact,Arial Black;margin:10px 0 20px;letter-spacing:1px}.homehero-copy h1 span{color:#c7a766}.home-tagline{max-width:650px;color:#b7b1a0;font-size:17px}.home-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}.home-meta span{padding:9px 13px;border:1px solid #514a37;color:#d1c19d;font-size:9px;letter-spacing:2px}
.homecards{width:min(1400px,94%);margin:-72px auto 0;position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:12px}.homecard{background:#11120eeb;border:1px solid #484333;padding:24px;box-shadow:0 20px 45px #0008}.homecard h2{margin:5px 0 10px;font-size:23px}.homecard h2 em{font-style:normal;color:#c7a766;margin:0 7px}.homecard .sectionhead{align-items:start}.homecard .sectionhead h2{font-size:19px}.homecard .sectionhead a{font-size:9px;color:#c7a766}.homecard table{margin-top:12px}.homecard .btn{margin-top:14px}.quicklinks{width:min(1400px,94%);margin:12px auto 70px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.quicklinks a{min-height:92px;padding:18px;background:#14150f;border:1px solid #34352b;display:flex;align-items:end;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:1px}.quicklinks a:hover{border-color:#76613b;color:#c7a766}.quicklinks b{font-size:20px;color:#c7a766}
@media(max-width:1000px){.homehero-content{grid-template-columns:260px 1fr;gap:30px}.homecards{grid-template-columns:1fr}.quicklinks{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.homehero{min-height:auto;padding:70px 0}.homehero-content{grid-template-columns:1fr;text-align:center}.homehero-logo img{width:250px;margin:auto}.home-meta{justify-content:center}.homecards{margin-top:12px}.quicklinks{grid-template-columns:1fr 1fr}.homehero-copy h1{font-size:50px}}

/* IFL V7 cinematic presentation */
body{background:#070806}
nav{backdrop-filter:blur(10px);background:rgba(7,8,6,.94)}
.landingbanner{position:relative;min-height:300px;overflow:hidden;border-bottom:1px solid #4a412f;border-top:1px solid #2f2d23;background:#0a0b09}
.landingbanner-art{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(5,6,5,.96) 0%,rgba(5,6,5,.62) 40%,rgba(5,6,5,.25) 100%),url('/assets/ifl-page-banner.jpg');background-size:cover;background-position:center 42%;filter:saturate(.78) contrast(1.08)}
.landingbanner.home{min-height:520px}.landingbanner.home .landingbanner-art{background-image:linear-gradient(90deg,rgba(5,6,5,.88) 0%,rgba(5,6,5,.28) 60%,rgba(5,6,5,.35) 100%),url('/assets/ifl-home-banner.jpg');background-position:center center}
.landingbanner-content{position:relative;z-index:1;width:min(1320px,86%);margin:auto;padding:90px 0 70px}.landingbanner-content h1{font:clamp(50px,7vw,100px)/.9 Impact,Arial Black;margin:7px 0 15px;letter-spacing:1px;text-shadow:0 5px 20px #000}.landingbanner-content p:not(.eyebrow){max-width:620px;color:#d0c7b2;font-size:16px}.landingbanner.home .landingbanner-content{padding-top:150px}.landingbanner.home .landingbanner-content h1{max-width:900px;color:#eee9dc}
.section{position:relative}.homecards{margin-top:-55px}.homecard{box-shadow:0 25px 60px #000b;border-color:#51472f}.quicklinks a{background:linear-gradient(140deg,#171812,#10110e);box-shadow:inset 0 0 0 1px #17180f}.leaguehero{padding:0;border:0;background:none}.leaguehero h1{font-size:0}.calendarserver{background:#0e0f0c;padding:18px;border:1px solid #3d382a}.weekgrid{background:#0b0c09}.slot.available:hover{background:#243025;border-color:#c7a766;color:#e6d5ae}.slot.booked:hover{background:#30201c}.footer{}
@media(max-width:900px){.landingbanner.home{min-height:400px}.landingbanner-content{padding:75px 0 50px}.landingbanner.home .landingbanner-content{padding-top:105px}.landingbanner-content h1{font-size:56px}.weekgrid{grid-template-columns:62px repeat(7,minmax(96px,1fr))}}

/* IFL-BACKEND 2026-09-20: 30-minute start rows, a booking spans its two hours as one block */
.weekgrid .slot,.weekgrid .timecell{min-height:30px;padding:3px 6px}
.weekgrid .timecell.half{color:#4d4a3e;font-size:9px}
.weekgrid .slot.available b{font-size:10px;letter-spacing:.06em}
.weekgrid .slot.available small,.weekgrid .slot.booked small{font-size:8px}
.weekgrid .slot.booked{display:grid;place-content:center;gap:2px}
.weekgrid .slot.booked b{font-size:16px}

/* Sponsorship, 2026-10-07. A slot on the front page from the start, so it never
   has to be cut back in. Empty, it invites; filled, it shows the partners. */
.sponsors{margin:34px 0 10px;padding:22px 24px;border:1px solid #34352b;background:#15160f}
.sponsors .eyebrow{margin:0 0 10px}
.sponsorrow{display:flex;flex-wrap:wrap;gap:28px;align-items:center}
.sponsor{display:flex;align-items:center;min-height:52px;opacity:.85;transition:opacity .15s}
.sponsor:hover{opacity:1}
.sponsor img{max-height:52px;max-width:180px;object-fit:contain;display:block}
.sponsor span{font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.sponsorempty{margin:0;color:#9a9b8c}
.sponsorempty a{color:inherit;text-decoration:underline}
@media (max-width:640px){.sponsorrow{gap:18px}.sponsor img{max-height:40px;max-width:130px}}

/* Member sign-in, 2026-10-07. The login lives on the IFL homepage: a player
   signs in here and stays on ifl.gg. /me is proxied to the league app by Caddy.
   The old Manager link is gone from the public nav - admins know their URL. */
.navright .signin{display:inline-block;padding:7px 16px;border:1px solid #c8a84b;color:#c8a84b;
  font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:12px;border-radius:3px}
.navright .signin:hover{background:#c8a84b;color:#15160f}

/* A one-line note under a table heading, for when two different scales sit on
   the same page: the division tables are season totals, the weekly leaderboard
   is single games out of 23. Reading one as the other makes nonsense of both. */
.tablenote{margin:2px 0 10px;font-size:.82rem;letter-spacing:.02em;color:#8a8372}

/* The supporter page's two lists. Matches the member area's .ticks so the
   public pitch and the signed-in page read as one thing. */
.perks{list-style:none;margin:14px 0 0;padding:0}
.perks li{position:relative;padding:0 0 0 26px;margin:0 0 10px;color:#d0c7b2;font-size:15px;line-height:1.5}
.perks li:before{content:'—';position:absolute;left:0;color:#c7a766}
.perks li b{color:#eee9dc}


/* The join card, 2026-10-31. The front page explained the whole competition
   and never said how to enter it, so this one is given the gold edge and sits
   first in the grid - it is the only card a brand new visitor needs. */
.homecard.join{border:1px solid #c8a84b;background:linear-gradient(160deg,rgba(200,168,75,.09),transparent 55%)}
.homecard.join h2{color:#c8a84b}
.homecard.join .btn{margin-right:8px}
