.system-egyptian {
  --ez-gold: #dfb85f;
  --ez-light: #ffe7a5;
  --ez-teal: #69d4ca;
}

.ez-hero {
  width: min(calc(100% - 32px), 1280px);
  margin: 0 auto;
  padding: clamp(48px, 7vw, 84px) 0 36px;
  text-align: center;
}

.ez-hero .system-title {
  max-width: none;
  margin: 14px auto 0;
  color: var(--text);
  background: none;
  font: 800 clamp(46px, 6.8vw, 84px)/1 var(--font-b);
  letter-spacing: -.05em;
  text-transform: none;
  -webkit-text-fill-color: var(--text);
}

.ez-hero .system-lead { width: min(900px, 100%); margin: 24px auto 0; line-height: 1.75; }
.ez-date { width: fit-content; margin: 23px auto 0; padding: 10px 17px; border: 1px solid rgba(223,184,95,.27); border-radius: 999px; color: #eee4cd; background: rgba(223,184,95,.07); font-size: 14px; font-weight: 750; }
.ez-date::before { display: inline-block; width: 7px; height: 7px; margin-right: 10px; border-radius: 50%; background: var(--ez-light); box-shadow: 0 0 12px var(--ez-light); content: ""; }

.ez-experience { width: min(calc(100% - 32px), 1420px); margin: 0 auto clamp(80px,9vw,120px); display: grid; grid-template-columns: minmax(0,1.48fr) minmax(350px,.76fr); gap: 24px; align-items: start; }
.ez-card,.ez-panel { border: 1px solid rgba(223,184,95,.15); background: linear-gradient(155deg,rgba(25,19,11,.95),rgba(7,7,5,.98)); box-shadow: 0 25px 85px rgba(0,0,0,.46); backdrop-filter: blur(15px); }
.ez-card { min-width: 0; padding: 20px; overflow: hidden; border-radius: 30px; }
.ez-wheel-wrap { position: relative; width: min(100%,840px); margin: auto; aspect-ratio: 1; }
.ez-wheel-wrap::before { position: absolute; inset: 20%; border-radius: 50%; background: radial-gradient(circle,rgba(211,155,57,.16),transparent 68%); filter: blur(28px); content: ""; pointer-events: none; }
#ezWheel { position: relative; width: 100%; height: 100%; display: block; overflow: visible; filter: drop-shadow(0 20px 34px rgba(0,0,0,.4)); }
.ez-disc { fill: rgba(7,7,4,.82); stroke: rgba(223,184,95,.53); stroke-width: 2; }
.ez-ring-line { fill: none; stroke: rgba(255,255,255,.09); stroke-width: 1.2; }
.ez-month-tick { stroke: rgba(245,214,143,.24); stroke-width: 1; }
.ez-month-label { fill: #8c887c; font: 800 8px var(--font-h); letter-spacing: .08em; text-anchor: middle; }

.ez-period { outline: none; cursor: pointer; }
.ez-period-path { fill: rgba(223,184,95,.055); stroke: rgba(255,239,194,.11); stroke-width: 1; transition: fill .25s, filter .25s, stroke .25s; }
.ez-period:hover .ez-period-path,.ez-period:focus-visible .ez-period-path { fill: rgba(105,212,202,.15); stroke: var(--ez-teal); }
.ez-period.related .ez-period-path { fill: rgba(223,184,95,.25); stroke: rgba(255,225,154,.46); filter: drop-shadow(0 0 7px rgba(223,184,95,.2)); }
.ez-period.current .ez-period-path { fill: rgba(105,212,202,.36); stroke: #c4fff6; stroke-width: 2; filter: drop-shadow(0 0 8px rgba(105,212,202,.65)); }
.ez-period-mark { fill: rgba(255,242,204,.43); pointer-events: none; }
.ez-period.related .ez-period-mark { fill: #ffe7a5; filter: drop-shadow(0 0 5px #e9b94f); }

.ez-deity { outline: none; cursor: pointer; }
.ez-deity-sector { fill: rgba(255,255,255,.017); stroke: rgba(255,255,255,.075); stroke-width: 1; transition: fill .25s,stroke .25s,filter .25s; }
.ez-deity:hover .ez-deity-sector,.ez-deity:focus-visible .ez-deity-sector { fill: rgba(105,212,202,.075); stroke: rgba(105,212,202,.65); }
.ez-deity.active .ez-deity-sector { fill: rgba(223,184,95,.17); stroke: rgba(255,225,154,.43); filter: drop-shadow(0 0 13px rgba(223,184,95,.2)); }
.ez-icon { fill: none; stroke: #d9c18c; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; transform-box: fill-box; transform-origin: center; transition: stroke .25s,filter .25s,transform .3s; }
.ez-icon .teal { stroke: #69bdb5; }
.ez-icon .fill { fill: #d9c18c; stroke: none; }
.ez-deity.active .ez-icon { stroke: #fff0be; filter: drop-shadow(0 0 5px #ecc668) drop-shadow(0 0 13px rgba(223,184,95,.68)); transform: scale(1.2); animation: ez-breathe 2.5s ease-in-out .4s infinite; }
.ez-deity.active .ez-icon .teal { stroke: #aafff5; }
.ez-deity.active .ez-icon .fill { fill: #fff0be; }
.ez-deity-name { fill: #c8c4b8; font: 800 8.6px var(--font-h); letter-spacing: .08em; text-anchor: middle; pointer-events: none; }
.ez-deity-ref { fill: #716f67; font: 700 6.2px var(--font-h); letter-spacing: .07em; text-anchor: middle; pointer-events: none; }
.ez-deity.active .ez-deity-name { fill: var(--ez-light); filter: drop-shadow(0 0 5px rgba(255,226,155,.7)); }
.ez-deity.active .ez-deity-ref { fill: #8fe7dd; }

.ez-date-marker { color: var(--ez-light); pointer-events: none; transition: transform .48s cubic-bezier(.2,.8,.2,1); }
.ez-date-marker path,.ez-date-marker circle { fill: currentColor; filter: drop-shadow(0 0 8px #f0c766); }
.ez-date-marker line { stroke: rgba(255,226,160,.43); stroke-width: 1.4; stroke-dasharray: 5 7; }
.ez-center-outer { fill: #060604; stroke: rgba(223,184,95,.48); stroke-width: 2; }
.ez-center-inner { fill: rgba(26,19,9,.94); stroke: rgba(105,212,202,.28); stroke-width: 1.4; }
.ez-sun { fill: url(#ezSunGradient); filter: url(#ezGlow); }
.ez-ray { stroke: rgba(230,190,101,.53); stroke-width: 2; stroke-linecap: round; }
.ez-center-icon { fill: none; stroke: #fff0bd; stroke-width: 3.6; stroke-linecap: round; stroke-linejoin: round; filter: url(#ezGlow); }
.ez-center-icon .teal { stroke: #a2f3e8; }
.ez-center-icon .fill { fill: #fff0bd; stroke: none; }
.ez-center-name { fill: #fff5d9; font: 800 28px var(--font-b); text-anchor: middle; }
.ez-center-ref { fill: #87d9d1; font: 800 8px var(--font-h); letter-spacing: .1em; text-anchor: middle; }
.ez-center-title { fill: #e2c579; font: 800 8px var(--font-h); letter-spacing: .12em; text-anchor: middle; }
.ez-center-pop { animation: ez-center-pop .42s ease; }

.ez-controls { padding: 24px 22px 10px; border-top: 1px solid rgba(255,255,255,.07); }
.ez-date-box { padding: 20px; border: 1px solid rgba(223,184,95,.14); border-radius: 20px; background: rgba(13,11,6,.66); }
.ez-control-kicker { color: var(--ez-teal); font: 800 9px var(--font-h); letter-spacing: .15em; text-transform: uppercase; }
.ez-date-box h2 { margin-top: 6px; color: #f2eee4; font: 800 20px var(--font-b); }
.ez-date-box>div>p:last-child { margin-top: 7px; color: #999589; font-size: 13px; line-height: 1.55; }
.ez-date-row { margin-top: 18px; display: grid; grid-template-columns: 1fr auto auto; gap: 9px; }
.ez-date-row input { min-width: 0; padding: 11px 13px; border: 1px solid rgba(255,255,255,.11); border-radius: 12px; color: #eee8dc; color-scheme: dark; background: #090805; font-weight: 700; }
.ez-button { min-height: 44px; padding: 10px 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; color: #eae7df; background: #18150f; cursor: pointer; font-weight: 750; }
.ez-button:hover,.ez-button:focus-visible { border-color: rgba(223,184,95,.52); background: #251d10; }
.ez-button.primary { border-color: transparent; color: #291b07; background: linear-gradient(135deg,#d9a840,#ffe1a0); box-shadow: 0 6px 22px rgba(212,159,52,.2); }
.ez-button.is-playing { border-color: rgba(105,212,202,.55); color: #c6fff8; background: rgba(105,212,202,.1); box-shadow: 0 0 16px rgba(105,212,202,.14); }
.ez-cycle-head { margin: 22px 0 13px; display: flex; justify-content: space-between; gap: 15px; color: #eeeae0; }
.ez-cycle-head span { color: #e9c66e; font-weight: 800; }
.ez-scrub { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; }
.ez-scrub input { width: 100%; accent-color: #ddb455; }
.ez-timeline { position: relative; height: 66px; margin-top: 18px; display: grid; grid-template-columns: repeat(12,1fr); overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; background: rgba(0,0,0,.22); }
.ez-timeline-month { z-index: 1; padding: 37px 4px 0; border-left: 1px solid rgba(255,255,255,.055); color: #77736a; font: 700 8px var(--font-h); text-align: center; }
.ez-timeline-month:first-of-type { border-left: 0; }
#ezTimelineSegments { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.ez-timeline-segment { position: absolute; top: 10px; height: 14px; border-radius: 999px; background: linear-gradient(90deg,rgba(223,184,95,.38),rgba(255,223,144,.82)); box-shadow: 0 0 9px rgba(223,184,95,.23); }
.ez-timeline-segment.current { background: linear-gradient(90deg,#65bdb4,#bafff5); box-shadow: 0 0 11px rgba(105,212,202,.5); }
.ez-timeline-marker { position: absolute; z-index: 2; top: 0; bottom: 0; width: 2px; background: #fff0b4; box-shadow: 0 0 8px #e9bc54; transition: left .35s; }

.ez-panel { position: sticky; top: 88px; padding: 28px; border-radius: 30px; }
.ez-panel-kicker { color: var(--ez-light); font: 800 11px var(--font-h); letter-spacing: .14em; text-transform: uppercase; }
.ez-panel-heading { margin-top: 18px; display: flex; align-items: center; gap: 15px; }
.ez-panel-icon { width: 68px; height: 68px; flex: 0 0 68px; display: grid; place-items: center; border: 1px solid rgba(223,184,95,.26); border-radius: 50%; background: rgba(223,184,95,.06); }
.ez-panel-icon svg { width: 47px; height: 47px; fill: none; stroke: #f8dfa1; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(223,184,95,.48)); }
.ez-panel-icon svg .teal { stroke: #7bdcd2; }
.ez-panel-icon svg .fill { fill: #f8dfa1; stroke: none; }
.ez-panel h2 { color: #fff; font: 800 clamp(31px,3vw,43px)/1 var(--font-b); }
.ez-panel-heading p { margin-top: 8px; color: #82d8d0; font-weight: 800; }
.ez-archetype { margin-top: 20px; color: #efd38d; font: 700 17px var(--font-b); }
.ez-hiero-band { margin-top: 17px; padding: 13px 15px; border: 1px solid rgba(223,184,95,.15); border-radius: 14px; background: linear-gradient(90deg,rgba(223,184,95,.055),rgba(105,212,202,.035)); }
.ez-hiero-band>span { display: block; color: #8e897c; font: 800 8px var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
#ezHieroglyphs { min-height: 43px; margin-top: 9px; padding: 5px 10px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(223,184,95,.25); border-radius: 999px; background: rgba(0,0,0,.16); }
#ezHieroglyphs svg { width: 27px; height: 34px; overflow: visible; color: #dec58e; fill: none; stroke: #dec58e; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 4px rgba(223,184,95,.18)); }
#ezHieroglyphs svg:nth-child(even) { color: #7fd3ca; stroke: #7fd3ca; }
.ez-center-hieroglyph { color: #d9c180; fill: none; stroke: #d9c180; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; opacity: .78; }
.ez-center-hieroglyph:nth-child(even) { color: #75cfc6; stroke: #75cfc6; }
.ez-facts { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.ez-facts>div { min-width: 0; padding: 14px; border: 1px solid rgba(255,255,255,.07); border-radius: 14px; background: rgba(255,255,255,.025); }
.ez-facts span { display: block; color: #8f8b80; font: 700 8px var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.ez-facts strong { display: block; margin-top: 7px; color: #eee9dc; font-size: 12px; line-height: 1.4; }
.ez-periods { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 7px; }
.ez-period-chip { padding: 7px 9px; border: 1px solid rgba(223,184,95,.14); border-radius: 999px; color: #d5c8a8; background: rgba(223,184,95,.06); font-size: 11px; font-weight: 700; }
.ez-period-chip.current { border-color: rgba(105,212,202,.47); color: #bcfff7; background: rgba(105,212,202,.1); }
.ez-description { margin-top: 21px; color: #b2aea4; font-size: 14px; line-height: 1.75; }
.ez-traits { margin-top: 20px; display: grid; gap: 12px; }
.ez-traits section { padding: 15px; border: 1px solid rgba(105,212,202,.11); border-radius: 14px; background: rgba(105,212,202,.04); }
.ez-traits section.challenges { border-color: rgba(216,143,78,.13); background: rgba(216,143,78,.045); }
.ez-traits h3 { color: #91e5dc; font: 800 9px var(--font-h); letter-spacing: .12em; text-transform: uppercase; }
.ez-traits .challenges h3 { color: #e4ad77; }
.ez-traits ul { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.ez-traits li { padding: 6px 8px; border-radius: 8px; color: #cbc6bb; background: rgba(255,255,255,.05); font-size: 11px; }
.ez-context { margin-top: 22px; padding: 17px; border-left: 3px solid var(--ez-gold); border-radius: 0 12px 12px 0; color: #b2aea4; background: rgba(223,184,95,.07); font-size: 12px; line-height: 1.7; }
.ez-context strong { color: #f0d17f; }
.ez-source { margin-top: 17px; color: #79766e; font-size: 10px; line-height: 1.6; }

.ez-method { max-width: 1080px; }
.ez-method-grid { margin-top: 30px; display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; counter-reset: ez-step; }
.ez-method-grid p { padding: 22px; border-top: 1px solid rgba(223,184,95,.28); counter-increment: ez-step; }
.ez-method-grid p::before { display: block; margin-bottom: 13px; color: var(--ez-teal); font: 800 11px var(--font-h); content: "0" counter(ez-step); }
.ez-method-grid strong,.ez-method-grid span { display: block; }
.ez-method-grid strong { color: #f0ece2; font: 700 14px var(--font-h); }
.ez-method-grid span { margin-top: 8px; color: var(--text-muted); font-size: 13px; line-height: 1.65; }

@keyframes ez-breathe { 0%,100% { transform: scale(1.2) translateY(0); } 50% { transform: scale(1.27) translateY(-2px); } }
@keyframes ez-center-pop { 0% { opacity: .3; transform: scale(.84); } 70% { transform: scale(1.05); } 100% { opacity: 1; transform: scale(1); } }

@media (max-width: 980px) {
  .ez-experience { grid-template-columns: 1fr; }
  .ez-panel { position: static; }
  .ez-method-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .ez-hero { width: min(calc(100% - 48px),1280px); overflow: hidden; }
  .ez-hero .system-title { font-size: clamp(35px,10vw,44px); line-height: 1.04; }
  .ez-hero .system-lead { font-size: 14px; }
  .ez-date { font-size: 12px; }
  .ez-card { padding: 7px; border-radius: 20px; }
  .ez-month-label { display: none; }
  .ez-deity-name { font-size: 7.3px; letter-spacing: .02em; }
  .ez-deity-ref { font-size: 5.5px; }
  .ez-controls { padding: 18px 12px 10px; }
  .ez-date-row { grid-template-columns: 1fr 1fr; }
  .ez-date-row input { grid-column: 1/-1; }
  .ez-scrub { grid-template-columns: auto 1fr auto; }
  .ez-scrub #ezPlay { grid-column: 1/-1; }
  .ez-cycle-head { font-size: 14px; }
  .ez-cycle-head span { font-size: 12px; text-align: right; }
  .ez-panel { padding: 22px; border-radius: 20px; }
  .ez-method-grid { grid-template-columns: 1fr; }
  .ez-center-name { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .ez-period-path,.ez-deity-sector,.ez-icon,.ez-date-marker,.ez-timeline-marker { transition: none; }
  .ez-deity.active .ez-icon { animation: none; }
}

@media (forced-colors: active) { .ez-card,.ez-panel { border: 1px solid CanvasText; background: Canvas; } }
