:root{--ink:#17231e;--muted:#68746e;--cream:#f6f3e9;--card:#fffdf7;--green:#146c4b;--mint:#c9f4dc;--lime:#dcf86d;--line:#dbe2da;--red:#b94e45}*{box-sizing:border-box}body{margin:0;background:linear-gradient(160deg,#eef5eb,#f9f5e9 52%,#e6f2ea);color:var(--ink);font-family:Inter,ui-rounded,"SF Pro Rounded",system-ui,sans-serif;min-height:100vh}.app{width:min(100%,480px);min-height:100vh;margin:auto;padding:22px 18px 32px;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.eyebrow{margin:0 0 3px;text-transform:uppercase;letter-spacing:.15em;font-weight:800;font-size:11px;color:var(--green)}h1,h2,p{margin-top:0}h1{font-size:27px;letter-spacing:-.04em;margin:0}button{font:inherit;cursor:pointer}.icon-button,.close-panel{border:1px solid var(--line);background:#ffffffaa;border-radius:50%;width:44px;height:44px;font-size:20px}.yield-card{position:relative;overflow:hidden;background:var(--green);color:white;border-radius:24px;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 13px 30px #145a3c2b;margin-bottom:22px}.yield-card:after{content:"";position:absolute;width:130px;height:130px;border:25px solid #ffffff0d;border-radius:50%;right:-30px;top:-50px}.yield-label{display:block;font-size:12px;opacity:.75;font-weight:650;margin-bottom:3px}.yield-card strong{font-size:30px;letter-spacing:-.04em}.yield-card small{font-size:13px;letter-spacing:.1em;color:var(--lime)}.yield-orb{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--lime);color:var(--green);font-size:22px;font-weight:900;z-index:1}.yield-gain{position:absolute;left:180px;color:var(--lime);font-weight:800;opacity:0;transform:translateY(8px)}.yield-gain.pop{animation:pop 1.2s}@keyframes pop{30%{opacity:1;transform:translateY(-7px)}100%{opacity:0;transform:translateY(-18px)}}.level-row{display:flex;align-items:end;justify-content:space-between}.level-row div span{display:block;color:var(--muted);font-size:12px;font-weight:700}.level-row div strong{font-size:18px}.level-row>span{font-size:13px;font-weight:800;color:var(--green)}.progress-track{height:6px;background:#dae1d9;border-radius:9px;margin:9px 0 13px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:var(--green);transition:.3s}.grid-card{height:248px;border:1px solid #e0e4db;background:#ffffff88;border-radius:24px;display:grid;place-items:center;box-shadow:inset 0 1px white}.grid-card.clues-active{height:auto;min-height:440px;padding:18px 0 8px;grid-template-rows:210px auto}.crossword{display:grid;grid-template-columns:repeat(9,26px);grid-template-rows:repeat(8,26px);gap:3px}.cell{border:1px solid #ccd6cc;border-radius:5px;background:#edf0e9;display:grid;place-items:center;font-size:15px;font-weight:900;text-transform:uppercase}.cell.found{background:white;border-color:#8db7a1;color:var(--green);animation:reveal .25s}@keyframes reveal{from{transform:scale(.65)}}.clue-list{width:100%;padding:15px 18px;display:grid;gap:8px}.clue{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:start;font-size:12px;line-height:1.35;color:#47554d}.clue-number{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e3eee5;color:var(--green);font-size:11px;font-weight:900}.clue.found{color:var(--green);font-weight:700}.clue-answer{display:block;margin-top:2px;letter-spacing:.08em;font-weight:900}.word-readout{text-align:center;height:38px;font-weight:850;font-size:23px;letter-spacing:.1em;padding-top:9px;color:var(--green)}.wheel-wrap{position:relative;width:270px;height:270px;margin:0 auto}.wheel{position:absolute;inset:0;border-radius:50%;background:#dfe9df;border:1px solid white;box-shadow:inset 0 0 0 12px #ffffff55}.letter{position:absolute;width:58px;height:58px;border:0;border-radius:50%;background:var(--card);box-shadow:0 5px 12px #486e5938;color:var(--ink);font-size:23px;font-weight:900;transform:translate(-50%,-50%);z-index:2;touch-action:none}.letter.selected{background:var(--green);color:#fff;transform:translate(-50%,-50%) scale(1.08)}.shuffle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border:0;border-radius:50%;background:#b9d1c0;color:var(--green);font-size:24px;font-weight:900;z-index:3}.trace{position:absolute;inset:-15px;width:300px;height:300px;pointer-events:none;z-index:1}.trace polyline{fill:none;stroke:#75b997;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;opacity:.65}.hint{text-align:center;color:var(--muted);font-size:12px;margin:2px 0 9px}.check-button,.primary-button,.secondary-button{border:0;border-radius:14px;padding:13px 18px;font-weight:800;width:100%}.check-button,.primary-button{background:var(--green);color:white}.check-button{display:none}.secondary-button{background:#e3eee5;color:var(--green);margin-top:16px}.panel{position:absolute;inset:0;background:var(--cream);z-index:8;padding:28px 20px}.close-panel{float:right}.panel h2{font-size:32px}.level-list{display:grid;gap:10px}.level-choice{display:flex;justify-content:space-between;align-items:center;padding:15px;border:1px solid var(--line);border-radius:16px;background:white;text-align:left}.level-choice span{display:block;color:var(--muted);font-size:12px}.level-choice.active{border-color:var(--green);box-shadow:0 0 0 2px #77b899}.panel-note{font-size:12px;color:var(--muted);margin:10px}.modal{position:fixed;inset:0;background:#10261dbd;display:grid;place-items:center;padding:22px;z-index:10}.learn-card{width:min(100%,390px);background:var(--card);border-radius:27px;padding:26px;box-shadow:0 25px 70px #0005}.term-chip{display:inline-block;background:var(--mint);color:var(--green);border-radius:20px;padding:7px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.learn-card h2{font-size:38px;margin:15px 0 7px}.learn-card p{line-height:1.55;color:#47554d}.earned{font-weight:900;color:var(--green);margin:18px 0}.text-button{display:block;margin:13px auto 0;border:0;background:none;color:var(--muted);font-size:12px}.rating{display:flex;gap:7px;margin:20px 0}.rating button{flex:1;aspect-ratio:1;border:1px solid var(--line);background:white;border-radius:13px;font-weight:900}.rating button.selected{background:var(--green);color:white}textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;margin-bottom:12px}.receipt{margin-top:18px;padding:15px;border-radius:14px;background:var(--mint);white-space:pre-wrap;font-size:13px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,15px);opacity:0;background:var(--ink);color:white;border-radius:20px;padding:10px 16px;font-size:13px;font-weight:700;z-index:20;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}@media(max-width:390px){.app{padding:15px 14px 24px}.yield-card{margin-bottom:14px;padding:14px 17px}.yield-card strong{font-size:26px}.grid-card{height:245px}.grid-card.clues-active{min-height:420px;grid-template-rows:190px auto}.crossword{grid-template-columns:repeat(9,22px);grid-template-rows:repeat(8,22px);gap:2px}.cell{font-size:13px}.clue-list{padding:12px 14px;gap:6px}.clue{font-size:11px}.wheel-wrap{width:244px;height:244px}.letter{width:53px;height:53px;font-size:21px}.trace{inset:-28px}.hint{margin-top:-2px}.check-button{display:block}.word-readout{height:34px;font-size:20px}}
.icon-button.active{background:var(--green);color:#fff;border-color:var(--green)}
button.letter:hover{transform:translate(-50%,-50%) scale(1.05)}
button.letter:active{transform:translate(-50%,-50%) scale(.95)}
button.letter.selected:hover,button.letter.selected:active{transform:translate(-50%,-50%) scale(1.08)}
.continued-education{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:18px;border:1px solid var(--line);border-radius:16px;padding:14px 18px;background:var(--card);color:var(--green);font-weight:800;font-size:14px}
.continued-education b{font-size:16px}
