
:root{
  --ink:#0a0a0d;
  --ink2:#14141a;
  --panel:#17171e;
  --pink:#ff1e83;
  --pink-soft:#ff5aa6;
  --yellow:#ffe500;
  --paper:#f5f2ea;
  --paper-dim:#c9c6bf;
  --line:rgba(255,255,255,.12);
  --serif:"Shippori Mincho",serif;
  --sans:"Noto Sans JP",sans-serif;
  --disp:"Oswald",sans-serif;
  --mono:"JetBrains Mono",monospace;
  --wrap:1160px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-width:0;background:var(--ink);color:var(--paper);
  font:400 16px/1.9 var(--sans);letter-spacing:.02em;overflow-wrap:anywhere;
  -webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{overflow-wrap:anywhere}
:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
::selection{background:var(--pink);color:var(--ink)}
.wrap{width:min(var(--wrap),100%);margin-inline:auto;padding-inline:22px;min-width:0}
.wrap-narrow{width:min(780px,100%);margin-inline:auto;padding-inline:22px;min-width:0}

/* Navigation borrows the top page's dark bar and display lettering. */
.bh{position:relative;z-index:10;background:rgba(10,10,13,.96);
  border-bottom:1px solid var(--line)}
.bh-in{width:min(var(--wrap),100%);min-height:68px;margin-inline:auto;
  padding:8px 22px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:8px 18px}
.bh-brand{display:inline-flex;align-items:center;min-height:44px;font-family:var(--disp);
  font-size:1.25rem;font-weight:700;letter-spacing:.22em;line-height:1.25;
  text-transform:uppercase;white-space:normal}
.bh-brand::before{content:"";width:30px;height:25px;flex:none;margin-right:11px;
  background:repeating-linear-gradient(90deg,var(--paper) 0 2px,transparent 2px 4px,
    var(--paper) 4px 7px,transparent 7px 10px,var(--paper) 10px 11px,transparent 11px 14px)}
.bh-brand:hover,.bh-brand:focus-visible{color:var(--yellow)}
.bh-nav{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.bh-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:9px 17px;border:1px solid var(--line);border-radius:4px;
  color:var(--paper);font-size:.875rem;font-weight:700;letter-spacing:.07em;
  transition:color .2s,border-color .2s,background .2s}
.bh-nav a:hover,.bh-nav a[aria-current="page"]{border-color:var(--pink);
  background:rgba(255,30,131,.14);color:var(--paper)}

/* Journal masthead */
.blog-hero{position:relative;isolation:isolate;overflow:hidden;padding:64px 0 58px;
  background:linear-gradient(135deg,var(--ink) 7%,var(--ink2) 55%,#270e1b);
  border-bottom:3px solid var(--pink)}
.blog-hero::before{content:"";position:absolute;right:-8%;top:10%;width:280px;height:95%;
  opacity:.13;transform:rotate(12deg);pointer-events:none;
  background:repeating-linear-gradient(90deg,var(--paper) 0 3px,transparent 3px 7px,
    var(--paper) 7px 11px,transparent 11px 14px,var(--paper) 14px 16px,transparent 16px 23px)}
.blog-hero .wrap{position:relative;z-index:1}
.h-rule{display:flex;align-items:center;gap:12px;max-width:360px}
.h-rule span{height:1px;flex:1;background:var(--pink)}
.h-rule em{font-style:normal;font-family:var(--disp);font-size:.875rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--yellow)}
.blog-hero .h-rule{margin-bottom:22px}
.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);
  color:var(--pink-soft);font-size:.8125rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase}
.kicker::before{content:"";width:24px;height:1px;background:var(--pink)}
.blog-hero h1{max-width:850px;margin:12px 0 0;font-family:var(--serif);
  font-size:clamp(1.9rem,4.8vw,3.35rem);font-weight:800;line-height:1.45;
  letter-spacing:.025em}
.blog-hero h1 em{font-style:normal;color:var(--pink-soft)}
.lead{line-height:1.9}
.blog-hero .lead{max-width:720px;margin:21px 0 0;color:var(--paper-dim);
  font-size:1rem}
.count{display:inline-flex;align-items:center;min-height:34px;margin-top:26px;
  padding:5px 11px;background:var(--yellow);color:var(--ink);
  font:700 .875rem/1.45 var(--disp);letter-spacing:.13em}

/* Filters and article cards */
.blog-body{padding:0 0 82px;background:var(--ink2)}
.filter-bar{width:min(var(--wrap),100%);margin:0 auto 30px;padding:31px 22px 0;
  display:flex;flex-wrap:wrap;gap:10px}
.filter-bar button{min-height:44px;max-width:100%;padding:9px 16px;border:1px solid var(--line);
  border-radius:4px;background:var(--panel);color:var(--paper-dim);
  font-family:var(--sans);font-size:.875rem;font-weight:700;line-height:1.5;
  cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.filter-bar button:hover{border-color:var(--pink);color:var(--paper)}
.filter-bar button[aria-pressed="true"]{border-color:var(--yellow);
  background:var(--yellow);color:var(--ink)}
.filter-bar button:focus-visible{outline-offset:2px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,295px),1fr));
  gap:20px;min-width:0}
.post-card{position:relative;display:flex;min-width:0;min-height:230px;flex-direction:column;
  padding:25px 23px 20px;background:var(--panel);border:1px solid var(--line);
  border-top:3px solid var(--pink);border-radius:7px;
  transition:transform .2s,border-color .2s,box-shadow .2s}
.post-card:hover{transform:translateY(-3px);border-color:var(--pink);
  box-shadow:0 16px 35px rgba(0,0,0,.32)}
.post-card.is-hidden{display:none}
.cat{display:inline-flex;align-items:center;align-self:flex-start;min-height:31px;
  padding:4px 10px;background:rgba(255,30,131,.15);color:var(--pink-soft);
  border:1px solid rgba(255,30,131,.42);border-radius:3px;
  font-size:.8125rem;font-weight:700;line-height:1.4}
.post-card h2{margin:17px 0 9px;font-family:var(--serif);font-size:1.125rem;
  font-weight:700;line-height:1.6;color:var(--paper)}
.post-card p{margin:0 0 18px;font-size:.9375rem;line-height:1.85;color:var(--paper-dim)}
.post-card .foot{display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.post-card .date{color:var(--paper-dim);font:400 .8125rem/1.5 var(--mono)}
.post-card .more{color:var(--yellow);font:700 .875rem/1.5 var(--disp);
  letter-spacing:.12em}
.no-hit{grid-column:1/-1;margin:0;padding:36px 22px;background:var(--panel);
  border:1px solid var(--line);border-radius:7px;color:var(--paper-dim);
  text-align:center;font-size:1rem;line-height:1.8}
.no-hit[hidden]{display:none}

/* Article header */
.post-hero{position:relative;overflow:hidden;padding:38px 0 46px;
  background:linear-gradient(135deg,var(--ink2),var(--ink) 55%,#240d1a);
  border-bottom:3px solid var(--pink)}
.post-hero::after{content:"";position:absolute;right:0;bottom:0;width:30%;height:8px;
  background:repeating-linear-gradient(120deg,var(--yellow) 0 18px,var(--ink) 18px 36px)}
.crumb{margin:0 0 22px;color:var(--paper-dim);font-size:.8125rem;
  line-height:1.8;overflow-wrap:anywhere}
.crumb a{display:inline-flex;align-items:center;min-height:40px;color:var(--paper);
  text-decoration:underline;text-decoration-color:var(--pink);text-underline-offset:4px}
.crumb a:hover{color:var(--yellow)}
.post-hero .cat{background:var(--pink);border-color:var(--pink);color:var(--ink)}
.post-hero h1{margin:19px 0 0;font-family:var(--serif);font-weight:800;
  font-size:clamp(1.65rem,4.4vw,2.65rem);line-height:1.55;letter-spacing:.02em}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 18px;margin:20px 0 0;
  color:var(--paper-dim);font-size:.8125rem;line-height:1.8}
.meta .d{font-family:var(--mono);color:var(--yellow)}

/* Long reading area */
.post-body{padding:46px 0 0;background:var(--ink)}
.post-article{min-width:0;padding:39px 42px 42px;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;color:var(--paper);
  font-size:1rem;line-height:2;overflow-wrap:anywhere}
.post-article>*:first-child{margin-top:0}
.post-article>*:last-child{margin-bottom:0}
.post-article h2{margin:48px 0 18px;padding:0 0 13px 16px;
  border-bottom:1px solid var(--line);border-left:4px solid var(--pink);
  font-family:var(--serif);font-weight:800;font-size:clamp(1.25rem,2.5vw,1.55rem);
  line-height:1.55;color:var(--paper)}
.post-article h3{margin:32px 0 13px;padding-left:12px;border-left:2px solid var(--yellow);
  font-family:var(--serif);font-weight:700;font-size:1.125rem;
  line-height:1.6;color:var(--yellow)}
.post-article p{margin:0 0 22px;color:var(--paper);line-height:2}
.post-article ul,.post-article ol{margin:0 0 24px;padding-left:1.55em;color:var(--paper)}
.post-article ul{list-style:disc}
.post-article ol{list-style:decimal}
.post-article li{margin:0 0 9px;padding-left:3px;line-height:1.9}
.post-article li::marker{color:var(--pink-soft)}
.post-article a{color:var(--yellow);text-decoration:underline;
  text-decoration-color:rgba(255,229,0,.62);text-underline-offset:4px;
  overflow-wrap:anywhere}
.post-article a:hover{text-decoration-color:var(--yellow);color:var(--paper)}
.post-article strong{font-weight:800;color:var(--yellow)}
.post-article figure{margin:28px 0}
.post-article figure img,.post-article>img{max-width:100%;height:auto;border-radius:5px;
  border:1px solid var(--line)}
.post-article figcaption{margin-top:9px;color:var(--paper-dim);
  font-size:.8125rem;line-height:1.7}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.post-article table{display:block;width:100%;max-width:100%;margin:0 0 24px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;
  color:var(--paper);font-size:.875rem;line-height:1.7}
.post-article th,.post-article td{min-width:110px;padding:11px 13px;
  border:1px solid var(--line);text-align:left;vertical-align:top}
.post-article th{background:#29212a;color:var(--yellow);font-weight:700}
.post-article td{background:var(--ink2)}
.post-article blockquote{margin:26px 0;padding:17px 20px;
  background:var(--ink2);border-left:4px solid var(--pink);
  color:var(--paper-dim);line-height:1.9}
.post-article blockquote p{color:inherit;margin-bottom:0}
.post-article details{margin:16px 0 22px;padding:0 18px 14px;
  border:1px solid var(--line);border-left:3px solid var(--pink);
  border-radius:4px;background:var(--ink2)}
.post-article summary{min-height:48px;padding:12px 2px;cursor:pointer;
  color:var(--paper);font-weight:700;line-height:1.6}
.post-article details[open] summary{margin-bottom:11px;border-bottom:1px solid var(--line)}
.post-article details>*:last-child{margin-bottom:0}
.post-tags{display:flex;flex-wrap:wrap;gap:9px;margin:27px 0 0}
.post-tags span{display:inline-flex;align-items:center;min-height:35px;
  padding:5px 11px;border:1px solid var(--line);border-radius:3px;
  background:var(--ink2);color:var(--paper-dim);font-size:.8125rem;line-height:1.5}
.bcta{margin:30px 0 0;padding:22px;background:var(--ink2);
  border:1px solid var(--line);border-left:4px solid var(--yellow);text-align:center}
.bcta-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;
  max-width:100%;padding:12px 25px;background:var(--pink);color:var(--ink);
  border-radius:999px;font-size:.9375rem;font-weight:800;line-height:1.5;
  text-align:center;box-shadow:0 12px 28px rgba(255,30,131,.22);
  transition:transform .2s,box-shadow .2s}
.bcta-btn:hover{transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(255,30,131,.36)}

/* Surrounding articles */
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;
  margin:35px 0 0}
.post-nav a{display:block;min-height:80px;padding:17px 19px;background:var(--panel);
  border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere}
.post-nav a:hover{border-color:var(--pink)}
.post-nav .prev{grid-column:1}
.post-nav .next{grid-column:2;text-align:right}
.post-nav .lbl{display:block;color:var(--yellow);font:700 .8125rem/1.5 var(--disp);
  letter-spacing:.13em}
.post-nav .ttl{display:block;margin-top:6px;color:var(--paper);
  font-size:.875rem;line-height:1.75}
.related{padding:65px 0 20px;background:var(--ink)}
.related .head{margin:0 auto 27px;text-align:center}
.related .h-rule{margin:0 auto 11px}
.related .jp-h{margin:0;font-family:var(--serif);font-size:1.5rem;
  line-height:1.5;color:var(--paper)}
.related .post-card{background:var(--panel)}
.post-back{margin:0;padding:26px 22px 76px;background:var(--ink);text-align:center}
.post-back a{display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;max-width:100%;padding:10px 20px;border:1px solid var(--pink);
  border-radius:4px;color:var(--paper);font-size:.875rem;line-height:1.6}
.post-back a:hover{background:rgba(255,30,131,.14)}

/* Footer */
.bf{padding:48px 22px 54px;background:var(--ink2);border-top:1px solid var(--line);
  color:var(--paper-dim);text-align:center;font-size:.875rem;line-height:1.9}
.bf-brand{margin:0 0 15px;color:var(--paper);font:700 1.45rem/1.25 var(--disp);
  letter-spacing:.24em}
.bf-brand::after{content:"";display:block;width:55px;height:3px;
  margin:13px auto 0;background:var(--pink)}
.bf-corp{max-width:700px;margin:0 auto 13px;overflow-wrap:anywhere}
.bf-corp:last-child{margin-bottom:0}
.bf-corp a{display:inline-flex;align-items:center;min-height:40px;
  margin-inline:2px;color:var(--paper);text-decoration:underline;
  text-decoration-color:var(--pink);text-underline-offset:4px}
.bf-corp a:hover{color:var(--yellow)}

@media(max-width:640px){
  .wrap,.wrap-narrow{padding-inline:18px}
  .bh-in{padding-inline:18px;min-height:60px}
  .blog-hero{padding:46px 0 42px}
  .blog-hero::before{width:150px;right:-30px}
  .filter-bar{padding:24px 18px 0;margin-bottom:25px;gap:8px}
  .filter-bar button{padding-inline:13px}
  .post-grid{grid-template-columns:1fr;gap:15px}
  .post-card{min-height:0;padding:22px 19px 18px}
  .post-hero{padding:27px 0 38px}
  .post-body{padding-top:26px}
  .post-article{padding:27px 20px 30px}
  .post-article h2{margin-top:38px}
  .post-nav{grid-template-columns:1fr}
  .post-nav .prev,.post-nav .next{grid-column:auto;text-align:left}
  .related{padding-top:50px}
  .bf{padding-inline:18px}
}
@media(max-width:360px){
  .bh-brand{font-size:1.1rem;letter-spacing:.12em}
  .bh-brand::before{width:22px;margin-right:8px}
  .bh-nav a{padding-inline:12px}
  .post-article{padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .post-card,.bh-nav a,.filter-bar button,.bcta-btn{transition:none}
  .post-card:hover,.bcta-btn:hover{transform:none}
}
