/* RADIO RIEN — papier, interférences, danses facultatives. */
:root{--beat:428.571ms;--bar:1714.284ms;--radio-pink:#ff88c6}
.intro{background:#ff5100}
.intro::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(#191a172b .6px,transparent .6px);background-size:5px 5px}
.hero-first{letter-spacing:-.034em}
.hero-last{color:var(--acid);text-shadow:3px 3px 0 var(--ink),-1px -1px 0 var(--ink);white-space:nowrap;position:relative;font-size:clamp(8rem,26vw,455px)}
.hero-last::before{content:'POUR USAGE INTÉRIEUR / EXTÉRIEUR';position:absolute;bottom:-16px;left:8px;color:var(--ink);text-shadow:none;font:400 10px/1.4 var(--mono);letter-spacing:.12em;white-space:normal}
.hero-letter{display:inline-block;transform-origin:50% 85%;position:relative;animation:letter-idle 10s ease-in-out infinite;animation-delay:calc(var(--i) * -1.1s)}
.hero-letter:hover{color:var(--light)}
@keyframes letter-idle{0%,78%,100%{translate:0 0;rotate:0deg}86%{translate:0 -.008em;rotate:-.6deg}92%{translate:0 .003em;rotate:.35deg}}
.hero-first::before{content:attr(data-echo);position:absolute;inset:.04em 0 0;color:var(--light);clip-path:inset(49% 0 48%);translate:3px 0;pointer-events:none;opacity:.85}
.hero-art::after{background:var(--acid);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--ink);transform:rotate(5deg)}
.hero-art::before{border-style:dashed;transform:rotate(-8deg);inset:2% -1% 7% 1%}
.art-registration span{background:var(--ink);color:var(--light);padding:5px 9px;font-size:11px}
.hero-art .hero-zine{box-shadow:5px 6px 0 #191a17a3;width:37%}
.hero-art .hero-zine-front{right:4%}
.random-stamp{background:var(--radio-pink);width:112px;height:112px;outline:1px dashed var(--ink);outline-offset:-7px}
.random-stamp:hover{background:var(--acid)}
.hero-marginalia{display:flex;justify-content:space-between;gap:16px;margin-top:30px;padding-top:12px;border-top:1px dashed currentColor;font:400 10px/1.4 var(--mono);letter-spacing:.07em}
.hero-marginalia span:nth-child(2){background:var(--ink);color:var(--light);padding:2px 8px;rotate:-2deg}
.hero-bottom{margin-top:18px;border:0;padding-top:8px;padding-bottom:4px}
.hero-copy{font-size:clamp(1rem,1.4vw,1.35rem)}
.hero-aside{font-size:12px}
.radio-deck{display:grid;grid-template-columns:1fr 1.4fr .9fr;gap:25px;align-items:center;margin-top:27px;padding:22px 24px;background:var(--ink);color:var(--light);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--acid);position:relative;isolation:isolate}
.radio-frequency{font:10px/1.4 var(--mono);letter-spacing:.08em;color:#c8cbbd}
.radio-identity h2{font:700 clamp(1.8rem,3.5vw,3.3rem)/1 var(--display);letter-spacing:-.025em;white-space:nowrap;margin:7px 0 10px}
.radio-identity em{color:var(--acid);font-style:normal}
.radio-identity h2>span{display:inline-block;color:var(--radio-pink);font:400 .67em/1 var(--sans);margin-left:8px;vertical-align:middle}
.radio-identity p{font:11px/1.5 var(--mono);max-width:240px;min-height:33px}
.radio-instrument{min-width:0}
.radio-scope{height:50px;border:1px solid #f1f2ec40;position:relative;background:#0c0e09;overflow:hidden}
.radio-scope::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#8ace0008 3px 4px);pointer-events:none}
.radio-scope canvas{display:block;width:100%;height:100%}
.radio-scope>span{position:absolute;top:3px;left:7px;color:#b8c7a0;font:9px/1.3 var(--mono);letter-spacing:.04em}
.radio-transport{display:flex;gap:7px;margin-top:9px}
.radio-transport button{border:1px solid var(--acid);padding:12px 9px;min-height:44px;font:11px/1.3 var(--mono);text-align:center}
.radio-play{display:flex;justify-content:center;align-items:center;gap:10px;flex:1;background:var(--acid);color:var(--ink)}
.play-glyph{font-size:14px}
.radio-play:hover{background:var(--light)}
.radio-sound{background:none;color:var(--acid);min-width:83px}
.radio-sound[aria-pressed=true]{background:var(--radio-pink);color:var(--ink);border-color:var(--radio-pink)}
.radio-sound:hover{color:var(--light);border-color:var(--light)}
.radio-dials{border-left:1px dashed #f1f2ec60;padding-left:24px;min-width:0}
.radio-dials>label{display:flex;align-items:baseline;gap:10px;font:11px var(--mono)}
.radio-dials output{font:700 2rem/1 var(--display);color:var(--acid);margin-left:auto}
.radio-dials label>span{font-size:10px;color:#bdc0b4}
#radio-tempo{display:block;width:100%;margin:8px 0 12px;height:23px;accent-color:var(--acid);cursor:ew-resize;background:none}
.radio-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}
.radio-bottom a,.radio-bottom button{font:10px/1.4 var(--mono);padding:6px 0;border:0;color:var(--light);background:none;text-decoration:underline;text-underline-offset:3px;min-height:34px}
.radio-bottom button:hover,.radio-bottom a:hover{color:var(--acid)}
.reality-panel{margin-top:22px;gap:16px}
.panel-label,.intensity-note{font-size:11px}
.intensity-options button{font-size:11px}
.ticker{height:58px;background:var(--acid);transform:rotate(-.5deg);position:relative;z-index:2;box-shadow:0 6px 0 var(--paper)}
.ticker-track>span{font-size:1.6rem;letter-spacing:-.005em}
.ticker-track b:nth-child(2n){color:#d53a20}
.collection .big-title{letter-spacing:-.025em}
.collection .title-swerve{position:relative;rotate:-1deg;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:.12em;text-decoration-thickness:.025em}
.collection .section-top{border-top-style:dashed}
.collection .edition-number{display:inline-block;font-size:11px;background:var(--light);color:var(--ink);padding:2px 7px;rotate:-3deg}
.collection .edition-card:nth-child(even) .edition-number{background:var(--acid);rotate:3deg}
.collection .edition-card:nth-child(3n) .edition-number{background:var(--radio-pink)}
.edition-card:focus-within{z-index:15}
.edition-title{line-height:1.08}
.edition-buy{font-size:12px!important;min-height:43px}
.edition-meta{font-size:11px}
.edition-card{--dance-phase:0s}
.edition-card:nth-child(4n+1){--dance-phase:-.12s}
.edition-card:nth-child(4n+2){--dance-phase:-.36s}
.edition-card:nth-child(4n+3){--dance-phase:-.64s}
.edition-card:nth-child(4n){--dance-phase:-.93s}
.poetry{overflow:clip}
.poetry-frequency{display:inline-block;font:11px/1.4 var(--mono);color:var(--ink);background:var(--acid);padding:5px 9px;margin:0 0 22px;rotate:-2deg;border:1px solid var(--ink)}
.poetry-title{font-size:clamp(3.8rem,6.5vw,7.1rem)}
.poetry-small{font-size:14px}
.poetry-layout{grid-template-columns:.82fr 1.18fr;gap:54px;align-items:start}
.poetry-side{min-width:0}
.poem{min-width:0;transform:rotate(-.6deg);padding:36px 32px;background:#fffef7;box-shadow:9px 9px 0 var(--orange)}
.poem-text{font-size:clamp(1.3rem,2.2vw,2.4rem);line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere}
.poem-stanza{margin:0;white-space:normal}
.poem-stanza+.poem-stanza{margin-top:1.15em}
.poem::before{content:'RÉCEPTION / FRAGMENT DE SACHA';font-size:10px}
.poem-credit{font-size:12px}
.poem-draw{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;background:var(--ink);color:var(--light);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--acid);padding:15px 16px;font:12px/1.4 var(--mono);max-width:100%;text-align:left;min-height:48px}
.poem-draw span{font-size:23px;line-height:1}
.poem-draw:hover{background:var(--acid);color:var(--ink);box-shadow:4px 4px 0 var(--orange)}
.poem-draw-status{font:11px/1.4 var(--mono);min-height:20px;margin-top:12px}
.poetry-orbit{display:flex;align-items:center;gap:12px;margin-top:24px;font:700 clamp(2.5rem,4.3vw,4.9rem)/1 var(--display);text-transform:uppercase;letter-spacing:-.03em}
.poetry-orbit span:first-child{rotate:-12deg;color:var(--orange)}
.poetry-orbit span:last-child{rotate:4deg}
.poetry-orbit i{font-style:normal;color:var(--ink);font-size:1.1em}
.poem.is-receiving{animation:paper-receive .4s ease-out}
@keyframes paper-receive{from{translate:7px 0;box-shadow:15px 9px 0 var(--acid)}to{translate:0 0;box-shadow:9px 9px 0 var(--orange)}}
.footer-shout{position:relative}
.footer-shout::after{content:'FIN DE TRANSMISSION ?';position:absolute;right:5%;bottom:-12px;padding:4px 9px;background:var(--acid);color:var(--ink);rotate:-4deg;font:11px/1.4 var(--mono);letter-spacing:0}
.radio-rescue{position:fixed;bottom:16px;right:16px;z-index:30;display:flex;gap:11px;align-items:center;background:var(--acid);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--radio-pink);padding:12px 15px;min-height:48px;font:12px var(--mono)}
.radio-rescue span:first-child{font-size:19px;line-height:1}
.radio-rescue:hover{background:var(--light)}
.paper-burst{position:fixed;inset:0;pointer-events:none;z-index:45;overflow:hidden}
.paper-confetti{position:absolute;left:var(--x);top:var(--y);display:block;background:var(--acid);color:var(--ink);padding:7px 12px;border:1px solid var(--ink);font:700 clamp(1.3rem,3vw,3rem)/1 var(--display);text-transform:uppercase;box-shadow:3px 3px 0 var(--ink);animation:confetti-flight 1500ms cubic-bezier(.15,.7,.5,1) forwards;animation-delay:var(--delay)}
.paper-confetti:nth-child(3n){background:var(--radio-pink)}
.paper-confetti:nth-child(3n+1){background:var(--light)}
@keyframes confetti-flight{0%{transform:translate(0,20px) rotate(var(--r));opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),-170px) rotate(calc(var(--r) + 16deg));opacity:0}}
.rave-message{position:fixed;top:20px;left:50%;translate:-50% 0;rotate:-2deg;z-index:46;max-width:calc(100vw - 36px);width:max-content;background:var(--radio-pink);color:var(--ink);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--acid);padding:13px 20px;font:700 clamp(1.2rem,3vw,2rem)/1.1 var(--display);text-transform:uppercase;pointer-events:none;text-align:center}
body[data-dancing=true] .hero-letter{animation:letter-idle 10s ease-in-out infinite;animation-delay:calc(var(--i) * -1.1s)}
body[data-dancing=true] .hero-art .hero-zine{animation:cover-dance var(--bar) ease-in-out infinite;animation-delay:var(--dance-phase,0s)}
body[data-dancing=true] .hero-art .hero-zine-middle{--dance-phase:-.42s}
body[data-dancing=true] .hero-art .hero-zine-front{--dance-phase:-.86s}
body[data-dancing=true] .hero-zine:hover,body[data-dancing=true] .hero-zine:focus-visible{animation-play-state:paused}
body[data-dancing=true] .radio-identity h2>span{animation:radio-spin calc(var(--bar)*8) linear infinite}
body[data-dancing=true] .edition-card{animation:card-dance calc(var(--bar)*2) ease-in-out infinite;animation-delay:var(--dance-phase)}
body[data-dancing=true] .edition-card:hover,body[data-dancing=true] .edition-card:focus-within{animation:none}
body[data-dancing=true] .title-swerve{animation:title-dance calc(var(--bar)*2) ease-in-out infinite}
body[data-dancing=true] .poetry-orbit i{animation:radio-spin calc(var(--bar)*8) linear infinite}
body[data-dancing=true] .ticker-track{animation-duration:32s}
body[data-dancing=true] .radio-deck{box-shadow:5px 5px 0 var(--radio-pink)}
@keyframes letter-dance{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -.008em;rotate:.4deg}}
@keyframes cover-dance{0%,100%{translate:0 0;rotate:-.4deg}50%{translate:0 -4px;rotate:.6deg}}
@keyframes card-dance{0%,100%{translate:0 0;rotate:-.25deg}50%{translate:0 -2px;rotate:.25deg}}
@keyframes title-dance{0%,100%{translate:0 0;rotate:-.25deg}50%{translate:2px -1px;rotate:.15deg}}
@keyframes radio-spin{to{rotate:360deg}}
body[data-era="2003"] .hero-last{color:var(--acid);text-shadow:4px 4px 0 #597b26}
body[data-era="2003"] .hero-last::before{color:var(--acid)}
body[data-era="2003"] .radio-deck{border-color:var(--acid)}
body[data-intensity="0"] .hero-letter{animation:none}
html[data-motion="paused"] *,html[data-motion="paused"] *::before,html[data-motion="paused"] *::after{animation-play-state:paused!important}
body.modal-open .intro *,body.modal-open main *,body.modal-open .site-footer *{animation-play-state:paused!important}
body.modal-open .radio-rescue,body.modal-open .paper-burst,body.modal-open .rave-message{display:none}
@media(min-width:1600px){.radio-deck{padding:28px 32px;gap:36px}.radio-identity h2{font-size:3.5rem}}
@media(max-width:1100px){.radio-deck{grid-template-columns:1fr 1.5fr;gap:18px;padding:20px}.radio-dials{grid-column:1/-1;display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:20px;border-left:0;border-top:1px dashed #f1f2ec60;padding:14px 0 0}.radio-dials output{font-size:1.7rem}.radio-bottom{gap:22px}#radio-tempo{margin:0}.radio-identity h2{font-size:2.6rem}.radio-frequency{font-size:9px}}
@media(max-width:760px){.hero-last::before{font-size:8px;bottom:-12px;left:2px;max-width:90%}.hero-marginalia{margin-top:35px;font-size:8px;padding-top:10px;gap:10px}.hero-marginalia span:last-child{display:none}.hero-bottom{margin-top:18px;padding-top:0}.hero-art .art-registration span{font-size:8px;padding:3px 5px}.random-stamp{width:69px;height:69px;outline-offset:-5px}.radio-deck{grid-template-columns:1fr;padding:18px 16px;gap:15px;margin-top:22px;box-shadow:4px 4px 0 var(--acid)}.radio-identity{display:grid;grid-template-columns:1fr 1fr;align-items:end;column-gap:12px}.radio-identity h2{grid-row:2;font-size:2.5rem;margin:5px 0 0}.radio-frequency{grid-column:1/-1;font-size:9px}.radio-identity p{grid-row:2;grid-column:2;font-size:10px;min-height:0;max-width:180px;text-align:right}.radio-dials{grid-template-columns:auto 1fr;gap:10px 15px;padding-top:11px}.radio-dials label{font-size:10px;gap:6px}.radio-dials output{font-size:1.6rem}.radio-bottom{grid-column:1/-1;border-top:1px solid #f1f2ec20;padding-top:5px;justify-content:space-between}.radio-bottom a,.radio-bottom button{font-size:11px}.radio-transport button{font-size:11px;padding:12px 8px}.radio-scope{height:43px}.reality-panel{gap:8px}.intensity-options button{font-size:10px;padding:10px}.panel-label{font-size:10px}.intensity-note{font-size:10px}.ticker{height:47px}.ticker-track>span{font-size:1.35rem}.collection .title-swerve{text-decoration-thickness:2px}.poetry-layout{grid-template-columns:1fr;gap:30px}.poetry-title{font-size:clamp(3.8rem,11vw,5.8rem)}.poetry-small{font-size:14px}.poetry-frequency{font-size:10px;margin-bottom:20px}.poetry-orbit{display:none}.poem-draw{font-size:11px;width:100%;margin-top:24px}.poem-draw-status{margin-top:10px;min-height:16px}.poem{padding:32px 23px;margin-inline:4px!important}.poem-text{font-size:clamp(1.15rem,4.6vw,2rem);line-height:1.4}.poem::before{font-size:9px;left:13px}.poem-credit{font-size:11px}.radio-rescue{bottom:12px;right:12px;padding:11px 12px;font-size:11px}.footer-shout::after{font-size:9px;bottom:-11px}.edition-buy{font-size:11px!important}.edition-meta{font-size:10px}.hero-first::before{translate:1px 0}}
@media(max-width:390px){.hero-bottom{grid-template-columns:1fr auto;gap:12px}.hero-copy{font-size:.85rem}.hero-bottom .button{font-size:9px;max-width:155px;padding:11px;gap:8px}.radio-identity h2{font-size:2.15rem}.radio-identity p{font-size:9px}.radio-frequency{font-size:8px}.radio-transport button{font-size:10px}.radio-sound{min-width:73px}.intensity-options button{font-size:9px;padding-inline:8px}.panel-label{font-size:9px}.hero-marginalia{font-size:7px}.hero-marginalia span:nth-child(2){padding-inline:5px}}
@media(prefers-reduced-motion:reduce){.hero-letter,.hero-art .hero-zine,.edition-card,.poetry-orbit i{animation:none!important}.hero-first::before{display:none}.paper-burst{display:none!important}.ticker{transform:none}.poem.is-receiving{animation:none!important}}
@media(max-width:760px){.hero-last{font-size:24vw}.hero-art .hero-zine{width:40%}.hero-art .hero-zine-front{right:2%}.hero-art .hero-zine-middle{left:28%}.hero-art::after{right:5%}.hero-art::before{right:3%}}

/* RIEN NORMAL / a playable patch bay. */
.radio-deck{grid-template-columns:.85fr 1.25fr .8fr;gap:20px;padding:24px}
.radio-identity h2{font-size:clamp(2rem,3.1vw,3.1rem)}
.radio-identity p{font-size:12px}
.radio-frequency{font-size:10px}
.radio-transport .radio-sound{flex:1.7;background:var(--acid);color:var(--ink);font-size:12px;min-height:48px}
.radio-transport .radio-sound[aria-pressed=true]{background:var(--radio-pink)}
.radio-transport .radio-play{flex:1;background:transparent;color:var(--light);border-color:#999e8c;font-size:12px}
.radio-scope{height:65px}
.radio-bottom button{font-size:11px}
#machine-kill{color:var(--radio-pink)}
.machine-controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;border-top:1px dashed #77805f;padding-top:20px}
.machine-controls label{display:grid;grid-template-columns:1fr auto;gap:6px;font:12px/1.5 var(--mono);color:var(--light)}
.machine-controls output{color:var(--acid)}
.machine-controls input{grid-column:1/-1;width:100%;height:24px;margin:0;accent-color:var(--acid);cursor:ew-resize}
.machine-playground{grid-column:1/-1;display:grid;grid-template-columns:1.4fr 1fr;gap:26px;border-top:1px solid #77805f;padding-top:17px}
.machine-touch>label{display:flex;justify-content:space-between;gap:15px;font:11px/1.5 var(--mono);margin-bottom:10px}
.machine-touch>label>span{font-size:10px;color:#b9c0a9}
#machine-pad{--pad-x:50%;--pad-y:50%;height:136px;border:1px solid #738151;position:relative;overflow:hidden;cursor:crosshair;touch-action:none;background-color:#0c1008;background-image:linear-gradient(#8ace0015 1px,transparent 1px),linear-gradient(90deg,#8ace0015 1px,transparent 1px);background-size:25px 25px}
#machine-pad:focus-visible{outline:2px solid var(--radio-pink);outline-offset:3px}
#machine-pad::before,#machine-pad::after{content:'';position:absolute;pointer-events:none;background:#ff88c676}
#machine-pad::before{left:var(--pad-x);width:1px;inset-block:0}
#machine-pad::after{top:var(--pad-y);height:1px;inset-inline:0}
.machine-cross{position:absolute;left:var(--pad-x);top:var(--pad-y);translate:-50% -50%;font:32px/1 var(--mono);color:var(--acid)}
.machine-coordinates{position:absolute;bottom:7px;left:9px;font:10px var(--mono);background:#0c1008;color:#ccd6bd;padding:2px}
.machine-hint{font:10px/1.6 var(--mono);color:#bac1aa;display:block;margin-top:7px}
.machine-triggers{display:flex;flex-direction:column;justify-content:center;gap:11px}
.machine-triggers button{font:13px/1.35 var(--mono);padding:14px;border:1px solid var(--acid);background:transparent;color:var(--acid);min-height:48px}
.machine-triggers button:hover{background:#8ace0020}
.machine-triggers button small{font:10px var(--mono);display:inline-block;margin-left:10px;color:#ccd6bd}
#machine-stutter{touch-action:none;user-select:none}
#machine-stutter[aria-pressed=true]{background:var(--light);color:var(--ink)}
#machine-stutter[aria-pressed=true] small{color:var(--ink)}
#machine-runaway{background:var(--radio-pink);color:var(--ink);border:1px solid var(--radio-pink);box-shadow:3px 3px 0 var(--acid)}
#machine-runaway[aria-pressed=true]{background:var(--acid);box-shadow:3px 3px 0 var(--radio-pink)}
#machine-event{font:11px/1.5 var(--mono);min-height:34px;color:#d3d8c8}
.radio-deck[data-runaway=true]{border-color:var(--radio-pink)}
@media(max-width:1100px){.radio-deck{grid-template-columns:1fr 1.4fr}.radio-dials{grid-column:1/-1}.machine-touch>label{flex-direction:column;gap:3px}}
@media(max-width:760px){.radio-deck{grid-template-columns:1fr;padding:18px 16px;gap:16px}.radio-identity h2{font-size:2.3rem}.radio-identity p{font-size:10px}.machine-controls{grid-template-columns:1fr 1fr;gap:14px 20px;padding-top:15px}.machine-controls label{font-size:11px}.machine-playground{grid-template-columns:1fr;gap:17px}.machine-triggers button{font-size:12px}.radio-transport .radio-sound,.radio-transport .radio-play{font-size:11px}.radio-dials{grid-template-columns:auto 1fr}.radio-scope{height:55px}.machine-touch>label{font-size:11px}.radio-frequency{font-size:9px}}
@media(max-width:760px){.radio-identity{display:block}.radio-identity h2{font-size:clamp(1.8rem,8.5vw,2.3rem);margin-top:8px}.radio-identity p{max-width:none;text-align:left;margin-top:9px;min-height:0}}
.track-transport{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding-top:13px;border-top:1px solid #738151;font:12px/1.4 var(--mono)}
#track-seek{width:100%;margin:0;height:30px;accent-color:var(--acid)}
#track-original{background:transparent;color:var(--acid);border:1px solid var(--acid);padding:10px 12px;min-height:42px;font:11px var(--mono)}
#track-original:hover{background:var(--acid);color:var(--ink)}
@media(max-width:760px){.track-transport{grid-template-columns:auto 1fr;gap:9px 12px;font-size:11px}#track-original{grid-column:1/-1}}
