html,body{min-height:100vh}body{overflow-x:hidden;display:flex;flex-direction:column}body>header{flex:0 0 auto}body>main{flex:1 0 auto}body>.site-footer,body>footer{flex:0 0 auto;margin-top:0}.cq-page{max-width:1100px;margin:0 auto;padding:.8rem 1rem 1.2rem}.cq-breadcrumb{list-style:none;padding:0;margin:0 0 .5rem;display:flex;flex-wrap:wrap;font-size:.78rem;color:#3c3c3cb3}.cq-breadcrumb li:after{content:"›";margin:0 .4em;color:#78787899}.cq-breadcrumb li:last-child:after{content:""}.cq-breadcrumb a{color:inherit;text-decoration:none}.cq-breadcrumb a:hover{text-decoration:underline}.cq-banner{position:relative;margin:0 0 .9rem;min-height:120px;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;padding:.9rem 1rem;border:1px solid #d6deea}.cq-banner__bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2}.cq-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#000000a6,#00000040 60%,#0000001a);z-index:-1}.cq-banner__title{font-size:1.45rem;font-weight:800;color:#fff;letter-spacing:.04em;text-shadow:0 2px 6px rgba(0,0,0,.55);margin:0;line-height:1.2}.cq-banner__lead{font-size:.78rem;color:#ffffffeb;text-shadow:0 1px 4px rgba(0,0,0,.6);margin:.25rem 0 0;line-height:1.45}.cq-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.7rem;padding-bottom:.6rem;border-bottom:1px solid #e1e6ec}.cq-title{font-size:1.2rem;font-weight:800;margin:0;color:#1f3a5c}.cq-stats{display:flex;gap:.45rem;font-size:.85rem;flex-wrap:wrap}.cq-stats .cq-stat{padding:.18em .7em;background:#0000000d;font-weight:700;border-radius:3px}.cq-stat--correct{background:#4a9e5c2e;color:#2c6f3c}.cq-stat--wrong{background:#c0392b21;color:#9a2d24}.cq-stat--streak{background:linear-gradient(135deg,#f9731638,#ea580c26);color:#c2410c}.cq-stat--best{background:#7c3aed21;color:#6b21a8}.cq-progress{position:relative;display:flex;width:100%;height:14px;background:#eaf2fb;border:1px solid #d6deea;margin:0 0 .7rem;overflow:hidden}.cq-progress__fill{height:100%;width:0;transition:width .35s ease}.cq-progress__fill--correct{background:#4a9e5c}.cq-progress__fill--wrong{background:#d35a4d}.cq-progress__count{position:absolute;top:50%;right:.4em;transform:translateY(-50%);font-size:.62rem;font-weight:700;color:#1f3a5c;background:#ffffffd9;padding:0 .4em;line-height:1.4;pointer-events:none}.cq-prompt-row{text-align:center;padding:.7rem 1rem .8rem;background:linear-gradient(135deg,#1f4d801a,#1f4d800a);border:1px solid #d6deea;margin-bottom:.8rem}.cq-prompt-row.is-memorize{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0a);border-color:#f59e0b73}.cq-prompt-row.is-hint{background:linear-gradient(135deg,#4a9e5c1a,#4a9e5c0a);border-color:#4a9e5c73}.cq-prompt{font-size:.78rem;color:#464650bf;margin:0 0 .15rem;letter-spacing:.05em}.cq-prompt-sub{font-size:1rem;color:#1f3a5c;font-weight:700}.cq-prompt-sub:empty{display:none}.cq-map-wrap{position:relative;background:#f6f9fd;border:1px solid #e1e6ec;padding:10px}#cq-map{display:block;width:100%;height:auto;max-height:70vh;touch-action:none}#cq-map.is-pannable{cursor:grab}#cq-map.is-panning{cursor:grabbing}.cq-zoom{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:4px;z-index:5}.cq-zoom__btn{background:#ffffffeb;border:1px solid #c4cdd9;width:32px;height:32px;font-size:1.1rem;font-weight:800;color:#1f3a5c;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 3px #0000001f;touch-action:manipulation}.cq-zoom__btn:hover{background:#fff;border-color:#1f4d80}.cq-zoom__btn:active{transform:translateY(1px)}.cq-zoom__btn:disabled{opacity:.4;cursor:not-allowed}#cq-map path{fill:#eaf2fb;stroke:#5b7fa8;stroke-width:.4}.cq-pin{fill:#5b7fa8;stroke:#fff;stroke-width:1.2;transition:fill .18s,stroke .18s,r .18s}.cq-pin.is-hidden{display:none}.cq-pin.is-active{fill:#f59e0b;stroke:#fff;stroke-width:1.8;r:9!important;animation:cq-pulse 1.1s ease-in-out infinite}@keyframes cq-pulse{0%{opacity:1}50%{opacity:.55}to{opacity:1}}.cq-pin.is-correct{fill:#4a9e5c;stroke:#fff;stroke-width:1.5;animation:none}.cq-pin.is-wrong{fill:#f59e0b;stroke:#fff;stroke-width:1.8;animation:cq-pulse 1s ease-in-out infinite}.cq-pin.is-wrong-pick{fill:#d35a4d;stroke:#fff;stroke-width:1.8;animation:none;r:8!important}.cq-pin.is-done{fill:#b6c1cf;stroke:#fff}.cq-pin.is-preview{fill:#f59e0b;stroke:#fff;stroke-width:1.5;animation:none}.cq-line{fill:none;stroke:#5b7fa8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .18s,stroke-width .18s}.cq-line.is-hidden{display:none}.cq-line.is-active{stroke:#f59e0b;stroke-width:4;animation:cq-pulse 1.1s ease-in-out infinite}.cq-line.is-correct{stroke:#4a9e5c;stroke-width:3.5;animation:none}.cq-line.is-wrong{stroke:#f59e0b;stroke-width:4;animation:cq-pulse 1s ease-in-out infinite}.cq-line.is-wrong-pick{stroke:#d35a4d;stroke-width:4;animation:none}.cq-line.is-done{stroke:#b6c1cf;stroke-width:1.5;opacity:.6}.cq-line.is-preview{stroke:#f59e0b;stroke-width:4;animation:none}.cq-map-wrap.is-memorize .cq-pin,.cq-map-wrap.is-memorize .cq-line{cursor:pointer}.cq-choices{display:none;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.55rem;margin-top:.7rem;padding:.75rem;background:linear-gradient(135deg,#4a9e5c1a,#4a9e5c08);border:1px solid rgba(74,158,92,.35)}.cq-choices.is-active{display:grid}.cq-choices__label{grid-column:1 / -1;font-size:.78rem;font-weight:700;color:#2c6f3c;letter-spacing:.03em;margin:0}.cq-choice{background:#fff;border:2px solid #a8d2b1;color:#1f3a5c;font-weight:700;font-size:1rem;padding:.85rem .7rem;cursor:pointer;text-align:center;transition:background .12s,border-color .12s,transform .1s,box-shadow .12s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1em;line-height:1.25;min-height:56px;box-shadow:0 1px 2px #0000000a;touch-action:manipulation}.cq-choice:hover{background:#eff7f1;border-color:#4a9e5c}.cq-choice:active{transform:translateY(1px)}.cq-choice__kana{font-size:.7rem;color:#6b7a8d}.cq-choice__name{font-size:1rem;font-weight:800}.cq-choice__sub{font-size:.72rem;font-weight:500;color:#6b7a8d}.cq-choice.is-correct{background:#4a9e5c;color:#fff;border-color:#2c6f3c;cursor:default}.cq-choice.is-wrong{background:#d35a4d;color:#fff;border-color:#9a2d24;animation:cq-shake .35s ease-in-out}.cq-choice.is-reveal{background:#ffd082;color:#7a4f10;border-color:#c97a18;animation:cq-reveal-flash .7s ease-in-out}.cq-choice.is-correct .cq-choice__sub,.cq-choice.is-correct .cq-choice__kana,.cq-choice.is-wrong .cq-choice__sub,.cq-choice.is-wrong .cq-choice__kana{color:#ffffffd9}.cq-choice.is-reveal .cq-choice__sub,.cq-choice.is-reveal .cq-choice__kana{color:#7a4f10d1}.cq-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem;margin-top:.9rem}.cq-cards.is-hint{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.3rem;opacity:.95}.cq-cards.is-hint .cq-card{font-size:.78rem;padding:.3rem .45rem .35rem}.cq-cards.is-hint .cq-card__name{font-size:.8rem}.cq-cards.is-hint .cq-card__sub{font-size:.58rem}.cq-card{background:#fff;border:1px solid #d6deea;color:#1f3a5c;font-weight:600;font-size:.9rem;padding:.55rem .6rem .6rem;cursor:pointer;text-align:center;transition:background .12s,border-color .12s,transform .1s,opacity .2s;display:flex;flex-direction:column;align-items:center;gap:.05em;line-height:1.25;min-height:44px;touch-action:manipulation}.cq-card.is-hidden{display:none}.cq-card__kana{font-size:.6rem;color:#8a96a8}.cq-card__name{font-size:.9rem;font-weight:700}.cq-card__sub{font-size:.62rem;font-weight:400;color:#6b7a8d;letter-spacing:.01em}.cq-card:hover{background:#eef3f9;border-color:#1f4d80}.cq-card:active{transform:translateY(1px)}.cq-card.is-correct{background:#4a9e5c;color:#fff;border-color:#2c6f3c;cursor:default}.cq-card.is-wrong{background:#d35a4d;color:#fff;border-color:#9a2d24;animation:cq-shake .35s ease-in-out}.cq-card.is-done{background:#f3f5f8;color:#9ca8b8;border-color:#e1e6ec;pointer-events:none}.cq-card.is-reveal{background:#ffd082;color:#7a4f10;border-color:#c97a18;animation:cq-reveal-flash .7s ease-in-out}.cq-card.is-preview{background:#fff4dc;border-color:#c89f3d;color:#92670f}.cq-card.is-candidate{border:2px solid #4a9e5c;box-shadow:0 0 0 1px #4a9e5c40}.cq-card.is-correct .cq-card__sub,.cq-card.is-correct .cq-card__kana,.cq-card.is-wrong .cq-card__sub,.cq-card.is-wrong .cq-card__kana{color:#ffffffd1}.cq-card.is-reveal .cq-card__sub,.cq-card.is-reveal .cq-card__kana{color:#7a4f10d1}.cq-card.is-done .cq-card__sub,.cq-card.is-done .cq-card__kana{color:#b6c1cf}@keyframes cq-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes cq-reveal-flash{0%{background:#ffd082}50%{background:#ffba50}to{background:#ffd082}}.cq-actions{display:flex;gap:.5rem;margin-top:.7rem;justify-content:center;flex-wrap:wrap}.cq-btn{background:#fff;color:#1f3a5c;border:1px solid #d6deea;font-size:.85rem;font-weight:700;padding:.45em 1.1em;cursor:pointer;transition:background .12s,border-color .12s}.cq-btn:hover{background:#eef3f9;border-color:#1f4d80}.cq-btn--primary{background:#1f4d80;color:#fff;border-color:#1f4d80}.cq-btn--primary:hover{background:#163a63}.cq-btn--memorize{border-color:#d6b878;color:#92670f}.cq-btn--memorize:hover{background:#fff4dc;border-color:#c89f3d}.cq-btn--memorize.is-active{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#d97706}.cq-btn--hint{border-color:#a8d2b1;color:#2c6f3c}.cq-btn--hint:hover{background:#eff7f1;border-color:#4a9e5c}.cq-btn--hint.is-active{background:linear-gradient(135deg,#4a9e5c,#2c6f3c);color:#fff;border-color:#2c6f3c}.cq-summary{text-align:center;padding:1rem 1rem 1.2rem;background:#fff8e6;border:1px solid #ffd082;margin-top:.8rem}.cq-summary[hidden]{display:none}.cq-summary__title{font-size:1.3rem;font-weight:800;color:#c97a18;margin:0 0 .4rem}.cq-summary__line{font-size:.95rem;margin:.15rem 0;color:#7a4f10}.cq-summary__line strong{color:#1f3a5c;font-size:1.1em}.cq-content{margin-top:1.6rem;padding-top:1rem;border-top:1px dashed #e1e6ec;font-size:.82rem;color:#4a5568;line-height:1.55}.cq-content__title{font-size:.95rem;font-weight:700;color:#1f3a5c;margin:0 0 .5rem}.cq-content__desc{color:#6b7a8d;margin:0 0 1rem;font-size:.78rem;line-height:1.7}.cq-feature-table{width:100%;border-collapse:collapse;font-size:.78rem}.cq-feature-table th,.cq-feature-table td{padding:.3em .55em;text-align:left;border-bottom:1px solid #eaf0f6}.cq-feature-table th{font-weight:700;color:#1f3a5c;background:#f6f9fd;font-size:.72rem}.cq-feature-table td:first-child{font-weight:600;color:#1f3a5c}.cq-disclaimer{margin-top:1.4rem;padding:.6rem .8rem;background:#f6f9fd;border-left:3px solid #c4cdd9;font-size:.72rem;color:#6b7a8d;line-height:1.6}@media(max-width:700px){.cq-page{padding:.6rem .6rem 1rem}.cq-title{font-size:1.05rem}.cq-stats{font-size:.78rem;gap:.3rem}.cq-choices{padding:.6rem;gap:.5rem;grid-template-columns:repeat(2,1fr)}.cq-choice{min-height:60px;font-size:1rem;padding:.75rem .5rem}.cq-choice__name{font-size:.95rem}.cq-cards{gap:.35rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.cq-cards.is-hint{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.25rem}.cq-card{min-height:46px;padding:.5rem .45rem}.cq-btn{padding:.55em 1em;font-size:.88rem}#cq-map{max-height:55vh}}
