@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@500;600;700;800;900&display=swap");:root{--ink:#26214f;--muted:#605d78;--coral:#ed5f56;--coral-dark:#c74641;--cream:#fffaf0;--yellow:#ffd866;--line:#e8e2d8;--white:#fff;--green:#24745e;--focus:#245b94}*{box-sizing:border-box}html{background:#fffaf0;scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:DM Sans,sans-serif;background:var(--cream);font-size:16px;line-height:1.5}::selection{background:#f9d78a;color:#26214f}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}.app-shell{max-width:1120px;margin:0 auto;padding:0 34px}.topbar{height:82px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:11px;color:var(--ink);text-decoration:none;font-family:Nunito,sans-serif;font-weight:900;font-size:22px;letter-spacing:-.04em}.brand-icon{border-radius:12px;object-fit:cover}.top-note{font-size:14px;color:var(--muted);font-weight:600}.welcome-grid{display:grid;grid-template-columns:1fr .96fr;grid-gap:34px;gap:34px;align-items:center;padding:43px 0 50px}.welcome-copy{padding:5px 0}.eyebrow{margin:0 0 9px;color:var(--coral-dark);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}h1,h2,p{margin-top:0}h1,h2{font-family:Nunito,sans-serif;letter-spacing:-.045em}h1{font-size:clamp(38px,5vw,59px);line-height:1.05;margin-bottom:16px;font-weight:900}h1 span{color:var(--coral-dark)}.intro{max-width:47ch;color:var(--muted);font-size:16px;margin-bottom:24px}.game-picks{display:grid;grid-gap:10px;gap:10px;max-width:465px}.game-choice{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px 15px;display:grid;grid-template-columns:42px 1fr 24px;grid-gap:12px;gap:12px;align-items:center;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.game-choice:hover{transform:translateY(-2px);box-shadow:0 8px 18px #352b5516;border-color:#d5c9b7}.game-choice.primary{border-color:var(--coral);background:#fff8f5}.choice-mark{width:42px;height:42px;border-radius:13px;background:#ffe0d6;color:var(--coral-dark);display:grid;place-items:center}.choice-mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.match-mark{background:#fff0bd;color:#856514}.game-choice small,.game-choice strong{display:block}.game-choice strong{font-size:15px;font-weight:800}.game-choice small{color:var(--muted);font-size:12px;margin-top:1px}.arrow{color:var(--coral-dark);display:grid;place-items:center}.arrow svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.friends-art{position:relative;min-height:360px;aspect-ratio:1.5;border-radius:24px;overflow:hidden;background:#fff0cf}.friends-art img{object-fit:cover}.art-caption{position:absolute;bottom:14px;left:14px;padding:8px 12px;border-radius:999px;background:#fffdf5;color:var(--ink);font-size:12px;font-weight:700;box-shadow:0 3px 12px #241c3c20}.alphabet-section,.scores-section{border-top:1px solid var(--line);padding:28px 0 32px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:17px}.section-heading h2{font-size:25px;line-height:1.15;margin:0 0 5px;font-weight:900}.section-heading p{color:var(--muted);font-size:14px;margin:0}.text-button{border:0;background:none;color:var(--coral-dark);font-weight:800;padding:9px 0}.text-button span{font-size:18px;margin-left:5px}.alphabet-grid{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));grid-gap:7px;gap:7px}.letter-tile{min-height:39px;border:1px solid var(--line);border-radius:11px;background:#fff;font-family:Nunito,sans-serif;font-size:15px;font-weight:900;transition:background .15s,border-color .15s,transform .15s}.letter-tile:hover{transform:translateY(-2px);border-color:var(--coral)}.letter-tile.selected{background:#ffe1d9;border-color:var(--coral);color:var(--coral-dark)}.chart-detail{margin-top:14px;border:1px solid #f0d2c3;background:#fff8f3;border-radius:16px;padding:15px;display:flex;align-items:center;gap:15px}.chart-letter{width:54px;height:54px;border-radius:15px;background:var(--coral);color:#fff;display:grid;place-items:center;font:900 29px Nunito,sans-serif;flex:none}.asl-sign{display:block;width:176px;height:202px;flex:none;padding:8px;border-radius:20px;background:#fff4dc}.asl-sign-compact{width:88px;height:102px;padding:2px;border:1px solid var(--line);border-radius:13px;background:#fff}.chart-detail small,.chart-detail strong{display:block}.chart-detail strong{font:900 18px Nunito,sans-serif}.chart-detail small{color:var(--muted);font-size:13px}.chart-detail>span:not(.chart-letter){flex:1 1;min-width:110px}.chart-detail .outline-button{margin-left:auto;white-space:nowrap}.score-count{font-size:12px;font-weight:700;color:var(--muted);padding:6px 10px;border-radius:99px;background:#f3eee4}.empty-state{padding:18px;border-radius:14px;border:1px dashed #d8cdbd;color:var(--muted);font-size:14px;text-align:center;margin-bottom:12px}.score-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.score-list li{display:flex;align-items:center;gap:12px;padding:12px 3px;border-bottom:1px solid var(--line)}.score-icon{width:34px;height:34px;border-radius:50%;background:#e3f1e8;color:var(--green);display:grid;place-items:center}.score-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.score-title{flex:1 1;min-width:0}.score-title small,.score-title strong{display:block}.score-title strong{font-size:14px}.score-title small{font-size:12px;color:var(--muted);margin-top:2px}.score-value{font:900 18px Nunito,sans-serif;white-space:nowrap}.score-value small{font-size:13px;color:var(--muted)}.privacy-note{font-size:12px;color:#5f5a73;margin:14px 0 0}.footer-note{border-top:1px solid var(--line);padding:17px 0 24px;text-align:center;color:var(--muted);font-size:12px}.play-screen{max-width:720px;margin:0 auto;padding:27px 0 48px;min-height:calc(100vh - 136px)}.back-button{background:none;border:0;color:var(--muted);font-weight:700;padding:6px 0 18px}.play-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.play-heading h1{font-size:clamp(30px,5vw,44px);margin:0}.round-count{font:900 24px Nunito,sans-serif;white-space:nowrap}.round-count small{font-size:15px;color:var(--muted)}.challenge-card{min-height:250px;border:1px solid var(--line);border-radius:24px;background:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px;text-align:center;box-shadow:0 8px 24px #2d23420a}.challenge-card .asl-sign{width:208px;height:236px}.flash-letter,.match-letter{font:900 clamp(88px,18vw,132px)/1 Nunito,sans-serif;color:var(--coral-dark);min-height:1em}.challenge-card.is-flashing .flash-letter{color:var(--ink)}.challenge-card p{margin:14px 0 0;color:var(--muted);font-size:15px;font-weight:600}.match-prompt{margin:0 0 10px!important}.match-letter{font-size:95px}.answer-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:11px;gap:11px;margin:17px 0}.answer-button{min-height:58px;border:1px solid var(--line);background:#fff;border-radius:15px;font:900 23px Nunito,sans-serif;transition:transform .15s,border-color .15s,background .15s}.answer-button:hover{transform:translateY(-2px);border-color:var(--coral);background:#fff5ef}.game-progress{height:6px;background:#ece6db;border-radius:99px;overflow:hidden;margin-top:8px}.game-progress span{height:100%;display:block;background:var(--coral);border-radius:inherit;transition:width .25s ease}.loading-note{text-align:center;color:var(--muted);margin:20px 0}.result-screen{max-width:590px;min-height:calc(100vh - 136px);margin:0 auto;padding:40px 0;text-align:center;display:flex;flex-direction:column;align-items:center}.celebration{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#fff0bd;color:#9b7410;margin-bottom:13px;animation:pop-in .35s cubic-bezier(.2,.85,.3,1.2) both}.celebration svg{width:29px;height:29px;fill:currentColor}@keyframes pop-in{0%{opacity:0;transform:scale(.65) rotate(-15deg);filter:blur(4px)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}.result-screen h1{font-size:48px;margin-bottom:4px}.result-score{font:900 70px/1.1 Nunito,sans-serif;color:var(--coral-dark);margin:8px 0}.result-score span{font-size:32px;color:var(--muted)}.result-message{color:var(--muted);margin-bottom:18px}.missed-box{width:100%;border:1px solid #f0d3c4;background:#fff8f3;border-radius:16px;padding:16px;text-align:left}.missed-box>strong{font-size:14px}.missed-box div{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.missed-box div span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#ffe1d9;color:var(--coral-dark);font-weight:900}.missed-box.all-right{text-align:center;background:#f0f7f0;border-color:#d5e9d8}.save-status{margin:14px 0 0;color:var(--green);font-size:13px;font-weight:700}.sound-button{margin:-8px 0 15px;padding:7px 10px;border:0;background:transparent;color:var(--coral-dark);font-size:13px;font-weight:800;display:flex;align-items:center;gap:6px}.sound-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.result-actions{display:flex;gap:10px;margin-top:18px;width:100%}.outline-button,.primary-button{min-height:46px;padding:10px 17px;border-radius:13px;font-weight:800}.primary-button{background:var(--coral);border:1px solid var(--coral);color:#fff;flex:1 1}.primary-button:hover{background:var(--coral-dark)}.outline-button{background:#fff;border:1px solid var(--line);color:var(--ink)}.outline-button:hover{border-color:var(--coral);background:#fff8f3}.error-box{border:1px solid #e7aaa3;border-radius:12px;background:#fff1ef;color:#6d2925;padding:12px;font-size:13px;margin:12px 0}.error-box button{display:block;border:0;background:none;text-decoration:underline;color:#6d2925;font-weight:800;padding:7px 0 0}.calendar-section{border-top:1px solid var(--line);padding:28px 0 32px}.calendar-form{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(145px,.8fr) minmax(130px,.7fr) auto;grid-gap:12px;gap:12px;align-items:end}.calendar-form label{display:grid;grid-gap:6px;gap:6px;font-size:13px;font-weight:800;color:var(--ink)}.calendar-form input{width:100%;min-height:46px;border:1px solid #d8d0c4;border-radius:12px;background:#fff;padding:9px 11px;font:600 14px DM Sans,sans-serif;color:var(--ink)}.calendar-form input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.calendar-form .primary-button{white-space:nowrap}.calendar-message{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:11px 13px;border:1px solid;border-radius:12px;font-size:13px;font-weight:700}.calendar-message.info{color:#51466d;border-color:#d9d1e6;background:#f7f3fc}.calendar-message.success{color:#205943;border-color:#b9ddc9;background:#f1faf4}.calendar-message.error{color:#6d2925;border-color:#e7aaa3;background:#fff1ef}.calendar-message button{border:0;background:transparent;text-decoration:underline;font:inherit;color:inherit;white-space:nowrap}.calendar-setup-note{max-width:70ch;margin:11px 0 0;color:var(--muted);font-size:12px}.calendar-setup-note code{font:600 12px DM Sans,sans-serif;color:var(--ink);background:#f1ece2;border-radius:5px;padding:2px 4px}@media(max-width:760px){.app-shell{padding:0 20px}.topbar{height:70px}.welcome-grid{grid-template-columns:1fr;gap:20px;padding:28px 0 35px}.welcome-copy{padding:0}.friends-art{min-height:0;aspect-ratio:1.52;order:2}.welcome-grid .friends-art{grid-row:2}.welcome-copy{grid-row:1}.alphabet-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.letter-tile{min-height:42px}.chart-detail{align-items:flex-start;flex-wrap:wrap}.chart-detail .outline-button{margin:2px 0 0 69px}.section-heading h2{font-size:22px}.text-button{font-size:13px}.play-screen{min-height:calc(100vh - 120px)}.challenge-card{min-height:220px}.result-screen{min-height:calc(100vh - 120px)}}@media(max-width:420px){.app-shell{padding:0 16px}.brand{font-size:20px}.brand-icon{width:38px;height:38px}.top-note{font-size:12px}.friends-art{aspect-ratio:1.35}.game-choice{padding:10px 11px;grid-template-columns:38px 1fr 20px;gap:10px}.choice-mark{width:38px;height:38px}.section-heading{align-items:flex-start}.score-count{flex:none}.result-actions{flex-direction:column}.answer-grid{gap:8px}.answer-button{min-height:54px}.art-caption{font-size:10px;bottom:9px;left:9px}}@media(max-width:760px){.calendar-form{grid-template-columns:1fr 1fr}.calendar-form .primary-button,.calendar-form label:first-child{grid-column:1/-1}.calendar-message{align-items:flex-start;flex-direction:column}}@media(max-width:420px){.calendar-form{grid-template-columns:1fr}.calendar-form .primary-button,.calendar-form label:first-child{grid-column:auto}.calendar-form .primary-button{width:100%}}.landing-shell{max-width:1120px;margin:0 auto;padding:0 34px}.landing-topbar{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.landing-topbar p{margin:0;color:var(--muted);font-size:14px;font-weight:700}.landing-hero{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);grid-gap:44px;gap:44px;align-items:center;padding:55px 0 42px}.landing-copy{max-width:590px}.landing-copy h1{max-width:13ch;font-size:clamp(40px,5.3vw,64px);line-height:1.01;margin:0 0 19px}.landing-intro{max-width:49ch;color:var(--muted);font-size:17px;line-height:1.65;margin:0 0 24px}.landing-cta{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:22px;padding:12px 19px;border:1px solid var(--coral);border-radius:14px;background:var(--coral);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 5px 0 #c7464140;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.landing-cta:hover{transform:translateY(-2px);background:var(--coral-dark);box-shadow:0 7px 0 #c7464130}.landing-cta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.landing-hint{margin:15px 0 0;color:var(--muted);font-size:13px}.landing-visual{min-width:0;display:grid;grid-gap:13px;gap:13px}.landing-friends{position:relative;aspect-ratio:1.38;margin:0;border:1px solid #f1d9aa;border-radius:25px;overflow:hidden;background:#fff0cf;box-shadow:0 15px 35px #352b5512}.landing-friends img{object-fit:cover}.landing-handshape{display:flex;align-items:center;gap:16px;min-height:139px;padding:13px 17px;border:1px solid var(--line);border-radius:20px;background:#fff}.landing-handshape .asl-sign{width:98px;height:110px;padding:4px;border:1px solid var(--line);border-radius:14px;background:#fff4dc}.landing-handshape .eyebrow{margin-bottom:4px;font-size:10px}.landing-handshape h2{font-size:20px;line-height:1.2;margin:0 0 3px}.landing-handshape p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}.landing-story{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(320px,1.1fr);grid-gap:30px;gap:30px;align-items:center;border-top:1px solid var(--line);padding:25px 0 29px}.landing-story .eyebrow{margin-bottom:5px}.landing-story h2{font-size:clamp(22px,3vw,30px);line-height:1.15;margin:0}.landing-story>p{max-width:60ch;margin:0;color:var(--muted);line-height:1.65}.landing-footer{border-top:1px solid var(--line);padding:16px 0 23px;text-align:center;color:var(--muted);font-size:12px}@media(max-width:760px){.landing-shell{padding:0 20px}.landing-topbar{height:70px}.landing-hero{grid-template-columns:1fr;gap:25px;padding:32px 0 28px}.landing-copy h1{max-width:15ch;font-size:clamp(38px,10vw,54px)}.landing-intro{font-size:16px}.landing-friends{aspect-ratio:1.45}.landing-story{grid-template-columns:1fr;gap:10px;padding:22px 0 25px}}@media(max-width:420px){.landing-shell{padding:0 16px}.landing-topbar .brand{font-size:20px}.landing-topbar .brand-icon{width:38px;height:38px}.landing-topbar p{font-size:12px}.landing-hero{padding-top:27px;gap:21px}.landing-copy h1{font-size:39px}.landing-handshape{gap:10px;padding:11px}.landing-handshape .asl-sign{width:83px;height:96px}.landing-handshape h2{font-size:18px}.landing-handshape p:not(.eyebrow){font-size:12px}}@media(prefers-reduced-motion:reduce){.landing-cta{transition:none}.landing-cta:hover{transform:none}}