:root{--bg:#f5f2ec;--surface:#faf8f4;--surface2:#f0ece6;--card:#ffffff;--border:#e3dbd0;--border-dim:#ede8e0;--accent:#3c7876;--accent-dim:rgba(60,120,118,.09);--accent-soft:#e6f0ef;--text:#1d1b17;--text-muted:#7d7568;--text-faint:#aaa49b;--shadow:rgba(29,27,23,.06);--dot:#cfc9be}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);background-image:radial-gradient(circle,var(--dot) 1px,transparent 0);background-size:20px 20px;font-family:Zen Kaku Gothic New,Hiragino Sans,Meiryo,system-ui,sans-serif;line-height:1.9}a{color:var(--accent);text-decoration:none}a:hover{opacity:.75}header{position:sticky;top:0;z-index:100;background:#f5f2ece6;backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header-inner{max-width:860px;margin:0 auto;padding:.7rem 1rem;display:flex;align-items:center;justify-content:space-between}.logo{font-size:1rem;font-weight:700;color:var(--text);letter-spacing:.03em;font-family:JetBrains Mono,monospace}.logo span{color:var(--accent)}.nav-links{display:flex;gap:.2rem}.nav-links a{padding:.3rem .65rem;color:var(--text-muted);font-size:.8rem;font-weight:500;border-radius:6px;transition:.15s}.nav-links a:hover{color:var(--accent);background:var(--accent-dim)}main.doc{max-width:760px;margin:0 auto;padding:2rem 1rem 4rem}.back{display:inline-block;font-size:.78rem;font-family:JetBrains Mono,monospace;color:var(--text-muted);margin-bottom:1.2rem}.doc-head h1{font-size:clamp(1.5rem,4vw,2rem);font-weight:700;line-height:1.3;margin:0 0 .6rem}.doc-meta{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:baseline;color:var(--text-faint);font-size:.8rem;font-family:JetBrains Mono,monospace;margin-bottom:.4rem}.doc-desc{color:var(--text-muted);font-size:.92rem;margin:.2rem 0 1.4rem}.demo-cta{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent);color:#fff;border-radius:999px;padding:.5rem 1.15rem;font-size:.85rem;font-weight:700;margin-bottom:1.6rem}.demo-cta:hover{opacity:.88}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.prose{font-size:1.02rem}.prose h2{margin:2.4rem 0 1rem;font-size:1.4rem;color:var(--accent);font-weight:700}.prose h2:before{content:"# ";opacity:.35;font-family:JetBrains Mono,monospace;font-size:.85em}.prose h3{margin:1.8rem 0 .7rem;font-size:1.12rem}.prose p{margin:1em 0}.prose strong{font-weight:700}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.35em 0}.prose code{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:.85em;color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);margin:1.5rem 0;padding:.6rem 1rem;border-radius:0 8px 8px 0;color:var(--text-muted)}.prose img{max-width:100%;border-radius:10px}.fig-toggle{margin:1.6rem 0;text-align:center}.fig-toggle img{max-width:100%;border-radius:10px}.fig-toggle figcaption.fig-toggle-cap{display:block;font-size:.8rem;color:var(--text-faint);margin:.35rem auto 0;max-width:46ch;line-height:1.5}.fig-toggle .fig-toggle-btn{display:inline-flex;align-items:center;gap:.35rem;margin-top:.55rem;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.32rem .95rem;font-size:.74rem;font-family:JetBrains Mono,monospace;cursor:pointer;transition:.15s}.fig-toggle .fig-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.fig-toggle.is-orig figcaption.fig-toggle-cap:after{content:" — 作者の手書き図";color:var(--accent)}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:.4rem 0}.demo-embed{margin:1.6rem 0;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--card);box-shadow:0 2px 12px var(--shadow)}.demo-embed iframe{display:block;width:100%;height:560px;border:0}.demo-embed .cap{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .8rem;border-top:1px solid var(--border);font-size:.76rem;color:var(--text-muted);font-family:JetBrains Mono,monospace;background:var(--surface)}footer{max-width:760px;margin:0 auto;padding:1.5rem 1rem 2.5rem;border-top:1px solid var(--border);color:var(--text-faint);font-size:.78rem;text-align:center;line-height:1.8}footer a{color:var(--text-muted)}.footer-credit{margin-top:.35rem;font-size:.68rem;font-family:JetBrains Mono,monospace}@media(max-width:680px){.demo-embed iframe{height:480px}}
