@import url("/assets/v19.css");

/* V20: verbindlicher Einspieler -> identische Base -> Ausbildung. */
.opening{position:absolute;z-index:40;inset:0;display:grid;place-items:center;overflow:hidden;background:#020306;transition:opacity .75s ease,visibility .75s ease}
.opening.is-complete{opacity:0;visibility:hidden;pointer-events:none}
.opening video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#020306}
.opening__cover{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(circle at 50% 44%,rgba(26,71,78,.34),rgba(2,5,9,.97) 57%);transition:opacity .55s ease,visibility .55s ease}
.opening__cover.is-playing{opacity:0;visibility:hidden;pointer-events:none}
.opening__mark{display:grid;width:66px;height:66px;place-items:center;border:1px solid rgba(156,238,235,.52);border-radius:50%;color:#bdf7f1;font:700 30px/1 system-ui;box-shadow:0 0 36px rgba(72,213,209,.18)}
.opening__cover>small{color:#b8e5e2;font:700 11px/1 system-ui;letter-spacing:.34em}
.opening__cover button{margin-top:16px;min-width:190px;padding:13px 20px;border:1px solid rgba(155,235,229,.5);border-radius:999px;background:linear-gradient(135deg,#b9f2de,#79ced3);color:#07151a;font:800 12px/1 system-ui;letter-spacing:.08em;box-shadow:0 10px 35px rgba(46,181,181,.2)}

.game[data-stage="locked"] .topbar,.game[data-stage="locked"] .objective,.game[data-stage="locked"] .world-ui,.game[data-stage="locked"] .vela,.game[data-stage="locked"] .choice,.game[data-stage="locked"] .restart,
.game[data-stage="training"] .topbar,.game[data-stage="training"] .objective,.game[data-stage="training"] .world-ui,.game[data-stage="training"] .vela,.game[data-stage="training"] .choice,.game[data-stage="training"] .restart{opacity:0;visibility:hidden;pointer-events:none}
.game[data-stage="locked"] .world--sleeping,.game[data-stage="training"] .world--sleeping{opacity:1;filter:none;transform:none}
.game[data-stage="locked"] .world--awake,.game[data-stage="training"] .world--awake{opacity:0}
.game[data-stage="training"] .shade{background:linear-gradient(90deg,rgba(2,4,7,.15),transparent 58%,rgba(1,3,6,.15))}
.academy-gate{position:absolute;z-index:20;right:max(20px,4vw);top:max(18px,5vh);display:grid;grid-template-columns:1fr auto;min-width:240px;padding:12px 15px;border:1px solid rgba(134,225,222,.58);border-radius:12px;background:linear-gradient(135deg,rgba(4,22,27,.96),rgba(8,36,42,.93));color:#efffff;text-align:left;box-shadow:0 0 0 1px rgba(91,210,205,.11),0 12px 36px rgba(0,0,0,.42)}
.academy-gate[hidden]{display:none}
.academy-gate small,.academy-gate strong{grid-column:1}
.academy-gate small{color:#86d7d2;font-size:8px;letter-spacing:.16em}
.academy-gate strong{margin-top:3px;font-size:15px}
.academy-gate span{grid-column:2;grid-row:1/3;align-self:center;color:#8ee5df;font-size:28px}
.academy-gate:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(102,225,216,.55);border-radius:16px;animation:academy-guide 2.4s ease-out infinite}
@keyframes academy-guide{0%{transform:scale(.98);opacity:.7}75%,100%{transform:scale(1.06);opacity:0}}

/* Die Mechanik bleibt auf der Base; keine zweite Weltansicht. */
.world{object-fit:cover;object-position:center}
.game:not([data-stage="locked"]):not([data-stage="training"]) .world--sleeping{opacity:1;filter:brightness(.72) saturate(.72);transform:scale(1.015)}
.game:not([data-stage="locked"]):not([data-stage="training"]) .world--awake{opacity:0}
.game[data-stage="awake"] .world--sleeping,.game[data-stage="collect"] .world--sleeping,.game[data-stage="kiro"] .world--sleeping,.game[data-stage="plot"] .world--sleeping,.game[data-stage="built"] .world--sleeping,.game[data-stage="complete"] .world--sleeping,.game[data-stage="decision"] .world--sleeping,.game[data-stage="followup"] .world--sleeping,.game[data-stage="path-complete"] .world--sleeping{opacity:1;filter:brightness(.86) saturate(.84);transform:scale(1.01)}
.game[data-stage="kiro"] .resident--kiro{filter:none;animation:kiro-guide 1.45s ease-in-out infinite}
.game[data-stage="kiro"] .resident--kiro:after{content:"TIPPE AUF KIRO";position:absolute;left:50%;top:-18px;transform:translateX(-50%);padding:5px 8px;border:1px solid rgba(154,237,231,.45);border-radius:999px;background:rgba(4,20,25,.9);color:#d8fffb;font-size:7px;letter-spacing:.12em;white-space:nowrap}
@keyframes kiro-guide{0%,100%{transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 0 8px rgba(91,226,218,.25))}50%{transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 0 18px rgba(91,226,218,.65))}}

@media (max-height:520px){
  .opening__mark{width:52px;height:52px;font-size:24px}
  .opening__cover button{margin-top:8px;padding:11px 17px}
  .academy-gate{right:18px;top:14px;min-width:210px;padding:9px 12px}
}

@media (prefers-reduced-motion:reduce){.academy-gate:after,.game[data-stage="kiro"] .resident--kiro{animation:none}}

/* V21: ein Fokus pro Schritt, Kiro handelt sichtbar, danach bewusste Fortsetzung. */
.game.is-awakening .flash{animation:none;opacity:0}
.game.is-awakening .echo-seed__ring{animation:seed-ack .85s ease-out}
@keyframes seed-ack{0%{transform:scale(.8);opacity:.45}55%{transform:scale(1.45);opacity:1}100%{transform:scale(1.75);opacity:0}}

.mote:after{animation:none;opacity:.14}
.mote.is-active:after{opacity:1;animation:focus-pulse 2.4s ease-out infinite}
.mote:not(.is-active){pointer-events:none;filter:saturate(.7);opacity:.64}
.mote.is-active{pointer-events:auto;filter:none;opacity:1}

.game[data-stage="sleeping"] .world-ui button,
.game[data-stage="collect"] .world-ui button,
.game[data-stage="kiro"] .world-ui button,
.game[data-stage="plot"] .world-ui button,
.game[data-stage="built"] .world-ui button,
.game[data-stage="complete"] .world-ui button{pointer-events:none}
.game[data-stage="sleeping"] .world-ui .echo-seed,
.game[data-stage="collect"] .world-ui .mote.is-active,
.game[data-stage="kiro"] .world-ui .resident--kiro,
.game[data-stage="plot"] .world-ui .hotspot--plot{pointer-events:auto}

.game[data-stage="plot"] .resident--kiro,
.game[data-stage="built"] .resident--kiro,
.game[data-stage="complete"] .resident--kiro{display:block;left:50%;top:65%;transform:translate(-50%,-50%) scale(.78);opacity:.92;filter:drop-shadow(0 8px 16px rgba(0,0,0,.7))}
.game[data-stage="plot"] .hotspot--plot:after{content:"";position:absolute;inset:5px;border:1px solid rgba(117,236,242,.5);border-radius:50%;animation:plot-guide 2.5s ease-out infinite}
@keyframes plot-guide{0%{transform:scale(.7);opacity:.8}80%,100%{transform:scale(1.16);opacity:0}}

.game[data-stage="complete"] .objective{opacity:1;transform:none;pointer-events:none}
.decision-gate{position:absolute;z-index:20;right:max(20px,4vw);top:max(18px,5vh);display:grid;grid-template-columns:1fr auto;min-width:240px;padding:12px 15px;border:1px solid rgba(134,225,222,.58);border-radius:12px;background:linear-gradient(135deg,rgba(4,22,27,.96),rgba(8,36,42,.93));color:#efffff;text-align:left;box-shadow:0 0 0 1px rgba(91,210,205,.11),0 12px 36px rgba(0,0,0,.42)}
.decision-gate[hidden]{display:none}
.decision-gate small,.decision-gate strong{grid-column:1}
.decision-gate small{color:#86d7d2;font-size:8px;letter-spacing:.12em}
.decision-gate strong{margin-top:3px;font-size:15px}
.decision-gate span{grid-column:2;grid-row:1/3;align-self:center;color:#8ee5df;font-size:28px}
.decision-gate:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(102,225,216,.5);border-radius:16px;animation:academy-guide 2.6s ease-out infinite}

@media (max-height:520px){.decision-gate{right:18px;top:14px;min-width:210px;padding:9px 12px}}
@media (prefers-reduced-motion:reduce){.mote.is-active:after,.game[data-stage="plot"] .hotspot--plot:after,.decision-gate:after{animation:none}}

/* V22: Quelle -> Weg -> Wirkung, ohne doppelte oder scheinbar magische Energie. */
.game{min-height:0}
.topbar{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}
.objective{left:max(20px,env(safe-area-inset-left))}
.vela{left:max(22px,env(safe-area-inset-left))}
.restart{right:max(18px,env(safe-area-inset-right))}
.academy-gate,.decision-gate{right:max(20px,env(safe-area-inset-right))}
.choice{bottom:max(12px,env(safe-area-inset-bottom))}
.game:not([data-stage="locked"]):not([data-stage="training"]):not([data-stage="sleeping"]) .world--sleeping{opacity:1;filter:brightness(.86) saturate(.84);transform:scale(1.01)}
.building--nest,.portal{cursor:default}
.energy-cycle{position:absolute;z-index:9;left:50%;top:max(62px,11vh);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px;width:min(540px,64vw);padding:8px 11px;transform:translateX(-50%);border:1px solid rgba(112,211,224,.22);border-radius:12px;background:linear-gradient(90deg,rgba(3,12,20,.84),rgba(7,23,29,.76),rgba(3,12,20,.84));box-shadow:0 8px 26px rgba(0,0,0,.3);backdrop-filter:blur(9px);pointer-events:none}
.energy-cycle[hidden]{display:none}
.energy-cycle span{min-width:0;text-align:center}
.energy-cycle small,.energy-cycle strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.energy-cycle small{margin-bottom:2px;color:#78cbd5;font-size:7px;letter-spacing:.14em}
.energy-cycle strong{color:#e6fafb;font-size:10px;letter-spacing:.025em}
.energy-cycle>i{color:#75d6df;font-size:17px;font-style:normal;opacity:.62}

.energy-link{display:none;position:absolute;z-index:1;height:2px;transform-origin:left center;pointer-events:none;opacity:.62;background:linear-gradient(90deg,transparent 0,rgba(102,231,235,.2) 12%,rgba(117,239,229,.88) 48%,rgba(102,231,235,.2) 88%,transparent 100%);background-size:220% 100%}
.energy-link:after{content:"";position:absolute;inset:-4px 0;background:inherit;filter:blur(4px);opacity:.48}
.energy-link--nature{left:35%;top:57%;width:38vw;transform:rotate(6deg)}
.energy-link--protection{left:73%;top:61%;width:28vh;transform:rotate(-65deg)}
.energy-link--supply{left:73%;top:61%;width:72px;height:72px;transform:translate(-50%,-50%);border:1px solid rgba(98,225,238,.55);border-radius:50%;background:transparent;box-shadow:0 0 18px rgba(91,219,233,.22)}
.game[data-stage="followup"][data-path="nature"] .energy-link--nature,
.game[data-stage="followup"][data-path="protection"] .energy-link--protection,
.game[data-stage="followup"][data-path="supply"] .energy-link--supply{display:block;animation:route-preview 1.35s ease-out both}
.game[data-stage="path-complete"][data-path="nature"] .energy-link--nature,
.game[data-stage="path-complete"][data-path="protection"] .energy-link--protection,
.game[data-stage="path-complete"][data-path="supply"] .energy-link--supply{display:block;opacity:.34}
.game[data-stage="path-complete"][data-path="nature"] .energy-link--nature{background-position:100% 0}
@keyframes route-preview{0%{opacity:0;background-position:100% 0}42%{opacity:.74}100%{opacity:.48;background-position:0 0}}

/* Nur das gewählte Weltziel reagiert; globale Partikel bleiben ruhig. */
.game[data-path] .world-response,.game[data-path] .world-response i{opacity:0;animation:none}
.game[data-path="nature"] .aurora{opacity:.2;background:radial-gradient(ellipse at center,rgba(74,231,255,.52),transparent 62%)}
.game[data-path="nature"] .world--awake,.game[data-stage="path-complete"][data-path="nature"] .world--awake{filter:saturate(.94) brightness(.8)}
.game[data-stage="followup"][data-path="protection"] .portal{opacity:.42;filter:saturate(.58)}
.game[data-stage="followup"][data-path="protection"] .portal span{border-color:#7665ad;box-shadow:inset 0 0 22px #352c53}
.game[data-stage="followup"][data-path="protection"] .portal span:after{content:none}
.game[data-path="supply"] .storage-shape i{animation:none}
.game[data-stage="path-complete"][data-path="nature"] .followup--nature{display:block;pointer-events:none;opacity:.72}
.game[data-stage="path-complete"][data-path="nature"] .followup--nature:before{animation:none;opacity:.2}
.game[data-stage="path-complete"][data-path="nature"] .followup--nature small{font-size:0}
.game[data-stage="path-complete"][data-path="nature"] .followup--nature small:after{content:"AKTIV";font-size:6px}

.game[data-stage="followup"] .world-ui button,
.game[data-stage="path-complete"] .world-ui button{pointer-events:none}
.game[data-stage="followup"][data-path="nature"] .world-ui .followup--nature,
.game[data-stage="followup"][data-path="supply"] .world-ui .followup--supply,
.game[data-stage="followup"][data-path="protection"] .world-ui .followup--protection{pointer-events:auto}

.opening__controls{position:absolute;z-index:3;left:50%;bottom:max(14px,env(safe-area-inset-bottom));display:flex;gap:8px;transform:translateX(-50%);padding:6px;border:1px solid rgba(155,235,229,.24);border-radius:999px;background:rgba(2,8,13,.78);backdrop-filter:blur(10px)}
.opening__controls[hidden]{display:none}
.opening__controls button{min-width:76px;padding:10px 12px;border:1px solid rgba(155,235,229,.34);border-radius:999px;background:rgba(13,35,41,.9);color:#dffefa;font-size:10px;font-weight:750;cursor:pointer}
.opening__controls button:last-child{border-color:rgba(235,210,143,.32);color:#f3dfaa}

@media (max-height:520px){
  .energy-cycle{top:54px;width:min(510px,62vw);padding:6px 9px}
  .energy-cycle small{font-size:7px}.energy-cycle strong{font-size:9px}
  .choice .path-options span{font-size:8px;letter-spacing:.03em}
}
@media (prefers-reduced-motion:reduce){.energy-link{animation:none!important}.opening,.opening__cover{transition:none}}
