@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800&family=Spectral:ital,wght@0,300;0,400;0,600;1,300&display=swap');

:root{
  --ink:#07070f;
  --abyss:#0c0c1a;
  --panel:#121222f2;
  --line:#2b2b4d;
  --bone:#e9e2d0;
  --dim:#9a93b8;
  --teal:#5ef2c8;
  --violet:#b9a7ff;
  --amber:#ffb35c;
  --coral:#ff6b8a;
  --deep:#123a5e;
  --shallow:#1f6f7a;
  --card:#16162a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--bone);background:radial-gradient(1200px 600px at 50% -10%,#1a1440 0%,var(--ink) 55%) fixed,var(--ink);
  font-family:'Spectral',Georgia,serif;font-size:17px;line-height:1.6;overflow-x:hidden;
}
.fog{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5}
.fog-a{background:radial-gradient(600px 300px at 15% 30%,#5ef2c822,transparent 70%)}
.fog-b{background:radial-gradient(700px 340px at 85% 70%,#b9a7ff1f,transparent 70%)}
header.hero,main,footer{position:relative;z-index:1}

.hero{text-align:center;padding:84px 20px 40px;max-width:860px;margin:0 auto}
.eyebrow{letter-spacing:.35em;text-transform:uppercase;font-size:12px;color:var(--teal);margin:0 0 14px}
h1{font-family:'Cinzel',serif;font-weight:800;font-size:clamp(38px,7vw,72px);line-height:1.02;margin:0}
.h-ghost{color:var(--bone);text-shadow:0 0 26px #b9a7ff66}
.h-street{background:linear-gradient(180deg,var(--teal),#2b9fd8);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--dim);font-style:italic;font-size:clamp(16px,2.6vw,20px)}
.runes{color:#6f6794;letter-spacing:.5em;margin-top:18px;font-size:15px}
.cue{margin-top:26px;color:var(--amber);animation:bob 2.2s ease-in-out infinite;font-size:14px;letter-spacing:.2em;text-transform:uppercase}
@keyframes bob{50%{transform:translateY(6px)}}

main{max-width:1020px;margin:0 auto;padding:0 16px 60px}
.panel{background:linear-gradient(180deg,#14142b,#0e0e20);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 30px 80px #000a,inset 0 1px 0 #ffffff14}
.panel-head h2{font-family:'Cinzel',serif;margin:0;font-size:clamp(20px,3.4vw,28px)}
.num{color:var(--teal)}
.panel-head p{color:var(--dim);margin:6px 0 16px}

.toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:14px}
.brushes,.omens{display:flex;flex-wrap:wrap;gap:8px}
button,a#postDownload{
  font:inherit;cursor:pointer;color:var(--bone);background:#1d1d36;border:1px solid var(--line);
  border-radius:999px;padding:8px 14px;transition:transform .12s,box-shadow .12s,border-color .12s;
}
button:hover{transform:translateY(-1px);border-color:var(--teal);box-shadow:0 4px 18px #5ef2c833}
button.is-active{background:#0f3d36;border-color:var(--teal);box-shadow:0 0 14px #5ef2c855}
button.primary{background:linear-gradient(180deg,#3b2a12,#241a08);border-color:var(--amber)}
button.primary:hover{box-shadow:0 4px 22px #ffb35c55}

.map-wrap{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#05050c}
#map{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}
.map-toast{
  position:absolute;left:50%;bottom:44px;transform:translateX(-50%);pointer-events:none;
  background:#000c;border:1px solid var(--teal);color:var(--teal);border-radius:999px;
  padding:6px 16px;font-size:14px;opacity:0;transition:opacity .3s;white-space:nowrap;
}
.map-toast.show{opacity:1}
.map-legend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 14px;font-size:13px;color:var(--dim);background:#0a0a18aa}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:baseline}
.sw-street{background:#c9a86a}.sw-dry{background:#23233d}.sw-shallow{background:var(--shallow)}.sw-deep{background:var(--deep)}.sw-ghost{background:var(--violet);box-shadow:0 0 8px var(--violet)}

.tidebar{margin-top:14px;background:#0a0a1a;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.tide-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.tide-top label{font-family:'Cinzel',serif}
#tideVal{color:var(--teal);font-size:24px;margin:0 2px}
.unit{color:var(--dim);font-size:13px}
.bind{font-family:'Spectral',serif!important;font-size:14px;color:var(--dim);display:flex;gap:8px;align-items:center}
.bind input{accent-color:var(--teal);width:18px;height:18px}
input[type=range]{width:100%;margin:12px 0 6px;accent-color:var(--teal);height:28px}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px;text-align:center}
.stat b{display:block;font-family:'Cinzel',serif;font-size:20px;color:var(--teal)}
.stat span{font-size:12px;color:var(--dim)}

.tidewell{min-height:46vh;display:flex;align-items:center;justify-content:center;padding:40px 0}
.well-sticky{position:sticky;top:20vh;text-align:center}
.well-moon{font-size:54px;color:var(--violet);text-shadow:0 0 30px var(--violet)}
.well-track{width:min(420px,70vw);height:14px;border:1px solid var(--line);border-radius:999px;margin:14px auto;overflow:hidden;background:#0a0a1a}
.well-fill{height:100%;width:38%;background:linear-gradient(90deg,var(--shallow),var(--teal));box-shadow:0 0 16px var(--teal);transition:width .1s linear}
.well-cap{color:var(--dim)}.well-cap b{color:var(--teal)}

.prophecy{padding:20px 6px 40px}
.prophecy h2{font-family:'Cinzel',serif;font-size:clamp(22px,4vw,32px)}
.prophecy-lede{color:var(--dim);font-style:italic}
.chapter{background:linear-gradient(180deg,#15152c,#0d0d1f);border:1px solid var(--line);border-left:4px solid var(--violet);border-radius:12px;padding:20px 22px;margin:18px 0}
.chapter:nth-child(3){border-left-color:var(--teal)}
.chapter:nth-child(4){border-left-color:var(--coral)}
.chap-moon{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--amber)}
.chapter h3{font-family:'Cinzel',serif;margin:8px 0}

.post-row{display:grid;grid-template-columns:1fr 240px;gap:18px;align-items:start}
#postPreview{width:100%;border-radius:12px;border:1px dashed var(--line);min-height:120px;background:#0a0a18;display:block}
#postPreview[src]{border-style:solid}
.post-side{display:flex;flex-direction:column;gap:12px}
a#postDownload{text-decoration:none;text-align:center;border-color:var(--teal)}
a#postDownload.hidden{display:none}
.hint{font-size:14px;color:var(--dim);font-style:italic}

footer{text-align:center;color:#6f6794;font-size:13px;padding:30px 16px 60px}
footer code{color:var(--teal)}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.risen{opacity:1;transform:none}

@media (max-width:720px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .post-row{grid-template-columns:1fr}
  .panel{padding:14px}
  body{font-size:16px}
}
