/* Loop & Drift — single stylesheet. Compositor-only animations; all motion off under prefers-reduced-motion. */

/* ---------- Self-hosted fonts (SIL OFL 1.1, latin subset) ---------- */
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Nunito Sans";src:url(../fonts/nunito-sans-italic-latin.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Space Mono";src:url(../fonts/space-mono-700-latin.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F;}

/* ---------- Fallback fonts tuned to reduce reflow when web fonts swap in ---------- */
@font-face{font-family:"Fraunces Fallback";src:local("Georgia");size-adjust:101%;ascent-override:94%;descent-override:24%;line-gap-override:0%;}
@font-face{font-family:"Nunito Sans Fallback";src:local("Arial");size-adjust:100%;ascent-override:101%;descent-override:35%;line-gap-override:0%;}

:root{
  --sky-top:#1b1830;--sky-mid:#2a2440;--sky-bot:#3a2f45;
  --amber:#f0b271;--amber-soft:#e6a173;--rose:#cf8f8a;--cream:#f3ead9;--sage:#93b6a6;--muted:#a598b2;
  --moon:#f5edd6;--ink:#241a12;
  --glass:rgba(24,20,40,.66);--card:rgba(30,25,48,.8);--line:rgba(243,234,217,.14);
  --dock-h:78px;--stage-w:356px;--stage-h:200px;--gut:clamp(16px,4vw,34px);
  --f-head:"Fraunces","Fraunces Fallback",Georgia,serif;
  --f-body:"Nunito Sans","Nunito Sans Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Space Mono",ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.3,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px;}
body{margin:0;min-height:100vh;font:400 1rem/1.6 var(--f-body);color:var(--cream);background:var(--sky-top);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:var(--f-head);font-weight:600;margin:0 0 .45em;line-height:1.14;letter-spacing:-.01em;}
h1{font-size:clamp(2rem,5.5vw,3.2rem);}
h2{font-size:clamp(1.35rem,3vw,1.7rem);}
p{margin:0 0 1em;}
a{color:var(--rose);text-decoration:none;transition:color .2s;}
a:hover{color:var(--amber);}
img{max-width:100%;height:auto;}
button{font:inherit;cursor:pointer;color:inherit;border:0;background:none;padding:0;}
[hidden]{display:none!important;}
:focus{outline:none;}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:6px;}
h1:focus,#ld-main:focus{outline:none;}
.ld-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.ld-skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--sage);color:#16241d;padding:10px 16px;border-radius:8px;font-weight:700;transition:top .15s;}
.ld-skip:focus{top:10px;color:#16241d;}

/* ---------- Progress bar (only for uncached PJAX fetches >120ms) ---------- */
.ld-progress{position:fixed;left:0;top:0;right:0;height:2px;z-index:90;background:var(--amber);transform-origin:0 50%;
  transform:scaleX(0);opacity:0;pointer-events:none;box-shadow:0 0 10px rgba(240,178,113,.7);}
.ld-progress.is-on{opacity:1;transform:scaleX(.7);transition:transform 2.5s cubic-bezier(.1,.6,.2,1),opacity .15s;}
.ld-progress.is-done{opacity:0;transform:scaleX(1);transition:transform .2s ease,opacity .3s .15s;}

/* ---------- Scene ---------- */
.ld-scene{position:fixed;inset:0;z-index:0;overflow:hidden;contain:strict;pointer-events:none;
  background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 48%,var(--sky-bot) 100%);}
.ld-scene__stars{position:absolute;inset:0 0 40% 0;will-change:opacity;animation:ld-twinkle 7s ease-in-out infinite;
  background-image:radial-gradient(1.4px 1.4px at 18% 22%,#fff,transparent),radial-gradient(1px 1px at 32% 12%,#f6ecd8,transparent),
    radial-gradient(1.5px 1.5px at 55% 16%,#fff,transparent),radial-gradient(1px 1px at 72% 10%,#f0e6cf,transparent),
    radial-gradient(1.2px 1.2px at 84% 34%,#fff,transparent),radial-gradient(1px 1px at 8% 40%,#fff,transparent),
    radial-gradient(1px 1px at 44% 38%,#efe4cc,transparent),radial-gradient(1.3px 1.3px at 63% 44%,#fff,transparent);}
.ld-scene__stars--b{animation-duration:9s;animation-delay:-4s;
  background-image:radial-gradient(1px 1px at 24% 8%,#fff,transparent),radial-gradient(1.2px 1.2px at 40% 26%,#f6ecd8,transparent),
    radial-gradient(1px 1px at 66% 30%,#fff,transparent),radial-gradient(1.4px 1.4px at 92% 14%,#fff,transparent),
    radial-gradient(1px 1px at 12% 18%,#efe4cc,transparent),radial-gradient(1px 1px at 78% 48%,#fff,transparent);}
@keyframes ld-twinkle{0%,100%{opacity:.9}50%{opacity:.35}}
.ld-scene__moon{position:absolute;top:8%;right:11%;width:clamp(70px,9vw,110px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 38% 36%,#fffefb,var(--moon) 60%,#e4d6b4);}
.ld-scene__moon::before,.ld-scene__moon::after{content:"";position:absolute;border-radius:50%;background:rgba(214,198,160,.35);}
.ld-scene__moon::before{width:18%;height:18%;left:56%;top:30%;}
.ld-scene__moon::after{width:11%;height:11%;left:34%;top:60%;}
.ld-scene__halo{position:absolute;inset:-60%;border-radius:50%;will-change:opacity,transform;
  background:radial-gradient(closest-side,rgba(245,237,214,.28),rgba(245,237,214,.08) 55%,transparent 100%);animation:ld-glow 8s ease-in-out infinite;}
@keyframes ld-glow{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.ld-scene__far,.ld-scene__city{position:absolute;left:0;right:0;bottom:0;width:100%;}
.ld-scene__far{height:38%;opacity:.9;}
.ld-scene__city{height:34%;}
.ld-win{opacity:.72;}
.ld-win--b{opacity:.2;will-change:opacity;animation:ld-windows 14s steps(1) infinite;}
@keyframes ld-windows{0%{opacity:.2}22%{opacity:.8}47%{opacity:.35}71%{opacity:.85}88%{opacity:.15}}
.ld-scene__rain{position:absolute;inset:0;overflow:hidden;transform:rotate(9deg) scale(1.15);opacity:.5;}
.ld-scene__rain span,.ld-scene__rain::before{content:"";position:absolute;left:0;right:0;top:-240px;height:calc(100% + 240px);will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='120'%3E%3Cg stroke='%23dbe4ee' stroke-opacity='.5' stroke-width='1'%3E%3Cpath d='M9 6v26M33 58v22M57 22v30M21 88v24M45 96v18M66 70v20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:72px 120px;animation:ld-rain .55s linear infinite;}
.ld-scene__rain::before{background-size:48px 80px;opacity:.55;animation-duration:.8s;top:-160px;height:calc(100% + 160px);animation-name:ld-rain-far;}
@keyframes ld-rain{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,240px,0)}}
@keyframes ld-rain-far{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,160px,0)}}
.ld-scene__lamp{position:absolute;left:-10%;bottom:-14%;width:62%;height:72%;border-radius:50%;will-change:opacity;
  background:radial-gradient(closest-side,rgba(240,178,113,.34),rgba(240,178,113,.1) 55%,transparent 100%);animation:ld-lamp 6s ease-in-out infinite;}
@keyframes ld-lamp{0%,100%{opacity:.85}45%{opacity:1}60%{opacity:.9}}
.ld-scene__vignette{position:absolute;inset:0;box-shadow:inset 0 0 220px 70px rgba(12,9,22,.72);}
.ld-scene__grain{position:absolute;inset:-20%;opacity:.06;mix-blend-mode:soft-light;will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:ld-grain .6s steps(3) infinite;}
@keyframes ld-grain{0%{transform:translate3d(0,0,0)}33%{transform:translate3d(-3%,2%,0)}66%{transform:translate3d(2%,-3%,0)}100%{transform:translate3d(-1%,1%,0)}}
.ld-paused .ld-scene *,.ld-paused .ld-scene *::before{animation-play-state:paused!important;}

/* ---------- Shell ---------- */
.ld-shell{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;}
.ld-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px var(--gut);position:sticky;top:0;z-index:30;
  background:linear-gradient(180deg,rgba(27,24,48,.85),rgba(27,24,48,0));}
.ld-logo{display:flex;align-items:center;gap:11px;color:var(--cream);flex:none;}
.ld-logo:hover{color:var(--cream);}
.ld-logo__img{display:block;width:52px;height:52px;flex:none;filter:drop-shadow(0 0 10px rgba(207,110,230,.35));}
.ld-logo b{font-family:var(--f-head);font-size:1.1rem;font-weight:600;}
.ld-nav{display:flex;gap:clamp(4px,2vw,20px);overflow-x:auto;scrollbar-width:none;}
.ld-nav::-webkit-scrollbar{display:none;}
.ld-nav a{color:var(--muted);font-weight:600;font-size:.94rem;padding:8px 4px;position:relative;white-space:nowrap;}
.ld-nav a:hover,.ld-nav a[aria-current="page"]{color:var(--cream);}
.ld-nav a::after{content:"";position:absolute;left:4px;right:4px;bottom:2px;height:2px;border-radius:2px;background:var(--amber);
  transform:scaleX(0);transition:transform .25s var(--ease);}
.ld-nav a[aria-current="page"]::after{transform:scaleX(1);}
.ld-clock{font:700 .95rem var(--f-mono);color:var(--cream);flex:none;min-width:5ch;text-align:right;font-variant-numeric:tabular-nums;}

.ld-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:clamp(20px,4vw,44px) var(--gut) 40px;
  min-height:70vh;view-transition-name:ld-main;}
.ld-main.ld-enter{animation:ld-enter .2s var(--ease) both;}
@keyframes ld-enter{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}
::view-transition-old(root),::view-transition-new(root){animation:none;}
::view-transition-old(ld-main){animation:ld-vt-out .14s ease both;}
::view-transition-new(ld-main){animation:ld-enter .22s var(--ease) both;}
@keyframes ld-vt-out{to{opacity:0;transform:translate3d(0,-6px,0)}}
.ld-foot{position:relative;z-index:2;text-align:center;color:var(--muted);font-size:.82rem;padding:0 var(--gut) calc(var(--dock-h) + 24px + env(safe-area-inset-bottom,0px));}
.ld-has-stage .ld-foot{padding-bottom:calc(var(--dock-h) + var(--stage-h) + 76px + env(safe-area-inset-bottom,0px));}
.ld-foot a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;}

/* ---------- Content ---------- */
.ld-eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:.8em;}
.ld-eyebrow a{color:inherit;}
.ld-lead{color:var(--muted);font-size:1.06rem;line-height:1.6;max-width:62ch;}
.ld-hero{padding:clamp(24px,8vh,90px) 0 clamp(20px,5vh,50px);}
.ld-hero h1{font-size:clamp(2.6rem,8vw,4.6rem);max-width:14ch;}
.ld-hero--small h1{font-size:clamp(2.2rem,6vw,3.4rem);}
.ld-hero__sub{font-size:clamp(1.05rem,2.6vw,1.3rem);color:var(--muted);max-width:44ch;margin:14px 0 28px;line-height:1.5;}
.ld-cta{display:inline-flex;align-items:center;gap:10px;background:radial-gradient(circle at 38% 32%,var(--amber),var(--amber-soft));
  color:var(--ink);font-weight:700;padding:15px 26px;border-radius:40px;box-shadow:0 12px 34px rgba(240,178,113,.35);
  transition:transform .18s var(--ease),box-shadow .18s;}
.ld-cta:hover{transform:translate3d(0,-2px,0);color:var(--ink);box-shadow:0 16px 40px rgba(240,178,113,.45);}
.ld-cta svg{width:20px;height:20px;}
.ld-btn{display:inline-flex;align-items:center;padding:14px 22px;border-radius:40px;border:1px solid var(--line);color:var(--cream);font-weight:700;}
.ld-btn:hover{border-color:var(--amber);color:var(--cream);}
.ld-row{display:flex;flex-wrap:wrap;gap:12px;}
.ld-chips{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;list-style:none;}
.ld-chips li{border:1px solid var(--line);border-radius:30px;padding:7px 15px;font-size:.85rem;color:var(--muted);background:rgba(24,20,40,.35);}
.ld-intro{margin-bottom:12px;}
.ld-page-head{margin-bottom:8px;}
.ld-section{margin-top:clamp(36px,6vw,64px);content-visibility:auto;contain-intrinsic-size:auto 420px;}
.ld-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ld-section__head a{font-weight:700;font-size:.9rem;color:var(--sage);}

.ld-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));margin-top:22px;}
.ld-card,.ld-post-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 14px 16px;
  transition:transform .22s var(--ease),border-color .22s;contain:layout paint;}
.ld-card:hover,.ld-post-card:hover{transform:translate3d(0,-4px,0);border-color:rgba(240,178,113,.4);}
.ld-card__link,.ld-post-card__link{color:var(--cream);display:block;}
.ld-card__link:hover,.ld-post-card__link:hover{color:var(--cream);}
.ld-card__title,.ld-post-card__title{font-size:1.15rem;margin:12px 2px 2px;}
.ld-card__mood,.ld-post-card__meta{color:var(--muted);font-size:.86rem;margin:0 2px 12px;}
.ld-post-card__excerpt{color:#d9cdbb;font-size:.92rem;margin:0 2px;line-height:1.55;}
.ld-card__play{display:inline-flex;align-items:center;gap:8px;color:var(--sage);font-weight:700;font-size:.88rem;padding:6px 10px 6px 4px;border-radius:20px;}
.ld-card__play:hover{color:var(--cream);}
.ld-card__play svg{width:16px;height:16px;}
.ld-card__play.is-current{color:var(--amber);}
.ld-thumb{position:relative;overflow:hidden;border-radius:12px;aspect-ratio:16/9;background:linear-gradient(135deg,var(--from),var(--to));}
.ld-thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 28%,rgba(245,237,214,.28),transparent 32%),
  linear-gradient(180deg,transparent 55%,rgba(12,9,22,.35));}
.ld-thumb__img,.ld-post-card__img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px;}
.ld-post-card__img{aspect-ratio:16/9;height:auto;}
.ld-thumb--cover{border-radius:20px;margin-bottom:26px;max-height:420px;}

.ld-station__head{margin-bottom:24px;}
.ld-station__head .ld-cta{margin-top:10px;}
.ld-article{max-width:68ch;margin:0 auto;}
.ld-article__head{margin-bottom:22px;}
.ld-article__meta{color:var(--muted);font-size:.88rem;}
.ld-article__cover{display:block;width:100%;border-radius:18px;margin-bottom:28px;aspect-ratio:16/9;object-fit:cover;}
.ld-tags a{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:4px 12px;font-size:.8rem;margin:0 6px 6px 0;color:var(--muted);}
.ld-postnav{max-width:68ch;margin:36px auto 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-weight:600;}
.ld-postnav__next{margin-left:auto;text-align:right;}

.ld-search{display:flex;gap:8px;margin:18px 0 6px;max-width:460px;}
.ld-search input{flex:1;min-width:0;background:rgba(24,20,40,.6);border:1px solid var(--line);border-radius:30px;color:var(--cream);padding:11px 16px;font:inherit;}
.ld-search input:focus-visible{border-color:var(--sage);outline-offset:1px;}
.ld-search button{padding:0 18px;border-radius:30px;border:1px solid var(--line);font-weight:700;color:var(--cream);}
.ld-search button:hover{border-color:var(--amber);}
.pagination,.ld-pagination{margin-top:32px;}
.nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.page-numbers{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 10px;border-radius:20px;border:1px solid var(--line);color:var(--muted);}
.page-numbers.current{background:var(--amber);color:var(--ink);border-color:var(--amber);}

/* ---------- Prose + core blocks ---------- */
.ld-prose{font-size:1.06rem;line-height:1.78;color:#e7dccb;}
.ld-prose>*+*{margin-top:0;}
.ld-prose p,.ld-prose ul,.ld-prose ol,.ld-prose blockquote,.ld-prose figure,.ld-prose pre,.ld-prose table{margin:0 0 1.15em;}
.ld-prose h2{margin-top:1.5em;color:var(--cream);}
.ld-prose h3{margin-top:1.3em;font-size:1.25rem;color:var(--cream);}
.ld-prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(207,143,138,.5);}
.ld-prose ul,.ld-prose ol{padding-left:1.3em;}
.ld-prose li{margin-bottom:.35em;}
.ld-prose li::marker{color:var(--amber);}
.ld-prose blockquote,.wp-block-quote{border-left:3px solid var(--amber);padding:.2em 0 .2em 1.1em;margin-left:0;font-family:var(--f-head);font-size:1.15rem;color:var(--cream);}
.ld-prose blockquote cite{display:block;font:italic .85rem var(--f-body);color:var(--muted);margin-top:.5em;}
.ld-prose img{border-radius:14px;}
.ld-prose figure{margin-left:0;margin-right:0;}
.ld-prose figcaption,.wp-element-caption{font-size:.84rem;color:var(--muted);text-align:center;margin-top:.5em;}
.ld-prose code{font-family:var(--f-mono);font-size:.88em;background:rgba(243,234,217,.08);padding:.1em .35em;border-radius:5px;}
.ld-prose pre{background:rgba(12,9,22,.6);border:1px solid var(--line);border-radius:12px;padding:16px;overflow-x:auto;}
.ld-prose pre code{background:none;padding:0;}
.ld-prose table{width:100%;border-collapse:collapse;font-size:.95rem;}
.ld-prose th,.ld-prose td{border-bottom:1px solid var(--line);padding:.55em .6em;text-align:left;}
.ld-prose hr,.wp-block-separator{border:0;height:1px;background:var(--line);margin:2em 0;}
.alignleft{float:left;margin:.3em 1.2em 1em 0;max-width:50%;}
.alignright{float:right;margin:.3em 0 1em 1.2em;max-width:50%;}
.aligncenter{margin-left:auto;margin-right:auto;text-align:center;}
.alignwide,.alignfull{margin-left:0;margin-right:0;}
.wp-block-image img{display:block;height:auto;}
.wp-block-columns{display:flex;gap:1.5em;flex-wrap:wrap;}
.wp-block-column{flex:1 1 220px;min-width:0;}
.wp-block-embed iframe,.ld-prose iframe{max-width:100%;border-radius:12px;}
.wp-block-embed__wrapper{position:relative;}
.wp-block-button__link{display:inline-block;background:var(--amber);color:var(--ink);padding:.7em 1.3em;border-radius:30px;font-weight:700;text-decoration:none!important;}
.has-text-align-center{text-align:center;}

/* ---------- Ads (inside articles only) ---------- */
.ld-ad{margin:2em 0;padding:10px 0 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:120px;clear:both;}
.ld-ad__label{display:block;text-align:center;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}

/* ---------- Video stage (persistent, ≥200px tall per YouTube's minimum) ---------- */
.ld-stage{position:fixed;left:clamp(12px,3vw,22px);bottom:calc(var(--dock-h) + 12px + env(safe-area-inset-bottom,0px));z-index:40;
  width:var(--stage-w);background:var(--glass);border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 22px 50px rgba(6,4,14,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  animation:ld-pop .3s var(--ease) both;}
.ld-stage[data-side="right"]{left:auto;right:clamp(12px,3vw,22px);}
.ld-stage__frame{position:relative;width:100%;aspect-ratio:16/9;min-height:var(--stage-h);background:#0e0b18;}
.ld-stage__frame iframe,#ld-yt{position:absolute;inset:0;width:100%;height:100%;border:0;}
.ld-stage__poster{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--muted);font-size:.82rem;
  background:radial-gradient(circle at 70% 30%,rgba(240,178,113,.18),transparent 55%),#0e0b18;transition:opacity .4s;}
.ld-stage.is-ready:not(.is-error) .ld-stage__poster{opacity:0;pointer-events:none;}
.ld-stage.is-error .ld-stage__spinner{display:none;}
.ld-stage__spinner{width:26px;height:26px;border-radius:50%;border:2px solid rgba(243,234,217,.2);border-top-color:var(--amber);animation:ld-spin .9s linear infinite;}
.ld-stage__bar{display:flex;align-items:center;gap:10px;padding:7px 10px 7px 12px;font-size:.78rem;}
.ld-stage__bar a{color:var(--muted);margin-right:auto;}
.ld-stage__bar a:hover{color:var(--cream);}
.ld-stage__live{width:8px;height:8px;border-radius:50%;background:#ff4d4d;box-shadow:0 0 8px #ff4d4d;flex:none;}
.ld-stage__side{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--muted);}
.ld-stage__side:hover{color:var(--cream);background:rgba(243,234,217,.08);}
.ld-stage__side svg{width:16px;height:16px;}

/* ---------- Dock ---------- */
.ld-dock{position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--dock-h) + env(safe-area-inset-bottom,0px));
  padding:0 clamp(12px,3vw,22px) env(safe-area-inset-bottom,0px);display:flex;align-items:center;gap:clamp(10px,2vw,18px);
  background:rgba(20,16,34,.84);border-top:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.ld-np{flex:1;min-width:0;display:flex;align-items:center;gap:12px;}
/* Logo as a vinyl record: spins at 33⅓ RPM (1.8 s per turn) while playing, pauses in place when stopped. */
.ld-disc{width:60px;height:60px;border-radius:50%;flex:none;position:relative;overflow:hidden;will-change:transform;
  background:#0e0b18;box-shadow:0 0 0 1px var(--line);animation:ld-spin 1.8s linear infinite paused;transition:box-shadow .4s;}
.ld-disc img{display:block;width:100%;height:100%;transform:scale(1.12);} /* trims the outer glow so the disc fills the circle */
.ld-playing .ld-disc{animation-play-state:running;box-shadow:0 0 0 1px rgba(207,110,230,.45),0 0 14px rgba(120,160,255,.35);}
@keyframes ld-spin{to{transform:rotate(360deg)}}
.ld-np__info{min-width:0;display:flex;flex-direction:column;}
.ld-np__info b{font-family:var(--f-head);font-weight:600;font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ld-np__info span{color:var(--muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ld-ctrl{display:flex;align-items:center;gap:6px;flex:none;}
.ld-ctrl button{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;transition:background .2s;}
.ld-ctrl button:hover{background:rgba(243,234,217,.1);}
.ld-ctrl svg{width:19px;height:19px;}
.ld-ctrl .ld-go{width:48px;height:48px;color:var(--ink);background:radial-gradient(circle at 38% 32%,var(--amber),var(--amber-soft));
  box-shadow:0 6px 18px rgba(240,178,113,.35);}
.ld-ctrl .ld-go:hover{background:radial-gradient(circle at 38% 32%,#f6c48d,var(--amber));}
.ld-go span{display:grid;place-items:center;}
.ld-go .ld-go__pause,.ld-playing .ld-go .ld-go__play{display:none;}
.ld-playing .ld-go .ld-go__pause{display:grid;}
.ld-vol{display:flex;align-items:center;gap:8px;width:130px;flex:none;color:var(--muted);}
.ld-vol svg{width:18px;height:18px;flex:none;}
.ld-tools{display:flex;gap:8px;flex:none;}
.ld-tools button{position:relative;width:42px;height:42px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);transition:border-color .2s,color .2s;}
.ld-tools button:hover,.ld-tools button[aria-expanded="true"]{color:var(--cream);border-color:var(--sage);}
.ld-tools svg{width:19px;height:19px;}
.ld-badge{position:absolute;top:-4px;right:-4px;min-width:8px;height:8px;border-radius:8px;background:var(--amber);opacity:0;transform:scale(.4);transition:opacity .2s,transform .2s;}
.ld-timer-running .ld-badge{opacity:1;transform:none;}
.ld-amb-on #ld-amb-btn{color:var(--sage);}

/* ---------- Range inputs ---------- */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:5px;background:rgba(243,234,217,.16);cursor:pointer;margin:0;
  background-image:linear-gradient(var(--sage),var(--sage));background-size:var(--fill,0%) 100%;background-repeat:no-repeat;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--cream);box-shadow:0 0 0 4px rgba(147,182,166,.25);}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border:0;border-radius:50%;background:var(--cream);}
input[type=range]:focus-visible{outline-offset:6px;}

/* ---------- Popovers ---------- */
.ld-pop{position:fixed;right:clamp(12px,3vw,22px);bottom:calc(var(--dock-h) + 14px + env(safe-area-inset-bottom,0px));z-index:60;
  width:min(310px,calc(100vw - 24px));background:rgba(24,20,40,.9);border:1px solid var(--line);border-radius:18px;padding:18px;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 24px 60px rgba(6,4,14,.55);animation:ld-pop .22s var(--ease) both;}
@keyframes ld-pop{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}
.ld-pop__h{font:700 .78rem var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--cream);margin-bottom:16px;}
.ld-pop__h small{display:block;font-weight:400;letter-spacing:.02em;text-transform:none;color:var(--muted);font-size:.78rem;margin-top:2px;}
.ld-amb-row{display:grid;grid-template-columns:22px 58px 1fr;align-items:center;gap:11px;margin-bottom:14px;}
.ld-amb-row:last-child{margin:0;}
.ld-amb-row__ic{width:22px;height:22px;color:var(--sage);opacity:.5;transition:opacity .2s;}
.ld-amb-row.is-on .ld-amb-row__ic{opacity:1;}
.ld-amb-row label{font-size:.9rem;}
.ld-timer{font:700 3.2rem/1.1 var(--f-mono);text-align:center;margin:4px 0;font-variant-numeric:tabular-nums;}
.ld-tmode{text-align:center;color:var(--sage);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px;}
.ld-tbtns{display:flex;gap:10px;justify-content:center;}
.ld-tbtn{padding:10px 20px;border-radius:26px;font-weight:700;font-size:.88rem;border:1px solid var(--line);color:var(--muted);}
.ld-tbtn:hover{color:var(--cream);border-color:var(--cream);}
.ld-tbtn--start{background:var(--sage);color:#16241d;border-color:var(--sage);min-width:88px;}
.ld-tbtn--start:hover{color:#16241d;background:#a8c7b9;}
.ld-dots{display:flex;gap:6px;justify-content:center;margin-top:14px;}
.ld-dots i{width:7px;height:7px;border-radius:50%;background:rgba(243,234,217,.2);transition:background .3s;}
.ld-dots i.is-done{background:var(--amber);}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .ld-vol{display:none;}
}
@media (max-width:720px){
  :root{--dock-h:70px;}
  .ld-clock{display:none;}
  .ld-logo b{display:none;}
  .ld-logo__img{width:44px;height:44px;}
  .ld-np__info span{display:none;}
  .ld-disc{width:52px;height:52px;}
  .ld-ctrl{gap:2px;}
  .ld-ctrl button{width:38px;height:38px;}
  .ld-ctrl .ld-go{width:46px;height:46px;}
  .ld-tools{gap:6px;}
  .ld-tools button{width:38px;height:38px;}
  /* Phones: stage spans the width but keeps the 200px minimum height. */
  .ld-stage,.ld-stage[data-side="right"]{left:8px;right:8px;width:auto;bottom:calc(var(--dock-h) + 8px + env(safe-area-inset-bottom,0px));}
  .ld-stage__frame{aspect-ratio:auto;height:var(--stage-h);}
  .ld-stage__side{display:none;}
  .ld-pop{right:12px;left:12px;width:auto;}
}
@media (max-width:420px){
  .ld-ctrl #ld-prev{display:none;}
}

/* ---------- Time-of-day scene (html[data-tod] set before first paint) ---------- */
.ld-scene__stars,.ld-scene__moon,.ld-win,.ld-scene__lamp{transition:opacity 2s ease;}
[data-tod="dawn"] .ld-scene{background:linear-gradient(180deg,#2c2745 0%,#6b4f6e 52%,#c98f7c 100%);}
[data-tod="dawn"] .ld-scene__stars{opacity:.25;animation:none;}
[data-tod="dawn"] .ld-scene__moon{opacity:.45;}
[data-tod="dawn"] .ld-win{opacity:.35;}
[data-tod="day"] .ld-scene{background:linear-gradient(180deg,#3a4262 0%,#5b5f80 50%,#81778f 100%);}
[data-tod="day"] .ld-lead,[data-tod="day"] .ld-hero__sub,[data-tod="day"] .ld-card__mood,[data-tod="day"] .ld-post-card__meta,[data-tod="day"] .ld-crumbs,[data-tod="day"] .ld-foot{color:#e2d9ec;}
[data-tod="day"] .ld-nav a{color:#d6cde2;}
[data-tod="day"] .ld-scene__stars,[data-tod="day"] .ld-scene__moon{opacity:0;animation:none;}
[data-tod="day"] .ld-win,[data-tod="day"] .ld-win--b{opacity:.12;animation:none;}
[data-tod="day"] .ld-scene__lamp{opacity:.35;animation:none;}
[data-tod="day"] .ld-scene__vignette{box-shadow:inset 0 0 220px 70px rgba(30,26,52,.55);}
[data-tod="day"] .ld-scene__city g:first-child{fill:#2e2944;}
[data-tod="day"] .ld-scene__far g{fill:#4a4563;}
[data-tod="dusk"] .ld-scene{background:linear-gradient(180deg,#2a2240 0%,#5a3d5c 50%,#b36f6a 100%);}
[data-tod="dusk"] .ld-scene__stars{opacity:.55;}
[data-tod="dusk"] .ld-scene__moon{opacity:.8;}

/* Logged-in admin bar: keep the sticky header below it. */
.admin-bar .ld-top{top:32px;}
@media (max-width:782px){.admin-bar .ld-top{top:46px;}}
@media (max-width:600px){.admin-bar .ld-top{top:0;}}

/* ---------- 1.1 components ---------- */
.ld-crumbs{margin:-6px 0 18px;font-size:.84rem;color:var(--muted);}
.ld-crumbs ol{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;}
.ld-crumbs li+li::before{content:"›";margin-right:6px;opacity:.6;}
.ld-crumbs a{color:var(--muted);}
.ld-crumbs a:hover{color:var(--cream);}
.ld-crumbs [aria-current]{color:var(--cream);}
.ld-filter{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;}
.ld-filter a{border:1px solid var(--line);border-radius:30px;padding:7px 15px;font-size:.86rem;font-weight:600;color:var(--muted);background:rgba(24,20,40,.35);}
.ld-filter a:hover{color:var(--cream);border-color:rgba(240,178,113,.5);}
.ld-filter a[aria-current]{background:var(--amber);border-color:var(--amber);color:var(--ink);}
.ld-lead p{margin:0;}
.ld-card__stats,.ld-station__stats{color:var(--sage);font-size:.8rem;font-weight:700;letter-spacing:.02em;margin:-8px 2px 10px;}
.ld-station__stats{margin:0 0 6px;font-size:.9rem;}
.ld-card--video .ld-card__title{font-size:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ld-card__cover{position:relative;display:block;width:100%;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#0e0b18;}
.ld-card__cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease);}
.ld-card__cover:hover img{transform:scale(1.04);}
.ld-card__badge{position:absolute;right:10px;bottom:10px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--ink);
  background:radial-gradient(circle at 38% 32%,var(--amber),var(--amber-soft));box-shadow:0 6px 16px rgba(0,0,0,.35);}
.ld-card__badge svg{width:17px;height:17px;}
.ld-card__cover.is-current .ld-card__badge{box-shadow:0 0 0 3px var(--cream);}
.ld-author{display:flex;gap:16px;align-items:flex-start;margin:34px 0 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--card);}
.ld-author__img{width:64px;height:64px;border-radius:50%;flex:none;}
.ld-author p{margin:0 0 6px;}
.ld-author__name{font-family:var(--f-head);font-size:1.1rem;color:var(--cream);}
.ld-author__bio{color:#d9cdbb;font-size:.94rem;line-height:1.6;}
.ld-author__links a{font-size:.86rem;font-weight:700;color:var(--sage);}
.ld-presets{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;}
.ld-presets button{padding:6px 11px;border-radius:20px;border:1px solid var(--line);font-size:.78rem;font-weight:700;color:var(--muted);}
.ld-presets button:hover{color:var(--cream);border-color:var(--sage);}
.ld-presets button[aria-pressed="true"],.ld-presets button[aria-checked="true"]{background:var(--sage);border-color:var(--sage);color:#16241d;}
.ld-amb-row--master{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);}
.ld-pop__h--sub{margin:20px 0 10px;padding-top:16px;border-top:1px solid var(--line);}
.ld-sleep{margin-bottom:6px;}
.ld-sleep__status{min-height:1.2em;margin:0;font:700 .8rem var(--f-mono);color:var(--amber);}
.ld-keys{margin:12px 0 0;font-size:.72rem;color:var(--muted);}
.ld-sleep-on #ld-foc-btn .ld-badge{opacity:1;transform:none;background:var(--muted);}
.ld-timer-running #ld-foc-btn .ld-badge{background:var(--amber);}

/* ---------- 1.2 Sound popover (source switch, tracks, generator, FX) ---------- */
.ld-pop{max-height:calc(100vh - var(--dock-h) - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;}
.ld-pop--wide{width:min(360px,calc(100vw - 24px));}
.ld-seg{display:flex;padding:3px;border-radius:12px;background:rgba(243,234,217,.07);border:1px solid var(--line);margin-bottom:14px;}
.ld-seg button{flex:1;padding:8px 6px;border-radius:9px;font-size:.82rem;font-weight:700;color:var(--muted);transition:background .2s,color .2s;}
.ld-seg button:hover{color:var(--cream);}
.ld-seg button[aria-checked="true"]{background:var(--amber);color:var(--ink);}
.ld-seg--small{margin:12px 0 0;}
.ld-seg--small button{font-size:.76rem;padding:6px 4px;}
.ld-snd__note{font-size:.84rem;color:var(--muted);margin:0 0 4px;}
.ld-snd__panel{margin-top:4px;}
.ld-tracklist{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin;}
.ld-tracklist li+li{border-top:1px solid var(--line);}
.ld-tracklist button{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:10px;width:100%;padding:9px 12px;text-align:left;font-size:.86rem;}
.ld-tracklist button:hover{background:rgba(243,234,217,.06);}
.ld-tracklist b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ld-tracklist i{font:700 .72rem var(--f-mono);font-style:normal;color:var(--muted);}
.ld-tracklist span{width:8px;height:8px;border-radius:50%;background:transparent;}
.ld-tracklist [aria-current] b{color:var(--amber);}
.ld-tracklist [aria-current] span{background:var(--amber);}
.ld-playing[data-ld-src="tracks"] .ld-tracklist [aria-current] span{animation:ld-pulse 1.2s ease-in-out infinite;}
@keyframes ld-pulse{50%{opacity:.3}}
.ld-tracklist__empty{padding:12px;font-size:.84rem;color:var(--muted);}
.ld-num{font:700 .7rem var(--f-mono);color:var(--sage);opacity:1;width:auto;height:auto;text-align:center;}
.ld-select{width:100%;background:rgba(24,20,40,.8);color:var(--cream);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:.86rem;}
.ld-row--tight{margin:14px 0 0;align-items:center;gap:12px;}
.ld-snd__beat{font:700 .78rem var(--f-mono);color:var(--muted);}
.ld-snd__panel .ld-amb-row:last-child{margin-bottom:0;}

/* ---------- 1.3 Advanced generator ---------- */
.ld-pop--wide{width:min(390px,calc(100vw - 24px));}
.ld-tabs{display:flex;gap:2px;margin:0 0 14px;border-bottom:1px solid var(--line);}
.ld-tabs [role="tab"]{flex:1;padding:8px 4px 9px;font-size:.78rem;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;}
.ld-tabs [role="tab"]:hover{color:var(--cream);}
.ld-tabs [role="tab"][aria-selected="true"]{color:var(--cream);border-bottom-color:var(--amber);}
.ld-styles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.ld-styles button{padding:7px 4px;text-align:center;}
.ld-viz{display:block;width:100%;height:44px;margin:10px 0 0;border-radius:8px;background:rgba(12,9,22,.45);}
.ld-mute{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);font:700 .66rem var(--f-mono);color:var(--muted);}
.ld-mute[aria-pressed="true"]{background:var(--rose);border-color:var(--rose);color:var(--ink);}
.ld-grid16__head{display:flex;justify-content:space-between;align-items:center;margin:14px 0 6px;font-size:.76rem;color:var(--muted);}
.ld-linkbtn{font-size:.76rem;font-weight:700;color:var(--sage);text-decoration:underline;text-underline-offset:3px;}
.ld-grid16{display:grid;gap:5px;}
.ld-grid16__row{display:grid;grid-template-columns:38px repeat(16,1fr);gap:2px;align-items:center;}
.ld-grid16__row span{font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.ld-grid16 button{height:18px;border-radius:3px;background:rgba(243,234,217,.08);transition:background .1s;}
.ld-grid16 button:nth-of-type(4n+1){background:rgba(243,234,217,.14);}
.ld-grid16 button[aria-pressed="true"]{background:var(--amber);}
.ld-grid16 button.is-roll{background:linear-gradient(90deg,var(--amber) 0 30%,transparent 30% 45%,var(--amber) 45% 70%,transparent 70% 85%,var(--amber) 85%);}
.ld-grid16[data-step="0"] button:nth-of-type(1),.ld-grid16[data-step="1"] button:nth-of-type(2),.ld-grid16[data-step="2"] button:nth-of-type(3),.ld-grid16[data-step="3"] button:nth-of-type(4),.ld-grid16[data-step="4"] button:nth-of-type(5),.ld-grid16[data-step="5"] button:nth-of-type(6),.ld-grid16[data-step="6"] button:nth-of-type(7),.ld-grid16[data-step="7"] button:nth-of-type(8),.ld-grid16[data-step="8"] button:nth-of-type(9),.ld-grid16[data-step="9"] button:nth-of-type(10),.ld-grid16[data-step="10"] button:nth-of-type(11),.ld-grid16[data-step="11"] button:nth-of-type(12),.ld-grid16[data-step="12"] button:nth-of-type(13),.ld-grid16[data-step="13"] button:nth-of-type(14),.ld-grid16[data-step="14"] button:nth-of-type(15),.ld-grid16[data-step="15"] button:nth-of-type(16){box-shadow:0 0 0 2px var(--sage);}
.ld-saverow{display:flex;gap:8px;margin-bottom:10px;}
.ld-saverow input{flex:1;min-width:0;}
.ld-mypresets{max-height:96px;overflow-y:auto;}
.ld-chip{display:inline-flex;border:1px solid var(--line);border-radius:20px;overflow:hidden;}
.ld-chip button{padding:5px 9px;font-size:.76rem;font-weight:700;color:var(--cream);border:0;border-radius:0;}
.ld-chip button+button{padding:5px 8px;color:var(--muted);border-left:1px solid var(--line);}
.ld-chip button:hover{background:rgba(243,234,217,.08);}
.ld-muted{font-size:.8rem;color:var(--muted);}
.ld-dl{display:block;margin:8px 0 0;font-size:.82rem;font-weight:700;color:var(--amber);word-break:break-all;}
.ld-tbtn[aria-pressed="true"]{background:var(--rose);border-color:var(--rose);color:var(--ink);}
.ld-row--tight{flex-wrap:wrap;}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  .ld-scene__rain{opacity:.25;}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important;}
}
@media print{
  .ld-scene,.ld-dock,.ld-stage,.ld-pop,.ld-top,.ld-ad{display:none!important;}
  body{background:#fff;color:#000;}
}
