@charset "UTF-8";
@font-face{font-family:'Inter Tight';src:url('assets/InterTight.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#ffffff;--ink:#0b0b0b;--red:#bd2923;--line:#161616;--gutter:clamp(16px,2.3vw,36px);font-family:'Inter Tight',Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--red);color:var(--paper)}
a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}h2:focus{outline:none}
#viewport{position:fixed;inset:0;overflow:auto;scrollbar-width:none;overscroll-behavior:none;scroll-snap-type:both mandatory;opacity:0}#viewport.ready{opacity:1}#viewport::-webkit-scrollbar{display:none}
#world{position:relative;width:300%;height:400%;background:var(--paper)}
.panel{position:absolute;width:33.333333%;height:25%;padding:var(--gutter);scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;touch-action:none;cursor:grab}a,summary{cursor:pointer}#viewport.dragging{scroll-snap-type:none;cursor:grabbing}#viewport.dragging .panel{cursor:grabbing;user-select:none}
.panel[data-x="0"]{left:0}.panel[data-x="1"]{left:33.333333%}.panel[data-x="2"]{left:66.666666%}.panel[data-y="0"]{top:0}.panel[data-y="1"]{top:25%}.panel[data-y="2"]{top:50%}.panel[data-y="3"]{top:75%}
.index-card{height:100%;border:1px solid var(--line);display:flex;flex-direction:column;position:relative;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}.index-card::-webkit-scrollbar{display:none}.index-top,.index-nav,.index-bottom{flex-shrink:0}
.index-top,.index-bottom{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;font-family:'Courier New',monospace;font-size:.75rem;font-weight:600;letter-spacing:.02em}.index-top{border-bottom:1px solid var(--line)}.index-bottom{border-top:1px solid var(--line)}
.wordmark{font-size:14.5vw;font-weight:900;letter-spacing:-.06em;line-height:.85;margin:0;padding:32px 18px 40px;flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center}.wordmark>span{display:block;white-space:nowrap}.brand-accent{color:var(--red)}
.index-nav{display:grid;grid-template-columns:1fr 1.35fr 1fr;grid-template-rows:auto auto;border-top:1px solid var(--line)}
.index-nav a{display:flex;align-items:baseline;gap:12px;padding:clamp(14px,2.15vw,34px) 18px;font-size:clamp(1.6rem,3.7vw,4.2rem);font-weight:900;letter-spacing:-.045em;transition:color .16s}
.nav-number{font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:0;align-self:flex-start}.nav-symbol{font-weight:400;margin-left:auto;font-size:.75em}.nav-info,.nav-music{border-right:1px solid var(--line)}.nav-news{grid-column:1/3;border-top:1px solid var(--line);border-right:1px solid var(--line);color:var(--red)}.nav-contact{border-top:1px solid var(--line)}.index-nav a:hover{color:var(--red)}.nav-news:hover{color:var(--ink)}
.section-card{height:100%;border:1px solid var(--line);display:flex;flex-direction:column}.section-top{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}.home-link{font-weight:900;letter-spacing:-.055em;font-size:1.3rem}.home-link:hover{color:var(--red)}.section-top>span{font-family:'Courier New',monospace;font-size:.75rem;white-space:nowrap}
.section-scroll{padding:clamp(22px,4vw,64px);overflow:auto;flex:1;overscroll-behavior:contain}.section-scroll h2{font-size:clamp(4rem,9vw,9rem);letter-spacing:-.065em;line-height:.9;margin:0 0 36px;font-weight:900}.red{color:var(--red)}.bio{max-width:850px;margin-left:auto}.bio p{font-size:clamp(1rem,1.65vw,1.35rem);line-height:1.5;max-width:68ch}.bio .bio-lead{font-size:clamp(1.5rem,2.7vw,2.5rem);line-height:1.15;letter-spacing:-.035em;font-weight:700;margin-top:0}
.section-intro{font-size:clamp(1.15rem,2.2vw,1.8rem);line-height:1.3;letter-spacing:-.025em}.section-nav{display:flex;flex-wrap:wrap;gap:10px 28px;border-top:1px solid var(--line);padding:17px 22px;font-size:.9rem}.section-nav a:hover{color:var(--red)}.dark,.news-panel{background:var(--paper);color:var(--ink)}
.section-top,.section-nav{flex-shrink:0}.mono,.bio-footnote,.news-meta{font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:.015em}.bio-footnote{display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--line);padding-top:20px;margin-top:40px}.project-list{border-top:1px solid var(--line);margin-top:44px}.project{border-bottom:1px solid var(--line)}.project summary{display:flex;align-items:flex-start;gap:24px;list-style:none;cursor:pointer;padding:24px 0}.project summary::-webkit-details-marker{display:none}.project summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}.project-number{font-family:'Courier New',monospace;font-size:.75rem;padding-top:8px;color:var(--red)}.project-name{font-size:clamp(1.7rem,3.1vw,3rem);line-height:1.06;letter-spacing:-.04em}.project-name small{display:block;font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:.025em;font-weight:400;margin-top:12px}.project-toggle{font-weight:400;font-size:2rem;line-height:1;margin-left:auto;transition:transform .2s}.project[open] .project-toggle{transform:rotate(45deg);color:var(--red)}.project-body{padding:0 36px 16px 40px;max-width:750px;font-size:1rem;line-height:1.5}.muted{color:#666;font-size:.875rem}.empty-dates{margin-top:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.empty-dates>p{font-size:clamp(2rem,4.5vw,4.5rem);font-weight:600;letter-spacing:-.05em;line-height:1.08;margin:30px 0 44px}.news-note{margin-top:44px;padding:24px 0;border-top:1px solid var(--line);max-width:840px;margin-left:auto}.news-meta{display:flex;justify-content:space-between;gap:24px}.news-note h3{font-size:clamp(2rem,4.6vw,4.5rem);letter-spacing:-.055em;line-height:1;margin:40px 0 26px}.news-note h3>span{color:var(--red)}.news-note p{font-size:clamp(1rem,1.8vw,1.4rem);line-height:1.5;max-width:43ch}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;font-size:1rem;border-bottom:1px solid var(--ink);padding:12px 0;margin-top:20px}.text-link:hover{color:var(--red);border-color:var(--red)}.contact-block{border-top:1px solid var(--line);padding-top:24px;margin-top:48px}.contact-block>p{font-size:clamp(2rem,4.8vw,5rem);line-height:1.06;font-weight:600;letter-spacing:-.05em;margin:32px 0 42px}.contact-line{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;font-size:1rem}.contact-line>span:first-child{font-family:'Courier New',monospace;font-size:.75rem}
.info-layout{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.4fr);gap:clamp(28px,4vw,64px);align-items:start}.image-slot{margin:0;border:1px dashed var(--line);background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:16px;min-height:180px}.image-top,.image-slot figcaption{font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:.015em;line-height:1.4}.image-cross{display:block;text-align:center;font-weight:200;font-size:4rem;line-height:1;color:#c5c5c5}.portrait-slot{aspect-ratio:4/5;position:sticky;top:0}.wide-slot{aspect-ratio:16/7;margin-top:36px}.work-slot{aspect-ratio:16/10;margin:0 0 24px}.image-slot figcaption{text-align:right}
.album-feature{max-width:1000px}.album-player{display:block;width:100%;aspect-ratio:16/9;min-height:200px;border:1px solid var(--line);background:#fff;cursor:auto}.album-link{display:flex;justify-content:space-between;gap:24px;font-family:'Courier New',monospace;font-size:.875rem;line-height:1.4;padding:16px 0;border-bottom:1px solid var(--line)}.album-link:hover{color:var(--red)}.release-list{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:1000px}.release-list .news-note{width:100%;margin-top:36px;margin-left:0}.release-list .news-meta{flex-wrap:wrap;gap:8px 24px}.release-list .news-note h3{font-size:clamp(2.3rem,4vw,4rem);margin:30px 0 24px}.release-list .news-note p{font-size:1rem}
.index-top,.index-bottom,.section-top>span,.mono,.bio-footnote,.news-meta,.image-top,.image-slot figcaption{letter-spacing:.065em}.project-name{font-weight:800}.project-name small{font-weight:400}.news-note h3,.contact-block>p,.empty-dates>p{font-weight:800}
@media(max-width:680px){.index-top{padding:12px;font-size:.75rem}.index-top>span:nth-child(2){display:none}.index-bottom{padding:12px;font-size:.75rem;line-height:1.4}.index-bottom>span:first-child{max-width:210px}.wordmark{padding:34px 10px}.index-nav{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto}.index-nav a{font-size:clamp(1.65rem,6.8vw,2.8rem);padding:18px 12px;gap:8px}.nav-info{border-right:1px solid var(--line)}.nav-music{border-right:0}.nav-dates{border-top:1px solid var(--line);border-right:1px solid var(--line)}.nav-contact{grid-column:2;grid-row:2}.nav-news{grid-column:1/3;grid-row:3;border-right:0}.section-top{padding:14px}.home-link{font-size:1.05rem}.section-scroll h2{font-size:4.8rem;margin-bottom:30px}.section-scroll{padding:22px}.section-nav{gap:12px 20px;padding:14px}.bio p{line-height:1.5}.bio .bio-lead{font-size:1.65rem}}
@media(max-width:600px){.wordmark{font-size:20vw;flex-direction:column;align-items:flex-start;justify-content:center;line-height:.86;letter-spacing:-.055em}.wordmark>span:last-child{align-self:flex-end;margin-top:8px;font-size:1.2em}}
@media(max-height:620px) and (min-width:681px){.wordmark{font-size:min(14.5vw,23vh);padding:12px 18px}.index-nav a{padding:12px 18px;font-size:2rem}.index-top,.index-bottom{padding:10px 18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:900px){.info-layout{grid-template-columns:1fr}.portrait-slot{position:static;aspect-ratio:16/10}.wide-slot{aspect-ratio:16/9}.project summary{gap:16px}.project-body{padding-left:28px;padding-right:0}}
@media(max-width:680px){.release-list{grid-template-columns:1fr;gap:0}}
.featured-release{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;max-width:1100px;border-top:1px solid var(--line);padding-top:28px}.release-art{margin:0}.release-art img{display:block;width:100%;height:auto}.release-art figcaption,.work-image figcaption{font-family:'Courier New',monospace;font-size:.75rem;line-height:1.5;letter-spacing:.04em;margin-top:12px}.release-info h3{font-size:clamp(3rem,6vw,6rem);letter-spacing:-.065em;font-weight:900;line-height:1;margin:26px 0}.release-info p{font-size:1rem;line-height:1.5;max-width:42ch}.release-format{font-weight:700}.audio-excerpts{grid-column:1/-1;border-top:1px solid var(--line);margin-top:8px;padding-top:20px}.audio-excerpts h4{margin:0 0 24px;font-weight:400}.audio-track{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid #c9c9c9}.track-title{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:1rem;font-weight:600}.track-title>span:last-child{font-family:'Courier New',monospace;font-size:.75rem;font-weight:400;padding-top:4px}.audio-track audio{display:block;width:100%;height:40px;cursor:auto}.works-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin:52px 0 28px}.works-heading h3{font-size:clamp(2rem,4vw,4rem);letter-spacing:-.055em;line-height:1;font-weight:900;margin:0}.works-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.work-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;border-bottom:1px solid var(--line);padding:24px 0}.work-row h4{font-size:clamp(1.5rem,2.7vw,2.4rem);letter-spacing:-.04em;line-height:1.12;font-weight:800;overflow-wrap:anywhere;margin:0}.work-row p{font-size:1rem;line-height:1.4;margin:10px 0 0}.work-year{font-family:'Courier New',monospace;font-size:.875rem;white-space:nowrap;padding-top:5px}.work-note{display:block;font-size:.875rem;line-height:1.5;color:#666;margin-top:8px}.work-image{grid-column:1/-1;margin:16px 0 0}.work-image img{display:block;width:100%;height:auto}.works-heading+.project-list{margin-top:0}
@media(max-width:760px){.featured-release{grid-template-columns:1fr;gap:24px}.release-art{max-width:460px}.release-info h3{margin:20px 0}.release-info .text-link{margin-top:0}.work-row{column-gap:12px}.work-year{font-size:.75rem}.works-heading .mono{font-size:.75rem}.work-row h4{font-size:1.5rem}}
.featured-release{align-items:start}.release-art,.release-info,.audio-excerpts,.work-row>div,.work-image{min-width:0}.release-art{width:100%;max-width:20rem}.release-art img{max-width:100%;aspect-ratio:1;object-fit:contain}.work-image{width:100%;max-width:32rem}.work-image img{max-width:100%;object-fit:contain}.release-art figcaption,.work-image figcaption{overflow-wrap:anywhere}
@media(min-width:761px){.featured-release{grid-template-columns:minmax(0,20rem) minmax(0,1fr)}}
@media(max-width:760px){.release-art{max-width:16rem}}
.album-notes{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px;margin-top:8px;min-width:0}.album-notes h4{font-size:1.35rem;font-weight:800;letter-spacing:-.03em;margin:0 0 16px}.album-notes p{font-size:1rem;line-height:1.5;margin:0 0 16px}.album-notes>p{max-width:72ch}.album-track-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:28px}.album-track-notes h5{font-size:1rem;line-height:1.4;margin:0 0 12px}.album-track-notes .mono{font-size:.75rem}
@media(max-width:900px){.album-track-notes{grid-template-columns:1fr;gap:16px}}

.marker-release{max-width:1100px;margin-bottom:40px;border-top:1px solid var(--line);padding-top:28px}
.marker-release h3{font-size:clamp(2rem,4vw,4rem);letter-spacing:-.055em;line-height:1;font-weight:900;margin:0 0 24px}
.marker-player{display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--line);background:var(--paper);cursor:auto}
.marker-texts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:28px}
.marker-texts>div{min-width:0}
.marker-texts h4{font-weight:400;margin:0 0 12px}
.marker-texts p{font-size:1rem;line-height:1.5;margin:0;max-width:60ch}
@media(max-width:600px){.marker-texts{grid-template-columns:1fr;gap:24px}}
.works-heading{margin:64px 0 32px;padding:28px 0;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.works-heading+.marker-release{border-top:0;padding-top:0}
.featured-release+.works-list{margin-top:40px}
.work-image img{filter:grayscale(1)}

/* Compact image studies with differently proportioned text fragments. */
.wordmark{flex:0 0 auto;padding:24px 18px 28px}
.index-nav{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:minmax(96px,1.1fr) minmax(84px,.85fr) minmax(100px,1.15fr);grid-template-areas:"info info info studio music music music music" "notation contact contact contact music music music music" "notation dates dates dates news news news performance";gap:1px;flex:1 0 283px;min-height:283px;border-top:1px solid var(--line);background:var(--line)}
.index-bottom{position:relative;z-index:1;background:var(--paper)}
.index-nav>a,.index-nav>figure,.index-nav>div{background:var(--paper);min-width:0;min-height:0}
.index-nav a{position:relative;align-items:flex-end;padding:28px 12px 16px;font-size:clamp(1.65rem,3.7vw,3.2rem);gap:8px;border:0}
.index-nav .nav-number{position:absolute;top:10px;left:12px}
.index-nav .nav-info{grid-area:info}.index-nav .nav-music{grid-area:dates}.index-nav .nav-dates{grid-area:news}.index-nav .nav-contact{grid-area:contact}.index-nav .nav-news{grid-area:music}
.index-study{display:grid;min-width:0;min-height:0;margin:0;overflow:hidden}
.index-study>div,.index-study>figcaption{min-width:0;min-height:0}
.index-studio{grid-area:studio;grid-template-rows:minmax(0,1fr) auto}
.index-notation{grid-area:notation;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
.index-performance{grid-area:performance;grid-template-rows:minmax(0,1fr)}
.index-image{margin:0;overflow:hidden;position:relative}
.index-image img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.index-electronics img{object-position:62% 65%}
.index-drums img{object-position:50% 52%}
.index-score img{object-position:center}
.index-fragment{display:flex;flex-direction:column;background:var(--paper);padding:8px;cursor:inherit}
.index-fragment p{margin:0;font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:.02em;line-height:1.35}
.index-sound{align-items:flex-start;border-top:1px solid var(--line);padding-left:12px}
.index-gesture{border-top:1px solid var(--line);padding:6px 7px}
.index-gesture p{display:flex;flex-wrap:wrap;gap:3px 6px;line-height:1.25}
.nav-news,#news .section-scroll h2,.section-nav a[href="#news"]{color:var(--ink)}
.index-nav .nav-news:hover,.index-nav .nav-news:focus-visible,.section-nav a[href="#news"]:hover{color:var(--red)}
@media(max-width:1000px){
  .index-nav{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(104px,1.1fr) minmax(96px,.85fr) minmax(128px,1.35fr) minmax(80px,.7fr);grid-template-areas:"info info info info info info info info studio studio studio studio" "notation notation notation notation music music music music music music music music" "dates dates dates dates dates performance performance performance performance performance performance performance" "contact contact contact contact contact contact news news news news news news";flex-basis:412px;min-height:412px}
  .index-nav .nav-contact,.index-nav .nav-dates{padding-top:24px;padding-bottom:10px;line-height:1}
}
@media(max-width:680px){
  .wordmark{padding:18px 10px 22px}
  .index-nav a{font-size:clamp(1.65rem,6.8vw,2.8rem)}
}
@media(max-width:360px){
  .index-nav a{font-size:1.5rem;padding-left:10px;padding-right:10px;gap:6px}
  #contact .section-scroll h2{font-size:3.8rem}
}

.info-visual{min-width:0;position:sticky;top:0;border:1px solid var(--line)}
.info-collage{margin:0}.info-collage img{display:block;width:100%;height:auto;filter:grayscale(1)}
.info-tiles{display:grid;grid-template-columns:1.2fr 1fr;border-top:1px solid var(--line)}
.info-tile{position:relative;min-height:112px;padding:20px 16px;display:flex;align-items:flex-end}
.info-tile+.info-tile{border-left:1px solid var(--line)}
.info-tile .mono{line-height:1.5}.info-plus{position:absolute;right:12px;top:10px;font-size:1.8rem;line-height:1;font-weight:200}
.contact-line>a:hover{color:var(--red)}
.legal-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px 24px;margin-left:auto}
.section-nav{align-items:baseline;gap:16px 28px}
.section-links{display:flex;flex:1 1 16rem;flex-wrap:wrap;gap:12px 24px;min-width:0}
.section-nav>.legal-nav{flex:0 1 auto}
.index-bottom-meta{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.index-bottom-meta .legal-nav{padding-left:0;border:0;gap:10px 18px}
.legal-dialog{width:min(56rem,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);overflow:hidden}
.legal-dialog[open]{display:flex;flex-direction:column}
.legal-dialog::backdrop{background:rgba(0,0,0,.38)}
.legal-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 28px;border-bottom:1px solid var(--line);flex-shrink:0}
.legal-top h2{font-size:clamp(1.7rem,4vw,3rem);font-weight:900;line-height:1;letter-spacing:-.04em;margin:0}
.legal-close{border:0;padding:4px 8px;background:var(--paper);color:var(--ink);font-size:2rem;line-height:1;cursor:pointer}.legal-close:hover{color:var(--red)}
.legal-copy{min-height:0;padding:28px;overflow:auto;overscroll-behavior:contain;font-size:1rem;line-height:1.55;overflow-wrap:anywhere}
.legal-copy h3{font-size:1.25rem;line-height:1.3;margin:28px 0 16px}.legal-copy h3:first-child{margin-top:0}.legal-copy p{margin:0 0 20px}.legal-copy small{font-size:inherit}.legal-copy a{text-decoration:underline;text-underline-offset:3px}.legal-copy a:hover{color:var(--red)}
@media(max-width:900px){.info-visual{position:static;width:100%;max-width:32rem}.info-collage img{aspect-ratio:auto}}
@media(max-width:680px){.legal-top{padding:18px}.legal-copy{padding:22px}.legal-dialog{max-height:calc(100dvh - 32px)}.info-tile{min-height:104px;padding:16px 12px}}

/* Info follows the document instead of scrolling within a fixed-height card. */
.info-flow{scrollbar-width:none}.info-flow::-webkit-scrollbar{display:none}
.info-flow #viewport{visibility:hidden;pointer-events:none}
#info-page[hidden]{display:none}
#info-page>#info{position:relative;left:auto;top:auto;width:100%;height:auto;overflow:visible;touch-action:pan-y;cursor:auto}
#info .section-card{height:auto;min-height:calc(100dvh - 2 * var(--gutter))}
#info .section-scroll{overflow:visible;flex:0 0 auto;padding-bottom:clamp(64px,8vw,112px)}
#info .info-layout{grid-template-columns:1fr;max-width:60rem;margin-inline:auto}
#info .info-visual{position:static;width:100%;max-width:none;margin-left:auto}
.info-visual-top{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,64fr)}
.info-frame-tiles{display:grid;grid-template-columns:1fr 1.6fr;grid-template-rows:1fr 1.2fr .8fr;grid-template-areas:"a a" "b c" "d c";border-right:1px solid var(--line)}
.info-frame-tiles>div:nth-child(1){grid-area:a;border-bottom:1px solid var(--line)}
.info-frame-tiles>div:nth-child(2){grid-area:b;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.info-frame-tiles>div:nth-child(3){grid-area:c;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 18px}
.info-frame-tiles>div:nth-child(4){grid-area:d;border-right:1px solid var(--line)}
.info-portrait{margin:0;min-width:0}.info-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center top;filter:grayscale(1) brightness(1.15) contrast(1.4)}
.bio-body{display:flow-root}.bio-body>p:first-of-type{margin-top:0}
.bio-performance-row{display:grid;grid-template-columns:minmax(0,54fr) minmax(0,46fr);gap:clamp(20px,3vw,32px);align-items:stretch;margin:28px 0}
.bio-performance{position:relative;width:100%;margin:0;min-width:0;min-height:0}
.bio-performance img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1)}
#info .bio-performance-row>p{margin:0;min-width:0}
#info .bio-footnote{border-top:0;padding-top:0;margin-bottom:0;font-weight:400;justify-content:space-between;column-gap:16px;clear:both}
#info .bio{width:100%;max-width:none;margin:0}
#info .bio p{max-width:none}
#info .bio .bio-lead{width:100%;text-align:justify;text-align-last:justify;text-justify:inter-character;text-wrap:balance}
.contact-line{flex-direction:column;align-items:flex-start;gap:18px;padding:28px 0 32px}
.contact-line>a{font-size:clamp(1.4rem,5.1vw,4rem);font-weight:800;line-height:1.12;letter-spacing:-.045em;overflow-wrap:anywhere;min-width:0}
.works-heading{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:0;max-width:1100px;margin:64px 0;padding:0;border:1px solid var(--line)}
.works-heading h3{font-size:clamp(2.4rem,7.6vw,6rem);padding:28px 24px}
.works-heading>.mono{display:flex;align-items:center;align-self:stretch;border-left:1px solid var(--line);padding:24px 20px;line-height:1.5}
.collaborations-heading{grid-template-columns:1fr}
.index-bottom-meta .legal-nav{gap:12px 24px}
@media(max-width:600px){.works-heading{grid-template-columns:1fr}.works-heading h3{padding:24px 18px}.works-heading>.mono{border-left:0;border-top:1px solid var(--line);padding:16px 18px}.section-nav{column-gap:24px}}
@media(max-width:400px){.collaborations-heading h3{font-size:1.8rem}.marker-release h3{font-size:1.5rem}.section-links{gap:12px 20px}}

/* One frame contains each heading and its complete body of work. */
.music-group{max-width:1100px;margin:64px 0;border:1px solid var(--line);min-width:0}
.music-group>.works-heading{margin:0;border:0;border-bottom:1px solid var(--line)}
.group-content{padding:64px clamp(18px,3vw,36px) 0;min-width:0}
.works-group .marker-release{border-top:0;padding-top:0}
.works-group .work-row:last-child{border-bottom:0}
.collaborations-group .group-content{padding-top:32px}
.collaborations-group .project-list{margin-top:0;border-top:0}
.collaborations-group .project:last-child{border-bottom:0}
.collaborations-group .project-body{padding-left:0;padding-right:0;max-width:none}
.collaborations-group .album-player{min-height:0}
.track-notes{margin-top:18px}.track-notes p{font-size:1rem;line-height:1.5;margin:0 0 12px}.track-notes p:last-child{margin-bottom:0}.track-notes p.mono{font-size:.75rem}
.release-purchase{margin-top:28px;width:100%;max-width:34rem}
.buy-link{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;border:1px solid var(--red);padding:20px 24px;background:var(--red);color:var(--paper);font-size:clamp(1.6rem,3vw,2.5rem);font-weight:800;line-height:1.1;letter-spacing:-.04em}
.buy-link:hover{background:var(--ink);border-color:var(--ink)}
.release-purchase>p{font-size:.875rem;line-height:1.5;margin:12px 0 0}
.index-nav .nav-news .brand-accent{font-size:.78em}
.index-bottom{padding-block:10px;align-items:stretch;line-height:1.4}
.index-bottom-meta{justify-content:space-between;gap:0}
.index-bottom-meta .legal-nav{line-height:1.4}
.index-nav{flex:1 1 283px}
@media(max-width:1000px){.index-nav{grid-template-rows:minmax(92px,1.1fr) minmax(80px,.85fr) minmax(108px,1.35fr) minmax(64px,.7fr);flex-basis:347px;min-height:347px}}
@media(max-width:400px){.index-nav{grid-template-rows:minmax(70px,1.1fr) minmax(60px,.85fr) minmax(90px,1.35fr) minmax(60px,.7fr);flex-basis:283px;min-height:283px}}
.info-tiles{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}
.info-tile{min-height:0;padding:0 18px;align-items:center;justify-content:flex-end;border-left:1px solid var(--line)}
.info-tile-empty{display:flex;align-items:center;padding:0 18px}
.info-words{display:block;width:auto;text-align:right}
.info-gallery{display:flex;flex-direction:column;gap:clamp(24px,4vw,48px);max-width:60rem;margin:clamp(40px,5vw,72px) auto 0}
.info-gallery-row{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,3vw,32px);align-items:start}
.info-gallery-pair{grid-template-columns:minmax(0,45fr) minmax(0,53fr)}
.info-photo{margin:0;min-width:0}
.info-photo img{display:block;width:100%;max-width:100%;height:auto;filter:grayscale(1) contrast(1.2)}
.gallery-original-bw img{filter:grayscale(1)}
.gallery-low-light img{filter:grayscale(1) brightness(1.3) contrast(1.04)}
.info-photo figcaption{font-family:'Courier New',monospace;font-size:.875rem;line-height:1.5;margin-top:12px}
.info-photo figcaption a{text-decoration:underline;text-underline-offset:3px}.info-photo figcaption a:hover{color:var(--red)}
.gallery-caption-above figcaption{margin:0 0 16px;text-align:left}
.info-photo.gallery-caption-only{align-self:stretch;display:flex;align-items:center;justify-content:center;padding:24px}
.gallery-caption-only figcaption{max-width:23ch;margin:0;text-align:left}
.gallery-caption-side,.gallery-caption-side-left{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:clamp(16px,3vw,32px);align-items:center}
.gallery-caption-side-left{grid-template-columns:minmax(0,1fr) minmax(0,3fr)}
.gallery-caption-side figcaption,.gallery-caption-side-left figcaption{margin:0}
@media(max-width:520px){.bio-performance-row{grid-template-columns:minmax(0,1fr)}.bio-performance img{position:static;height:auto;aspect-ratio:3/2}#info .bio-footnote{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#info .bio-footnote>span:nth-child(even){text-align:right}.gallery-caption-side,.gallery-caption-side-left{grid-template-columns:minmax(0,1fr)}.gallery-caption-side-left img{grid-row:1}.info-tile,.info-tile-empty,.info-frame-tiles>div:nth-child(3){padding-inline:10px}.info-words{letter-spacing:0}}
@media(max-width:600px){.info-gallery-pair{grid-template-columns:minmax(0,1fr)}}
.legal-nav{font-size:.75rem;font-weight:400;line-height:1.5}
#contact .contact-line{margin-top:24px}
#news .release-list{grid-template-columns:minmax(0,1fr);gap:0}
#news .release-list .news-note:first-child{border-bottom:1px solid var(--line)}
@media(max-width:400px){.music-group .works-heading h3{padding-left:14px;padding-right:14px}.group-content{padding-left:14px;padding-right:14px}.collaborations-group .project summary{gap:12px}.collaborations-group .project-name{min-width:0}.buy-link{padding:18px;gap:12px 18px}}

#f4481-release .album-notes,#f4481-release .audio-excerpts{border-top:0}
#f4481-release .audio-track{border-bottom:0}
#f4481-release .release-purchase{grid-column:1/-1;max-width:none;margin-top:0}
@media(max-width:360px){.index-bottom{gap:8px}.index-bottom-meta .legal-nav{gap:8px 12px}}
