:root{color-scheme:light;--paper:#f8f8f9;--ink:#101015;--muted:#575965;--line:#dedee5;--violet:#5700ef;--warm:#ffddb7;--panel:#151318;--radius:20px;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font:500 18px/1.6 Urbanist,Arial,sans-serif}button{font:inherit}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--violet);outline-offset:5px}.skip{position:absolute;top:-100px;left:16px}.skip:focus{top:8px;z-index:20;background:white;padding:8px}.wrap,.top,.foot{width:min(1240px,calc(100% - 96px));margin-inline:auto}
.top{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:96px;border-bottom:1px solid var(--line);z-index:3}.wordmark{display:inline-flex;align-items:center;gap:12px;font-size:21px;font-weight:800;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:43px;aspect-ratio:1;border-radius:50%;background:var(--ink);color:white;font-size:14px;letter-spacing:0}.top nav{display:flex;gap:30px;align-items:center}.top nav a{position:relative;font-weight:700}.top nav a::after{content:'';position:absolute;inset:auto 0 0;height:2px;background:var(--violet);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}.top nav a:hover::after,.top nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}.menu-toggle{display:none}.locale-links{display:flex;justify-content:flex-end;gap:17px;padding-top:15px;font-size:13px;font-weight:750}.locale-links a[aria-current]{color:var(--violet)}
h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:.98;letter-spacing:-.065em;font-weight:600}h1{font-size:clamp(56px,8.2vw,126px);margin:12px 0 28px}h2{font-size:clamp(39px,5.5vw,79px)}h3{font-size:32px}.eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:15px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.eyebrow::before{content:'';width:8px;aspect-ratio:1;border-radius:50%;background:var(--violet)}.hero{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:5%;padding:68px 0 98px}.hero-copy>p:not(.eyebrow),.intro{color:var(--muted);max-width:32ch;font-size:clamp(19px,2vw,25px)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.button,.rotate{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid currentColor;border-radius:100px;padding:10px 20px;background:transparent;color:inherit;font-weight:750;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}.button:hover{background:var(--ink);color:white;transform:translateY(-2px)}.primary{background:var(--violet);color:white;border-color:var(--violet)}.primary:hover{background:var(--ink);border-color:var(--ink)}
.study{position:relative;background:radial-gradient(ellipse at 50% 40%,#413366,#221a2d 55%,#151318);color:#fff;border-radius:var(--radius);overflow:hidden}.scene{display:grid;place-items:center;min-height:clamp(265px,37vw,490px);perspective:850px;overflow:hidden}.form{width:43%;aspect-ratio:1;position:relative;transform-style:preserve-3d;transform:rotateX(31deg) rotateY(-33deg) rotateZ(-18deg);transition:transform .95s var(--ease)}.form i{position:absolute;inset:0;border-radius:19%;border:2px solid #e6d7ff;box-shadow:inset 0 0 30px #b587ff55,0 0 30px #8548fc55;background:linear-gradient(135deg,#dfb9ff77,#6729da29)}.form i:nth-child(1){transform:translateZ(-60px) rotate(12deg)}.form i:nth-child(2){transform:translateZ(-20px) rotate(26deg)}.form i:nth-child(3){transform:translateZ(20px) rotate(40deg)}.form i:nth-child(4){transform:translateZ(60px) rotate(54deg)}.study[data-turned] .form{transform:rotateX(-25deg) rotateY(53deg) rotateZ(40deg)}figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 19px;border-top:1px solid #ffffff3d;font-size:14px}.rotate{font-size:13px;padding:6px 12px}.rotate:hover{color:var(--ink);background:white}
.section{padding:68px 0;border-top:1px solid var(--line)}.work-grid,.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:30px}.work-grid article,.posts article{min-width:0}.work-grid p,.posts p{margin-top:10px;color:var(--muted)}.study-icon{height:clamp(145px,18vw,240px);border-radius:var(--radius);margin-bottom:18px;display:grid;place-content:center;grid-auto-flow:column;gap:10px;overflow:hidden}.study-icon i{width:44px;height:56px;border-radius:6px;background:#1c1630;transition:transform .5s var(--ease)}article:hover .study-icon i{transform:translateY(-7px)}.web-art{background:#e5d9ff}.web-art i:first-child{width:16px}.graphic-art{background:var(--warm)}.graphic-art i{background:#5d382b;border-radius:50%}.graphic-art i:last-child{background:#b46a4e}.render-art{background:#e4e7f1}.render-art i{background:#433360;transform:skewY(-20deg)}.render-art i:nth-child(2){height:75px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:28px}.split p:not(.eyebrow){max-width:44ch;color:var(--muted)}#contact{border:0;border-radius:var(--radius);background:var(--panel);color:white;padding:clamp(24px,5vw,65px);margin-bottom:55px}#contact .button{color:white}#contact .button:hover{color:var(--ink);background:white}
.foot{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding:20px 0;color:var(--muted)}.to-top{width:45px;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:24px}.to-top:hover{background:var(--ink);color:white}.resume{border-top:0}.cv-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:35px;align-items:end;padding-bottom:44px}.period{color:var(--violet)}.cv-summary{max-width:32ch;font-size:clamp(19px,2.5vw,28px);color:var(--muted);padding-bottom:5px}.cv-section{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:35px 0;border-top:1px solid var(--line)}.cv-section h2{font-size:clamp(31px,5vw,57px)}.resume dl{margin:0}.resume dl div{border-bottom:1px solid var(--line);padding:12px 0}.resume dt{font-size:25px;font-weight:750}.resume dd{margin:0;color:var(--muted);display:flex;justify-content:space-between;gap:14px}.resume .button{margin-top:16px}
.prose{max-width:850px}.prose h1{font-size:clamp(49px,7vw,89px)}.prose .content{margin-top:28px}.content p{margin:1em 0}.content h2{font-size:clamp(28px,5vw,46px);margin-top:1em}.prose img,.post-cover{display:block;width:100%;height:auto;border-radius:var(--radius)}.prose .feature{margin-top:28px}.post-cover{aspect-ratio:3/2;object-fit:cover;margin-bottom:14px;transition:filter .3s}.posts article:hover .post-cover{filter:brightness(.88)}.posts time{font-size:14px;color:var(--muted)}.posts h2{font-size:30px;margin-top:6px}.posts h2 a:hover{color:var(--violet)}
body.motion-ready .reveal{opacity:0;transform:translateY(22px)}body.motion-ready .reveal.visible{opacity:1;transform:none;transition:opacity .62s var(--ease),transform .62s var(--ease)}
@media(max-width:780px){.wrap,.top,.foot{width:calc(100% - 36px)}.top{min-height:72px}.menu-toggle{display:grid;place-content:center;gap:5px;width:43px;height:43px;border-radius:50%;background:var(--ink);border:0;cursor:pointer}.menu-toggle span{width:17px;height:2px;background:white;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.top nav{display:flex;flex-wrap:wrap;gap:12px}.menu-toggle{display:none}body.menu-ready .menu-toggle{display:grid}body.menu-ready .top nav{position:absolute;inset:calc(100% + 8px) 0 auto;display:grid;gap:0;background:var(--panel);color:white;border-radius:16px;padding:12px;visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .24s,transform .24s,visibility .24s}body.menu-ready .top nav[data-open]{visibility:visible;opacity:1;transform:none}.top nav a{padding:8px 10px}.top nav a::after{display:none}.hero,.split,.cv-heading,.cv-section{grid-template-columns:1fr}.hero{padding:37px 0 57px;gap:30px}.work-grid,.posts{grid-template-columns:1fr;gap:30px}.section{padding:44px 0}.cv-heading{gap:18px;padding-bottom:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
