:root{--ink:#e9e7e0;--ink-dim:#e9e7e075;--ink-faint:#e9e7e03d;--gold:#b79453;--ground:#17181b;--serif:Georgia, "Times New Roman", "Nimbus Roman", serif;--sans:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding:0}body{overflow-x:hidden}#root{isolation:isolate}.site{position:relative}.stage{z-index:0;position:fixed;inset:0}.stage canvas{width:100%;height:100%;display:block}.scroll-track{z-index:-1;pointer-events:none;position:relative}.overlay{pointer-events:none;position:absolute;inset:0}.chapter{opacity:0;will-change:opacity, transform;max-width:30rem;position:absolute}.chapter-left{top:50%;left:clamp(1.75rem,7vw,7rem);transform:translateY(-50%)}.chapter-centre{text-align:center;max-width:36rem;top:24%;left:50%;translate:-50% -50%}.chapter-interior{background:radial-gradient(125% 100% at 0%,#0a0b0de6 0%,#0a0b0db8 45%,#0a0b0d00 100%);border-radius:3px;margin:-1.6rem -2rem -1.8rem;padding:1.6rem 2rem 1.8rem}.chapter-interior.chapter-centre{background:radial-gradient(80% 135%,#0a0b0ddb 0%,#0a0b0d94 55%,#0a0b0d00 100%)}.eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 1.4rem;font-size:.68rem}.title{font-family:var(--serif);letter-spacing:-.01em;white-space:pre-line;color:var(--ink);margin:0;font-size:clamp(2rem,4.6vw,3.6rem);font-weight:400;line-height:1.14}.mark{font-family:var(--serif);letter-spacing:.42em;text-indent:.42em;color:var(--gold);margin:0;font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:400}.body{max-width:26rem;color:var(--ink-dim);margin:1.5rem 0 0;font-size:.94rem;line-height:1.65}.items{flex-direction:column;gap:.55rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.items li{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);font-size:.74rem}.term{opacity:0;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--gold);white-space:nowrap;will-change:opacity;text-shadow:0 1px 10px #0a0b0deb,0 0 26px #0a0b0dc7;margin:0;font-size:.72rem;position:absolute;bottom:12vh;left:50%;transform:translate(-50%)}.play-hint{text-align:center;opacity:0;will-change:opacity;position:absolute;bottom:clamp(2rem,6vh,4rem);left:50%;translate:-50%}.play-hint .eyebrow{margin-bottom:.7rem}.hint-line{letter-spacing:.16em;text-transform:lowercase;color:var(--ink-faint);margin:.25rem 0;font-size:.7rem}.portfolio{pointer-events:none;position:absolute;inset:0}.pf-index{opacity:0;text-align:right;will-change:opacity;max-width:30rem;margin:-2rem -2.4rem;padding:2rem 2.4rem;position:absolute;top:50%;right:clamp(1.75rem,7vw,7rem);translate:0 -50%}.pf-index:before{content:"";pointer-events:none;background:radial-gradient(78% 66% at 70%,#0a0b0ded 0%,#0a0b0db8 46%,#0a0b0d00 100%);position:absolute;inset:-12% -10%}.pf-index>*{position:relative}.pf-list{margin:1.6rem 0 0;padding:0;list-style:none}.pf-entry{opacity:0;will-change:opacity, transform}.pf-entry+.pf-entry{margin-top:1.5rem}.pf-entry-button{width:100%;color:inherit;font:inherit;text-align:right;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr;gap:0 .9rem;padding:.35rem 0;display:grid}.pf-entry-button:focus-visible{outline:1px solid var(--gold);outline-offset:6px}.pf-number{letter-spacing:.22em;color:var(--ink-faint);font-variant-numeric:tabular-nums;grid-row:1/span 3;align-self:start;padding-top:.45rem;font-size:.66rem}.pf-title{font-family:var(--serif);color:var(--ink);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.1;transition:color .2s}.pf-entry-button:hover .pf-title,.pf-entry-button:focus-visible .pf-title{color:var(--gold)}.pf-discipline{letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:.4rem 0 0;font-size:.66rem}.pf-summary{color:var(--ink-dim);margin-top:.35rem;font-size:.86rem;line-height:1.55}.pf-chapter{opacity:0;will-change:opacity;max-width:27rem;margin:-2rem -2.4rem;padding:2rem 2.4rem;position:absolute;top:50%;translate:0 -50%}.pf-chapter[data-side=left]{text-align:left;left:clamp(1.75rem,7vw,7rem)}.pf-chapter[data-side=right]{text-align:right;right:clamp(1.75rem,7vw,7rem)}.pf-chapter:before{content:"";pointer-events:none;background:radial-gradient(78% 68% at 30%,#0a0b0df2 0%,#0a0b0df0 58%,#0a0b0db3 76%,#0a0b0d00 100%);position:absolute;inset:-14% -10%}.pf-chapter[data-side=right]:before{background:radial-gradient(78% 68% at 70%,#0a0b0df2 0%,#0a0b0df0 58%,#0a0b0db3 76%,#0a0b0d00 100%)}.pf-chapter>*{position:relative}.pf-chapter[data-side=right] .pf-rule{transform-origin:100%;background:linear-gradient(to left, var(--gold) 0%, #b7945300 100%)}.pf-chapter[data-side=right] .pf-captions li,.pf-chapter[data-side=right] .pf-links{justify-content:flex-end}.pf-rule{background:linear-gradient(to right, var(--gold) 0%, #b7945300 100%);transform-origin:0;height:1px;margin-bottom:2rem;transform:scaleX(0)}.pf-beat{opacity:0;will-change:opacity, transform}.pf-beat+.pf-beat{margin-top:1.6rem}.pf-captions{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.pf-captions li{align-items:baseline;gap:.9rem;line-height:1.5;display:flex}.pf-media-kind{letter-spacing:.22em;text-transform:uppercase;min-width:5.5rem;color:var(--gold);flex:none;font-size:.62rem}.pf-media-caption{color:var(--ink-dim);font-size:.86rem}.pf-stack{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.72rem}.pf-status{color:var(--ink-dim);margin:.6rem 0 0;font-size:.86rem}.pf-links{gap:1.2rem;margin:.9rem 0 0;display:flex}.pf-links a{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-size:.74rem}.pf-unwritten{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px dashed #b7945373;margin:1.4rem 0 0;padding:.3rem .6rem;font-size:.62rem}@media (width<=760px){.pf-index,.pf-chapter{text-align:left;max-width:none;inset:auto 1.5rem 12vh;translate:none}.pf-entry-button{text-align:left}}@media (prefers-reduced-motion:reduce){.pf-entry,.pf-beat,.pf-chapter{transition:none}.pf-rule{transform:scaleX(1)}}.signature{text-align:center;pointer-events:none;width:min(46rem,100vw - 3rem);padding:2.4rem 2.6rem;position:absolute;top:50%;left:50%;translate:-50% -50%}.signature:before{content:"";pointer-events:none;background:radial-gradient(76% 72% at 50% 52%,#0a0b0df2 0%,#0a0b0dcc 45%,#0a0b0d00 100%);position:absolute;inset:-6% -12%}.signature>*{position:relative}.sig-mark,.sig-statement,.sig-contact,.sig-network,.sig-encore{opacity:0;will-change:opacity, transform}.sig-mark .mark{font-size:clamp(1.3rem,3vw,2.1rem)}.sig-line{letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin:1rem 0 0;font-size:.72rem}.sig-statement{margin-top:2.2rem}.sig-statement .body{max-width:34rem;color:var(--ink-dim);margin:0 auto}.sig-contact{margin-top:2.6rem}.sig-encore{margin-top:2.2rem}.sig-encore .eyebrow{margin-bottom:.8rem}.sig-channels{font-style:normal}.sig-channels ul{flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin:0;padding:0;list-style:none;display:flex}.sig-channels a{letter-spacing:.14em;color:var(--gold);border-bottom:1px solid #b7945352;padding-bottom:.2rem;font-size:.8rem;text-decoration:none;transition:border-color .2s,color .2s}.sig-channels a:hover,.sig-channels a:focus-visible{border-bottom-color:var(--gold);color:var(--ink)}.sig-nav{flex-wrap:wrap;justify-content:center;gap:.6rem 1.6rem;margin-top:1.8rem;display:flex}.sig-nav button{color:var(--ink-faint);font:inherit;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:.4rem 0;font-size:.7rem;transition:color .2s}.sig-nav button:hover,.sig-nav button:focus-visible{color:var(--gold)}.sig-nav button:focus-visible,.sig-channels a:focus-visible{outline:1px solid var(--gold);outline-offset:6px}.sig-blocked{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px dashed #b7945373;margin:1.8rem auto 0;padding:.3rem .7rem;font-size:.62rem;display:inline-block}@media (prefers-reduced-motion:reduce){.sig-mark,.sig-statement,.sig-contact,.sig-network,.sig-encore{transition:none}}.gate{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f1012d1;place-items:center;display:grid;position:fixed;inset:0}.gate-inner{flex-direction:column;align-items:center;gap:1.9rem;display:flex}.gate-mark{font-family:var(--serif);letter-spacing:.44em;text-indent:.44em;color:var(--gold);margin:0;font-size:.92rem}.gate-enter{color:var(--ink);font:inherit;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #b7945373;border-radius:1px;padding:.85rem 3.4rem;font-size:.78rem;transition:border-color .22s,color .22s}.gate-enter:hover{border-color:var(--gold);color:var(--gold)}.gate-silent{color:var(--ink-faint);font:inherit;letter-spacing:.14em;cursor:pointer;background:0 0;border:0;font-size:.7rem}.gate-silent:hover{color:var(--ink-dim)}.dev-rig{z-index:30;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.dev-marks,.inspector{gap:4px;display:flex}.inspector{flex-direction:column;align-items:flex-end}.dev-rig button{color:var(--ink-faint);font:inherit;letter-spacing:.06em;text-transform:lowercase;cursor:pointer;background:#141518c7;border:1px solid #e9e7e024;border-radius:2px;padding:4px 9px;font-size:10px}.dev-rig button:hover{color:var(--ink-dim)}.dev-rig button.on{color:var(--gold);border-color:#b7945380}.noscript,.static-site{z-index:40;max-width:46rem;margin:0 auto;padding:clamp(2.5rem,8vw,6rem) clamp(1.5rem,5vw,3rem) 6rem;position:relative}.static-head{border-bottom:1px solid #e9e7e01a;padding-bottom:2.5rem}.static-head .body{margin-top:1.4rem}.static-work{margin-top:3rem}.static-list{margin:2rem 0 0;padding:0;list-style:none}.static-project+.static-project{border-top:1px solid #e9e7e014;margin-top:3rem;padding-top:3rem}.static-title{font-family:var(--serif);color:var(--ink);margin:0 0 .6rem;font-size:clamp(1.4rem,4vw,2rem);font-weight:400}.static-project .body,.static-project .pf-stack,.static-project .pf-status{margin-top:.9rem}.static-foot{border-top:1px solid #e9e7e01a;margin-top:4rem;padding-top:2.5rem}.noscript p{color:var(--ink-dim);margin:0 0 1.2rem;font-size:.95rem;line-height:1.7}.noscript a{color:var(--gold)}@media (width<=899px){.dev-rig{display:none}}@media (width<=1099px){.chapter-left,.chapter-right{max-width:26rem}.pf-index,.pf-chapter{max-width:24rem}.signature{width:min(38rem,100vw - 2.5rem)}}@media (width<=899px){.chapter-left,.chapter-centre{text-align:left;max-width:none;inset:auto 1.5rem 10vh;transform:translate(0,0)}.pf-index,.pf-chapter{text-align:left;max-width:none;margin:0;padding:1.6rem 1.4rem;inset:auto 1.5rem 9vh;translate:none}.pf-chapter[data-side=left],.pf-chapter[data-side=right]{text-align:left;left:1.5rem;right:1.5rem}.pf-index:before,.pf-chapter:before,.signature:before{background:linear-gradient(#0a0b0d00 0%,#0a0b0ddb 45%,#0a0b0df5 100%);inset:-8% -12%}.pf-entry-button,.pf-chapter[data-side=right] .pf-captions li{text-align:left;justify-content:flex-start}.pf-chapter[data-side=right] .pf-links{justify-content:flex-start}.signature{width:calc(100vw - 3rem);padding:1.6rem 1.4rem;bottom:7vh}}@media (width<=760px){.chapter.chapter-sound{top:clamp(4rem,10vh,5.5rem);bottom:auto}.chapter-sound .title{font-size:clamp(1.7rem,7vw,2.25rem);line-height:1.08}.chapter-sound .items{gap:.42rem}.chapter-left{max-width:none;inset:auto 1.5rem 16vh;transform:none}.chapter-centre{max-width:calc(100vw - 3rem)}.pf-entry+.pf-entry{margin-top:1.1rem}.pf-entry-button{min-height:44px;padding:.5rem 0}.pf-summary,.pf-media-caption{font-size:.82rem}.sig-nav button{min-height:44px}.sig-channels a{min-height:44px;line-height:2.2;display:inline-block}}@media (prefers-reduced-motion:reduce){.chapter{transition:none}}@media (height<=800px){.signature{padding:1.2rem 2.6rem}.sig-mark .mark{font-size:clamp(1.1rem,2.4vw,1.6rem)}.sig-line{letter-spacing:.18em}.sig-statement{margin-top:1.2rem}.sig-statement .body{font-size:.82rem}.sig-contact{margin-top:1.4rem}.contact .eyebrow{margin-bottom:.7rem}.contact-field{margin-bottom:.55rem}.contact-field textarea{min-height:3.4rem}.sig-nav{margin-top:1rem}.site-network{margin-top:1.3rem}.social-row{margin-top:1rem}.social-row a{width:1.9rem;height:1.9rem}}@media (width>=900px) and (height<=720px){.signature{grid-template-columns:1fr 1fr;grid-template-areas:"mark contact""state contact""network contact";align-content:center;gap:0 3rem;width:min(64rem,100vw - 3rem);padding:1rem 2rem;display:grid}.sig-mark{grid-area:mark}.sig-statement{grid-area:state;margin-top:.9rem}.sig-contact{grid-area:contact;align-self:center;margin-top:0}.sig-network{grid-area:network;margin-top:1.1rem}.sig-statement .body{font-size:.78rem}.site-network{margin-top:0}.social-row{margin-top:.9rem}.sig-line{letter-spacing:.12em;font-size:.62rem}.signature:before{background:radial-gradient(74% 70% at 50% 52%,#0a0b0de6 0%,#0a0b0db3 48%,#0a0b0d00 100%);inset:-6% -4%}}.play-cta{color:var(--gold);font:inherit;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;background:#0a0b0d8c;border:1px solid #b7945373;margin-top:1.4rem;padding:.62rem 1.5rem;font-size:.68rem;transition:border-color .2s,color .2s,background .2s}.play-cta:hover,.play-cta:focus-visible{border-color:var(--gold);color:var(--ink);background:#b794531f}.play-cta:focus-visible{outline:1px solid var(--gold);outline-offset:4px}.encore-cta{color:var(--gold);font:inherit;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;background:#0a0b0d8c;border:1px solid #b7945373;padding:.62rem 1.5rem;font-size:.68rem;transition:border-color .2s,color .2s,background .2s}.encore-cta:hover,.encore-cta:focus-visible{border-color:var(--gold);color:var(--ink);background:#b794531f}.encore-cta:focus-visible{outline:1px solid var(--gold);outline-offset:4px}.site-instrument{height:100dvh;overflow:hidden}.piano-mode{z-index:2;padding:1.4rem clamp(1rem, 4vw, 2.4rem) calc(1.4rem + env(safe-area-inset-bottom));background:linear-gradient(#0a0b0d00 0%,#0a0b0d8c 45%,#0a0b0de0 100%);flex-wrap:wrap;justify-content:center;align-items:center;gap:.8rem 1.6rem;display:flex;position:absolute;inset:auto 0 0}.piano-back{color:var(--ink-dim);font:inherit;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin-right:auto;padding:.5rem 0;font-size:.7rem;transition:color .2s}.piano-back:hover,.piano-back:focus-visible{color:var(--gold)}.piano-views{border:1px solid #e9e7e01f;gap:.4rem;padding:.28rem;display:flex}.piano-views button{color:var(--ink-dim);font:inherit;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:.5rem 1.1rem;font-size:.68rem;transition:color .2s,background .2s}.piano-views button:hover{color:var(--ink)}.piano-views button.on{color:var(--gold);background:#b7945324}.piano-input{letter-spacing:.16em;text-transform:lowercase;color:var(--ink-faint);margin:0 0 0 auto;font-size:.64rem}.piano-back:focus-visible,.piano-views button:focus-visible{outline:1px solid var(--gold);outline-offset:3px}@media (width<=700px){.piano-input{display:none}.piano-views button{letter-spacing:.14em;padding:.5rem .7rem}}.contact{text-align:left;max-width:26rem;margin:0 auto}.contact .eyebrow{text-align:center;margin-bottom:1.2rem}.contact-field{margin-bottom:.9rem}.contact-field label{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.35rem;font-size:.62rem;display:block}.contact-field input,.contact-field textarea{width:100%;color:var(--ink);font:inherit;background:#0a0b0d9e;border:1px solid #e9e7e024;padding:.6rem .75rem;font-size:.85rem;transition:border-color .2s}.contact-field textarea{resize:vertical;min-height:5.5rem}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--gold);outline:none}.contact-field input[aria-invalid=true],.contact-field textarea[aria-invalid=true]{border-color:#c8604cb3}.contact-field input:disabled,.contact-field textarea:disabled{opacity:.5}.contact-error{color:#d68472;margin:.35rem 0 0;font-size:.68rem}.contact-bait{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-send{width:100%;color:var(--gold);font:inherit;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;background:#b794531a;border:1px solid #b7945373;margin-top:.6rem;padding:.68rem 1.2rem;font-size:.68rem;transition:border-color .2s,background .2s,color .2s}.contact-send:hover:not(:disabled),.contact-send:focus-visible{border-color:var(--gold);color:var(--ink);background:#b794532e}.contact-send:disabled{cursor:progress;opacity:.6}.contact-status{text-align:center;color:#d68472;margin:.9rem 0 0;font-size:.72rem}.contact-status:empty{display:none}.contact-sent{text-align:center;color:var(--gold);margin:0;font-size:.85rem}.contact-send:focus-visible,.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline:1px solid var(--gold);outline-offset:2px}.site-network{margin-top:2.4rem}.network-list ul,.social-row ul{flex-wrap:wrap;justify-content:center;margin:0;padding:0;list-style:none;display:flex}.network-list ul{gap:.5rem 1.5rem}.network-list a,.network-soon{letter-spacing:.22em;font-size:.7rem}.network-list a{color:var(--ink-dim);text-decoration:none;transition:color .2s}.network-list a:hover,.network-list a:focus-visible{color:var(--gold)}.network-soon{color:var(--ink-faint);cursor:default}.network-soon-note{letter-spacing:.1em;text-transform:lowercase;opacity:.7}.social-row{margin-top:1.8rem}.social-row ul{gap:.4rem .9rem}.social-row a{width:2.2rem;height:2.2rem;color:var(--ink-faint);justify-content:center;align-items:center;transition:color .2s;display:flex}.social-row a:hover,.social-row a:focus-visible{color:var(--gold)}.social-icon{display:block}.network-list a:focus-visible,.social-row a:focus-visible{outline:1px solid var(--gold);outline-offset:4px}.pf-holding{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.7rem}
