/*
Theme Name: Mystic Personal
Description: NIGHTFALL 中央档案终端，与 Mystic Interactive Tools 配套。
Version: 3.3.3
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: mystic-personal
*/
@font-face{font-family:Nightfall Serif;src:url(assets/fonts/cinzel.woff2) format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:Nightfall Mono;src:url(assets/fonts/jetbrains-mono.woff2) format('woff2');font-weight:100 800;font-display:swap}
@font-face{font-family:Nightfall SC;src:url(assets/fonts/noto-sans-sc.woff2) format('woff2');font-weight:300 500;font-display:swap}
:root{--nf-bg:#100d18;--nf-panel:#1a1623;--nf-accent:#bc5966;--nf-button:#a84455;--oc-accent:var(--nf-accent);--nf-ink:#e9e1db;--nf-muted:#aea3b4;--nf-line:rgba(198,157,170,.2);--nf-serif:'Nightfall Serif',Georgia,serif;--nf-mono:'Nightfall Mono',monospace;--nf-sans:'Nightfall SC','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--nf-bg);color:var(--nf-ink);font:400 15px/1.85 var(--nf-sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(rgba(183,114,135,.11) .65px,transparent .8px),linear-gradient(rgba(187,129,151,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(187,129,151,.025) 1px,transparent 1px),radial-gradient(ellipse at 75% 15%,rgba(91,41,68,.13),transparent 50%);background-size:8px 8px,80px 80px,80px 80px,100% 100%;min-width:280px}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(transparent 50%,rgba(6,3,15,.08) 50%);background-size:100% 4px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}img{max-width:100%;height:auto}figure{margin:0}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4,strong{font-weight:400}h1{font-size:clamp(30px,4vw,64px);line-height:1.3;letter-spacing:.04em}h2{font-size:clamp(24px,2.8vw,36px);line-height:1.4}h3{font-size:21px;line-height:1.5}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--nf-accent);outline-offset:5px}::selection{background:#a84455;color:#fff}[hidden]{display:none!important}.nf-shell{width:min(1320px,calc(100% - 96px));margin-inline:auto}.nf-main{min-height:70vh}.nf-code,.nf-kicker{font:400 10px/1.65 var(--nf-mono);text-transform:uppercase;letter-spacing:.12em;overflow-wrap:anywhere}.nf-kicker{color:var(--nf-accent);display:block;margin-bottom:16px}.nf-kicker::before{content:'';display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:10px}.nf-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.nf-skip{position:fixed;top:-100px;left:20px;padding:10px 20px;background:var(--nf-panel);z-index:9999}.nf-skip:focus{top:12px}
/* Shared protocol chrome */
.nf-site-header{position:sticky;top:0;z-index:50;background:rgba(18,12,24,.83);backdrop-filter:blur(22px);border-block:1px solid var(--nf-line)}.admin-bar .nf-site-header{top:32px}.nf-header-inner{width:min(1600px,calc(100% - 64px));margin:auto;display:flex;align-items:center;gap:24px;min-height:92px}.nf-brand{display:flex;align-items:center;gap:12px;min-width:0}.nf-logo{width:52px;height:52px;object-fit:contain;flex-shrink:0}.nf-brand strong{display:block;font:400 11px/1.6 var(--nf-serif);letter-spacing:.12em;max-width:235px}.nf-brand small{display:block;font-size:10px;letter-spacing:.15em;color:var(--nf-muted)}.nf-protocol-nav{display:flex;justify-content:flex-end;align-items:center;gap:3px;margin-left:auto}.nf-protocol-nav a{font-size:12px;letter-spacing:.04em;padding:11px 9px;white-space:nowrap;position:relative;border-block:1px solid transparent;color:var(--nf-muted);transition:color .2s,background .2s,border-color .2s}.nf-protocol-nav a[aria-current],.nf-protocol-nav a:hover{color:var(--nf-ink);border-color:var(--nf-accent);background:linear-gradient(90deg,transparent,rgba(168,68,85,.13),transparent)}.nf-sound{font:400 9px var(--nf-mono);letter-spacing:.02em;color:var(--nf-muted);background:none;border:1px solid var(--nf-line);padding:12px 9px;white-space:nowrap}.nf-sound[aria-pressed=true]{color:var(--nf-accent);border-color:currentColor}.nf-menu-toggle{display:none;background:transparent;border:1px solid var(--nf-line);padding:8px 10px;color:var(--nf-ink);font:10px/1.6 var(--nf-mono)}.nf-site-footer{margin-top:96px;border-top:1px solid var(--nf-line);background:rgba(15,9,24,.65);padding:28px 0 74px}.nf-site-footer>.nf-shell{display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--nf-muted)}.nf-footer-status{font:9px var(--nf-mono);white-space:nowrap}.nf-footer-status i,.nf-signal i{display:inline-block;width:5px;height:5px;background:var(--nf-accent);box-shadow:0 0 10px var(--nf-accent);margin-right:8px}.nf-bgm{position:fixed;bottom:22px;right:24px;z-index:45}.nf-bgm button{background:rgba(26,16,33,.9);backdrop-filter:blur(16px);border:1px solid var(--nf-line);color:var(--nf-muted);padding:11px 17px;font:10px var(--nf-mono);letter-spacing:.12em}.nf-bgm button[aria-pressed=true]{color:var(--nf-accent);border-color:currentColor}
/* Home command center */
.nf-home-hero{position:relative;border-bottom:1px solid var(--nf-line);overflow:hidden}.nf-home-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center;min-height:650px;padding-block:90px}.nf-home-copy{position:relative;z-index:2;min-width:0}.nf-home-copy h1{font-size:clamp(34px,4vw,60px);font-weight:300;line-height:1.45;max-width:650px}.nf-hero-desc{color:var(--nf-muted);max-width:470px;line-height:2;font-size:14px}.nf-system-line{color:var(--nf-muted);margin-bottom:25px}.nf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:32px}.nf-btn,.nf-main button.mit-submit{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid color-mix(in srgb,var(--nf-button) 70%,#fff 30%);background:var(--nf-button);padding:11px 25px;color:#fff;font-size:12px;letter-spacing:.1em;transition:filter .2s,transform .2s;cursor:pointer}.nf-btn:hover{filter:brightness(1.2);transform:translateY(-2px)}.nf-btn-ghost{background:transparent;color:var(--nf-ink);border-color:var(--nf-line)}.nf-signal{margin-top:50px;display:flex;align-items:center;gap:8px;color:var(--nf-muted)}.nf-signal b{font:14px var(--nf-mono);color:var(--nf-accent);font-weight:400;letter-spacing:3px}.nf-radar{position:relative;aspect-ratio:1;display:grid;place-items:center;max-width:470px;width:100%;justify-self:center;background:radial-gradient(circle,rgba(122,60,92,.14),transparent 65%);border:1px solid var(--nf-line);border-radius:50%}.nf-radar::before,.nf-radar::after{content:'';position:absolute;inset:12%;border:1px dashed var(--nf-line);border-radius:50%}.nf-radar::after{inset:26%;border-style:solid}.nf-radar-orbit{position:absolute;inset:-8%;border:1px solid var(--nf-line);border-left-color:var(--nf-accent);border-right-color:var(--nf-accent);border-radius:50%;animation:nf-orbit 60s linear infinite}.nf-radar-scan{position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 300deg,rgba(168,68,85,.15) 358deg,transparent);animation:nf-orbit 12s linear infinite}.nf-hero-emblem{width:54%;height:54%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 0 30px rgba(164,69,101,.16))}.nf-radar>.nf-code{position:absolute;bottom:7%;font-size:8px;color:var(--nf-muted)}.nf-section{margin-block:80px}.nf-section-head{margin-bottom:30px}.nf-section-head h2{margin:0}.nf-row{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.nf-link{font-size:12px;color:var(--nf-accent);letter-spacing:.04em}.nf-link:hover{color:var(--nf-ink)}.nf-panel{display:block;background:color-mix(in srgb,var(--nf-panel) 75%,transparent);border:1px solid var(--nf-line);padding:30px;backdrop-filter:blur(12px);min-width:0}.nf-about{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:center}.nf-about p,.nf-panel p{color:var(--nf-muted);font-size:14px}.nf-about-link{border-left:2px solid var(--nf-accent)}.nf-about-link h3{margin:18px 0}.nf-system-grid,.nf-record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.nf-system-card{position:relative;overflow:hidden;padding-top:48px;transition:border-color .25s,transform .25s}.nf-system-card:hover{transform:translateY(-4px);border-color:var(--nf-accent)}.nf-system-card h3{margin-top:16px}.nf-system-index{position:absolute;right:20px;top:9px;font:400 72px/1 var(--nf-serif);color:rgba(197,132,157,.08)}.nf-record-grid h3{margin-top:16px;overflow-wrap:anywhere}.nf-page,.nf-directory,.nf-dossier{padding-top:54px}.nf-page-head{padding-bottom:28px;margin-bottom:36px;border-bottom:1px solid var(--nf-line)}.nf-page-head h1{margin-bottom:12px}.nf-page-head p{color:var(--nf-muted);max-width:700px}.nf-prose{line-height:2;overflow-wrap:anywhere}.nf-prose h2,.nf-prose h3{margin-top:1.8em}.nf-prose p{margin-bottom:1.5em}.nf-prose a{text-decoration:underline;text-decoration-color:var(--nf-accent);text-underline-offset:4px}.nf-prose img{height:auto;max-width:100%;display:block}.nf-prose iframe,.nf-prose video{max-width:100%}.nf-prose pre{overflow:auto;max-width:100%}.nf-prose table{display:block;overflow:auto;max-width:100%}.nf-prose blockquote{border-left:2px solid var(--nf-accent);padding-left:20px;margin-left:0;color:var(--nf-muted)}.nf-prose ul,.nf-prose ol{padding-left:25px}.nf-prose input,.nf-prose textarea{max-width:100%}.nf-featured{margin-bottom:35px}.nf-featured img{max-height:80vh;width:auto;margin:auto}.nf-empty{padding:50px 24px;border:1px dashed var(--nf-line);text-align:center;color:var(--nf-muted)}.navigation.pagination{margin-top:35px}.page-numbers{display:inline-block;padding:8px 15px;margin-right:6px;border:1px solid var(--nf-line)}.page-numbers.current{color:var(--nf-accent);border-color:currentColor}.nf-terminal-notice{padding:20px;border-left:2px solid var(--nf-accent);background:var(--nf-panel);color:var(--nf-muted)}
@keyframes nf-orbit{to{transform:rotate(360deg)}}@keyframes nf-enter-copy{from{opacity:0;transform:translate(var(--enter-x,80px),var(--enter-y,0px))}to{opacity:1;transform:translate(0,0)}}@keyframes nf-enter-mark{from{opacity:0;transform:translate(calc(-1 * var(--enter-x,80px)),calc(-1 * var(--enter-y,0px)))}to{opacity:1;transform:translate(0,0)}}.nf-from-left{--enter-x:-80px}.nf-from-up{--enter-x:0px;--enter-y:-80px}.nf-from-down{--enter-x:0px;--enter-y:80px}.nf-enter .nf-home-copy{animation:nf-enter-copy var(--mp-animation-duration,850ms) both}.nf-enter .nf-radar{animation:nf-enter-mark var(--mp-animation-duration,850ms) both}
@media(max-width:1200px){.nf-header-inner{gap:12px}.nf-brand strong{max-width:155px;font-size:9px}.nf-protocol-nav a{padding-inline:7px;font-size:11px}.nf-logo{width:42px;height:42px}.nf-sound{font-size:8px}.nf-home-grid{gap:50px;min-height:570px}}
@media(max-width:1024px){.nf-shell{width:calc(100% - 64px)}.nf-header-inner{min-height:78px;flex-wrap:wrap;padding-block:10px}.nf-brand{margin-right:auto}.nf-brand strong{max-width:230px}.nf-menu-toggle{display:block}.nf-protocol-nav{order:4;width:100%;justify-content:flex-start;flex-wrap:wrap;display:flex}.nf-js .nf-protocol-nav:not(.is-open){display:none}.nf-protocol-nav a{padding:12px 16px}.nf-home-grid{grid-template-columns:1.2fr 1fr;gap:30px;padding-block:65px;min-height:500px}.nf-home-copy h1{font-size:38px}.nf-section{margin-block:60px}.nf-about{gap:30px}.nf-system-grid{gap:16px}.nf-panel{padding:24px}.nf-system-card{padding-top:38px}.nf-record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-site-footer>.nf-shell{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:1024px){.nf-js .nf-protocol-nav,.nf-js .nf-protocol-nav:not(.is-open){display:flex;max-height:0;opacity:0;transform:translateX(16px);visibility:hidden;pointer-events:none;overflow:hidden;transition:max-height .26s ease-in-out,opacity .26s ease-in-out,transform .26s ease-in-out,visibility 0s linear .26s}.nf-js .nf-protocol-nav.is-open{max-height:320px;opacity:1;transform:translateX(0);visibility:visible;pointer-events:auto;transition:max-height .26s ease-in-out,opacity .26s ease-in-out,transform .26s ease-in-out,visibility 0s}}
@media(max-width:1024px){.nf-js .nf-protocol-nav,.nf-js .nf-protocol-nav:not(.is-open){transform:none}.nf-js .nf-protocol-nav a{opacity:0;transform:translateX(16px);transition:opacity .26s ease-in-out,transform .26s ease-in-out}.nf-js .nf-protocol-nav.is-open a{opacity:1;transform:none}}
@media(max-width:1024px){.nf-js .nf-protocol-nav{width:calc(100% - 20px);margin-right:20px}}
@media(max-width:640px){html{scroll-padding-top:90px}.nf-shell{width:calc(100% - 40px)}.nf-header-inner{width:calc(100% - 28px);gap:10px;min-height:70px}.nf-logo{width:34px;height:34px}.nf-brand{gap:8px}.nf-brand strong{font-size:8px;max-width:132px;letter-spacing:.04em}.nf-brand small{font-size:8px}.nf-menu-toggle{font-size:0;padding:8px}.nf-menu-toggle::after{content:'☰';font-size:16px}.nf-sound{font-size:8px;padding:9px 6px}.nf-protocol-nav{gap:4px}.nf-protocol-nav a{flex:1 0 22%;text-align:center;padding:9px 7px;font-size:11px}.nf-home-grid{grid-template-columns:1fr;gap:60px;padding-block:50px}.nf-home-copy h1{font-size:34px}.nf-radar{max-width:270px;margin-bottom:25px}.nf-actions{gap:10px}.nf-btn{padding:11px 18px}.nf-signal{margin-top:30px}.nf-about,.nf-system-grid,.nf-record-grid{grid-template-columns:1fr}.nf-about{gap:25px}.nf-row{align-items:flex-start;flex-direction:column;gap:15px}.nf-section{margin-block:48px}.nf-section-head{margin-bottom:24px}.nf-page,.nf-directory,.nf-dossier{padding-top:32px}.nf-page-head{margin-bottom:25px}.nf-site-footer{margin-top:55px}.nf-site-footer .nf-code{font-size:9px}.nf-bgm{bottom:14px;right:14px}.nf-bgm button{padding:10px 13px}.admin-bar .nf-site-header{top:46px}}
@media(max-width:640px){.nf-protocol-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:9px 5px;font-size:14px;line-height:1.2;white-space:normal}.nf-bgm{position:static;bottom:auto;right:auto}.nf-bgm button{min-height:44px;padding:8px 7px;font-size:9px}.nf-site-header{padding-top:env(safe-area-inset-top,0px)}}
.nf-bgm{position:static;bottom:auto;right:auto;z-index:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

@view-transition{navigation:auto}::view-transition-old(root){animation:nf-page-out .12s ease both}::view-transition-new(root){animation:nf-page-decrypt-in .26s ease-out both}@keyframes nf-page-out{to{opacity:0}}@keyframes nf-page-decrypt-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.nf-route-transition{position:fixed;inset:0;z-index:99997;display:grid;place-items:center;overflow:hidden;background:rgba(12,8,21,.94);color:var(--nf-ink);font:11px/1.5 var(--nf-mono);letter-spacing:.16em;pointer-events:auto;animation:nf-route-cover .22s ease-in-out both}
.nf-route-transition::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--nf-accent),#e2b4a7,var(--nf-accent),transparent);box-shadow:0 0 22px var(--nf-accent);animation:nf-route-scan .24s ease-in-out both}
.nf-route-transition span{position:relative;padding:12px 20px;border-block:1px solid var(--nf-accent);background:rgba(18,12,24,.8);text-shadow:0 0 12px var(--nf-accent)}
@keyframes nf-route-cover{from{opacity:0}to{opacity:1}}@keyframes nf-route-scan{from{transform:translateY(-8px)}to{transform:translateY(100vh)}}

/* The personnel archive has its own emblem; other pages keep the site logo. */
.nf-directory-logo{width:62px;height:62px;object-fit:contain;transform:scale(1.18) translateY(-4px);filter:brightness(1.8) drop-shadow(0 0 8px rgba(188,89,102,.4))}
@media(max-width:1200px){.nf-directory-logo{width:48px;height:48px}}
@media(max-width:640px){.nf-directory-logo{width:38px;height:38px}}

/* One-shot archive reveal; JS removes these classes after the transition. */
.nf-reveal{opacity:0;transform:translateY(18px)}
.nf-reveal.is-visible{opacity:1;transform:none;transition:opacity .52s ease-out,transform .52s cubic-bezier(.22,1,.36,1)}
.nf-reveal.nf-section-head{position:relative}
.nf-reveal.nf-section-head::after{content:'';display:block;height:1px;margin-top:12px;background:linear-gradient(90deg,transparent,var(--nf-accent),transparent);transform:scaleX(0);transform-origin:left;opacity:0}
.nf-reveal.nf-section-head.is-visible::after{animation:nf-reveal-scan .52s ease-out both}
@keyframes nf-reveal-scan{50%{opacity:.7}to{opacity:0;transform:scaleX(1)}}
@media(hover:hover){.nf-btn:hover,.nf-main button.mit-submit:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--nf-accent) 65%,transparent),0 0 24px color-mix(in srgb,var(--nf-accent) 25%,transparent)}}
.nf-btn,.nf-main button.mit-submit{transition:filter .2s,transform .2s,box-shadow .2s}
.nf-btn:active,.nf-main button.mit-submit:active{transform:translateY(1px) scale(.98);box-shadow:inset 0 0 0 1px var(--nf-accent)}
@media(prefers-reduced-motion:reduce){.nf-reveal{opacity:1!important;transform:none!important}.nf-reveal.nf-section-head::after,.nf-route-transition{display:none!important}::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms!important}}
