/* THE DUNGEON LEAGUE - shared page styles
   Loaded by every page via one <link>. Edit here, purge jsDelivr, done.
   Scoped to .dl-page so nothing leaks into WordPress chrome. */

.dl-page{--stone-dark:#050403;--stone-mid:#0d0b09;--stone-surface:#13100d;--stone-light:#1a1510;--stone-border:#24200f;
--gold:#C49A2A;--gold-light:#F0D580;--gold-dim:#9A7820;--gold-deep:#7A5E14;--gold-shadow:#6B4F0A;
--sys-bg:#03030a;--sys-border:#1e1e38;--sys-text:#9090cc;--sys-label:#7070cc;
--signal-ok:#44bb44;--signal-warn:#e0aa20;--signal-alert:#FF4422;--signal-danger:#CC3300;
--text-bright:#F4ECD8;--text-body:#d8c8a4;--text-dim:#907a62;
--display:'Cinzel',serif;--serif:'Crimson Text',serif;--mono:'Share Tech Mono',monospace;
--wrap:860px;--read:19px;--track-tight:0.06em;--track-wide:0.15em;--track-widest:0.3em;--gap-md:1.25rem;}
.dl-page,.dl-page *{box-sizing:border-box}
.dl-page{background:var(--stone-dark);color:var(--text-body);font-family:var(--serif);min-height:100vh;padding:0 1.5rem 5rem;margin:0}
.dl-inner{max-width:var(--wrap);margin:0 auto}
.dl-page a{color:var(--gold);text-decoration:none}
.dl-page a:hover{color:var(--gold-light)}
.dl-nav{display:flex;flex-wrap:wrap;gap:0 1.6rem;padding:1.6rem 0 1.3rem;font-family:var(--mono);font-size:.72rem;letter-spacing:var(--track-wide);text-transform:uppercase}
.dl-nav .dl-nav-label{color:var(--gold-dim);margin-right:.4rem}
.dl-page a.dl-nav-link{padding:0 0 3px;color:var(--text-dim);display:inline-block}
.dl-page a.dl-nav-link:hover{color:var(--gold-light)}
.dl-page a.dl-nav-link.is-active{color:var(--gold-light)}
.dl-page a.dl-nav-link.is-active::after{content:'';display:block;height:2px;margin-top:3px;background:linear-gradient(90deg,var(--gold-deep),var(--gold))}
.dl-rule{height:1px;border:0;margin:0;background:linear-gradient(90deg,transparent,var(--gold-deep) 15%,var(--gold) 50%,var(--gold-deep) 85%,transparent)}
.dl-header{position:relative;display:flex;gap:2rem;align-items:flex-start;padding:2.8rem 0 2.4rem}
.dl-crest{flex:0 0 auto;width:132px}
.dl-crest .crest-svg{width:100%;height:auto;display:block}
.dl-headtext{flex:1 1 auto;min-width:0}
.dl-eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin-bottom:.7rem}
.dl-name{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,6vw,3.4rem);line-height:1.02;letter-spacing:var(--track-tight);color:var(--text-bright);margin:0 0 .6rem;text-transform:uppercase}
.dl-tagline{font-family:var(--mono);font-size:.82rem;letter-spacing:var(--track-wide);color:var(--gold);margin:0;text-transform:uppercase}
.dl-lore{max-width:62ch;padding:2.4rem 0 1rem}
.dl-lore p{font-size:var(--read);line-height:1.78;margin:0 0 1.15em;color:var(--text-body)}
.dl-lore p:first-of-type::first-letter{font-family:var(--display);font-weight:700;color:var(--gold);font-size:3.2rem;line-height:.8;float:left;margin:.15em .12em 0 0}
.dl-rune{position:absolute;top:2.8rem;right:0;font-family:var(--mono);font-size:11px;letter-spacing:.15em;color:var(--gold-dim);opacity:.55;border:1px solid var(--stone-border);padding:1px 7px;border-radius:2px;cursor:default;user-select:all;transition:color .25s,opacity .25s,text-shadow .25s,border-color .25s}
.dl-rune:hover{color:var(--gold);opacity:1;border-color:var(--gold-deep);text-shadow:0 0 10px rgba(196,154,42,.5)}
.dungeon-log{margin-top:var(--gap-md)}
.log-entry{padding:1.9rem 0;border-top:1px solid var(--stone-border)}
.log-entry:first-child{border-top:none}
.log-entry-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-dim);margin-bottom:.55rem}
.log-entry-title{font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2;letter-spacing:var(--track-tight);color:var(--gold-light);margin:0 0 1rem}
.log-entry-body{max-width:62ch}
.log-entry-body p{font-size:var(--read);line-height:1.75;margin:0 0 1.05em;color:var(--text-body)}
.log-entry-body p:last-child{margin-bottom:0}
.log-entry-body em{font-style:italic;color:var(--text-bright)}
.log-entry-body strong{font-weight:600;color:var(--gold-light)}
.log-entry-body blockquote{margin:1.4em 0;padding:.2em 0 .2em 1.4em;border-left:1px solid var(--gold-deep);font-style:italic;color:var(--text-dim)}
.log-entry-body ul{margin:1em 0;padding-left:1.4em}
.log-entry-body li{font-size:var(--read);line-height:1.7;margin:.25em 0}
.log-archive-label{font-family:var(--mono);font-size:.72rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin:2.4rem 0 .4rem}
details.log-entry-past{border-top:1px solid var(--stone-border)}
details.log-entry-past>summary{list-style:none;cursor:pointer;padding:1.05rem 0;display:flex;align-items:baseline;gap:1rem;font-family:var(--mono);font-size:.78rem;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-dim)}
details.log-entry-past>summary::-webkit-details-marker{display:none}
details.log-entry-past>summary::before{content:'+';color:var(--gold-deep);font-size:1rem;transition:color .2s}
details.log-entry-past[open]>summary::before{content:'\2212'}
details.log-entry-past>summary:hover{color:var(--gold-light)}
details.log-entry-past>summary:hover::before{color:var(--gold)}
details.log-entry-past>summary .wk{color:var(--gold-dim)}
details.log-entry-past>summary .ttl{color:var(--text-body);font-family:var(--display);letter-spacing:var(--track-tight);text-transform:none;font-size:.95rem}
details.log-entry-past .log-entry-body{padding:0 0 1.7rem}
.log-loading,.log-empty,.log-error{font-family:var(--mono);font-size:.8rem;letter-spacing:var(--track-wide);padding:1.4rem 0;color:var(--text-dim)}
.log-error{color:var(--signal-alert)}
.dl-page a:focus-visible,.dl-page summary:focus-visible{outline:2px solid var(--gold-light);outline-offset:2px}
@media(max-width:600px){.dl-header{flex-direction:column;gap:1.2rem}.dl-rune{position:static;display:block;margin-top:1rem}}
@media(prefers-reduced-motion:reduce){.dl-page *,.dl-page *::before,.dl-page *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* ============================================================
   SHARED ADDITIONS
   System transmission blocks, section labels, generic nav.
   ============================================================ */
.dl-rule-left{height:1px;border:0;margin:0;background:linear-gradient(90deg,var(--gold),var(--gold-deep) 40%,transparent)}
.dl-section-label{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin:2.8rem 0 .5rem}

.dl-page .dl-sys{background:var(--sys-bg);border:1px solid var(--sys-border);padding:1.7rem 1.6rem}
.dl-sys-label{font-family:var(--mono);font-size:.68rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--sys-label);margin-bottom:1.1rem}
.dl-sys p{font-family:var(--serif);font-size:var(--read);line-height:1.72;color:var(--sys-text);margin:0 0 1em;max-width:62ch}
.dl-sys p:last-of-type{margin-bottom:0}
.dl-sys strong{font-weight:600;color:var(--text-bright)}
.dl-sys em{font-style:italic;color:var(--text-bright)}
.dl-sys-sig{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-wide);color:var(--sys-label);margin-top:1.3rem;text-align:right}

/* bare <a> inside .dl-nav, for pages that don't use .dl-nav-link */
.dl-page .dl-nav a{padding:0 0 3px;color:var(--text-dim);display:inline-block}
.dl-page .dl-nav a:hover{color:var(--gold-light)}
.dl-page .dl-nav a[aria-current="page"]{color:var(--gold-light)}
.dl-page .dl-nav a[aria-current="page"]::after{content:'';display:block;height:2px;margin-top:3px;background:linear-gradient(90deg,var(--gold-deep),var(--gold))}

/* ============================================================
   PAGE - HOME
   ============================================================ */
.home-hero{padding:4.5rem 0 3rem;text-align:center}
.home-mark{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin-bottom:1.6rem}
.home-title{font-family:var(--display);font-weight:700;font-size:clamp(3rem,9vw,5.2rem);line-height:.92;letter-spacing:var(--track-tight);text-transform:uppercase;color:var(--text-bright);margin:0}
.home-title .the{display:block;font-size:.32em;letter-spacing:var(--track-widest);color:var(--gold);margin-bottom:.4em}
.home-tagline{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--text-dim);margin:1.6rem auto 0;max-width:46ch}
.home-sys{margin:3rem 0}
.home-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--stone-border);border:1px solid var(--stone-border);margin:1.4rem 0 3rem}
.home-door{display:block;background:var(--stone-mid);padding:1.8rem;transition:background .2s}
.home-door:hover{background:var(--stone-surface)}
.home-door-num{font-family:var(--mono);font-size:.68rem;letter-spacing:var(--track-wide);color:var(--gold-dim)}
.home-door-name{font-family:var(--display);font-weight:600;font-size:1.5rem;letter-spacing:var(--track-tight);color:var(--gold-light);margin:.5rem 0;text-transform:uppercase}
.home-door:hover .home-door-name{color:var(--gold)}
.home-door-desc{font-family:var(--serif);font-size:1rem;line-height:1.5;color:var(--text-dim);margin:0}
.home-roster{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0 0}
.dl-page .home-roster a{font-family:var(--mono);font-size:.74rem;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--text-dim);border:1px solid var(--stone-border);padding:.5rem .8rem;transition:border-color .2s,color .2s}
.dl-page .home-roster a:hover{color:var(--gold-light);border-color:var(--gold-deep)}

/* ============================================================
   PAGE - SYSTEM DISPATCHES
   ============================================================ */
.disp-masthead{padding:3rem 0 2.4rem}
.disp-eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin-bottom:1rem}
.disp-title{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,7vw,4rem);line-height:.98;letter-spacing:var(--track-tight);text-transform:uppercase;color:var(--text-bright);margin:0}
.disp-sub{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--text-dim);margin:1rem 0 0;max-width:52ch}
.disp-sys{margin:2.6rem 0 1rem}
.disp-sys-cursor{display:inline-block;width:.5em;height:1em;background:var(--sys-text);margin-left:.15em;transform:translateY(.12em);animation:disp-blink 1.1s steps(1) infinite}
@keyframes disp-blink{50%{opacity:0}}

/* ============================================================
   PAGE - THE COMPENDIUM
   ============================================================ */
.comp-masthead{padding:3rem 0 2rem}
.comp-eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--gold-dim);margin-bottom:1rem}
.comp-title{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,7vw,4rem);line-height:.98;letter-spacing:var(--track-tight);text-transform:uppercase;color:var(--text-bright);margin:0}
.comp-sub{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--text-dim);margin:1rem 0 0;max-width:54ch}
.comp-list{margin:2.4rem 0 0}
details.comp-entry{border-top:1px solid var(--stone-border)}
details.comp-entry:last-child{border-bottom:1px solid var(--stone-border)}
details.comp-entry>summary{list-style:none;cursor:pointer;padding:1.5rem 0;display:flex;align-items:baseline;gap:1.2rem}
details.comp-entry>summary::-webkit-details-marker{display:none}
.comp-entry-num{font-family:var(--mono);font-size:.8rem;letter-spacing:var(--track-wide);color:var(--gold-dim);flex:0 0 auto;padding-top:.15rem}
.comp-entry-name{font-family:var(--display);font-weight:600;font-size:1.45rem;letter-spacing:var(--track-tight);color:var(--gold-light);flex:1 1 auto;text-transform:uppercase;line-height:1.15}
details.comp-entry>summary:hover .comp-entry-name{color:var(--gold)}
.comp-entry-toggle{font-family:var(--mono);font-size:1.1rem;color:var(--gold-deep);flex:0 0 auto;transition:color .2s}
details.comp-entry>summary .comp-entry-toggle::after{content:'+'}
details.comp-entry[open]>summary .comp-entry-toggle{color:var(--gold)}
details.comp-entry[open]>summary .comp-entry-toggle::after{content:'\2212'}
.comp-body{padding:0 0 2.2rem}
.comp-body>p,.comp-body>ul{max-width:62ch}
.comp-body p{font-size:var(--read);line-height:1.75;margin:0 0 1.05em;color:var(--text-body)}
.comp-body p:last-child{margin-bottom:0}
.comp-body em{font-style:italic;color:var(--text-bright)}
.comp-body strong{font-weight:600;color:var(--gold-light)}

/* compact System note inside a rule section */
.comp-sys{background:var(--sys-bg);border:1px solid var(--sys-border);padding:.9rem 1.1rem;margin:0 0 1.4rem;font-family:var(--mono);font-size:.74rem;line-height:1.85;letter-spacing:.03em;color:var(--sys-text)}

/* in-world flavour quote */
.comp-lore{border-left:2px solid var(--gold-deep);padding:.4rem 0 .4rem 1.2rem;margin:0 0 1.3rem;font-family:var(--serif);font-style:italic;font-size:1.02rem;line-height:1.6;color:var(--text-dim);max-width:62ch}

/* subsection heading */
.comp-sub-head{font-family:var(--mono);font-size:.7rem;font-weight:400;color:var(--gold-dim);letter-spacing:var(--track-widest);text-transform:uppercase;margin:2rem 0 .7rem;border-bottom:1px solid var(--stone-border);padding-bottom:.4rem}
.comp-body>.comp-sub-head:first-child{margin-top:0}

/* note line under a table */
.comp-note{font-family:var(--mono);font-size:.72rem;line-height:1.7;color:var(--text-dim);letter-spacing:.03em;margin:0 0 1.2rem;max-width:62ch}

/* tables */
.comp-table{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-family:var(--serif);font-size:.95rem}
.comp-table th{font-family:var(--mono);font-size:.66rem;font-weight:400;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--gold-dim);padding:.5rem .7rem;text-align:left;border-bottom:1px solid var(--stone-border);white-space:nowrap}
.comp-table td{padding:.6rem .7rem;border-bottom:1px solid rgba(36,32,15,.55);color:var(--text-body);line-height:1.55;vertical-align:top}
.comp-table tr:hover td{background:var(--stone-mid)}
.comp-table td:first-child{font-family:var(--mono);font-size:.78rem;color:var(--gold);white-space:nowrap}
.comp-table.is-wide td:first-child{font-family:var(--display);font-size:.85rem;color:var(--gold-light);font-weight:600;width:150px;white-space:normal}
.comp-table.is-matrix{font-size:.86rem}
.comp-table.is-matrix td:first-child{font-family:var(--display);font-size:.82rem;color:var(--gold-light);font-weight:600}
.comp-table.is-matrix td:nth-child(2){font-family:var(--mono);font-size:.76rem;color:#FA6A4A;white-space:nowrap}
.comp-table.is-matrix td:last-child{font-family:var(--serif);font-size:.9rem;color:var(--text-body)}

/* bullet list */
.comp-list-items{list-style:none;margin:0 0 1.3rem;padding:0}
.comp-list-items li{padding:.3rem 0 .3rem 1.3rem;position:relative;font-size:1rem;line-height:1.65;color:var(--text-body)}
.comp-list-items li::before{content:'\2014';position:absolute;left:0;color:var(--gold-deep)}

@media(max-width:600px){
  .comp-table{font-size:.86rem}
  .comp-table td,.comp-table th{padding:.45rem .4rem}
  .comp-table td:first-child,.comp-table.is-wide td:first-child{white-space:normal;width:auto}
  details.comp-entry>summary{gap:.8rem}
  .comp-entry-name{font-size:1.15rem}
}

/* ============================================================
   SYSTEM TERMINAL - the interactive console
   Violet-on-black: this is The System speaking, not the league.
   ============================================================ */
.console-wrap{border:1px solid var(--sys-border);background:var(--sys-bg);margin:1.4rem 0 3rem;overflow:hidden}
.console-header{background:#020208;border-bottom:1px solid var(--sys-border);padding:.75rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.console-header-title{font-family:var(--mono);font-size:.66rem;letter-spacing:var(--track-widest);text-transform:uppercase;color:var(--sys-label)}
.console-status{font-family:var(--mono);font-size:.66rem;letter-spacing:var(--track-wide);color:var(--signal-ok);white-space:nowrap}
.console-status.thinking{color:var(--signal-warn);animation:console-blink .8s step-end infinite}
.console-status.error{color:var(--signal-alert)}
@keyframes console-blink{50%{opacity:0}}
.console-output{padding:1.4rem 1.25rem;min-height:200px;max-height:420px;overflow-y:auto}
.console-line{font-family:var(--mono);font-size:.78rem;line-height:1.9;margin-bottom:.25rem;white-space:pre-wrap;word-break:break-word}
.console-line.prompt-line{color:var(--sys-label)}
.console-line.response-line{color:#c8d8ff;padding-left:1.1rem;border-left:2px solid var(--sys-border);margin:.3rem 0 .6rem}
.console-line.system-line{color:var(--signal-ok)}
.console-line.error-line{color:var(--signal-alert)}
.console-line.divider-line{color:var(--sys-border);margin:.5rem 0;overflow:hidden}
.console-input-row{border-top:1px solid var(--sys-border);padding:.75rem 1.25rem;display:flex;align-items:center;gap:.75rem}
.console-prompt-char{font-family:var(--mono);font-size:.85rem;color:var(--sys-label);flex-shrink:0}
.console-input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-family:var(--mono);font-size:.8rem;color:var(--text-bright);letter-spacing:.05em;caret-color:var(--sys-label)}
.console-input::placeholder{color:#303060}
.console-submit{font-family:var(--mono);font-size:.66rem;letter-spacing:var(--track-wide);color:var(--sys-label);padding:.4rem .9rem;border:1px solid var(--sys-border);background:transparent;cursor:pointer;transition:all .2s;flex-shrink:0}
.console-submit:hover:not(:disabled){border-color:var(--sys-label);color:var(--gold-light)}
.console-submit:disabled{opacity:.3;cursor:not-allowed}
.console-disclaimer{font-family:var(--mono);font-size:.6rem;color:#303060;letter-spacing:.1em;text-align:center;padding:.6rem 1.25rem;border-top:1px solid #0a0a18}

/* ============================================================
   STORY MARKUP - classes for use inside post content
   The System interrupts the narrative in two ways: a boxed
   readout, and a spoken aside. Both are violet, both are mono,
   because both are the dungeon talking rather than the teller.
   ============================================================ */
.log-entry-body .sys-note{
  background:var(--sys-bg);
  border:1px solid var(--sys-border);
  border-left:3px solid var(--sys-label);
  padding:1rem 1.15rem;
  margin:1.7em 0;
  font-family:var(--mono);
  font-size:.76rem;
  line-height:2.05;
  letter-spacing:.04em;
  color:var(--sys-text);
  white-space:pre-line;
}
.log-entry-body .sys-note strong{
  display:block;
  color:var(--sys-label);
  font-weight:400;
  font-size:.7rem;
  letter-spacing:var(--track-wide);
  text-transform:uppercase;
  margin-bottom:.55rem;
}
.log-entry-body .sys-note .ok{color:var(--signal-ok)}
.log-entry-body .sys-note .warn{color:var(--signal-warn)}
.log-entry-body .sys-note .err{color:var(--signal-alert)}

.log-entry-body p.sys-said{
  font-family:var(--mono);
  font-size:.82rem;
  line-height:1.85;
  letter-spacing:.03em;
  color:var(--sys-text);
  border-left:2px solid var(--sys-border);
  padding-left:1rem;
  margin:1.4em 0;
}
.log-entry-body p.beat{margin-bottom:.5em}
.log-entry-body p.said{color:var(--text-bright);font-style:italic}
