:root{--bg: #141413;--bg-soft: #1a1a18;--border: rgba(236, 233, 225, .1);--border-strong: rgba(236, 233, 225, .18);--text: #ece9e1;--text-dim: #a8a59b;--text-faint: #75736b;--gold: #e3b23c;--gold-soft: #cf9f34;--green: #5fa877;--green-soft: #4f9266;--sans: "IBM Plex Sans", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--measure: 46rem;--pad: clamp(1.25rem, 5vw, 2rem)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:400;font-size:clamp(1rem,.96rem + .2vw,1.075rem);line-height:1.7;letter-spacing:.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-reduced-motion:no-preference){body{animation:page-in .5s ease both}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}a{color:var(--gold);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .15s ease}a:hover{color:var(--green);text-decoration:underline}a:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}p{margin:0 0 1.1rem}p:last-child{margin-bottom:0}strong{color:var(--text);font-weight:600}::selection{background:#e3b23c47;color:#fff}.skip-link{position:absolute;left:-9999px;top:.5rem;background:var(--bg-soft);color:var(--text);padding:.5rem .85rem;border:1px solid var(--border-strong);border-radius:6px;z-index:50}.skip-link:focus{left:.75rem}.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.5rem;flex-wrap:wrap}.brand{color:var(--text);font-weight:500;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.55rem}.brand:hover{color:var(--text);text-decoration:none}.brand__dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}.nav{display:flex;gap:clamp(.85rem,2.5vw,1.5rem);font-family:var(--mono);font-size:.8rem;letter-spacing:.02em}.nav a{color:var(--text-dim)}.nav a:hover{color:var(--gold);text-decoration:none}main{padding:clamp(2.5rem,7vw,4.5rem) 0 1rem}.section{padding:clamp(2.25rem,6vw,3.5rem) 0}.section+.section{border-top:1px solid var(--border)}.kicker{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin:0 0 .9rem;display:flex;align-items:center;gap:.6rem}.kicker:before{content:"";width:1.4rem;height:1px;background:var(--green-soft);opacity:.8}h2{font-size:clamp(1.3rem,1.1rem + .7vw,1.55rem);font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:0 0 1.1rem}h3{font-size:1.05rem;font-weight:600;margin:0;letter-spacing:-.005em}.lead{color:var(--text-dim)}.accent-gold{color:var(--gold)}.accent-green{color:var(--green)}.intro{padding-top:0}.intro__top{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.75rem}.intro__id{flex:1 1 auto;min-width:0}.intro h1{font-size:clamp(1.8rem,1.3rem + 2.4vw,2.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0 0 .4rem}.intro__role{font-family:var(--mono);font-size:.82rem;letter-spacing:.04em;color:var(--text-dim)}.intro__role .sep{color:var(--text-faint);margin:0 .45rem}.portrait{flex:0 0 auto;width:clamp(72px,18vw,104px);height:clamp(72px,18vw,104px);border-radius:12px;object-fit:cover;border:1px solid var(--border-strong);filter:saturate(.96)}.intro__body{font-size:1.08rem}.intro__body p{color:var(--text)}.intro__body .lead{color:var(--text-dim)}.status{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.02em;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:.32rem .8rem;margin-top:1.4rem}.status__dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 #5fa87780}@media(prefers-reduced-motion:no-preference){.status__dot{animation:pulse 2.6s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #5fa87773}70%{box-shadow:0 0 0 6px #5fa87700}to{box-shadow:0 0 #5fa87700}}}.entry{padding:1.15rem 0}.entry+.entry{border-top:1px solid var(--border)}.entry__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.entry__org{color:var(--text-dim);font-size:.95rem}.entry__org .at{color:var(--gold-soft)}.entry__date{font-family:var(--mono);font-size:.76rem;letter-spacing:.02em;color:var(--text-faint);white-space:nowrap}.entry__title{margin-top:.5rem}.entry__desc{color:var(--text-dim);margin-top:.5rem;font-size:.97rem}.entry__desc a{color:var(--gold)}.project{padding:1.15rem 0}.project+.project{border-top:1px solid var(--border)}.project__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.project__meta{font-family:var(--mono);font-size:.76rem;color:var(--text-faint);letter-spacing:.02em;white-space:nowrap}.project__desc{color:var(--text-dim);margin-top:.5rem;font-size:.97rem}.tk{display:grid;gap:1.1rem}.tk__row{display:grid;grid-template-columns:9rem 1fr;gap:.5rem 1rem;align-items:baseline}.tk__label{font-family:var(--mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green);padding-top:.15rem}.tk__items{color:var(--text)}.tk__items .dim{color:var(--text-faint)}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.tag{font-family:var(--mono);font-size:.8rem;letter-spacing:.01em;color:var(--text-dim);border:1px solid var(--border);border-radius:7px;padding:.3rem .7rem;transition:border-color .15s ease,color .15s ease}.tag:hover{border-color:var(--border-strong);color:var(--text)}.tag--link{color:var(--gold);border-color:var(--border-strong)}.tag--link:hover{color:var(--green);border-color:var(--green-soft);text-decoration:none}.contact__lead{color:var(--text-dim);margin-bottom:1.5rem}.links{display:grid;gap:0}.link-row{display:flex;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.link-row:first-child{border-top:1px solid var(--border)}.link-row__key{flex:0 0 6.5rem;font-family:var(--mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint)}.link-row__val{flex:1 1 auto;min-width:0;word-break:break-word}.link-row__val a{font-weight:500}.site-footer{border-top:1px solid var(--border);padding:1.75rem 0 2.5rem;margin-top:1rem}.site-footer .inner{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;letter-spacing:.02em;color:var(--text-faint)}.music__head{padding-bottom:.75rem}.music__title{font-size:clamp(1.9rem,1.4rem + 2.4vw,2.7rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0}.music__quiet{font-family:var(--mono);font-size:.8rem;letter-spacing:.02em;color:var(--text-faint);margin:0}.music__quiet--shelf{margin-top:.5rem}.vinyl{--size: 8.5rem;position:relative;width:var(--size);height:var(--size);flex:0 0 auto;border-radius:50%;background:radial-gradient(circle at 50% 50%,#16161400 58%,#0b0b0a 58%);box-shadow:0 6px 18px #00000073,inset 0 0 0 1px #0009}.vinyl--lg{--size: clamp(12rem, 50vw, 18rem)}.vinyl__spin{position:absolute;inset:0;border-radius:50%}.vinyl__art{position:absolute;inset:0;border-radius:50%;background-size:cover;background-position:center;-webkit-mask:radial-gradient(circle at 50% 50%,#000 56%,transparent 56.5%);mask:radial-gradient(circle at 50% 50%,#000 56%,transparent 56.5%)}.vinyl__art--empty{background:radial-gradient(circle at 38% 34%,rgba(227,178,60,.28),transparent 45%),conic-gradient(from 210deg,#1d1d1a,#121210,#1d1d1a)}.vinyl__art--empty:after{content:"♪";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--size) * .16);color:var(--gold-soft);opacity:.7}.vinyl__grooves{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:repeating-radial-gradient(circle at 50% 50%,#0000 0 2px,#00000038 2px 3px);-webkit-mask:radial-gradient(circle at 50% 50%,transparent 21%,#000 22% 99%,transparent 100%);mask:radial-gradient(circle at 50% 50%,transparent 21%,#000 22% 99%,transparent 100%)}.vinyl__grooves:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(125deg,rgba(255,255,255,.1),transparent 35%,transparent 65%,rgba(255,255,255,.06))}.vinyl__hole{position:absolute;top:50%;left:50%;width:calc(var(--size) * .085);height:calc(var(--size) * .085);transform:translate(-50%,-50%);border-radius:50%;background:var(--bg);box-shadow:0 0 0 calc(var(--size) * .012) #0000008c,inset 0 0 2px #000c}@keyframes vinyl-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){.np.is-playing .vinyl__spin{animation:vinyl-spin 5.5s linear infinite}}.is-selected>.vinyl{box-shadow:0 0 0 3px var(--green),0 6px 18px #00000080}.music__now{padding-top:1.5rem;padding-bottom:2.75rem}.np{display:flex;align-items:center;gap:clamp(1.5rem,6vw,3rem);flex-wrap:wrap}.np__placeholder{opacity:.5}.np__vinyl{appearance:none;-webkit-appearance:none;background:none;border:0;padding:0;cursor:pointer;display:inline-flex;border-radius:50%}.np__vinyl .vinyl{transition:box-shadow .2s ease}.np__vinyl:focus-visible{outline:none}.np__vinyl:focus-visible .vinyl{box-shadow:0 0 0 3px var(--gold),0 6px 18px #00000080}.np__meta{flex:1 1 14rem;min-width:0}.np__status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .7rem}.np.is-playing .np__status{color:var(--green)}.np__dot{width:7px;height:7px;border-radius:50%;background:var(--green)}@media(prefers-reduced-motion:no-preference){.np.is-playing .np__dot{animation:pulse 2.6s ease-out infinite}}.np__title{font-size:clamp(1.25rem,1.05rem + 1vw,1.6rem);font-weight:600;letter-spacing:-.01em;line-height:1.2;margin:0 0 .35rem}.np__title a{color:var(--text)}.np__title a:hover{color:var(--gold);text-decoration:none}.np__sub{color:var(--text-dim);margin:0}.shelf{list-style:none;margin:0;padding:.5rem 0;display:flex;gap:clamp(1.1rem,3vw,1.75rem);overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.shelf::-webkit-scrollbar{display:none}.shelf[data-scroll=start]{-webkit-mask:linear-gradient(to right,#000 calc(100% - 2.5rem),transparent);mask:linear-gradient(to right,#000 calc(100% - 2.5rem),transparent)}.shelf[data-scroll=middle]{-webkit-mask:linear-gradient(to right,transparent,#000 2.5rem calc(100% - 2.5rem),transparent);mask:linear-gradient(to right,transparent,#000 2.5rem calc(100% - 2.5rem),transparent)}.shelf[data-scroll=end]{-webkit-mask:linear-gradient(to right,transparent,#000 2.5rem);mask:linear-gradient(to right,transparent,#000 2.5rem)}.shelf__item{scroll-snap-align:start}.record{appearance:none;-webkit-appearance:none;background:none;border:0;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.6rem;width:8.5rem;padding:0;color:var(--text)}.record .vinyl{--size: 8.5rem;transition:transform .2s ease,box-shadow .2s ease}.record:hover .vinyl{transform:translateY(-3px)}.record:focus-visible{outline:none}.record:focus-visible .vinyl{box-shadow:0 0 0 3px var(--gold),0 6px 18px #00000080}.record__cap{display:flex;flex-direction:column;text-align:center;max-width:100%;line-height:1.3}.record__title{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:8.5rem}.record__artist{font-size:.78rem;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:8.5rem}@media(max-width:33rem){.record,.record .vinyl,.record__title,.record__artist{width:7rem;max-width:7rem}.record .vinyl{--size: 7rem}}.detail{position:relative;margin-top:1.75rem;display:flex;gap:clamp(1rem,3vw,1.5rem);align-items:flex-start;border:1px solid var(--border);border-radius:12px;background:var(--bg-soft);padding:clamp(1rem,3.5vw,1.5rem)}.detail[hidden]{display:none}.detail__close{position:absolute;top:.5rem;right:.5rem;appearance:none;-webkit-appearance:none;background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:.85rem;line-height:1;color:var(--text-faint);padding:.35rem .45rem;border-radius:6px;transition:color .15s ease,background .15s ease}.detail__close:hover{color:var(--text);background:#ece9e10f}.detail__close:focus-visible{outline:2px solid var(--green);outline-offset:1px}.detail__sleeve{flex:0 0 auto;width:clamp(4.5rem,20vw,6.5rem);aspect-ratio:1;border-radius:6px;background-color:#121210;background-size:cover;background-position:center;border:1px solid var(--border-strong);box-shadow:0 4px 12px #00000059}.detail__sleeve--empty{display:grid;place-items:center;font-size:1.7rem;color:var(--gold-soft);background:radial-gradient(circle at 38% 34%,rgba(227,178,60,.25),transparent 50%),conic-gradient(from 210deg,#1d1d1a,#121210,#1d1d1a)}.detail__body{flex:1 1 auto;min-width:0;padding-right:1.5rem}.detail__status{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin:0 0 .5rem}.detail__title{font-size:1.1rem;font-weight:600;letter-spacing:-.005em;line-height:1.25;margin:0 0 .2rem}.detail__artist{color:var(--text-dim);font-size:.95rem;margin:0}.detail__summary{color:var(--text-dim);font-size:.9rem;line-height:1.55;margin:.8rem 0 0}.detail__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0 0;padding:0}.detail__tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.01em;color:var(--text-faint);border:1px solid var(--border);border-radius:6px;padding:.18rem .5rem}.detail__links{font-family:var(--mono);font-size:.78rem;letter-spacing:.01em;margin:.85rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.detail__sep{color:var(--text-faint)}.detail__note{margin:.85rem 0 0}@media(max-width:33rem){.detail__body{padding-right:0}}.notfound{padding:clamp(3rem,12vw,6rem) 0}.notfound h1{font-size:clamp(1.6rem,1.2rem + 2vw,2.2rem);margin:.5rem 0 .75rem}@media(max-width:30rem){.site-header .inner{flex-direction:column;align-items:flex-start;gap:.35rem;padding-top:.6rem;padding-bottom:.6rem}.nav{gap:1rem;font-size:.76rem}.nav a:first-child{margin-left:0}}@media(max-width:33rem){.portrait{width:64px;height:64px}.tk__row{grid-template-columns:1fr;gap:.2rem}.tk__label{padding-top:0}.link-row{flex-direction:column;gap:.15rem}.link-row__key{flex-basis:auto}.entry__head,.project__head{gap:.2rem}}
