:root{--ink:#1d2230;--night:#0d1523;--night-soft:#16263d;--paper:#f5f7ff;--mist:#b8c4d9;--acid:#baf6ed;--coral:#ff8f7a;--aqua:#7adfe9;--blue:#7ca7ff;--violet:#a78bff;--glass:#101d2f6b;--line:#91a5c93d;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:"Avenir Next", "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);font-family:var(--sans);background:linear-gradient(#dfeeff 0%,#cce0ff 12%,#b9d7ff 22%,#ccd8ff 33%,#dfe8ff 100%);margin:0;font-size:16px;line-height:1.5;position:relative;overflow-x:hidden}#site-background{pointer-events:none;z-index:0;background:linear-gradient(#bedbffb8,#131c2ce6);width:100%;height:100%;display:block;position:fixed;inset:0}main,.site-header,.site-footer{z-index:1;position:relative}img{width:100%;display:block}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--coral);outline-offset:4px}.site-header{backdrop-filter:blur(18px)saturate(125%);color:var(--paper);z-index:2;background:linear-gradient(105deg,#071220e0,#10223ac2 58%,#1e183acc);border-bottom:1px solid #7adfe947;justify-content:space-between;align-items:center;padding:19px clamp(1.25rem,3.6vw,4rem);display:flex;position:sticky;top:0;box-shadow:0 8px 28px #030a142e,0 1px 14px #7adfe914}.wordmark,.desktop-nav a,.mobile-nav summary{text-decoration:none}.wordmark{letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.55rem;font-size:.75rem;font-weight:700;display:inline-flex}.wordmark-mark{color:var(--coral);font-size:1rem;line-height:0}.desktop-nav{gap:clamp(1rem,3vw,3.3rem);display:flex}.desktop-nav a,.mobile-nav a{letter-spacing:.12em;text-transform:uppercase;font-size:.67rem;transition:color .25s}.desktop-nav a:hover,.mobile-nav a:hover{color:var(--aqua);text-shadow:0 0 12px #7adfe975}.desktop-nav a[aria-current=page]{border-bottom:1px solid var(--coral);padding-bottom:.25rem}.desktop-nav sup,.mobile-nav sup{color:var(--coral);margin-right:.28rem;font-size:.54rem}.mobile-nav{display:none;position:relative}.mobile-nav summary{cursor:pointer;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav summary span{color:var(--coral);margin-left:.25rem;font-size:1rem}.mobile-nav nav{background:var(--ink);color:var(--paper);gap:1.1rem;width:13rem;padding:1.25rem;display:grid;position:absolute;top:2rem;right:0}.hero{background:radial-gradient(ellipse at 78% 15%, #8de0d22e, transparent 26%), radial-gradient(circle at 20% 90%, #ef765e24, transparent 30%), var(--night);color:var(--paper);grid-template-columns:minmax(0,1.07fr) minmax(18rem,.93fr);min-height:min(780px,100vh - 61px);display:grid;position:relative;overflow:hidden}.hero:before{content:"";opacity:.55;pointer-events:none;background:repeating-linear-gradient(120deg,#0000 0 7rem,#f2eee70e 7.05rem 7.1rem,#0000 7.15rem 14rem);position:absolute;inset:0}.hero-copy{flex-direction:column;justify-content:flex-end;align-self:end;padding:clamp(3rem,9vw,9rem) clamp(1.25rem,7vw,8rem);display:flex}.eyebrow{letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:700}.hero h1,.section-heading h2{font-family:var(--serif);letter-spacing:-.055em;font-weight:400}.hero h1{max-width:8ch;margin:1.2rem 0 2.6rem;font-size:clamp(4.5rem,11vw,11rem);line-height:.79}.hero-introduction{font-family:var(--serif);max-width:23rem;margin:0;font-size:clamp(1.1rem,1.8vw,1.45rem);line-height:1.35}.text-link{color:var(--paper);letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid;width:max-content;margin-top:3.5rem;padding-bottom:.45rem;font-size:.72rem;font-weight:700;text-decoration:none;transition:color .25s,border-color .25s}.text-link:hover{border-color:var(--aqua);color:var(--aqua)}.text-link span{color:var(--coral);margin-left:.35rem}.hero-portrait{background:var(--ink);min-height:100%;margin:0;position:relative;overflow:hidden}.hero-portrait img{object-fit:cover;object-position:42% center;height:100%;min-height:32rem;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.hero-portrait:hover img{transform:scale(1.035)}.hero-portrait:after{content:"";pointer-events:none;background:linear-gradient(#0000 60%,#0009);position:absolute;inset:0}.hero-portrait figcaption{color:#fff;letter-spacing:.13em;text-transform:uppercase;z-index:1;font-size:.64rem;position:absolute;bottom:1.3rem;right:1.4rem}.hero-portrait figcaption span{color:var(--acid)}.section-shell{padding:clamp(5rem,12vw,11.5rem) clamp(1.25rem,7vw,8rem)}.section-heading{grid-template-columns:minmax(8rem,1fr) auto minmax(5rem,1fr);align-items:end;gap:2rem;margin-bottom:clamp(3rem,7vw,6rem);display:grid}.section-heading h2{margin:0;font-size:clamp(3.6rem,8.5vw,8.5rem);line-height:.78}.section-line{border-top:1px solid var(--ink);margin-bottom:.7rem}.bio{background:linear-gradient(135deg,#a2c4ff38,#85f0df1a 35%,#7a6cff2e 75%,#08122247);min-height:0;padding-block:clamp(3.25rem,6vw,6rem);position:relative;overflow:hidden}.bio__backdrop{pointer-events:none;background:radial-gradient(circle at 18% 14%,#7ee0ff6b,#0000 20%),radial-gradient(circle at 78% 18%,#b08bff5c,#0000 22%),linear-gradient(120deg,#ffffff0d,#101e321f);position:absolute;inset:0}.bio:before{content:"";border:1px solid #ffffff47;border-radius:50%;width:34rem;height:34rem;position:absolute;top:8rem;left:-17rem}.bio:after{content:"";pointer-events:none;border:1px solid #7adfe957;border-radius:50%;width:18rem;height:18rem;position:absolute;top:28%;right:-8rem}.bio .section-heading,.contact .section-heading{z-index:1;grid-template-columns:1fr;place-items:start;gap:.75rem;margin-bottom:clamp(1.5rem,3vw,2.75rem);display:grid;position:relative}.bio .section-heading:after,.contact .section-heading:after{background:linear-gradient(90deg, var(--aqua), transparent);content:"";opacity:.8;transform-origin:0;width:min(15rem,42vw);height:1px;position:absolute;top:100%;left:0}.bio .section-heading{grid-template-columns:minmax(13rem,.76fr) minmax(18rem,1.24fr)}.contact .section-heading{grid-template-columns:minmax(13rem,.85fr) minmax(16rem,1.15fr)}.bio .section-heading h2,.contact .section-heading h2{grid-column:2;font-size:clamp(2.5rem,5vw,5rem)}.bio .section-heading .section-line,.contact .section-heading .section-line{grid-column:2;width:min(15rem,42vw)}.bio-grid{grid-template-columns:minmax(13rem,.76fr) minmax(18rem,1.24fr);align-items:stretch;gap:clamp(2.5rem,7vw,8rem);display:grid}.bio-image{border:1px solid #ffffff2e;align-self:stretch;margin:0;display:flex;overflow:hidden;transform:rotate(-2.5deg);box-shadow:0 20px 45px #13213047}.bio-image img{object-fit:cover;height:100%}.bio-copy{padding-top:0}.bio-lead{font-family:var(--serif);letter-spacing:-.035em;max-width:17ch;margin:0 0 2.5rem;font-size:clamp(1.65rem,3.4vw,3.15rem);line-height:1.05}.body-copy{border-top:1px solid var(--line);max-width:37rem;padding-top:1.5rem}.body-copy p{max-width:35rem;margin:0 0 1.45rem;font-size:clamp(1rem,1.2vw,1.12rem)}.body-copy strong{font-weight:700}.body-copy em{font-family:var(--serif);font-size:1.08em}.body-copy .bio-quote{border-left:2px solid var(--coral);color:var(--night);font-family:var(--serif);white-space:nowrap;width:max-content;max-width:100%;margin:clamp(2.5rem,5vw,4.5rem) 0 0;padding:1.1rem 0 1.1rem 1.25rem;font-size:clamp(1.65rem,3vw,3rem);line-height:1}.body-copy .bio-quote:before{color:var(--coral);content:"“";margin-bottom:.7rem;font-size:4rem;line-height:.45;display:block}.projects{background:var(--night);color:var(--paper)}.projects .section-line{border-color:var(--paper)}.projects-intro{font-family:var(--serif);border-bottom:1px solid #f2eee761;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.1rem;font-size:clamp(1.1rem,2vw,1.7rem);display:flex}.projects-intro p{max-width:27rem;margin:0}.projects-intro span{color:var(--acid);font-family:var(--sans);letter-spacing:.13em;text-transform:uppercase;font-size:.68rem}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,7vw,7rem) clamp(1.25rem,4vw,5rem);display:grid}.project-card:nth-child(3n){grid-column:1/-1;width:min(100%,54rem)}.project-heading{align-items:baseline;gap:1rem;margin-bottom:.4rem;display:flex}.project-number{color:var(--acid);letter-spacing:.1em;font-size:.67rem}.project-card h3{font-family:var(--serif);letter-spacing:-.035em;margin:0;font-size:clamp(1.8rem,3vw,3rem);font-weight:400}.project-card>p{color:var(--mist);max-width:28rem;margin:0 0 1rem 2.6rem}.youtube-embed{aspect-ratio:16/9;background:#121315;position:relative;overflow:hidden}.youtube-embed iframe{border:0;width:100%;height:100%;position:absolute}.media{--media-ink:#202b2b;--media-muted:#64706d;--media-paper:#f0f2ee;--media-rule:#202b2b33;background:var(--media-paper);color:var(--media-ink);overflow:hidden}.media-masthead{isolation:isolate;height:clamp(40rem,86vh,62rem);min-height:40rem;position:relative;overflow:hidden}.media-masthead:after{content:"";background:linear-gradient(90deg,#0f1414cc,#0f141466 46%,#0000 82%),linear-gradient(#0000 56%,#0f14146b);position:absolute;inset:0}.media-masthead__visual{margin:0;position:absolute;inset:0;overflow:hidden}.media-masthead__visual img{object-fit:cover;object-position:center 60%;width:100%;height:100%;transform:scaleX(-1)}.media-masthead__visual figcaption{color:#ffffffd1;letter-spacing:.14em;text-transform:uppercase;z-index:1;font-size:.65rem;position:absolute;bottom:2rem;right:clamp(1.25rem,4vw,4rem)}.media-masthead__visual figcaption span{color:#ed997f;padding:0 .4rem}.media-masthead__score{opacity:.45;z-index:1;background:repeating-linear-gradient(#0000 0 1.2rem,#ffffff6b 1.24rem 1.29rem,#0000 1.33rem 1.9rem) 0 0/100% 9.5rem repeat-y;width:min(62vw,68rem);height:13rem;position:absolute;top:49%;right:-6%;transform:translateY(-50%)rotate(-8deg);mask-image:linear-gradient(90deg,#0000,#000 30% 83%,#0000)}.media-masthead__copy{color:#fff;z-index:2;max-width:48rem;position:absolute;bottom:clamp(4rem,12vh,8rem);left:clamp(1.25rem,8vw,8rem)}.media-eyebrow{color:var(--media-accent,#d17b62);letter-spacing:.16em;text-transform:uppercase;margin:0 0 1rem;font-size:.65rem;font-weight:700}.media-eyebrow span{padding:0 .4rem}.media-masthead__copy .media-eyebrow{color:#f0a58e}.media-masthead h1{font-family:var(--serif);letter-spacing:0;margin:0;font-size:clamp(5rem,12vw,12rem);font-weight:400;line-height:.82}.media-masthead__description{color:#ffffffd1;font-family:var(--serif);max-width:28rem;margin:1.5rem 0 2rem;font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.35}.media-masthead__link{color:#fff;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #ffffffa3;align-items:center;gap:1.25rem;padding-bottom:.55rem;font-size:.68rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.media-masthead__link:hover{color:#f0a58e;border-color:#f0a58e}.media-masthead__link span{color:#f0a58e;font-size:1.15rem}.media__content{background:var(--media-paper);padding:clamp(4rem,8vw,8rem) clamp(1.25rem,7vw,8rem) clamp(5rem,10vw,10rem)}.media-documents{grid-template-columns:minmax(13rem,.75fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,5rem);max-width:110rem;margin:0 auto;display:grid}.media-section-heading{border-top:1px solid var(--media-rule);padding-top:1rem}.media-section-heading h2,.media-gallery__heading h2{font-family:var(--serif);letter-spacing:0;margin:0;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:1}.media-section-heading .media-eyebrow,.media-gallery__heading .media-eyebrow{color:var(--media-muted);margin:0 0 1rem}.media-section-heading .media-eyebrow span,.media-gallery__heading .media-eyebrow span{color:var(--media-accent,#b65340)}.media-documents__list{display:grid}.resource-card{border-top:1px solid var(--media-rule);grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:7rem;padding:1.15rem 0;transition:border-color .25s;display:grid}.resource-card:last-child{border-bottom:1px solid var(--media-rule)}.resource-card:hover{border-color:var(--media-accent,#b65340)}.resource-card__number{color:var(--media-accent,#b65340);letter-spacing:.1em;font-size:.68rem}.resource-card__body h3{color:var(--media-ink);font-family:var(--serif);letter-spacing:0;margin:0;font-size:clamp(1.55rem,2.5vw,2.2rem);font-weight:400}.resource-card__body p{color:var(--media-muted);margin:.3rem 0 0;font-size:.76rem}.resource-card__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;display:flex}.resource-card__actions button,.resource-card__actions a{border:1px solid var(--media-ink);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;padding:.65rem .8rem;font-size:.61rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s}.resource-card__view{background:var(--media-ink);color:#fff}.resource-card__download{color:var(--media-ink);background:0 0}.resource-card__actions button:hover,.resource-card__actions a:hover{background:var(--media-accent,#b65340);border-color:var(--media-accent,#b65340);color:#fff}.resource-card__pending{color:var(--media-muted);text-transform:uppercase;font-size:.65rem}.media-gallery{max-width:110rem;margin:clamp(5rem,12vw,11rem) auto 0}.media-gallery__header{border-bottom:1px solid var(--media-rule);justify-content:space-between;align-items:end;margin-bottom:1.5rem;padding-bottom:1.1rem;display:flex}.media-gallery__heading .media-eyebrow{margin-bottom:.65rem}.media-gallery__tools{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.media-gallery__view-modes{background:#e4e8e4;border:1px solid #202b2b2e;align-items:center;gap:.2rem;padding:.2rem;display:inline-flex}.media-gallery__view-toggle{color:var(--media-muted);cursor:pointer;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;background:0 0;border:0;min-height:2rem;padding:.45rem .7rem;font-size:.6rem;font-weight:700;transition:background .2s,color .2s}.media-gallery__view-toggle[aria-pressed=true]{background:var(--media-ink);color:#fff}.media-gallery__view-toggle:hover:not([aria-pressed=true]){color:var(--media-ink)}.panel-tag,.panel-id{letter-spacing:.12em;text-transform:uppercase;font-size:.63rem}.panel-tag{color:var(--media-accent,#b65340);font-weight:700}.panel-id{color:var(--media-muted)}.gallery{column-count:4;column-gap:clamp(.7rem,1.25vw,1.2rem)}.gallery-item{break-inside:avoid;cursor:pointer;background:#e1e5e1;border:1px solid #202b2b1f;width:100%;margin:0 0 clamp(.7rem,1.25vw,1.2rem);padding:0;transition:border-color .3s,box-shadow .3s,transform .3s;display:block;position:relative;overflow:hidden;box-shadow:0 8px 22px #18252414}.gallery-item img{object-fit:contain;height:auto;min-height:0;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.gallery-item:hover{border-color:var(--media-accent,#b65340);transform:translateY(-3px);box-shadow:0 14px 30px #18252426}.gallery-item:hover img{transform:scale(1.035)}@media (width<=1100px){.gallery{column-count:3}}.gallery--grid{column-count:initial;column-gap:initial;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.7rem,1.25vw,1.2rem);display:grid}.gallery--grid .gallery-item{aspect-ratio:4/3;break-inside:auto;margin:0}.gallery--grid .gallery-item img{object-fit:cover;height:100%}@media (width<=1100px){.gallery--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.media-lightbox{backdrop-filter:blur(18px);z-index:30;background:#030811e0;justify-content:center;align-items:center;padding:clamp(1rem,4vw,4rem);display:none;position:fixed;inset:0}.media-lightbox.is-open{animation:.35s both mediaFadeIn;display:flex}.media-lightbox__close,.media-lightbox__nav,.media-lightbox__zoom{color:var(--paper);cursor:pointer;z-index:2;background:#0a182ab8;border:1px solid #baf6ed61;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.3rem;transition:background .25s,box-shadow .25s,transform .25s;display:inline-flex;position:absolute}.media-lightbox__close:hover,.media-lightbox__nav:hover,.media-lightbox__zoom:hover{background:var(--aqua);color:var(--night);box-shadow:0 0 20px #7adfe961}.media-lightbox__close{top:calc(61px + 1.5rem);right:1.5rem}.media-lightbox__stage{flex-direction:column;justify-content:center;align-items:center;max-width:min(82vw,74rem);max-height:84vh;display:flex;position:relative}.media-lightbox__image{object-fit:contain;max-width:100%;max-height:76vh;transition:opacity .25s,transform .3s}.media-lightbox__counter{color:var(--acid);letter-spacing:.13em;background:#050d19ad;padding:.45rem .65rem;font-size:.68rem;position:absolute;bottom:.8rem;left:50%;transform:translate(-50%)}.media-lightbox__caption{color:#f2eee7d1;text-align:center;max-width:min(60ch,80vw);margin-top:.8rem;font-size:.78rem;line-height:1.4}.media-lightbox__nav{top:50%;transform:translateY(-50%)}.media-lightbox__nav--prev{left:1.5rem}.media-lightbox__nav--next{right:1.5rem}.media-lightbox__tools{gap:.5rem;display:flex;position:absolute;bottom:7rem;right:1.5rem}.media-lightbox__zoom{position:static}.media-lightbox__thumbs{gap:.45rem;width:max-content;max-width:min(80vw,68rem);padding:.25rem;display:flex;position:absolute;bottom:1.5rem;left:50%;overflow-x:auto;transform:translate(-50%)}.media-lightbox__thumb{cursor:pointer;opacity:.58;border:1px solid #fff3;width:5rem;height:3.7rem;padding:0;transition:border-color .25s,opacity .25s,transform .25s;overflow:hidden}.media-lightbox__thumb img{object-fit:cover;width:100%;height:100%}.media-lightbox__thumb:hover,.media-lightbox__thumb.is-active{border-color:var(--acid);opacity:1;transform:translateY(-3px)}@keyframes mediaFadeIn{0%{opacity:0}to{opacity:1}}.contact{background:linear-gradient(135deg,#b9d8ff52,#7aa2ff33 35%,#82eee438 60%,#0b18273d);padding-block:clamp(3.25rem,6vw,6rem);position:relative;overflow:hidden}.contact__glow{pointer-events:none;background:radial-gradient(circle at 20% 15%,#96dcff66,#0000 18%),radial-gradient(circle at 82% 30%,#b18eff52,#0000 18%),linear-gradient(120deg,#ffffff0d,#111c341f);position:absolute;inset:0}.contact:after{content:"";pointer-events:none;border:1px solid #7adfe94d;border-radius:50%;width:13rem;height:13rem;position:absolute;top:12%;right:-5rem}.contact .section-heading{margin-bottom:clamp(1.5rem,3vw,2.75rem)}.contact .section-heading h2{font-size:clamp(2.5rem,5vw,5rem)}.contact-grid{grid-template-columns:minmax(13rem,.85fr) minmax(16rem,1.15fr);align-items:stretch;gap:clamp(2.5rem,7vw,8rem);display:grid}.contact-image{border:1px solid #fff3;align-self:stretch;margin:0;display:flex;overflow:hidden;transform:rotate(2deg);box-shadow:0 25px 55px #0f1e3233}.contact-image img{object-fit:cover;height:100%}.contact-copy>p{color:#1d2230e6;font-family:var(--sans);letter-spacing:-.018em;max-width:35rem;margin:0 0 2.2rem;font-size:clamp(1.1rem,1.65vw,1.5rem);font-weight:500;line-height:1.32}.contact-copy__paragraph{display:inline}.contact-email{border-bottom:2px solid var(--ink);letter-spacing:-.04em;word-break:break-word;padding-bottom:.25rem;font-size:clamp(1.15rem,2.4vw,2.2rem);font-weight:700;text-decoration:none;display:inline-block}.social-links{border-top:1px solid #1c1d207a;flex-wrap:wrap;gap:.7rem 1.5rem;margin:3rem 0 0;padding:1rem 0 0;list-style:none;display:flex}.social-links a{backdrop-filter:blur(12px);background:#f2eee729;border:1px solid;justify-content:center;align-items:center;width:3.4rem;height:3.4rem;text-decoration:none;transition:background .25s,box-shadow .25s,transform .25s;display:inline-flex}.social-links li:first-child a{color:#1877f2}.social-links li:nth-child(2) a{color:#d62976}.social-links li:nth-child(3) a{color:#1ed760}.social-links li:nth-child(4) a{color:red}.social-links a:hover{background:#07111df0;transform:translateY(-4px)rotate(-3deg);box-shadow:0 9px 20px #1c1d202e}.social-links a:hover img{transform:scale(1.1)}.social-links img{object-fit:contain;width:1.35rem;height:1.35rem;transition:transform .25s}.social-links li:first-child a{box-shadow:0 0 22px #1877f229}.social-links li:nth-child(2) a{box-shadow:0 0 22px #d6297629}.social-links li:nth-child(3) a{box-shadow:0 0 22px #1ed76029}.social-links li:nth-child(4) a{box-shadow:0 0 22px #ff000029}.contact-piano{border-top:1px solid #1d223038;max-width:34rem;margin-top:2rem;padding-top:.9rem;position:relative}.contact-piano__topline{justify-content:space-between;align-items:center;display:flex}.contact-piano__label,.contact-piano__status{color:#1d223094;letter-spacing:.14em;text-transform:uppercase;font-size:.6rem;font-weight:700;display:block}.contact-piano__status{color:#197e91}.contact-piano__instrument{background:linear-gradient(145deg,#111b2b,#050a13);border:1px solid #7adfe961;border-radius:.55rem;margin-top:.65rem;padding:.65rem .7rem .75rem;box-shadow:0 15px 28px #0f1e323d,inset 0 1px #ffffff1f}.contact-piano__controls{color:#baf6ed9e;letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.32rem;margin-bottom:.6rem;font-size:.52rem;display:flex}.contact-piano__controls i{background:var(--aqua);border-radius:50%;width:.28rem;height:.28rem;box-shadow:0 0 8px #7adfe9b3}.contact-piano__controls span{margin-left:auto}.contact-piano__keys{grid-template-columns:repeat(8,minmax(0,1fr));max-width:31rem;height:4.5rem;display:grid;position:relative}.contact-piano__keys button{cursor:pointer;touch-action:manipulation;background:linear-gradient(#ffffffeb,#dae7f4cc);border:1px solid #1d223052;border-radius:0 0 .25rem .25rem;margin-right:-1px;transition:background .2s,box-shadow .2s,transform .2s;box-shadow:0 7px 12px #1a354b29}.contact-piano__keys .contact-piano__black-key{z-index:2;background:linear-gradient(#273b55,#050a13);border:1px solid #7adfe933;border-radius:0 0 .18rem .18rem;width:9%;height:62%;margin:0;position:absolute;top:0;left:0;transform:translate(-50%);box-shadow:0 8px 12px #0000005c}.contact-piano__keys button:hover,.contact-piano__keys button.is-active{background:linear-gradient(180deg, var(--acid), var(--aqua));transform:translateY(3px);box-shadow:0 0 18px #7adfe973}.contact-piano__keys .contact-piano__black-key:hover,.contact-piano__keys .contact-piano__black-key.is-active{background:linear-gradient(180deg, var(--aqua), #172d44);transform:translate(-50%,3px)}.contact-piano__signal{opacity:.42;align-items:end;gap:.2rem;max-width:31rem;height:1.4rem;margin-top:.7rem;display:flex}.contact-piano__signal span{background:linear-gradient(180deg, var(--violet), var(--aqua));transform-origin:bottom;border-radius:.2rem;width:100%;height:25%;transition:height .2s,opacity .3s}.contact-piano__signal.is-live span{opacity:1;animation:.65s ease-in-out infinite alternate pianoSignal}@keyframes pianoSignal{0%{transform:scaleY(.55)}to{transform:scaleY(1)}}.site-footer{background:var(--ink);color:var(--paper);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;padding:1.3rem clamp(1.25rem,3.6vw,4rem);font-size:.65rem;font-weight:700;display:flex}.site-footer p{margin:0}.site-footer a{color:var(--acid);text-decoration:none}.home-portal{background:radial-gradient(circle at 92% 12%, #ef765e2e, transparent 26%), var(--paper);padding:clamp(5rem,11vw,10rem) clamp(1.25rem,7vw,8rem)}.home-portal__heading{justify-content:space-between;align-items:end;margin-bottom:clamp(2.5rem,6vw,5rem);display:flex}.home-portal h2{font-family:var(--serif);letter-spacing:-.05em;max-width:7ch;margin:0;font-size:clamp(2.7rem,6vw,6.5rem);font-weight:400;line-height:.85}.portal-links{border-top:1px solid var(--ink)}.portal-links a{border-bottom:1px solid var(--line);font-family:var(--serif);letter-spacing:-.055em;grid-template-columns:1fr auto;align-items:center;padding:clamp(1rem,2vw,1.8rem) 0;font-size:clamp(2.5rem,6.4vw,7rem);line-height:1;text-decoration:none;transition:color .2s,padding .2s;display:grid}.portal-links a:hover{color:var(--coral);padding-left:.8rem}.portal-links sup{color:var(--coral);font-family:var(--sans);letter-spacing:.1em;font-size:.65rem}.portal-links b{color:var(--coral);font-family:var(--sans);font-size:1.3rem;font-weight:400}.page-intro{min-height:min(38rem,100vh - 60px);display:grid;position:relative;overflow:hidden}.page-intro:before{content:"";opacity:.12;pointer-events:none;border:1px solid;border-radius:50%;width:min(42vw,34rem);height:min(42vw,34rem);position:absolute;top:-15rem;right:-12rem}.page-intro__copy{z-index:1;align-self:end;padding:clamp(4rem,10vw,9rem) clamp(1.25rem,7vw,8rem);position:relative}.page-intro h1{font-family:var(--serif);letter-spacing:-.07em;max-width:8ch;margin:1.2rem 0 2.25rem;font-size:clamp(5rem,13vw,13rem);font-weight:400;line-height:.72}.page-intro__copy>p:last-child{font-family:var(--serif);max-width:24rem;margin:0;font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.25}.page-intro__image{margin:0;overflow:hidden}.page-intro__image img{object-fit:cover;height:100%;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.page-intro__image:hover img{transform:scale(1.04)}.page-intro--bio{background:linear-gradient(120deg,#cfe2ffb3,#a3caff40);grid-template-columns:1.15fr .85fr}.page-intro--bio .page-intro__image{transform:translate(4vw)}.page-intro--projects{background:radial-gradient(circle at 20% 10%, #8de0d229, transparent 30%), var(--night);color:var(--paper);grid-template-columns:1fr 1fr}.page-intro--projects .page-intro__copy{align-self:center;max-width:30rem}.page-intro--projects .page-intro__copy h1{max-width:5ch;margin-bottom:clamp(2.8rem,5vw,3.8rem);font-size:clamp(4rem,9vw,9rem)}.page-intro--projects .page-intro__description{max-width:18rem}.page-intro--projects .page-intro__image{clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}.page-intro--media{background:linear-gradient(110deg,#0a1620ed,#283a58f0);grid-template-columns:.76fr 1.24fr;min-height:30rem}.page-intro--media .page-intro__copy{align-self:center}.page-intro--media .page-intro__image{filter:grayscale()contrast(1.1);mix-blend-mode:screen}.page-intro--contact{background:linear-gradient(120deg,#b2d6ffb3,#87aaff47);min-height:25rem}.page-intro--contact .page-intro__copy{align-self:center;max-width:58rem}.projects-portfolio{color:var(--paper);background:linear-gradient(#0a0f16bf,#0a0f16e6);position:relative}.projects-portfolio .section-line{border-color:var(--paper)}.projects-portfolio__header{flex-wrap:wrap;align-items:end;gap:1rem;max-width:60rem;margin-bottom:clamp(2.2rem,5vw,4rem);display:flex}.projects-portfolio__meta{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.projects-portfolio__header .eyebrow{margin:0}.projects-portfolio__title{font-family:var(--serif);letter-spacing:-.065em;margin:0;font-size:clamp(3.2rem,6vw,6.4rem);font-weight:400;line-height:.8}.projects-portfolio__intro{font-family:var(--serif);border-left:1px solid #f2eee759;max-width:30rem;margin:0;padding-left:1rem;font-size:clamp(1.05rem,2vw,1.6rem);line-height:1.2}.project-index{flex-direction:column;gap:clamp(6rem,14vw,14rem);display:flex}.project-feature{grid-template-columns:minmax(14rem,.72fr) minmax(0,1.28fr);align-items:center;gap:clamp(2rem,6vw,7rem);display:grid}.project-feature--reverse{grid-template-columns:minmax(0,1.28fr) minmax(14rem,.72fr)}.project-feature--reverse .project-feature__video{grid-area:1/1}.project-feature--reverse .project-feature__copy{text-align:right;grid-area:1/2;align-items:flex-end}.project-feature--reverse .project-feature__copy p{margin-left:auto}.project-feature__video{min-width:0;transform:translateZ(0)}.project-feature__video-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.8rem,1.8vw,1.35rem);display:grid}.project-feature__video-list--single{grid-template-columns:minmax(0,1fr)}.project-feature__video .youtube-embed{transition:box-shadow .35s,transform .35s;box-shadow:0 1.5rem 3rem #0000003d}.project-feature__video:hover .youtube-embed{transform:translateY(-5px);box-shadow:0 2rem 4rem #00000057}.project-feature__copy{flex-direction:column;align-items:start;display:flex}.project-feature__copy .project-number{margin-bottom:1.2rem}.project-feature h2{font-family:var(--serif);letter-spacing:-.065em;margin:0;font-size:clamp(3rem,5.7vw,6.6rem);font-weight:400;line-height:.78}.project-feature h2 a{text-decoration:none}.project-feature__copy p{color:var(--mist);max-width:21rem;margin:1.5rem 0 2.4rem}.project-feature__link{border-bottom:1px solid var(--acid);color:var(--acid);letter-spacing:.11em;text-transform:uppercase;padding-bottom:.4rem;font-size:.68rem;font-weight:700;text-decoration:none}.project-detail{background:radial-gradient(circle at 85% 5%, #ef765e1f, transparent 22%), var(--paper);padding:clamp(1.5rem,4vw,4rem) clamp(1.25rem,7vw,8rem) clamp(5rem,10vw,10rem)}.back-link{border-bottom:1px solid var(--ink);letter-spacing:.1em;text-transform:uppercase;padding-bottom:.35rem;font-size:.67rem;font-weight:700;text-decoration:none;display:inline-block}.project-detail__hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);margin:clamp(4rem,10vw,9rem) 0 clamp(4rem,9vw,8rem);display:grid}.project-detail__hero>.project-number{grid-column:1}.project-detail__hero h1{font-family:var(--serif);letter-spacing:-.075em;grid-column:1/-1;margin:1.6rem 0 clamp(2rem,5vw,5rem);font-size:clamp(4.5rem,11vw,12rem);font-weight:400;line-height:.73}.project-detail__hero>p{font-family:var(--serif);grid-column:1;max-width:18rem;margin:0;padding-right:2rem;font-size:clamp(1.15rem,2.2vw,2rem);line-height:1.16}.project-detail__hero figure{grid-column:2;max-height:42rem;margin:0;overflow:hidden}.project-detail__hero figure img{object-fit:cover;height:100%;min-height:20rem}.project-detail__body{max-width:57rem;margin-left:auto}.project-detail__body .eyebrow{margin-bottom:1rem}.project-detail__media{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.3rem,3vw,2rem);margin-bottom:2.25rem;display:grid}.project-detail__video{min-width:0}.project-detail__video .youtube-embed{border:1px solid #1d22301a;border-radius:1.2rem;overflow:hidden;box-shadow:0 18px 45px #111c2a29}.project-detail__intro{max-width:52rem;margin:0 auto 1.5rem}.project-detail__intro p{font-family:var(--serif);text-align:center;margin:0;font-size:clamp(1.2rem,2.2vw,2rem);line-height:1.15}.project-detail__notes{border-top:1px solid var(--line);font-family:var(--serif);margin-top:2.5rem;padding-top:1.5rem;font-size:1.2rem}.project-detail__notes p{max-width:42rem}.project-pagination{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:2rem;margin-top:clamp(5rem,10vw,9rem);padding-top:1.2rem;display:grid}.project-pagination a{font-family:var(--serif);flex-direction:column;font-size:clamp(1.25rem,2.3vw,2rem);text-decoration:none;display:flex}.project-pagination a:last-child{text-align:right}.project-pagination small{color:var(--coral);font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem;font-size:.62rem;font-weight:700}@media (width<=720px){.home-portal__heading{flex-direction:column;align-items:start;gap:1.5rem}.portal-links a{grid-template-columns:1fr auto}.page-intro,.page-intro--bio,.page-intro--projects,.page-intro--media{grid-template-columns:1fr;min-height:auto}.page-intro__copy{min-height:23rem;padding:4rem 1.25rem}.page-intro__image{height:23rem}.page-intro--bio .page-intro__image{transform:none}.page-intro--projects .page-intro__copy{align-self:end}.page-intro--contact .page-intro__copy{min-height:20rem}.project-feature{flex-direction:column;align-items:stretch;gap:1.5rem;display:flex}.project-feature__copy{order:0}.project-feature__video{order:1}.project-feature__video-list{grid-template-columns:1fr}.project-feature--reverse .project-feature__copy{text-align:left;order:0;align-items:start}.project-feature--reverse .project-feature__video{order:1}.project-detail__hero{margin-top:4rem;display:block}.project-detail__hero h1{margin:1.4rem 0 2.5rem}.project-detail__hero>p{margin-bottom:2rem;padding-right:0}.project-detail__hero figure{max-height:27rem}.project-detail__body{margin-left:0}.project-detail__media{grid-template-columns:1fr}.desktop-nav{display:none}.mobile-nav{display:block}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{min-height:29rem;padding:4.5rem 1.25rem 3.5rem}.hero h1{margin:1rem 0 2rem;font-size:clamp(4.5rem,19vw,7rem)}.hero-portrait{height:26rem}.hero-portrait img{min-height:0}.section-heading{grid-template-columns:1fr;align-items:start;gap:.8rem}.bio .section-heading,.contact .section-heading{grid-template-columns:1fr}.bio .section-heading h2,.contact .section-heading h2,.bio .section-heading .section-line,.contact .section-heading .section-line{grid-column:1}.section-line{margin:.3rem 0 0}.bio-grid,.contact-grid{grid-template-columns:1fr}.contact{min-height:100svh}.contact-grid{gap:2rem;min-width:0}.contact-image{aspect-ratio:4/5;width:100%;max-width:none;transform:none}.contact-image img{width:100%}.contact-copy{width:100%;min-width:0}.contact-piano{width:100%;max-width:none}.bio-image{aspect-ratio:3/4;max-width:17rem}.bio-copy{padding-top:0}.projects-intro{flex-direction:column;align-items:start;gap:1rem}.projects-portfolio__header{margin-bottom:2.5rem}.projects-portfolio__title{line-height:.86}.projects-portfolio__intro{max-width:100%}.projects-grid{grid-template-columns:1fr}.project-card:nth-child(3n){grid-column:auto;width:auto}.media-masthead{height:min(80vh,46rem);min-height:36rem}.media-masthead__copy{bottom:4rem;left:1.5rem;right:1.5rem}.media-masthead h1{font-size:clamp(4.5rem,17vw,7rem)}.media-masthead__score{width:105%;top:39%;right:-35%}.media-masthead__visual figcaption{font-size:.56rem;bottom:1rem;right:1rem}.media__content{padding:3.5rem 1.25rem 5rem}.media-documents{grid-template-columns:1fr;gap:1.75rem}.resource-card{grid-template-columns:2.5rem minmax(0,1fr)}.resource-card__actions{grid-column:2;justify-content:flex-start}.media-gallery__header{flex-direction:column;align-items:flex-start;gap:.8rem}.media-gallery__tools{justify-content:space-between;width:100%}.gallery{column-count:2;column-gap:.7rem}.gallery--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-lightbox__stage{max-width:92vw;max-height:72vh}.media-lightbox__image{max-height:64vh}.media-lightbox__close{top:calc(61px + .75rem);right:.75rem}.media-lightbox__nav--prev{left:.75rem}.media-lightbox__nav--next{right:.75rem}.media-lightbox__tools{bottom:6.5rem;right:.75rem}.media-lightbox__thumbs{max-width:90vw;bottom:.75rem}.media-lightbox__thumb{width:4rem;height:3rem}.site-footer{flex-wrap:wrap;gap:1rem}}@media (width<=480px){.media-masthead{height:82svh;min-height:35rem}.media-masthead__copy{bottom:3.5rem}.media-masthead__description{max-width:20rem}.media-documents{gap:1.25rem}.resource-card{gap:.7rem}.resource-card__actions{flex-wrap:wrap}.gallery{column-count:2;column-gap:.55rem}.gallery--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-card{align-items:start}.resource-card__actions{flex-direction:column}}@media (prefers-reduced-motion:no-preference){.hero-copy{animation:.8s cubic-bezier(.2,.7,.2,1) both rise}.reveal{animation:.9s cubic-bezier(.2,.7,.2,1) .15s both rise}.project-feature:nth-child(2){animation-delay:80ms}.project-feature:nth-child(3){animation-delay:.16s}.project-feature:nth-child(4){animation-delay:.24s}.project-feature:nth-child(5){animation-delay:.32s}.project-feature:nth-child(6){animation-delay:.4s}.project-feature:nth-child(7){animation-delay:.48s}.bio:after,.contact:after{animation:11s linear infinite orbit}.media-masthead__visual img{animation:24s ease-in-out infinite alternate media-portrait-drift}.media-masthead__score{animation:18s ease-in-out infinite alternate media-score-drift}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes orbit{0%,to{opacity:.35;transform:translate(0)rotate(0)}50%{opacity:.75;transform:translate(-1rem,1rem)rotate(180deg)}}@keyframes media-portrait-drift{0%{transform:scaleX(-1)scale(1.015)}to{transform:scaleX(-1)scale(1.08)translate(.7%)}}@keyframes media-score-drift{0%{opacity:.35;transform:translateY(-50%)rotate(-8deg)}to{opacity:.72;transform:translate(-2vw,calc(.75rem - 50%))rotate(-5deg)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal.is-visible{opacity:1;transform:none}.hero-portrait:hover img,.page-intro__image:hover img,.project-feature__video:hover .youtube-embed,.social-links a:hover{transform:none}}@media (width<=720px){.contact:after{animation:none}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
