:root{--bg:#f8f9fa;--paper:#fff;--ink:#202122;--muted:#54595d;--line:#a2a9b1;--soft:#eaecf0;--link:#3366cc;--red:#d73333;--acc:#e11d2a}
.dark{--bg:#101418;--paper:#1b1f24;--ink:#eaecf0;--muted:#a2a9b1;--line:#3a4048;--soft:#272c33;--link:#88a3e8;--red:#ff7b7b}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Source Sans 3',Arial,sans-serif}
.wrap{background:var(--bg);color:var(--ink);min-height:100vh}
a{color:var(--link);cursor:pointer;text-decoration:none}a:hover{text-decoration:underline}
a.redlink{color:var(--red)}
h1,h2{font-family:'Linden Hill','Source Serif 4',Georgia,serif;font-weight:400}
h2{border-bottom:1px solid var(--line);font-size:1.75rem;margin:1.6rem 0 .6rem;padding-bottom:2px}
h3{font-weight:700;font-size:1.1rem;margin:1rem 0 .3rem}
.paper{background:var(--paper)}
.article p{line-height:1.65;margin:.5rem 0;font-size:15px}
.infobox{border:1px solid var(--line);background:var(--bg);font-size:13.5px}
.infobox th{text-align:left;padding:3px 6px;vertical-align:top;width:40%}
.infobox td{padding:3px 6px}
.wikitable{border-collapse:collapse;font-size:14px;background:var(--bg)}
.wikitable th,.wikitable td{border:1px solid var(--line);padding:5px 8px}
.wikitable th{background:var(--soft);cursor:pointer;user-select:none}
.ambox{border:1px solid var(--line);border-left:10px solid #fc3;background:var(--soft);padding:8px 12px;font-size:14px}
.btn{border:1px solid var(--line);background:var(--soft);color:var(--ink);padding:4px 10px;border-radius:2px;font-size:14px}
.btn:hover{background:var(--paper)}
.key{font-family:'JetBrains Mono',monospace;background:linear-gradient(#3a3f46,#15181c);color:#ddd;border-radius:8px;border:1px solid #000;box-shadow:inset 0 1px 0 #666,0 3px 0 #000;height:42px;font-size:18px}
.key:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #666,0 1px 0 #000}
.lcd{font-family:'JetBrains Mono',monospace;background:#0b1a10;color:#6dff9b;text-shadow:0 0 6px #3f8;border:3px inset #555}
.cover{transform-origin:top;transition:transform .7s cubic-bezier(.3,1.4,.5,1);transform-style:preserve-3d}
.cover.open{transform:perspective(600px) rotateX(-165deg)}
.flash{position:fixed;inset:0;z-index:60;pointer-events:none;animation:siren .25s steps(2) infinite}
@keyframes siren{0%{background:rgba(255,0,0,.35)}100%{background:rgba(0,80,255,.35)}}
.morphcard{position:fixed;inset:0;z-index:61;display:flex;align-items:center;justify-content:center;pointer-events:none}
.morphcard div{font-family:'Source Sans 3';font-weight:800;font-size:clamp(2rem,8vw,6rem);font-style:italic;letter-spacing:-.03em;color:#fff;padding:.2em .6em;transform:skewX(-12deg);animation:slam .5s ease-out}
@keyframes slam{0%{transform:scale(3) skewX(-12deg);opacity:0}100%{transform:scale(1) skewX(-12deg);opacity:1}}
.pop{position:absolute;z-index:40;width:280px;background:var(--paper);border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.25);padding:10px;font-size:13px;line-height:1.45;color:var(--ink)}
mark{background:#fde047;color:#000}
.toc a.active{font-weight:700;color:var(--ink)}
.anim{animation:pulse .9s ease}
@keyframes pulse{0%{transform:scale(1)}40%{transform:scale(1.15) rotate(-4deg);filter:drop-shadow(0 0 10px var(--acc))}100%{transform:scale(1)}}
.zord{animation:fly 1.6s ease-in-out}
@keyframes fly{0%{transform:translate(-120%,40px) rotate(-20deg)}100%{transform:translate(120%,-60px) rotate(10deg)}}