:root{color-scheme:light;--paper:#eff0f1;--ink:#0a0b0c;--muted:#606369;--blue:#1449ff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{min-height:100svh;display:flex;flex-direction:column}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;padding:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;margin:6px 1.1vw 0;min-height:44px}.monogram{background:var(--ink);color:white;width:44px;height:44px;display:grid;place-items:center;font:700 16px monospace;letter-spacing:-2px}.contacts{display:flex;gap:32px;position:absolute;left:38%;font-size:14px}.contacts :is(button,a){min-height:44px;position:relative}.contacts :is(button,a):after{content:'';position:absolute;bottom:8px;left:0;width:0;height:1px;background:currentColor;transition:width .25s}.contacts :is(button,a):hover:after{width:100%}.top-right{display:flex;gap:30px;align-items:center}.languages{display:flex;gap:13px;align-items:center;font:13px monospace;letter-spacing:1px}.languages button{min-height:44px;color:var(--muted)}.languages button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}.lab{font:12px monospace;letter-spacing:2px}.top-right .lab{color:var(--ink)}main{position:relative;z-index:1;display:grid;grid-template-columns:73% 27%;padding:0 1.8vw 0 .6vw;align-items:start;margin-top:10vh;flex:1;gap:0}.identity{padding-right:4vw}h1{font-size:clamp(95px,10.6vw,210px);line-height:.91;font-weight:400;letter-spacing:-.065em;margin:0 0 42px -.005em}h1 span{display:block}h1 span:first-child{margin-left:13vw}.details{display:grid;grid-template-columns:170px minmax(0,465px);gap:3.2vw;margin-left:13vw}.disciplines{padding:0;margin:0;list-style:none;font:12px/2.1 monospace;letter-spacing:1.2px;white-space:nowrap}.disciplines li:before{content:'→ ';letter-spacing:0}.bio h2{font-size:clamp(22px,2vw,32px);font-weight:400;line-height:1.2;letter-spacing:-1px;margin:0 0 18px}.bio p{font-size:16px;line-height:1.65;color:var(--muted);margin:0;max-width:460px}.portrait{margin:0}.portrait img{display:block;width:100%;height:min(63vh,700px);object-fit:cover;object-position:50% 45%;border-bottom:0}.portrait figcaption{text-align:right;font:15px monospace;padding:20px 7px}footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 1.1vw 30px;color:var(--muted);font:11px monospace;letter-spacing:1.5px}#motion{font:10px monospace;letter-spacing:1px;min-height:44px;position:absolute;left:48%;transform:translateX(-50%)}#motion:hover{color:var(--ink)}#flock{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}#orb{width:112px;height:112px;background:var(--blue);border-radius:50%;position:fixed;top:0;left:0;z-index:2;pointer-events:none;will-change:transform}#cursor{width:23px;height:23px;background:#080808;border-radius:50%;position:fixed;left:0;top:0;z-index:20;pointer-events:none;opacity:0;transition:width .18s,height .18s,opacity .15s;transform:translate(-50%,-50%)}body.custom-cursor,body.custom-cursor button,body.custom-cursor a{cursor:none}#cursor.over-text{width:7px;height:7px}#cursor.over-link{width:30px;height:30px;background:transparent;border:1px solid #111}dialog{border:1px solid #ccc;background:var(--paper);padding:40px;max-width:min(460px,90vw);color:var(--ink)}dialog::backdrop{background:#0003;backdrop-filter:blur(7px)}#close{position:absolute;right:15px;top:8px;font-size:28px;width:36px;height:36px}#notice-title{font-size:26px;letter-spacing:-1px}#notice-text{font-size:15px;line-height:1.6;color:var(--muted)}
@media(min-width:1700px){main{grid-template-columns:74% 26%}.details{gap:3vw}h1{font-size:10vw}}
@media(max-width:1100px){main{grid-template-columns:68% 32%;margin-top:9vh}.details{margin-left:4vw;grid-template-columns:145px 1fr;gap:18px}.bio h2{font-size:23px}.bio p{font-size:14px}.disciplines{font-size:10px}.portrait img{height:58vh}h1{font-size:11.6vw}.contacts{left:33%}}
@media(max-width:700px){header{margin:10px 18px 0}.monogram{width:36px;height:36px}.contacts{position:static;gap:16px;font-size:11px}.top-right{gap:0}.top-right .lab{display:none}.languages{gap:7px;font-size:10px}main{display:flex;flex-direction:column;margin:55px 0 0;padding:0 20px}.identity{padding:0;width:100%}h1{font-size:19vw;line-height:.94;margin:0 0 36px -.04em}h1 span:first-child{margin-left:17vw}.details{margin:0;grid-template-columns:1fr;gap:24px}.disciplines{display:grid;grid-template-columns:1fr 1fr;font-size:10px;line-height:2;letter-spacing:.7px}.bio h2{font-size:25px;letter-spacing:-.8px;margin-bottom:14px}.bio p{font-size:15px;max-width:410px}.portrait{width:80%;margin:38px 0 0 auto}.portrait img{height:auto;aspect-ratio: .72;object-fit:cover}.portrait figcaption{padding:12px 0}footer{margin:38px 20px 24px;flex-wrap:wrap;gap:10px}.copyright{width:100%;font-size:9px;text-align:right;margin-top:0}#motion{left:auto;right:0;transform:none;top:-15px}#orb{width:72px;height:72px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}#cursor{display:none}}@media(pointer:coarse){#cursor{display:none}}


/* Cursor stays solid black on every surface. */
#cursor{width:42px;height:42px;background:#080808;mix-blend-mode:normal;transition:width .24s ease,height .24s ease,opacity .15s;border:0}#cursor.over-text{width:42px;height:42px}#cursor.over-link{width:82px;height:82px;background:#080808;border:0}

/* Preserve the complete supplied portrait, with no cover crop. */
.portrait img{height:auto;aspect-ratio:auto;object-fit:contain}

.contacts a{display:inline-flex;align-items:center;min-height:44px}
.portrait-window{position:relative;width:100%;line-height:0;outline-offset:5px}.portrait-window:focus-visible{outline:2px solid #1449ff}.portrait-window img{border:0}.portrait-window{border-bottom:0}#portrait-reveal{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#cursor.over-portrait{width:82px;height:82px;background:#080808;border:0;mix-blend-mode:normal;transition:none}
.orb-white-letters{position:fixed;inset:0;z-index:4;pointer-events:none;clip-path:circle(0px);overflow:hidden}.orb-text-layout{width:100%;min-height:100svh;display:flex;flex-direction:column}.orb-text-layout,.orb-text-layout *{background:transparent!important;color:#fff!important;border-color:transparent!important;outline:none!important}.orb-text-layout img,.orb-text-layout canvas{visibility:hidden}.orb-pink-intersection{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:21}

/* Pink overlap is composited explicitly, never through difference blending. */
#cursor.over-orb{mix-blend-mode:normal}#cursor.over-orb:not(.over-portrait){background:#080808}

/* Photo and reveal share an identical, border-free content rectangle. */
.portrait-window{border:0;box-shadow:none}


.contacts .cv-label { align-self: center; }

#cursor, #cursor.over-text {
  width: 16px;
  height: 16px;
  left: var(--pointer-x, 0px);
  top: var(--pointer-y, 0px);
  overflow: hidden;
}
#cursor.over-link { width: 62px; height: 62px; }
.cursor-header-ink {
  position: absolute;
  left: calc(50% + var(--header-left) - var(--pointer-x));
  top: calc(50% + var(--header-top) - var(--pointer-y));
  visibility: hidden;
}
.over-link .cursor-header-ink { visibility: visible; }
.cursor-header-ink header { margin: 0; }
.cursor-header-ink header * { color: white !important; background: transparent; }
