:root{color:#28251f;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f8f5ed;--paper-deep:#eee8dc;--ink:#28251f;--muted:#716b61;--faint:#a39b8e;--line:#d7d0c3;--accent:#b4432e;--accent-dark:#863324;--accent-soft:#ead3c9;--success:#496957;--focus:#2c5d7c;background:#f3efe6;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Noto Sans CJK JP,sans-serif}*{box-sizing:border-box}html{background:#f3efe6;min-width:320px}body{background:#f3efe6;min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 65%, transparent);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:min(100%,1600px);min-height:100vh;margin:0 auto;padding:0 clamp(20px,4vw,72px)}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:80px;animation:.48s cubic-bezier(.22,1,.36,1) both enter-down;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{border:1px solid var(--ink);border-radius:50%;place-items:center;width:34px;height:34px;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif CJK JP,serif;font-size:17px;display:grid}.brand-name{letter-spacing:.02em;font-family:Georgia,Times New Roman,serif;font-size:25px}.local-badge{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.local-dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--success) 12%, transparent);border-radius:50%}.intro{padding:clamp(52px,7vw,96px) 0 clamp(36px,5vw,64px);animation:.62s cubic-bezier(.22,1,.36,1) 80ms both enter-up}.eyebrow,.pane-kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:700}.intro h1{letter-spacing:-.045em;margin:0;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif CJK JP,Georgia,serif;font-size:clamp(38px,5.5vw,76px);font-weight:500;line-height:1.08}.intro-copy{max-width:620px;color:var(--muted);margin:20px 0 0;font-size:clamp(15px,1.4vw,18px);line-height:1.8}.workspace{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:color-mix(in srgb, var(--paper) 88%, transparent);grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:660px;animation:.72s cubic-bezier(.22,1,.36,1) .16s both workspace-reveal;display:grid;box-shadow:0 24px 70px #3d352a14}.workspace-pane{min-width:0;padding:clamp(24px,3.5vw,50px)}.input-pane{border-right:1px solid var(--line);grid-template-rows:auto minmax(320px,1fr) auto;display:grid}.result-pane{grid-template-rows:auto auto minmax(360px,1fr);display:grid}.pane-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;display:flex}.pane-heading h2,.principles h2{letter-spacing:-.025em;margin:0;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif CJK JP,Georgia,serif;font-size:clamp(23px,2.2vw,31px);font-weight:500}.character-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.character-count.is-over{color:var(--accent);font-weight:700}#source-text{resize:none;width:100%;min-height:320px;color:var(--ink);letter-spacing:.015em;caret-color:var(--accent);background:0 0;border:0;border-radius:0;padding:0 8px 0 0;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif CJK JP,serif;font-size:18px;line-height:2;display:block}#source-text::placeholder{color:var(--faint)}#source-text:focus-visible{outline-offset:8px}.input-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-top:24px;display:flex}.input-actions>p{max-width:280px;color:var(--muted);margin:0;font-size:12px;line-height:1.65}.button-row{flex-shrink:0;align-items:center;gap:10px;display:flex}.text-button,.mode-button,.visibility-button,.primary-button{cursor:pointer;background:0 0;border:0}.text-button{color:var(--muted);text-underline-offset:4px;padding:11px 10px;font-size:13px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .16s,text-decoration-color .16s}.text-button:hover:not(:disabled){color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.primary-button{border:1px solid var(--accent);color:#fffaf2;background:var(--accent);justify-content:center;align-items:center;gap:22px;min-height:46px;padding:0 18px;font-size:14px;font-weight:700;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.primary-button:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent-dark);transform:translateY(-2px)}.primary-button.is-cancel{color:var(--accent);background:0 0}.result-heading{margin-bottom:20px}.status-indicator{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex}.status-indicator>span{background:var(--faint);border-radius:50%;width:7px;height:7px;transition:background .24s,box-shadow .24s}.status-ready>span{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb, var(--success) 12%, transparent)}.status-loading-dictionary>span,.status-analyzing>span{background:var(--accent);animation:1.2s ease-in-out infinite status-pulse}.status-error>span,.status-stale>span{background:var(--accent)}.mode-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding-bottom:18px;display:flex}.mode-switcher{align-items:center;gap:3px;min-width:0;display:flex}.mode-button,.visibility-button{min-height:38px;color:var(--muted);border-bottom:1px solid #0000;padding:0 11px;font-size:12px;transition:color .16s,border-color .16s,background .16s}.mode-button:hover:not(:disabled),.visibility-button:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb, var(--paper-deep) 65%, transparent)}.mode-button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.visibility-button{flex-shrink:0}.result-surface{min-width:0;padding-top:30px;position:relative}.analysis-progress{margin-bottom:24px;animation:.24s both soft-reveal}.progress-line{background:var(--paper-deep);height:2px;overflow:hidden}.progress-line span{background:var(--accent);height:100%;transition:width .18s;display:block}.analysis-progress p{color:var(--muted);margin:9px 0 0;font-size:12px}.feedback-message{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:26px 1fr;gap:10px;margin-bottom:24px;padding:14px 0;animation:.22s both soft-reveal;display:grid}.feedback-message>span{width:24px;height:24px;color:var(--accent);border:1px solid;border-radius:50%;place-items:center;font-size:12px;display:grid}.feedback-message p{margin:1px 0 0;font-size:13px;line-height:1.65}.reading-result{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);letter-spacing:.025em;font-family:Hiragino Mincho ProN,Yu Mincho,Noto Serif CJK JP,serif;font-size:clamp(18px,1.55vw,22px);line-height:2.75;animation:.36s cubic-bezier(.22,1,.36,1) both result-reveal}ruby{ruby-align:center;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 26%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 26%, transparent);text-underline-offset:5px}rt{color:var(--accent-dark);letter-spacing:.04em;font-family:Inter,ui-sans-serif,-apple-system,sans-serif;font-size:.48em;font-weight:600}.result-content{transition:opacity .18s,filter .18s}.result-content.is-stale{opacity:.48;filter:grayscale(.35)}.empty-result{text-align:center;min-height:330px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-glyph{color:color-mix(in srgb, var(--line) 75%, transparent);-webkit-user-select:none;user-select:none;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:clamp(84px,10vw,138px);font-weight:400;line-height:1}.empty-result p{color:var(--ink);margin:24px 0 7px;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-size:17px}.empty-result>span:last-child{font-size:12px}.principles{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:clamp(40px,8vw,140px);padding:clamp(64px,9vw,128px) 0;display:grid}.principles dl{margin:0}.principles dl>div{border-top:1px solid var(--line);grid-template-columns:110px 1fr;gap:24px;padding:18px 0;display:grid}.principles dl>div:last-child{border-bottom:1px solid var(--line)}.principles dt{font-size:13px;font-weight:700}.principles dd{color:var(--muted);margin:0;font-size:13px;line-height:1.75}footer{border-top:1px solid var(--line);min-height:84px;color:var(--muted);letter-spacing:.04em;justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex}footer p{margin:0}@keyframes enter-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes enter-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes workspace-reveal{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(24px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes result-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes soft-reveal{0%{opacity:0}to{opacity:1}}@keyframes status-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 8%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 2%, transparent)}}@media (width<=980px){.workspace{grid-template-columns:1fr}.input-pane{border-right:0;border-bottom:1px solid var(--ink)}.result-pane{min-height:620px}.principles{grid-template-columns:1fr;gap:36px}}@media (width<=600px){.app-shell{padding:0 16px}.site-header{height:68px}.brand-mark{width:30px;height:30px}.brand-name{font-size:22px}.local-badge{font-size:11px}.intro{padding:44px 0 34px}.intro h1{font-size:clamp(36px,12vw,52px)}.workspace-pane{padding:24px 18px}.input-pane{grid-template-rows:auto minmax(340px,1fr) auto}.result-pane{min-height:570px}#source-text{min-height:340px;font-size:16px}.input-actions{display:block}.input-actions>p{max-width:none;margin-bottom:18px}.button-row{justify-content:space-between}.primary-button{min-width:142px}.mode-toolbar{display:block;overflow:hidden}.mode-switcher{grid-template-columns:repeat(3,1fr);display:grid}.mode-button{padding:0 6px}.visibility-button{border:1px solid var(--line);width:100%;margin-top:8px}.reading-result{font-size:18px;line-height:2.85}.principles{padding:68px 0}.principles dl>div{grid-template-columns:78px 1fr;gap:14px}footer{flex-direction:column;justify-content:center;align-items:flex-start;padding:20px 0}}@media (width<=360px){.local-badge{gap:6px}.local-dot{display:none}.pane-heading{gap:10px}.workspace-pane{padding-inline:14px}.text-button{padding-inline:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
