.ori-shell{--gs-pad-x:1.25rem;--gs-answer-min-h:3.5rem;min-height:100dvh;display:flex;flex-direction:column;max-width:var(--max-width);margin:0 auto;padding:0 1.25rem 1.5rem}.ori-error,.ori-loading{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;text-align:center;padding:2rem 0;color:var(--color-muted)}.ori-error p{margin:0;color:var(--color-ink);max-width:22rem}.ori-stage{position:relative;display:flex;flex-direction:column;gap:.55rem;flex:1 1;min-height:4.5rem;padding:.25rem 0 .5rem}.ori-stage .gs-stepper{margin:.15rem 0 .25rem}.ori-stage .gs-stage{gap:.35rem}.ori-stage--distance{gap:.4rem;overflow:hidden}.ori-places{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;flex-shrink:0}.ori-places--hud .ori-place{padding:.4rem .55rem;gap:.05rem}.ori-places--finished{margin:.1rem 0;width:100%;max-width:22rem}.ori-place{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem;border-radius:var(--radius-button);border:1px solid var(--color-border);background:var(--color-surface);text-align:left;min-width:0}.ori-place-head{display:flex;align-items:center;gap:.35rem;min-width:0}.ori-place-head .flag-stage{flex:0 0 auto}.ori-place-role{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.ori-place-capital{font-size:.95rem;font-weight:700;color:var(--color-ink);line-height:1.2;overflow-wrap:anywhere}.ori-stage--distance .ori-place-capital{font-size:.88rem}.ori-place-country{font-size:.75rem;color:var(--color-muted);line-height:1.25;overflow-wrap:anywhere}.ori-place--origin{border-color:color-mix(in srgb,var(--color-accent) 32%,var(--color-border));background:var(--color-accent-light)}.ori-place--origin .ori-place-role{color:var(--color-accent)}.ori-place--target{border-color:var(--color-border);background:var(--color-surface-sunken)}.ori-place--target .ori-place-role{color:var(--color-muted)}.ori-place--target .ori-place-capital{font-family:var(--font-display);letter-spacing:-.01em}.ori-compass-wrap{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex:1 1 auto;justify-content:center;min-height:0}.ori-compass-readout{margin:0;font-family:var(--font-mono);font-size:1.35rem;color:var(--color-error);font-weight:700}.ori-compass-cardinal{color:var(--color-ink)}.ori-compass-row{display:flex;align-items:center;gap:.45rem;width:100%;justify-content:center}.ori-nudge{flex:0 0 auto;width:3.25rem;height:3.25rem;border-radius:var(--radius-button);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink);font-size:1.35rem;cursor:pointer}.ori-nudge:disabled{opacity:.45;cursor:not-allowed}.ori-dial{position:relative;width:min(78vw,19rem);aspect-ratio:1;border-radius:50%;border:2px solid var(--color-border);background:radial-gradient(circle at center,var(--color-surface) 58%,transparent 59%),color-mix(in srgb,var(--color-ink) 4%,var(--color-surface));touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.ori-dial:active{cursor:grabbing}.ori-dial--locked{cursor:default;opacity:.95}.ori-dial-ring{position:absolute;inset:0;border-radius:50%}.ori-cardinal{position:absolute;font-size:.75rem;font-weight:700;color:var(--color-muted)}.ori-cardinal--n{top:.45rem;left:50%;transform:translateX(-50%);color:var(--color-error)}.ori-cardinal--n:before{content:"";display:block;width:.4rem;height:.4rem;margin:0 auto .15rem;border-radius:50%;background:var(--color-error)}.ori-cardinal--e{right:.55rem;top:50%;transform:translateY(-50%)}.ori-cardinal--s{bottom:.45rem;left:50%;transform:translateX(-50%)}.ori-cardinal--w{left:.55rem;top:50%;transform:translateY(-50%)}.ori-tick{position:absolute;left:50%;top:.2rem;width:1px;height:.45rem;margin-left:-.5px;background:var(--color-border);transform-origin:50% calc(min(39vw, 9.5rem) - .2rem)}.ori-tick--major{height:.65rem;width:2px;margin-left:-1px;background:var(--color-muted)}.ori-arrow{position:absolute;inset:0;pointer-events:none}.ori-arrow-shaft{position:absolute;left:calc(50% - 1.5px);top:14%;width:3px;height:36%;background:var(--color-error);border-radius:2px;transform-origin:center bottom}.ori-arrow-head{position:absolute;left:calc(50% - 6px);top:10%;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid var(--color-error)}.ori-arrow--true .ori-arrow-shaft{background:var(--color-success)}.ori-arrow--true .ori-arrow-head{border-bottom-color:var(--color-success);opacity:.9}.ori-target-chip{position:absolute;left:50%;top:4%;transform:translateX(-50%);white-space:nowrap;max-width:7rem;overflow:hidden;text-overflow:ellipsis;padding:.15rem .45rem;border-radius:var(--radius-badge);background:var(--color-surface);color:var(--color-ink);font-size:.65rem;font-weight:700;border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.ori-origin-dot{position:absolute;left:50%;top:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;border-radius:50%;background:var(--color-reward);border:2px solid var(--color-surface);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-reward) 50%,transparent);z-index:2}.ori-origin-chip{position:absolute;left:50%;top:120%;transform:translateX(-50%);white-space:nowrap;max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;padding:.15rem .45rem;border-radius:var(--radius-badge);background:var(--color-accent-light);color:var(--color-primary);font-size:.65rem;font-weight:700;border:1px solid color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}.ori-compass-hint{margin:0;font-size:.72rem;color:var(--color-muted);text-align:center}.ori-closeness{display:flex;flex-direction:column;gap:.3rem;padding:.45rem .6rem;border-radius:var(--radius-button);border:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;width:100%}.ori-closeness-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .45rem;margin:0;text-align:left}.ori-closeness-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.ori-closeness-text{font-size:.85rem;font-weight:600;color:var(--color-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ori-closeness-meter{display:block;height:.35rem;border-radius:var(--radius-badge);background:var(--color-surface-sunken);overflow:hidden}.ori-closeness-fill{display:block;height:100%;border-radius:inherit;background:var(--color-muted);transition:width var(--duration-normal) var(--ease-standard)}.ori-closeness--strong{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));background:var(--color-accent-light)}.ori-closeness--strong .ori-closeness-fill{background:var(--color-accent)}.ori-closeness--ok .ori-closeness-fill{background:color-mix(in srgb,var(--color-accent) 60%,var(--color-muted))}.ori-closeness--weak .ori-closeness-fill{background:color-mix(in srgb,var(--color-error) 65%,var(--color-muted))}.ori-review{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:.75rem;background:color-mix(in srgb,var(--color-bg) 82%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ori-review-card{display:flex;flex-direction:column;gap:.4rem;width:100%;max-width:22rem;padding:.85rem .9rem .9rem;border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-elevated);text-align:left}.ori-review-title{margin:0;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.ori-review-route{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--color-ink);line-height:1.25;overflow-wrap:anywhere}.ori-review-reveal{margin:-.1rem 0 0;font-size:.72rem;color:var(--color-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ori-review-total{margin:.1rem 0 .2rem;font-size:.85rem;color:var(--color-muted)}.ori-review-total strong{font-family:var(--font-mono);font-size:1.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-ink)}.ori-distance{display:flex;flex-direction:column;gap:.45rem;padding:.65rem .75rem .85rem;border-radius:var(--radius-button);border:1px solid var(--color-border);background:var(--color-surface);flex:1 1 auto;min-height:0;justify-content:center}.ori-distance .gs-stage{margin-bottom:0}.ori-distance-label{font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.ori-distance-value{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--color-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.ori-slider{width:100%;min-height:3.25rem;accent-color:var(--color-primary)}.ori-number{min-height:3.25rem;padding:.55rem .85rem;border-radius:var(--radius-button);border:2px solid var(--color-border);background:var(--color-bg);color:var(--color-ink);font:inherit;font-family:var(--font-mono);font-size:1.15rem;font-weight:600}.ori-actions{display:flex;flex-direction:column;gap:.4rem;margin-top:auto;flex-shrink:0}.ori-stage--distance .ori-actions{margin-top:.15rem}.ori-actions .gs-primary-bar,.ori-actions .gs-secondary{width:100%}.ori-finished{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.75rem 0 .5rem;flex:1 1;text-align:center}.ori-finished .end-outcome,.ori-finished .gs-outcome-header{max-width:22rem}.ori-finished .gs-score-hero{margin:.15rem 0 .25rem}.ori-finished--strong .gs-score-hero-value{color:var(--color-success)}.ori-finished--weak .gs-score-hero-value{color:var(--color-ink)}.ori-finished .end-reward-module{text-align:left;margin-top:.25rem}.ori-result-caption{margin:.2rem 0 0;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.ori-finished .ori-closeness,.ori-finished .ori-review-reveal{max-width:22rem}.ori-finished .end-retry-pulse,.ori-finished .gs-primary-bar,.ori-finished .gs-secondary{width:100%;max-width:22rem}.ori-finished .end-retry-pulse{margin-top:.35rem}.ori-shell:has(.ori-stage--high-score) .gs-topbar-score{color:var(--color-success);font-size:1.05rem}@media (min-width:480px){.ori-place-capital{font-size:1.05rem}}@media (max-height:720px){.ori-stage--distance{gap:.3rem}.ori-dial{width:min(68vw,15.5rem)}.ori-distance-value{font-size:1.55rem}.ori-closeness{padding:.35rem .5rem}.ori-closeness-text{font-size:.8rem}}