@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital@0;1&display=swap');
:root{--paper:#f7f6ef;--ink:#213c31;--muted:#667268;--line:#dce0d5;--green:#214b3b;--lime:#d8eaa8;--peach:#f2dcc9;--purple:#dfdcf0;--white:#fffef9;--wrong:#954532;--right:#2c6543}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:16px;line-height:1.55}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b57d39;outline-offset:5px}button:disabled{cursor:default;opacity:.5}.topbar{max-width:1440px;margin:auto;min-height:100px;padding:24px 5%;display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:27px;font-weight:700;letter-spacing:-1.3px;display:flex;align-items:center;gap:10px}.brandmark{font-size:43px;font-weight:400;line-height:1}.beta{font-size:9px;letter-spacing:1.3px;border:1px solid var(--line);padding:4px 6px;border-radius:4px;margin-left:8px}.topbar nav{display:flex;gap:30px;margin-left:auto}.topbar nav a{text-decoration:none;font-size:14px;padding:8px 0;color:var(--muted)}.topbar nav a.active{color:var(--ink);border-bottom:2px solid var(--green)}.topnote{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:30px}main{max-width:1180px;margin:0 auto;padding:64px 36px 80px;min-height:calc(100vh - 180px)}footer{max-width:1440px;border-top:1px solid var(--line);margin:auto;padding:24px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:'Libre Baskerville',Georgia,serif;font-weight:400}h1{font-size:clamp(38px,5.4vw,65px);letter-spacing:-2.4px;line-height:1.16}h1 em{font-weight:400;color:#63815b}h2{font-size:28px;letter-spacing:-.7px;line-height:1.35}h3{font-size:20px;letter-spacing:-.5px}p{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:600;margin-bottom:18px;display:flex;gap:9px;align-items:center}.dot{width:6px;height:6px;background:var(--green);border-radius:50%}.intro{display:grid;grid-template-columns:1fr 230px;align-items:center;gap:32px;margin-bottom:52px}.intro p{margin-top:22px;max-width:540px;line-height:1.8}.orbital{width:200px;height:170px;position:relative;margin:auto;transform:rotate(-12deg)}.orbital:before,.orbital:after{content:'';position:absolute;border:1px solid #b6c6aa;border-radius:50%;width:130px;height:130px;top:20px;left:30px;transform:scaleX(1.5) rotate(35deg)}.orbital:after{transform:scaleX(.65) rotate(-35deg)}.orbital .core{position:absolute;left:64px;top:52px;border-radius:50%;width:65px;height:65px;background:var(--lime)}.orbital .satellite{position:absolute;left:20px;top:46px;width:19px;height:19px;background:var(--green);border-radius:50%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:0 0 22px;gap:20px}.section-heading h2{font-family:inherit;font-size:18px;font-weight:500;letter-spacing:-.3px}.quiet{font-size:12px;color:var(--muted)}.games{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.game-card{background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s}.game-card:hover{transform:translateY(-4px)}.card-art{height:190px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.card-art.memory{background:var(--lime)}.card-art.rules{background:var(--peach)}.card-art.rotation{background:var(--purple)}.art-number{position:absolute;left:19px;top:16px;font-size:11px;opacity:.65}.mini-grid{display:grid;grid-template-columns:repeat(4,22px);gap:6px;transform:rotate(-8deg)}.mini-grid span{height:22px;border-radius:4px;background:rgba(33,75,59,.12)}.mini-grid span.on{background:var(--green)}.art-shapes{display:flex;gap:18px;align-items:center;transform:rotate(-7deg)}.shape{display:inline-block;width:55px;height:55px;background:var(--green)}.shape.circle{border-radius:50%}.shape.triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.art-arrow{font-size:26px}.card-copy{padding:23px;display:flex;flex-direction:column;flex:1}.tag{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:9px}.card-copy p{font-size:13px;line-height:1.7;margin-top:10px;min-height:64px}.card-bottom{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.play{border:0;border-radius:50%;width:42px;height:42px;background:var(--green);color:var(--white);font-size:20px}.play:hover{background:#35634d}.session-note{margin-top:30px;border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:25px;font-size:12px;color:var(--muted)}.note-mark{color:var(--ink);font-weight:500}.btn{border:1px solid var(--line);border-radius:8px;padding:12px 22px;background:var(--white);color:var(--ink);font-weight:500;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:10px}.btn.primary{background:var(--green);border-color:var(--green);color:var(--white)}.btn:hover:not(:disabled){filter:brightness(.96)}.btn.small{padding:8px 14px;font-size:13px}.back{border:0;background:none;padding:0;color:var(--muted);font-size:13px;margin-bottom:35px}.game-shell{max-width:760px;margin:auto}.game-heading{display:flex;justify-content:space-between;gap:24px;align-items:start}.game-heading h1{font-size:42px}.game-heading .tag{margin-bottom:12px}.round-count{font-size:12px;border:1px solid var(--line);border-radius:30px;padding:7px 12px;white-space:nowrap}.instructions{max-width:640px;margin:22px 0 28px;font-size:15px}.arena{border:1px solid var(--line);background:var(--white);border-radius:18px;padding:32px;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.arena p{text-align:center}.arena h2{text-align:center}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}.memory-board{width:min(100%,300px);display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.tile{aspect-ratio:1;border:0;border-radius:9px;background:#e9ecdf;position:relative;opacity:1!important;min-width:0}.tile.target,.tile.selected{background:var(--green)}.tile.target:after,.tile.selected:after{content:'●';color:var(--white);position:absolute;inset:0;display:grid;place-items:center;font-size:18px}.tile.missed{background:var(--lime)}.tile.missed:after{content:'○';position:absolute;inset:0;display:grid;place-items:center}.tile.incorrect{background:var(--peach)}.tile.incorrect:after{content:'×';color:var(--wrong);position:absolute;inset:0;display:grid;place-items:center;font-size:24px}.status{font-size:13px;min-height:20px;color:var(--muted);text-align:center}.status strong{font-weight:500;color:var(--ink)}.status.good{color:var(--right)}.status.bad{color:var(--wrong)}.rule-banner{background:var(--paper);padding:16px 24px;border-radius:10px;display:flex;justify-content:center;gap:26px;flex-wrap:wrap;font-size:14px}.large-shape{width:95px;height:95px;flex-shrink:0}.choice-buttons{display:flex;gap:18px;justify-content:center}.choice-buttons .btn{min-width:130px}.key{font-size:11px;opacity:.65}.pattern{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:100px}.pattern i{aspect-ratio:1;display:block;background:#e8e7ee;border-radius:3px}.pattern i.on{background:var(--green)}.card-art .pattern{width:95px;transform:rotate(-8deg)}.rotation-target{padding:16px;background:var(--purple);border-radius:12px}.rotation-options{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pattern-choice{display:flex;align-items:center;flex-direction:column;gap:10px;padding:14px 8px;background:transparent;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.pattern-choice .pattern{width:min(100%,90px)}.pattern-choice.correct-choice{border:2px solid var(--right);background:#edf4e9}.pattern-choice.wrong-choice{border:2px solid var(--wrong);background:#f9eeea}.feedback{font-size:14px;text-align:center;min-height:24px}.score-display{font-family:'Libre Baskerville',Georgia,serif;font-size:70px;line-height:1.2;color:var(--green);letter-spacing:-3px}.result-label{font-size:13px;text-transform:uppercase;letter-spacing:1.5px}.result-detail{max-width:470px}.comparison{padding-top:20px;border-top:1px solid var(--line);width:100%;text-align:center}.comparison strong{font-size:24px;font-weight:500;display:block;margin-bottom:7px}.progress-intro{margin-bottom:38px}.progress-intro p{margin-top:18px;max-width:580px}.progress-block{padding:26px 0;border-top:1px solid var(--line)}.progress-block h3{margin-bottom:5px}.progress-block .quiet{display:block;margin-bottom:18px}.history-bars{display:flex;align-items:end;height:160px;gap:12px;padding-top:26px}.history-column{flex:1;max-width:90px;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%;gap:7px}.history-column .bar{width:100%;background:var(--green);border-radius:5px 5px 0 0;min-height:2px}.history-column .bar-value{font-size:12px}.bar-date{font-size:10px;color:var(--muted);white-space:nowrap}.empty{padding:45px 28px;background:var(--white);border:1px solid var(--line);border-radius:16px;text-align:center}.empty p{margin:12px auto 24px;max-width:450px}.storage-warning{padding:12px;background:var(--peach);border-radius:8px;font-size:13px;margin:12px 0;color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.topbar{min-height:82px;padding:20px 24px;flex-wrap:wrap;gap:12px}.brand{font-size:24px}.brandmark{font-size:34px}.beta,.topnote{display:none}.topbar nav{gap:18px}.topbar nav a{font-size:12px}main{padding:38px 22px 50px}.intro{grid-template-columns:1fr;margin-bottom:36px}.orbital{display:none}h1{letter-spacing:-1.5px}.games{grid-template-columns:1fr}.game-card{display:grid;grid-template-columns:125px 1fr}.card-art{height:auto;min-height:200px}.mini-grid{grid-template-columns:repeat(4,15px);gap:4px}.mini-grid span{height:15px}.art-shapes{gap:8px;flex-direction:column}.art-shapes .shape{width:35px;height:35px}.art-arrow{display:none}.card-copy{padding:20px}.card-copy p{min-height:0}.card-bottom{margin-top:15px}.card-art .pattern{width:75px}.session-note,footer{flex-direction:column;gap:10px}.game-heading h1{font-size:32px}.arena{padding:24px 15px}.rotation-options{grid-template-columns:repeat(2,1fr)}.rule-banner{gap:12px;padding:12px}.round-count{font-size:10px;padding:6px 10px}.score-display{font-size:58px}.history-bars{gap:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
