:root{--c3gds-ink:#342617;--c3gds-green:#72c68b}
.c3gds-app,.c3gds-app *{box-sizing:border-box}
.c3gds-stage{position:relative;left:50%;transform:translateX(-50%);box-sizing:border-box;width:100vw;height:100vh;height:100dvh;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;background:#020202}
.c3gds-fullscreen-toggle{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.c3gds-app{position:relative;width:min(100%,56.2371dvh,680px);aspect-ratio:3814/6782;min-height:0!important;margin:0 auto;overflow:hidden;color:var(--c3gds-ink);background:#020202;font-family:"Courier New",Courier,monospace;isolation:isolate;-webkit-tap-highlight-color:transparent;container-type:inline-size}
.c3gds-app:before{content:"";position:absolute;inset:0;z-index:20;pointer-events:none;box-shadow:inset 0 0 2cqw rgba(0,0,0,.48)}
.c3gds-base,.c3gds-needle-layer{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:fill;user-select:none;pointer-events:none}
.c3gds-base{z-index:0;opacity:1}
.c3gds-base-playing{opacity:0}
.c3gds-app.is-playing .c3gds-base-idle{opacity:0}
.c3gds-app.is-playing .c3gds-base-playing{opacity:1}
.c3gds-disc-layer{position:absolute;left:11.05%;top:14.98%;width:76.77%;height:auto;aspect-ratio:1;z-index:2;opacity:0;margin:0;object-fit:contain;user-select:none;pointer-events:none;transform-origin:50% 50%;will-change:transform}
.c3gds-disc-glare{position:absolute;left:11.05%;top:14.98%;width:76.77%;aspect-ratio:1;z-index:3;border-radius:50%;pointer-events:none;opacity:.26;background:conic-gradient(from 205deg at 50% 50%,transparent 0 8%,rgba(255,246,215,.16) 13%,rgba(255,255,255,.3) 17%,rgba(255,246,215,.1) 21%,transparent 27% 67%,rgba(126,171,196,.11) 74%,transparent 82%);mix-blend-mode:screen;filter:blur(.16cqw)}
.c3gds-needle-layer{z-index:4;opacity:0;clip-path:circle(28.5% at 49.33% 36.50%)}
.c3gds-app.is-loading .c3gds-disc-layer{opacity:1;animation:c3gds-spin .72s linear infinite}
.c3gds-app.is-playing .c3gds-disc-layer{opacity:1;animation:c3gds-spin 1.78s linear infinite}
.c3gds-app.is-playing .c3gds-needle-layer{opacity:1}
.c3gds-grain{position:absolute;inset:0;z-index:19;pointer-events:none;opacity:.07;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}
.c3gds-header{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Zonas táctiles: el disco y el gran botón físico ejecutan Shuffle. */
.c3gds-turntable{position:absolute;inset:0;z-index:7;pointer-events:none}
.c3gds-disc-button{position:absolute;left:11.05%;top:14.98%;width:76.53%;aspect-ratio:1;border:0;padding:0;border-radius:50%;background:transparent;cursor:pointer;touch-action:manipulation;pointer-events:auto}
.c3gds-disc-button:focus-visible,.c3gds-shuffle-button:focus-visible,.c3gds-trip-button:focus-visible,.c3gds-fullscreen-button:focus-visible,.c3gds-source:focus-visible{outline:.45cqw solid #fff0a5;outline-offset:.5cqw}
.c3gds-record,.c3gds-vinyl,.c3gds-grooves,.c3gds-sheen,.c3gds-label,.c3gds-halo,.c3gds-arm{display:none}

/* Pantalla vacía entregada por el usuario: toda la información es HTML dinámico. */
.c3gds-status{position:absolute;left:12.35%;top:60.72%;width:75.05%;height:11.55%;z-index:8;padding:1.35cqw 2.15cqw 1.1cqw;text-align:left;overflow:hidden;color:var(--c3gds-ink);text-shadow:0 .08cqw rgba(255,255,255,.28)}
.c3gds-kicker{display:block;margin:0 0 .35cqw;font-size:clamp(7px,1.35cqw,10px);font-weight:900;line-height:1;letter-spacing:.055em}
.c3gds-title{display:block;max-width:98%;margin:0;font:900 clamp(13px,2.7cqw,20px)/1.03 "Courier New",Courier,monospace;color:#281c12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c3gds-concert,.c3gds-details,.c3gds-identifier,.c3gds-recording{display:block;margin:.38cqw 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#44311f}
.c3gds-concert{max-width:98%;font-size:clamp(8px,1.48cqw,11px);font-weight:800;line-height:1.05}
.c3gds-details{max-width:98%;font-size:clamp(8px,1.35cqw,10px);font-weight:700;line-height:1.05}
.c3gds-meta-row{display:grid;grid-template-columns:44% 56%;gap:1cqw;width:98%;margin-top:.15cqw;padding-right:1cqw}
.c3gds-identifier,.c3gds-recording{max-width:100%;font-size:clamp(6px,1.03cqw,8px);font-weight:700;line-height:1.05;opacity:.86}
.c3gds-progress{position:absolute;left:2.15cqw;right:2.15cqw;bottom:2.25cqw;height:.45cqw;min-height:2px;border-radius:9px;overflow:hidden;background:#84641355}
.c3gds-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#912c25,#d98a32,#4e7946);transition:width .35s linear}
.c3gds-time{position:absolute;left:2.15cqw;right:2.15cqw;bottom:.75cqw;display:flex;justify-content:space-between;font-size:clamp(6px,1.05cqw,8px);font-weight:900;line-height:1;color:#3f2f20}

/* El aro rojo respira despacio, tanto en espera como durante la reproducción. */
.c3gds-shuffle-button{position:absolute;left:36.45%;top:74.65%;width:27.1%;aspect-ratio:1;z-index:10;border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer;touch-action:manipulation}
.c3gds-shuffle-button span{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.c3gds-shuffle-button:after{content:"";position:absolute;inset:8%;border-radius:50%;opacity:.28;box-shadow:0 0 1.35cqw .28cqw rgba(255,43,25,.76),inset 0 0 1.2cqw rgba(255,203,106,.7);animation:c3gds-button-breathe 3.8s ease-in-out infinite alternate}
.c3gds-app.is-loading .c3gds-shuffle-button:after{animation-duration:2.2s}
.c3gds-app.is-playing .c3gds-shuffle-button:after{box-shadow:0 0 1.65cqw .42cqw rgba(255,48,28,.9),inset 0 0 1.35cqw rgba(255,211,118,.82)}
.c3gds-app.is-error .c3gds-shuffle-button:after{box-shadow:0 0 1.8cqw .5cqw rgba(255,38,24,.96)}

/* La placa impresa A Long Strange Trip abre el caleidoscopio. */
.c3gds-trip-button{position:absolute;left:88.15%;top:45.6%;width:10.65%;height:12.35%;z-index:18;border:0;border-radius:1.2cqw;padding:0;background:transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.c3gds-trip-button:active{background:rgba(255,221,143,.08);box-shadow:inset 0 0 1.25cqw rgba(255,218,132,.36)}

/* Sustituye el engranaje impreso por un control real de pantalla completa. */
.c3gds-fullscreen-button{position:absolute;left:88.25%;top:90.55%;width:7.85%;aspect-ratio:1;z-index:22;border:.3cqw solid #7b6040;border-radius:50%;padding:1.75%;display:grid;place-items:center;color:#e0b96f;background:radial-gradient(circle at 42% 36%,#393126 0 20%,#171513 58%,#080807 100%);box-shadow:inset 0 0 0 .28cqw #201a14,0 .2cqw .55cqw rgba(0,0,0,.75);cursor:pointer;touch-action:manipulation}
.c3gds-fullscreen-button svg{position:absolute;width:55%;height:55%;fill:currentColor;filter:drop-shadow(0 .12cqw .08cqw #000)}
.c3gds-fullscreen-exit{display:none}
.c3gds-app.is-fullscreen .c3gds-fullscreen-enter{display:none}
.c3gds-app.is-fullscreen .c3gds-fullscreen-exit{display:block}

.c3gds-stage.c3gds-viewport-fullscreen{position:fixed!important;inset:0!important;z-index:2147483647!important;width:100vw!important;height:var(--c3gds-fs-height,100dvh)!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;margin:0!important;background:#000!important;overflow:hidden!important;transform:none!important}
.c3gds-stage.c3gds-viewport-fullscreen .c3gds-app{width:var(--c3gds-fs-width,56.24dvh)!important;height:var(--c3gds-fs-height,100dvh)!important;max-width:none!important;min-width:0!important;margin:0 auto!important;flex:none!important;transform:none!important}
html.c3gds-lock-scroll{overflow:hidden!important;overscroll-behavior:none!important}
body.c3gds-lock-scroll{position:fixed!important;top:var(--c3gds-page-scroll,0)!important;left:0!important;width:100%!important;overflow:hidden!important;overscroll-behavior:none!important}

/* El caleidoscopio vive fuera de Divi y ocupa siempre el viewport visible real. */
.c3gds-kaleidoscope-overlay{position:fixed!important;left:var(--c3gds-kaleidoscope-left,0)!important;top:var(--c3gds-kaleidoscope-top,0)!important;width:var(--c3gds-kaleidoscope-width,100vw)!important;height:var(--c3gds-kaleidoscope-height,100dvh)!important;z-index:2147483647!important;box-sizing:border-box!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#050510!important;isolation:isolate!important}
.c3gds-kaleidoscope-overlay[hidden]{display:none!important}
.c3gds-kaleidoscope-frame{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;margin:0!important;padding:0!important;background:#050510!important}
.c3gds-kaleidoscope-close{position:absolute!important;top:max(12px,env(safe-area-inset-top))!important;right:max(12px,env(safe-area-inset-right))!important;z-index:2!important;width:46px!important;height:46px!important;border:1px solid rgba(238,198,119,.68)!important;border-radius:50%!important;padding:0!important;display:grid!important;place-items:center!important;color:#f0cf8e!important;background:rgba(10,8,9,.64)!important;box-shadow:0 2px 18px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.08)!important;font:300 36px/1 Arial,sans-serif!important;cursor:pointer!important;touch-action:manipulation!important;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.c3gds-kaleidoscope-close:focus-visible{outline:3px solid #fff0a5!important;outline-offset:3px!important}
html.c3gds-kaleidoscope-lock{overflow:hidden!important;overscroll-behavior:none!important}
body.c3gds-kaleidoscope-lock{position:fixed!important;top:var(--c3gds-kaleidoscope-scroll,0)!important;left:0!important;width:100%!important;overflow:hidden!important;overscroll-behavior:none!important}

/* Respaldo sin JavaScript para Safari/Chrome/DuckDuckGo en iPhone. */
@supports selector(.c3gds-stage:has(.c3gds-fullscreen-toggle:checked)){
  .c3gds-stage:has(>.c3gds-fullscreen-toggle:checked){position:fixed!important;inset:0!important;z-index:2147483647!important;width:100vw!important;height:100vh!important;height:100dvh!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;background:#000!important;overflow:hidden!important}
  .c3gds-stage:has(>.c3gds-fullscreen-toggle:checked) .c3gds-app{width:56.24vh!important;width:56.24dvh!important;height:100vh!important;height:100dvh!important;max-width:none!important;margin:auto!important;flex:none}
  .c3gds-stage:has(>.c3gds-fullscreen-toggle:checked) .c3gds-fullscreen-enter{display:none}
  .c3gds-stage:has(>.c3gds-fullscreen-toggle:checked) .c3gds-fullscreen-exit{display:block}
}

.c3gds-footer{position:absolute;left:16%;bottom:3.25%;width:68%;height:3.6%;z-index:9}
.c3gds-state{display:none}
.c3gds-source{position:absolute;inset:0;color:transparent;text-decoration:none}
.c3gds-audio{display:none}
.c3gds-app.label-flash .c3gds-status{animation:c3gds-screen-flash .45s ease}

@keyframes c3gds-spin{to{transform:rotate(360deg)}}
@keyframes c3gds-button-breathe{from{opacity:.06;filter:brightness(.52);transform:scale(.965)}to{opacity:1;filter:brightness(1.62);transform:scale(1.03)}}
@keyframes c3gds-screen-flash{0%{opacity:.25}100%{opacity:1}}

.c3gds-app.c3gds-auto{min-height:0!important}
@media(prefers-reduced-motion:reduce){.c3gds-disc-layer,.c3gds-shuffle-button:after,.c3gds-status{animation:none!important;transition:none!important}}
