.ga-fig{width:100%;margin:0;position:relative}.ga-stage{aspect-ratio:16/10;cursor:grab;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:12px;width:100%;max-height:560px;position:relative}.ga-stage.is-grabbing{cursor:grabbing}.ga-stage:focus-visible{outline:2px solid var(--case-accent,#d4a24e);outline-offset:3px}.ga-svg{width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.ga-plan{font-family:var(--font-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);pointer-events:none;font-size:10px;position:absolute;top:10px;left:12px}.ga-square{transition:opacity var(--dur-quick)var(--ease-settle)}.ga-rect{fill:var(--surface);stroke:color-mix(in srgb,var(--heading)62%,transparent);stroke-width:1.6px}.ga-num{font-family:var(--font-label);fill:color-mix(in srgb,var(--heading)78%,transparent);text-anchor:middle;dominant-baseline:central;letter-spacing:.04em}.ga-arc{fill:none;stroke:var(--case-accent,#d4a24e);stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--case-accent,#d4a24e)55%,transparent))}.ga-brackets{opacity:0;transition:opacity var(--dur-slow)var(--ease-settle)}.ga-fig.is-phi .ga-brackets{opacity:1}.ga-bracket{fill:none;stroke:var(--case-accent,#d4a24e);stroke-width:1.3px}.ga-bracket-label{font-family:var(--font-label);letter-spacing:.1em;fill:var(--case-accent,#d4a24e);text-anchor:middle;font-size:2.4px}.ga-under{flex-direction:column;gap:10px;margin-top:10px;padding-left:8px;padding-right:8px;display:flex}.ga-meta{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.ga-readout{font-family:var(--font-label);letter-spacing:.06em;color:var(--prose);font-variant-numeric:tabular-nums;margin:0;font-size:.84rem}.ga-readout-stack{display:inline-grid}.ga-readout-live,.ga-readout-phi{white-space:nowrap;transition:opacity var(--dur-base)var(--ease-settle);grid-area:1/1}.ga-readout-phi{opacity:0;color:var(--case-accent,#d4a24e)}.ga-fig.is-phi .ga-readout-live{opacity:0}.ga-fig.is-phi .ga-readout-phi{opacity:1}.ga-gauge{align-items:center;gap:8px;display:inline-flex}.ga-gauge-track{background:color-mix(in srgb,var(--surface-border)80%,transparent);border-radius:3px;width:148px;height:6px;position:relative;overflow:visible}.ga-gauge-fill{background:color-mix(in srgb,var(--case-accent,#d4a24e)75%,var(--heading)10%);transition:width var(--dur-slow)var(--ease-settle);border-radius:3px;position:absolute;top:0;bottom:0;left:0}.ga-gauge-tick{background:var(--case-accent,#d4a24e);width:2px;box-shadow:0 0 6px color-mix(in srgb,var(--case-accent,#d4a24e)60%,transparent);margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.ga-gauge-phi{font-family:var(--font-label);color:var(--case-accent,#d4a24e);font-size:.72rem}.ga-fig.is-phi .ga-gauge-fill{box-shadow:0 0 8px color-mix(in srgb,var(--case-accent,#d4a24e)55%,transparent)}.ga-hint{font-family:var(--font-heading);color:var(--muted);transition:opacity .7s var(--ease-settle);margin-left:auto;font-size:.9rem;font-style:italic}.ga-hint.is-done{opacity:0}.ga-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.ga-steps{gap:8px;display:inline-flex}.ga-step-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--surface-border);width:34px;height:34px;font-family:var(--font-label);color:var(--prose);cursor:pointer;transition:border-color var(--dur-quick)var(--ease-settle),color var(--dur-quick)var(--ease-settle),box-shadow var(--dur-quick)var(--ease-settle),opacity var(--dur-quick)var(--ease-settle);background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:.95rem;line-height:1;display:inline-flex}.ga-step-btn:hover:not(:disabled){border-color:var(--case-accent,#d4a24e);color:var(--heading-light)}.ga-step-btn:focus-visible{outline:2px solid var(--case-accent,#d4a24e);outline-offset:3px}.ga-step-btn:disabled{opacity:.35;cursor:default}.ga-play{color:var(--case-accent,#d4a24e);border-color:color-mix(in srgb,var(--case-accent,#d4a24e)55%,transparent)}.ga-play:hover:not(:disabled){color:var(--case-accent,#d4a24e);box-shadow:0 0 12px color-mix(in srgb,var(--case-accent,#d4a24e)40%,transparent)}.ga-status{font-family:var(--font-label);letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.76rem}.ga-definition{font-family:var(--font-heading);color:var(--case-accent,#d4a24e);opacity:0;transition:opacity var(--dur-slow)var(--ease-settle),transform var(--dur-slow)var(--ease-settle);margin:0;font-size:.95rem;font-style:italic;transform:translateY(4px)}.ga-fig.is-phi .ga-definition{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.ga-definition{transition:opacity var(--dur-base)var(--ease-settle);transform:none}.ga-gauge-fill{transition:none}.ga-stage{cursor:default}}@media (max-width:640px){.ga-stage{aspect-ratio:4/3}.ga-meta{gap:12px}.ga-readout{font-size:.76rem}.ga-hint{font-size:.82rem}.ga-gauge-track{width:110px}.ga-step-btn{width:42px;height:42px}}
.g3-stage{aspect-ratio:16/9;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;animation:g3-arrive var(--dur-base)var(--ease-settle)both;border-radius:12px;position:relative}@keyframes g3-arrive{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.g3-stage{animation:none}}.g3-stage:focus-visible{outline:2px solid var(--case-accent,#d4a24e);outline-offset:3px}.g3-canvas{touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.g3-plan{font-family:var(--font-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);pointer-events:none;font-size:10px;position:absolute;top:14px;left:16px}.g3-caption{font-family:var(--font-label);letter-spacing:.08em;color:#d4a24e;text-shadow:0 1px 8px rgba(10,8,4,.55);pointer-events:none;font-size:11px;position:absolute;bottom:12px;left:16px}.g3-labels{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.g3-label{opacity:0;will-change:transform;text-align:center;flex-direction:column;align-items:center;gap:1px;display:flex;position:absolute;top:0;left:0}.g3-label-ref{font-family:var(--font-heading);color:#d4a24e;white-space:nowrap;text-shadow:0 1px 6px rgba(10,8,4,.55),0 0 12px rgba(212,162,78,.4);font-size:1rem;font-style:italic}.g3-label-frag{font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:#cfc3a6;white-space:nowrap;text-shadow:0 1px 6px rgba(10,8,4,.55);font-size:.64rem}
