/* Dreamspell Calendar Plugin v3.0 — The Galactic Ark */
/* ─── FONT SCALE ───────────────────────────────────────────
   Tier 1 – Section headlines  : var(--fs-h)   1.5rem
   Tier 2 – Body / card text   : var(--fs-b)   1.05rem
   Tier 3 – Supporting / small : var(--fs-s)   0.85rem
   ────────────────────────────────────────────────────── */
:root {
  --navy:#0a0e1a;--deep:#080c16;--gold:#c9a84c;--gold-light:#e8c96a;
  --gold-dim:#8a6f2e;--white:#f0ead8;--card-bg:rgba(15,21,37,0.82);
  --border:rgba(201,168,76,0.25);--portal-color:#4caf50;
  --fs-h:1.7rem;
  --fs-b:1.15rem;
  --fs-s:0.95rem;
}
#dreamspell-root *{box-sizing:border-box;}
*{margin:0;padding:0;box-sizing:border-box;}
#dreamspell-root{background:transparent;color:var(--white);font-family:'Montserrat',sans-serif;min-height:100vh;}

/* HEADER */
.header{text-align:center;padding:3rem 1rem 2rem;border-bottom:1px solid var(--border);position:relative;}
.header::before{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:200px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.header h1{font-family:'Montserrat',sans-serif;font-size:clamp(1.6rem,4vw,2.8rem);font-weight:900;color:var(--gold-light);letter-spacing:.15em;text-transform:uppercase;}
.header p{margin-top:.6rem;color:rgba(240,234,216,0.65);font-style:italic;font-size:var(--fs-b);}

.container{max-width:1400px;margin:0 auto;padding:0 1.5rem 4rem;width:100%;}

/* CALCULATOR */
.calculator{margin:2.5rem auto;max-width:860px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.8rem 2rem;text-align:center;}
.calculator h2{font-family:'Montserrat',sans-serif;font-size:var(--fs-h);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:1.2rem;}
.date-input-row{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;}
.date-input-row select,.date-input-row input{background:rgba(255,255,255,0.05);border:1px solid var(--border);color:var(--white);font-family:'Montserrat',sans-serif;font-size:var(--fs-b);padding:.5rem .7rem;border-radius:6px;cursor:pointer;outline:none;transition:border-color .2s;}
.date-input-row select:hover,.date-input-row input:hover,
.date-input-row select:focus,.date-input-row input:focus{border-color:var(--gold);}
.date-input-row input[type=number]{width:100px;}
.btn-row{margin-top:1rem;display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;}
.calc-btn{background:linear-gradient(135deg,var(--gold-dim),var(--gold));color:var(--deep);font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.15em;text-transform:uppercase;border:none;padding:.7rem 2rem;border-radius:6px;cursor:pointer;transition:opacity .2s,transform .1s;}
.calc-btn:hover{opacity:.9;transform:translateY(-1px);}
.today-btn{background:transparent;color:var(--gold-dim);font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);padding:.7rem 1.4rem;border-radius:6px;cursor:pointer;transition:all .2s;}
.today-btn:hover{border-color:var(--gold-dim);color:var(--gold);}

/* KIN CARD */
.kin-card{margin:2rem auto;max-width:860px;background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:2rem;position:relative;overflow:hidden;}
.kin-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.kin-number-badge{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.25em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:.4rem;text-align:center;}
.kin-main-name{font-family:'Montserrat',sans-serif;font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:900;letter-spacing:.05em;margin-bottom:1.2rem;cursor:pointer;transition:color .2s;text-align:center;}
.kin-main-name:hover{color:var(--gold-light);}
.kin-mantra{text-align:center;margin-bottom:1.5rem;line-height:2.2;}
.mantra-line{font-family:'Montserrat',sans-serif;font-style:italic;font-weight:400;color:rgba(240,234,216,0.88);font-size:var(--fs-b);display:block;letter-spacing:.03em;}
.mantra-line.portal-line{color:var(--portal-color);}
.mantra-line.guide-line{color:rgba(240,234,216,0.88);font-size:var(--fs-b);}
.kin-center-row{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;justify-content:center;margin-bottom:1.5rem;}
.tribe-symbol{width:90px;height:90px;border-radius:50%;border:2px solid var(--border);padding:6px;background:rgba(255,255,255,0.04);flex-shrink:0;cursor:pointer;transition:border-color .2s,transform .2s;}
.tribe-symbol:hover{border-color:var(--gold);transform:scale(1.05);}
.tribe-symbol img{width:100%;height:100%;object-fit:contain;}
.kin-meta{min-width:180px;}
.kin-tone-name{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.12em;color:var(--gold-dim);text-transform:uppercase;margin-top:.5rem;margin-bottom:.3rem;}
.kin-tone-keywords{font-family:'Montserrat',sans-serif;font-size:var(--fs-b);color:rgba(240,234,216,0.65);}

/* ORACLE */
.oracle-title{font-family:'Montserrat',sans-serif;font-size:var(--fs-h);letter-spacing:.2em;color:var(--gold-dim);text-transform:uppercase;text-align:center;margin:1.5rem 0 1rem;}
.oracle-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem;max-width:720px;margin:0 auto;}
.oracle-cell{background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:10px;padding:1rem .8rem;text-align:center;cursor:pointer;transition:background .2s,border-color .2s,transform .15s;}
.oracle-cell:hover{background:rgba(201,168,76,0.08);border-color:var(--gold-dim);transform:translateY(-2px);}
.oracle-cell.guide{grid-column:2;grid-row:1;}
.oracle-cell.analog{grid-column:3;grid-row:2;}
.oracle-cell.main-center{grid-column:2;grid-row:2;background:rgba(201,168,76,0.06);border-color:var(--gold-dim);}
.oracle-cell.antipode{grid-column:1;grid-row:2;}
.oracle-cell.occult{grid-column:2;grid-row:3;}
.oracle-role{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem;}
.oracle-symbol{width:44px;height:44px;margin:0 auto .5rem;}
.oracle-symbol img{width:100%;height:100%;object-fit:contain;}
.oracle-kin-name{font-family:'Montserrat',sans-serif;font-size:var(--fs-b);font-weight:600;line-height:1.3;}
.oracle-kin-num{font-size:var(--fs-s);color:var(--gold-dim);margin-top:.2rem;}
.kin-nav{display:flex;gap:.8rem;justify-content:center;margin-top:1.5rem;}

/* NAV BUTTONS */
.nav-btn{background:transparent;color:var(--gold-dim);font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);padding:.6rem 1.4rem;border-radius:6px;cursor:pointer;transition:all .2s;}
.nav-btn:hover{border-color:var(--gold);color:var(--gold);}

/* WAVESPELL */
.wavespell-section{margin:2.5rem auto;max-width:860px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.8rem;}
.wavespell-section h3{font-family:'Montserrat',sans-serif;font-size:var(--fs-h);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem;}
.wavespell-subtitle{font-family:'Montserrat',sans-serif;font-size:var(--fs-b);color:rgba(240,234,216,0.65);margin-bottom:1.5rem;}
.wavespell-spiral-wrap{display:flex;justify-content:center;align-items:flex-start;width:100%;overflow:hidden;margin-bottom:1.2rem;}
.wavespell-spiral{display:grid;grid-template-columns:repeat(5,72px);grid-template-rows:repeat(5,80px);gap:6px;width:fit-content;transform-origin:top center;}
.ws-cell{width:72px;height:80px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:4px;}
.ws-cell:hover{background:rgba(201,168,76,0.1);border-color:var(--gold-dim);transform:scale(1.05);}
.ws-cell.ws-active{border-color:var(--gold-light);background:rgba(201,168,76,0.15);box-shadow:0 0 14px rgba(201,168,76,0.4);}
.ws-cell.ws-past{opacity:.4;}
.ws-cell img{width:34px;height:34px;object-fit:contain;}
.ws-cell-tone{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.02em;color:var(--gold-dim);margin-top:3px;text-align:center;line-height:1.2;}
.ws-cell.ws-active .ws-cell-tone{color:var(--gold-light);}
.ws-nav{display:flex;gap:.8rem;justify-content:center;margin-top:.8rem;}

/* TRIBE SYMBOL WRAP — tone symbol overlaps top edge of circle */
.tribe-sym-wrap{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:5px;}
.tribe-sym-wrap .tone-badge{color:var(--gold);line-height:1;}

/* ═══ 13 MOON CALENDAR ═══ */
.moon-section{margin:2.5rem auto;max-width:860px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.8rem;position:relative;}
.moon-section::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(74,143,196,0.6),transparent);}
.moon-year-label{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);text-align:center;margin-bottom:1rem;}
.moon-nav-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.moon-name-display{text-align:center;flex:1;}
.moon-number{display:block;font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.2em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:.3rem;}
.moon-name{display:block;font-family:'Montserrat',sans-serif;font-size:clamp(1.3rem,2.5vw,var(--fs-h));font-weight:600;color:var(--gold-light);letter-spacing:.05em;}
.moon-current-badge{display:inline-block;background:rgba(201,168,76,0.15);border:1px solid var(--border);border-radius:20px;padding:.2rem .7rem;font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.1em;color:var(--gold-dim);text-transform:uppercase;margin-top:.4rem;}

/* MOON GRID */
.moon-grid-wrap{width:100%;overflow:hidden;}
.moon-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.moon-cell{border-radius:8px;padding:7px 4px;text-align:center;cursor:pointer;transition:transform .15s,box-shadow .15s;min-height:90px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;}
.moon-cell:hover{transform:scale(1.06);z-index:5;box-shadow:0 4px 16px rgba(0,0,0,0.5);}
.moon-cell-day{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);font-weight:600;letter-spacing:.04em;opacity:.8;align-self:flex-start;padding-left:2px;}
.moon-cell-img{width:36px;height:36px;margin:.1rem auto;}
.moon-cell-img img{width:100%;height:100%;object-fit:contain;}
.moon-cell-date{font-size:var(--fs-s);opacity:.75;font-family:'Montserrat',sans-serif;letter-spacing:.03em;}
.moon-cell-kin{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.04em;opacity:.7;}

/* DAY OUT OF TIME */
.dot-container{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:1rem 0;}
.dot-kin-side{text-align:center;cursor:pointer;padding:.8rem;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,0.03);transition:all .2s;min-width:130px;}
.dot-kin-side:hover{background:rgba(201,168,76,0.08);border-color:var(--gold-dim);transform:translateY(-2px);}
.dot-label{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem;}
.dot-kin-img{width:60px;height:60px;margin:.3rem auto;}
.dot-kin-img img{width:100%;height:100%;object-fit:contain;}
.dot-kin-name{font-family:'Montserrat',sans-serif;font-size:var(--fs-b);font-weight:600;line-height:1.3;margin-top:.3rem;}
.dot-tone-sym{margin-top:.3rem;}
.dot-rainbow-bridge{text-align:center;cursor:pointer;padding:1rem;flex:1;min-width:140px;max-width:220px;}
.dot-rainbow{position:relative;width:120px;height:60px;margin:0 auto .5rem;}
.rainbow-arc{position:absolute;bottom:0;border-radius:60px 60px 0 0;border-style:solid;border-bottom:none;box-sizing:border-box;}
.dot-title{font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:600;color:var(--portal-color);letter-spacing:.1em;text-transform:uppercase;}
.dot-subtitle{font-size:var(--fs-b);color:rgba(240,234,216,0.55);font-style:italic;margin-top:.2rem;}

/* TZOLKIN */
.tzolkin-section{margin:2.5rem auto;max-width:860px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.8rem;position:relative;overflow:hidden;}
.tzolkin-section::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.tzolkin-section h2{font-family:'Montserrat',sans-serif;font-size:var(--fs-h);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);text-align:center;margin-bottom:1.5rem;}
.tzolkin-inner{width:100%;overflow:hidden;}
.tzolkin-table-wrap{display:flex;justify-content:center;}
/* Table uses fixed layout with equal columns — symbol col fixed, 13 tone cols fill remaining space */
.tzolkin-table{border-collapse:separate;border-spacing:2px;width:100%;table-layout:fixed;}
.tz-symbol-cell{width:38px;padding:1px 4px 1px 0;vertical-align:middle;}
.tz-symbol-cell img{width:32px;height:32px;object-fit:contain;display:block;}
.tz-cell{width:100%;height:46px;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s;border:1px solid rgba(0,0,0,0.3);}
.tz-cell:hover{transform:scale(1.1);z-index:10;box-shadow:0 4px 16px rgba(0,0,0,0.5);}
.tz-cell.tribe-red{background:#3d1a1a;color:#ffb8b0;}
.tz-cell.tribe-white{background:#1e2d42;color:#d8ecf8;}
.tz-cell.tribe-blue{background:#0f1e35;color:#7ab8e8;}
.tz-cell.tribe-yellow{background:#261e08;color:#f0d060;}
.tz-cell.tribe-portal{background:#0f2010!important;color:#80d080!important;border-color:rgba(80,160,80,0.4)!important;}
.tz-cell.tz-selected{box-shadow:0 0 0 2px var(--gold-light),0 0 16px rgba(201,168,76,0.6)!important;transform:scale(1.1);z-index:20;}
.tz-cell-num{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);font-weight:600;line-height:1;}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:999999;align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.open{display:flex;}
.modal{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;padding:2rem;position:relative;animation:modalIn .2s ease;}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--gold-dim);font-size:1.4rem;cursor:pointer;transition:color .2s;}
.modal-close:hover{color:var(--gold);}
.modal-symbol{width:80px;height:80px;margin:0 auto 1rem;}
.modal-symbol img{width:100%;height:100%;object-fit:contain;}
.modal h2{font-family:'Montserrat',sans-serif;font-size:1.4rem;color:var(--gold-light);text-align:center;margin-bottom:.3rem;}
.modal-kin-num{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.2em;color:var(--gold-dim);text-align:center;margin-bottom:1.2rem;}
.modal-section{margin-bottom:1.2rem;padding-bottom:1.2rem;border-bottom:1px solid var(--border);}
.modal-section:last-child{border-bottom:none;margin-bottom:0;}
.modal-section h3{font-family:'Montserrat',sans-serif;font-size:var(--fs-s);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem;}
.modal-section p{font-family:'Montserrat',sans-serif;font-size:var(--fs-b);line-height:1.7;color:rgba(240,234,216,0.82);}
.modal-keywords{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;}
.keyword-tag{background:rgba(201,168,76,0.12);border:1px solid var(--border);border-radius:20px;padding:.2rem .7rem;font-size:var(--fs-s);color:var(--gold-dim);font-family:'Montserrat',sans-serif;font-weight:500;}

.color-red{color:#ff8878;}.color-white{color:#c8dce8;}.color-blue{color:#7ab8e8;}.color-yellow{color:#f0d060;}
.section-divider{width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);margin:2.5rem auto;}
.footer{text-align:center;padding:2rem 1rem;border-top:1px solid var(--border);font-family:'Montserrat',sans-serif;font-size:var(--fs-s);color:rgba(240,234,216,0.3);}
/* ═══ MOBILE RESPONSIVE — scale-down, no horizontal scroll ═══ */
@media (max-width: 900px) {
  :root {
    --fs-h: 1.45rem;
    --fs-b: 1.05rem;
    --fs-s: 0.88rem;
  }
}
@media (max-width: 600px) {
  :root {
    --fs-h: 1.25rem;
    --fs-b: 0.97rem;
    --fs-s: 0.82rem;
  }
  .container { padding: 0 0.6rem 3rem; }
  .calculator, .kin-card, .wavespell-section,
  .moon-section, .tzolkin-section { padding: 1.2rem 0.8rem; }
  .oracle-kin-name { font-size: 0.85rem; }
  .oracle-kin-num  { font-size: 0.78rem; }
  .moon-cell { min-height: 70px; }
  .moon-cell-img { width: 28px; height: 28px; }
}
