/* Shared site styling. No Tailwind runtime or build step. */
:root { color-scheme: dark; --gold:#fbbf24; --ember:#ea580c; --parchment:#e2d1c3; --display:"Cinzel",Georgia,serif; --serif:"Cormorant Garamond",Georgia,serif; }
* { box-sizing:border-box; }
body { margin:0; }
h1,h4,p { margin:0; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.gematria-page { min-height:100vh; color:var(--parchment); font-family:var(--serif); line-height:1.5; background:#050505 url("../gem_calc/Gemini_Generated_Image_Books.png") center / cover fixed; -webkit-font-smoothing:antialiased; }
.page-overlay { position:fixed; inset:0; z-index:0; background:rgb(0 0 0 / 70%); backdrop-filter:blur(3px); pointer-events:none; }
.page-shell { position:relative; z-index:1; display:flex; flex-direction:column; min-height:100vh; }
.site-nav { position:fixed; top:0; width:100%; z-index:50; border-bottom:1px solid rgb(255 255 255 / 5%); backdrop-filter:blur(4px); background:rgb(0 0 0 / 60%); }
.site-nav-inner { max-width:1280px; margin:auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-brand { color:var(--gold); font:18px var(--display); letter-spacing:.1em; opacity:.8; white-space:nowrap; }
.site-brand:hover { color:white; }
.brand-middle { color:white; }
.fancy .mid-letter,.fancy .mid-letter_nc { font:bold 2em Georgia,serif; vertical-align:baseline; }
.fancy .mid-letter { color:white; }
.fancy .last-letter { font:bold 3em Georgia,serif; color:gold; line-height:1; vertical-align:baseline; }
.site-nav-links { display:flex; align-items:center; gap:56px; font-size:30px; font-style:italic; letter-spacing:.025em; color:white; }
.site-nav-links a { transition:color .2s; }
.nav-archives:hover { color:var(--gold); }
.nav-gematria { color:var(--gold); font-size:36px; }
.nav-sparks:hover,.nav-gematria:hover { color:var(--ember); }
.calculator-layout { display:flex; flex:1; padding-top:112px; }
.calculator-sidebar { width:320px; flex-shrink:0; background:rgb(10 10 10 / 90%); border-right:1px solid rgb(255 255 255 / 10%); backdrop-filter:blur(12px); position:sticky; top:112px; height:calc(100vh - 112px); overflow-y:auto; }
.sidebar-content { padding:32px 24px; }
.sidebar-title { color:var(--gold); font:14px var(--display); letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid rgb(251 191 36 / 30%); padding-bottom:8px; margin-bottom:16px; }
.sidebar-link { display:block; padding:10px 12px; border-left:2px solid transparent; color:var(--parchment); font:.85rem/1.5 var(--display); letter-spacing:1px; text-transform:uppercase; transition:color .3s,background .3s,padding .3s; }
.sidebar-link + .sidebar-link { margin-top:4px; }
.sidebar-link:hover { color:var(--gold); background:linear-gradient(90deg,rgb(251 191 36 / 10%),transparent); border-left-color:var(--gold); padding-left:20px; }
.calculator-main { flex:1; min-width:0; padding:48px; }
.calculator-intro { max-width:896px; margin:0 auto 64px; text-align:center; }
.calculator-form > * + * { margin-top:24px; }
.calculator-title { color:var(--gold); font:48px/1.15 var(--display); letter-spacing:.025em; text-shadow:0 3px 3px rgb(0 0 0 / 50%); overflow-wrap:anywhere; }
.calculator-input-wrap { margin-top:32px; }
.calculator-input { width:100%; min-width:0; background:transparent; border:0; border-bottom:2px solid rgb(251 191 36 / 50%); border-radius:0; color:var(--gold); font:48px/1.2 Georgia, "Times New Roman", serif; text-transform:none; font-variant:normal; text-align:center; padding:0 0 8px; transition:border-color .2s; }
.calculator-input::placeholder { color:rgb(255 255 255 / 20%); }
.calculator-input:focus { border-color:var(--ember); outline:none; }
.calculator-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; }
.calculator-button { background:transparent; border:1px solid rgb(255 255 255 / 20%); color:rgb(255 255 255 / 70%); padding:12px 32px; font:14px/1.5 var(--display); letter-spacing:.3em; text-transform:uppercase; transition:color .2s,border-color .2s,background .2s; }
.calculator-button:hover { color:var(--gold); border-color:var(--gold); background:rgb(251 191 36 / 5%); }
.inscribe-button { color:var(--ember); border-color:rgb(234 88 12 / 30%); }
.inscribe-button:hover { color:var(--ember); border-color:var(--ember); background:rgb(234 88 12 / 5%); }
.calculator-notice { padding:8px; margin-bottom:16px; color:var(--gold); text-align:center; border:1px solid rgb(234 88 12 / 50%); background:rgb(234 88 12 / 20%); }
.cipher-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:32px; padding-bottom:80px; }
.cipher-card { min-width:0; background:rgb(20 20 20 / 85%); border:1px solid rgb(255 255 255 / 10%); padding:20px; border-radius:4px; backdrop-filter:blur(4px); transition:border-color .3s; }
.cipher-card:hover { border-color:var(--cipher-color,var(--gold)); }
.cipher-header { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; padding-bottom:8px; border-bottom:1px solid rgb(255 255 255 / 10%); }
.cipher-title { font:14px/1.5 var(--display); letter-spacing:.1em; text-transform:uppercase; }
.cipher-badge { font:12px/1.5 monospace; border:1px solid; padding:0 4px; border-radius:4px; opacity:.7; }
.cipher-value-wrap { text-align:center; padding:8px 0; }
.cipher-value { display:block; font:60px/1 var(--display); text-shadow:0 3px 3px rgb(0 0 0 / 50%); overflow-wrap:anywhere; }
.cipher-breakdown { text-align:center; font:12px/1.5 monospace; letter-spacing:.3em; opacity:.6; margin-bottom:16px; overflow-wrap:anywhere; }
.cipher-list-container { max-height:200px; overflow-y:auto; background:rgb(0 0 0 / 30%); border-radius:4px; margin-top:10px; padding:5px; }
.cipher-matches { list-style:none; margin:0; padding:0; }
.cipher-match { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 8px 4px; border-bottom:1px solid rgb(255 255 255 / 5%); }
.cipher-match + .cipher-match { margin-top:4px; }
.match-word { font:14px/1.5 var(--serif); letter-spacing:.025em; overflow-wrap:anywhere; min-width:0; }
.match-value { font:12px/1.5 monospace; opacity:.4; flex-shrink:0; }
.match-exact { background:rgb(255 255 255 / 10%); }
.match-cross { background:rgb(20 83 45 / 20%); }
.match-default:hover { background:rgb(255 255 255 / 5%); }
.site-footer { position:relative; margin-top:auto; padding:24px; background:rgb(0 0 0 / 80%); text-align:center; }
.site-footer p { color:rgb(255 255 255 / 45%); font:12px/1.5 var(--display); letter-spacing:.1em; text-transform:uppercase; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:#050505; }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:3px; }
@media (max-width:1279px) { .cipher-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .site-nav-links { gap:24px; font-size:24px; } .nav-gematria { font-size:28px; } }
@media (max-width:1050px) { .cipher-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .calculator-main { padding:32px 24px; } .calculator-sidebar { width:260px; } .site-nav-inner { flex-wrap:wrap; justify-content:center; gap:8px 24px; } .site-nav-links { font-size:20px; } .nav-gematria { font-size:24px; } .calculator-layout { padding-top:160px; } .calculator-sidebar { top:160px; height:calc(100vh - 160px); } }
@media (max-width:767px) { .calculator-sidebar { display:none; } .calculator-main { padding:24px; } .calculator-title { font-size:30px; } .calculator-input { font-size:36px; } .site-brand { font-size:14px; } .site-nav-links { gap:20px; font-size:18px; } .nav-gematria { font-size:20px; } .calculator-layout { padding-top:136px; } }
@media (max-width:520px) { .cipher-grid { grid-template-columns:minmax(0,1fr); } .calculator-main { padding:24px 16px; } .calculator-title { font-size:26px; } .site-nav-inner { padding:12px; } .site-nav-links { gap:16px; font-size:16px; } .nav-gematria { font-size:18px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; scroll-behavior:auto !important; } }

/* Number explorer: the same shared theme as the word calculator. */
.number-intro { margin:20px 0 32px; font-size:20px; }
.number-page-link { margin-top:24px; color:var(--gold); }
.number-page-link a:hover { text-decoration:underline; }
.number-navigation { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px; margin:24px 0; }
.number-navigation .calculator-button { font-size:12px; letter-spacing:.1em; padding:10px 16px; }
.number-current { font:40px Georgia,serif; color:var(--gold); }
.number-overview { display:grid; grid-template-columns:minmax(0,3fr) minmax(220px,1fr); gap:24px; margin-bottom:24px; }
.number-panel { min-width:0; padding:24px; background:rgb(20 20 20 / 85%); border:1px solid rgb(255 255 255 / 15%); border-radius:4px; }
.number-panel h2 { font:22px/1.4 var(--display); color:var(--gold); margin:0 0 16px; }
.number-panel h3 { margin:8px 0; font:26px Georgia,serif; }
.number-table-scroll { max-width:100%; overflow-x:auto; margin-top:20px; }
.number-table { width:100%; border-collapse:collapse; font:15px/1.5 Georgia,serif; }
.number-table th,.number-table td { padding:12px; text-align:left; border-bottom:1px solid rgb(255 255 255 / 12%); }
.number-table thead th { background:rgb(251 191 36 / 8%); font-size:13px; color:var(--parchment); }
.number-table tbody th { min-width:200px; max-width:340px; overflow-wrap:anywhere; font-weight:normal; }
.number-table tbody tr:hover { background:rgb(255 255 255 / 4%); }
.number-table .number-hit { color:var(--gold); background:rgb(251 191 36 / 12%); font-weight:bold; }
.number-table .number-symmetry { text-decoration:underline; text-decoration-color:#4ade80; text-decoration-thickness:2px; text-underline-offset:5px; }
.number-legend { font-size:16px; opacity:.8; }
.element-panel { text-align:center; }
.element-symbol { color:var(--gold); font:64px/1.2 Georgia,serif; }
.element-panel details { margin-top:20px; text-align:left; }
.element-panel summary { cursor:pointer; color:var(--gold); }
.element-panel details p { margin-top:12px; }
@media (max-width:1100px) { .number-overview { grid-template-columns:minmax(0,1fr); } }
@media (max-width:520px) { .number-panel { padding:16px; } .number-panel h2 { font-size:18px; } }

/* Bacon cipher comparison, using the shared site theme. */
.bacon-results-title { margin:0 0 24px; color:var(--gold); font:24px/1.5 Georgia,serif; overflow-wrap:anywhere; }
.bacon-results-title span { color:var(--parchment); }
.bacon-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:0 0 24px; }
.bacon-total { display:flex; flex-direction:column; text-align:center; justify-content:space-between; padding:16px 8px; background:rgb(20 20 20 / 85%); border:1px solid rgb(251 191 36 / 30%); border-radius:4px; }
.bacon-total:hover { border-color:var(--gold); }
.bacon-total span { font:14px/1.5 var(--display); }
.bacon-total strong { margin-top:8px; color:var(--gold); font:36px Georgia,serif; }
.bacon-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; }
.bacon-card { scroll-margin-top:170px; }
.bacon-grand-total { color:var(--gold); font:54px/1.2 Georgia,serif; margin-bottom:24px; }
.bacon-word { margin-top:24px; border-top:1px solid rgb(255 255 255 / 10%); padding-top:16px; }
.bacon-word h3 { font-size:20px; overflow-wrap:anywhere; }
.bacon-word h3 span { color:var(--gold); }
.bacon-letters tbody th { min-width:0; font-size:12px; opacity:.6; }
.bacon-letters td { text-align:center; padding:8px; }
.bacon-mappings { margin-top:24px; }
.bacon-mappings summary { color:var(--gold); cursor:pointer; font:18px/1.5 var(--display); }
.bacon-mappings p { margin-top:16px; }
@media (max-width:1100px) { .bacon-grid { grid-template-columns:minmax(0,1fr); } .bacon-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:520px) { .bacon-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Prime and geometric connections below number-search results. */
.connections-panel h2 { font-size:18px; }
.connections-list { list-style:none; margin:0; padding:0; }
.connection-match { padding:14px; border-left:3px solid var(--gold); background:rgb(251 191 36 / 8%); border-radius:3px; }
.connection-match + .connection-match { margin-top:12px; }
.connection-label { display:block; color:var(--gold); font:12px/1.5 var(--display); letter-spacing:.06em; margin-bottom:6px; }
.connection-match strong { display:block; font:18px/1.5 Georgia,serif; }
.connection-index { border-left-color:#60a5fa; background:rgb(96 165 250 / 8%); }
.connection-index .connection-label { color:#93c5fd; }
.connection-formula { display:block; font:14px/1.5 monospace; margin-top:8px; }
.connections-limit { font-size:14px; opacity:.7; margin-top:18px; }

/* Compact reuse of prime/geometric connections beside every calculated total. */
.connections-compact { min-width:0; margin:16px 0; padding-top:12px; border-top:1px solid rgb(255 255 255 / 12%); }
.connections-compact h2 { margin:0 0 10px; color:var(--parchment); font:12px/1.5 var(--display); letter-spacing:.08em; }
.connections-compact .connection-match { padding:8px 10px; }
.connections-compact .connection-match + .connection-match { margin-top:8px; }
.connections-compact .connection-label { font-size:10px; margin-bottom:3px; }
.connections-compact .connection-match strong { font-size:14px; overflow-wrap:anywhere; }
.connections-compact .connection-formula { font-size:12px; overflow-wrap:anywhere; }
.connections-compact > p { font-size:13px; opacity:.7; }
.subtotal-connections { margin-top:10px; }
.subtotal-connections summary { cursor:pointer; color:var(--gold); font-size:14px; }
.number-main > .connections-panel { margin-top:24px; }

/* Element is a compact connection in the number overview panel. */
.number-overview { grid-template-columns:minmax(0,3fr) minmax(270px,1fr); align-items:start; }
.connection-element { border-left-color:#4ade80; background:rgb(74 222 128 / 7%); }
.connection-element .connection-label { color:#86efac; }
.connection-element > span:not(.connection-label) { display:block; font-size:14px; margin-top:4px; }
.connection-element-origin { margin-top:10px; font-size:14px; }
.connection-element-origin summary { cursor:pointer; }
.connection-element-origin p { margin-top:8px; }
.connection-element-status { margin-bottom:12px; font-size:14px; opacity:.7; }
@media (max-width:1100px) { .number-overview { grid-template-columns:minmax(0,1fr); } }

/* Saved-word lists on Bacon result cards share the main calculator's list styles. */
.bacon-matches { margin-top:24px; padding-top:16px; border-top:1px solid rgb(255 255 255 / 12%); }
.bacon-matches h3 { color:var(--parchment); font:16px/1.5 var(--display); margin:0 0 12px; }
.bacon-matches > p,.bacon-match-note { font-size:14px; opacity:.75; margin-top:10px; }
.bacon-matches .match-exact .match-word { color:var(--gold); }
.bacon-matches .cipher-match { padding-top:4px; }
