/* ===== style.css ===== */
:root{--paper:#eeede7;--ink:#20211e;--muted:#65665f;--line:#c9c9c0;--pad:clamp(22px,5vw,88px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:7px}p,h1,h2{margin:0}a:hover{text-decoration:underline;text-underline-offset:6px}.header{padding:22px var(--pad);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}.brand{font-weight:800;letter-spacing:-1.5px;font-size:25px}.brand span{font-size:10px;vertical-align:top;letter-spacing:0;margin-left:3px}nav{display:flex;gap:36px;font-size:12px}nav a:last-child span{margin-left:10px}.hero{padding:45px var(--pad) 28px;min-height:calc(100svh - 74px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.hero-top,.hero-bottom{display:flex;justify-content:space-between;font-size:13px;line-height:1.5}.discipline{width:180px}.hero h1{font-size:clamp(110px,25vw,440px);font-weight:800;line-height:.95;letter-spacing:-.085em;margin-left:-.065em;padding:50px 0 35px;transform:scaleX(1.04);transform-origin:left}.hero-bottom{align-items:center;padding-top:20px}.hero-bottom a{display:flex;gap:70px}.hero-bottom a span{font-size:25px}.section{padding:34px var(--pad) 110px}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:10px;text-transform:uppercase;letter-spacing:1.2px;line-height:1.5}.featured{padding-top:25px}.feature-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:11%;align-items:center;margin-top:55px}.type-art{background:#dadbd1;aspect-ratio:1;position:relative;overflow:hidden;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.art-index,.art-foot{font-size:9px;letter-spacing:1.3px}.type-art>div{font-size:clamp(70px,9.1vw,155px);font-weight:700;letter-spacing:-.08em;line-height:.89;position:relative}.type-art i{font-family:Georgia,serif;font-weight:400}.art-line{display:block;height:1px;background:var(--ink);width:110%;transform:rotate(-22deg);position:absolute;top:48%;left:-5%}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:28px}.feature-copy h2{font-size:clamp(29px,3.5vw,60px);letter-spacing:-.06em;font-weight:500}.feature-note{font-family:Georgia,serif;font-style:italic;font-size:clamp(26px,3vw,45px);line-height:1.2;margin-top:30px}.draft-note{font-size:12px;color:var(--muted);line-height:1.6;margin:32px 0 38px}.text-link{display:inline-flex;gap:30px;font-size:12px;border-bottom:1px solid currentColor;padding-bottom:10px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:55px 0 60px}h2{font-weight:400;letter-spacing:-.055em;line-height:1}.section-heading h2{font-size:clamp(60px,7.2vw,112px)}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}.section-heading p{font-size:12px;line-height:1.6;color:var(--muted);padding-bottom:5px}.work{border-top:1px solid var(--line)}.work:last-child{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:60px 1fr 170px 24px;gap:15px;align-items:center;padding:31px 0}summary::-webkit-details-marker{display:none}.work-index{font-size:10px;color:var(--muted)}.work-title{font-size:clamp(24px,3vw,43px);letter-spacing:-.045em}.work-category{font-size:11px;color:var(--muted)}.work-toggle{font-size:25px;font-weight:300}summary:hover .work-title{font-style:italic}.work-body{padding:0 40px 32px 75px;max-width:700px;font-size:13px;line-height:1.9;color:var(--muted)}.work-body a{margin-top:20px;margin-right:20px}.about{background:#e2e2d9;padding-top:35px}.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;margin-top:80px}.about h2{font-size:clamp(40px,5.5vw,84px);line-height:1.08}.about-copy>p:first-child{font-size:22px;line-height:1.45;letter-spacing:-.025em}.about-secondary{font-size:13px;line-height:1.9;margin-top:25px;color:var(--muted);word-break:keep-all}.practice{border-top:1px solid #bfc0b7;margin-top:55px;padding-top:20px;font-size:11px}.practice>span{color:var(--muted)}.practice p{margin-top:10px}.contact{background:var(--ink);color:var(--paper);padding-top:35px;padding-bottom:55px}.contact .section-label{border-color:#55564f}.contact h2{font-size:clamp(65px,11vw,170px);margin:80px 0}.contact h2>span{display:inline-block;font-size:.8em;margin-left:20px}.contact-bottom{display:flex;justify-content:space-between;gap:25px;font-size:12px;line-height:1.5}.contact-placeholder{color:#b5b6ac}footer{display:flex;align-items:center;justify-content:space-between;padding:32px var(--pad);font-size:10px}footer .brand{font-size:20px}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--paper);z-index:20;padding:12px}.skip:focus{top:10px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(min-width:1700px){.hero h1{font-size:25vw}}@media(max-width:700px){html{scroll-padding-top:70px}.header{padding-top:19px;padding-bottom:19px}.brand{font-size:22px}nav{gap:20px;font-size:11px}nav a:last-child span{display:none}.hero{min-height:calc(82svh - 66px);padding-top:32px}.hero-top{font-size:11px}.discipline{width:auto}.hero h1{font-size:25vw;padding:60px 0}.hero-bottom{font-size:10px}.hero-bottom a{gap:25px}.section{padding-bottom:65px}.section-label{font-size:8px;letter-spacing:.8px;gap:20px}.feature-grid{grid-template-columns:1fr;gap:35px;margin-top:32px}.type-art{padding:20px}.type-art>div{font-size:20vw}.feature-copy h2{font-size:42px}.feature-note{font-size:32px;margin-top:20px}.eyebrow{margin-bottom:15px}.draft-note{margin:22px 0}.section-heading{margin:38px 0 35px;gap:15px;align-items:start}.section-heading h2{font-size:60px}.section-heading p{max-width:115px;font-size:10px;padding-top:8px}summary{grid-template-columns:25px 1fr 20px;gap:10px;padding:25px 0}.work-category{grid-column:2;grid-row:2;font-size:10px}.work-toggle{grid-column:3;grid-row:1 / 3}.work-title{font-size:28px}.work-body{padding-left:35px;padding-right:10px;font-size:12px}.about-grid{grid-template-columns:1fr;gap:35px;margin-top:45px}.about h2{font-size:clamp(38px,8vw,56px)}.about-copy>p:first-child{font-size:20px}.practice{margin-top:30px}.contact h2{font-size:clamp(50px,11.5vw,80px);margin:60px 0}.contact h2>span{margin-left:5px}.contact-bottom{flex-direction:column;gap:15px}footer{gap:10px}footer .brand{font-size:18px}footer>span,footer>a:last-child{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* ===== pages.css ===== */
nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}.page-head{padding-top:80px;padding-bottom:65px}.page-head>h1{font-size:clamp(80px,13vw,190px);font-weight:400;line-height:.95;letter-spacing:-.075em;margin:25px 0 40px}.serif{font-family:Georgia,serif;font-style:italic}.lede{font-size:clamp(16px,1.7vw,24px);line-height:1.65;letter-spacing:-.025em}.music-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:end;margin:65px 0 35px}.music-intro h2{font-size:clamp(44px,6.5vw,105px);line-height:1.04}.music-intro p{font-size:14px;line-height:1.8;margin-bottom:25px;word-break:keep-all}.listen-links{display:flex;flex-wrap:wrap;gap:25px;margin-top:40px}.project-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:35px;row-gap:65px}.project-card{display:block;min-width:0}.project-card:hover{text-decoration:none}.project-card>img,.project-type{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;background:#dadbd1;transition:filter .3s}.project-card:hover>img{filter:brightness(.86)}.project-type{padding:30px;display:flex;align-items:center;font-family:Georgia,serif;font-style:italic;font-size:clamp(25px,4vw,60px);line-height:1.1;overflow-wrap:anywhere}.card-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px;text-transform:uppercase;letter-spacing:.8px;font-size:10px;color:var(--muted)}.project-card h2{font-size:clamp(26px,3vw,44px);margin:14px 0 10px;line-height:1.15}.card-role{font-size:12px;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:25px}.filters button{font:inherit;font-size:11px;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:30px;padding:11px 17px;cursor:pointer}.filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.result-count{font-size:10px;color:var(--muted);margin:22px 0 30px}.detail-eyebrow{margin-top:60px}.page-head>h1.detail-title{font-size:clamp(48px,8vw,120px);overflow-wrap:anywhere}.detail-meta{border-top:1px solid var(--line);padding:20px 0 35px;display:flex;justify-content:space-between;font-size:12px}.detail-image{display:block;width:100%;max-height:700px;object-fit:contain;background:#deded6}.project-description{font-size:18px;line-height:1.9;margin:45px 0 30px;max-width:750px;word-break:keep-all}.music-collections{display:grid;grid-template-columns:1fr 1fr;gap:60px}.music-collections h2{font-size:clamp(40px,5vw,75px);margin:45px 0 25px}.music-collections article>p{font-size:13px;color:var(--muted);margin-bottom:30px}.load-player{display:block;width:100%;min-height:160px;text-align:left;background:#deded4;border:0;padding:25px;margin-bottom:25px;font:inherit;font-size:14px;cursor:pointer}.load-player:hover{background:#d4d5c9}.soundcloud{border:0;display:block;width:100%;height:380px;margin:0 0 25px}.bio-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:70px}.bio-layout h2{font-size:clamp(45px,6vw,90px)}.bio-layout p{font-size:14px;line-height:1.9;margin-bottom:22px;word-break:keep-all}.bio-layout .lede{font-size:22px}.timeline-row{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:22px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.timeline-row span{color:var(--muted);font-size:11px}.home-music{background:#e2e2d9}@media(max-width:700px){nav{gap:14px}.hero{min-height:75svh}.page-head{padding-top:50px;padding-bottom:40px}.music-intro,.bio-layout{grid-template-columns:1fr;gap:30px;margin-top:40px}.project-grid{gap:40px;grid-template-columns:1fr}.music-collections{grid-template-columns:1fr;gap:60px}.detail-meta{gap:20px;line-height:1.7}.detail-eyebrow{margin-top:40px}.project-description{font-size:16px}.timeline-row{grid-template-columns:75px 1fr;gap:15px}.card-meta{font-size:9px}.project-card h2{font-size:32px}.project-type{font-size:40px}.listen-links{gap:20px}.hero h1{padding-top:60px;padding-bottom:60px}}@media(prefers-reduced-motion:reduce){.project-card>img{transition:none}}

/* ===== friendly.css ===== */
:root{--paper:#faf9f6;--ink:#343344;--muted:#666375;--line:#dedbe6;--pad:clamp(22px,5vw,80px)}body{font-family:Arial,'Helvetica Neue',sans-serif;font-size:16px;line-height:1.6}.masthead{position:static;display:flex;flex-direction:column;padding:38px var(--pad) 27px;gap:22px;border:0;background:var(--paper)}.logo-link{display:block;width:min(600px,82vw);line-height:0}.site-logo{width:100%;height:auto;display:block}.masthead nav{gap:38px;font-size:16px}.masthead nav a{padding:6px 3px}.masthead nav a[aria-current=page]{color:#6d52a4;text-decoration-color:#b5a3d4;text-decoration-thickness:2px}.section{max-width:1300px;margin:0 auto;padding-top:30px;padding-bottom:65px}.section-label{font-size:14px;text-transform:none;letter-spacing:.2px;align-items:center;padding-top:16px}.section-label>span:last-child{color:var(--muted)}h1,h2,.page-head>h1{letter-spacing:-.035em;font-weight:500}em,.serif{font-family:inherit;font-style:normal}.home-music{background:transparent}.music-intro{margin:32px 0 20px;grid-template-columns:1fr 1.3fr;gap:8%;align-items:start}.music-intro h2,.section-heading h2{font-size:clamp(34px,4vw,50px);line-height:1.2}.music-intro p{font-size:17px;line-height:1.8;margin-bottom:20px}.text-link{font-size:16px;padding-bottom:5px;gap:15px}.listen-links{gap:12px;margin-top:25px}.listen-links .text-link{font-size:15px;border:1px solid var(--line);border-radius:24px;padding:9px 18px;background:#fff}.listen-links .text-link:hover{background:#eee8f7;text-decoration:none}.section-heading{margin:30px 0;align-items:center}.section-heading p{font-size:15px}.about{background:transparent}.project-grid{gap:45px 30px}.project-card>img,.project-type{border-radius:12px}.project-type{font-family:inherit;font-style:normal;background:#eee8f5;font-size:clamp(25px,3vw,40px)}.card-meta{font-size:14px;text-transform:none;letter-spacing:0;line-height:1.5}.project-card h2{font-size:clamp(24px,2.6vw,32px);margin:10px 0 5px;line-height:1.3}.card-role{font-size:15px}.page-head{padding-top:25px;padding-bottom:35px}.eyebrow{font-size:14px;text-transform:none;letter-spacing:.3px;margin-bottom:18px;color:var(--muted)}.page-head>h1{font-size:clamp(42px,6vw,68px);margin:15px 0 20px;line-height:1.2}.lede{font-size:18px;line-height:1.8}.filters{gap:10px;padding-top:20px}.filters button{font-size:15px;padding:10px 18px}.filters button[aria-pressed=true]{background:#6d568f;border-color:#6d568f}.result-count{font-size:14px;margin:20px 0 25px}.page-head>h1.detail-title{font-size:clamp(34px,5vw,58px)}.detail-meta{font-size:16px}.detail-eyebrow{margin-top:35px}.detail-image{border-radius:12px}.project-description{font-size:18px;margin-top:30px}.music-collections{gap:40px}.music-collections h2{font-size:36px;margin:25px 0 15px}.music-collections article>p{font-size:16px}.load-player{font-size:16px;min-height:100px;background:#eee8f5;border-radius:12px}.load-player:hover{background:#e5dcf0}.bio-layout{margin-top:35px;grid-template-columns:1fr 1.8fr;gap:9%}.bio-layout h2{font-size:40px}.bio-layout p{font-size:17px}.bio-layout .lede{font-size:20px}.timeline-row{font-size:16px;padding:20px 0}.timeline-row span{font-size:15px}.contact{color:var(--ink);background:#eee8f5;border-radius:16px;margin-bottom:25px}.contact .section-label{border-color:#cfc4df}.contact h2{font-size:44px;margin:30px 0}.contact-bottom{font-size:16px}.contact-bottom p{font-size:16px}footer{font-size:14px;max-width:1300px;margin:auto;padding-top:25px;padding-bottom:35px}footer .brand{font-size:22px}.skip{font-size:16px}@media(max-width:700px){.masthead{padding-top:28px;padding-bottom:25px;gap:15px}.logo-link{width:min(540px,96vw)}.masthead nav{font-size:16px;gap:25px}.section{padding-top:20px;padding-bottom:45px}.section-label{font-size:14px;gap:15px}.section-label>span:last-child{max-width:52%;text-align:right}.music-intro,.bio-layout{grid-template-columns:1fr;gap:18px;margin-top:25px}.music-intro h2,.section-heading h2{font-size:34px}.music-intro p{font-size:16px}.section-heading{display:block;margin:25px 0}.section-heading p{max-width:none;font-size:15px;padding:0;margin-top:10px}.project-grid{gap:35px;grid-template-columns:1fr}.card-meta{font-size:14px}.card-role{font-size:15px}.project-card h2{font-size:27px}.page-head>h1{font-size:45px}.eyebrow{font-size:14px}.text-link{font-size:16px}.listen-links{gap:10px}.listen-links .text-link{font-size:15px;padding:8px 13px}.timeline-row{grid-template-columns:85px 1fr;gap:12px;font-size:15px}.timeline-row span{font-size:14px}.bio-layout p{font-size:16px}.contact{border-radius:0}.contact h2{font-size:36px;margin:25px 0}.detail-meta{font-size:15px}.music-collections h2{font-size:30px}footer{flex-wrap:wrap;gap:15px}footer>span,footer>a:last-child{font-size:14px}.page-head{padding-top:20px}.project-type{font-size:30px}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* ===== music-motion.css ===== */
/* Fade duration can be changed in content/site.js. */
.masthead{padding-bottom:70px}.section:first-child{padding-top:24px}.featured-record{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,85px);align-items:center}.release-cover{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}.featured-record>.release-cover{max-width:500px}.release-title{font-size:clamp(36px,5vw,68px);line-height:1.12;overflow-wrap:anywhere;margin:12px 0 20px}.release-artist{font-size:18px;color:var(--muted)}.record-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.square-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;font:inherit;font-size:16px;border:1px solid #b7adc8;border-radius:0;background:transparent;color:var(--ink);cursor:pointer;transition:background-color .2s,color .2s}.square-button:hover{background:#eae2f3;text-decoration:none}.square-button.play-release{background:#725397;color:#fff;border-color:#725397}.square-button.play-release:hover{background:#614582}.square-button:disabled{opacity:.65;cursor:default}.bandcamp-player{border:0;display:block;width:100%;height:180px;margin-top:24px;background:#fff}.release-heading{display:flex;justify-content:space-between;align-items:center;margin:55px 0 25px}.release-heading h2{font-size:26px}.release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.release-card{min-width:0}.release-card:hover{text-decoration:none}.release-card h3{font-size:20px;font-weight:500;letter-spacing:-.02em;margin:16px 0 5px;line-height:1.4}.release-card p{font-size:15px;color:var(--muted);margin:0}.release-card:hover h3{text-decoration:underline;text-underline-offset:5px}.listen-links{margin-top:35px}.listen-links .text-link,.filters button,.load-player,.project-card>img,.project-type,.detail-image,.contact{border-radius:0}.listen-links .text-link{padding:10px 16px;background:transparent}.filters button{padding:10px 16px}.fade-item{transition:opacity var(--fade-duration,650ms) ease;opacity:0}.fade-item.in-view,.fade-item:focus-within{opacity:1}.release-grid[data-releases=all]{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:700px){.masthead{padding-bottom:55px}.section:first-child{padding-top:15px}.featured-record{grid-template-columns:1fr;gap:28px}.featured-record>.release-cover{max-width:460px;margin:auto}.release-title{font-size:38px;margin:8px 0 10px}.release-info .eyebrow{margin-bottom:8px}.record-actions{margin-top:22px}.release-heading{margin-top:40px;gap:15px}.release-heading h2{font-size:25px}.release-grid,.release-grid[data-releases=all]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.release-card h3{font-size:18px;margin-top:12px}.release-card p{font-size:14px}.square-button{font-size:16px}.music-first .listen-links{gap:10px}.release-grid>.release-card:last-child:nth-child(odd){grid-column:auto}}@media(prefers-reduced-motion:reduce){.fade-item{opacity:1!important;transition:none}.square-button{transition:none}}

/* ===== navigation-contact.css ===== */
:root{--page-motion:800ms}.masthead nav{flex-wrap:wrap;justify-content:center}.scroll-cue{display:none}.js.home-entry .masthead{min-height:92svh;position:relative;justify-content:center;padding-top:7svh;padding-bottom:17svh;gap:28px;opacity:1;transition:none}.home-entry .logo-link{animation:logo-enter 950ms ease both}.home-entry .masthead nav{animation:logo-enter 700ms 600ms ease both}.js.home-entry .scroll-cue{position:absolute;display:flex;bottom:35px;left:50%;transform:translateX(-50%);align-items:center;gap:22px;white-space:nowrap;font-size:15px;color:var(--muted);animation:cue-enter 700ms 1100ms ease both}.scroll-cue span{font-size:24px}.js.home-entry:not(.content-ready) main,.js.home-entry:not(.content-ready) footer{opacity:0;pointer-events:none}.js.home-entry.content-ready main{animation:page-unfold var(--page-motion) ease both}.js:not(.home-entry) main{animation:page-unfold var(--page-motion) 100ms ease both;transform-origin:top center}.page-arrival .masthead .logo-link{animation:logo-enter 500ms ease both}.page-arrival .masthead nav{animation:logo-enter 500ms 100ms ease both}.js.page-leaving main{animation:none!important;opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-8px);transition:opacity 220ms ease,clip-path 240ms ease,transform 240ms ease;pointer-events:none}.page-leaving footer{opacity:0;transition:opacity 180ms ease}.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:8%;align-items:start}.contact-info h2{font-size:25px;margin-bottom:20px}.contact-email{display:block;font-size:clamp(20px,2.4vw,30px);letter-spacing:-.02em;margin-bottom:22px;overflow-wrap:anywhere}.contact-info p{font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:25px}#contact-form label{display:flex;flex-direction:column;gap:10px;font-size:15px;margin-bottom:24px}#contact-form input,#contact-form textarea,#contact-form select,#copy-fallback{font:inherit;font-size:16px;line-height:1.6;width:100%;padding:12px 14px;color:var(--ink);background:#fff;border:1px solid #c9c3d3;border-radius:0;min-width:0}#contact-form textarea{resize:vertical}#contact-form input:focus,#contact-form textarea:focus,#contact-form select:focus{outline:2px solid #8468a8;outline-offset:2px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-actions{display:flex;flex-wrap:wrap;gap:12px}.form-note{font-size:14px;color:var(--muted);line-height:1.8;margin-top:18px}.form-status{font-size:15px;line-height:1.8;margin-top:15px;min-height:28px}#copy-fallback{margin-top:20px}@keyframes logo-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes cue-enter{from{opacity:0}to{opacity:1}}@keyframes page-unfold{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(20px)}to{opacity:1;clip-path:inset(0 0 0 0);transform:none}}@media(max-width:700px){.masthead nav{gap:15px 20px}.js.home-entry .masthead{min-height:90svh;padding-top:4svh;padding-bottom:15svh;gap:24px}.js.home-entry .scroll-cue{bottom:28px}.contact-layout{grid-template-columns:1fr;gap:40px}.form-pair{grid-template-columns:1fr;gap:0}.contact-email{font-size:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-entry .logo-link,.home-entry .masthead nav,.page-arrival .masthead .logo-link,.page-arrival .masthead nav,.js.home-entry .scroll-cue,.js main{animation:none!important}.js.home-entry:not(.content-ready) main,.js.home-entry:not(.content-ready) footer{opacity:1;pointer-events:auto}.js.home-entry .masthead{min-height:60svh}.js.page-leaving main{opacity:1;clip-path:none;transform:none;transition:none}}

/* The spacer preserves layout when the original menu becomes fixed. */
.nav-anchor{height:64px;width:100%;flex-shrink:0}
.masthead .nav-anchor nav{height:64px;box-sizing:border-box;align-items:center;padding:10px 20px;border-bottom:1px solid transparent;flex-wrap:nowrap}
.menu-pinned .masthead .nav-anchor nav{position:fixed;top:0;left:0;right:0;width:100%;z-index:100;background:var(--paper);border-bottom-color:var(--line);box-shadow:0 3px 12px #34334408;animation:none;opacity:1;transform:none}
html{scroll-padding-top:84px}
@media(max-width:700px){.masthead .nav-anchor nav{gap:clamp(10px,3vw,20px);padding:10px 12px;font-size:15px}.masthead .nav-anchor nav a{white-space:nowrap}}

/* ===== newsroom.css ===== */
.news-row.has-photo{grid-template-columns:110px 112px minmax(0,1fr);align-items:start;gap:24px}.news-thumbnail{display:block;width:112px;height:84px;object-fit:cover}.news-read-more{display:inline-block;margin-top:16px;font-size:.88rem;color:var(--accent)}.news-article{max-width:850px;margin-inline:auto;padding-top:64px;padding-bottom:100px}.article-back{display:block;margin-bottom:48px}.news-article>.news-date{display:block;margin-bottom:20px}.article-title{font-size:clamp(28px,4vw,46px);line-height:1.5;letter-spacing:-.04em;margin:0 0 24px;overflow-wrap:anywhere}.article-summary{font-size:19px;line-height:1.9;white-space:pre-line;opacity:.72;margin-bottom:36px}.article-cover{display:block;width:100%;max-height:620px;object-fit:contain;margin:36px 0 56px}.article-body{font-size:18px;line-height:1.95;overflow-wrap:anywhere}.article-body p,.article-body ul,.article-body ol{margin:0 0 1.5em}.article-body h2{font-size:1.65em;margin:2em 0 .8em;line-height:1.5}.article-body h3{font-size:1.3em;margin:1.8em 0 .7em}.article-body img{display:block;max-width:100%;height:auto;margin:24px auto}.article-body figure{margin:32px 0}.article-body figcaption{font-size:14px;opacity:.65;text-align:center}.article-body blockquote{margin:24px 0;padding:8px 24px;border-left:2px solid var(--accent)}.article-body a,.article-related{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.article-related{display:inline-block;margin-top:48px}.article-body hr{border:0;border-top:1px solid currentColor;opacity:.15;margin:36px 0}.news-editor{margin:28px 0}.rich-toolbar,.rich-links{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:#f5f4f7;border:1px solid #dddbe3}.rich-toolbar button,.rich-links button,.rich-toolbar select{font:inherit;font-size:13px;padding:7px 10px;border:1px solid #d7d3de;border-radius:0;background:white;color:#383341;cursor:pointer}.rich-toolbar button:hover,.rich-links button:hover{background:#e9e2f3}.rich-links input{font:inherit;font-size:13px;min-width:130px;flex:1;padding:8px;border:1px solid #d7d3de}.rich-content{min-height:360px;border:1px solid #d7d3de;padding:24px;background:white;color:#302d39;outline:none}.rich-content:focus{border-color:#83649e;box-shadow:0 0 0 1px #83649e}.rich-content:empty:before{content:'여기에 기사 본문을 작성하세요…';color:#999}.rich-content img{max-height:420px;object-fit:contain}.rich-content ul,.rich-content ol{padding-left:28px}.news-editor .field-hint{margin-top:12px;line-height:1.7}@media(max-width:650px){.news-row.has-photo{grid-template-columns:80px minmax(0,1fr);gap:14px}.news-row.has-photo .news-date{grid-column:1/-1}.news-thumbnail{width:80px;height:72px}.news-article{padding-top:36px}.article-summary{font-size:17px}.article-body{font-size:17px}.rich-content{padding:16px}.article-back{margin-bottom:32px}}

.news-expand-title,.news-photo,.news-read-more,.news-collapse{font-family:inherit;background:none;border:0;border-radius:0;color:inherit;padding:0;cursor:pointer;text-align:left}.news-expand-title:hover,.news-read-more:hover,.news-collapse:hover{color:var(--accent)}.news-read-more{color:var(--accent)}.news-expanded{grid-column:1/-1;overflow:hidden}.news-expanded[hidden]{display:none}.news-expanded-inner{max-width:760px;margin:12px auto 0;padding:32px 0 12px;border-top:1px solid var(--line)}.expanded-cover{display:block;max-width:100%;max-height:560px;height:auto;margin:0 auto 36px;object-fit:contain}.news-collapse{display:block;margin-top:32px;font-size:15px;color:var(--accent)}.news-expand-title:focus-visible,.news-read-more:focus-visible,.news-photo:focus-visible,.news-collapse:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.news-expanded .article-related{margin-top:24px}.news-row.is-expanded{padding-bottom:36px}

/* ===== editable-theme.css ===== */
:root{--accent:#725397;--accent-soft:color-mix(in srgb,var(--accent) 12%,var(--paper));--accent-ink:white}.logo-link{width:min(var(--logo-size,600px),90vw)}body{font-size:var(--base-font,16px)}.profile-copy{white-space:pre-line;line-height:1.9;font-size:calc(var(--base-font,16px) + 1px);margin-bottom:24px}.language-switch{display:flex;gap:4px;align-items:center;margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}.language-switch button{font:inherit;font-size:12px;cursor:pointer;background:transparent;color:var(--muted);border:0;padding:6px}.language-switch button[aria-pressed=true]{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:5px}.masthead nav a[aria-current=page]{color:var(--accent);text-decoration-color:var(--accent)}.square-button.play-release,.filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.square-button.play-release:hover{background:var(--accent);filter:brightness(.9)}.listen-links .text-link:hover,.load-player,.project-type{background:var(--accent-soft)}.square-button{border-color:var(--accent)}.square-button:hover{background:var(--accent-soft)}.current-position{border-left:3px solid var(--accent);padding:14px 20px;background:var(--accent-soft);font-size:16px;line-height:1.8;margin-top:24px}.admin-link{font-size:12px;color:var(--muted)}.js.home-entry .masthead{min-height:var(--intro-height,92svh)}.home-entry .masthead nav{animation-delay:var(--menu-delay,600ms)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--accent)}.release-grid{margin-top:24px}.release-info .bandcamp-player{margin-top:20px}.detail-image.release-cover{max-width:650px}.masthead nav{gap:25px}.masthead nav>a{font-size:var(--base-font,16px);padding:6px 0}.skip{z-index:200}@media(max-width:700px){.masthead .nav-anchor nav{gap:11px;padding:8px 12px;flex-wrap:wrap;align-content:center}.nav-anchor,.masthead .nav-anchor nav{height:88px}.masthead nav>a{font-size:14px}.language-switch{margin-left:2px;padding-left:8px;gap:1px}.language-switch button{padding:4px;font-size:12px}html{scroll-padding-top:106px}.current-position{font-size:15px}.release-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.logo-link{width:min(var(--logo-size,600px),96vw)}}

.card-role,.section-heading p,.timeline-row{font-size:calc(var(--base-font,16px) - 1px)}.card-meta,.section-label,.eyebrow{font-size:calc(var(--base-font,16px) - 2px)}.text-link,.filters button,.square-button,.contact-info p{font-size:var(--base-font,16px)}

.contact-info #copy-email{margin:0 0 24px;display:flex}.contact-info #email-copy-fallback{display:block;width:100%;padding:12px;margin-top:15px;font:inherit;border:1px solid var(--line);border-radius:0}

/* Keep the masthead mounted while only the page content changes. */
.shell-settled .masthead .logo-link,.shell-settled .masthead nav{animation:none!important;opacity:1;transform:none}
.shell-settled .scroll-cue{visibility:hidden;pointer-events:none}
.js.shell-settled main{animation:none!important;clip-path:none;transform:none;opacity:1;transition:opacity 220ms ease,transform 220ms ease}
.js.shell-settled main.content-swapping{opacity:0;transform:translateY(-6px);pointer-events:none}
.masthead nav>a{position:relative;isolation:isolate;transition:color 200ms ease;text-decoration:none!important}
.masthead nav>a::before{content:"";position:absolute;z-index:-1;inset:0 -10px;background:var(--accent-soft);opacity:0;transition:opacity 220ms ease}
.masthead nav>a:hover,.masthead nav>a:focus-visible{color:var(--accent)}
.masthead nav>a:hover::before,.masthead nav>a:focus-visible::before{opacity:.8}
.masthead nav>a::after{content:none!important}
.nav-progress{position:fixed;left:0;right:0;height:2px;background:var(--accent);z-index:150;pointer-events:none;will-change:transform,opacity}
.nav-progress[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.js.shell-settled main,.masthead nav>a,.masthead nav>a::before{transition:none!important}.nav-progress{display:none}}

/* The full-height intro belongs only to the first arrival. */
.js.home-entry.shell-settled .masthead{min-height:0;justify-content:flex-start;padding-top:38px;padding-bottom:32px;gap:22px;overflow-anchor:none}
.js.home-entry.shell-settled .scroll-cue{display:none}
@media(max-width:700px){.js.home-entry.shell-settled .masthead{padding-top:24px;padding-bottom:24px;gap:16px}}

/* On Home, scrolling back to the top brings back the full opening. */
.js.home-entry.shell-settled.home-restored .masthead{min-height:max(100svh,var(--intro-height));justify-content:center;padding-top:7svh;padding-bottom:17svh;gap:28px}
.js.home-entry.shell-settled.home-restored .scroll-cue{display:flex;visibility:visible;pointer-events:auto;animation:none;opacity:1}
@media(max-width:700px){.js.home-entry.shell-settled.home-restored .masthead{padding-top:4svh;padding-bottom:15svh;gap:24px}}

.archive-jump{display:inline-block;font-size:16px;color:var(--accent);margin-top:20px;border-bottom:1px solid var(--accent);padding-bottom:4px}
.work-controls{padding-top:0;padding-bottom:24px}.work-controls .filters{padding-top:0}.work-controls .result-count{margin-bottom:0}
.archive-heading{font-size:clamp(26px,3vw,36px);line-height:1.3;margin:0 0 30px}
.featured-works{padding-bottom:70px}.work-archive{scroll-margin-top:96px}.archive-intro{font-size:16px;color:var(--muted);line-height:1.8;margin-bottom:36px}
.archive-year{display:grid;grid-template-columns:130px minmax(0,1fr);gap:30px;border-top:1px solid var(--line);padding:28px 0 12px}
.archive-year-title{font-size:25px;font-weight:500;margin:0;line-height:1.5}.archive-list{list-style:none;margin:0;padding:0}
.archive-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:22px;padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.archive-row:last-child{border-bottom:0;margin-bottom:0}
.archive-date{font-size:15px;color:var(--muted);padding-top:3px}.archive-title{font-size:20px;line-height:1.5;display:inline-block}.archive-client{font-size:15px;color:var(--muted);line-height:1.6;margin-top:5px}.archive-role{font-size:15px;line-height:1.6;margin-top:3px}
@media(max-width:700px){.archive-year{grid-template-columns:1fr;gap:22px;padding-top:23px}.archive-row{grid-template-columns:85px minmax(0,1fr);gap:12px}.archive-title{font-size:18px}.archive-date{font-size:14px}.featured-works{padding-bottom:45px}.work-archive{scroll-margin-top:110px}}

.home-news{padding-top:20px;padding-bottom:65px}.news-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:28px}.news-heading h2{font-size:clamp(30px,4vw,46px);line-height:1.2}.news-heading>a{font-size:15px}
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.news-row{display:grid;grid-template-columns:125px minmax(0,1fr);gap:25px;padding:24px 0;border-bottom:1px solid var(--line)}.news-date{font-size:15px;color:var(--muted);padding-top:3px}.news-title{font-size:20px;line-height:1.6;overflow-wrap:anywhere}.news-title:hover{color:var(--accent)}.news-summary{font-size:16px;line-height:1.8;color:var(--muted);margin-top:7px;white-space:pre-line}
@media(max-width:700px){.home-news{padding-bottom:45px}.news-row{grid-template-columns:1fr;gap:8px;padding:20px 0}.news-date{font-size:14px;padding:0}.news-title{font-size:18px}.news-summary{font-size:15px}.news-heading{gap:12px}.news-heading>a{font-size:14px}}

/* Give each part of Home its own breathing room and a short divider. */
main>.home-section{position:relative;padding-top:32px;padding-bottom:52px}
main>.home-section~.home-section{padding-top:72px}
main>.home-section~.home-section::before{content:"";position:absolute;top:12px;left:var(--pad);width:56px;height:1px;background:var(--line)}
.home-section>.release-heading,.home-section>.section-heading,.home-section>.music-intro{margin-top:0}
.home-releases>.release-heading h2{font-size:clamp(30px,4vw,46px);line-height:1.2}
@media(max-width:700px){main>.home-section{padding-top:20px;padding-bottom:36px}main>.home-section~.home-section{padding-top:52px}main>.home-section~.home-section::before{top:8px;width:44px}}

.logo-surface{position:relative;display:block;width:100%;transform-origin:center;transform-style:preserve-3d;backface-visibility:hidden}
.logo-link{touch-action:pan-y;-webkit-user-select:none;user-select:none}.logo-link .site-logo{pointer-events:none;-webkit-user-drag:none}
.logo-shine{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 220ms ease;background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,40%),#ffffff85 0%,#ffffff28 25%,transparent 65%);mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mix-blend-mode:screen}
.logo-lit .logo-shine{opacity:.32}.logo-held .logo-shine{opacity:.4}
@media(hover:hover) and (pointer:fine){.home-entry:not(.shell-settled) .logo-link,.home-restored .logo-link{cursor:grab}.logo-link.logo-held{cursor:grabbing}}
@media(prefers-reduced-motion:reduce){.logo-surface{transform:none!important}.logo-shine{display:none}}

footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:24px 36px;border-top:1px solid var(--line);padding-top:34px;padding-bottom:36px}
.footer-meta{display:flex;flex-direction:column;gap:12px}.footer-copyright{font-size:13px;color:var(--muted);white-space:nowrap}
.footer-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 20px;font-size:15px;line-height:1.6}.footer-social-link{display:inline-flex;align-items:center;min-height:36px;transition:color 180ms ease}.footer-social-link:hover{color:var(--accent)}
.footer-contact{font-size:15px;line-height:36px;white-space:nowrap}footer>.admin-link{grid-column:1/-1}
@media(max-width:700px){footer{grid-template-columns:1fr;gap:18px;padding-top:28px;padding-bottom:28px}.footer-meta{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.footer-socials{justify-content:flex-start;gap:4px 18px}.footer-contact{justify-self:start}.footer-copyright{font-size:12px}}

.footer-socials{gap:6px 10px}.footer-social-link{width:44px;height:44px;min-height:44px;justify-content:center;border:1px solid transparent;border-radius:0;color:var(--muted);transition:color 180ms ease,background-color 180ms ease,border-color 180ms ease}
.footer-social-link svg{display:block;width:24px;height:24px;flex:none}.footer-social-link:hover,.footer-social-link:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:var(--line);text-decoration:none}
@media(max-width:700px){.footer-socials{gap:6px 8px;justify-content:flex-start}}

/* ===== fonts.css ===== */
@font-face{font-family:'NanumSquareNeo';src:url('fonts/NanumSquareNeo-Variable.woff2') format('woff2');font-weight:300 900;font-style:normal;font-display:swap}body,button,input,textarea,select,h1,h2,h3,em,.serif,.project-type{font-family:'NanumSquareNeo','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
/* ===== theme.css ===== */
html{color-scheme:light;--surface:#ffffff;--control-line:#c9c3d3}
html[data-theme=dark]{color-scheme:dark;--paper:var(--dark-paper,#1b1c20)!important;--ink:var(--dark-ink,#ececef)!important;--muted:#afb0ba;--line:#3a3c45;--accent:var(--dark-accent,#b39acb)!important;--accent-ink:#141519!important;--accent-soft:color-mix(in srgb,var(--accent) 13%,var(--paper));--surface:#24252c;--control-line:#484a55}
.theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:0;border:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);cursor:pointer;align-self:center}
.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.theme-toggle svg{position:absolute;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:opacity 350ms ease,transform 450ms ease}
.theme-sun{opacity:0;transform:rotate(-40deg) scale(.7)}.theme-moon{opacity:1;transform:none}
[data-theme=dark] .theme-sun{opacity:1;transform:none}[data-theme=dark] .theme-moon{opacity:0;transform:rotate(35deg) scale(.7)}
html[data-theme=dark] .listen-links .text-link,html[data-theme=dark] #contact-form input,html[data-theme=dark] #contact-form textarea,html[data-theme=dark] #contact-form select,html[data-theme=dark] #copy-fallback,html[data-theme=dark] #email-copy-fallback{background:var(--surface);color:var(--ink);border-color:var(--control-line)}
html[data-theme=dark] .load-player,html[data-theme=dark] .project-type,html[data-theme=dark] .contact{background:var(--accent-soft);color:var(--ink)}
html[data-theme=dark] .square-button,html[data-theme=dark] .filters button{border-color:var(--control-line);color:var(--ink)}
html[data-theme=dark] .square-button.play-release,html[data-theme=dark] .filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
html[data-theme=dark] .square-button:hover,html[data-theme=dark] .filters button:hover,html[data-theme=dark] .listen-links .text-link:hover,html[data-theme=dark] .load-player:hover{background:var(--accent-soft);color:var(--ink)}
html[data-theme=dark] .square-button.play-release:hover,html[data-theme=dark] .filters button[aria-pressed=true]:hover{background:var(--accent);color:var(--accent-ink)}
html.theme-changing,html.theme-changing body,html.theme-changing header,html.theme-changing nav,html.theme-changing footer,html.theme-changing p,html.theme-changing h1,html.theme-changing h2,html.theme-changing h3,html.theme-changing a,html.theme-changing button,html.theme-changing input,html.theme-changing textarea,html.theme-changing select,html.theme-changing time,html.theme-changing span,html.theme-changing .current-position,html.theme-changing .news-row,html.theme-changing .news-list,html.theme-changing .archive-row,html.theme-changing .archive-year{transition:background-color 550ms ease,color 550ms ease,border-color 550ms ease,box-shadow 550ms ease}
html.theme-changing .home-section::before{transition:background-color 550ms ease}
@media(max-width:700px){.masthead .nav-anchor nav{row-gap:6px}.theme-toggle{flex-basis:32px;width:32px;height:32px;min-height:32px}}
@media(prefers-reduced-motion:reduce){.theme-toggle svg,html.theme-changing *{transition:none!important}}

html.js.home-entry.theme-changing .masthead{transition:background-color 550ms ease,color 550ms ease,border-color 550ms ease!important}
html[data-theme=dark] #contact-form input:focus,html[data-theme=dark] #contact-form textarea:focus,html[data-theme=dark] #contact-form select:focus{outline-color:var(--accent)}

/* ===== decoration.css ===== */
/* Soft artwork colours and restrained depth across the public site. */
:root{--site-ambient-a:#a8dee8;--site-ambient-b:var(--accent);--art-shadow:0 20px 44px #273b5819,0 3px 9px #2637550c;--art-shadow-hover:0 28px 58px #273b5829,0 5px 14px #26375513;--art-edge:#ffffff70;--panel-shadow:0 15px 40px #273b580b}
[data-theme=dark]{--art-shadow:0 22px 54px #00000050,0 0 28px #94d4ee08;--art-shadow-hover:0 30px 68px #00000068,0 0 34px #94d4ee10;--art-edge:#d5f2ff20;--panel-shadow:0 16px 44px #0000001f}
main>.section{position:relative;isolation:isolate;--ambient-a:var(--site-ambient-a);--ambient-b:var(--site-ambient-b)}
main>.section::after{content:"";position:absolute;z-index:-1;pointer-events:none;left:0;right:0;top:0;height:min(100%,620px);background:radial-gradient(ellipse at 28% 40%,color-mix(in srgb,var(--ambient-a) 25%,transparent),transparent 59%),radial-gradient(ellipse at 72% 54%,color-mix(in srgb,var(--ambient-b) 13%,transparent),transparent 61%);filter:blur(28px);opacity:.65}
main>.music-first::after{top:-18px;bottom:-8px;height:auto;opacity:1;background:radial-gradient(ellipse at 28% 45%,color-mix(in srgb,var(--ambient-a) 42%,transparent),transparent 55%),radial-gradient(ellipse at 68% 60%,color-mix(in srgb,var(--ambient-b) 23%,transparent),transparent 58%)}
main>.home-news::after,main>.work-archive::after,main>.work-controls::after{opacity:.3}
[data-theme=dark] main>.section::after{opacity:.5}[data-theme=dark] main>.music-first::after{opacity:.85}[data-theme=dark] main>.home-news::after,[data-theme=dark] main>.work-archive::after,[data-theme=dark] main>.work-controls::after{opacity:.25}
.masthead{position:relative;isolation:isolate}.masthead::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 45% 40%,color-mix(in srgb,var(--site-ambient-a) 13%,transparent),transparent 54%),radial-gradient(ellipse at 64% 44%,color-mix(in srgb,var(--site-ambient-b) 8%,transparent),transparent 54%);opacity:.65}
.release-card,.project-card{position:relative;isolation:isolate;--ambient-a:var(--site-ambient-a)}
.release-card::before,.project-card::before{content:"";position:absolute;z-index:-1;inset:0 2% 24%;pointer-events:none;background:radial-gradient(ellipse,color-mix(in srgb,var(--ambient-a) 24%,transparent),transparent 68%);filter:blur(22px);opacity:.5}
.release-card>.release-cover,.project-card>img,.project-type,.detail-image,.featured-record>.release-cover{border:1px solid var(--art-edge);box-shadow:var(--art-shadow);transition:transform 450ms cubic-bezier(.2,.65,.3,1),box-shadow 450ms ease;backface-visibility:hidden}
.detail-image{background:transparent}.project-card:hover>img{filter:none}
@media(hover:hover) and (pointer:fine){.release-card:hover>.release-cover,.release-card:focus-visible>.release-cover,.project-card:hover>img,.project-card:focus-visible>img,.project-card:hover>.project-type{transform:translateY(-6px);box-shadow:var(--art-shadow-hover)}.featured-record>.release-cover{transform:perspective(1200px) rotateY(-3deg) rotateX(1deg)}.featured-record>.release-cover:hover{transform:perspective(1200px) translateY(-7px) rotateY(-1deg) rotateX(0);box-shadow:var(--art-shadow-hover)}}
.news-row,.archive-row,.timeline-row{position:relative;isolation:isolate}.news-row::before,.archive-row::before,.timeline-row::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 7%,transparent) 35%,transparent);opacity:0;transition:opacity 250ms ease}
.news-row:hover::before,.news-row:focus-within::before,.archive-row:hover::before,.archive-row:focus-within::before,.timeline-row:hover::before{opacity:1}
#contact-form{padding:clamp(20px,3vw,34px);border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 55%,transparent);box-shadow:var(--panel-shadow)}
.current-position,.load-player{box-shadow:var(--panel-shadow)}.load-player{border:1px solid var(--line)}
footer{background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--site-ambient-a) 9%,transparent),transparent 65%)}
@media(max-width:700px){main>.section::after{filter:blur(20px);opacity:.45}main>.music-first::after{top:0;opacity:.8}.release-card>.release-cover,.project-card>img,.project-type,.detail-image,.featured-record>.release-cover{box-shadow:0 12px 30px #273b5815}[data-theme=dark] .release-card>.release-cover,[data-theme=dark] .project-card>img,[data-theme=dark] .detail-image,[data-theme=dark] .featured-record>.release-cover{box-shadow:0 15px 36px #00000040}#contact-form{padding:20px}}
@media(prefers-reduced-motion:reduce){.release-card>.release-cover,.project-card>img,.project-type,.detail-image,.featured-record>.release-cover{transform:none!important;transition:none}.news-row::before,.archive-row::before,.timeline-row::before{transition:none}}

/* The opening logo rests in a soft purple and blue halo. */
.logo-link{position:relative;isolation:isolate}
.logo-link::before{content:"";position:absolute;inset:-32% 0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 39% 44%,#aa8edb2e,transparent 58%),radial-gradient(ellipse at 64% 60%,#85c8f02e,transparent 60%);filter:blur(32px);transition:opacity 450ms ease}
.home-entry:not(.shell-settled) .logo-link::before,.home-restored .logo-link::before{opacity:.7}
.home-entry:not(.shell-settled) .logo-link.logo-lit::before,.home-restored .logo-link.logo-lit::before{opacity:.9}
[data-theme=dark] .logo-link::before{background:radial-gradient(ellipse at 39% 44%,#a68bd43b,transparent 58%),radial-gradient(ellipse at 64% 60%,#6caedb33,transparent 60%)}
.home-entry:not(.shell-settled) .logo-link .site-logo,.home-restored .logo-link .site-logo{filter:drop-shadow(0 7px 16px #8169a90a)}
[data-theme=dark].home-entry:not(.shell-settled) .logo-link .site-logo,[data-theme=dark].home-restored .logo-link .site-logo{filter:drop-shadow(0 6px 18px #a68bd415)}
@media(max-width:700px){.logo-link::before{inset:-25% 0;filter:blur(24px)}}
@media(prefers-reduced-motion:reduce){.logo-link::before{transition:none}}

/* A transparent sheen clipped to the logo itself, with no rectangular glass panel. */
.logo-shine{opacity:.12;background-image:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,43%),#ffffff9c 0%,#ffffff28 28%,transparent 62%),linear-gradient(112deg,transparent 33%,#ffffff06 42%,#ffffffb0 48%,#ffffff24 51%,transparent 58%);background-size:100% 100%,220% 180%;background-position:center,var(--reflection-x,50%) 50%;background-repeat:no-repeat;transition:opacity 350ms ease;mix-blend-mode:screen;}
.logo-lit .logo-shine{opacity:.46}.logo-held .logo-shine{opacity:.56}
[data-theme=dark] .logo-shine{opacity:.1}[data-theme=dark] .logo-lit .logo-shine{opacity:.4}[data-theme=dark] .logo-held .logo-shine{opacity:.48}
.logo-surface{will-change:auto}.logo-lit .logo-surface,.logo-held .logo-surface{will-change:transform}
@media(prefers-reduced-motion:reduce){.logo-shine{display:none}.logo-surface{will-change:auto!important}}

/* One shared ambient layer lets the opening and first content blend without a seam. */
#site{position:relative;isolation:isolate}
#site::before{content:"";position:absolute;z-index:-1;pointer-events:none;top:0;left:0;right:0;height:max(900px,140svh);background:radial-gradient(ellipse at 28% 48%,color-mix(in srgb,var(--site-ambient-a) 17%,transparent) 0%,transparent 68%),radial-gradient(ellipse at 74% 54%,color-mix(in srgb,var(--site-ambient-b) 10%,transparent) 0%,transparent 70%)}
.masthead{background:transparent}
.masthead::after,main>.section:first-child::after{display:none}
@media(max-width:700px){#site::before{height:max(1000px,150svh)}}

/* ===== cursor.css ===== */
/* Soft disc; magnetic controls; corner marks on album and work cards. */
.ruqoa-cursor-dot{display:none}
.ruqoa-cursor-ring{position:fixed;left:0;top:0;pointer-events:none!important;z-index:9999;opacity:0;width:14px;height:14px;border:0;border-radius:50%;background:color-mix(in srgb,var(--accent) 30%,transparent);contain:layout style;will-change:left,top;transform:translate(-50%,-50%) rotate(var(--cursor-angle,0deg)) scale(var(--cursor-stretch,1),var(--cursor-squash,1));transition:width 320ms cubic-bezier(.2,.85,.25,1.08),height 320ms cubic-bezier(.2,.85,.25,1.08),border-radius 280ms ease,background-color 240ms ease,border-color 240ms ease}
.cursor-enabled .ruqoa-cursor-ring{opacity:1}
.cursor-enabled,.cursor-enabled *{cursor:none!important}
.cursor-stuck .ruqoa-cursor-ring{width:var(--cursor-width);height:var(--cursor-height);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:5px;background:transparent;transform:translate(-50%,-50%)}
.cursor-stuck.cursor-card .ruqoa-cursor-ring{border:0;border-radius:0;background:linear-gradient(var(--accent),var(--accent)) left top/14px 1px,linear-gradient(var(--accent),var(--accent)) left top/1px 14px,linear-gradient(var(--accent),var(--accent)) right top/14px 1px,linear-gradient(var(--accent),var(--accent)) right top/1px 14px,linear-gradient(var(--accent),var(--accent)) left bottom/14px 1px,linear-gradient(var(--accent),var(--accent)) left bottom/1px 14px,linear-gradient(var(--accent),var(--accent)) right bottom/14px 1px,linear-gradient(var(--accent),var(--accent)) right bottom/1px 14px;background-repeat:no-repeat}
.cursor-stuck.cursor-down .ruqoa-cursor-ring{transform:translate(-50%,-50%) scale(.98)}
[data-magnetic-hover]{position:relative;isolation:isolate}
html body [data-magnetic-hover]>.magnetic-hover-fill{position:absolute;inset:-4px;z-index:-1;pointer-events:none!important;border-radius:5px;opacity:0;background:color-mix(in srgb,var(--accent) 11%,transparent);margin:0!important;padding:0!important;min-width:0;min-height:0;max-width:none;max-height:none;display:block;box-sizing:border-box;border:0;box-shadow:none;transition:transform 240ms cubic-bezier(.2,.8,.3,1);will-change:transform,opacity}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.ruqoa-cursor-dot,.ruqoa-cursor-ring,.magnetic-hover-fill{display:none}.cursor-enabled,.cursor-enabled *{cursor:revert!important}}
@media print{.ruqoa-cursor-dot,.ruqoa-cursor-ring,.magnetic-hover-fill{display:none}}

/* Keep a large target from stretching or flipping while shrinking back. */
.ruqoa-cursor-ring{transition:width 360ms cubic-bezier(.22,.7,.3,1),height 360ms cubic-bezier(.22,.7,.3,1),border-radius 300ms ease,background-color 240ms ease,border-color 240ms ease}
.cursor-releasing:not(.cursor-stuck) .ruqoa-cursor-ring{transform:translate(-50%,-50%)!important;background:transparent!important;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)!important;border-radius:50%;transition:width 360ms cubic-bezier(.22,.7,.3,1),height 360ms cubic-bezier(.22,.7,.3,1),border-radius 300ms ease,background-color 180ms ease,border-color 180ms ease}

/* Start the idle fill fade as soon as the pointer leaves a target. */
body:not(.cursor-stuck) .ruqoa-cursor-ring{background:transparent}
.cursor-idle-fill{position:absolute;inset:0;border-radius:inherit;pointer-events:none!important;background:color-mix(in srgb,var(--accent) 30%,transparent);opacity:1}

/* Logo dragging keeps the idle disc rather than reverting to a native hand. */
.cursor-down:not(.cursor-stuck) .ruqoa-cursor-ring{transform:translate(-50%,-50%) scale(.85)}

/* ===== interaction.css ===== */
/* Shared public controls and gentle page transition. */
.masthead nav>a::before{display:none!important}
.masthead nav>a,.masthead nav>a:hover,.masthead nav>a:focus-visible,.language-switch button,.language-switch button:hover,.theme-toggle,.theme-toggle:hover,.theme-toggle:focus-visible,footer a,footer a:hover,footer a:focus-visible{background:transparent!important;box-shadow:none!important;border-color:transparent!important}
.masthead nav>a:hover::after{opacity:0}
.masthead nav>a[aria-current=page]::after{opacity:1}
footer{background:none!important}
footer .footer-social-link:hover,footer .footer-social-link:focus-visible{background:transparent!important;border-color:transparent!important}
main{transition:opacity 180ms ease,filter 180ms ease;filter:blur(0)}
main.content-swapping{filter:blur(3px)}
@media(prefers-reduced-motion:reduce){main{filter:none!important;transition:none!important}}
/* Shared control treatment on every public page. */
html body :is(button,.square-button,.listen-links .text-link,.load-player,.filters button,.archive-jump,.news-read-more,.news-collapse){background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--ink)!important;filter:none!important}
html body :is(button,.square-button,.listen-links .text-link,.load-player,.filters button,.archive-jump,.news-read-more,.news-collapse):is(:hover,:focus-visible){background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--accent)!important}
html body :is(.filters button,.language-switch button)[aria-pressed=true]{background:transparent!important;color:var(--accent)!important;font-weight:700;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
html body .listen-links .text-link{border-radius:0}
html body .square-button.play-release{font-weight:600;color:var(--accent)!important}
html body .current-position{background:transparent!important}
html body #contact-form{background:transparent!important;box-shadow:none!important}
html body :is(.news-row,.archive-row,.timeline-row)::before{display:none!important}
html body .project-type{background:transparent!important;border:1px solid var(--line)}
/* Inputs keep their own surface and focus outline for readability. */

/* Listening links anchored beside the trigger; no modal overlay or layout shift. */
.listening-popover{position:fixed;z-index:600;width:300px;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 8px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 10px 30px #00000012}
.listening-heading{display:grid;grid-template-columns:36px minmax(0,1fr) 28px;gap:10px;align-items:center;padding-bottom:14px}.listening-art{display:block;width:36px;height:36px;object-fit:cover}.listening-heading .project-type{width:36px;height:36px;font-size:8px;padding:2px;overflow:hidden}.listening-title{font-size:15px;line-height:1.5;font-weight:600;letter-spacing:-.02em;overflow-wrap:anywhere}.listening-close{font:inherit;font-size:22px;line-height:1;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:0;padding:0;background:transparent;color:var(--muted);cursor:pointer}
.listening-links{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.listening-links li{border-bottom:1px solid var(--line)}.listening-links li:last-child{border-bottom:0}.listening-platform{display:grid;grid-template-columns:21px minmax(0,1fr) 16px;gap:12px;align-items:center;min-height:48px;padding:10px 5px;font-size:14px;text-decoration:none!important;color:var(--ink)}.listening-platform>svg{width:21px;height:21px}.listening-platform:hover{color:var(--accent)}.listening-arrow{font-size:15px;color:var(--muted);text-align:right}
@media(max-width:650px){.listening-popover{box-shadow:0 8px 24px #00000015}.listening-platform{min-height:48px}}

/* Airy, softly rounded glass only on the anchored listening menu. */
.listening-popover{border-radius:14px;background:color-mix(in srgb,var(--paper) 22%,transparent);backdrop-filter:blur(32px) saturate(120%);-webkit-backdrop-filter:blur(32px) saturate(120%);border-color:#ffffff9c;box-shadow:inset 0 1px 0 #ffffffb0,0 14px 40px #59608014}
.listening-links{border-top-color:color-mix(in srgb,var(--line) 38%,transparent)}
.listening-links li{border-bottom-color:color-mix(in srgb,var(--line) 30%,transparent)}
.listening-art{border-radius:4px}.listening-platform{border-radius:7px}
html[data-theme=dark] .listening-popover{background:color-mix(in srgb,var(--paper) 32%,transparent);border-color:#ffffff28;box-shadow:inset 0 1px 0 #ffffff24,0 14px 40px #00000026}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.listening-popover,html[data-theme=dark] .listening-popover{background:var(--paper)}}

/* Optional compilation credit, separate from the track title. */
.release-compilation,.detail-compilation,.listening-compilation{color:var(--muted);line-height:1.6;font-weight:400;}
.release-compilation{font-size:14px;margin-top:6px;}
.detail-compilation{font-size:16px;margin:12px 0 28px;}
.listening-title-group{min-width:0;}
.listening-compilation{font-size:12px;margin:3px 0 0;overflow-wrap:anywhere;}

/* Subtle scroll-only softness; navigation and the logo stay crisp. */
@media (pointer:fine) and (prefers-reduced-motion:no-preference){main>.section{filter:blur(var(--scroll-blur,0px));}}

/* Entry timing shares the administrator's delay while preserving the logo-first sequence. */
.home-entry .logo-link{animation-delay:var(--entry-delay,80ms)}
.home-entry .masthead nav{animation-delay:calc(var(--menu-delay,800ms) + var(--entry-delay,80ms))}
.js.home-entry .scroll-cue{animation-delay:calc(1100ms + var(--entry-delay,80ms))}

/* Brand colours belong to external service links, not the site's navigation. */
a[data-platform=soundcloud]{--platform-brand:#ff5500;--platform-text:#bb4000;--platform-dark:#ff9059}
a[data-platform=youtube]{--platform-brand:#ff0033;--platform-text:#d9002b;--platform-dark:#ff657c}
a[data-platform=spotify]{--platform-brand:#1ed760;--platform-text:#147d3b;--platform-dark:#43e57c}
a[data-platform=bandcamp]{--platform-brand:#629aa9;--platform-text:#326c7c;--platform-dark:#8fc3d0}
a[data-platform=instagram]{--platform-brand:#d62976;--platform-text:#bd2267;--platform-dark:#f48bb9}
a[data-platform=x]{--platform-brand:#14171a;--platform-text:#14171a;--platform-dark:#f1f3f5}
a[data-platform=apple-music]{--platform-brand:#fa243c;--platform-text:#d3152c;--platform-dark:#ff8291}
html body a[data-platform]{--accent:var(--platform-brand);color:var(--platform-rest,var(--ink))!important;transition:color 200ms ease}
footer a[data-platform]{--platform-rest:var(--muted)}
html body a[data-platform]>svg{color:inherit;transition:color 200ms ease}
html body a[data-platform]:is(:hover,:focus-visible){color:var(--platform-text)!important}
html body a[data-platform]:is(:hover,:focus-visible)>svg{color:var(--platform-brand)}
html[data-theme=dark] body a[data-platform]{--platform-brand:var(--platform-dark)}
html[data-theme=dark] body a[data-platform]:is(:hover,:focus-visible){color:var(--platform-dark)!important}
.listening-platform[data-platform] .listening-arrow{color:currentColor;opacity:.65}

/* Small, non-interactive explanations for the compact navigation controls. */
.masthead button[data-tooltip]{position:relative}
.masthead button[data-tooltip]::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,-3px);z-index:160;pointer-events:none;white-space:nowrap;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--paper) 95%,transparent);color:var(--ink);box-shadow:0 5px 18px #00000012;font:400 12px/1.4 'NanumSquareNeo',sans-serif;letter-spacing:0;text-decoration:none;opacity:0;visibility:hidden;transition:opacity 160ms ease,transform 160ms ease,visibility 160ms}
.masthead .theme-toggle[data-tooltip]::after{left:auto;right:0;transform:translateY(-3px)}
.masthead button[data-tooltip]:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.masthead .theme-toggle[data-tooltip]:focus-visible::after{transform:translateY(0)}
@media(hover:hover){.masthead button[data-tooltip]:hover::after{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:100ms}.masthead .theme-toggle[data-tooltip]:hover::after{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.masthead button[data-tooltip]::after{transition:none!important}}

/* Subpixel text depth, deliberately softer than the letter edges. */
body{text-shadow:0 .55px 1.4px color-mix(in srgb,var(--ink,#343344) 7%,transparent)}
html[data-theme=dark] body{text-shadow:0 .65px 1.7px #00000036}

/* Briefly illustrate the alternate mode on the button alone. */
.theme-toggle.theme-icon-demo .theme-moon{opacity:0;transform:rotate(35deg) scale(.7)}
.theme-toggle.theme-icon-demo .theme-sun{opacity:1;transform:none}
[data-theme=dark] .theme-toggle.theme-icon-demo .theme-sun{opacity:0;transform:rotate(-40deg) scale(.7)}
[data-theme=dark] .theme-toggle.theme-icon-demo .theme-moon{opacity:1;transform:none}

/* A temporary soft boundary illustrates the alternate palette on this button only. */
html body .theme-toggle{isolation:isolate;border-radius:10px;border-color:transparent!important;background:transparent!important;color:var(--ink)!important;box-shadow:none!important;transition:color 650ms ease}
.theme-toggle::before{content:"";position:absolute;inset:-3px;z-index:-1;pointer-events:none;border-radius:11px;border:1px solid transparent;background:transparent;box-shadow:none;opacity:0;transition:opacity 650ms ease,background-color 650ms ease,border-color 650ms ease,box-shadow 650ms ease}
html body .theme-toggle.button-preview-active::before{opacity:1;background:#ffffff25;border-color:#8c829d1c;box-shadow:inset 0 1px 0 #ffffff55,0 3px 12px #39304408}
html body .theme-toggle.theme-icon-demo{color:#f1eef7!important}
html body .theme-toggle.button-preview-active.theme-icon-demo::before{background:#2c2b38c9;border-color:#74698322;box-shadow:inset 0 1px 0 #ffffff16,0 3px 14px #211c3020}
html[data-theme=dark] body .theme-toggle.button-preview-active::before{background:#25242d38;border-color:#ffffff16;box-shadow:inset 0 1px 0 #ffffff12,0 3px 12px #0000000d}
html[data-theme=dark] body .theme-toggle.theme-icon-demo{color:#343344!important}
html[data-theme=dark] body .theme-toggle.button-preview-active.theme-icon-demo::before{background:#f0edf4c9;border-color:#ffffff40;box-shadow:inset 0 1px 0 #ffffff66,0 3px 14px #00000014}
.language-switch button{font-weight:700!important}
@media(prefers-reduced-motion:reduce){html body .theme-toggle,.theme-toggle::before{transition:none!important}}

/* Music catalog: recent covers and compact archive */
.catalog-filters{display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:20px}.catalog-filter{font:inherit;color:var(--muted);background:none;border:0;border-bottom:1px solid transparent;padding:9px 0;cursor:pointer}.catalog-filter[aria-pressed=true]{color:var(--accent);border-bottom-color:currentColor}.catalog-count{font-size:14px;color:var(--muted);margin:0 0 30px}.catalog-toggle{margin:34px 0 22px}.release-archive[hidden]{display:none}.release-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto 20px;align-items:center;gap:24px;padding:20px 4px;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent);color:inherit;text-decoration:none}.release-row-art{width:64px;height:64px;object-fit:cover}.release-row h3{font-size:19px;margin:0 0 7px}.release-row p{font-size:14px;margin:4px 0;color:var(--muted)}.release-row-date{font-size:14px;color:var(--muted);white-space:nowrap}.release-row-arrow{color:var(--muted)}.release-row:hover h3{color:var(--accent)}@media(max-width:600px){.release-row{grid-template-columns:50px minmax(0,1fr) 16px;gap:14px;padding:17px 0}.release-row-art{width:50px;height:50px}.release-row h3{font-size:16px}.release-row p{font-size:12px}.release-row-date{grid-column:2;grid-row:auto;font-size:12px;margin-top:-13px}.release-row-arrow{grid-column:3;grid-row:1}.catalog-filters{gap:8px 18px}}

@media(max-width:600px){.release-row p,.release-row-date{font-size:14px}.release-row h3{font-size:18px}}

.release-date{display:inline-block;white-space:nowrap}

/* Full release catalog overlay */
#site{transition:opacity 300ms ease}.catalog-open #site{opacity:.16;pointer-events:none}.catalog-overlay{position:fixed;inset:0;z-index:800;display:flex;justify-content:center;align-items:flex-start;padding:clamp(16px,4vw,56px);background:color-mix(in srgb,var(--paper) 55%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);opacity:1;transition:opacity 220ms ease}.catalog-overlay.closing{opacity:0}.catalog-dialog{width:min(100%,1050px);max-height:calc(100dvh - clamp(32px,8vw,112px));overflow-y:auto;overscroll-behavior:contain;color:var(--ink);background:color-mix(in srgb,var(--paper) 72%,transparent);border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);border-radius:10px;box-shadow:0 18px 70px #00000012;scrollbar-gutter:stable}.catalog-dialog-header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 34px 20px;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.catalog-dialog-header h2{font-size:clamp(24px,3vw,36px);margin:0 0 8px}.catalog-dialog-header .catalog-count{margin:0}.catalog-close{flex:none;display:grid;place-items:center;width:42px;height:42px;font-size:32px;font-weight:300;line-height:1;font-family:inherit;background:transparent;border:0;color:var(--ink);cursor:pointer}.catalog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.catalog-dialog-list{padding:0 34px 32px}.catalog-year{font-size:18px;color:var(--muted);font-weight:600;margin:30px 0 8px}.catalog-dialog .release-row{gap:22px}.music-remix-link h2{margin:0 0 18px}.music-remix-link .text-link{font-size:18px}.catalog-toggle{margin-top:36px}@media(max-width:600px){.catalog-overlay{padding:12px}.catalog-dialog{max-height:calc(100dvh - 24px);border-radius:8px}.catalog-dialog-header{padding:20px 18px 16px;gap:12px}.catalog-dialog-list{padding:0 18px 24px}.catalog-dialog .release-row{gap:14px}.catalog-year{margin-top:26px}.catalog-dialog .release-row p{font-size:13px}.catalog-dialog .release-row h3{font-size:16px}.catalog-dialog .release-row-date{font-size:12px}.catalog-dialog .release-compilation{line-height:1.6}.music-remix-link .text-link{font-size:16px}}@media(prefers-reduced-motion:reduce){#site,.catalog-overlay{transition:none}}

.catalog-dialog .release-row:hover{text-decoration:none}

/* 1.2: direct streaming links, separate from the release detail link */
.release-tile{min-width:0}.release-tile>.release-card{display:block}.release-streaming{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.release-streaming-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--muted);text-decoration:none;border:0;background:none;transition:color 200ms ease;flex:none}.release-streaming-link svg{width:22px;height:22px;display:block}.release-streaming-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.release-streaming-link:hover{text-decoration:none}.release-entry{border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.release-entry>.release-row{border-bottom:0;padding-bottom:8px}.release-entry>.release-streaming{margin:0 0 16px 88px;gap:6px}.featured-art-link{display:block;width:100%;max-width:500px}.featured-art-link>.release-cover{width:100%;display:block}.featured-title-link{color:inherit;text-decoration:none}.featured-title-link:hover{color:var(--accent);text-decoration:none}.release-info>.release-streaming{margin-top:24px;gap:14px}.release-info>.release-streaming .release-streaming-link{width:42px;height:42px}.release-info>.release-streaming svg{width:27px;height:27px}@media(max-width:600px){.release-streaming{gap:6px}.release-streaming-link{width:32px;height:36px}.release-streaming-link svg{width:21px;height:21px}.release-entry>.release-streaming{margin-left:64px}.featured-art-link{max-width:460px;margin:auto}}

.release-streaming-link{--platform-rest:var(--muted)}.detail-streaming{margin-bottom:30px}
/* Stable card geometry and fixed streaming/date columns */
.release-grid{align-items:stretch}.release-tile{display:flex;flex-direction:column;height:100%}.release-tile>.release-card{flex:1;display:block}.release-card>.release-cover{display:block;width:100%;aspect-ratio:1;object-fit:cover;transform:none!important}.release-card:hover>.release-cover,.release-card:focus-visible>.release-cover{transform:none!important}.release-tile-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;min-height:36px}.release-tile-footer>.release-streaming{margin:0;gap:6px;min-height:36px;align-content:flex-start}.release-tile-footer .release-streaming-link{width:30px;height:36px}.release-card-date{flex:none;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.release-entry{display:grid;grid-template-columns:minmax(0,1fr) 204px 156px 16px;gap:16px;align-items:center;min-height:108px}.catalog-dialog .release-entry>.release-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:22px;padding:18px 0;border:0;min-width:0}.release-entry-streams>.release-streaming{margin:0;gap:4px;justify-content:flex-end}.release-entry-streams .release-streaming-link{width:30px;height:36px}.release-entry>.release-row-date{grid-column:auto;grid-row:auto;margin:0;width:156px;text-align:right;justify-self:end;font-variant-numeric:tabular-nums;white-space:nowrap}.release-entry>.release-row-arrow{grid-column:auto;grid-row:auto;margin:0}.release-row-copy{min-width:0;overflow-wrap:anywhere}.release-detail-overlay{position:fixed;inset:0;z-index:900;display:flex;justify-content:center;align-items:flex-start;padding:clamp(16px,4vw,56px);background:color-mix(in srgb,var(--paper) 55%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:opacity 220ms ease}.release-detail-overlay.closing{opacity:0}.release-detail-dialog{width:min(100%,1050px);max-height:calc(100dvh - clamp(32px,8vw,112px));overflow-y:auto;overscroll-behavior:contain;background:color-mix(in srgb,var(--paper) 90%,transparent);border:1px solid var(--line);border-radius:10px;color:var(--ink);scrollbar-gutter:stable;box-shadow:0 18px 70px #00000018}.release-detail-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:14px;color:var(--muted)}.release-detail-close{display:grid;place-items:center;flex:none;width:42px;height:42px;padding:0;font-family:inherit;font-size:32px;font-weight:300;line-height:1;border:0;background:transparent;color:var(--ink);cursor:pointer}.release-detail-close:focus-visible{outline:2px solid var(--accent)}.release-detail-content{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:34px;padding:12px 32px 36px;align-items:start}.release-floating-art.detail-image{width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:0;max-width:none}.release-detail-copy h2{font-size:clamp(25px,3.4vw,42px);line-height:1.3;margin:0 0 18px;overflow-wrap:anywhere}.release-detail-artist{font-size:16px;color:var(--muted);margin-bottom:14px}.release-detail-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin:24px 0}.release-detail-actions>.release-streaming{margin:0}.release-detail-date{font-size:14px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.release-detail-description{font-size:16px;line-height:1.9;white-space:pre-line}.release-detail-open #site{opacity:.16;pointer-events:none}.release-detail-open .catalog-overlay{opacity:.15;pointer-events:none}@media(max-width:760px){.release-entry{grid-template-columns:minmax(0,1fr) 142px 16px;column-gap:10px;row-gap:0;padding:16px 0}.catalog-dialog .release-entry>.release-row{grid-column:1/-1;grid-row:1;grid-template-columns:50px minmax(0,1fr);gap:14px;padding:0 0 10px}.release-entry-streams{grid-column:1;grid-row:2;min-height:40px}.release-entry-streams>.release-streaming{justify-content:flex-start}.release-entry>.release-row-date{grid-column:2;grid-row:2;width:142px;font-size:12px}.release-entry>.release-row-arrow{grid-column:3;grid-row:2}.release-detail-content{grid-template-columns:1fr;gap:24px;padding:8px 20px 28px}.release-floating-art.detail-image{max-width:350px;margin:auto}.release-detail-overlay{padding:12px}.release-detail-dialog{max-height:calc(100dvh - 24px)}.release-detail-header{padding:12px 16px}.release-detail-copy h2{font-size:28px}.release-tile-footer{flex-wrap:wrap;align-items:flex-start}.release-card-date{margin-left:auto}.release-tile-footer>.release-streaming{min-height:36px}}@media(max-width:600px){.release-tile-footer{display:flex;flex-direction:column;align-items:stretch;gap:6px}.release-tile-footer>.release-streaming{min-height:76px;align-content:flex-start}.release-card-date{margin:0;align-self:flex-end}.release-entry-streams .release-streaming-link{width:26px;height:34px}.release-entry-streams .release-streaming-link svg{width:19px;height:19px}}@media(prefers-reduced-motion:reduce){.release-detail-overlay{transition:none}}

/* Soft translucent floating surfaces; blur is transient on the moving panel. */
.catalog-open #site,.release-detail-open #site{opacity:.35}.release-detail-open .catalog-overlay{opacity:.3}.catalog-overlay,.release-detail-overlay{background:color-mix(in srgb,var(--paper) 32%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.catalog-dialog,.release-detail-dialog{background:color-mix(in srgb,var(--paper) 68%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.catalog-dialog-header,.release-detail-header{background:color-mix(in srgb,var(--paper) 76%,transparent)}

/* Full-row magnetic highlight; detail dialog centered in the viewport. */
.release-entry{position:relative;isolation:isolate;cursor:pointer}.release-entry[data-magnetic-hover]>.magnetic-hover-fill{inset:0!important;transform:none!important;border-radius:6px}.release-entry:has(>.release-row:focus-visible){background:color-mix(in srgb,var(--accent) 11%,transparent);border-radius:6px}.release-detail-overlay{align-items:center}

/* Unified activity history */
.activity-kind{display:block;width:fit-content;font-size:.78rem;color:var(--muted);letter-spacing:.025em;margin-bottom:8px}.about-history-link .history-link{display:inline-block;font-size:1.1rem;padding:12px 0;border-bottom:1px solid currentColor}.work-archive{scroll-margin-top:140px}
