@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Noto+Sans:wght@400;500;600;700&family=Pixelify+Sans:wght@400..700&display=swap");

* {
  box-sizing: border-box;
}

/* 赫伊希尔委员会主页 */
:root {
  --font-computer: "Noto Sans", "Segoe UI", Tahoma, Arial, sans-serif;
  --font-handwriting: "Caveat", "Segoe Print", "Bradley Hand", cursive;
  --font-pixel: "Pixelify Sans", "Lucida Console", "Courier New", monospace;
  --committee-light-x: -300px;
  --committee-light-y: -300px;
}
.committee-dark-page { margin:0; min-height:100vh; color:#a9a69d; background:#050505; font-family:SimSun,"Times New Roman",serif; }
.committee-threshold { width:min(850px,calc(100% - 44px)); margin:0 auto; padding:70px 0 110px; }
.committee-old-text { margin:62px 0 76px; }.committee-overline { color:#6f6b61;font-size:11px;letter-spacing:7px; }.committee-old-text h1 { margin:12px 0 32px;color:#d2c9b5;font:400 42px/1.2 SimSun,serif;letter-spacing:13px; }.committee-old-text>p:not(.committee-overline) { max-width:760px;margin:0 0 22px;font-size:16px;line-height:2.15;letter-spacing:1px; }.committee-old-text blockquote { margin:38px 0 0;padding:18px 24px;border-left:2px solid #5d594e;color:#7e796d;font-size:14px;letter-spacing:2px; }
.committee-darkness { position:fixed;inset:0;z-index:1000;background:#000;pointer-events:none;-webkit-mask-image:radial-gradient(circle 112px at var(--committee-light-x) var(--committee-light-y),transparent 0 88px,rgba(0,0,0,.55) 100px,#000 118px);mask-image:radial-gradient(circle 112px at var(--committee-light-x) var(--committee-light-y),transparent 0 88px,rgba(0,0,0,.55) 100px,#000 118px);transition:opacity .65s; }.committee-access-granted .committee-darkness { opacity:0; }
@media(max-width:680px){.committee-darkness{-webkit-mask-image:radial-gradient(circle 90px at var(--committee-light-x) var(--committee-light-y),transparent 0 70px,#000 94px);mask-image:radial-gradient(circle 90px at var(--committee-light-x) var(--committee-light-y),transparent 0 70px,#000 94px)}.committee-old-text h1{font-size:30px;letter-spacing:7px}}

/* 奥摩耶他返魂录：伪 3D 像素地牢 */
.soul-game-page { margin: 0; min-height: 100vh; overflow-x: hidden; color: #d8c9a5; background: #070807; font-family: "Courier New", monospace; }
.soul-game[hidden], .soul-access-gate[hidden] { display: none; }
.soul-access-gate { position:relative;min-height:100vh;display:grid;place-items:center;padding:20px;box-sizing:border-box;background:radial-gradient(circle at 50% 45%,#281b13 0,#0b0a07 45%,#020302 100%); }
.soul-loader-console { width:min(520px,100%);padding:32px;box-sizing:border-box;border:1px solid #4d442e;background:#0b0c09;box-shadow:0 20px 80px #000,inset 0 0 34px #000;text-align:center; }.soul-loader-console>p:first-child { margin:0 0 12px;color:#686049;font-size:9px;letter-spacing:4px; }.soul-loader-console h1 { margin:0 0 25px;color:#b4a478;font:700 21px Georgia,serif;letter-spacing:5px; }.soul-loading-track { height:18px;padding:3px;border:2px inset #50482f;background:#030403;box-sizing:border-box; }.soul-loading-track span { display:block;width:0;height:100%;background:repeating-linear-gradient(90deg,#8b782f 0 8px,#4d411c 9px 11px);box-shadow:0 0 12px #94762366; }.soul-loading-status { min-height:17px;margin:12px 0 0;color:#777057;font-size:10px;letter-spacing:2px; }.soul-loading-interrupted .soul-loading-track span { background:repeating-linear-gradient(90deg,#7f2020 0 8px,#481414 9px 11px);box-shadow:0 0 14px #a3212166; }
.soul-access-gate form { width:min(390px,100%);padding:34px 32px;border:4px ridge #675834;background:#11110d;box-shadow:0 18px 70px #000,inset 0 0 32px #000;color:#a99b76;text-align:center; }
.soul-interrupt-dialog { position:fixed;top:50%;left:50%;z-index:20;box-sizing:border-box;transform:translate(-50%,-50%); }.soul-interrupt-dialog[hidden] { display:none; }.soul-interrupt-dialog::before { content:"";position:fixed;inset:-100vh -100vw;z-index:-1;background:#0009; }.soul-dialog-title { margin:-34px -32px 22px;padding:8px 10px;color:#ded0a7;background:#5e1717;border-bottom:2px ridge #7c3333;text-align:left;font-size:11px;letter-spacing:3px; }.soul-interrupt-dialog>p { margin:0 0 22px;color:#b7ab8a;font:14px/1.8 SimSun,serif; }.soul-interrupt-dialog>p strong { color:#ca3b3b;letter-spacing:3px; }
.soul-access-gate form>p { margin:0 0 9px;color:#6f654d;font-size:9px;letter-spacing:3px; }.soul-access-gate h1 { margin:0 0 28px;color:#a72424;font:700 27px Georgia,serif;letter-spacing:7px;text-shadow:3px 3px #250303; }.soul-access-gate label { display:block;margin-bottom:8px;color:#8b8065;font-size:11px;letter-spacing:3px; }.soul-access-gate input { width:100%;height:40px;box-sizing:border-box;padding:0 10px;border:2px inset #4e462f;background:#050604;color:#d1be8e;font:18px "Courier New";letter-spacing:5px;text-align:center;outline:none; }.soul-access-gate input:focus { border-color:#8f7b45;box-shadow:0 0 14px #7c1b1b55; }.soul-access-gate button { width:100%;height:38px;margin-top:13px;border:2px outset #5c5135;background:#282318;color:#c4b280;font:700 11px "Courier New";letter-spacing:4px;cursor:pointer; }.soul-access-gate button:hover { background:#382d1d; }.soul-access-gate output { display:block;min-height:17px;margin-top:12px;color:#a83232;font-size:10px;letter-spacing:1px; }.soul-access-error { animation:soul-gate-shake .25s linear; }
.soul-access-gate .soul-loader-console h1 { margin:0 0 25px;color:#b4a478;font:700 21px Georgia,serif;letter-spacing:5px;text-shadow:none; }.soul-access-gate .soul-interrupt-dialog>p { margin:0 0 22px;color:#b7ab8a;font:14px/1.8 SimSun,serif;letter-spacing:0; }
@keyframes soul-gate-shake { 25%{transform:translate(calc(-50% - 6px),-50%)}75%{transform:translate(calc(-50% + 6px),-50%)} }
.soul-game { width:100vw;height:100vh;min-height:100vh;display:block;background:#030303;image-rendering:pixelated; }
.soul-3d-stage { position:relative;width:100%;height:100%;min-height:100vh;overflow:hidden;background:#030303;cursor:crosshair; }.soul-3d-stage canvas { display:block;width:100%;height:100%;min-height:100vh;outline:0;image-rendering:pixelated;image-rendering:crisp-edges;filter:contrast(1.16) saturate(.72); }.soul-3d-stage::after { content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.18) 4px 5px),radial-gradient(circle at center,transparent 35%,rgba(0,0,0,.54) 100%);mix-blend-mode:multiply; }.soul-crosshair { position:absolute;top:50%;left:50%;z-index:3;transform:translate(-50%,-50%);color:#bcae7d99;font:16px monospace;text-shadow:1px 1px #000;pointer-events:none; }.soul-nearby-record { position:absolute;z-index:4;right:22px;bottom:22px;width:220px;padding:13px 15px;border:2px ridge #75643b;background:#0b0b08e8;box-shadow:0 8px 25px #000;color:#bdaf83;pointer-events:none; }.soul-nearby-record[hidden] { display:none; }.soul-nearby-record strong,.soul-nearby-record span,.soul-nearby-record b { display:block; }.soul-nearby-record strong { margin:0 0 3px;color:#b72c2c;font:700 20px SimSun;letter-spacing:4px; }.soul-nearby-record span { color:#9b9070;font-size:11px; }.soul-nearby-record b { margin-top:8px;color:#d52b27;font:900 14px SimSun,"Microsoft YaHei",sans-serif;letter-spacing:2px; }
.soul-mouse-guide { position:absolute;left:50%;bottom:17%;z-index:5;transform:translateX(-50%);pointer-events:none;animation:soul-guide-bob 1.25s ease-in-out infinite;transition:opacity .28s,transform .28s; }.soul-mouse-guide.dismissed { opacity:0;transform:translate(-50%,8px); }.soul-mouse-icon { position:relative;display:block;width:25px;height:36px;border:2px solid #d8c58f;border-radius:13px 13px 11px 11px;background:#17130f;box-shadow:0 2px 0 #000,0 0 10px #d2b66b44; }.soul-mouse-icon::before { content:"";position:absolute;left:50%;top:0;width:1px;height:14px;background:#d8c58f; }.soul-mouse-icon i { position:absolute;left:3px;top:3px;width:8px;height:12px;border-radius:7px 2px 3px 2px;background:#b52d28;box-shadow:inset 1px 1px #ed8277; }.soul-mouse-icon i::after { content:"";position:absolute;left:2px;top:3px;width:3px;height:5px;border-radius:2px;background:#f1b1a8;animation:soul-left-click .9s ease-in-out infinite; } @keyframes soul-left-click { 50%{transform:translateY(2px);opacity:.4} } @keyframes soul-guide-bob { 50%{margin-bottom:4px} }
.soul-mirror-note[hidden]{display:none}.soul-mirror-note { position:absolute;left:50%;top:67%;z-index:7;min-width:142px;transform:translate(-50%,-50%) rotate(-1deg);box-sizing:border-box;padding:10px 18px;color:#351611;background:#d8cca4;box-shadow:0 4px 12px #000a;font:700 14px/1.45 "Microsoft YaHei",SimSun,sans-serif;text-align:left;pointer-events:none; }.soul-mirror-note strong,.soul-mirror-note span{display:block}.soul-mirror-note strong{margin-bottom:3px;font-size:17px;text-align:center}.soul-mirror-note span{white-space:nowrap}
.soul-jumpscare { position:absolute;inset:0;z-index:18;overflow:hidden;pointer-events:none; }
.soul-jumpscare[hidden] { display:none; }
.soul-jumpscare-face { position:absolute;left:50%;top:49%;width:72px;height:96px;transform:translate(-50%,-50%) scale(.16);transform-origin:center;opacity:0;overflow:hidden;background:#000;box-shadow:0 0 18px #000; }
.soul-jumpscare-face img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 24%;image-rendering:pixelated; }
.soul-jumpscare-base { filter:grayscale(1) contrast(2.2) brightness(.54); }
.soul-jumpscare-eyes { clip-path:inset(28% 0 52% 0);filter:grayscale(1) contrast(2.8) invert(1);mix-blend-mode:difference; }
.soul-jumpscare.is-rushing .soul-jumpscare-face { animation:soulFaceRush 900ms cubic-bezier(.74,.02,.92,.42) forwards; }
.soul-jumpscare.is-rushing .soul-jumpscare-eyes { animation:soulEyesInvert 56ms steps(1,end) infinite; }
.soul-jumpscare-whiteout { position:absolute;inset:0;z-index:19;background:#fff;opacity:0;pointer-events:none; }
.soul-jumpscare-whiteout.is-visible { animation:soulWhiteout 600ms ease-out forwards; }
@keyframes soulFaceRush { 0%{transform:translate(-50%,-42%) scale(.16);opacity:.15} 10%{opacity:.88} 55%{transform:translate(-50%,-48%) scale(1.05);opacity:1} 100%{transform:translate(-50%,-50%) scale(7.4);opacity:1} }
@keyframes soulEyesInvert { 0%,49%{filter:grayscale(1) contrast(3.2) invert(0)} 50%,100%{filter:grayscale(1) contrast(3.2) invert(1)} }
@keyframes soulWhiteout { 0%{opacity:0} 30%{opacity:1} 68%{opacity:1} 100%{opacity:0} }
.soul-hud, .soul-statusbar { position: relative; z-index: 10; display: grid; align-items: center; background: #0c0e0b; border-color: #74633d; box-shadow: 0 0 0 3px #020302, inset 0 0 22px #000; text-transform: uppercase; }
.soul-hud { grid-template-columns: 1fr auto 1fr; padding: 12px 22px; border-bottom: 3px solid #74633d; }
.soul-hud a { color: #938b70; text-decoration: none; font-size: 12px; }
.soul-hud div { text-align: center; letter-spacing: 6px; color: #9e2020; }
.soul-hud div span { display: block; font-size: 11px; color: #c7ad71; letter-spacing: 10px; }
.soul-hud div b { font: 800 26px/1 Georgia, serif; text-shadow: 3px 3px #280303; }
.soul-hud p { justify-self: end; margin: 0; font-size: 12px; }.soul-hud p strong { color: #d8b44c; }
.soul-viewport { position: relative; overflow: hidden; perspective: 620px; min-height: 520px; background: linear-gradient(#050505 0 19%, transparent 20%), repeating-linear-gradient(90deg, #171512 0 8px, #1c1915 8px 16px); }
.dungeon-ceiling { position: absolute; inset: 0 0 53%; transform-origin: top; transform: rotateX(-57deg); background: repeating-linear-gradient(90deg, transparent 0 80px, #050504 81px 87px), repeating-linear-gradient(0deg, #201a13 0 48px, #0a0907 49px 55px); }
.dungeon-floor { position: absolute; inset: 46% -25% -20%; transform-origin: bottom; transform: rotateX(62deg); background: repeating-linear-gradient(90deg, transparent 0 90px, #070705 92px 99px), repeating-linear-gradient(0deg, #252016 0 70px, #090906 72px 79px); box-shadow: inset 0 50px 90px #000; }
.dungeon-wall { position: absolute; top: 0; bottom: 0; width: 42%; z-index: 2; background: repeating-linear-gradient(0deg, transparent 0 54px, #050504 56px 63px), repeating-linear-gradient(90deg, #2a251c 0 75px, #11100c 76px 84px); }
.wall-left { left: -18%; transform: skewY(23deg); box-shadow: inset -80px 0 100px #000; }.wall-right { right: -18%; transform: skewY(-23deg); box-shadow: inset 80px 0 100px #000; }
.altar-glow { position: absolute; z-index: 3; left: 42%; top: 29%; width: 16%; height: 42%; background: radial-gradient(ellipse, #8b171755, transparent 64%); filter: blur(5px); }
.portrait-rail { position: absolute; z-index: 5; inset: 24% 8% auto; display: flex; align-items: flex-end; justify-content: center; gap: clamp(12px, 3vw, 54px); }
.soul-card { width: clamp(112px, 14vw, 176px); padding: 8px 8px 10px; color: #c8b985; background: #17150f; border: 4px ridge #6d5d36; box-shadow: 0 14px 0 #080806, 0 18px 30px #000; cursor: pointer; transform: translateZ(-20px); transition: .15s; }
.soul-card:nth-child(2n) { transform: translateY(24px) translateZ(-20px); }.soul-card:hover,.soul-card.active { border-color: #b02424; filter: brightness(1.25); transform: translateY(-8px) translateZ(10px); }
.soul-card img { width: 100%; height: clamp(120px, 18vw, 205px); object-fit: cover; filter: grayscale(1) sepia(.25) contrast(1.35) brightness(.58); image-rendering: pixelated; }
.soul-card span,.soul-card em { display: block; }.soul-card span { padding: 7px 2px 3px; font-weight: 700; letter-spacing: 2px; }.soul-card em { color: #b72929; font-style: normal; font-size: 11px; letter-spacing: 4px; }
.dungeon-door { position: absolute; z-index: 4; top: 19%; left: calc(50% - 62px); width: 124px; height: 220px; display: grid; place-content: center; text-align: center; background: #080806; border: 8px solid #211c13; box-shadow: 0 0 42px #7c121244; color: #51452d; }.dungeon-door span { font-size: 10px; }.dungeon-door b { color: #661a1a; font-size: 12px; }
.soul-statusbar { grid-template-columns: 1fr 62px 1fr; gap: 14px; padding: 12px 7%; border-top: 3px solid #74633d; }.soul-statusbar div { display: flex; flex-direction: column; }.soul-statusbar div:nth-child(3) { text-align: right; }.soul-statusbar small { color: #6d674f; font-size: 9px; letter-spacing: 3px; }.soul-statusbar strong { color: #d8c9a5; font-size: 18px; }.soul-statusbar .dead { color: #be2626; }.soul-statusbar .soul-skull { display: block; text-align: center; color: #a79461; font-size: 38px; }.soul-statusbar p { grid-column: 1/-1; margin: 0; text-align: center; color: #6f6854; font-size: 10px; letter-spacing: 2px; }
@media (max-width: 800px) { .portrait-rail{inset-left:2%;inset-right:2%;gap:6px}.soul-card{width:21vw;padding:4px}.soul-card img{height:28vw}.soul-card span{font-size:11px}.soul-hud{grid-template-columns:1fr auto}.soul-hud p{display:none} }

.hospital-record-page{margin:0;background:#d7dcdf;color:#222;font-family:"Microsoft YaHei",Arial,sans-serif}.hospital-system-shell{width:min(1180px,calc(100% - 28px));margin:18px auto;background:#f7f9fa;border:1px solid #aeb7bc;box-shadow:0 8px 32px #56616944}.hospital-system-header{display:flex;align-items:center;gap:14px;padding:15px 22px;color:#fff;background:#176b73;border-bottom:4px solid #0f4e55}.hospital-mark{display:grid;place-items:center;width:46px;height:46px;background:#fff;color:#b52026;font:900 34px/1 Arial;border-radius:4px}.hospital-system-header h1,.hospital-system-header p{margin:0}.hospital-system-header h1{font-size:22px;letter-spacing:2px}.hospital-system-header p{margin-top:4px;color:#cde4e5;font-size:11px}.hospital-system-header>span{margin-left:auto;padding:5px 10px;border:1px solid #91bec1;color:#e9ffff;font-size:12px}.hospital-system-nav{display:flex;align-items:center;gap:0;background:#e7edef;border-bottom:1px solid #b7c1c5}.hospital-system-nav>*{padding:10px 18px;border-right:1px solid #c4cdd0;color:#43545a;font-size:13px;text-decoration:none}.hospital-system-nav b{color:#fff;background:#27818a}.hospital-system-nav a{margin-left:auto;border-left:1px solid #c4cdd0}.hospital-record-main{display:grid;grid-template-columns:220px 1fr;gap:18px;padding:18px}.hospital-patient-summary,.hospital-case-sheet{border:1px solid #b9c2c6;background:#fff}.hospital-patient-summary h2{margin:0;padding:11px 14px;color:#fff;background:#4f676d;font-size:15px}.hospital-patient-summary dl{display:grid;grid-template-columns:76px 1fr;margin:0;padding:10px 12px;font-size:13px}.hospital-patient-summary dt,.hospital-patient-summary dd{margin:0;padding:9px 3px;border-bottom:1px solid #e2e7e9}.hospital-patient-summary dt{color:#69777b}.hospital-patient-summary dd{font-weight:700}.hospital-alert{color:#b42026}.hospital-case-sheet{padding:24px 30px}.hospital-case-title{display:flex;justify-content:space-between;align-items:end;padding-bottom:14px;border-bottom:2px solid #2a7379}.hospital-case-title h2,.hospital-case-title small{margin:0}.hospital-case-title h2{margin-top:3px;font-size:23px}.hospital-case-title small{color:#708085;letter-spacing:2px}.hospital-case-title>span{color:#69787d;font-size:12px}.hospital-case-sheet section{padding:12px 4px;border-bottom:1px solid #dce2e4}.hospital-case-sheet h3{margin:0 0 7px;color:#1f6269;font-size:15px}.hospital-case-sheet p{margin:5px 0;font:14px/1.85 SimSun,"Microsoft YaHei",serif}.hospital-diagnosis{background:#f4eaea;padding-left:14px!important;border-left:4px solid #a5262b}.hospital-diagnosis strong{color:#9b1f24;font-size:17px}.hospital-doctor-note{padding:9px 12px;background:#fff8dd;color:#594b2c;font-style:italic}.hospital-system-footer{padding:10px;text-align:center;color:#68777b;background:#e7edef;border-top:1px solid #c4cdd0;font-size:11px}@media(max-width:760px){.hospital-record-main{grid-template-columns:1fr}.hospital-system-nav span{display:none}.hospital-case-sheet{padding:18px}.hospital-case-title{align-items:start;gap:10px}.hospital-system-header>span{display:none}}

html {
  background: #d8d2bd url("data:image/gif;base64,R0lGODlhBAAEAIAAAP///9nY2CH5BAAAAAAALAAAAAAEAAQAAAIFhI+pWAA7") repeat;
}

body {
  margin: 0;
  color: #2e2a22;
  font-family: var(--font-computer);
  font-size: 14px;
  line-height: 1.6;
}

a {
  color: #003f86;
  text-decoration: underline;
}

a:visited {
  color: #5d3974;
}

.forum-page {
  background:
    linear-gradient(#e7edf2 0, #c9d5df 180px, #d6d1bc 181px),
    #d6d1bc;
  color: #1d2630;
  font-family: "Microsoft YaHei", SimSun, sans-serif;
}

.forum-shell {
  width: 1060px;
  max-width: calc(100% - 22px);
  margin: 12px auto;
  border: 1px solid #6d7f8f;
  background: #f4f6f7;
  box-shadow: 0 2px 0 #ffffff inset, 0 0 0 3px rgba(53, 70, 84, 0.12);
}

.forum-header {
  border-bottom: 2px solid #2e4c67;
  background: #edf2f5;
}

.forum-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 112px;
  padding: 16px 18px;
  background:
    repeating-linear-gradient(90deg, rgba(64, 95, 119, 0.08), rgba(64, 95, 119, 0.08) 1px, transparent 1px, transparent 20px),
    linear-gradient(90deg, #edf3f6, #f9f6df);
}

.forum-mark {
  display: grid;
  place-items: center;
  width: 82px;
  height: 70px;
  border: 1px solid #2e4c67;
  background:
    linear-gradient(135deg, rgba(139, 33, 28, 0.84), rgba(46, 76, 103, 0.92)),
    #8b211c;
  color: #fff7d8;
  font-family: "Courier New", monospace;
  font-size: 24px;
  font-weight: 700;
}

.forum-kicker {
  margin: 0 0 3px;
  color: #8b211c;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.forum-brand h1 {
  margin: 0 0 4px;
  color: #233c55;
  font-family: "Microsoft YaHei", SimHei, sans-serif;
  font-size: 30px;
}

.forum-brand p {
  margin-bottom: 0;
}

.forum-layout {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
}

.forum-box {
  margin-bottom: 10px;
  border: 1px solid #a5b1ba;
  background: #ffffff;
}

.forum-box h2 {
  margin: 0;
  padding: 6px 9px;
  border-bottom: 1px solid #a5b1ba;
  background: #d8e1e7;
  color: #263f57;
  font-size: 14px;
}

.forum-box p,
.forum-box dl,
.forum-box ol {
  margin: 0;
  padding: 8px 10px;
  font-size: 13px;
}

.forum-box dl {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 0;
}

.forum-box dt,
.forum-box dd {
  margin: 0;
  padding: 4px 0;
  border-bottom: 1px dotted #cbd5dc;
}

.forum-box dt {
  color: #617080;
}

.forum-box ol.forum-rules {
  padding: 8px 12px 8px 30px;
  list-style-position: outside;
}

.forum-rules li {
  margin-bottom: 6px;
  padding-left: 2px;
}

.thread-titlebar {
  border: 1px solid #758a9c;
  background: #fffbed;
}

.thread-titlebar p {
  margin: 0;
  padding: 5px 9px;
  border-bottom: 1px solid #d4c58e;
  color: #6d654f;
  font-size: 12px;
}

.thread-titlebar h2 {
  margin: 0;
  padding: 12px 10px;
  color: #7c1f1f;
  font-family: "Microsoft YaHei", SimHei, sans-serif;
  font-size: 24px;
}

.forum-post {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  margin-top: 8px;
  border: 1px solid #a5b1ba;
  background: #fff;
}

.post-user {
  min-height: 118px;
  padding: 10px 9px;
  border-right: 1px solid #a5b1ba;
  background: #e6edf2;
}

.post-user strong,
.post-user span {
  display: block;
}

.post-user strong {
  color: #263f57;
  font-size: 15px;
}

.post-user span {
  margin-top: 4px;
  color: #617080;
  font-size: 12px;
}

.post-body {
  min-height: 118px;
  padding: 10px 12px;
}

.post-body time {
  display: block;
  margin-bottom: 8px;
  color: #758390;
  font-size: 12px;
}

.post-body p {
  margin-bottom: 9px;
  padding: 0;
}

.highlight-post {
  border-color: #8b211c;
  box-shadow: 0 0 0 2px #f1db9c inset;
}

.highlight-post .post-user {
  background: #f6eac4;
}

.link-line {
  padding-top: 5px;
}

.thread-link {
  display: inline-block;
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid #7c1f1f;
  background: #8d2c20;
  color: #fff8df;
  font-weight: 700;
  text-decoration: none;
}

.thread-link:visited {
  color: #fff8df;
}

.thread-link:hover {
  background: #24486f;
}

.quiet-post {
  opacity: 0.82;
}

.quiet-post .post-body {
  color: #6e2a25;
  font-family: "Courier New", SimSun, monospace;
}

.forum-footer {
  padding: 8px 10px;
  border-top: 1px solid #a5b1ba;
  background: #d8e1e7;
  color: #617080;
  text-align: center;
  font-size: 12px;
}

.forum-footer p {
  margin: 0;
}

.forum-owner-tag {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 4px;
  color: #fff;
  background: #8e392d;
  font-size: 10px;
  font-weight: normal;
}

.ritual-confirmed-post .post-body p {
  color: #4f554e;
  letter-spacing: 1px;
}

.forum-layout.forum-thread-only {
  display: block;
}

.forum-thread-only .thread-column {
  width: 100%;
}

.ritual-generated-post {
  animation: ritual-post-appear 260ms ease-out both;
}

.ritual-infinite-sentinel {
  padding: 18px;
  border: 1px solid #aeb7bb;
  border-top: 0;
  color: #7a858a;
  background: #eef1f3;
  text-align: center;
  font-size: 12px;
  letter-spacing: 3px;
}

@keyframes ritual-post-appear {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.page-shell {
  width: 1080px;
  max-width: calc(100% - 24px);
  margin: 14px auto;
  border: 1px solid #7d735f;
  background: #f3efd9;
  box-shadow: 0 0 0 3px #c6b992;
}

.zhetang-home .page-shell {
  background: rgba(243, 239, 217, 0.86);
  box-shadow: 0 0 0 3px rgba(255, 238, 156, 0.45), 0 18px 42px rgba(10, 5, 16, 0.42);
}

.site-header {
  border-bottom: 2px solid #7c1f1f;
  background: #efe5be;
}

.header-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  min-height: 124px;
  padding: 18px 18px 12px;
  background:
    linear-gradient(90deg, rgba(124, 31, 31, 0.18), rgba(239, 229, 190, 0) 48%),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0.32) 1px, transparent 1px, transparent 26px);
}

.header-main > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}

.school-name {
  margin: 0 0 4px;
  color: #7c1f1f;
  font-size: 15px;
  letter-spacing: 0;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 8px;
  color: #213b63;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 0;
}

.site-home-link,
.site-home-link:visited {
  color: inherit;
  text-decoration: none;
}

.site-home-link:hover {
  text-decoration: underline;
}

.title-flower-grass {
  display: block;
  width: min(260px, 100%);
  height: auto;
  max-height: 82px;
  margin: 2px 0 -4px;
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
  filter: drop-shadow(0 6px 5px rgba(45, 22, 18, 0.24));
}

.zhetang-home .title-flower-grass {
  width: min(300px, 100%);
}

.site-note {
  margin: 0;
  color: #665d4a;
}

.site-search {
  width: 355px;
  min-width: 300px;
  padding: 10px;
  border: 1px solid #8b7d5b;
  background: #fff9d9;
}

.site-search label {
  display: block;
  margin-bottom: 5px;
  color: #7c1f1f;
  font-weight: 700;
}

.search-row {
  display: flex;
  gap: 6px;
}

.search-row input {
  width: 100%;
  height: 34px;
  border: 1px solid #6f654d;
  background: #fffef4;
  color: #2e2a22;
  font-family: SimSun, "Songti SC", serif;
  font-size: 15px;
  padding: 5px 8px;
}

.search-row button {
  width: 68px;
  height: 34px;
  border: 1px solid #5c241d;
  background: #8d2c20;
  color: #fff8df;
  font-family: SimSun, "Songti SC", serif;
  font-size: 14px;
  cursor: pointer;
}

.old-nav {
  display: flex;
  align-items: center;
  gap: 0;
  height: 28px;
  border-top: 1px solid #a08f67;
  border-bottom: 1px solid #a08f67;
  background: #24486f;
  box-shadow: inset 0 1px 0 #6f8bad, inset 0 -1px 0 #17314e;
}

.old-nav a {
  display: inline-flex;
  align-items: center;
  height: 100%;
  padding: 0 12px;
  border-right: 1px solid #17314e;
  color: #fff8df;
  font-size: 13px;
  text-decoration: none;
}

.old-nav a:visited {
  color: #fff8df;
}

.old-nav a:hover {
  background: #7c1f1f;
}

.site-status-bar {
  padding: 0 12px;
  color: #fff8df;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.site-status-bar span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ticker {
  height: 28px;
  padding: 4px 0;
  border-top: 1px solid #fff5c7;
  background: #fff8d1;
  color: #5c241d;
}

.layout {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) 248px;
  grid-template-areas:
    "left content right"
    "guestbook guestbook right";
  gap: 10px;
  align-items: start;
  padding: 10px;
}

.left-column {
  grid-area: left;
}

.content-column {
  grid-area: content;
}

.right-column {
  grid-area: right;
}

.panel {
  margin-bottom: 10px;
  border: 1px solid #9a8e6d;
  background: #fffbed;
}

.panel h2 {
  margin: 0;
  padding: 5px 8px;
  border-bottom: 1px solid #9a8e6d;
  background: #d8c994;
  color: #4f1a16;
  font-size: 15px;
  line-height: 1.4;
}

.panel h3 {
  margin: 8px 8px 2px;
  color: #213b63;
  font-size: 14px;
}

.panel p,
.panel dl,
.panel table,
.panel ul {
  margin-bottom: 0;
}

.panel p {
  padding: 0 8px 8px;
}

.compact {
  font-size: 13px;
}

.basic-list {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 0;
  margin: 0;
  padding: 8px;
}

.basic-list dt,
.basic-list dd {
  margin: 0;
  padding: 3px 0;
  border-bottom: 1px dotted #c9bd94;
}

.basic-list dt {
  color: #665d4a;
}

.counter {
  margin: 8px 8px 4px;
  padding: 4px 6px;
  border: 1px inset #968b70;
  background: #1f1f1f;
  color: #d5f3a5;
  font-family: "Courier New", monospace;
  font-size: 20px;
  letter-spacing: 0;
}

.notice p {
  font-size: 15px;
}

.stamp {
  margin: 8px 8px 4px;
  padding: 0;
  color: #7c1f1f;
  font-weight: 700;
}

.section-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #9a8e6d;
  background: #d8c994;
}

.section-title-row h2 {
  border-bottom: 0;
}

.section-title-row a,
.section-title-row span {
  padding-right: 8px;
  font-size: 13px;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 8px;
}

.photo-slot {
  border: 1px solid #c3b98e;
  background: #f7f0cf;
}

.photo-frame {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  margin: 8px;
  border: 1px solid #91845f;
  background: #e5debd;
  overflow: hidden;
}

.photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photo-preview-trigger {
  cursor: zoom-in;
}

.photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(22, 18, 13, 0.82);
}

.photo-lightbox.is-open {
  display: flex;
}

.photo-lightbox img {
  display: block;
  max-width: min(1100px, 94vw);
  max-height: 90vh;
  border: 3px solid #fffbed;
  background: #e5debd;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.46);
  object-fit: contain;
}

body.photo-lightbox-open {
  overflow: hidden;
}

.missing-photo {
  border-style: dashed;
  color: #756a50;
  font-size: 13px;
}

.photo-slot p {
  color: #5f5849;
  font-size: 13px;
}

.guestbook-strip {
  grid-area: guestbook;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.guestbook-strip .panel {
  margin-bottom: 0;
}

.guestbook-compose {
  min-width: 0;
}

.guestbook-compose-body {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 6px;
  padding: 8px;
}

.guestbook-compose label {
  padding-top: 4px;
  color: #665d4a;
}

.guestbook-compose input,
.guestbook-compose textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #91845f;
  background: #fffef4;
  color: #2e2a22;
  font-family: SimSun, "Songti SC", serif;
  font-size: 13px;
}

.guestbook-compose input {
  height: 26px;
  padding: 3px 5px;
}

.guestbook-compose textarea {
  grid-column: 1 / -1;
  resize: vertical;
  min-height: 84px;
  padding: 5px;
}

.guestbook-compose button {
  grid-column: 2;
  height: 26px;
  border: 1px solid #5c241d;
  background: #8d2c20;
  color: #fff8df;
  font-family: SimSun, "Songti SC", serif;
  font-size: 13px;
  cursor: pointer;
}

.guestbook-toast {
  position: fixed;
  z-index: 30;
  left: 50%;
  top: 124px;
  width: 210px;
  border: 2px solid #17314e;
  background: #fffbed;
  color: #2e2a22;
  box-shadow: 4px 4px 0 rgba(33, 59, 99, 0.28);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -8px);
  transition: opacity 240ms ease, transform 240ms ease;
}

.guestbook-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

.guestbook-toast-title {
  padding: 4px 8px;
  border-bottom: 1px solid #11283f;
  background: #24486f;
  color: #fff8df;
  font-size: 13px;
  font-weight: 700;
}

.guestbook-toast p {
  margin: 0;
  padding: 10px 12px;
  font-size: 13px;
  text-align: center;
}

.message-list {
  min-width: 0;
  padding: 8px;
}

.message {
  padding: 0 0 8px;
  border-bottom: 1px dotted #b9ad84;
}

.message + .message {
  margin-top: 8px;
}

.message-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px 6px;
  padding-bottom: 3px;
}

.message p {
  padding: 0;
}

.message-author,
.message-id,
.message-role {
  display: inline-block;
  vertical-align: baseline;
}

.message-id {
  color: #6d654f;
  font-family: "Courier New", SimSun, monospace;
  font-size: 12px;
}

.message-role {
  color: #7c1f1f;
  font-size: 11px;
  font-weight: 700;
}

.message time {
  margin-left: auto;
  color: #6d654f;
  font-size: 12px;
}

.message.muted {
  color: #5c241d;
}

.article-layout {
  padding: 10px;
}

.article-panel {
  max-width: 760px;
  margin: 0 auto 10px;
}

.roster-panel {
  max-width: 980px;
}

.article-photo {
  margin: 10px 8px;
  padding: 8px;
  border: 1px solid #c3b98e;
  background: #f7f0cf;
}

.article-photo img {
  display: block;
  width: 100%;
  max-height: 380px;
  object-fit: cover;
  border: 1px solid #91845f;
}

.article-photo figcaption {
  margin-top: 6px;
  color: #6d654f;
  font-size: 12px;
  text-align: center;
}

.article-copy {
  padding: 0 8px 12px;
  font-size: 15px;
}

.article-copy p {
  padding: 0;
  margin-bottom: 10px;
}

.call-record-copy {
  font-family: "Courier New", SimSun, monospace;
}

.call-record-copy p {
  padding: 7px 9px;
  border-left: 3px solid #b9ad84;
  background: #fff9df;
}

.chat-screenshot {
  max-width: 520px;
  margin: 8px auto 14px;
  padding: 12px;
  border: 1px solid #b9ad84;
  background: #f7f0cf;
  box-shadow: 0 8px 18px rgba(70, 51, 20, 0.16);
}

.chat-screenshot figcaption {
  margin-bottom: 8px;
  color: #6d654f;
  font-family: "Courier New", SimSun, monospace;
  font-size: 12px;
  text-align: center;
}

.chat-window {
  border: 1px solid #8f855f;
  background:
    linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)),
    #dfe8d8;
  font-family: "Microsoft YaHei", SimSun, sans-serif;
  overflow: hidden;
}

.chat-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 32px;
  padding: 6px 10px;
  border-bottom: 1px solid #aab49e;
  background: #d8e1e7;
  color: #263f57;
  font-size: 12px;
}

.chat-titlebar time {
  color: #617080;
  white-space: nowrap;
}

.chat-message {
  max-width: 76%;
  margin: 12px 10px;
}

.chat-message strong {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 3px;
  color: #6d654f;
  font-size: 12px;
  font-weight: 400;
}

.chat-user-id {
  color: #8a8069;
  font-family: "Courier New", SimSun, monospace;
  font-size: 10px;
}

.chat-message p {
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #bdc8b5;
  background: #fffdf2;
  color: #2e2a22;
  font-size: 14px;
  line-height: 1.6;
}

.chat-left {
  margin-right: auto;
}

.chat-right {
  margin-left: auto;
}

.chat-right strong {
  justify-content: flex-end;
}

.chat-right p {
  border-color: #a5b7d0;
  background: #eaf2ff;
}

.roster-intro {
  padding-bottom: 8px;
}

.roster-table-wrap {
  margin: 0 8px 12px;
  border: 1px solid #b9ad84;
  overflow-x: auto;
  background: #fffdf2;
}

.roster-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: 13px;
}

.roster-table th,
.roster-table td {
  padding: 6px 8px;
  border: 1px solid #cfc49a;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}

.roster-table th {
  background: #e4d7a9;
  color: #4f1a16;
  font-weight: 700;
}

.roster-table tbody tr:nth-child(even) {
  background: #f9f3d6;
}

.roster-table tbody tr:hover {
  background: #fff2b3;
}

.key-roster-row {
  color: #213b63;
  font-weight: 700;
}

.odd-roster-row {
  color: #7c1f1f;
  font-weight: 700;
}

.deleted-roster-row td {
  background: #eee5c0;
  color: #8a8069;
  font-family: "Courier New", SimSun, monospace;
}

.deleted-roster-row td:not(:first-child):empty::before {
  content: "";
  display: inline-block;
  width: 46px;
  border-top: 1px dotted #a79a74;
  vertical-align: middle;
}

.diary-paper-page {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.35), transparent 26%),
    linear-gradient(135deg, #d8c18c 0%, #eadcb4 52%, #c8aa72 100%);
  color: #362817;
  font-family: var(--font-handwriting);
}

.diary-paper-wrap {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 36px 18px;
}

.diary-paper {
  position: relative;
  width: min(780px, 90vw);
  min-height: 500px;
  padding: 88px 78px 72px;
  background:
    linear-gradient(rgba(127, 91, 43, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(116, 81, 42, 0.04) 1px, transparent 1px),
    #f3e6c4;
  background-size: 100% 34px, 34px 100%, auto;
  box-shadow:
    0 18px 46px rgba(68, 45, 18, 0.26),
    inset 0 0 42px rgba(116, 78, 33, 0.16);
}

.diary-paper::before {
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(103, 70, 31, 0.2);
  content: "";
  pointer-events: none;
}

.diary-paper p {
  position: relative;
  margin: 0;
  font-size: 25px;
  line-height: 2;
}

.diary-paper-note {
  margin-top: 28px;
  color: #6d4d26;
  font-size: 18px;
  text-align: right;
}

@media (max-width: 640px) {
  .diary-paper {
    width: min(560px, 94vw);
    min-height: 420px;
    padding: 64px 36px 50px;
  }

  .diary-paper p {
    font-size: 21px;
  }
}

.restricted-page {
  display: grid;
  min-height: 100vh;
  margin: 0;
  place-items: center;
  background: #050505;
  color: #9b9b9b;
  font-family: var(--font-pixel);
}

.restricted-message {
  padding: 12px 14px;
  border: 1px solid #1f1f1f;
  background: #0b0b0b;
  font-size: 13px;
  font-weight: 400;
  text-align: center;
}

.album-wall {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
}

.album-entry {
  margin: 0;
  padding: 8px;
  border: 1px solid #c3b98e;
  background: #f7f0cf;
}

.album-entry .photo-frame {
  margin: 0;
}

.album-entry figcaption {
  min-height: 18px;
  padding-top: 6px;
  color: #6d654f;
  font-size: 12px;
  text-align: center;
}

.signature {
  margin-top: 18px;
  text-align: right;
}

.empty-result {
  margin: 0;
  color: #6d654f;
}

.result-summary {
  margin: 8px 8px 0;
  padding: 0;
  color: #6d654f;
  font-size: 13px;
}

.result-list {
  margin: 8px;
  padding: 0;
  list-style: none;
}

.result-list li {
  padding: 7px 0;
  border-bottom: 1px dotted #b9ad84;
}

.result-list a {
  display: block;
  margin-bottom: 2px;
  font-weight: 700;
}

.result-list span {
  color: #6d654f;
  font-size: 12px;
}

.result-list p {
  padding: 2px 0 0;
  color: #3d382d;
  font-size: 13px;
}

.site-footer {
  padding: 10px;
  border-top: 1px solid #9a8e6d;
  background: #e0d2a3;
  color: #5f5849;
  text-align: center;
  font-size: 12px;
}

.site-footer p {
  margin: 0;
  padding: 1px 0;
}

.footer-meta {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
}

.page-index-note {
  display: inline-block;
  justify-self: end;
  margin-left: 0;
  color: #8a8069;
  font-family: "Courier New", SimSun, monospace;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}

.page-index-note-fixed {
  position: fixed;
  right: 12px;
  bottom: 9px;
  z-index: 10000;
  min-width: 42px;
  margin: 0;
  padding: 3px 7px;
  border: 1px solid rgba(110, 101, 82, 0.42);
  background: rgba(245, 241, 226, 0.9);
  box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.65);
  color: #655e4f;
  text-align: center;
  pointer-events: none;
}

.search-modal {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 92px 16px 24px;
  background: rgba(45, 39, 28, 0.36);
}

.search-modal.is-open {
  display: flex;
}

.modal-window {
  width: 620px;
  max-width: 100%;
  border: 2px solid #17314e;
  background: #fffbed;
  box-shadow: 6px 6px 0 rgba(33, 59, 99, 0.32);
}

.modal-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 32px;
  border-bottom: 1px solid #11283f;
  background: #24486f;
  color: #fff;
}

.modal-titlebar h2 {
  margin: 0;
  padding: 5px 9px;
  font-size: 15px;
  line-height: 1.4;
}

.modal-titlebar button {
  width: 30px;
  height: 28px;
  margin-right: 2px;
  border: 1px solid #9fb3c9;
  background: #e6dfbd;
  color: #4f1a16;
  font-family: SimSun, "Songti SC", serif;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.modal-body {
  min-height: 170px;
  max-height: min(58vh, 460px);
  overflow: auto;
  padding: 12px;
  border-top: 1px solid #6582a3;
}

.input-history-menu {
  position: absolute;
  z-index: 40;
  border: 1px solid #6f654d;
  background: #fffef4;
  box-shadow: 3px 3px 0 rgba(33, 59, 99, 0.18);
  font-family: SimSun, "Songti SC", serif;
}

.input-history-item {
  display: block;
  width: 100%;
  min-height: 28px;
  padding: 5px 8px;
  border: 0;
  border-bottom: 1px dotted #c9bd94;
  background: transparent;
  color: #2e2a22;
  font: inherit;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

.input-history-item:last-child {
  border-bottom: 0;
}

.input-history-item:hover,
.input-history-item:focus {
  background: #fff2b3;
}

.admin-page {
  min-height: 100vh;
  background: #e6ebf0;
  color: #1f2933;
  font-family: var(--font-pixel);
}

.admin-shell {
  width: 980px;
  max-width: calc(100% - 24px);
  margin: 18px auto;
  border: 1px solid #8f9baa;
  background: #f7f9fb;
}

.admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid #aeb8c4;
  background: #dfe6ee;
}

.admin-kicker {
  margin: 0 0 3px;
  padding: 0;
  color: #657386;
  font-family: "Courier New", monospace;
  font-size: 12px;
  line-height: 1.4;
}

.admin-header h1,
.admin-toolbar h2 {
  margin: 0;
  color: #1b3657;
  font-family: var(--font-pixel);
  letter-spacing: 0;
}

.admin-header h1 {
  font-size: 24px;
}

.admin-state {
  min-width: 70px;
  padding: 4px 8px;
  border: 1px solid #8793a2;
  background: #fff;
  color: #465668;
  text-align: center;
  font-size: 13px;
}

.admin-main {
  padding: 18px;
}

.admin-login-panel,
.admin-dashboard {
  border: 1px solid #aeb8c4;
  background: #fff;
}

.admin-login-panel {
  width: 360px;
  max-width: 100%;
  margin: 34px auto;
}

.admin-login-panel h2 {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #aeb8c4;
  background: #eef2f6;
  color: #1b3657;
  font-size: 16px;
}

.admin-login-form {
  display: grid;
  gap: 8px;
  padding: 14px 12px 16px;
}

.admin-login-form label {
  color: #435466;
  font-size: 13px;
  font-weight: 700;
}

.admin-login-form input {
  width: 100%;
  height: 36px;
  border: 1px solid #8f9baa;
  background: #fbfcfe;
  color: #1f2933;
  font: inherit;
  padding: 6px 8px;
}

.admin-field-hint {
  margin: -3px 0 2px;
  padding: 0;
  color: #657386;
  font-size: 12px;
}

.admin-login-form button,
.admin-toolbar button {
  height: 34px;
  border: 1px solid #17314e;
  background: #24486f;
  color: #fff;
  font: inherit;
  cursor: pointer;
}

.admin-login-form button {
  margin-top: 4px;
}

.admin-login-form button:hover,
.admin-toolbar button:hover {
  background: #17314e;
}

.admin-message {
  min-height: 20px;
  margin: 0;
  padding: 2px 0 0;
  color: #8b211c;
  font-size: 13px;
}

.admin-loading-panel {
  width: 420px;
  max-width: 100%;
  margin: 34px auto;
  border: 1px solid #7b8794;
  background: #fff;
}

.admin-loading-panel h2 {
  margin: 0;
  padding: 8px 10px;
  border-bottom: 1px solid #7b8794;
  background: #dce3ea;
  color: #1b3657;
  font-size: 15px;
}

.admin-loading-box {
  padding: 14px 12px;
}

.admin-loading-box p {
  margin: 0 0 10px;
  padding: 0;
  color: #33465c;
  font-family: "Courier New", SimSun, monospace;
  font-size: 13px;
}

.admin-loading-track {
  height: 20px;
  border: 1px inset #8f9baa;
  background: #eef2f6;
  overflow: hidden;
}

.admin-loading-track span {
  display: block;
  width: 0;
  height: 100%;
  background: repeating-linear-gradient(90deg, #24486f, #24486f 8px, #315c89 8px, #315c89 16px);
  transition: width 360ms steps(6, end);
}

.admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px;
  border-bottom: 1px solid #aeb8c4;
  background: #eef2f6;
}

.admin-toolbar h2 {
  font-size: 20px;
}

.admin-toolbar button {
  min-width: 70px;
  padding: 0 12px;
}

.admin-summary {
  padding: 12px;
  border-bottom: 1px solid #d5dce4;
}

.admin-summary dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.admin-summary div {
  min-width: 0;
  border: 1px solid #d5dce4;
  background: #f7f9fb;
  padding: 8px;
}

.admin-summary dt {
  color: #657386;
  font-size: 12px;
}

.admin-summary dd {
  margin: 2px 0 0;
  color: #1f2933;
  font-weight: 700;
}

.admin-records {
  display: grid;
  gap: 12px;
  padding: 12px;
}

.admin-record {
  border: 1px solid #aeb8c4;
  background: #fff;
}

.admin-record-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-bottom: 1px solid #d5dce4;
  background: #f7f9fb;
}

.admin-record-head h3 {
  margin: 0;
  color: #1b3657;
  font-size: 16px;
}

.admin-record-head span {
  color: #657386;
  font-size: 12px;
  white-space: nowrap;
}

.admin-data-grid {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  margin: 0;
  padding: 8px 10px;
}

.admin-data-grid dt,
.admin-data-grid dd {
  margin: 0;
  padding: 6px 0;
  border-bottom: 1px dotted #d5dce4;
}

.admin-data-grid dt {
  color: #657386;
}

.admin-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 2px 10px 12px;
}

.admin-link-list a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid #8793a2;
  background: #eef2f6;
  color: #17314e;
  text-decoration: none;
}

.admin-link-list a:visited {
  color: #17314e;
}

.admin-link-list a:hover {
  border-color: #17314e;
  background: #24486f;
  color: #fff;
}

.admin-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 18px;
  border-top: 1px solid #aeb8c4;
  background: #dfe6ee;
  color: #657386;
  font-size: 12px;
}

.admin-footer a {
  color: #17314e;
}

.role-admin-page {
  min-height: 100vh;
  font-family: var(--font-pixel);
}

.role-admin-page.theme-light {
  background: #edf2f5;
  color: #1f2933;
}

.role-admin-page.theme-dark {
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.018), rgba(255, 255, 255, 0.018) 1px, transparent 1px, transparent 5px),
    #101419;
  color: #d8dde4;
}

.role-admin-shell {
  width: 1040px;
  max-width: calc(100% - 24px);
  margin: 18px auto;
  border: 1px solid #9aa7b6;
}

.theme-light .role-admin-shell {
  background: #f8fafc;
}

.theme-dark .role-admin-shell {
  border-color: #5e2630;
  background: #171c23;
  box-shadow: 0 0 0 1px rgba(120, 20, 35, 0.28), 0 18px 40px rgba(0, 0, 0, 0.34);
}

.role-admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid #aeb8c4;
}

.theme-light .role-admin-header {
  background: #dfe6ee;
}

.theme-dark .role-admin-header {
  border-bottom-color: #5e2630;
  background: #141821;
}

.role-admin-kicker {
  margin: 0 0 4px;
  padding: 0;
  font-family: "Courier New", monospace;
  font-size: 12px;
  line-height: 1.4;
}

.theme-light .role-admin-kicker {
  color: #657386;
}

.theme-dark .role-admin-kicker {
  color: #b86b77;
}

.role-admin-header h1 {
  margin: 0;
  font-family: var(--font-pixel);
  font-size: 26px;
  letter-spacing: 0;
}

.theme-light .role-admin-header h1 {
  color: #1b3657;
}

.theme-dark .role-admin-header h1 {
  color: #f0e8e5;
  text-shadow: 0 0 12px rgba(145, 22, 38, 0.42);
}

.role-admin-exit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid currentColor;
  text-decoration: none;
}

.theme-light .role-admin-exit {
  color: #17314e;
  background: #fff;
}

.theme-dark .role-admin-exit {
  color: #efc8cd;
  background: #21151b;
}

.role-admin-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 12px;
  padding: 12px;
}

.role-profile-panel,
.role-content-panel,
.role-note-panel {
  border: 1px solid #aeb8c4;
}

.theme-light .role-profile-panel,
.theme-light .role-content-panel,
.theme-light .role-note-panel {
  background: #fff;
}

.theme-dark .role-profile-panel,
.theme-dark .role-content-panel,
.theme-dark .role-note-panel {
  border-color: #4f2a33;
  background: #1c222b;
}

.role-content-panel,
.role-note-panel {
  min-width: 0;
}

.role-note-panel {
  grid-column: 1 / -1;
}

.role-profile-panel h2,
.role-content-panel h2,
.role-note-panel h2 {
  margin: 0;
  padding: 8px 10px;
  border-bottom: 1px solid #aeb8c4;
  font-size: 16px;
}

.theme-light .role-profile-panel h2,
.theme-light .role-content-panel h2,
.theme-light .role-note-panel h2 {
  background: #eef2f6;
  color: #1b3657;
}

.theme-dark .role-profile-panel h2,
.theme-dark .role-content-panel h2,
.theme-dark .role-note-panel h2 {
  border-bottom-color: #4f2a33;
  background: #151922;
  color: #efc8cd;
}

.role-profile-list {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  margin: 0;
  padding: 10px;
}

.role-profile-list dt,
.role-profile-list dd {
  margin: 0;
  padding: 7px 0;
  border-bottom: 1px dotted #c7d0da;
}

.theme-light .role-profile-list dt {
  color: #657386;
}

.theme-dark .role-profile-list dt {
  color: #9b7d83;
}

.theme-dark .role-profile-list dt,
.theme-dark .role-profile-list dd {
  border-bottom-color: #42313a;
}

.role-profile-list dd {
  min-width: 0;
}

.safe-status {
  color: #1f6f4a;
  font-weight: 700;
}

.danger-status {
  color: #9b1c2c;
  font-weight: 700;
}

.theme-dark .danger-status {
  color: #ff9aa7;
}

.role-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
}

.role-link-grid a {
  display: block;
  min-height: 92px;
  padding: 10px;
  border: 1px solid #bcc6d1;
  text-decoration: none;
}

.theme-light .role-link-grid a {
  background: #f8fafc;
  color: #17314e;
}

.theme-dark .role-link-grid a {
  border-color: #4f2a33;
  background: #151922;
  color: #efc8cd;
}

.role-link-grid a:hover {
  border-color: #17314e;
}

.theme-dark .role-link-grid a:hover {
  border-color: #ba3346;
  background: #21151b;
}

.role-link-grid strong,
.role-link-grid span {
  display: block;
}

.role-link-grid strong {
  margin-bottom: 5px;
  font-size: 15px;
}

.role-link-grid span {
  color: #5d6b7a;
  font-size: 13px;
  line-height: 1.5;
}

.theme-dark .role-link-grid span {
  color: #b9a1a6;
}

.role-note-panel p {
  margin: 0;
  padding: 10px;
  line-height: 1.7;
}

.role-admin-page {
  font-size: 13px;
  line-height: 1.55;
}

.role-admin-page.theme-light {
  background: #dfe5eb;
}

.role-admin-page.theme-dark {
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0.025) 1px, transparent 1px, transparent 4px),
    #151515;
}

.role-admin-shell {
  width: 960px;
  margin-top: 14px;
  border: 1px solid #6f7f90;
  box-shadow: none;
}

.theme-light .role-admin-shell {
  background: #f4f4f4;
}

.theme-dark .role-admin-shell {
  border-color: #522830;
  background: #202020;
  box-shadow: none;
}

.role-admin-header {
  min-height: 58px;
  padding: 10px 12px;
}

.theme-light .role-admin-header {
  border-bottom-color: #6f7f90;
  background: #cfd8e2;
}

.theme-dark .role-admin-header {
  border-bottom-color: #522830;
  background: #1a1a1a;
}

.role-admin-kicker {
  margin-bottom: 2px;
  font-size: 11px;
}

.role-admin-header h1 {
  font-size: 20px;
}

.theme-dark .role-admin-header h1 {
  color: #e2d7d9;
  text-shadow: none;
}

.role-admin-exit {
  min-height: 26px;
  padding: 2px 8px;
  border: 1px solid #6f7f90;
  background: transparent;
  font-size: 12px;
}

.theme-light .role-admin-exit {
  color: #003f86;
  background: #eef2f6;
}

.theme-dark .role-admin-exit {
  border-color: #6b343d;
  color: #e0b4bb;
  background: #2a2022;
}

.role-admin-layout {
  grid-template-columns: 270px minmax(0, 1fr);
  gap: 8px;
  padding: 8px;
}

.role-profile-panel,
.role-content-panel {
  border: 1px solid #8d9aaa;
}

.theme-light .role-profile-panel,
.theme-light .role-content-panel {
  background: #fff;
}

.theme-dark .role-profile-panel,
.theme-dark .role-content-panel {
  border-color: #5f343c;
  background: #242424;
}

.role-profile-panel h2,
.role-content-panel h2 {
  padding: 5px 8px;
  font-size: 14px;
}

.theme-light .role-profile-panel h2,
.theme-light .role-content-panel h2 {
  border-bottom-color: #8d9aaa;
  background: #d8e1e7;
  color: #263f57;
}

.theme-dark .role-profile-panel h2,
.theme-dark .role-content-panel h2 {
  border-bottom-color: #5f343c;
  background: #2b1d20;
  color: #e0b4bb;
}

.role-profile-list {
  grid-template-columns: 78px minmax(0, 1fr);
  padding: 8px;
}

.role-profile-list dt,
.role-profile-list dd {
  padding: 5px 0;
}

.role-file-list {
  margin: 0;
  padding: 0 8px;
  list-style: none;
}

.role-file-list li {
  min-height: 38px;
  padding: 8px 0;
  border-bottom: 1px dotted #b7c0ca;
}

.theme-dark .role-file-list li {
  border-bottom-color: #52383d;
}

.role-file-list a {
  display: block;
  color: #003f86;
  font-weight: 700;
  text-decoration: underline;
}

.role-file-list a:visited {
  color: #5d3974;
}

.theme-dark .role-file-list a {
  color: #e2b9c0;
}

.theme-dark .role-file-list a:visited {
  color: #c68b94;
}

.role-file-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  background: rgba(222, 228, 234, 0.72);
}

.role-file-loading-overlay[hidden] {
  display: none;
}

.theme-dark .role-file-loading-overlay {
  background: rgba(12, 12, 12, 0.78);
}

.role-file-loading-box {
  min-width: 190px;
  padding: 18px 22px 14px;
  border: 1px solid #7b8794;
  background: #f4f4f4;
  color: #33465c;
  text-align: center;
}

.theme-dark .role-file-loading-box {
  border-color: #6b343d;
  background: #211d1e;
  color: #e0b4bb;
}

.role-file-loading-ring {
  --file-progress: 0deg;
  position: relative;
  width: 54px;
  height: 54px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: conic-gradient(#24486f var(--file-progress), #c9d2dc 0);
}

.theme-dark .role-file-loading-ring {
  background: conic-gradient(#a33b4a var(--file-progress), #493136 0);
}

.role-file-loading-ring::after {
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  background: #f4f4f4;
  content: "";
}

.theme-dark .role-file-loading-ring::after {
  background: #211d1e;
}

.role-file-loading-box p {
  margin: 0;
  font-family: "Courier New", SimSun, monospace;
  font-size: 13px;
}

.role-file-interrupt-dialog {
  position: fixed;
  top: calc(50% + 105px);
  left: 50%;
  width: min(390px, calc(100% - 28px));
  padding: 18px;
  box-sizing: border-box;
  transform: translateX(-50%);
  border: 1px solid #753943;
  background: #211d1e;
  color: #e0b4bb;
  box-shadow: 0 12px 38px rgba(0, 0, 0, 0.65);
  text-align: left;
}

.role-file-interrupt-dialog[hidden] { display: none; }
.role-file-interrupt-header { display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px; }
.role-file-interrupt-dialog .role-file-interrupt-header strong { display:block;margin:0;color:#eeccd2;letter-spacing:3px; }
.role-file-interrupt-dialog .role-file-interrupt-close { width:auto;height:25px;margin:0;padding:0 9px;border:1px solid #7b4b53;background:#382327;color:#f0d7dc;font-size:11px;letter-spacing:1px;cursor:pointer; }
.role-file-interrupt-dialog .role-file-interrupt-close:hover { background:#563038; }
.role-file-interrupt-dialog p { margin:0 0 13px;font:13px/1.7 SimSun,serif; }
.encrypted-redaction { display:inline-block;margin:0 5px;padding:0 5px;color:#050505;background:#050505;box-shadow:0 0 0 1px #000;line-height:1.15;vertical-align:middle;user-select:none; }
.role-file-interrupt-dialog label { display:block;margin-bottom:5px;color:#b88790;font-size:11px; }
.role-file-interrupt-dialog input { width:100%;height:32px;padding:0 8px;box-sizing:border-box;border:1px solid #70414a;background:#0e0d0d;color:#f0d7dc;font-family:"Courier New",monospace;outline:none; }
.role-file-interrupt-dialog button { width:100%;height:31px;margin-top:8px;border:1px solid #7b4b53;background:#382327;color:#f0d7dc;cursor:pointer; }
.role-file-interrupt-dialog output { display:block;min-height:16px;margin-top:7px;color:#df5366;font-size:11px;text-align:center; }

.role-logout-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 35;
  display: grid;
  place-items: center;
  background: rgba(222, 228, 234, 0.68);
}

.role-logout-loading-overlay[hidden] {
  display: none;
}

.theme-dark .role-logout-loading-overlay {
  background: rgba(12, 12, 12, 0.74);
}

.role-logout-loading-box {
  width: min(260px, calc(100vw - 48px));
  padding: 14px 16px 16px;
  border: 1px solid #7b8794;
  background: #f4f4f4;
  color: #33465c;
}

.theme-dark .role-logout-loading-box {
  border-color: #6b343d;
  background: #211d1e;
  color: #e0b4bb;
}

.role-logout-loading-box p {
  margin: 0 0 9px;
  font-family: "Courier New", SimSun, monospace;
  font-size: 13px;
  text-align: center;
}

.role-logout-loading-track {
  height: 6px;
  overflow: hidden;
  border: 1px solid #9ea9b5;
  background: #d9e0e7;
}

.theme-dark .role-logout-loading-track {
  border-color: #6b343d;
  background: #493136;
}

.role-logout-loading-track span {
  display: block;
  width: 0;
  height: 100%;
  background: #24486f;
}

.theme-dark .role-logout-loading-track span {
  background: #a33b4a;
}

.role-detail-header {
  justify-content: flex-start;
}

.role-admin-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 3px 8px;
  border: 1px solid #6f7f90;
  color: #003f86;
  background: #eef2f6;
  font-size: 12px;
  text-decoration: none;
}

.theme-dark .role-admin-back {
  border-color: #6b343d;
  color: #e0b4bb;
  background: #2a2022;
}

.role-detail-layout {
  padding: 8px;
}

.role-detail-panel {
  border: 1px solid #8d9aaa;
  background: #fff;
}

.theme-dark .role-detail-panel {
  border-color: #5f343c;
  background: #242424;
}

.role-detail-copy {
  padding: 12px;
  font-size: 14px;
  line-height: 1.75;
}

.role-detail-copy p {
  margin: 0 0 12px;
}

.role-detail-copy p:last-child {
  margin-bottom: 0;
}

.role-file-warning {
  color: #9b1c2c;
  font-weight: 700;
}

.theme-dark .role-file-warning {
  color: #ff9aa7;
}

.role-file-change-list {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  margin: 0;
  border-top: 1px solid #aeb8c4;
  border-left: 1px solid #aeb8c4;
}

.role-file-change-list dt,
.role-file-change-list dd {
  margin: 0;
  padding: 7px 8px;
  border-right: 1px solid #aeb8c4;
  border-bottom: 1px solid #aeb8c4;
}

.role-file-change-list dt {
  background: #eef2f6;
  color: #435466;
  font-weight: 700;
}

.theme-dark .role-file-change-list {
  border-top-color: #5f343c;
  border-left-color: #5f343c;
}

.theme-dark .role-file-change-list dt,
.theme-dark .role-file-change-list dd {
  border-right-color: #5f343c;
  border-bottom-color: #5f343c;
}

.theme-dark .role-file-change-list dt {
  background: #2b1d20;
  color: #e0b4bb;
}

.role-diary-paper {
  position: relative;
  width: min(760px, 100%);
  min-height: 500px;
  margin: 4px auto;
  padding: 70px 62px 58px;
  background:
    linear-gradient(rgba(127, 91, 43, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(116, 81, 42, 0.05) 1px, transparent 1px),
    #f3e6c4;
  background-size: 100% 32px, 32px 100%, auto;
  box-shadow: inset 0 0 34px rgba(116, 78, 33, 0.18);
  color: #362817;
  font-family: var(--font-handwriting);
}

.role-diary-paper::before {
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(103, 70, 31, 0.24);
  content: "";
  pointer-events: none;
}

.role-diary-paper p {
  position: relative;
  margin: 0 0 18px;
  font-size: 21px;
  line-height: 1.9;
}

.role-diary-paper .truth-revealed {
  margin-top: 32px;
  text-align: center;
  font-family: var(--font-handwriting);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.truth-revealed a {
  color: #d6aa42;
  text-decoration: none;
  text-shadow: 0 0 8px rgba(214, 170, 66, 0.35);
}

.truth-revealed a:hover,
.truth-revealed a:focus-visible {
  color: #f2d37f;
  text-decoration: underline;
}

.memoir-page {
  min-height: 100vh;
  margin: 0;
  padding: 64px 20px;
  box-sizing: border-box;
  background: #e8e1d4;
  color: #302b25;
  font-family: "Noto Serif SC", "Songti SC", "SimSun", serif;
}

.memoir-sheet {
  width: min(720px, 100%);
  margin: 0 auto;
  padding: 64px 72px 72px;
  box-sizing: border-box;
  background: #fffdf8;
  border: 1px solid #d8cebe;
  box-shadow: 0 14px 40px rgba(63, 51, 36, 0.14);
}

.memoir-sheet h1 {
  margin: 0 0 42px;
  text-align: center;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.2em;
}

.memoir-kicker {
  margin: 0 0 12px !important;
  color: #8a7d6b;
  text-align: center;
  text-indent: 0 !important;
  font-size: 14px !important;
  letter-spacing: 0.35em;
}

.memoir-sheet p {
  margin: 0;
  font-size: 17px;
  line-height: 2;
  text-indent: 2em;
}

.memoir-sheet a {
  color: #755521;
  font-weight: 600;
  text-decoration-color: #c8a865;
  text-underline-offset: 0.18em;
}

.memoir-sheet a:hover,
.memoir-sheet a:focus-visible {
  color: #a27629;
}

.memoir-sheet blockquote {
  margin: 52px 0 0;
  padding: 28px 32px;
  border-top: 1px solid #d8cebe;
  border-bottom: 1px solid #d8cebe;
  color: #50483e;
}

.memoir-sheet blockquote p {
  font-style: italic;
  text-indent: 0;
}

.memoir-sheet cite {
  display: block;
  margin-top: 16px;
  text-align: right;
  font-style: normal;
  color: #766a5b;
}

.memoir-sheet .memoir-ending-hint {
  margin-top: 38px;
  color: #755521;
  text-align: center;
  text-indent: 0;
  font-weight: 600;
  letter-spacing: 0.06em;
}

@media (max-width: 640px) {
  .memoir-page { padding: 24px 12px; }
  .memoir-sheet { padding: 42px 28px 50px; }
}

.diary-red-fragment {
  color: #9b1c2c;
  font-weight: 700;
}

.diary-copy-cipher {
  position: relative;
  min-height: 310px;
  margin: 14px -6px 0;
  overflow: hidden;
  cursor: text;
  user-select: text;
  isolation: isolate;
}

.diary-copy-cipher::after {
  content: "林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁林媛是谁";
  position: absolute;
  inset: 0;
  z-index: 2;
  color: #941927;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -2px;
  overflow-wrap: anywhere;
  transform: rotate(-0.6deg) scale(1.02);
  pointer-events: none;
  text-shadow: 1px 0 #6e101c, -1px 1px rgba(90, 0, 12, 0.55);
}

.diary-cipher-clue {
  position: relative;
  z-index: 1;
  padding: 10px 14px;
  color: rgba(80, 55, 48, 0.18);
  font-family: var(--font-handwriting);
  font-size: 21px;
  font-weight: 700;
  line-height: 1.72;
}

.theme-dark .diary-cipher-clue {
  color: rgba(236, 220, 205, 0.14);
}

.diary-cipher-clue::selection {
  color: #18100d;
  background: rgba(225, 205, 137, 0.82);
}

.diary-copy-cipher:focus {
  outline: 1px dashed rgba(130, 41, 51, 0.45);
  outline-offset: 4px;
}

/* 杂乱覆盖版：提示碎片直接混入原来的“林媛是谁”文字流。 */
.diary-copy-cipher {
  min-height: 0;
  margin-top: 10px;
  overflow: visible;
  isolation: auto;
  cursor: inherit;
  user-select: auto;
}

.diary-copy-cipher::after {
  content: none;
}

.diary-cipher-noise {
  margin: 0 0 3px;
  color: #941927;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -2px;
  overflow-wrap: anywhere;
  text-shadow: 1px 0 #6e101c, -1px 1px rgba(90, 0, 12, 0.5);
}

.cipher-scrap {
  display: block;
  position: absolute;
  z-index: 2;
  margin: 0;
  color: #941927;
  font-family: var(--font-handwriting);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -2px;
  line-height: 1.16;
  white-space: nowrap;
  text-shadow: 1px 0 #6e101c, -1px 1px rgba(90, 0, 12, 0.5);
  vertical-align: middle;
}

.theme-dark .cipher-scrap,
.diary-paper .cipher-scrap { color: #941927; font-size: 20px; }
.scrap-flower { top: 8%; left: 29%; transform: rotate(-3deg); }
.scrap-star { top: 41%; left: 56%; transform: rotate(2deg); }
.scrap-life { top: 66%; left: 13%; transform: rotate(-5deg); }
.scrap-tyrant { top: 74%; left: 61%; transform: rotate(4deg); }
.scrap-have { top: 22%; left: 82%; transform: rotate(9deg); }
.scrap-how { top: 52%; left: 37%; transform: rotate(-8deg); }
.scrap-many { top: 88%; left: 47%; transform: rotate(12deg); }

@media (max-width: 640px) {
  .diary-paper .cipher-scrap,
  .role-diary-paper .cipher-scrap { font-size: 20px; }
}

.diary-copy-cipher ::selection {
  color: #18100d;
  background: rgba(225, 205, 137, 0.82);
}

.role-ritual-document {
  position: relative;
  isolation: isolate;
  width: min(760px, 100%);
  margin: 4px auto;
  padding: 42px 52px 48px;
  border: 1px solid #aaa18c;
  background: #eee9dc;
  box-shadow: inset 0 0 24px rgba(71, 60, 42, 0.12);
  color: #28241f;
  font-family: SimSun, "Songti SC", serif;
}

.role-ritual-document > :not(.ritual-committee-watermark) {
  position: relative;
  z-index: 1;
}

.ritual-committee-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  width: min(420px, 64%);
  aspect-ratio: 1;
  color: #713b43;
  opacity: 0.115;
  transform: translate(-50%, -50%) rotate(-8deg);
  pointer-events: none;
}

.ritual-committee-watermark svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.watermark-ring-outer,
.watermark-ring-inner,
.watermark-eye,
.watermark-iris {
  fill: none;
  stroke: currentColor;
}

.watermark-ring-outer { stroke-width: 5; }
.watermark-ring-inner { stroke-width: 2; stroke-dasharray: 7 6; }
.watermark-ring-text { fill: currentColor; font: 700 17px SimSun, serif; letter-spacing: 2px; }
.watermark-eye { stroke-width: 7; stroke-linejoin: round; }
.watermark-iris { stroke-width: 6; }
.watermark-pupil { fill: currentColor; }
.watermark-glint { fill: #eee9dc; }

.role-ritual-document h2 {
  margin: 0 0 26px;
  padding-bottom: 12px;
  border-bottom: 2px solid #5f5546;
  color: #281d1b;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
  font-size: 24px;
  text-align: center;
}

.ritual-document-preface {
  margin: 0 0 20px;
  padding: 12px 14px;
  border: 1px solid #b9ad98;
  background: rgba(111, 88, 53, 0.06);
  color: #46372b;
  font-size: 14px;
  line-height: 1.8;
}

.role-ritual-document section {
  padding: 10px 0;
  border-bottom: 1px solid #c3bcad;
}

.role-ritual-document section:last-child {
  border-bottom: 0;
}

.role-ritual-document h3 {
  margin: 0 0 5px;
  color: #5a2328;
  font-size: 15px;
}

.role-ritual-document p {
  margin: 0 0 3px;
  line-height: 1.75;
}

.ritual-reversal-button {
  display: block;
  width: min(360px, 100%);
  margin: 30px auto 0;
  padding: 13px 18px;
  box-sizing: border-box;
  border: 1px solid #6d222b;
  background: #5a2028;
  color: #fff3e7;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
  font-size: 15px;
  letter-spacing: 2px;
  text-align: center;
  text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(255, 222, 205, 0.12);
}

.ritual-reversal-button:hover,
.ritual-reversal-button:focus-visible {
  background: #742632;
  color: #fff;
  outline: 2px solid rgba(109, 34, 43, 0.3);
  outline-offset: 3px;
}

.art-villain-diary strong { color: #8f1525; }

/* 终局文字选择：纯黑舞台、微软雅黑白字与克制的电影式动效。 */
.ending-choice-page {
  margin: 0;
  min-height: 100vh;
  overflow: hidden;
  background: #000;
  color: #fff;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  transition: background 1.65s ease, color 1.3s ease;
}

.ending-choice-page.ending-fade-white { background: #fff; color: #fff; }

.ending-choice-stage {
  display: flex;
  min-height: 100vh;
  padding: 9vh max(24px, 8vw);
  box-sizing: border-box;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.ending-choice-text {
  width: min(860px, 100%);
  min-height: 3em;
  margin: 0;
  color: #fff;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: clamp(19px, 2vw, 25px);
  font-weight: 300;
  letter-spacing: 0.14em;
  line-height: 2;
  text-align: center;
  white-space: pre-wrap;
  text-shadow: 0 0 18px rgba(255, 255, 255, 0.12);
  animation: endingTextReveal 420ms ease both;
}

.ending-choice-options {
  width: min(580px, 100%);
  max-height: 58vh;
  margin-top: 38px;
  padding: 4px 8px;
  overflow-y: auto;
  scrollbar-color: #555 #000;
  animation: endingOptionsReveal 380ms ease both;
}

.ending-choice-options[hidden] { display: none; }

.ending-choice-options button {
  position: relative;
  display: block;
  width: 100%;
  min-height: 52px;
  margin: 0 0 12px;
  padding: 12px 22px;
  border: 1px solid #555;
  background: #000;
  color: #fff;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 15px;
  font-weight: 300;
  letter-spacing: 0.12em;
  line-height: 1.6;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, letter-spacing 180ms ease, transform 180ms ease;
}

.ending-choice-options button::before {
  position: absolute;
  top: 50%;
  left: 15px;
  width: 0;
  height: 1px;
  background: #fff;
  content: "";
  transition: width 180ms ease;
}

.ending-choice-options button:hover,
.ending-choice-options button:focus-visible {
  border-color: #fff;
  background: #090909;
  letter-spacing: 0.16em;
  outline: none;
  transform: translateX(3px);
}

.ending-choice-options button:hover::before,
.ending-choice-options button:focus-visible::before { width: 18px; }
.ending-choice-options .choice-back { color: #bdbdbd; border-color: #393939; border-style: dashed; }

.ending-choice-hint {
  position: fixed;
  bottom: 26px;
  margin: 0;
  color: #fff;
  font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
  font-size: 11px;
  font-weight: 300;
  letter-spacing: 0.22em;
  opacity: 0.42;
  animation: endingHintPulse 2.4s ease-in-out infinite;
}

.ending-choice-hint[hidden] { display: none; }
.ending-forum-page .ending-linyuan-post { border-color: #5c8f73; }
.ending-forum-page .ending-author-post { margin-top: 24px; border-color: #6c5790; }
.ending-forum-page .ending-author-post .post-user { background: #eee9f6; }
.desire-ending-page .memoir-sheet strong { color: #861e2d; }
.desire-ending-page .desire-author-note { margin-top: 1em; }

@keyframes endingTextReveal { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes endingOptionsReveal { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes endingHintPulse { 0%,100% { opacity: 0.3; } 50% { opacity: 0.62; } }

@media (max-width: 600px) {
  .ending-choice-stage { padding: 8vh 18px; }
  .ending-choice-text { font-size: 18px; letter-spacing: 0.09em; }
  .ending-choice-options { max-height: 62vh; margin-top: 24px; }
  .ending-choice-options button { min-height: 48px; font-size: 14px; }
}

.role-file-signature {
  color: #657386;
  text-align: right;
}

.role-file-photo {
  max-width: 640px;
  margin: 0 auto 14px;
  padding: 6px;
  border: 1px solid #aeb8c4;
  background: #f4f4f4;
}

.theme-dark .role-file-photo {
  border-color: #5f343c;
  background: #1a1a1a;
}

.role-file-photo img {
  display: block;
  width: 100%;
  max-height: 460px;
  object-fit: cover;
}

.role-file-photo figcaption {
  padding: 5px 2px 0;
  color: #657386;
  font-size: 12px;
  text-align: center;
}

.theme-dark .role-file-photo figcaption {
  color: #b9a1a6;
}

.role-file-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.role-file-gallery figure {
  margin: 0;
  padding: 6px;
  border: 1px solid #aeb8c4;
  background: #f4f4f4;
}

.theme-dark .role-file-gallery figure {
  border-color: #5f343c;
  background: #1a1a1a;
}

.role-file-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.role-file-gallery figcaption {
  padding-top: 5px;
  color: #657386;
  font-size: 12px;
  text-align: center;
}

.theme-dark .role-file-gallery figcaption {
  color: #b9a1a6;
}

.hash-cracker-main {
  display: grid;
  min-height: 430px;
  padding: 28px 12px 36px;
  place-items: center;
}

.hash-unlock-panel,
.hash-loading-panel,
.hash-tool-panel {
  width: min(430px, 100%);
  border: 1px solid #6b343d;
  background: #1b1b1b;
  color: #e0b4bb;
}

.hash-unlock-panel[hidden],
.hash-loading-panel[hidden],
.hash-tool-panel[hidden] {
  display: none;
}

.hash-unlock-panel h2,
.hash-tool-panel h2 {
  margin: 0;
  padding: 7px 10px;
  border-bottom: 1px solid #6b343d;
  background: #2b1d20;
  color: #f0d7dc;
  font-size: 15px;
}

.pin-form,
.hash-date-form {
  display: grid;
  gap: 14px;
  padding: 18px;
}

.pin-boxes {
  display: grid;
  grid-template-columns: repeat(4, 54px);
  justify-content: center;
  gap: 10px;
}

.pin-box {
  width: 54px;
  height: 58px;
  border: 1px solid #7b4b53;
  background: #0f0f0f;
  color: #f2dce0;
  font-family: "Courier New", monospace;
  font-size: 30px;
  line-height: 1;
  text-align: center;
}

.pin-box:focus,
.hash-date-form input:focus {
  outline: 2px solid #b85b68;
  outline-offset: 1px;
}

.pin-form button,
.hash-date-form button {
  height: 32px;
  border: 1px solid #7b4b53;
  background: #2a2022;
  color: #f0d7dc;
  font-weight: 700;
  cursor: pointer;
}

.pin-form button:hover,
.hash-date-form button:hover {
  background: #43252b;
}

.pin-error {
  justify-self: center;
  margin: 0;
  padding: 5px 12px;
  border: 1px solid #b62437;
  background: #4a1119;
  color: #ffd7dc;
  font-size: 13px;
}

.hash-loading-panel {
  display: grid;
  justify-items: center;
  gap: 14px;
  padding: 32px 18px;
  text-align: center;
}

.hash-loading-core {
  width: 66px;
  height: 66px;
  border: 1px solid #7b4b53;
  background:
    linear-gradient(90deg, transparent 49%, #a84a57 50%, transparent 51%),
    linear-gradient(transparent 49%, #a84a57 50%, transparent 51%),
    #111;
  animation: hash-pulse 0.9s steps(2, end) infinite;
}

.hash-loading-panel p {
  margin: 0;
  font-family: "Courier New", SimSun, monospace;
}

.hash-date-form label {
  color: #c898a0;
  font-weight: 700;
}

.hash-date-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px;
  gap: 8px;
}

.hash-date-form input {
  min-width: 0;
  height: 34px;
  border: 1px solid #7b4b53;
  background: #0f0f0f;
  color: #f2dce0;
  font-family: "Courier New", monospace;
  padding: 0 9px;
}

.hash-output {
  display: block;
  min-height: 46px;
  margin: 0 18px 18px;
  padding: 12px;
  border: 1px inset #6b343d;
  background: #101010;
  color: #f2dce0;
  font-family: "Courier New", monospace;
  overflow-wrap: anywhere;
}

@keyframes hash-pulse {
  0% {
    box-shadow: 0 0 0 rgba(184, 91, 104, 0);
    opacity: 0.72;
  }

  100% {
    box-shadow: 0 0 18px rgba(184, 91, 104, 0.42);
    opacity: 1;
  }
}

.ent-news-page {
  min-height: 100vh;
  background: #f0f2f5;
  color: #242424;
  font-family: "Microsoft YaHei", SimHei, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.75;
}

.ent-page {
  width: 1180px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.08);
}

.ent-header {
  border-top: 4px solid #c40016;
  background: #fff;
}

.ent-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 24px;
  border-bottom: 1px solid #e3e5e8;
  color: #777;
  font-size: 12px;
}

.ent-brand-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 24px 18px;
}

.ent-network {
  margin: 0 0 4px;
  padding: 0;
  color: #9a9a9a;
  font-family: Arial, sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ent-logo {
  color: #c40016;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
  font-size: 38px;
  font-weight: 800;
  line-height: 1;
}

.ent-slogan {
  margin: 0 0 4px;
  padding: 0;
  color: #777;
  font-size: 14px;
}

.ent-nav {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 0 20px;
  background: #1f1f1f;
  color: #fff;
  overflow-x: auto;
}

.ent-nav span {
  flex: 0 0 auto;
  padding: 0 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 14px;
  line-height: 42px;
  cursor: default;
}

.ent-breaking {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 0 24px;
  border-bottom: 1px solid #ececec;
  background: #fff7f7;
}

.ent-breaking span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 24px;
  background: #c40016;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.ent-breaking strong {
  color: #333;
  font-size: 15px;
}

.ent-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 34px;
  padding: 30px 24px 34px;
}

.ent-article {
  min-width: 0;
}

.ent-channel {
  margin: 0 0 8px;
  padding: 0;
  color: #c40016;
  font-size: 15px;
  font-weight: 700;
}

.ent-article h1 {
  margin: 0 0 14px;
  color: #1e1e1e;
  font-family: "Microsoft YaHei", SimHei, sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: 0;
}

.ent-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 11px 0 16px;
  border-top: 1px solid #ececec;
  border-bottom: 1px solid #ececec;
  color: #777;
  font-size: 13px;
}

.ent-lede {
  margin: 18px 0;
  padding: 14px 16px;
  border-left: 4px solid #c40016;
  background: #f7f7f7;
  color: #4b4b4b;
  font-size: 17px;
  line-height: 1.7;
}

.ent-photo {
  margin: 22px 0 18px;
  padding: 0;
  border-bottom: 1px solid #e6e6e6;
  background: #fff;
}

.ent-photo img {
  display: block;
  width: 100%;
  max-height: 560px;
  object-fit: cover;
  background: #ddd;
  cursor: pointer;
  transition: filter 180ms ease, opacity 180ms ease;
}

.ent-roster-photo img {
  max-height: none;
  object-fit: contain;
  cursor: default;
}

.ent-id-evidence {
  max-width: 480px;
  margin-right: auto;
  margin-left: auto;
}

.redacted-id-card {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
  border: 1px solid #d7d7d7;
  background: #e6e8ed;
  overflow: hidden;
  user-select: none;
}

.redacted-id-base {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.eye-redaction {
  position: absolute;
  top: 30.8%;
  left: 21.8%;
  width: 56.4%;
  height: 9.4%;
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4px),
    #050505;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.92),
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.82);
  cursor: text;
  overflow: hidden;
  touch-action: none;
}

.eye-strip,
.eye-selection {
  position: absolute;
  inset: 0;
  clip-path: inset(0 100% 0 0);
  pointer-events: none;
}

.eye-strip {
  z-index: 1;
  background: url("ghost-girl-inverted-eyes-strip.png") center / 100% auto no-repeat;
  filter: saturate(0.95) contrast(1.18) brightness(0.84);
  transform: rotate(180deg);
}

.eye-selection {
  z-index: 2;
  background:
    linear-gradient(rgba(43, 107, 255, 0.42), rgba(43, 107, 255, 0.42)),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.14) 0 1px, transparent 1px 5px);
  mix-blend-mode: screen;
}

.eye-redaction.has-selection .eye-strip {
  animation: eyeRevealJolt 120ms steps(2, end);
}

.ent-photo img.is-locked {
  cursor: default;
}

.ent-photo figcaption {
  padding: 9px 0 12px;
  color: #777;
  font-size: 13px;
  line-height: 1.5;
}

.ent-copy {
  color: #242424;
  font-family: "Microsoft YaHei", SimSun, sans-serif;
  font-size: 18px;
  line-height: 2;
}

.ent-copy p {
  margin: 0 0 18px;
  padding: 0;
}

.ent-sidebar {
  min-width: 0;
}

.ent-side-box {
  margin-bottom: 18px;
  border-top: 3px solid #1f1f1f;
  background: #fafafa;
}

.ent-side-box h2 {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #e5e5e5;
  color: #1f1f1f;
  font-size: 18px;
  line-height: 1.3;
}

.ent-rank {
  margin: 0;
  padding: 4px 12px 8px;
  list-style: none;
}

.ent-rank li {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
  padding: 11px 0;
  border-bottom: 1px solid #e7e7e7;
}

.ent-rank li:last-child {
  border-bottom: 0;
}

.ent-rank span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  background: #c40016;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
}

.ent-rank p,
.ent-side-box p {
  margin: 0;
  padding: 0;
}

.ent-rank p {
  color: #333;
  font-size: 14px;
  line-height: 1.5;
}

.ent-brief p,
.ent-muted-box p {
  padding: 12px;
  color: #555;
  font-size: 14px;
  line-height: 1.7;
}

.ent-muted-box {
  border-top-color: #777;
}

.ent-footer {
  padding: 18px 24px;
  border-top: 1px solid #e5e5e5;
  background: #f7f7f7;
  color: #777;
  text-align: center;
  font-size: 12px;
}

.ent-footer p {
  margin: 0;
  padding: 0;
}

.ent-red-alert {
  background: #180000;
  animation: entRedPulse 0.72s steps(2, end) infinite;
}

.ent-red-alert::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  background: rgba(110, 0, 0, 0.42);
  mix-blend-mode: multiply;
  animation: entRedVeil 0.16s steps(2, end) infinite;
}

.ent-red-alert .ent-page {
  background: #2a0000;
  box-shadow: 0 0 58px rgba(178, 0, 0, 0.82);
}

.ent-red-alert .ent-header,
.ent-red-alert .ent-breaking,
.ent-red-alert .ent-article,
.ent-red-alert .ent-side-box,
.ent-red-alert .ent-footer {
  filter: sepia(0.75) saturate(3.2) hue-rotate(318deg) brightness(0.7) contrast(1.28);
}

.ent-red-alert .ent-photo img {
  filter: grayscale(0.32) sepia(0.8) saturate(4) hue-rotate(318deg) brightness(0.66) contrast(1.38);
}

.ent-site-shift .ent-header {
  border-top-color: #7c1f1f;
  background: #efe5be;
}

.ent-site-shift .ent-logo {
  color: #213b63;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
}

.ent-site-shift .ent-nav {
  background: #24486f;
}

.ent-site-shift .ent-breaking {
  background: #fff8d1;
}

.ent-site-shift .ent-breaking span {
  background: #7c1f1f;
}

.garbled-cause {
  color: #7c1f1f;
  font-family: "Courier New", SimSun, monospace;
  font-weight: 700;
  text-shadow: 0 0 4px rgba(124, 31, 31, 0.28);
  animation: garbledJitter 0.22s steps(2, end) infinite;
  word-break: break-all;
}

.baike-page {
  min-height: 100vh;
  background: #f3f6fb;
  color: #202734;
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.75;
}

.baike-page a {
  color: #2569c7;
  text-decoration: none;
}

.baike-page a:hover {
  text-decoration: underline;
}

.baike-shell {
  width: 1180px;
  max-width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 0 24px rgba(31, 45, 68, 0.08);
}

.baike-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 28px;
  border-bottom: 1px solid #e6ebf2;
  background: #f8fafd;
  color: #6f7887;
  font-size: 12px;
}

.baike-header {
  padding: 22px 28px 18px;
  border-bottom: 1px solid #e6ebf2;
  background: #fff;
}

.baike-brand-row {
  display: flex;
  align-items: center;
  min-height: 38px;
}

.baike-logo {
  color: #1e65c1;
  font-family: SimHei, "Microsoft YaHei", sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

.baike-logo span {
  color: #222b37;
}

.baike-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 312px;
  gap: 34px;
  padding: 30px 28px 38px;
}

.baike-article {
  min-width: 0;
}

.baike-breadcrumb {
  margin: 0 0 10px;
  padding: 0;
  color: #7c8798;
  font-size: 13px;
}

.baike-title-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e3e8ef;
}

.baike-title-row h1 {
  margin: 0;
  color: #161d29;
  font-family: "Microsoft YaHei", SimHei, sans-serif;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: 0;
}

.baike-title-row .baike-subtitle {
  color: #778294;
  font-size: 15px;
}

.baike-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 16px;
}

.baike-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid #dbe4f0;
  background: #f6f9fd;
  color: #4b5f79;
  font-size: 13px;
}

.baike-summary {
  margin: 0 0 18px;
  padding: 16px 18px;
  border-left: 4px solid #2d73d2;
  background: #f6f9fd;
  color: #303b4d;
  font-size: 17px;
}

.baike-summary p,
.baike-section p {
  margin: 0 0 14px;
  padding: 0;
}

.baike-summary p:last-child,
.baike-section p:last-child {
  margin-bottom: 0;
}

.baike-toc {
  margin: 18px 0 24px;
  border: 1px solid #e0e7f1;
  background: #fff;
}

.baike-toc h2 {
  margin: 0;
  padding: 10px 14px;
  border-bottom: 1px solid #e0e7f1;
  background: #f8fafd;
  color: #202734;
  font-size: 16px;
}

.baike-toc ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 18px;
  margin: 0;
  padding: 12px 18px 14px 38px;
}

.baike-toc li {
  padding: 3px 0;
  color: #4a5a70;
}

.baike-section {
  padding: 4px 0 18px;
}

.baike-section h2 {
  margin: 0 0 12px;
  padding: 0 0 8px;
  border-bottom: 1px solid #e3e8ef;
  color: #161d29;
  font-size: 22px;
  line-height: 1.35;
}

.baike-section h2::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 20px;
  margin-right: 9px;
  background: #2d73d2;
  vertical-align: -3px;
}

.baike-timeline {
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}

.baike-timeline li {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed #d7deea;
}

.baike-timeline strong {
  color: #1e65c1;
  font-weight: 700;
}

.baike-reference {
  margin-top: 18px;
  padding: 14px 16px;
  background: #fafbfc;
  border-top: 1px solid #e3e8ef;
  color: #6b7483;
  font-size: 13px;
}

.baike-reference p {
  margin: 0;
  padding: 0;
}

.baike-sidebar {
  min-width: 0;
}

.baike-infobox {
  border: 1px solid #d9e2ee;
  background: #fff;
}

.baike-card-title {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #d9e2ee;
  background: #f4f7fb;
  color: #202734;
  font-size: 16px;
}

.baike-portrait {
  margin: 0;
  padding: 12px;
  border-bottom: 1px solid #e5ebf3;
}

.baike-portrait img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #e8edf4;
}

.baike-portrait.baike-avatar img {
  aspect-ratio: 1 / 1;
}

.baike-portrait figcaption {
  margin-top: 8px;
  color: #727d8c;
  font-size: 13px;
  line-height: 1.5;
  text-align: center;
}

.baike-info-list {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  margin: 0;
  padding: 2px 12px 12px;
}

.baike-info-list dt,
.baike-info-list dd {
  margin: 0;
  padding: 9px 0;
  border-bottom: 1px solid #edf1f6;
}

.baike-info-list dt {
  color: #7a8492;
}

.baike-info-list dd {
  color: #202734;
}

.baike-side-note {
  margin-top: 14px;
  padding: 13px 14px;
  border: 1px solid #e0e7f1;
  background: #fffaf2;
  color: #6d5a32;
  font-size: 13px;
}

.baike-side-note p {
  margin: 0;
  padding: 0;
}

.baike-footer {
  padding: 16px 28px 22px;
  border-top: 1px solid #e1e7f0;
  background: #f8fafd;
  color: #7a8492;
  font-size: 12px;
}

.baike-footer p {
  margin: 0;
  padding: 0;
}

@keyframes entRedPulse {
  0% {
    filter: saturate(2.4) contrast(1.28) brightness(0.78);
  }

  50% {
    filter: saturate(4) contrast(1.5) brightness(0.58);
  }

  100% {
    filter: saturate(2.4) contrast(1.28) brightness(0.78);
  }
}

@keyframes entRedVeil {
  0% {
    opacity: 0.62;
  }

  100% {
    opacity: 0.25;
  }
}

@keyframes garbledJitter {
  0% {
    opacity: 1;
  }

  50% {
    opacity: 0.62;
  }

  100% {
    opacity: 1;
  }
}

@media (max-width: 920px) {
  .forum-layout {
    grid-template-columns: 1fr;
  }

  .forum-post {
    grid-template-columns: 1fr;
  }

  .post-user {
    min-height: auto;
    border-right: 0;
    border-bottom: 1px solid #a5b1ba;
  }

  .forum-brand {
    align-items: flex-start;
  }

  .forum-brand h1 {
    font-size: 26px;
  }

  .header-main {
    flex-direction: column;
  }

  .site-search {
    width: 100%;
  }

  .title-flower-grass {
    max-height: 70px;
    margin-bottom: -2px;
  }

  .layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "left"
      "content"
      "guestbook"
      "right";
  }

  .photo-grid {
    grid-template-columns: 1fr;
  }

  .guestbook-strip {
    grid-template-columns: 1fr;
  }

  .guestbook-compose button {
    grid-column: 1 / -1;
  }

  .message time {
    width: 100%;
    margin-left: 0;
  }

  .album-wall {
    grid-template-columns: 1fr;
  }

  .ent-page {
    max-width: 100%;
  }

  .ent-topbar,
  .ent-brand-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .ent-logo {
    font-size: 32px;
  }

  .ent-breaking {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
    padding: 10px 16px;
  }

  .ent-layout {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 22px 16px 28px;
  }

  .ent-article h1 {
    font-size: 26px;
  }

  .ent-copy {
    font-size: 16px;
  }

  .ent-photo img {
    max-height: none;
  }

  .baike-topbar,
  .baike-header,
  .baike-main,
  .baike-footer {
    padding-left: 16px;
    padding-right: 16px;
  }

  .baike-topbar,
  .baike-brand-row {
    align-items: flex-start;
  }

  .baike-topbar {
    flex-direction: column;
    gap: 4px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .baike-logo {
    font-size: 30px;
  }

  .baike-main {
    grid-template-columns: 1fr;
    gap: 22px;
    padding-top: 22px;
  }

  .baike-title-row h1 {
    font-size: 30px;
  }

  .baike-toc ol {
    grid-template-columns: 1fr;
  }

  .baike-timeline li {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .admin-header,
  .admin-toolbar,
  .admin-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-main {
    padding: 12px;
  }

  .admin-login-panel {
    margin: 16px auto;
  }

  .admin-summary dl {
    grid-template-columns: 1fr;
  }

  .admin-data-grid {
    grid-template-columns: 1fr;
  }

  .admin-data-grid dt {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .role-admin-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .role-admin-layout,
  .role-link-grid {
    grid-template-columns: 1fr;
  }

  .role-note-panel {
    grid-column: auto;
  }

  .role-file-gallery {
    grid-template-columns: 1fr;
  }

  .role-file-change-list {
    grid-template-columns: 1fr;
  }

  .role-file-change-list dt {
    border-bottom: 0;
  }

  .role-diary-paper,
  .role-ritual-document {
    min-height: 0;
    padding: 40px 26px;
  }

.role-diary-paper p {
    font-size: 18px;
  }
}

/* 老式五路监控管理程序 */
.surveillance-page { margin:0; height:100vh; min-height:0; overflow:hidden; display:grid; place-items:center; color:#111; background:#507286; font:12px/1.45 var(--font-pixel); }
.surveillance-shell { width:min(920px,calc(100% - 18px)); height:min(600px,calc(100vh - 18px)); min-height:0; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr); grid-template-rows:55px minmax(0,1fr) 25px; gap:0; border:2px outset #ddd; background:#c0c0c0; background-image:none; box-shadow:2px 2px 0 #183848; }
.surveillance-header { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; padding:6px 10px; color:#fff; background:#000080; border-bottom:2px outset #ddd; }
.surveillance-header:has(> a:only-child) { justify-content:flex-end; }
.surveillance-header h1 { margin:0; color:#fff; font-size:16px; font-weight:400; letter-spacing:0; }.surveillance-header p { margin:2px 0 0; color:#d6d6d6; font:11px var(--font-pixel); }.surveillance-header a { padding:3px 9px; color:#000; background:#c0c0c0; border:2px outset #eee; text-decoration:none; font-size:12px; }.surveillance-header a:active { border-style:inset; }
.camera-list-panel,.recording-panel { min-width:0; margin:8px 4px 8px 8px; padding:0; border:2px inset #eee; background:#d4d0c8; }.recording-panel { margin-left:4px; margin-right:8px; overflow:auto; }
.old-window-title { height:28px; display:flex; align-items:center; justify-content:space-between; padding:0 7px; color:#fff; background:#777; }.old-window-title h2 { margin:0; color:#fff; font-size:12px; letter-spacing:0; }.old-window-title span { color:#fff; font-size:11px; font-weight:400; }
.camera-table { margin:9px; border:1px solid #808080; background:#fff; }.camera-row { min-height:46px; display:grid; grid-template-columns:64px minmax(105px,1fr) minmax(96px,118px) minmax(62px,78px); align-items:center; border-bottom:1px solid #bbb; }.camera-row:last-child { border:0; }.camera-row>* { min-width:0; padding:4px 6px; box-sizing:border-box; overflow-wrap:anywhere; font-style:normal; line-height:1.25; }.camera-row b { font-family:"Courier New",monospace; }.camera-row em { color:#075807; }.camera-row em.weak { color:#9b4c00; }.camera-row small { color:#8b0000; font-size:10px; }
.camera-table-head { min-height:27px; color:#111; background:#dfdfdf; font-weight:700; border-bottom:2px groove #eee; }.camera-list-note { margin:12px 10px; padding:8px; color:#333; border:1px solid #999; background:#eee; }
.recording-login { margin:10px; padding:10px; border:1px solid #888; background:#eee; }.recording-login>p:first-child { margin:0 0 13px; }.recording-login form { display:grid; grid-template-columns:68px minmax(80px,1fr) 48px 48px; gap:5px; align-items:center; }.recording-login input { width:100%; height:24px; padding:2px 5px; border:2px inset #eee; background:#fff; font-family:"Courier New",monospace; letter-spacing:3px; }
.recording-login button,.recording-panel fieldset button { width:auto; height:24px; margin:0; padding:1px 7px; display:block; color:#111; border:2px outset #eee; background:#c0c0c0; font:inherit; text-align:center; }.recording-login button:active { border-style:inset; }.password-message { margin:8px 0 0; color:#555; text-align:left; font-size:12px; letter-spacing:0; }.password-message.error { color:#a00000; }
.password-message.success { color:#075807; }
.recording-panel fieldset { margin:10px; padding:8px; border:2px groove #eee; }.recording-panel legend { padding:0 5px; }.recording-panel select { width:100%; height:98px; margin-bottom:7px; color:#777; background:#fff; }.recording-panel fieldset div { display:flex; gap:5px; justify-content:flex-end; }
.recording-panel fieldset:not(:disabled) select { color:#111; }.recording-player-panel { margin:10px; padding:4px; border:2px inset #eee; background:#000; }.recording-player-title { padding:3px 5px; color:#ddd; background:#222; font:11px "Courier New",monospace; }.recording-player-panel video { width:100%; max-height:190px; display:block; background:#000; }
.live-indicator { color:#ffb0b0 !important; font-family:"Courier New",monospace; }.live-player-panel { height:calc(100% - 50px); display:flex; flex-direction:column; }.live-player-panel video { flex:1; min-height:0; max-height:none; object-fit:contain; }.live-status { margin:0; padding:4px 6px; color:#9fd7a8; background:#151515; font:10px "Courier New",monospace; }
.recording-archive-list { margin:10px; display:grid; gap:9px; }.recording-download { min-height:62px; padding:8px; display:grid; grid-template-columns:58px minmax(0,1fr); grid-template-rows:auto auto; align-items:center; color:#111; border:2px outset #eee; background:#e7e7e7; text-decoration:none; box-sizing:border-box; }.recording-download:active { border-style:inset; }.recording-download:hover { background:#fff; }.recording-download b { grid-row:1/3; font:700 12px "Courier New",monospace; }.recording-download span { font-weight:700; }.recording-download small { color:#555; }.recording-archive-help { margin:4px 0 0; padding:8px; color:#333; border:1px solid #999; background:#eee; }
.relationship-log { margin:12px 10px 10px; border:2px inset #eee; background:#d4d0c8; }.relationship-log .old-window-title { height:24px; }.relationship-log-list { height:210px; margin:7px; padding:0; overflow:auto; list-style:none; border:1px solid #808080; background:#fff; }.relationship-log-list li { display:grid; grid-template-columns:112px minmax(0,1fr); gap:7px; padding:5px 6px; border-bottom:1px dotted #aaa; }.relationship-log-list li:last-child { border-bottom:0; }.relationship-log-list time { color:#555; font:10px "Courier New",monospace; white-space:nowrap; }.relationship-log-list span { color:#111; }.relationship-log-list b { font-family:"Courier New",monospace; }
.surveillance-footer { grid-column:1/-1; padding:3px 7px; overflow:hidden; white-space:nowrap; border-top:2px inset #eee; background:#c0c0c0; }
@media (max-width:680px) { .surveillance-shell { grid-template-columns:1fr; grid-template-rows:48px minmax(0,1.1fr) minmax(0,.9fr) 22px; }.surveillance-header p { display:none; }.camera-list-panel { margin:5px 5px 2px; }.recording-panel { grid-column:1; grid-row:auto; margin:2px 5px 5px; overflow:auto; }.camera-row { min-height:34px; grid-template-columns:54px minmax(86px,1fr) minmax(86px,104px) minmax(56px,68px); font-size:11px; }.camera-row>* { padding:3px 4px; }.camera-list-note { display:none; }.recording-login { margin:6px; padding:7px; }.recording-login>p:first-child { margin-bottom:6px; }.recording-panel fieldset { display:none; }.old-window-title { height:24px; }.relationship-log-list { height:150px; }.relationship-log-list li { grid-template-columns:105px minmax(0,1fr); }.surveillance-footer { font-size:10px; } }
