:root{--blue:#1373cf;--cream:#fff8ee;--orange:#ff5a1f;--lilac:#d9a4e8;--ink:#101820;--muted:#5f6267;color:var(--ink);background:var(--blue);font-family:Inter,Arial,sans-serif}*{box-sizing:border-box;min-width:0}html{min-width:320px;overflow-x:hidden}body{background:var(--blue);min-width:320px;margin:0;overflow-x:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.app-shell{background:linear-gradient(135deg,#1a7bd3,#0861bd);width:100%;min-height:100dvh;padding:clamp(0px,3vw,32px)}.app-panel{background:var(--cream);border-radius:0;width:100%;max-width:960px;min-height:100dvh;margin:auto;padding:clamp(24px,5vw,42px) clamp(16px,5vw,48px) 108px;position:relative;overflow:hidden;box-shadow:0 18px 48px #003d7a55}.header{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{letter-spacing:-.07em;flex:0 auto;font-size:1.05rem;font-weight:900}.brand span,.eyebrow{color:var(--orange)}.menu-button,.icon-button{background:0 0;border:0;flex:none;place-items:center;display:grid}.menu-button{gap:4px;padding:7px}.menu-button i{background:var(--ink);width:24px;height:2px}.hero{padding:clamp(28px,6vw,50px) 0 clamp(28px,5vw,42px)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:.78rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.065em;overflow-wrap:anywhere;max-width:570px;margin-bottom:12px;font-size:clamp(2rem,7vw,3.1rem);line-height:.98}h1 em{color:var(--blue);font-style:normal}.sample-note{color:var(--muted);margin-bottom:20px;font-size:.84rem;font-weight:600}.search{border:2px solid var(--ink);width:100%;min-height:56px;box-shadow:3px 3px 0 var(--ink);background:#fffdf8;border-radius:16px;align-items:center;gap:10px;padding:0 16px;display:flex}.search span{flex:none;font-size:1.85rem;transform:rotate(-20deg)}.search input{width:100%;color:var(--ink);text-overflow:ellipsis;background:0 0;border:0;outline:0;font-size:1rem}section{margin-top:28px}.section-header h2{letter-spacing:-.04em;margin-bottom:4px;font-size:1.16rem}.section-header p{color:var(--muted);margin-bottom:14px;font-size:.9rem}.popular{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.popular button{overflow-wrap:anywhere;border:1.5px solid var(--ink);min-height:44px;box-shadow:2px 2px 0 var(--ink);background:#fffdf8;border-radius:13px;padding:6px;font-size:.85rem;font-weight:800}.popular button:first-child,.popular button:nth-child(5){background:var(--orange)}.popular button:nth-child(2),.popular button:nth-child(4){background:var(--lilac)}.term-grid{grid-template-columns:1fr}@media (width>=600px){.app-panel{border-radius:30px;min-height:calc(100dvh - 64px)}.term-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.term-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.quick-section{margin-top:34px}.term-grid{gap:12px;display:grid}.term-card{text-align:left;border:1.5px solid var(--ink);background:#fffdf8;border-radius:14px;grid-template-columns:minmax(64px,88px) minmax(0,1fr) auto;align-items:center;width:100%;min-height:112px;padding:10px;display:grid;box-shadow:2px 2px #d9d0c4}.term-illustration{border:1.5px solid var(--ink);border-radius:11px;place-items:center;width:100%;max-width:74px;min-height:90px;font-size:2.3rem;display:grid}.lilac .term-illustration,.modal-art.lilac{background:var(--lilac)}.peach .term-illustration,.modal-art.peach{background:#ffb36c}.cream .term-illustration,.modal-art.cream{background:#f7e7cf}.term-copy{gap:6px;min-width:0;padding:0 9px;display:grid}.term-copy strong,.term-copy span{overflow-wrap:anywhere;word-break:normal}.term-copy strong{font-size:1.04rem}.term-copy span{font-size:.86rem;line-height:1.28}.arrow{padding-left:2px;font-size:2rem;font-weight:300}.empty{border:1px dashed var(--ink);text-align:center;overflow-wrap:anywhere;border-radius:14px;padding:24px}.bottom-nav{width:100%;padding:10px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#fffaf2;border-top:1px solid #ded6ca;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;position:absolute;bottom:0;left:0;right:0}.bottom-nav button{overflow-wrap:anywhere;background:0 0;border:0;place-items:center;gap:3px;min-height:52px;padding:4px;font-size:.72rem;font-weight:700;display:grid}.bottom-nav button span{font-size:1.55rem;line-height:1}.bottom-nav .active{color:var(--blue)}@media (width>=600px){.term-card{grid-template-columns:74px minmax(0,1fr) auto}.term-illustration{min-height:84px}}@media (width>=900px){.term-card{grid-template-columns:minmax(0,1fr) auto;align-content:start;min-height:220px}.term-illustration{grid-column:1/-1;max-width:none;min-height:115px}.term-copy{padding:12px 0 0}.arrow{grid-area:2/2}}.modal-backdrop{z-index:5;background:#10182088;align-items:end;padding:0;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:720px;max-height:calc(100dvh - 16px);padding:20px max(20px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overscroll-behavior:contain;background:var(--cream);border-radius:28px 28px 0 0;margin:0 auto;overflow:auto}.modal-top{justify-content:space-between;gap:12px;display:flex}.icon-button{min-width:44px;min-height:44px;font-size:1.7rem}.modal h2{letter-spacing:-.07em;overflow-wrap:anywhere;margin:22px 0 4px;font-size:clamp(2rem,9vw,2.5rem)}.modal-meaning{overflow-wrap:anywhere;font-size:clamp(1rem,3vw,1.08rem);font-weight:600}.modal-art{border:2px solid var(--ink);border-radius:20px;place-items:center;width:100%;min-height:clamp(160px,40vw,240px);margin:20px 0;padding:16px;display:grid}.modal-art span{font-size:clamp(3.5rem,14vw,5rem)}.modal-art small{text-align:center;margin-top:-36px;font-weight:700}.modal dl{gap:18px;display:grid}.modal dt,.modal h3{margin-bottom:6px;font-weight:850}.modal dd{overflow-wrap:anywhere;margin:0;line-height:1.45}.related{flex-wrap:wrap;gap:8px;display:flex}.related span{overflow-wrap:anywhere;border:1.5px solid var(--ink);background:var(--lilac);border-radius:99px;max-width:100%;padding:8px 12px;font-size:.85rem;font-weight:700}.back-button{background:var(--blue);color:#fff;border:0;border-radius:14px;width:100%;min-height:50px;margin-top:28px;font-weight:800}.placeholder-page{text-align:center;place-content:center;justify-items:center;min-height:calc(100dvh - 180px);padding:24px 0;display:grid}.placeholder-page span{border:2px solid var(--ink);background:var(--lilac);border-radius:22px;place-items:center;width:72px;height:72px;margin-bottom:16px;font-size:2rem;display:grid}.placeholder-page h1{margin-bottom:10px}.placeholder-page p{max-width:280px;margin-bottom:10px;font-size:1.1rem}.placeholder-page small{color:var(--muted)}@media (width>=600px){.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:28px;width:min(100%,720px);max-height:calc(100dvh - 48px)}}.category-filters{scrollbar-width:thin;gap:8px;margin:0 0 16px;padding:0 2px 5px;display:flex;overflow-x:auto}.category-filters button{border:1.5px solid var(--ink);background:#fffdf8;border-radius:999px;flex:none;min-height:40px;padding:7px 12px;font-size:.8rem;font-weight:800}.category-filters button.active{background:var(--lilac);box-shadow:2px 2px 0 var(--ink)}.term-illustration{gap:4px;position:relative}.term-illustration small{text-align:center;font-size:.62rem;font-weight:800}.term-category,.modal-category{color:var(--orange);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:850}.term-full-name,.modal-full-name{font-weight:700}.modal-full-name{margin-bottom:0;font-size:1.08rem}.related button{overflow-wrap:anywhere;border:1.5px solid var(--ink);background:var(--lilac);border-radius:99px;max-width:100%;padding:8px 12px;font-size:.85rem;font-weight:700}.source{color:var(--muted);margin:24px 0 0;font-size:.82rem}.source a{color:inherit;font-weight:700}.sources-about{border:1.5px solid var(--ink);background:#fffdf8;border-radius:18px;margin:40px 0 8px;padding:20px}.sources-about h2{letter-spacing:-.03em;margin-bottom:8px;font-size:1.08rem}.sources-about p{color:var(--muted);margin-bottom:14px;font-size:.9rem;line-height:1.45}.sources-about ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.sources-about a{color:var(--ink);text-underline-offset:3px;font-size:.88rem;font-weight:750;text-decoration-thickness:1.5px}.term-image,.illustration-placeholder{object-fit:contain;border-radius:inherit;place-items:center;width:100%;height:100%;display:grid}.illustration-placeholder{min-height:inherit;color:var(--ink);gap:4px;font-size:2.3rem}.illustration-placeholder small{text-align:center;font-size:.62rem;font-weight:800}.modal-art .term-image{object-fit:contain;max-height:clamp(160px,40vw,240px)}.modal-art .illustration-placeholder{min-height:clamp(160px,40vw,240px)}.term-graphic{width:62%;height:62%;overflow:visible}.modal-art .term-graphic{width:min(56%,140px);height:min(56%,140px)}.quiz-page,.deck-page{max-width:640px;margin:auto;padding:20px 0}.quiz-count{font-weight:800}.quiz-prompt{font-size:clamp(1.2rem,4vw,1.5rem);font-weight:750;line-height:1.35}.quiz-options{gap:12px;margin:24px 0;display:grid}.quiz-options button,.deck-card{border:1.5px solid var(--ink);text-align:left;background:#fffdf8;border-radius:16px;width:100%;min-height:56px;padding:14px;font-weight:700}.quiz-feedback{border:1.5px solid var(--ink);background:var(--lilac);border-radius:18px;padding:18px}.quiz-primary,.quiz-secondary{border-radius:14px;width:100%;min-height:50px;font-weight:800}.quiz-primary{background:var(--blue);color:#fff;border:0}.quiz-secondary{border:1.5px solid var(--ink);background:0 0;margin-top:10px}.quiz-score{font-size:2rem;font-weight:900}.deck-card{background:var(--cream);min-height:320px;box-shadow:4px 4px 0 var(--ink)}.deck-card:hover{transform:translateY(-3px)rotate(-.3deg)}.deck-term{margin:28px 0 6px;font-size:clamp(2.5rem,12vw,4rem)}.deck-controls{gap:10px;margin-top:18px;display:flex}.deck-controls button{border:1.5px solid var(--ink);background:#fffdf8;border-radius:13px;flex:1;min-height:48px;font-weight:800}@media (prefers-reduced-motion:reduce){.deck-card:hover{transform:none}}.flash-card{aspect-ratio:2;perspective:1400px;text-align:left;background:0 0;border:0;border-radius:20px;width:100%;margin:0 auto;padding:0;display:block;container-type:inline-size}.flash-card:focus-visible{outline:3px solid var(--orange);outline-offset:4px;border-radius:20px}.flash-card--study,.flash-card--focus{aspect-ratio:auto;max-width:680px;height:clamp(300px,68vh,560px)}.flash-card--study .flash-card-scroll,.flash-card--focus .flash-card-scroll{overflow:visible}.flash-card--study .flash-card-scroll h3,.flash-card--focus .flash-card-scroll h3{margin:clamp(4px,1.4cqw,10px) 0 1px;font-size:clamp(.6rem,2.6cqw,.78rem)}.flash-card--study .flash-card-scroll p,.flash-card--focus .flash-card-scroll p{font-size:clamp(.72rem,3cqw,.92rem);line-height:1.28}.flash-card--study .flash-card-related,.flash-card--focus .flash-card-related{font-size:clamp(.68rem,2.8cqw,.85rem)}.flash-card--study .flash-card-fullname,.flash-card--focus .flash-card-fullname{font-size:clamp(.68rem,3cqw,.85rem)}.flash-card--study .flash-card-term,.flash-card--focus .flash-card-term{font-size:clamp(1.3rem,7cqw,1.9rem)}.flash-card--study .flash-card-back,.flash-card--focus .flash-card-back{padding-top:clamp(10px,3cqw,20px)}.flash-card-inner{width:100%;height:100%;transform-style:preserve-3d;display:block;position:relative}.flash-card-face{text-align:center;backface-visibility:hidden;border:2px solid var(--ink);background:var(--cream);box-shadow:3px 3px 0 var(--ink);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:min(6px,3cqw);padding:clamp(10px,5cqw,26px);display:flex;position:absolute;inset:0;overflow:hidden}.flash-card-back{justify-content:center;padding-top:clamp(12px,5cqw,26px);transform:rotateY(180deg)}.flash-card-badge{border:1.5px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:clamp(26px,10cqw,44px);height:clamp(26px,10cqw,44px);padding:6px;display:grid}.flash-card-badge svg{width:100%;height:100%}.flash-card-badge.lilac{background:var(--lilac)}.flash-card-badge.peach{background:#ffb36c}.flash-card-badge.cream{background:#f7e7cf}.flash-card-term{letter-spacing:-.04em;font-size:clamp(1.05rem,9cqw,2rem);line-height:1.1}.flash-card-prompt{font-size:clamp(.72rem,3.4cqw,.9rem);font-weight:700}.flash-card-cta{color:var(--blue);font-size:clamp(.68rem,3.2cqw,.82rem);font-weight:800}.flash-card-fullname{font-size:clamp(.72rem,3.4cqw,.9rem);font-weight:700}.flash-card-scroll{scrollbar-width:thin;text-align:center;flex:none;align-content:center;gap:2px;width:100%;min-height:0;max-height:100%;display:grid;overflow-y:auto}.flash-card-scroll h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:8px 0 2px;font-size:.72rem;font-weight:850}.flash-card-scroll h3:first-child{margin-top:0}.flash-card-scroll p{margin:0;font-size:.84rem;line-height:1.35}.flash-card-related{color:var(--ink);font-size:.82rem;font-weight:700}.hero-cta{max-width:260px;margin-top:14px}.deck-page{text-align:center}.deck-flash-card{margin-top:16px}.focus-backdrop{z-index:20;padding:28px max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(3px);background:#101820cc;place-items:center;display:grid;position:fixed;inset:0}.focus-wrap{width:100%;max-width:640px;position:relative}.focus-close{z-index:1;border:2px solid var(--ink);width:40px;height:40px;box-shadow:2px 2px 0 var(--ink);background:#fffdf8;border-radius:50%;position:absolute;top:-16px;right:-8px}@media (width>=600px){.flash-card-scroll p{font-size:.9rem}.flash-card-scroll h3{font-size:.76rem}}@media (prefers-reduced-motion:reduce){.flash-card-inner{transition:none;transform:none!important}.flash-card-face{transition:opacity .15s linear}.flash-card-back{opacity:0;transform:none}.flash-card-front{opacity:1}.flash-card.is-flipped .flash-card-front{opacity:0}.flash-card.is-flipped .flash-card-back{opacity:1}}
