@import"https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@400;700&family=M+PLUS+1:wght@600;700&family=Noto+Serif+JP:wght@400;700&display=swap";:root{--mikudark: #038287;--mikupink: #de0076;--kaitoblack: #100258;--brightgrey: #eff7ff;--mikulight: #8ff8e5;--meikolight: #bfe9ff;--lukalight: #ffdee6;--meikomid: #61b6e4;--lightgrey: #bfdcff;--faultred: rgba(246, 107, 107, .7);--font-body: "LINE Seed JP", "Hiragino Sans", "Yu Gothic", sans-serif;--font-title: "M PLUS 1", var(--font-body);--font-kanji: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;font-family:var(--font-body);color:var(--kaitoblack);background:#fff;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit}#root{min-height:100vh}.app-shell{min-height:100vh;padding:32px 24px;background:#fff}.app-frame{max-width:880px;margin:0 auto}.panel{padding:0}.stack{display:grid;gap:24px}.center{text-align:center}h1,h2,h3,p{margin:0}h1{color:var(--mikudark);font-family:var(--font-title);font-size:clamp(1.75rem,6vw,2.6rem);font-weight:700;line-height:1.35}.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0,0,0,0);white-space:nowrap}h2{color:var(--mikudark);font-size:clamp(1.35rem,4vw,2rem);line-height:1.45}button{cursor:pointer}button:disabled{cursor:default}.eyebrow,.section-label{color:var(--mikudark);font-size:.95rem;font-weight:700;letter-spacing:.02em}.lead{margin-top:12px;max-width:34rem;color:var(--kaitoblack);font-size:1rem;line-height:1.8}.home-hero{display:grid;gap:10px;justify-items:center}.app-logo{display:block;width:min(70%,532px);height:auto;margin:-8px 0 -6px}.summary-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-grid.compact{margin-top:12px}.mode-summary-stack{display:grid;gap:12px}.mode-summary-panel{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(0,2.4fr) auto;gap:12px;align-items:center;background:var(--brightgrey);border-radius:22px;padding:16px}.summary-progress{display:grid;gap:6px}.summary-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.summary-progress-head span{color:var(--mikupink);font-size:1.15rem;font-weight:700}.summary-progress-track{overflow:hidden;height:8px;background:#dff1ff;border-radius:999px}.summary-progress-fill{height:100%;background:var(--mikudark);border-radius:999px}.summary-progress-count{color:#100258b8;font-size:.78rem;line-height:1.4}.filter-count{color:#100258b8;font-size:.82rem;font-weight:700}.summary-inline-grid{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.summary-inline-card{display:grid;gap:2px;min-height:60px;border:none;border-radius:12px;padding:16px 24px;color:var(--kaitoblack);text-align:left}.summary-inline-card strong{font-size:1.35rem;line-height:1}.summary-actions{display:flex;justify-content:flex-end}.summary-card{display:grid;gap:8px;position:relative;overflow:hidden;border:none;border-radius:18px;padding:18px;color:var(--kaitoblack);text-align:left}.summary-card span{display:inline-flex;gap:8px;align-items:center}.summary-card strong{font-size:2rem}.summary-card.mastery-bumped{animation:mastery-card-pop .82s cubic-bezier(.2,.86,.22,1.12)}.summary-card.mastery-bumped:after{content:"";position:absolute;top:-24%;right:-18%;bottom:-24%;left:-18%;background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.72) 47%,transparent 66%);transform:translate(-62%);animation:mastery-card-sheen .9s ease-out;pointer-events:none}.summary-card.mastery-bumped strong{animation:mastery-count-pop .72s cubic-bezier(.2,.86,.22,1.2)}.mastery-bump-label{display:inline-grid;place-items:center;min-width:2rem;padding:3px 8px;border-radius:999px;background:#fff;color:var(--mikudark);font-size:.78rem;font-style:normal;font-weight:800}.review-panel{display:grid;gap:12px;width:100%;text-align:left}.review-panel h3{color:var(--mikudark);font-size:1.1rem;line-height:1.4}.review-list{display:grid;gap:10px}.review-item{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;border-radius:16px;padding:14px;background:var(--brightgrey)}.review-item.correct{background:#e4fbf6}.review-item.wrong{background:#fff0d0}.review-result-mark{display:grid;place-items:center;width:42px;height:42px;font-size:1.35rem;font-weight:700;line-height:1}.review-item.correct .review-result-mark{color:var(--mikudark)}.review-item.wrong .review-result-mark{color:#d52c4b}.review-main{display:grid;gap:8px;min-width:0}.review-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.review-head strong{font-size:1.1rem;line-height:1.35}.review-number{color:#10025894;font-size:.85rem;font-weight:700}.review-clue,.review-status-change,.review-history{color:#100258ad;font-size:.82rem;line-height:1.55}.review-status-change{color:var(--mikupink);font-weight:700}.review-answer-row{display:flex;gap:8px 12px;flex-wrap:wrap;color:var(--kaitoblack);font-size:.9rem;font-weight:700}.status-unknown{background:var(--lukalight)}.status-weak{background:#ffe5a3}.status-learning{background:var(--meikolight)}.status-known{background:var(--mikulight)}.mode-picker,.progress-block{display:grid;gap:12px}.filter-select{width:100%;min-height:48px;border:1px solid rgba(97,182,228,.72);border-radius:16px;padding:0 44px 0 16px;background:linear-gradient(45deg,transparent 50%,var(--mikudark) 50%) right 20px center / 7px 7px no-repeat,linear-gradient(135deg,var(--mikudark) 50%,transparent 50%) right 14px center / 7px 7px no-repeat,#fff;color:var(--kaitoblack);font:inherit;font-weight:700;-webkit-appearance:none;-moz-appearance:none;appearance:none}.segmented{display:flex;gap:10px;flex-wrap:wrap}.segmented button,.ghost-button,.primary-button,.option-button,.text-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:16px;padding:14px 18px;font-weight:700;line-height:1;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,border-color .16s ease}.segmented button{min-width:116px;height:43px;background:#fff;border-color:var(--mikudark);color:var(--mikudark);font-size:.875rem}.segmented button.active{background:var(--mikudark);color:#fff}.actions{display:flex;gap:12px;flex-wrap:wrap}.streak-card{display:grid;gap:4px;padding:16px 18px;background:var(--brightgrey);border-radius:18px;color:var(--kaitoblack)}.streak-card strong{color:var(--mikudark);font-size:1rem;line-height:1.6}.streak-card span{color:#100258b8;font-size:.85rem;line-height:1.5}.account-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--aqua);border-radius:18px;color:var(--kaitoblack)}.account-card div{display:grid;gap:4px;min-width:0}.account-card strong{overflow-wrap:anywhere;color:var(--mikudark);font-size:1rem;line-height:1.45}.account-card span{color:#100258b8;font-size:.82rem;line-height:1.5}.account-card .account-error{color:#b00020}.primary-button{min-width:172px;background:var(--mikupink);color:#fff;font-size:1.25rem}.fun-button{position:relative;overflow:hidden;isolation:isolate;transform:translateZ(0);contain:paint;will-change:transform}.fun-button>*{position:relative;z-index:1}.fun-button:active:not(:disabled){transform:translateY(1px) scale(.99)}.button-burst{position:absolute;z-index:0;pointer-events:none;border-radius:999px;background:radial-gradient(circle,#ffffffc7,#8ff8e56b 46%,#ffdee600 72%);opacity:.72;transform:scale(0);will-change:transform,opacity;animation:button-burst-pop .46s ease-out forwards}.ghost-button{min-height:43px;background:#fff;border-color:var(--meikomid);color:var(--meikomid);font-size:.875rem}.ghost-button.small{padding:9px 14px;font-size:.9rem}.text-button{min-height:0;padding:8px;background:transparent;border:none;color:var(--mikudark);font-size:.75rem}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.list-stack{display:grid;gap:8px}.history-panel{display:grid;gap:14px;background:var(--brightgrey);border-radius:20px;padding:16px}.history-stack{display:grid;gap:10px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff;border:1px solid rgba(97,182,228,.24);border-radius:16px}.history-counts{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.history-back-row{display:flex;gap:12px;justify-content:flex-start;flex-wrap:wrap}.history-empty{color:#100258b8}.writing-beta-card{display:grid;gap:14px;padding:18px;background:var(--brightgrey);border-radius:20px}.writing-beta-card h2{margin-top:6px;color:var(--kaitoblack);font-size:1.35rem}.writing-beta-card p,.writing-check-panel p{color:#100258b8;line-height:1.7}.writing-beta-stats{display:flex;gap:8px;flex-wrap:wrap}.writing-beta-stats span{border-radius:999px;padding:6px 10px;background:#fff;color:var(--mikudark);font-size:.82rem;font-weight:700}.writing-screen{max-width:980px;margin:0 auto}.writing-controls{display:grid;gap:18px;padding:16px;background:var(--brightgrey);border-radius:20px}.writing-print-area{display:grid;gap:18px}.writing-print-page{min-height:760px;padding:28px;background:#fff;border:1px solid rgba(97,182,228,.28);border-radius:10px;box-shadow:0 4px 18px #32366314}.writing-question-page{display:grid;grid-template-columns:1fr;gap:24px}.writing-print-heading{display:grid;gap:10px;align-content:start;color:var(--kaitoblack)}.writing-print-heading h2{font-family:var(--font-title);font-size:1.5rem}.writing-print-heading p{color:#100258b8;font-size:.92rem}.writing-question-list{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.writing-print-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(16,2,88,.14);border-radius:8px;break-inside:avoid}.writing-number{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;background:var(--brightgrey);border-radius:999px;color:var(--mikudark);font-weight:700}.writing-sentence{display:flex;gap:.28em;align-items:center;flex-wrap:wrap;font-family:var(--font-kanji);font-size:1.1rem;line-height:1.7}.writing-blank{display:inline-block;flex:0 0 auto;width:min(9rem,42vw);height:2.2rem;border:2px solid rgba(16,2,88,.48);border-radius:6px;background:linear-gradient(#61b6e42e,#61b6e42e) center / 100% 1px no-repeat,#fff;vertical-align:middle}.writing-reading{color:#100258b8;font-size:.88rem;line-height:1.6}.writing-answer-page{display:grid;gap:18px}.writing-answer-list{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.writing-answer-item{display:grid;grid-template-columns:2rem 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(16,2,88,.12)}.writing-answer-item strong{font-family:var(--font-kanji);font-size:1.35rem}.writing-answer-item em{color:#100258b3;font-style:normal}.writing-check-panel{display:grid;gap:14px;padding:16px;background:var(--brightgrey);border-radius:20px}.writing-check-list{display:grid;gap:10px}.writing-check-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;background:#fff;border-radius:14px}.writing-check-row div:first-child{display:grid;gap:4px}.writing-check-row span{color:#100258b8;font-size:.86rem}.writing-check-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.writing-check-actions button{border:1px solid var(--meikomid);border-radius:999px;padding:8px 12px;background:#fff;color:var(--mikudark);font-size:.86rem;font-weight:700}.writing-check-actions button.active{background:var(--mikudark);color:#fff;border-color:var(--mikudark)}.divider{width:100%;height:1px;background:var(--lightgrey)}.quiz-exit-row{display:flex;justify-content:flex-start}.quiz-exit-row .ghost-button{width:auto}.list-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;background:#fff;border:1px solid rgba(97,182,228,.28);border-radius:12px;padding:10px}.list-card.word-list-card{grid-template-columns:minmax(92px,116px) minmax(0,1fr)}.kanji-mark,.kanji-stage{display:grid;place-items:center;min-height:52px;background:#fff;border:1px solid rgba(16,2,88,.1);border-radius:10px;box-shadow:none;color:var(--kaitoblack);font-weight:700}.kanji-mark{font-size:1.65rem}.kanji-mark.word-mark{padding:0 8px;font-size:.9rem;line-height:1.35;letter-spacing:.04em;text-align:center}.list-main{display:grid;gap:4px;min-width:0}.list-main p{display:-webkit-box;overflow:hidden;color:#100258b8;font-size:.86rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.reading-group-list{display:grid;gap:6px}.reading-group-row{display:grid;gap:3px;padding-top:6px;border-top:1px solid rgba(16,2,88,.08)}.reading-group-row:first-child{padding-top:0;border-top:none}.list-head strong{min-width:0;overflow-wrap:anywhere;line-height:1.35}.list-head,.meta-row,.feedback-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.meta-row{justify-content:flex-start;color:#100258ad;font-size:.78rem}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#ffffffd9;font-size:.76rem;font-weight:700}.badge.neutral{background:var(--lightgrey)}.badge.success{background:var(--mikulight)}.quiz-mode-label{color:var(--mikudark);font-size:1rem;font-weight:700}.progress-track{overflow:hidden;height:8px;background:#dff1ff;border-radius:999px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--meikomid),var(--mikudark));border-radius:999px}.question-card{display:grid;gap:16px;background:var(--brightgrey);border-radius:20px;padding:16px}.clue-block{display:grid;gap:14px;min-height:180px;align-content:center;padding:20px;background:#fff;border-radius:20px;box-shadow:0 4px 16px #32366314}.clue-label{color:var(--mikupink);font-size:.95rem;font-weight:700;text-align:center}.clue-text{color:var(--kaitoblack);font-size:clamp(1.25rem,4vw,1.8rem);font-weight:700;line-height:1.75;text-align:center}.kanji-stage{min-height:180px;font-family:var(--font-kanji);font-size:clamp(4rem,14vw,7rem);font-weight:700}.example{padding:0 4px;color:var(--kaitoblack);font-size:1rem;line-height:1.8;text-align:center}.example-highlight{color:var(--mikudark);font-weight:700}.options-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.option-button{min-height:43px;background:#fff;border-color:var(--mikudark);color:var(--mikudark);font-size:1.125rem;font-weight:700}.option-button.word-option{font-family:var(--font-kanji)}.option-button:disabled:not(.correct):not(.wrong){border-color:var(--lightgrey);color:var(--lightgrey)}.option-button.correct{background:var(--mikudark);border-color:var(--mikudark);color:#fff}.option-button.wrong{background:var(--faultred);border-color:transparent;color:#fff}.feedback{position:relative;overflow:hidden;min-height:108px;border-radius:20px;padding:18px;background:var(--brightgrey);color:var(--kaitoblack)}.feedback>*{position:relative;z-index:1}.feedback.visible.wrong{background:var(--lukalight)}.feedback.visible.correct{background:var(--mikulight);animation:correct-card-pop .62s cubic-bezier(.2,.86,.22,1.12)}.feedback.visible.correct:before{position:absolute;top:-35%;right:-35%;bottom:-35%;left:-35%;content:"";background:radial-gradient(circle at 20% 35%,rgba(255,255,255,.78) 0 3%,transparent 4%),radial-gradient(circle at 38% 72%,rgba(255,222,230,.78) 0 2.5%,transparent 3.5%),radial-gradient(circle at 67% 30%,rgba(255,255,255,.72) 0 2.8%,transparent 3.8%),radial-gradient(circle at 82% 64%,rgba(191,233,255,.82) 0 3%,transparent 4%),linear-gradient(115deg,transparent 35%,rgba(255,255,255,.44) 48%,transparent 61%);opacity:0;transform:translate(-14%,8%) scale(.96);animation:correct-sparkle-sweep .78s ease-out}.feedback.visible.correct .feedback-row strong{display:inline-block;color:var(--mikudark);animation:correct-text-pop .52s cubic-bezier(.2,.86,.22,1.25)}.feedback.visible.correct .badge.success{animation:success-badge-hop .64s ease-out .12s both}.segmented button:hover,.ghost-button:hover,.primary-button:hover,.option-button:hover:not(:disabled),.summary-inline-card:hover,.text-button:hover{transform:translateY(-1px)}@keyframes button-burst-pop{to{opacity:0;transform:scale(1.04)}}@keyframes correct-card-pop{0%{box-shadow:0 0 #03828700;transform:translateY(3px) scale(.97)}46%{box-shadow:0 12px 26px #0382872e;transform:translateY(-4px) scale(1.018)}to{box-shadow:0 0 #03828700;transform:translateY(0) scale(1)}}@keyframes correct-sparkle-sweep{0%{opacity:0;transform:translate(-14%,8%) scale(.96)}18%{opacity:1}58%{opacity:.74;transform:translate(2%,-4%) scale(1)}to{opacity:0;transform:translate(10%,-10%) scale(1.02)}}@keyframes correct-text-pop{0%{transform:translateY(4px) scale(.92)}62%{transform:translateY(-2px) scale(1.08)}to{transform:translateY(0) scale(1)}}@keyframes success-badge-hop{0%{transform:translateY(4px) scale(.92)}58%{transform:translateY(-3px) scale(1.05)}to{transform:translateY(0) scale(1)}}@keyframes mastery-card-pop{0%{box-shadow:0 0 #03828700;transform:translateY(3px) scale(.98)}45%{box-shadow:0 14px 28px #03828733;transform:translateY(-4px) scale(1.025)}to{box-shadow:0 0 #03828700;transform:translateY(0) scale(1)}}@keyframes mastery-card-sheen{0%{opacity:0;transform:translate(-62%)}24%{opacity:1}to{opacity:0;transform:translate(48%)}}@keyframes mastery-count-pop{0%{transform:scale(.92)}48%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.fun-button,.button-burst,.feedback.visible.correct,.feedback.visible.correct:before,.feedback.visible.correct .feedback-row strong,.feedback.visible.correct .badge.success,.summary-card.mastery-bumped,.summary-card.mastery-bumped:after,.summary-card.mastery-bumped strong{animation:none;transition:none}.button-burst{display:none}.fun-button:active:not(:disabled){transform:none}}@media (max-width: 720px){.app-shell{padding:28px 24px}.app-frame{max-width:390px}.app-logo{width:min(100%,390px)}.stack{gap:20px}.summary-grid,.options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-summary-panel{grid-template-columns:1fr}.summary-inline-grid{grid-template-columns:1fr 1fr}.summary-actions{justify-content:flex-end}.actions{display:grid}.home-actions{grid-template-columns:1fr 1fr}.home-actions .primary-button{grid-column:1 / -1}.account-card{display:grid}.primary-button,.ghost-button{width:100%}.home-actions .ghost-button,.quiz-exit-row .ghost-button{width:auto}.segmented{display:grid;grid-template-columns:1fr 1fr}.segmented button{min-width:0}.list-card{grid-template-columns:48px minmax(0,1fr)}.list-card.word-list-card{grid-template-columns:88px minmax(0,1fr)}.writing-check-row{grid-template-columns:1fr}.writing-check-actions{justify-content:flex-start}.writing-question-page{grid-template-columns:1fr;min-height:680px}.writing-question-list{grid-template-columns:1fr}.writing-print-item{grid-template-columns:auto minmax(0,1fr)}.writing-reading{grid-column:2}.writing-answer-list{grid-template-columns:1fr}.kanji-mark{min-height:72px}}@media print{@page{size:A4 portrait;margin:8mm}body{min-width:0;background:#fff}.app-shell{padding:0;background:#fff}.app-frame,.writing-screen{max-width:none;margin:0}.no-print{display:none!important}.writing-print-area{display:block}.writing-print-page{box-sizing:border-box;height:220mm;min-height:auto;padding:0;border:none;border-radius:0;box-shadow:none;break-after:page;page-break-after:always;overflow:hidden}.writing-print-page:last-child{page-break-after:auto}.writing-question-page{display:grid;grid-template-columns:1fr;grid-template-rows:auto 160mm;gap:2.5mm;break-inside:avoid;page-break-inside:avoid}.writing-question-list{display:grid;height:160mm;min-height:160mm;max-height:160mm;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:2.5mm;direction:rtl;break-inside:avoid;page-break-inside:avoid}.writing-print-item{display:grid;grid-template-columns:auto auto auto;gap:1.5mm;align-items:start;justify-content:center;min-width:0;min-height:0;padding:1.2mm;border-color:#888;direction:ltr;writing-mode:horizontal-tb}.writing-number{align-self:start;text-orientation:upright}.writing-sentence{display:block;writing-mode:vertical-rl;font-size:9.5pt;line-height:1.25}.writing-blank{width:10mm;height:18mm;margin-block:.8mm;border:1.2pt solid #333;border-radius:2mm;background:linear-gradient(90deg,transparent calc(50% - .3pt),#bbb calc(50% - .3pt),#bbb calc(50% + .3pt),transparent calc(50% + .3pt)),linear-gradient(transparent calc(50% - .3pt),#bbb calc(50% - .3pt),#bbb calc(50% + .3pt),transparent calc(50% + .3pt)),#fff}.writing-reading{writing-mode:vertical-rl;font-size:6.8pt}.writing-answer-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:4mm}}
