:root{--bg:#fff6fa;--paper:#ffffff;--ink:#2d2730;--muted:#746c73;--line:rgba(45,39,48,.12);--accent:#e98aaa;--dark:#332a35;--soft:#fdebf2;--mint:#f8edf2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;letter-spacing:.025em;line-height:1.9}a{color:inherit;text-decoration:none}.wrap{width:min(1080px,calc(100% - 36px));margin:auto}header{position:sticky;top:0;z-index:10;background:rgba(255,246,250,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-weight:800}.nav nav{display:flex;gap:22px;font-size:12px}.hero{padding:110px 0 80px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#f6bdd0);right:-170px;top:30px;z-index:-1}.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase}.hero h1{font-family:Georgia,serif;font-size:clamp(54px,9vw,110px);line-height:.92;letter-spacing:-.05em;margin:16px 0 24px}.lead{font-size:clamp(19px,2.5vw,28px);font-weight:700;max-width:780px}.copy{color:var(--muted);max-width:780px}section{padding:80px 0;border-top:1px solid var(--line)}h2{font-family:Georgia,serif;font-size:clamp(38px,6vw,68px);line-height:1;margin:0 0 35px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:var(--paper);padding:28px;border:1px solid var(--line);border-radius:16px}.card h3{font-size:23px;line-height:1.5;margin:8px 0 10px}.meta{font-size:11px;color:var(--muted);letter-spacing:.08em}.profile{background:var(--dark);color:#fff}.profile .copy{color:#ccc}.btn{display:inline-block;border:1px solid currentColor;padding:12px 17px;margin-top:20px}footer{padding:45px 0;color:var(--muted);font-size:12px}@media(max-width:760px){.nav nav{gap:10px;font-size:11px}.grid{grid-template-columns:1fr}.hero:after{width:300px;height:300px;right:-190px}.hero{padding-top:85px}}
.article-wrap{width:min(920px,100%);margin:auto}.article-hero{padding:80px 18px 35px;border-top:0}.article-hero h1{font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(34px,6vw,62px);line-height:1.35;margin:12px 0 18px}.article{width:min(760px,calc(100% - 36px));margin:0 auto;padding:20px 0 80px;font-size:17px}.article p{margin:0 0 1.6em}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.tag{display:inline-block;border:1px solid rgba(233,138,170,.34);padding:4px 9px;font-size:11px;color:#8a5368;background:var(--soft);border-radius:999px}.author{margin:55px 0 30px;padding:24px;border:1px solid var(--line);background:var(--paper)}.author h3{margin-top:0}.article-cover{width:min(920px,calc(100% - 36px));margin:0 auto 30px}.article-cover img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line)}@media(max-width:760px){.article-hero{padding-top:56px}.article{font-size:16px}}

@media(max-width:760px){
  .hero{padding:72px 0 58px}
  .hero:after{width:240px;height:240px;right:-155px;top:62px}
  .hero h1{font-size:clamp(52px,16vw,76px);margin:14px 0 18px}
  .hero .lead{font-size:clamp(18px,5.1vw,22px);line-height:1.65;max-width:92%}
  .hero .copy{font-size:16px;line-height:1.85}
  .hero .btn{margin-top:14px}
}

.blog-count{font-size:13px;color:var(--muted);margin-top:18px}.blog-card{display:flex;flex-direction:column;min-height:250px;transition:transform .2s ease,box-shadow .2s ease}.blog-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.06)}.blog-card h3{flex:1}.readmore{font-size:13px;font-weight:700;margin-top:12px}.new-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:9px;font-weight:800;letter-spacing:.08em}.blog-list{padding-top:52px}@media(max-width:760px){.blog-hero{padding-bottom:42px}.blog-list{padding-top:28px}.blog-card{min-height:auto;padding:22px}.blog-card h3{font-size:20px}.blog-card .copy{font-size:14px}.readmore{margin-top:8px}}

.article-hero{padding-bottom:30px}.article-cover{margin-top:0;margin-bottom:38px}.article-cover img{max-height:520px;object-fit:cover}.article{line-height:2}.article>p:first-child{font-size:18px;font-weight:600}.author{border-radius:12px}.author a{font-weight:700;text-decoration:underline;text-underline-offset:4px}.article-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:28px;margin-top:40px;font-size:13px;font-weight:700}.article-nav a:last-child{text-align:right}.all-articles{text-align:center}.article h2{font-family:inherit;font-size:28px;line-height:1.5;margin:2.2em 0 .7em}@media(max-width:760px){.article-hero h1{font-size:clamp(30px,9vw,42px);line-height:1.45}.article-hero{padding-bottom:22px}.article-cover{margin-bottom:26px}.article-cover img{border-radius:8px}.article{line-height:1.95}.article>p:first-child{font-size:17px}.author{margin-top:42px;padding:20px}.article-nav{grid-template-columns:1fr 1fr;row-gap:18px}.all-articles{grid-column:1/-1;grid-row:2}.article-nav a:last-child{text-align:right}}

/* Personal blog color identity */
.blog-hero{background:linear-gradient(180deg,var(--soft) 0%,var(--bg) 100%)}
.blog-list{background:var(--bg)}
.blog-card:nth-child(3n+2){background:#fffdf9}
.blog-card:nth-child(3n){background:#f8fffc}
.readmore{color:#c65d84}
.article-hero{background:linear-gradient(180deg,var(--soft) 0%,transparent 100%)}
.author{box-shadow:0 10px 32px rgba(100,55,75,.06)}


/* CATEGORY BLOG LAYOUT V2 */
.category-nav-section{padding:58px 0;background:#fff;border-top:1px solid var(--line)}
.category-nav-head,.category-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:26px}
.category-nav-head h2,.category-heading h2{margin:6px 0 8px}
.category-nav-head p,.category-heading p{margin:0;color:var(--muted);line-height:1.8}
.category-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.category-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:17px 18px;font-size:14px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.category-chip:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(100,55,75,.08);border-color:rgba(233,138,170,.45)}
.category-chip b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;background:var(--soft);color:#a64e70;font-size:12px}
.latest-section{padding:68px 0;background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.latest-grid{grid-template-columns:repeat(4,1fr)}
.latest-grid .blog-card{min-height:270px}
.category-section{padding:72px 0}
.category-section:nth-of-type(even){background:rgba(255,255,255,.42)}
.category-count{white-space:nowrap;background:var(--soft);color:#a64e70;padding:8px 13px;border-radius:999px;font-size:12px;font-weight:700}
.category-grid{grid-template-columns:repeat(3,1fr)}
.category-card{min-height:260px}
.back-categories{display:inline-block;margin-top:26px;color:#a64e70;font-size:13px;font-weight:700}
@media(max-width:980px){
  .category-chips{grid-template-columns:repeat(2,1fr)}
  .latest-grid,.category-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .category-nav-section,.latest-section,.category-section{padding:44px 0}
  .category-nav-head,.category-heading{display:block;margin-bottom:20px}
  .category-nav-head h2,.category-heading h2{font-size:34px;margin-top:8px}
  .category-heading .category-count{display:inline-block;margin-top:14px}
  .category-chips{grid-template-columns:1fr 1fr;gap:9px}
  .category-chip{padding:14px 13px;font-size:13px}
  .latest-grid,.category-grid{grid-template-columns:1fr}
  .latest-grid .blog-card,.category-card{min-height:auto}
}

/* Balanced typography for the personal media */
.hero{padding:76px 0 62px}
.hero h1{font-size:clamp(42px,5vw,64px);line-height:1.35;letter-spacing:.015em;margin:14px 0 20px;overflow-wrap:anywhere}
.lead{font-size:clamp(18px,2vw,22px);line-height:1.75}
h2{font-size:clamp(28px,3.5vw,42px);line-height:1.4;margin-bottom:26px;overflow-wrap:anywhere}
.card h3{font-size:21px;line-height:1.6}
.article-hero h1{font-size:clamp(30px,3.8vw,46px);line-height:1.5;overflow-wrap:anywhere}
.category-nav-head h2,.category-heading h2{font-size:clamp(26px,3vw,36px);line-height:1.4}
@media(max-width:760px){
.nav{height:auto;min-height:72px;flex-wrap:wrap;gap:8px;padding:14px 0}
.brand{font-size:15px;line-height:1.5}
.nav nav{width:100%;flex-wrap:wrap;gap:6px 16px;font-size:11px;line-height:1.8}
.hero{padding:48px 0 44px}
.hero h1{font-size:clamp(34px,9vw,42px);line-height:1.4;letter-spacing:.015em;margin:12px 0 18px}
.hero .lead,.lead{font-size:17px;line-height:1.8;max-width:100%}
.hero .copy,.copy{font-size:15px;line-height:1.9}
section{padding:48px 0}
h2,.category-nav-head h2,.category-heading h2{font-size:26px;line-height:1.45;margin-bottom:22px}
.card h3,.blog-card h3{font-size:19px;line-height:1.65}
.article-hero{padding-top:40px}.article-hero h1{font-size:clamp(26px,7.2vw,34px);line-height:1.55}
.article h2{font-size:23px;line-height:1.55}
.article>p:first-child{font-size:16px}.btn{font-size:14px;line-height:1.6;max-width:100%}
}

/* SITE SEARCH */
.site-search{padding:54px 0;background:#fff;border-top:1px solid var(--line)}.site-search h2{margin:5px 0 20px}.search-box{display:flex;align-items:center;gap:12px;max-width:760px;border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:0 18px}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(233,138,170,.12)}.search-box span{font-size:24px;color:var(--muted)}.search-box input{width:100%;border:0;outline:0;background:transparent;padding:17px 0;font:inherit;font-size:16px;color:var(--ink)}.search-status{margin:12px 2px 0;color:var(--muted);font-size:13px}[hidden]{display:none!important}@media(max-width:760px){.site-search{padding:38px 0}.search-box{border-radius:12px;padding:0 14px}.search-box input{font-size:16px;padding:15px 0}}

/* Shared article reading rhythm. Paragraph boundaries are editorial HTML, not CSS. */
.article {
  width: min(680px, calc(100% - 40px));
  font-size: 1.0625rem;
  line-height: 2.05;
  letter-spacing: .025em;
  line-break: strict;
  overflow-wrap: break-word;
}
.article > p { margin: 0 0 1.75em; }
.article > p.article-keypoint { font-weight: 600; }
.article h2 { margin: 2.8em 0 1em; line-height: 1.6; }
.article h3 { line-height: 1.65; margin: 2em 0 .85em; }
.article .author h3 { margin-top: 0; }
@media (max-width: 760px) {
  .article { font-size: 1rem; line-height: 2.1; }
  .article > p { margin-bottom: 1.65em; }
  .article h2 { margin-top: 2.5em; margin-bottom: 1em; }
}


/* Zeroichi series (articles 201–230): mobile-friendly editorial reading layout */
.zeroichi-article { max-width: 680px; }
.zeroichi-article > p { margin: 0 0 1.4em; }
.zeroichi-article h2 { margin: 2.25em 0 .9em; }
.zeroichi-article h3 { margin: 1.8em 0 .75em; }
@media (max-width:760px) {
  .zeroichi-article {
    font-size: 16px;
    line-height: 1.95;
    letter-spacing: .012em;
  }
  .zeroichi-article > p { margin: 0 0 1.35em; }
  .zeroichi-article h2 { margin: 2.1em 0 .8em; font-size: 22px; line-height: 1.5; }
  .zeroichi-article h3 { margin: 1.55em 0 .7em; font-size: 18px; line-height: 1.55; }
}

.site-footer{background:var(--paper);border-top:1px solid var(--line);padding:56px 0;color:var(--ink)}
.site-footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
.site-footer-brand{font-size:22px;font-weight:700;margin:0 0 16px}.site-footer-brand span{display:block;font-size:11px;letter-spacing:.18em;color:var(--muted)}
.site-footer-operator{font-size:13px;overflow-wrap:anywhere}.site-footer-operator p{margin:0 0 8px;line-height:1.7}.site-footer-operator p:last-child{margin-bottom:0}.site-footer h2{font-family:inherit;font-size:14px;line-height:1.6;margin:0 0 16px;letter-spacing:normal}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.site-footer a{color:var(--muted);font-size:14px;display:inline-block;padding:4px 0;text-underline-offset:4px}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer a:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}
.site-footer-copyright{border-top:1px solid var(--line);margin:32px 0 0;padding-top:20px;font-size:12px;color:var(--muted)}
@media(max-width:760px){.site-footer-grid{grid-template-columns:1fr;gap:28px}.site-footer-profiles{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{padding:40px 0}}
