/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.block{display:block}}@font-face{font-family:Recia;src:url(https://framerusercontent.com/third-party-assets/fontshare/wf/EKDHFA4MOYSEQZ5LG2FYZ7GAQBIWU2OL/ZPCLM6EWF2NHNYTV2CI37X2H5DIZZOAE/7XCHJ2FE6VSSCGPUIM7FUFFMDGQZLWVU.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Recia;src:url(https://framerusercontent.com/third-party-assets/fontshare/wf/UCVFHWZFI6VWYBJNGRULXP6L77MDNSO7/JI5ONTUPXCI7TK6W6MKI47NHH5YP6XBV/OWV5NCA5735TAGOQ3FYUNIHLKYJVZ6LI.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--canvas:#f1f1f1;--ink:#111;--muted:#5f5f5f;--faint:#8a8a8a;--hairline:#d6d6d6;--cyan:#8ce7ed;--highlight:#f4ffc2;--navy:#131c3a;--cobalt:#2447e8;--ember:#ff7a48;--serif:"Recia", Georgia, "Times New Roman", serif;--sans:"Inter", system-ui, -apple-system, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas);color:var(--ink);scroll-padding-top:5.5rem}body{background:var(--canvas);min-width:320px;font-family:var(--serif);-webkit-font-smoothing:antialiased;margin:0;font-size:1.125rem;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}::selection{background:var(--highlight);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:2px}.shell{width:min(80rem,100% - 3rem);margin-inline:auto}.reveal-load{--enter-x:0;--enter-y:.9rem;opacity:0;transform:translate3d(var(--enter-x),var(--enter-y),0);animation:load-in .9s var(--ease-out) var(--delay,0s) forwards;will-change:transform,opacity}.reveal-load.from-left{--enter-x:clamp(-8rem, -11vw, -3rem);--enter-y:0}.reveal-load.from-right{--enter-x:clamp(3rem, 11vw, 8rem);--enter-y:0}.reveal-load.from-top{--enter-x:0;--enter-y:-1.5rem}@keyframes load-in{to{opacity:1;transform:translate(0)}}.reveal-line{transform-origin:50%;animation:line-in .85s var(--ease-out) .16s forwards;transform:scaleX(0)}@keyframes line-in{to{transform:scaleX(1)}}.has-js [data-reveal]{opacity:0;transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transform:translateY(1.5rem)}.has-js [data-reveal].is-visible{opacity:1;transform:translateY(0)}.site-header{z-index:20;background:var(--canvas);justify-content:space-between;align-items:center;width:100%;padding:.9rem clamp(1.5rem,4vw,5rem);display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.site-header{background:color-mix(in srgb,var(--canvas) 88%,transparent)}}.site-header{-webkit-backdrop-filter:blur(10px)}.monogram{font-family:var(--sans);letter-spacing:-.05em;transition:transform .3s var(--ease-out);font-size:1.55rem;font-weight:800;line-height:1}.monogram:hover{transform:rotate(-4deg)scale(1.06)}.site-header nav{align-items:center;gap:clamp(1.1rem,3vw,2.6rem);font-size:1.05rem;display:flex}.site-header nav a:not(.cv-pill){padding:.4rem .1rem;position:relative}.site-header nav a:not(.cv-pill):after{content:"";background:var(--ink);transform-origin:100%;height:2px;transition:transform .3s var(--ease-out);position:absolute;bottom:.15rem;left:0;right:0;transform:scaleX(0)}.site-header nav a:not(.cv-pill):hover:after{transform-origin:0;transform:scaleX(1)}.cv-pill{background:var(--cyan);transition:background .25s var(--ease-out),transform .25s var(--ease-out),box-shadow .25s var(--ease-out);border-radius:999px;padding:.5rem 1.45rem;font-size:1.02rem}.cv-pill:hover{background:var(--ink);color:var(--canvas);transform:translateY(-2px);box-shadow:0 6px 18px #0000002e}.cv-pill:active{transform:translateY(0)}.hero{text-align:center;padding:clamp(3rem,8vw,6.5rem) 1rem clamp(2rem,5vw,4rem)}.hero-name{font-family:var(--serif);letter-spacing:-.03em;font-size:clamp(3.4rem,12.5vw,11rem);font-weight:700;line-height:.95}.rule{background:var(--ink);border:0;height:3px;margin:0}.bio{grid-template-columns:minmax(16rem,.55fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,6vw,6rem);padding:clamp(3rem,6vw,5.5rem) 0;display:grid}.portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 18%;width:100%;animation:portrait-focus 1.1s var(--ease-out) .3s forwards;will-change:transform;border-radius:6px;transform:scale(1.055)}@keyframes portrait-focus{to{transform:scale(1)}}.bio-text{gap:1.35rem;max-width:46rem;font-size:clamp(1.1rem,1.5vw,1.28rem);line-height:1.6;display:grid}.bio-paragraph{opacity:0;animation:paragraph-in .62s var(--ease-out) calc(.48s + var(--i) * 80ms) forwards;transform:translate(1rem)}@keyframes paragraph-in{to{opacity:1;transform:translate(0)}}.bio-text a,.contact-note a{text-underline-offset:3px;background:linear-gradient(var(--highlight),var(--highlight)) no-repeat left bottom / 0% 100%;transition:background-size .35s var(--ease-out);text-decoration:underline;text-decoration-thickness:1px}.bio-text a:hover,.contact-note a:hover{background-size:100% 100%}.block{padding:clamp(3rem,6vw,5.5rem) 0}.block h2,.contact h2{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(2.1rem,4.5vw,3.4rem);font-weight:700;line-height:1.05}.block h2{margin-bottom:clamp(2rem,4vw,3.5rem)}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.75rem);display:grid}.card{flex-direction:column;display:flex}.card:nth-child(n+4){margin-top:clamp(.75rem,1.5vw,1.35rem)}.cover{aspect-ratio:16/9;transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out);border-radius:10px;flex-direction:column;padding:1.4rem 1.5rem;display:flex;position:relative;overflow:hidden}.card:hover .cover{transform:translateY(-6px);box-shadow:0 18px 36px #00000029}.cover-kind{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.55rem;font-size:.62rem;font-weight:600}.cover-title{z-index:1;max-width:62%;font-family:var(--sans);letter-spacing:-.02em;font-size:clamp(.95rem,1.4vw,1.25rem);font-weight:800;line-height:1.15;position:relative}.cover-sub{z-index:1;max-width:60%;font-family:var(--sans);opacity:.75;margin-top:.45rem;font-size:.72rem;line-height:1.4;position:relative}.cover-cells{background:var(--navy);color:#fff}.cover-cells .cover-kind{color:var(--ember)}.cells{grid-template-columns:repeat(3,1fr);gap:6px;width:32%;display:grid;position:absolute;top:1.4rem;bottom:1.4rem;right:1.5rem}.cells span{background:var(--ember);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.cells span{background:color-mix(in srgb,var(--ember) 55%,var(--navy))}}.cells span{transition:background .4s var(--ease-out);transition-delay:calc(var(--i) * 18ms)}.cells span.lit,.card:hover .cover-cells .cells span{background:var(--ember)}.card:hover .cover-cells .cells span.lit{background:#fff}.cover-bars{background:var(--cobalt);color:#fff}.cover-bars .cover-kind{color:var(--highlight)}.bars{align-items:flex-end;gap:6px;width:32%;height:78%;display:flex;position:absolute;bottom:0;right:1.5rem}.bars span{height:var(--h);background:#fff;border-radius:3px 3px 0 0;flex:1}@supports (color:color-mix(in lab,red,red)){.bars span{background:color-mix(in srgb,#fff 78%,var(--cobalt))}}.bars span{transform-origin:bottom;transition:transform .45s var(--ease-out);transition-delay:calc(var(--i) * 25ms)}.bars span:nth-child(3n){background:var(--highlight)}.bars span:nth-child(3n+2){background:var(--cyan)}.card:hover .cover-bars .bars span{transform:scaleY(1.12)}.cover-paper{background:var(--highlight);color:var(--ink);border:1px solid var(--ink)}@supports (color:color-mix(in lab,red,red)){.cover-paper{border:1px solid color-mix(in srgb,var(--ink) 14%,var(--highlight))}}.cover-paper .cover-kind{color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.cover-paper .cover-kind{color:color-mix(in srgb,var(--ink) 62%,var(--highlight))}}.cover-paper .cover-title{font-family:var(--serif);font-size:clamp(1.05rem,1.6vw,1.45rem);font-weight:700}.cover-paper .cover-sub{font-family:var(--serif);opacity:.65;font-style:italic}.paper-mark{font-family:var(--serif);color:#1111111f;transition:transform .45s var(--ease-out),color .45s var(--ease-out);font-size:9rem;font-weight:700;line-height:1;position:absolute;bottom:-1.9rem;right:.6rem}.card:hover .paper-mark{color:#11111147;transform:rotate(-8deg)translateY(-.4rem)}.cover-privacy{background:var(--navy);color:#fff}.cover-privacy .cover-kind{color:var(--cyan)}.cover-privacy .cover-title{max-width:69%;font-size:clamp(.84rem,1.18vw,1.08rem)}.privacy-weave{width:25%;transition:transform .45s var(--ease-out);grid-template-columns:repeat(3,1fr);gap:5px;display:grid;position:absolute;top:1.25rem;bottom:1.25rem;right:1.3rem;transform:rotate(6deg)}.privacy-weave span{background:var(--cyan);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.privacy-weave span{background:color-mix(in srgb,var(--cyan) calc(38% + var(--i) * 4%),var(--navy))}}.privacy-weave span{transform:scaleY(calc(.55 + var(--i) * .035));transition:background .35s var(--ease-out);transition-delay:calc(var(--i) * 16ms)}.privacy-weave span:nth-child(3n+2){background:var(--highlight)}.card:hover .privacy-weave{transform:rotate(0)}.card:hover .privacy-weave span{background:var(--cyan)}.cover-open{background:var(--ember);color:var(--navy)}.cover-open .cover-kind{color:var(--navy)}@supports (color:color-mix(in lab,red,red)){.cover-open .cover-kind{color:color-mix(in srgb,var(--navy) 76%,var(--ember))}}.cover-open .cover-title{max-width:70%;font-size:clamp(.78rem,1.08vw,1rem)}.open-rings{aspect-ratio:1;width:44%;transition:transform .48s var(--ease-out);position:absolute;bottom:-2.7rem;right:-1.4rem}.open-rings span{inset:calc(var(--ring,0) * 1.15rem);border:.7rem solid var(--navy);border-top-color:#0000;border-radius:50%;position:absolute}.open-rings span:nth-child(2){--ring:1;border-color:var(--highlight);border-left-color:#0000}.open-rings span:nth-child(3){--ring:2;border-color:var(--cyan);border-bottom-color:#0000}.card:hover .open-rings{transform:rotate(24deg)scale(1.04)}.cover-chat{background:var(--highlight);color:var(--ink);border:1px solid var(--ink)}@supports (color:color-mix(in lab,red,red)){.cover-chat{border:1px solid color-mix(in srgb,var(--ink) 14%,var(--highlight))}}.cover-chat .cover-kind{color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.cover-chat .cover-kind{color:color-mix(in srgb,var(--ink) 62%,var(--highlight))}}.cover-chat .cover-title{max-width:71%;font-family:var(--serif);font-size:clamp(.82rem,1.12vw,1.04rem);font-weight:700}.chat-marks{flex-direction:column;justify-content:center;gap:.45rem;width:22%;display:flex;position:absolute;top:1.25rem;bottom:1.25rem;right:1.25rem}.chat-marks span{width:calc(62% + var(--i) * 7%);background:var(--navy);height:1.15rem;transform:translate(calc((var(--i) - 2) * .16rem));transition:width .35s var(--ease-out),background .35s var(--ease-out);transition-delay:calc(var(--i) * 22ms);border-radius:999px 999px 0;align-self:flex-end;position:relative}.chat-marks span:nth-child(2n){background:var(--cobalt);border-radius:999px 999px 999px 0;align-self:flex-start}.card:hover .chat-marks span{background:var(--ember);width:100%}.card-meta{justify-content:space-between;align-items:baseline;gap:1rem;margin-top:1.1rem;display:flex}.card-meta h3{font-family:var(--serif);letter-spacing:-.01em;font-size:1.32rem;font-weight:700;line-height:1.2}.card-meta .card-caption{max-width:26rem;font-family:var(--sans);letter-spacing:0;color:var(--muted);font-size:.92rem;font-weight:400;line-height:1.55}.card-kind{font-family:var(--sans);color:var(--faint);white-space:nowrap;flex-shrink:0;font-size:.82rem}.card-description{font-family:var(--sans);color:var(--muted);max-width:26rem;margin-top:.55rem;font-size:.92rem;line-height:1.55}.more-link{font-family:var(--serif);text-underline-offset:4px;align-items:center;gap:.4rem;margin-top:clamp(2rem,4vw,3rem);font-size:1.15rem;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.more-link svg{transition:transform .25s var(--ease-out)}.more-link:hover svg{transform:translate(.2rem,-.2rem)}.row-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.25rem,4vw,3.5rem) clamp(3rem,6vw,6rem);display:grid}.row{justify-content:space-between;align-items:baseline;gap:1.5rem;display:flex}.row h3{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(1.25rem,2vw,1.5rem);font-weight:700;line-height:1.25}.current-dot{background:var(--cyan);outline:2px solid var(--ink);border-radius:50%;width:.55em;height:.55em;margin-left:.45rem;animation:2.4s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.5}}.row-org{font-family:var(--sans);color:var(--muted);margin-top:.3rem;font-size:.95rem}.row-detail{max-width:30rem;font-family:var(--sans);color:var(--faint);margin-top:.55rem;font-size:.9rem;line-height:1.55}.row-period{font-family:var(--sans);color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:.9rem}.contact{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:clamp(2.5rem,6vw,6rem);padding:clamp(3.5rem,7vw,6.5rem) 0 clamp(3rem,6vw,5rem);display:grid}.contact h2{font-size:clamp(3rem,8vw,6.5rem)}.contact-note{max-width:28rem;color:var(--muted);margin-top:1.4rem;font-size:1.12rem}.email-button{background:var(--ink);color:var(--canvas);font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background .25s var(--ease-out),color .25s var(--ease-out),transform .25s var(--ease-out),box-shadow .25s var(--ease-out);border-radius:8px;margin-top:2rem;padding:.9rem 1.8rem;font-size:.85rem;font-weight:600;display:inline-block}.email-button:hover{background:var(--cyan);color:var(--ink);transform:translateY(-2px);box-shadow:0 8px 22px #00000029}.email-button:active{transform:translateY(0)}.contact-links{flex-direction:column;display:flex}.contact-links a{border-bottom:1px solid var(--hairline);font-family:var(--serif);transition:background .25s var(--ease-out),padding-left .25s var(--ease-out);justify-content:space-between;align-items:center;padding:1.15rem .25rem;font-size:1.2rem;display:flex}.contact-links a:first-child{border-top:1px solid var(--hairline)}.contact-links a:hover{background:var(--highlight);padding-left:.7rem}.contact-links svg{transition:transform .25s var(--ease-out)}.contact-links a:hover svg{transform:translate(.2rem,-.2rem)}.site-footer{border-top:3px solid var(--ink);font-family:var(--sans);color:var(--faint);padding:1.5rem 0 2.25rem;font-size:.82rem}@media(max-width:60rem){.card-grid{grid-template-columns:1fr;max-width:30rem}.card:nth-child(n+4){margin-top:0}.row-grid,.contact{grid-template-columns:1fr}}@media(max-width:42rem){.shell{width:calc(100% - 2.5rem)}.site-header{padding-inline:1.25rem}.site-header nav{gap:.9rem;font-size:.95rem}.site-header nav a[href="#education"]{display:none}.bio{grid-template-columns:1fr}.portrait{max-width:22rem}.reveal-load.from-left{--enter-x:-3rem}.reveal-load.from-right{--enter-x:3rem}.row{flex-direction:column;gap:.4rem}.row-period{order:-1}}@media(pointer:coarse){.site-header nav a,.contact-links a,.email-button,.more-link{min-height:2.75rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.reveal-load,[data-reveal],.bio-paragraph{opacity:1;transform:none}}@media print{.site-header{display:none}body{color:#000;background:#fff}[data-reveal]{opacity:1;transform:none}}
