*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--ivory)}body{color:var(--ink);background:var(--ivory);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;margin:0}button,input{font:inherit}button{color:inherit;-webkit-touch-callout:none;touch-action:manipulation}button:focus-visible,input:focus-visible,.flashcard:focus-visible{outline:6px solid var(--gold);outline-offset:6px}button:disabled{cursor:wait;opacity:.45}h1,h2,p{margin-top:0}.app-shell{background:radial-gradient(ellipse at 50% 18%, var(--glow) 0 30%, transparent 70%), var(--ivory);min-height:100dvh;position:relative;overflow-x:hidden}.profiles-page,.stats-page{width:min(1080px,100%);min-height:100dvh;padding:max(var(--pad), env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:52px;display:flex}.brand{align-items:center;gap:12px;font-size:20px;font-weight:800;display:inline-flex}.brand-mark{place-items:center;width:40px;height:40px;display:inline-grid;position:relative}.brand-mark span{border:3px solid var(--ink);border-radius:8px;width:28px;height:34px;position:absolute}.brand-mark span:first-child{background:var(--prompt);top:3px;left:10px;transform:rotate(9deg)}.brand-mark span:nth-child(2){background:var(--paper);top:2px;left:2px}.brand-mark b{z-index:1;color:var(--correct);margin:0 8px 0 0;font-size:15px;font-weight:800}.deck-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.eyebrow{color:var(--muted);margin:0 0 8px;font-size:15px;font-weight:800}.button{cursor:pointer;white-space:nowrap;min-height:56px;transition:transform .11s var(--ease-press), box-shadow .11s ease;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 26px;font-size:18px;font-weight:800;display:inline-flex}.button--primary{color:#fff;background:var(--prompt);box-shadow:0 6px 0 var(--prompt-deep)}.button--primary:not(:disabled):active{box-shadow:0 2px 0 var(--prompt-deep);transform:translateY(4px)}.button--secondary{color:var(--ink);background:var(--paper);border:3px solid var(--card-line);box-shadow:0 6px 0 var(--card-ledge)}.button--secondary:not(:disabled):active{box-shadow:0 2px 0 var(--card-ledge);transform:translateY(4px)}.button--quiet,.back-button,.reveal-button{min-height:44px;color:var(--muted);background:var(--control-fill);border:1.5px solid var(--line);border-radius:var(--radius-control);box-shadow:none;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-flex}.button--small{min-height:48px;padding:0 20px;font-size:16px}.profiles-hero{justify-content:space-between;align-items:flex-end;gap:32px;padding:clamp(28px,6vmin,56px) 0 24px;display:flex}.profiles-hero h1,.stats-heading h1,.complete-card h1{margin-bottom:12px;font-size:clamp(38px,5.4vw,60px);font-weight:800;line-height:1.05}.profiles-hero p:not(.eyebrow),.stats-heading p,.complete-card>p{max-width:640px;color:var(--muted);margin-bottom:0;font-size:17px;font-weight:700;line-height:1.5}.privacy-note{color:var(--muted);background:var(--control-fill);border:1.5px solid var(--line);border-radius:16px;align-items:center;gap:12px;margin:0 0 24px;padding:12px 16px;display:inline-flex}.privacy-note>span{width:30px;height:30px;color:var(--prompt);background:var(--ivory);border:1.5px solid var(--line);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.privacy-note div{flex-wrap:wrap;gap:4px 10px;font-size:14px;font-weight:700;display:flex}.privacy-note strong{color:var(--ink);font-weight:800}.empty-state{text-align:center;background:var(--paper);border:4px dashed var(--card-line);border-radius:clamp(28px,4vmin,44px);flex-direction:column;justify-content:center;align-items:center;min-height:360px;padding:40px;display:flex}.empty-state h2{margin:24px 0 8px;font-size:28px;font-weight:800}.empty-state p{max-width:440px;color:var(--muted);margin-bottom:28px;font-size:16px;font-weight:700;line-height:1.5}.empty-cards{place-items:center;width:96px;height:90px;display:grid;position:relative}.empty-cards span{border:4px solid var(--card-line);background:var(--paper);width:58px;height:70px;box-shadow:0 5px 0 var(--card-ledge);border-radius:14px;position:absolute}.empty-cards span:first-child{transform:translate(-14px)rotate(-10deg)}.empty-cards span:nth-child(2){transform:translate(14px)rotate(8deg)}.empty-cards b{z-index:1;color:#fff;background:var(--prompt);width:40px;height:40px;box-shadow:0 4px 0 var(--prompt-deep);border-radius:50%;place-items:center;font-size:24px;display:grid}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.profile-card{background:var(--paper);border:4px solid var(--panel-line);box-shadow:0 8px 0 var(--panel-ledge);border-radius:28px;grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:22px;display:grid}.profile-avatar{border:3px solid var(--card-line);border-radius:14%;place-items:center;width:68px;height:68px;font-size:30px;font-weight:800;display:grid}.profile-avatar--1{background:#fbe7df}.profile-avatar--2{background:#e3f0ef}.profile-avatar--3{background:#e6edf5}.profile-avatar--4{background:#fbf0d6}.profile-card__copy h2{margin:0 0 2px;font-size:24px;font-weight:800}.profile-card__copy p{color:var(--muted);margin:0;font-size:14px;font-weight:700}.profile-card__actions{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;gap:12px;padding-top:4px;display:grid}.app-footer{color:var(--muted);text-align:center;padding:32px 0 4px;font-size:14px;font-weight:700}.toast{z-index:60;left:50%;bottom:max(20px, env(safe-area-inset-bottom));border-radius:16px;justify-content:space-between;align-items:center;gap:14px;width:min(520px,100% - 32px);padding:14px 18px;font-size:15px;font-weight:700;animation:.18s ease-out both toast-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #34454a29}.toast--error{color:var(--text-incorrect);background:var(--incorrect-wash);border:1.5px solid #ecc9bb}.toast--notice{width:max-content;max-width:calc(100% - 32px);color:var(--ink);background:var(--paper);border:1.5px solid var(--line)}.toast button{min-width:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;font-size:22px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.practice-page{width:min(980px,100%);min-height:100dvh;padding:max(var(--pad), env(safe-area-inset-top)) max(var(--pad), env(safe-area-inset-right)) max(var(--pad), env(safe-area-inset-bottom)) max(var(--pad), env(safe-area-inset-left));flex-direction:column;align-items:center;margin:0 auto;display:flex}.practice-header{width:100%;color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.practice-nav{align-items:center;gap:12px;display:flex}.back-button span{font-size:17px}.undo-button:disabled{cursor:default}.practice-profile{flex-direction:column;align-items:center;display:flex}.practice-profile>span{color:var(--ink);font-size:16px;font-weight:800}.practice-profile small{color:var(--muted);font-size:13px;font-weight:700}.session-tally{font-variant-numeric:tabular-nums;justify-self:end;align-items:center;gap:14px;font-size:15px;font-weight:800;display:flex}.session-tally span,.target-counts span{color:var(--muted)}.progress-row{width:min(640px,100%);padding:clamp(10px,2vmin,20px) 0 clamp(8px,1.6vmin,16px)}.progress-row>div:first-child{color:var(--muted);justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:700;display:flex}.progress-row>div:first-child strong{color:var(--ink);font-weight:800}.progress-track{background:var(--track);border-radius:999px;height:14px;overflow:hidden}.progress-track span{background:var(--gold);border-radius:inherit;height:100%;transition:width .2s;display:block}.card-stage{flex:1 0 auto;place-items:center;width:100%;min-height:300px;padding-bottom:10px;display:grid;position:relative}.flashcard{--card:min(52dvh, calc(100vw - 60px), 540px);z-index:2;width:var(--card);height:var(--card);aspect-ratio:1;padding:calc(var(--card) * .06);background:var(--paper);border:5px solid var(--card-line);box-shadow:0 10px 0 var(--card-ledge), 0 16px 30px var(--drop);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;transition:transform .18s var(--ease-press), box-shadow .11s ease;border-radius:14%;position:relative;overflow:hidden}.flashcard:active{cursor:grabbing;box-shadow:0 6px 0 var(--card-ledge), 0 10px 20px var(--drop);transition:none}.flashcard img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.flashcard--next{z-index:1;pointer-events:none;cursor:default;box-shadow:0 6px 0 var(--card-ledge);transition:transform .28s var(--ease-press), box-shadow .28s ease;margin-top:-5px;position:absolute;top:50%;left:50%;transform:translate(-50%,calc(14px - 50%))scale(.95)}.flashcard--next.is-revealed{box-shadow:0 10px 0 var(--card-ledge), 0 16px 30px var(--drop);transform:translate(-50%,-50%)scale(1)}.deck-end-preview{place-items:center;width:100%;height:100%;display:grid}.deck-end-preview span{color:#fff;background:var(--correct);border-radius:50%;place-items:center;width:96px;height:96px;font-size:48px;font-weight:800;display:grid;box-shadow:0 0 0 10px #4fa66a38}.flashcard--exit-right{border-color:var(--correct);animation:.28s ease-in both exit-right}.flashcard--exit-left{animation:.28s ease-in both exit-left}@keyframes exit-right{to{opacity:0;transform:translate(115vw,20px)rotate(18deg)}}@keyframes exit-left{to{opacity:0;transform:translate(-115vw,20px)rotate(-18deg)}}.answer-stamp{z-index:4;background:var(--paper);pointer-events:none;border:4px solid;border-radius:999px;padding:6px 16px;font-size:clamp(16px,2.4vw,22px);font-weight:800;position:absolute;top:7%}.answer-stamp--wrong{color:var(--text-incorrect);right:8%;transform:rotate(7deg)}.answer-stamp--correct{color:var(--correct);left:8%;transform:rotate(-7deg)}.swipe-hint{z-index:1;color:var(--muted);writing-mode:vertical-rl;align-items:center;gap:6px;font-size:14px;font-weight:800;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.swipe-hint span{font-size:20px}.swipe-hint--left{left:max(4px,50% - min(26dvh,270px) - 48px)}.swipe-hint--right{right:max(4px,50% - min(26dvh,270px) - 48px)}.image-fallback{width:100%;height:100%;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.image-fallback>span{font-size:48px}.image-fallback strong{color:var(--ink);font-weight:800}.image-fallback small{font-size:14px}.reveal-button{margin-top:6px}.target-reveal{opacity:0;align-items:baseline;gap:10px;min-height:34px;padding:4px 0;transition:opacity .16s,transform .16s;display:flex;transform:translateY(-4px)}.target-reveal.is-visible{opacity:1;transform:none}.target-reveal strong{text-transform:capitalize;font-size:24px;font-weight:800}.target-reveal span{color:var(--muted);font-size:15px;font-weight:700}.answer-actions{grid-template-columns:1fr 1fr;gap:20px;width:min(640px,100%);padding:6px 0 8px;display:grid}.answer-button{cursor:pointer;min-height:76px;transition:transform .11s var(--ease-press), box-shadow .11s ease;border:0;border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:8px 20px;display:flex}.answer-button--wrong{color:var(--ink);background:var(--paper);border:4px solid var(--card-line);box-shadow:0 7px 0 var(--card-ledge)}.answer-button--wrong:not(:disabled):active{box-shadow:0 2px 0 var(--card-ledge);transform:translateY(5px)}.answer-button--correct{color:#fff;background:var(--correct);box-shadow:0 7px 0 var(--correct-deep)}.answer-button--correct:not(:disabled):active{box-shadow:0 2px 0 var(--correct-deep);transform:translateY(5px)}.answer-button>span:not(.answer-icon){text-align:left;flex-direction:column;display:flex}.answer-button strong{font-size:22px;font-weight:800;line-height:1.1}.answer-button small{opacity:.75;font-size:13px;font-weight:700}.answer-icon{border-radius:50%;place-items:center;width:44px;height:44px;font-size:24px;font-weight:800;display:grid}.answer-button--wrong .answer-icon{color:var(--text-incorrect);background:var(--ivory)}.answer-button--correct .answer-icon{color:var(--correct);background:#fff}.keyboard-hint{color:var(--muted);margin:8px 0 0;font-size:13px;font-weight:700}.complete-page{min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex}.complete-card{text-align:center;width:min(760px,100%)}.complete-card>p{margin-left:auto;margin-right:auto}.complete-stars{justify-content:center;align-items:flex-end;gap:clamp(8px,2vmin,20px);margin-bottom:clamp(8px,2vmin,20px);display:flex}.complete-star{width:clamp(72px,12vmin,130px);height:auto;animation:aba-pop .6s var(--ease-spring) both;display:block}.complete-star:nth-child(2){width:clamp(92px,16vmin,170px);animation-delay:.12s}.complete-star:nth-child(3){animation-delay:.24s}.complete-star path{fill:var(--gold);stroke:var(--ink);stroke-width:6px;stroke-linejoin:round}.complete-card .eyebrow{margin-top:8px}.complete-card h1{font-size:clamp(44px,8vmin,88px)}.complete-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0;display:grid}.complete-stats div,.stats-summary>div{background:var(--paper);border:4px solid var(--panel-line);min-height:108px;box-shadow:0 6px 0 var(--panel-ledge);border-radius:24px;flex-direction:column;justify-content:center;align-items:center;display:flex}.complete-stats strong,.stats-summary strong{font-variant-numeric:tabular-nums;font-size:clamp(30px,4.4vw,42px);font-weight:800}.complete-stats span,.stats-summary span{color:var(--muted);font-size:14px;font-weight:700}.complete-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 12px;display:flex}.stats-topbar{grid-template-columns:1fr auto 1fr;display:grid}.stats-topbar .button{justify-self:end}.stats-topbar .back-button{justify-self:start}.stats-heading{align-items:center;gap:20px;padding:clamp(28px,6vmin,52px) 0 24px;display:flex}.stats-heading .profile-avatar{flex:none;width:88px;height:88px;font-size:40px}.stats-heading h1{margin-bottom:4px}.stats-summary{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.stats-summary>div{flex-direction:column-reverse}.text-mint{color:var(--text-correct)}.text-coral{color:var(--text-incorrect)}.target-section{background:var(--paper);border:4px solid var(--panel-line);box-shadow:0 8px 0 var(--panel-ledge);border-radius:28px;overflow:hidden}.target-section__heading{border-bottom:1.5px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px 24px 14px;display:flex}.target-section__heading h2{margin:0 0 2px;font-size:26px;font-weight:800}.target-section__heading p,.target-section__heading>span{color:var(--muted);margin:0;font-size:15px;font-weight:700}.target-list{padding:0 24px 8px}.target-row{border-bottom:1px solid var(--row-line);grid-template-columns:minmax(145px,1.3fr) 2fr auto 56px;align-items:center;gap:18px;min-height:68px;display:grid}.target-row:last-child{border-bottom:0}.target-name{flex-direction:column;display:flex}.target-name strong{text-transform:capitalize;font-size:20px;font-weight:800}.target-name span{color:var(--muted);font-size:13px;font-weight:700}.target-meter{background:var(--track);border-radius:999px;height:12px;overflow:hidden}.target-meter span{background:var(--correct);border-radius:inherit;height:100%;display:block}.target-counts{font-variant-numeric:tabular-nums;gap:14px;font-size:15px;font-weight:800;display:flex}.target-counts .tally-correct{color:var(--text-correct)}.target-counts .tally-incorrect{color:var(--text-incorrect)}.target-percent{text-align:right;font-variant-numeric:tabular-nums;font-size:16px;font-weight:800}@media (width<=760px){.profiles-hero{flex-direction:column;align-items:flex-start}.profiles-hero .button{width:100%}.profile-grid{grid-template-columns:1fr}.stats-summary{grid-template-columns:repeat(2,1fr)}.target-row{grid-template-columns:1fr auto 52px;gap:10px;padding:12px 0}.target-meter{grid-area:2/1/auto/-1}.target-counts{grid-area:1/2}.target-percent{grid-area:1/3}.practice-header{grid-template-columns:1fr auto}.back-button{padding:8px 10px;font-size:13px}.practice-profile{display:none}.answer-actions{gap:12px}.answer-button{gap:8px;padding:8px 12px}.answer-button strong{font-size:19px}.answer-icon{width:36px;height:36px}.flashcard{--card:min(45dvh, calc(100vw - 60px), 540px)}.card-stage{min-height:0}}@media (pointer:coarse){.keyboard-hint{display:none}}@media (orientation:landscape) and (height<=850px){.flashcard{--card:min(48dvh, calc(100vw - 240px), 470px)}.answer-button{min-height:64px}.keyboard-hint{display:none}}@media (width<=520px){.privacy-note div{flex-direction:column}.profile-card__actions,.complete-stats{grid-template-columns:1fr}.complete-stats div{min-height:84px}.stats-topbar .brand{display:none}.stats-topbar{grid-template-columns:1fr auto}.target-section__heading{flex-direction:column;align-items:flex-start}.target-list{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}:root[data-theme=dark] .profile-avatar--1{background:#43302a}:root[data-theme=dark] .profile-avatar--2{background:#243a38}:root[data-theme=dark] .profile-avatar--3{background:#28323f}:root[data-theme=dark] .profile-avatar--4{background:#3f3522}:root[data-theme=dark] .toast--error{border-color:#6b3a2d}
