:root{--bg:#eef3ee;--paper:#fdfdfa;--rule:#6aa893;--rule-soft:#c5ddd3;--ink:#1c2a4a;--muted:#566475;--mark:#ffe36e;--mark-soft:#fff5c2;--red:#d63c2c;--red-soft:#fde3df;--on-ink:#fdfdfa;--ui:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;--hand:"Klee One", "UD Digi Kyokasho N-R", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;--font-kyokasho:"UD デジタル 教科書体 NP", "UD Digi Kyokasho NP", "UD デジタル 教科書体 NK", "UD Digi Kyokasho NK", "UD デジタル 教科書体 N", "UD Digi Kyokasho N", "UD デジタル 教科書体 NP-R", "UD Digi Kyokasho NP-R", "UD デジタル 教科書体 NK-R", "UD Digi Kyokasho NK-R", "UD デジタル 教科書体 N-R", "UD Digi Kyokasho N-R", "游教科書体 横用", "YuKyokasho Yoko", "游教科書体", "YuKyokasho", "Toppan Bunkyu Kyokasho", "凸版文久教科書体", "Klee One", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14211c;--paper:#1d2f28;--rule:#4f8a76;--rule-soft:#2f4a40;--ink:#eef1e4;--muted:#a3b3a8;--mark:#8a7417;--mark-soft:#48431f;--red:#ff8d7d;--red-soft:#4d2721;--on-ink:#14211c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--ui);margin:0;font-size:1rem;font-weight:500;line-height:1.7}h1,h2,p,ul{margin:0}ul{padding:0;list-style:none}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--ink);outline-offset:2px}[hidden]{display:none!important}.screen{display:none}.btn{border:1px solid var(--rule);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:2.5rem;padding:0 1.1rem;font-size:.9375rem;font-weight:700;display:inline-flex}.btn-primary{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.btn:disabled{opacity:.6;cursor:default}.hanamaru{fill:none;width:4.5rem;height:4.5rem;stroke:var(--red);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;flex:none}.home.active{display:grid}.home{grid-template-columns:minmax(0,1fr);gap:2.5rem;max-width:44rem;margin:0 auto;padding:2rem 1rem 4rem}.home-main{grid-template-columns:minmax(0,1fr);gap:2rem;display:grid}.home-side{grid-template-columns:minmax(0,1fr);align-content:start;gap:1.5rem;display:grid}@media (width>=64rem){.home{grid-template-columns:minmax(0,44rem) minmax(0,1fr);align-items:start;column-gap:2.5rem;max-width:68rem}.home-side{gap:1rem;max-height:calc(100dvh - 3rem);padding:1px;position:sticky;top:1.5rem;overflow-y:auto}.home-side .account,.home-side .howto{background:var(--paper);box-shadow:0 0 0 1px var(--rule);border-top:0;padding:1rem 1.1rem 1.1rem}.home-side .howto ul,.home-side .account-note{font-size:.875rem;line-height:1.65}}.home h2{font-size:1.125rem;font-weight:700}.hero{align-items:center;gap:clamp(.6rem,3vw,1.25rem);display:flex}.hero-text{flex:1;min-width:0}.lynx{cursor:pointer;background:0 0;border:0;flex:none;width:clamp(3.75rem,19vw,7.5rem);padding:0}.lynx svg{width:100%;height:auto;display:block}.lynx-fur{fill:#e9bd72}.lynx-light{fill:#fff6e1}.lynx-tuft{fill:#1c2a4a}.lynx-pink{fill:#f7b3a6}.lynx-nose{fill:#e0705f}.lynx-tongue{fill:#f28f86}@media (prefers-color-scheme:dark){.lynx-fur{fill:#c9984a}.lynx-tuft{fill:#8f6330}.lynx-light{fill:#f3e6c8}}.crest{--crest:clamp(2rem, 9vw, 2.75rem);grid-template-columns:repeat(2, var(--crest));grid-auto-rows:var(--crest);flex:none;gap:1px;display:grid}.crest-cell{background:var(--paper);box-shadow:0 0 0 1px var(--rule);font-family:var(--font-kyokasho);place-items:center;font-size:1.375rem;font-weight:600;line-height:1;display:grid}.crest-cross{background:var(--mark)}.brand{font-family:var(--hand);letter-spacing:.02em;font-size:clamp(1.75rem,8.5vw,2.5rem);font-weight:600;line-height:1.1}.lead{color:var(--muted);margin-top:.4rem;font-size:.9375rem;line-height:1.6}.stats{flex-wrap:wrap;gap:.75rem;margin-top:-1rem;display:flex}.points{background:var(--paper);box-shadow:0 0 0 1px var(--rule);align-items:baseline;gap:.6rem;padding:.5rem 1.25rem;display:flex}.zukan-open{text-align:left;cursor:pointer;border:0;flex-wrap:wrap;flex:14rem}.zukan-open:after{content:"›";color:var(--muted);margin-left:auto;font-size:1.5rem;line-height:1}@media (hover:hover){.zukan-open:hover{background:var(--mark-soft)}}.zukan-meter{background:var(--rule-soft);flex:1 0 100%;order:1;height:.375rem}.zukan-meter span{background:var(--red);width:0;height:100%;display:block}.zukan-open-kanji{grid-template-columns:auto auto 1fr auto;align-items:center;column-gap:.6rem;padding-top:.6rem;padding-bottom:.6rem;display:grid}.zukan-open-kanji .points-label{grid-column:1/4}.zukan-open-kanji:after{grid-area:1/4/4;margin-left:0}.zukan-row{display:contents}.zukan-row .points-num{text-align:right;font-size:1.25rem}.zukan-row .zukan-meter{flex:none;order:0}.zukan-meter.is-kaki span{background:var(--ink)}.zukan-count-kind{color:var(--muted);font-size:.8125rem;font-weight:700}.points-label{color:var(--muted);font-size:.8125rem}.points-num{font-family:var(--hand);font-size:1.5rem;font-weight:600;line-height:1.2}.seg{box-shadow:0 0 0 1px var(--rule);background:var(--rule);gap:1px;margin-top:.6rem;display:grid}.grade-selector{grid-template-columns:repeat(7,1fr)}.count-selector{grid-template-columns:repeat(3,1fr)}@media (width<=34rem){.grade-selector{grid-template-columns:repeat(3,1fr)}.grade-selector .seg-option:first-child{grid-column:1/-1}}.seg-option{background:var(--paper);white-space:nowrap;cursor:pointer;border:0;min-height:2.75rem;padding:.4rem .25rem;font-weight:700}@media (hover:hover){.seg-option:hover:not([aria-pressed=true]),.option:hover:not(:disabled){background:var(--mark-soft)}}.seg-option[aria-pressed=true]{background:var(--ink);color:var(--on-ink)}.seg-option:focus-visible{outline-offset:-4px;outline-color:var(--red)}.mode-selection{gap:1rem;display:grid}.mode-card{background:var(--paper);box-shadow:0 0 0 1px var(--rule);border-left:.5rem solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:1.1rem 1.25rem 1.1rem 1.5rem;display:flex}.mode-text{flex:10rem}.mode-card h2{font-family:var(--hand);font-size:1.5rem;font-weight:600;line-height:1.4}.mode-text p{color:var(--muted);font-size:.9375rem}.mode-text .best{color:var(--red);font-size:.875rem;font-weight:700}.mode-option{flex:1 0 100%;margin-top:-.25rem}.order-toggle{background:var(--paper);min-height:2.25rem;box-shadow:0 0 0 1px var(--rule);color:var(--ink);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:.45rem;padding:0 .85rem 0 .5rem;font-size:.875rem;font-weight:700;display:inline-flex}.order-toggle-switch{background:var(--rule-soft);border-radius:999px;flex:none;width:2.1rem;height:1.2rem;transition:background .2s;position:relative}.order-toggle-switch:after{content:"";background:var(--paper);border-radius:50%;width:.9rem;height:.9rem;transition:transform .2s;position:absolute;top:.15rem;left:.15rem;box-shadow:0 1px 2px #00000040}.order-toggle[aria-pressed=true] .order-toggle-switch{background:var(--ink)}.order-toggle[aria-pressed=true] .order-toggle-switch:after{transform:translate(.9rem)}.order-toggle-state{min-width:2em;color:var(--muted);font-size:.75rem}.order-toggle[aria-pressed=true] .order-toggle-state{color:var(--red)}@media (prefers-reduced-motion:reduce){.order-toggle-switch,.order-toggle-switch:after{transition:none}}.start-btn{min-width:7rem;min-height:2.75rem}.howto{border-top:1px solid var(--rule-soft);padding-top:1rem}.howto summary{cursor:pointer;font-weight:700}.howto ul{color:var(--muted);max-width:38rem;margin-top:.5rem;padding-left:1.25rem;font-size:.9375rem;list-style:outside}.account{border-top:1px solid var(--rule-soft);padding-top:1rem}.account-body{justify-items:start;gap:.6rem;margin-top:.6rem;display:grid}.account-note{color:var(--muted);max-width:38rem;font-size:.9375rem}.account-state{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;display:flex}.account-status{color:var(--muted);font-size:.875rem}.account-status.is-offline,.account-error{color:var(--red);font-size:.875rem}.account-error:empty{display:none}.game.active{display:flex}.game{max-width:44rem;height:100dvh;padding:.75rem 1rem max(1rem, env(safe-area-inset-bottom));flex-direction:column;gap:.75rem;margin:0 auto}.bar{align-items:center;gap:.75rem;display:flex}.home-btn{background:var(--ink);min-height:2.5rem;color:var(--on-ink);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:.35rem;padding:0 1rem 0 .75rem;font-size:.9375rem;font-weight:700;display:inline-flex}.home-btn span{font-size:1.4em;line-height:1;transform:translateY(-.06em)}.header-left{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:baseline;gap:0 .6rem;min-width:0;line-height:1.4;display:flex}#question-counter{font-family:var(--hand);white-space:nowrap;font-size:1.125rem;font-weight:600}.badge{color:var(--muted);white-space:nowrap;font-size:.8125rem}#timer{background:var(--paper);width:2.75rem;height:2.75rem;box-shadow:0 0 0 1px var(--rule);font-family:var(--hand);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:1.375rem;font-weight:600;line-height:1;display:grid}#timer.warning{background:var(--red-soft);box-shadow:0 0 0 2px var(--red);color:var(--red);animation:.5s infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.progress-container{background:var(--rule-soft);flex:none;height:.375rem}#progress-bar{background:var(--ink);width:0%;height:100%;transition:width .3s}#question-area{flex:1 1 0;align-content:center;place-items:center;gap:.6rem;min-height:5rem;max-height:20rem;display:grid}#question{background:var(--paper);max-width:100%;box-shadow:0 0 0 1px var(--rule);font-family:var(--font-kyokasho);letter-spacing:.04em;text-align:center;padding:.4em .8em;font-size:clamp(2rem,min(11vw,9dvh),3.75rem);font-weight:600;line-height:1.3}#question.is-kanji{width:1.5em;height:1.5em;box-shadow:0 0 0 2px var(--rule);background:repeating-linear-gradient(to right, var(--rule-soft) 0 5px, transparent 5px 10px) center / 100% 1px no-repeat, repeating-linear-gradient(to bottom, var(--rule-soft) 0 5px, transparent 5px 10px) center / 1px 100% no-repeat, var(--paper);letter-spacing:0;place-items:center;padding:0;font-size:clamp(3.5rem,min(30vw,20dvh),8rem);line-height:1;display:grid}.options{flex:none;grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.option{background:var(--paper);min-height:clamp(3.25rem,11dvh,5.5rem);box-shadow:0 0 0 1px var(--rule);font-family:var(--font-kyokasho);letter-spacing:.02em;cursor:pointer;border:0;padding:.4rem .3rem;font-size:clamp(1.125rem,min(5.5vw,4.5dvh),1.75rem);font-weight:600;line-height:1.2;position:relative}.option.is-kanji{font-size:clamp(1.75rem,min(9vw,6.5dvh),2.75rem)}.option:active:not(:disabled){background:var(--mark)}.option:focus-visible{outline-offset:-4px;outline-color:var(--red)}.option:disabled{color:var(--muted);cursor:default}.option.correct{background:var(--mark-soft);color:var(--ink)}.option.incorrect{background:var(--red-soft);color:var(--ink)}.option.correct:after,.option.incorrect:after{content:"";aspect-ratio:1;pointer-events:none;height:82%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.option.correct:after{border:3px solid var(--red);border-radius:50%}.option.incorrect:after{background:linear-gradient(45deg, transparent calc(50% - 1.5px), var(--red) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px)), linear-gradient(-45deg, transparent calc(50% - 1.5px), var(--red) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px));opacity:.7}.build{flex:none;gap:1rem;display:grid}.build-slots{justify-content:center;justify-self:center;gap:.4rem;display:flex;position:relative}.slot{aspect-ratio:1;width:clamp(3rem,min(18vw,10dvh),4.5rem);box-shadow:0 0 0 2px var(--rule);background:repeating-linear-gradient(to right, var(--rule-soft) 0 4px, transparent 4px 8px) center / 100% 1px no-repeat, repeating-linear-gradient(to bottom, var(--rule-soft) 0 4px, transparent 4px 8px) center / 1px 100% no-repeat, var(--paper);color:var(--ink);font-family:var(--font-kyokasho);cursor:pointer;border:0;padding:0;font-size:clamp(2rem,min(12vw,6.5dvh),3rem);font-weight:600;line-height:1}.slot:disabled{cursor:default}.slot.is-next{box-shadow:0 0 0 3px var(--ink)}.slot:focus-visible{outline-offset:3px}.build-slots.correct:after,.build-slots.incorrect:after{content:"";pointer-events:none;position:absolute;inset:-.6rem -.9rem}.build-slots.correct:after{border:3px solid var(--red);border-radius:50%}.build-slots.incorrect .slot{background-color:var(--red-soft)}.build-slots.incorrect:after{background:linear-gradient(to top right, transparent calc(50% - 1.5px), var(--red) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px));opacity:.6;inset:-.3rem}.build-tiles{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}.tile{background:var(--paper);min-height:clamp(3rem,9dvh,4.5rem);box-shadow:0 0 0 1px var(--rule);color:var(--ink);font-family:var(--font-kyokasho);cursor:pointer;border:0;padding:0;font-size:clamp(1.75rem,min(9vw,6dvh),2.5rem);font-weight:600;line-height:1}@media (hover:hover){.tile:hover:not(:disabled){background:var(--mark-soft)}}.tile:active:not(:disabled){background:var(--mark)}.tile:focus-visible{outline-offset:-4px;outline-color:var(--red)}.tile.is-used{box-shadow:0 0 0 1px var(--rule-soft);color:#0000;background:0 0}.tile:disabled{cursor:default}#feedback-area{flex:none;place-content:center;justify-items:center;gap:.35rem;height:4.25rem;display:grid}.answer-note{max-width:100%;font-family:var(--font-kyokasho);text-align:center;font-size:1.0625rem;font-weight:600;line-height:1.3}.answer-note b{border-bottom:2px solid var(--red)}.answer-kanji{margin-right:.15em;font-size:1.25em}.answer-parts{color:var(--muted);font-family:var(--ui);margin-top:.15rem;font-size:.8125rem;font-weight:500;line-height:1.35;display:block}.answer-parts span{white-space:nowrap;margin:0 .4em;display:inline-block}.is-kumitate #feedback-area{height:5.25rem}.is-kumitate #question-area{max-height:12rem}.is-kumitate #question{letter-spacing:.02em;white-space:nowrap;padding:.4em .5em;font-size:clamp(1.25rem,min(7vw,7dvh),3rem)}.is-tegaki #question-area{flex:none;min-height:0;max-height:none}.is-tegaki #question{letter-spacing:.02em;white-space:nowrap;padding:.35em .7em;font-size:clamp(1.375rem,min(7.5vw,5.5dvh),2.25rem)}.phrase-reading{border-bottom:3px solid var(--red);margin:0 .05em}.tegaki{flex-direction:column;flex:1 1 0;align-items:center;gap:.6rem;min-height:0;display:flex}.tegaki-space{flex:1 1 0;align-self:stretch;place-items:center;min-height:8rem;display:grid}.tegaki-pad{box-shadow:0 0 0 2px var(--rule);background:repeating-linear-gradient(to right, var(--rule-soft) 0 6px, transparent 6px 12px) center / 100% 1px no-repeat, repeating-linear-gradient(to bottom, var(--rule-soft) 0 6px, transparent 6px 12px) center / 1px 100% no-repeat, var(--paper);touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.tegaki-canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.tegaki-canvas.is-locked{opacity:.35;cursor:default}.tegaki-model{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.tegaki-model polyline{fill:none;stroke:var(--red);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.tegaki-model text{fill:var(--red);font-family:var(--ui);paint-order:stroke;stroke:var(--paper);stroke-width:2px;font-size:7px;font-weight:700}.tegaki-model polyline.is-wrong-mark{stroke:var(--mark);stroke-width:11px;opacity:1}.tegaki-model text.is-wrong{font-size:9px}.tegaki-pad.correct:after{content:"";border:3px solid var(--red);pointer-events:none;border-radius:50%;position:absolute;inset:-.6rem}.tegaki-pad.incorrect{background-color:var(--red-soft)}.tegaki-actions{flex:none;justify-content:center;gap:.6rem;display:flex}.tegaki-credit{color:var(--muted);text-align:center;flex:none;font-size:.6875rem;line-height:1.3}.tegaki-credit a,.howto-credit a{color:inherit}.howto-credit{color:var(--muted);font-size:.8125rem}.is-tegaki #feedback-area{height:auto;min-height:4.25rem}.game.is-karuta{max-width:72rem}.game.is-karuta.is-battle{max-width:96rem}.is-karuta #question-area{flex:none;height:calc(3.9em + 2px);max-height:none;font-size:clamp(1rem,min(4.6vw,3.6dvh),1.5rem)}.is-karuta #question{letter-spacing:.02em;max-width:40rem;padding:.5em .9em;font-size:1em;line-height:1.45}.is-karuta #feedback-area{height:5.25rem}.karuta{flex-direction:column;flex:1 1 0;gap:.25rem;min-height:0;display:flex}.karuta-field{--rows:3;--card-w:clamp(3.5rem, 16vw, 4.25rem);--fade-l:1.75rem;--fade-r:1.75rem;grid-auto-flow:column;grid-template-rows:repeat(var(--rows), auto);grid-auto-columns:var(--card-w);overscroll-behavior:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;min-height:0;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);flex:1 1 0;place-content:center safe center;gap:.5rem;padding:.6rem .75rem;display:grid;overflow:auto}.karuta-field.is-tall{align-content:start}.karuta-field.is-start{--fade-l:0px}.karuta-field.is-end{--fade-r:0px}.karuta-scroll-hint{color:var(--muted);text-align:center;font-size:.75rem;display:none}.karuta.is-scrollable .karuta-scroll-hint{display:block}.karuta-card{width:var(--card-w);aspect-ratio:3/4;background:var(--paper);box-shadow:0 0 0 1px var(--rule), inset 0 0 0 3px var(--paper), inset 0 0 0 4px var(--rule-soft);color:var(--ink);font-family:var(--font-kyokasho);scroll-snap-align:center;cursor:pointer;border:0;border-radius:.25rem;place-items:center;padding:0;font-weight:600;line-height:1;display:grid;position:relative}.karuta-word{writing-mode:vertical-rl;text-orientation:upright;font-size:calc(var(--card-w) * .42);letter-spacing:.04em}.karuta-word.is-len-3{font-size:calc(var(--card-w) * .36)}.karuta-word.is-len-4{font-size:calc(var(--card-w) * .29)}@media (hover:hover){.karuta-card:hover:not(:disabled){background:var(--mark-soft)}}.karuta-card:active:not(:disabled){background:var(--mark)}.karuta-card:focus-visible{outline-offset:2px;outline-color:var(--red)}.karuta-card:disabled{cursor:default}.karuta-card.is-answer{background:var(--mark);box-shadow:0 0 0 3px var(--ink)}.karuta-card.is-correct{background:var(--mark-soft)}.karuta-card.is-wrong{background:var(--red-soft)}.karuta-card.is-correct:after,.karuta-card.is-wrong:after{content:"";aspect-ratio:1;pointer-events:none;width:92%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.karuta-card.is-correct:after{border:3px solid var(--red);border-radius:50%}.karuta-card.is-wrong:after{background:linear-gradient(45deg, transparent calc(50% - 1.5px), var(--red) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px)), linear-gradient(-45deg, transparent calc(50% - 1.5px), var(--red) calc(50% - 1.5px) calc(50% + 1.5px), transparent calc(50% + 1.5px));opacity:.7}.karuta-card.is-taken{box-shadow:0 0 0 1px var(--rule-soft);color:#0000;background:0 0}#feedback .combo{background:var(--mark);color:var(--ink);border-radius:999px;margin-left:.5em;padding:.15em .5em;font-size:.75em;animation:.35s ease-out both pop;display:inline-block}@keyframes pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}#feedback{font-family:var(--hand);letter-spacing:.05em;font-size:1.5rem;font-weight:600;line-height:1}#feedback.correct{color:var(--red)}#feedback.incorrect{color:var(--muted)}.result-screen.active{display:grid}.result-screen{place-items:center;min-height:100dvh;padding:1rem .75rem}.result-card{background:var(--paper);width:min(36rem,100%);box-shadow:0 0 0 1px var(--rule), 0 1.5rem 3rem #0000001f;gap:1rem;padding:1.5rem 1.25rem;display:grid}.result-head{align-items:center;gap:1rem;display:flex}.result-card h1{font-family:var(--hand);font-size:1.75rem;font-weight:600;line-height:1.3}.result-sub{color:var(--muted);font-size:.9375rem}.result-card .hanamaru polyline{stroke-dasharray:1;animation:1.6s ease-out .15s both draw}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.result-score{background:var(--mark-soft);box-shadow:0 0 0 1px var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding:.75rem 1rem;display:flex}#score{white-space:nowrap;font-weight:700}#score b{border-bottom:5px double var(--red);color:var(--red);font-family:var(--hand);margin:0 .15em 0 .3em;padding:0 .1em;font-size:clamp(2.5rem,12vw,3.25rem);font-weight:600;line-height:1.15;display:inline-block}.rank-badge{color:var(--red);font-family:var(--hand);letter-spacing:.08em;white-space:nowrap;border:2px solid;border-radius:.25rem;padding:.2rem .75rem;font-size:1.25rem;font-weight:600;line-height:1.4;animation:.35s ease-out .2s both stamp;transform:rotate(-4deg)}.rank-c,.rank-d{color:var(--muted)}@keyframes stamp{0%{opacity:0;transform:rotate(-4deg)scale(1.6)}to{opacity:1;transform:rotate(-4deg)scale(1)}}#message{font-size:1.0625rem;font-weight:700}.best-note{color:var(--muted);font-size:.9375rem}.best-note.is-new{color:var(--red);font-family:var(--hand);font-size:1.25rem;font-weight:600;line-height:1.4}.combo-note{color:var(--red);font-weight:700}.result-section{border-top:1px solid var(--rule-soft);gap:.5rem;padding-top:1rem;display:grid}.result-section h2{font-size:1rem;font-weight:700}.new-kanji-list{flex-wrap:wrap;gap:.5rem;display:flex}.new-kanji-chip{background:var(--mark);width:2.75rem;height:2.75rem;box-shadow:0 0 0 1px var(--rule);color:var(--ink);font-family:var(--font-kyokasho);place-items:center;font-size:1.75rem;font-weight:600;line-height:1;animation:.35s ease-out both pop;display:grid}.missed-list{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.5rem;display:grid}.missed-item{background:var(--red-soft);box-shadow:0 0 0 1px var(--rule-soft);align-items:center;gap:.6rem;padding:.35rem .6rem;display:flex}.missed-kanji{font-family:var(--font-kyokasho);font-size:1.75rem;font-weight:600;line-height:1.2}.missed-item.is-word{flex-wrap:wrap;gap:0 .6rem}.missed-item .missed-meaning{flex-basis:100%}.missed-readings{min-width:0;font-size:.875rem;line-height:1.4}.result-actions{border-top:1px solid var(--rule-soft);flex-wrap:wrap;justify-content:flex-end;gap:.75rem;padding-top:1rem;display:flex}.result-actions .btn{min-height:2.75rem}.mode-actions{flex-wrap:wrap;gap:.5rem;display:flex}.battle-head{align-items:center;gap:.75rem;display:flex}.battle-head h1{font-size:1.375rem}.battle-view{gap:1rem;display:grid}.battle-view h2{font-size:1rem;font-weight:700}.battle-view .seg{margin-top:.4rem}.battle-field{gap:.4rem;font-weight:700;display:grid}.battle-input{border:1px solid var(--rule);background:var(--paper);min-width:0;min-height:2.75rem;color:var(--ink);font:inherit;border-radius:.5rem;padding:0 .75rem;font-size:1rem}.battle-create{gap:1rem;display:grid}.battle-main-btn{justify-self:start;min-width:9rem;min-height:2.75rem}.battle-join{border-top:1px solid var(--rule-soft);gap:.5rem;padding-top:1rem;display:grid}.battle-join-row,.battle-url-row{gap:.5rem;display:flex}.battle-join-row .battle-input,.battle-url-row .battle-input{flex:1}.battle-code-input{letter-spacing:.15em;max-width:10rem;font-weight:700}.battle-invite{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.battle-room-code{font-family:var(--hand);letter-spacing:.12em;font-size:2.75rem;font-weight:600;line-height:1.2}.battle-qr{width:8.5rem;height:8.5rem;box-shadow:0 0 0 1px var(--rule)}.battle-players{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.battle-player{box-shadow:0 0 0 1px var(--rule);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-weight:700;display:inline-flex}.battle-player.is-offline{color:var(--muted)}.battle-tag{color:var(--muted);font-size:.75rem}.battle-tag.is-me{color:var(--red)}.battle-message{color:var(--muted);font-size:.9375rem}.battle-message:empty{display:none}#battle-leave{justify-self:start}.battle-standings{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.battle-standing{box-shadow:0 0 0 1px var(--rule-soft);grid-template-columns:2.75rem 1fr auto auto;align-items:baseline;gap:.75rem;padding:.5rem .75rem;display:grid}.battle-standing.is-me{background:var(--mark-soft)}.battle-standing.is-offline{color:var(--muted)}.battle-rank{font-family:var(--hand);font-size:1.25rem;font-weight:600}.battle-standing-name{overflow-wrap:anywhere;min-width:0;font-weight:700}.battle-standing-cards{font-weight:700}.battle-standing-faults{color:var(--muted);font-size:.8125rem}.battle-scores{flex-wrap:wrap;flex:none;gap:.35rem .5rem;display:flex}.game:not(.is-battle) .battle-scores{display:none}.battle-score{box-shadow:0 0 0 1px var(--rule-soft);border-radius:999px;align-items:baseline;gap:.35rem;padding:.1rem .6rem;font-size:.8125rem;line-height:1.6;display:inline-flex}.battle-score.is-me{box-shadow:0 0 0 2px var(--ink)}.battle-score.is-offline{color:var(--muted);text-decoration:line-through}.battle-score-name{text-overflow:ellipsis;white-space:nowrap;max-width:7em;overflow:hidden}.battle-score-num{font-size:1rem}.karuta-card.is-picked{box-shadow:0 0 0 3px var(--rule)}.is-karuta #question.is-countdown{font-family:var(--hand);font-size:2.5rem}.zukan{background:var(--paper);width:min(44rem,100% - 1.5rem);max-height:calc(100dvh - 2rem);color:var(--ink);box-shadow:0 0 0 1px var(--rule), 0 1.5rem 3rem #00000040;border:0;padding:0}.zukan[open]{flex-direction:column;display:flex}.zukan::backdrop{background:#00000073}.zukan-head{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.25rem 0;display:flex}.zukan-head h1{font-family:var(--hand);font-size:1.5rem;font-weight:600;line-height:1.3}.zukan-summary{color:var(--muted);font-size:.9375rem}.question-hint{max-width:100%;color:var(--muted);text-align:center;padding:0 .5rem;font-size:clamp(.875rem,4vw,1.0625rem);font-weight:700;line-height:1.5}.question-hint:before{content:"いみ";background:var(--mark);color:var(--ink);border-radius:999px;margin-right:.5em;padding:0 .5em;font-size:.8125em;display:inline-block}.zukan-detail-meaning,.missed-meaning{color:var(--muted);font-size:.8125rem;line-height:1.5;display:block}.zukan-detail{background:var(--mark-soft);min-height:2.75rem;box-shadow:0 0 0 1px var(--rule-soft);flex:none;margin:.75rem 1.25rem 0;padding:.4rem .75rem;font-size:.9375rem}.zukan-detail-kanji{font-family:var(--font-kyokasho);font-size:1.5rem;font-weight:600;line-height:1.2}.zukan-body{gap:1.25rem;padding:1rem 1.25rem 1.5rem;display:grid;overflow-y:auto}.zukan-grade h2{align-items:baseline;gap:.75rem;margin-bottom:.5rem;font-size:1rem;font-weight:700;display:flex}.zukan-grade-count{color:var(--muted);font-size:.875rem}.zukan-grade-count.is-complete{color:var(--red)}.zukan-grid{grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:1px;padding:1px;display:grid}.zukan-cell{aspect-ratio:1;background:var(--paper);box-shadow:0 0 0 1px var(--rule-soft);color:var(--rule-soft);font-family:var(--font-kyokasho);cursor:pointer;border:0;padding:0;font-size:1.375rem;font-weight:600;line-height:1}.zukan-cell.is-collected{background:var(--mark-soft);color:var(--ink)}.zukan-fold summary{cursor:pointer;align-items:baseline;gap:.75rem;font-weight:700;list-style:none;display:flex}.zukan-fold summary::-webkit-details-marker{display:none}.zukan-fold summary:before{content:"▸";color:var(--muted)}.zukan-fold[open] summary:before{content:"▾"}.zukan-fold[open] summary{margin-bottom:.5rem}.zukan-word-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr))}.zukan-cell.zukan-word{aspect-ratio:auto;padding:.35rem .25rem;font-size:1.125rem;line-height:1.3}.zukan-tabs{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.6fr);margin:.75rem 1.25rem 0}.zukan-tabs .seg-option{min-height:2.25rem;padding-left:.15rem;padding-right:.15rem;font-size:clamp(.75rem,3.6vw,.9375rem)}.new-word-chip{width:auto;padding:0 .5rem;font-size:1.375rem}.zukan-cell:focus-visible{outline-offset:-3px;outline-color:var(--red)}.kisekae-lynx{width:clamp(6rem,30vw,8.5rem);margin:.5rem auto 0}.kisekae-lynx svg,.reward-lynx svg,.kisekae-item svg{width:100%;height:auto;display:block}.kisekae-items{grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:.6rem;padding:1rem 1.25rem 1.5rem;display:grid;overflow-y:auto}.kisekae-item{background:var(--paper);box-shadow:0 0 0 1px var(--rule-soft);color:var(--muted);cursor:pointer;border:0;align-content:start;justify-items:center;gap:.2rem;padding:.4rem .25rem .35rem;display:grid}.kisekae-item svg{width:3.75rem}.kisekae-item.is-earned{box-shadow:0 0 0 1px var(--rule);color:var(--ink)}.kisekae-item.is-worn{background:var(--mark-soft);box-shadow:0 0 0 2px var(--ink)}.kisekae-item:focus-visible{outline-offset:-4px;outline-color:var(--red)}.kisekae-lock{aspect-ratio:124/148;width:3.75rem;font-family:var(--hand);color:var(--rule);place-items:center;font-size:2rem;font-weight:600;display:grid}.kisekae-name{text-align:center;font-size:.8125rem;font-weight:700;line-height:1.3}.reward{background:var(--mark-soft);box-shadow:0 0 0 1px var(--rule);align-items:center;gap:1rem;padding:.75rem 1rem;animation:.45s ease-out .3s both pop;display:flex}.reward-lynx{flex:none;width:5.5rem}.reward-text{justify-items:start;gap:.35rem;min-width:0;display:grid}.reward h2{color:var(--red);font-family:var(--hand);font-size:1.375rem;font-weight:600;line-height:1.3}.reward-list{font-size:.9375rem;font-weight:700;line-height:1.5}.hanamaru.hanamaru-grade{stroke-width:5px;align-self:center;width:2rem;height:2rem}.hanamaru-grade polyline{stroke-dasharray:1;animation:1.2s ease-out .1s both draw}.zukan-reward-hint{color:var(--muted);font-size:.75rem;font-weight:500}.zukan-reward-hint.is-got{color:var(--red);font-weight:700}@media (prefers-reduced-motion:reduce){.reward,.hanamaru-grade polyline,#timer.warning,.result-card .hanamaru polyline,.rank-badge,#feedback .combo,.new-kanji-chip{animation:none}#progress-bar{transition:none}}.practice-grades{grid-template-columns:repeat(6,1fr)}@media (width<=34rem){.practice-grades{grid-template-columns:repeat(3,1fr)}}.practice-grid .zukan-cell{font-size:1.5rem}@media (hover:hover){.practice-grid .zukan-cell:hover{background:var(--mark-soft)}}.practice-grid .zukan-cell:active{background:var(--mark)}.practice-counter{font-family:var(--hand);white-space:nowrap;font-size:1.125rem;font-weight:600}.practice-head{flex:none;justify-items:center;gap:.5rem;display:grid}.practice-phrase{background:var(--paper);box-shadow:0 0 0 1px var(--rule);font-family:var(--font-kyokasho);letter-spacing:.02em;white-space:nowrap;padding:.3em .7em;font-size:clamp(1.125rem,min(6vw,4.5dvh),1.75rem);font-weight:600;line-height:1.3}.practice-steps{gap:.4rem;margin:0;padding:0;font-size:.8125rem;font-weight:700;list-style:none;display:flex}.practice-steps li{box-shadow:0 0 0 1px var(--rule-soft);color:var(--muted);border-radius:999px;padding:.25em .8em}.practice-steps li.is-now{background:var(--ink);box-shadow:none;color:var(--on-ink)}.practice-steps li.is-done{background:var(--mark-soft);color:var(--ink)}.tegaki-guide{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.tegaki-pad .tegaki-canvas{position:relative}.tegaki-guide polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.tegaki-guide .guide-faint{stroke:var(--rule-soft);stroke-width:4px}.tegaki-guide .guide-now{stroke:var(--mark);stroke-width:9px}.tegaki-guide .guide-arrow{stroke:var(--red);stroke-width:1px;stroke-dasharray:2.5 2;opacity:.8}.tegaki-guide marker path,.tegaki-guide .guide-start{fill:var(--red)}.tegaki-guide .guide-number{fill:var(--red);font-family:var(--ui);paint-order:stroke;stroke:var(--paper);stroke-width:2px;font-size:8px;font-weight:700}.practice-feedback{flex:none;align-content:center;justify-items:center;gap:.35rem;min-height:4.25rem;display:grid}.practice-message{font-family:var(--hand);text-align:center;font-size:1.25rem;font-weight:600;line-height:1.2}.practice-message.correct{color:var(--red)}.practice-message.incorrect{color:var(--muted)}.answer-note.is-hidden{visibility:hidden}.practice-counts-open{flex:none;min-height:2.5rem;margin-left:auto;padding:0 1rem}.practice-counts-now{color:var(--muted);margin-top:-.5rem;font-size:.875rem}.zukan.practice-counts{width:min(24rem,100% - 1.5rem)}.practice-counts h1{font-family:var(--hand);font-size:1.375rem;font-weight:600}.practice-counts-body{gap:.75rem;padding-bottom:1.25rem;display:grid}.practice-counts-body .zukan-detail{margin-bottom:.25rem}.practice-count-row{grid-template-columns:1fr auto 3.5em auto;align-items:center;gap:.5rem;padding:0 1.25rem;display:grid}.practice-count-label{font-weight:700}.practice-count-step{width:2.75rem;min-height:2.75rem;padding:0;font-size:1.25rem;line-height:1}.practice-count-num{font-family:var(--hand);text-align:center;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.practice-steps b{font-variant-numeric:tabular-nums;margin-left:.3em}
