@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Karla:wght@400;500;600&family=Chakra+Petch:wght@400;500;600&display=swap');
/* One geometry for both themes; color, texture and diagrams carry the distinction. */
body .music-buddy{left:114px!important}body .music-guide{left:145px!important;top:calc(50% + 218px)!important;bottom:auto!important;transform:translateX(-50%);width:260px;max-width:calc(100vw - 24px);border-radius:14px!important;animation:none}body .music-guide:before{content:'';position:absolute;top:-6px;left:calc(50% - 5px);width:10px;height:10px;background:var(--bg);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}@media(max-width:700px){body .music-buddy{left:99px!important}body .music-guide{left:125px!important;top:calc(50% + 198px)!important;width:226px;max-height:calc(50vh - 210px);overflow:auto;padding:12px}body .music-guide p{font-size:11px}}
body .music-buddy{left:57px!important;right:auto!important;top:calc(50% + 150px)!important;bottom:auto!important;width:62px!important;height:62px!important}body .music-guide{left:82px!important;right:auto!important;top:auto!important;bottom:22px!important;width:300px;max-width:calc(100vw - 100px);border-radius:14px 14px 14px 4px!important}.quiet-buddy{animation:quietFloat 5s ease-in-out infinite;transform-origin:32px 48px}.quiet-eyes{animation:quietBlink 7s infinite;transform-origin:32px 32px}.music-buddy.talking .quiet-buddy{animation:quietFloat 2s ease-in-out infinite}@keyframes quietFloat{50%{transform:translateY(-2px)}}@keyframes quietBlink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.2)}}@media(max-width:700px){body .music-buddy{left:37px!important;width:52px!important;height:52px!important;top:calc(50% + 140px)!important}body .music-guide{left:72px!important;bottom:14px!important;max-width:calc(100vw - 85px)}}@media(prefers-reduced-motion:reduce){.quiet-buddy,.quiet-eyes{animation:none!important}}
body .music-buddy{left:62px;right:auto;top:calc(50% + 150px);bottom:auto;width:78px;height:85px;transform:none}body .music-buddy:hover,body .music-buddy.talking{transform:none}body .music-guide{left:145px;right:auto;top:calc(50% + 80px);bottom:auto;border-radius:16px 16px 16px 4px;max-width:calc(100vw - 160px)}.pip-shadow{fill:var(--accent);opacity:.14}.pip-shell{fill:#b8d4dd;stroke:#466f81;stroke-width:2}.pip-panel{fill:#edf5f3;stroke:#7ca5b6;stroke-width:1.5}.pip-limb{fill:none;stroke:#648798;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.pip-mallet{fill:#dca76f;stroke:#8c684b;stroke-width:1.5}.pip-eyes ellipse{fill:#29495c!important;transform-box:fill-box;transform-origin:center;animation:pipBlink 6s infinite}.pip-glint{fill:white}.pip-mouth{fill:none;stroke:#29495c;stroke-width:2;stroke-linecap:round}.pip-cheek{fill:#dba18b;opacity:.65}.pip-keys{stroke:#58798b;stroke-width:3;stroke-linecap:round}.pip-character{animation:pipBreathe 3.5s ease-in-out infinite;transform-origin:44px 83px}.music-buddy:hover .pip-antennae,.music-buddy.talking .pip-antennae{animation:pipWiggle .7s ease-in-out 2;transform-origin:44px 25px}html[data-theme=electronic] .pip-shell{fill:#214b62;stroke:#8bdaf0}html[data-theme=electronic] .pip-panel{fill:#c0e3ec}html[data-theme=electronic] .pip-mallet{fill:#9ddbeb;stroke:#64acc5}@keyframes pipBlink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.12)}}@keyframes pipBreathe{50%{transform:translateY(-3px) rotate(2deg)}}@keyframes pipWiggle{25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}@media(max-width:700px){body .music-buddy{left:38px;width:60px;height:66px;top:calc(50% + 135px)}body .music-guide{left:90px;top:auto;bottom:20px;max-width:calc(100vw - 105px)}}@media(prefers-reduced-motion:reduce){.pip-character,.pip-eyes ellipse,.pip-antennae{animation:none!important}}
.music-buddy{position:fixed;bottom:15px;right:20px;width:62px;height:62px;padding:0;border:0;background:none;cursor:pointer;z-index:151;color:var(--accent);transition:transform .2s}.music-buddy:hover,.music-buddy.talking{transform:translateY(-4px) rotate(-5deg)}.music-buddy svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 5px #00000015)}.buddy-body{fill:var(--bg);stroke:var(--accent);stroke-width:2}.buddy-bar{fill:none;stroke:var(--accent);stroke-width:1;opacity:.25}.music-buddy ellipse{fill:var(--accent)}.buddy-smile{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}body .music-guide{left:auto;right:24px;bottom:86px;border-radius:17px 17px 4px 17px;width:310px;max-width:calc(100vw - 55px)}body .music-guide .buddy-next{font:11px var(--sans);margin:12px 0 0;color:var(--accent);padding:0}.music-guide .buddy-close{position:absolute;right:10px;top:8px}.music-guide strong{padding-right:15px;display:block}@media(max-width:700px){.music-buddy{right:10px;bottom:8px;width:52px;height:52px}body .music-guide{right:14px;bottom:68px}}
.music-guide{position:fixed;left:100px;bottom:24px;z-index:150;display:flex;align-items:flex-start;gap:13px;width:350px;max-width:calc(100vw - 120px);padding:18px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);box-shadow:0 8px 30px #00000018;font:13px/1.5 var(--sans);animation:guideArrive .3s ease-out}.music-guide[hidden]{display:none}.music-guide strong{font-weight:600;font-size:14px}.music-guide p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.music-guide .guide-symbol{font-size:27px;color:var(--accent);line-height:1.2}.music-guide button{margin-left:auto;flex-shrink:0;border:0;background:none;color:var(--muted);font-size:20px;cursor:pointer;padding:0 2px}.music-guide button:hover{color:var(--ink)}@keyframes guideArrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.music-guide{left:76px;bottom:14px;max-width:calc(100vw - 90px);padding:14px;gap:9px}.music-guide .guide-symbol{font-size:21px}}@media(prefers-reduced-motion:reduce){.music-guide{animation:none}}
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Karla:wght@400;500;600&family=Chakra+Petch:wght@400;500;600&display=swap');
html[data-theme=acoustic]{--sans:'Karla',sans-serif;--display:'Fraunces',Georgia,serif}html[data-theme=electronic]{--sans:'Chakra Petch',sans-serif;--display:'Chakra Petch',sans-serif}html[data-theme] body{font-family:var(--sans)}html[data-theme] body main h1,html[data-theme] body main h2,html[data-theme] body main h3,html[data-theme] .brand{font-family:var(--display)!important}html[data-theme=acoustic] body main h1,html[data-theme=acoustic] body main h2,html[data-theme=acoustic] body main h3{font-weight:500;font-variation-settings:'SOFT' 45,'WONK' 1;letter-spacing:-.025em}html[data-theme=electronic] body main h1,html[data-theme=electronic] body main h2,html[data-theme=electronic] body main h3{letter-spacing:-.025em}html[data-theme=acoustic] body main .hero-intro,html[data-theme=acoustic] body main .work-head,html[data-theme=acoustic] body main .detail-heading,html[data-theme=acoustic] body main .detail-content,html[data-theme=acoustic] body main .about-copy,html[data-theme=acoustic] body main .music>div,html[data-theme=acoustic] body main .projecthero,html[data-theme=acoustic] body main .casebody section{background:#f1f2ecd9!important;backdrop-filter:blur(4px)!important}html[data-theme=electronic] body.ambient-hot:not(.module-hot){cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='36' viewBox='0 0 32 36'%3E%3Cpath d='M20 3L6 21h10l-3 12 14-19H17z' fill='%237bdcff' stroke='%23d5f8ff' stroke-width='2'/%3E%3Cpath d='M20 3L6 21h10l-3 12 14-19H17z' fill='none' stroke='%237bdcff' stroke-width='6' opacity='.22'/%3E%3C/svg%3E") 13 18,crosshair}
html[data-theme=electronic] body main{background:#111e2a8c;border-radius:18px;backdrop-filter:blur(2px)!important}html[data-theme=electronic] body main #work,html[data-theme=electronic] body main .about,html[data-theme=electronic] body main .music,html[data-theme=electronic] body main .contact{background:#111e2ab8!important;border-radius:16px!important}html[data-theme=electronic] body main .hero-intro,html[data-theme=electronic] body main .work-head,html[data-theme=electronic] body main .detail-heading,html[data-theme=electronic] body main .detail-content,html[data-theme=electronic] body main .about-copy,html[data-theme=electronic] body main .music>div,html[data-theme=electronic] body main .projecthero,html[data-theme=electronic] body main .casebody section{background:#10202eeb!important;backdrop-filter:blur(7px)!important}
html[data-theme] body main .hero-intro,html[data-theme] body main .work-head,html[data-theme] body main .detail-heading,html[data-theme] body main .detail-content,html[data-theme] body main .about-copy,html[data-theme] body main .music>div,html[data-theme] body main .projecthero,html[data-theme] body main .casebody section{border-radius:14px!important;padding:24px 30px;box-sizing:border-box}html[data-theme] body main .hero-intro{max-width:740px}html[data-theme] body main .music>div{max-width:790px}html[data-theme] body main .casebody section{padding:30px 36px;margin:22px 0;min-width:0}html[data-theme] body main .casebody section>p{max-width:72ch}html[data-theme] body main .projecthero{padding:34px 40px}html[data-theme] body main .detail-heading{align-self:start}html[data-theme] body main .detail-content{height:100%}@media(max-width:700px){html[data-theme] body main .hero-intro,html[data-theme] body main .work-head,html[data-theme] body main .detail-heading,html[data-theme] body main .detail-content,html[data-theme] body main .about-copy,html[data-theme] body main .music>div,html[data-theme] body main .projecthero,html[data-theme] body main .casebody section{padding:20px;border-radius:12px!important}}
html .signal-diagram.playing .signal-wire{animation:none!important;stroke-dasharray:none!important;stroke:#70c0dc55}.signal-diagram .signal-packet{fill:#e4fcff;stroke:#72e1ff;stroke-width:5;stroke-opacity:.25;paint-order:stroke fill;filter:drop-shadow(0 0 3px #8eeaff)}.signal-diagram .lit rect{stroke:#e6fdff;stroke-width:2;fill:#24556be6}.signal-diagram .node-pulse{stroke:#9deeff;stroke-width:2;filter:none}.signal-diagram .lit text{fill:#fff}
html[data-theme=electronic] body>.signal-diagram{z-index:0}html[data-theme=electronic] body main,html[data-theme=electronic] body header{z-index:1}html[data-theme=electronic]{--ink:#edf7fb;--muted:#c2d7e2}html[data-theme=electronic] body main .hero-intro,html[data-theme=electronic] body main .work-head,html[data-theme=electronic] body main .detail-heading,html[data-theme=electronic] body main .detail-content,html[data-theme=electronic] body main .about-copy,html[data-theme=electronic] body main .music>div,html[data-theme=electronic] body main .projecthero,html[data-theme=electronic] body main .casebody section{backdrop-filter:blur(4px)!important;background:#111e2ac4;border-radius:3px}html[data-theme=electronic] body main p,html[data-theme=electronic] body main li{opacity:1;color:#d6e7f0}html[data-theme=electronic] body main h1,html[data-theme=electronic] body main h2,html[data-theme=electronic] body main h3{color:#f1f9fc}.signal-diagram.playing .signal-wire{stroke:#8dddf0a6;stroke-dasharray:3 16;animation:wireTravel 1.2s linear infinite}
.signal-diagram{display:none;position:fixed;inset:0;width:100%;height:100vh;z-index:2;pointer-events:none;contain:strict}html[data-theme=electronic] .signal-diagram{display:block}html[data-theme=electronic] body>canvas.electronic-canvas{display:none!important}.signal-diagram rect{fill:#102b3be0;stroke:#7ac9e6;stroke-width:1}.signal-diagram text{fill:#b9e5f1;font:10px monospace}.signal-wire{fill:none;stroke:#70c0dc66;stroke-width:1;stroke-dasharray:4 12}.signal-diagram.playing .signal-wire{animation:wireTravel 1.5s linear infinite}.node-pulse{fill:none;stroke:#9de8ff;opacity:0}.lit .node-pulse{animation:nodeBloom .65s ease-out}.signal-diagram .lit rect{stroke:#e0fbff}@keyframes wireTravel{to{stroke-dashoffset:-32}}@keyframes nodeBloom{from{r:24;opacity:.8}to{r:58;opacity:0}}html[data-theme=electronic] *{backdrop-filter:none!important}html[data-theme=electronic] body,html[data-theme=electronic] main,html[data-theme=electronic] .hero{transition:none!important}
html body>.global-modes{display:flex!important;position:fixed!important;left:50%!important;top:10px!important;right:auto!important;transform:translateX(-50%)!important;z-index:2147483647!important;opacity:1!important;filter:none!important;backdrop-filter:none!important;pointer-events:auto!important;background:var(--bg)!important}html body>.global-modes button{pointer-events:auto!important}html[data-theme=electronic] body>canvas.electronic-canvas{z-index:2;opacity:.65!important}html[data-theme=electronic] header,html[data-theme=electronic] main{z-index:1}
html body .global-modes,html body:has(#work) .global-modes{left:50%!important;right:auto!important;transform:translateX(-50%);z-index:2147483647!important;pointer-events:auto!important;isolation:isolate}body>canvas.electronic-canvas{position:fixed!important;inset:0;z-index:0;pointer-events:none;opacity:1!important}html[data-theme=electronic] .resonance-field{display:none!important}
html body .global-modes,html body:has(#work) .global-modes{display:flex!important;position:fixed;top:12px;right:18px;z-index:100;gap:3px;padding:4px;border:1px solid var(--line);border-radius:20px;background:var(--bg);box-shadow:0 3px 14px #00000012}html body .global-modes button{border:0;border-radius:16px;padding:7px 12px}html[data-theme=electronic] body .hero,html[data-theme=electronic] body #work,html[data-theme=electronic] body .about,html[data-theme=electronic] body .music,html[data-theme=electronic] body .contact{backdrop-filter:none!important}html[data-theme=electronic] .detail-content{backdrop-filter:none!important}@media(max-width:700px){html body .global-modes{right:8px;top:8px}}
html[data-theme=acoustic] body .hero,html[data-theme=acoustic] body #work,html[data-theme=acoustic] body .about,html[data-theme=acoustic] body .music,html[data-theme=acoustic] body .contact{background:color-mix(in srgb,var(--bg) 36%,transparent)!important;backdrop-filter:blur(3px)!important}html[data-theme=acoustic] body .detail-content{background:color-mix(in srgb,var(--bg) 54%,transparent)!important;backdrop-filter:blur(4px)}
html[data-theme=electronic] .resonance-field canvas{position:fixed;top:0;left:0}body>.score-dock.floating-score button{display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;text-indent:0!important}body>.score-dock.floating-score .generate-tool:before{inset:0!important;transform-origin:center;filter:blur(3px)}body>.score-dock.floating-score label{position:relative}body>.score-dock.floating-score .speed-value{display:block!important;position:absolute;left:28px;top:35px;white-space:nowrap;font:10px var(--mono);color:var(--accent);background:var(--bg);padding:3px;border-radius:3px}
body>.score-dock.floating-score .generate-tool{position:relative;isolation:isolate;animation:none!important;overflow:visible}body>.score-dock.floating-score .generate-tool:before{content:'';position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from 0deg,#7dd5ff,#9b9bff,#ef9ecf,#f5c97e,#a4e6af,#7dd5ff);opacity:.32;z-index:-1;filter:blur(2px);animation:rainbowFlow 7s linear infinite}body>.score-dock.floating-score .generate-tool.generating{animation:none!important;color:var(--ink)}body>.score-dock.floating-score .generate-tool.generating:before{inset:-7px;opacity:.95;filter:blur(5px);animation:rainbowFlow .7s linear infinite}body>.score-dock.floating-score .generate-tool.generating:after{background:linear-gradient(100deg,#88d7f4,#bcadfa,#efb1c7,#e9d2a0,#a5dfc0,#88d7f4);background-size:300% 100%;animation:rainbowLabel 1.3s linear infinite;color:#213948;border-color:transparent}@keyframes rainbowFlow{to{transform:rotate(360deg)}}@keyframes rainbowLabel{to{background-position:300% 0}}@media(prefers-reduced-motion:reduce){body>.score-dock.floating-score .generate-tool:before{animation:none}}
html[data-theme=electronic] body:has(#work) .resonance-field{opacity:1!important;background:radial-gradient(ellipse at 90% 25%,#30698626,transparent 55%)}html[data-theme=electronic] body:has(#work) .hero,html[data-theme=electronic] #work,html[data-theme=electronic] body:has(#work) .about,html[data-theme=electronic] body:has(#work) .music,html[data-theme=electronic] body:has(#work) .contact{background:color-mix(in srgb,var(--bg) 32%,transparent);backdrop-filter:blur(1px)}
body>.score-dock.floating-score{overflow:visible;opacity:.9}body>.score-dock.floating-score button{position:relative}body>.score-dock.floating-score button:after{content:attr(data-label);position:absolute;left:34px;top:6px;padding:3px 7px;background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--ink);font:9px/1.3 var(--sans);white-space:nowrap;opacity:.85;pointer-events:none}body>.score-dock.floating-score label:has(#ambient-volume){position:relative}body>.score-dock.floating-score #volume-value{display:block!important;position:absolute;left:28px;top:35px;font:10px var(--mono);color:var(--accent);background:var(--bg);padding:3px;border-radius:3px}.generate-tool{animation:generateHint 4s ease-in-out infinite}.generate-tool.generating{animation:generateSpin .6s ease-in-out 2!important}@keyframes generateHint{0%,70%,100%{box-shadow:0 0 0 0 transparent}80%{box-shadow:0 0 0 5px #8cbdd535;color:var(--accent)}}@keyframes generateSpin{50%{transform:rotate(180deg);box-shadow:0 0 12px var(--accent)}}html[data-theme=electronic] .resonance-field{opacity:1!important}html[data-theme=electronic] .resonance-field canvas{opacity:1!important}html[data-theme=electronic] .hero,html[data-theme=electronic] #work,html[data-theme=electronic] .about,html[data-theme=electronic] .music,html[data-theme=electronic] .contact{background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(1px)}
::selection{background:#9ec4d75c;color:inherit}body>.score-dock.floating-score{left:10px!important;top:50%!important;transform:translateY(-50%)!important;max-width:44px!important;width:44px!important;display:flex!important;flex-direction:column!important;gap:4px!important;padding:7px 4px!important;border-radius:24px!important;opacity:.72;transition:opacity .2s}body>.score-dock.floating-score:hover,body>.score-dock.floating-score:focus-within{opacity:1}body>.score-dock.floating-score button{width:30px!important;height:30px;padding:0!important;border-radius:50%!important;font-size:17px!important}body>.score-dock.floating-score label{width:28px!important;height:90px;justify-content:center}body>.score-dock.floating-score input{writing-mode:vertical-lr;direction:rtl;width:4px!important;height:75px;accent-color:var(--accent)}body>.score-dock.floating-score output{display:none}@media(max-width:700px){body>.score-dock.floating-score{left:3px!important;max-width:32px!important;width:32px!important;padding:5px 1px!important}body>.score-dock.floating-score button{width:25px!important;height:27px;font-size:15px!important}}
body>.score-dock.floating-score{position:fixed;left:14px;right:auto;bottom:auto;transform:none;z-index:40;width:auto;max-width:calc(100vw - 28px);margin:0;padding:5px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:5px;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);box-shadow:0 4px 18px #0000000b;transition:top .28s ease}body>.score-dock.floating-score>span{font-size:8px;margin:0 7px 0 0}body>.score-dock.floating-score button{width:auto;padding:6px 9px;font-size:10px;border:0;border-radius:4px;background:transparent}body>.score-dock.floating-score button:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}body>.score-dock.floating-score label{display:flex;width:130px;align-items:center;gap:6px}body>.score-dock.floating-score input{width:65px}body>.score-dock.floating-score small{flex-basis:100%;font:8px/1.5 var(--mono);color:var(--muted)}html[data-theme=electronic] body>.floating-score{border-color:#659dbb80;box-shadow:0 0 22px #36ceff12}html[data-theme] .marimba{grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-theme] #work>.score-dock{position:static;transform:none;width:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 26px;padding:12px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;backdrop-filter:none}html[data-theme] #work>.score-dock>span{margin:0 auto 0 0;font-size:9px}html[data-theme] #work>.score-dock button{width:auto;border:1px solid var(--line);border-radius:20px;padding:9px 14px;background:transparent;font-size:11px}html[data-theme] #work>.score-dock button[data-action=play]{background:var(--accent);color:var(--bg);border-color:var(--accent)}html[data-theme] #work>.score-dock label{display:flex;align-items:center;gap:8px;width:150px}html[data-theme] #work>.score-dock input{width:65px}html[data-theme] .marimba{grid-template-columns:repeat(3,minmax(0,1fr))}
body{position:relative;min-height:100vh}.resonance-field{position:absolute!important;top:0;left:0;right:0;bottom:auto!important;width:100%;overflow:hidden;pointer-events:none;z-index:0!important}.resonance-field canvas{touch-action:pan-y}header,main{position:relative;z-index:1}.ambient-hint{position:fixed;left:0;top:0;opacity:0;z-index:20;padding:5px 8px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--accent);font:9px/1.4 var(--mono);letter-spacing:.04em;transition:opacity .35s;white-space:nowrap}.ambient-hint.show{opacity:.72}.ambient-hot{cursor:crosshair}html[data-theme="acoustic"] body.ambient-hot:not(.module-hot){cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='30' viewBox='0 0 26 30'%3E%3Cpath d='M18 2v18.5c-1.5-1.2-4-1.4-6.2-.3-2.8 1.3-4.2 4-3 6s4.7 2.5 7.5 1.2c2.1-1 3.3-2.8 3.3-4.5V7l5 1.8V4.7z' fill='%234b829f'/%3E%3C/svg%3E") 18 25,crosshair}.module-hot{cursor:grab}.dragging-module{cursor:grabbing!important;user-select:none}
html[data-theme] .hero{display:block;border:none;border-left:2px solid var(--line);box-shadow:none;padding:28px;margin:36px 0 38px;background:transparent}html[data-theme] .hero:before{font:10px/1.6 var(--mono);display:block;margin-bottom:24px;color:var(--accent)}html[data-theme] .hero-title{font-size:72px;line-height:1.05;letter-spacing:-3px;margin:18px 0 27px}html[data-theme] .hero-intro p{font-size:20px;line-height:1.6}html[data-theme] #work{border:1px solid var(--line);padding:32px;margin:0 0 35px;background:transparent}html[data-theme] #work:before{content:'SELECTED WORK';display:block;font:10px/1.6 var(--mono);color:var(--accent);padding:0 0 24px;border-bottom:1px solid var(--line);margin:0 0 28px}html[data-theme] .work-head{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:end;margin-bottom:35px}html[data-theme] .work-head:before{display:none}html[data-theme] .work-head h2{font:500 36px/1.15 var(--sans);letter-spacing:-1px}html[data-theme] .work-head>p{font:14px/1.7 var(--sans);max-width:none;margin:0}html[data-theme] .instrument-toolbar{padding:15px;border-radius:3px;border-top:1px solid var(--line);gap:20px}html[data-theme] .mode-switch{padding:4px;border-radius:4px}html[data-theme] .mode-switch button{font:12px var(--sans);padding:10px 17px;border-radius:3px}html[data-theme] #sound{font:11px var(--sans);padding:9px 14px;border-radius:3px}html[data-theme] #mode-description{font:12px/1.7 var(--sans);margin:18px 0 28px;min-height:41px}html[data-theme] .marimba{margin:0;padding:0 0 50px;gap:20px}html[data-theme] .marimba:before{top:65px;bottom:0;border-radius:4px}html[data-theme] .bank-title{display:flex;gap:12px;border:1px solid var(--line);padding:10px;margin:0 0 22px;font:500 14px/1.5 var(--sans);letter-spacing:0}html[data-theme] .bank-title>span{font:10px/2 var(--mono)}html[data-theme] .bank-bars{height:310px;gap:12px}html[data-theme] .bar-name{font:500 17px var(--sans)}html[data-theme] .bar:after{height:40px}html[data-theme] .instrument-caption{font:9px/1.7 var(--mono);padding:23px 0 28px}html[data-theme] #project-detail{border:1px solid var(--line);padding:25px;margin:25px 0 0;display:grid;grid-template-columns:1fr 1.4fr;gap:25px;min-height:410px;background:transparent}html[data-theme] #project-detail:before{display:none}html[data-theme] .detail-heading h3{font:500 30px/1.2 var(--sans);letter-spacing:-.8px;margin:12px 0}html[data-theme] .purpose{font:17px/1.6 var(--sans)}html[data-theme] .detail-content{padding:22px;border-radius:3px;border:1px solid var(--line)}html[data-theme] .detail-content:before{display:none}html[data-theme] .build-facts li{font:15px/1.6 var(--sans);padding:10px 0}html[data-theme] .signal-path{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0;margin:24px 0 0}html[data-theme] .signal-path li{font:10px/1.6 var(--mono);border:1px solid var(--line);padding:10px;margin:0}html[data-theme] .signal-path li:after{display:none}html[data-theme] .signal-path li span{display:block;font-size:9px;margin:0 0 6px}html[data-theme] .about{display:grid;grid-template-columns:1fr 1fr;padding:30px;margin-top:20px;gap:35px;border:1px solid var(--line);background:transparent}html[data-theme] .about:before{display:none}html[data-theme] .music{padding:30px;margin:30px 0 40px;border:1px solid var(--line);border-radius:3px;background:transparent}html[data-theme] .contact{display:flex;gap:40px;padding:30px;margin:0 0 30px;border:1px solid var(--line);background:transparent}html[data-theme] .contact:before{display:none}html[data-theme] .about h2,html[data-theme] .music h2,html[data-theme] .contact h2{font:500 33px/1.2 var(--sans);letter-spacing:-1px}html[data-theme] .about p,html[data-theme] .music p{font:16px/1.7 var(--sans)}html[data-theme=acoustic] .detail-content{background:#f1f2ecd9}html[data-theme=electronic] .detail-content{background:#0c1c28dc}html[data-theme=electronic] #work[data-mode=analysis] .detail-content{background:#0c1c28dc}html[data-theme] .hero,html[data-theme] .work-head,html[data-theme] .about-copy,html[data-theme] .music>div{backdrop-filter:blur(1px)}
@media(max-width:700px){html[data-theme] .hero{padding:20px;margin:25px 0}html[data-theme] .hero-title{font-size:46px;letter-spacing:-2px}html[data-theme] .hero-intro p{font-size:17px}html[data-theme] #work{padding:20px 12px}html[data-theme] .work-head{display:block}html[data-theme] .work-head h2{font-size:29px}html[data-theme] .work-head>p{font-size:13px;margin-top:16px}html[data-theme] .instrument-toolbar{padding:10px 5px;gap:8px}html[data-theme] .mode-switch button{padding:9px 10px;font-size:10px}html[data-theme] #sound{padding:9px;font-size:10px}html[data-theme] #mode-description{font-size:11px;min-height:57px}html[data-theme] .marimba{gap:9px;padding-bottom:40px}html[data-theme] .bank-title{display:block;font-size:11px;padding:7px}html[data-theme] .bank-title>span{display:block}html[data-theme] .bank-bars{height:255px;gap:6px}html[data-theme] .bar-name{font-size:12px}html[data-theme] .bar:after{height:30px}html[data-theme] #project-detail{display:block;padding:18px 14px;min-height:0}html[data-theme] .detail-content{padding:17px 14px;margin-top:28px}html[data-theme] .detail-heading h3{font-size:27px}html[data-theme] .purpose{font-size:16px}html[data-theme] .build-facts li{font-size:14px}html[data-theme] .about{display:block;padding:23px 20px}html[data-theme] .music,html[data-theme] .contact{padding:23px 20px}html[data-theme] .contact{display:block}html[data-theme] .about h2,html[data-theme] .music h2,html[data-theme] .contact h2{font-size:29px}.background-controls{right:10px;bottom:10px;max-width:calc(100vw - 20px);flex-wrap:wrap;justify-content:flex-end}.background-help{flex-basis:100%;max-width:100%;font-size:10px}.background-controls button{font-size:10px;padding:9px 11px}}
html[data-theme] .hero .eyebrow{font:10px/1.6 var(--mono)}html[data-theme] #project-detail{min-height:570px}@media(max-width:700px){html[data-theme] #project-detail{min-height:0}}
html[data-theme=acoustic] .background-editing .resonance-field canvas{touch-action:pan-y}
html[data-theme] .hero,html[data-theme] #work,html[data-theme] .about,html[data-theme] .music,html[data-theme] .contact{backdrop-filter:blur(3px);background:color-mix(in srgb,var(--bg) 78%,transparent)}
html[data-theme] .hero{background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 92%,transparent),color-mix(in srgb,var(--bg) 58%,transparent) 72%,transparent)}
html[data-theme=acoustic] .detail-content{background:#f1f2eceb}html[data-theme=electronic] .detail-content,html[data-theme=electronic] #work[data-mode=analysis] .detail-content{background:#0c1c28eb}
.ambient-tools{position:fixed;z-index:30;left:18px;bottom:18px;display:flex;align-items:center;gap:5px;padding:5px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:5px;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(10px);box-shadow:0 7px 25px #00000010;transition:opacity .25s,transform .25s}.ambient-tools>span{padding:0 7px;color:var(--accent);font:9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.ambient-tools button{border:0;border-left:1px solid var(--line);padding:7px 9px;background:transparent;color:var(--ink);font:10px/1 var(--sans);cursor:pointer}.ambient-tools button:hover,.ambient-tools button:focus-visible{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ambient-tools.running{box-shadow:0 0 0 1px var(--accent),0 7px 25px #00000018}.ambient-tools.running>span{animation:toolPulse .7s ease-in-out infinite alternate}@keyframes toolPulse{to{opacity:.35}}
.score-dock{position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%);width:210px;display:grid;gap:7px;z-index:4;padding:10px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(8px)}.score-dock>span{color:var(--accent);font:9px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}.score-dock button{width:100%;text-align:left;border:1px solid var(--line);border-radius:3px;padding:8px 9px;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--ink);font:11px var(--sans);cursor:pointer}.score-dock button:hover,.score-dock button:focus-visible{border-color:var(--accent)}.score-dock button[aria-pressed=true]{color:var(--accent)}.score-dock label{display:grid;grid-template-columns:1fr auto;gap:5px 8px;align-items:center;color:var(--muted);font:10px var(--sans)}.score-dock input{grid-column:1/-1;width:100%;accent-color:var(--accent)}.score-dock output{color:var(--ink);font-variant-numeric:tabular-nums}.score-dock[hidden]{display:none!important}@media(max-width:1180px){.score-dock{position:fixed;left:auto;right:12px;top:82px;bottom:auto;transform:none;width:180px;z-index:25}}@media(max-width:700px){.ambient-tools{left:8px;bottom:8px;max-width:calc(100vw - 16px)}.ambient-tools>span{display:none}.ambient-tools button{font-size:9px;padding:7px}.score-dock{top:auto;right:8px;bottom:8px;width:154px;gap:4px;padding:6px}.score-dock button{padding:6px;font-size:9px}.score-dock label{font-size:9px}.score-dock input{height:12px}}
.marimba{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 190px}.score-dock{position:static;width:auto;transform:none;grid-column:4;grid-row:1;align-self:stretch;margin:42px 0 0;padding:10px 0 10px 12px;border-left:1px solid var(--line);display:grid;grid-template-columns:1fr;gap:6px;background:transparent;backdrop-filter:none}.score-dock button{padding:7px;font-size:10px}.score-dock>span{margin-bottom:4px}@media(max-width:1180px){html[data-theme] .marimba{grid-template-columns:repeat(3,minmax(0,1fr))}.score-dock{position:static;grid-column:1/-1;grid-row:auto;width:auto;transform:none;margin:0 5px;padding:9px;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:4px}.score-dock>span{grid-column:1/-1}.score-dock label{grid-column:span 2}}@media(max-width:700px){html[data-theme] .marimba{grid-template-columns:repeat(3,minmax(0,1fr))}.score-dock{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.score-dock button{text-align:center;font-size:9px;padding:7px 4px}.score-dock label{grid-column:1/-1}}
.score-dock{left:calc(100% + 14px);top:50%;transform:translateY(-50%);width:210px;position:absolute;z-index:4}
@media(max-width:1180px){.score-dock{position:absolute;left:calc(100% + 8px);right:auto;top:50%;bottom:auto;transform:translateY(-50%);width:170px;z-index:4}}
@media(max-width:700px){.score-dock{position:static;width:auto;transform:none;margin:18px 5px 0;padding:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid var(--line);border-radius:4px}.score-dock>span{grid-column:1/-1}.score-dock button{text-align:center}.score-dock label{grid-column:1/-1}}
.score-dock{position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%);width:210px;display:grid;gap:7px;z-index:4;padding:10px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(8px)}.score-dock>span{color:var(--accent);font:9px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}.score-dock button{width:100%;text-align:left;border:1px solid var(--line);border-radius:3px;padding:8px 9px;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--ink);font:11px var(--sans);cursor:pointer}.score-dock button:hover,.score-dock button:focus-visible{border-color:var(--accent)}.score-dock button[aria-pressed=true]{color:var(--accent)}.score-dock label{display:grid;grid-template-columns:1fr auto;gap:5px 8px;align-items:center;color:var(--muted);font:10px var(--sans)}.score-dock input{grid-column:1/-1;width:100%;accent-color:var(--accent)}.score-dock output{color:var(--ink);font-variant-numeric:tabular-nums}.score-dock[hidden]{display:none!important}@media(max-width:1180px){.score-dock{position:fixed;left:auto;right:12px;top:82px;bottom:auto;transform:none;width:180px;z-index:25}}@media(max-width:700px){.ambient-tools{left:8px;bottom:8px;max-width:calc(100vw - 16px)}.ambient-tools>span{display:none}.ambient-tools button{font-size:9px;padding:7px}.score-dock{top:auto;right:8px;bottom:8px;width:154px;gap:4px;padding:6px}.score-dock button{padding:6px;font-size:9px}.score-dock label{font-size:9px}.score-dock input{height:12px}}
