
:root{
  --bg:        #0a0810;
  --bg-2:      #100c18;
  --panel:     #16111f;
  --panel-2:   #1c1727;
  --line:      rgba(201,168,106,.22);
  --lav:       #c9b6e8;
  --lav-soft:  #ddd0f0;
  --ice:       #a9cfe4;
  --ice-soft:  #cfe6f2;
  --gold:      #c9a86a;
  --gold-lt:   #e6cf95;
  --gold-deep: #a2803f;
  --text:      #efeaf4;
  --muted:     #b3aac2;
  --muted-2:   #8a8299;
  --maxw:      1180px;
  --serif-en:  'Cinzel', 'Cormorant Garamond', serif;
  --serif-en2: 'Cormorant Garamond', serif;
  --serif-jp:  'Shippori Mincho', 'Noto Serif JP', serif;
  --sans-jp:   'Noto Sans JP', sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-width:0;background:var(--bg);color:var(--text);
  font:400 16px/1.95 var(--sans-jp);letter-spacing:.02em;
  overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 42% at 15% 8%,rgba(169,207,228,.09),transparent 60%),
    radial-gradient(55% 45% at 85% 20%,rgba(201,182,232,.11),transparent 62%),
    radial-gradient(70% 50% at 50% 100%,rgba(201,168,106,.06),transparent 60%)}
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(--gold-lt);outline-offset:3px}
::selection{background:var(--lav);color:var(--bg)}
.wrap{width:min(var(--maxw),100%);margin-inline:auto;padding-inline:24px;min-width:0}
.wrap-narrow{width:min(800px,100%);margin-inline:auto;padding-inline:24px;min-width:0}

/* Quiet top navigation */
.bh{position:relative;z-index:10;background:rgba(10,8,16,.96);
  border-bottom:1px solid var(--line)}
.bh-in{width:min(var(--maxw),100%);min-height:72px;margin-inline:auto;
  padding:9px 24px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:8px 20px}
.bh-brand{display:inline-flex;align-items:center;min-height:44px;color:var(--lav-soft);
  font-family:var(--serif-en);font-weight:600;font-size:1.35rem;
  letter-spacing:.17em;line-height:1.3}
.bh-brand::after{content:"";width:36px;height:1px;margin-left:13px;
  background:var(--gold)}
.bh-brand:hover{color:var(--gold-lt)}
.bh-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bh-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:9px 18px;border:1px solid var(--line);border-radius:999px;
  color:var(--text);font-size:.875rem;line-height:1.5;
  transition:background .25s,border-color .25s,color .25s}
.bh-nav a:hover,.bh-nav a[aria-current="page"]{border-color:var(--gold);
  background:rgba(201,168,106,.09);color:var(--gold-lt)}

/* Journal introduction */
.blog-hero{position:relative;isolation:isolate;overflow:hidden;padding:72px 0 65px;
  border-bottom:1px solid var(--line);
  background:radial-gradient(ellipse at 80% 0,rgba(201,182,232,.13),transparent 60%),
    linear-gradient(145deg,var(--bg),var(--bg-2) 70%,var(--panel))}
.blog-hero::before{content:"";position:absolute;right:-110px;top:-145px;
  width:420px;aspect-ratio:1;border:1px solid rgba(201,168,106,.19);
  border-radius:50%;box-shadow:0 0 0 32px rgba(201,168,106,.025),
    0 0 0 85px rgba(201,182,232,.025);pointer-events:none}
.blog-hero .wrap{position:relative;z-index:1}
.h-rule{display:flex;align-items:center;gap:13px;max-width:340px}
.h-rule span{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.h-rule em{color:var(--gold-lt);font:500 .875rem/1.5 var(--serif-en);
  letter-spacing:.24em;text-transform:uppercase;font-style:normal}
.blog-hero .h-rule{margin-bottom:22px}
.kicker{display:block;color:var(--gold-lt);font:500 .8125rem/1.5 var(--serif-en);
  letter-spacing:.34em;text-transform:uppercase}
.blog-hero h1{max-width:830px;margin:17px 0 0;color:var(--text);
  font-family:var(--serif-jp);font-weight:600;
  font-size:clamp(1.85rem,4.8vw,3.2rem);line-height:1.55;letter-spacing:.04em}
.blog-hero h1 em{font-style:normal;color:var(--lav-soft)}
.lead{line-height:2}
.blog-hero .lead{max-width:730px;margin:22px 0 0;color:var(--muted);
  font-size:1rem;font-weight:400}
.count{display:inline-flex;align-items:center;min-height:37px;margin-top:28px;
  padding:6px 15px;border:1px solid var(--line);border-radius:999px;
  color:var(--gold-lt);font:500 .875rem/1.5 var(--serif-en);
  letter-spacing:.18em}

/* Categories and reading cards */
.blog-body{padding:0 0 88px;background:var(--bg-2)}
.filter-bar{width:min(var(--maxw),100%);margin:0 auto 32px;padding:34px 24px 0;
  display:flex;flex-wrap:wrap;gap:9px}
.filter-bar button{min-height:44px;max-width:100%;padding:9px 17px;
  background:var(--panel);border:1px solid var(--line);border-radius:999px;
  color:var(--muted);font-family:var(--sans-jp);font-size:.875rem;
  line-height:1.5;cursor:pointer;
  transition:background .25s,border-color .25s,color .25s}
.filter-bar button:hover{color:var(--text);border-color:var(--gold)}
.filter-bar button[aria-pressed="true"]{color:#231a0d;border-color:var(--gold);
  background:linear-gradient(135deg,var(--gold-lt),var(--gold) 55%,var(--gold-deep));
  font-weight:700}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));
  gap:22px;min-width:0}
.post-card{position:relative;display:flex;min-width:0;min-height:245px;flex-direction:column;
  padding:27px 25px 22px;background:var(--panel);border:1px solid var(--line);
  border-radius:12px;box-shadow:0 15px 36px rgba(0,0,0,.14);
  transition:transform .25s,border-color .25s,box-shadow .25s}
.post-card::before{content:"";position:absolute;top:0;left:25px;right:25px;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.post-card:hover{transform:translateY(-3px);border-color:rgba(201,168,106,.58);
  box-shadow:0 22px 45px rgba(0,0,0,.3)}
.post-card.is-hidden{display:none}
.cat{display:inline-flex;align-items:center;align-self:flex-start;min-height:32px;
  padding:4px 12px;border:1px solid var(--line);border-radius:999px;
  background:rgba(201,168,106,.07);color:var(--gold-lt);
  font-size:.8125rem;line-height:1.5}
.post-card h2{margin:19px 0 10px;color:var(--text);font-family:var(--serif-jp);
  font-size:1.125rem;font-weight:600;line-height:1.7}
.post-card p{margin:0 0 19px;color:var(--muted);font-size:.9375rem;line-height:1.9}
.post-card .foot{display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}
.post-card .date{color:var(--muted);font:400 .8125rem/1.5 var(--sans-jp)}
.post-card .more{color:var(--gold-lt);font:600 .875rem/1.5 var(--serif-en);
  letter-spacing:.12em}
.no-hit{grid-column:1/-1;margin:0;padding:38px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:12px;color:var(--muted);
  text-align:center;font-size:1rem;line-height:1.9}
.no-hit[hidden]{display:none}

/* Article masthead */
.post-hero{position:relative;overflow:hidden;padding:42px 0 54px;
  background:radial-gradient(ellipse at 95% 10%,rgba(201,182,232,.12),transparent 56%),
    linear-gradient(150deg,var(--bg-2),var(--bg));border-bottom:1px solid var(--line)}
.post-hero::after{content:"";position:absolute;bottom:0;left:50%;width:210px;height:1px;
  transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.crumb{margin:0 0 24px;color:var(--muted);font-size:.8125rem;
  line-height:1.9;overflow-wrap:anywhere}
.crumb a{display:inline-flex;align-items:center;min-height:40px;color:var(--lav-soft);
  text-decoration:underline;text-decoration-color:var(--gold);
  text-underline-offset:4px}
.crumb a:hover{color:var(--gold-lt)}
.post-hero .cat{background:rgba(201,168,106,.12);border-color:var(--gold);
  color:var(--gold-lt)}
.post-hero h1{margin:22px 0 0;color:var(--text);font-family:var(--serif-jp);
  font-size:clamp(1.65rem,4.2vw,2.5rem);font-weight:600;
  line-height:1.65;letter-spacing:.03em}
.meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 18px;
  margin:21px 0 0;color:var(--muted);font-size:.8125rem;line-height:1.9}
.meta .d{color:var(--gold-lt);font-family:var(--serif-en2);
  font-size:.9375rem;letter-spacing:.05em}

/* Main story */
.post-body{padding:50px 0 0;background:var(--bg)}
.post-article{min-width:0;padding:42px 45px 45px;background:var(--panel);
  border:1px solid var(--line);border-radius:13px;color:var(--text);
  font-size:1rem;line-height:2.05;overflow-wrap:anywhere;
  box-shadow:0 24px 54px rgba(0,0,0,.18)}
.post-article>*:first-child{margin-top:0}
.post-article>*:last-child{margin-bottom:0}
.post-article h2{margin:50px 0 18px;padding:0 0 13px;
  color:var(--lav-soft);font-family:var(--serif-jp);font-weight:600;
  font-size:clamp(1.25rem,2.5vw,1.55rem);line-height:1.65;
  border-bottom:1px solid var(--line)}
.post-article h2::before{content:"";display:inline-block;width:15px;height:1px;
  margin:0 11px 5px 0;background:var(--gold)}
.post-article h3{margin:32px 0 14px;color:var(--gold-lt);
  font-family:var(--serif-jp);font-weight:600;font-size:1.125rem;line-height:1.65}
.post-article p{margin:0 0 23px;color:var(--text);line-height:2.05}
.post-article ul,.post-article ol{margin:0 0 25px;padding-left:1.55em;color:var(--text)}
.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.95}
.post-article li::marker{color:var(--gold)}
.post-article a{color:var(--ice-soft);text-decoration:underline;
  text-decoration-color:var(--gold);text-underline-offset:4px;
  overflow-wrap:anywhere}
.post-article a:hover{color:var(--gold-lt)}
.post-article strong{font-weight:700;color:var(--gold-lt)}
.post-article figure{margin:30px 0}
.post-article figure img,.post-article>img{max-width:100%;height:auto;
  border:1px solid var(--line);border-radius:9px}
.post-article figcaption{margin-top:10px;color:var(--muted);
  font-size:.8125rem;line-height:1.75}
.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 26px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;
  color:var(--text);font-size:.875rem;line-height:1.8}
.post-article th,.post-article td{min-width:110px;padding:11px 14px;
  border:1px solid var(--line);text-align:left;vertical-align:top}
.post-article th{background:var(--panel-2);color:var(--gold-lt);font-weight:700}
.post-article td{background:var(--bg-2)}
.post-article blockquote{margin:28px 0;padding:19px 22px;
  background:var(--bg-2);border-left:3px solid var(--gold);
  color:var(--muted);line-height:2}
.post-article blockquote p{color:inherit;margin-bottom:0}
.post-article details{margin:17px 0 23px;padding:0 19px 16px;
  border:1px solid var(--line);border-radius:8px;background:var(--bg-2)}
.post-article summary{min-height:48px;padding:12px 3px;cursor:pointer;
  color:var(--lav-soft);font-weight:700;line-height:1.7}
.post-article details[open] summary{margin-bottom:12px;border-bottom:1px solid var(--line)}
.post-article details>*:last-child{margin-bottom:0}
.post-tags{display:flex;flex-wrap:wrap;gap:9px;margin:29px 0 0}
.post-tags span{display:inline-flex;align-items:center;min-height:35px;
  padding:5px 12px;border:1px solid var(--line);border-radius:999px;
  color:var(--muted);background:var(--bg-2);font-size:.8125rem;line-height:1.5}
.bcta{margin:32px 0 0;padding:25px;background:linear-gradient(135deg,var(--panel-2),var(--bg-2));
  border:1px solid var(--line);border-radius:10px;text-align:center}
.bcta-btn{display:inline-flex;align-items:center;justify-content:center;min-height:53px;
  max-width:100%;padding:12px 31px;border-radius:999px;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold) 55%,var(--gold-deep));
  color:#231a0d;font-size:.9375rem;font-weight:700;line-height:1.5;text-align:center;
  box-shadow:0 10px 34px rgba(201,168,106,.2);
  transition:transform .25s,box-shadow .25s}
.bcta-btn:hover{transform:translateY(-2px);
  box-shadow:0 16px 42px rgba(201,168,106,.34)}

/* Previous, next and related stories */
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;
  margin:38px 0 0}
.post-nav a{display:block;min-height:84px;padding:19px 21px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  overflow-wrap:anywhere}
.post-nav a:hover{border-color:var(--gold)}
.post-nav .prev{grid-column:1}
.post-nav .next{grid-column:2;text-align:right}
.post-nav .lbl{display:block;color:var(--gold-lt);
  font:600 .8125rem/1.5 var(--serif-en);letter-spacing:.12em}
.post-nav .ttl{display:block;margin-top:7px;color:var(--text);
  font-size:.875rem;line-height:1.8}
.related{padding:69px 0 23px;background:var(--bg)}
.related .head{margin:0 auto 29px;text-align:center}
.related .h-rule{margin:0 auto 13px}
.related .jp-h{margin:0;color:var(--text);font-family:var(--serif-jp);
  font-size:1.5rem;font-weight:600;line-height:1.55}
.related .post-card{background:var(--panel)}
.post-back{margin:0;padding:27px 24px 78px;background:var(--bg);text-align:center}
.post-back a{display:inline-flex;align-items:center;justify-content:center;
  min-height:47px;max-width:100%;padding:10px 23px;border:1px solid var(--line);
  border-radius:999px;color:var(--lav-soft);font-size:.875rem;line-height:1.7}
.post-back a:hover{border-color:var(--gold);background:rgba(201,168,106,.07)}

/* Closing band */
.bf{padding:53px 24px 58px;background:var(--bg-2);
  border-top:1px solid var(--line);color:var(--muted);
  text-align:center;font-size:.875rem;line-height:2}
.bf-brand{margin:0 0 18px;color:var(--lav-soft);
  font:600 1.5rem/1.25 var(--serif-en);letter-spacing:.18em}
.bf-brand::after{content:"";display:block;width:76px;height:1px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.bf-corp{max-width:720px;margin:0 auto 14px;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(--lav-soft);text-decoration:underline;text-decoration-color:var(--gold);
  text-underline-offset:4px}
.bf-corp a:hover{color:var(--gold-lt)}

@media(max-width:640px){
  .wrap,.wrap-narrow{padding-inline:18px}
  .bh-in{padding-inline:18px;min-height:62px}
  .blog-hero{padding:49px 0 45px}
  .blog-hero::before{right:-160px;width:350px}
  .filter-bar{padding:26px 18px 0;margin-bottom:25px;gap:8px}
  .filter-bar button{padding-inline:14px}
  .post-grid{grid-template-columns:1fr;gap:16px}
  .post-card{min-height:0;padding:23px 20px 19px}
  .post-hero{padding:30px 0 42px}
  .post-body{padding-top:28px}
  .post-article{padding:29px 21px 32px}
  .post-article h2{margin-top:41px}
  .post-nav{grid-template-columns:1fr}
  .post-nav .prev,.post-nav .next{grid-column:auto;text-align:left}
  .related{padding-top:53px}
  .bf{padding-inline:18px}
}
@media(max-width:360px){
  .bh-brand{font-size:1.13rem;letter-spacing:.1em}
  .bh-brand::after{width:22px;margin-left:9px}
  .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}
}
