
:root{
  --bg:#faf7f4; --card:#fff; --ink:#2a2126; --muted:#8a7a80;
  --accent:#b0446a; --tint:#f6e7ec; --line:#e8dde1;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#1a1016; --card:#241820; --ink:#f0e6ea; --muted:#9d8a92;
    --accent:#e08fa9; --tint:#33202a; --line:#3a2a32;
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
main{max-width:34rem;margin:0 auto;padding:1.5rem 1.25rem 6rem}
a{color:var(--accent)}
.crumb{font-size:.85rem;text-decoration:none;color:var(--muted)}
.crumb:hover{color:var(--accent)}
h1{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
   font-size:2rem;margin:.5rem 0 .25rem}
.meta{color:var(--muted);font-size:.85rem;margin:0 0 1rem}
.lvl{display:inline-block;background:var(--tint);color:var(--accent);
     border-radius:99px;padding:.05rem .6rem;font-size:.8rem;font-weight:600}
.newnote{background:var(--tint);border-radius:.5rem;padding:.6rem .8rem;
         font-size:.9rem;margin:0 0 1rem}
button.listen{
  background:var(--accent);color:var(--bg);border:0;border-radius:99px;
  padding:.5rem 1.2rem;font-size:.95rem;font-weight:600;cursor:pointer;
}
button.furi{
  background:none;color:var(--muted);border:1px solid var(--line);
  border-radius:99px;padding:.5rem 1rem;font-size:.95rem;cursor:pointer;
  margin-left:.5rem;
}
button.furi.on{color:var(--accent);border-color:var(--accent)}
/* tategaki: columns flow right-to-left; the fixed height makes them
   wrap, and the block scrolls sideways starting from the first column */
.story.vert{writing-mode:vertical-rl;height:min(65vh,30rem);
  overflow-x:auto;overflow-y:hidden;padding-bottom:.4rem}
.story rt{font-size:.48em;color:var(--muted);font-weight:400}
.story:not(.furi) rt{display:none}
.story{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
       font-size:1.45rem;line-height:2.3;margin:1.5rem 0}
.sent{padding:.15rem .5rem;margin:0 -.5rem;border-radius:.25rem}
.sent.playing{background:var(--tint)}
.w{cursor:pointer;border-radius:.2rem}
.w:hover,.w:active{background:var(--tint)}
.w.new{background:var(--tint);box-shadow:inset 0 -2px 0 var(--accent)}
#gloss{position:fixed;left:0;right:0;bottom:0;z-index:9;cursor:pointer}
#gloss>div{max-width:34rem;margin:0 auto;background:var(--card);
  border:1px solid var(--line);border-bottom:0;border-radius:.8rem .8rem 0 0;
  padding:.9rem 1.25rem 1.4rem;box-shadow:0 -6px 30px rgba(0,0,0,.15)}
#gloss .g1{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  font-size:1.6rem}
#gloss .g2{color:var(--muted);font-size:.95rem}
#gloss .g3{font-size:1.05rem;margin-top:.15rem}
#gloss .gn{color:var(--accent);font-size:.75rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em}
.nav{display:flex;justify-content:space-between;gap:1rem;margin:2rem 0;
     font-size:.9rem}
.nav a{text-decoration:none}
.cta{border:1px solid var(--line);border-radius:.8rem;padding:1rem 1.1rem;
     font-size:.92rem;line-height:1.6;color:var(--muted);margin:2rem 0}
.cta b{color:var(--ink)}
.cta .go{display:inline-block;margin-top:.5rem;font-weight:600;text-decoration:none;
     color:var(--accent)}
.cta .go:hover{text-decoration:underline}
footer{color:var(--muted);font-size:.78rem;line-height:1.7;margin-top:2rem;
       border-top:1px solid var(--line);padding-top:1rem}
.row{display:flex;align-items:baseline;gap:.8rem;padding:.55rem .2rem;
     text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.row:hover .t{color:var(--accent)}
.row .t{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
        font-size:1.15rem}
.row .sub{color:var(--muted);font-size:.8rem;margin-left:auto;text-align:right}
.intro p{margin:.6rem 0}
