:root {
  color-scheme: dark;
  --bg:#0b0a09; --bg2:#14110d; --ink:#e9dfcc; --muted:#a8987c; --dim:#7b6d57;
  --gold:#d4ad62; --gold2:#f3d18a; --brass:#9b7a3d; --line:rgba(212,173,98,.22);
  --paper:#efe4cb; --paper2:#e2d1ad; --pink:#2b2117; --pmuted:#6e5b40; --blood:#8e2f22;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "Noto Serif CJK SC", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --display: "Bodoni 72", Didot, "Bodoni MT", "Playfair Display", "Iowan Old Style", Georgia, "Noto Serif SC", "Songti SC", "Noto Serif CJK SC", serif;
  --sans: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans", "Noto Sans CJK SC", sans-serif;
}
:lang(ja) { --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Noto Serif JP", "Noto Serif CJK JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Source Han Serif JP", serif; }
:lang(zh) { --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin:0; min-height:100vh; color:var(--ink); font-family:var(--serif);
  background:
    radial-gradient(1200px 700px at 12% -10%, rgba(242,184,75,.16), transparent 60%),
    radial-gradient(900px 600px at 100% 0%, rgba(90,110,130,.14), transparent 65%),
    radial-gradient(1000px 800px at 50% 120%, rgba(120,60,30,.18), transparent 60%),
    linear-gradient(180deg, #0e0c0a 0%, #0b0a09 50%, #080706 100%);
  background-attachment: fixed;
  overflow-x:hidden;
}
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1; opacity:.07; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5  0 0 0 0 .4  0 0 0 0 .3  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E"); background-size:220px 220px;
}
::selection { background:rgba(212,173,98,.35); color:#fff8e6; }
a { color:var(--gold2); }
:focus-visible { outline:2px solid var(--gold2); outline-offset:3px; border-radius:6px; }

/* fog & vignette */
.fog { position:fixed; inset:-20%; pointer-events:none; z-index:-1; overflow:hidden; }
.fog i { position:absolute; display:block; width:70vmax; height:40vmax; border-radius:50%; filter:blur(60px); opacity:.16;
  background:radial-gradient(closest-side, rgba(200,205,210,.55), rgba(200,205,210,0)); animation:drift 60s ease-in-out infinite alternate; }
.fog i:nth-child(1) { left:-10%; top:20%; }
.fog i:nth-child(2) { right:-15%; top:50%; animation-duration:80s; animation-delay:-20s; opacity:.12; }
.fog i:nth-child(3) { left:30%; top:75%; animation-duration:95s; animation-delay:-40s; opacity:.10;
  background:radial-gradient(closest-side, rgba(242,184,75,.35), rgba(242,184,75,0)); }
@keyframes drift { 0% { transform:translate3d(-6vw,0,0) scale(1); } 50% { transform:translate3d(8vw,-3vh,0) scale(1.15); } 100% { transform:translate3d(-2vw,4vh,0) scale(1.05); } }
.vignette { position:fixed; inset:0; pointer-events:none; z-index:-1;
  background:radial-gradient(ellipse at 50% 40%, transparent 55%, rgba(0,0,0,.55) 100%); }

/* progress */
.progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:60; background:rgba(255,255,255,.04); }
.progress i { display:block; height:100%; width:100%; transform-origin:0 50%; transform:scaleX(var(--p,0));
  background:linear-gradient(90deg, #7a5a24, var(--gold), #fff0c2); box-shadow:0 0 12px rgba(243,209,138,.7); }

/* top bar */
.topbar { position:sticky; top:0; z-index:50; display:flex; align-items:center; gap:16px; padding:12px clamp(16px,3vw,36px);
  background:linear-gradient(180deg, rgba(11,10,9,.92), rgba(11,10,9,.72)); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-family:var(--display);
  letter-spacing:.08em; font-size:17px; margin-right:auto; white-space:nowrap; }
.brand .glass { width:26px; height:26px; color:var(--gold); filter:drop-shadow(0 0 6px rgba(243,209,138,.45)); transition:transform .4s ease; }
.brand:hover .glass { transform:rotate(-18deg) scale(1.08); }
.langs { display:flex; padding:3px; gap:2px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.03); }
.langs a { font-family:var(--sans); font-size:13px; color:var(--muted); text-decoration:none; padding:5px 12px; border-radius:999px; transition:color .2s, background .2s; }
.langs a:hover { color:var(--gold2); }
.langs a.on { color:#1a140c; background:linear-gradient(180deg, var(--gold2), var(--gold)); box-shadow:0 0 14px rgba(212,173,98,.35); }
.menu-btn { display:none; align-items:center; gap:8px; font:14px var(--sans); color:var(--ink); background:transparent;
  border:1px solid var(--line); border-radius:10px; padding:7px 10px; cursor:pointer; }
.burger { display:inline-grid; gap:3px; }
.burger i { display:block; width:16px; height:2px; background:var(--gold); border-radius:2px; }

/* layout */
.wrap { position:relative; max-width:1240px; margin:0 auto; padding:34px clamp(16px,3vw,36px) 80px;
  display:grid; grid-template-columns:270px minmax(0,1fr); gap:clamp(24px,4vw,56px); }
.main { min-width:0; max-width:46em; width:100%; justify-self:center; }

/* TOC */
.toc { position:sticky; top:84px; align-self:start; max-height:calc(100vh - 110px); overflow:auto; padding:20px 16px 16px;
  border:1px solid var(--line); border-radius:18px;
  background:linear-gradient(180deg, rgba(30,25,18,.85), rgba(16,13,10,.85)); box-shadow:0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,240,200,.06);
  scrollbar-width:thin; scrollbar-color:var(--brass) transparent; }
.toc-head { display:flex; align-items:baseline; gap:10px; padding:0 8px 12px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.toc h2 { margin:0; font-family:var(--display); font-weight:500; font-size:20px; letter-spacing:.12em; color:var(--gold2); }
.toc-count { font:12px var(--sans); color:var(--dim); letter-spacing:.06em; }
.toc-close { display:none; margin-left:auto; background:none; border:0; color:var(--muted); font-size:28px; line-height:1; cursor:pointer; }
.toc-list a { position:relative; display:flex; gap:12px; align-items:baseline; padding:10px 10px; margin:2px 0; border-radius:10px;
  text-decoration:none; color:var(--muted); transition:background .25s, color .25s, transform .25s; }
.toc-list a:hover { color:var(--ink); background:rgba(212,173,98,.07); transform:translateX(3px); }
.toc-list .tn { flex:0 0 2.4em; font-family:var(--display); font-size:13px; letter-spacing:.06em; color:var(--brass); text-align:right; }
.toc-list .tt { font-size:15px; line-height:1.45; }
.toc-list a.on { color:#fff3d6; background:linear-gradient(90deg, rgba(212,173,98,.22), rgba(212,173,98,.04)); }
.toc-list a.on::before { content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:3px;
  background:var(--gold2); box-shadow:0 0 10px var(--gold2); }
.toc-list a.on .tn { color:var(--gold2); }
.toc-lamp { display:flex; justify-content:center; padding-top:14px; opacity:.85; }
.toc-lamp .lamp { width:46px; height:auto; }

/* lamp */
.lamp-halo { animation:flicker 6s infinite; transform-origin:32px 34px; }
.lamp-flame { animation:flame 3.2s infinite; transform-origin:32px 40px; }
@keyframes flicker { 0%,100% { opacity:.85; } 7% { opacity:.6; } 9% { opacity:.9; } 40% { opacity:.75; } 42% { opacity:.95; } 70% { opacity:.8; } 72% { opacity:.55; } 74% { opacity:.88; } }
@keyframes flame { 0%,100% { transform:scale(1,1); } 30% { transform:scale(.94,1.06); } 60% { transform:scale(1.04,.95); } }

/* chapter header */
.chead { text-align:center; padding:18px 0 30px; }
.kicker { margin:0 0 6px; font:12px var(--sans); letter-spacing:.32em; text-transform:uppercase; color:var(--dim); }
.numeral { position:relative; display:inline-block; margin:6px 0 0; }
.numeral::before { content:""; position:absolute; left:50%; top:50%; width:260px; height:260px; transform:translate(-50%,-50%);
  background:radial-gradient(closest-side, rgba(242,184,75,.22), transparent); filter:blur(8px); animation:flicker 7s infinite; z-index:-1; }
.numeral span { display:block; font-family:var(--display); font-size:clamp(84px,13vw,150px); line-height:1; font-weight:400; letter-spacing:.04em;
  background:linear-gradient(180deg, #fff4d2 0%, #f0c873 38%, #a77b32 70%, #5c3f17 100%); -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 4px 18px rgba(212,173,98,.25)); }
.chlabel { margin:4px 0 2px; font-size:15px; letter-spacing:.42em; color:var(--gold); text-indent:.42em; }
.chead h1 { margin:6px 0 10px; font-family:var(--serif); font-weight:500; font-size:clamp(28px,4.2vw,44px); line-height:1.25; letter-spacing:.04em; color:#f6ecd8;
  text-shadow:0 0 30px rgba(242,184,75,.18); }
.orn { display:block; width:min(260px,70%); height:24px; margin:8px auto 0; color:var(--brass); }

/* paper */
.paper { position:relative; max-width:38em; margin:0 auto; padding:clamp(28px,5vw,58px) clamp(22px,5vw,62px) clamp(26px,4vw,44px);
  color:var(--pink); border-radius:6px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5  0 0 0 0 .4  0 0 0 0 .3  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E"),
    radial-gradient(120% 80% at 50% 0%, #f5ecd6 0%, var(--paper) 45%, var(--paper2) 100%);
  background-size:220px 220px, auto; background-blend-mode:multiply, normal;
  box-shadow:0 0 0 1px rgba(120,90,40,.35), 0 0 0 6px rgba(20,16,11,.9), 0 0 0 7px rgba(212,173,98,.35), 0 30px 80px rgba(0,0,0,.65), inset 0 0 80px rgba(120,80,30,.22); }
.paper::before, .paper::after { content:""; position:absolute; width:46px; height:46px; pointer-events:none; opacity:.55;
  border:1.5px solid #8a6a36; }
.paper::before { top:12px; left:12px; border-right:0; border-bottom:0; border-top-left-radius:4px; }
.paper::after { bottom:12px; right:12px; border-left:0; border-top:0; border-bottom-right-radius:4px; }
.paper p { margin:0 0 1.15em; font-size:clamp(17px,1.25vw,19px); line-height:1.9; text-align:justify; hyphens:auto; }
.paper.lang-zh p, .paper.lang-ja p { text-indent:2em; letter-spacing:.02em; text-align:justify; line-break:strict; }
.paper.lang-en p + p { text-indent:1.4em; }
.paper > p:first-child { text-indent:0; }
.paper > p:first-child::first-letter { float:left; font-family:var(--display); font-size:3.6em; line-height:.9; padding:.06em .12em 0 0; color:var(--blood);
  text-shadow:1px 1px 0 rgba(255,255,255,.4); }
.paper.lang-zh > p:first-child::first-letter, .paper.lang-ja > p:first-child::first-letter { font-family:var(--serif); font-size:2.9em; line-height:1; padding:.02em .1em 0 0; }
.paper .next { margin:1.8em 0 0; text-align:center !important; text-indent:0 !important; font-style:italic; color:var(--pmuted); font-size:15px; letter-spacing:.1em; }
.paper .next span { color:var(--blood); font-style:normal; margin-right:.3em; }

/* pager */
.pager { display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:stretch; max-width:38em; margin:34px auto 0; }
.pn { display:flex; flex-direction:column; gap:4px; padding:14px 18px; border-radius:14px; text-decoration:none; color:var(--ink);
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(36,29,20,.8), rgba(18,15,11,.8));
  transition:transform .25s, border-color .25s, box-shadow .25s; min-width:0; }
.pn.next { text-align:right; }
.pn:hover { transform:translateY(-2px); border-color:rgba(243,209,138,.6); box-shadow:0 10px 30px rgba(0,0,0,.4), 0 0 24px rgba(212,173,98,.18); }
.pn .pl { font:12px var(--sans); letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.pn .pt { font-size:15px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pn.disabled { visibility:hidden; }
.pos { align-self:center; font-family:var(--display); color:var(--dim); letter-spacing:.12em; font-size:14px; }

/* comments */
.comments { max-width:38em; margin:46px auto 0; padding:26px clamp(18px,3vw,30px) 22px; border-radius:18px;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(28,23,17,.85), rgba(14,12,9,.85)); box-shadow:0 20px 60px rgba(0,0,0,.4); }
.comments h2 { margin:0 0 16px; font-family:var(--display); font-weight:500; font-size:22px; letter-spacing:.1em; color:var(--gold2); display:flex; align-items:center; gap:10px; }
.ccount { font:12px var(--sans); color:#1a140c; background:var(--gold); border-radius:999px; padding:2px 9px; letter-spacing:0; }
.note { margin:0 0 14px; padding:10px 14px; border-radius:10px; font:14px var(--sans); color:#d9f0c8; background:rgba(90,140,70,.15); border:1px solid rgba(140,190,110,.3); }
.cform { display:grid; gap:12px; margin-bottom:20px; }
.fld { display:grid; gap:6px; }
.fld span { font:12px var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
input, textarea, button { font:inherit; }
input, textarea { width:100%; color:var(--ink); border:1px solid rgba(212,173,98,.25); background:rgba(0,0,0,.35); border-radius:10px; padding:11px 13px;
  transition:border-color .2s, box-shadow .2s, background .2s; }
input::placeholder, textarea::placeholder { color:#6f6350; }
input:focus, textarea:focus { outline:none; border-color:var(--gold); background:rgba(0,0,0,.5); box-shadow:0 0 0 3px rgba(212,173,98,.18), 0 0 20px rgba(212,173,98,.12); }
textarea { min-height:110px; resize:vertical; line-height:1.7; }
.factions { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.counter { font:12px var(--sans); color:var(--dim); }
button[type=submit], .btn { cursor:pointer; color:#1a140c; font-family:var(--sans); font-weight:600; letter-spacing:.12em; font-size:14px; padding:10px 22px; border:0; border-radius:10px;
  background:linear-gradient(180deg, #f6d995, #d4ad62 55%, #a8803c); box-shadow:0 6px 20px rgba(212,173,98,.25), inset 0 1px 0 rgba(255,255,255,.5); transition:transform .2s, box-shadow .2s, filter .2s; }
button[type=submit]:hover, .btn:hover { transform:translateY(-1px); filter:brightness(1.06); box-shadow:0 10px 28px rgba(212,173,98,.35), inset 0 1px 0 rgba(255,255,255,.5); }
button[type=submit]:active { transform:translateY(1px); }
.clist { display:grid; gap:2px; }
.cmt { display:flex; gap:12px; padding:14px 2px; border-top:1px solid rgba(212,173,98,.12); }
.av { flex:0 0 34px; height:34px; border-radius:50%; display:grid; place-items:center; font-family:var(--display); color:#1a140c;
  background:radial-gradient(circle at 35% 30%, #f6d995, #a8803c); box-shadow:0 0 0 2px rgba(0,0,0,.4), 0 0 0 3px rgba(212,173,98,.3); }
.cb { min-width:0; flex:1; }
.cm { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.cm b { color:var(--gold2); font-weight:600; }
.cm time { font:12px var(--sans); color:var(--dim); }
.cmt p { margin:4px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.75; color:var(--ink); }
.muted, .empty { color:var(--dim); font-style:italic; }

.foot { position:relative; text-align:center; padding:40px 16px 30px; color:var(--dim); font:12px var(--sans); letter-spacing:.2em; }
.foot p { margin:10px 0 0; }

/* cover */
.cover .hero { position:relative; text-align:center; padding:clamp(40px,8vh,90px) 20px 30px; max-width:900px; margin:0 auto; }
.hero-lamp { display:flex; justify-content:center; margin-bottom:22px; }
.hero-lamp .lamp { width:clamp(70px,9vw,100px); height:auto; filter:drop-shadow(0 0 40px rgba(242,184,75,.45)); }
.hero-title { margin:10px 0 6px; font-family:var(--display); font-weight:400; line-height:1.1; letter-spacing:.06em; font-size:clamp(40px,7.5vw,92px); }
.hero-title .ht2 { display:block; margin-top:.25em; font-size:.42em; letter-spacing:.5em; text-indent:.5em; }
.hero-title span { background:linear-gradient(180deg, #fff6dc 0%, #f0c873 45%, #9a7030 100%); -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 6px 30px rgba(212,173,98,.25)); }
.cover .hero .orn { width:min(340px,80%); }
.intro { max-width:32em; margin:20px auto 30px; font-size:clamp(17px,2vw,20px); line-height:1.9; color:var(--muted); font-style:italic; }
.cta { display:inline-flex; align-items:center; gap:12px; padding:14px 30px; border-radius:999px; text-decoration:none; font:600 15px var(--sans); letter-spacing:.2em;
  color:#1a140c; background:linear-gradient(180deg, #f8dea0, #d4ad62 55%, #a8803c); box-shadow:0 10px 40px rgba(212,173,98,.35), inset 0 1px 0 rgba(255,255,255,.6);
  transition:transform .25s, box-shadow .25s; }
.cta .glass { width:22px; height:22px; color:#1a140c; }
.cta:hover { transform:translateY(-2px) scale(1.02); box-shadow:0 16px 50px rgba(212,173,98,.5), inset 0 1px 0 rgba(255,255,255,.6); }
.cards { position:relative; max-width:1180px; margin:40px auto 0; padding:0 clamp(16px,3vw,36px); }
.cards h2 { text-align:center; font-family:var(--display); font-weight:500; letter-spacing:.24em; color:var(--gold2); font-size:22px; margin:0 0 22px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px,1fr)); gap:16px; }
.card { position:relative; display:flex; flex-direction:column; gap:6px; padding:20px 18px 18px; min-height:190px; border-radius:16px; text-decoration:none; color:var(--ink); overflow:hidden;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(34,28,20,.85), rgba(15,12,9,.9)); transition:transform .3s, border-color .3s, box-shadow .3s; }
.card::after { content:""; position:absolute; inset:0; background:radial-gradient(400px 160px at 50% -20%, rgba(242,184,75,.18), transparent 70%); opacity:0; transition:opacity .3s; pointer-events:none; }
.card:hover { transform:translateY(-4px); border-color:rgba(243,209,138,.55); box-shadow:0 18px 40px rgba(0,0,0,.5), 0 0 30px rgba(212,173,98,.15); }
.card:hover::after { opacity:1; }
.cn { position:absolute; right:14px; top:6px; font-family:var(--display); font-size:54px; line-height:1; color:rgba(212,173,98,.13); }
.cl { font:12px var(--sans); letter-spacing:.2em; color:var(--gold); }
.card b { font-weight:500; font-size:19px; color:#f6ecd8; }
.cs { font-size:14px; line-height:1.7; color:var(--muted); flex:1; }
.go { font:12px var(--sans); letter-spacing:.16em; color:var(--gold2); opacity:.7; transition:opacity .3s; }
.card:hover .go { opacity:1; }

/* admin */
.admin .wrap { display:block; max-width:1000px; }
.admin .wrap.narrow { max-width:440px; }
.panel { padding:28px; border-radius:18px; border:1px solid var(--line); background:linear-gradient(180deg, rgba(28,23,17,.9), rgba(14,12,9,.9)); box-shadow:0 20px 60px rgba(0,0,0,.45); }
.panel h1 { margin:0 0 18px; font-family:var(--display); font-weight:500; color:var(--gold2); letter-spacing:.1em; }
.panel form.login { display:grid; gap:12px; }
.atable { width:100%; border-collapse:collapse; font-size:15px; }
.atable th, .atable td { text-align:left; vertical-align:top; padding:10px 8px; border-top:1px solid rgba(212,173,98,.14); }
.atable th { font:12px var(--sans); letter-spacing:.14em; color:var(--dim); text-transform:uppercase; border-top:0; }
.atable td:nth-child(4) { white-space:pre-wrap; overflow-wrap:anywhere; }
.atable button { cursor:pointer; color:#f3d0c8; background:rgba(142,47,34,.35); border:1px solid rgba(200,90,70,.45); border-radius:8px; padding:5px 12px; font:13px var(--sans); }
.atable button:hover { background:rgba(142,47,34,.6); }
.tscroll { overflow-x:auto; }
.back { display:inline-block; margin-top:18px; color:var(--gold2); text-decoration:none; font:14px var(--sans); }

/* responsive */
@media (max-width:980px) {
  .wrap { grid-template-columns:1fr; padding-top:20px; }
  .menu-btn { display:inline-flex; }
  .js .toc { position:fixed; z-index:70; top:0; left:0; bottom:0; width:min(320px,86vw); max-height:none; border-radius:0 18px 18px 0;
    transform:translateX(-105%); transition:transform .35s cubic-bezier(.2,.8,.2,1); background:linear-gradient(180deg, #1c1711, #0f0d0a); }
  .js .toc-close { display:block; }
  .js body.toc-open .toc { transform:none; }
  .drawer-backdrop { position:fixed; inset:0; z-index:65; background:rgba(0,0,0,.6); backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px); opacity:0; transition:opacity .3s; }
  .js body.toc-open .drawer-backdrop { opacity:1; }
  html:not(.js) .toc { position:static; max-height:none; }
}
@media (min-width:981px) { .drawer-backdrop { display:none !important; } }
@media (max-width:600px) {
  .topbar { gap:10px; padding:10px 12px; }
  .brand span { display:none; }
  .langs a { padding:5px 9px; font-size:12px; }
  .menu-btn span:last-child { font-size:13px; }
  .paper { border-radius:4px; padding:30px 20px 24px; box-shadow:0 0 0 1px rgba(120,90,40,.35), 0 0 0 4px rgba(20,16,11,.9), 0 0 0 5px rgba(212,173,98,.35), 0 20px 50px rgba(0,0,0,.6), inset 0 0 60px rgba(120,80,30,.2); }
  .paper::before, .paper::after { width:28px; height:28px; }
  .paper p { font-size:17.5px; text-align:left; }
  .paper.lang-zh p, .paper.lang-ja p { text-align:justify; }
  .pager { grid-template-columns:1fr 1fr; }
  .pos { grid-column:1 / -1; grid-row:1; text-align:center; }
  .chead { padding-top:6px; }
  .grid { grid-template-columns:1fr; }
  .card { min-height:0; }
  .atable thead { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
@media print {
  .fog, .vignette, .topbar, .toc, .pager, .comments, .progress, .foot { display:none !important; }
  body { background:#fff; } .wrap { display:block; } .paper { box-shadow:none; background:#fff; }
}

:lang(zh) .intro, :lang(ja) .intro, :lang(zh) .paper .next, :lang(ja) .paper .next, :lang(zh) .muted, :lang(ja) .muted { font-style:normal; }
