:root{--primary:#0f5132;--primary-900:#0a3822;--primary-700:#145a3a;--primary-600:#1a6b42;--primary-100:#d7e4dc;--primary-50:#eef3ef;--accent:#20c997;--accent-dark:#12a97d;--gold:#b8923a;--text:#1a1f1d;--text-muted:#55615a;--text-subtle:#8a948f;--bg:#fff;--bg-soft:#f6f7f5;--bg-hero:#fafbf9;--border:#e4e7e4;--border-strong:#c9cec9;--shadow-sm:0 1px 2px #0f51320a, 0 0 0 1px #0f51320d;--shadow-md:0 4px 16px #0f51320f, 0 1px 3px #0f51320a;--shadow-lg:0 14px 40px #0f513214, 0 2px 6px #0f51320a;--serif:"Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;--sans:"Noto Sans JP", "Hiragino Kaku Gothic ProN", -apple-system, "Segoe UI", "Roboto", sans-serif;--mono:"Inter", "Noto Sans JP", sans-serif;--max:1240px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-card:18px}*,:before,:after{box-sizing:border-box}.media-root{font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:17.6px;line-height:1.85}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img,svg{max-width:100%;display:block}.topbar{background:var(--primary-900);color:#ffffffd9;letter-spacing:.02em;font-size:13.2px}.topbar__inner{max-width:var(--max);justify-content:space-between;align-items:center;height:34px;margin:0 auto;padding:0 24px;display:flex}.topbar__brand-op{align-items:center;gap:8px;display:inline-flex}.topbar__brand-op:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #20c99738}.topbar__links a{color:#ffffffb8;margin-left:20px;transition:color .15s}.topbar__links a:hover{color:#fff}.appbar{z-index:100;-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--border);background:#ffffffeb;position:sticky;top:0}.appbar__inner{max-width:var(--max);align-items:center;gap:32px;height:68px;margin:0 auto;padding:0 24px;display:flex}.brand{font-family:var(--serif);color:var(--primary);align-items:baseline;gap:10px;display:inline-flex}.brand__mark{flex-shrink:0;align-self:center;width:28px;height:28px}.brand__name{letter-spacing:.01em;font-size:22px;font-weight:700;line-height:1}.brand__sub{font-family:var(--sans);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12.1px;font-weight:500}.nav{align-items:center;gap:28px;margin-left:12px;display:flex}.nav a{color:var(--text);padding:6px 0;font-size:16.5px;font-weight:500;position:relative}.nav a.is-active{color:var(--primary);font-weight:700}.nav a.is-active:after{content:"";background:var(--primary);height:2px;position:absolute;bottom:-23px;left:0;right:0}.nav a:hover{color:var(--primary)}.appbar__right{align-items:center;gap:12px;margin-left:auto;display:flex}.search{background:var(--bg-soft);height:40px;color:var(--text-muted);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;min-width:240px;padding:0 14px;font-size:14.3px;transition:all .15s;display:inline-flex}.search:hover{border-color:var(--border-strong);background:#fff}.search svg{width:14px;height:14px}.search kbd{font-family:var(--mono);border:1px solid var(--border);color:var(--text-subtle);background:#fff;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:11.55px}.btn{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;height:40px;padding:0 18px;font-size:14.3px;font-weight:700;transition:all .15s;display:inline-flex}.btn--ghost{color:var(--text);background:0 0}.btn--ghost:hover{color:var(--primary)}.btn--outline{color:var(--primary);border-color:var(--primary);background:0 0}.btn--outline:hover{background:var(--primary-50)}.btn--primary{color:#fff;background:var(--primary)}.btn--primary:hover{background:var(--primary-700);box-shadow:var(--shadow-md);transform:translateY(-1px)}.hero{background:radial-gradient(1100px 420px at 88% -10%, #20c9971a, transparent 60%), radial-gradient(900px 380px at 8% 110%, #0f51320f, transparent 60%), var(--bg-hero);border-bottom:1px solid var(--border)}.hero__inner{max-width:var(--max);grid-template-columns:1.4fr 1fr;align-items:center;gap:56px;margin:0 auto;padding:64px 24px 56px;display:grid}.hero__eyebrow{letter-spacing:.18em;color:var(--primary);text-transform:uppercase;align-items:center;gap:10px;margin:0 0 18px;font-size:13.2px;font-weight:700;display:flex}.hero__eyebrow:before{content:"";background:var(--primary);width:28px;height:2px}.hero__title{font-family:var(--serif);letter-spacing:.01em;color:var(--text);margin:0 0 22px;font-size:50.6px;font-weight:700;line-height:1.35}.hero__title em{color:var(--primary);padding:0 2px;font-style:normal;position:relative}.hero__lede{color:var(--text-muted);max-width:54ch;margin:0 0 28px;font-size:18.7px;line-height:2.05}.hero__cta{align-items:center;gap:16px;display:flex}.hero__meta{color:var(--text-subtle);font-size:13.2px}.hero__meta strong{font-family:var(--serif);color:var(--primary);margin-right:4px;font-size:15.4px;font-weight:600}.hero__panel{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;padding:28px 28px 24px;position:relative}.hero__panel-label{background:var(--primary);color:#fff;letter-spacing:.12em;border-radius:999px;padding:5px 12px;font-size:12.1px;font-weight:700;position:absolute;top:-12px;left:24px}.hero__panel h3{font-family:var(--serif);color:var(--text);margin:0 0 14px;font-size:19.8px;line-height:1.55}.hero__panel-meta{color:var(--text-subtle);align-items:center;gap:10px;margin-bottom:14px;font-size:12.65px;display:flex}.hero__panel-meta .dot{background:var(--text-subtle);border-radius:50%;width:3px;height:3px}.hero__panel-excerpt{color:var(--text-muted);margin:0 0 18px;font-size:15.95px;line-height:1.9}.hero__panel-link{color:var(--primary);align-items:center;gap:6px;font-size:14.3px;font-weight:700;display:inline-flex}.hero__panel-link:after{content:"→";transition:transform .15s}.hero__panel-link:hover:after{transform:translate(4px)}.stats{background:var(--border);border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.stat{background:#fff;flex-direction:column;gap:4px;padding:18px 24px;display:flex}.stat__label{color:var(--text-subtle);letter-spacing:.04em;font-size:12.1px;font-weight:500}.stat__value{font-family:var(--serif);color:var(--primary);font-size:24.2px;font-weight:700;line-height:1.2}.stat__value small{color:var(--text-muted);margin-left:4px;font-size:13.2px;font-weight:500}.tagrail{border-bottom:1px solid var(--border);z-index:50;background:#fff;position:sticky;top:68px}.tagrail__inner{max-width:var(--max);scrollbar-width:none;align-items:center;gap:4px;height:54px;margin:0 auto;padding:0 24px;display:flex;overflow-x:auto}.tagrail__inner::-webkit-scrollbar{display:none}.tagrail__label{color:var(--text-subtle);letter-spacing:.12em;text-transform:uppercase;border-right:1px solid var(--border);white-space:nowrap;margin-right:14px;padding-right:16px;font-size:12.1px;font-weight:700}.tagrail a{color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:14.3px;font-weight:500;transition:all .15s}.tagrail a:hover{background:var(--primary-50);color:var(--primary)}.tagrail a.is-active{background:var(--primary);color:#fff;font-weight:700}.section{max-width:var(--max);margin:0 auto;padding:56px 24px 64px}.section__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;padding-bottom:18px;display:flex}.section__title{font-family:var(--serif);color:var(--text);align-items:baseline;gap:14px;margin:0;font-size:28.6px;font-weight:700;display:flex}.section__title:before{content:"";background:var(--primary);width:4px;height:22px;transform:translateY(2px)}.section__title small{font-family:var(--sans);color:var(--text-subtle);letter-spacing:.04em;font-size:14.3px;font-weight:500}.section__sort{color:var(--text-muted);align-items:center;gap:10px;font-size:13.75px;display:flex}.section__sort select{border:1px solid var(--border-strong);appearance:none;color:var(--text);cursor:pointer;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%2355615A' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") right 10px center no-repeat;border-radius:8px;padding:7px 30px 7px 12px;font-family:inherit;font-size:13.75px}.grid{grid-template-columns:repeat(4,1fr);gap:32px 28px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius-card);background:#fff;flex-direction:column;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-100);transform:translateY(-4px)}.card__cover{aspect-ratio:16/9;background:var(--bg-soft);position:relative;overflow:hidden}.card__cover svg{width:100%;height:100%;transition:transform .5s}.card:hover .card__cover svg{transform:scale(1.04)}.card__badge{letter-spacing:.08em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:4px;align-items:center;gap:5px;height:24px;padding:0 10px;font-size:11.55px;font-weight:700;display:inline-flex;position:absolute;top:12px;left:12px}.card__badge--pro{background:var(--primary);color:#fff}.card__badge--pro:before{content:"";background:var(--gold);border-radius:1px;width:8px;height:8px;transform:rotate(45deg)}.card__badge--basic{color:var(--primary);border:1px solid var(--primary);background:#ffffffeb}.card__badge--free{color:#fff;background:#1a1f1db8}.card__body{flex-direction:column;flex:1;gap:10px;padding:18px 20px 20px;display:flex}.card__title{color:var(--text);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:19.25px;font-weight:700;line-height:1.6;display:-webkit-box;overflow:hidden}.card__meta{color:var(--text-subtle);font-size:13.75px;font-family:var(--serif);align-items:center;gap:10px;margin-top:auto;font-weight:500;display:flex}.card__meta .dot{background:var(--text-subtle);border-radius:50%;width:3px;height:3px}.card__author{font-family:var(--sans);align-items:center;gap:6px;font-weight:500;display:inline-flex}.card__avatar{background:var(--primary-100);width:20px;height:20px;color:var(--primary);font-size:10.45px;font-weight:700;font-family:var(--sans);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.card__tags{flex-wrap:wrap;gap:6px;display:flex}.chip{color:var(--primary-700);background:var(--primary-50);border-radius:4px;align-items:center;padding:3px 9px;font-size:13.2px;font-weight:500;transition:all .15s;display:inline-flex}.chip:hover{background:var(--primary);color:#fff}.pagination{justify-content:center;align-items:center;gap:6px;margin:56px 0 0;display:flex}.pagination a,.pagination span{min-width:40px;height:40px;font-family:var(--serif);color:var(--text-muted);border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:15.4px;font-weight:500;transition:all .15s;display:inline-flex}.pagination a:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-50)}.pagination .is-current{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700}.pagination .ellipsis{background:0 0;border:none}.cta-banner{background:linear-gradient(135deg, var(--primary-900) 0%, var(--primary) 60%, var(--primary-700) 100%);color:#fff;position:relative;overflow:hidden}.cta-banner:before{content:"";pointer-events:none;background:radial-gradient(600px 280px at 85% 20%,#20c99738,#0000 60%),radial-gradient(400px 200px at 10% 90%,#ffffff0f,#0000 60%);position:absolute;inset:0}.cta-banner__inner{max-width:var(--max);grid-template-columns:1.3fr 1fr;align-items:center;gap:40px;margin:0 auto;padding:56px 24px;display:grid;position:relative}.cta-banner h2{font-family:var(--serif);margin:0 0 16px;font-size:35.2px;font-weight:700;line-height:1.45}.cta-banner p{color:#ffffffd1;margin:0 0 22px;font-size:15.4px;line-height:1.9}.cta-banner__form{gap:10px;max-width:480px;display:flex}.cta-banner__form input{color:#fff;background:#ffffff14;border:1px solid #fff3;border-radius:10px;flex:1;height:48px;padding:0 16px;font-family:inherit;font-size:15.4px}.cta-banner__form input::placeholder{color:#ffffff8c}.cta-banner__form button{background:var(--accent);height:48px;color:var(--primary-900);border:none;border-radius:10px;padding:0 22px;font-size:15.4px;font-weight:700;transition:all .15s}.cta-banner__form button:hover{background:#2fe4aa;transform:translateY(-1px)}.cta-banner__note{color:#fff9;margin-top:12px;font-size:12.65px}.cta-banner__tiers{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff0f;border:1px solid #ffffff24;border-radius:16px;padding:22px}.cta-banner__tier{border-bottom:1px dashed #ffffff24;justify-content:space-between;align-items:center;padding:10px 0;font-size:14.3px;display:flex}.cta-banner__tier:last-child{border-bottom:none}.cta-banner__tier strong{font-family:var(--serif);color:#fff;font-weight:700}.cta-banner__tier span{color:#ffffffb8}.cta-banner__tier em{font-style:normal;font-family:var(--serif);color:var(--accent);font-weight:700}footer{color:#ffffffb8;background:#0b1f17;padding:64px 24px 40px;font-size:14.3px}.footer__inner{max-width:var(--max);border-bottom:1px solid #ffffff14;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin:0 auto;padding-bottom:40px;display:grid}.footer__brand p{color:#fff9;margin:12px 0 20px;line-height:1.9}.footer__trust{flex-wrap:wrap;gap:10px;display:flex}.footer__trust span{color:#ffffffb8;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12.1px;display:inline-flex}.footer__trust span:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.footer__col h4{font-family:var(--serif);color:#fff;letter-spacing:.02em;margin:0 0 16px;font-size:14.85px}.footer__col a{color:#ffffff9e;padding:6px 0;font-size:13.75px;transition:color .15s;display:block}.footer__col a:hover{color:var(--accent)}.footer__bottom{max-width:var(--max);color:#ffffff80;justify-content:space-between;align-items:center;margin:0 auto;padding-top:28px;font-size:12.65px;display:flex}.footer__bottom-links a{margin-left:20px}@media (max-width:1024px){.grid{grid-template-columns:repeat(3,1fr)}.hero__inner{grid-template-columns:1fr;gap:40px}.stats{grid-template-columns:repeat(2,1fr)}.cta-banner__inner{grid-template-columns:1fr}}@media (max-width:760px){.grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}.nav,.search,.topbar__links{display:none}.appbar__inner{height:58px}.hero__inner{padding:40px 20px}.hero__title{font-size:35.2px}.footer__inner{grid-template-columns:1fr 1fr;gap:32px}.footer__brand{grid-column:1/-1}.section{padding:40px 16px}.section__head{flex-direction:column;align-items:flex-start}}@media (max-width:480px){.grid,.footer__inner{grid-template-columns:1fr}}.article-prose{color:var(--text);font-size:17.6px;line-height:1.95}.article-prose>*+*{margin-top:1.5em}.article-prose h2{font-family:var(--serif);border-bottom:1px solid var(--border);color:var(--text);margin:2em 0 .6em;padding-bottom:.3em;font-size:28.6px;font-weight:700;line-height:1.45}.article-prose h3{font-family:var(--serif);color:var(--text);margin:1.6em 0 .5em;font-size:22px;font-weight:700;line-height:1.5}.article-prose h4{color:var(--text);margin:1.4em 0 .4em;font-size:18.7px;font-weight:700;line-height:1.55}.article-prose p{margin:0 0 1.2em}.article-prose a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.article-prose a:hover{color:var(--primary-700)}.article-prose ul,.article-prose ol{margin:0 0 1.2em;padding-left:1.6em}.article-prose li{margin:.35em 0}.article-prose blockquote{border-left:3px solid var(--primary);color:var(--text-muted);font-family:var(--serif);margin:1.4em 0;padding:.4em 0 .4em 1.2em}.article-prose code{font-family:var(--mono);background:var(--bg-soft);border-radius:4px;padding:2px 6px;font-size:.92em}.article-prose pre{background:var(--primary-900);color:#fff;border-radius:12px;padding:18px 20px;font-size:14.3px;line-height:1.7;overflow-x:auto}.article-prose pre code{color:inherit;background:0 0;padding:0}.article-prose img{border-radius:12px;margin:1.4em 0}.article-prose hr{border:none;border-top:1px solid var(--border);margin:2.4em 0}.article-prose table{border-collapse:collapse;width:100%;margin:1.4em 0;font-size:15.4px}.article-prose th,.article-prose td{border:1px solid var(--border);text-align:left;padding:10px 14px}.article-prose th{background:var(--bg-soft);font-weight:700}
