.dedications-page,
.dedications-page *{box-sizing:border-box}

.dedications-page main{
    width:100%;
    max-width:none;
    padding:42px clamp(16px,4vw,58px) 70px;
}

.dedications-shell{
    width:min(1320px,100%);
    margin:0 auto;
}

.dedications-hero{
    position:relative;
    margin:0;
    padding:48px 24px 34px;
    overflow:hidden;
    text-align:center;
    border:1px solid rgba(148,73,243,.22);
    border-radius:30px;
    background:
        linear-gradient(90deg,transparent,rgba(148,73,243,.15),transparent) center 72%/68% 1px no-repeat,
        radial-gradient(circle at 50% -36%,rgba(148,73,243,.35),transparent 55%),
        radial-gradient(circle at 10% 60%,rgba(34,211,238,.09),transparent 34%),
        radial-gradient(circle at 90% 60%,rgba(217,119,6,.09),transparent 34%),
        linear-gradient(145deg,#15151a,#08080b);
    box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.05);
}

.dedications-hero::before,
.dedications-hero::after{
    content:"";
    position:absolute;
    top:54%;
    width:24%;
    height:72px;
    opacity:.38;
    background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(148,73,243,.78) 8px 10px,transparent 11px 15px);
    mask-image:linear-gradient(to bottom,transparent,black 48%,transparent);
}

.dedications-hero::before{left:0}
.dedications-hero::after{right:0;filter:hue-rotate(145deg)}

.dedications-eyebrow{
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#d8bbff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.16em;
}

.dedications-eyebrow > span{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#ef233c;
    box-shadow:0 0 17px rgba(239,35,60,.75);
}

.dedications-hero h1{
    position:relative;
    z-index:1;
    margin:17px 0 8px;
    font-size:clamp(42px,7vw,76px);
    font-weight:950;
    line-height:.96;
    letter-spacing:-.055em;
}

.dedications-hero h1 strong{
    color:#b278fb;
    background:linear-gradient(135deg,#fff 0%,#d4b5ff 35%,#9449f3 85%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
}

.dedications-hero p{
    position:relative;
    z-index:1;
    max-width:650px;
    margin:14px auto 0;
    color:#b8b6bf;
    font-size:16px;
    line-height:1.65;
}

.dedications-signal{
    position:relative;
    z-index:1;
    display:flex;
    height:28px;
    margin:22px auto 0;
    align-items:center;
    justify-content:center;
    gap:5px;
}

.dedications-signal i{
    width:3px;
    height:8px;
    border-radius:999px;
    background:linear-gradient(#22d3ee,#9449f3);
    box-shadow:0 0 12px rgba(148,73,243,.55);
    animation:dedicationSignal 1.3s ease-in-out infinite;
}

.dedications-signal i:nth-child(2n){animation-delay:.2s}
.dedications-signal i:nth-child(3n){animation-delay:.45s}
.dedications-signal i:nth-child(4n){animation-delay:.7s}
@keyframes dedicationSignal{0%,100%{height:7px;opacity:.55}50%{height:26px;opacity:1}}

.dedications-status-summary{
    display:flex;
    width:min(760px,calc(100% - 32px));
    min-height:72px;
    margin:-14px auto 36px;
    padding:15px 22px;
    position:relative;
    z-index:3;
    align-items:center;
    justify-content:center;
    gap:14px;
    text-align:left;
    border:1px solid rgba(255,255,255,.11);
    border-radius:18px;
    background:rgba(12,12,16,.92);
    box-shadow:0 18px 42px rgba(0,0,0,.35);
    backdrop-filter:blur(16px);
}

.status-summary-dot{
    width:12px;
    height:12px;
    flex:0 0 12px;
    border-radius:50%;
    background:#8d8d95;
    box-shadow:0 0 0 6px rgba(141,141,149,.1);
}

.dedications-status-summary.is-live .status-summary-dot{
    background:#ef233c;
    box-shadow:0 0 0 6px rgba(239,35,60,.12),0 0 18px rgba(239,35,60,.65);
    animation:livePulse 1.5s infinite;
}

@keyframes livePulse{50%{transform:scale(.78);opacity:.7}}

.dedications-status-summary div{display:flex;flex-direction:column;gap:3px}
.dedications-status-summary strong{font-size:14px}
.dedications-status-summary small{color:#929099;font-size:12px}

.station-picker{margin:0}
.section-heading-inline{
    display:flex;
    margin-bottom:18px;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
}
.section-heading-inline > div{display:flex;flex-direction:column;gap:6px}
.section-heading-inline span{color:#ad80e7;font-size:10px;font-weight:900;letter-spacing:.17em}
.section-heading-inline h2{margin:0;font-size:28px}
.section-heading-inline > small{color:#77757e;font-size:11px;text-transform:uppercase;letter-spacing:.1em}

.dedication-stations{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.dedication-station{
    position:relative;
    display:flex;
    min-width:0;
    min-height:154px;
    padding:22px;
    overflow:hidden;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:23px;
    color:#fff;
    text-align:left;
    background:
        linear-gradient(90deg,rgba(7,7,10,.90),rgba(7,7,10,.30)),
        var(--station-image) center/cover;
    box-shadow:0 20px 52px rgba(0,0,0,.32);
    cursor:default;
    transition:.25s ease;
}

.dedication-station::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:3px;
    opacity:.45;
    background:var(--station-color);
    box-shadow:0 0 20px var(--station-color);
}

.dedication-station.is-live{
    cursor:pointer;
    border-color:color-mix(in srgb,var(--station-color) 60%,transparent);
}
.dedication-station.is-live:hover,
.dedication-station.is-selected{
    transform:translateY(-3px);
    box-shadow:0 22px 55px rgba(0,0,0,.42),0 0 30px color-mix(in srgb,var(--station-color) 20%,transparent);
}
.dedication-station.is-selected::after{height:4px;opacity:1}

.station-select-indicator{
    position:absolute;
    z-index:2;
    top:18px;
    left:18px;
    display:grid;
    width:27px;
    height:27px;
    place-items:center;
    border:2px solid rgba(255,255,255,.65);
    border-radius:50%;
    background:rgba(0,0,0,.35);
}
.dedication-station.is-selected .station-select-indicator{
    border-color:var(--station-color);
    background:var(--station-color);
}
.dedication-station.is-selected .station-select-indicator::after{
    content:"✓";
    color:#071014;
    font-size:15px;
    font-weight:950;
}

.station-card-copy{
    position:relative;
    z-index:1;
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:8px;
}
.station-card-copy strong{
    overflow-wrap:anywhere;
    font-size:clamp(22px,2.4vw,34px);
    font-weight:950;
    line-height:.98;
    color:var(--station-color);
    text-shadow:0 0 20px rgba(0,0,0,.65);
}
.station-card-copy small{
    width:max-content;
    max-width:100%;
    padding:6px 10px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.13);
    border-radius:999px;
    color:#d7d5da;
    background:rgba(3,3,5,.66);
    font-size:9px;
    font-weight:850;
    letter-spacing:.08em;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.station-live-badge{
    position:absolute;
    z-index:2;
    top:17px;
    right:17px;
    padding:7px 11px;
    border-radius:9px;
    color:#fff;
    background:#e31b36;
    box-shadow:0 0 20px rgba(227,27,54,.45);
    font-size:10px;
    font-weight:950;
    letter-spacing:.1em;
}

.dedications-main-grid{
    display:grid;
    margin-top:28px;
    grid-template-columns:minmax(0,1.52fr) minmax(320px,.78fr);
    gap:24px;
    align-items:stretch;
}

.dedication-form-card,
.live-dj-card{
    margin:0;
    border:1px solid rgba(255,255,255,.11);
    border-radius:26px;
    background:linear-gradient(145deg,rgba(23,23,29,.96),rgba(8,8,11,.98));
    box-shadow:0 24px 70px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.04);
}

.dedication-form-card{position:relative;padding:30px;overflow:hidden}
.dedication-form-heading{display:flex;align-items:center;gap:15px}
.dedication-form-icon{
    display:grid;
    width:48px;
    height:48px;
    flex:0 0 48px;
    place-items:center;
    border:1px solid rgba(34,211,238,.32);
    border-radius:15px;
    color:#67e8f9;
    background:rgba(34,211,238,.09);
}
.dedication-form-icon svg,
.dedication-submit svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dedication-form-heading > div{display:flex;flex-direction:column;gap:3px}
.dedication-form-heading > div > span{color:#22d3ee;font-size:9px;font-weight:900;letter-spacing:.14em}
.dedication-form-heading h2{margin:0;font-size:26px}

.dedication-form{margin-top:24px}
.dedication-form.is-disabled{opacity:.28;pointer-events:none;filter:grayscale(.5)}
.dedication-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.dedication-form label{position:relative;display:flex;min-width:0;flex-direction:column;gap:8px;color:#d8d6dc;font-size:12px;font-weight:700}
.dedication-form label > span small{color:#777;font-weight:500}
.dedication-span-full{grid-column:1/-1}
.dedication-form input,
.dedication-form textarea{
    width:100%;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    outline:0;
    color:#fff;
    background:rgba(255,255,255,.035);
    font:inherit;
    font-size:14px;
    font-weight:450;
    transition:border-color .2s,box-shadow .2s;
}
.dedication-form input{height:52px;padding:0 15px}
.dedication-form textarea{min-height:116px;padding:14px 50px 14px 15px;resize:vertical;line-height:1.55}
.dedication-form input:focus,
.dedication-form textarea:focus{border-color:rgba(34,211,238,.6);box-shadow:0 0 0 3px rgba(34,211,238,.08)}
.dedication-form input::placeholder,
.dedication-form textarea::placeholder{color:#6f6d75}
.dedication-counter{position:absolute;right:13px;bottom:12px;color:#777;font-size:10px}
.dedication-counter b{font-weight:700}
.dedication-privacy{margin:17px 0;color:#7f7d85;font-size:11px;line-height:1.55}
.dedication-submit{
    display:flex;
    width:100%;
    min-height:54px;
    align-items:center;
    justify-content:center;
    gap:11px;
    border:0;
    border-radius:15px;
    color:#041316;
    background:linear-gradient(135deg,#67e8f9,#06b6d4);
    box-shadow:0 14px 36px rgba(6,182,212,.22),inset 0 1px rgba(255,255,255,.3);
    font-size:12px;
    font-weight:950;
    letter-spacing:.07em;
    cursor:pointer;
}
.dedication-submit:disabled{cursor:not-allowed;filter:grayscale(.65);opacity:.5}
.dedication-submit.is-loading{animation:submitPulse .8s infinite alternate}
@keyframes submitPulse{to{opacity:.65}}
.dedication-feedback{min-height:20px;margin-top:12px;text-align:center;color:#999;font-size:12px}
.dedication-feedback.is-success{color:#5ee9a8}
.dedication-feedback.is-error{color:#ff7184}
.dedication-honeypot{position:absolute!important;left:-9999px!important}

.dedication-offline{
    position:absolute;
    inset:92px 30px 30px;
    z-index:3;
    display:flex;
    padding:28px;
    align-items:center;
    justify-content:center;
    gap:18px;
    border:1px solid rgba(148,73,243,.22);
    border-radius:20px;
    text-align:left;
    background:
        radial-gradient(circle at 0 0,rgba(148,73,243,.18),transparent 50%),
        rgba(11,11,15,.95);
    backdrop-filter:blur(12px);
}
.dedication-offline[hidden]{display:none}
.offline-signal{
    display:grid;
    width:54px;
    height:54px;
    flex:0 0 54px;
    place-items:center;
    border:1px solid rgba(148,73,243,.38);
    border-radius:16px;
    color:#c9a6f9;
    background:rgba(148,73,243,.12);
    font-size:22px;
}
.dedication-offline strong{font-size:17px}
.dedication-offline p{margin:7px 0 0;color:#9b98a2;font-size:13px;line-height:1.55}

.live-dj-card{position:relative;overflow:hidden;padding:20px}
.live-dj-label{display:flex;margin-bottom:14px;align-items:center;gap:9px;color:#c9c7ce;font-size:11px;font-weight:900;letter-spacing:.14em}
.live-dj-label > span{width:9px;height:9px;border-radius:50%;background:#ef233c;box-shadow:0 0 15px rgba(239,35,60,.65)}
.live-dj-media{position:relative;overflow:hidden;aspect-ratio:16/10;border-radius:18px;background:#09090c}
.live-dj-media::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#08080b)}
.live-dj-media img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 28%}
.live-dj-badge{position:absolute;z-index:2;top:13px;right:13px;padding:7px 10px;border-radius:9px;background:#e31b36;font-size:10px;font-weight:950;letter-spacing:.1em}
.live-dj-badge[hidden]{display:none}
.live-dj-content{padding:18px 4px 4px}
.live-dj-content > span{color:#22d3ee;font-size:10px;font-weight:900;letter-spacing:.13em}
.live-dj-content h2{margin:8px 0 7px;font-size:24px;line-height:1.12}
.live-dj-content p{min-height:40px;margin:0 0 18px;color:#99969f;font-size:13px;line-height:1.5}
.live-dj-content button{display:flex;width:100%;min-height:50px;padding:0 18px;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(148,73,243,.34);border-radius:14px;color:#fff;background:linear-gradient(135deg,rgba(168,85,247,.24),rgba(124,58,237,.14));font:900 11px/1.2 inherit;letter-spacing:.08em;cursor:pointer;appearance:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease}
.live-dj-content button:hover{border-color:rgba(168,85,247,.66);background:linear-gradient(135deg,rgba(168,85,247,.34),rgba(124,58,237,.22));box-shadow:0 10px 28px rgba(124,58,237,.16)}
.live-dj-content button:active{transform:translateY(1px)}
.live-dj-content button:focus-visible{outline:2px solid #c9a6f9;outline-offset:3px}
.live-dj-content button.is-playing{border-color:rgba(34,211,238,.58);background:linear-gradient(135deg,rgba(34,211,238,.23),rgba(8,145,178,.14));box-shadow:0 0 24px rgba(34,211,238,.12)}
.live-dj-content button.is-loading{cursor:wait;opacity:.82}
.live-listen-icon{width:17px;text-align:center;font-size:12px;line-height:1}
#dedications-audio{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

.dedications-how{margin:54px 0 0}
.dedications-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.dedications-steps article{position:relative;min-height:152px;padding:24px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015));overflow:hidden}
.dedications-steps b{position:absolute;right:17px;top:9px;color:rgba(148,73,243,.14);font-size:52px;font-weight:950}
.dedications-steps strong{position:relative;display:block;font-size:16px}
.dedications-steps p{position:relative;margin:10px 0 0;color:#94919a;font-size:13px;line-height:1.55}

@media(max-width:980px){
    .dedications-main-grid{grid-template-columns:1fr}
    .live-dj-card{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1fr);gap:20px}
    .live-dj-label{grid-column:1/-1;margin-bottom:-4px}
    .live-dj-media{aspect-ratio:16/11}
    .live-dj-content{display:flex;padding:10px 5px;flex-direction:column;justify-content:center}
}

@media(max-width:760px){
    .dedications-page main{padding:22px 12px 48px}
    .dedications-hero{padding:35px 16px 30px;border-radius:23px}
    .dedications-hero::before,.dedications-hero::after{width:20%;opacity:.25}
    .dedications-hero p{font-size:14px}
    .dedications-status-summary{width:calc(100% - 20px);margin-bottom:30px;padding:14px 16px}
    .dedications-status-summary strong{font-size:13px}
    .dedications-status-summary small{font-size:10px;line-height:1.4}
    .section-heading-inline h2{font-size:23px}
    .section-heading-inline > small{display:none}
    .dedication-stations{grid-template-columns:1fr;gap:12px}
    .dedication-station{min-height:122px;padding:18px}
    .station-card-copy{padding-left:42px}
    .station-card-copy strong{font-size:27px}
    .station-select-indicator{top:50%;transform:translateY(-50%)}
    .dedication-station.is-live:hover,.dedication-station.is-selected{transform:none}
    .dedications-main-grid{gap:16px;margin-top:20px}
    .dedication-form-card{padding:21px 15px;border-radius:21px}
    .dedication-form-heading{padding:0 3px}
    .dedication-form-heading h2{font-size:22px}
    .dedication-form-grid{grid-template-columns:1fr;gap:14px}
    .dedication-span-full{grid-column:auto}
    .dedication-offline{inset:83px 15px 21px;padding:22px 17px;flex-direction:column;text-align:center}
    .dedication-offline strong{font-size:16px}
    .dedication-offline p{font-size:12px}
    .live-dj-card{display:block;padding:15px;border-radius:21px}
    .live-dj-label{margin-bottom:12px}
    .live-dj-media{aspect-ratio:16/11}
    .live-dj-content{padding:17px 3px 3px}
    .dedications-how{margin-top:40px}
    .dedications-steps{grid-template-columns:1fr;gap:12px}
    .dedications-steps article{min-height:126px}
}

@media(max-width:390px){
    .dedications-hero h1{font-size:39px}
    .dedications-eyebrow{font-size:8px}
    .station-card-copy strong{font-size:24px}
    .station-live-badge{top:13px;right:13px}
}

@media(prefers-reduced-motion:reduce){
    .dedications-signal i,.dedications-status-summary.is-live .status-summary-dot{animation:none}
}
