@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/lora-latin.woff2') format('woff2')}
@font-face{font-family:'Arimo';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/arimo-latin.woff2') format('woff2')}
:root{--page:#f8f7f2;--work-page:#f5f5f5;--primary:#2d3932;--secondary:#59665d;--subtle:#657269;--body:rgba(45,57,50,.8);--accent:#44644f;--soft:#e7ece4;--divider:rgba(45,57,50,.1);--input:#f8f7f2;--button:#44644f;--on-button:#f8f7f2;--header:rgba(248,247,242,.9);--work-header:rgba(245,245,245,.9);--error:#a63d32;--shadow:rgba(45,57,50,.1);--icon-filter:none;color-scheme:light}
:root[data-theme='dark']{--page:#0a0a0a;--work-page:#0a0a0a;--primary:#f5f5f5;--secondary:#b3b3b3;--subtle:#949494;--body:#d1d1d1;--accent:#e0e0e0;--soft:#1a1a1a;--divider:rgba(255,255,255,.15);--input:#0a0a0a;--button:#e0e0e0;--on-button:#0a0a0a;--header:rgba(10,10,10,.91);--work-header:rgba(10,10,10,.91);--error:#ffb1a6;--shadow:rgba(0,0,0,.2);--icon-filter:brightness(0) invert(58.0392%);color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px;background:var(--page);-webkit-text-size-adjust:100%}
html:has(body.page-work){background:var(--work-page)}
body{margin:0;position:relative;background:var(--page);color:var(--body);font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.5;letter-spacing:-.2px;min-width:320px;min-height:100svh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;isolation:isolate}
body.page-work{background:var(--work-page)}
body::before{content:'';position:absolute;inset:0;z-index:40;background:url('/assets/grain.png') repeat;background-size:100px 100px;opacity:.12;mix-blend-mode:multiply;pointer-events:none}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1,h2,h3{font-weight:400;color:var(--primary)}
h1,h2,h3{font-family:'Lora',Georgia,serif}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button,input{font:inherit;letter-spacing:inherit}
button{cursor:pointer}
button:disabled{cursor:default}
img{display:block;max-width:100%;height:auto}
button,a,input{outline-offset:6px}
:focus-visible{outline:2px solid var(--accent)}
::selection{background:var(--soft);color:var(--primary)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:24px;z-index:100;padding:12px 20px;background:var(--primary);color:var(--page);border-radius:8px;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:16px}
.page-shell{width:100%;max-width:1440px;margin:0 auto;padding:0 24px;flex:1}
.main-content{grid-column:3/span 8;padding-top:240px;padding-bottom:80px;min-width:0;outline:none}
.site-header{height:88px;position:fixed;inset:0 0 auto;z-index:30;background:var(--header);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.page-work .site-header{background:var(--work-header)}
.header-inner{height:88px;max-width:1440px;margin:0 auto;padding:0 24px;align-items:center;font-family:'Arimo',Arial,sans-serif;letter-spacing:0}
.brand{grid-column:1/span 2;justify-self:start;color:var(--body);line-height:22.5px;position:relative}
.brand::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.brand:hover::after{transform:scaleX(1)}
.site-nav{grid-column:3/span 8;display:flex;gap:24px;align-items:center}
.site-nav a{display:flex;align-items:center;position:relative;height:32px;color:var(--subtle);line-height:15px;white-space:nowrap;transition:color .2s}
.site-nav a::after{content:'';position:absolute;inset:auto 0 0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.site-nav a:hover{color:var(--accent)}
.site-nav a:hover::after{transform:scaleX(1)}
.site-nav a[aria-current='page']{color:var(--accent)}
.site-nav a[aria-current='page']::after{transform:scaleX(1)}
.appearance{grid-column:11/span 2;justify-self:end;display:flex;gap:4px;width:72px;height:40px;padding:4px;background:var(--soft);border-radius:8px}
.appearance button{width:30px;height:32px;border:0;display:grid;place-items:center;border-radius:4px;background:transparent;color:var(--primary);padding:0;transition:background .25s,box-shadow .25s}
.appearance button[aria-pressed='true']{background:var(--page);box-shadow:0 1px 3px var(--shadow)}
.appearance button img{width:16px;height:16px;filter:var(--icon-filter)}
.site-footer{width:100%;max-width:1440px;margin:0 auto;padding:24px;min-height:70.5px;display:flex;align-items:center;justify-content:space-between;font-family:'Arimo',Arial,sans-serif;letter-spacing:0;color:var(--subtle);font-size:15px}
.site-footer nav{display:flex;align-items:center;gap:32px}
.site-footer a{transition:color .2s}
.site-footer a:hover{color:var(--primary);text-decoration:underline;text-underline-offset:5px}
.footer-note{font-size:12px;opacity:.7}
.display-heading{font-size:71px;line-height:80px;letter-spacing:-1.92px}
.work-intro .display-heading{max-width:850px}
.eyebrow{font:400 15px/22.5px 'DM Sans',Arial,sans-serif;letter-spacing:-.2px;color:var(--secondary)}
.career-summary{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:16px;margin-top:40px;padding-bottom:56px}
.current-role{grid-column:1/span 2}
.current-role>p{margin-top:12px;line-height:22.5px}
.success-stories{grid-column:3/span 6}
.success-stories h2{padding-left:48px}
.achievement-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.achievement-list li{display:flex;align-items:flex-start;gap:12px;line-height:22.5px}
.brand-marks{display:flex;gap:8px;align-items:center;height:23px;flex:0 0 36px}
.brand-marks img{height:14px;width:14px;filter:var(--icon-filter)}
.page-work .main-content{padding-bottom:112px}
.private-work{position:relative;background:rgba(26,26,26,.02);border:1px solid rgba(255,255,255,.01);border-radius:16px;padding:40px 48px 32px;overflow:hidden}
.private-work h2{font-size:36px;line-height:1.2;letter-spacing:-.72px;max-width:660px}
.private-description{max-width:565px;color:var(--secondary);margin-top:16px;line-height:24px}
.access-form{width:100%;max-width:570px;margin-top:32px;position:relative}
.access-form>label{display:block;font-size:13px;letter-spacing:0;min-height:24px;margin-bottom:8px;color:var(--secondary)}
.email-field{display:flex;align-items:center;gap:8px;min-height:58px;padding:6px 6px 6px 15px;background:var(--input);border-radius:10px;transition:box-shadow .2s}
.email-field:focus-within{box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.email-field input{background:transparent;width:100%;min-width:0;border:0;border-radius:4px;color:var(--primary);height:44px;padding:0;outline:none;font-size:15px}
.email-field input::placeholder{color:var(--subtle);opacity:1}
.request-button{display:flex;align-items:center;justify-content:center;gap:12px;flex-shrink:0;width:176px;height:44px;padding:12px;border:0;border-radius:6px;background:var(--button);color:var(--on-button);font-size:14px;line-height:22px;letter-spacing:0;font-optical-sizing:none;font-variation-settings:'opsz' 14;transition:filter .2s,background .2s,color .2s}
.button-label{text-align:center;min-width:0}
.button-icon{display:block;flex:0 0 18px;width:18px;height:18px;background:currentColor;-webkit-mask:url('/assets/access-arrow.svg') center no-repeat;mask:url('/assets/access-arrow.svg') center no-repeat}
.request-button:hover:not(:disabled){filter:brightness(1.08)}
.request-button:active:not(:disabled){filter:brightness(.95)}
.request-button[aria-busy='true']{opacity:.7}
.form-help{font-size:12px;color:var(--subtle);margin-top:12px;line-height:18px}
.access-form .form-help{min-height:24px;letter-spacing:0}
.form-status{font-size:13px;min-height:28px;margin-top:8px;color:var(--secondary)}
.form-status[data-state='success']{color:var(--accent)}
.form-status[data-state='error']{color:var(--error)}
.form-trap{position:absolute;inset:auto auto auto -10000px;width:1px;height:1px;overflow:hidden}
.is-success .request-button{background:transparent;color:var(--secondary);box-shadow:inset 0 0 0 1px var(--divider)}
.is-success .button-icon{-webkit-mask-image:url('/assets/access-sent.svg');mask-image:url('/assets/access-sent.svg')}
.books-content{display:flex;flex-direction:column;gap:64px}
.books-intro>p{color:var(--secondary);margin-top:16px;max-width:640px}
.book-featured{display:grid;grid-template-columns:344px minmax(0,1fr);gap:48px;align-items:center}
.cover-stage{background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;width:100%;height:320px}
.cover-stage img{height:264px;max-width:calc(100% - 48px);width:164.384px;object-fit:contain;border-radius:2px;transition:transform .5s cubic-bezier(.2,.65,.2,1),filter .5s}
.book-card:hover .cover-stage img{transform:translateY(-5px) rotate(-1deg);filter:drop-shadow(0 10px 7px var(--shadow))}
.book-featured .cover-stage{height:368px}
.book-featured .cover-stage img{height:304px;width:189.29px}
.book-featured:hover .cover-stage img{transform:translateY(-4px);filter:drop-shadow(0 10px 7px var(--shadow))}
.book-details{display:flex;flex-direction:column;gap:12px;min-width:0}
.book-title-author{display:flex;flex-direction:column;gap:4px}
.book-title-author h3{font-size:20px;line-height:27px;letter-spacing:-.36px;min-height:54px}
.book-featured h2{font-size:40px;line-height:41.4px;letter-spacing:-.72px}
.book-author{color:var(--secondary)}
.book-note{color:var(--body)}
.book-featured .book-note{max-width:440px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}
.section-heading h2{font-size:31px;line-height:33.6px;letter-spacing:-.56px}
.section-heading p{color:var(--secondary);font-size:15px;white-space:nowrap}
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;row-gap:64px}
.book-card{min-width:0;display:flex;flex-direction:column;gap:24px}
.books-closing{border-top:1px solid var(--divider);padding-top:32px;color:var(--secondary)}
.page-about .main-content{padding-bottom:128px}
.about-intro{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:start}
.biography-career{display:flex;flex-direction:column;gap:48px;min-width:0}
.biography{display:flex;flex-direction:column;gap:12px;color:var(--secondary)}
.text-link{color:var(--accent);transition:color .2s}
.text-link>span[aria-hidden]{display:inline-block;font-size:12px;transition:transform .2s}
.text-link:hover>span[aria-hidden]{transform:translate(2px,-2px)}
.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.career-timeline{display:flex;flex-direction:column;gap:12px}
.timeline-row{display:grid;grid-template-columns:97.33px minmax(0,1fr);gap:16px;line-height:22.5px}
.timeline-row dt{color:var(--secondary);font-weight:400}
.timeline-row:first-child dt{color:var(--accent)}
.timeline-row dd{min-width:0;color:var(--secondary)}
.timeline-row dd span{display:block}
.timeline-row dd span:first-child{color:var(--body)}
.portrait{width:100%;aspect-ratio:437.344/651;overflow:hidden;border-radius:8px}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center}
.piano-section{margin-top:16px;border-top:1px solid var(--divider);padding-top:32px}
.piano-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}
.piano-heading h2{font-size:31px;line-height:33.6px;letter-spacing:-.56px}
.piano-heading p{color:var(--secondary)}
.piano-heading>.text-link{white-space:nowrap}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
.video-card{min-width:0;display:flex;flex-direction:column;gap:16px}
.video-thumbnail{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:var(--soft)}
.video-image{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.2,1)}
.play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;transition:transform .3s}
.video-card:hover .video-image{transform:scale(1.035)}
.video-card:hover .play-icon{transform:translate(-50%,-50%) scale(1.1)}
.video-details{display:flex;flex-direction:column;gap:8px}
.video-details h3{font-size:20px;line-height:27px;letter-spacing:-.36px}
.video-details>p{color:var(--secondary)}
.video-link{display:flex;gap:8px;align-items:center;color:var(--accent)}
.video-link img{width:14px;height:14px;filter:var(--icon-filter)}
.external-arrow{font-size:13px;opacity:0;transform:translate(-4px,3px);transition:transform .3s,opacity .3s}
.video-card:hover .external-arrow,.video-card:focus-visible .external-arrow{opacity:1;transform:translate(0,0)}
.not-found>p{margin-top:24px}
.not-found>.display-heading{margin-top:16px}
.pill-link{display:inline-flex;align-items:center;gap:24px;margin-top:32px;border-radius:8px;padding:12px 18px;background:var(--soft);color:var(--accent)}
.js .reveal.is-pending{opacity:0}
.cursor-halo{display:none;pointer-events:none;position:fixed;left:-16px;top:-16px;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-radius:50%;z-index:100;opacity:0;will-change:transform;background:color-mix(in srgb,var(--accent) 3%,transparent);transition:width .2s,height .2s,margin .2s,opacity .2s,background .2s}
.cursor-halo.is-active{opacity:1}
.cursor-halo.is-hovering{width:44px;height:44px;margin:-6px;background:color-mix(in srgb,var(--accent) 7%,transparent);border-color:transparent}
.cursor-halo.is-pressed{width:24px;height:24px;margin:4px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.cursor-halo{display:block}}
@media(min-width:1600px){.main-content{padding-top:260px}}
@media(max-width:1100px){
  .main-content{grid-column:2/span 10;padding-top:200px}
  .site-nav{grid-column:3/span 8}
  .display-heading{font-size:62px;line-height:1.12;letter-spacing:-1.5px}
  .career-summary{grid-template-columns:repeat(10,minmax(0,1fr))}
  .current-role{grid-column:1/span 3}.success-stories{grid-column:4/span 7}
  .book-featured{grid-template-columns:minmax(260px,.75fr) minmax(0,1fr);gap:32px}
  .about-intro{gap:32px}
  .timeline-row{grid-template-columns:88px minmax(0,1fr);gap:12px}
  .book-grid{column-gap:24px}
}
@media(max-width:800px){
  .header-inner{column-gap:12px}.brand{grid-column:1/span 2}.site-nav{grid-column:3/span 8;gap:20px}
  .main-content{grid-column:1/-1;padding-top:176px}
  .display-heading{font-size:56px;line-height:1.13;letter-spacing:-1.35px}
  .private-work{padding:32px}
  .book-featured{grid-template-columns:minmax(240px,.8fr) minmax(0,1fr)}
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 24px}
  .book-title-author h3{min-height:0}
  .about-intro{gap:28px}.biography-career{gap:32px}
  .timeline-row{grid-template-columns:80px minmax(0,1fr);gap:12px}
  .piano-section{margin-top:32px}
}
@media(max-width:640px){
  body{font-size:15px}
  .site-header,.header-inner{height:112px}
  .header-inner{padding:0 20px;grid-template-columns:1fr auto;grid-template-rows:64px 48px;gap:0}
  .brand{grid-column:1;grid-row:1;font-size:15px}
  .appearance{grid-column:2;grid-row:1}
  .site-nav{grid-column:1/-1;grid-row:2;gap:24px;align-self:start;justify-content:flex-start;width:100%}
  .site-nav a{height:34px}
  .page-shell{padding:0 20px}
  .main-content{padding-top:160px;padding-bottom:64px}
  .display-heading{font-size:44px;line-height:1.14;letter-spacing:-1.1px}
  .desktop-break{display:none}
  .work-intro .display-heading{max-width:500px}
  .career-summary{display:flex;flex-direction:column;gap:28px;margin-top:32px;padding-bottom:40px}
  .success-stories h2{padding-left:0}
  .achievement-list{gap:12px}
  .current-role>p{margin-top:8px}
  .private-work{padding:24px 22px 20px;border-radius:12px}
  .private-work h2{font-size:30px;line-height:1.23;letter-spacing:-.6px}
  .private-description{margin-top:16px}
  .access-form{margin-top:24px}
  .email-field{display:flex;flex-wrap:wrap;padding:6px;gap:6px}
  .email-field input{flex-basis:100%;padding:0 10px;height:44px}
  .request-button{width:100%;padding:11px 14px}
  .form-help{font-size:12px;line-height:18px;max-width:270px}
  .page-work .main-content{padding-bottom:72px}
  .site-footer{padding:24px 20px;min-height:92px;align-items:flex-start;gap:24px}
  .site-footer nav{gap:24px;flex-wrap:wrap}
  .footer-note{display:none}
  .books-content{gap:48px}
  .books-intro>p{max-width:350px}
  .book-featured{grid-template-columns:1fr;gap:24px}
  .book-featured .cover-stage{height:340px}
  .book-featured .cover-stage img{height:284px;width:177px}
  .book-featured h2{font-size:32px;line-height:1.2;letter-spacing:-.6px}
  .section-heading{gap:16px;margin-bottom:24px;align-items:baseline}
  .section-heading h2{font-size:27px;line-height:1.2}
  .section-heading>p{font-size:12px}
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 16px}
  .cover-stage{height:240px}
  .cover-stage img{height:204px;width:127px;max-width:calc(100% - 24px)}
  .book-card{gap:16px}
  .book-details{gap:10px}
  .book-title-author{gap:6px}
  .book-title-author h3{font-size:19px;line-height:25px;min-height:50px;letter-spacing:-.3px}
  .book-author{font-size:13px;line-height:19px;min-height:38px}
  .book-note{font-size:14px;line-height:21px}
  .book-featured .book-author{min-height:0;font-size:15px;line-height:22.5px}
  .book-featured .book-note{font-size:15px;line-height:22.5px}
  .books-closing{padding-top:24px}
  .about-intro{display:flex;flex-direction:column;gap:32px}
  .biography-career{width:100%;gap:40px}
  .portrait{max-width:420px;align-self:center;order:-1;aspect-ratio:4/5}
  .portrait img{object-position:center 47%}
  .timeline-row{grid-template-columns:95px minmax(0,1fr);gap:16px}
  .piano-section{margin-top:40px;padding-top:32px}
  .piano-heading{align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:24px}
  .piano-heading h2{font-size:30px;line-height:1.2}
  .piano-heading>div>p{margin-top:8px}
  .piano-heading>.text-link{font-size:13px}
  .video-grid{grid-template-columns:1fr;gap:32px}
  .video-card{gap:16px}
  .video-details{gap:6px}
  .page-about .main-content{padding-bottom:80px}
}
@media(max-width:380px){
  .page-shell,.header-inner,.site-footer{padding-left:16px;padding-right:16px}
  .display-heading{font-size:40px}
  .private-work{padding:22px 18px 18px}
  .book-grid{grid-template-columns:1fr;gap:40px}
  .cover-stage{height:320px}.cover-stage img{height:264px;width:164px}
  .book-title-author h3,.book-author{min-height:0}
  .book-card .book-note{font-size:15px;line-height:22.5px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal.is-pending{opacity:1;transform:none}
  .cursor-halo{display:none!important}
}
@media print{
  .site-header{position:static}.appearance,.cursor-halo,.access-form{display:none}
  .main-content{padding-top:48px;grid-column:1/-1}.page-shell{display:block}
  .js .reveal.is-pending{opacity:1;transform:none}.book-card,.video-card{break-inside:avoid}
  .site-footer{font-size:12px}.footer-note{display:none}
}
