@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f7f6f2;--ink:#2a3030;--muted:#858a84;--line:#e2e3dc;--green:#cee998;--purple:#7154a3;--lavender:#eeebf4;--tile:#fff;--mint:#edf2e7}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer;color:inherit}main{max-width:1150px;margin:auto;padding:0 45px}header{height:101px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;font:800 30px Manrope,sans-serif;color:var(--ink);letter-spacing:-1.6px;gap:10px}.brand-dot{color:var(--purple);margin-left:-10px}.brand-mark{position:relative;font-size:calc(26px * var(--text-scale, 1));letter-spacing:-2px;background:var(--green);border:1px solid #bdcf9f;border-radius:8px;width:37px;height:39px;display:grid;place-items:center;transform:rotate(-7deg);margin-right:2px}.brand-mark>span{position:absolute;font-size:calc(14px * var(--text-scale, 1));right:-4px;top:-5px;line-height:1;background:var(--paper);border-radius:50%;padding:1px 3px;color:var(--purple)}nav{display:flex;gap:23px}nav button{background:none;border:0;font-size:calc(11px * var(--text-scale, 1));color:#646e64;display:flex;gap:9px;align-items:center}nav button span{border:1px solid #cfd3c9;border-radius:50%;width:18px;height:18px;display:grid;place-items:center;font-size:calc(10px * var(--text-scale, 1))}.hero{text-align:center;padding:36px 0 39px}.daily-tag{display:flex;justify-content:center;align-items:center;gap:8px;font-size:calc(8px * var(--text-scale, 1));letter-spacing:1.8px;color:#6e7869;font-weight:700}.daily-tag i,.puzzle-top i{height:5px;width:5px;background:#a3bf71;border-radius:50%;display:inline-block}.daily-tag>span{margin-left:6px;border-left:1px solid #d0d3c8;padding-left:14px;letter-spacing:1.1px;color:#929889;font-weight:400}h1{font:600 43px/1.2 Manrope,sans-serif;letter-spacing:-1.8px;margin:20px 0 15px}h1 em{font-style:normal;color:#8f958b;font-weight:400}.hero>p{font-size:calc(12px * var(--text-scale, 1));color:#8b9088;margin:0}.aha{font-style:italic;color:var(--purple)}.game-layout{display:grid;grid-template-columns:245px 1fr;gap:44px;align-items:start}.daily-card{border:1px solid #dedde5;background:var(--lavender);border-radius:10px;padding:20px 21px}.card-label{display:flex;justify-content:space-between;font-size:calc(7px * var(--text-scale, 1));letter-spacing:1.3px;color:#8a8197}.card-label>span:last-child{font-size:calc(13px * var(--text-scale, 1));color:var(--purple)}.theme-art{height:142px;position:relative;width:160px;margin:12px auto 5px}.theme-art>span{position:absolute;display:grid;place-items:center;width:50px;height:58px;border-radius:7px;border:1px solid #d2c9e2;background:#faf8ff;font:500 30px Manrope,sans-serif;color:var(--purple);box-shadow:0 3px 0 #d8d0e6}.theme-art>span:nth-child(1){left:15px;top:7px;transform:rotate(-15deg)}.theme-art>span:nth-child(2){left:91px;top:16px;transform:rotate(13deg);background:#d6e8af;border-color:#bacd95;color:#586b3c;z-index:1}.theme-art>span:nth-child(3){left:17px;top:72px;transform:rotate(8deg);background:#dfd6ee}.theme-art>span:nth-child(4){left:88px;top:78px;transform:rotate(-9deg)}.theme-art>div{position:absolute;left:70px;top:58px;font-size:calc(20px * var(--text-scale, 1));color:#aa9dbe}.issue{font-size:calc(8px * var(--text-scale, 1));letter-spacing:1.6px;color:#9c90ac;margin:20px 0 10px}h2{font:600 24px/1.2 Manrope,sans-serif;letter-spacing:-.7px;margin:0}.theme-description{font-size:calc(11px * var(--text-scale, 1));line-height:1.8;color:#91869b;margin:13px 0 0}.card-divider{height:1px;background:#dcd6e5;margin:20px 0}.mini-stat{display:flex;justify-content:space-between;align-items:center}.mini-stat>span{font-size:calc(8px * var(--text-scale, 1));letter-spacing:1.2px;color:#8d819c}.mini-stat strong{font:600 29px Manrope,sans-serif;letter-spacing:-1px;color:#655278}.score-rule{font-size:calc(9px * var(--text-scale, 1));line-height:1.8;color:#9e92a9;margin:8px 0 0}.streak-row{display:flex;justify-content:space-between;color:#9a8ca9;font-size:calc(7px * var(--text-scale, 1));letter-spacing:.6px}.streak-row>span:first-child{color:#7b698f}.streak-row b{font-weight:600}.puzzle-top{height:27px;display:flex;justify-content:space-between;align-items:flex-start;font-size:calc(7px * var(--text-scale, 1));letter-spacing:1.2px;color:#93998d}.puzzle-top i{margin-right:4px}.puzzle-top>button{border:0;background:transparent;padding:0;font-size:calc(9px * var(--text-scale, 1));color:#a1a59b}.word-row{position:relative;border-bottom:1px solid var(--line);padding:13px 0 14px}.word-row:first-child{padding-top:4px}.clue{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:calc(11px * var(--text-scale, 1));color:#6d766b;line-height:1.6}.clue .index{font-size:calc(8px * var(--text-scale, 1));color:#acb19f;letter-spacing:1px;min-width:15px}.clue .length{color:#a5aa9e;font-size:calc(9px * var(--text-scale, 1))}.word-row.solved .clue:after{content:'✓ DECODED';margin-left:auto;white-space:nowrap;color:#7a9560;font-size:calc(7px * var(--text-scale, 1));letter-spacing:1px}.tiles{display:flex;gap:6px;padding-left:25px}.tile{position:relative;width:49px;height:61px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #dedfd6;border-radius:6px;background:var(--tile);box-shadow:0 2px 0 #e5e6de;transition:background .15s,transform .15s,border-color .15s;padding:0;flex-shrink:0}.tile .symbol{font:500 23px Manrope,sans-serif;color:#585f57;line-height:1.1}.tile .letter{height:17px;min-width:16px;font-size:calc(11px * var(--text-scale, 1));font-weight:700;color:var(--purple);text-align:center;line-height:18px;display:block;margin-top:5px}.tile .letter.empty:after{content:'';display:inline-block;height:1px;width:12px;background:#d9dcd1;vertical-align:middle}.tile.selected{border-color:#9579b7;background:#f2edf8;box-shadow:0 0 0 1px #9579b7,0 3px 0 #d6cce2;transform:translateY(-1px)}.tile.same{background:#f5f1f9;border-color:#c7b7da}.tile.locked{background:var(--mint);border-color:#cddbbe;box-shadow:0 2px 0 #dce5cf}.tile.locked .symbol{color:#8b9c7c}.tile.locked .letter{color:#506e3e}.tile.locked:after{content:'•';font-size:calc(8px * var(--text-scale, 1));color:#93b27a;position:absolute;right:5px;top:2px}.word-row.wrong .tile{animation:shake .25s 2;border-color:#cc8a79;background:#fff3ed}@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.action-bar{display:flex;justify-content:space-between;align-items:center;margin-top:19px}.reveal{border:1px solid #dfdfd6;border-radius:5px;background:transparent;padding:11px 13px;font-size:calc(10px * var(--text-scale, 1));color:#848a7e}.reveal span{color:#b0b4a7;font-size:calc(8px * var(--text-scale, 1));margin-left:10px}.primary{background:var(--green);border:1px solid #bfd58e;border-radius:5px;padding:12px 20px;font-size:calc(11px * var(--text-scale, 1));font-weight:600;min-width:155px;color:#475735;transition:background .2s,transform .2s}.primary>span{margin-left:26px}.primary:hover{background:#d9f0ab;transform:translateY(-1px)}button:disabled{cursor:default;opacity:.5;transform:none}#feedback{font-size:calc(10px * var(--text-scale, 1));line-height:1.7;color:#969d8e;min-height:18px;margin:14px 0 16px}#feedback.warning{color:#a97055}#feedback.positive{color:#6e8b4d}.keyboard-area{border:1px solid #dedfd5;border-radius:8px;background:#eeeee7;padding:15px 16px 11px}.keyboard-label{display:flex;justify-content:space-between;font-size:calc(7px * var(--text-scale, 1));letter-spacing:1px;color:#a2a997;margin-bottom:12px}.keyboard-label>span:first-child{color:#858f79}#keyboard{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.key-row{display:flex;justify-content:center;width:100%;gap:5px}.key{height:33px;flex:0 1 43px;min-width:0;border:1px solid #dddfd2;border-radius:4px;background:#fbfbf7;box-shadow:0 2px 0 #dfe1d6;font-size:calc(11px * var(--text-scale, 1));color:#6f7966;padding:0}.key.assigned{background:#e1e6d6;color:#9ca88d;box-shadow:none}.key:disabled{opacity:.45}.key:hover:not(:disabled){background:#f2ecfa;border-color:#bda8d2}.keyboard-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:#a7ae9b;font-size:calc(8px * var(--text-scale, 1))}.keyboard-foot button{border:0;background:none;font-size:calc(9px * var(--text-scale, 1));color:#8d967f}.explainer{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:39px;padding:27px 0 28px}.step{font-size:calc(8px * var(--text-scale, 1));color:#79846c;letter-spacing:1.4px}.explainer p{font-size:calc(11px * var(--text-scale, 1));line-height:1.9;color:#929b89;margin:11px 0 0}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:20px 0 25px;font-size:calc(7px * var(--text-scale, 1));letter-spacing:1.2px;color:#a2a996}footer>span:last-child{letter-spacing:0;font-size:calc(9px * var(--text-scale, 1))}footer b{font:800 20px Manrope,sans-serif;color:#887398;letter-spacing:-1px;margin-left:14px}.result{text-align:center;border:1px solid #cbd9b7;background:#edf2e6;border-radius:10px;padding:26px 20px;margin-top:20px}.eyebrow{font-size:calc(8px * var(--text-scale, 1));letter-spacing:1.5px;color:#8e7ba5}.result h2{font-size:calc(34px * var(--text-scale, 1));margin:12px 0}.result>p{font-size:calc(11px * var(--text-scale, 1));color:#7b8d6c}.result .next{font-size:calc(8px * var(--text-scale, 1));letter-spacing:1px;margin-top:23px}.result-grid{display:flex;justify-content:center;gap:6px;margin:22px 0}.result-grid>span{width:34px;height:34px;background:#b6ce94;border-radius:5px;display:grid;place-items:center;color:#526d34;font-size:calc(15px * var(--text-scale, 1))}.result-grid>span.assisted{background:#dbcdab;color:#8d7548}.secondary{padding:12px;background:none;border:0;font-size:calc(10px * var(--text-scale, 1));color:#7e8d70}.new-day{padding:15px;background:#e6efd8;border-radius:6px;font-size:calc(12px * var(--text-scale, 1));margin-bottom:20px}.new-day button{background:none;border:0;font-weight:600}.share-fallback{font-size:calc(11px * var(--text-scale, 1));display:block;margin:15px 0;color:#6e7e5e}.share-fallback[hidden]{display:none}.share-fallback textarea{display:block;margin-top:10px;width:100%;height:150px;padding:10px;border:1px solid #bdcca9;border-radius:5px;background:#fff;font:12px monospace;color:#3a5131}dialog{border:1px solid #d9ddcf;border-radius:14px;background:var(--paper);color:var(--ink);max-width:490px;padding:34px;margin:auto;max-height:90vh;overflow:auto;box-shadow:0 25px 120px #1b231940}dialog::backdrop{background:#20291f66;backdrop-filter:blur(4px)}dialog h2{font-size:calc(32px * var(--text-scale, 1));line-height:1.15;margin:16px 0 22px}dialog p,dialog li{font-size:calc(12px * var(--text-scale, 1));color:#818b76;line-height:1.85}dialog li{margin:10px 0}dialog ol{padding-left:17px}dialog strong{font-weight:600;color:#5d6e4e}dialog .close{position:absolute;top:12px;right:15px;border:0;background:none;font-size:calc(24px * var(--text-scale, 1));color:#989e91}dialog .primary{margin-top:12px}.example{display:flex;gap:5px;margin:20px 0}.example>span{border:1px solid #d5d5cb;background:white;border-radius:5px;width:45px;text-align:center;padding:7px;font-size:calc(22px * var(--text-scale, 1))}.example small{display:block;font-size:calc(11px * var(--text-scale, 1));color:var(--purple);padding-top:5px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:23px 0}.stats-grid>div{background:#edeee6;border:1px solid #dfe3d6;padding:20px;border-radius:7px}.stats-grid strong{display:block;font:600 30px Manrope,sans-serif}.stats-grid span{font-size:calc(8px * var(--text-scale, 1));color:#8d987f;letter-spacing:1px;display:block;margin-top:6px}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--purple);outline-offset:3px}[hidden]{display:none!important}@media(min-width:1450px){main{padding-top:10px}.hero{padding-top:44px;padding-bottom:44px}}@media(max-width:750px){main{padding:0 19px}header{height:77px}nav{gap:12px}nav button{font-size:calc(9px * var(--text-scale, 1));gap:5px}.brand{font-size:calc(26px * var(--text-scale, 1))}.brand-mark{width:30px;height:33px;font-size:calc(22px * var(--text-scale, 1))}.hero{padding:28px 0}.daily-tag{font-size:calc(6px * var(--text-scale, 1));letter-spacing:1px}.daily-tag>span{padding-left:8px;margin-left:2px}h1{font-size:calc(30px * var(--text-scale, 1));letter-spacing:-1.2px;margin-top:17px}.hero>p{font-size:calc(10px * var(--text-scale, 1))}.game-layout{grid-template-columns:1fr;gap:23px}.daily-card{padding:16px 17px;display:grid;grid-template-columns:1fr 115px;column-gap:14px;position:relative;overflow:hidden}.card-label{grid-column:1/-1;font-size:calc(6px * var(--text-scale, 1));margin-bottom:10px}.theme-art,.issue,.theme-description,.card-divider{display:none}.daily-card h2{grid-column:1;grid-row:2;font-size:calc(20px * var(--text-scale, 1));margin:4px 0 7px}.mini-stat{grid-column:2;grid-row:2/4;display:block;text-align:right;align-self:center}.mini-stat>span{font-size:calc(6px * var(--text-scale, 1))}.mini-stat strong{display:block;font-size:calc(27px * var(--text-scale, 1))}.score-rule{grid-column:1;grid-row:3;font-size:calc(8px * var(--text-scale, 1));line-height:1.6;margin:0 0 9px}.streak-row{grid-column:1/-1;border-top:1px solid #dcd6e5;padding-top:10px;font-size:calc(7px * var(--text-scale, 1))}.puzzle-top{font-size:calc(6px * var(--text-scale, 1))}.word-row{padding:13px 0}.clue{font-size:calc(10px * var(--text-scale, 1));gap:6px}.clue .index{min-width:16px}.tiles{gap:4px;padding-left:0}.tile{width:calc((100vw - 78px)/8);max-width:46px;height:57px;flex:0 1 46px;min-width:0}.tile .symbol{font-size:calc(21px * var(--text-scale, 1))}.tile .letter{font-size:calc(10px * var(--text-scale, 1))}.word-row.solved .clue:after{font-size:calc(6px * var(--text-scale, 1));letter-spacing:.5px}.action-bar{margin-top:17px;gap:10px}.reveal{font-size:calc(9px * var(--text-scale, 1));padding:12px 10px}.reveal span{margin-left:4px}.primary{font-size:calc(10px * var(--text-scale, 1));min-width:143px;padding:12px 15px}.primary>span{margin-left:17px}.keyboard-area{padding:13px 9px 10px}.keyboard-label{font-size:calc(6px * var(--text-scale, 1));letter-spacing:.5px}.key-row{gap:4px}.key{height:36px;font-size:calc(11px * var(--text-scale, 1))}.keyboard-foot{font-size:calc(7px * var(--text-scale, 1))}.explainer{gap:18px;grid-template-columns:1fr;margin-top:27px;padding-top:23px}.explainer>div{display:grid;grid-template-columns:130px 1fr;align-items:center}.step{font-size:calc(7px * var(--text-scale, 1))}.explainer p{margin:0;font-size:calc(10px * var(--text-scale, 1))}.explainer p br{display:none}footer{font-size:calc(6px * var(--text-scale, 1));gap:10px}footer>span:last-child{font-size:calc(7px * var(--text-scale, 1))}dialog{width:calc(100vw - 30px);padding:26px}.result h2{font-size:calc(30px * var(--text-scale, 1))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep instructional text legible on the light paper palette. */
.hero>p,.theme-description,.score-rule,.clue .length,#feedback,.keyboard-foot,.explainer p,.stats-note{color:#737c6b}.keyboard-label,.puzzle-top{color:#7c8573}.card-label,.issue,.streak-row{color:#82718f}.key.assigned{color:#748065}.tile .symbol{font-family:Manrope,Arial,sans-serif}.card-label>span:last-child,.primary>span{font-family:Arial,sans-serif}.explainer p br:after{content:" "}
@media(max-width:750px){.explainer p br{display:initial}.tile{min-height:57px}}

/* Readable instructions and controls at every screen size. */
dialog{max-width:580px}dialog p,dialog li{font-size:calc(16px * var(--text-scale, 1));line-height:1.7;color:#525e49}dialog li{margin:14px 0}dialog strong{color:#394b2d}dialog .eyebrow{font-size:calc(12px * var(--text-scale, 1))}.example small{font-size:calc(15px * var(--text-scale, 1))}
.hero>p,.theme-description,.explainer p,#feedback,.stats-note{font-size:calc(16px * var(--text-scale, 1));line-height:1.65;color:#56624d}.clue{font-size:calc(16px * var(--text-scale, 1));line-height:1.6;color:#505c48}.clue .index,.clue .length{font-size:calc(12px * var(--text-scale, 1));color:#66725c}.score-rule{font-size:calc(14px * var(--text-scale, 1));line-height:1.7;color:#665875}.step{font-size:calc(12px * var(--text-scale, 1));letter-spacing:1px;color:#546447}.keyboard-label{font-size:calc(11px * var(--text-scale, 1));line-height:1.6;letter-spacing:.5px;color:#5b6850}.keyboard-label>span:first-child{color:#5b6850}.keyboard-foot{font-size:calc(13px * var(--text-scale, 1));line-height:1.6;color:#606d55}.keyboard-foot button{font-size:calc(14px * var(--text-scale, 1));color:#526143}.puzzle-top{height:auto;min-height:38px;font-size:calc(11px * var(--text-scale, 1));line-height:1.6;gap:15px}.puzzle-top>button{font-size:calc(13px * var(--text-scale, 1));color:#68735e;white-space:nowrap}nav button{font-size:calc(14px * var(--text-scale, 1))}.primary,.reveal,.secondary{font-size:calc(15px * var(--text-scale, 1))}.reveal span{font-size:calc(12px * var(--text-scale, 1));color:#737c6b}.primary{min-height:46px}.streak-row{font-size:calc(10px * var(--text-scale, 1));line-height:1.6;gap:8px;flex-wrap:wrap}.mini-stat>span,.card-label,.issue,.eyebrow{font-size:calc(11px * var(--text-scale, 1))}.result>p{font-size:calc(16px * var(--text-scale, 1));line-height:1.6}.result .next{font-size:calc(12px * var(--text-scale, 1))}.stats-grid span{font-size:calc(12px * var(--text-scale, 1));line-height:1.6}.explainer{gap:28px}.explainer p br{display:none}.explainer p br:after{content:' '}
@media(max-width:750px){
 nav{gap:10px}nav button{font-size:calc(12px * var(--text-scale, 1))}nav button span{display:none}.daily-card{grid-template-columns:minmax(0,1fr) 100px}.daily-card h2{font-size:calc(22px * var(--text-scale, 1))}.score-rule{font-size:calc(13px * var(--text-scale, 1))}.card-label,.mini-stat>span{font-size:calc(10px * var(--text-scale, 1))}.streak-row{font-size:calc(11px * var(--text-scale, 1))}.puzzle-top{flex-wrap:wrap;gap:8px;padding-bottom:10px;font-size:calc(10px * var(--text-scale, 1))}.puzzle-top>button{font-size:calc(13px * var(--text-scale, 1))}.clue{font-size:calc(16px * var(--text-scale, 1));align-items:flex-start}.word-row.solved .clue:after{font-size:calc(10px * var(--text-scale, 1));letter-spacing:0}.clue .index{min-width:20px;font-size:calc(12px * var(--text-scale, 1))}.clue .length{font-size:calc(12px * var(--text-scale, 1))}.action-bar{flex-wrap:wrap;gap:10px}.action-bar .reveal,.action-bar .primary{flex:1;min-width:140px;padding:13px 10px}.reveal,.primary{font-size:calc(14px * var(--text-scale, 1))}.reveal span{font-size:calc(12px * var(--text-scale, 1))}.keyboard-label{font-size:calc(10px * var(--text-scale, 1));flex-wrap:wrap;gap:5px}.keyboard-foot{font-size:calc(12px * var(--text-scale, 1));flex-wrap:wrap;gap:8px}.keyboard-foot button{font-size:calc(14px * var(--text-scale, 1));min-height:36px}.explainer>div{display:block}.step{font-size:calc(12px * var(--text-scale, 1))}.explainer p{font-size:calc(16px * var(--text-scale, 1));margin:8px 0 0}.explainer p br{display:none}dialog{padding:26px 22px}dialog p,dialog li{font-size:calc(16px * var(--text-scale, 1))}.hero>p{font-size:calc(15px * var(--text-scale, 1))}.theme-description,#feedback,.stats-note{font-size:calc(16px * var(--text-scale, 1))}
}

/* Reader preference scales text without magnifying the page layout. */
.text-size-control{display:flex;align-items:center;gap:8px;font-size:14px;color:#526143;white-space:nowrap}
.text-size-control select{font:inherit;color:#394b2d;background:#fff;border:1px solid #b9c5ad;border-radius:5px;padding:8px;min-height:40px;max-width:115px;cursor:pointer}
.text-size-control select:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
header{height:auto;min-height:101px;gap:16px;padding-block:16px;flex-wrap:wrap}nav{flex-wrap:wrap;align-items:center}
.game-layout{grid-template-columns:245px minmax(0,1fr)}.puzzle-area{min-width:0}
.tile{height:calc(61px * var(--text-scale,1))}.tile .symbol{font-size:calc(23px * var(--text-scale,1))}.tile .letter{height:auto;line-height:1.4}
.clue{flex-wrap:wrap}.clue>span:nth-child(2){min-width:0;flex:1}.word-row.solved .clue:after{white-space:normal}
.keyboard-label,.keyboard-foot,.puzzle-top,.action-bar,.mini-stat{flex-wrap:wrap}.puzzle-top{gap:10px;padding-bottom:12px}.key{height:calc(36px * var(--text-scale,1))}
.example>span{min-width:0;flex:1}.example{flex-wrap:wrap}.stats-grid>div{min-width:0;overflow-wrap:anywhere}
@media(max-width:750px){header{min-height:77px}nav{gap:12px;width:100%;justify-content:space-between}.text-size-control{font-size:14px;gap:6px}.text-size-control select{padding:7px;max-width:100px}.game-layout{grid-template-columns:minmax(0,1fr)}.tile .symbol{font-size:calc(21px * var(--text-scale,1))}.tile{height:calc(57px * var(--text-scale,1))}.daily-card{grid-template-columns:minmax(0,1fr) 110px}.daily-card h2{overflow-wrap:anywhere}.result .next{line-height:1.8}.keyboard-label{gap:8px}.puzzle-top{min-height:0}.word-row.solved .clue:after{margin-left:26px}footer{flex-wrap:wrap}}

/* The wordmark is a decoded cipher, built from the same two-level game tiles. */
.brand-name{font-size:24px;letter-spacing:-1px;white-space:nowrap}.brand-name .brand-dot{margin-left:0}.glyph-title{margin:28px 0 22px;letter-spacing:0}.title-tiles,.title-word{display:flex;align-items:center;justify-content:center}.title-tiles{gap:18px}.title-word{gap:6px}.title-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:76px;gap:7px;background:#fff;border:1px solid #d7dbce;border-radius:7px;box-shadow:0 3px 0 #e0e4d6}.title-code{font:500 28px/1.1 Manrope,Arial,sans-serif;color:#747e69}.title-letter{font:700 16px/1.2 'DM Sans',sans-serif;color:#7154a3}.title-word:first-child .title-tile{transform:rotate(-7deg);background:#cee998;border-color:#b8d086}.title-word:first-child .title-code,.title-word:first-child .title-letter{color:#486132}.title-word:last-child .title-tile:nth-child(3){transform:rotate(5deg);background:#eeebf4;border-color:#cfc4df}.hero>.title-tagline{font:500 23px/1.5 Manrope,sans-serif;letter-spacing:-.5px;color:#646f59;margin-bottom:11px}
@media(max-width:750px){.brand-name{font-size:24px}.glyph-title{margin:25px 0 21px}.title-tiles{gap:clamp(8px,2.5vw,18px)}.title-word{gap:clamp(2px,.7vw,5px)}.title-tile{width:clamp(18px,5.8vw,42px);height:clamp(45px,10vw,68px);gap:5px;border-radius:4px}.title-code{font-size:clamp(17px,4vw,26px)}.title-letter{font-size:clamp(11px,2.9vw,16px)}.hero>.title-tagline{font-size:calc(17px * var(--text-scale,1));line-height:1.5;margin-bottom:12px;letter-spacing:-.2px}}

/* Full-width tile masthead: the game name is the top banner. */
header{display:flex;flex-direction:column;align-items:stretch;gap:24px;padding:28px 0 20px;container-type:inline-size}
.banner-brand{display:block;width:100%;text-decoration:none;color:inherit}.banner-brand .glyph-title{margin:0;line-height:1}
.banner-brand .title-tiles{display:flex;gap:clamp(14px,3cqw,32px);width:100%;padding:5px 3px}
.banner-brand .title-word{display:flex;flex:1;min-width:0;gap:clamp(4px,1cqw,11px)}
.banner-brand .title-tile{flex:1;min-width:0;width:auto;height:auto;aspect-ratio:.78;gap:clamp(6px,1.2cqw,14px);border-radius:clamp(5px,1cqw,12px);box-shadow:0 4px 0 #e0e4d6}
.banner-brand .title-code{font-size:clamp(22px,5.1cqw,58px)}.banner-brand .title-letter{font-size:clamp(13px,2.8cqw,32px)}
.banner-brand .title-word:first-child .title-tile{transform:none;background:#fff;border-color:#d7dbce}.banner-brand .title-word:first-child .title-code{color:#747e69}.banner-brand .title-word:first-child .title-letter{color:#7154a3}
.banner-brand .title-word:first-child .title-tile:first-child{background:#cee998;border-color:#b8d086;transform:rotate(-4deg)}.banner-brand .title-word:first-child .title-tile:first-child .title-code,.banner-brand .title-word:first-child .title-tile:first-child .title-letter{color:#486132}
header nav{justify-content:flex-end;width:100%;gap:24px}.hero{padding:24px 0 30px}.hero>.title-tagline{margin-top:18px}
@media(max-width:750px){header{padding-top:22px;gap:20px}header nav{justify-content:space-between;gap:12px}.banner-brand .title-tile{aspect-ratio:.7}.hero{padding:22px 0 26px}}
@media(max-width:480px){.banner-brand .title-tiles{flex-direction:column;gap:14px;padding:4px 3px}.banner-brand .title-word{width:100%;gap:clamp(5px,2cqw,8px)}.banner-brand .title-tile{aspect-ratio:.82;gap:6px}.banner-brand .title-code{font-size:clamp(29px,9cqw,38px)}.banner-brand .title-letter{font-size:clamp(17px,5.2cqw,22px)}header{gap:22px}.hero>.title-tagline{font-size:calc(16px * var(--text-scale,1))}}

/* Raised title tiles with the decoded name as the dominant lettering. */
.banner-brand .title-tile{box-shadow:0 5px 0 #bdc4b3,0 12px 20px -5px #25351d40,0 3px 6px #25351d1a;gap:clamp(3px,.6cqw,7px)}
.banner-brand .title-code{font-size:clamp(16px,3.4cqw,40px);line-height:1.1;font-weight:600;color:#7e8774}
.banner-brand .title-letter{font-family:Manrope,Arial,sans-serif;font-size:clamp(20px,5cqw,60px);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:#583680}
.banner-brand .title-word:first-child .title-letter{color:#583680}.banner-brand .title-word:first-child .title-code{color:#7e8774}
.banner-brand .title-tiles{padding-bottom:12px}
@media(max-width:480px){.banner-brand .title-tiles{gap:22px}.banner-brand .title-tile{gap:3px}.banner-brand .title-code{font-size:clamp(20px,6cqw,26px)}.banner-brand .title-letter{font-size:clamp(30px,9.4cqw,40px)}}

/* A lightly grained tile face with a raised edge and individual cast shadow. */
.tile{box-shadow:0 3px 0 #c4cab9,0 6px 10px -2px #28351f30,inset 0 1px 0 #ffffffeb,inset 0 -1px 2px #66734d12;background-image:linear-gradient(145deg,#ffffffb3,#e9e5d51a);transition:background .15s,transform .15s,border-color .15s,box-shadow .15s}
.tile::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch' seed='7'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23grain)' d='M0 0h120v120H0z'/%3E%3C/svg%3E")}
.tile .symbol,.tile .letter{position:relative;z-index:1}
.tile.locked{box-shadow:0 3px 0 #b8c9a6,0 6px 10px -2px #30451e29,inset 0 1px 0 #ffffffcc,inset 0 -1px 2px #526e3912}
.tile.same{box-shadow:0 3px 0 #c8bad7,0 6px 10px -2px #4d32632b,inset 0 1px 0 #ffffffe6}
.tile.selected{box-shadow:0 0 0 2px #9579b7,0 4px 0 #b9a5cc,0 9px 14px -3px #56366d40,inset 0 1px 0 #ffffffeb;transform:translateY(-2px)}
.word-row.wrong .tile{box-shadow:0 3px 0 #d4aa96,0 6px 10px -2px #74381d2b,inset 0 1px 0 #ffffffd9}
@media(hover:hover){.tile:not(:disabled):not(.selected):hover{transform:translateY(-1px);box-shadow:0 4px 0 #bdc6af,0 8px 12px -3px #28351f38,inset 0 1px 0 #fff}}

/* Clear, quiet section boundaries and consistent breathing room. */
:root{--section-border:#ccd2c1;--section-surface:#fcfbf7}
header{border:1px solid var(--section-border);border-radius:16px;background:var(--section-surface);padding:26px 24px 20px;margin-top:24px;box-shadow:0 3px 12px #27341e06}
header nav{border-top:1px solid #e1e4d9;padding-top:16px}
.hero{border:1px solid var(--section-border);border-radius:14px;background:#f0f2e9;padding:24px;margin:18px 0 26px}
.hero>.title-tagline{margin-top:14px}
.game-layout{gap:24px}.daily-card{border-color:#c9bfd7;box-shadow:0 3px 12px #3e2d5006}
.puzzle-area{border:1px solid var(--section-border);border-radius:14px;background:var(--section-surface);padding:22px 24px;box-shadow:0 3px 12px #27341e06}
.puzzle-top{border-bottom:1px solid #dce1d2;margin-bottom:16px;padding-bottom:14px;min-height:40px}
.word-row{padding-top:18px;padding-bottom:19px}.word-row:first-child{padding-top:0}
.action-bar{padding-top:4px}.keyboard-area{border-color:#c5ceba;background:#edf0e6;padding:17px 16px 13px}
.explainer{border:1px solid var(--section-border);border-radius:14px;background:var(--section-surface);margin-top:26px;padding:24px;gap:0}
.explainer>div{padding:0 22px;border-right:1px solid #dde2d3}.explainer>div:first-child{padding-left:0}.explainer>div:last-child{padding-right:0;border-right:0}
footer{margin-top:22px}
@media(max-width:750px){header{margin-top:16px;padding:20px 14px 16px;border-radius:12px;gap:14px}header nav{gap:10px;padding-top:14px}.hero{padding:20px 14px;margin:16px 0 20px;border-radius:12px}.game-layout{gap:18px}.puzzle-area{padding:18px 12px;border-radius:12px}.puzzle-top{margin-bottom:15px}.keyboard-area{padding:14px 9px 11px}.explainer{margin-top:20px;padding:20px;gap:0}.explainer>div{padding:17px 0;border-right:0;border-bottom:1px solid #dde2d3}.explainer>div:first-child{padding-top:0}.explainer>div:last-child{padding-bottom:0;border-bottom:0}.word-row{padding-bottom:19px}.daily-card{border-radius:12px}}

/* A short, interactive introduction to the shared cipher. */
.practice-launch{display:block;width:100%;padding:14px 16px;background:#e8efda;border:1px solid #bccd9f;border-radius:7px;text-align:left;color:#425a2e;font:600 calc(16px * var(--text-scale,1))/1.5 'DM Sans',sans-serif}
#practiceDialog{width:min(580px,calc(100vw - 28px));padding:32px}#practiceDialog h2{margin-top:22px}.close-practice{display:block;margin-left:auto;background:none;border:0;color:#64735a;font-size:calc(14px * var(--text-scale,1));padding:8px;min-height:40px}.practice-intro{margin-bottom:18px}.practice-row{padding:12px 0;border-top:1px solid #dce2d1}.practice-row>p{margin:0 0 10px;color:#4f6241}.practice-tiles{display:flex;gap:10px}.practice-tile{height:80px;width:64px;border:1px solid #cdd5c2;border-radius:7px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:0 3px 0 #d1d8c6}.practice-tile>span{font-size:26px;color:#78856d}.practice-tile strong{font-size:23px;color:#634384}.practice-linked{animation:discovery-pulse .8s ease;background:#eef3e4;border-color:#a9c58a}.practice-question{font-weight:700;color:#3d5130!important}.practice-choices{display:flex;gap:10px}.practice-choices>button{min-width:65px;min-height:52px;border:1px solid #c1cda9;border-radius:7px;background:#e9efd9;font-size:calc(20px * var(--text-scale,1));font-weight:700;color:#486135}.practice-feedback{min-height:54px}.practice-note{font-size:calc(13px * var(--text-scale,1));color:#728263}.practice-choices button:hover{background:#d7e9b3}
/* Selected tokens have a distinct ring; matching occurrences share an accent. */
.tile.selected{outline:3px solid #624087;outline-offset:2px;background:#e8dcf5;z-index:3;box-shadow:0 4px 0 #b6a0cb,0 10px 17px -4px #42205c66,inset 0 1px 0 #fff}.tile.same{background:#eee7f7;border:2px solid #b8a2cf}.tile.selected .symbol{font-weight:800;color:#4d2870}.tile.selected .letter{color:#4d2870}.tile.linked{animation:discovery-pulse .8s ease}.word-row{scroll-margin-bottom:350px}
@keyframes discovery-pulse{0%,100%{filter:none}35%{background-color:#d6eab5;box-shadow:0 0 0 3px #afcc855e,0 7px 16px #7ca34d45;transform:translateY(-3px)}}
.active-context{border-bottom:1px solid #c9d4b9;padding-bottom:12px;margin-bottom:13px}.context-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.context-heading strong{font-size:calc(14px * var(--text-scale,1));line-height:1.5;color:#56357a}.context-heading button{flex-shrink:0;border:0;background:none;font-size:calc(12px * var(--text-scale,1));color:#637552;padding:4px;min-height:32px}#editingClue{font-size:calc(15px * var(--text-scale,1));line-height:1.5;color:#435936;margin:8px 0}.editing-word{display:flex;gap:5px;flex-wrap:wrap}.editing-word>span{display:grid;place-items:center;min-width:23px;padding:3px;font-size:calc(17px * var(--text-scale,1));font-weight:700;line-height:1.3;color:#637552;border-bottom:2px solid #bdcda9}.editing-word>.current-position{color:#583680;background:#e9def2;border-color:#805d9f;border-radius:3px}.keyboard-area{scroll-margin-top:20px}.is-editing .key{min-height:40px}
.difficulty{margin-top:18px;border:1px solid #cec5da;border-radius:7px;padding:10px;background:#f5f2f8}.difficulty summary{font-size:calc(12px * var(--text-scale,1));color:#6b587f;line-height:1.6;cursor:pointer}.difficulty summary strong{display:inline-block;margin-left:5px;color:#503565}.difficulty p{font-size:calc(13px * var(--text-scale,1));line-height:1.6;color:#665572;margin:8px 0 0}
.storage-notice{background:#fff1d8;border:1px solid #d8b579;color:#785220;border-radius:7px;padding:12px;font-size:calc(14px * var(--text-scale,1));line-height:1.6;margin:0 0 16px}
/* Completion is a distinct, celebratory state, not a second play screen. */
.result{position:relative;overflow:hidden;padding:30px 20px;background:linear-gradient(145deg,#edf4e4,#eeebf4);border-color:#b6c79e}.victory-emblem{display:grid;place-items:center;width:61px;height:61px;border:1px solid #b7c999;border-radius:50%;background:#d5e9b2;color:#6a4b8c;font-size:36px;margin:15px auto}.final-score{display:block;font:800 clamp(48px,7vw,80px)/1.1 Manrope,sans-serif;letter-spacing:-3px;color:#55387a}.score-total{display:block;font-size:calc(12px * var(--text-scale,1));letter-spacing:1.5px;color:#70647a;margin:8px 0 20px}.result h2{margin-bottom:20px}.share-preview{border-top:1px solid #c9d3bc;margin-top:22px;padding-top:15px;text-align:left}.share-preview summary{font-size:calc(14px * var(--text-scale,1));color:#536843;cursor:pointer;line-height:1.6}.share-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:calc(13px * var(--text-scale,1))/1.7 'DM Sans',sans-serif;color:#59694b;background:#ffffff70;padding:14px;border-radius:6px}.result .secondary{min-height:44px}.celebrating .victory-emblem{animation:victory-bloom .8s ease}.celebration-pieces{position:absolute;inset:0;pointer-events:none;overflow:hidden}.celebration-pieces i{position:absolute;left:var(--x);top:-12px;width:9px;height:14px;background:#b2cb87;border-radius:2px;animation:confetti-fall 1.3s var(--delay) ease-out both}.celebration-pieces i:nth-child(3n){background:#a78cbc}.celebration-pieces i:nth-child(3n+1){background:#d7bd81}@keyframes victory-bloom{40%{transform:scale(1.18) rotate(12deg)}100%{transform:scale(1) rotate(0)}}@keyframes confetti-fall{to{transform:translateY(480px) rotate(var(--turn));opacity:0}}
.score-distribution{margin:20px 0}.score-distribution h3{font-size:calc(16px * var(--text-scale,1));color:#536546}.distribution-row{display:grid;grid-template-columns:90px minmax(0,1fr) 24px;gap:10px;align-items:center;margin:11px 0;color:#60724e;font-size:calc(13px * var(--text-scale,1))}.distribution-track{height:17px;background:#e0e6d7;border-radius:4px;overflow:hidden}.distribution-track i{display:block;height:100%;background:#aac583;border-radius:4px}.score-distribution>p{font-size:calc(13px * var(--text-scale,1))}
@media(max-width:750px){.difficulty{grid-column:1/-1;margin-top:4px;margin-bottom:12px}.daily-card .mini-stat{grid-row:2/4}.daily-card .streak-row{grid-row:5}.daily-card .difficulty{grid-row:4}.context-heading{flex-wrap:wrap}.active-context{padding-bottom:8px;margin-bottom:9px}body.is-editing{padding-bottom:var(--keyboard-space,350px)}body.is-editing .keyboard-area{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:30;margin:0;border:1px solid #aebe98;box-shadow:0 -5px 35px #25331c33;max-height:58dvh;overflow-y:auto;overscroll-behavior:contain;padding:12px 10px}.is-editing .keyboard-label{margin-bottom:8px}.is-editing .keyboard-foot{margin-top:6px}.is-editing .key-row{gap:3px}.is-editing .key{min-height:38px;flex-shrink:1}.is-editing #editingClue{font-size:calc(14px * var(--text-scale,1))}.practice-tile{width:58px;height:72px}#practiceDialog{padding:22px}.result{padding:25px 13px}.distribution-row{grid-template-columns:85px minmax(0,1fr) 22px}.stats-grid>div{padding:15px}}
@media(prefers-reduced-motion:reduce){.tile.linked,.practice-linked,.celebrating .victory-emblem,.celebration-pieces i{animation:none!important}.celebration-pieces{display:none}}
.tile:disabled{opacity:1;cursor:default}.tile.locked .symbol{color:#6d805c}.result .score-total{font-weight:600}
@media(max-width:750px){body.is-editing .active-context{position:sticky;top:-12px;background:#edf0e6;z-index:2;padding-top:8px;box-shadow:0 4px 5px #edf0e6}}

/* Plain-language rules and a live reset clock in the daily summary. */
.hero>p:not(.title-tagline){max-width:760px;margin-inline:auto;text-wrap:pretty}.theme-description{color:#625571}
.reset-clock{border-top:1px solid #d6cee1;padding-top:15px;margin-top:18px}.reset-clock>span{display:block;font-size:calc(11px * var(--text-scale,1));letter-spacing:1px;color:#766387}.reset-clock>b{display:block;font:700 calc(24px * var(--text-scale,1))/1.4 Manrope,sans-serif;letter-spacing:1px;font-variant-numeric:tabular-nums;color:#58416e;margin:4px 0}.reset-clock>small{font-size:calc(12px * var(--text-scale,1));line-height:1.6;color:#725e83}.next [data-countdown]{font-variant-numeric:tabular-nums}
footer{font-size:calc(11px * var(--text-scale,1));letter-spacing:.4px;line-height:1.7;gap:14px;color:#6c7861}footer p{margin:0}footer p:last-child{letter-spacing:0}
@media(max-width:750px){.reset-clock{grid-column:1/-1;grid-row:6;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:12px;padding-top:12px}.reset-clock>span{font-size:calc(10px * var(--text-scale,1))}.reset-clock>b{font-size:calc(22px * var(--text-scale,1));margin:0}.reset-clock>small{flex-basis:100%;font-size:calc(12px * var(--text-scale,1))}.hero>p:not(.title-tagline){font-size:calc(15px * var(--text-scale,1))}footer{font-size:calc(11px * var(--text-scale,1));flex-direction:column;align-items:flex-start;gap:5px}}
@media(max-width:750px){.daily-card .theme-description{display:block;grid-column:1/-1;grid-row:4;font-size:calc(14px * var(--text-scale,1));line-height:1.6;margin:7px 0 12px}.daily-card .difficulty{grid-row:5}.daily-card .streak-row{grid-row:6}.daily-card .reset-clock{grid-row:7}}

/* Library, optional preferences, and clear confirmation. */
#puzzleKind{border:0;padding:0;margin:0;font-weight:700}.play-context{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:18px 0 0;padding:16px 18px;border:1px solid #b8c6a5;border-radius:10px;background:#e9f0de;font-size:calc(14px * var(--text-scale,1));line-height:1.6;color:#40552e}.play-context>span{flex:1;min-width:180px}.play-context a,.history-details a{color:#53377a;text-decoration:underline;text-underline-offset:3px}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:22px}.setting-row{display:flex;align-items:flex-start;gap:13px;padding:18px 0;border-bottom:1px solid #d9e0cd;color:#435732;font-size:calc(16px * var(--text-scale,1));line-height:1.5}.setting-row input,.library-option input{width:22px;height:22px;flex-shrink:0;accent-color:#64418a;margin-top:2px}.setting-row small{display:block;font-size:calc(14px * var(--text-scale,1));line-height:1.7;margin-top:6px;color:#657356}.library-section{padding:20px 0;border-top:1px solid #d9dfcf}.library-section h3{font-size:calc(19px * var(--text-scale,1));color:#465c37;margin:0 0 8px}.button-link{display:inline-block;border:1px solid #b3c78f;border-radius:6px;background:#cee998;padding:12px 17px;color:#334e22;font-size:calc(15px * var(--text-scale,1));font-weight:600;text-decoration:none}.library-option{display:flex;align-items:flex-start;gap:10px;font-size:calc(15px * var(--text-scale,1));line-height:1.7;color:#4c613e;margin:14px 0}.archive-input{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.archive-input input{flex:1;min-width:150px;max-width:100%;padding:10px;border:1px solid #abbc95;border-radius:6px;font:16px 'DM Sans',sans-serif;color:#334d23;background:#fff}#archiveForm>label{font-size:calc(14px * var(--text-scale,1));color:#506541}.recent-archive{display:grid;gap:7px}.recent-archive>a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:11px 13px;border:1px solid #cbd6bc;border-radius:6px;color:#4b6238;font-size:calc(14px * var(--text-scale,1));text-decoration:none;background:#f3f6ed}.recent-archive small{font-size:calc(12px * var(--text-scale,1));color:#657551}
/* The first example asks the player for an entire three-letter word. */
.tutorial-form{padding-top:15px;border-top:1px solid #d6dfc8}.tutorial-form>label{display:block;font-size:calc(16px * var(--text-scale,1));font-weight:700;color:#3e542e;margin-bottom:12px}.tutorial-form>div{display:flex;gap:10px;flex-wrap:wrap}.tutorial-form input{min-width:110px;flex:1;width:120px;border:2px solid #a3ba83;border-radius:6px;background:#fff;padding:12px;font:700 calc(20px * var(--text-scale,1)) Manrope,sans-serif;letter-spacing:5px;text-transform:uppercase;color:#513371}.tutorial-form input::placeholder{font-size:16px;letter-spacing:0;text-transform:none;color:#7c8b6d}.tutorial-form .primary{min-width:110px}.answer-issue{font-size:calc(14px * var(--text-scale,1));line-height:1.65;color:#8b3d22;margin:14px 0 0;padding:10px 12px;border-left:3px solid #ad5d36;background:#fcf0e8;border-radius:0 5px 5px 0}.word-row.has-error .clue{color:#8b3d22}.tile.same{border-style:dashed;border-width:2px}.tile.selected{border-style:solid}.dock-actions{display:none}
/* Explanations and history use text alongside color, never color alone. */
.solution-explanation,.history-details{margin-top:22px;border-top:1px solid #c5d0b7;padding-top:17px;text-align:left}.solution-explanation summary,.history-details summary{font-size:calc(16px * var(--text-scale,1));font-weight:600;line-height:1.6;color:#4d623b;cursor:pointer}.solution-explanation p,.solution-explanation li,.history-details p,.history-details li{font-size:calc(15px * var(--text-scale,1));line-height:1.8;color:#536846}.solution-explanation ol{padding-left:22px}.solution-explanation li{margin:12px 0}.solution-explanation h3{font-size:calc(18px * var(--text-scale,1));color:#503d68;margin-top:22px}.mapping-list{display:flex;gap:8px;flex-wrap:wrap}.mapping-list>span{background:#f9faf6;border:1px solid #cbd6bb;border-radius:5px;padding:8px 11px;font-size:calc(15px * var(--text-scale,1));color:#4c6339}.mapping-list b{color:#62418a}.history-table-wrap{overflow-x:auto}.history-details table{border-collapse:collapse;width:100%;font-size:calc(14px * var(--text-scale,1));color:#4c623b}.history-details caption{text-align:left;font-size:calc(12px * var(--text-scale,1));padding:12px 0;color:#60754e}.history-details th,.history-details td{padding:10px 8px;border-bottom:1px solid #d5dec9;text-align:left}.history-trend{display:flex;gap:5px;align-items:end;height:100px;margin:20px 0;background:#ecf0e5;border-bottom:1px solid #c4d2b3}.history-trend i{flex:1;background:#adc789;border-radius:4px 4px 0 0}.achievement-list{list-style:none;padding:0}.achievement-list li{display:flex;gap:12px;align-items:flex-start;border:1px solid #d4dccb;border-radius:7px;padding:12px;margin:10px 0;background:#f2f3ed}.achievement-list li.earned{background:#e4eed6;border-color:#adc68b}.achievement-list li>span{font-size:23px;color:#715296}.achievement-list strong{font-size:calc(14px * var(--text-scale,1));color:#4b603a}.achievement-list p{font-size:calc(13px * var(--text-scale,1));margin:4px 0 0}.completion-achievements{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.completion-achievements>span{padding:7px 10px;border:1px solid #b8cd9c;border-radius:18px;color:#5b407b;background:#e7efd9;font-size:calc(12px * var(--text-scale,1))}.connection-bonus{padding:20px 15px;margin-top:22px;border:1px solid #c4b6d8;background:#efe8f7;border-radius:8px}.connection-bonus h3{font-size:calc(20px * var(--text-scale,1));color:#54376f}.connection-bonus p{font-size:calc(15px * var(--text-scale,1));color:#67517b;line-height:1.7}.connection-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.connection-options button{font-size:calc(14px * var(--text-scale,1));line-height:1.5;padding:13px 9px;border:1px solid #baa8ce;border-radius:6px;background:#fcfaff;color:#553b6e;min-height:48px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #57317d!important;outline-offset:4px!important}.button-link:hover,.recent-archive>a:hover{background:#e5efcf}
@media(max-width:750px){header nav{justify-content:flex-start;gap:12px 17px}header nav>button{min-height:38px}.play-context{padding:13px 14px}.play-context>span{min-width:100%;flex-basis:100%}.dock-actions{display:flex;gap:8px;margin:10px 0 5px}.dock-actions>button{flex:1;min-width:0;padding:11px 7px;min-height:44px;font-size:14px}.dock-actions .reveal{font-size:13px}.is-editing .keyboard-area{max-height:70dvh}.is-editing .key{height:38px;font-size:16px}.is-editing .keyboard-foot{font-size:11px}.is-editing .keyboard-foot>span{display:none}.is-editing .keyboard-foot button{min-height:34px}.history-details table{font-size:calc(13px * var(--text-scale,1))}.connection-options{grid-template-columns:1fr}.solution-explanation p,.solution-explanation li{font-size:calc(14px * var(--text-scale,1))}.dialog-actions>button{min-height:44px}.setting-row{gap:10px}}
/* Explicit high contrast complements system forced-colors support. */
html[data-contrast=high]{--paper:#fff;--ink:#111;--muted:#333;--line:#444;--green:#d5ef9b;--purple:#3b0869;--section-border:#444;--section-surface:#fff;--mint:#e0f1ca}
html[data-contrast=high] body{color:#111;background:#fff}html[data-contrast=high] :is(p,li,small,label,summary,th,td,.clue,.keyboard-label,.keyboard-foot,.puzzle-top,.card-label,.score-rule,.theme-description,.streak-row,.reset-clock span,.reset-clock small,footer,.score-total){color:#222}html[data-contrast=high] :is(header,.hero,.puzzle-area,.keyboard-area,.daily-card,.explainer,dialog,.result,.practice-tile,.setting-row,.library-section,.play-context,.history-details,.difficulty){border-color:#444;background:#fff}html[data-contrast=high] :is(h1,h2,h3,strong,.tile .letter,.key,.final-score){color:#111}html[data-contrast=high] .tile{border-color:#333;background:#fff;box-shadow:0 3px 0 #777,0 5px 7px #1113}html[data-contrast=high] .tile:before{display:none}html[data-contrast=high] .tile .symbol{color:#222}html[data-contrast=high] .tile.locked{background:#dff1c6;border-color:#31531c}html[data-contrast=high] .tile.same{background:#fff0a1;border:2px dashed #4c176d}html[data-contrast=high] .tile.selected{background:#d8e8ff;outline:3px solid #003f9e;border-color:#003f9e}html[data-contrast=high] .tile.selected .symbol,html[data-contrast=high] .tile.selected .letter{color:#003677}html[data-contrast=high] :is(.answer-issue,#feedback.warning){color:#801c00;background:#fff0e6;border-color:#801c00}html[data-contrast=high] .key{border-color:#333;background:#fff;opacity:1}html[data-contrast=high] .key.assigned{background:#dce7d0;color:#333}html[data-contrast=high] .key:disabled{color:#555;background:#e7e7e7}html[data-contrast=high] :is(.primary,.button-link){background:#daefa7;color:#183300;border-color:#31531c}html[data-contrast=high] :is(.secondary,.reveal,.context-heading button,nav button,.practice-launch,.close-practice){color:#222;border-color:#555}html[data-contrast=high] :is(.active-context,.is-editing .active-context){background:#fff;color:#111}html[data-contrast=high] .current-position{color:#003677;background:#d8e8ff;border-color:#003f9e}html[data-contrast=high] .editing-word>span{color:#111}html[data-contrast=high] :focus-visible{outline-color:#003f9e!important}
html[data-motion=reduce] *,html[data-motion=reduce] *::before,html[data-motion=reduce] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-motion=reduce] .celebration-pieces{display:none}
@media(forced-colors:active){.tile.selected{outline:3px solid Highlight}.tile.same{border:2px dashed Highlight}.tile.locked{border:2px solid CanvasText}.tile::before{display:none}}
dialog h2{overflow-wrap:anywhere;text-wrap:balance}.setting-row>span{min-width:0;overflow-wrap:anywhere}.library-section{min-width:0}
.practice-level-label{display:block;font-size:calc(15px * var(--text-scale,1));font-weight:600;color:#4d623b;margin:15px 0 8px}#practiceLevel{width:100%;padding:12px;border:1px solid #aabd94;border-radius:6px;background:#fff;color:#3b512a;font:calc(16px * var(--text-scale,1)) 'DM Sans',sans-serif}.progression-summary{background:#eef3e5;border-left:3px solid #a0bd7c;padding:12px;color:#4f673b;font-size:calc(14px * var(--text-scale,1));line-height:1.7}.progression-panel{margin-top:22px;padding:20px 16px;border:1px solid #b8cba0;border-radius:8px;background:#e9f0df}.progression-panel h3{font-size:calc(20px * var(--text-scale,1));color:#4b6139}.progression-panel p{font-size:calc(15px * var(--text-scale,1));line-height:1.7;color:#526a40}.progression-stages{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left}.progression-stages li{padding:11px;border:1px solid #ccd8bc;border-radius:6px;background:#f8faf4;font-size:calc(14px * var(--text-scale,1));color:#61724f}.progression-stages strong,.progression-stages span{display:block;line-height:1.6}.progression-stages .stage-current{border:2px solid #84619e;background:#f0e8f7}.progression-stages .stage-complete{border-color:#7b9d55;background:#dcecc9}.worked-path>li{padding:12px 14px;background:#f5f7ee;border:1px solid #d3ddc6;border-radius:6px}.worked-path>li p{margin:8px 0}.worked-path>li>strong{color:#60407d}html[data-contrast=high] :is(.progression-panel,.progression-summary,.worked-path>li,.progression-stages li){background:#fff;color:#111;border-color:#444}html[data-contrast=high] .stage-current{outline:2px solid #003f9e}html[data-contrast=high] #practiceLevel{color:#111;border-color:#333}@media(max-width:480px){.progression-stages{grid-template-columns:1fr}.progression-panel{padding:17px 12px}.progression-panel .primary{width:100%}}

.keyboard-foot{flex-wrap:wrap;gap:10px}.keyboard-foot button:disabled{opacity:.45;cursor:default}#tutorialProgress{font-weight:700}#completionExplanation{line-height:1.6;margin:24px 0}#difficultyValidation section{border-top:1px solid currentColor;padding:8px 0}

.reward-summary{padding:1rem;border:2px solid currentColor;border-radius:12px;font-weight:700;overflow-wrap:anywhere}

.social-sharing{margin:1.25rem 0;padding:1rem;border:2px solid var(--ink);border-radius:14px;text-align:left}.social-sharing h3{margin:0 0 1rem}.social-icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,85px),1fr));gap:10px}.social-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:80px;min-width:0;padding:10px 4px;border:1px solid currentColor;border-radius:10px;background:var(--tile);font-size:calc(12px * var(--text-scale,1));font-weight:700;overflow-wrap:anywhere}.social-button svg{width:26px;height:26px;flex-shrink:0}.social-mark{font-size:28px;line-height:28px;font-weight:800}.social-button:hover{background:var(--lavender)}.social-button:focus-visible{outline:3px solid currentColor;outline-offset:3px}#socialHelp{font-size:calc(14px * var(--text-scale,1));line-height:1.5}#socialActions{display:flex;gap:10px;flex-wrap:wrap}#socialActions[hidden]{display:none}#socialActions button{white-space:normal;min-width:0;flex:1 1 120px}

.friends-nav{color:var(--ink);font-size:calc(12px * var(--text-scale,1));text-decoration:none;font-weight:700;min-height:44px;display:inline-flex;align-items:center;gap:6px}.league-sync{border:2px solid currentColor;border-radius:10px;padding:12px;font-size:calc(14px * var(--text-scale,1));line-height:1.5;overflow-wrap:anywhere}
