/* Here Be Daemons index page. Every selector is scoped under .daemons
   (the body class of layouts/daemons) so nothing leaks into the VTT. */
.daemons{--bg:var(--color-bg);--panel:var(--color-surface);--ink:var(--color-text);--muted:var(--color-muted);--violet:var(--color-primary);--cyan:var(--color-secondary);--line:#665b4b55}

/* source style block 1 */
.daemons{--bg:#090b12; --panel:#121522; --ink:#e8e5ef; --muted:#a3a0b5; --violet:#b48bff; --cyan:#7be5ed; --line:#ffffff23;}
.daemons, .daemons *{box-sizing:border-box;}
html:has(.daemons){scroll-behavior:smooth;}
.daemons{margin:0; background:var(--bg); color:var(--ink); font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif; line-height:1.65;}
.daemons:before{content:""; position:fixed; inset:0; pointer-events:none; z-index:10; background:repeating-linear-gradient(0deg,transparent 0 3px,#0002 4px); opacity:.18;}
.daemons a{color:var(--cyan);}
.daemons .mono, .daemons nav, .daemons .eyebrow, .daemons .tag, .daemons button, .daemons .micro{font-family:ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.13em; text-transform:uppercase;}
.daemons nav{position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:14px clamp(20px,5vw,80px); background:#090b12e8; backdrop-filter:blur(14px); border-bottom:1px solid var(--line); font-size:11px;}
.daemons nav a{text-decoration:none; color:var(--muted);}
.daemons nav a:hover{color:white;}
.daemons .links{display:flex; gap:20px; flex-wrap:wrap;}
.daemons .brand{color:var(--violet); font-weight:800;}
.daemons .hero{min-height:92vh; display:grid; place-items:center; position:relative; overflow:hidden; padding:100px 24px;}
.daemons .hero:after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,#090b12f2 0%,#090b12b5 55%,#090b1245 100%),linear-gradient(0deg,#090b12 0%,transparent 40%); pointer-events:none;}
.daemons .city{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85;}
.daemons .hero-inner{position:relative; z-index:2; width:min(1100px,100%);}
.daemons .eyebrow{font-size:12px; color:var(--cyan);}
.daemons h1{font-size:clamp(4rem,12vw,10rem); line-height:.87; letter-spacing:-.075em; margin:28px 0; text-transform:uppercase; max-width:950px; text-shadow:0 0 50px #ad6cff55;}
.daemons h1 span{color:var(--violet);}
.daemons .hero p{max-width:580px; font-size:clamp(1.1rem,2vw,1.4rem); color:#d5d1e2;}
.daemons .cta{display:inline-flex; margin-top:22px; padding:14px 20px; background:var(--violet); color:#0b0712; text-decoration:none; font-weight:800; font-size:12px; border:0; cursor:pointer;}
.daemons .cta:hover{background:#d0b8ff;}
.daemons .status{display:flex; gap:18px; flex-wrap:wrap; margin-top:70px; font-size:11px; color:var(--muted);}
.daemons .status b{color:var(--cyan);}
.daemons main{width:min(1100px,calc(100% - 40px)); margin:auto;}
.daemons section{padding:100px 0; border-bottom:1px solid var(--line);}
.daemons .sectionhead{display:flex; align-items:baseline; gap:18px; margin-bottom:28px;}
.daemons .tag{font-size:11px; color:var(--violet);}
.daemons h2{font-size:clamp(2.2rem,5vw,4.5rem); line-height:1.05; letter-spacing:-.05em; margin:0 0 24px;}
.daemons h3{font-size:1.2rem; margin:0 0 10px;}
.daemons .lead{font-size:clamp(1.25rem,2.5vw,1.75rem); max-width:830px; color:#d5d0e3;}
.daemons .muted{color:var(--muted);}
.daemons .grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:38px;}
.daemons .card{padding:26px; background:linear-gradient(145deg,#1b1b2b,#10121b); border:1px solid var(--line); min-height:220px;}
.daemons .card .number{color:var(--cyan); font:12px ui-monospace,monospace;}
.daemons .card p{color:var(--muted); margin-bottom:0;}
.daemons .card strong{color:var(--ink);}
.daemons .wide{grid-column:span 2;}
.daemons .quote{border-left:2px solid var(--violet); padding:16px 25px; background:#ae83ff0b; font-size:clamp(1.2rem,2.8vw,2rem); line-height:1.4; margin:38px 0;}
.daemons .split{display:grid; grid-template-columns:1fr 1fr; gap:45px; align-items:start;}
.daemons .visual{min-height:410px; position:relative; overflow:hidden; border:1px solid var(--line); background:radial-gradient(ellipse at 50% 10%,#613b9066,transparent 55%),linear-gradient(180deg,#1c1831,#080c15);}
.daemons .visual:before{content:""; position:absolute; inset:15% 8% 0; background:repeating-linear-gradient(90deg,transparent 0 33px,#ad91f21f 34px 36px,transparent 37px 68px),linear-gradient(0deg,#070912 0%,transparent 70%); clip-path:polygon(0 35%,10% 35%,10% 12%,23% 12%,23% 45%,32% 45%,32% 0,45% 0,45% 25%,53% 25%,53% 5%,65% 5%,65% 39%,77% 39%,77% 15%,89% 15%,89% 33%,100% 33%,100% 100%,0 100%);}
.daemons .visual:after{content:"ROOTS // SECTOR UNMAPPED"; position:absolute; bottom:20px; left:20px; font:11px ui-monospace,monospace; color:var(--cyan); letter-spacing:.2em;}
.daemons .rumors{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
.daemons .rumor{padding:22px; border:1px solid var(--line); background:#121421; font-style:italic; color:#d0c9e0;}
.daemons .rumor:before{content:'// SIGNAL FRAGMENT'; display:block; font:10px ui-monospace,monospace; color:var(--violet); font-style:normal; letter-spacing:.1em; margin-bottom:12px;}
.daemons .roots{display:flex; flex-wrap:wrap; gap:9px; margin:20px 0;}
.daemons .chip{border:1px solid #9b81c855; color:#d6c5f6; padding:7px 11px; font:12px ui-monospace,monospace;}
.daemons .prompt{padding:25px; border:1px solid #b48bff70; background:#b48bff0b; margin:30px 0;}
.daemons .prompt strong{color:var(--violet);}
.daemons .steps{counter-reset:step; display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin:28px 0;}
.daemons .step{padding:20px; border-top:1px solid var(--violet); background:#141520;}
.daemons .step:before{counter-increment:step; content:'0' counter(step); display:block; color:var(--cyan); font:12px ui-monospace,monospace; margin-bottom:12px;}
.daemons .step p{color:var(--muted); margin-bottom:0;}
.daemons .footer{padding:55px 20px; text-align:center; color:var(--muted); font:11px ui-monospace,monospace; letter-spacing:.15em;}
.daemons .footer strong{color:var(--violet);}
.daemons .reveal{opacity:0; transform:translateY(20px); transition:opacity .7s,transform .7s;}
.daemons .reveal.visible{opacity:1; transform:none;}
@media(max-width:750px) {
  .daemons .grid, .daemons .split, .daemons .steps, .daemons .rumors{grid-template-columns:1fr;}
  .daemons .wide{grid-column:auto;}
  .daemons .links{gap:10px;}
  .daemons nav{font-size:9px;}
  .daemons .hero{min-height:80vh;}
  .daemons section{padding:65px 0;}
  .daemons .visual{min-height:300px;}
}
@media(prefers-reduced-motion:reduce) {
  html:has(.daemons){scroll-behavior:auto;}
  .daemons .reveal{opacity:1; transform:none; transition:none;}
}
.daemons{--bg:var(--color-bg); --panel:var(--color-surface); --ink:var(--color-text); --muted:var(--color-muted); --violet:var(--color-primary); --cyan:var(--color-secondary); --line:#665b4b55;}
html:has(.daemons){background:var(--color-bg);}
.daemons{color:var(--ink); background:radial-gradient(ellipse at 12% 8%,#fff7e7a0,transparent 45%),radial-gradient(ellipse at 95% 70%,#caa78855,transparent 50%),var(--color-bg); font-family:Georgia,'Times New Roman',serif; line-height:1.7;}
.daemons:before{z-index:50; opacity:.32; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E"); background-size:180px; pointer-events:none;}
.daemons nav{background:#eadbc8ed!important; border-bottom:1px solid #594e40!important; box-shadow:0 2px 0 #fff5e277;}
.daemons nav a{color:#453d34!important;}
.daemons nav a:hover{color:#a34e6e!important;}
.daemons .brand{color:#8a4164!important;}
.daemons .mono, .daemons nav, .daemons .eyebrow, .daemons .tag, .daemons button, .daemons .micro, .daemons .status, .daemons .footer, .daemons .card .number, .daemons .step:before, .daemons .chip{font-family:'Courier New',monospace; letter-spacing:.09em;}
.daemons .hero{background:#e7d3bd; min-height:88vh; border-bottom:2px solid #574c3e; isolation:isolate;}
.daemons .hero:after{background:linear-gradient(90deg,#edddc9f5 0%,#edddc9e0 46%,#edddc98c 100%),linear-gradient(0deg,#e9d8c4 0%,transparent 45%);}
.daemons .city{opacity:.46; filter:grayscale(1) sepia(.8) contrast(1.35); mix-blend-mode:multiply;}
.daemons .hero-inner{border-left:2px solid #6f554a; padding:20px 0 20px clamp(18px,4vw,52px);}
.daemons .hero-inner:before{content:'FIELD RECORD / SHELTER 1 / UNAUTHORIZED COPY'; display:block; font:11px 'Courier New',monospace; letter-spacing:.16em; color:var(--color-primary); margin-bottom:30px;}
.daemons .eyebrow, .daemons .tag{color:var(--color-primary);}
.daemons h1, .daemons h2, .daemons h3{font-family:Georgia,'Times New Roman',serif; color:#2f2822;}
.daemons h1{font-weight:900; letter-spacing:-.065em; text-shadow:2px 3px 0 #fff4e277,4px 5px 0 #5a40301c; transform:rotate(-1deg);}
.daemons h1 span{color:#8d4c72;}
.daemons h2{font-style:italic; letter-spacing:-.045em; text-decoration:underline; text-decoration-color:#a86d6359; text-decoration-thickness:2px; text-underline-offset:9px;}
.daemons h3{font-style:italic;}
.daemons .hero p, .daemons .lead{color:#463c35;}
.daemons .status{color:#665d54;}
.daemons .status b{color:#8d4c72;}
.daemons .cta{background:#8d4c72; color:#fff4e6; border:1px solid #4d303d; box-shadow:4px 4px 0 #594637; transform:rotate(-1deg); transition:transform .15s,box-shadow .15s;}
.daemons .cta:hover{background:#6d3659; transform:translate(2px,2px) rotate(0); box-shadow:2px 2px 0 #594637;}
.daemons section{border-bottom:1px dashed #766454; position:relative;}
.daemons section:before{content:'+'; position:absolute; top:14px; left:0; color:#a87e66; font:18px 'Courier New',monospace;}
.daemons .card, .daemons .rumor, .daemons .step, .daemons .prompt{background:#f5e9d8a8; border:1px solid #746352; box-shadow:3px 4px 0 #7e64502a; position:relative;}
.daemons .card:before, .daemons .rumor:after{content:''; position:absolute; width:12px; height:12px; border-top:1px solid #765d4b; border-left:1px solid #765d4b; top:-5px; left:-5px;}
.daemons .card:nth-child(even){transform:rotate(.4deg);}
.daemons .card:nth-child(odd){transform:rotate(-.35deg);}
.daemons .card .number{color:#a05743;}
.daemons .card p, .daemons .step p{color:#665a4f;}
.daemons .card strong{color:#30261e;}
.daemons .quote{background:#d6b5ae4d; border-left:3px solid var(--color-primary); color:#392f2c; transform:rotate(-.35deg);}
.daemons .visual{background:#ddc8b1; border:1px solid #76604e; box-shadow:5px 5px 0 #8c6b5533;}
.daemons .visual:before{opacity:.45; filter:sepia(1) grayscale(.7);}
.daemons .visual:after{color:#69452f;}
.daemons .rumor{color:#493d35; font-style:italic;}
.daemons .rumor:before{color:var(--color-primary);}
.daemons .chip{color:#563d4b; border:1px dashed #966b70; background:#f8ecdf80;}
.daemons .prompt{border:1px dashed #915a7c; background:#e7d1d07d;}
.daemons .prompt strong{color:#82446c;}
.daemons .step{border-top:3px double var(--color-primary);}
.daemons .step:before{color:var(--color-secondary);}
.daemons .footer{color:#645a51;}
.daemons .footer strong{color:var(--color-primary);}
.daemons img{display:block; max-width:100%; height:auto; border:1px solid #6e5b4b; box-shadow:8px 10px 0 #80665135; filter:saturate(.9) sepia(.07);}
.daemons figure{position:relative;}
.daemons figcaption{color:#6d5646!important; font-family:'Courier New',monospace!important; font-size:12px!important; letter-spacing:.04em;}
.daemons a{color:#8d416c;}
.daemons a:hover{color:#b35b47;}
.daemons ::selection{background:#b87b9c; color:#fff7e8;}
@media(max-width:750px) {
  .daemons .hero-inner{padding-left:20px;}
  .daemons .hero:after{background:linear-gradient(90deg,#edddc9f2,#edddc9ba);}
  .daemons h1{font-size:clamp(3.2rem,15vw,6rem);}
  .daemons .card:nth-child(n){transform:none;}
}
.daemons .field-guide{scroll-margin-top:90px;}
.daemons .field-guide .lead{max-width:800px;}
.daemons .field-note{background:#f6ead8; border:1px solid #75624f; box-shadow:6px 7px 0 #7e64502b; padding:clamp(22px,4vw,42px); max-width:880px; position:relative; transform:rotate(-.25deg);}
.daemons .field-note:after{content:'↗'; position:absolute; right:18px; top:10px; font:30px Georgia,serif; color:#9c6b79;}
.daemons .scribble{font:700 11px 'Courier New',monospace; letter-spacing:.13em; color:#8e5275;}
.daemons .dossier-layout{display:grid; grid-template-columns:minmax(220px,300px) 1fr; gap:20px; margin:32px 0;}
.daemons .dossier-index{display:grid; grid-template-columns:1fr; gap:7px; align-content:start;}
.daemons .dossier-tab{font-family:inherit; text-align:left; letter-spacing:0; text-transform:none; cursor:pointer; padding:12px 16px; background:#f3e4d0; border:1px dashed #927d6b; color:#352d29; display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; transition:background .15s;}
.daemons .dossier-tab span{font:700 21px Georgia,serif;}
.daemons .dossier-tab small{font:10px 'Courier New',monospace; letter-spacing:.04em; color:#685b52;}
.daemons .dossier-tab em{font:9px 'Courier New',monospace; color:#8a476b; margin-left:auto;}
.daemons .dossier-tab.active, .daemons .dossier-tab:hover{background:#dfc4c5; border:1px solid #8d4b70;}
.daemons .dossier-tab:focus-visible{outline:3px solid #8d4b70; outline-offset:2px;}
.daemons .dossier-detail{padding:clamp(22px,4vw,42px); background:#f8eddd; border:1px solid #766453; box-shadow:7px 8px 0 #70564030; position:relative; min-height:420px;}
.daemons .dossier-detail:before{content:'✕'; position:absolute; right:20px; top:15px; color:#9c7966;}
.daemons .dossier-detail h3{font:700 clamp(28px,4vw,44px) Georgia,serif; margin:18px 0;}
.daemons .dossier-detail h3 span{font-size:.55em; font-weight:400; color:#7a536a;}
.daemons .dossier-inset{border-left:3px solid #915d7d; background:#e9d4c78c; padding:14px 20px; margin:22px 0;}
.daemons .dossier-inset b{font:700 11px 'Courier New',monospace; letter-spacing:.12em; color:#8c4b6c;}
.daemons .dossier-inset p{margin:8px 0 0;}
.daemons .dossier-question, .daemons .directory-card .question{font-style:italic; color:#7e456b;}
.daemons .dossier-xp{font:12px 'Courier New',monospace; color:#65574d;}
.daemons .small-note{font:12px/1.7 'Courier New',monospace; color:#6d6055; max-width:800px;}
.daemons .directory-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:34px 0;}
.daemons .directory-card{background:#f7ebd9; border:1px solid #826e5b; box-shadow:4px 5px 0 #7b60452b; padding:26px; position:relative;}
.daemons .directory-card:nth-child(2n){transform:rotate(.35deg);}
.daemons .directory-card h3{font:700 26px Georgia,serif; margin:14px 0;}
.daemons .directory-card p{margin:10px 0;}
.daemons .directory-card strong{color:#6d425e;}
.daemons .prep-list{max-width:840px; display:grid; gap:10px; margin:28px 0;}
.daemons .prep-list label{display:flex; align-items:flex-start; gap:14px; background:#f7ebda; border:1px dashed #8d7664; padding:16px; cursor:pointer;}
.daemons .prep-list input{width:20px; height:20px; flex-shrink:0; accent-color:#8d4b70;}
.daemons .prep-progress{max-width:840px; display:flex; align-items:center; gap:20px; font:12px 'Courier New',monospace;}
.daemons .prep-track{flex:1; background:#d4c0ab; border:1px solid #8b7764; height:12px;}
.daemons .prep-track div{height:100%; width:0; background:#925e80; transition:width .2s;}
@media(max-width:760px) {
  .daemons .dossier-layout{grid-template-columns:1fr;}
  .daemons .dossier-index{grid-template-columns:repeat(2,minmax(0,1fr));}
  .daemons .dossier-tab{display:block;}
  .daemons .dossier-tab small{display:block; margin-top:3px;}
  .daemons .directory-grid{grid-template-columns:1fr;}
  .daemons .directory-card:nth-child(n){transform:none;}
}
@media(max-width:420px) {
  .daemons .dossier-index{grid-template-columns:1fr 1fr;}
  .daemons .dossier-tab{padding:10px;}
  .daemons .dossier-tab span{font-size:18px;}
}

/* source style block 2 */
.daemons .art-gallery{max-width:1180px; margin:5rem auto; padding:0 1.3rem;}
.daemons .art-gallery .eyebrow{color:var(--violet); letter-spacing:.18em; font-size:.8rem;}
.daemons .art-gallery h2{font-size:clamp(2rem,5vw,3.7rem); line-height:1.12; margin:.5rem 0 1rem;}
.daemons .art-gallery .intro{color:var(--muted); max-width:700px; margin-bottom:2.4rem;}
.daemons .art-panel{margin:0 0 2.4rem; background:#15141d; border:1px solid var(--line); overflow:hidden;}
.daemons .art-panel img{display:block; width:100%; height:auto; background:#c8b5a5;}
.daemons .art-panel figcaption{padding:1rem 1.3rem 1.2rem; display:flex; align-items:baseline; justify-content:space-between; gap:1rem;}
.daemons .art-panel figcaption span{color:var(--violet); font-size:.8rem; letter-spacing:.1em; white-space:nowrap;}
.daemons .art-panel figcaption p{margin:0; color:var(--muted); font-size:.92rem;}
@media(max-width:650px) {
  .daemons .art-panel figcaption{display:block;}
  .daemons .art-panel figcaption p{margin-top:.45rem;}
}

/* source style block 3 */
.daemons .roots-art{position:relative; overflow:hidden; border:1px solid #765b6b; box-shadow:7px 8px 0 #251c2640; background:#c99e8a; align-self:start;}
.daemons .roots-art img{display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover;}
.daemons .roots-art:after{content:"FIELD SKETCH // THE ROOTS"; position:absolute; bottom:12px; left:12px; padding:5px 9px; background:#211922cc; color:#f3d9c6; font:10px ui-monospace,monospace; letter-spacing:.12em;}

/* source style block 4 */
.daemons .play-loop{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:25px 0 20px;}
.daemons .play-loop>div{border-top:3px solid #855d72; background:#ead7c3; padding:15px 12px; min-width:0;}
.daemons .play-loop b{display:block; font:700 11px/1.5 'Courier New',monospace; letter-spacing:.05em; color:#70435f;}
.daemons .play-loop span{display:block; font-size:14px; line-height:1.55; margin-top:8px;}
.daemons .crew-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; margin:30px 0;}
.daemons .crew-card{background:#f5e7d4; border:1px solid #826e5b; box-shadow:4px 5px 0 #7b60452b; padding:25px;}
.daemons .crew-card:nth-child(3){grid-column:span 2;}
.daemons .crew-card h3{font:700 clamp(22px,2.8vw,29px) Georgia,serif; margin:12px 0;}
.daemons .crew-card p{margin:9px 0;}
.daemons .crew-hook{font-style:italic; color:#794c6b;}
.daemons .vice-context{border-left:3px solid #885d76; background:#f3e3d1; padding:16px 20px; max-width:840px;}
.daemons .tone-note{margin-top:26px; transform:none; max-width:840px;}
.daemons .links a:focus-visible, .daemons .prep-list input:focus-visible{outline:3px solid #915d7d; outline-offset:3px;}
html:has(.daemons){scroll-behavior:smooth;}
.daemons section[id]{scroll-margin-top:90px;}
@media(max-width:950px) {
  .daemons .play-loop{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:620px) {
  .daemons .play-loop, .daemons .crew-grid{grid-template-columns:1fr;}
  .daemons .crew-card:nth-child(3){grid-column:auto;}
  .daemons .crew-card{padding:20px;}
  .daemons .play-loop>div{padding:13px;}
}
@media(prefers-reduced-motion:reduce) {
  html:has(.daemons){scroll-behavior:auto;}
}

/* source style block 5 */
.daemons main{width:min(1240px,calc(100% - clamp(32px,5vw,80px))); margin-inline:auto;}
.daemons main > section{width:100%; max-width:none; min-width:0;}
.daemons .field-note, .daemons .field-guide .lead, .daemons .small-note, .daemons .prep-list, .daemons .prep-progress, .daemons .vice-context, .daemons .tone-note{max-width:none; width:100%;}
.daemons .field-note{transform:none;}
.daemons .field-note::after{content:''; width:25px; height:25px; top:15px; right:15px; border-top:1px solid #9c6b79; border-right:1px solid #9c6b79; transform:none; pointer-events:none;}
.daemons .dossier-detail::before{content:''; width:23px; height:23px; right:17px; top:15px; border-top:1px solid #9c7966; border-right:1px solid #9c7966; pointer-events:none;}
.daemons .art-gallery{max-width:none; margin-inline:0; padding-inline:0;}
@media(max-width:650px) {
  .daemons main{width:calc(100% - 32px);}
  .daemons .field-note{padding:22px 18px;}
  .daemons .field-note::after{width:14px; height:14px; right:9px; top:9px;}
}
