.pal{--p-bg:#000;--p-card:#1c1c1e;--p-raised:#2c2c2e;--p-line:#38383a;--p-ink:#f2f2f7;--p-muted:#8e8e93;--p-blue:#7b8cff;--p-pink:#e66aa6;--p-yellow:#f5c84c;--p-green:#4cc27a;--p-grey:#8e8e93;position:fixed;inset:0;overflow-y:auto;background:var(--p-bg);color:var(--p-ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,Segoe UI,sans-serif;font-size:16px;line-height:1.35;-webkit-tap-highlight-color:transparent;color-scheme:dark}:where(.pal) h1,:where(.pal) h2,:where(.pal) p{color:inherit}.pal button{all:unset;box-sizing:border-box;cursor:pointer}.pal :is(.pal-type,.pal-search) input:not([type=range]){all:unset;box-sizing:border-box;flex:1;min-width:0;color:var(--p-ink);-webkit-text-fill-color:var(--p-ink)}.pal :is(.pal-type) input:not([type=range]){font-size:20px;padding:16px 0}.pal :is(.pal-search) input:not([type=range]){font-size:17px;padding:14px 0}.pal button:focus-visible{outline:2px solid var(--p-blue);outline-offset:2px}.pal .pal-screen{max-width:560px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));min-height:100%;display:flex;flex-direction:column}.pal-empty small{display:block;margin-top:8px;font-size:12px}.pal-empty{color:var(--p-muted);text-align:center;padding:40vh 24px 0;margin:0}.pal-glyph{flex-shrink:0}.pal-glyph.yellow{color:var(--p-yellow)}.pal-glyph.blue{color:var(--p-blue)}.pal-glyph.pink{color:var(--p-pink)}.pal-glyph.green{color:var(--p-green)}.pal-top{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:8px 0 20px}.pal-brand{grid-column:2;margin:0;text-align:center;font-size:40px;font-weight:500;letter-spacing:-.5px}.pal-brand span{color:var(--p-blue)}.pal-title{margin:0;text-align:center;font-size:19px;font-weight:600}.pal .pal-icon{width:44px;height:44px;display:grid;place-items:center;color:var(--p-muted);border-radius:50%}.pal .pal-top>.pal-icon:last-child{grid-column:3}.pal .pal-icon.round{background:var(--p-raised);color:var(--p-ink)}.pal .pal-icon.active{color:var(--p-blue)}.pal-label{margin:28px 16px 10px;font-size:15px;font-weight:500;color:var(--p-muted)}.pal-group{background:var(--p-card);border-radius:20px;margin:0;padding:0;list-style:none;overflow:hidden}.pal .pal-row{display:flex;align-items:flex-start;gap:18px;width:100%;padding:18px 20px}.pal .pal-row+.pal-row{border-top:1px solid var(--p-line);margin-left:0}.pal-row span{display:grid;gap:4px}.pal-row strong{font-size:18px;font-weight:500}.pal-row small{color:var(--p-muted);font-size:15px}.pal-row:active,.pal-word:active{background:var(--p-raised)}.pal-stats{padding:16px;display:grid;gap:18px}.pal-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pal-tiles>div{background:var(--p-raised);border-radius:14px;padding:12px 14px}.pal-tiles small,.pal-today small{font-size:15px}.pal-tiles p,.pal-today p{margin:4px 0 0;color:var(--p-muted)}.pal-tiles b{color:var(--p-ink);font-size:22px;margin-right:4px}.pal-today{display:flex;align-items:center;gap:18px;padding:0 4px}.pal-today svg{width:56px;height:56px;transform:rotate(-90deg)}.pal-today circle{fill:none;stroke-width:3.5;stroke-linecap:round}.pal-today .track{stroke:var(--p-raised)}.pal-today .fill{stroke:var(--p-pink)}.pal-today p{font-size:18px}.pal-today b{font-size:34px;color:var(--p-ink);font-weight:500}.pal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;height:140px;padding-top:18px}.pal-bar{display:grid;grid-template-rows:1fr auto;position:relative;text-align:center}.pal-bar .stack{display:flex;flex-direction:column;justify-content:flex-end;border-radius:8px;overflow:hidden}.pal-bar i{display:block}.pal-bar .reviewed{background:var(--p-yellow)}.pal-bar .learned{background:var(--p-pink)}.pal-bar span{font-size:12px;color:var(--p-muted);padding-top:6px}.pal-bar em{position:absolute;top:-18px;left:0;right:0;font-style:normal;font-size:11px;color:var(--p-muted)}.pal-legend{display:flex;gap:18px;font-size:13px;color:var(--p-muted)}.pal-legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.pal-legend .learned:before{background:var(--p-pink)}.pal-legend .reviewed:before{background:var(--p-yellow)}.pal-study-top{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;row-gap:14px;margin:8px 0 16px}.pal-study-top h1{margin:0;text-align:center;font-size:19px;font-weight:600}.pal-study-top p{grid-column:1/-1;margin:0;color:var(--p-muted);font-size:14px}.pal-progress{grid-column:1/-1;height:4px;background:var(--p-raised);border-radius:2px;overflow:hidden}.pal-progress i{display:block;height:100%;background:var(--p-blue);transition:width .3s}.pal-card{flex:1;display:flex;flex-direction:column;background:var(--p-card);border-radius:24px;padding:20px 22px 12px;min-height:70vh}.pal-chip{display:inline-flex;align-items:center;gap:10px;font-size:15px}.pal-chip:before{content:"";width:16px;height:16px;border-radius:4px;background:currentColor}.pal-chip.pink:before{background:var(--p-pink)}.pal-chip.yellow:before{background:var(--p-yellow)}.pal-chip.grey:before{background:var(--p-grey)}.pal-tag{margin:18px 0 0;color:var(--p-muted);font-size:15px}.pal .pal-picture{display:block;width:min(220px,60%);aspect-ratio:16/10;object-fit:cover;border-radius:16px;margin-top:14px;background:var(--p-raised)}.pal .pal-picture.hidden{display:grid;place-items:center;color:var(--p-muted)}.pal-meaning,.pal-prompt{font-size:32px;font-weight:500;margin:26px 0 8px;line-height:1.15;overflow-wrap:anywhere}.pal-meaning{font-size:24px;color:var(--p-ink)}.pal-term{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}.pal-term.divider{border-top:1px solid var(--p-line);padding-top:22px;margin-top:18px}.pal-term p{margin:0;font-size:34px;font-weight:500;line-height:1.1;overflow-wrap:anywhere}.pal-term small{display:block;margin-top:6px;color:var(--p-muted);font-size:17px}.pal .pal-sound{width:52px;height:52px;display:grid;place-items:center;border:1.5px solid var(--p-blue);border-radius:14px;color:var(--p-blue)}.pal-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}.pal-methods.one{grid-template-columns:minmax(0,120px);justify-content:center}.pal .pal-methods button{height:96px;display:grid;place-items:center;background:var(--p-raised);border-radius:18px;color:var(--p-muted)}.pal-type{margin-top:22px}.pal-type form{display:flex;align-items:center;border-top:1px solid var(--p-line);border-bottom:1px solid var(--p-line)}.pal-type input{flex:1;min-width:0;background:none;border:0;color:var(--p-ink);font:inherit;font-size:20px;padding:16px 0;outline:none}.pal-type-foot{display:flex;justify-content:space-between;padding-top:14px;color:var(--p-muted);font-size:14px}.pal .pal-link{color:var(--p-blue);font-size:15px;display:inline-flex;align-items:center;gap:6px}.pal .pal-link.danger{color:#ff6b6b;font-size:14px;margin-top:6px}.pal-hint{color:var(--p-muted);font-size:18px;margin:12px 0 0}.pal-options{display:grid;gap:14px;margin-top:26px}.pal .pal-options button{background:var(--p-raised);border-radius:16px;padding:18px 20px;font-size:19px;transition:background .2s}.pal .pal-options button.right{background:#2c5e3d}.pal .pal-options button.wrong{background:#6a2b33}.pal-examples{list-style:none;padding:0;margin:14px 0 0}.pal-examples li{border-bottom:1px solid var(--p-line)}.pal .pal-examples button{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 0;font-size:17px}.pal-examples .pal-glyph{margin-top:3px;color:var(--p-muted)}.pal-examples [aria-expanded=true] .pal-glyph{transform:rotate(90deg)}.pal-examples p{margin:-6px 0 14px 28px;color:var(--p-muted);font-size:15px}.pal-examples b,.pal-word-more b{font-weight:700}.pal-error{color:#ff6b6b;font-size:14px}.pal-answers{margin-top:auto;padding-top:24px;display:grid;grid-template-columns:1fr 2px 1fr;align-items:center;min-height:92px}.pal-answers i{height:40px;border-left:1px solid var(--p-line);border-right:1px solid var(--p-line)}.pal .pal-answers button{text-align:center;font-size:17px;padding:14px 8px;line-height:1.25}.pal .pal-answers button.wide{grid-column:1/-1;background:var(--p-blue);color:#0b0d1f;border-radius:16px;font-weight:600}.pal-done{flex:1;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center}.pal-done h2{margin:8px 0 0;font-weight:600}.pal-done p{margin:0 0 18px;color:var(--p-muted)}.pal .pal-more,.pal .pal-primary{background:var(--p-blue);color:#0b0d1f;font-weight:600;border-radius:14px;padding:14px 28px}.pal .pal-more{display:block;margin:18px auto 0;background:var(--p-raised);color:var(--p-ink)}.pal-search{display:flex;align-items:center;gap:12px;background:var(--p-card);border-radius:999px;padding:0 18px;color:var(--p-muted)}.pal-search input{flex:1;min-width:0;background:none;border:0;color:var(--p-ink);font:inherit;font-size:17px;padding:14px 0;outline:none}.pal-filters{display:grid;gap:10px;margin-top:14px}.pal-filters div{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.pal .pal-filters button{flex-shrink:0;background:var(--p-card);color:var(--p-muted);border-radius:999px;padding:8px 14px;font-size:14px}.pal .pal-filters button.on{background:var(--p-blue);color:#0b0d1f}.pal-count{margin:18px 16px 8px;color:var(--p-muted);font-size:14px}.pal-words li+li{border-top:1px solid var(--p-line)}.pal .pal-word{display:grid;grid-template-columns:48px 1fr 10px;align-items:center;gap:14px;width:100%;padding:12px 16px}.pal-word .thumb{width:48px;height:40px;border-radius:8px;object-fit:cover;background:var(--p-raised)}.pal-word>span:not(.thumb){display:grid;min-width:0}.pal-word strong{font-weight:500;font-size:17px}.pal-word small{color:var(--p-muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-word .dot{width:10px;height:10px;border-radius:3px;background:var(--p-raised)}.pal-word .dot.learning{background:var(--p-pink)}.pal-word .dot.review{background:var(--p-yellow)}.pal-word .dot.mastered{background:var(--p-green)}.pal-word .dot.known{background:var(--p-grey)}.pal-word-more{padding:0 16px 14px 78px;display:grid;gap:4px}.pal-word-more .ipa{margin:0 0 4px;color:var(--p-muted)}.pal .pal-example{display:grid;gap:2px;padding:6px 0;font-size:15px}.pal-example small{color:var(--p-muted)}