/* getrelaxation.com — "Exhale": a breathing room. Fonts: Fraunces (display) + Figtree (UI), SIL OFL, self-hosted. */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:200 500;font-display:swap;src:url(/fonts/fraunces.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:200 500;font-display:swap;src:url(/fonts/fraunces-italic.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/figtree.woff2) format("woff2")}
:root{--serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--r:22px;--mood:#9EC9B4}
:root[data-theme="dusk"]{--bg:#0E0F20;--bg2:#171634;--ink:#F3EFFA;--mut:#BDB9D6;--line:rgba(243,239,250,.22);--line2:rgba(243,239,250,.1);--glass:rgba(22,20,50,.5);--glass2:rgba(255,255,255,.07);--accent:#FFB89A;--em:#FFC9AE;--btn:#FFB89A;--btn-ink:#2A1420;--sage:#A8D5BA;--lilac:#B9A7F0;--shadow:0 20px 60px rgba(4,3,18,.45);color-scheme:dark}
:root[data-theme="day"]{--bg:#F6EFE6;--bg2:#EDE3D6;--ink:#262136;--mut:#5C5570;--line:rgba(38,33,54,.26);--line2:rgba(38,33,54,.12);--glass:rgba(255,252,247,.58);--glass2:rgba(38,33,54,.05);--accent:#B4502B;--em:#A8472A;--btn:#2B2540;--btn-ink:#FBF6EE;--sage:#3D6A52;--lilac:#6B58B8;--shadow:0 20px 50px rgba(90,70,50,.18);color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;font:400 17px/1.6 var(--sans);color:var(--ink);background:var(--bg);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:root.no-gl body,:root:not(.gl) body{background:radial-gradient(90% 70% at 70% 20%,color-mix(in srgb,var(--mood) 30%,var(--bg)),var(--bg) 70%),var(--bg)}
body.modal{overflow:hidden}
img{max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--btn);color:var(--btn-ink);padding:10px 16px;border-radius:12px;text-decoration:none;font-weight:600;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
.wrap.narrow{width:min(860px,100% - 48px)}
.scene{position:fixed;inset:0;z-index:-1;pointer-events:none}
.scene canvas{width:100%;height:100%;display:block}
.scene.off canvas{display:none}
/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:30;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);background:color-mix(in srgb,var(--bg) 38%,transparent);border-bottom:1px solid var(--line2)}
.top .wrap{display:flex;align-items:center;gap:18px;min-height:66px}
.mark{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.lg{width:34px;height:34px;flex:none}
.wm{font:300 24px/1 var(--serif);letter-spacing:.01em}.wm b{font-style:italic;font-weight:300;color:var(--em)}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{padding:8px 13px;border-radius:99px;text-decoration:none;font-size:15px;color:var(--mut);transition:color .3s,background .3s}
.nav a:hover{color:var(--ink);background:var(--glass2)}
.tools-top{display:flex;gap:4px;align-items:center}
.ib{display:inline-grid;grid-auto-flow:column;gap:8px;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 10px;border:0;border-radius:99px;background:transparent;color:var(--ink);transition:background .3s,transform .4s var(--ease)}
.ib:hover{background:var(--glass2)}.ib:active{transform:scale(.94)}
.ib svg{width:20px;height:20px;fill:currentColor}.ib svg[fill="none"]{fill:none}
.ib .lbl{font-size:14px;color:var(--mut)}
.menu-btn{display:none}
:root[data-theme="dusk"] .ic-moon,:root[data-theme="day"] .ic-sun{display:none}
/* ---------- buttons ---------- */
.btn{--tx:0px;--ty:0px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 22px;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--ink);text-decoration:none;font-weight:500;font-size:16px;line-height:1.2;overflow:hidden;isolation:isolate;transform:translate(var(--tx),var(--ty));transition:transform .5s var(--ease),background .35s,color .35s,border-color .35s,box-shadow .35s}
.btn svg{width:13px;height:13px;fill:currentColor;flex:none}.btn svg[fill="none"]{fill:none;width:18px;height:18px}
.btn.main{background:var(--btn);color:var(--btn-ink);border-color:transparent;box-shadow:0 8px 28px color-mix(in srgb,var(--btn) 30%,transparent)}
.btn.main:hover{box-shadow:0 12px 36px color-mix(in srgb,var(--btn) 45%,transparent)}
.btn.line{background:var(--glass2);backdrop-filter:blur(8px)}
.btn.line:hover{border-color:var(--ink)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at var(--px,50%) var(--py,50%),rgba(255,255,255,.35),transparent 55%);opacity:0;transform:scale(.4);transition:opacity .6s,transform .8s var(--ease)}
.btn.rip::after{opacity:1;transform:scale(2.4);transition:none}
.btn.sm{padding:8px 15px;font-size:14px}.btn.big{padding:16px 30px;font-size:17px}
.btn:active{transform:translate(var(--tx),var(--ty)) scale(.97)}
/* ---------- type ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.08;margin:0;letter-spacing:-.005em;font-variation-settings:"opsz" 72}
em{font-style:italic;color:var(--em)}
.kick{margin:0 0 14px;font:600 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.cap{margin:0;font:500 12px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mut);position:absolute;z-index:2}
/* ---------- hero ---------- */
.hero{position:relative;min-height:calc(100svh - 66px);display:grid;place-items:center;padding:34px 0 120px}
.frame{position:absolute;inset:18px;pointer-events:none}
.frame i{position:absolute;width:26px;height:26px;border:1px solid var(--line)}
.frame i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.frame i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.frame i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.frame i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.cap.tl{left:34px;top:34px}.cap.tr{right:34px;top:34px}.cap.bl{left:34px;bottom:104px}.cap.br{right:34px;bottom:104px;display:flex;align-items:center;gap:12px;text-decoration:none}
.cue i{width:1px;height:38px;background:var(--line);position:relative;overflow:hidden}.cue i::after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:var(--ink);animation:cue 2.6s var(--ease) infinite}
@keyframes cue{to{top:100%}}
.hero-in{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(1240px,100% - 48px)}
.arch{--aw:clamp(176px,min(21vw,33vh),320px);position:relative;width:var(--aw);aspect-ratio:3/4;border:1px solid var(--line);border-bottom:0;border-radius:999px 999px 0 0;padding:9px 9px 0;margin-bottom:calc(var(--aw)*-.2);z-index:1}
.arch-in{position:relative;width:100%;height:100%;border:1px solid var(--line2);border-bottom:0;border-radius:999px 999px 0 0;background:linear-gradient(180deg,var(--glass2),transparent 70%)}
.orb{position:absolute;left:50%;top:56%;width:58%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%}
.orb-pp{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 38%,transparent);background:color-mix(in srgb,var(--bg) 22%,transparent);backdrop-filter:blur(6px);display:grid;place-items:center;transition:transform .6s var(--ease),background .4s,border-color .4s;z-index:2}
.orb-pp svg{width:30%;height:30%;fill:var(--ink);margin-left:6%}
.playing .orb-pp svg{margin-left:0}
.orb-pp:hover{transform:scale(1.06);background:color-mix(in srgb,var(--accent) 24%,transparent);border-color:var(--accent)}
.halo{position:absolute;inset:-14%;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);animation:halo 6.5s var(--ease) infinite;pointer-events:none}
.halo.h2{animation-delay:-3.2s}
@keyframes halo{0%{transform:scale(.82);opacity:0}30%{opacity:.7}100%{transform:scale(1.55);opacity:0}}
.wordmark{position:relative;z-index:3;font-weight:250;font-size:clamp(54px,12.4vw,196px);letter-spacing:.015em;line-height:.92;margin:0;font-variation-settings:"opsz" 144;text-shadow:0 2px 40px color-mix(in srgb,var(--bg) 40%,transparent)}
.wordmark .it{font-style:italic;font-weight:200;color:var(--em)}
.ln{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .08em .14em;margin:-.04em -.08em -.14em}
.w{display:inline-block;transform:translateY(112%);animation:rise 1.5s var(--ease) forwards;animation-delay:calc(var(--i)*.14s + .15s)}
@keyframes rise{to{transform:none}}
.lede{font-size:clamp(17px,1.5vw,20px);color:var(--mut);max-width:34em;margin:22px auto 0}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;align-items:center}
.hero .ctas{justify-content:center}
/* ---------- sections ---------- */
.sec{padding:clamp(70px,10vw,140px) 0;position:relative}
.sec-h{max-width:40em;margin-bottom:clamp(28px,4vw,54px)}
.sec-h h2{font-size:clamp(34px,5.2vw,68px);letter-spacing:-.01em}
.sec-h p:not(.kick){color:var(--mut);margin:18px 0 0;font-size:18px}
.sec-h.center{text-align:center;margin-inline:auto}
.glass{background:var(--glass);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border:1px solid var(--line2);border-radius:28px;box-shadow:var(--shadow)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.two.flip>:first-child{order:2}
.bullets{padding:0;margin:20px 0 28px;list-style:none;display:grid;gap:8px;color:var(--mut)}
.bullets li{padding-left:26px;position:relative}.bullets li::before{content:"";position:absolute;left:3px;top:.62em;width:9px;height:9px;border-radius:50%;border:1px solid var(--accent)}
/* needs */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0 0 26px}
.chip{display:inline-block;padding:13px 22px;border-radius:99px;border:1px solid var(--line);background:var(--glass2);backdrop-filter:blur(8px);text-decoration:none;font-size:17px;transition:background .35s,border-color .35s,transform .5s var(--ease),color .35s}
.chip:hover{border-color:var(--ink);transform:translateY(-2px)}
.chip[aria-current="true"]{background:var(--btn);color:var(--btn-ink);border-color:transparent}
.need-out{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(18px,3vw,34px);min-height:290px}
.need-cov img{width:100%;border-radius:20px;display:block;box-shadow:0 18px 50px color-mix(in srgb,var(--need-c,var(--mood)) 40%,transparent);transition:transform .8s var(--ease)}
.need-cov:hover img{transform:scale(1.03) rotate(-1deg)}
.need-tx h3{font-size:clamp(30px,4vw,52px)}
.need-tx p{margin:12px 0 0;color:var(--mut);font-size:18px}.need-tx .kick{color:var(--em)}.need-tx .meta{font-size:15px}
.need-tx .ctas{margin-top:22px}
/* mood cards */
.moods{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.arch-card{--rx:0deg;--ry:0deg;position:relative;height:100%;display:flex;flex-direction:column;padding:42px 24px 24px;text-align:center;background:var(--glass);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--line2);border-radius:150px 150px 28px 28px;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .6s var(--ease),border-color .4s,box-shadow .5s;overflow:hidden;will-change:transform}
.arch-card::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--c) 38%,transparent),transparent 65%);opacity:0;transition:opacity .5s;pointer-events:none}
.arch-card:hover{border-color:color-mix(in srgb,var(--c) 70%,var(--ink));box-shadow:0 24px 60px color-mix(in srgb,var(--c) 28%,transparent)}.arch-card:hover::before{opacity:1}
.ac-cov img{width:64%;aspect-ratio:1;border-radius:16px;display:block;margin:0 auto;box-shadow:0 14px 34px color-mix(in srgb,var(--c) 40%,transparent)}
.ac-no{margin:18px 0 0;font:600 11px/1 var(--sans);letter-spacing:.3em;color:var(--mut)}
.ac-h{font-size:28px;margin-top:8px}.ac-h a{text-decoration:none}.ac-h a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.ac-cap{margin:10px 0 0;color:var(--mut);font-size:15px;line-height:1.5;flex:1}
.ac-n{margin:14px 0 0;font-size:13px;color:var(--mut);letter-spacing:.04em}
.ac-b{display:flex;gap:8px;justify-content:center;margin-top:16px;position:relative;z-index:2}
/* breathe patterns */
.pats{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.patbtn{width:100%;text-align:left;display:grid;grid-template-columns:1fr 140px;grid-template-areas:"n s" "d s";gap:2px 20px;align-items:center;padding:20px 24px;border-radius:24px;border:1px solid var(--line2);background:var(--glass);backdrop-filter:blur(14px);transition:transform .5s var(--ease),border-color .35s,background .35s}
.patbtn:hover{transform:translateX(6px);border-color:var(--accent)}
.pn{grid-area:n;font:300 26px/1.1 var(--serif)}.pd{grid-area:d;color:var(--mut);font-size:14.5px}
.pat{grid-area:s;width:100%;height:30px;color:var(--accent);overflow:visible}
/* sounds */
.sbtns{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sbtn{width:100%;display:grid;gap:4px;justify-items:start;text-align:left;padding:18px;border-radius:24px;border:1px solid var(--line2);background:var(--glass);backdrop-filter:blur(14px);transition:transform .5s var(--ease),border-color .35s,box-shadow .5s,background .35s}
.sbtn:hover{transform:translateY(-3px)}
.sbtn b{font:500 17px/1.2 var(--sans)}.sbtn small{color:var(--mut);font-size:13px;line-height:1.35}
.lic{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--glass2);margin-bottom:6px;color:var(--accent);flex:none}
.lic svg{width:22px;height:22px;fill:none}
.sbtn[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--glass));box-shadow:0 10px 36px color-mix(in srgb,var(--accent) 24%,transparent)}
.sbtn[aria-pressed="true"] .lic{background:var(--accent);color:var(--btn-ink)}.sbtn[aria-pressed="true"] .lic svg{animation:bob 3.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-3px)}}
.mixnow{color:var(--mut);font-size:15px}.mixnow b{color:var(--ink);font-weight:600}
.tbtns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
/* lengths */
.lens{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.len{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) minmax(0,1.1fr) auto;gap:22px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);position:relative;transition:background .5s,padding .5s var(--ease)}
.len::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--c);transition:width .8s var(--ease)}
.len:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 14%,transparent),transparent 70%);padding-left:20px}.len:hover::before{width:100%}
.len-a{display:contents;text-decoration:none}
.len-t{font:250 clamp(34px,4.4vw,58px)/1 var(--serif);font-variation-settings:"opsz" 120;transition:font-style .3s,color .3s}.len:hover .len-t{font-style:italic;color:var(--em)}
.len-l{display:grid}.len-l b{font:400 20px/1.2 var(--sans)}.len-l span{color:var(--mut);font-size:14px}
.len-b{color:var(--mut);font-size:15px}
/* rules + credit + faq */
.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rule{padding:26px;border-radius:26px;border:1px solid var(--line2);background:var(--glass);backdrop-filter:blur(14px)}
.rule h3{font-size:26px;margin:6px 0 12px}.rule p{color:var(--mut);margin:0 0 12px}.rule ul{margin:0;padding-left:18px;color:var(--mut)}
.rn{margin:0;font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase}.rule.y .rn{color:var(--sage)}.rule.z .rn{color:var(--lilac)}.rule.n .rn{color:var(--accent)}
.credit{display:grid;gap:10px;margin-top:10px}
.cv-tabs{display:flex;gap:6px}.cv-tabs button,.seg button{padding:7px 14px;border-radius:99px;border:1px solid var(--line2);background:transparent;font-size:14px;transition:background .3s,color .3s,border-color .3s}
.cv-tabs button[aria-pressed="true"],.seg button[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:transparent}
.cv-text{display:block;padding:12px 14px;border-radius:14px;background:var(--glass2);font:500 14px/1.45 var(--sans);word-break:break-word;color:var(--ink)}
.btn.copy{padding:9px 16px;font-size:14px;justify-self:start}
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--line2);border-radius:20px;background:var(--glass);backdrop-filter:blur(14px);padding:2px 22px;transition:border-color .3s}
.faq details[open]{border-color:var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:18px 28px 18px 0;font:300 22px/1.3 var(--serif);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:2px;top:50%;width:12px;height:12px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .5s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq p{margin:0 0 20px;color:var(--mut)}
/* footer */
.foot{border-top:1px solid var(--line2);margin-top:40px;padding:60px 0 150px;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(12px)}
.foot .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.foot h2{font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mut);margin:0 0 16px}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;font-size:15px}.foot a{text-decoration:none;color:var(--ink);opacity:.82}.foot a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
.fabout p{color:var(--mut);font-size:15px;margin:16px 0 0;max-width:30em}
.fine{grid-column:1/-1;margin:10px 0 0;font-size:13px;color:var(--mut);border-top:1px solid var(--line2);padding-top:20px}
/* ---------- player ---------- */
.pbar{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:minmax(0,1.15fr) auto minmax(0,1.5fr) auto;gap:18px;align-items:center;padding:10px 16px;border-radius:26px;background:color-mix(in srgb,var(--bg) 62%,transparent);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line);box-shadow:var(--shadow);max-width:1240px;margin-inline:auto}
.pb-now{display:flex;gap:12px;align-items:center;min-width:0}.pb-now img{width:48px;height:48px;border-radius:12px;flex:none;object-fit:cover}
.pb-tx{display:grid;min-width:0}.pb-cap{font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-tx b{font:500 16px/1.25 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pb-ctl{display:flex;align-items:center;gap:4px}
.pp{width:50px;height:50px;border-radius:50%;border:0;background:var(--btn);color:var(--btn-ink);display:grid;place-items:center;transition:transform .5s var(--ease),box-shadow .4s}
.pp svg{width:18px;height:18px;fill:currentColor}.pp:hover{transform:scale(1.07);box-shadow:0 0 0 6px color-mix(in srgb,var(--btn) 25%,transparent)}
.pb-seek{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--mut);font-variant-numeric:tabular-nums}
.pb-x{display:flex;align-items:center;gap:2px}
#viz{width:96px;height:28px;margin-right:6px}
.ib.tmr{font-size:12.5px;color:var(--mut);padding:0 10px;font-variant-numeric:tabular-nums}.ib.tmr[aria-pressed="true"]{color:var(--accent)}
.dlb{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:99px;border:1px solid var(--line2);text-decoration:none;font-size:13px;font-weight:600;transition:background .3s}.dlb:hover{background:var(--glass2)}.dlb svg{width:12px;height:12px;fill:currentColor}
.ib[aria-pressed="true"]{color:var(--accent)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer;--p:0%;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--p),var(--line) var(--p))}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--line)}input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;border:0;background:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 0%,transparent);transition:box-shadow .3s}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;border:0;background:var(--ink)}
input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}
main{padding-bottom:110px;animation:mainIn .9s var(--ease) both}
@keyframes mainIn{from{opacity:0;transform:translateY(14px)}}
html.pcnav-busy main{opacity:.25;transform:translateY(8px);filter:blur(3px);transition:opacity .35s,transform .4s var(--ease),filter .35s;animation:none}
.toast{position:fixed;left:50%;bottom:112px;transform:translate(-50%,16px);z-index:70;padding:11px 20px;border-radius:99px;background:var(--btn);color:var(--btn-ink);font-size:14.5px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .4s,transform .5s var(--ease);max-width:calc(100vw - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.dim{position:fixed;inset:0;z-index:80;background:#02020a;opacity:0;pointer-events:none;transition:opacity 1.2s linear}
/* ---------- studio drawer ---------- */
.studio{position:fixed;inset:0;z-index:55;visibility:hidden;transition:visibility 0s .5s}
.studio.open{visibility:visible;transition:none}
.scrim{position:absolute;inset:0;border:0;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s;cursor:default}
.studio.open .scrim{opacity:1}
.sheet{position:absolute;top:12px;right:12px;bottom:12px;width:min(430px,100% - 24px);display:flex;flex-direction:column;border-radius:30px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(26px) saturate(1.3);-webkit-backdrop-filter:blur(26px) saturate(1.3);border:1px solid var(--line);box-shadow:var(--shadow);transform:translateX(110%);transition:transform .7s var(--ease)}
.studio.open .sheet{transform:none}
.sh-h{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 6px 28px}.sh-h h2{font-size:32px}
.tabs{display:flex;gap:4px;padding:8px 22px 0;border-bottom:1px solid var(--line2)}
.tabs button{padding:10px 14px;border:0;background:none;color:var(--mut);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:15px;transition:color .3s,border-color .3s}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--accent)}
.sh-b{flex:1;overflow:auto;padding:22px 26px 28px;overscroll-behavior:contain}
.sub{margin:0 0 18px;color:var(--mut);font-size:15.5px}.note{color:var(--mut);font-size:14px;margin:16px 0 0}
.lbl{margin:20px 0 8px;font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.mixer{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:16px}
.mixer li{display:grid;grid-template-columns:42px 1fr minmax(100px,150px);gap:14px;align-items:center}
.mixer label{display:grid;line-height:1.25}.mixer label b{font-weight:500}.mixer label span{font-size:12.5px;color:var(--mut)}
.mixer .lic{margin:0}.musicrow{padding-top:16px;border-top:1px solid var(--line2)}
.tl-big{margin:0 0 6px;display:grid}.tl-big span{font:200 64px/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--em)}.tl-big small{color:var(--mut);font-size:14px}
.chk{display:flex;gap:10px;align-items:center;margin:18px 0 0;font-size:15px;cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--accent);flex:none}
.kb-h{margin:26px 0 10px;font-size:22px}.kb{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:14.5px}.kb dt,.kb dd{margin:0}.kb dd{color:var(--mut)}
kbd{font:600 12px var(--sans);padding:3px 8px;border-radius:7px;border:1px solid var(--line);background:var(--glass2)}
/* ---------- breathing dialog ---------- */
.breath{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 52%,transparent);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s .6s;overflow:auto}
.breath.open{opacity:1;visibility:visible;transition:opacity .6s}
.bwrap{position:relative;width:min(660px,100% - 32px);padding:52px 0 40px;text-align:center;margin:auto}
.bx{position:fixed;right:18px;top:18px}
.bstage{position:relative;width:min(66vw,400px,46vh);aspect-ratio:1;margin:14px auto 8px;display:grid;place-items:center}
.bring{position:absolute;inset:-4%;width:108%;height:108%;transform:rotate(-90deg)}
.bring circle{fill:none;stroke-width:.5}.bring .bt{stroke:var(--line2)}.bring .bp{stroke:var(--accent);stroke-width:.9;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--pr,0)*100);opacity:0;transition:opacity .5s}
.breath.running .bp{opacity:.9}
.b-orb{--s:.5;position:absolute;inset:6%;border-radius:50%;transform:scale(var(--s));background:radial-gradient(circle at 36% 30%,color-mix(in srgb,var(--accent) 70%,#fff),color-mix(in srgb,var(--mood) 75%,transparent) 55%,color-mix(in srgb,var(--mood) 10%,transparent) 72%);box-shadow:0 0 90px color-mix(in srgb,var(--accent) 38%,transparent),inset 0 0 40px rgba(255,255,255,.25);opacity:.9}
.b-orb i{position:absolute;inset:-10%;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent)}.b-orb i+i{inset:-24%;opacity:.5}
.btxt{position:relative;z-index:2;display:grid;gap:4px;pointer-events:none}
.bword{margin:0;font:300 clamp(28px,5vw,44px)/1.1 var(--serif);color:var(--ink);text-shadow:0 2px 24px color-mix(in srgb,var(--bg) 70%,transparent)}
.bcount{margin:0;font:200 clamp(44px,8vw,72px)/1 var(--serif);font-style:italic;color:var(--em);min-height:1em}
.bleft{margin:4px 0 0;font-size:14px;color:var(--mut);letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.bsum{min-height:1.6em;margin:6px 0 0;color:var(--mut)}
.bctl{display:grid;gap:14px;justify-items:center;margin-top:10px}
.bctl .seg{justify-content:center}
.bctl .seg button{display:grid;gap:4px;justify-items:center;text-align:center}.bctl #b-pat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}.bctl #b-pat button{padding:10px 8px;border-radius:18px;min-width:0}.bctl #b-pat .pat{grid-area:auto;height:20px;width:80%;color:currentColor}.bctl #b-pat span{font-size:13.5px}
.bdesc{margin:0;color:var(--mut);font-size:15px;min-height:1.5em}
.brow{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}.brow .chk{margin:0}
/* ---------- playlist page ---------- */
.crumbs{margin:0 0 18px;font-size:14px;color:var(--mut)}.crumbs a{color:var(--mut)}
.cap-box{display:inline-block;margin:0 0 16px;padding:7px 14px;border-radius:99px;border:1px solid var(--line);font:600 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mut);background:var(--glass2)}
.plhead{padding:clamp(34px,6vw,80px) 0 40px}
.plh-g{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(24px,5vw,70px);align-items:center}
.plh-l h1{font-size:clamp(40px,6.6vw,92px);letter-spacing:-.012em;font-weight:250;font-variation-settings:"opsz" 144}
.plh-l .lede{margin-left:0;font-size:19px;max-width:30em}
.best{margin:18px 0 0;color:var(--mut);display:grid;gap:2px;max-width:30em}.best span{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--em)}
.plh-l .ctas{justify-content:flex-start}
.plh-r{display:grid;place-items:center}
.pl-arch{--aw:clamp(220px,28vw,380px);margin-bottom:0;border-bottom:1px solid var(--line);border-radius:999px 999px 28px 28px}
.pl-arch .arch-in{border-bottom:1px solid var(--line2);border-radius:999px 999px 22px 22px}
.pl-arch .orb{top:50%;width:70%}.covbox{position:absolute;inset:0;border-radius:18px;overflow:hidden;box-shadow:0 20px 60px color-mix(in srgb,var(--c) 40%,transparent);transition:transform .8s var(--ease)}.covbox img{width:100%;height:100%;display:block}
.pl-arch:hover .covbox{transform:scale(1.04) rotate(-1.2deg)}
.pl-body{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:40px;margin-top:20px}
.sec-pl{margin:0 0 50px}.sec-pl h2{font-size:clamp(28px,3.4vw,40px);margin:0 0 20px}.sec-pl h2.mt{margin-top:34px}.side p{color:var(--mut)}
.trs{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-radius:16px;transition:background .3s}
.tr:hover{background:var(--glass2)}.tr[hidden]{display:none}
.tr.on{background:color-mix(in srgb,var(--accent) 14%,transparent)}.tr.on .tt b{color:var(--em)}
.tp{display:grid;grid-template-columns:30px 40px 1fr;gap:12px;align-items:center;padding:8px 10px;border:0;background:none;text-align:left;border-radius:16px;min-width:0}
.tp .n{font-size:13px;color:var(--mut);font-variant-numeric:tabular-nums;text-align:center}.tp img{width:40px;height:40px;border-radius:9px}
.tt{display:grid;min-width:0}.tt b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}.tt span{font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr .d{font-size:13px;color:var(--mut);font-variant-numeric:tabular-nums}
.dl{font-size:12px;font-weight:600;padding:6px 11px;border-radius:99px;border:1px solid var(--line2);text-decoration:none;margin-right:6px;transition:background .3s}.dl:hover{background:var(--glass2)}
.total{color:var(--mut);margin:18px 6px 0;font-size:15px}
.nextc{display:grid;gap:6px;padding:16px;border-radius:26px;border:1px solid var(--line2);background:var(--glass);backdrop-filter:blur(14px);text-decoration:none;transition:transform .6s var(--ease),border-color .4s}
.nextc:hover{transform:translateY(-4px);border-color:var(--c)}.nextc img{width:100%;border-radius:16px}.nextc .c-no{font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}.nextc b{font:300 24px/1.15 var(--serif)}.nextc span:last-child{color:var(--mut);font-size:14px}
.rel{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.rel a{display:grid;gap:3px;padding:16px 18px;border-radius:20px;border:1px solid var(--line2);background:var(--glass);backdrop-filter:blur(12px);text-decoration:none;transition:transform .5s var(--ease),border-color .35s}
.rel a:hover{transform:translateY(-3px);border-color:var(--c)}.rno{font:600 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}.rel b{font:300 21px/1.2 var(--serif)}.rel a span:last-child{font-size:13px;color:var(--mut)}
/* ---------- library ---------- */
.libh{margin-top:clamp(30px,5vw,70px)}.libh h1{font-size:clamp(44px,7vw,100px);font-weight:250}.libh p:not(.kick){color:var(--mut);max-width:38em;font-size:18px}
.tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:10px 0 22px}
.search{display:flex;align-items:center;gap:10px;padding:0 16px;height:48px;border-radius:99px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(12px);flex:1;min-width:230px;max-width:460px}
.search input{flex:1;background:none;border:0;color:inherit;font:inherit;outline:0;min-width:0}
.matches{color:var(--mut);font-size:14px}
.jump{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 36px}.jump a{padding:6px 13px;border-radius:99px;border:1px solid var(--line2);font-size:13px;text-decoration:none;color:var(--mut);transition:color .3s,border-color .3s}.jump a:hover{color:var(--ink);border-color:var(--line)}
.rec{margin:0 0 38px;padding:22px;border-radius:30px;background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line2);scroll-margin-top:90px}
.rec-h{display:flex;gap:20px;align-items:center;margin-bottom:12px}.rec-h img{width:96px;height:96px;border-radius:16px}.rec-h h2{font-size:30px}.rec-h p{margin:4px 0 10px;color:var(--mut);font-size:14px}
.none{color:var(--mut);text-align:center;padding:40px 0}
.nf{padding:clamp(50px,9vw,120px) 0}.nf h1{font-size:clamp(46px,8vw,110px);font-weight:250}.nf .lede{margin:18px 0 26px;text-align:left;max-width:34em}.nf .rel{margin-bottom:30px}
/* ---------- reveal + motion ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--d,0)*90ms)}
.rv.in{opacity:1;transform:none}
.moods li:nth-child(3n+2){--d:1}.moods li:nth-child(3n){--d:2}.lens li:nth-child(even){--d:1}
@media (scripting:none){.rv{opacity:1;transform:none}.w{transform:none;animation:none}}
@supports (animation-timeline:scroll()){
 .hero-in{animation:heroOut linear both;animation-timeline:scroll(root);animation-range:0 70vh}
 @keyframes heroOut{to{transform:translateY(-6vh);opacity:.15}}
}
/* ---------- responsive ---------- */
@media (max-width:1020px){
 .nav{display:none}
 .menu-btn{display:inline-grid}.tools-top{margin-left:auto}
 body.menu .nav{display:grid;position:fixed;left:12px;right:12px;top:72px;z-index:35;padding:14px;border-radius:26px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(24px);border:1px solid var(--line);gap:2px;box-shadow:var(--shadow)}
 body.menu .nav a{padding:13px 16px;font-size:18px;color:var(--ink)}
 .two{grid-template-columns:1fr}.two.flip>:first-child{order:0}
 .rules{grid-template-columns:1fr}
 .moods{grid-template-columns:repeat(2,1fr)}
 .plh-g{grid-template-columns:1fr}.plh-r{order:-1}.pl-arch{--aw:min(60vw,300px)}
 .pl-body{grid-template-columns:1fr}
 .foot .wrap{grid-template-columns:1fr 1fr}.fabout{grid-column:1/-1}
 .len{grid-template-columns:minmax(90px,150px) minmax(0,1fr) auto}.len-b{display:none}
}
@media (max-width:760px){
 body{font-size:16.5px}
 .ib .lbl{display:none}.ib{min-width:40px;padding:0 8px}
 .wm{font-size:21px}.lg{width:30px;height:30px}
 .hero{padding-bottom:150px;min-height:calc(100svh - 66px)}
 .cap.tl,.cap.tr{display:none}.cap.bl{left:26px;bottom:150px}.cap.br{display:none}.frame{inset:12px}
 .wordmark{font-size:16.5vw}
 .arch{--aw:min(46vw,200px)}
 .need-out{grid-template-columns:1fr;text-align:center}.need-cov{max-width:210px;margin:0 auto}.need-tx .ctas{justify-content:center}
 .patbtn{grid-template-columns:1fr 90px;padding:16px 18px}
 .pbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"now ctl" "seek x";gap:6px 10px;padding:10px 12px;border-radius:22px;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom))}
 .pb-now{grid-area:now}.pb-ctl{grid-area:ctl}.pb-seek{grid-area:seek}.pb-x{grid-area:x}
 .pb-now img{width:42px;height:42px}.pp{width:46px;height:46px}
 #viz,#pb-shuf,.dlb{display:none}
 .toast{bottom:150px}
 .sheet{top:auto;left:8px;right:8px;bottom:8px;width:auto;height:min(86vh,720px);border-radius:28px;transform:translateY(110%)}
 .tabs{overflow:auto}.mixer li{grid-template-columns:40px 1fr 110px;gap:10px}
 .lens .len{grid-template-columns:1fr auto;gap:6px 14px}.len-t{grid-column:1}.len-l{grid-column:1}.len .btn{grid-row:1/3;grid-column:2}
 .foot .wrap{grid-template-columns:1fr}
 .moods{grid-template-columns:1fr}
 .tr{grid-template-columns:minmax(0,1fr) auto}.tr .d{display:none}
 .rec-h img{width:72px;height:72px}
 .bx{right:12px;top:12px}
 .bstage{width:min(72vw,300px,40vh)}
 .bctl #b-pat{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){.tp{grid-template-columns:24px 38px 1fr}.pb-cap{display:none}}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
 .rv{opacity:1;transform:none}.w{transform:none}.halo,.cue i::after{display:none}.arch-card,.btn{transform:none!important}
 .hero-in{animation:none}#viz{display:none}
 .bring .bp{opacity:.9}
}
