:root{--ink: #10231f;--paper: #f6f5f1;--line: #c9c5bb;--marked: #1d6f5c;--win: #d98324;--focus: #1d6f5c}*{box-sizing:border-box}html{font-size:clamp(16px,.16vw + 13.9px,20px)}body{margin:0;padding:.75rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}.masthead{max-width:60rem;margin:0 auto .75rem}h1{margin:0 0 .15rem;font-size:clamp(1.35rem,5vw,2.25rem)}.tagline{margin:0 0 .6rem;opacity:.75;font-size:.9rem}.controls{display:flex;gap:.5rem;flex-wrap:wrap}button{font:inherit;padding:.6rem 1.1rem;border:2px solid var(--ink);border-radius:.4rem;background:transparent;color:var(--ink);cursor:pointer;min-height:44px}button:hover{background:var(--ink);color:var(--paper)}button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.status{max-width:60rem;margin:0 auto .6rem;min-height:1.5rem;font-weight:700;color:var(--win)}.card{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-width:60rem;margin:0 auto}.square{aspect-ratio:5 / 6;position:relative;container-type:inline-size;display:flex;align-items:center;justify-content:center;text-align:center;padding:4px;border:2px solid var(--line);border-radius:.4rem;background:#fff;cursor:pointer;min-height:44px;overflow:hidden}@media(min-width:40rem){.square{aspect-ratio:1;padding:.4rem;gap:0}}.name{font-weight:700;line-height:1.15;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.name.len-xs{font-size:clamp(12px,24cqi,19px)}.name.len-s{font-size:clamp(11px,20cqi,17px)}.name.len-m{font-size:clamp(10px,17cqi,15px)}.name.len-l{font-size:clamp(9px,14cqi,13px)}.logo{position:absolute;top:3px;right:3px;width:22cqi;max-width:20px;height:auto;opacity:.9;pointer-events:none}.square:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.square[aria-pressed=true]{background:var(--marked);color:#fff;border-color:var(--marked)}.square[aria-pressed=true] .logo{filter:brightness(0) invert(1)}.square.free .name{font-weight:800}.square.winning{border-color:var(--win);border-width:3px}.footer{max-width:60rem;margin:1rem auto 0;opacity:.7;font-size:.85rem}@media print{body{padding:0;background:#fff}.controls,.footer,.status{display:none}.masthead{margin-bottom:.5rem}.card{gap:0;max-width:100%}.square{aspect-ratio:1;border:1px solid #000;border-radius:0;background:#fff!important;color:#000!important}.name{font-size:9pt!important}.square[aria-pressed=true]{background:#fff!important;color:#000!important}.square[aria-pressed=true] .logo{filter:none}@page{margin:1cm}}
