:root{--red:#fd5c5c;--blue:#89daff;--orange:#fca311;--green:#4e937a;--mint:#7fd1ae;--purple:#afa2ff;--bg:#262626;--panel:#2f2f2f;--line:#3a3a3a;--muted:#888;--ui:Inter, system-ui, -apple-system, sans-serif;--jp:"BIZ UDPMincho", "BIZ UDMincho", "Hiragino Mincho ProN", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{padding-top:env(safe-area-inset-top);background:var(--bg);color:#fff;font-family:var(--ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit}button{font:inherit;color:inherit}.test-banner{color:#fff;font:600 11px var(--ui);letter-spacing:.08em;text-align:center;text-transform:uppercase;background:#a85d00;padding:3px}.page{max-width:880px;margin:0 auto;padding:24px 20px 80px}.page h1{font:600 20px var(--ui);margin:8px 0 20px}.nav{font:500 13px var(--ui);color:var(--muted);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:12px 20px;display:flex}.nav a{text-decoration:none}.nav a.on,.nav a:hover{color:#fff}.nav .grow{flex:1}.btn{background:var(--panel);border:1px solid var(--line);cursor:pointer;font:500 14px var(--ui);border-radius:10px;padding:9px 14px}.btn:hover{background:#363636}.btn.primary{color:#111;background:#fff;border-color:#fff}.input,textarea.input{border:1px solid var(--line);color:#fff;width:100%;font:15px var(--ui);background:#1e1e1e;border-radius:10px;padding:10px 12px}textarea.input{min-height:80px;font-family:var(--jp);line-height:1.6}.label{font:500 12px var(--ui);color:var(--muted);margin:14px 0 6px;display:block}.error{color:var(--red);font-size:14px}.decks{gap:10px;display:grid}.deck{background:var(--panel);border-radius:14px;justify-content:space-between;align-items:center;padding:16px 18px;text-decoration:none;display:flex}.deck:hover{background:#363636}.deck .name{font:500 16px var(--ui)}.counts{font:600 14px var(--ui);gap:12px;display:flex}.c-new{color:var(--blue)}.c-learn{color:var(--red)}.c-due{color:var(--mint)}.c-zero{opacity:.35}.review{background:var(--bg);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;inset:0}.progress{background:#333;flex:none;height:3px}.progress i{background:linear-gradient(90deg, var(--blue), var(--green));height:100%;transition:width .3s;display:block}.topbar{font:500 12px var(--ui);color:var(--muted);flex:none;align-items:center;gap:14px;padding:12px 18px;display:flex}.topbar .grow{flex:1}.topbar a,.topbar button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0;text-decoration:none}.topbar a:hover,.topbar button:hover{color:#fff}.card-scroll{touch-action:manipulation;-webkit-overflow-scrolling:touch;text-align:center;flex:1;padding:4px 22px 140px;overflow-y:auto}.card{contain:layout;max-width:760px;margin:0 auto}.word{font-family:var(--jp);margin:1.1em 0 .6rem;font-size:2.4rem;display:inline-block;position:relative}.word .reading{text-align:center;color:var(--muted);white-space:nowrap;font-size:.5em;position:absolute;top:-1.5em;left:0;right:0}.word.front{margin-top:18vh;font-size:2.6rem}.word[data-pattern]:before{content:"";width:.7ch;height:.7ch;margin-bottom:.3ch;margin-right:10px;display:inline-block}.word[data-pattern=heiban]:before{background:var(--blue)}.word[data-pattern=atamadaka]:before{background:var(--red)}.word[data-pattern=nakadaka]:before{background:var(--orange)}.word[data-pattern=odaka]:before{background:var(--green)}.picture{object-fit:contain;border-radius:16px;width:auto;min-width:min(420px,100%);max-width:min(700px,100%);height:auto;max-height:500px;margin:14px auto 4px;display:block;box-shadow:0 10px 15px -3px #0000001a}.picture-text{color:var(--muted);font-family:var(--jp);margin:10px 0}.pitch{font-family:var(--jp);flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:.6rem 0 0;font-size:1.15rem;display:inline-flex}.pitch .alt{opacity:.55}.pitch .m{border-top:2px solid #0000;padding-top:3px;display:inline-block}.pitch .m.h{border-top-color:currentColor}.pitch .m.drop{border-right:2px solid}.pitch.guess .m{border-top-style:dashed}.pitch.guess .m.drop{border-right-style:dashed}.pitch-html{margin-top:.6rem}.pitch-html svg{width:auto;height:60px}.sentence{font-family:var(--jp);margin:1.1rem 0 .6rem;font-size:1.5rem;line-height:1.7}.sentence b,.sentence strong,.explanation b,.explanation strong{color:#ffb11b;font-weight:400}.highlight{color:var(--red);background:#171717;border-radius:5px;margin:0 3px;padding:8px 3px 4px}.explanation{font-family:var(--jp);color:#cfcfcf;text-align:left;background:var(--panel);border-radius:14px;max-width:640px;margin:1rem auto;padding:14px 18px;font-size:1rem;line-height:1.8}.explanation .play{float:right;margin:-2px -4px 6px 10px}.english{font:400 .95rem/1.65 var(--ui);color:#d6d6d6;text-align:left;background:var(--panel);cursor:pointer;border-radius:14px;max-width:640px;margin:1rem auto;padding:14px 18px;position:relative;overflow:hidden}.english .en{filter:blur(6px);-webkit-user-select:none;user-select:none;transition:filter .2s}.english.open .en{filter:none;-webkit-user-select:text;user-select:text}.english .veil{font:600 13px var(--ui);color:#ddd;place-items:center;display:grid;position:absolute;inset:0}.english b,.english strong{color:#ffb11b;font-weight:400}.english p{margin:0 0 .6em}.english p:last-child{margin:0}.play{cursor:pointer;vertical-align:middle;background:#ffffff14;border:0;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:inline-grid}.play svg{fill:#fff;width:12px;height:12px;margin-left:2px}.play.big{width:54px;height:54px;margin-top:26px}.play.big svg{width:18px;height:18px}.play.playing{background:#89daff40}.pill{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);background:#141414eb;border-radius:18px;width:min(560px,100% - 24px);padding:8px;position:fixed;transform:translate(-50%)}.answers{gap:8px;display:grid}.answers.two{grid-template-columns:1fr 1fr}.answers.four{grid-template-columns:repeat(4,1fr)}.answers button{cursor:pointer;font:500 15px var(--ui);touch-action:manipulation;background:0 0;border:0;border-radius:12px;padding:12px 0 10px}.answers button:hover,.answers button:active{background:#2c2c2c}.answers small{font:400 11px var(--ui);opacity:.6;margin-bottom:2px;display:block}.answers .g1{color:var(--red)}.answers .g2{color:var(--orange)}.answers .g3{color:var(--mint)}.answers .g4{color:var(--blue)}.show{width:100%;font:500 15px var(--ui);cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:14px}.kbd{opacity:.45;margin-left:6px;font-size:.85em}.done{color:#ccc;margin-top:22vh;font-size:15px;line-height:1.7}.done h2{font:600 22px var(--ui);color:#fff}.overlay{z-index:10;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.overlay button{font:600 16px var(--ui);color:#111;cursor:pointer;background:#fff;border:0;border-radius:14px;padding:16px 28px}.toast{font:500 13px var(--ui);z-index:5;background:#3a3a3a;border-radius:10px;padding:8px 14px;position:fixed;top:54px;left:50%;transform:translate(-50%)}.results{contain:layout;gap:8px;margin-top:14px;display:grid}.result{background:var(--panel);border-radius:12px;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:10px 14px;text-decoration:none;display:grid}.result img{object-fit:cover;border-radius:6px;width:64px;height:42px}.result .w{font-family:var(--jp);font-size:18px}.result .s{font-family:var(--jp);color:#aaa;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.result .meta{font:500 11px var(--ui);color:var(--muted);text-align:right}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{font:500 11px var(--ui);color:#bbb;background:#333;border-radius:6px;padding:2px 7px}@media (max-width:600px){.word{font-size:2rem}.word.front{font-size:2.2rem}.sentence{font-size:1.25rem}.card-scroll{padding:4px 16px 130px}.picture{border-radius:12px;min-width:0;max-height:40vh}}.topbar .sync{color:var(--orange)}.zone-flash{pointer-events:none;z-index:4;width:50%;animation:.4s ease-out forwards zone;position:fixed;top:0;bottom:0}.zone-flash.l{background:#fd5c5c38;left:0}.zone-flash.r{background:#7fd1ae33;right:0}@keyframes zone{to{opacity:0}}
