/* Original CAZ navigation console: CSS metal, light channels and orbital address stations. */
header{min-height:82px}main{max-width:none}.intro{padding:24px 0 22px}.intro h1{font-size:clamp(28px,3vw,48px)}.intro>.eyebrow{margin-bottom:10px}
.console{display:flex;flex-direction:column;position:relative;background:radial-gradient(ellipse at 50% 40%,#13384c 0,transparent 55%),#050e19;border-color:#6199b255;box-shadow:inset 0 0 60px #0009,0 25px 80px #0005}
.destination-panel{padding:20px 28px 12px;border:0;background:linear-gradient(90deg,#112a38cc,#07131c99);display:grid;grid-template-columns:minmax(200px,1fr) minmax(220px,1fr);gap:8px 30px;align-items:center}
.panel-heading{grid-column:1}.destination-panel h2{grid-column:1;grid-row:2;font-size:24px;margin:0}.destination-search{grid-column:2;grid-row:1/3;margin:0;font-size:11px}.destination-search input{margin-top:5px;padding:10px 14px}
.filters{grid-column:1/-1;margin-top:5px}.filters button{min-height:36px;padding:7px 12px}.filter-note{display:none}.destination-panel .empty{grid-column:1/-1;margin:0;padding:12px}
.portal-stage{position:relative;height:420px;margin:4px 24px 0;isolation:isolate;background:radial-gradient(1px 1px at 12px 29px,#d6efffaa 95%,transparent) 0 0/179px 167px,radial-gradient(1px 1px at 135px 81px,#b7d6e777 95%,transparent) 0 0/257px 203px}
.portal-stage::before{content:'';position:absolute;inset:10px 24%;border:1px solid #72c6da22;border-radius:50%;transform:rotate(-18deg);pointer-events:none}
.observatory{position:absolute;inset:0;min-height:0;padding:0;background:none;display:block;overflow:visible}
.observatory::after{display:none}.coordinates{left:34%;right:34%;top:6px;font-size:8px;letter-spacing:.1em}.gate-caption{display:none}.arrival-note{position:absolute;bottom:0;margin:0;left:32%;right:32%;font-size:11px}
.portal-stage .gate{top:50%;left:50%;width:340px;margin:0;filter:drop-shadow(0 0 38px #439ed255)}
.gate .rim{border:18px solid #537582;box-shadow:inset 0 0 0 2px #e2f9ff99,inset 0 0 0 10px #07141b,0 0 0 3px #182f3c,0 0 0 7px #78959e77,0 0 0 9px #020b14}
.gate .aperture{background:radial-gradient(ellipse,#030c16 24%,#123449 60%,#66e3ef9c 85%,#d6ffff 99%)}
.gate .ticks{inset:-4%;background:repeating-conic-gradient(#ffd79f 0deg 2deg,transparent 2deg 30deg);animation-duration:140s}
.locked .gate{filter:drop-shadow(0 0 45px #6ce7e755)}.locked .gate .inner-ring{border-color:#cefff1;box-shadow:0 0 20px #66f0d2,inset 0 0 20px #66f0d2}
.gate-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:220px;text-align:center;z-index:2}.gate-core>span{font:9px/1.5 ui-monospace,monospace;letter-spacing:.16em;color:#b3ebe8}.gate-core>strong{display:block;font-weight:500;font-size:24px;line-height:1.2;letter-spacing:-.035em;margin:12px 0;overflow-wrap:anywhere}
.gate-core .boarding{margin:16px 0 0}.gate-core .primary{width:100%;font-size:13px;min-height:46px;background:#c1f4e9;border-color:#c1f4e9;box-shadow:0 0 20px #73dddc22}.gate-core .boarding>a{font-size:10px;line-height:1.5;margin:auto;padding:10px 0 0;color:#bfe2ec}
#cards{position:absolute;inset:0;display:block;pointer-events:none}.portal-stage .destination{position:absolute;pointer-events:auto;top:calc(34px + var(--slot)*88px);width:calc(30% - 14px);min-height:70px;padding:12px;grid-template-columns:38px minmax(0,1fr) 12px;gap:10px;background:linear-gradient(100deg,#102c3aef,#071620f2);border:1px solid #6794aa77;border-radius:5px;box-shadow:inset 0 1px #d1efff15,0 10px 24px #0005}
.destination.port-left{left:0}.destination.port-right{right:0}.destination:nth-child(4n+1),.destination:nth-child(4n){width:calc(32% - 14px)}
.portal-stage .destination::after{content:'';position:absolute;top:50%;width:22px;height:1px;background:#75b0c166;pointer-events:none}.port-left::after{left:100%}.port-right::after{right:100%}
.portal-stage .destination[aria-pressed=true]{border-color:#b3fff1;background:linear-gradient(100deg,#24534f,#103038);box-shadow:inset 3px 0 #b3fff1,0 0 25px #82e7d222}.portal-stage .destination[aria-pressed=true]::after{height:2px;background:#b3fff1;box-shadow:0 0 12px #b3fff1}
.portal-stage .destination strong{font-size:clamp(13px,1.3vw,19px);line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}.portal-stage .destination .tag{font:8px/1.3 ui-monospace,monospace;letter-spacing:.03em;margin:0 0 5px;color:#b6d6df}.portal-stage .destination .symbol{width:36px;height:36px;font-size:11px;background:radial-gradient(circle at 32% 30%,#6c99a9,#143443 60%,#020f1c);box-shadow:inset -5px -5px 8px #0008,0 0 12px #74b9dd33}.portal-stage .destination .description,.portal-stage .destination .domain{display:none}
.orbit-paging{display:flex;justify-content:center;align-items:center;gap:18px;padding:0 18px 12px}.orbit-paging button,#subroutes button,.dorf-search button{border:1px solid #7db7c477;background:#102a38;color:#e9faff;border-radius:5px;padding:10px 16px;min-height:44px}.orbit-paging span{font:11px/1.5 ui-monospace,monospace;color:#b9d6df}.orbit-paging button:disabled{opacity:.4}
.route-dossier{display:flex;align-items:center;justify-content:center;gap:20px;min-height:68px;padding:12px 28px;border-top:1px solid #8cbad32e;background:#0b1e2a99}.route-dossier p{font-size:13px;line-height:1.7;max-width:800px;margin:0;color:#c6dbe5}.route-dossier p:empty::before{content:'Wähle eine Station am Ring. Das Portal verbindet dich mit deinem Ziel.'}html[lang=en] .route-dossier p:empty::before{content:'Choose a station around the ring. The portal connects you to your destination.'}#subroutes{flex-shrink:0}#subroutes button{font-size:12px}
.dorf-search{padding:20px 28px;background:#102c2b88;border-top:1px solid #8ad6bb55}.dorf-search label{display:block;font-size:14px;color:#e1fff2;margin-bottom:10px}.dorf-input{display:flex;gap:12px;max-width:650px}.dorf-input input{min-width:0;flex:1;min-height:46px;padding:10px 14px;font:16px system-ui;background:#061a20;border:1px solid #8ec7bd;color:#f4fffc;border-radius:5px}.dorf-search p{font-size:13px;line-height:1.7}.dorf-search small{display:block;margin-top:15px;color:#bad8cc;font-size:11px;line-height:1.6}#dorf-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:8px}#dorf-results button{text-align:left;font-size:13px;line-height:1.5}
@media(min-width:1700px){.portal-stage{height:490px}.portal-stage .gate{width:400px}.gate-core{width:265px}.gate-core>strong{font-size:29px}.portal-stage .destination{top:calc(40px + var(--slot)*105px);min-height:82px;padding:16px 24px}.portal-stage .destination strong{font-size:21px}.portal-stage .destination .tag{font-size:10px}.coordinates{top:12px}}
@media(max-width:1050px) and (min-width:701px){.portal-stage .gate{width:270px}.gate-core{width:170px}.gate-core>strong{font-size:20px}.portal-stage{margin-inline:16px;height:390px}.portal-stage .destination{grid-template-columns:minmax(0,1fr);padding:12px 10px;width:25%;top:calc(30px + var(--slot)*84px)}.portal-stage .destination .symbol,.portal-stage .destination .arrow{display:none}.portal-stage .destination:nth-child(4n+1),.portal-stage .destination:nth-child(4n){width:28%}.coordinates{left:32%;right:32%;font-size:7px}.route-dossier{align-items:flex-start}}
@media(max-width:700px){header,main,footer{padding-inline:14px}header{padding-block:14px}.intro{display:block;padding:18px 0}.intro h1{font-size:29px}.intro>p:last-child{margin-top:10px;font-size:12px;line-height:1.6}.destination-panel{display:flex;flex-wrap:wrap;gap:10px;padding:16px}.panel-heading{width:100%}.destination-panel h2{font-size:20px}.destination-search{width:100%;margin:0}.filters{margin:0;gap:5px}.filters button{font-size:10px;min-height:44px}.portal-stage{height:auto;margin:0 12px;display:flex;flex-direction:column;min-height:0}.portal-stage::before{inset:8px 4px auto;height:250px}.observatory{position:relative;height:270px;flex:none}.portal-stage .gate{width:230px;top:50%;left:50%}.coordinates{display:none}.gate-core{width:153px}.gate-core>strong{font-size:18px;margin:8px 0}.gate-core>span{font-size:7px;letter-spacing:.1em}.gate-core .boarding{margin-top:10px}.gate-core .primary{font-size:11px;min-height:44px}.gate-core .boarding>a{font-size:9px;padding-top:6px}.arrival-note{display:none}#cards{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 12px}.portal-stage .destination,.portal-stage .destination:nth-child(n){position:relative;top:auto;left:auto;right:auto;width:100%;min-height:72px;padding:10px 8px;display:grid;grid-template-columns:1fr;gap:0;order:0}.portal-stage .destination strong{font-size:13px}.portal-stage .destination .symbol,.portal-stage .destination .arrow{display:none}.portal-stage .destination::after{display:none}.portal-stage .destination .tag{font-size:8px;line-height:1.4}.orbit-paging{gap:10px;flex-wrap:wrap;padding:0 12px 14px}.orbit-paging span{font-size:10px}.route-dossier{padding:15px 16px;display:block;min-height:0}.route-dossier p{font-size:12px}#subroutes:not(:empty){margin-top:12px}.dorf-search{padding:16px}.dorf-input{gap:7px}.dorf-input button{padding:10px;font-size:12px}.join-options{gap:10px}.join-options article{padding:18px}}
#cards>.destination{width:calc(30% - 14px)}#cards>.destination:nth-child(4n+1),#cards>.destination:nth-child(4n){width:calc(32% - 14px)}
@media(max-width:1050px) and (min-width:701px){#cards>.destination{width:25%}#cards>.destination:nth-child(4n+1),#cards>.destination:nth-child(4n){width:28%}}
@media(max-width:700px){#cards>.destination:nth-child(n){width:100%}}
@media(prefers-reduced-motion:reduce){.gate .ticks,.gate .aperture{animation:none}}
.portal-stage .gate .aperture{overflow:hidden;background:#123850 url('liquid.svg') center/cover;animation:none;box-shadow:inset 0 0 30px #77d2f1aa,0 0 28px #5be4ff70}
.liquid-surface{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;opacity:.94}
.gate .aperture::after{content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(ellipse at 35% 22%,#d7fbff22,transparent 35%),radial-gradient(circle,transparent 68%,#a7ebff55 91%,#c1f9ff 100%);box-shadow:inset 0 0 20px #83dfff77}
.gate-core{padding:12px 9px;background:radial-gradient(ellipse,#04111de8 38%,#04111dbb 66%,transparent 74%);border-radius:40%}
.gate-core>strong{text-shadow:0 2px 10px #000}.gate-core>span{text-shadow:0 1px 4px #000}
/* Explain the offering before selection, including touch screens; never hide it in a tooltip. */
.portal-stage{height:500px}
.portal-stage .destination{top:calc(24px + var(--slot)*118px);min-height:102px;padding:12px;align-items:center}
.portal-stage .destination .description{display:block;margin-top:6px;font-size:12px;line-height:1.45;color:#c9dfe9;overflow-wrap:anywhere}
.portal-stage .destination .tag{font-size:8px;margin-bottom:4px;color:#a9cbd7}
@media(min-width:1700px){.portal-stage{height:520px}.portal-stage .destination{top:calc(24px + var(--slot)*124px);padding:14px 20px;min-height:108px}.portal-stage .destination .description{font-size:14px}}
@media(max-width:1050px) and (min-width:701px){.portal-stage{height:590px}.portal-stage .destination{top:calc(20px + var(--slot)*140px);padding:12px 10px;min-height:124px}.portal-stage .destination .description{font-size:12px}}
@media(max-width:700px){.portal-stage{height:auto}.portal-stage .destination:nth-child(n){top:auto;min-height:112px;padding:12px 9px;align-items:start}.portal-stage .destination .description{font-size:12px;line-height:1.45}.portal-stage .destination strong{font-size:14px}}
/* Holographic spiral relay. Equal-duration windows; pause freezes both motion and its clock. */
.spiral-view{perspective:1100px}
.spiral-view .destination{animation:spiral-address 8s linear infinite;transform-origin:center;will-change:transform,opacity}
.spiral-view::before{inset:14px 18%;border:1px solid #a6deee44;box-shadow:0 0 20px #73bfe422,inset 0 0 20px #73bfe422;animation:helix-orbit 24s linear infinite}
.spiral-view::after{content:'';position:absolute;pointer-events:none;z-index:-1;inset:25px 13%;border-radius:50%;border:1px dashed #7fddcf55;transform:rotate(22deg) rotateY(28deg);animation:helix-orbit 32s linear infinite reverse}
.spiral-view.rotation-paused .destination,.spiral-view.rotation-paused::before,.spiral-view.rotation-paused::after{animation-play-state:paused}
.spiral-view.rotation-paused .destination{opacity:1!important}
.spiral-view.rotation-still .destination{transform:none!important}
.orbit-indicator{color:#baf1e7;font-size:18px}.orbit-paging{flex-wrap:wrap;padding-top:12px}.orbit-paging button{font-size:12px}.orbit-paging button[aria-pressed=true]{background:#b9eade;color:#071821;border-color:#d5fff3}
.catalog-view{height:auto;min-height:0;display:flex;flex-direction:column}
.catalog-view .observatory{position:relative;height:365px;flex:none}
.catalog-view .gate{width:320px}
.catalog-view::before{display:none}
.catalog-view #cards{position:relative;inset:auto;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px;padding:12px 0 20px;pointer-events:auto}
.catalog-view #cards>.destination:nth-child(n){position:relative;inset:auto;width:auto;flex:1 1 260px;min-height:110px;animation:none;transform:none;will-change:auto;padding:16px;display:grid;grid-template-columns:38px minmax(0,1fr) 12px}
.catalog-view .destination::after{display:none}.catalog-view .destination .symbol,.catalog-view .destination .arrow{display:grid}
@keyframes spiral-address{0%{opacity:.5;transform:translate3d(calc(var(--direction)*28px),24px,-90px) rotateY(calc(var(--direction)*15deg))}14%{opacity:1;transform:translate3d(calc(var(--direction)*8px),8px,-12px) rotateY(calc(var(--direction)*3deg))}82%{opacity:1;transform:translate3d(calc(var(--direction)*-5px),-8px,0) rotateY(calc(var(--direction)*-2deg))}100%{opacity:.35;transform:translate3d(calc(var(--direction)*-28px),-24px,-90px) rotateY(calc(var(--direction)*-15deg))}}
@keyframes helix-orbit{0%{transform:rotate(-18deg) rotateY(25deg) scale(.94)}50%{transform:rotate(162deg) rotateY(-25deg) scale(1.02)}100%{transform:rotate(342deg) rotateY(25deg) scale(.94)}}
@media(max-width:700px){.spiral-view .destination{animation-name:spiral-address-mobile}.spiral-view::before,.spiral-view::after{inset:12px 4px auto;height:245px}.catalog-view .observatory{height:270px}.catalog-view .gate{width:230px}.catalog-view #cards{gap:8px}.catalog-view #cards>.destination:nth-child(n){flex-basis:135px;grid-template-columns:minmax(0,1fr);padding:12px 9px;min-height:112px}.catalog-view .destination .symbol,.catalog-view .destination .arrow{display:none}.orbit-paging{gap:8px}.orbit-paging #rotation-status{flex-basis:80%;font-size:11px}.orbit-paging button{font-size:11px}}
@keyframes spiral-address-mobile{0%{opacity:.6;transform:translate3d(0,8px,-40px) rotateY(calc(var(--direction)*8deg))}15%{opacity:1;transform:translate3d(0,2px,0)}85%{opacity:1;transform:translate3d(0,-2px,0)}100%{opacity:.4;transform:translate3d(0,-8px,-40px) rotateY(calc(var(--direction)*-8deg))}}
@media(prefers-reduced-motion:reduce){.spiral-view .destination,.spiral-view::before,.spiral-view::after{animation:none!important;will-change:auto}}
@media(max-width:700px){.spiral-view #cards>.destination:nth-child(n){display:block;height:auto}.spiral-view .destination>span:nth-child(2){display:block;min-width:0}}
@media(max-width:360px){.spiral-view #cards>.destination:nth-child(n){min-height:140px}}

/* Each destination is one native departure button, with an explicit visible action. */
.portal-stage .destination .tag,.map-world .travel-label{display:inline-block;width:fit-content;padding:3px 6px;border-radius:4px;background:#b9eade;color:#071821;font-size:10px;line-height:1.3;font-weight:750;letter-spacing:.02em;margin-bottom:5px}
.map-world .travel-label{margin:6px 0 0}
