:root{color-scheme:light;--bg: #f5f8fd;--paper: #ffffff;--ink: #172033;--muted: #5d687c;--line: #dbe5f2;--blue: #1a73e8;--blue-dark: #1558b0;--green: #12805c;--yellow: #f7c948;--soft-blue: #e8f1ff;--soft-green: #e8f6ee;--radius: 8px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.8}a{color:inherit}img,svg{max-width:100%}.site-header{width:min(1120px,calc(100% - 28px));display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 auto;padding:18px 0}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:900;text-decoration:none}.brand img{border-radius:8px}.site-nav,.site-footer nav,.cta-actions{display:flex;flex-wrap:wrap;gap:10px}.site-nav{display:flex;justify-content:flex-end}.site-nav a,.site-footer a,.button-link{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px;background:var(--paper);color:var(--ink);font-weight:800;text-decoration:none}.button-link.primary{border-color:var(--blue);background:var(--blue);color:#fff}.button-link.secondary{border-color:#b8cff4;background:var(--soft-blue);color:var(--blue-dark)}.content-page{width:min(100% - 28px,1040px);margin:0 auto 48px}.hero-panel,.article-body,.kanji-card,.info-panel,.cta-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:0 10px 28px #17203312}.hero-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:22px;align-items:center;padding:clamp(22px,5vw,40px)}.hero-panel h1{margin:0;font-size:clamp(2rem,7vw,3.5rem);line-height:1.18;letter-spacing:0}.hero-panel p{margin:14px 0 0;color:var(--muted);font-weight:700}.eyebrow{margin:0 0 8px;color:var(--blue-dark);font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.hero-image{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#f8fbff}.hero-image img{width:100%;display:block}.article-body{max-width:780px;margin:22px auto 0;padding:clamp(20px,5vw,34px)}.article-body h2{margin:34px 0 12px;font-size:clamp(1.35rem,5vw,1.8rem);line-height:1.35}.article-body h2:first-child{margin-top:0}.article-body p,.article-body li{color:#2d3a4f;font-weight:600}.article-body ul,.article-body ol{padding-left:1.4em}.cta-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:18px;align-items:center;max-width:780px;margin:22px auto 0;padding:20px}.cta-panel h2{margin:0;font-size:1.35rem}.cta-panel p{margin:8px 0 0;color:var(--muted);font-weight:700}.cta-panel img{width:100%;border:1px solid var(--line);border-radius:var(--radius)}.article-page .hero-panel,.article-page .article-body,.article-page .blog-nav-panel,.article-page .blog-index-panel,.article-page .cta-panel,.blog-index-page .hero-panel,.blog-index-page .blog-index-panel,.blog-index-page .cta-panel{max-width:860px;margin-inline:auto}.article-page .article-body{max-width:860px}.article-page .hero-panel,.blog-index-page .hero-panel{grid-template-columns:minmax(0,1fr) minmax(200px,280px)}.grade-list-page .hero-panel{grid-template-columns:1fr}.grade-switch-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.grade-switch-links .button-link{min-width:104px}.kanji-grade-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}.kanji-grade-card{min-height:150px;display:grid;align-content:start;gap:8px;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:var(--paper);color:var(--ink);text-decoration:none;box-shadow:0 10px 28px #17203312}.kanji-grade-card span{color:var(--blue-dark);font-size:.92rem;font-weight:900}.kanji-grade-card strong{font-size:1.35rem;line-height:1.35}.kanji-grade-card p{margin:0;color:var(--muted);font-weight:700}.kanji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:10px;margin-top:22px}.kanji-tile{position:relative;min-height:92px;aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:8px;background:var(--paper);color:var(--ink);overflow:hidden;text-decoration:none}.kanji-tile[href]{border-color:#b8cff4;background:var(--soft-blue)}.kanji-tile-number{position:absolute;top:0;left:0;z-index:1;min-width:28px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-right:1px solid #c7d7f0;border-bottom:1px solid #c7d7f0;border-radius:0 0 7px;background:#ffffffeb;color:var(--muted);font-size:.76rem;font-weight:900;line-height:1}.kanji-tile-glyph{width:100%;height:100%;display:grid;place-items:center}.kanji-tile-svg{width:78%;height:78%;display:block}.kanji-tile-svg svg{width:100%;height:100%;display:block;overflow:visible}.kanji-tile-svg path{fill:none!important;stroke:#111827!important;stroke-width:4.2!important;stroke-linecap:round!important;stroke-linejoin:round!important}.kanji-tile-svg text{display:none}.kanji-static-fallback{color:var(--ink);font-size:2rem;font-weight:900}.kanji-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:18px;margin-top:22px}.kanji-card{display:grid;place-items:center;min-height:320px;padding:24px}.kanji-glyph{font-size:clamp(6rem,34vw,11rem);font-weight:900;line-height:1}.info-panel{padding:20px}.info-list{display:grid;gap:10px;margin:0}.info-list div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding-bottom:10px;border-bottom:1px solid #edf2f8}.info-list dt{color:var(--muted);font-weight:900}.info-list dd{margin:0;overflow-wrap:anywhere;font-weight:800}.stroke-panel{margin-top:18px}.stroke-panel .stroke-order-svg{width:min(100%,280px);display:block;margin:0 auto}.example-list{display:grid;gap:10px;padding:0;list-style:none}.example-list li{border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:#fbfdff}.example-list strong{display:block;color:var(--blue-dark);font-size:1.08rem}.example-list span{color:var(--muted);font-weight:700}.button-link.is-disabled,.button-link:disabled{opacity:.48;cursor:default;pointer-events:none}.compact-button{min-height:38px;padding:6px 12px;border-radius:7px;font-size:.92rem;cursor:pointer}.article-date{display:inline-flex;align-items:center;min-height:32px;margin-top:16px;border:1px solid #c7d7f0;border-radius:var(--radius);padding:4px 10px;background:var(--soft-blue);color:var(--blue-dark);font-size:.92rem}.blog-nav-panel,.blog-index-panel{max-width:780px;margin:22px auto 0}.blog-nav-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.blog-nav-card,.blog-card{display:grid;gap:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);text-decoration:none;box-shadow:0 8px 22px #1720330f}.blog-nav-card{min-height:104px;padding:14px}.blog-nav-card span,.blog-card span{color:var(--blue-dark);font-size:.78rem;font-weight:900}.blog-nav-card strong,.blog-card strong{line-height:1.45}.blog-nav-card.is-disabled{background:#f1f5f9;color:var(--muted);box-shadow:none}.blog-index-panel{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--paper);box-shadow:0 10px 28px #17203312}.section-title-row,.panel-title-row,.kanji-question-head,.seo-writing-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-title-row h2,.panel-title-row h2,.kanji-question-head h2,.seo-writing-card-head h3{margin:0;line-height:1.35}.blog-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}.blog-card{padding:14px}.blog-card p{margin:0;color:var(--muted);font-size:.92rem;font-weight:700}.blog-card.is-current{border-color:var(--blue);background:var(--soft-blue)}.kanji-page-nav{display:grid;grid-template-columns:minmax(150px,1fr) minmax(90px,auto) minmax(150px,1fr);gap:10px;align-items:center;margin-top:18px}.kanji-page-nav .button-link{width:100%}.kanji-page-position{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--muted);font-weight:900}.bottom-nav{margin-bottom:22px}.app-like-info-list div{grid-template-columns:118px minmax(0,1fr)}.stroke-panel{display:grid;gap:14px}.stroke-order-frame{width:min(100%,340px);margin-inline:auto;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(to right,transparent calc(50% - .5px),#d9e3f1 calc(50% - .5px),#d9e3f1 calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#d9e3f1 calc(50% - .5px),#d9e3f1 calc(50% + .5px),transparent calc(50% + .5px)),#fbfdff;aspect-ratio:1;padding:10px}.stroke-order-frame .stroke-order-svg{width:100%;height:100%}.stroke-order-svg.is-animating path{animation:seoStrokeDraw 1.35s ease-in-out}@keyframes seoStrokeDraw{0%{stroke-dasharray:190;stroke-dashoffset:190}to{stroke-dasharray:190;stroke-dashoffset:0}}.stroke-note{margin:2px 0 0;color:var(--muted);font-size:1.08rem;font-weight:900;text-align:center}.panel-action-row{display:flex;justify-content:flex-end}.kanji-question-panel{margin-top:18px}.kanji-question-head{align-items:flex-start}.kanji-question-count{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #c7d7f0;border-radius:var(--radius);padding:4px 10px;background:var(--soft-blue);color:var(--blue-dark);font-weight:900;white-space:nowrap}.kanji-question-list{display:grid;gap:10px;margin-top:16px}.kanji-question-row{display:grid;grid-template-columns:86px minmax(0,1fr) minmax(120px,auto);gap:12px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:#fbfdff}.kanji-question-type{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:999px;padding:4px 10px;color:#fff;font-size:.84rem;font-weight:900;white-space:nowrap}.kanji-question-type.is-on{background:var(--blue)}.kanji-question-type.is-kun{background:var(--green)}.kanji-question-prompt{margin:0;color:var(--ink);font-size:1.1rem;font-weight:900}.kanji-question-meaning{margin:2px 0 0;color:var(--muted);font-weight:700}.kanji-question-answer{display:grid;justify-items:end;color:var(--muted);font-weight:800}.kanji-question-answer strong{color:var(--ink);font-size:1.08rem}.kanji-question-empty{border:1px dashed var(--line);border-radius:var(--radius);padding:14px;color:var(--muted);font-weight:800}.seo-challenge-panel{display:grid;gap:14px;margin-top:18px}.seo-challenge-panel[hidden]{display:none}.challenge-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.challenge-choice{min-height:48px;border:1px solid #b8cff4;border-radius:var(--radius);padding:8px 12px;background:var(--soft-blue);color:var(--ink);font-size:1.04rem;font-weight:900;cursor:pointer}.challenge-choice.is-correct{border-color:#8bc5a8;background:var(--soft-green);color:var(--green)}.challenge-choice.is-wrong{border-color:#f2a7b5;background:#fff0f3;color:#b42345}.challenge-choice:disabled{cursor:default}.challenge-feedback{min-height:30px;margin:0;font-weight:900}.challenge-feedback.is-correct{color:var(--green)}.challenge-feedback.is-wrong{color:#b42345}.seo-writing-section{margin-top:18px}.seo-writing-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.seo-writing-card{display:grid;align-content:start;gap:12px;border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fbfdff}.seo-writing-card-head{align-items:flex-start}.seo-writing-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.compact-stroke-frame{width:min(100%,280px)}.seo-writing-area{position:relative;width:min(100%,280px);margin-inline:auto;border:2px solid #cdd8e8;border-radius:var(--radius);background:linear-gradient(to right,transparent calc(50% - .5px),#d9e3f1 calc(50% - .5px),#d9e3f1 calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(to bottom,transparent calc(50% - .5px),#d9e3f1 calc(50% - .5px),#d9e3f1 calc(50% + .5px),transparent calc(50% + .5px)),#fff;aspect-ratio:1;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}.seo-writing-guide,.seo-writing-canvas{position:absolute;inset:0;width:100%;height:100%}.seo-writing-guide{display:grid;place-items:center;padding:10px;opacity:.2;pointer-events:none}.seo-writing-guide.is-hidden{display:none}.seo-writing-guide .stroke-order-svg{width:100%;height:100%}.seo-writing-guide .stroke-order-svg path,.seo-writing-guide .stroke-order-svg g{stroke:#667085}.seo-writing-guide span{color:#667085;font-size:8rem;font-weight:900;line-height:1}.seo-writing-canvas{cursor:crosshair}.seo-writing-note{margin:0;color:var(--muted);font-size:.9rem;font-weight:700}.site-footer{border-top:1px solid var(--line);background:#fff;padding:24px 14px 30px}.site-footer nav,.site-footer p{width:min(1120px,100%);margin-inline:auto}.site-footer p{margin-top:12px;color:var(--muted);font-weight:700}@media(max-width:760px){.site-header,.hero-panel,.cta-panel,.kanji-detail-layout,.blog-nav-panel,.seo-writing-layout{grid-template-columns:1fr}.site-header{align-items:flex-start;flex-direction:column}.site-nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.site-nav a{width:100%;min-width:0;padding-inline:8px;white-space:nowrap}.hero-image{max-width:320px}.article-page .hero-panel,.blog-index-page .hero-panel{grid-template-columns:1fr}.article-page .hero-panel h1,.blog-index-page .hero-panel h1{font-size:clamp(1.7rem,8vw,2.2rem);word-break:keep-all;line-break:strict}.kanji-grid{grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}.grade-switch-links .button-link{flex:1 1 96px}.info-list div{grid-template-columns:1fr;gap:2px}.cta-actions .button-link{flex:1 1 150px}.section-title-row,.panel-title-row,.kanji-question-head,.seo-writing-card-head{align-items:stretch;flex-direction:column}.kanji-page-nav{grid-template-columns:1fr}.kanji-page-position{order:-1}.kanji-question-row{grid-template-columns:1fr;align-items:stretch}.kanji-question-type{width:fit-content}.kanji-question-answer{justify-items:start}.challenge-choice-grid{grid-template-columns:1fr}.seo-writing-tools{justify-content:flex-start}.stroke-order-frame,.seo-writing-area{width:min(100%,300px)}}
