:root{color-scheme:light;font-family:Inter,Noto Sans SC,Noto Sans JP,Microsoft YaHei,system-ui,sans-serif;color:#161a18;background:#f6f7f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #161a18;--muted: #69716c;--line: #d9ded9;--surface: #ffffff;--surface-soft: #eef1ed;--accent: #08775b;--accent-dark: #075a47;--coral: #db624d;--error-bg: #fff3ef;--error-line: #e0a093}*{box-sizing:border-box}html{min-width:320px;background:#f6f7f4}body{margin:0;min-width:320px;min-height:100vh;background:#f6f7f4}button,textarea,select{font:inherit}button,select{cursor:pointer}button:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid rgba(8,119,91,.24);outline-offset:2px}.app-shell{min-height:100vh}.app-header{height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px;border-bottom:1px solid var(--line);background:#f6f7f4f5}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:.95rem;font-weight:720;text-decoration:none}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border-radius:4px;background:var(--ink);color:#fff;font-family:"Noto Serif JP",Yu Mincho,serif;font-size:1rem}.runtime-label,.section-number,.character-count,.field-label,.analysis-summary span,.result-section h4{letter-spacing:0;text-transform:uppercase}.runtime-label{margin:0;color:var(--muted);font-size:.75rem;font-weight:650}.workspace{display:grid;grid-template-columns:minmax(360px,.84fr) minmax(480px,1.16fr);min-height:calc(100vh - 64px)}.input-region,.result-region{min-width:0;padding:36px 40px 48px}.input-region{border-right:1px solid var(--line);background:var(--surface)}.result-region{background:#f6f7f4}.region-heading{min-height:68px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.section-number{margin:0 0 8px;color:var(--accent);font-size:.69rem;font-weight:780}h1,h2,h3,h4,p{margin-top:0}h1,h2{margin-bottom:0;font-size:1.72rem;line-height:1.15;font-weight:680}.character-count{padding-top:25px;color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums}.analyzer-form{display:grid;gap:24px;padding-top:24px}.field-group,.level-field{display:grid;gap:9px}.field-label{color:var(--muted);font-size:.73rem;font-weight:720}textarea{width:100%;min-height:390px;resize:vertical;border:1px solid var(--line);border-radius:6px;background:#fbfcfa;color:var(--ink);padding:18px;font-family:Noto Sans JP,Yu Gothic,sans-serif;font-size:.98rem;line-height:1.9;transition:border-color .16s ease,box-shadow .16s ease}textarea:hover{border-color:#b9c1bb}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #08775b1a;outline:none}.form-footer{display:flex;align-items:end;justify-content:space-between;gap:20px}.level-field{width:144px}select{width:100%;height:44px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);padding:0 12px;font-size:.9rem;font-weight:650}.primary-button{min-width:144px;height:46px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:#fff;padding:0 20px;font-size:.88rem;font-weight:720;transition:background-color .16s ease,transform .16s ease}.primary-button:hover:not(:disabled){background:var(--accent-dark)}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:not-allowed;opacity:.55}.icon-button{width:38px;height:38px;display:grid;flex:0 0 38px;place-items:center;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}.icon-button:hover{border-color:var(--accent);color:var(--accent)}.empty-state,.error-state{min-height:430px;display:grid;place-content:center;justify-items:center;gap:12px;padding:40px;text-align:center}.empty-state strong,.error-state strong{font-size:1rem}.empty-state p,.error-state p{max-width:410px;margin-bottom:0;color:var(--muted);font-size:.88rem;line-height:1.7}.empty-kanji{display:grid;width:72px;height:72px;place-items:center;border:1px solid var(--line);color:#9ba29d;font-family:"Noto Serif JP",Yu Mincho,serif;font-size:2rem}.loading-line{width:120px;height:3px;overflow:hidden;background:var(--line);position:relative}.loading-line:after{position:absolute;inset:0;width:45%;background:var(--accent);content:"";animation:loading 1.1s ease-in-out infinite}@keyframes loading{0%{transform:translate(-110%)}to{transform:translate(260%)}}.error-state{min-height:220px;margin-top:24px;border:1px solid var(--error-line);border-radius:6px;background:var(--error-bg)}.error-state strong{color:#8b3429}.analysis-view{padding-top:24px}.analysis-summary{display:grid;grid-template-columns:minmax(0,1fr) 100px 74px;gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.analysis-summary>div{display:grid;gap:6px;padding:14px 16px;border-right:1px solid var(--line)}.analysis-summary>div:first-child{padding-left:0}.analysis-summary>div:last-child{border-right:0}.analysis-summary span{color:var(--muted);font-size:.65rem;font-weight:720}.analysis-summary strong{overflow-wrap:anywhere;font-size:.9rem;line-height:1.5}.question-result{padding-top:34px}.question-title-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:16px;align-items:start;padding-bottom:24px}.question-title-row>span{display:grid;height:38px;place-items:center;border-radius:4px;background:var(--ink);color:#fff;font-size:.72rem;font-variant-numeric:tabular-nums;font-weight:760}.question-title-row h3{margin-bottom:0;font-family:Noto Sans JP,Yu Gothic,sans-serif;font-size:1.06rem;font-weight:650;line-height:1.75;overflow-wrap:anywhere}.result-section{display:grid;grid-template-columns:110px minmax(0,1fr);gap:22px;padding:22px 0;border-top:1px solid var(--line)}.result-section h4{margin:4px 0 0;color:var(--muted);font-size:.7rem;font-weight:760}.result-section p{margin-bottom:8px;font-size:.91rem;line-height:1.75;overflow-wrap:anywhere}.result-section p:last-child{margin-bottom:0}.answer-text{color:var(--accent-dark);font-weight:760}.muted-text{color:var(--muted)}.option-list,.definition-list{display:grid}.option-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.option-row:first-child{padding-top:0}.option-row:last-child{border-bottom:0}.option-row.is-correct .option-key{border-color:var(--accent);background:var(--accent);color:#fff}.option-key{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--line);border-radius:4px;font-size:.75rem;font-weight:760}.option-row strong,.definition-list strong{font-size:.91rem}.option-row p{margin-top:4px;color:var(--muted)}.definition-list>div{padding:14px 0;border-bottom:1px solid var(--line)}.definition-list>div:first-child{padding-top:0}.definition-list>div:last-child{border-bottom:0}.definition-list p{margin-top:5px}.vocabulary-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.vocabulary-list>div{min-width:0;background:var(--surface);padding:13px}.vocabulary-list strong,.vocabulary-list span{display:block;overflow-wrap:anywhere}.vocabulary-list strong{font-size:.92rem}.vocabulary-list span{margin-top:3px;color:var(--accent);font-size:.76rem}.vocabulary-list p{margin-top:7px;color:var(--muted);font-size:.82rem}@media(max-width:960px){.workspace{grid-template-columns:1fr}.input-region{border-right:0;border-bottom:1px solid var(--line)}textarea{min-height:300px}.empty-state{min-height:320px}}@media(max-width:600px){.app-header{height:58px;padding:0 18px}.runtime-label{display:none}.workspace{min-height:calc(100vh - 58px)}.input-region,.result-region{padding:28px 18px 36px}h1,h2{font-size:1.45rem}.form-footer{align-items:stretch;flex-direction:column}.level-field,.primary-button{width:100%}.analysis-summary{grid-template-columns:minmax(0,1fr) 76px 56px}.analysis-summary>div{padding:12px 10px}.analysis-summary>div:first-child{padding-left:0}.result-section{grid-template-columns:1fr;gap:12px}.vocabulary-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
