/* site-links.css */
/* Shared service links and home page introductions. */
.home-preview-body{display:flex;align-items:center;justify-content:space-between;gap:36px}
.home-preview-body p{max-width:42em;color:#bac9db;font-size:16px;line-height:2.2;margin:0}
.home-preview-body .text-link{flex-shrink:0}
.music-services{display:flex;flex-wrap:wrap;gap:12px 18px;margin:-12px 0 36px}
.music-services .social-link{min-height:48px;padding:11px 18px;border:1px solid #c5e1ff45;background:#d3e6f308;gap:10px}
.music-services .social-link span{font-size:15px;color:#edf3fc;white-space:nowrap}
@media(max-width:700px){
 .home-preview-body{align-items:flex-start;flex-direction:column;gap:22px}
 .home-preview-body p{font-size:15px}
 .music-services{gap:10px;margin:0 0 30px}
 .music-services .social-link{padding:10px 12px}
 .music-services .social-link span{font-size:14px}
 .hero .hero-socials{width:calc(100% - 48px);gap:clamp(0px,1vw,6px)}
 .hero .hero-socials .social-link{flex:0 1 44px;min-width:40px}
 .social-dock{right:12px;gap:clamp(4px,1.5vw,9px)}
}


/* cursor-atmosphere.css */
/* Scenery light stays above water; glass gets a separate, gently lit surface. */
.cursor-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;z-index:0;mask-image:linear-gradient(to bottom,#000 0%,#000 calc(var(--cursor-waterline,65vh) - 100px),transparent var(--cursor-waterline,65vh));-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(var(--cursor-waterline,65vh) - 100px),transparent var(--cursor-waterline,65vh))}
.cursor-atmosphere>i{position:absolute;left:0;top:0;display:block;width:min(72vw,880px);height:min(75vh,650px);border-radius:50%;background:radial-gradient(ellipse at 48% 48%,#c5e7ff20 0%,#8acaff13 28%,#75afff08 47%,transparent 70%);will-change:transform}
.menu-dialog>.cursor-atmosphere{z-index:-1;transition:opacity .42s ease}
.inner-page .inner-shell{position:relative}
.cursor-atmosphere.cursor-atmosphere-surface{z-index:2;border-radius:inherit;mask-image:none;-webkit-mask-image:none;contain:paint}
.cursor-atmosphere-surface>i{width:min(68vw,760px);height:min(78vh,660px);background:radial-gradient(ellipse at center,#c5e7ff1c 0%,#8acaff10 30%,#75afff05 50%,transparent 72%)}
.music-window>.cursor-atmosphere{bottom:auto;width:100%}
.cursor-atmosphere.cursor-atmosphere-home-background{bottom:auto;mask-image:none;-webkit-mask-image:none;z-index:1}
@media(hover:hover) and (pointer:fine){
 .hero .tulle-foreground{transform:translate3d(var(--cursor-fabric-x,0px),var(--cursor-fabric-y,0px),0);transition:none}
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-atmosphere{display:none}}


/* frame-light.css */
/* The approved original-plus-glow finish, shared by Home and inner pages.
   Highlights sit on the existing border; no second outline is added. */
:is(.depth>.section,.inner-page .inner-shell)::before{content:'';position:absolute;top:-1px;left:12%;right:30%;height:1px;background:linear-gradient(90deg,transparent,#e5f4ffb8,transparent);filter:drop-shadow(0 0 3px #c4e5ffa0) drop-shadow(0 0 7px #9fccff50);pointer-events:none}
:is(.depth>.section,.inner-page .inner-shell)::after{content:'';position:absolute;bottom:-1px;left:47%;right:12%;height:1px;background:linear-gradient(90deg,transparent,#dceeff85,transparent);filter:drop-shadow(0 0 3px #c4e5ff70) drop-shadow(0 0 7px #9fccff36);pointer-events:none}
.frame-cursor-light{position:absolute;inset:-1px;z-index:3;pointer-events:none}
.music-window>.frame-cursor-light{inset:0;z-index:4;overflow:hidden}
/* Clip the decorative plane to the scrollport. Its border-sized geometry must
   never enlarge the dialog's horizontal or vertical scrollable content. */
.music-window .frame-light-plane{position:absolute;inset:-1px;pointer-events:none}
/* The scrolling dialog clips child pixels on its outside border. Paint the
   bright core on that existing border itself; the child keeps its soft glow.
   These one-pixel layers do not add another outline or move with the content. */
dialog.music-window{
 background-image:
  linear-gradient(90deg,transparent,rgb(210 234 255 / calc(var(--modal-rim-top,0)*.42)) 20%,rgb(242 250 255 / calc(var(--modal-rim-top,0)*.93)) 50%,rgb(210 234 255 / calc(var(--modal-rim-top,0)*.42)) 80%,transparent),
  linear-gradient(90deg,transparent,rgb(210 234 255 / calc(var(--modal-rim-bottom,0)*.42)) 20%,rgb(242 250 255 / calc(var(--modal-rim-bottom,0)*.93)) 50%,rgb(210 234 255 / calc(var(--modal-rim-bottom,0)*.42)) 80%,transparent),
  linear-gradient(180deg,transparent,rgb(210 234 255 / calc(var(--modal-rim-left,0)*.42)) 20%,rgb(242 250 255 / calc(var(--modal-rim-left,0)*.93)) 50%,rgb(210 234 255 / calc(var(--modal-rim-left,0)*.42)) 80%,transparent),
  linear-gradient(180deg,transparent,rgb(210 234 255 / calc(var(--modal-rim-right,0)*.42)) 20%,rgb(242 250 255 / calc(var(--modal-rim-right,0)*.93)) 50%,rgb(210 234 255 / calc(var(--modal-rim-right,0)*.42)) 80%,transparent),
  linear-gradient(125deg,#203148ed,#08121ff5);
 background-size:var(--modal-rim-horizontal,260px) 1px,var(--modal-rim-horizontal,260px) 1px,1px var(--modal-rim-vertical,260px),1px var(--modal-rim-vertical,260px),auto;
 background-position:calc(var(--modal-rim-x,0px) - var(--modal-rim-horizontal,260px)/2) top,calc(var(--modal-rim-x,0px) - var(--modal-rim-horizontal,260px)/2) bottom,left calc(var(--modal-rim-y,0px) - var(--modal-rim-vertical,260px)/2),right calc(var(--modal-rim-y,0px) - var(--modal-rim-vertical,260px)/2),0 0;
 background-origin:border-box,border-box,border-box,border-box,padding-box;
 background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,repeat;
}
.music-window .frame-light-top{top:-8px}.music-window .frame-light-bottom{bottom:-8px}
.music-window .frame-light-left{left:-8px}.music-window .frame-light-right{right:-8px}
.frame-light-edge{position:absolute;display:block;overflow:hidden;pointer-events:none}
.frame-light-top,.frame-light-bottom{left:0;width:100%;height:17px}
.frame-light-top{top:-8px}.frame-light-bottom{bottom:-8px}
.frame-light-left,.frame-light-right{top:0;height:100%;width:17px}
.frame-light-left{left:-8px}.frame-light-right{right:-8px}
.frame-light-edge>i{position:absolute;display:block;opacity:0;filter:drop-shadow(0 0 3px #c4e5ffa0) drop-shadow(0 0 7px #9fccff55);pointer-events:none}
.frame-light-top>i,.frame-light-bottom>i{left:0;top:8px;height:1px;width:var(--frame-light-length,260px);background:linear-gradient(90deg,transparent,#d2eaff6b 20%,#f2faffed 50%,#d2eaff6b 80%,transparent)}
.frame-light-left>i,.frame-light-right>i{top:0;left:8px;width:1px;height:var(--frame-light-length,260px);background:linear-gradient(180deg,transparent,#d2eaff6b 20%,#f2faffed 50%,#d2eaff6b 80%,transparent)}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){
 .frame-cursor-light{display:none}
 dialog.music-window{--modal-rim-top:0!important;--modal-rim-bottom:0!important;--modal-rim-left:0!important;--modal-rim-right:0!important}
}


/* music-window.css */
/* One local detail surface, with the catalogue left in place underneath. */
.release a.music-pointer-return:focus,.featured a.music-pointer-return:focus{outline:none}
@media(max-width:700px), (orientation:landscape) and (max-height:550px) and (max-width:1100px) and (pointer:coarse){
 .inner-shell .catalogue{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
}
.music-window{
 width:min(1080px,calc(100% - 48px));max-width:none;
 max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
 inset:0;margin:auto;padding:0;color:#e6edf7;
 border:1px solid #c4d6e966;border-radius:4px;
 background:linear-gradient(125deg,#203148ed,#08121ff5);
 -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
 box-shadow:0 24px 90px #0008;
 overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;
 scrollbar-color:#a7bfd966 transparent;
 opacity:0;transform:translateY(12px) scale(.985);
 transition:opacity .28s ease,transform .42s cubic-bezier(.2,.7,.2,1);
}
.music-window.is-open{opacity:1;transform:none}
.music-window::backdrop{background:#020a147d;opacity:0;transition:opacity .28s ease}
.music-window.is-open::backdrop{opacity:1}
.music-window-bar{
 position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;
 min-height:58px;padding:6px 20px 6px 30px;border-bottom:1px solid #b5c9e130;
 background:#111f30f2;font:12px var(--serif);letter-spacing:.18em;
}
.music-window-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;background:transparent;color:#dce9f6;transition:color .25s,background .25s;border-radius:2px}
.music-window-close svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:.9}
.music-window-close:hover{color:#fff;background:#d3e6f310}
.music-window :focus-visible{outline:1px solid #d7e9f6;outline-offset:4px}
.music-window-content{padding:clamp(24px,3vw,40px)}
.music-window .release-detail{max-width:none;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(24px,3vw,40px);align-items:start}
.music-window .release-detail>img{width:100%;max-width:none;height:auto;aspect-ratio:1;object-fit:contain;box-shadow:0 12px 36px #0004}
.music-window .release-detail>div{min-width:0}
.music-window .release-detail time{font:14px var(--serif);letter-spacing:.08em}
.music-window .release-detail h2{font-size:clamp(21px,2.7vw,30px);line-height:1.65;margin:14px 0 20px;overflow-wrap:anywhere}
.music-window .release-detail p{font-size:16px;line-height:2}
.music-window .actions{gap:12px;margin-top:26px}
.music-window .listen-link,.music-window .text-link{font-size:14px;min-height:44px;padding:12px 16px}
.music-window [aria-hidden=true]:not(svg):not(.cursor-atmosphere):not(.frame-cursor-light){display:none}
@media(max-width:600px){
 .music-window{width:calc(100% - 28px);max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
 .music-window-bar{padding-left:22px;padding-right:10px;min-height:54px}
 .music-window-content{padding:22px 18px 28px}
 .music-window .release-detail{grid-template-columns:minmax(0,1fr);gap:24px}
 .music-window .release-detail>img{max-width:360px;justify-self:center}
 .music-window .release-detail h2{font-size:22px;margin-bottom:16px}
 .music-window .actions{margin-top:22px}
}
.motion-off .music-window,.motion-off .music-window::backdrop{transition:none;transform:none}
.portrait-window .music-window-content{padding:24px}
.portrait-window picture{display:block}
.portrait-window img{display:block;width:100%;max-width:900px;height:auto;margin:auto}
.portrait-window-title{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

