.geomancia-v2 {
  --geo-ink:#f7efdf;
  --geo-muted:#b9b0a2;
  --geo-gold:#d9b76f;
  --geo-copper:#b66c43;
  --geo-teal:#75c8bd;
  --geo-night:#080c17;
  --geo-panel:#101722;
  --geo-panel-2:#151b27;
  --geo-line:rgba(219,185,112,.28);
  position:relative;
  isolation:isolate;
  max-width:1120px;
  margin:0 auto 2.5rem;
  color:var(--geo-ink);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}

.geomancia-v2::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-22px -18px;
  border-radius:38px;
  background:
    radial-gradient(circle at 12% 14%,rgba(33,119,117,.18),transparent 32%),
    radial-gradient(circle at 88% 70%,rgba(176,103,57,.14),transparent 35%),
    linear-gradient(145deg,#080b13 0%,#101321 48%,#070a11 100%);
  box-shadow:0 30px 75px rgba(2,4,10,.38),inset 0 0 0 1px rgba(224,191,121,.16);
}

.geomancia-v2 *, .geomancia-v2 *::before, .geomancia-v2 *::after { box-sizing:border-box; }
.geomancia-v2 button, .geomancia-v2 textarea { font:inherit; }
.geomancia-v2 button { color:inherit; }
.geomancia-v2 [hidden] { display:none!important; }

.geo-phase { animation:geo-phase-in .56s cubic-bezier(.2,.75,.25,1) both; }
.geo-kicker {
  margin:0 0 .55rem;
  color:var(--geo-teal);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.geo-hero {
  position:relative;
  overflow:hidden;
  margin:0;
  border:1px solid rgba(220,184,108,.45);
  border-radius:30px;
  background:#080c14;
  box-shadow:0 28px 62px rgba(0,0,0,.45);
}
.geo-hero::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(4,7,12,.88) 100%);
}
.geo-hero img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.geo-hero figcaption {
  position:absolute;
  z-index:1;
  left:clamp(18px,5vw,56px);
  right:clamp(18px,5vw,56px);
  bottom:clamp(16px,3.7vw,40px);
  display:flex;
  align-items:center;
  gap:clamp(10px,2.5vw,28px);
}
.geo-hero figcaption>span {
  margin-right:auto;
  color:#d5eae6;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.geo-hero figcaption strong { display:flex; align-items:baseline; gap:7px; color:#f3d395; font:500 clamp(1.6rem,4vw,3rem)/1 Georgia,serif; }
.geo-hero figcaption small { color:#fff6e7; font:700 .64rem/1 Inter,system-ui,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.geo-hero figcaption i { width:1px; height:31px; background:rgba(255,255,255,.25); }

.geo-intro-copy { max-width:850px; margin:clamp(24px,4vw,42px) auto 0; text-align:center; }
.geo-lead { margin:0; color:#e6ded0; font:400 clamp(1.04rem,2vw,1.25rem)/1.75 Georgia,serif; }
.geo-badges { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.geo-badges li { display:flex; align-items:center; gap:8px; padding:8px 13px; border:1px solid rgba(220,187,119,.2); border-radius:99px; background:rgba(15,22,32,.72); color:#d7d0c4; font-size:.79rem; }
.geo-badges span { color:var(--geo-gold); }

.geo-form-card {
  max-width:940px;
  margin:32px auto 0;
  padding:clamp(20px,4vw,42px);
  border:1px solid var(--geo-line);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(20,27,40,.96),rgba(8,13,22,.98));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 18px 45px rgba(0,0,0,.22);
}
.geo-field label, .geo-choice-set legend { display:block; margin:0 0 10px; color:#f2e3c7; font-size:.9rem; font-weight:750; letter-spacing:.04em; }
.geo-field textarea {
  display:block;
  width:100%;
  min-height:104px;
  resize:vertical;
  padding:16px 18px;
  border:1px solid rgba(217,183,111,.3);
  border-radius:15px;
  outline:none;
  background:rgba(3,8,14,.72);
  color:#fff8eb;
  line-height:1.55;
  box-shadow:inset 0 1px 9px rgba(0,0,0,.32);
}
.geo-field textarea::placeholder { color:#8e8a84; }
.geo-field textarea:focus { border-color:var(--geo-teal); box-shadow:0 0 0 3px rgba(117,200,189,.13),inset 0 1px 9px rgba(0,0,0,.32); }
.geo-field>p { margin:8px 2px 0; color:#989693; font-size:.77rem; }
.geo-choice-set { min-width:0; margin:28px 0 0; padding:0; border:0; }
.geo-focus-grid, .geo-method-grid { display:grid; gap:11px; }
.geo-focus-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.geo-method-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.geo-focus-grid button, .geo-method-grid button {
  position:relative;
  min-width:0;
  padding:14px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:15px;
  background:rgba(255,255,255,.025);
  text-align:left;
  cursor:pointer;
  transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;
}
.geo-focus-grid button:hover, .geo-method-grid button:hover { transform:translateY(-2px); border-color:rgba(217,183,111,.44); }
.geo-focus-grid button.is-active, .geo-method-grid button.is-active {
  border-color:var(--geo-gold);
  background:linear-gradient(145deg,rgba(217,183,111,.13),rgba(82,146,142,.08));
  box-shadow:0 0 0 2px rgba(217,183,111,.08);
}
.geo-focus-grid span, .geo-method-grid span { display:block; color:#fff5e4; font-weight:750; }
.geo-focus-grid small, .geo-method-grid small { display:block; margin-top:4px; color:#a7a39d; font-size:.72rem; line-height:1.35; }
.geo-method-grid button { padding:18px 17px; }
.geo-method-grid b { position:absolute; top:12px; right:12px; color:var(--geo-teal); font-size:.59rem; letter-spacing:.12em; text-transform:uppercase; }
.geo-method-grid span { padding-right:84px; font-family:Georgia,serif; font-size:1.08rem; }
.geo-start-wrap { margin:28px 0 0; text-align:center; }
.geo-primary, .geo-secondary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:13px 23px;
  border-radius:99px;
  cursor:pointer;
  font-weight:800;
  transition:transform .2s,box-shadow .2s,filter .2s;
}
.geo-primary { border:1px solid #e1c27e; background:linear-gradient(135deg,#d9b76f,#b87542); color:#14100b!important; box-shadow:0 12px 28px rgba(170,105,58,.24); }
.geo-secondary { border:1px solid rgba(218,184,113,.35); background:rgba(255,255,255,.025); color:#eee2ce!important; }
.geo-primary:hover, .geo-secondary:hover { transform:translateY(-2px); filter:brightness(1.07); }
.geo-primary:focus-visible, .geo-secondary:focus-visible, .geo-text-button:focus-visible, .geo-sand:focus-visible, .geo-focus-grid button:focus-visible, .geo-method-grid button:focus-visible { outline:3px solid rgba(117,200,189,.5); outline-offset:3px; }
.geo-privacy { display:flex; justify-content:center; align-items:center; gap:8px; margin:14px 0 0; color:#858987; font-size:.72rem; text-align:center; }
.geo-privacy span { color:var(--geo-teal); }
.geo-notice { max-width:780px; margin:28px auto 0; color:#7f817f; font-size:.7rem; line-height:1.55; text-align:center; }
.geo-live { position:absolute!important; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Trazado */
.geo-cast { max-width:1000px; margin:0 auto; padding:clamp(22px,4vw,44px); border:1px solid var(--geo-line); border-radius:30px; background:linear-gradient(160deg,#101724,#070b12); box-shadow:0 26px 58px rgba(0,0,0,.33); }
.geo-phase-head { max-width:720px; margin:0 auto 25px; text-align:center; }
.geo-phase-head h2, .geo-result-head h2 { margin:0; color:#fff3df; font:500 clamp(1.8rem,4vw,3rem)/1.08 Georgia,serif; }
.geo-phase-head>p:last-child { margin:12px 0 0; color:#aaa59d; line-height:1.65; }
.geo-mothers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 20px; padding:0; list-style:none; }
.geo-mothers li { min-width:0; min-height:117px; padding:12px 8px 10px; border:1px solid rgba(255,255,255,.08); border-radius:14px; background:rgba(255,255,255,.025); text-align:center; transition:border-color .3s,background .3s,transform .3s; }
.geo-mothers li.is-current { border-color:rgba(117,200,189,.6); background:rgba(61,139,135,.09); transform:translateY(-2px); }
.geo-mothers li.is-ready { border-color:rgba(217,183,111,.34); background:rgba(217,183,111,.07); }
.geo-mothers li>span { display:block; color:#8f948f; font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.geo-mothers li>b { display:block; margin-top:5px; overflow:hidden; color:#ead8b7; font:500 .76rem/1.1 Georgia,serif; text-overflow:ellipsis; white-space:nowrap; }
.geo-mini-symbol { height:56px; margin:6px auto 0; opacity:.35; }
.geo-mothers li.is-ready .geo-mini-symbol { opacity:1; animation:geo-symbol-in .45s both; }
.geo-cast-counter { display:flex; align-items:center; gap:14px; margin:0 auto 14px; color:#b9b2a8; font-size:.75rem; }
.geo-cast-counter>span { flex:0 0 115px; }
.geo-cast-counter>i { position:relative; overflow:hidden; flex:1; height:5px; border-radius:9px; background:rgba(255,255,255,.08); }
.geo-cast-counter b { position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background:linear-gradient(90deg,var(--geo-teal),var(--geo-gold)); transition:width .5s cubic-bezier(.2,.8,.2,1); }
.geo-sand {
  --pointer-x:50%; --pointer-y:50%;
  position:relative;
  display:block;
  overflow:hidden;
  width:100%;
  min-height:360px;
  padding:0;
  border:1px solid rgba(222,184,109,.55);
  border-radius:50% / 18%;
  background:
    radial-gradient(ellipse at 50% 45%,rgba(253,221,153,.35),transparent 62%),
    radial-gradient(ellipse at center,#ab7544 0%,#7b4a2f 64%,#281a18 100%);
  box-shadow:inset 0 0 45px rgba(34,18,12,.78),inset 0 -22px 40px rgba(25,10,8,.48),0 22px 42px rgba(0,0,0,.33);
  cursor:pointer;
  touch-action:manipulation;
}
.geo-sand::before {
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(255,224,160,.22);
  border-radius:inherit;
  background-image:radial-gradient(circle,rgba(255,236,190,.12) 0 1px,transparent 1.3px);
  background-size:9px 8px;
  opacity:.46;
}
.geo-sand::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 10px rgba(31,18,17,.36),inset 0 0 0 13px rgba(216,169,94,.12); pointer-events:none; }
.geo-sand-glow { position:absolute; z-index:1; width:160px; height:120px; left:var(--pointer-x); top:var(--pointer-y); border-radius:50%; background:rgba(255,230,173,.14); filter:blur(18px); transform:translate(-50%,-50%); opacity:0; transition:opacity .2s; }
.geo-sand.is-touching .geo-sand-glow { opacity:1; }
.geo-sand-brush { position:absolute; z-index:3; left:-18%; top:32%; width:38%; height:3px; border-radius:50%; background:linear-gradient(90deg,transparent,rgba(76,36,20,.8),rgba(255,225,164,.4),transparent); box-shadow:0 4px 9px rgba(56,29,18,.55); opacity:0; transform:rotate(-7deg); }
.geo-sand.is-casting .geo-sand-brush { animation:geo-brush .68s ease-in-out both; }
.geo-sand-rows { position:absolute; z-index:2; inset:56px 14% 65px; display:grid; grid-template-rows:repeat(4,1fr); align-items:center; }
.geo-sand-row { display:flex; justify-content:center; gap:clamp(4px,.65vw,8px); min-height:30px; }
.geo-grain { width:clamp(4px,.55vw,7px); height:clamp(4px,.55vw,7px); border-radius:50%; background:#4a281b; box-shadow:inset 0 1px rgba(255,218,151,.24),0 2px 3px rgba(30,12,7,.45); opacity:0; transform:translateY(-12px) scale(.4); animation:geo-grain-drop .38s forwards; }
.geo-sand-copy { position:absolute; z-index:4; left:50%; bottom:27px; display:block; transform:translateX(-50%); width:80%; text-align:center; pointer-events:none; }
.geo-sand-copy strong { display:block; color:#fff1d2; font-size:.88rem; text-shadow:0 2px 9px #26100a; }
.geo-sand-copy small { display:block; margin-top:4px; color:rgba(255,241,210,.7); font-size:.68rem; }
.geo-sand:disabled { cursor:wait; }
.geo-sand:disabled .geo-sand-copy { opacity:.62; }
.geo-cast-reading { min-height:57px; margin:17px auto 0; color:#d8cfbf; text-align:center; }
.geo-cast-reading strong { color:#f2d495; font-family:Georgia,serif; font-size:1.04rem; font-weight:500; }
.geo-cast-reading small { display:block; margin-top:4px; color:#92938f; }
.geo-build-wrap { display:grid; justify-items:center; gap:10px; margin:22px 0 4px; text-align:center; animation:geo-phase-in .4s both; }
.geo-build-wrap[hidden] { display:none; }
.geo-build-ready { display:inline-flex; align-items:center; gap:7px; color:#dfc78f; font-size:.62rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.geo-build-ready i { width:7px; height:7px; border-radius:50%; background:#79c9bd; box-shadow:0 0 0 4px rgba(121,201,189,.09),0 0 13px rgba(121,201,189,.65); }
.geo-build-button {
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:45px 1fr 30px;
  align-items:center;
  gap:12px;
  width:min(100%,430px);
  min-height:76px;
  padding:10px 14px 10px 12px;
  border:1px solid rgba(236,207,141,.88);
  border-radius:19px;
  background:linear-gradient(135deg,#25362f 0%,#15211f 48%,#251c16 100%);
  color:#fff5e4!important;
  box-shadow:0 16px 36px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08),0 0 24px rgba(217,183,111,.15);
  cursor:pointer;
  transition:transform .2s,filter .2s,border-color .2s;
  animation:geo-build-glow 2.25s ease-in-out infinite;
}
.geo-build-button::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-7px;
  border:1px solid rgba(223,190,119,.46);
  border-radius:24px;
  pointer-events:none;
  animation:geo-build-halo 2.25s ease-out infinite;
}
.geo-build-sigil { display:grid; place-items:center; width:43px; height:43px; border:1px solid rgba(240,208,137,.52); border-radius:50%; background:radial-gradient(circle,#d9b76f 0 7%,#8d6036 10%,#33291f 58%,#17221f 100%); color:#f8dfa6; font-size:1.25rem; box-shadow:0 0 20px rgba(217,183,111,.22); }
.geo-build-copy { min-width:0; text-align:left; }
.geo-build-copy strong { display:block; color:#fff6e6; font:600 1.12rem/1.15 Georgia,serif; }
.geo-build-copy small { display:block; margin-top:5px; color:#a9cfc8; font-size:.7rem; font-weight:700; letter-spacing:.025em; }
.geo-build-arrow { color:#e4c57f; font-size:1.4rem; transition:transform .2s; }
.geo-build-button:hover { transform:translateY(-3px); border-color:#f2d799; filter:brightness(1.08); }
.geo-build-button:hover .geo-build-arrow { transform:translateX(4px); }
.geo-build-button:focus-visible { outline:3px solid rgba(117,200,189,.55); outline-offset:5px; }
.geo-build-button:disabled { cursor:wait; filter:saturate(.65); opacity:.72; animation:none; }
.geo-build-button:disabled::before { animation:none; opacity:0; }
.geo-cast-nav { margin:17px 0 0; text-align:center; }
.geo-text-button { padding:7px; border:0; background:transparent; color:#8f9693!important; font-size:.74rem; text-decoration:underline; text-decoration-color:rgba(143,150,147,.35); text-underline-offset:4px; cursor:pointer; }

/* Símbolos */
.geo-symbol { display:grid; align-content:center; justify-items:center; gap:5px; height:100%; }
.geo-dot-row { display:flex; justify-content:center; gap:10px; min-height:8px; }
.geo-dot { display:block; width:7px; height:7px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; }
.geo-mini-symbol .geo-symbol { color:#d8b46e; gap:3px; }
.geo-mini-symbol .geo-dot-row { gap:7px; min-height:5px; }
.geo-mini-symbol .geo-dot { width:5px; height:5px; box-shadow:0 0 5px currentColor; }
.geo-medium-symbol { width:94px; height:108px; color:var(--geo-gold); }
.geo-medium-symbol .geo-symbol { gap:8px; }
.geo-medium-symbol .geo-dot { width:10px; height:10px; }
.geo-medium-symbol .geo-dot-row { gap:17px; }
.geo-large-symbol { width:160px; height:180px; color:#f1ce84; }
.geo-large-symbol .geo-symbol { gap:13px; }
.geo-large-symbol .geo-dot { width:15px; height:15px; box-shadow:0 0 17px rgba(239,198,119,.65); }
.geo-large-symbol .geo-dot-row { gap:28px; }

/* Resultado */
.geo-result { max-width:1080px; margin:0 auto; }
.geo-result-head { margin:0 auto 25px; text-align:center; }
.geo-result-context { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; margin:12px 0 0; color:#9ca19d; font-size:.79rem; }
.geo-result-context i { color:var(--geo-gold); }
.geo-judge {
  --geo-tone:#d9b76f;
  position:relative;
  display:grid;
  grid-template-columns:minmax(190px,31%) 1fr;
  align-items:center;
  overflow:hidden;
  min-height:390px;
  padding:clamp(24px,5vw,56px);
  border:1px solid color-mix(in srgb,var(--geo-tone) 60%,transparent);
  border-radius:30px;
  background:
    radial-gradient(circle at 20% 45%,color-mix(in srgb,var(--geo-tone) 16%,transparent),transparent 34%),
    linear-gradient(145deg,#101827,#090d16);
  box-shadow:0 28px 60px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.04);
}
.geo-judge::before { content:""; position:absolute; inset:14px; border:1px solid rgba(221,190,124,.14); border-radius:21px; pointer-events:none; }
.geo-judge-aura { position:absolute; left:7%; top:50%; width:290px; height:290px; border:1px solid color-mix(in srgb,var(--geo-tone) 38%,transparent); border-radius:50%; transform:translateY(-50%); box-shadow:0 0 70px color-mix(in srgb,var(--geo-tone) 13%,transparent),inset 0 0 45px color-mix(in srgb,var(--geo-tone) 8%,transparent); }
.geo-judge-aura::before, .geo-judge-aura::after { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.06); border-radius:50%; }
.geo-judge-aura::after { inset:42px; border-style:dashed; }
.geo-large-symbol { position:relative; z-index:1; margin:auto; }
.geo-judge-copy { position:relative; z-index:1; padding-left:clamp(18px,4vw,50px); }
.geo-judge-copy>p:first-child { margin:0; color:var(--geo-teal); font-size:.69rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.geo-judge-copy h3 { margin:7px 0 0; color:#fff3df; font:500 clamp(2rem,5vw,3.8rem)/1 Georgia,serif; }
.geo-judge-copy>span { display:block; margin-top:7px; color:#b6afa4; font:italic 1rem Georgia,serif; }
.geo-verdict { display:flex; align-items:center; gap:12px; margin:20px 0 0; padding:11px 14px; border-left:2px solid var(--geo-tone); background:rgba(255,255,255,.035); }
.geo-verdict small { color:#929691; font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.geo-verdict strong { color:#f1ddba; font-size:.88rem; }
.geo-judge-copy h4 { margin:23px 0 6px; color:var(--geo-gold); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; }
.geo-judge-copy h4+p { margin:0; color:#ddd7cd; line-height:1.7; }
.geo-judge-copy ul { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0 0; padding:0; list-style:none; }
.geo-judge-copy li { padding:5px 9px; border:1px solid rgba(255,255,255,.1); border-radius:99px; color:#aaa9a5; font-size:.68rem; }
.geo-judge[data-tone="favorable"] { --geo-tone:#dcb96c; }
.geo-judge[data-tone="cambio"] { --geo-tone:#6dbeb5; }
.geo-judge[data-tone="mixta"] { --geo-tone:#8eb8ce; }
.geo-judge[data-tone="pausa"] { --geo-tone:#a58a76; }
.geo-judge[data-tone="cierre"] { --geo-tone:#c98569; }
.geo-judge[data-tone="alerta"] { --geo-tone:#c8675a; }

.geo-chart-section, .geo-witness-section { margin-top:32px; padding:clamp(20px,4vw,40px); border:1px solid rgba(220,185,113,.19); border-radius:25px; background:rgba(10,15,24,.72); }
.geo-chart-section>header { max-width:740px; margin:0 auto 28px; text-align:center; }
.geo-chart-section>header>p:last-child { margin:0; color:#999b97; line-height:1.55; }
.geo-shield { display:grid; grid-template-columns:1fr 1fr; gap:21px 24px; }
.geo-shield>section { position:relative; min-width:0; }
.geo-shield>section>h3 { margin:0 0 9px; color:#8e9692; font-size:.63rem; font-weight:800; letter-spacing:.14em; text-align:center; text-transform:uppercase; }
.geo-shield .geo-derived { grid-column:1/-1; }
.geo-chart-row { display:grid; gap:8px; justify-content:center; }
.geo-row-four { grid-template-columns:repeat(4,minmax(105px,1fr)); }
.geo-row-two { grid-template-columns:repeat(2,minmax(150px,220px)); }
.geo-chart-card { --delay:0ms; position:relative; min-width:0; min-height:142px; padding:9px 8px 11px; border:1px solid rgba(215,183,115,.19); border-radius:13px; background:linear-gradient(160deg,rgba(30,37,51,.9),rgba(8,13,22,.95)); text-align:center; opacity:0; transform:translateY(-9px); animation:geo-card-in .42s var(--delay) forwards; }
.geo-chart-card.is-court { border-color:rgba(217,183,111,.4); background:linear-gradient(160deg,rgba(62,50,35,.5),rgba(11,16,24,.97)); }
.geo-chart-card small { display:block; overflow:hidden; color:#7f8582; font-size:.56rem; font-weight:800; letter-spacing:.09em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.geo-chart-card .geo-mini-symbol { height:73px; margin:2px auto; opacity:1; }
.geo-chart-card b { display:block; overflow:hidden; color:#efe1c8; font:500 .75rem/1.1 Georgia,serif; text-overflow:ellipsis; white-space:nowrap; }
.geo-chart-card em { display:block; margin-top:3px; overflow:hidden; color:#818681; font-size:.55rem; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.geo-shield>section.geo-derived::before { content:""; position:absolute; top:-16px; left:20%; right:20%; height:1px; background:linear-gradient(90deg,transparent,rgba(217,183,111,.3),transparent); }

.geo-witness-section>header { text-align:center; }
.geo-witness-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-top:18px; }
.geo-witness-grid article { display:grid; grid-template-columns:100px 1fr; grid-template-rows:auto auto auto 1fr; column-gap:18px; align-items:center; padding:20px; border:1px solid rgba(255,255,255,.09); border-radius:18px; background:rgba(255,255,255,.025); }
.geo-witness-grid article>small { grid-column:1/-1; margin-bottom:8px; color:var(--geo-teal); font-size:.6rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.geo-witness-grid .geo-medium-symbol { grid-row:2/6; grid-column:1; }
.geo-witness-grid h3 { grid-column:2; margin:0; color:#f1e2c8; font:500 1.4rem Georgia,serif; }
.geo-witness-grid h3+span { grid-column:2; color:#918f8a; font:italic .77rem Georgia,serif; }
.geo-witness-grid p { grid-column:2; margin:9px 0 0; color:#bcb7ae; font-size:.82rem; line-height:1.55; }
.geo-synthesis { display:flex; align-items:flex-start; gap:17px; margin-top:15px; padding:18px 20px; border-left:2px solid var(--geo-gold); border-radius:4px 15px 15px 4px; background:rgba(217,183,111,.065); }
.geo-synthesis>span { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border:1px solid rgba(217,183,111,.34); border-radius:50%; color:var(--geo-gold); }
.geo-synthesis h3 { margin:0; color:#dbc9a9; font-size:.71rem; letter-spacing:.12em; text-transform:uppercase; }
.geo-synthesis p { margin:7px 0 0; color:#c9c2b7; line-height:1.6; }
.geo-reconciler { display:grid; grid-template-columns:150px 1fr; align-items:center; gap:clamp(20px,4vw,45px); margin-top:26px; padding:clamp(24px,4vw,42px); border:1px solid rgba(117,200,189,.27); border-radius:25px; background:radial-gradient(circle at 12% 50%,rgba(76,153,145,.13),transparent 31%),linear-gradient(135deg,#101a24,#0b101a); }
.geo-reconciler .geo-medium-symbol { margin:auto; color:var(--geo-teal); transform:scale(1.25); }
.geo-reconciler h3 { margin:0 0 8px; color:#f2e4cd; font:500 1.8rem Georgia,serif; }
.geo-reconciler h3+p { margin:0; color:#9fa19d; line-height:1.55; }
.geo-reconciler blockquote { margin:16px 0 0; padding:13px 16px; border-left:2px solid var(--geo-teal); background:rgba(117,200,189,.06); color:#d7d2c9; font:italic 1rem/1.6 Georgia,serif; }

.geo-figure-details { margin-top:18px; border:1px solid rgba(255,255,255,.1); border-radius:17px; background:rgba(255,255,255,.022); }
.geo-figure-details summary { padding:16px 20px; color:#d4c5aa; font-weight:750; cursor:pointer; }
.geo-figure-details[open] summary { border-bottom:1px solid rgba(255,255,255,.08); }
.geo-details-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:20px 20px 0; }
.geo-details-grid p { margin:0; padding:12px; border-radius:12px; background:rgba(255,255,255,.03); text-align:center; }
.geo-details-grid small { display:block; color:#818884; font-size:.58rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.geo-details-grid strong { display:block; margin-top:5px; color:#ead9ba; font:500 1rem Georgia,serif; }
.geo-detail-reading { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; padding:12px 20px 20px; }
.geo-detail-reading section { padding:15px; border:1px solid rgba(255,255,255,.07); border-radius:12px; }
.geo-detail-reading h3 { margin:0; color:var(--geo-teal); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }
.geo-detail-reading p { margin:7px 0 0; color:#aeadA7; font-size:.79rem; line-height:1.55; }
.geo-result-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:25px; }
.geo-share-status { min-height:20px; margin:10px 0 0; color:#9dbeb8; font-size:.74rem; text-align:center; }

@keyframes geo-phase-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
@keyframes geo-symbol-in { 0% { opacity:0; transform:scale(.75); } 70% { transform:scale(1.07); } 100% { opacity:1; transform:none; } }
@keyframes geo-brush { 0% { left:-18%; opacity:0; } 16% { opacity:1; } 82% { opacity:1; } 100% { left:80%; opacity:0; } }
@keyframes geo-grain-drop { to { opacity:1; transform:none; } }
@keyframes geo-card-in { to { opacity:1; transform:none; } }
@keyframes geo-build-glow { 0%,100% { box-shadow:0 16px 36px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08),0 0 18px rgba(217,183,111,.12); } 50% { box-shadow:0 16px 36px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08),0 0 34px rgba(217,183,111,.34); } }
@keyframes geo-build-halo { 0% { opacity:.7; transform:scale(.985); } 58%,100% { opacity:0; transform:scale(1.055); } }

@media (max-width:760px) {
  .geomancia-v2::before { inset:-13px -8px; border-radius:25px; }
  .geo-hero { border-radius:20px; }
  .geo-hero figcaption>span { display:none; }
  .geo-hero figcaption { justify-content:center; }
  .geo-focus-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .geo-method-grid { grid-template-columns:1fr; }
  .geo-cast { padding:20px 13px; border-radius:22px; }
  .geo-mothers { gap:6px; }
  .geo-mothers li { min-height:102px; padding-inline:4px; }
  .geo-mothers li>b { font-size:.62rem; }
  .geo-sand { min-height:310px; border-radius:46% / 16%; }
  .geo-sand-rows { inset-inline:9%; }
  .geo-judge { grid-template-columns:1fr; padding:31px 21px; text-align:center; }
  .geo-judge-aura { left:50%; top:38px; width:230px; height:230px; transform:translateX(-50%); }
  .geo-large-symbol { height:190px; }
  .geo-judge-copy { padding:0; }
  .geo-verdict { justify-content:center; border-left:0; border-top:2px solid var(--geo-tone); }
  .geo-judge-copy ul { justify-content:center; }
  .geo-shield { grid-template-columns:1fr; gap:19px; }
  .geo-shield .geo-derived { grid-column:1; }
  .geo-row-four { grid-template-columns:repeat(4,minmax(66px,1fr)); }
  .geo-chart-card { min-height:126px; padding-inline:4px; }
  .geo-chart-card b { font-size:.6rem; }
  .geo-chart-card em { display:none; }
  .geo-witness-grid { grid-template-columns:1fr; }
  .geo-reconciler { grid-template-columns:1fr; text-align:center; }
  .geo-reconciler blockquote { text-align:left; }
  .geo-details-grid, .geo-detail-reading { grid-template-columns:1fr; }
}

@media (max-width:430px) {
  .geo-hero img { aspect-ratio:4/3; }
  .geo-hero figcaption { gap:9px; }
  .geo-hero figcaption strong { font-size:1.35rem; }
  .geo-hero figcaption small { font-size:.52rem; }
  .geo-form-card { padding:18px 13px; border-radius:19px; }
  .geo-focus-grid button { padding:11px; }
  .geo-sand { min-height:275px; }
  .geo-sand-rows { inset:42px 6% 58px; }
  .geo-grain { width:4px; height:4px; }
  .geo-chart-section, .geo-witness-section { padding:18px 10px; }
  .geo-row-four { gap:5px; }
  .geo-chart-card { min-height:112px; }
  .geo-chart-card .geo-mini-symbol { height:62px; }
  .geo-row-two { grid-template-columns:repeat(2,minmax(115px,1fr)); }
  .geo-witness-grid article { grid-template-columns:80px 1fr; padding:15px 12px; column-gap:10px; }
  .geo-witness-grid .geo-medium-symbol { width:78px; }
  .geo-build-button { grid-template-columns:41px 1fr 24px; gap:9px; min-height:72px; padding-inline:10px; }
  .geo-build-sigil { width:39px; height:39px; }
  .geo-build-copy strong { font-size:1.04rem; }
  .geo-result-actions { align-items:stretch; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
  .geomancia-v2 *, .geomancia-v2 *::before, .geomancia-v2 *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-delay:0ms!important; transition-duration:.01ms!important; }
}
