/* Generated public stylesheet bundle. Source order mirrors app/layout.tsx before the delivery split. */
/* app/globals.css */
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-Regular-tdr-v1.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-Medium-tdr-v1.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-SemiBold-tdr-v1.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-Bold-tdr-v1.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-ExtraBold-tdr-v1.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:Kanit;src:url("/assets/fonts/Kanit-Black-tdr-v1.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}

:root{
  --black:#090909;
  --black-soft:#111;
  --white:#f5f1eb;
  --paper:#e9e3da;
  --muted:#a7a19a;
  --line:rgba(245,241,235,.18);
  --red:#9f1023;
  --red-bright:#c71933;
  --menu-chrome:#080808;
  --header-h:92px;
  --gutter-base:clamp(20px,4vw,68px);
  --safe-inline:max(env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));
  --gutter:calc(var(--gutter-base) + var(--safe-inline));
  --radius:2px;
  --ease:cubic-bezier(.2,.8,.2,1);

  /* Typography foundation: shared metrics for Thai, Latin and mixed UI. */
  --font-primary:Kanit,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-latin:var(--font-primary);
  --tracking-display-en:-.018em;
  --tracking-display-th:0;
  --tracking-heading-en:-.012em;
  --tracking-heading-th:0;
  --tracking-label-en:.16em;
  --tracking-label-th:.035em;
  --tracking-body:0;
  --leading-display-en:1.02;
  --leading-display-th:1.2;
  --leading-body-th:1.66;
  --leading-control-th:1.35;
}

/* YouTube-first release experience */
body.video-open{overflow:hidden}
.release-hero__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.release-follow--youtube{background:#c8171e}
.release-follow--youtube>div>p:last-child{max-width:620px;margin-top:16px;color:rgba(255,255,255,.72)}
.youtube-stage{background:#080808;color:#fff;padding-top:clamp(70px,8vw,124px);padding-bottom:clamp(70px,8vw,124px)}
.youtube-stage__heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:32px}
.youtube-stage__heading h2{margin:8px 0 0;font-size:clamp(2.4rem,5vw,5.8rem);line-height:.95}
.youtube-stage__heading .text-link{color:#fff;white-space:nowrap}
.youtube-stage__frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.14)}
.youtube-stage__frame iframe{display:block;width:100%;height:100%;border:0}
.youtube-stage__frame>button{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#111;color:#fff;cursor:pointer;overflow:hidden;text-align:left}
.youtube-stage__frame>button::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.08) 65%),linear-gradient(0deg,rgba(0,0,0,.5),transparent 55%)}
.youtube-stage__frame>button img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) brightness(.76);transition:transform .5s ease,filter .5s ease}
.youtube-stage__frame>button:hover img{transform:scale(1.018);filter:saturate(1) brightness(.84)}
.youtube-stage__play{position:absolute;z-index:1;left:50%;top:50%;display:grid;place-items:center;width:clamp(68px,8vw,104px);height:clamp(68px,8vw,104px);border-radius:50%;transform:translate(-50%,-50%);background:#e21d2a;color:#fff;font-size:clamp(1.3rem,2.4vw,2rem);padding-left:.12em;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.youtube-stage__label{position:absolute;z-index:1;left:clamp(22px,4vw,58px);bottom:clamp(22px,4vw,48px);display:flex;flex-direction:column;gap:4px}
.youtube-stage__label b{font-size:clamp(1.15rem,2vw,1.8rem)}
.youtube-stage__label small{color:rgba(255,255,255,.66);font-family:var(--font-latin);letter-spacing:.12em;text-transform:uppercase}
.youtube-stage__note{margin:14px 0 0;color:rgba(255,255,255,.55);font-size:.82rem}
.video-modal{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:clamp(12px,3vw,40px);background:rgba(0,0,0,.88);backdrop-filter:blur(12px);animation:videoFade .2s ease both}
.video-modal__panel{width:min(1180px,100%);max-height:calc(100svh - 24px);overflow:auto;background:#0b0b0b;border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 100px rgba(0,0,0,.55)}
.video-modal__head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(18px,3vw,34px);color:#fff}
.video-modal__head h2{margin:3px 0 1px;font-size:clamp(1.35rem,2.7vw,2.5rem);line-height:1}
.video-modal__head>div>span{color:rgba(255,255,255,.58)}
.video-modal__head>button{flex:0 0 auto;width:46px;height:46px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:transparent;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}
.video-modal__frame{aspect-ratio:16/9;background:#000}
.video-modal__frame iframe{display:block;width:100%;height:100%;border:0}
.video-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(18px,3vw,34px);color:rgba(255,255,255,.58);font-size:.82rem}
.video-modal__footer a{color:#fff;text-decoration:none;font-weight:700}
@keyframes videoFade{from{opacity:0}to{opacity:1}}

@media (max-width:700px){
  .release-hero__actions{align-items:stretch}
  .release-hero__actions .button{width:100%;justify-content:space-between}
  .youtube-stage__heading{display:block}
  .youtube-stage__heading .text-link{display:inline-block;margin-top:18px}
  .youtube-stage{padding-left:0;padding-right:0}
  .youtube-stage__heading,.youtube-stage__note{margin-left:var(--gutter);margin-right:var(--gutter)}
  .youtube-stage__frame{border-left:0;border-right:0}
  .video-modal{padding:0;align-items:center}
  .video-modal__panel{max-height:100svh;border-left:0;border-right:0}
  .video-modal__footer{align-items:flex-start;flex-direction:column}
  .video-modal__footer span{display:none}
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{
  margin:0;
  min-width:0;
  background:var(--black);
  color:var(--white);
  font-family:var(--font-primary);
  font-size:16px;
  line-height:1.55;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  font-kerning:normal;
  font-feature-settings:"kern" 1;
  font-synthesis:none;
}
.site-shell :where(h1,h2,h3,p,blockquote,dt,dd,a,button,span,strong,small){
  min-width:0;
}
.site-shell :where(h1,h2,h3){
  overflow-wrap:break-word;
}
.site-shell :where(p,blockquote,dd){
  overflow-wrap:break-word;
  text-wrap:pretty;
}
/* Kanit needs more vertical room for Thai vowels and tone marks than the
   compressed display settings used by the Latin headlines. */
.site-shell :where(h1,h2,h3):lang(th){
  letter-spacing:0;
  line-height:1.2;
  overflow-wrap:break-word;
  text-wrap:balance;
}
.site-shell :where(p,blockquote,dd):lang(th){
  line-height:1.66;
}
.site-shell :where(a,button):lang(th){
  line-height:1.35;
}
.button:lang(th){line-height:1.25}
.eyebrow:lang(th),
.footer-label:lang(th),
.roster-row__number:lang(th),
.contact-intent>span:first-child:lang(th){
  letter-spacing:.08em;
  line-height:1.5;
}
.site-shell{min-height:100svh;background:var(--black);color:var(--white)}
body.menu-open{
  height:100vh;
  height:100dvh;
  overflow:hidden;
  overscroll-behavior:none;
}
body.menu-open .site-shell{
  height:100%;
  min-height:0;
  overflow:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:not(:disabled){cursor:pointer}
::selection{background:var(--red-bright);color:#fff}
:focus-visible{outline:3px solid #fff;outline-offset:4px}
.navigation-progress{
  position:fixed;z-index:1000;inset:0 0 auto;height:3px;pointer-events:none;
  background:linear-gradient(90deg,#fff,var(--red-bright));
  opacity:0;transform:scaleX(0);transform-origin:left center
}
.is-navigating .navigation-progress{opacity:1;animation:navigation-progress 1.2s var(--ease) forwards}
@keyframes navigation-progress{
  0%{transform:scaleX(.05)}
  55%{transform:scaleX(.62)}
  100%{transform:scaleX(.86)}
}
.skip-link{position:fixed;z-index:999;left:16px;top:12px;padding:10px 16px;background:#fff;color:#000;transform:translateY(-150%);transition:transform .2s}
.skip-link:focus{transform:translateY(0)}
.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;color:var(--muted)}
.button{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:13px 18px;
  border:1px solid transparent;
  border-radius:var(--radius);
  font-weight:600;
  letter-spacing:.02em;
  line-height:1.1;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.button:hover{transform:translateY(-2px)}
.button:active,.menu-toggle:active,.cover-play:active,.text-link:active{transform:scale(.97);transition-duration:.08s}
.button--primary{background:var(--red-bright);color:#fff}
.button--primary:hover{background:#e01d3a}
.button--ghost{border-color:var(--line);background:rgba(9,9,9,.24);backdrop-filter:blur(8px)}
.button--ghost:hover{background:var(--white);color:var(--black)}
.button--line{width:100%;border-top-color:var(--line);border-bottom-color:var(--line);padding-inline:0}
.button--line:hover{color:#fff;border-color:rgba(245,241,235,.55)}
.button--light{background:var(--white);color:var(--black)}
.button--light:hover{background:#fff}
.button--large{min-height:64px;padding:18px 24px;font-size:1.05rem}
.button:disabled,.cover-play:disabled{opacity:.46;cursor:not-allowed;transform:none}
.text-link{display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid currentColor;padding-bottom:4px;font-weight:500}
.text-link span{transition:transform .2s var(--ease)}
.text-link:hover span{transform:translate(3px,-3px)}

.site-header{
  position:absolute;
  inset:0 0 auto;
  z-index:50;
  min-height:var(--header-h);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:28px;
  padding:20px var(--gutter);
  border-bottom:1px solid rgba(255,255,255,.16);
  color:#fff;
}
.site-shell:not(.page-home) .site-header{position:relative;background:var(--black)}
.site-shell.page-home .site-header.is-scrolled{position:fixed;background:rgba(9,9,9,.92);backdrop-filter:blur(14px)}
body.menu-open .site-header{
  position:fixed;
  background:var(--menu-chrome);
  border-bottom-color:rgba(255,255,255,.14);
  backdrop-filter:none;
}
.wordmark{display:inline-flex;flex-direction:column;width:max-content;font-size:.8rem;font-weight:800;letter-spacing:.17em;line-height:1.05}
.wordmark span:last-child{color:var(--red-bright);letter-spacing:.27em}
.desktop-nav{display:flex;align-items:center;gap:clamp(22px,3vw,52px);font-size:.9rem}
.desktop-nav a,.footer-column a{position:relative}
.desktop-nav a::after,.footer-column a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .25s var(--ease)
}
.desktop-nav a:hover::after,.footer-column a:hover::after{right:0}
.header-actions{display:flex;align-items:center;justify-content:flex-end}
.menu-toggle{
  display:flex;align-items:center;padding:10px 0;border:0;background:none;cursor:pointer
}
.menu-glyph{display:grid;gap:5px;width:23px}
.menu-glyph i{display:block;height:1px;background:currentColor;transition:transform .25s var(--ease)}
.menu-toggle[aria-expanded=true] .menu-glyph i:first-child{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-glyph i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] .menu-glyph i:last-child{transform:translateY(-6px) rotate(-45deg)}
.menu-panel{
  position:fixed;z-index:40;inset:0;height:auto;min-height:0;overflow:hidden;background:var(--menu-chrome);
  display:grid;grid-template-columns:minmax(360px,42%) minmax(0,58%)
}
.menu-panel[hidden]{display:none}
.menu-panel__visual{position:relative;min-width:0;min-height:0;overflow:hidden;background:#090909;isolation:isolate}
.menu-panel__visual::before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:clamp(58px,5.5vw,92px) clamp(58px,5.5vw,92px);mask-image:linear-gradient(to bottom,rgba(0,0,0,.35),#000 55%,rgba(0,0,0,.5))}
.menu-panel__visual::after{content:"";position:absolute;z-index:-1;left:var(--gutter);top:var(--header-h);bottom:0;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.24) 20%,rgba(255,255,255,.24) 82%,transparent)}
.menu-panel__edition{position:absolute;left:calc(var(--gutter) + 20px);top:calc(var(--header-h) + 34px);font-size:.62rem;letter-spacing:.18em;color:var(--muted)}
.menu-panel__monogram{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);font-size:clamp(9rem,19vw,24rem);font-weight:900;line-height:.8;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(245,241,235,.16);user-select:none}
.menu-panel__visual-copy{position:absolute;inset:auto var(--gutter) clamp(34px,5vh,62px);display:flex;flex-direction:column;align-items:flex-start}
.menu-panel__visual-copy p{margin:0 0 12px;color:#ddd4cc;font-size:.68rem;letter-spacing:.18em}
.menu-panel__visual-copy strong{font-size:clamp(1.8rem,2.7vw,3.4rem);line-height:1.04;letter-spacing:.02em}
.menu-panel__visual-copy span{margin-top:30px;color:var(--muted);font-size:.62rem;letter-spacing:.15em}
.menu-panel__content{
  min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;background:var(--red);
  padding:calc(var(--header-h) + 24px) clamp(34px,5vw,82px) max(clamp(28px,4vh,46px),env(safe-area-inset-bottom))
}
.menu-panel__label{flex:none;align-self:start;margin:0;color:#f0b6c0;font-size:.65rem;letter-spacing:.18em}
.menu-panel__nav{flex:none;width:100%;margin:auto 0;display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.3)}
.menu-panel__nav a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:20px;border-bottom:1px solid rgba(255,255,255,.3);padding:clamp(14px,2vh,24px) 0;transition:color .25s var(--ease),padding .25s var(--ease)}
.menu-panel__nav a>span:first-child{font-size:.67rem;letter-spacing:.16em;font-weight:500}
.menu-panel__nav-copy{display:flex;align-items:baseline;justify-content:space-between;gap:28px}
.menu-panel__nav-copy strong{font-size:clamp(2.5rem,4.2vw,5.2rem);font-weight:800;line-height:1.08}
.menu-panel__nav-copy em{color:#f2bdc6;font-size:.7rem;font-style:normal;letter-spacing:.06em}
.menu-panel__nav a>i{font-size:1.25rem;font-style:normal;transition:transform .25s var(--ease)}
.menu-panel__nav a:active{color:var(--black)}
.menu-panel__footer{flex:none;display:grid;grid-template-columns:1fr auto;gap:10px 28px;align-items:end;padding-top:22px;border-top:1px solid rgba(255,255,255,.3);font-size:.72rem}
.menu-panel__socials{display:flex;flex-wrap:wrap;gap:20px}
.menu-panel__footer>a:last-child{grid-column:1/-1;color:#f0b6c0;overflow-wrap:anywhere}
.menu-open .desktop-nav{visibility:hidden}

@media (hover:hover) and (pointer:fine){
  .menu-panel__nav a:hover{color:var(--black);padding-left:10px}
  .menu-panel__nav a:hover .menu-panel__nav-copy em{color:var(--black)}
  .menu-panel__nav a:hover>i{transform:translate(4px,-4px)}
  .menu-panel__footer a:hover{text-decoration:underline;text-underline-offset:4px}
}

.hero{position:relative;min-height:max(720px,100svh);display:flex;align-items:flex-end;isolation:isolate}
.hero__media,.hero__scrim{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__scrim{
  z-index:1;
  background:
    linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.17) 40%,rgba(0,0,0,.9) 100%),
    linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.44) 35%,rgba(0,0,0,.08) 62%,transparent 78%);
}
.hero__content{position:relative;z-index:2;width:100%;padding:calc(var(--header-h) + 40px) var(--gutter) 48px}
.hero__kicker{text-transform:uppercase;letter-spacing:.15em;font-size:.74rem;margin:0 0 18px}
.hero h1{max-width:min(58vw,960px);margin:0;font-size:clamp(4.25rem,7.4vw,8.5rem);line-height:.82;letter-spacing:-.05em;font-weight:900}
.hero h1 span{display:block}
.hero h1 .outline{color:transparent;-webkit-text-stroke:clamp(1px,.12vw,2px) rgba(255,255,255,.9)}
.hero__bottom{margin-top:clamp(32px,4.5vh,52px);display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,1.1fr);gap:clamp(36px,6vw,96px);align-items:end}
.hero__subtitle{font-size:clamp(1.25rem,1.8vw,1.9rem);font-weight:600;margin:0 0 10px}
.hero__copy{max-width:590px;margin:0;color:#d2ceca;font-size:clamp(.94rem,1.05vw,1.08rem);line-height:1.65}
.hero__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}
.hero__artist-link{display:inline-flex;align-items:center;gap:10px;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.46);font-weight:600;transition:color .25s,border-color .25s}
.hero__artist-link:hover{color:var(--red-bright);border-color:var(--red-bright)}
.ticker{position:relative;width:100%;max-width:100vw;overflow:hidden;contain:inline-size paint;background:var(--red-bright);color:#fff;padding:15px 0}
.ticker div{display:flex;width:100%;gap:28px;align-items:center;justify-content:space-around;padding:0 var(--gutter)}
.ticker div>:nth-child(n+9){display:none}
.ticker span{font-size:clamp(1rem,1.7vw,1.55rem);font-weight:700;letter-spacing:.1em}
.ticker i{font-size:.55rem}

.section{position:relative;padding:clamp(80px,8vw,128px) var(--gutter);border-top:1px solid var(--line)}
.section-rail{position:absolute;left:var(--gutter);top:clamp(80px,8vw,128px);display:flex;gap:18px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.66rem;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:clamp(38px,6vw,78px)}
.section-heading h2{max-width:980px;margin:8px 0 0;font-size:clamp(2.75rem,5.6vw,5.8rem);line-height:.94;letter-spacing:-.035em;text-transform:uppercase}
.section-heading>p{max-width:520px;margin:0;color:var(--muted)}
.section-cta{margin-top:42px}

.feature-release{display:grid;grid-template-columns:54px minmax(300px,1fr) minmax(360px,.85fr);gap:clamp(30px,6vw,100px);align-items:center}
.feature-release .section-rail{position:static}
.feature-release__art{position:relative}
.feature-release__art img{width:100%;aspect-ratio:1;object-fit:cover;box-shadow:0 32px 72px rgba(0,0,0,.46)}
.cover-play{position:absolute;right:18px;bottom:18px;width:74px;height:74px;border:0;border-radius:50%;background:var(--white);color:var(--black);display:grid;place-items:center;cursor:pointer;transition:transform .25s var(--ease),background .25s}
.cover-play:hover{transform:scale(1.06);background:#fff}
.cover-play span{font-size:1.15rem;transform:translateX(2px)}
.feature-release__copy h2{margin:12px 0 8px;font-size:clamp(3.2rem,5.6vw,6.25rem);line-height:.9;letter-spacing:-.04em}
.feature-release__copy>p:not(.eyebrow):not(.feature-release__mood){color:var(--muted);max-width:590px}
.feature-release__mood{margin:18px 0;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.feature-release__actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin:34px 0}
.release-index{list-style:none;padding:0;margin:34px 0;border-top:1px solid var(--line)}
.release-index li{display:grid;grid-template-columns:36px 1fr auto;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);align-items:center;font-size:.9rem}
.release-index li>span{font-size:.68rem;color:var(--muted)}
.release-index a:hover{color:var(--red-bright)}

.manifesto{min-height:780px;background:var(--paper);color:var(--black);display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:6vw;overflow:hidden}
.manifesto .section-rail{position:static;color:#6f6861}
.manifesto__body{position:relative;z-index:1;max-width:1040px}
.manifesto__body h2{max-width:900px;margin:16px 0 40px;font-size:clamp(3.6rem,6.8vw,7.5rem);line-height:.9;letter-spacing:-.045em}
.manifesto__lead{max-width:770px;font-size:clamp(1.2rem,1.7vw,1.8rem);line-height:1.48}
.manifesto__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:56px 0 0;padding-top:24px;border-top:1px solid rgba(0,0,0,.22)}
.manifesto__facts div{display:grid;gap:10px}
.manifesto__facts dt{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#6f6861}
.manifesto__facts dd{margin:0;font-size:1.05rem}
.manifesto__mark{align-self:end;font-size:clamp(8rem,20vw,24rem);font-weight:900;line-height:.62;letter-spacing:-.1em;color:rgba(159,16,35,.09);writing-mode:vertical-rl}

.artist-roster{padding-left:var(--gutter);padding-right:var(--gutter)}
.artist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.artist-tile{background:var(--black);min-width:0}
.artist-tile a{position:relative;display:block;overflow:hidden}
.artist-tile img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.74) contrast(1.04);transition:transform .7s var(--ease),filter .4s}
.artist-tile a:hover img{transform:scale(1.025);filter:saturate(1)}
.artist-tile__number{position:absolute;top:20px;left:20px;font-size:.68rem;letter-spacing:.15em}
.artist-tile__caption{position:absolute;inset:auto 0 0;display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 24px;padding:64px 24px 24px;background:linear-gradient(transparent,rgba(0,0,0,.88))}
.artist-tile__caption h3{max-width:82%;margin:0;font-size:clamp(2.2rem,4.1vw,4.5rem);line-height:.94;letter-spacing:-.03em}
.artist-tile__caption p{margin:8px 0 0;color:#d2ceca}
.artist-tile__caption span{grid-column:2;grid-row:1/3;font-size:1.5rem}

.merch-feature{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(380px,1fr);gap:8vw;align-items:center}
.merch-feature>*{min-width:0}
.merch-feature__copy{max-width:650px}
.merch-feature__copy h2{font-size:clamp(3.5rem,5.8vw,6.5rem);line-height:.9;letter-spacing:-.04em;margin:18px 0 26px}
.merch-feature__copy>p:not(.eyebrow){color:var(--muted);font-size:1.1rem}
.merch-feature__meta{display:flex;gap:32px;margin:30px 0;font-size:.9rem;letter-spacing:.1em}
.merch-feature__image{display:block;overflow:hidden;background:#151515}
.merch-feature__image img{width:100%;aspect-ratio:1/1.12;object-fit:cover;transition:transform .7s var(--ease)}
.merch-feature__image:hover img{transform:scale(1.02)}

.business-cta{display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px;padding:clamp(80px,8vw,128px) var(--gutter);background:var(--red)}
.business-cta>*{min-width:0}
.business-cta h2{max-width:940px;margin:15px 0 24px;font-size:clamp(3.4rem,6.8vw,7.5rem);line-height:.9;letter-spacing:-.045em}
.business-cta p:not(.eyebrow){max-width:700px;margin:0;color:#efcdd3}
.business-cta--compact h2{font-size:clamp(2.8rem,5.4vw,5.8rem)}
.business-cta--compact{padding-top:clamp(64px,6vw,96px);padding-bottom:clamp(64px,6vw,96px)}

@media (min-width:801px){
  .menu-panel{
    padding-left:env(safe-area-inset-left,0px);
    padding-right:env(safe-area-inset-right,0px);
  }
  .menu-panel__visual::after{left:var(--gutter-base)}
  .menu-panel__edition{left:calc(var(--gutter-base) + 20px)}
  .menu-panel__visual-copy{left:var(--gutter-base);right:var(--gutter-base)}
  .page-home .hero{min-height:clamp(680px,92svh,920px)}
  .page-home .hero__content{padding-bottom:42px}
  .page-home .hero__bottom{margin-top:clamp(26px,3.5vh,42px)}
  .page-home .ticker{padding:9px 0}
  .page-home .ticker span{font-size:clamp(.72rem,.9vw,.88rem);letter-spacing:.14em}
  .page-home .ticker i{font-size:.36rem}
  .feature-release--home{padding-top:clamp(68px,6vw,96px);padding-bottom:clamp(68px,6vw,96px);grid-template-columns:44px minmax(340px,.9fr) minmax(390px,1.1fr);gap:clamp(34px,5vw,76px)}
  .feature-release--home .feature-release__art{max-width:620px}
  .feature-release--home .feature-release__actions{margin:28px 0 24px}
  .feature-release--home .feature-release__copy h2{font-size:clamp(3.5rem,5vw,5.8rem)}
  .artist-roster{padding-top:clamp(76px,6.5vw,104px);padding-bottom:clamp(76px,6.5vw,104px)}
  .artist-roster .section-heading{margin-bottom:clamp(34px,4vw,56px)}
  .artist-directory__grid.artist-directory__grid--home{gap:clamp(14px,1.6vw,24px)}
  .manifesto--home{min-height:0;padding-top:clamp(72px,6vw,96px);padding-bottom:clamp(72px,6vw,96px);grid-template-columns:54px minmax(0,1fr) minmax(130px,.22fr);gap:5vw}
  .manifesto--home .manifesto__body h2{max-width:1040px;margin:14px 0 30px;font-size:clamp(3.5rem,5.4vw,6.2rem);line-height:1.04}
  .manifesto--home .manifesto__lead{max-width:760px;font-size:clamp(1.1rem,1.35vw,1.45rem)}
  .manifesto--home .manifesto__facts{margin-top:38px}
  .manifesto--home .manifesto__mark{font-size:clamp(8rem,15vw,16rem);opacity:.7}
  .merch-feature--home{grid-template-columns:minmax(280px,.68fr) minmax(460px,1.32fr);gap:clamp(54px,7vw,110px);padding-top:clamp(72px,6vw,96px);padding-bottom:clamp(72px,6vw,96px)}
  .merch-feature--home .merch-feature__copy{max-width:540px}
  .merch-feature--home .merch-feature__copy h2{font-size:clamp(3.6rem,5.2vw,5.8rem)}
  .business-cta--home{padding-top:clamp(64px,5.5vw,88px);padding-bottom:clamp(64px,5.5vw,88px)}
  .business-cta--home h2{font-size:clamp(3.2rem,5.6vw,6.2rem);line-height:1.02;margin-bottom:18px}
  }

/* Keep the desktop homepage cover composition stable while the browser window
   is resized. The cover source is 1672 × 941, so width controls the stage
   height; top/right focal anchoring protects the subject at edge ratios. */
@media (min-width:1051px){
  .page-home .hero{
    min-height:0;
    height:clamp(680px,56.28vw,920px);
  }
  .page-home .hero__media{overflow:hidden}
  .page-home .hero__media img{object-position:56% top}
}

.site-footer{padding:clamp(72px,7vw,112px) var(--gutter) 28px;background:#050505;border-top:1px solid var(--line)}
.footer-lead{display:grid;grid-template-columns:.35fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid var(--line)}
.footer-lead>p:last-child{max-width:900px;margin:0;font-size:clamp(2.2rem,4.2vw,4.5rem);line-height:1.05;letter-spacing:-.025em}
.footer-grid{display:grid;grid-template-columns:1fr .35fr .55fr;gap:40px;padding:50px 0 70px}
.wordmark--footer{font-size:clamp(1.2rem,2.2vw,2rem)}
.site-footer .wordmark span:last-child{color:var(--tdr-public-accent-readable)}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-label{margin-bottom:10px;color:var(--muted);font-size:.67rem;letter-spacing:.15em;text-transform:uppercase}
.footer-meta{display:flex;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid var(--line);font-size:.63rem;letter-spacing:.14em;color:var(--muted)}

.audio-dock{
  position:fixed;z-index:80;left:20px;right:20px;bottom:20px;display:grid;grid-template-columns:58px minmax(130px,.7fr) 48px 45px 1fr 45px 36px;align-items:center;gap:14px;
  padding:10px;background:rgba(20,20,20,.94);border:1px solid rgba(255,255,255,.2);box-shadow:0 20px 70px rgba(0,0,0,.6);backdrop-filter:blur(16px)
}
.audio-dock[hidden]{display:none}
.audio-dock img{width:58px;height:58px;object-fit:cover}
.audio-dock__copy{min-width:0;display:flex;flex-direction:column}
.audio-dock__copy span,.audio-dock__copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audio-dock__copy small{color:var(--muted)}
.audio-dock__toggle,.audio-dock__close{border:0;background:none;cursor:pointer}
.audio-dock__toggle{width:44px;height:44px;border-radius:50%;background:var(--red-bright)}
.audio-dock__close{font-size:1.5rem;color:var(--muted)}
.audio-dock__time{font-size:.67rem;color:var(--muted);text-align:center}
.audio-dock__range{width:100%;accent-color:var(--red-bright)}

.page-hero{position:relative;min-height:clamp(500px,68vh,760px);display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header-h) + 48px) var(--gutter) clamp(60px,7vw,96px);overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 20%,rgba(159,16,35,.28),transparent 34%)}
.page-hero h1{position:relative;margin:14px 0 28px;max-width:1100px;font-size:clamp(3.5rem,8vw,8.5rem);line-height:.9;letter-spacing:-.045em;text-transform:uppercase}
.page-hero>p:last-child{position:relative;max-width:660px;margin:0 0 0 auto;color:var(--muted);font-size:clamp(1rem,1.5vw,1.25rem)}
.page-hero--merch h1,.page-hero--links h1{white-space:normal}
.page-hero--contact{background:var(--red)}
.page-hero--contact::before{display:none}
.page-hero--contact>p:last-child{color:#efcdd3}
.page-hero--artists{min-height:clamp(500px,54vh,560px)}
.page-hero--artists::before{background:radial-gradient(circle at 78% 34%,rgba(180,14,40,.3),transparent 38%)}

.artist-directory{padding:clamp(48px,6vw,92px) var(--gutter) clamp(80px,9vw,148px)}
.artist-directory__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2.2vw,34px)}
.artist-portrait{min-width:0;background:#111}
.artist-portrait>a{position:relative;display:block;overflow:hidden;isolation:isolate}
.artist-portrait__media{aspect-ratio:4/5;overflow:hidden;background:#111}
.artist-portrait__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.68) contrast(1.04);transition:transform .75s var(--ease),filter .45s var(--ease)}
.artist-portrait>a::after{content:"";position:absolute;z-index:1;inset:26% 0 0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.18) 35%,rgba(0,0,0,.94) 100%);pointer-events:none}
.artist-portrait__index{position:absolute;z-index:2;top:clamp(18px,2vw,30px);left:clamp(18px,2vw,30px);font-size:.66rem;letter-spacing:.16em;color:rgba(255,255,255,.78)}
.artist-portrait__overlay{position:absolute;z-index:2;inset:auto 0 0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:clamp(22px,3vw,42px)}
.artist-portrait__overlay h2{max-width:90%;margin:0;font-size:clamp(3rem,5.2vw,6rem);line-height:1;letter-spacing:-.02em}
.artist-portrait__overlay h2:lang(th){line-height:1.15;letter-spacing:0}
.artist-portrait__identity{margin:13px 0 0;color:#ded9d5;font-size:clamp(.83rem,1vw,1rem)}
.artist-portrait__mood{margin:10px 0 0;color:#aaa29d;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.artist-portrait__arrow{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.42);border-radius:50%;font-size:1.15rem;transition:transform .3s var(--ease),background .3s,color .3s}
.artist-portrait>a:hover .artist-portrait__media img{transform:scale(1.025);filter:saturate(1) contrast(1)}
.artist-portrait>a:hover .artist-portrait__arrow{transform:translate(3px,-3px);background:var(--white);color:var(--black)}
.artist-portrait>a:focus-visible{outline:2px solid var(--red-bright);outline-offset:4px}

.roster-list{padding:0 var(--gutter)}
.roster-row a{display:grid;grid-template-columns:60px minmax(170px,.36fr) 1fr 40px;align-items:center;gap:clamp(20px,5vw,76px);padding:32px 0;border-bottom:1px solid var(--line)}
.roster-row__number{font-size:.68rem;color:var(--muted);letter-spacing:.15em}
.roster-row__image{width:100%;aspect-ratio:4/5;overflow:hidden;background:#111}
.roster-row__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:grayscale(.15);transition:transform .6s var(--ease)}
.roster-row a:hover .roster-row__image img{transform:scale(1.025)}
.roster-row__copy h2{margin:0;font-size:clamp(2.8rem,5.5vw,6rem);line-height:.92;letter-spacing:-.035em}
.roster-row__copy p{margin:14px 0 0;color:var(--muted)}
.roster-row__arrow{font-size:1.5rem;transition:transform .25s}
.roster-row a:hover .roster-row__arrow{transform:translate(4px,-4px)}

.profile-hero{position:relative;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);min-height:calc(100svh - var(--header-h));overflow:hidden}
.profile-hero__image img{width:100%;height:100%;object-fit:cover}
.profile-hero__copy{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:clamp(50px,7vw,104px) var(--gutter)}
.profile-hero__copy h1{margin:18px 0 16px;font-size:clamp(3.8rem,6.8vw,7rem);line-height:.9;letter-spacing:-.045em}
.profile-hero__identity{margin:0;color:var(--muted);font-size:1.05rem}
.profile-hero blockquote{max-width:650px;margin:38px 0;font-size:clamp(1.35rem,2vw,2.1rem);line-height:1.48}
.profile-hero__rail{position:absolute;right:18px;top:30px;writing-mode:vertical-rl;font-size:.66rem;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.profile-story{display:grid;grid-template-columns:70px minmax(0,1fr);gap:7vw;background:var(--paper);color:var(--black)}
.profile-story .section-rail{position:static;color:#6f6861}
.profile-story h2,.release-story h2{margin:16px 0 36px;font-size:clamp(3.5rem,6vw,6.5rem);line-height:.92;letter-spacing:-.04em}
.profile-story__lead,.release-story__lead{max-width:920px;margin:0;font-size:clamp(1.3rem,2vw,2.1rem);line-height:1.52}

.catalog{padding:0 var(--gutter)}
.catalog-item{display:grid;grid-template-columns:minmax(280px,.65fr) 1fr;gap:clamp(36px,7vw,112px);padding:clamp(64px,7vw,112px) 0;border-bottom:1px solid var(--line);align-items:center}
.catalog-item:nth-child(even) .catalog-item__art{order:2}
.catalog-item__art{position:relative}
.catalog-item__art>a{display:block;overflow:hidden}
.catalog-item__art img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .65s var(--ease)}
.catalog-item__art>a:hover img{transform:scale(1.02)}
.catalog-item__copy{max-width:760px}
.catalog-item__copy h2{margin:14px 0 8px;font-size:clamp(3.6rem,5.8vw,6.5rem);line-height:.9;letter-spacing:-.045em}
.catalog-item__artist{font-size:1.2rem}
.catalog-item__copy>p:not(.eyebrow):not(.catalog-item__artist){color:var(--muted);margin:28px 0}

.page-hero--releases{min-height:clamp(500px,54vh,560px)}
.page-hero--releases::before{background:radial-gradient(circle at 80% 36%,rgba(180,14,40,.3),transparent 38%)}
.release-featured{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(400px,1.08fr);align-items:center;gap:clamp(52px,8vw,130px);padding-top:clamp(68px,6vw,96px);padding-bottom:clamp(68px,6vw,96px)}
.release-featured__art{overflow:hidden;background:#111}
.release-featured__art a{display:block;overflow:hidden}
.release-featured__art img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .75s var(--ease),filter .45s var(--ease)}
.release-featured__art a:hover img{transform:scale(1.018);filter:saturate(1.06)}
.release-featured__copy{max-width:760px}
.release-featured__copy h2{margin:15px 0 10px;font-size:clamp(3.8rem,6.2vw,7rem);line-height:1;letter-spacing:-.025em}
.release-featured__artist{margin:0;font-size:1.18rem}
.release-featured__mood{margin:18px 0 0;color:var(--muted);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.release-featured__description{max-width:650px;margin:30px 0 0;color:var(--muted);font-size:1.06rem}
.release-featured__actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:36px}

.release-catalog{padding-top:clamp(72px,6vw,104px);padding-bottom:clamp(72px,7vw,118px);background:var(--black-soft)}
.release-catalog .section-heading{margin-bottom:clamp(36px,4.5vw,62px)}
.release-catalog__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,4vw,58px)}
.release-catalog__grid--single{max-width:720px}
.release-catalog__art{position:relative;overflow:hidden;background:#171717}
.release-catalog__art>a{display:block;overflow:hidden}
.release-catalog__art img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .7s var(--ease),filter .4s var(--ease)}
.release-catalog__card:hover .release-catalog__art img{transform:scale(1.018);filter:saturate(1.08)}
.release-catalog__card:hover .cover-play{background:var(--red-bright);color:#fff}
.release-catalog__meta{padding:22px 0 0}
.release-catalog__meta h3{margin:10px 0 8px;font-size:clamp(2.5rem,4vw,4.4rem);line-height:1.05;letter-spacing:-.02em}
.release-catalog__artist{margin:0;font-size:1.02rem}
.release-catalog__mood{margin:10px 0 22px;color:var(--muted);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}
.release-follow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;padding:clamp(64px,6vw,96px) var(--gutter);background:var(--red)}
.release-follow h2{max-width:1000px;margin:14px 0 0;font-size:clamp(3.2rem,5.6vw,6.2rem);line-height:1.05;letter-spacing:-.02em}

.release-hero{position:relative;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,1fr);min-height:calc(100svh - var(--header-h));scroll-margin-top:20px}
.release-hero__art img{width:100%;height:100%;object-fit:cover}
.release-hero__copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(50px,6.5vw,96px) var(--gutter)}
.release-hero__copy h1{margin:16px 0 12px;font-size:clamp(3.8rem,6.8vw,7rem);line-height:.9;letter-spacing:-.045em}
.release-hero__artist{margin:0;font-size:1.2rem}
.release-hero__description{max-width:680px;margin:44px 0;color:var(--muted);font-size:1.08rem}
.release-hero__mood{position:absolute;right:18px;top:26px;writing-mode:vertical-rl;font-size:.66rem;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}
.release-story{display:grid;grid-template-columns:70px minmax(0,1fr);gap:7vw;background:var(--red)}
.release-story .section-rail{position:static;color:#efabb7}
.release-story .eyebrow{color:#efabb7}

.related{background:var(--black-soft)}
.release-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.release-card a{display:block}
.release-card img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s var(--ease)}
.release-card a:hover img{transform:scale(.985)}
.release-card div{display:flex;justify-content:space-between;gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}
.release-card h3,.release-card p{margin:0}
.release-card p{color:var(--muted)}

.page-hero--merch{min-height:clamp(500px,54vh,560px)}
.page-hero--merch::before{background:radial-gradient(circle at 80% 32%,rgba(180,14,40,.31),transparent 38%)}
.merch-drop{display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(360px,.82fr);gap:clamp(50px,7vw,120px);align-items:center;padding-top:clamp(68px,7vw,112px);padding-bottom:clamp(78px,8vw,132px)}
.merch-drop__image{position:relative;min-width:0;background:#111;overflow:hidden}
.merch-drop__image>a{display:block;overflow:hidden}
.merch-drop__image img{width:100%;aspect-ratio:10/11;object-fit:cover;transition:transform .75s var(--ease),filter .45s var(--ease)}
.merch-drop__image:hover img{transform:scale(1.015);filter:saturate(1.08)}
.merch-drop__badge{position:absolute;left:18px;bottom:18px;padding:9px 12px;background:var(--red-bright);font-size:.66rem;font-weight:700;letter-spacing:.16em}
.merch-drop__copy{min-width:0}
.merch-drop__copy h2{max-width:760px;margin:16px 0 18px;font-size:clamp(3.2rem,5.1vw,5.9rem);line-height:1.02;letter-spacing:-.015em}
.merch-drop__price{margin:0;font-size:clamp(1.3rem,1.7vw,1.65rem);font-weight:600}
.merch-drop__description{max-width:650px;margin:32px 0;color:var(--muted);font-size:1.04rem}
.merch-drop__facts{margin:0 0 34px;border-top:1px solid var(--line)}
.merch-drop__facts>div{display:grid;grid-template-columns:110px 1fr;gap:22px;padding:15px 0;border-bottom:1px solid var(--line)}
.merch-drop__facts dt{color:var(--muted)}
.merch-drop__facts dd{margin:0;text-align:right;font-weight:500}
.merch-drop__actions{display:flex;flex-wrap:wrap;gap:12px}
.merch-drop__note{margin:18px 0 0;color:var(--muted);font-size:.76rem}
.merch-catalog{background:var(--black-soft)}
.merch-catalog__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.merch-catalog__card img{width:100%;aspect-ratio:4/5;object-fit:cover}
.merch-catalog__card div{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.merch-catalog__card h3{margin:0;font-size:1.5rem}
.merch-values{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.merch-values span{padding:24px var(--gutter);text-align:center;font-size:.72rem;font-weight:600;letter-spacing:.17em;border-right:1px solid var(--line)}
.merch-values span:last-child{border-right:0}
.merch-contact{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;padding:clamp(64px,6vw,96px) var(--gutter);background:var(--red)}
.merch-contact h2{max-width:1000px;margin:14px 0 0;font-size:clamp(3.1rem,5.3vw,5.9rem);line-height:1.08;letter-spacing:-.01em}

.product-detail{display:grid;grid-template-columns:minmax(320px,1fr) minmax(340px,.85fr);min-height:calc(100svh - var(--header-h))}
.product-detail>*{min-width:0}
.product-detail__image{background:#151515}
.product-detail__image img{width:100%;height:100%;object-fit:cover}
.product-detail__copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(52px,8vw,120px) var(--gutter)}
.product-detail__copy h1{margin:18px 0 22px;font-size:clamp(3.8rem,6.8vw,7rem);line-height:.9;letter-spacing:-.045em}
.product-detail__price{font-size:1.35rem;margin:0}
.product-detail__description{max-width:700px;margin:42px 0;color:var(--muted);font-size:1.08rem}
.product-detail__sizes{width:100%;display:flex;justify-content:space-between;padding:18px 0;margin-bottom:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.product-detail__sizes span{color:var(--muted)}
.product-detail__note{margin:20px 0 0;color:var(--muted);font-size:.78rem}

.contact-hero{min-height:clamp(500px,66vh,720px);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);background:var(--red)}
.contact-hero__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:clamp(72px,7vw,112px) var(--gutter)}
.contact-hero__copy .eyebrow{color:#efabb7}
.contact-hero__copy h1{margin:16px 0 24px;font-size:clamp(4.8rem,8.2vw,9.2rem);line-height:.93;letter-spacing:-.018em}
.contact-hero__copy>p:not(.eyebrow){max-width:680px;margin:0 0 34px;color:#f0c9d0;font-size:clamp(1.05rem,1.4vw,1.3rem)}
.contact-quick{align-self:center;margin:var(--gutter);padding:clamp(30px,3.2vw,52px);background:rgba(9,9,9,.93);border:1px solid rgba(255,255,255,.16)}
.contact-quick h2{margin:12px 0 30px;font-size:clamp(2rem,3vw,3.4rem)}
.contact-quick>a{display:flex;justify-content:space-between;gap:24px;padding:17px 0;border-top:1px solid var(--line);font-size:clamp(1rem,1.35vw,1.28rem);overflow-wrap:anywhere}
.contact-quick>a:hover{color:var(--red-bright)}
.contact-quick>p:last-child{margin:28px 0 0;color:var(--muted);font-size:.82rem}
.contact-options{scroll-margin-top:30px;background:var(--black)}
.contact-intents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line)}
.contact-intent{min-height:350px;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(28px,3.2vw,50px);border-right:1px solid var(--line);transition:background .3s var(--ease),transform .3s var(--ease)}
.contact-intent:last-child{border-right:0}
.contact-intent:hover{background:var(--black-soft);transform:translateY(-4px)}
.contact-intent>span:first-child{font-size:.68rem;color:var(--muted);letter-spacing:.14em}
.contact-intent h3{margin:auto 0 16px;font-size:clamp(2rem,2.8vw,3.1rem);line-height:1.14;letter-spacing:0}
.contact-intent p{margin:0;color:var(--muted)}
.contact-intent a{margin-top:28px;display:flex;justify-content:space-between;width:100%;padding-top:16px;border-top:1px solid var(--line);font-weight:600}
.contact-intent a:hover{color:var(--red-bright)}
.contact-prep{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);gap:clamp(50px,9vw,150px);padding:clamp(76px,8vw,132px) var(--gutter);background:var(--paper);color:var(--black)}
.contact-prep .eyebrow{color:#716b64}
.contact-prep h2{margin:14px 0 22px;font-size:clamp(3.2rem,5.2vw,5.8rem);line-height:1.1}
.contact-prep>div>p:last-child{max-width:600px;color:#625d57}
.contact-prep ol{list-style:none;margin:0;padding:0;border-top:1px solid rgba(9,9,9,.22)}
.contact-prep li{display:grid;grid-template-columns:46px 1fr;gap:22px;align-items:center;padding:20px 0;border-bottom:1px solid rgba(9,9,9,.22)}
.contact-prep li span{font-size:.67rem;color:#716b64;letter-spacing:.13em}
.contact-prep li strong{font-size:clamp(1.08rem,1.55vw,1.42rem);font-weight:500}
.contact-direct{display:grid;grid-template-columns:minmax(0,.8fr) minmax(430px,1.2fr);gap:clamp(50px,8vw,130px);padding:clamp(72px,7vw,116px) var(--gutter);background:var(--red)}
.contact-direct .eyebrow{color:#efabb7}
.contact-direct h2{max-width:760px;margin:14px 0 0;font-size:clamp(3rem,4.7vw,5.3rem);line-height:1.12}
.contact-direct__links{border-top:1px solid rgba(255,255,255,.34)}
.contact-direct__links>a{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.34)}
.contact-direct__links>a>span{color:#efabb7}
.contact-direct__links strong{font-size:clamp(1.15rem,1.65vw,1.55rem);font-weight:500;overflow-wrap:anywhere}
.contact-direct__links i{font-style:normal;font-size:1.25rem;transition:transform .2s var(--ease)}
.contact-direct__links>a:hover i{transform:translate(4px,-4px)}

.official-links{padding:0 var(--gutter) clamp(80px,10vw,150px)}
.official-links>a{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:20px;padding:30px 0;border-bottom:1px solid var(--line)}
.official-links>a>span:first-child{font-size:.68rem;color:var(--muted)}
.official-links strong{font-size:clamp(2.5rem,5.6vw,6rem);line-height:.94;letter-spacing:-.035em}
.official-links>a>span:last-child{font-size:1.5rem;transition:transform .2s}
.official-links>a:hover{color:var(--red-bright)}
.official-links>a:hover>span:last-child{transform:translate(4px,-4px)}

.not-found{min-height:calc(100svh - var(--header-h));display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:80px var(--gutter)}
.not-found h1{margin:16px 0;font-size:clamp(4rem,8vw,8.5rem);line-height:.92;letter-spacing:-.045em}
.not-found>p:not(.eyebrow){color:var(--muted);margin:0 0 34px}

/* Thai glyphs extend well above and below the Latin cap-height. These
   overrides preserve the editorial scale while preventing wrapped display
   lines, vowels and tone marks from colliding across every route. */
.menu-panel__nav a:lang(th){line-height:1.18}
.feature-release__copy h2:lang(th),
.manifesto__body h2:lang(th),
.artist-tile__caption h3:lang(th),
.merch-feature__copy h2:lang(th),
.business-cta h2:lang(th),
.footer-lead>p:last-child:lang(th),
.page-hero h1:lang(th),
.roster-row__copy h2:lang(th),
.profile-hero__copy h1:lang(th),
.profile-story h2:lang(th),
.catalog-item__copy h2:lang(th),
.release-hero__copy h1:lang(th),
.release-story h2:lang(th),
.product-card__copy h2:lang(th),
.product-detail__copy h1:lang(th),
.contact-intent h2:lang(th),
.official-links strong:lang(th),
.not-found h1:lang(th){
  line-height:1.14;
  letter-spacing:-.01em;
}
.hero h1:lang(th){
  line-height:.84;
  letter-spacing:-.04em;
}
.site-shell .thai-display{
  line-height:1.2;
  letter-spacing:0;
  text-wrap:balance;
}
.site-shell .latin-display{
  line-height:1.04;
  letter-spacing:-.008em;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
.site-shell :where(h1,h2,h3):lang(en){
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
.button:lang(en){line-height:1.25}
.contact-intent h2:lang(en){font-size:clamp(2rem,3vw,3.1rem);line-height:1.04;letter-spacing:-.02em;text-wrap:balance}

@media (max-width:1050px){
  :root{--header-h:78px}
  .site-header{grid-template-columns:1fr auto;padding-block:16px}
  .desktop-nav{display:none}
  .hero__bottom{grid-template-columns:1fr;gap:30px}
  .hero__actions{justify-content:flex-start}
  .feature-release{grid-template-columns:36px minmax(260px,.8fr) 1fr;gap:34px}
  .manifesto{grid-template-columns:40px 1fr}
  .manifesto__mark{display:none}
  .business-cta{grid-template-columns:1fr;align-items:start}
  .contact-hero{grid-template-columns:1fr}
  .contact-quick{margin-top:0}
  .contact-intents{grid-template-columns:1fr}
  .contact-intent{min-height:300px;border-right:0;border-bottom:1px solid var(--line)}
  .contact-intent:last-child{border-bottom:0}
  .contact-prep,.contact-direct{grid-template-columns:1fr}
  .page-hero:is(.page-hero--artists,.page-hero--releases,.page-hero--merch){
    min-height:clamp(480px,55vh,520px);
    justify-content:center;
    padding-top:calc(var(--header-h) + 36px);
    padding-bottom:48px;
  }
}

@media (max-width:800px){
  .menu-panel{display:block;height:100svh;overflow-y:auto;background:var(--red);padding:calc(var(--header-h) + 34px) var(--gutter) 30px}
  .menu-panel__visual,.menu-panel__label{display:none}
  .menu-panel__content{height:auto;min-height:calc(100svh - var(--header-h) - 64px);display:flex;flex-direction:column;padding:0}
  .menu-panel__nav{width:100%;margin:auto 0;border-top:0}
  .menu-panel__nav a{grid-template-columns:42px minmax(0,1fr) auto;gap:10px;padding:2.2vh 0}
  .menu-panel__nav-copy strong{font-size:clamp(2.6rem,13vw,5.6rem)}
  .menu-panel__nav-copy em{display:none}
  .menu-panel__nav a>i{font-size:1rem}
  .menu-panel__footer{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:22px}
  .menu-panel__footer>a:last-child{display:none}
  .hero{min-height:860px}
  .hero__content{padding-bottom:38px}
  .hero h1{font-size:clamp(2.6rem,10.5vw,4.6rem)}
  .hero h1 span{white-space:normal}
  .feature-release{grid-template-columns:1fr}
  .feature-release .section-rail{display:none}
  .feature-release__copy h2{font-size:clamp(3rem,9vw,5.4rem)}
  .manifesto{grid-template-columns:1fr}
  .manifesto .section-rail{display:none}
  .manifesto__body h2{font-size:clamp(3.5rem,11vw,6rem)}
  .manifesto__facts{grid-template-columns:1fr}
  .artist-grid{grid-template-columns:1fr}
  .artist-tile__caption h3{font-size:clamp(2.8rem,9vw,4.5rem)}
  .artist-directory__grid{grid-template-columns:1fr}
  .artist-portrait__overlay h2{font-size:clamp(3.8rem,12vw,6rem)}
  .merch-feature{grid-template-columns:1fr}
  .merch-feature__copy{order:2}
  .footer-lead,.footer-grid{grid-template-columns:1fr}
  .footer-grid{gap:38px}
  .footer-meta{flex-wrap:wrap}
  .profile-hero,.release-hero,.product-detail{grid-template-columns:1fr}
  .profile-hero__image img,.release-hero__art img,.product-detail__image img{height:auto;aspect-ratio:4/5}
  .profile-hero__rail,.release-hero__mood{display:none}
  .profile-story,.release-story{grid-template-columns:1fr}
  .profile-story .section-rail,.release-story .section-rail{display:none}
  .catalog-item,.product-card>a{grid-template-columns:1fr}
  .merch-drop{grid-template-columns:1fr}
  .merch-catalog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .merch-contact{grid-template-columns:1fr;align-items:start}
  .catalog-item:nth-child(even) .catalog-item__art{order:0}
  .release-featured{grid-template-columns:1fr}
  .release-catalog__grid{grid-template-columns:1fr}
  .release-catalog__grid--single{max-width:none}
  .release-follow{grid-template-columns:1fr;align-items:start}
  .release-card-grid{grid-template-columns:1fr}
  .audio-dock{left:10px;right:10px;bottom:10px;grid-template-columns:48px minmax(0,1fr) 44px 32px;gap:10px}
  .audio-dock img{width:48px;height:48px}
  .audio-dock__range,.audio-dock__time{display:none}

  /* Keep the established mobile composition independent from the desktop
     typography pass. Desktop-safe sizing remains active above 800px. */
  .site-shell :where(p,blockquote,dd,a,button):lang(th){line-height:1.72}
  .button:lang(th){line-height:1.72}
  .hero__scrim{
    background:
      linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.2) 38%,rgba(0,0,0,.88) 100%),
      linear-gradient(90deg,rgba(0,0,0,.38),transparent 55%);
  }
  .hero__content{padding:calc(var(--header-h) + 54px) var(--gutter) 38px}
  .hero__kicker{letter-spacing:.17em;font-size:.76rem;margin-bottom:22px}
  .hero h1{max-width:none;line-height:.75;letter-spacing:-.065em}
  .hero__bottom{margin-top:7vh}
  .hero__subtitle{font-size:clamp(1.35rem,2.2vw,2.5rem);margin-bottom:12px}
  .hero__copy{max-width:670px;font-size:clamp(.95rem,1.2vw,1.15rem);line-height:inherit}
  .section{padding:clamp(72px,10vw,150px) var(--gutter)}
  .section-rail{top:clamp(72px,10vw,150px)}
  .section-heading h2{max-width:none;font-size:clamp(2.5rem,7vw,7rem);line-height:.9;letter-spacing:-.045em}
  .feature-release__copy h2{font-size:clamp(3.6rem,16vw,7rem);line-height:.8;letter-spacing:-.055em}
  .manifesto__body h2{max-width:980px;margin-bottom:48px;font-size:clamp(4rem,18vw,7.5rem);line-height:.78;letter-spacing:-.07em}
  .manifesto__lead{font-size:clamp(1.25rem,2vw,2.1rem);line-height:1.35}
  .manifesto__facts{margin-top:70px}
  .artist-tile__caption{padding:70px 24px 24px;background:linear-gradient(transparent,rgba(0,0,0,.86))}
  .artist-tile__caption h3{max-width:none;font-size:clamp(2.8rem,13vw,5rem);line-height:.85;letter-spacing:-.045em}
  .merch-feature__copy h2{font-size:clamp(3.5rem,8vw,9rem);line-height:.8;letter-spacing:-.06em;margin-bottom:30px}
  .business-cta{padding:clamp(72px,10vw,150px) var(--gutter)}
  .business-cta h2{max-width:1000px;font-size:clamp(3.4rem,9vw,10rem);line-height:.78;letter-spacing:-.065em}
  .business-cta--compact h2{font-size:clamp(2.8rem,7vw,7rem)}
  .site-footer{padding:clamp(68px,9vw,130px) var(--gutter) 28px}
  .footer-lead>p:last-child{max-width:980px;font-size:clamp(2.2rem,5vw,5.8rem);line-height:.95;letter-spacing:-.04em}
  .page-hero{min-height:clamp(520px,72vh,820px);padding:calc(var(--header-h) + 60px) var(--gutter) clamp(60px,8vw,110px)}
  .page-hero:is(.page-hero--artists,.page-hero--releases,.page-hero--merch){
    min-height:clamp(460px,58vh,480px);
    justify-content:center;
    padding-top:calc(var(--header-h) + 32px);
    padding-bottom:44px;
  }
  .page-hero h1{margin-bottom:32px;max-width:1200px;font-size:clamp(5rem,15vw,15rem);line-height:.72;letter-spacing:-.075em}
  .roster-row__copy h2{font-size:clamp(2.8rem,7vw,8rem);line-height:.8;letter-spacing:-.055em}
  .profile-hero__copy{padding:clamp(50px,8vw,120px) var(--gutter)}
  .profile-hero__copy h1{font-size:clamp(4.8rem,10vw,11rem);line-height:.75;letter-spacing:-.07em}
  .profile-hero blockquote{margin:50px 0;font-size:clamp(1.4rem,2.5vw,2.5rem);line-height:1.35}
  .profile-story h2,.release-story h2{margin-bottom:40px;font-size:clamp(3.5rem,8vw,8.5rem);line-height:.83;letter-spacing:-.06em}
  .profile-story__lead,.release-story__lead{max-width:980px;font-size:clamp(1.35rem,2.4vw,2.6rem);line-height:1.4}
  .catalog-item{gap:clamp(36px,8vw,140px);padding:clamp(60px,8vw,120px) 0}
  .catalog-item__copy h2{font-size:clamp(3.8rem,8vw,9rem);line-height:.77;letter-spacing:-.065em}
  .release-hero__copy{padding:clamp(50px,7vw,110px) var(--gutter)}
  .release-hero__copy h1{font-size:clamp(4.2rem,10vw,11rem);line-height:.75;letter-spacing:-.07em}
  .product-card__copy h2{font-size:clamp(3.8rem,8vw,9rem);line-height:.78;letter-spacing:-.065em}
  .product-detail__copy h1{font-size:clamp(4.2rem,9vw,10rem);line-height:.78;letter-spacing:-.065em}
  .contact-intent h2{font-size:clamp(2rem,4vw,4.3rem);line-height:.9;letter-spacing:-.045em}
  .official-links strong{font-size:clamp(2.5rem,7vw,8rem);line-height:.8;letter-spacing:-.055em}
  .not-found h1{font-size:clamp(4rem,12vw,13rem);line-height:.78;letter-spacing:-.07em}
  .hero h1:lang(th){line-height:1.14;letter-spacing:-.01em}
  .hero h1:lang(en){line-height:.86;letter-spacing:-.05em}
  .section-heading h2:lang(en),
  .feature-release__copy h2:lang(en),
  .manifesto__body h2:lang(en),
  .artist-tile__caption h3:lang(en),
  .merch-feature__copy h2:lang(en),
  .business-cta h2:lang(en),
  .page-hero h1:lang(en),
  .roster-row__copy h2:lang(en),
  .profile-hero__copy h1:lang(en),
  .profile-story h2:lang(en),
  .catalog-item__copy h2:lang(en),
  .release-hero__copy h1:lang(en),
  .release-story h2:lang(en),
  .product-card__copy h2:lang(en),
  .product-detail__copy h1:lang(en),
  .contact-intent h2:lang(en),
  .official-links strong:lang(en),
  .not-found h1:lang(en){line-height:1.02;letter-spacing:-.025em}
  .footer-lead>p:last-child:lang(en){line-height:1.08;letter-spacing:-.02em}
}

/* Wide, shallow desktop windows need a height-aware menu scale. This keeps
   all four destinations and the contact row available without revealing the
   page underneath the fixed overlay. */
@media (min-width:801px) and (max-height:820px){
  :root{--header-h:64px}
  body.menu-open .site-header{padding-block:8px}
  .menu-panel__content{
    padding:calc(var(--header-h) + 8px) clamp(28px,4vw,64px) max(12px,env(safe-area-inset-bottom));
  }
  .menu-panel__label{font-size:.58rem}
  .menu-panel__nav a{padding:clamp(6px,1vh,10px) 0}
  .menu-panel__nav-copy strong{
    font-size:clamp(1.9rem,min(3.2vw,6vh),3.6rem);
    line-height:1.08;
  }
  .menu-panel__nav-copy em{font-size:.63rem}
  .menu-panel__footer{padding-top:8px;font-size:.65rem}
  .menu-panel__visual-copy{inset:auto var(--gutter-base) 18px}
  .menu-panel__visual-copy strong{font-size:clamp(1.45rem,min(2.3vw,4.8vh),2.6rem)}
  .menu-panel__visual-copy span{margin-top:12px}
}

/* Safari landscape can leave a very wide but unusually short page viewport
   beneath its tab and address bars. A two-by-two navigation grid avoids
   vertically compressing four large rows into that space. */
@media (min-width:801px) and (max-height:680px){
  .menu-panel{grid-template-columns:minmax(280px,36%) minmax(0,64%)}
  .menu-panel__label{display:none}
  .menu-panel__nav{
    margin:0 0 auto;
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .menu-panel__nav a{
    min-height:clamp(62px,12vh,78px);
    grid-template-columns:30px minmax(0,1fr) auto;gap:10px;
    padding:7px 14px;
  }
  .menu-panel__nav a:nth-child(odd){padding-left:0;border-right:1px solid rgba(255,255,255,.3)}
  .menu-panel__nav a:nth-child(even){padding-right:0;padding-left:20px}
  .menu-panel__nav-copy{display:block}
  .menu-panel__nav-copy strong{font-size:clamp(1.7rem,5.3vh,2.4rem);line-height:1.12}
  .menu-panel__nav-copy em{display:none}
  .menu-panel__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:8px}
  .menu-panel__footer>a:last-child{display:none}
  .menu-panel__socials{flex-wrap:nowrap;gap:clamp(10px,1.5vw,18px)}
  .menu-panel__visual-copy span{display:none}
}

@media (min-width:801px) and (max-height:460px){
  .menu-panel{grid-template-columns:1fr;padding-inline:0;background:var(--red)}
  .menu-panel__visual{display:none}
  .menu-panel__content{
    grid-column:1;
    padding-left:calc(var(--gutter-base) + env(safe-area-inset-left,0px));
    padding-right:calc(var(--gutter-base) + env(safe-area-inset-right,0px));
  }
}

@media (max-width:560px){
  :root{--gutter-base:20px;--header-h:72px}
  .site-header{gap:12px}
  .site-header .wordmark{font-size:.68rem}
  .hero{min-height:880px}
  .hero__content{padding-top:calc(var(--header-h) + 200px)}
  .hero__kicker{font-size:.64rem}
  .hero h1{font-size:clamp(2.6rem,10.5vw,4.6rem)}
  .hero__subtitle{font-size:1.32rem}
  .hero__copy{font-size:.88rem}
  .hero__actions{display:grid}
  .button{width:100%}
  .ticker div{display:grid;grid-template-columns:repeat(4,auto);gap:8px 16px;justify-content:space-between}
  .section{padding-top:72px;padding-bottom:72px}
  .section-heading{display:block}
  .section-heading>p{margin-top:24px}
  .section-heading h2{font-size:3.4rem}
  .cover-play{width:60px;height:60px}
  .feature-release__actions{align-items:stretch}
  .feature-release__actions .text-link{margin:4px 0}
  .manifesto{min-height:auto}
  .manifesto__body h2{font-size:3.9rem}
  .manifesto__lead{font-size:1.2rem}
  .artist-tile__caption{padding:60px 18px 18px}
  .artist-tile__caption h3{font-size:2.8rem}
  .merch-feature__copy h2{font-size:3.7rem}
  .business-cta h2{font-size:3.7rem}
  .business-cta h2{overflow-wrap:anywhere}
  .footer-lead>p:last-child{font-size:2.3rem}
  .page-hero{min-height:520px}
  .page-hero:is(.page-hero--artists,.page-hero--releases,.page-hero--merch){
    min-height:clamp(410px,52svh,430px);
    padding-top:calc(var(--header-h) + 24px);
    padding-bottom:32px;
  }
  .page-hero h1{font-size:clamp(3.25rem,16vw,4.4rem);overflow-wrap:break-word}
  .page-hero>p:last-child{margin-left:0}
  .roster-row a{grid-template-columns:30px 92px 1fr;gap:14px;padding:22px 0}
  .roster-row__arrow{display:none}
  .roster-row__image{aspect-ratio:3/4}
  .roster-row__copy h2{font-size:2.3rem}
  .roster-row__copy p{font-size:.76rem}
  .artist-directory{padding:28px var(--gutter) 72px}
  .artist-directory__grid{gap:18px}
  .artist-portrait__overlay{gap:14px;padding:22px 18px}
  .artist-portrait__overlay h2{max-width:none;font-size:3.35rem}
  .artist-portrait__identity{font-size:.78rem}
  .artist-portrait__mood{font-size:.61rem}
  .artist-portrait__arrow{width:40px;height:40px}
  .profile-hero__copy,.release-hero__copy,.product-detail__copy{padding-top:54px;padding-bottom:70px}
  .profile-hero__copy h1,.release-hero__copy h1,.product-detail__copy h1{font-size:4.1rem}
  .product-detail__copy h1,.product-card__copy h2,.merch-feature__copy h2{overflow-wrap:anywhere}
  .profile-hero blockquote{margin:36px 0;font-size:1.35rem}
  .profile-story h2,.release-story h2{font-size:3.5rem}
  .profile-story__lead,.release-story__lead{font-size:1.2rem}
  .catalog-item__copy h2{font-size:4.1rem}
  .product-card__copy h2{font-size:4rem}
  .merch-drop{gap:42px}
  .merch-drop__copy h2{font-size:3.25rem}
  .merch-drop__facts>div{grid-template-columns:86px 1fr}
  .merch-drop__actions{display:grid}
  .merch-values{grid-template-columns:1fr}
  .merch-values span{border-right:0;border-bottom:1px solid var(--line)}
  .merch-values span:last-child{border-bottom:0}
  .merch-catalog__grid{grid-template-columns:1fr}
  .merch-contact h2{font-size:3.2rem}
  .contact-intent{padding:32px 20px}
  .contact-intent h2{font-size:2.6rem}
  .contact-hero__copy{padding-top:72px}
  .contact-hero__copy h1{font-size:4.2rem}
  .contact-quick{margin:0 var(--gutter) var(--gutter)}
  .contact-intent h3{font-size:2.35rem}
  .contact-prep{gap:42px}
  .contact-prep h2{font-size:3.3rem}
  .contact-direct__links>a{grid-template-columns:1fr auto}
  .contact-direct__links>a>span{grid-column:1/-1}
  .contact-direct h2{font-size:3.2rem}
  .official-links>a{grid-template-columns:36px 1fr auto}
  .official-links strong{font-size:2.9rem}
  .direct-contact>a{font-size:1.35rem;overflow-wrap:anywhere}
  .menu-panel__nav-copy strong:lang(th){font-size:clamp(2.35rem,11.5vw,4.5rem);line-height:1.2}
  .site-shell :where(h1,h2,h3):lang(th){line-height:1.18}
  .site-shell .hero h1:lang(th){line-height:1.16}
  .page-hero h1:lang(th),
  .business-cta h2:lang(th),
  .footer-lead>p:last-child:lang(th),
  .contact-intent h2:lang(th){letter-spacing:-.01em}
  .manifesto__body h2:lang(en){font-size:3.5rem}
  .business-cta h2:lang(en){font-size:3.35rem}
  .footer-lead>p:last-child:lang(en){font-size:2.15rem}
  .page-hero h1:lang(en){font-size:clamp(3rem,14vw,4rem);line-height:1}
  .profile-story h2:lang(en),.release-story h2:lang(en){font-size:3.2rem}
  .contact-intent h2:lang(en){font-size:2.35rem;line-height:1.06}
}

@media (max-width:1050px) and (max-height:560px){
  .page-hero:is(.page-hero--artists,.page-hero--releases,.page-hero--merch){
    min-height:380px;
    padding-top:calc(var(--header-h) + 20px);
    padding-bottom:24px;
  }
}

/* Final type-spacing pass.
   Kanit Black becomes visibly crowded when display tracking is pushed below
   roughly -0.02em, while Thai needs a full line box for vowels and tone marks.
   These rules normalize every public route without changing the established
   type scale or page composition. */
.site-shell :is(
  .section-heading h2,
  .feature-release__copy h2,
  .manifesto__body h2,
  .artist-tile__caption h3,
  .merch-feature__copy h2,
  .business-cta h2,
  .footer-lead>p:last-child,
  .page-hero h1,
  .roster-row__copy h2,
  .profile-hero__copy h1,
  .profile-story h2,
  .catalog-item__copy h2,
  .release-hero__copy h1,
  .release-story h2,
  .product-card__copy h2,
  .product-detail__copy h1,
  .contact-intent h2,
  .official-links strong,
  .not-found h1
):lang(th){
  line-height:1.2;
  letter-spacing:0;
}
.site-shell :is(
  .section-heading h2,
  .feature-release__copy h2,
  .manifesto__body h2,
  .artist-tile__caption h3,
  .merch-feature__copy h2,
  .business-cta h2,
  .footer-lead>p:last-child,
  .page-hero h1,
  .roster-row__copy h2,
  .profile-hero__copy h1,
  .profile-story h2,
  .catalog-item__copy h2,
  .release-hero__copy h1,
  .release-story h2,
  .product-card__copy h2,
  .product-detail__copy h1,
  .contact-intent h2,
  .official-links strong,
  .not-found h1
):lang(en){
  line-height:1.04;
  letter-spacing:-.008em;
}
.site-shell .hero h1:lang(en){
  line-height:.92;
  letter-spacing:-.002em;
}
.site-shell :where(p,blockquote,dd):lang(th){
  letter-spacing:0;
  line-height:1.72;
}
.site-shell :where(a,button):lang(th){letter-spacing:0}

/* Home typography specimen.
   This is intentionally scoped to .page-home so the review pass cannot
   disturb internal pages before the reference composition is approved. */
.page-home .hero h1:lang(en){
  line-height:.92;
  letter-spacing:var(--tracking-display-en);
}
.page-home .hero__kicker:lang(th){
  line-height:1.55;
  letter-spacing:var(--tracking-label-th);
  text-transform:none;
}
.page-home .hero__subtitle:lang(th){
  line-height:1.45;
  letter-spacing:var(--tracking-heading-th);
}
.page-home .hero__copy:lang(th){
  line-height:var(--leading-body-th);
  letter-spacing:var(--tracking-body);
}
.page-home :is(
  .section-heading h2,
  .manifesto--home .manifesto__body h2,
  .business-cta h2
):lang(th){
  line-height:1.18;
  letter-spacing:var(--tracking-display-th);
  text-transform:none;
}
.page-home .artist-tile__caption h3:lang(th){
  line-height:1.16;
  letter-spacing:var(--tracking-heading-th);
}
.page-home .merch-feature--home .merch-feature__copy h2:lang(en){
  line-height:var(--leading-display-en);
  letter-spacing:var(--tracking-display-en);
}
.page-home .eyebrow:lang(en){
  letter-spacing:var(--tracking-label-en);
}
.page-home .eyebrow:lang(th){
  line-height:1.5;
  letter-spacing:var(--tracking-label-th);
  text-transform:none;
}
.page-home :where(.button,.text-link):lang(th){
  line-height:var(--leading-control-th);
  letter-spacing:0;
}
/* Approved public-route typography rollout.
   Home remains the accepted reference; Admin is outside .site-shell. */
.site-shell:not(.page-home) .eyebrow:lang(en){letter-spacing:var(--tracking-label-en)}
.site-shell:not(.page-home) .eyebrow:lang(th){line-height:1.5;letter-spacing:var(--tracking-label-th);text-transform:none}
.site-shell:not(.page-home) :is(
  .page-hero h1,
  .artist-portrait__overlay h2,
  .business-cta h2,
  .profile-hero__copy h1,
  .profile-story h2,
  .release-featured__copy h2,
  .release-catalog__meta h3,
  .release-follow h2,
  .release-hero__copy h1,
  .youtube-stage__heading h2,
  .release-story h2,
  .related .section-heading h2,
  .merch-drop__copy h2,
  .merch-catalog__card h3,
  .merch-contact h2,
  .product-detail__copy h1,
  .contact-hero__copy h1,
  .contact-quick h2,
  .contact-options .section-heading h2,
  .contact-intent h3,
  .contact-prep h2,
  .contact-direct h2,
  .not-found h1
):lang(th){line-height:1.18;letter-spacing:var(--tracking-display-th);text-transform:none}
.site-shell:not(.page-home) :is(
  .page-hero h1,
  .artist-portrait__overlay h2,
  .profile-hero__copy h1,
  .release-featured__copy h2,
  .release-catalog__meta h3,
  .release-hero__copy h1,
  .merch-drop__copy h2,
  .merch-catalog__card h3,
  .product-detail__copy h1,
  .official-links strong,
  .not-found h1
):lang(en){line-height:var(--leading-display-en);letter-spacing:var(--tracking-display-en)}
.site-shell:not(.page-home) :where(
  .page-hero>p:last-child,
  .profile-story__lead,
  .release-featured__description,
  .release-story__lead,
  .merch-drop__description,
  .product-detail__description,
  .contact-hero__copy>p,
  .contact-intent>p,
  .contact-prep p
):lang(th){line-height:var(--leading-body-th);letter-spacing:var(--tracking-body)}
.site-shell:not(.page-home) :where(.button,.text-link):lang(th){line-height:var(--leading-control-th);letter-spacing:0}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* app/hero-safety.css */
.hero {
  background-color: #080808;
}

/* app/media-runtime.css */
.media-runtime-alert{position:fixed;z-index:1800;left:50%;bottom:22px;transform:translateX(-50%);width:min(92vw,720px);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid rgba(255,255,255,.18);background:#171717;color:#fff;box-shadow:0 16px 44px rgba(0,0,0,.35);font-size:.82rem;line-height:1.45}.media-runtime-alert button{flex:0 0 auto;width:32px;height:32px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font:inherit;font-size:1.2rem;cursor:pointer}@media(max-width:700px){.media-runtime-alert{bottom:12px;font-size:.76rem}}
.site-shell .public-media__runtime-placeholder{width:100%;height:100%;min-height:inherit;display:grid;place-items:center;background:#141414;color:rgba(255,255,255,.58);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-align:center}

/* app/public-foundation.css */
/* TDR Public Design Foundation
   Public-only tokens and shared primitives. Admin styles do not consume this
   namespace and every component rule is scoped below .site-shell. */
:root {
  --tdr-public-bg: #08090a;
  --tdr-public-surface: #101214;
  --tdr-public-surface-elevated: #181b1e;
  --tdr-public-text: #f3efe8;
  --tdr-public-text-secondary: #c8c2ba;
  --tdr-public-text-muted: #928d86;
  --tdr-public-border: rgba(243, 239, 232, 0.14);
  --tdr-public-border-strong: rgba(243, 239, 232, 0.3);
  --tdr-public-accent: #c51835;
  --tdr-public-accent-hover: #e12545;
  --tdr-public-accent-readable: #e63a56;
  --tdr-public-accent-deep: #8f1025;
  --tdr-public-alert: #e4a23a;

  --tdr-public-space-1: 4px;
  --tdr-public-space-2: 8px;
  --tdr-public-space-3: 12px;
  --tdr-public-space-4: 16px;
  --tdr-public-space-5: 24px;
  --tdr-public-space-6: 32px;
  --tdr-public-space-7: 48px;
  --tdr-public-space-8: 64px;
  --tdr-public-space-9: 96px;
  --tdr-public-space-10: 128px;

  --tdr-public-radius-sm: 4px;
  --tdr-public-radius-md: 8px;
  --tdr-public-radius-lg: 14px;
  --tdr-public-radius-round: 999px;
  --tdr-public-shadow-elevated: 0 24px 72px rgba(0, 0, 0, 0.38);

  --tdr-public-shell-max: 1680px;
  --tdr-public-content-max: 1440px;
  --tdr-public-reading-max: 760px;
  --tdr-public-gutter: clamp(20px, 4vw, 72px);
  --tdr-public-section-space: clamp(72px, 8vw, 128px);

  --tdr-public-type-display: clamp(4rem, 7.2vw, 8.5rem);
  --tdr-public-type-h1: clamp(3.2rem, 6vw, 6.8rem);
  --tdr-public-type-h2: clamp(2.35rem, 4.5vw, 4.9rem);
  --tdr-public-type-h3: clamp(1.55rem, 2.35vw, 2.7rem);
  --tdr-public-type-h4: clamp(1.2rem, 1.45vw, 1.55rem);
  --tdr-public-type-body-lg: clamp(1.08rem, 1.25vw, 1.28rem);
  --tdr-public-type-body: 1rem;
  --tdr-public-type-small: 0.875rem;
  --tdr-public-type-meta: 0.72rem;
  --tdr-public-leading-display-en: 0.94;
  --tdr-public-leading-display-th: 1.18;
  --tdr-public-leading-heading-en: 1.02;
  --tdr-public-leading-heading-th: 1.24;
  --tdr-public-leading-body: 1.68;
  --tdr-public-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

.site-shell {
  /* Compatibility aliases let the current pages adopt the foundation without
     changing their content or detailed section composition in Phase P2. */
  --black: var(--tdr-public-bg);
  --black-soft: var(--tdr-public-surface);
  --white: var(--tdr-public-text);
  --paper: #e8e1d8;
  --muted: var(--tdr-public-text-muted);
  --line: var(--tdr-public-border);
  --red: var(--tdr-public-accent-deep);
  --red-bright: var(--tdr-public-accent);
  --radius: var(--tdr-public-radius-sm);
  --ease: var(--tdr-public-ease);
  --gutter-base: var(--tdr-public-gutter);
  --gutter: max(
    calc(var(--tdr-public-gutter) + var(--safe-inline)),
    calc((100vw - var(--tdr-public-shell-max)) / 2)
  );
  --header-h: 84px;
  --tdr-public-safe-top: env(safe-area-inset-top, 0px);
  --tdr-public-safe-bottom: env(safe-area-inset-bottom, 0px);

  min-width: 0;
  overflow: clip;
  background: var(--tdr-public-bg);
  color: var(--tdr-public-text);
  font-size: var(--tdr-public-type-body);
  line-height: var(--tdr-public-leading-body);
}

.site-shell main,
.site-shell section,
.site-shell header,
.site-shell footer,
.site-shell nav {
  min-width: 0;
}

/* Layout primitives for current global sections and future page phases. */
.site-shell .public-layout--full {
  width: 100%;
}

.site-shell .public-layout--wide,
.site-shell .public-layout--standard,
.site-shell .public-layout--narrow {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.site-shell .public-layout--wide {
  max-width: var(--tdr-public-shell-max);
}

.site-shell .public-layout--standard {
  max-width: var(--tdr-public-content-max);
}

.site-shell .public-layout--narrow {
  max-width: calc(var(--tdr-public-reading-max) + (var(--gutter) * 2));
}

.site-shell .public-section,
.site-shell .section {
  padding-block: var(--tdr-public-section-space);
}

.site-shell .section {
  padding-inline: max(
    var(--gutter),
    calc((100vw - var(--tdr-public-content-max)) / 2)
  );
}

.site-shell .page-hero {
  padding-inline: max(
    var(--gutter),
    calc((100vw - var(--tdr-public-content-max)) / 2)
  );
}

/* Typography primitives preserve Thai marks and keep mixed-language rhythm. */
.site-shell :where(h1, h2, h3, h4, p, blockquote) {
  margin-top: 0;
}

.site-shell :where(h1, h2, h3, h4) {
  font-family: var(--font-primary);
  font-weight: 700;
  text-wrap: balance;
}

.site-shell :where(p, li, dd, blockquote) {
  text-wrap: pretty;
}

.site-shell .type-display,
.site-shell .hero h1 {
  font-size: var(--tdr-public-type-display);
}

.site-shell .type-h1,
.site-shell .page-hero h1,
.site-shell .not-found h1 {
  font-size: var(--tdr-public-type-h1);
}

.site-shell .type-h2,
.site-shell .section-heading h2,
.site-shell .footer-lead > p:last-child {
  font-size: var(--tdr-public-type-h2);
}

.site-shell .type-h3 {
  font-size: var(--tdr-public-type-h3);
}

.site-shell .type-h4,
.site-shell h4 {
  font-size: var(--tdr-public-type-h4);
}

.site-shell .body-large {
  max-width: var(--tdr-public-reading-max);
  font-size: var(--tdr-public-type-body-lg);
  line-height: var(--tdr-public-leading-body);
}

.site-shell .caption,
.site-shell .metadata,
.site-shell .eyebrow,
.site-shell .footer-label {
  font-size: var(--tdr-public-type-meta);
  font-weight: 600;
}

.site-shell :where(h1, h2, h3, h4):lang(th),
.site-shell :where(.thai-display) {
  line-height: var(--tdr-public-leading-heading-th);
  letter-spacing: 0;
  padding-block: 0.04em;
}

.site-shell :where(h1, h2, h3):lang(en),
.site-shell :where(.latin-display) {
  line-height: var(--tdr-public-leading-heading-en);
}

.site-shell :where(p, li, dd, blockquote):lang(th) {
  line-height: var(--tdr-public-leading-body);
}

/* Accessible controls and form foundation. */
.site-shell :where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--tdr-public-text);
  outline-offset: 4px;
}

.site-shell :where(input, textarea, select) {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--tdr-public-border-strong);
  border-radius: var(--tdr-public-radius-md);
  background: var(--tdr-public-surface);
  color: var(--tdr-public-text);
  padding: 12px 14px;
}

.site-shell textarea {
  min-height: 136px;
  resize: vertical;
}

.site-shell :where(input, textarea, select):disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

/* Header and navigation retain the editorial composition with clearer state. */
.site-shell .site-header {
  min-height: var(--header-h);
  padding-block: 14px;
  border-color: var(--tdr-public-border);
}

.site-shell:not(.page-home) .site-header,
.site-shell.page-home .site-header.is-scrolled {
  background: color-mix(in srgb, var(--tdr-public-bg) 92%, transparent);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.16);
}

.site-shell .wordmark {
  min-height: 44px;
  justify-content: center;
  letter-spacing: 0.15em;
}

.site-shell .desktop-nav {
  gap: clamp(22px, 2.5vw, 42px);
  font-size: 0.875rem;
}

.site-shell .desktop-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--tdr-public-text-secondary);
  transition: color 180ms var(--tdr-public-ease);
}

.site-shell .desktop-nav a[aria-current="page"] {
  color: var(--tdr-public-text);
}

.site-shell .desktop-nav a[aria-current="page"]::after {
  right: 0;
  height: 2px;
  background: var(--tdr-public-accent);
}

.site-shell .menu-toggle {
  width: 48px;
  height: 48px;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--tdr-public-border);
  border-radius: var(--tdr-public-radius-round);
}

.site-shell .menu-toggle:hover {
  border-color: var(--tdr-public-border-strong);
  background: rgba(255, 255, 255, 0.06);
}

.site-shell .menu-panel {
  height: 100dvh;
  max-width: 100vw;
  background: var(--tdr-public-bg);
}

.site-shell .menu-panel__visual,
.site-shell .menu-panel__content {
  min-height: 0;
}

.site-shell .menu-panel__content {
  background: var(--tdr-public-accent-deep);
}

.site-shell .menu-panel__nav a[aria-current="page"] {
  color: var(--tdr-public-text);
  background: color-mix(in srgb, var(--tdr-public-bg) 16%, transparent);
  box-shadow: inset 3px 0 0 var(--tdr-public-text);
  padding-inline: 12px;
}

.site-shell .menu-panel__nav a[aria-current="page"] .menu-panel__nav-copy em {
  color: var(--tdr-public-text-secondary);
}

@media (hover: hover) and (pointer: fine) {
  .site-shell .menu-panel__nav a:hover {
    color: var(--tdr-public-text);
    background: color-mix(in srgb, var(--tdr-public-bg) 13%, transparent);
  }

  .site-shell .menu-panel__nav a:hover .menu-panel__nav-copy em {
    color: var(--tdr-public-text-secondary);
  }
}

/* Button and link hierarchy. */
.site-shell .button {
  min-height: 48px;
  border-radius: var(--tdr-public-radius-sm);
  padding: 12px 18px;
  font-size: 0.92rem;
  font-weight: 600;
  transition:
    transform 180ms var(--tdr-public-ease),
    background-color 180ms var(--tdr-public-ease),
    color 180ms var(--tdr-public-ease),
    border-color 180ms var(--tdr-public-ease);
}

.site-shell .button--primary {
  background: var(--tdr-public-accent);
  color: #fff;
}

.site-shell .button--primary:hover {
  background: var(--tdr-public-accent-hover);
}

.site-shell .button--secondary,
.site-shell .button--light {
  background: var(--tdr-public-text);
  color: var(--tdr-public-bg);
}

.site-shell .button--secondary:hover,
.site-shell .button--light:hover {
  background: #fff;
}

.site-shell .button--ghost {
  border-color: var(--tdr-public-border-strong);
  background: rgba(8, 9, 10, 0.34);
}

.site-shell .button--ghost:hover {
  border-color: var(--tdr-public-text);
  background: var(--tdr-public-text);
  color: var(--tdr-public-bg);
}

.site-shell .button--text,
.site-shell .text-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.site-shell :where(.button, .cover-play)[aria-disabled="true"],
.site-shell :where(.button, .cover-play):disabled {
  pointer-events: none;
  opacity: 0.48;
  transform: none;
}

/* Shared editorial card foundation; detailed compositions stay page-owned. */
.site-shell .public-card {
  position: relative;
  min-width: 0;
  isolation: isolate;
}

.site-shell .public-card > a {
  min-width: 0;
}

.site-shell .public-card :where(img) {
  transition:
    transform 420ms var(--tdr-public-ease),
    filter 260ms var(--tdr-public-ease);
}

@media (hover: hover) and (pointer: fine) {
  .site-shell .public-card:hover :where(img) {
    transform: scale(1.018);
  }
}

.site-shell .public-card :where(a):focus-visible {
  outline-offset: 5px;
}

/* Public image presentation. Original Media remains untouched. */
.site-shell .public-media {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--tdr-public-radius-sm);
  background: var(--tdr-public-surface-elevated);
}

.site-shell .public-media > :where(img, picture),
.site-shell .public-media > a,
.site-shell .public-media > a > img,
.site-shell :where(img.public-media) {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-shell .public-media--hero {
  aspect-ratio: 16 / 9;
  border-radius: 0;
}

.site-shell .public-media--artist,
.site-shell .public-media--product {
  aspect-ratio: 4 / 5;
}

.site-shell .public-media--release,
.site-shell .public-media--sync {
  aspect-ratio: 1 / 1;
}

.site-shell .public-media--mobile-cover {
  aspect-ratio: 3 / 4;
}

.site-shell .public-media[data-media-state="loading"]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.08), transparent 65%);
  background-size: 220% 100%;
  animation: tdr-public-image-loading 1.6s linear infinite;
}

@keyframes tdr-public-image-loading {
  to { background-position: -220% 0; }
}

/* The same footer structure is shown on every route. */
.site-shell .site-footer {
  padding-inline: var(--gutter);
  background: #050607;
  border-color: var(--tdr-public-border);
}

.site-shell .footer-lead {
  display: grid;
  grid-template-columns: minmax(140px, 0.32fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 64px);
  padding-bottom: clamp(44px, 5vw, 72px);
}

.site-shell .footer-lead > p:last-child {
  max-width: 920px;
  color: var(--tdr-public-text-secondary);
  line-height: 1.1;
}

.site-shell .footer-grid {
  grid-template-columns: minmax(220px, 1fr) minmax(150px, 0.35fr) minmax(240px, 0.55fr);
  gap: clamp(36px, 5vw, 80px);
}

.site-shell .footer-column a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  color: var(--tdr-public-text-secondary);
}

.site-shell .footer-column a:hover,
.site-shell .footer-column a[aria-current="page"] {
  color: var(--tdr-public-text);
}

.site-shell .footer-meta {
  color: var(--tdr-public-text-muted);
}

@media (max-width: 1024px) {
  .site-shell {
    --header-h: 76px;
    --tdr-public-type-display: clamp(3.6rem, 10vw, 7rem);
    --tdr-public-type-h1: clamp(3rem, 8vw, 5.6rem);
    --tdr-public-type-h2: clamp(2.25rem, 6vw, 4.2rem);
  }

  .site-shell .site-header {
    grid-template-columns: 1fr auto;
  }

  .site-shell .desktop-nav {
    display: none;
  }
}

@media (max-width: 768px) {
  .site-shell {
    --header-h: 72px;
    --tdr-public-gutter: clamp(20px, 5.5vw, 34px);
    --tdr-public-section-space: clamp(64px, 16vw, 92px);
    --tdr-public-type-display: clamp(3.25rem, 15vw, 5.4rem);
    --tdr-public-type-h1: clamp(2.8rem, 13vw, 4.5rem);
    --tdr-public-type-h2: clamp(2.1rem, 9.5vw, 3.4rem);
    --tdr-public-type-h3: clamp(1.45rem, 6vw, 2.1rem);
  }

  .site-shell .site-header {
    min-height: calc(var(--header-h) + var(--tdr-public-safe-top));
    padding-top: calc(10px + var(--tdr-public-safe-top));
    padding-bottom: 10px;
  }

  .site-shell .menu-panel {
    height: 100dvh;
    padding-top: calc(var(--header-h) + var(--tdr-public-safe-top) + 12px);
    padding-bottom: max(18px, var(--tdr-public-safe-bottom));
  }

  .site-shell .menu-panel__nav {
    margin: clamp(18px, 3.5vh, 28px) 0 auto;
  }

  .site-shell .menu-panel__nav a {
    min-height: 54px;
  }

  .site-shell .menu-panel__footer {
    padding-top: 16px;
  }

  .site-shell .button {
    min-height: 50px;
  }

  .site-shell .button--large {
    min-height: 56px;
    padding: 15px 20px;
  }

  .site-shell .footer-lead,
  .site-shell .footer-grid {
    grid-template-columns: 1fr;
  }

  .site-shell .footer-grid {
    gap: 36px;
  }

  .site-shell .public-media--hero {
    aspect-ratio: 3 / 4;
  }
}

@media (max-width: 480px) {
  .site-shell {
    --header-h: 68px;
  }

  .site-shell .wordmark {
    font-size: 0.68rem;
  }

  .site-shell .menu-toggle {
    width: 46px;
    height: 46px;
  }

  .site-shell .footer-meta {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (min-width: 1440px) {
  .site-shell .section-heading > p,
  .site-shell .page-hero > p:last-child {
    font-size: var(--tdr-public-type-body-lg);
  }
}

@media (min-width: 1920px) {
  .site-shell .site-header,
  .site-shell .site-footer {
    padding-inline: calc((100vw - var(--tdr-public-shell-max)) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-shell .public-card :where(img),
  .site-shell .button,
  .site-shell .public-media[data-media-state="loading"]::after {
    animation: none;
    transition: none;
  }
}

/* app/homepage.css */
/* TDR Homepage — page-specific composition built on the P2 public foundation. */
.page-home .tdr-home {
  min-width: 0;
  overflow: clip;
  background: var(--tdr-public-bg);
}

.page-home .tdr-home-hero {
  position: relative;
  height: clamp(680px, 56.25vw, 920px);
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.page-home .tdr-home-hero__media,
.page-home .tdr-home-hero__scrim {
  position: absolute;
  inset: 0;
}

.page-home .tdr-home-hero__media {
  z-index: -2;
  width: 100%;
  height: 100%;
}

.page-home .tdr-home-hero__media img {
  object-position: 56% center;
}

.page-home .tdr-home-hero__scrim {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(8, 9, 10, 0.08) 0%, rgba(8, 9, 10, 0.2) 38%, rgba(8, 9, 10, 0.94) 100%),
    linear-gradient(90deg, rgba(8, 9, 10, 0.78) 0%, rgba(8, 9, 10, 0.44) 42%, rgba(8, 9, 10, 0.06) 76%);
}

.page-home .tdr-home-hero__content {
  display: grid;
  gap: clamp(24px, 3.2vw, 48px);
  padding-block: calc(var(--header-h) + 38px) clamp(38px, 4vw, 64px);
}

.page-home .tdr-home-hero__identity {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
}

.page-home .tdr-home-hero__identity > * {
  margin: 0;
}

.page-home .tdr-home-hero__identity > span {
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.14em;
}

.page-home .tdr-home-hero h1 {
  max-width: min(940px, 68vw);
  margin: 0;
  font-size: clamp(4.1rem, 7.1vw, 8rem);
  font-weight: 900;
  font-kerning: normal;
  line-height: 0.88;
  letter-spacing: -0.018em;
}

.page-home .tdr-home-hero h1 span {
  display: block;
}

.page-home .tdr-home-hero h1 .outline {
  color: transparent;
  letter-spacing: 0.008em;
  -webkit-text-stroke: clamp(1px, 0.12vw, 2px) rgba(243, 239, 232, 0.92);
}

.page-home .tdr-home-hero__bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(32px, 6vw, 92px);
  align-items: end;
  padding-top: clamp(22px, 2.5vw, 36px);
  border-top: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-hero__subtitle {
  margin: 0 0 8px;
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 600;
  line-height: 1.42;
}

.page-home .tdr-home-hero__copy {
  max-width: 640px;
  margin: 0;
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-body-lg);
}

.page-home .tdr-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}

.page-home .tdr-home-index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: var(--tdr-public-shell-max);
  margin-inline: auto;
  border-block: 1px solid var(--tdr-public-border);
  background: var(--tdr-public-surface);
}

.page-home .tdr-home-index a {
  min-height: 62px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px clamp(18px, 2.4vw, 36px);
  color: var(--tdr-public-text-secondary);
  font-weight: 600;
  transition: color 180ms var(--tdr-public-ease), background-color 180ms var(--tdr-public-ease);
}

.page-home .tdr-home-index a + a {
  border-left: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-index a:hover {
  color: var(--tdr-public-text);
  background: var(--tdr-public-surface-elevated);
}

.page-home .tdr-home-index span {
  color: var(--tdr-public-accent-readable);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.12em;
}

.page-home .tdr-home-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: clamp(28px, 5vw, 72px);
  margin-bottom: clamp(36px, 5vw, 72px);
}

.page-home .tdr-home-section-heading h2 {
  max-width: 980px;
  margin: 8px 0 0;
  font-size: var(--tdr-public-type-h2);
  line-height: var(--tdr-public-leading-heading-th);
}

.page-home .tdr-home-section-heading > p {
  max-width: 520px;
  margin: 0;
  color: var(--tdr-public-text-muted);
}

.page-home .tdr-home-release {
  border-top: 0;
}

.page-home .tdr-home-release__feature {
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(360px, 1.18fr);
  gap: clamp(44px, 8vw, 128px);
  align-items: center;
}

.page-home .tdr-home-release__art {
  width: min(100%, 560px);
  box-shadow: var(--tdr-public-shadow-elevated);
}

.page-home .tdr-home-release__copy {
  max-width: 700px;
}

.page-home .tdr-home-release__copy h3 {
  margin: 12px 0 8px;
  font-size: clamp(3rem, 5.4vw, 6.2rem);
  line-height: 1.08;
}

.page-home .tdr-home-release__copy > p:not(.eyebrow):not(.tdr-home-release__mood) {
  max-width: 58ch;
  color: var(--tdr-public-text-secondary);
}

.page-home .tdr-home-release__mood {
  margin: 18px 0;
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-small);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-home .tdr-home-release__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.page-home .tdr-home-artists {
  background: var(--tdr-public-surface);
}

.page-home .tdr-home-artists__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: clamp(16px, 2.2vw, 32px);
}

.page-home .tdr-home-artist {
  background: var(--tdr-public-bg);
}

.page-home .tdr-home-artist > a {
  display: block;
}

.page-home .tdr-home-artist__media img {
  filter: saturate(0.82) contrast(1.04);
}

.page-home .tdr-home-artist__meta {
  position: relative;
  min-height: 168px;
  padding: 22px 64px 24px 24px;
  border: 1px solid var(--tdr-public-border);
  border-top: 0;
}

.page-home .tdr-home-artist__meta > span {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.13em;
}

.page-home .tdr-home-artist__meta h3 {
  margin: 8px 0 4px;
  font-size: var(--tdr-public-type-h3);
}

.page-home .tdr-home-artist__meta p {
  margin: 0;
  color: var(--tdr-public-text-muted);
}

.page-home .tdr-home-artist__meta i {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 1.4rem;
  font-style: normal;
}

.page-home .tdr-home-section-action {
  margin-top: 36px;
}

.page-home .tdr-home-sync {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(rgba(243, 239, 232, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(243, 239, 232, 0.035) 1px, transparent 1px),
    var(--tdr-public-bg);
  background-size: 72px 72px;
}

.page-home .tdr-home-sync__layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.86fr) minmax(360px, 1.14fr);
  gap: clamp(48px, 8vw, 132px);
  align-items: center;
}

.page-home .tdr-home-sync__art {
  width: min(100%, 580px);
  box-shadow: var(--tdr-public-shadow-elevated);
}

.page-home .tdr-home-sync__placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  align-content: center;
  padding: clamp(28px, 5vw, 64px);
  background: linear-gradient(145deg, var(--tdr-public-accent-deep) 0 36%, #17191b 36% 64%, #050607 64%);
}

.page-home .tdr-home-sync__placeholder span,
.page-home .tdr-home-sync__placeholder strong {
  position: relative;
  z-index: 1;
  font-size: clamp(4.2rem, 8vw, 8rem);
  font-weight: 900;
  font-kerning: normal;
  line-height: 0.78;
  letter-spacing: -0.018em;
}

.page-home .tdr-home-sync__placeholder i {
  display: block;
  width: 34%;
  height: 2px;
  margin-top: 12px;
  background: var(--tdr-public-text);
}

.page-home .tdr-home-sync__placeholder i:nth-of-type(2) { width: 58%; }
.page-home .tdr-home-sync__placeholder i:nth-of-type(3) { width: 23%; }

.page-home .tdr-home-sync__copy {
  max-width: 700px;
  padding-left: clamp(24px, 3.2vw, 48px);
  border-left: 6px solid var(--tdr-public-accent);
}

.page-home .tdr-home-sync__copy h2 {
  margin: 12px 0 18px;
  font-size: clamp(3.8rem, 6.6vw, 7.5rem);
  font-kerning: normal;
  line-height: 0.9;
  letter-spacing: -0.018em;
}

.page-home .tdr-home-sync__copy > p:not(.eyebrow):not(.tdr-home-sync__tagline) {
  max-width: 54ch;
  color: var(--tdr-public-text-secondary);
}

.page-home .tdr-home-sync__tagline {
  margin: 0 0 14px;
  font-size: var(--tdr-public-type-body-lg);
  font-weight: 600;
}

.page-home .tdr-home-sync__release {
  display: grid;
  margin: 28px 0;
  padding-block: 18px;
  border-block: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-sync__release span,
.page-home .tdr-home-sync__release small {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.12em;
}

.page-home .tdr-home-sync__release strong {
  margin-block: 3px;
  font-size: clamp(1.7rem, 2.6vw, 2.8rem);
}

.page-home .tdr-home-merch {
  background: var(--tdr-public-surface);
}

.page-home .tdr-home-merch__feature {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(360px, 1.1fr);
  gap: clamp(48px, 8vw, 132px);
  align-items: center;
}

.page-home .tdr-home-merch__media {
  width: min(100%, 560px);
  box-shadow: var(--tdr-public-shadow-elevated);
}

.page-home .tdr-home-merch__copy {
  max-width: 650px;
}

.page-home .tdr-home-merch__copy h3 {
  margin: 12px 0 20px;
  font-size: clamp(3rem, 5.4vw, 6rem);
  line-height: 1.05;
}

.page-home .tdr-home-merch__copy > p:not(.eyebrow) {
  color: var(--tdr-public-text-secondary);
}

.page-home .tdr-home-merch__copy dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 28px 0;
  border-block: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-merch__copy dl > div {
  padding-block: 16px;
}

.page-home .tdr-home-merch__copy dl > div + div {
  padding-left: 24px;
  border-left: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-merch__copy dt {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
}

.page-home .tdr-home-merch__copy dd {
  margin: 4px 0 0;
}

.page-home .tdr-home-about {
  background: #e8e1d8;
  color: #090a0b;
}

.page-home .tdr-home-about__layout {
  display: grid;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);
  gap: clamp(40px, 8vw, 132px);
}

.page-home .tdr-home-about__layout > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.page-home .tdr-home-about__layout > div:first-child > * {
  margin: 0;
}

.page-home .tdr-home-about__layout > div:first-child > span {
  color: #68625c;
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.12em;
}

.page-home .tdr-home-about h2 {
  max-width: 920px;
  margin: 0 0 24px;
  font-size: var(--tdr-public-type-h2);
  line-height: var(--tdr-public-leading-heading-th);
}

.page-home .tdr-home-about__layout > div:last-child > p {
  max-width: 760px;
  color: #4e4944;
  font-size: var(--tdr-public-type-body-lg);
}

.page-home .tdr-home-about .text-link {
  color: #090a0b;
  border-color: rgba(9, 10, 11, 0.4);
}

.page-home .tdr-home-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(32px, 6vw, 92px);
  align-items: end;
  padding: var(--tdr-public-section-space) var(--gutter);
  background: var(--tdr-public-accent-deep);
}

.page-home .tdr-home-contact__copy h2 {
  max-width: 920px;
  margin: 12px 0 18px;
  font-size: var(--tdr-public-type-h2);
  line-height: var(--tdr-public-leading-heading-th);
}

.page-home .tdr-home-contact__copy > p:last-child {
  max-width: 620px;
  margin: 0;
  color: #f0c7ce;
}

.page-home .tdr-home-contact__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
}

.page-home .tdr-home-contact__channels {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 12px clamp(18px, 3vw, 42px);
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.26);
}

.page-home .tdr-home-contact__channels a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: #f0c7ce;
}

.page-home .tdr-home-empty {
  min-height: 250px;
  display: grid;
  align-content: center;
  justify-items: start;
  padding-block: clamp(40px, 6vw, 72px);
  border-block: 1px solid var(--tdr-public-border);
}

.page-home .tdr-home-empty h3 {
  margin: 8px 0;
  font-size: var(--tdr-public-type-h3);
}

.page-home .tdr-home-empty > p:last-child {
  margin: 0;
  color: var(--tdr-public-text-muted);
}

@media (hover: hover) and (pointer: fine) {
  .page-home .tdr-home-artist:hover .tdr-home-artist__media img {
    filter: saturate(1) contrast(1.02);
  }
}

@media (max-width: 1024px) {
  .page-home .tdr-home-hero {
    height: clamp(680px, 70vw, 780px);
  }

  .page-home .tdr-home-hero h1 {
    max-width: 82vw;
  }

  .page-home .tdr-home-release__feature,
  .page-home .tdr-home-sync__layout,
  .page-home .tdr-home-merch__feature {
    gap: clamp(36px, 5vw, 64px);
  }
}

@media (max-width: 768px) {
  .page-home .tdr-home-hero {
    min-height: min(720px, 92svh);
    height: auto;
    aspect-ratio: 3 / 4;
  }

  .page-home .tdr-home-hero__media img {
    object-position: center top;
  }

  .page-home .tdr-home-hero__scrim {
    background: linear-gradient(180deg, rgba(8, 9, 10, 0.08) 0%, rgba(8, 9, 10, 0.28) 42%, rgba(8, 9, 10, 0.96) 100%);
  }

  .page-home .tdr-home-hero__content {
    gap: 22px;
    padding-block: calc(var(--header-h) + var(--tdr-public-safe-top) + 20px) 28px;
  }

  .page-home .tdr-home-hero__identity > span {
    display: none;
  }

  .page-home .tdr-home-hero h1 {
    max-width: 100%;
    font-size: clamp(2.55rem, 11.9vw, 4.6rem);
    line-height: 0.94;
    letter-spacing: -0.014em;
  }

  .page-home .tdr-home-hero h1 .outline {
    letter-spacing: 0.012em;
  }

  .page-home .tdr-home-hero__bottom,
  .page-home .tdr-home-release__feature,
  .page-home .tdr-home-sync__layout,
  .page-home .tdr-home-merch__feature,
  .page-home .tdr-home-about__layout,
  .page-home .tdr-home-contact {
    grid-template-columns: 1fr;
  }

  .page-home .tdr-home-hero__actions,
  .page-home .tdr-home-contact__actions {
    justify-content: flex-start;
  }

  .page-home .tdr-home-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .tdr-home-index a:nth-child(3) {
    border-left: 0;
  }

  .page-home .tdr-home-index a:nth-child(n + 3) {
    border-top: 1px solid var(--tdr-public-border);
  }

  .page-home .tdr-home-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .page-home .tdr-home-release__art,
  .page-home .tdr-home-sync__art,
  .page-home .tdr-home-merch__media {
    width: min(100%, 420px);
    margin-inline: auto;
  }

  .page-home .tdr-home-release__copy h3,
  .page-home .tdr-home-merch__copy h3 {
    font-size: clamp(2.7rem, 11vw, 4.5rem);
  }

  .page-home .tdr-home-sync__copy {
    padding: 26px 0 0;
    border-top: 5px solid var(--tdr-public-accent);
    border-left: 0;
  }

  .page-home .tdr-home-sync__copy h2 {
    font-size: clamp(3.4rem, 16vw, 6rem);
  }

  .page-home .tdr-home-contact__channels {
    grid-column: auto;
  }
}

@media (max-width: 390px) {
  .page-home .tdr-home-hero {
    min-height: min(660px, 92svh);
  }

  .page-home .tdr-home-hero__actions,
  .page-home .tdr-home-contact__actions {
    display: grid;
    width: 100%;
  }

  .page-home .tdr-home-hero__actions .button,
  .page-home .tdr-home-contact__actions .button {
    width: 100%;
  }

  .page-home .tdr-home-index {
    grid-template-columns: 1fr;
  }

  .page-home .tdr-home-index a + a,
  .page-home .tdr-home-index a:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--tdr-public-border);
  }

  .page-home .tdr-home-artist__meta {
    min-height: 148px;
    padding: 18px 54px 20px 18px;
  }

  .page-home .tdr-home-merch__copy dl {
    grid-template-columns: 1fr;
  }

  .page-home .tdr-home-merch__copy dl > div + div {
    padding-left: 0;
    border-top: 1px solid var(--tdr-public-border);
    border-left: 0;
  }
}

@media (min-width: 1440px) {
  .page-home .tdr-home-release__copy > p:not(.eyebrow):not(.tdr-home-release__mood),
  .page-home .tdr-home-merch__copy > p:not(.eyebrow) {
    font-size: var(--tdr-public-type-body-lg);
  }
}

@media (min-width: 1920px) {
  .page-home .tdr-home-contact {
    padding-inline: calc((100vw - var(--tdr-public-shell-max)) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .tdr-home-index a,
  .page-home .tdr-home-artist__media img {
    transition: none;
  }
}

/* app/artists-releases.css */
/* Artists and Releases editorial pages — Phase P4.
   Page selectors are scoped to the public shell route classes and reuse the
   P2 foundation tokens without changing Admin or other public modules. */

.page-artists .tdr-artists,
.page-artists .tdr-artist,
.page-releases .tdr-releases,
.page-releases .tdr-release {
  overflow: clip;
  background: var(--tdr-public-bg);
}

.page-artists .tdr-artists-hero,
.page-releases .tdr-releases-hero {
  min-height: clamp(440px, 58svh, 680px);
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
  gap: clamp(36px, 8vw, 128px);
  align-items: end;
  padding-top: calc(var(--header-h) + clamp(72px, 9vw, 136px));
  padding-bottom: clamp(56px, 7vw, 104px);
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-artists .tdr-artists-hero h1,
.page-releases .tdr-releases-hero h1 {
  margin: 14px 0 0;
  font-size: var(--tdr-public-type-display);
  line-height: var(--tdr-public-leading-display-th);
}

.page-artists .tdr-artists-hero__summary,
.page-releases .tdr-releases-hero__summary {
  align-self: end;
  padding-top: 24px;
  border-top: 1px solid var(--tdr-public-border-strong);
}

.page-artists .tdr-artists-hero__summary p,
.page-releases .tdr-releases-hero__summary p {
  margin: 0 0 28px;
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-body-lg);
}

.page-artists .tdr-artists-hero__summary span,
.page-releases .tdr-releases-hero__summary span {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.14em;
}

.page-artists .tdr-artists-roster,
.page-releases .tdr-releases-catalog,
.page-artists .tdr-artist-releases,
.page-releases .tdr-release-related {
  padding-block: var(--tdr-public-section-space);
}

.page-artists .tdr-artists-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 48px);
}

.page-artists .tdr-artists-grid--single {
  max-width: min(660px, 100%);
}

.page-artists .tdr-artists-card {
  min-width: 0;
  background: transparent;
}

.page-artists .tdr-artists-card > a {
  display: block;
  color: inherit;
}

.page-artists .tdr-artists-card__media {
  overflow: hidden;
  border-radius: var(--tdr-public-radius-sm);
  background: var(--tdr-public-surface);
}

.page-artists .tdr-artists-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.78) contrast(1.04);
  transition: transform 600ms var(--tdr-public-ease), filter 350ms var(--tdr-public-ease);
}

.page-artists .tdr-artists-card__copy {
  position: relative;
  min-height: 184px;
  padding: 24px 64px 24px 0;
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-artists .tdr-artists-card__copy > span,
.page-artists .tdr-artists-card__copy small {
  display: block;
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-artists .tdr-artists-card__copy h2 {
  margin: 12px 0 6px;
  font-size: var(--tdr-public-type-h2);
}

.page-artists .tdr-artists-card__copy p {
  margin: 0 0 12px;
  color: var(--tdr-public-text-secondary);
}

.page-artists .tdr-artists-card__copy i {
  position: absolute;
  top: 24px;
  right: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--tdr-public-border-strong);
  border-radius: var(--tdr-public-radius-round);
  font-style: normal;
  transition: transform 220ms var(--tdr-public-ease), background 220ms var(--tdr-public-ease), color 220ms var(--tdr-public-ease);
}

.page-artists .tdr-artists-contact,
.page-releases .tdr-releases-discovery {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: end;
  padding: var(--tdr-public-section-space) var(--gutter);
  background: var(--tdr-public-accent-deep);
}

.page-artists .tdr-artists-contact h2,
.page-releases .tdr-releases-discovery h2 {
  max-width: 950px;
  margin: 12px 0 0;
  font-size: var(--tdr-public-type-h2);
}

.page-artists .tdr-detail-back,
.page-releases .tdr-detail-back {
  padding-top: calc(var(--header-h) + 28px);
  padding-bottom: 28px;
}

.page-artists .tdr-detail-back a,
.page-releases .tdr-detail-back a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-small);
}

.page-artists .tdr-artist-hero,
.page-releases .tdr-release-hero {
  min-height: calc(100svh - var(--header-h) - 72px);
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(360px, 1.1fr);
  gap: clamp(44px, 8vw, 132px);
  align-items: center;
  padding-bottom: clamp(64px, 8vw, 120px);
}

.page-artists .tdr-artist-hero__media,
.page-releases .tdr-release-hero__art {
  width: 100%;
  overflow: hidden;
  border-radius: var(--tdr-public-radius-sm);
  background: var(--tdr-public-surface);
  box-shadow: var(--tdr-public-shadow-elevated);
}

.page-artists .tdr-artist-hero__media {
  max-width: 640px;
  aspect-ratio: 4 / 5;
}

.page-releases .tdr-release-hero__art {
  max-width: 680px;
  aspect-ratio: 1;
}

.page-artists .tdr-artist-hero__media img,
.page-releases .tdr-release-hero__art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-artists .tdr-artist-hero__copy,
.page-releases .tdr-release-hero__copy {
  min-width: 0;
}

.page-artists .tdr-artist-hero__copy h1,
.page-releases .tdr-release-hero__copy h1 {
  margin: 14px 0 16px;
  font-size: var(--tdr-public-type-h1);
  overflow-wrap: anywhere;
}

.page-artists .tdr-artist-hero__identity,
.page-releases .tdr-release-hero__artist {
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-body-lg);
}

.page-releases a.tdr-release-hero__artist {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--tdr-public-border-strong);
}

.page-artists .tdr-artist-hero__copy blockquote {
  max-width: 680px;
  margin: clamp(30px, 4vw, 54px) 0;
  padding-left: 24px;
  border-left: 4px solid var(--tdr-public-accent);
  color: var(--tdr-public-text);
  font-size: clamp(1.25rem, 2vw, 2rem);
}

.page-artists .tdr-artist-hero__actions,
.page-releases .tdr-release-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 36px;
}

.page-artists .tdr-artist-story,
.page-releases .tdr-release-story {
  background: #e8e1d8;
  color: #090a0b;
}

.page-releases .tdr-release-story {
  background: var(--tdr-public-accent-deep);
  color: var(--tdr-public-text);
}

.page-artists .tdr-artist-story h2,
.page-releases .tdr-release-story h2 {
  margin: 14px 0 28px;
  font-size: var(--tdr-public-type-h2);
}

.page-artists .tdr-artist-story p:last-child,
.page-releases .tdr-release-story p:last-child {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 1.8rem);
  line-height: 1.62;
}

.page-artists .tdr-catalog-heading,
.page-releases .tdr-catalog-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 32px;
  margin-bottom: clamp(36px, 5vw, 72px);
}

.page-artists .tdr-catalog-heading h2,
.page-releases .tdr-catalog-heading h2 {
  margin: 10px 0 0;
  font-size: var(--tdr-public-type-h2);
}

.page-artists .tdr-release-grid,
.page-releases .tdr-release-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(30px, 5vw, 72px) clamp(22px, 3vw, 48px);
}

.page-artists .tdr-release-grid--single,
.page-releases .tdr-release-grid--single {
  max-width: min(620px, 100%);
}

.page-artists .tdr-release-card,
.page-releases .tdr-release-card {
  min-width: 0;
  background: transparent;
}

.page-artists .tdr-release-card__media,
.page-releases .tdr-release-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  border-radius: var(--tdr-public-radius-sm);
  background: var(--tdr-public-surface);
}

.page-artists .tdr-release-card__media > a,
.page-releases .tdr-release-card__media > a {
  display: block;
  width: 100%;
  height: 100%;
}

.page-artists .tdr-release-card__media img,
.page-releases .tdr-release-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 520ms var(--tdr-public-ease), filter 320ms var(--tdr-public-ease);
}

.page-artists .tdr-release-card__copy,
.page-releases .tdr-release-card__copy {
  padding: 22px 0 0;
}

.page-artists .tdr-release-card__copy h3,
.page-releases .tdr-release-card__copy h2,
.page-releases .tdr-release-card__copy h3 {
  margin: 10px 0 6px;
  font-size: var(--tdr-public-type-h3);
  overflow-wrap: anywhere;
}

.page-artists .tdr-release-card__copy p:not(.eyebrow),
.page-releases .tdr-release-card__copy p:not(.eyebrow) {
  margin: 0;
  color: var(--tdr-public-text-secondary);
}

.page-artists .tdr-release-card__copy small,
.page-releases .tdr-release-card__copy small {
  display: block;
  margin: 8px 0 18px;
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-releases .tdr-release-card__copy .text-link {
  margin-top: 18px;
}

.page-releases .tdr-release-facts {
  margin: 32px 0 0;
  border-top: 1px solid var(--tdr-public-border);
}

.page-releases .tdr-release-facts > div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 22px;
  padding: 13px 0;
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-releases .tdr-release-facts dt {
  color: var(--tdr-public-text-muted);
}

.page-releases .tdr-release-facts dd {
  min-width: 0;
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
}

.page-releases .tdr-release-hero__description {
  max-width: 680px;
  margin: 32px 0 0;
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-body-lg);
}

.page-releases .tdr-release-related {
  background: var(--tdr-public-surface);
}

.page-releases .tdr-release-case-study {
  background: #e8e1d8;
  color: #090a0b;
}

.page-releases .tdr-release-case-study__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: clamp(36px, 5vw, 72px);
}

.page-releases .tdr-release-case-study__heading h2 {
  margin: 12px 0 0;
  font-size: var(--tdr-public-type-h2);
}

.page-releases .tdr-release-case-study__heading .text-link {
  color: #090a0b;
  border-color: rgba(9, 10, 11, 0.45);
}

.page-releases .tdr-release-case-study__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  margin: 0;
  border-top: 1px solid rgba(9, 10, 11, 0.28);
}

.page-releases .tdr-release-case-study__grid > div {
  min-width: 0;
  padding: clamp(26px, 3vw, 42px);
  border-bottom: 1px solid rgba(9, 10, 11, 0.28);
}

.page-releases .tdr-release-case-study__grid > div + div {
  border-left: 1px solid rgba(9, 10, 11, 0.28);
}

.page-releases .tdr-release-case-study__grid dt {
  display: grid;
  gap: 12px;
  font-size: var(--tdr-public-type-body-lg);
  font-weight: 700;
}

.page-releases .tdr-release-case-study__grid dt span,
.page-releases .tdr-release-discovery-grid article > span {
  color: #7d151d;
  font-size: var(--tdr-public-type-meta);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.page-releases .tdr-release-case-study__grid dd {
  margin: 22px 0 0;
  color: rgba(9, 10, 11, 0.72);
  line-height: 1.75;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.page-artists .tdr-catalog-discovery {
  min-height: 240px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(30px, 5vw, 80px);
  padding-block: clamp(34px, 5vw, 64px);
  border-block: 1px solid var(--tdr-public-border);
}

.page-artists .tdr-catalog-discovery h3,
.page-releases .tdr-release-discovery-grid h3 {
  margin: 10px 0 12px;
  font-size: var(--tdr-public-type-h3);
}

.page-artists .tdr-catalog-discovery p,
.page-releases .tdr-release-discovery-grid p {
  max-width: 680px;
  margin: 0;
  color: var(--tdr-public-text-muted);
}

.page-artists .tdr-catalog-discovery__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 22px;
}

.page-releases .tdr-release-discovery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--tdr-public-border);
}

.page-releases .tdr-release-discovery-grid article {
  min-width: 0;
  padding: clamp(30px, 4vw, 54px);
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-releases .tdr-release-discovery-grid article + article {
  border-left: 1px solid var(--tdr-public-border);
}

.page-releases .tdr-release-discovery-grid .text-link {
  margin-top: 26px;
}

.page-artists .tdr-catalog-empty,
.page-releases .tdr-catalog-empty {
  min-height: 280px;
  display: grid;
  align-content: center;
  justify-items: start;
  border-block: 1px solid var(--tdr-public-border);
}

.page-artists .tdr-catalog-empty--compact,
.page-releases .tdr-catalog-empty--compact {
  min-height: 210px;
}

.page-artists .tdr-catalog-empty h2,
.page-artists .tdr-catalog-empty h3,
.page-releases .tdr-catalog-empty h2,
.page-releases .tdr-catalog-empty h3 {
  margin: 10px 0;
  font-size: var(--tdr-public-type-h3);
}

.page-artists .tdr-catalog-empty > p:last-child,
.page-releases .tdr-catalog-empty > p:last-child {
  margin: 0;
  color: var(--tdr-public-text-muted);
}

.page-artists .tdr-catalog-placeholder,
.page-releases .tdr-catalog-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--tdr-public-surface-elevated), var(--tdr-public-surface));
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.14em;
}

@media (hover: hover) and (pointer: fine) {
  .page-artists .tdr-artists-card:hover .tdr-artists-card__media img {
    transform: scale(1.018);
    filter: saturate(1) contrast(1.02);
  }

  .page-artists .tdr-artists-card:hover .tdr-artists-card__copy i {
    transform: translate(3px, -3px);
    background: var(--tdr-public-text);
    color: var(--tdr-public-bg);
  }

  .page-artists .tdr-release-card:hover .tdr-release-card__media img,
  .page-releases .tdr-release-card:hover .tdr-release-card__media img {
    transform: scale(1.015);
    filter: saturate(1.05);
  }
}

@media (max-width: 1024px) {
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero {
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  }

  .page-artists .tdr-artist-hero,
  .page-releases .tdr-release-hero {
    gap: clamp(36px, 5vw, 64px);
  }
}

@media (max-width: 768px) {
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-artists .tdr-artist-hero,
  .page-releases .tdr-release-hero,
  .page-artists .tdr-artists-contact,
  .page-releases .tdr-releases-discovery {
    grid-template-columns: 1fr;
  }

  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero {
    min-height: 0;
    padding-top: calc(var(--header-h) + 68px);
  }

  .page-artists .tdr-artists-grid,
  .page-artists .tdr-release-grid,
  .page-releases .tdr-release-grid {
    grid-template-columns: 1fr;
  }

  .page-artists .tdr-artists-grid,
  .page-artists .tdr-release-grid,
  .page-releases .tdr-release-grid,
  .page-artists .tdr-artists-grid--single,
  .page-artists .tdr-release-grid--single,
  .page-releases .tdr-release-grid--single {
    max-width: 560px;
    margin-inline: auto;
  }

  .page-artists .tdr-artist-hero,
  .page-releases .tdr-release-hero {
    min-height: 0;
    align-items: start;
  }

  .page-artists .tdr-artist-hero__media {
    width: min(100%, 420px);
    margin-inline: auto;
  }

  .page-releases .tdr-release-hero__art {
    width: min(100%, 500px);
    margin-inline: auto;
  }

  .page-artists .tdr-artist-hero__copy,
  .page-releases .tdr-release-hero__copy {
    padding-bottom: 22px;
  }

  .page-artists .tdr-catalog-heading,
  .page-releases .tdr-catalog-heading,
  .page-releases .tdr-release-case-study__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .page-releases .tdr-release-case-study__grid,
  .page-releases .tdr-release-discovery-grid,
  .page-artists .tdr-catalog-discovery {
    grid-template-columns: 1fr;
  }

  .page-releases .tdr-release-case-study__grid > div + div,
  .page-releases .tdr-release-discovery-grid article + article {
    border-left: 0;
  }

  .page-artists .tdr-catalog-discovery__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 390px) {
  .page-artists .tdr-artists-card__copy {
    min-height: 164px;
    padding: 20px 56px 20px 0;
  }

  .page-artists .tdr-artist-hero__actions,
  .page-releases .tdr-release-hero__actions,
  .page-artists .tdr-catalog-discovery__actions,
  .page-artists .tdr-artists-contact,
  .page-releases .tdr-releases-discovery {
    align-items: stretch;
  }

  .page-artists .tdr-artist-hero__actions .button,
  .page-releases .tdr-release-hero__actions .button,
  .page-artists .tdr-catalog-discovery__actions .button,
  .page-artists .tdr-artists-contact .button,
  .page-releases .tdr-releases-discovery .button {
    width: 100%;
  }

  .page-releases .tdr-release-facts > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .page-releases .tdr-release-facts dd {
    text-align: left;
  }
}

@media (min-width: 1440px) {
  .page-artists .tdr-artists-grid,
  .page-artists .tdr-release-grid,
  .page-releases .tdr-release-grid {
    gap-block: 84px;
  }
}

@media (min-width: 1920px) {
  .page-artists .tdr-artists-contact,
  .page-releases .tdr-releases-discovery {
    padding-inline: calc((100vw - var(--tdr-public-shell-max)) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-artists .tdr-artists-card__media img,
  .page-artists .tdr-artists-card__copy i,
  .page-artists .tdr-release-card__media img,
  .page-releases .tdr-release-card__media img {
    transition: none;
  }
}

/* app/sync-merch.css */
/* Phase P5 — TDR SYNC and Merch compositions.
   Every component rule remains route-scoped and consumes the P2 public tokens. */

.page-tdr-sync-project .tdr-sync,
.page-merch .tdr-merch,
.page-merch .tdr-product {
  background: var(--tdr-public-bg);
  color: var(--tdr-public-text);
}

.page-tdr-sync-project .tdr-sync-hero,
.page-merch .tdr-merch-hero {
  min-height: clamp(520px, 68svh, 780px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  align-items: end;
  gap: clamp(48px, 8vw, 128px);
  padding-top: calc(var(--header-h) + clamp(72px, 9vw, 144px));
  padding-bottom: clamp(64px, 7vw, 112px);
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-hero {
  position: relative;
  isolation: isolate;
}

.page-tdr-sync-project .tdr-sync-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(circle at 70% 36%, color-mix(in srgb, var(--tdr-public-accent) 18%, transparent), transparent 34%),
    linear-gradient(115deg, transparent 0 58%, color-mix(in srgb, var(--tdr-public-surface-elevated) 70%, transparent));
  pointer-events: none;
}

.page-tdr-sync-project .tdr-sync-hero h1,
.page-merch .tdr-merch-hero h1 {
  margin: var(--tdr-public-space-4) 0 0;
  font-size: var(--tdr-public-type-display);
  overflow-wrap: anywhere;
}

.page-tdr-sync-project .tdr-sync-hero h1 span {
  color: transparent;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--tdr-public-text) 72%, transparent);
}

.page-tdr-sync-project .tdr-sync-hero__summary,
.page-merch .tdr-merch-hero__summary {
  max-width: 590px;
  padding-top: var(--tdr-public-space-5);
  border-top: 1px solid var(--tdr-public-border-strong);
}

.page-tdr-sync-project .tdr-sync-hero__summary > p,
.page-merch .tdr-merch-hero__summary > p {
  margin: 0;
  color: var(--tdr-public-text);
  font-size: var(--tdr-public-type-body-lg);
}

.page-tdr-sync-project .tdr-sync-hero__summary > small,
.page-merch .tdr-merch-hero__summary > span {
  display: block;
  margin-top: var(--tdr-public-space-5);
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.11em;
  line-height: 1.65;
}

.page-tdr-sync-project .tdr-sync-hero__summary .text-link {
  margin-top: var(--tdr-public-space-6);
}

.page-tdr-sync-project .tdr-sync-statement {
  background: #e8e1d8;
  color: #101112;
}

.page-tdr-sync-project .tdr-sync-statement > div {
  display: grid;
  grid-template-columns: minmax(280px, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(48px, 8vw, 128px);
}

.page-tdr-sync-project .tdr-sync-statement .eyebrow {
  color: #68625c;
}

.page-tdr-sync-project .tdr-sync-statement h2 {
  max-width: 13ch;
  margin: var(--tdr-public-space-4) 0 0;
  font-size: var(--tdr-public-type-h2);
}

.page-tdr-sync-project .tdr-sync-statement__body {
  max-width: var(--tdr-public-reading-max);
}

.page-tdr-sync-project .tdr-sync-statement__body > p {
  margin: 0;
  color: #514d48;
  font-size: var(--tdr-public-type-body-lg);
}

.page-tdr-sync-project .tdr-sync-statement blockquote {
  margin: var(--tdr-public-space-7) 0 0;
  padding: var(--tdr-public-space-5) 0 0 var(--tdr-public-space-5);
  border-top: 1px solid rgba(16, 17, 18, 0.2);
  border-left: 5px solid var(--tdr-public-accent);
  font-size: clamp(1.3rem, 2vw, 2rem);
  font-weight: 600;
}

.page-tdr-sync-project .tdr-sync-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: var(--tdr-public-space-6);
  margin-bottom: clamp(42px, 5vw, 76px);
}

.page-tdr-sync-project .tdr-sync-heading h2 {
  margin: var(--tdr-public-space-3) 0 0;
  font-size: var(--tdr-public-type-h2);
}

.page-tdr-sync-project .tdr-sync-heading > p {
  margin: 0;
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.12em;
}

.page-tdr-sync-project .tdr-sync-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 48px);
}

.page-tdr-sync-project .tdr-sync-grid--single {
  max-width: 520px;
  grid-template-columns: minmax(0, 1fr);
}

.page-tdr-sync-project .tdr-sync-card > a,
.page-merch .tdr-product-card > a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.page-tdr-sync-project .tdr-sync-card__media,
.page-tdr-sync-project .tdr-sync-work__media {
  position: relative;
  aspect-ratio: 1;
  overflow: clip;
  background: var(--tdr-public-surface-elevated);
}

.page-tdr-sync-project .tdr-sync-card__media img,
.page-tdr-sync-project .tdr-sync-work__media img,
.page-merch .tdr-product-card__media img,
.page-merch .tdr-product-detail__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.page-tdr-sync-project .tdr-sync-card__media img,
.page-merch .tdr-product-card__media img {
  transition: transform 400ms var(--tdr-public-ease), filter 400ms var(--tdr-public-ease);
}

.page-tdr-sync-project .tdr-sync-placeholder,
.page-merch .tdr-product-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--tdr-public-accent-deep) 42%, transparent), transparent 55%),
    var(--tdr-public-surface-elevated);
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.16em;
}

.page-tdr-sync-project .tdr-sync-card__copy,
.page-merch .tdr-product-card__copy {
  position: relative;
  min-height: 188px;
  padding: var(--tdr-public-space-5) 58px var(--tdr-public-space-5) 0;
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-card__copy > span,
.page-merch .tdr-product-card__copy > span {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.1em;
}

.page-tdr-sync-project .tdr-sync-card__copy h3,
.page-merch .tdr-product-card__copy h2 {
  margin: var(--tdr-public-space-3) 0 var(--tdr-public-space-2);
  font-size: var(--tdr-public-type-h3);
  overflow-wrap: anywhere;
}

.page-tdr-sync-project .tdr-sync-card__copy p,
.page-merch .tdr-product-card__copy p,
.page-merch .tdr-product-card__copy small {
  display: block;
  margin: var(--tdr-public-space-1) 0 0;
  color: var(--tdr-public-text-secondary);
}

.page-tdr-sync-project .tdr-sync-card__copy i,
.page-merch .tdr-product-card__copy i {
  position: absolute;
  right: 0;
  top: var(--tdr-public-space-5);
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--tdr-public-border-strong);
  border-radius: 50%;
  font-style: normal;
  transition: transform 220ms var(--tdr-public-ease), background 220ms var(--tdr-public-ease);
}

.page-tdr-sync-project .tdr-sync-work {
  scroll-margin-top: calc(var(--header-h) + 18px);
  border-top: 1px solid var(--tdr-public-border);
  background: var(--tdr-public-surface);
}

.page-tdr-sync-project .tdr-sync-work:nth-of-type(even) {
  background: var(--tdr-public-bg);
}

.page-tdr-sync-project .tdr-sync-work__layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(48px, 8vw, 128px);
}

.page-tdr-sync-project .tdr-sync-work__media {
  width: min(100%, 560px);
}

.page-tdr-sync-project .tdr-sync-work__copy {
  max-width: 720px;
}

.page-tdr-sync-project .tdr-sync-work__copy h2 {
  margin: var(--tdr-public-space-4) 0 var(--tdr-public-space-3);
  font-size: var(--tdr-public-type-h1);
  overflow-wrap: anywhere;
}

.page-tdr-sync-project .tdr-sync-work__attribution {
  margin: 0;
  color: var(--tdr-public-text-secondary);
  letter-spacing: 0.06em;
}

.page-tdr-sync-project .tdr-sync-facts,
.page-merch .tdr-product-facts {
  margin: var(--tdr-public-space-6) 0;
  border-top: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-facts > div,
.page-merch .tdr-product-facts > div {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: var(--tdr-public-space-5);
  padding: var(--tdr-public-space-4) 0;
  border-bottom: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-facts dt,
.page-merch .tdr-product-facts dt {
  color: var(--tdr-public-text-muted);
}

.page-tdr-sync-project .tdr-sync-facts dd,
.page-merch .tdr-product-facts dd {
  min-width: 0;
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
}

.page-tdr-sync-project .tdr-sync-work__description,
.page-merch .tdr-product-detail__description {
  max-width: 660px;
  margin: var(--tdr-public-space-6) 0;
  color: var(--tdr-public-text-secondary);
  font-size: var(--tdr-public-type-body-lg);
}

.page-tdr-sync-project .tdr-sync-work__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tdr-public-space-5);
}

.page-tdr-sync-project .tdr-sync-work__pending {
  opacity: 0.72;
  pointer-events: none;
}

.page-tdr-sync-project .tdr-sync-credits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: var(--tdr-public-space-8);
  padding-top: var(--tdr-public-space-6);
  border-top: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-credits > div {
  min-width: 0;
  padding: 0 var(--tdr-public-space-5);
  border-left: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-sync-credits > div:first-child {
  padding-left: 0;
  border-left: 0;
}

.page-tdr-sync-project .tdr-sync-credits dt {
  margin-bottom: var(--tdr-public-space-3);
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-meta);
  letter-spacing: 0.08em;
}

.page-tdr-sync-project .tdr-sync-credits dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.page-tdr-sync-project .tdr-sync-principle,
.page-merch .tdr-merch-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: var(--tdr-public-space-7);
  padding: clamp(72px, 8vw, 120px) var(--gutter);
  background: var(--tdr-public-accent-deep);
}

.page-tdr-sync-project .tdr-sync-principle > p,
.page-merch .tdr-merch-contact h2 {
  max-width: 980px;
  margin: 0;
  font-size: var(--tdr-public-type-h2);
  font-weight: 700;
  line-height: var(--tdr-public-leading-heading-en);
}

.page-tdr-sync-project .tdr-sync-principle > p span {
  color: transparent;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--tdr-public-text) 78%, transparent);
}

.page-tdr-sync-project .tdr-p5-empty,
.page-merch .tdr-p5-empty {
  min-height: 300px;
  display: grid;
  align-content: center;
  justify-items: start;
  border-block: 1px solid var(--tdr-public-border);
}

.page-tdr-sync-project .tdr-p5-empty h3,
.page-merch .tdr-p5-empty h2 {
  margin: 0 0 var(--tdr-public-space-3);
  font-size: var(--tdr-public-type-h3);
}

.page-tdr-sync-project .tdr-p5-empty p,
.page-merch .tdr-p5-empty p {
  margin: 0;
  color: var(--tdr-public-text-muted);
}

.page-merch .tdr-merch-catalog {
  background: var(--tdr-public-surface);
}

.page-merch .tdr-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 3.5vw, 56px);
}

.page-merch .tdr-product-grid--single {
  max-width: 520px;
  grid-template-columns: minmax(0, 1fr);
}

.page-merch .tdr-product-card__media,
.page-merch .tdr-product-detail__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: clip;
  background: var(--tdr-public-surface-elevated);
}

.page-merch .tdr-product-card__copy small {
  color: var(--tdr-public-text-muted);
  font-size: var(--tdr-public-type-small);
}

.page-merch .tdr-merch-contact .eyebrow {
  margin-bottom: var(--tdr-public-space-3);
  color: color-mix(in srgb, var(--tdr-public-text) 72%, transparent);
}

.page-merch .tdr-p5-back {
  padding-top: calc(var(--header-h) + var(--tdr-public-space-6));
  padding-bottom: var(--tdr-public-space-6);
}

.page-merch .tdr-p5-back a {
  display: inline-flex;
  align-items: center;
  gap: var(--tdr-public-space-3);
  min-height: 44px;
  color: var(--tdr-public-text-secondary);
  text-decoration: none;
}

.page-merch .tdr-product-detail {
  min-height: calc(100svh - var(--header-h));
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(48px, 8vw, 128px);
  padding-bottom: clamp(72px, 8vw, 128px);
}

.page-merch .tdr-product-detail__media {
  width: min(100%, 560px);
}

.page-merch .tdr-product-detail__copy {
  max-width: 700px;
}

.page-merch .tdr-product-detail__copy h1 {
  margin: var(--tdr-public-space-4) 0 var(--tdr-public-space-4);
  font-size: var(--tdr-public-type-h1);
  overflow-wrap: anywhere;
}

.page-merch .tdr-product-detail__price {
  margin: 0;
  color: var(--tdr-public-text);
  font-size: clamp(1.25rem, 1.8vw, 1.6rem);
  font-weight: 600;
}

@media (hover: hover) and (pointer: fine) {
  .page-tdr-sync-project .tdr-sync-card:hover .tdr-sync-card__media img,
  .page-merch .tdr-product-card:hover .tdr-product-card__media img {
    transform: scale(1.018);
    filter: saturate(1.04) contrast(1.02);
  }

  .page-tdr-sync-project .tdr-sync-card:hover .tdr-sync-card__copy i,
  .page-merch .tdr-product-card:hover .tdr-product-card__copy i {
    transform: translate(2px, -2px);
    background: var(--tdr-public-text);
    color: var(--tdr-public-bg);
  }
}

@media (max-width: 1024px) {
  .page-tdr-sync-project .tdr-sync-grid,
  .page-merch .tdr-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-tdr-sync-project .tdr-sync-grid--single,
  .page-merch .tdr-product-grid--single {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-tdr-sync-project .tdr-sync-credits {
    grid-template-columns: 1fr;
  }

  .page-tdr-sync-project .tdr-sync-credits > div,
  .page-tdr-sync-project .tdr-sync-credits > div:first-child {
    padding: var(--tdr-public-space-4) 0;
    border-left: 0;
    border-top: 1px solid var(--tdr-public-border);
  }

  .page-tdr-sync-project .tdr-sync-credits > div:first-child {
    border-top: 0;
  }
}

@media (max-width: 768px) {
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero,
  .page-tdr-sync-project .tdr-sync-statement > div,
  .page-tdr-sync-project .tdr-sync-work__layout,
  .page-merch .tdr-product-detail,
  .page-tdr-sync-project .tdr-sync-principle,
  .page-merch .tdr-merch-contact {
    grid-template-columns: 1fr;
  }

  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero {
    min-height: 0;
    padding-top: calc(var(--header-h) + 68px);
  }

  .page-tdr-sync-project .tdr-sync-grid,
  .page-merch .tdr-product-grid {
    grid-template-columns: 1fr;
    max-width: 560px;
    margin-inline: auto;
  }

  .page-tdr-sync-project .tdr-sync-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .page-tdr-sync-project .tdr-sync-work__media {
    width: min(100%, 500px);
    margin-inline: auto;
  }

  .page-merch .tdr-product-detail__media {
    width: min(100%, 420px);
    margin-inline: auto;
  }

  .page-merch .tdr-product-detail {
    min-height: 0;
    align-items: start;
  }

  .page-tdr-sync-project .tdr-sync-principle,
  .page-merch .tdr-merch-contact {
    align-items: start;
  }
}

@media (max-width: 390px) {
  .page-tdr-sync-project .tdr-sync-hero h1,
  .page-merch .tdr-merch-hero h1 {
    font-size: clamp(3.15rem, 15vw, 4.2rem);
  }

  .page-tdr-sync-project .tdr-sync-card__copy,
  .page-merch .tdr-product-card__copy {
    min-height: 168px;
    padding-right: 54px;
  }

  .page-tdr-sync-project .tdr-sync-facts > div,
  .page-merch .tdr-product-facts > div {
    grid-template-columns: 1fr;
    gap: var(--tdr-public-space-1);
  }

  .page-tdr-sync-project .tdr-sync-facts dd,
  .page-merch .tdr-product-facts dd {
    text-align: left;
  }

  .page-tdr-sync-project .tdr-sync-work__actions,
  .page-tdr-sync-project .tdr-sync-principle,
  .page-merch .tdr-merch-contact {
    align-items: stretch;
  }

  .page-tdr-sync-project .tdr-sync-work__actions .button,
  .page-tdr-sync-project .tdr-sync-principle .button,
  .page-merch .tdr-merch-contact .button,
  .page-merch .tdr-product-detail__copy .button {
    width: 100%;
  }
}

@media (min-width: 1440px) {
  .page-tdr-sync-project .tdr-sync-grid,
  .page-merch .tdr-product-grid {
    gap-block: 72px;
  }
}

@media (min-width: 1920px) {
  .page-tdr-sync-project .tdr-sync-principle,
  .page-merch .tdr-merch-contact {
    padding-inline: calc((100vw - var(--tdr-public-shell-max)) / 2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-tdr-sync-project .tdr-sync-card__media img,
  .page-tdr-sync-project .tdr-sync-card__copy i,
  .page-merch .tdr-product-card__media img,
  .page-merch .tdr-product-card__copy i {
    transition: none;
  }
}

/* app/p8-refinement.css */
/* Phase P8 — Whole-site premium experience refinement.
   Low-risk presentation overrides only: no routes, data, media, auth,
   publication boundary, deployment or environment behavior changes. */

/* Typography: retain Kanit and existing scale, improve optical consistency. */
.site-shell :where(h1, h2, h3, h4, .wordmark, .button, .desktop-nav, .menu-panel__nav) {
  font-kerning: normal;
}

.site-shell :where(h1, h2, h3, h4, .tdr-release-card__copy, .tdr-product-card__copy, .tdr-sync-card__copy) {
  overflow-wrap: break-word;
}

.site-shell :where(p, li, dd) {
  hanging-punctuation: first last;
}

/* Header / menu: preserve editorial character while making short iOS screens safer. */
.site-shell .menu-panel__content {
  padding-bottom: max(20px, var(--tdr-public-safe-bottom));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.site-shell .menu-panel__footer {
  padding-bottom: max(8px, var(--tdr-public-safe-bottom));
}

.site-shell .site-footer {
  padding-bottom: max(var(--tdr-public-space-6), calc(var(--tdr-public-safe-bottom) + var(--tdr-public-space-5)));
}

/* Cards stay editorial: media leads, chrome recedes. */
.page-home .tdr-home-artist {
  background: transparent;
}

.page-home .tdr-home-artist__meta {
  border-inline: 0;
  border-bottom: 0;
  border-top: 1px solid var(--tdr-public-border);
}

/* TDR SYNC remains distinctive without drifting into SaaS / tech-dashboard language. */
.page-home .tdr-home-sync {
  background: var(--tdr-public-bg);
}

.page-home .tdr-home-sync__copy {
  border-left-width: 4px;
}

/* Keep red as an intentional brand signal, not a full-time competing surface. */
.page-home .tdr-home-contact,
.page-artists .tdr-artists-contact,
.page-releases .tdr-releases-discovery,
.page-tdr-sync-project .tdr-sync-principle,
.page-merch .tdr-merch-contact {
  background: color-mix(in srgb, var(--tdr-public-accent-deep) 88%, var(--tdr-public-bg));
}

/* Detail compositions: keep media prominent without delaying title/CTA on mobile. */
@media (max-width: 768px) {
  .page-home .tdr-home-hero {
    min-height: min(640px, 86svh);
    max-height: 760px;
  }

  .page-home .tdr-home-hero__content {
    padding-bottom: max(24px, calc(var(--tdr-public-safe-bottom) + 12px));
  }

  .page-home .tdr-home-hero__bottom {
    width: calc(100vw - var(--gutter) - var(--gutter));
    min-width: 0;
    max-width: calc(100vw - var(--gutter) - var(--gutter));
    justify-self: start;
  }

  .page-home .tdr-home-hero__bottom > div,
  .page-home .tdr-home-hero__copy,
  .page-home .tdr-home-hero__actions {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .page-home .tdr-home-hero__copy {
    overflow-wrap: anywhere;
  }

  .page-home .tdr-home-hero__actions .button {
    min-width: 0;
    max-width: 100%;
  }

  .page-home .tdr-home-hero__subtitle {
    font-size: clamp(1.2rem, 5vw, 1.55rem);
  }

  .page-home .tdr-home-hero__copy {
    max-width: 42ch;
  }

  .page-home .tdr-home-release__art,
  .page-home .tdr-home-sync__art,
  .page-home .tdr-home-merch__media {
    width: min(100%, 380px);
  }

  .page-artists .tdr-artist-hero__media {
    width: min(100%, 360px);
  }

  .page-releases .tdr-release-hero__art {
    width: min(100%, 390px);
  }

  .page-merch .tdr-product-detail__media {
    width: min(100%, 360px);
    margin-inline: auto;
  }

  .page-tdr-sync-project .tdr-sync-work__media {
    width: min(100%, 390px);
    margin-inline: auto;
  }

  .page-artists .tdr-artist-hero__copy h1,
  .page-releases .tdr-release-hero__copy h1,
  .page-merch .tdr-product-detail__copy h1,
  .page-tdr-sync-project .tdr-sync-work__copy h2 {
    text-wrap: balance;
  }

  .page-home .tdr-home-sync__copy {
    border-top-width: 4px;
  }
}

/* Small phones: buttons follow hierarchy instead of becoming an undifferentiated wall. */
@media (max-width: 390px) {
  .page-home .tdr-home-hero__actions,
  .page-home .tdr-home-contact__actions,
  .page-artists .tdr-artist-hero__actions,
  .page-releases .tdr-release-hero__actions {
    display: flex;
    width: 100%;
    align-items: center;
    flex-wrap: wrap;
  }

  .page-home .tdr-home-hero__actions .button,
  .page-home .tdr-home-contact__actions .button,
  .page-artists .tdr-artist-hero__actions .button,
  .page-releases .tdr-release-hero__actions .button {
    width: auto;
    max-width: 100%;
  }

  .page-home .tdr-home-hero__actions .button--primary,
  .page-artists .tdr-artist-hero__actions .button--primary,
  .page-releases .tdr-release-hero__actions .button--primary {
    flex: 1 1 100%;
    justify-content: space-between;
  }

  .page-home .tdr-home-hero h1 {
    font-size: clamp(2.45rem, 11.2vw, 4rem);
  }

  .page-home .tdr-home-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .tdr-home-index a:nth-child(3) {
    border-left: 0;
  }

  .page-home .tdr-home-index a:nth-child(n + 3) {
    border-top: 1px solid var(--tdr-public-border);
  }

  .page-home .tdr-home-index a + a:not(:nth-child(3)) {
    border-left: 1px solid var(--tdr-public-border);
  }
}

/* Wide screens: keep content density editorial instead of scaling into empty spectacle. */
@media (min-width: 1440px) {
  .site-shell .public-layout--standard {
    max-width: min(var(--tdr-public-content-max), 1500px);
  }

  .page-home .tdr-home-release__art,
  .page-home .tdr-home-merch__media,
  .page-home .tdr-home-sync__art {
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-shell .public-card :where(img),
  .site-shell .button,
  .site-shell .desktop-nav a,
  .site-shell .text-link {
    transition: none;
  }
}

/* app/mobile-nav-v2.css */
/* Mobile Full-screen Navigation V2
   Presentation-only refinement. Existing navigation semantics, focus management,
   routing and body-scroll behavior remain owned by Site.tsx. */

@media (max-width: 800px) {
  /* Keep the fixed site header as the black chrome. The navigation surface begins
     immediately below it and fills the rest of the dynamic viewport. */
  .site-shell .menu-panel {
    height: 100dvh;
    min-height: 100svh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: calc(var(--header-h) + var(--tdr-public-safe-top)) 0 0;
    background: var(--tdr-public-accent-deep);
  }

  body.menu-open .site-shell .site-header {
    min-height: calc(var(--header-h) + var(--tdr-public-safe-top));
    padding-top: calc(10px + var(--tdr-public-safe-top));
    padding-bottom: 10px;
    background: var(--tdr-public-bg);
    border-bottom-color: rgba(243, 239, 232, 0.16);
  }

  body.menu-open .site-shell .menu-toggle {
    width: 48px;
    height: 48px;
    border-color: transparent;
    border-radius: 0;
    background: transparent;
  }

  body.menu-open .site-shell .menu-toggle:hover {
    border-color: transparent;
    background: transparent;
  }

  .site-shell .menu-panel__visual,
  .site-shell .menu-panel__label {
    display: none;
  }

  .site-shell .menu-panel__content {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    padding:
      clamp(18px, 3vh, 28px)
      var(--gutter)
      max(18px, calc(var(--tdr-public-safe-bottom) + 10px));
    background: var(--tdr-public-accent-deep);
  }

  .site-shell .menu-panel__nav {
    flex: none;
    width: 100%;
    margin: 0;
    border-top: 1px solid rgba(243, 239, 232, 0.22);
  }

  .site-shell .menu-panel__nav a {
    min-height: 64px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 12px;
    padding: clamp(13px, 2.1vh, 20px) 0;
    border-bottom: 1px solid rgba(243, 239, 232, 0.22);
    color: var(--tdr-public-text);
    background: transparent;
    box-shadow: none;
    transition:
      opacity 180ms var(--tdr-public-ease),
      color 180ms var(--tdr-public-ease);
  }

  .site-shell .menu-panel__nav a[aria-current="page"] {
    padding-inline: 0;
    color: var(--tdr-public-text);
    background: transparent;
    box-shadow: none;
  }

  .site-shell .menu-panel__nav a > span:first-child {
    align-self: center;
    color: rgba(243, 239, 232, 0.68);
    font-size: 0.68rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.14em;
  }

  .site-shell .menu-panel__nav a[aria-current="page"] > span:first-child {
    color: var(--tdr-public-text);
  }

  .site-shell .menu-panel__nav-copy {
    display: block;
    min-width: 0;
  }

  .site-shell .menu-panel__nav-copy strong {
    display: block;
    margin: 0;
    color: inherit;
    font-size: clamp(2.05rem, 10.5vw, 3.15rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: 0;
    font-kerning: normal;
    text-wrap: balance;
    overflow-wrap: break-word;
  }

  .site-shell .menu-panel__nav-copy em {
    display: none;
  }

  .site-shell .menu-panel__nav a > i {
    justify-self: end;
    align-self: center;
    color: rgba(243, 239, 232, 0.8);
    font-size: 1rem;
    font-style: normal;
    line-height: 1;
    transition: transform 180ms var(--tdr-public-ease);
  }

  .site-shell .menu-panel__nav a:active {
    opacity: 0.72;
  }

  .site-shell .menu-panel__nav a:active > i {
    transform: translate(2px, -2px);
  }

  .site-shell .menu-panel__nav a:focus-visible {
    outline-color: var(--tdr-public-text);
    outline-offset: 3px;
  }

  .site-shell .menu-panel__footer {
    flex: none;
    width: 100%;
    margin-top: auto;
    padding-top: clamp(18px, 3vh, 28px);
    padding-bottom: 0;
    border-top: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    color: rgba(243, 239, 232, 0.78);
    font-size: 0.76rem;
    font-weight: 400;
  }

  .site-shell .menu-panel__socials {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 0 clamp(18px, 5vw, 28px);
  }

  .site-shell .menu-panel__socials a,
  .site-shell .menu-panel__footer > a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .site-shell .menu-panel__footer > a:not(:last-child) {
    color: var(--tdr-public-text);
  }

  .site-shell .menu-panel__footer > a:last-child {
    display: none;
  }
}

/* Short mobile viewports keep the same hierarchy while reducing only vertical
   rhythm. The content remains internally scrollable when the available height
   is smaller than the complete navigation + social block. */
@media (max-width: 800px) and (max-height: 700px) {
  .site-shell .menu-panel__content {
    padding-top: 12px;
    padding-bottom: max(12px, calc(var(--tdr-public-safe-bottom) + 8px));
  }

  .site-shell .menu-panel__nav a {
    min-height: 56px;
    padding-block: 10px;
  }

  .site-shell .menu-panel__nav-copy strong {
    font-size: clamp(1.85rem, 9.5vw, 2.65rem);
    line-height: 1.14;
  }

  .site-shell .menu-panel__footer {
    padding-top: 12px;
  }

  .site-shell .menu-panel__socials a,
  .site-shell .menu-panel__footer > a {
    min-height: 42px;
  }
}

@media (hover: hover) and (pointer: fine) and (max-width: 800px) {
  .site-shell .menu-panel__nav a:hover {
    padding-left: 0;
    color: var(--tdr-public-text);
    background: transparent;
    opacity: 0.82;
  }

  .site-shell .menu-panel__nav a:hover > i {
    transform: translate(3px, -3px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-shell .menu-panel__nav a,
  .site-shell .menu-panel__nav a > i {
    transition: none;
  }
}

/* app/targeted-defect-refinement.css */
/* Targeted whole-site defect refinement.
   Fixes only observed rendering/overflow defects; no route, data, media,
   authentication, publication-boundary or production behavior changes. */

/* Artist roster scroll stability: avoid a persistent GPU filter layer on large
   portrait images. The compositor-friendly transform remains for fine-pointer
   hover only; no lazy-loading or image-loading policy is changed. */
.page-artists .tdr-artists-card__media img {
  filter: none;
  transition: transform 600ms var(--tdr-public-ease);
}

@media (hover: hover) and (pointer: fine) {
  .page-artists .tdr-artists-card:hover .tdr-artists-card__media img {
    filter: none;
  }
}

/* iOS Safari can briefly recomposite a linked, clipped image while a touch
   scroll is in progress. Keep catalog imagery on the normal paint path on
   coarse pointers; desktop hover motion remains unchanged. */
@media (hover: none) and (pointer: coarse) {
  .page-artists .tdr-artists-card__media img,
  .page-merch .tdr-product-card__media img {
    filter: none;
    transform: none;
    transition: none;
  }

  .page-merch .tdr-product-card__media {
    overflow: hidden;
  }
}

/* When there is no published latest release, the primary Hero CTA already
   becomes /artists. Suppress the adjacent duplicate destination only in that
   exact state instead of creating a new route or changing unrelated CTAs. */
.page-home .tdr-home-hero__actions:has(> .button--primary[href="/artists"])
  > .button--ghost[href="/artists"] {
  display: none;
}

/* Backoffice intrinsic-width containment. Fix the overflowing element itself;
   do not hide horizontal overflow on the page or workspace. */
.admin-shell :where(
  .admin-editor-panel,
  .admin-form-section,
  .admin-form-section > *,
  .cms-grid,
  .cms-grid > *,
  .cms-field,
  .admin-media-field,
  .admin-hero-field,
  .cms-hero-field__body,
  .admin-media-guidance,
  .admin-image-state-grid,
  .admin-image-preview,
  .admin-media-field__actions,
  .maintenance-native__hero-card,
  .maintenance-native__image-actions
) {
  min-width: 0;
  max-width: 100%;
}

.admin-shell :where(
  .admin-field-help,
  .admin-media-guidance strong,
  .admin-media-guidance span,
  .admin-media-guidance em,
  .admin-media-status
) {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.admin-shell .admin-media-field__actions input[type="file"],
.admin-shell .admin-hero-field input[type="file"] {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

/* A failed Admin preview must never degrade into the browser's broken-image
   glyph. The component exposes a real error state and an explicit retry. */
.admin-shell .admin-image-preview__error {
  min-height: 120px;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 10px;
  padding: 16px;
  background: var(--admin-danger-soft);
  color: var(--admin-danger);
  font-size: 0.76rem;
  line-height: 1.5;
}

.admin-shell .admin-image-preview__error p {
  margin: 0;
  overflow-wrap: anywhere;
}

.admin-shell .admin-image-preview__error button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--admin-border-strong);
  border-radius: var(--admin-radius-sm);
  background: var(--admin-surface);
  color: var(--admin-text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

@media (max-width: 430px) {
  .admin-shell .admin-media-field__actions,
  .admin-shell .maintenance-native__image-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-shell .admin-media-field__actions > *,
  .admin-shell .maintenance-native__image-actions > * {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
}

/* app/public-desktop-geometry-v2.css */
/* TUBTIMDAENG RECORDS — Public Desktop Geometry V2
   Actual Preview remediation for accidental character wrapping, narrow editorial
   tracks and oversized desktop whitespace. Presentation-only: no content,
   routes, media, auth or publication changes. */

/* Readable display typography must never collapse into one-character columns.
   Decorative vertical type must be explicit, never a side effect of wrapping. */
.site-shell :where(
  .tdr-artists-hero h1,
  .tdr-artists-card__copy h2,
  .tdr-artist-hero__copy h1,
  .tdr-releases-hero h1,
  .tdr-release-hero__copy h1,
  .tdr-release-card__copy h2,
  .tdr-release-card__copy h3,
  .tdr-sync-hero h1,
  .tdr-sync-card__copy h3,
  .tdr-sync-work__copy h2,
  .tdr-merch-hero h1,
  .tdr-product-card__copy h2,
  .tdr-product-detail__copy h1,
  .contact-hero__copy h1,
  .contact-quick h2,
  .contact-options h2,
  .contact-intent h3,
  .contact-prep h2,
  .contact-direct h2,
  .tdr-home-artist__meta h3
) {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
}

.site-shell :where(
  .tdr-artists-hero h1,
  .tdr-releases-hero h1,
  .tdr-sync-hero h1,
  .tdr-merch-hero h1
) {
  width: max-content;
  max-width: 100%;
  text-wrap: balance;
}

@media (min-width: 1024px) {
  /* Catalog heroes use stable readable tracks. */
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero {
    grid-template-columns: minmax(480px, 1.15fr) minmax(360px, .85fr);
    gap: clamp(48px, 6vw, 104px);
    min-height: clamp(500px, 58svh, 680px);
    padding-top: calc(var(--header-h) + clamp(60px, 7vw, 104px));
    padding-bottom: clamp(56px, 6vw, 88px);
  }

  .page-artists .tdr-artists-hero h1,
  .page-releases .tdr-releases-hero h1,
  .page-merch .tdr-merch-hero h1 {
    font-size: clamp(4.4rem, 6.2vw, 7.4rem);
  }

  .page-tdr-sync-project .tdr-sync-hero h1 {
    width: min(100%, 11.5ch);
    font-size: clamp(4.1rem, 5.8vw, 7rem);
    line-height: 1;
  }

  .page-tdr-sync-project .tdr-sync-hero h1 span {
    display: inline;
  }

  /* Artists: use the desktop canvas for a real roster, not narrow columns. */
  .page-artists .tdr-artists-grid {
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    gap: clamp(24px, 2.8vw, 42px);
  }

  .page-artists .tdr-artists-grid--single {
    max-width: min(520px, 100%);
    grid-template-columns: minmax(0, 1fr);
  }

  .page-artists .tdr-artists-card__copy {
    min-height: 150px;
    padding-right: 56px;
  }

  .page-artists .tdr-artists-card__copy h2 {
    width: auto;
    max-width: 16ch;
    line-height: 1.12;
    text-wrap: balance;
  }

  /* Homepage artist roster follows the same desktop editorial rhythm. */
  .page-home .tdr-home-artists__grid {
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    gap: clamp(22px, 2.6vw, 40px);
  }

  .page-home .tdr-home-artist__meta {
    min-height: 144px;
    padding: 20px 56px 22px 0;
  }

  .page-home .tdr-home-artist__meta h3 {
    max-width: 16ch;
    line-height: 1.12;
    text-wrap: balance;
  }

  /* Empty release catalogs should not render as an oversized black void. */
  .page-releases .tdr-releases:has(.tdr-catalog-empty) .tdr-releases-hero {
    min-height: clamp(390px, 46svh, 520px);
    padding-top: calc(var(--header-h) + clamp(48px, 5vw, 76px));
    padding-bottom: clamp(42px, 5vw, 68px);
  }

  .page-releases .tdr-releases:has(.tdr-catalog-empty) .tdr-releases-catalog {
    padding-top: clamp(52px, 6vw, 84px);
  }

  .page-releases .tdr-catalog-empty {
    min-height: 220px;
  }

  /* SYNC statement/work layouts keep content horizontal and readable. */
  .page-tdr-sync-project .tdr-sync-statement > div {
    grid-template-columns: minmax(340px, .82fr) minmax(520px, 1.18fr);
    gap: clamp(52px, 7vw, 112px);
  }

  .page-tdr-sync-project .tdr-sync-statement h2 {
    max-width: 15ch;
  }

  .page-tdr-sync-project .tdr-sync-work__layout {
    grid-template-columns: minmax(380px, .85fr) minmax(520px, 1.15fr);
    gap: clamp(52px, 7vw, 112px);
  }

  .page-tdr-sync-project .tdr-sync-work__copy {
    max-width: 760px;
  }

  .page-tdr-sync-project .tdr-sync-work__copy h2 {
    max-width: 12ch;
    line-height: 1.06;
  }

  /* Contact: reserve a hard readable information column. */
  .site-shell .contact-hero {
    min-height: clamp(560px, 66svh, 720px);
    max-height: none;
    grid-template-columns: minmax(0, 1fr) minmax(440px, 520px);
    align-items: stretch;
    column-gap: clamp(28px, 4vw, 72px);
  }

  .site-shell .contact-hero__copy {
    min-width: 0;
    justify-content: flex-end;
    padding-block: clamp(68px, 7vw, 104px);
  }

  .site-shell .contact-hero__copy h1 {
    width: max-content;
    max-width: 100%;
    font-size: clamp(4.8rem, 7.2vw, 8rem);
    line-height: 1;
  }

  .site-shell .contact-quick {
    box-sizing: border-box;
    width: min(100%, 520px);
    min-width: 440px;
    max-width: 520px;
    align-self: center;
    justify-self: end;
    margin: clamp(28px, 3vw, 48px) var(--gutter) clamp(28px, 3vw, 48px) 0;
    padding: clamp(28px, 2.8vw, 42px);
  }

  .site-shell .contact-quick h2 {
    width: auto;
    max-width: 12ch;
    line-height: 1.08;
    text-wrap: balance;
  }

  .site-shell .contact-quick > a {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
    white-space: normal;
  }

  .site-shell .contact-options .section-heading,
  .site-shell .contact-prep,
  .site-shell .contact-direct {
    grid-template-columns: minmax(360px, .8fr) minmax(520px, 1.2fr);
    gap: clamp(48px, 7vw, 112px);
  }

  .page-merch .tdr-merch-hero__summary {
    max-width: 640px;
  }

  .page-merch .tdr-product-grid {
    align-items: start;
  }
}

@media (min-width: 1440px) {
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero {
    grid-template-columns: minmax(560px, 1.2fr) minmax(400px, .8fr);
  }

  .site-shell .contact-hero {
    grid-template-columns: minmax(0, 1fr) 520px;
  }

  .page-artists .tdr-artists-grid,
  .page-home .tdr-home-artists__grid {
    grid-template-columns: repeat(3, minmax(300px, 1fr));
  }
}

/* Tablet/small desktop: collapse before readable type is squeezed. */
@media (min-width: 769px) and (max-width: 1023px) {
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero,
  .site-shell .contact-hero {
    grid-template-columns: 1fr;
  }

  .page-artists .tdr-artists-grid,
  .page-home .tdr-home-artists__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-shell .contact-quick {
    width: auto;
    min-width: 0;
    max-width: none;
    justify-self: stretch;
    margin: 0 var(--gutter) var(--gutter);
  }
}

/* app/public-design-system-v2.css */
/* TUBTIMDAENG RECORDS — PUBLIC DESIGN SYSTEM V2
   Whole-site visual unification layer.
   Presentation-only: no routes, content, data, media, auth, SEO or publication changes.

   Principles:
   - Premium dark editorial music label
   - One spacing/type/grid language across every public route
   - Red is a deliberate accent/CTA band, not a competing default surface
   - Thai-safe typography; no accidental character columns
   - Desktop uses horizontal space intentionally; tablet/mobile collapse before content is squeezed
*/

.site-shell {
  --tdr-v2-shell: 1580px;
  --tdr-v2-content: 1320px;
  --tdr-v2-reading: 720px;
  --tdr-v2-gutter: clamp(22px, 4.2vw, 72px);
  --tdr-v2-section: clamp(76px, 7.5vw, 118px);
  --tdr-v2-section-compact: clamp(54px, 5.5vw, 84px);
  --tdr-v2-gap-xl: clamp(52px, 6vw, 96px);
  --tdr-v2-gap-lg: clamp(34px, 4vw, 64px);
  --tdr-v2-gap-md: clamp(20px, 2.4vw, 36px);
  --tdr-v2-display: clamp(4.6rem, 6.7vw, 7.6rem);
  --tdr-v2-h1: clamp(3.5rem, 5.8vw, 6.3rem);
  --tdr-v2-h2: clamp(2.45rem, 4vw, 4.3rem);
  --tdr-v2-h3: clamp(1.55rem, 2.15vw, 2.35rem);
  --tdr-v2-body-lg: clamp(1.05rem, 1.22vw, 1.22rem);
  --tdr-v2-meta: .72rem;
  --tdr-v2-line: rgba(243, 239, 232, .14);
  --tdr-v2-line-strong: rgba(243, 239, 232, .28);
  --tdr-v2-paper: #e7dfd4;
  --tdr-v2-red: #971329;
}

/* ------------------------------
   GLOBAL SHELL / WIDTH RHYTHM
------------------------------ */
.site-shell .public-layout--wide,
.site-shell .public-layout--standard,
.site-shell .public-layout--narrow {
  width: min(100%, var(--tdr-v2-shell));
  margin-inline: auto;
  padding-inline: var(--tdr-v2-gutter);
}

.site-shell .public-layout--standard { max-width: var(--tdr-v2-content); }
.site-shell .public-layout--narrow { max-width: calc(var(--tdr-v2-reading) + (var(--tdr-v2-gutter) * 2)); }

.site-shell .public-section,
.site-shell .section {
  padding-block: var(--tdr-v2-section);
}

.site-shell .section,
.site-shell .page-hero {
  padding-inline: max(var(--tdr-v2-gutter), calc((100vw - var(--tdr-v2-content)) / 2));
}

/* ------------------------------
   TYPOGRAPHY CONTRACT
------------------------------ */
.site-shell :where(h1,h2,h3,h4) {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  text-wrap: balance;
}

.site-shell :where(h1,h2,h3,h4):lang(th),
.site-shell .thai-display {
  line-height: 1.18;
  letter-spacing: 0;
}

.site-shell :where(h1,h2,h3):lang(en),
.site-shell .latin-display {
  line-height: .98;
  letter-spacing: -.012em;
}

.site-shell :where(p,li,dd,blockquote) {
  max-width: 100%;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

.site-shell .eyebrow {
  font-size: var(--tdr-v2-meta);
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.4;
}

/* ------------------------------
   HEADER / NAV
------------------------------ */
.site-shell .site-header {
  min-height: 78px;
  max-width: var(--tdr-v2-shell);
  margin-inline: auto;
  padding: 12px var(--tdr-v2-gutter);
  border-bottom-color: var(--tdr-v2-line);
}

.site-shell:not(.page-home) .site-header {
  max-width: none;
  padding-inline: max(var(--tdr-v2-gutter), calc((100vw - var(--tdr-v2-shell)) / 2));
}

.site-shell .desktop-nav { gap: clamp(22px, 2.4vw, 38px); }
.site-shell .desktop-nav a { font-size: .84rem; }

/* ------------------------------
   SHARED HERO FAMILY
------------------------------ */
.page-artists .tdr-artists-hero,
.page-releases .tdr-releases-hero,
.page-tdr-sync-project .tdr-sync-hero,
.page-merch .tdr-merch-hero {
  width: min(100%, var(--tdr-v2-content));
  min-height: clamp(430px, 50svh, 610px);
  margin-inline: auto;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
  gap: var(--tdr-v2-gap-xl);
  align-items: end;
  padding: calc(var(--header-h) + 56px) var(--tdr-v2-gutter) clamp(52px, 6vw, 80px);
  border-bottom: 1px solid var(--tdr-v2-line);
}

.page-artists .tdr-artists-hero h1,
.page-releases .tdr-releases-hero h1,
.page-tdr-sync-project .tdr-sync-hero h1,
.page-merch .tdr-merch-hero h1 {
  width: auto;
  max-width: 12ch;
  margin: 12px 0 0;
  font-size: var(--tdr-v2-display);
}

.page-artists .tdr-artists-hero__summary,
.page-releases .tdr-releases-hero__summary,
.page-tdr-sync-project .tdr-sync-hero__summary,
.page-merch .tdr-merch-hero__summary {
  max-width: 560px;
  padding-top: 22px;
  border-top: 1px solid var(--tdr-v2-line-strong);
}

.page-artists .tdr-artists-hero__summary p,
.page-releases .tdr-releases-hero__summary p,
.page-tdr-sync-project .tdr-sync-hero__summary > p,
.page-merch .tdr-merch-hero__summary > p {
  font-size: var(--tdr-v2-body-lg);
  line-height: 1.62;
}

/* Empty catalog feels intentional, not unfinished. */
.page-releases .tdr-releases:has(.tdr-catalog-empty) .tdr-releases-hero {
  min-height: 400px;
  padding-top: calc(var(--header-h) + 44px);
  padding-bottom: 48px;
}
.page-releases .tdr-releases:has(.tdr-catalog-empty) .tdr-releases-catalog {
  padding-block: 58px 72px;
}
.page-releases .tdr-catalog-empty {
  min-height: 150px;
  padding-block: 16px;
}

/* ------------------------------
   SHARED SECTION HEADERS
------------------------------ */
.page-home .tdr-home-section-heading,
.page-artists .tdr-catalog-heading,
.page-releases .tdr-catalog-heading,
.page-tdr-sync-project .tdr-sync-heading,
.site-shell .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 440px);
  gap: var(--tdr-v2-gap-lg);
  align-items: end;
  margin-bottom: clamp(40px, 5vw, 68px);
}

.page-home .tdr-home-section-heading h2,
.page-artists .tdr-catalog-heading h2,
.page-releases .tdr-catalog-heading h2,
.page-tdr-sync-project .tdr-sync-heading h2,
.site-shell .section-heading h2 {
  max-width: 12ch;
  margin: 8px 0 0;
  font-size: var(--tdr-v2-h2);
}

/* ------------------------------
   ARTISTS / CARD FAMILY
------------------------------ */
.page-artists .tdr-artists-roster,
.page-home .tdr-home-artists {
  padding-block: var(--tdr-v2-section);
}

.page-artists .tdr-artists-grid,
.page-home .tdr-home-artists__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(22px, 2.8vw, 40px);
  align-items: start;
}

.page-artists .tdr-artists-card__copy,
.page-home .tdr-home-artist__meta {
  min-height: 0;
  padding: 20px 52px 24px 0;
  border: 0;
  border-top: 1px solid var(--tdr-v2-line);
}

.page-home .tdr-home-artist__meta { padding-left: 0; }

.page-artists .tdr-artists-card__copy h2,
.page-home .tdr-home-artist__meta h3 {
  max-width: 9ch;
  margin: 10px 0 6px;
  font-size: var(--tdr-v2-h3);
  line-height: 1.12;
  word-break: normal;
  overflow-wrap: normal;
}

/* ------------------------------
   TDR SYNC — distinctive content,
   shared rhythm
------------------------------ */
.page-tdr-sync-project .tdr-sync-statement {
  background: var(--tdr-v2-paper);
}

.page-tdr-sync-project .tdr-sync-statement > div {
  width: min(100%, var(--tdr-v2-content));
  margin-inline: auto;
  grid-template-columns: minmax(360px, .82fr) minmax(0, 1.18fr);
  gap: var(--tdr-v2-gap-xl);
}

.page-tdr-sync-project .tdr-sync-statement h2 {
  max-width: 12ch;
  font-size: var(--tdr-v2-h2);
  line-height: 1.14;
}

.page-tdr-sync-project .tdr-sync-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--tdr-v2-gap-md);
}

.page-tdr-sync-project .tdr-sync-grid--single {
  max-width: 520px;
  grid-template-columns: 1fr;
}

.page-tdr-sync-project .tdr-sync-work {
  padding-block: 0;
}

.page-tdr-sync-project .tdr-sync-work__layout {
  width: min(100%, var(--tdr-v2-content));
  margin-inline: auto;
  grid-template-columns: minmax(360px, .82fr) minmax(0, 1.18fr);
  gap: var(--tdr-v2-gap-xl);
  padding-block: var(--tdr-v2-section);
}

.page-tdr-sync-project .tdr-sync-work__copy h2 {
  max-width: 10ch;
  font-size: var(--tdr-v2-h1);
  line-height: 1.08;
}

/* ------------------------------
   MERCH — same catalog language
------------------------------ */
.page-merch .tdr-merch-catalog {
  padding-block: var(--tdr-v2-section);
}

.page-merch .tdr-product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--tdr-v2-gap-md);
}

.page-merch .tdr-product-grid--single {
  max-width: 620px;
  margin-inline: auto;
  grid-template-columns: 1fr;
}

.page-merch .tdr-product-card__copy {
  min-height: 0;
  padding-top: 20px;
}

/* ------------------------------
   CONTACT — same hero/section rhythm,
   keep black contact desk as accent
------------------------------ */
.site-shell .contact-hero {
  width: 100%;
  min-height: clamp(520px, 60svh, 680px);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr);
  gap: var(--tdr-v2-gap-xl);
  align-items: center;
  padding: calc(var(--header-h) + 46px) max(var(--tdr-v2-gutter), calc((100vw - var(--tdr-v2-content)) / 2)) 60px;
  background: var(--tdr-v2-red);
}

.site-shell .contact-hero__copy {
  justify-content: center;
  padding: 0;
}

.site-shell .contact-hero__copy h1 {
  max-width: 8ch;
  margin: 14px 0 22px;
  font-size: var(--tdr-v2-display);
  line-height: 1.02;
}

.site-shell .contact-quick {
  width: 100%;
  min-width: 420px;
  max-width: 560px;
  margin: 0;
  padding: clamp(28px, 3vw, 42px);
  justify-self: end;
  background: #0b0b0c;
}

.site-shell .contact-quick h2 {
  max-width: none;
  margin: 10px 0 24px;
  font-size: clamp(2rem, 2.8vw, 3rem);
}

.site-shell .contact-quick > a {
  min-width: 0;
  word-break: normal;
  overflow-wrap: break-word;
}

.site-shell .contact-options,
.site-shell .contact-prep,
.site-shell .contact-direct {
  padding-block: var(--tdr-v2-section);
}

.site-shell .contact-options .section-heading,
.site-shell .contact-prep,
.site-shell .contact-direct {
  grid-template-columns: minmax(0, .85fr) minmax(480px, 1.15fr);
  gap: var(--tdr-v2-gap-xl);
}

.site-shell .contact-intents {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ------------------------------
   ONE CTA BAND LANGUAGE
------------------------------ */
.page-artists .tdr-artists-contact,
.page-releases .tdr-releases-discovery,
.page-tdr-sync-project .tdr-sync-principle,
.page-merch .tdr-merch-contact,
.page-home .tdr-home-contact,
.site-shell .contact-direct {
  min-height: 280px;
  padding: clamp(64px, 6.5vw, 96px) max(var(--tdr-v2-gutter), calc((100vw - var(--tdr-v2-content)) / 2));
  background: var(--tdr-v2-red);
  color: #f5f1eb;
}

.page-artists .tdr-artists-contact h2,
.page-releases .tdr-releases-discovery h2,
.page-tdr-sync-project .tdr-sync-principle > p,
.page-merch .tdr-merch-contact h2,
.page-home .tdr-home-contact h2,
.site-shell .contact-direct h2 {
  max-width: 16ch;
  margin: 10px 0 0;
  font-size: var(--tdr-v2-h2);
  line-height: 1.12;
}

/* ------------------------------
   FOOTER — common ending rhythm
------------------------------ */
.site-shell .site-footer {
  width: min(100%, var(--tdr-v2-content));
  margin-inline: auto;
  padding: clamp(68px, 7vw, 104px) var(--tdr-v2-gutter) max(34px, calc(env(safe-area-inset-bottom, 0px) + 28px));
}

.site-shell .footer-lead > p:last-child {
  max-width: 14ch;
  font-size: clamp(2.2rem, 3.5vw, 3.8rem);
  line-height: 1.2;
}

/* ------------------------------
   RESPONSIVE CONTRACT
------------------------------ */
@media (max-width: 1180px) {
  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero,
  .site-shell .contact-hero {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .site-shell .contact-quick {
    min-width: 0;
    max-width: 620px;
    justify-self: start;
  }

  .page-tdr-sync-project .tdr-sync-statement > div,
  .page-tdr-sync-project .tdr-sync-work__layout,
  .site-shell .contact-options .section-heading,
  .site-shell .contact-prep,
  .site-shell .contact-direct {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .page-artists .tdr-artists-grid,
  .page-home .tdr-home-artists__grid,
  .page-tdr-sync-project .tdr-sync-grid,
  .page-merch .tdr-product-grid,
  .site-shell .contact-intents {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .tdr-home-section-heading,
  .page-artists .tdr-catalog-heading,
  .page-releases .tdr-catalog-heading,
  .page-tdr-sync-project .tdr-sync-heading,
  .site-shell .section-heading {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .site-shell { --tdr-v2-section: 64px; --tdr-v2-gutter: 20px; }

  .page-artists .tdr-artists-hero,
  .page-releases .tdr-releases-hero,
  .page-tdr-sync-project .tdr-sync-hero,
  .page-merch .tdr-merch-hero,
  .site-shell .contact-hero {
    min-height: auto;
    padding-top: calc(var(--header-h) + 42px);
    padding-bottom: 52px;
  }

  .page-artists .tdr-artists-hero h1,
  .page-releases .tdr-releases-hero h1,
  .page-tdr-sync-project .tdr-sync-hero h1,
  .page-merch .tdr-merch-hero h1,
  .site-shell .contact-hero__copy h1 {
    max-width: 100%;
    font-size: clamp(3.1rem, 14vw, 5rem);
  }

  .page-artists .tdr-artists-grid,
  .page-home .tdr-home-artists__grid,
  .page-tdr-sync-project .tdr-sync-grid,
  .page-merch .tdr-product-grid,
  .site-shell .contact-intents {
    grid-template-columns: 1fr;
  }

  .page-artists .tdr-artists-card__copy h2,
  .page-home .tdr-home-artist__meta h3 {
    max-width: none;
  }

  .site-shell .contact-quick {
    width: 100%;
  }

  .page-artists .tdr-artists-contact,
  .page-releases .tdr-releases-discovery,
  .page-tdr-sync-project .tdr-sync-principle,
  .page-merch .tdr-merch-contact,
  .page-home .tdr-home-contact,
  .site-shell .contact-direct {
    min-height: 0;
    padding-block: 58px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-shell *,
  .site-shell *::before,
  .site-shell *::after {
    scroll-behavior: auto !important;
  }
}

/* app/merch-editorial-v3.css */
/* TUBTIMDAENG RECORDS — Merch Editorial V3
   Desktop-first redesign for /merch. Presentation only. */

.page-merch .tdr-merch {
  background:#080a0b;
}

/* Hero — stronger identity, same public family */
.page-merch .tdr-merch-hero {
  min-height:560px;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  align-items:end;
  gap:clamp(56px,8vw,124px);
  padding-top:calc(var(--header-h) + clamp(96px,10vw,152px));
  padding-bottom:clamp(76px,8vw,116px);
  border-bottom:0;
  position:relative;
  isolation:isolate;
}
.page-merch .tdr-merch-hero::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--tdr-public-border-strong) 20%,var(--tdr-public-border-strong) 80%,transparent);
}
.page-merch .tdr-merch-hero > div:first-child {
  max-width:680px;
}
.page-merch .tdr-merch-hero h1 {
  max-width:none;
  margin:18px 0 0;
  font-size:clamp(4.8rem,7.5vw,8.4rem);
  line-height:.9;
  letter-spacing:-.055em;
  overflow-wrap:normal;
  word-break:normal;
}
.page-merch .tdr-merch-hero__summary {
  max-width:520px;
  padding-top:24px;
  border-top:1px solid var(--tdr-public-border-strong);
}
.page-merch .tdr-merch-hero__summary > p {
  max-width:34ch;
  font-size:clamp(1.05rem,1.35vw,1.3rem);
  line-height:1.55;
}
.page-merch .tdr-merch-hero__summary > span {
  margin-top:22px;
}

/* Catalog — feature stage rather than floating centered card */
.page-merch .tdr-merch-catalog {
  background:#101315;
  padding-top:clamp(72px,8vw,120px);
  padding-bottom:clamp(96px,10vw,152px);
}
.page-merch .tdr-product-grid {
  gap:clamp(36px,4vw,64px);
}
.page-merch .tdr-product-grid--single {
  max-width:none;
  width:100%;
  grid-template-columns:minmax(0,1fr);
}
.page-merch .tdr-product-grid--single .tdr-product-card > a {
  display:grid;
  grid-template-columns:minmax(420px,.95fr) minmax(360px,.75fr);
  align-items:end;
  gap:clamp(52px,7vw,108px);
  max-width:1180px;
  margin-inline:auto;
}
.page-merch .tdr-product-grid--single .tdr-product-card__media {
  width:100%;
  max-width:640px;
  justify-self:end;
  aspect-ratio:4/5;
  background:#0b0d0f;
  border:1px solid rgba(255,255,255,.06);
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy {
  min-height:0;
  padding:0 64px 22px 0;
  align-self:center;
  border-bottom:1px solid var(--tdr-public-border-strong);
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy > span {
  display:block;
  margin-bottom:18px;
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy h2 {
  max-width:12ch;
  margin:0 0 18px;
  font-size:clamp(2.35rem,4vw,4.4rem);
  line-height:.95;
  letter-spacing:-.04em;
  overflow-wrap:normal;
  word-break:normal;
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy p {
  margin-top:18px;
  font-size:clamp(1.15rem,1.5vw,1.45rem);
  font-weight:650;
  color:var(--tdr-public-text);
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy small {
  margin-top:8px;
  letter-spacing:.08em;
}
.page-merch .tdr-product-grid--single .tdr-product-card__copy i {
  right:0;
  top:auto;
  bottom:22px;
}

/* Multi-product catalog remains grid but uses the same editorial card rhythm */
.page-merch .tdr-product-grid:not(.tdr-product-grid--single) .tdr-product-card__copy {
  min-height:174px;
  padding-top:22px;
}

/* Contact band — closer to the site's shared closing CTA language */
.page-merch .tdr-merch-contact {
  min-height:300px;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:48px;
  padding-block:clamp(72px,8vw,108px);
  background:#a60f28;
}
.page-merch .tdr-merch-contact > div {
  max-width:760px;
}
.page-merch .tdr-merch-contact h2 {
  max-width:16ch;
  font-size:clamp(2.4rem,4.2vw,4.6rem);
  line-height:1;
  letter-spacing:-.035em;
}
.page-merch .tdr-merch-contact .button {
  min-width:170px;
  justify-content:center;
}

@media (max-width:1100px) {
  .page-merch .tdr-product-grid--single .tdr-product-card > a {
    grid-template-columns:minmax(320px,.95fr) minmax(300px,.8fr);
    gap:48px;
  }
}

@media (max-width:900px) {
  .page-merch .tdr-merch-hero {
    min-height:0;
    grid-template-columns:1fr;
    gap:42px;
  }
  .page-merch .tdr-merch-hero h1 {
    font-size:clamp(4rem,12vw,6.2rem);
  }
  .page-merch .tdr-merch-hero__summary {
    max-width:640px;
  }
  .page-merch .tdr-product-grid--single .tdr-product-card > a {
    grid-template-columns:1fr;
    max-width:620px;
    gap:36px;
  }
  .page-merch .tdr-product-grid--single .tdr-product-card__media {
    justify-self:stretch;
    max-width:none;
  }
  .page-merch .tdr-product-grid--single .tdr-product-card__copy {
    padding-right:56px;
  }
  .page-merch .tdr-merch-contact {
    grid-template-columns:1fr;
    align-items:start;
  }
}

@media (max-width:600px) {
  .page-merch .tdr-merch-hero {
    padding-top:calc(var(--header-h) + 64px);
    padding-bottom:64px;
  }
  .page-merch .tdr-merch-catalog {
    padding-top:56px;
    padding-bottom:72px;
  }
  .page-merch .tdr-product-grid--single .tdr-product-card__copy h2 {
    font-size:clamp(2.15rem,10vw,3.2rem);
  }
  .page-merch .tdr-merch-contact {
    min-height:0;
    padding-block:64px;
  }
  .page-merch .tdr-merch-contact .button {
    width:100%;
  }
}

/* app/product-system-v1.css */
.admin-size-guide{grid-column:1/-1;display:grid;gap:12px;padding:16px;border:1px solid #d9dde3;border-radius:12px;background:#fff}.admin-size-guide__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.admin-size-guide__head>div{display:grid;gap:4px}.admin-size-guide__head label{font-weight:700}.admin-size-guide__head select{min-width:96px;min-height:44px}.admin-size-guide__rows{display:grid;gap:8px}.admin-size-guide__row{display:grid;grid-template-columns:minmax(90px,.7fr) repeat(4,minmax(90px,1fr)) auto;gap:8px;align-items:center}.admin-size-guide__row input{min-width:0;min-height:44px}.admin-size-guide__add{justify-self:start}.admin-product-toggle{align-content:start}.admin-toggle-row{min-height:44px;display:inline-flex;align-items:center;gap:10px;width:max-content;padding:0 12px;border:1px solid #d9dde3;border-radius:10px;background:#fff}.admin-toggle-row input{width:18px;height:18px;margin:0;accent-color:#b5122b}.admin-toggle-row span{font-weight:700}.tdr-product-specs{display:grid;gap:0;margin:28px 0;border-block:1px solid var(--tdr-public-border)}.tdr-product-specs>div{display:grid;grid-template-columns:minmax(120px,.36fr) minmax(0,1fr);gap:24px;padding:14px 0;border-bottom:1px solid var(--tdr-public-border)}.tdr-product-specs>div:last-child{border-bottom:0}.tdr-product-specs dt{color:var(--tdr-public-text-muted);font-size:var(--tdr-public-type-meta)}.tdr-product-specs dd{margin:0}.tdr-product-stock{display:inline-flex;align-items:center;min-height:32px;margin:4px 0 18px;padding:4px 10px;border:1px solid var(--tdr-public-border);border-radius:999px;font-size:var(--tdr-public-type-small)}.tdr-product-stock.is-out{border-color:#b5122b;color:#f0c7ce}.tdr-product-size-guide{margin-top:34px}.tdr-product-size-guide h2,.tdr-product-care h2,.tdr-product-base h2{margin:0 0 14px;font-size:clamp(1.4rem,2vw,2rem)}.tdr-product-size-guide__table{width:100%;border-collapse:collapse}.tdr-product-size-guide__table th,.tdr-product-size-guide__table td{padding:12px 10px;border-bottom:1px solid var(--tdr-public-border);text-align:left}.tdr-product-care,.tdr-product-base{margin-top:32px}.tdr-product-care p,.tdr-product-base p{white-space:pre-line}.tdr-product-base{padding:20px;border:1px solid var(--tdr-public-border)}@media(max-width:900px){.admin-size-guide__row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-size-guide__row .admin-button{grid-column:1/-1;justify-self:start}}@media(max-width:560px){.admin-size-guide__head{align-items:stretch;flex-direction:column}.admin-size-guide__head select{width:100%}.admin-size-guide__row{grid-template-columns:1fr}.admin-size-guide__row .admin-button{grid-column:auto}.tdr-product-specs>div{grid-template-columns:1fr;gap:4px}.tdr-product-size-guide{overflow-x:auto}.tdr-product-size-guide__table{min-width:620px}}
/* app/motion-system.css */
/*
 * TDR Cinematic Editorial Motion System
 * CSS-first, progressive, and intentionally scoped to the public experience.
 */

:root {
  --tdr-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --tdr-motion-ease-sharp: cubic-bezier(0.4, 0, 0.2, 1);
  --tdr-motion-fast: 220ms;
  --tdr-motion-standard: 520ms;
  --tdr-motion-slow: 820ms;
  --tdr-motion-distance: 32px;
}

.site-shell {
  isolation: isolate;
}

.motion-scroll-progress {
  position: fixed;
  z-index: 1200;
  inset: 0 auto auto 0;
  width: 100%;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, #8f0719, #e31d3b 72%, #f4d7d9);
  box-shadow: 0 0 14px rgb(198 14 42 / 45%);
  transform: scaleX(0);
  transform-origin: left center;
  display: none;
}

@supports (animation-timeline: scroll()) {
  .motion-scroll-progress {
    display: block;
    animation: tdr-motion-scroll-progress linear both;
    animation-timeline: scroll(root);
  }
}

@keyframes tdr-motion-scroll-progress {
  to {
    transform: scaleX(1);
  }
}

.motion-route-curtain {
  position: fixed;
  z-index: 1190;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-110%);
  background:
    linear-gradient(
      100deg,
      transparent 0%,
      rgb(10 10 10 / 92%) 35%,
      rgb(139 5 25 / 30%) 50%,
      rgb(10 10 10 / 92%) 65%,
      transparent 100%
    );
}

.site-shell.is-navigating .motion-route-curtain {
  opacity: 1;
  animation: tdr-motion-route-sweep 760ms var(--tdr-motion-ease) both;
}

@keyframes tdr-motion-route-sweep {
  0% {
    opacity: 0;
    transform: translateX(-110%);
  }

  24% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translateX(110%);
  }
}

/* Below-the-fold editorial reveals. Above-the-fold elements are marked visible
   before the runtime activates, preserving LCP and avoiding hydration flashes. */
.motion-runtime-ready .motion-reveal {
  opacity: 0;
  transform: translate3d(0, var(--tdr-motion-distance), 0);
  transition:
    opacity var(--tdr-motion-standard) var(--tdr-motion-ease),
    transform var(--tdr-motion-slow) var(--tdr-motion-ease);
  transition-delay: calc(var(--motion-order, 0) * 65ms);
  will-change: opacity, transform;
}

.motion-runtime-ready .motion-reveal.is-motion-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
}

/* Homepage opening: movement only, so the hero remains visible and paintable. */
.page-home .tdr-home-hero__media {
  transform-origin: center;
  animation: tdr-motion-hero-frame 1200ms var(--tdr-motion-ease) both;
}

.page-home .tdr-home-hero__media img {
  transform-origin: center;
  animation: tdr-motion-hero-image 1400ms var(--tdr-motion-ease) both;
}

.page-home .tdr-home-hero__identity {
  overflow: clip;
}

.page-home .tdr-home-hero__identity > * {
  animation: tdr-motion-title-rise 760ms var(--tdr-motion-ease) both;
}

.page-home .tdr-home-hero__identity > *:nth-child(2) {
  animation-delay: 80ms;
}

.page-home .tdr-home-hero__bottom > * {
  animation: tdr-motion-content-rise 640ms var(--tdr-motion-ease) both;
}

.page-home .tdr-home-hero__bottom > *:nth-child(2) {
  animation-delay: 70ms;
}

.page-home .tdr-home-hero__bottom > *:nth-child(3) {
  animation-delay: 140ms;
}

@keyframes tdr-motion-hero-frame {
  from {
    transform: scale(1.018);
  }

  to {
    transform: scale(1);
  }
}

@keyframes tdr-motion-hero-image {
  from {
    transform: scale(1.045);
  }

  to {
    transform: scale(1);
  }
}

@keyframes tdr-motion-title-rise {
  from {
    transform: translate3d(0, 18px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes tdr-motion-content-rise {
  from {
    transform: translate3d(0, 12px, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@supports (animation-timeline: scroll()) {
  @media (min-width: 769px) {
    .page-home .tdr-home-hero__scrim {
      animation: tdr-motion-hero-scrim linear both;
      animation-timeline: scroll(root);
      animation-range: 0 75vh;
    }
  }
}

@keyframes tdr-motion-hero-scrim {
  from {
    opacity: 1;
  }

  to {
    opacity: 0.78;
  }
}

/* Cards retain the editorial grid while gaining clear, restrained feedback. */
.public-card,
.contact-intent,
.official-links > a {
  transition:
    transform var(--tdr-motion-standard) var(--tdr-motion-ease),
    border-color var(--tdr-motion-fast) ease,
    background-color var(--tdr-motion-fast) ease,
    box-shadow var(--tdr-motion-standard) var(--tdr-motion-ease);
}

.public-media img {
  transition:
    transform 900ms var(--tdr-motion-ease),
    filter var(--tdr-motion-standard) ease;
  transform-origin: center;
}

.button,
.text-link,
.site-header a,
.official-links > a,
.contact-direct__links a {
  transition:
    color var(--tdr-motion-fast) ease,
    background-color var(--tdr-motion-fast) ease,
    border-color var(--tdr-motion-fast) ease,
    transform var(--tdr-motion-fast) var(--tdr-motion-ease);
}

.button [aria-hidden="true"],
.text-link [aria-hidden="true"],
.official-links > a > :last-child,
.contact-direct__links a i {
  display: inline-block;
  transition: transform var(--tdr-motion-fast) var(--tdr-motion-ease);
}

@media (hover: hover) and (pointer: fine) {
  .public-card:hover,
  .contact-intent:hover,
  .official-links > a:hover {
    transform: translate3d(0, -5px, 0);
    border-color: rgb(204 24 51 / 72%);
    box-shadow: 0 22px 48px rgb(0 0 0 / 24%);
  }

  .public-card:hover .public-media img {
    transform: scale(1.035);
  }

  .button:hover [aria-hidden="true"],
  .text-link:hover [aria-hidden="true"],
  .official-links > a:hover > :last-child,
  .contact-direct__links a:hover i {
    transform: translate3d(4px, -2px, 0);
  }

  .wordmark:hover {
    transform: translate3d(0, -1px, 0);
  }
}

.public-card:active,
.contact-intent:active,
.official-links > a:active,
.button:active {
  transform: scale(0.985);
  transition-duration: 100ms;
}

/* Menu, player, and video are the brand's highest-intent interactions. */
.menu-panel:not([hidden]) .menu-panel__visual {
  animation: tdr-motion-menu-panel 620ms var(--tdr-motion-ease) both;
}

.menu-panel:not([hidden]) .menu-panel__content {
  animation: tdr-motion-menu-content 520ms 80ms var(--tdr-motion-ease) both;
}

.menu-panel:not([hidden]) .menu-panel__nav a {
  animation: tdr-motion-menu-link 460ms var(--tdr-motion-ease) both;
}

.menu-panel:not([hidden]) .menu-panel__nav a:nth-child(2) {
  animation-delay: 45ms;
}

.menu-panel:not([hidden]) .menu-panel__nav a:nth-child(3) {
  animation-delay: 90ms;
}

.menu-panel:not([hidden]) .menu-panel__nav a:nth-child(4) {
  animation-delay: 135ms;
}

.menu-panel:not([hidden]) .menu-panel__nav a:nth-child(5) {
  animation-delay: 180ms;
}

@keyframes tdr-motion-menu-panel {
  from {
    transform: translate3d(-24px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes tdr-motion-menu-content {
  from {
    transform: translate3d(24px, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes tdr-motion-menu-link {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.video-modal {
  animation: tdr-motion-modal-backdrop 260ms ease both;
}

.video-modal__panel {
  transform-origin: center;
  animation: tdr-motion-modal-panel 520ms var(--tdr-motion-ease) both;
}

@keyframes tdr-motion-modal-backdrop {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes tdr-motion-modal-panel {
  from {
    opacity: 0;
    transform: translate3d(0, 20px, 0) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.audio-dock:not([hidden]) {
  animation: tdr-motion-audio-dock 520ms var(--tdr-motion-ease) both;
}

@keyframes tdr-motion-audio-dock {
  from {
    opacity: 0;
    transform: translate3d(0, calc(100% + 18px), 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.cover-play:not(:disabled) span {
  display: inline-block;
  transition:
    transform var(--tdr-motion-fast) var(--tdr-motion-ease),
    filter var(--tdr-motion-fast) ease;
}

@media (hover: hover) and (pointer: fine) {
  .cover-play:not(:disabled):hover span {
    transform: scale(1.12);
    filter: drop-shadow(0 0 12px rgb(218 25 55 / 55%));
  }
}

/* Mobile motion is shorter and shallower to keep touch navigation immediate. */
@media (max-width: 768px) {
  :root {
    --tdr-motion-standard: 400ms;
    --tdr-motion-slow: 580ms;
    --tdr-motion-distance: 20px;
  }

  .motion-scroll-progress {
    height: 1px;
  }

  .page-home .tdr-home-hero__media img {
    animation-duration: 900ms;
  }

  .site-shell.is-navigating .motion-route-curtain {
    animation-duration: 520ms;
  }
}

/* Motion is an enhancement. Every essential state stays fully usable without it. */
@media (prefers-reduced-motion: reduce) {
  .motion-scroll-progress,
  .motion-route-curtain {
    display: none !important;
  }

  .motion-runtime-ready .motion-reveal,
  .motion-runtime-ready .motion-reveal.is-motion-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .page-home .tdr-home-hero__media,
  .page-home .tdr-home-hero__media img,
  .page-home .tdr-home-hero__identity > *,
  .page-home .tdr-home-hero__bottom > *,
  .menu-panel:not([hidden]) .menu-panel__visual,
  .menu-panel:not([hidden]) .menu-panel__content,
  .menu-panel:not([hidden]) .menu-panel__nav a,
  .video-modal,
  .video-modal__panel,
  .audio-dock:not([hidden]) {
    animation: none;
    transform: none;
  }

  .public-card,
  .public-media img,
  .contact-intent,
  .official-links > a,
  .button,
  .text-link,
  .site-header a,
  .contact-direct__links a,
  .cover-play span {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
  }
}
