.qd-signs-trainer{position:relative;display:grid;gap:16px}.qd-main>.qd-signs-trainer{animation-fill-mode:backwards}.qd-trainer-empty{justify-items:start;gap:12px;padding:24px}.qd-trainer-empty,.qd-trainer-limit{display:grid;border:1px solid var(--signs-line);border-radius:22px;background:var(--signs-surface)}.qd-trainer-limit{gap:10px;padding:clamp(20px,3vw,30px);border-left:4px solid var(--signs-accent)}.qd-trainer-summary .qd-trainer-limit{padding:clamp(16px,2.4vw,22px);border-radius:18px;background:var(--signs-soft)}.qd-trainer-limit :is(h2,h3){margin:0;font-family:var(--signs-display);font-size:clamp(21px,2.2vw,27px);font-weight:600;letter-spacing:-.02em;line-height:1.2}.qd-trainer-limit h3{font-size:clamp(19px,1.9vw,23px)}.qd-trainer-limit :is(h2,h3):focus{outline:none}.qd-trainer-limit :is(h2,h3):focus-visible{outline:3px solid var(--signs-accent);outline-offset:4px}.qd-trainer-limit-text{max-width:68ch;margin:0;color:var(--signs-muted);font-size:15.5px;line-height:1.55}.qd-trainer-limit-due{display:grid;gap:10px;margin-top:4px}.qd-trainer-limit-due>p{margin:0;font-size:14.5px}.qd-trainer-limit-due ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:0;padding:0;list-style:none}.qd-trainer-limit-due li{display:grid;justify-items:center;align-content:start;gap:6px;padding:10px 6px;border:1px solid var(--signs-line);border-radius:14px;background:var(--signs-soft);text-align:center}.qd-trainer-limit-due li span{font-size:12px;line-height:1.3}.qd-trainer-limit .qd-signs-actions{margin-top:6px}.qd-trainer-left{align-self:center}.qd-trainer-intro{display:grid;justify-items:start;gap:14px;padding:clamp(20px,3vw,32px);border:1px solid var(--signs-line);border-radius:24px;background:radial-gradient(circle at 92% 12%,color-mix(in srgb,var(--signs-accent) 12%,transparent),transparent 42%),var(--signs-surface)}.qd-trainer-intro-sign .qd-sign-img{width:120px;filter:drop-shadow(0 10px 18px rgba(29,41,34,.25));animation:qd-trainer-float 3.2s ease-in-out infinite}@keyframes qd-trainer-float{50%{transform:translateY(-6px) rotate(-2deg)}}.qd-trainer-intro p{max-width:70ch;margin:0;color:var(--signs-muted);font-size:16px;line-height:1.55}.qd-trainer-intro .qd-trainer-intro-lead{color:var(--signs-ink)}.qd-trainer-intro .qd-trainer-intro-meta{color:var(--signs-ink);font-size:14px;font-weight:600}.qd-signs .qd-signs-button.is-big{min-height:52px;padding:12px 26px;font-size:17px}.qd-pace{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin:2px 0 0;padding:0;border:0}.qd-pace,.qd-pace-card{display:grid;min-width:0}.qd-pace-card{position:relative;align-content:start;gap:9px;padding:12px 14px 16px;border:2px solid var(--signs-line);border-radius:20px;background:var(--signs-surface);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.qd-pace-card:hover{border-color:color-mix(in srgb,var(--signs-ink) 30%,var(--signs-line))}.qd-pace-card:has(input:checked){border-color:var(--signs-ink);box-shadow:0 16px 34px -24px rgba(29,41,34,.55)}.qd-pace-card:has(input:focus-visible){outline:3px solid var(--signs-accent);outline-offset:3px}.qd-pace-card input{position:absolute;top:20px;right:20px;z-index:2;width:22px;height:22px;margin:0;accent-color:var(--signs-ink)}.qd-pace-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding-right:4px;font-family:var(--signs-display);font-size:19px;font-weight:650;letter-spacing:-.01em}.qd-pace-name small{padding:2px 9px;border-radius:999px;background:var(--signs-soft);color:var(--signs-muted);font-family:var(--font-source-sans),Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:0}.qd-pace-how{color:var(--signs-ink);font-size:14px;line-height:1.5}.qd-pace-line{color:var(--signs-muted);font-size:13px;line-height:1.5}.qd-pace-line b{color:var(--signs-ink);font-weight:650}.qd-trainer-play{display:grid;gap:12px}.qd-trainer-bar{display:flex;align-items:center;gap:10px 14px;min-height:44px}.qd-trainer-back{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;min-height:40px;padding:0 14px 0 10px;border:1px solid var(--signs-line);border-radius:999px;background:var(--signs-surface);color:var(--signs-ink);font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap}.qd-trainer-back:hover{border-color:var(--signs-ink)}.qd-signs .qd-trainer-title{flex:0 0 auto;margin:0;font-family:var(--signs-display);font-size:18px;font-weight:650;letter-spacing:-.02em;white-space:nowrap}.qd-trainer-progress{display:flex;flex:1 1 120px;gap:4px;min-width:60px}.qd-trainer-progress i{flex:1;height:6px;border-radius:3px;background:var(--signs-l0)}.qd-trainer-progress i.is-current{background:var(--signs-accent);animation:qd-trainer-pulse 1.4s ease-in-out infinite}.qd-trainer-progress i.is-right{background:var(--signs-l3)}.qd-trainer-progress i.is-wrong{background:color-mix(in srgb,var(--signs-accent) 70%,var(--signs-l0))}@keyframes qd-trainer-pulse{50%{opacity:.45}}.qd-trainer-score,.qd-trainer-streak{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;min-height:32px;padding:4px 12px;border-radius:999px;background:var(--signs-soft);font-family:var(--signs-display);font-weight:700;font-variant-numeric:tabular-nums}.qd-trainer-streak{background:var(--signs-accent-soft);color:var(--signs-accent);animation:qd-trainer-pop .35s cubic-bezier(.2,.8,.2,1.4)}@keyframes qd-trainer-pop{0%{transform:scale(.6)}}.qd-trainer-icon{display:grid;flex:0 0 auto;place-items:center;width:40px;height:40px;border:1px solid var(--signs-line);border-radius:50%;background:var(--signs-surface);color:var(--signs-ink);cursor:pointer}.qd-trainer-board{display:grid;gap:12px}.qd-trainer-scene{position:relative;min-width:0;height:clamp(200px,34dvh,340px)}.qd-trainer-scene .qd-road{height:100%}.qd-trainer-side{display:grid;align-content:start;gap:12px;min-width:0}.qd-trainer-prompt{margin:0;font-family:var(--signs-display);font-size:clamp(21px,2.4vw,27px);font-weight:600;letter-spacing:-.02em;outline:none}.qd-trainer-prompt q{color:var(--signs-accent);quotes:"“" "”"}.qd-trainer-result{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:40px;margin:0;color:var(--signs-good);font-family:var(--signs-display);font-size:clamp(21px,2.4vw,27px);font-weight:650;letter-spacing:-.02em;animation:qd-trainer-arrive .25s cubic-bezier(.2,.8,.2,1)}.qd-trainer-result span{padding:3px 11px;border-radius:999px;background:var(--signs-soft);color:var(--signs-ink);font-size:15px;font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums}.qd-trainer-result .qd-trainer-result-streak{display:inline-flex;align-items:center;gap:4px;background:var(--signs-accent-soft);color:var(--signs-accent)}.qd-trainer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.qd-trainer-option,.qd-trainer-pair{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:11px 16px;border:1.5px solid var(--signs-line);border-radius:16px;background:var(--signs-surface);color:var(--signs-ink);font:inherit;font-size:16px;font-weight:600;line-height:1.3;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.qd-trainer-option:hover:not(:disabled),.qd-trainer-pair:hover:not(:disabled){border-color:var(--signs-ink);transform:translateY(-1px)}.qd-trainer-back:focus-visible,.qd-trainer-icon:focus-visible,.qd-trainer-option:focus-visible,.qd-trainer-pair:focus-visible{outline:3px solid var(--signs-accent);outline-offset:2px}.qd-trainer-option:disabled,.qd-trainer-pair:disabled{cursor:default}.qd-trainer-option span:not(.qd-trainer-key){flex:1}.qd-trainer-key{display:grid;flex:0 0 auto;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--signs-soft);color:var(--signs-muted);font-family:var(--signs-display);font-size:14px;font-weight:700}:is(.qd-trainer-option,.qd-trainer-pair).is-right{border-color:var(--signs-l3);background:color-mix(in srgb,var(--signs-l2) 18%,var(--signs-surface));animation:qd-trainer-pop .3s cubic-bezier(.2,.8,.2,1.4)}.qd-signs :is(.qd-trainer-option,.qd-trainer-pair):disabled{opacity:1}.qd-signs :is(.qd-trainer-option,.qd-trainer-pair).is-dim:disabled{opacity:.45}.qd-trainer-pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}.qd-trainer-pairs[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.qd-trainer-pair{flex-direction:column;justify-content:center;min-height:clamp(150px,28dvh,230px);padding:18px 12px;text-align:center}.qd-trainer-pair .qd-trainer-key{position:absolute;top:10px;left:10px}.qd-trainer-pair .qd-sign-img{width:min(150px,100%,18dvh)}.qd-trainer-pair-name{font-size:14px}.qd-trainer-card{display:grid;place-items:center;height:100%;border:1px solid var(--signs-line);border-radius:24px;background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--signs-l1) 22%,transparent),transparent 62%),var(--signs-surface)}.qd-trainer-card .qd-sign-img{width:min(190px,60%,26dvh);filter:drop-shadow(0 14px 24px rgba(29,41,34,.22));animation:qd-trainer-arrive .45s cubic-bezier(.2,.8,.2,1.2)}@keyframes qd-trainer-arrive{0%{opacity:0;transform:translateY(14px) scale(.85)}}.qd-trainer-card.is-right .qd-sign-img{filter:drop-shadow(0 0 22px color-mix(in srgb,var(--signs-l2) 85%,transparent))}.qd-trainer-help{margin:0;color:var(--signs-muted);font-size:12px}.qd-trainer-feedback{display:grid;align-content:start;gap:12px;min-width:0;padding:18px;border:1px solid color-mix(in srgb,var(--signs-accent) 26%,var(--signs-line));border-radius:22px;background:color-mix(in srgb,var(--signs-accent-soft) 55%,var(--signs-surface));animation:qd-trainer-arrive .28s cubic-bezier(.2,.8,.2,1)}.qd-trainer-feedback-head{display:flex;align-items:flex-start;gap:12px}.qd-trainer-feedback-icon{display:grid;flex:0 0 auto;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--signs-surface);color:var(--signs-accent)}.qd-trainer-feedback-head h2{margin:0;font-family:var(--signs-display);font-size:21px;font-weight:600;letter-spacing:-.02em;outline:none}.qd-trainer-feedback-head p{margin:3px 0 0;color:var(--signs-muted);font-size:13px;line-height:1.45}.qd-trainer-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.qd-trainer-compare figure{display:grid;justify-items:center;align-content:start;gap:6px;min-width:0;margin:0;padding:10px 8px 12px;border:1.5px solid var(--signs-line);border-radius:16px;background:var(--signs-surface);text-align:center}.qd-trainer-compare figcaption{display:inline-flex;align-items:center;gap:4px;color:var(--signs-muted);font-size:12px;font-weight:700}.qd-trainer-compare .is-right{border-color:color-mix(in srgb,var(--signs-l3) 70%,var(--signs-line))}.qd-trainer-compare .is-right figcaption{color:var(--signs-good)}.qd-trainer-compare .is-chosen figcaption{color:var(--signs-bad)}.qd-trainer-compare .qd-sign-img{width:clamp(64px,12dvh,96px)}.qd-trainer-compare figure>span{font-size:14px;font-weight:650;line-height:1.3}.qd-trainer-compare.is-single{grid-template-columns:minmax(0,1fr)}.qd-trainer-compare.is-single figure{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"art caption" "art name";justify-items:start;align-items:center;column-gap:14px;text-align:left}.qd-trainer-compare.is-single figcaption{grid-area:caption;align-self:end}.qd-trainer-compare.is-single .qd-sign-img{grid-area:art}.qd-trainer-compare.is-single figure>span{grid-area:name;align-self:start;font-size:16px}.qd-trainer-meaning{margin:0;font-size:15px;line-height:1.55}.qd-trainer-chip{display:inline-block;margin-right:4px;padding:1px 8px;border:1px solid var(--signs-line);border-radius:6px;background:var(--signs-surface);color:var(--signs-muted);font-size:12px;font-weight:700;vertical-align:1px}.qd-trainer-tip{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;border-left:3px solid var(--signs-accent);border-radius:0 12px 12px 0;background:var(--signs-surface);font-size:14px;line-height:1.45}.qd-trainer-tip svg{flex:0 0 auto;margin-top:2px;color:var(--signs-accent)}.qd-signs .qd-trainer-continue{justify-self:start}.qd-signs .qd-trainer-continue:focus-visible{outline:3px solid var(--signs-accent);outline-offset:3px}.qd-trainer-error{margin:0;color:var(--signs-bad);font-weight:600}.qd-trainer-summary{display:grid;gap:16px;padding:clamp(20px,3vw,32px);border:1px solid var(--signs-line);border-radius:24px;background:var(--signs-surface)}.qd-trainer-summary h2{margin:0;font-family:var(--signs-display);font-size:clamp(26px,3vw,34px);font-weight:600;letter-spacing:-.03em;outline:none}.qd-trainer-saved{display:grid;gap:10px;padding:14px 16px;border-radius:16px;background:color-mix(in srgb,var(--signs-l2) 12%,var(--signs-surface))}.qd-trainer-saved p{margin:0}.qd-trainer-changes{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.qd-trainer-changes li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:12px;background:var(--signs-surface);animation:qd-trainer-arrive .45s cubic-bezier(.2,.8,.2,1.2) both;animation-delay:calc(var(--i, 0) * 90ms)}.qd-trainer-changes li>span{display:grid;font-size:13px}.qd-trainer-changes small{color:var(--signs-muted)}.qd-trainer-level{color:var(--signs-ink);font-weight:700}.qd-trainer-level.is-dominada{color:var(--signs-good)}.qd-trainer-visitor{margin:0;padding:14px 16px;border-radius:16px;background:var(--signs-accent-soft);line-height:1.55}.qd-trainer-review{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:0;padding:0;list-style:none}.qd-trainer-review li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px 8px 8px;border:1px solid var(--signs-line);border-radius:14px}.qd-trainer-review li>span{display:grid;min-width:0;font-size:13px;line-height:1.35}.qd-trainer-review small{color:var(--signs-muted)}.qd-trainer-review li.is-right>svg{color:var(--signs-good)}.qd-trainer-review li.is-wrong>svg{color:var(--signs-bad)}@media (min-width:1100px){.qd-trainer-board.has-scene{--qd-board-h:clamp(320px,calc(100dvh - 230px),640px);grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);grid-template-rows:var(--qd-board-h);align-items:stretch}.qd-trainer-board.has-scene .qd-trainer-scene{height:var(--qd-board-h)}.qd-trainer-board.has-scene .qd-trainer-side{height:var(--qd-board-h);min-height:0;align-content:safe center;overflow:auto;overscroll-behavior:contain;padding:20px;border:1px solid var(--signs-line);border-radius:24px;background:var(--signs-surface)}.qd-trainer-board.has-scene .qd-trainer-side:has(>.qd-trainer-feedback){align-content:stretch;overflow:visible;padding:0;border:0;background:none}.qd-trainer-board.has-scene .qd-trainer-feedback{height:100%;min-height:0;align-content:safe center;overflow:auto;overscroll-behavior:contain;border-radius:24px}.qd-trainer-board.has-scene .qd-trainer-options{grid-template-columns:minmax(0,1fr)}}@media (max-width:1099px){.qd-trainer-feedback{position:fixed;right:0;bottom:0;left:0;z-index:60;max-height:74dvh;overflow:auto;overscroll-behavior:contain;padding:10px 18px calc(18px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:22px 22px 0 0;box-shadow:0 -22px 50px -28px rgba(15,22,18,.6);animation-name:qd-trainer-sheet-in}.qd-trainer-feedback:before{content:"";justify-self:center;width:40px;height:4px;border-radius:2px;background:var(--signs-line)}.qd-signs .qd-trainer-continue{justify-self:stretch;justify-content:center}}@keyframes qd-trainer-sheet-in{0%{transform:translateY(40px);opacity:0}}@media (max-width:760px){.qd-signs .qd-trainer-title,.qd-trainer-back span{display:none}.qd-trainer-back{padding:0 10px}}@media (max-width:560px){.qd-pace{grid-template-columns:minmax(0,1fr)}.qd-trainer-board,.qd-trainer-play{gap:10px}.qd-trainer-scene{height:clamp(190px,32dvh,300px)}.qd-trainer-side{gap:8px}.qd-trainer-prompt,.qd-trainer-result{font-size:20px}.qd-trainer-result{min-height:32px}.qd-trainer-options{grid-template-columns:minmax(0,1fr);gap:7px}.qd-trainer-option{min-height:48px;padding:8px 12px;font-size:15px}.qd-trainer-key{width:26px;height:26px}.qd-trainer-pairs[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.qd-trainer-pair{min-height:140px;padding:30px 6px 10px}.qd-trainer-feedback-head h2{font-size:19px}.qd-trainer-meaning{font-size:14px}}@media (hover:none) and (pointer:coarse){.qd-trainer-help{display:none}}@media (prefers-reduced-motion:reduce){.qd-trainer-card .qd-sign-img,.qd-trainer-changes li,.qd-trainer-feedback,.qd-trainer-intro-sign .qd-sign-img,.qd-trainer-progress i.is-current,.qd-trainer-result,.qd-trainer-streak,:is(.qd-trainer-option,.qd-trainer-pair).is-right{animation:none}.qd-pace-card,.qd-trainer-option,.qd-trainer-pair{transition:none}}