.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.bar{flex:none;background:var(--bg);border-bottom:1px solid var(--rule);padding:.45rem .5rem .5rem;padding-top:max(.45rem,env(safe-area-inset-top));padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right))}.brow{display:flex;align-items:center;gap:.4rem;padding:0 .3rem .15rem}.back{flex:none;font-family:var(--en);font-weight:700;font-size:1.05rem;line-height:1;color:var(--mut);text-decoration:none;padding:.25rem .35rem .25rem 0}.ttl{flex:1;min-width:0;font-weight:700;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnt{font-family:var(--en);font-weight:600;font-size:.74rem;color:var(--mut);font-variant-numeric:tabular-nums;white-space:nowrap}.cnt,.fz,.home{flex:none}.fz{font-family:var(--en);font-weight:600;font-size:.78rem;border:1px solid var(--rule);background:var(--surf);color:var(--mut);width:1.9rem;height:1.75rem;border-radius:6px;cursor:pointer}.home{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ko);font-weight:600;font-size:.74rem;border:1px solid var(--rule);background:var(--surf);color:var(--mut);min-width:1.9rem;height:1.75rem;padding:0 .45rem;border-radius:6px;text-decoration:none;white-space:nowrap}.chips{display:flex;gap:.3rem;overflow-x:auto;scrollbar-width:none;padding:4px .3rem}.chips::-webkit-scrollbar{display:none}.chip{position:relative;flex:0 0 auto;font-family:var(--en);font-weight:600;font-size:.82rem;min-width:2.1rem;padding:.32rem .35rem;border:1px solid var(--rule);background:var(--chipbg);color:var(--mut);border-radius:7px;cursor:pointer}.chip.ans{background:var(--surf);color:var(--ink);border-color:var(--mut)}.chip.ok{background:var(--ok-s);border-color:var(--ok);color:var(--ok)}.chip.no{background:var(--no-s);border-color:var(--no);color:var(--no)}.chip.fin{font-family:var(--ko);font-size:.76rem;padding:.32rem .6rem}.chip[aria-current=true]{background:var(--pri);border-color:var(--pri);color:var(--onpri)}.deck{flex:1;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.deck::-webkit-scrollbar{display:none}.panel{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel:focus{outline:none}.inner{padding:.9rem 16px 1.6rem;max-width:40rem;margin:0 auto}.pn{font-family:var(--en);font-weight:700;font-size:1.45rem;line-height:1;color:var(--pri);display:flex;align-items:baseline;gap:.45rem}.pt{font-family:var(--ko);font-size:.7rem;font-weight:500;color:var(--mut);background:var(--chipbg);padding:.16rem .45rem;border-radius:4px}.pp{margin:.4rem 0 .9rem;font-size:.86rem;color:var(--mut)}.card{background:var(--surf);border:1px solid var(--rule);border-radius:12px;padding:1rem 1rem 1.05rem;margin-bottom:1rem}.word{font-family:var(--en);font-weight:700;font-size:calc(var(--fs) * 1.7);line-height:1.15;margin:0 0 .65rem;letter-spacing:-.01em;overflow-wrap:anywhere}.pos{font-family:var(--en);font-weight:500;font-size:.8rem;color:var(--mut);margin-left:.35rem;letter-spacing:0}.ctx{font-family:var(--en);font-size:var(--fs);line-height:1.75;margin:0;letter-spacing:-.005em}.card.blk .ctx{font-size:calc(var(--fs) * 1.08)}.tw{background:var(--mark);border-bottom:1.5px solid var(--hl);text-decoration:none;padding:0 .06em;border-radius:2px;font-weight:600;color:inherit}.blank{display:inline-block;min-width:5.5em;border-bottom:2px solid var(--ink);height:1.2em;vertical-align:-.25em}.blank.fill{min-width:0;height:auto;vertical-align:baseline;border-bottom-color:var(--ok);color:var(--ok);font-weight:600;padding:0 .1em}.opts{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.opt{display:flex;gap:.65rem;align-items:baseline;width:100%;text-align:left;background:var(--surf);border:1.5px solid var(--rule);border-radius:10px;padding:.8rem .85rem;font-size:calc(var(--fs) * .98);cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:1.45}.opt .ol{flex:none;font-family:var(--en);font-weight:700;font-size:.85rem;color:var(--mut)}.opt .ot{flex:1;min-width:auto}.opt.en .ot{font-family:var(--en);font-weight:500}.opt .og{display:none;font-size:.78rem;color:var(--mut);margin-left:auto;white-space:normal;text-align:right}.opt[aria-pressed=true]{border-color:var(--pri);background:var(--chipbg)}.opt[aria-pressed=true] .ol{color:var(--pri)}.opt:disabled{cursor:default;color:inherit}.graded .opt .og{display:inline}.graded .opt.right{border-color:var(--ok);background:var(--ok-s)}.graded .opt.right .ol{color:var(--ok)}.graded .opt.wrong{border-color:var(--no);background:var(--no-s)}.graded .opt.wrong .ol{color:var(--no)}.mk{flex:none;font-family:var(--en);font-weight:700;font-size:.8rem}.right .mk{color:var(--ok)}.wrong .mk{color:var(--no)}.exp{display:none;margin-top:1rem;padding:.9rem .95rem;border-radius:11px;background:var(--surf);border:1px solid var(--rule);font-size:.88rem;line-height:1.6}.graded .exp{display:block}.vd{font-weight:700;font-size:.8rem;margin:0 0 .45rem;letter-spacing:.01em}.vd.o{color:var(--ok)}.vd.x{color:var(--no)}.xw{margin:0 0 .5rem}.xw b{font-family:var(--en);font-weight:700;font-size:1rem}.xw i{font-style:normal;font-family:var(--en);color:var(--mut);font-size:.78rem;margin:0 .3rem}.xs{font-family:var(--en);font-size:.86rem;line-height:1.6;margin:0 0 .15rem}.xt{font-family:var(--ko);color:var(--pri);margin:0 0 .6rem;padding-left:.6rem;border-left:2px solid var(--rule)}.tip{margin:0;font-size:.84rem;color:var(--ink);background:var(--mark);padding:.5rem .65rem;border-radius:8px}.tip b{font-family:var(--en);color:var(--trap)}.rep{display:flex;flex-wrap:wrap;gap:.4rem .75rem;align-items:center;margin:.75rem 0 0;font-size:.76rem}.rep a{color:var(--mut)}.copy{border:1px solid var(--rule);background:var(--surf);color:var(--mut);border-radius:6px;padding:.2rem .5rem;font-size:.74rem;cursor:pointer}.repinfo{white-space:pre-wrap;font-size:.74rem;background:var(--chipbg);padding:.5rem .6rem;border-radius:6px;margin:.5rem 0 0;user-select:all;-webkit-user-select:all}.fin h2{font-size:1.35rem;margin:0 0 .4rem;letter-spacing:-.01em}.fin .sub{margin:0 0 1rem;color:var(--mut);font-size:.9rem}.un{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.2rem}.acts{display:grid;gap:.5rem;margin-top:1.2rem}.score{font-family:var(--en);font-weight:700;font-size:3rem;line-height:1;margin:.3rem 0 .5rem;font-variant-numeric:tabular-nums}.score b{color:var(--pri)}.score small{font-size:1.2rem;color:var(--mut);font-weight:600}.track{height:7px;border-radius:999px;background:var(--rule);overflow:hidden;margin:0 0 .7rem}.track span{display:block;height:100%;background:var(--pri)}.rl{list-style:none;margin:1.1rem 0 0;padding:0;border-top:1px solid var(--rule)}.rl button{display:flex;gap:.6rem;align-items:baseline;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);padding:.6rem .15rem;cursor:pointer;font-size:.88rem}.rl .n{flex:none;width:1.4rem;font-family:var(--en);font-weight:600;color:var(--mut);font-variant-numeric:tabular-nums}.rl .w{font-family:var(--en);font-weight:600}.rl .k{color:var(--mut);margin-left:auto;text-align:right}.rl .m{flex:none;font-family:var(--en);font-weight:700;width:1rem;text-align:center}.rl .ok .m{color:var(--ok)}.rl .no .m,.rl .no .w{color:var(--no)}.nav{flex:none;display:flex;align-items:center;gap:.5rem;background:var(--bg);border-top:1px solid var(--rule);padding:.55rem .6rem calc(.55rem + env(safe-area-inset-bottom));padding-left:max(.6rem,env(safe-area-inset-left));padding-right:max(.6rem,env(safe-area-inset-right))}.nb{flex:1 1 0;font-weight:700;font-size:.92rem;padding:.65rem .5rem;border:1px solid var(--rule);background:var(--surf);border-radius:9px;cursor:pointer}.nb:disabled{opacity:.34;cursor:default}.nb.go{background:var(--pri);border-color:var(--pri);color:var(--onpri)}.posn{flex:0 0 auto;font-family:var(--en);font-weight:700;font-size:.9rem;color:var(--pri);min-width:4.3rem;text-align:center;font-variant-numeric:tabular-nums}.posn small{display:block;font-weight:500;font-size:.62rem;color:var(--mut)}.state .btn{margin-top:1.2rem}@media(prefers-reduced-motion:no-preference){.deck{scroll-behavior:smooth}}
