Uplifting Trance Sessions
Full Episode Archive
Curated by DJ Phalanx
The complete trance archive
The full
world
of trance
Here youβll find the full world of Uplifting Trance Sessions. Every episode.
Every tracklist. More than a decade of Trance history, hidden gems, fresh promos,
brand-new releases, all-time classics, and everything a true Trance heart could ask for.
803 +
Episodes
15 +
Years
56
Archive Pages
Archive Online
Latest Episode
EP. 803
Uplifting Trance Sessions
Archive
EP. 802
Tracklists & discoveries
Classic Archive
EP. 801
Milestone moments
From legends like Paul van Dyk, TiΓ«sto, Armin van Buuren, Chicane,
Ferry Corsten and many more, to a huge selection of DJ Phalanx tracks.
01
Every tracklist
Explore episode details, IDs, labels, hidden gems and music discoveries across the full archive.
02
Fresh promos
Brand-new releases, emotional cuts and powerful modern trance selected for the show.
03
All-time classics
Rediscover timeless moments from the artists and labels that shaped the trance scene.
04
Mixed with passion
Each episode is mixed and mastered by DJ Phalanx with energy and respect for the music.
Explore the tracklists, rediscover timeless moments, find new favorites,
and enjoy some of the greatest Trance music of all time.
Enjoy the music.
/* KILL HORIZONTAL SCROLLBAR GLOBALLY */
html, body {
overflow-x: hidden !important;
}
.phx-episodes-elite {
position: relative;
width: 100vw;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
padding: clamp(96px, 10vw, 190px) clamp(22px, 5vw, 40px);
display: flex;
flex-direction: column;
align-items: center; /* HΓ€lt alles absolut mittig */
color: #fff;
background: #020306;
font-family: Inter, Arial, sans-serif;
isolation: isolate;
}
.phx-episodes-elite * {
box-sizing: border-box;
}
.phx-ep-bg {
position: absolute;
inset: 0;
z-index: -8;
background:
radial-gradient(circle at 10% 12%, rgba(255, 0, 72, .56), transparent 30%),
radial-gradient(circle at 88% 18%, rgba(255, 106, 0, .34), transparent 34%),
radial-gradient(circle at 50% 108%, rgba(105, 0, 255, .34), transparent 44%),
linear-gradient(145deg, #020306 0%, #19000d 38%, #090015 72%, #000 100%);
}
.phx-ep-bg::before {
content: “”;
position: absolute;
inset: -35%;
background:
conic-gradient(
from 220deg at 50% 50%,
transparent 0deg,
rgba(255, 49, 95, .42) 48deg,
transparent 112deg,
rgba(255, 0, 72, .28) 178deg,
transparent 244deg,
rgba(255, 110, 0, .24) 316deg,
transparent 360deg
);
opacity: .95;
filter: blur(108px);
animation: phxEpWorldGlow 26s linear infinite;
}
.phx-ep-grid {
position: absolute;
inset: 0;
z-index: -7;
background:
linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
background-size: 64px 64px;
mask-image: radial-gradient(circle at 50% 38%, black, transparent 78%);
opacity: .34;
}
.phx-ep-noise {
position: absolute;
inset: 0;
z-index: -6;
opacity: .14;
pointer-events: none;
mix-blend-mode: overlay;
background-image:
repeating-radial-gradient(circle at 0 0, rgba(255,255,255,.12) 0 1px, transparent 1px 5px);
}
.phx-ep-orb {
position: absolute;
z-index: -4;
border-radius: 999px;
filter: blur(34px);
pointer-events: none;
}
.phx-ep-orb-one {
width: 420px;
height: 420px;
left: -150px;
bottom: 8%;
background: rgba(255,0,72,.22);
animation: phxEpFloatOne 9s ease-in-out infinite;
}
.phx-ep-orb-two {
width: 360px;
height: 360px;
right: -120px;
top: 14%;
background: rgba(255,106,0,.2);
animation: phxEpFloatTwo 11s ease-in-out infinite;
}
.phx-ep-orb-three {
width: 300px;
height: 300px;
left: 48%;
top: 58%;
background: rgba(115,0,255,.16);
animation: phxEpFloatThree 13s ease-in-out infinite;
}
/* FLEXBOX LAYOUT FΓR ABSOLUTE ZENTRIERUNG */
.phx-ep-inner {
position: relative;
z-index: 2;
width: 100%;
max-width: 1480px;
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
gap: clamp(40px, 6vw, 100px);
}
.phx-ep-copy {
position: relative;
flex: 0 1 800px;
width: 100%;
}
.phx-ep-portal {
position: relative;
flex: 0 1 560px;
width: 100%;
min-height: 660px;
display: grid;
place-items: center;
}
.phx-ep-copy::before {
content: “”;
position: absolute;
left: 0;
top: -58px;
width: min(800px, 100%);
height: 2px;
background: linear-gradient(90deg, #ff315f, #ff6a00, transparent);
box-shadow: 0 0 42px rgba(255,49,95,.86);
}
.phx-ep-badges {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 30px;
}
.phx-ep-badges span {
display: inline-flex;
min-height: 36px;
align-items: center;
padding: 0 14px;
border-radius: 999px;
color: #ffb3c0;
background: rgba(255,255,255,.075);
border: 1px solid rgba(255,255,255,.14);
backdrop-filter: blur(16px);
font-size: .72rem;
font-weight: 950;
letter-spacing: .16em;
text-transform: uppercase;
}
.phx-ep-kicker {
margin: 0 0 20px;
color: #ff6376;
font-size: .82rem;
font-weight: 950;
letter-spacing: .26em;
text-transform: uppercase;
}
.phx-ep-copy h1 {
margin: 0;
font-size: clamp(4.2rem, 8.5vw, 13.5rem);
line-height: .73;
letter-spacing: -.112em;
text-transform: uppercase;
text-wrap: balance;
text-shadow:
0 0 30px rgba(255,255,255,.18),
0 0 110px rgba(255,0,72,.36),
0 42px 110px rgba(0,0,0,.76);
}
.phx-ep-copy h1 span {
position: relative;
display: inline-block;
color: #ff4a2f;
text-shadow:
0 0 36px rgba(255,74,47,.86),
0 0 120px rgba(255,0,72,.54);
}
.phx-ep-copy h1 span::before {
content: “”;
position: absolute;
inset: .12em -.04em .02em -.04em;
z-index: -1;
background: linear-gradient(90deg, rgba(255,0,60,.4), rgba(255,106,0,.26));
filter: blur(26px);
}
.phx-ep-copy h1 span::after {
content: “”;
position: absolute;
left: 0;
right: 3%;
bottom: .02em;
height: .075em;
z-index: -1;
background: linear-gradient(90deg, #ff003c, #ff6a00);
box-shadow: 0 0 32px rgba(255,49,95,.88);
}
.phx-ep-lead {
max-width: 800px;
margin: 42px 0 0;
color: rgba(255,255,255,.82);
font-size: clamp(1.12rem, 1.8vw, 1.55rem);
line-height: 1.74;
}
.phx-ep-actions {
display: flex;
flex-wrap: wrap;
gap: 16px;
margin-top: 44px;
}
.phx-ep-actions a {
display: inline-flex;
min-height: 60px;
align-items: center;
justify-content: center;
padding: 0 32px;
border-radius: 999px;
color: #fff;
text-decoration: none;
font-size: .86rem;
font-weight: 950;
letter-spacing: .09em;
text-transform: uppercase;
transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.phx-ep-actions a:first-child {
background: linear-gradient(135deg, #ff003c, #ff6a00);
box-shadow:
0 0 48px rgba(255,0,72,.52),
inset 0 0 18px rgba(255,255,255,.12);
}
.phx-ep-actions a:nth-child(2) {
background: rgba(255,255,255,.075);
border: 1px solid rgba(255,255,255,.2);
backdrop-filter: blur(18px);
}
.phx-ep-actions a:hover {
transform: translateY(-4px) scale(1.03);
box-shadow: 0 0 78px rgba(255,0,72,.64);
border-color: rgba(255,49,95,.72);
}
.phx-ep-counter-row {
display: flex;
flex-wrap: wrap;
gap: 14px;
max-width: 800px;
margin-top: 54px;
}
.phx-ep-counter-row div {
flex: 1;
min-width: 140px;
padding: 22px;
border-radius: 26px;
background:
radial-gradient(circle at 20% 0%, rgba(255,49,95,.18), transparent 42%),
rgba(255,255,255,.06);
border: 1px solid rgba(255,255,255,.12);
backdrop-filter: blur(18px);
box-shadow: 0 28px 84px rgba(0,0,0,.26);
}
.phx-ep-counter-row strong {
display: block;
color: #fff;
font-size: clamp(1.65rem, 2.8vw, 3.2rem);
line-height: .9;
letter-spacing: -.055em;
text-transform: uppercase;
}
.phx-ep-counter-row small {
display: block;
margin-top: 8px;
color: rgba(255,255,255,.62);
font-size: .9rem;
}
.phx-ep-ring,
.phx-ep-ring-two {
position: absolute;
width: min(560px, 86vw);
height: min(560px, 86vw);
border-radius: 50%;
border: 1px solid rgba(255,255,255,.12);
background:
radial-gradient(circle, transparent 58%, rgba(255,49,95,.16) 60%, transparent 66%),
conic-gradient(from 90deg, transparent, rgba(255,49,95,.55), rgba(255,106,0,.45), transparent);
filter: drop-shadow(0 0 36px rgba(255,0,72,.28));
animation: phxEpRing 18s linear infinite;
}
.phx-ep-ring-two {
width: min(440px, 74vw);
height: min(440px, 74vw);
animation-duration: 26s;
animation-direction: reverse;
opacity: .7;
}
.phx-ep-portal-card {
position: relative;
z-index: 3;
width: min(560px, 100%);
padding: clamp(28px, 3vw, 44px);
border-radius: 46px;
background:
radial-gradient(circle at 30% 0%, rgba(255,49,95,.3), transparent 42%),
radial-gradient(circle at 100% 100%, rgba(255,106,0,.18), transparent 38%),
linear-gradient(145deg, rgba(255,255,255,.145), rgba(255,255,255,.038));
border: 1px solid rgba(255,255,255,.18);
box-shadow:
0 58px 160px rgba(0,0,0,.68),
0 0 105px rgba(255,0,72,.22);
backdrop-filter: blur(30px);
overflow: hidden;
}
.phx-ep-portal-card::before {
content: “”;
position: absolute;
inset: 0;
background: linear-gradient(125deg, transparent 0%, rgba(255,255,255,.09) 45%, transparent 72%);
transform: translateX(-130%);
animation: phxEpShine 7s ease-in-out infinite;
pointer-events: none;
}
.phx-ep-status {
position: relative;
z-index: 2;
display: inline-flex;
align-items: center;
gap: 10px;
margin-bottom: 26px;
padding: 10px 14px;
border-radius: 999px;
color: #ffd6dd;
background: rgba(0,0,0,.28);
border: 1px solid rgba(255,255,255,.14);
font-size: .72rem;
font-weight: 950;
letter-spacing: .14em;
text-transform: uppercase;
}
.phx-ep-status span {
width: 9px;
height: 9px;
border-radius: 50%;
background: #ff315f;
box-shadow: 0 0 20px rgba(255,49,95,.9);
animation: phxEpPulse 1.55s ease-in-out infinite;
}
.phx-ep-stack {
position: relative;
z-index: 2;
height: 300px;
margin-bottom: 28px;
}
.phx-ep-stack-card {
position: absolute;
left: 0;
right: 0;
min-height: 178px;
padding: 24px;
border-radius: 30px;
background:
radial-gradient(circle at 20% 0%, rgba(255,49,95,.22), transparent 42%),
linear-gradient(145deg, rgba(0,0,0,.54), rgba(255,255,255,.055));
border: 1px solid rgba(255,255,255,.14);
box-shadow: 0 34px 95px rgba(0,0,0,.42);
}
.phx-ep-stack-card[data-phx-latest-card] {
cursor: pointer;
}
.phx-ep-stack-card[data-phx-latest-card]:focus-visible {
outline: 2px solid rgba(255,255,255,.82);
outline-offset: 4px;
}
.phx-ep-stack-card small {
display: block;
color: #ff6376;
font-size: .72rem;
font-weight: 950;
letter-spacing: .16em;
text-transform: uppercase;
}
.phx-ep-stack-card strong {
display: block;
margin-top: 12px;
color: #fff;
font-size: clamp(2.4rem, 5vw, 5.2rem);
line-height: .82;
letter-spacing: -.075em;
text-transform: uppercase;
}
.phx-ep-stack-card span {
display: block;
margin-top: 12px;
color: rgba(255,255,255,.68);
font-size: .98rem;
}
.phx-ep-stack-one {
top: 0;
z-index: 3;
transform: rotate(-1.2deg);
}
.phx-ep-stack-two {
top: 58px;
z-index: 2;
transform: translateX(18px) rotate(2deg);
opacity: .7;
}
.phx-ep-stack-three {
top: 116px;
z-index: 1;
transform: translateX(-14px) rotate(-2.2deg);
opacity: .45;
}
.phx-ep-eq {
position: relative;
z-index: 2;
display: flex;
align-items: end;
gap: 7px;
height: 54px;
margin: 10px 0 24px;
}
.phx-ep-eq span {
width: 9px;
height: 18px;
border-radius: 999px;
background: linear-gradient(to top, #ff003c, #ff6a00);
box-shadow: 0 0 16px rgba(255,49,95,.72);
animation: phxEpEq 1s ease-in-out infinite;
}
.phx-ep-eq span:nth-child(2) { animation-delay: .11s; }
.phx-ep-eq span:nth-child(3) { animation-delay: .22s; }
.phx-ep-eq span:nth-child(4) { animation-delay: .33s; }
.phx-ep-eq span:nth-child(5) { animation-delay: .44s; }
.phx-ep-eq span:nth-child(6) { animation-delay: .55s; }
.phx-ep-eq span:nth-child(7) { animation-delay: .66s; }
.phx-ep-portal-card > p {
position: relative;
z-index: 2;
margin: 0;
color: rgba(255,255,255,.74);
font-size: 1.04rem;
line-height: 1.72;
}
/* FEATURE GRID ZENTRIERT UNTER DEM TOP-BEREICH */
.phx-ep-feature-grid {
width: 100%;
max-width: 1480px;
margin: clamp(70px, 8vw, 122px) auto 0;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 22px;
}
.phx-ep-feature-grid article {
position: relative;
min-height: 300px;
padding: clamp(24px, 3vw, 38px);
border-radius: 36px;
background:
radial-gradient(circle at 18% 0%, rgba(255,49,95,.24), transparent 42%),
radial-gradient(circle at 100% 100%, rgba(255,106,0,.14), transparent 42%),
linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.034));
border: 1px solid rgba(255,255,255,.145);
box-shadow:
0 38px 110px rgba(0,0,0,.44),
0 0 70px rgba(255,0,72,.1);
backdrop-filter: blur(22px);
overflow: hidden;
transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.phx-ep-feature-grid article::before {
content: “”;
position: absolute;
inset: 0;
background: linear-gradient(125deg, transparent 0%, rgba(255,255,255,.075) 45%, transparent 72%);
transform: translateX(-130%);
transition: transform .8s ease;
pointer-events: none;
}
.phx-ep-feature-grid article:hover::before {
transform: translateX(130%);
}
.phx-ep-feature-grid article:hover {
transform: translateY(-8px);
border-color: rgba(255,49,95,.52);
box-shadow:
0 48px 130px rgba(0,0,0,.54),
0 0 95px rgba(255,0,72,.18);
}
.phx-ep-feature-grid article > span {
display: inline-flex;
width: 52px;
height: 52px;
align-items: center;
justify-content: center;
border-radius: 18px;
background: linear-gradient(135deg, #ff003c, #ff6a00);
color: #fff;
font-size: .9rem;
font-weight: 1000;
box-shadow:
0 0 34px rgba(255,0,72,.48),
inset 0 0 14px rgba(255,255,255,.14);
}
.phx-ep-feature-grid h2 {
margin: 76px 0 16px;
color: #fff;
font-size: clamp(1.75rem, 2.4vw, 3.25rem);
line-height: .9;
letter-spacing: -.06em;
text-transform: uppercase;
text-wrap: balance;
text-shadow:
0 0 24px rgba(255,255,255,.14),
0 0 55px rgba(255,0,72,.22);
}
.phx-ep-feature-grid p {
margin: 0;
color: rgba(255,255,255,.72);
font-size: clamp(.96rem, 1vw, 1.06rem);
line-height: 1.68;
}
/* FINAL LINE ZENTRIERT UNTER DEM GRID */
.phx-ep-final-line {
position: relative;
width: 100%;
max-width: 1480px;
margin: clamp(50px, 6vw, 92px) auto 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: clamp(30px, 4vw, 58px);
border-radius: 44px;
background:
radial-gradient(circle at 12% 0%, rgba(255,49,95,.25), transparent 42%),
radial-gradient(circle at 100% 100%, rgba(255,106,0,.15), transparent 38%),
linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.035));
border: 1px solid rgba(255,255,255,.16);
box-shadow:
0 42px 120px rgba(0,0,0,.46),
0 0 80px rgba(255,0,72,.12);
backdrop-filter: blur(22px);
}
.phx-ep-final-line::before {
content: “”;
display: block;
width: min(560px, 100%);
height: 2px;
margin-bottom: 28px;
background: linear-gradient(90deg, transparent, #ff315f, #ff6a00, transparent);
box-shadow: 0 0 30px rgba(255,49,95,.7);
}
.phx-ep-final-line p {
max-width: 1160px;
margin: 0;
color: rgba(255,255,255,.82);
font-size: clamp(1.15rem, 1.8vw, 1.55rem);
line-height: 1.7;
}
.phx-ep-final-line strong {
display: block;
margin-top: 24px;
color: #fff;
font-size: clamp(2.2rem, 4vw, 5.2rem);
line-height: .9;
letter-spacing: -.065em;
text-transform: uppercase;
}
#phx-episodes-archive-start {
display: block;
position: relative;
top: -80px;
visibility: hidden;
}
/* Existing archive upgrade */
.entry-content,
.wp-block-post-content,
.site-main,
#main {
background:
radial-gradient(circle at 18% 0%, rgba(255,0,72,.12), transparent 32%),
radial-gradient(circle at 90% 12%, rgba(255,106,0,.1), transparent 34%),
linear-gradient(180deg, #020409 0%, #030006 100%);
color: #fff;
}
.entry-content a,
.wp-block-post-content a,
.site-main a,
#main a {
color: #ff6376;
text-decoration: none;
font-weight: 850;
}
.entry-content a:hover,
.wp-block-post-content a:hover,
.site-main a:hover,
#main a:hover {
color: #fff;
text-shadow: 0 0 18px rgba(255,49,95,.78);
}
.entry-content article,
.wp-block-post-content article,
.site-main article,
#main article,
.wp-block-post-template > li,
.wp-block-query .wp-block-post,
.hentry {
position: relative;
width: min(1180px, calc(100% – 32px));
margin: 28px auto;
padding: clamp(20px, 3vw, 34px);
border-radius: 34px;
background:
radial-gradient(circle at 16% 0%, rgba(255,49,95,.18), transparent 42%),
radial-gradient(circle at 100% 100%, rgba(255,106,0,.12), transparent 38%),
linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.032));
border: 1px solid rgba(255,255,255,.14);
box-shadow:
0 38px 110px rgba(0,0,0,.44),
0 0 70px rgba(255,0,72,.1);
backdrop-filter: blur(22px);
overflow: hidden;
transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.entry-content article::before,
.wp-block-post-content article::before,
.site-main article::before,
#main article::before,
.wp-block-post-template > li::before,
.wp-block-query .wp-block-post::before,
.hentry::before {
content: “”;
position: absolute;
inset: 0;
background: linear-gradient(125deg, transparent 0%, rgba(255,255,255,.075) 45%, transparent 72%);
transform: translateX(-130%);
transition: transform .8s ease;
pointer-events: none;
}
.entry-content article:hover::before,
.wp-block-post-content article:hover::before,
.site-main article:hover::before,
#main article:hover::before,
.wp-block-post-template > li:hover::before,
.wp-block-query .wp-block-post:hover::before,
.hentry:hover::before {
transform: translateX(130%);
}
.entry-content article:hover,
.wp-block-post-content article:hover,
.site-main article:hover,
#main article:hover,
.wp-block-post-template > li:hover,
.wp-block-query .wp-block-post:hover,
.hentry:hover {
transform: translateY(-7px);
border-color: rgba(255,49,95,.48);
box-shadow:
0 48px 130px rgba(0,0,0,.54),
0 0 95px rgba(255,0,72,.18);
}
.entry-content article img,
.wp-block-post-content article img,
.site-main article img,
#main article img,
.wp-block-post-template img,
.wp-block-query img,
.hentry img {
border-radius: 26px;
border: 1px solid rgba(255,255,255,.15);
box-shadow:
0 26px 80px rgba(0,0,0,.42),
0 0 50px rgba(255,0,72,.12);
}
.entry-content article h1,
.entry-content article h2,
.entry-content article h3,
.wp-block-post-content article h1,
.wp-block-post-content article h2,
.wp-block-post-content article h3,
.site-main article h1,
.site-main article h2,
.site-main article h3,
#main article h1,
#main article h2,
#main article h3,
.wp-block-post-title,
.entry-title {
color: #fff !important;
font-family: Inter, Arial, sans-serif;
font-size: clamp(1.6rem, 2.8vw, 3.2rem);
line-height: .96;
letter-spacing: -.055em;
text-transform: uppercase;
text-shadow:
0 0 26px rgba(255,255,255,.12),
0 0 52px rgba(255,0,72,.18);
}
.entry-summary,
.wp-block-post-excerpt,
.entry-content article p,
.wp-block-post-content article p,
.site-main article p,
#main article p {
color: rgba(255,255,255,.74);
font-family: Inter, Arial, sans-serif;
font-size: 1rem;
line-height: 1.7;
}
.navigation.pagination,
.nav-links,
.wp-block-query-pagination {
width: min(1180px, calc(100% – 32px));
margin: clamp(44px, 5vw, 80px) auto;
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: center;
}
.navigation.pagination a,
.navigation.pagination span,
.nav-links a,
.nav-links span,
.wp-block-query-pagination a,
.wp-block-query-pagination span {
display: inline-flex;
min-width: 46px;
min-height: 46px;
align-items: center;
justify-content: center;
padding: 0 16px;
border-radius: 999px;
color: #fff;
background: rgba(255,255,255,.075);
border: 1px solid rgba(255,255,255,.14);
font-family: Inter, Arial, sans-serif;
font-size: .85rem;
font-weight: 950;
letter-spacing: .06em;
text-transform: uppercase;
backdrop-filter: blur(16px);
}
.navigation.pagination .current,
.nav-links .current,
.wp-block-query-pagination .current {
background: linear-gradient(135deg, #ff003c, #ff6a00);
box-shadow: 0 0 34px rgba(255,0,72,.44);
}
@keyframes phxEpWorldGlow {
0% { transform: rotate(0deg) scale(1); }
50% { transform: rotate(180deg) scale(1.08); }
100% { transform: rotate(360deg) scale(1); }
}
@keyframes phxEpPulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: .45; transform: scale(1.55); }
}
@keyframes phxEpShine {
0% { transform: translateX(-130%); }
45%, 100% { transform: translateX(130%); }
}
@keyframes phxEpEq {
0%, 100% { height: 14px; }
50% { height: 46px; }
}
@keyframes phxEpRing {
to { transform: rotate(360deg); }
}
@keyframes phxEpFloatOne {
0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(40px, -26px) scale(1.08); }
}
@keyframes phxEpFloatTwo {
0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(-34px, 30px) scale(1.06); }
}
@keyframes phxEpFloatThree {
0%, 100% { transform: translate(0, 0) scale(1); }
50% { transform: translate(22px, -36px) scale(1.08); }
}
/* CLICK FIX: Bewegte Farbebenen liegen hinter dem Grid und blockieren keine Posts/Links */
.phx-ep-bg,
.phx-ep-bg::before,
.phx-ep-grid,
.phx-ep-noise,
.phx-ep-orb,
.phx-ep-ring,
.phx-ep-ring-two,
.phx-ep-portal-card::before,
.phx-ep-feature-grid article::before,
.entry-content article::before,
.wp-block-post-content article::before,
.site-main article::before,
#main article::before,
.wp-block-post-template > li::before,
.wp-block-query .wp-block-post::before,
.hentry::before {
pointer-events: none !important;
}
.phx-ep-bg {
z-index: -30;
}
.phx-ep-bg::before {
z-index: -29;
}
.phx-ep-grid {
z-index: -28;
}
.phx-ep-noise {
z-index: -27;
}
.phx-ep-orb {
z-index: -26;
}
.phx-ep-inner,
.phx-ep-feature-grid,
.phx-ep-final-line {
position: relative;
z-index: 5;
}
.entry-content,
.wp-block-post-content,
.site-main,
#main,
.wp-block-query,
.wp-block-post-template {
position: relative;
z-index: 20;
}
.entry-content article,
.wp-block-post-content article,
.site-main article,
#main article,
.wp-block-post-template > li,
.wp-block-query .wp-block-post,
.hentry {
z-index: 21;
}
.entry-content article > *,
.wp-block-post-content article > *,
.site-main article > *,
#main article > *,
.wp-block-post-template > li > *,
.wp-block-query .wp-block-post > *,
.hentry > * {
position: relative;
z-index: 2;
}
.entry-content a,
.wp-block-post-content a,
.site-main a,
#main a,
.wp-block-post-template a,
.wp-block-query a,
.hentry a {
position: relative;
z-index: 30;
pointer-events: auto;
}
/* RESPONSIVE FΓR TABLET UND MOBILE */
@media (max-width: 1180px) {
.phx-episodes-elite {
padding-top: 140px;
}
.phx-ep-inner {
flex-direction: column; /* Stapelt Text und Box untereinander */
text-align: center;
gap: 70px;
}
.phx-ep-copy {
display: flex;
flex-direction: column;
align-items: center;
}
.phx-ep-copy::before {
left: 50%;
transform: translateX(-50%);
background: linear-gradient(90deg, transparent, #ff315f, #ff6a00, transparent);
}
.phx-ep-badges,
.phx-ep-actions,
.phx-ep-counter-row {
justify-content: center;
}
.phx-ep-feature-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 760px) {
.phx-episodes-elite {
padding: 96px 20px 40px;
}
.phx-ep-copy h1 {
font-size: clamp(3.7rem, 17vw, 6.9rem);
}
.phx-ep-lead {
font-size: 1.05rem;
}
.phx-ep-actions {
flex-direction: column;
width: 100%;
}
.phx-ep-actions a {
width: 100%;
}
.phx-ep-counter-row {
flex-direction: column;
width: 100%;
}
.phx-ep-portal {
min-height: auto;
}
.phx-ep-ring,
.phx-ep-ring-two {
display: none;
}
.phx-ep-portal-card {
border-radius: 30px;
padding: 26px;
}
.phx-ep-stack {
height: 250px;
}
.phx-ep-stack-card {
min-height: 150px;
}
.phx-ep-feature-grid {
grid-template-columns: 1fr;
}
.phx-ep-feature-grid article,
.phx-ep-final-line {
border-radius: 30px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.phx-ep-feature-grid article > span {
margin: 0 auto;
}
.entry-content article,
.wp-block-post-content article,
.site-main article,
#main article,
.wp-block-post-template > li,
.wp-block-query .wp-block-post,
.hentry {
border-radius: 26px;
}
}
(function () {
const PHX_EPISODE_CONFIG = {
fallbackLatestEpisode: 803,
restCandidates: [
‘/wp-json/wp/v2/posts?per_page=30&search=Uplifting%20Trance%20Sessions%20EP&_fields=date,link,title,slug’,
‘/wp-json/wp/v2/posts?per_page=60&_fields=date,link,title,slug’
]
};
function decodeHtml(value) {
const textarea = document.createElement(‘textarea’);
textarea.innerHTML = String(value || ”);
return textarea.value;
}
function getPostTitle(post) {
if (!post || !post.title) return ”;
return decodeHtml(post.title.rendered || post.title.raw || post.title || ”);
}
function extractEpisodeNumber(text) {
const clean = decodeHtml(text).replace(/\s+/g, ‘ ‘).trim();
const patterns = [
/Uplifting\s+Trance\s+Sessions\s+EP\.?\s*(\d{1,5})/i,
/\bUTS\s*EP\.?\s*(\d{1,5})/i,
/\bEP\.?\s*(\d{3,5})\b/i
];
for (const pattern of patterns) {
const match = clean.match(pattern);
if (match && match[1]) {
const number = parseInt(match[1], 10);
if (Number.isFinite(number)) return number;
}
}
return null;
}
async function fetchLatestEpisodePost() {
for (const url of PHX_EPISODE_CONFIG.restCandidates) {
try {
const response = await fetch(url, {
credentials: ‘same-origin’,
cache: ‘no-store’
});
if (!response.ok) continue;
const posts = await response.json();
if (!Array.isArray(posts) || !posts.length) continue;
const episodePosts = posts
.map(function (post) {
const title = getPostTitle(post);
const episode = extractEpisodeNumber(title + ‘ ‘ + (post.slug || ”));
return {
episode: episode,
title: title,
link: post.link || ”,
date: post.date || ”
};
})
.filter(function (post) {
return Number.isFinite(post.episode);
})
.sort(function (a, b) {
return b.episode – a.episode;
});
if (episodePosts.length) return episodePosts[0];
} catch (error) {
/* Keep the fallback visible if the REST API is blocked or unavailable. */
}
}
return null;
}
function setText(section, selector, text) {
const element = section.querySelector(selector);
if (element) element.textContent = text;
}
function updateEpisodePortal(latestPost) {
const section = document.querySelector(‘[data-phx-episodes-elite]’);
if (!section) return;
const latestEpisode = latestPost && Number.isFinite(latestPost.episode)
? latestPost.episode
: PHX_EPISODE_CONFIG.fallbackLatestEpisode;
setText(section, ‘[data-phx-latest-ep]’, ‘EP. ‘ + latestEpisode);
setText(section, ‘[data-phx-prev-ep-one]’, ‘EP. ‘ + Math.max(latestEpisode – 1, 1));
setText(section, ‘[data-phx-prev-ep-two]’, ‘EP. ‘ + Math.max(latestEpisode – 2, 1));
const latestCounter = section.querySelector(‘[data-phx-latest-counter]’);
if (latestCounter) {
latestCounter.setAttribute(‘data-phx-count’, String(latestEpisode));
latestCounter.textContent = latestEpisode.toLocaleString(‘en-US’);
}
const latestCard = section.querySelector(‘[data-phx-latest-card]’);
if (latestCard && latestPost && latestPost.link) {
latestCard.setAttribute(‘role’, ‘link’);
latestCard.setAttribute(‘tabindex’, ‘0’);
latestCard.setAttribute(‘aria-label’, ‘Open Uplifting Trance Sessions EP. ‘ + latestEpisode);
latestCard.addEventListener(‘click’, function () {
window.location.href = latestPost.link;
}, { once: false });
latestCard.addEventListener(‘keydown’, function (event) {
if (event.key === ‘Enter’ || event.key === ‘ ‘) {
event.preventDefault();
window.location.href = latestPost.link;
}
}, { once: false });
}
}
function initEpisodeEliteCounters() {
const section = document.querySelector(‘[data-phx-episodes-elite]’);
if (!section) return;
const counters = section.querySelectorAll(‘[data-phx-count]’);
if (!counters.length) return;
let started = false;
function animateCounter(counter) {
const target = Number(counter.getAttribute(‘data-phx-count’));
if (!Number.isFinite(target)) return;
const duration = 2400;
const start = performance.now();
function tick(now) {
const progress = Math.min((now – start) / duration, 1);
const eased = 1 – Math.pow(1 – progress, 4);
counter.textContent = Math.floor(target * eased).toLocaleString(‘en-US’);
if (progress < 1) {
requestAnimationFrame(tick);
} else {
counter.textContent = target.toLocaleString('en-US');
}
}
requestAnimationFrame(tick);
}
function startCounters() {
if (started) return;
started = true;
counters.forEach(animateCounter);
}
if ('IntersectionObserver' in window) {
const observer = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
startCounters();
observer.disconnect();
}
});
}, { threshold: 0.24 });
observer.observe(section);
} else {
startCounters();
}
}
async function initEpisodesHero() {
updateEpisodePortal(null);
const latestPost = await fetchLatestEpisodePost();
if (latestPost) updateEpisodePortal(latestPost);
initEpisodeEliteCounters();
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initEpisodesHero);
} else {
initEpisodesHero();
}
})();