*{margin:0;padding:0;box-sizing:border-box}:root{--ink:#1a1a1a;--ink-soft:#555;--ink-muted:#777;--ink-faint:#999;--line:#e8e8e8;--line-dark:#ccc;--paper:#ffffff;--paper-dim:#f7f7f7;--ph:#f4f4f4}html{scroll-behavior:smooth}body{font-family:inter,noto sans jp,-apple-system,hiragino sans,sans-serif;background:var(--paper);color:var(--ink);font-weight:400;font-size:14px;line-height:2;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.wrap{max-width:1040px;margin:0 auto;padding:0 40px}.wrap-narrow{max-width:720px;margin:0 auto;padding:0 32px}.rule{border-top:1px solid var(--line)}.en-caption{font-size:10.5px;letter-spacing:.42em;color:var(--ink-faint);text-transform:uppercase}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;max-width:1040px;margin:0 auto;flex-wrap:wrap;gap:14px}.logo{font-size:17px;font-weight:500;letter-spacing:.32em}.nav{display:flex;gap:34px}.nav a{font-size:11.5px;letter-spacing:.22em;color:var(--ink-soft);transition:color .2s}.nav a:hover{color:var(--ink)}.btn{display:inline-block;font-size:11.5px;letter-spacing:.3em;padding:16px 44px;transition:opacity .2s,background .2s,color .2s}.btn-fill{background:var(--ink);color:#fff}.btn-fill:hover{opacity:.8}.btn-line{border:1px solid var(--ink);color:var(--ink);padding:15px 38px}.btn-line:hover{background:var(--ink);color:#fff}.hero{text-align:center;padding:104px 24px 96px}.hero .en-caption{margin-bottom:30px}.hero h1{font-family:noto sans jp,sans-serif;font-size:27px;font-weight:300;letter-spacing:.2em;line-height:2.3;margin-bottom:32px}.hero-sub{font-size:12.5px;letter-spacing:.12em;line-height:2.4;color:var(--ink-muted);margin-bottom:44px}.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.sec{padding:76px 40px}.sec-head{text-align:center;margin-bottom:50px}.sec-head .en-caption{margin-bottom:12px}.sec-head h2{font-size:16px;font-weight:400;letter-spacing:.3em}.sec-lead{font-size:12.5px;color:var(--ink-muted);letter-spacing:.08em;margin-top:16px}.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.tile{background:var(--paper);display:block;transition:background .2s}.tile:hover{background:#fcfcfc}.tile-ph{background:var(--ph);height:148px;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:300;letter-spacing:.14em;color:#9a9a9a;padding:0 16px;text-align:center}.tile-cap{padding:20px 22px 24px}.tile-cap h3{font-size:13px;font-weight:500;letter-spacing:.1em;margin-bottom:8px}.tile-cap p{font-size:11.5px;line-height:2;color:var(--ink-muted);letter-spacing:.06em;margin-bottom:12px}.tile-cap .more{font-size:10.5px;letter-spacing:.28em;border-bottom:1px solid var(--ink);padding-bottom:3px}.news-band{background:var(--paper-dim);margin-top:20px}.news-inner{max-width:560px;margin:0 auto;text-align:center;padding:72px 24px}.news-inner .en-caption{margin-bottom:14px}.news-inner h2{font-size:16px;font-weight:400;letter-spacing:.3em;margin-bottom:18px}.news-desc{font-size:12px;line-height:2.3;color:var(--ink-muted);letter-spacing:.08em;margin-bottom:30px}.article{padding:68px 32px 60px}.article-head{text-align:center;margin-bottom:48px}.article-head .en-caption{margin-bottom:16px}.article-head h1{font-size:22px;font-weight:400;letter-spacing:.16em;line-height:2;margin-bottom:18px}.article-lead{font-size:12.5px;color:var(--ink-muted);letter-spacing:.08em;line-height:2.2}.article-date{font-size:10.5px;letter-spacing:.2em;color:var(--ink-faint);margin-top:16px}.article-body{font-size:14px;line-height:2.2;letter-spacing:.04em}.article-body h2{font-size:15.5px;font-weight:500;letter-spacing:.16em;margin:56px 0 20px;padding-top:22px;border-top:1px solid var(--line)}.article-body h3{font-size:14px;font-weight:500;letter-spacing:.1em;margin:36px 0 14px}.article-body p{margin-bottom:22px}.article-body ul,.article-body ol{margin:0 0 22px 1.4em}.article-body li{margin-bottom:8px}.article-body a{border-bottom:1px solid var(--ink);padding-bottom:1px}.article-body a:hover{opacity:.6}.article-body strong{font-weight:500}.article-body blockquote{border-left:1px solid var(--line-dark);padding-left:20px;color:var(--ink-muted);margin-bottom:22px}.article-body code{font-family:Consolas,Menlo,monospace;font-size:12.5px;background:var(--ph);padding:2px 7px}.article-body pre{background:var(--ph);padding:18px 20px;overflow-x:auto;margin-bottom:22px;font-size:12.5px;line-height:1.8}.article-body pre code{background:0 0;padding:0}.disclosure{font-size:11px;color:var(--ink-faint);letter-spacing:.06em;margin-top:40px;padding-top:18px;border-top:1px solid var(--line)}.disclosure--top{margin-top:14px;padding-top:0;border-top:none}.tool-cta{margin:34px 0;text-align:center}.tool-cta .btn{display:inline-block}.tool-cta-note{font-size:11px;color:var(--ink-faint);letter-spacing:.06em;margin-top:10px}.a8-banner{margin:44px 0;text-align:center}.a8-banner__label{display:block;font-size:10px;letter-spacing:.2em;color:var(--ink-faint);margin-bottom:10px}.a8-banner__inner img{max-width:100%;height:auto}.pricing-table-wrap{margin:30px 0 22px;overflow-x:auto}.pricing-table{width:100%;border-collapse:collapse;font-size:12.5px;letter-spacing:.04em}.pricing-table th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.18em;color:var(--ink-soft);background:var(--paper-dim);padding:12px 16px;border:1px solid var(--line);white-space:nowrap}.pricing-table td{padding:12px 16px;border:1px solid var(--line)}.pricing-table .tool-name{font-weight:500}.pricing-table .tool-name a{border-bottom:1px solid var(--ink);padding-bottom:1px}.pricing-table .ok{color:#1a1a1a}.pricing-table .ng{color:var(--ink-faint)}.table-note{font-size:11px;color:var(--ink-faint);letter-spacing:.05em;line-height:1.9}.substack-embed{margin:30px 0}.site-footer{border-top:1px solid var(--line);margin-top:40px}.foot-inner{display:flex;justify-content:space-between;align-items:center;padding:40px;font-size:10.5px;letter-spacing:.2em;color:var(--ink-faint);flex-wrap:wrap;gap:12px}.foot-links a{color:var(--ink-faint)}.foot-links a:hover{color:var(--ink)}.foot-links .sep{margin:0 8px}@media(max-width:820px){.tile-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.wrap,.sec{padding-left:24px;padding-right:24px}.header-inner{padding:20px 24px}.nav{gap:20px}.hero{padding:72px 20px 64px}.hero h1{font-size:20px;letter-spacing:.14em}.hero-cta .btn{padding:14px 30px}.tile-grid{grid-template-columns:1fr}.article{padding:48px 24px 40px}.foot-inner{flex-direction:column;text-align:center}}