@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--cream:#fef6f3;--purple:#5b2bdf;--ink:#1b1650;--blue:#2b4bae;--muted:#655f75}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}header{max-width:1240px;margin:auto;padding:35px 48px;display:flex;align-items:center;gap:30px;position:relative;z-index:3}.brand{font-weight:800;font-size:17px;letter-spacing:-.5px;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand span{font-size:31px}.home header .brand{color:white}nav{display:flex;gap:28px;margin-left:auto;align-items:center;font-size:14px;font-weight:700}nav a{padding:8px 0}nav a[aria-current=page]{border-bottom:2px solid var(--purple)}.lang{display:flex;border:1px solid #1b165030;border-radius:30px;padding:3px;gap:2px}.lang button{border:0;background:none;color:var(--ink);padding:7px 10px;border-radius:22px;font-size:12px;font-weight:800}.lang button.active{background:var(--ink);color:white}.button{display:inline-flex;justify-content:center;align-items:center;gap:20px;padding:17px 24px;border-radius:35px;background:var(--purple);color:white;font-weight:800;font-size:14px;border:1px solid var(--purple);transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 10px 25px #5b2bdf25}.button.secondary{background:transparent;border-color:var(--ink);color:var(--ink)}.button.dark{background:var(--ink);border-color:var(--ink)}.orb{position:absolute;top:0;left:0;width:calc((100vw - 1144px)/2 + 350px);min-width:350px;height:355px;background:var(--purple);border-radius:0 0 200px 0;z-index:0}.hero{max-width:1240px;padding:100px 48px 85px;margin:auto;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:80px;position:relative}.eyebrow{font-size:11px;letter-spacing:2.4px;font-weight:800;text-transform:uppercase}.hero .eyebrow{margin:15px 0 28px;color:var(--ink)}h1{font-size:clamp(46px,5.5vw,76px);line-height:1.04;letter-spacing:-4px;margin:0;font-weight:800}h1 em{font-style:normal;color:var(--purple)}.hero p{font-size:17px;line-height:1.8;color:var(--muted);max-width:440px;margin:27px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.board-wrap{position:relative;padding:0 16px 16px 0}.board{aspect-ratio:1;display:grid;grid-template-columns:repeat(8,1fr);position:relative;border:2px solid var(--blue);box-shadow:16px 16px 0 var(--purple);background:white}.square{display:grid;place-items:center;position:relative;font-family:Georgia,serif;font-size:clamp(23px,3vw,40px);color:var(--ink);line-height:1}.square.blue{background:var(--blue);color:var(--ink)}.square.blue:after{content:'';position:absolute;inset:0;background:linear-gradient(45deg,transparent 49%,#ffffff0b 50%,transparent 52%);pointer-events:none}.piece{filter:drop-shadow(1px 3px 1px #0003)}.board-caption{font-size:10px;letter-spacing:2px;text-transform:uppercase;display:flex;justify-content:space-between;margin-top:35px;color:var(--muted)}.ribbon{background:var(--ink);color:var(--cream);padding:21px 24px;display:flex;justify-content:center;gap:40px;font-size:11px;letter-spacing:2px;font-weight:700;flex-wrap:wrap}.ribbon b{color:#9b83ed}section.content{max-width:1240px;padding:80px 48px;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:40px}h2{font-size:clamp(30px,3.4vw,44px);letter-spacing:-1.8px;line-height:1.2;margin:14px 0}h3{font-size:22px;letter-spacing:-.7px;margin:15px 0}.section-head p,.copy{color:var(--muted);line-height:1.8;font-size:15px;max-width:470px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.feature{padding:24px 0;border-top:1px solid #1b165029}.feature .num{color:var(--purple);font-size:12px;letter-spacing:2px;font-weight:800}.feature p{font-size:14px;color:var(--muted);line-height:1.8}.text-link{font-size:13px;font-weight:800;border-bottom:1px solid var(--purple);padding-bottom:4px;display:inline-block}.membership{background:var(--purple);color:white;display:grid;grid-template-columns:1.5fr 1fr;gap:40px;padding:48px;border-radius:4px;position:relative;overflow:hidden}.membership p{color:#eee5ff;line-height:1.8;max-width:500px}.membership h2{margin-top:0}.membership .fee{font-size:72px;font-weight:800;letter-spacing:-4px;line-height:1}.membership .fee small{font-size:16px;letter-spacing:0}.fee-box{border-left:1px solid #ffffff4d;padding-left:45px;align-self:center}.fee-box .button{background:var(--cream);color:var(--ink);margin-top:23px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact-panel{border:1px solid #1b165026;padding:30px}.contact-panel .address{font-size:24px;font-weight:800;line-height:1.5}.email-slot{margin-top:25px;border-top:1px solid #1b165026;padding-top:20px}.email-slot span{display:block;font-size:12px;color:var(--muted);margin-top:10px}.socials{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px}.social{font-size:13px;font-weight:700}.social small{display:block;font-size:10px;color:var(--muted);font-weight:500;margin-top:5px}footer{border-top:1px solid #1b165026;max-width:1144px;margin:0 auto;padding:28px 0;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.page-hero{max-width:1240px;margin:auto;padding:65px 48px 50px}.page-hero h1{max-width:900px;margin:22px 0}.page-hero p{max-width:620px;font-size:17px;color:var(--muted);line-height:1.8}.lesson-row{display:grid;grid-template-columns:80px 1fr 1fr;gap:30px;padding:40px 0;border-top:1px solid #1b165029;align-items:start}.lesson-icon{font-size:55px;color:var(--purple);font-family:Georgia,serif}.lesson-row h2{font-size:29px;margin:4px 0 18px}.tag{display:inline-block;border:1px solid #1b165029;padding:8px 14px;border-radius:30px;font-size:11px;font-weight:700}.schedule{display:grid;grid-template-columns:1fr 1fr;border:1px solid #1b165026}.schedule-item{padding:38px}.schedule-item:first-child{background:var(--ink);color:white}.schedule-item:first-child p{color:#d3cde9}.schedule-time{font-size:55px;letter-spacing:-2px;font-weight:800}.schedule-item p{font-size:14px;line-height:1.8;color:var(--muted)}.empty-events{margin-top:40px;padding:30px 0;border-top:1px solid #1b165026;display:flex;justify-content:space-between;gap:20px;align-items:center}.empty-events p{font-size:14px;color:var(--muted)}.event-mark{font-family:Georgia,serif;font-size:75px;color:var(--purple)}@media(min-width:1500px){.orb{width:calc((100vw - 1144px)/2 + 330px)}}@media(max-width:1000px){header{padding:25px 28px;gap:15px}nav{gap:16px}.hero{gap:35px;padding:90px 28px 65px}h1{letter-spacing:-2.8px}.orb{min-width:300px;height:320px}.button{padding:14px 18px}section.content,.page-hero{padding-left:28px;padding-right:28px}footer{margin:0 28px}.brand{font-size:14px}.membership{padding:35px}}@media(max-width:700px){header{flex-wrap:wrap;justify-content:space-between;padding:20px}.home header .brand{color:white}nav{order:3;width:100%;justify-content:space-between;margin-top:12px;gap:8px}header>.button{display:none}.lang{margin-left:auto;background:var(--cream)}.home nav{color:white}.home nav a[aria-current=page]{border-color:white}.orb{width:100%;height:215px;min-width:0;border-radius:0 0 90px 0}.hero{grid-template-columns:1fr;padding:85px 22px 50px;gap:45px}.hero .eyebrow{margin-top:0}h1{font-size:52px;letter-spacing:-2.6px}.hero p{font-size:16px}.board-wrap{max-width:370px;width:90%;margin:auto}.square{font-size:34px}.ribbon{gap:15px 25px;font-size:9px;padding:18px}.section-head{display:block;margin-bottom:24px}section.content{padding:50px 22px}.feature-grid{grid-template-columns:1fr;gap:5px}.feature{padding:22px 0}.membership,.contact{grid-template-columns:1fr;gap:25px}.membership{padding:30px 25px}.fee-box{border-left:0;border-top:1px solid #ffffff4d;padding:25px 0 0}.membership .fee{font-size:60px}.contact-panel{padding:24px}.page-hero{padding:45px 22px 25px}.page-hero h1{font-size:45px}.lesson-row{grid-template-columns:42px 1fr;gap:15px}.lesson-row>.copy{grid-column:2;margin:0}.lesson-icon{font-size:42px}.lesson-row h2{font-size:25px}.schedule{grid-template-columns:1fr}.schedule-item{padding:28px}.empty-events{align-items:start}.event-mark{font-size:50px}footer{margin:0 22px;gap:20px;line-height:1.8}.board-caption{font-size:9px;letter-spacing:1px}}

.contact-value{display:block;margin-top:10px;font-size:15px;font-weight:600;color:var(--purple);overflow-wrap:anywhere}.contact-value:hover{text-decoration:underline}

/* Keep the decoration attached to the header, above the hero text. */
.home header .orb{left:min(0px,calc((1240px - 100vw)/2));height:calc(100% + 48px);z-index:-1;pointer-events:none}
@media(max-width:700px){.home header .orb{left:0;height:calc(100% + 32px);border-bottom-right-radius:64px}}

header .orb,.home header .orb{left:min(0px,calc((1240px - 100vw)/2));width:100vw;min-width:0;height:calc(100% + 36px);border-radius:0 0 80px 0;z-index:-1;pointer-events:none}
header .brand,header nav{color:var(--cream)}
header nav a[aria-current=page]{border-color:var(--cream)}
header nav a:hover{opacity:.8}
header .lang{background:var(--cream);border-color:transparent}
header :is(a,button):focus-visible{outline-color:white}
.chessman{width:78%;height:86%;overflow:visible;filter:drop-shadow(0 3px 2px #1b16504d);stroke-width:2.2;stroke:var(--ink);fill:var(--ink)}
.chessman.light{fill:var(--cream)}
.chessman.dark{stroke:#fef6f380}
.chessman .piece-eye{fill:var(--cream);stroke:none}
.event-calendar{margin-bottom:72px}
.calendar-shell{border:1px solid #1b165026;border-radius:12px;background:#ffffff50;overflow:hidden}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px}
.calendar-month-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.calendar-month-controls h3{text-transform:capitalize;min-width:175px;text-align:center;margin:0;font-size:21px}
.calendar-shell button{border:1px solid #1b165026;background:transparent;color:var(--ink);border-radius:24px;padding:9px 15px;font-size:12px;font-weight:700;min-height:40px}
.calendar-shell button:hover{border-color:var(--purple);background:#5b2bdf0b}
.calendar-views{display:flex;border-radius:24px;border:1px solid #1b165026;padding:3px}
.calendar-views button{border:0;min-height:34px}
.calendar-shell button[aria-pressed=true]{background:var(--purple);color:white;border-color:var(--purple)}
.calendar-filters{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 24px}
.calendar-grid{border-top:1px solid #1b165026}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays{background:#1b165006;font-size:11px;font-weight:800;color:var(--muted);text-align:center}
.calendar-weekdays span{padding:13px 4px}
.calendar-day{min-height:76px;border-top:1px solid #1b165016;border-right:1px solid #1b165016;display:block;padding:9px;font-size:12px}
.calendar-day:last-child{border-right:0}
.calendar-day>span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}
.calendar-day.outside{background:#1b165003}
.calendar-day.is-today>span{background:var(--ink);color:white;border-radius:50%}
.calendar-empty{border-top:1px solid #1b165026;display:flex;align-items:center;justify-content:center;gap:22px;padding:30px 24px}
.calendar-empty-icon{color:var(--purple);font-size:54px;font-family:Georgia,serif}
.calendar-empty h3{font-size:19px;margin:0 0 8px}
.calendar-empty p{color:var(--muted);font-size:13px;line-height:1.8;margin:0;max-width:510px}
body{overflow-x:clip}
header{max-width:none;padding-inline:max(48px,calc((100% - 1144px)/2))}
header .orb,.home header .orb{left:0;width:100%}
@media(max-width:1000px){header{padding-inline:28px}}
@media(max-width:700px){header{padding-inline:20px}}
@media(max-width:700px){header .orb,.home header .orb{left:0;height:calc(100% + 20px);border-bottom-right-radius:32px}.calendar-toolbar{padding:18px 14px;gap:15px}.calendar-month-controls{gap:7px;width:100%;justify-content:space-between}.calendar-month-controls h3{min-width:125px;font-size:16px}.calendar-month-controls button{padding:8px 12px}.calendar-filters{padding:0 14px 18px;gap:6px}.calendar-filters button{font-size:11px;padding:8px 12px}.calendar-day{padding:4px;min-height:45px;font-size:11px}.calendar-day>span{width:25px;height:25px}.calendar-empty{padding:22px 16px;gap:15px}.calendar-empty h3{font-size:17px}.calendar-empty-icon{font-size:40px}.event-calendar{margin-bottom:50px}}

/* Published league fixtures and external tournament selection */
.calendar-grid-scroll{overflow-x:auto}.calendar-day{min-height:106px}.calendar-mini{display:block;background:#5b2bdf12;color:var(--ink);font-size:10px;line-height:1.45;padding:5px;border-left:3px solid var(--purple);border-radius:3px;margin-top:5px;text-decoration:none;overflow-wrap:anywhere}.calendar-mini.tournaments{background:#2b4bae12;border-color:#2b4bae}.calendar-mini:hover{text-decoration:underline;background:#5b2bdf25}.calendar-event-list{border-top:1px solid #1b165026}.calendar-event-card{display:grid;grid-template-columns:230px 1fr;gap:24px;padding:25px;border-bottom:1px solid #1b165016}.calendar-event-card:last-child{border-bottom:0}.event-date time{font-size:14px;font-weight:800;display:block}.event-kind{display:inline-block;margin-top:10px;font-size:11px;color:var(--purple);font-weight:700}.tournaments .event-kind{color:#2b4bae}.calendar-event-card h3{font-size:19px;margin:0 0 9px;overflow-wrap:anywhere}.calendar-event-card p{font-size:13px;line-height:1.7;color:var(--muted);margin:4px 0}.calendar-event-card a{display:inline-block;font-size:12px;margin-top:9px}.calendar-source-note{font-size:12px;line-height:1.8;color:var(--muted);margin:0;padding:20px 24px;border-top:1px solid #1b165026}@media(max-width:700px){.calendar-grid{min-width:630px}.calendar-event-card{grid-template-columns:1fr;gap:12px;padding:20px 16px}.event-date{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.event-kind{margin-top:0}.calendar-source-note{padding:18px 16px}}

/* Allow room for three languages and translated navigation. */
header .lang{flex-shrink:0}@media(min-width:701px) and (max-width:1100px){header{flex-wrap:wrap}header nav{order:3;width:100%;justify-content:center;margin-left:0}header .lang{margin-left:auto}}@media(max-width:420px){header .brand{font-size:12px;gap:5px}header .lang button{padding:7px 8px}header nav{font-size:12px}}
