:root{--night:#1C1220;--shade:#2A1A2E;--shade2:#34213A;--ink:#F3E9EC;--dim:#C9B6BD;--rose:#D9A0B0;--lamp:#E4B36A;--line:rgba(243,233,236,.16);--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
  *{box-sizing:border-box}
  html{background:var(--night);color:var(--ink);font-family:"Newsreader",Georgia,serif;font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
  body{margin:0}
  a{color:var(--rose)}
  a:focus-visible{outline:2px solid var(--lamp);outline-offset:3px}
  ::selection{background:var(--rose);color:var(--night)}
  .bar{border-bottom:1px solid var(--line);font-size:.9rem;color:var(--dim)}
  .bar .in{max-width:70ch;margin:0 auto;padding:18px 22px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
  .bar .brand{color:var(--ink);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:9px}
  .bar .brand img{width:20px;height:20px;border-radius:4px}
  .bar nav{display:flex;gap:16px;flex-wrap:wrap}
  .bar nav a{color:var(--dim);text-decoration:none;border-bottom:1px solid transparent}
  .bar nav a:hover,.bar nav a[aria-current]{color:var(--ink);border-bottom-color:var(--line)}
  main{max-width:70ch;margin:0 auto;padding:40px 22px 80px}
  main.wide{max-width:1040px}
  h1{font-weight:300;font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.1;margin:0 0 8px;letter-spacing:-.01em}
  .meta{color:var(--dim);font-size:.9rem;margin:0 0 28px}
  .meta.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
  h2{font-weight:400;font-size:1.35rem;margin:40px 0 12px;line-height:1.2;border-top:1px solid var(--line);padding-top:18px}
  p{margin:0 0 14px;max-width:66ch}
  .lede{font-size:1.12rem;color:var(--dim);margin:0 0 30px;max-width:56ch}
  .btn{font:inherit;font-size:1rem;font-weight:500;background:var(--rose);color:var(--night);border:0;padding:13px 22px;border-radius:2px;cursor:pointer;text-decoration:none;display:inline-block}
  .btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
  .btn:hover{filter:brightness(1.06)}
  footer{border-top:1px solid var(--line);padding:24px 0 0;margin-top:48px;font-size:.85rem;color:var(--dim);line-height:1.7}
  footer p{margin:0 0 6px}
  footer .legal{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px}
  footer .legal a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
  /* character grid + pages */
  .cast{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:8px 0 0;padding:0;list-style:none}
  @media (max-width:860px){.cast{grid-template-columns:repeat(2,1fr)}}
  @media (max-width:540px){.cast{grid-template-columns:1fr}}
  .cast li{border:1px solid var(--line);border-radius:3px;background:var(--shade);overflow:hidden;display:flex;flex-direction:column}
  .cast a.card{color:inherit;text-decoration:none;display:flex;flex-direction:column;height:100%}
  .cast a.card:hover{background:var(--shade2)}
  .cast img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block;background:var(--shade2)}
  .cast .t{padding:14px 16px 16px}
  .cast strong{display:block;font-weight:500;font-size:1.1rem;line-height:1.2}
  .cast .where{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--lamp);margin:4px 0 8px}
  .cast .tag{color:var(--dim);font-size:.92rem;line-height:1.4;margin:0}
  .portrait-wrap{float:right;width:min(40%,260px);margin:6px 0 18px 26px}
  .portrait-wrap img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;display:block;border:1px solid var(--line)}
  .portrait-wrap small{display:block;color:var(--dim);font-size:.75rem;margin-top:6px;line-height:1.35}
  @media (max-width:600px){.portrait-wrap{float:none;width:100%;max-width:280px;margin:0 0 18px}}
  .opens{border-left:2px solid var(--lamp);padding:4px 0 4px 18px;margin:18px 0 26px;font-style:italic;color:var(--ink);max-width:60ch}
  .facts{font-family:var(--mono);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);display:flex;gap:14px;flex-wrap:wrap;margin:0 0 22px}
  .facts span b{color:var(--ink);font-weight:500}
  .next{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:26px 0 0;clear:both}
  .next .hint{font-size:.9rem;color:var(--dim)}
  .qa h2{border-top:1px solid var(--line)}
  .qa p.a{max-width:64ch}
  details{border-top:1px solid var(--line);padding:14px 0}
  details:last-of-type{border-bottom:1px solid var(--line)}
  summary{cursor:pointer;font-weight:500;list-style:none}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";float:right;color:var(--dim)}
  details[open] summary::after{content:"–"}
  details p{margin:12px 0 0;color:var(--dim);max-width:58ch}
  .siblings{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 0;padding:0;list-style:none}
  .siblings a{display:inline-flex;align-items:center;gap:8px;color:var(--dim);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 5px;font-size:.88rem}
  .siblings a:hover{color:var(--ink);border-color:var(--rose)}
  .siblings img{width:26px;height:26px;border-radius:50%;object-fit:cover;object-position:center top}

  /* Paper grain: a tiny tiled noise, barely there, so large dark surfaces read as paper rather than screen. */
  body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:url("data:image/png;base64,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") repeat;opacity:.55}
  body>*{position:relative;z-index:1}
  @view-transition{navigation:auto}
  @media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
