:root{--bg: #faf9f5;--fg: #1a1a1a;--fg-muted: #6b6960;--hairline: rgba(26, 26, 26, .12);--ink-accent: #e0533d;--card-radius: 6px;--card-shadow: 0 1px 2px rgba(26, 26, 26, .06), 0 18px 40px -18px rgba(26, 26, 26, .28);--placeholder: rgba(26, 26, 26, .05);--placeholder-edge: rgba(26, 26, 26, .09);--btn-bg: #1a1a1a;--btn-fg: #faf9f5}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior-y:none}.fp-page{position:relative;width:100%}.hero{position:relative;width:100%;height:calc(var(--app-vh, 1svh) * 185)}.hero-stage{position:fixed;top:0;left:0;right:0;height:calc(var(--app-vh, 1svh) * 100);z-index:0;overflow:hidden;pointer-events:none}.tile-root{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%)}.tile-parallax,.tile-float{transform:translateZ(0);will-change:transform}.tile-hover{transform:translateZ(0)}.tile-root--project .tile-hover,.tile-root--image-mid .tile-hover{pointer-events:auto;cursor:pointer}.tile-tooltip{--tip-shift: 0px;position:absolute;bottom:calc(100% + 40px);left:50%;width:max-content;max-width:268px;padding:13px 16px;background:var(--bg);color:var(--fg);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--card-shadow);text-align:left;line-height:1.35;opacity:0;visibility:hidden;transform:translate(calc(-50% + var(--tip-shift)),6px) scale(.96);transform-origin:50% 100%;transition:opacity .2s ease,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s;pointer-events:none;z-index:50}.tile-tooltip--below{bottom:auto;top:calc(100% + 40px);transform-origin:50% 0%;transform:translate(calc(-50% + var(--tip-shift)),-6px) scale(.96)}.tile-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(calc(-50% - var(--tip-shift)));border:7px solid transparent;border-top-color:var(--bg)}.tile-tooltip--below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--bg)}.tile-root--project:hover .tile-tooltip{opacity:1;visibility:visible;transform:translate(calc(-50% + var(--tip-shift))) scale(1);transition:opacity .2s ease,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s}.tile-tooltip-title{font-size:15px;font-weight:700;letter-spacing:-.01em}.tile-tooltip-role{margin-top:2px;font-size:12px;font-weight:500;color:var(--ink-accent);text-transform:uppercase;letter-spacing:.05em}.tile-tooltip-blurb{margin-top:7px;font-size:13px;font-weight:400;color:var(--fg-muted);white-space:normal}.tile-media{position:relative;width:var(--w);border-radius:var(--card-radius);background:var(--placeholder);overflow:hidden;box-shadow:var(--card-shadow);line-height:0}.tile-poster{display:block;width:100%;height:auto}.tile-media--image{opacity:var(--img-opacity, 1)}.tile-root--image-back .tile-media--image,.tile-root--placeholder .tile-ph{filter:blur(var(--img-blur, 3px))}.tile-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;visibility:hidden}.tile-ph{width:var(--w);height:var(--h);border-radius:4px;background:var(--placeholder);border:1px solid var(--placeholder-edge);opacity:var(--ph-opacity, .6)}.hero-fixed{position:fixed;top:0;left:0;right:0;height:calc(var(--app-vh, 1svh) * 100);z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.hero-copy{position:relative;z-index:20;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:24px;pointer-events:none}.contact-section{position:relative;z-index:80;min-height:calc(var(--app-vh, 1svh) * 100);display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);overflow:hidden}.contact-ribbons{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.contact-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:min(90vw,360px);padding:20px 28px;background:var(--bg);border:1px solid var(--hairline);border-radius:16px;box-shadow:var(--card-shadow)}.cta-contact-email{font-size:clamp(16px,2.4vw,20px);font-weight:500;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--hairline);padding-bottom:2px;transition:border-color .2s ease}.cta-contact-email:hover{border-color:var(--fg)}.cta-contact-socials{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.cta-contact-social{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--btn-fg);background:var(--btn-bg);box-shadow:var(--card-shadow);transition:transform .18s ease,opacity .18s ease}.cta-contact-social:hover{transform:translateY(-2px);opacity:.92}.cta-contact-social:focus-visible,.cta-contact-email:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.hero-copy h1{font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-size:clamp(40px,7.5vw,72px);font-weight:400;letter-spacing:-.01em;line-height:1.08;pointer-events:none;padding-top:240px;margin-top:-240px}.hero-name-wrap{--fan-scale: 1;position:relative;display:inline-block;pointer-events:auto}.hero-name-wrap:before{content:"";position:absolute;left:50%;bottom:-.4em;height:calc(124px * var(--fan-scale, 1) + 56px);width:calc(92px * var(--fan-scale, 1) * 2 + 56px);transform:translate(-50%);pointer-events:none;z-index:1}.hero-name-wrap:hover:before,.hero-name-wrap:focus-within:before{pointer-events:auto}.hero-name{position:relative;display:inline-block;font-weight:700;cursor:default;white-space:nowrap;border-radius:2px;outline:none}.hero-name:focus-visible{outline:2px solid var(--fg);outline-offset:4px}.hero-name-underline{position:absolute;left:-1%;bottom:-.22em;width:102%;height:.44em;overflow:visible;fill:none;stroke:var(--ink-accent);stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:240;stroke-dashoffset:240;animation:name-ink 1s ease .5s forwards}@keyframes name-ink{to{stroke-dashoffset:0}}.hero-name-fan{position:absolute;left:50%;top:0;width:0;height:0;z-index:30;pointer-events:none}.hero-name-item{position:absolute;left:0;top:0;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-50%) scale(.4);transform-origin:50% 50%;transition:opacity .26s ease,transform .4s cubic-bezier(.34,1.4,.5,1),visibility 0s linear .4s}.hero-name-wrap:hover .hero-name-item,.hero-name-wrap:focus-within .hero-name-item{opacity:1;visibility:visible;pointer-events:auto;transform:translate(calc(-50% + var(--ex) * var(--fan-scale)),calc(-50% + var(--ey) * var(--fan-scale))) scale(1);transition:opacity .26s ease calc(var(--i) * 45ms),transform .5s cubic-bezier(.34,1.4,.5,1) calc(var(--i) * 45ms),visibility 0s}.hero-name-photo{width:112px;height:112px;object-fit:cover;border-radius:50%;background:var(--placeholder);box-shadow:var(--card-shadow);border:3px solid var(--bg)}.hero-name-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--btn-fg);background:var(--btn-bg);box-shadow:var(--card-shadow)}.hero-name-icon:hover{transform:translate(calc(-50% + var(--ex) * var(--fan-scale)),calc(-50% + var(--ey) * var(--fan-scale))) scale(1.12)}.hero-name-icon:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.hero-copy p{font-size:clamp(16px,2.4vw,20px);font-weight:400;color:var(--fg-muted);max-width:36ch;pointer-events:auto}.contact-btn{margin-top:6px;pointer-events:auto;font:inherit;font-size:15px;font-weight:500;color:var(--btn-fg);background:var(--btn-bg);border:none;border-radius:999px;padding:11px 22px;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.contact-btn:hover{transform:translateY(-1px);opacity:.92}.contact-btn:active{transform:translateY(0)}.contact-btn:focus-visible{outline:2px solid var(--fg);outline-offset:3px}@media(max-width:640px){.tile-root--project{--w: 170px !important}.tile-root--image-mid{--w: 128px !important}.tile-root--image-back{--w: 64px !important}.tile-root--placeholder{--w: 120px !important;--h: 90px !important}.hero-name-wrap{--fan-scale: .66}.hero-name-photo{width:84px;height:84px}.hero-name-icon{width:38px;height:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tile-parallax,.tile-float,.tile-hover{will-change:auto}.contact-btn:hover{transform:none}.hero-name-underline{animation:none;stroke-dashoffset:0}.hero-name-item{transform:translate(calc(-50% + var(--ex) * var(--fan-scale)),calc(-50% + var(--ey) * var(--fan-scale)));transition:opacity .15s linear,visibility 0s linear .15s}.hero-name-wrap:hover .hero-name-item,.hero-name-wrap:focus-within .hero-name-item{transform:translate(calc(-50% + var(--ex) * var(--fan-scale)),calc(-50% + var(--ey) * var(--fan-scale)));transition:opacity .15s linear,visibility 0s}.hero-name-icon:hover{transform:translate(calc(-50% + var(--ex) * var(--fan-scale)),calc(-50% + var(--ey) * var(--fan-scale)))}.hero{height:calc(var(--app-vh, 1svh) * 100)}}.scroll-ink{--scroll-ink-bg: #f3f6f9;position:relative;width:100%}.scroll-ink-stage{position:relative;width:100%;height:calc(var(--app-vh, 1svh) * 100);overflow:hidden;background:var(--scroll-ink-bg);z-index:90}.scroll-ink-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(32px,6vw,96px);width:min(1180px,90vw);margin-inline:auto;padding-inline:clamp(20px,5vw,48px);height:100%}.scroll-ink-media{position:relative;width:100%;max-width:420px;aspect-ratio:4 / 5;margin-inline:auto;border-radius:var(--card-radius);overflow:hidden;background:#fff;box-shadow:var(--card-shadow)}.scroll-ink-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.scroll-ink-loader{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#fff;transition:opacity .5s ease}.scroll-ink-loader[data-ready=true]{opacity:0;pointer-events:none}.scroll-ink-loader-bar{width:min(140px,50%);height:2px;background:var(--hairline);position:relative;overflow:hidden}.scroll-ink-loader-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:var(--p, 0%);background:var(--ink-accent);transition:width .2s linear}.scroll-ink-copy{position:relative;display:grid;min-height:220px;align-content:center}.scroll-ink-block{grid-area:1 / 1;max-width:30rem;transition:opacity .12s linear,transform .12s linear;will-change:opacity,transform}.scroll-ink-block-title{font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-size:clamp(34px,4.5vw,56px);font-weight:400;letter-spacing:-.01em;line-height:1.15;color:var(--fg);margin-bottom:.3em}.scroll-ink-block-brand{color:var(--ink-accent);white-space:nowrap}.scroll-ink-block-text{font-size:clamp(16px,2.4vw,20px);font-weight:400;line-height:1.6;color:var(--fg-muted);max-width:36ch}.scroll-ink-dots{position:absolute;bottom:-2.4rem;left:0;display:flex;gap:8px}.scroll-ink-dot{width:22px;height:3px;border-radius:2px;background:var(--hairline);transition:background .25s ease}.scroll-ink-dot[data-active=true]{background:var(--ink-accent)}@media(max-width:720px){.scroll-ink-grid{grid-template-columns:1fr;gap:clamp(24px,8vw,48px);align-content:center}.scroll-ink-media{max-width:280px;aspect-ratio:1 / 1}.scroll-ink-copy{min-height:200px;text-align:center;justify-items:center}.scroll-ink-dots{left:50%;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.scroll-ink{height:calc(var(--app-vh, 1svh) * 100)!important}.scroll-ink-block{position:static;opacity:1!important;transform:none!important;visibility:visible!important;margin-bottom:1.5rem}.scroll-ink-copy{display:block}.scroll-ink-dots{display:none}}
