/* 密爱百度影音 — 暗房 / 调色台 */
:root{
  --ink:#10131a; --ink2:#171b23; --ink3:#1e2430; --line:#2a3140; --line2:#394256;
  --paper:#ded9cf; --paper2:#9aa2b2; --paper3:#6f7a90;
  --warm:#d8a44a; --cool:#7f9fc4;
  --l1:#d8a44a; --l2:#7f9fc4; --l3:#7fa89b; --l4:#b58fbf; --l5:#b8746a;
  --font-display:Didot,SimSong,serif;
  --font-text:Athelas,'PingFang SC',sans-serif;
  --font-mono:Courier,'PingFang SC',monospace;
  --wrap:72rem; --col:44rem; --rail:4rem; --margin:16rem;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--paper);
  font:17px/1.9 var(--font-text);
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%}
a{color:var(--paper);text-decoration-color:var(--line2);text-underline-offset:.22em}
a:hover{color:var(--cool);text-decoration-color:var(--cool)}
:focus-visible{outline:2px solid var(--warm);outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.nb{white-space:nowrap}
h1 .nb,h2 .nb,h3 .nb,.brand .nb{overflow-wrap:normal}

.skip{position:absolute;left:-9999px;top:0;background:var(--warm);color:var(--ink);padding:.6em 1em;z-index:20}
.skip:focus{left:0}

/* ---- header ---- */
.hd{border-bottom:1px solid var(--line);background:var(--ink);position:relative}
.hdw{display:flex;flex-direction:column;gap:.7rem;padding-top:1rem;padding-bottom:.55rem}
.brand{
  font:400 1.45rem/1.2 var(--font-display);letter-spacing:.04em;
  text-decoration:none;display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;
}
.bm{width:34px;height:10px;flex:0 0 auto;border:1px solid var(--line2);
  background:linear-gradient(90deg,#f0dcb4,var(--warm) 32%,#3c3729 66%,#14171f)}
.nav{display:flex;gap:1.25rem;overflow-x:auto;scrollbar-width:thin;padding-bottom:.35rem;margin:0 -2px}
.nav a{
  flex:0 0 auto;font-size:.95rem;color:var(--paper2);text-decoration:none;
  padding:.2rem 2px;border-bottom:1px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--paper)}
.nav a[aria-current=page]{color:var(--warm);border-bottom-color:var(--warm)}

/* ---- breadcrumb ---- */
.bc{padding:1.1rem 0 0}
.bc ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;
  font:11px/1.6 var(--font-mono);letter-spacing:.14em;color:var(--paper3)}
.bc li+li::before{content:"/";margin-right:.45rem;color:var(--line2)}
.bc a{color:var(--paper3);text-decoration:none}
.bc a:hover{color:var(--cool)}

/* ---- article column + film-edge rail + margin notes ---- */
main{display:block;padding-bottom:4rem}
.art{position:relative;padding:1.6rem 0 0}
h1{
  font:400 clamp(1.85rem,6.4vw,3rem)/1.3 var(--font-display);
  margin:.1em 0 .5rem;letter-spacing:.015em;text-wrap:balance;
}
h2{font:400 clamp(1.3rem,3.6vw,1.65rem)/1.4 var(--font-display);
  margin:2.6rem 0 .8rem;letter-spacing:.015em;color:var(--paper);text-wrap:balance}
h3{font:600 1.03rem/1.5 var(--font-text);margin:1.9rem 0 .5rem;color:var(--cool);letter-spacing:.02em}
p{margin:0 0 1.15rem;max-width:var(--col)}
.lead{font-size:1.14rem;line-height:1.85;color:#c6c3bb;margin-bottom:1.9rem;
  padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.ltag{font:11px/1 var(--font-mono);letter-spacing:.22em;color:var(--paper3);
  margin:0 0 .9rem;display:flex;align-items:center;gap:.6rem}
.ltag span{display:inline-block;padding:.32em .55em;border:1px solid currentColor;color:var(--warm)}
.ltag.l1 span{color:var(--l1)}.ltag.l2 span{color:var(--l2)}.ltag.l3 span{color:var(--l3)}
.ltag.l4 span{color:var(--l4)}.ltag.l5 span{color:var(--l5)}

.bul,.num{max-width:var(--col);margin:0 0 1.3rem;padding-left:1.25rem}
.bul li,.num li{margin-bottom:.5rem}
.bul{list-style:none;padding-left:1.1rem}
.bul li{position:relative}
.bul li::before{content:"";position:absolute;left:-1.1rem;top:.85em;width:.5rem;height:1px;background:var(--line2)}

.box{max-width:var(--col);background:var(--ink2);border-left:2px solid var(--line2);
  padding:1.1rem 1.25rem;margin:0 0 1.5rem}
/* only the box's own caption becomes a label; inline <b> inside the copy
   must stay inline, or sentences get cut in half */
.box>b:first-child{display:block;font:11px/1.6 var(--font-mono);letter-spacing:.18em;color:var(--paper3);margin-bottom:.5rem}
.box b{color:var(--paper)}
.box p:last-child,.box ul:last-child{margin-bottom:0}
.box.warm{border-left-color:var(--warm)}
.box.cool{border-left-color:var(--cool)}

.fict{max-width:var(--col);font-size:.92rem;line-height:1.8;color:var(--paper2);
  background:#191d26;border:1px dashed var(--line2);padding:.85rem 1.05rem;margin:0 0 1.4rem}
.fict>b:first-child{display:inline-block;font:11px/1 var(--font-mono);letter-spacing:.18em;
  color:var(--l5);border:1px solid var(--l5);padding:.3em .5em;margin-right:.7em}

.pull{max-width:var(--col);margin:2rem 0;padding:0 0 0 1.4rem;border-left:1px solid var(--warm);
  font:400 1.22rem/1.75 var(--font-display);color:#cfcabf}
.pull cite{display:block;margin-top:.7rem;font:11px/1.6 var(--font-mono);
  letter-spacing:.16em;color:var(--paper3);font-style:normal}

.scene{max-width:var(--col);background:var(--ink2);border:1px solid var(--line);padding:1.2rem 1.3rem;margin:0 0 1.5rem}
.scene p{margin-bottom:.7rem}
.scene p:last-child{margin-bottom:0}
.scene .sl{font:11px/1.6 var(--font-mono);letter-spacing:.18em;color:var(--warm);margin-bottom:.8rem}
.scene .dlg{padding-left:1.6rem;color:#cfcabf}

/* margin notes: desktop floats into the right margin, mobile falls back in flow */
.pz{background:var(--ink2);border-left:2px solid var(--cool);padding:.85rem 1rem;
  margin:0 0 1.4rem;font-size:.92rem;line-height:1.78;color:var(--paper2)}
.pz>b:first-child{display:block;font:11px/1.6 var(--font-mono);letter-spacing:.18em;color:var(--cool);margin-bottom:.4rem}

/* ---- diagrams ---- */
.dg{margin:1.8rem 0;max-width:40rem}
.dg svg{display:block;width:100%;height:auto;background:var(--ink2);border:1px solid var(--line)}
.dg figcaption{margin-top:.6rem;font-size:.88rem;line-height:1.7;color:var(--paper3);max-width:var(--col)}

/* ---- tables ---- */
.tw{overflow-x:auto;max-width:var(--col);border:1px solid var(--line);margin:0 0 .5rem}
table{border-collapse:collapse;width:100%;min-width:30rem;font-size:.94rem}
th,td{text-align:left;padding:.62rem .85rem;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--ink3);font:11px/1.6 var(--font-mono);letter-spacing:.14em;color:var(--paper2);white-space:nowrap}
tbody th{font-weight:600;color:var(--paper)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
.hint{font:11px/1.6 var(--font-mono);letter-spacing:.1em;color:var(--paper3);margin:0 0 1.6rem}

/* ---- details ---- */
.dt{max-width:var(--col);border:1px solid var(--line);margin:0 0 1.4rem;background:var(--ink2)}
.dt summary{cursor:pointer;padding:.8rem 1.1rem;font-size:.97rem;color:var(--cool);list-style:none}
.dt summary::-webkit-details-marker{display:none}
.dt summary::before{content:"+";display:inline-block;width:1.1em;color:var(--paper3);font-family:var(--font-mono)}
.dt[open] summary::before{content:"\2212"}
.dtl{padding:0 1.1rem 1rem}
.dtl>*:last-child{margin-bottom:0}
/* collapsed <details> still hands Chrome non-zero rects for its children */
.dt:not([open]) .dtl{display:none}

/* ---- related ---- */
.rel{max-width:var(--col);margin:3rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line)}
.rel b{display:block;font:11px/1.6 var(--font-mono);letter-spacing:.2em;color:var(--paper3);margin-bottom:.8rem}
.rel ul{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.rel li{min-width:0}
.rel a{font-size:1rem}
.rel span{display:block;font-size:.88rem;color:var(--paper3);line-height:1.6}

/* ---- cards / index grids ---- */
.cards{list-style:none;margin:0 0 2rem;padding:0;display:grid;gap:1px;background:var(--line);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}
.cards li{min-width:0;background:var(--ink);padding:1.25rem 1.3rem}
.cards a{text-decoration:none;font:400 1.14rem/1.45 var(--font-display);display:block;margin-bottom:.4rem}
.cards p{font-size:.92rem;line-height:1.75;color:var(--paper2);margin:0;max-width:none}
.cards .k{font:11px/1 var(--font-mono);letter-spacing:.2em;color:var(--paper3);margin-bottom:.7rem;display:block}
.cards.l1 a:hover{color:var(--l1)}.cards.l2 a:hover{color:var(--l2)}
.cards.l3 a:hover{color:var(--l3)}.cards.l4 a:hover{color:var(--l4)}.cards.l5 a:hover{color:var(--l5)}

/* ---- home ---- */
.hero{padding:2.4rem 0 1.8rem;border-bottom:1px solid var(--line);margin-bottom:2.4rem}
.hero h1{max-width:20em}
.hero .lead{border:0;padding:0;max-width:40rem}
.sec{margin:0 0 3.4rem}
.sec>h2{margin-top:0;padding-bottom:.7rem;border-bottom:1px solid var(--line);display:flex;
  justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.sec>h2 a{font:11px/1.6 var(--font-mono);letter-spacing:.16em;color:var(--paper3);text-decoration:none}
.sec>h2 a:hover{color:var(--cool)}

/* ---- forms / tools ---- */
.fld{display:block;margin:0 0 1.1rem;max-width:var(--col)}
.fld>span{display:block;font:11px/1.6 var(--font-mono);letter-spacing:.16em;color:var(--paper2);margin-bottom:.35rem}
input[type=text],textarea,select{
  width:100%;background:var(--ink3);color:var(--paper);border:1px solid var(--line2);
  font:1rem/1.7 var(--font-text);padding:.6rem .75rem;border-radius:0;
}
textarea{min-height:5.5rem;resize:vertical}
input[type=text]:focus,textarea:focus,select:focus{border-color:var(--warm);outline:none}
.btn{display:inline-block;background:transparent;color:var(--warm);border:1px solid var(--warm);
  font:.95rem/1 var(--font-text);padding:.72rem 1.3rem;cursor:pointer;margin:0 .6rem .6rem 0}
.btn:hover{background:var(--warm);color:var(--ink)}
.btn.sec2{color:var(--paper2);border-color:var(--line2)}
.btn.sec2:hover{background:var(--line2);color:var(--paper)}
.rng{display:flex;gap:.5rem;flex-wrap:wrap}
.rng label{display:inline-flex;align-items:center;gap:.35rem;font-size:.92rem;color:var(--paper2);
  border:1px solid var(--line);padding:.3rem .6rem;cursor:pointer}
.rng input{accent-color:var(--warm)}
.chk{display:flex;gap:.6rem;align-items:flex-start;margin:0 0 .7rem;max-width:var(--col);
  font-size:.97rem;line-height:1.7;color:#cfcabf;cursor:pointer}
.chk input{margin-top:.45rem;accent-color:var(--warm);flex:0 0 auto}
.msg{max-width:var(--col);margin:0 0 1.2rem;padding:.75rem 1rem;font-size:.94rem;line-height:1.7}
.msg[hidden]{display:none}
.msg.ok{border-left:2px solid var(--l3);background:#182028;color:#bcc9c4}
.msg.err{border-left:2px solid #c9564b;background:#241a19;color:#e8b5ae}
.saved{list-style:none;margin:0 0 1.5rem;padding:0;max-width:var(--col)}
.saved li{border:1px solid var(--line);padding:.8rem 1rem;margin-bottom:.6rem;display:flex;
  gap:.8rem;align-items:baseline;flex-wrap:wrap;justify-content:space-between}
.saved .nm{font-size:1rem;min-width:0;overflow-wrap:anywhere}
.saved .mt{font:11px/1.6 var(--font-mono);letter-spacing:.12em;color:var(--paper3)}
.saved button{background:none;border:0;color:var(--paper3);cursor:pointer;
  font:.88rem/1 var(--font-text);text-decoration:underline;padding:.2rem}
.saved button:hover{color:#e8b5ae}

/* ---- search / glossary filter ---- */
.flt{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.5rem}
.flt button{background:none;border:1px solid var(--line2);color:var(--paper2);cursor:pointer;
  font:.9rem/1 var(--font-text);padding:.5rem .85rem}
.flt button[aria-pressed=true]{border-color:var(--warm);color:var(--warm)}
.idx{list-style:none;margin:0;padding:0;max-width:52rem}
.idx li{border-bottom:1px solid var(--line);padding:1rem 0}
.idx li[hidden]{display:none}
.idx a{font:400 1.12rem/1.45 var(--font-display);text-decoration:none;display:block}
.idx p{font-size:.92rem;color:var(--paper2);margin:.3rem 0 0;max-width:none}
.idx .k{font:11px/1 var(--font-mono);letter-spacing:.18em;color:var(--paper3);margin-right:.6rem}
.cnt{font:11px/1.6 var(--font-mono);letter-spacing:.14em;color:var(--paper3);margin:0 0 1rem}

/* ---- glossary ---- */
.gl{list-style:none;margin:0;padding:0;max-width:52rem}
.gl li{border-top:1px solid var(--line);padding:1.1rem 0}
.gl li[hidden]{display:none}
.gl dfn{font:400 1.18rem/1.4 var(--font-display);font-style:normal;color:var(--paper);display:block}
.gl .k{font:11px/1 var(--font-mono);letter-spacing:.18em;color:var(--paper3);display:block;margin-bottom:.45rem}
.gl p{margin:.4rem 0 0;color:#c6c3bb;max-width:none;font-size:.97rem}
.gl .src{font-size:.88rem;color:var(--paper3)}

/* ---- flashcard ---- */
.cardbox{max-width:34rem;border:1px solid var(--line2);background:var(--ink2);padding:2rem 1.6rem;
  margin:0 0 1.2rem;min-height:11rem;display:flex;flex-direction:column;justify-content:center}
.cardbox .q{font:400 1.6rem/1.4 var(--font-display);margin:0 0 .6rem;max-width:none}
.cardbox .a{font-size:1rem;line-height:1.8;color:#c6c3bb;margin:0;max-width:none}
.cardbox .a[hidden]{display:none}
.prog{font:11px/1.6 var(--font-mono);letter-spacing:.14em;color:var(--paper3);margin:0 0 1rem}

/* ---- footer ---- */
.ft{border-top:1px solid var(--line);background:#0c0f15;padding:2.6rem 0 2.2rem;margin-top:3rem}
.ftg{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));margin-bottom:2rem}
.ftg div{min-width:0}
.ftg b{display:block;font:11px/1.6 var(--font-mono);letter-spacing:.2em;color:var(--paper3);margin-bottom:.7rem}
.ftg ul{list-style:none;margin:0;padding:0}
.ftg li{margin-bottom:.45rem}
.ftg a{font-size:.94rem;color:var(--paper2);text-decoration:none}
.ftg a:hover{color:var(--cool)}
.dis{font-size:.86rem;color:var(--paper3);margin:0;padding-top:1.3rem;border-top:1px solid var(--line);max-width:none}

/* ---- 404 ---- */
.e404 .art{padding-top:3rem}

@media (min-width:1040px){
  .hdw{flex-direction:row;align-items:center;gap:2.5rem;padding-top:1.15rem;padding-bottom:1.15rem}
  .nav{padding-bottom:0;overflow:visible}
  .art{margin-left:var(--rail);margin-right:var(--margin);max-width:none}
  /* film-edge rail: a hairline with perforation ticks, decoration only */
  .art::before{
    content:"";position:absolute;left:calc(var(--rail) * -1);top:2.4rem;bottom:1rem;width:11px;
    border-left:1px solid var(--line);
    background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 46px);
  }
  .pz{float:right;clear:right;width:14rem;margin-right:calc(var(--margin) * -1 + 1rem);
    margin-top:.4rem;margin-bottom:1.6rem;background:none;border-left:1px solid var(--line2);
    padding:.1rem 0 .1rem .9rem;font-size:.86rem;line-height:1.72}
  .hero{padding-top:3.4rem}
  .dg{max-width:none}
}
@media (max-width:540px){
  /* 九个栏目在 <=520px 必定横向溢出（实测 sw 485 > cw 482），右缘渐隐是
     告诉读者还能横滑的唯一提示：macOS 的浮层滚动条不滚动时根本不画。
     尾部留白与渐隐同宽，滑到底时渐隐只落在空白上，不会吃掉「翻检」。 */
  .nav{
    padding-right:1.9rem;
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 1.9rem),transparent);
    mask-image:linear-gradient(to right,#000 calc(100% - 1.9rem),transparent);
  }
}
@media (max-width:420px){
  body{font-size:16px}
  .cards li{padding:1.05rem 1.1rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
