:root{--ink:#163b37;--green:#176b55;--cream:#f7f5eb;--muted:#687a72;--line:#dce2d6}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}header{padding:22px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:15px}.brand{font-family:Outfit,sans-serif;font-weight:700;font-size:23px;color:var(--ink);text-decoration:none;display:flex;gap:10px}header>div{display:flex;align-items:center;gap:10px}main{max-width:1120px;margin:auto;padding:42px 24px}h1,h2,h3{font-family:Outfit,sans-serif;letter-spacing:-.035em}h1{font-size:54px;line-height:1.05;margin:16px 0}h2{font-size:30px;margin:0 0 12px}p{line-height:1.6}button,select,input{font:inherit}button,select{cursor:pointer}button{border:0;border-radius:12px;background:var(--green);color:white;padding:14px 22px;font-weight:700}button:hover{filter:brightness(.94);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e3a33e;outline-offset:3px}.small,.ghost{padding:10px 14px;background:#e4ebdf;color:var(--ink)}select,input{border:1px solid #bdcbbf;border-radius:10px;padding:11px;background:white;color:var(--ink);max-width:100%}.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:35px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;color:var(--green)}muted,.muted{color:var(--muted)}.art{background:#e4ebc9;border-radius:40% 45% 36% 44%;min-height:265px;display:flex;align-items:center;justify-content:center;position:relative;transform:rotate(-4deg)}.art span{font-size:78px;background:#fffdf3;padding:5px 20px;box-shadow:0 9px 0 #c1ca9c;border-radius:16px;transform:rotate(10deg);font-family:Outfit}.art span:nth-child(2){transform:translateY(-35px) rotate(-7deg);background:#f8d878}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:35px 0}.stat,.card,.panel{background:#fffef8;border:1px solid var(--line);border-radius:20px;padding:24px}.stat b{font-family:Outfit;font-size:32px;display:block}.stat span{font-size:13px;color:var(--muted)}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:32px 0 18px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{display:flex;flex-direction:column;align-items:flex-start}.card p{font-size:14px;flex:1;color:var(--muted)}.card h3{font-size:21px;margin-bottom:0}.icon{font-size:29px;padding:10px 14px;border-radius:15px;background:#ecedce}.card:nth-child(2) .icon{background:#f9dfc5}.card:nth-child(3) .icon{background:#e1e5fb}.card:nth-child(4) .icon{background:#f7e0e4}.card button{width:100%;margin-top:15px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.game{max-width:760px;margin:auto}.game .panel{text-align:center;padding:35px;margin-top:24px}.prompt{font-family:Outfit;font-size:40px;letter-spacing:.08em;margin:30px 0;overflow-wrap:anywhere}.answer{font-size:23px;text-align:center;width:100%;margin:20px 0;letter-spacing:.07em}.tiles{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:16px 0}.tiles button{background:#fff4d1;color:var(--ink);box-shadow:0 3px 0 #dbca94;padding:12px 16px;font-size:21px}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.options button{background:#edf1e6;color:var(--ink);overflow-wrap:anywhere}.feedback{margin:20px 0;border-radius:12px;padding:18px;background:#eef2de;line-height:1.6}.progress{height:8px;background:#e2e7da;border-radius:8px;margin-top:20px;overflow:hidden}.progress div{height:100%;background:#daaa46}.wordlist{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.wordrow{background:white;border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;justify-content:space-between;gap:10px}.wordrow small{color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:12px;line-height:1.8;padding:30px 20px;border-top:1px solid var(--line)}@media(max-width:750px){h1{font-size:40px}.hero{grid-template-columns:1fr}.art{display:none}.cards,.stats{grid-template-columns:1fr 1fr}.wordlist{grid-template-columns:1fr 1fr}header{flex-wrap:wrap}.card{padding:18px}main{padding:25px 16px}}@media(max-width:420px){.wordlist{grid-template-columns:1fr}.options{grid-template-columns:1fr}.brand{font-size:20px}.game .panel{padding:20px}.prompt{font-size:29px}}
nav{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.auth{max-width:650px;margin:auto}.auth label{display:block;margin:18px 0 7px}.auth input:not([type=checkbox]),.auth select{width:100%}.auth input[type=checkbox]{width:19px;height:19px;vertical-align:middle;margin-right:9px}.auth .check{line-height:1.6;font-size:14px}.auth h1{font-size:42px}.auth form>button{margin-top:20px}.error{color:#9a2525;background:#fff0e9;padding:14px;border-radius:10px}.error:empty{display:none}.success{color:#166146;background:#eaf3dc;padding:14px;border-radius:10px}.secret{display:block;font-family:monospace;font-size:18px;word-break:break-all;padding:14px;background:#edf1e6;border-radius:10px;user-select:all}.notice{border-left:4px solid #d5a334;padding:14px 20px;background:#fff6d8;border-radius:8px;line-height:1.6}.league{padding:8px 14px;border-radius:20px;background:#ede0ca;font-weight:700;display:inline-block}.league.silver{background:#e5e8ee}.league.gold{background:#f8e39b}.league.diamond{background:#d7f1ee}.board{width:100%;border-collapse:collapse}.board td,.board th{padding:16px 10px;text-align:left;border-bottom:1px solid var(--line)}.board tr.me{background:#eff5df}.tablewrap{overflow-x:auto}.adminrow{background:#fffef8;padding:18px;border:1px solid var(--line);border-radius:14px;margin-bottom:12px}.adminrow .toolbar{margin-top:14px}.danger{background:#9a3631;color:#fff}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.center{text-align:center}.mt{margin-top:24px}.statusline{min-height:25px}.game .panel{text-align:center}.prompt{color:var(--ink)}.tiles .used{visibility:hidden}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.wordrow{overflow-wrap:anywhere}.progressnote{font-size:13px;color:var(--muted)}.navname{font-size:13px;font-weight:700}.badge{font-size:12px;color:var(--muted)}.hidden{display:none!important}@media(max-width:650px){.two{grid-template-columns:1fr}.board th,.board td{padding:12px 6px;font-size:13px}.auth h1{font-size:34px}.navname{width:100%}}
progress.progress{display:block;width:100%;border:0;appearance:none}progress.progress::-webkit-progress-bar{background:#e2e7da;border-radius:8px}progress.progress::-webkit-progress-value{background:#daaa46;border-radius:8px}.game .toolbar{justify-content:center}

/* Shared answer feedback for all four practice games. */
.feedback-correct{background:#e7f3e5;border:2px solid #438153;color:#173e25}
.feedback-incorrect{background:#ffdfba;border:2px solid #b94b13;border-left:8px solid #b94b13;color:#642708}
.feedback-incorrect>strong{display:block;font-size:1.2rem;line-height:1.35}
.feedback-incorrect b{font-weight:800}
.feedback-incorrect small,.feedback-incorrect .progressnote{color:#642708}

/* Distinct shapes make leagues recognisable without relying on colour. */
.league-symbol{width:34px;height:34px;flex:0 0 auto;vertical-align:middle;overflow:visible}
.league{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}
.navname,.explorer-name{display:inline-flex;align-items:center;gap:8px}
.navname>span,.explorer-name>span{overflow-wrap:anywhere}
.navname .league-symbol{width:30px;height:30px}
.league-heading{display:flex;align-items:center;gap:12px}
.league-heading .league-symbol{width:48px;height:48px}
.explorer-name .league-symbol{width:28px;height:28px}
.league-journey{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}
.league-milestone{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;background:#f7f5eb;border:2px solid #e0e5d9;border-radius:18px;text-align:center}
.league-milestone .league-symbol{width:56px;height:56px;margin-bottom:4px}
.league-milestone small{color:#53665f}
.current-league{border-color:#176b55;background:#eff6e9}
.current-label{font-size:11px;font-weight:700;background:#176b55;color:white;padding:4px 9px;border-radius:12px}
@media(max-width:650px){.league-journey{grid-template-columns:repeat(2,1fr)}#nav{flex-wrap:wrap}.explorer-name{min-width:130px}}

/* Collectible league emblems, edition 1.3. */
.league-symbol{object-fit:contain;filter:drop-shadow(0 3px 2px #163b3726);width:48px;height:50px}
.navname .league-symbol{width:48px;height:50px}.navname{font-size:14px}
.explorer-name .league-symbol{width:44px;height:46px}
.league-milestone .league-symbol{width:100px;height:103px}
.league-banner{display:flex;align-items:center;gap:22px;margin-top:32px;padding:20px 24px;border-radius:20px;border:1px solid #d8c2a5;background:linear-gradient(120deg,#f6e6ce,#fffaf1)}
.league-banner>.league-symbol{width:112px;height:115px}.league-banner h2{margin:6px 0;font-size:34px}.league-banner p{margin:0;color:#465d55}
.league-banner.silver{background:linear-gradient(120deg,#dee7f1,#f8fbff);border-color:#b8cbdc}
.league-banner.gold{background:linear-gradient(120deg,#ffebac,#fffaf0);border-color:#dfc06e}
.league-banner.diamond{background:linear-gradient(120deg,#cceff1,#e9e9ff);border-color:#92cbd5}
@media(max-width:550px){.league-banner{gap:14px;padding:16px}.league-banner>.league-symbol{width:80px;height:82px}.league-banner h2{font-size:28px}.league-banner p{font-size:13px}}

/* Larger, comfortable game lettering. */
.game .answer{font-size:30px;padding:16px}.game .prompt{font-size:48px}.game .options button{font-size:25px;padding:20px 16px}.game .tiles button{font-size:28px;min-width:48px;min-height:52px}.game .feedback{font-size:20px}.game .feedback b{font-size:24px}.game h2{font-size:34px}@media(max-width:550px){.game .answer{font-size:26px}.game .prompt{font-size:36px}.game .options button{font-size:23px}.game .tiles button{font-size:25px;padding:10px 12px}.game h2{font-size:29px}}

textarea{display:block;width:100%;font:inherit;padding:14px;border:1px solid #b4c6c0;border-radius:12px;background:#fff;color:#143e36;resize:vertical;margin:8px 0 16px}.bulk-preview{max-height:280px;overflow:auto;margin-bottom:16px}.wordrow{flex-wrap:wrap;gap:12px}.wordrow button{margin-left:auto}

#wordForm>label:not(.check),#bulkForm>label{display:block;margin:16px 0 8px;font-weight:600}#wordForm>#newWord{display:block;width:100%;padding:13px;font:inherit;border:1px solid #b4c6c0;border-radius:12px}#wordForm>.check{display:flex;align-items:flex-start;gap:10px;margin:16px 0}#wordForm>.check input{width:auto;margin-top:5px}
