@property --sweep{syntax:"<angle>";inherits:false;initial-value:360deg}:root{--carrara:#eeefea;--carrara-2:#e5e7e1;--serpentino:#1c3a31;--porfido:#7d2f3c;--ink:#18241f;--ink-soft:#434c48;--vein:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='900'><filter id='v' x='0' y='0' width='100%' height='100%'><feTurbulence type='turbulence' baseFrequency='0.002 0.006' numOctaves='6' seed='21' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0.40  0 0 0 0 0.45  0 0 0 0 0.44  -1.6 0 0 0 1.0'/><feComponentTransfer><feFuncA type='gamma' amplitude='1' exponent='6' offset='0'/></feComponentTransfer></filter><rect width='100%' height='100%' filter='url(%23v)' opacity='0.4'/></svg>");--serp-tex:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='s' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.045' numOctaves='4' seed='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.36  0 0 0 0 0.56  0 0 0 0 0.48  0 0 0 -2.4 1.3'/></filter><rect width='100%' height='100%' filter='url(%23s)' opacity='0.2'/></svg>");--porf-tex:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='p' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='1' seed='6' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.97  0 0 0 0 0.85  0 0 0 0 0.84  0 0 0 7 -5.15'/></filter><rect width='100%' height='100%' filter='url(%23p)' opacity='0.6'/></svg>");--inlay:var(--serpentino);--inlay-tex:var(--serp-tex);--accent:var(--porfido);--accent-tex:var(--porf-tex);--on-inlay:#e8b9bf;--band:clamp(7px, .9vw, 12px);--fillet:3px;--gap:5px;--wrap:74rem;--gutter:clamp(1rem, 4vw, 3rem);--measure:68ch;--section-space:clamp(4rem, 9vw, 6.5rem);--titling:"Castoro Titling", "Castoro", Georgia, serif;--text:"Castoro", "Iowan Old Style", Georgia, serif;--ease-stone:cubic-bezier(.2, .7, .2, 1);--ease-draw:cubic-bezier(.35, .05, .2, 1)}.is-porphyry{--inlay:var(--porfido);--inlay-tex:var(--porf-tex);--accent:var(--serpentino);--accent-tex:var(--serp-tex);--on-inlay:#bfdccf}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media screen and (prefers-reduced-motion:no-preference){html:focus-within{scroll-behavior:smooth}}body{color:var(--ink);background:var(--carrara) var(--vein) 0 0 / 900px 900px;font-family:var(--text);font-kerning:normal;font-synthesis-weight:none;margin:0;font-size:clamp(1.08rem,.98rem + .32vw,1.2rem);line-height:1.6;transition:background-color .6s;overflow-x:clip}a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px;transition:text-decoration-thickness .16s,text-underline-offset .16s}a:hover{text-underline-offset:.26em;text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,h4,strong,b{font-weight:400}img,svg{max-width:100%}::selection{background:color-mix(in srgb, var(--accent) 24%, transparent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--carrara);border:2px solid var(--inlay);padding:.5rem .9rem;position:absolute;top:.5rem;left:-999px}.skip-link:focus{left:.5rem}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin:0 auto}.cap{font-family:var(--titling);letter-spacing:.12em;text-transform:uppercase;font-weight:400}.disc{background:var(--accent) var(--accent-tex);width:1.15rem;height:1.15rem;box-shadow:0 0 0 3px var(--carrara), 0 0 0 5px var(--inlay);border-radius:50%;flex:none;display:inline-block}.course{display:block;position:relative}.course:after{content:"";background:var(--inlay);position:absolute;inset:0}.course--band{height:calc(var(--band) * 1.6)}.course--band:after{background:var(--inlay) var(--inlay-tex)}.course--fillet{height:var(--fillet)}.course+.course{margin-top:var(--gap)}.masthead{border-bottom:var(--band) solid var(--inlay);background:var(--carrara) var(--vein) 0 0 / 900px 900px}.masthead__in{justify-content:space-between;align-items:center;gap:1rem;min-height:4.5rem;display:flex}.masthead__name{letter-spacing:.16em;white-space:nowrap;align-items:center;min-height:2.75rem;font-size:.95rem;text-decoration:none;display:inline-flex}.tracks{gap:.3rem;display:flex}.tracks a{min-height:2.75rem;color:var(--ink-soft);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;border:2px solid #0000;justify-content:center;align-items:center;padding:0 .95rem;font-size:.82rem;text-decoration:none;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}.tracks a:hover{color:var(--ink);border-color:var(--inlay)}.tracks a[aria-current=page]{color:var(--carrara);background:var(--inlay) var(--inlay-tex)}@media (width<=560px){.masthead__in{flex-direction:column;align-items:stretch;gap:.15rem;min-height:0;padding-block:.35rem .6rem}.masthead__name{align-self:center;font-size:.86rem}.tracks{grid-template-columns:1fr 1.8fr 1fr;gap:.25rem;display:grid}.tracks a{letter-spacing:.12em;padding:0 .3rem;font-size:.76rem}}.facade{padding-top:clamp(1.6rem,3.6vw,2.6rem);position:relative}.frieze{--frieze-pad:clamp(1rem, 2.6vw, 1.8rem);padding:var(--frieze-pad) 0 clamp(.8rem, 2.2vw, 1.5rem);color:var(--inlay);font-family:var(--titling);letter-spacing:.075em;text-align:center;text-transform:uppercase;cursor:default;view-transition-name:frieze;margin:0;font-size:clamp(2.6rem,6.5vw,6.1rem);font-weight:400;line-height:1;position:relative}.frieze__cut{padding-left:.075em;display:inline-block}.frieze__word{white-space:nowrap;display:inline-block}.frieze__l{background:var(--inlay) var(--inlay-tex);color:#0000;background-clip:text;display:inline-block}.mezzanine{text-align:center;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,3vw,2.5rem);padding:clamp(.9rem,1.9vw,1.3rem) clamp(.5rem,3vw,2.5rem);display:grid}.mezzanine .disc{width:1.6rem;height:1.6rem}.mezzanine__track{color:var(--accent);letter-spacing:.2em;margin:0 0 .35rem;font-size:.9rem}.mezzanine__motto{color:var(--inlay);font-family:var(--titling);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .45rem;font-size:clamp(1.1rem,.85rem + .9vw,1.55rem);line-height:1.3}.mezzanine__motto span+span:before{content:" "}.mezzanine__tagline{max-width:42rem;margin:0 auto;font-size:clamp(1.15rem,1rem + .6vw,1.45rem);font-style:italic;line-height:1.45}.arcade{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;padding:clamp(1.25rem,2.6vw,2rem) clamp(0rem,1vw,1rem) 0;display:grid;position:relative}.arcade--portal{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr)}.bay{--rise:0;isolation:isolate;aspect-ratio:5/6.1;padding:0 calc(var(--band) + var(--gap) + var(--fillet) + .2rem) clamp(1.1rem, 2.4vw, 1.8rem);text-align:center;border-radius:9999px 9999px 0 0;flex-direction:column;justify-content:flex-end;align-items:center;gap:.35rem;margin-inline:clamp(.35rem,1.1vw,.9rem);text-decoration:none;transition:transform .14s;display:flex;position:relative}.bay:nth-child(2),.bay:nth-child(4){--rise:1}.bay:nth-child(3){--rise:2}.bay:before,.bay:after{content:"";z-index:-1;border:0 solid var(--inlay);pointer-events:none;border-radius:9999px 9999px 0 0;transition:border-color .2s,background-color .2s;position:absolute}.bay:before{border-width:var(--band) var(--band) 0;inset:0}.bay:after{inset:calc(var(--band) + var(--gap)) calc(var(--band) + var(--gap)) 0;border-width:var(--fillet) var(--fillet) 0}a.bay:hover:before{border-color:var(--accent);background-color:color-mix(in srgb, var(--inlay) 9%, transparent)}a.bay:hover:after{border-color:var(--accent)}a.bay:active{transform:scale(.985)}a.bay:focus-visible{outline-offset:6px}.bay__icon{width:1.5rem;height:1.5rem;color:var(--accent);transition:transform .2s var(--ease-stone);margin-bottom:.4rem}a.bay:hover .bay__icon{transform:translateY(-2px)}.bay__label{font-family:var(--titling);letter-spacing:.1em;text-transform:uppercase;text-wrap:balance;font-size:clamp(.8rem,.58rem + .45vw,.98rem);line-height:1.25}.bay__note{color:var(--ink-soft);text-wrap:balance;font-size:.92rem;font-style:italic}.bay--primary:before{background:var(--inlay) var(--inlay-tex)}.bay--primary:after{border-color:var(--carrara)}.bay--primary .bay__label,.bay--primary .bay__note{color:var(--carrara)}.bay--primary .bay__icon{color:var(--on-inlay)}a.bay--primary:hover:before{border-color:var(--accent);background:var(--accent) var(--accent-tex)}a.bay--primary:hover:after{border-color:var(--carrara)}.bay--rota{justify-content:center;padding:0}.bay--rota:before,.bay--rota:after{content:none}.bay--rota .rota{width:112%;max-width:none;height:auto;margin-top:18%;overflow:visible}.bay__cons{display:none}.arcade .spandrel{position:absolute;top:calc(clamp(1.25rem,2.6vw,2rem) + 1%);translate:-50%}.rota .r-inlay{fill:var(--inlay)}.rota .r-ground{fill:var(--carrara)}.rota .r-accent{fill:var(--accent)}.rota .r-speckle{fill:#f3dcdc;opacity:.5}.rota .r-line{fill:none;stroke:var(--inlay);stroke-width:4px}.rota .r-fillet{fill:none;stroke:var(--carrara);stroke-width:2.2px}.rota__rim,.rota__ring,.rota__star,.rota__boss{transform-box:fill-box;transform-origin:50%}.rota__cons{display:none}.facade__email{text-align:center;margin:1.1rem 0 0;font-size:1.05rem}.open-to{letter-spacing:.14em;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.3rem .9rem;max-width:62rem;margin:1.4rem auto 0;font-size:.8rem;line-height:1.5;display:flex}.open-to__lead{color:var(--accent);margin:0}.open-to__roles{color:var(--ink-soft);justify-content:center}@media (width<=720px){.frieze{letter-spacing:.06em;font-size:clamp(3rem,16.5vw,5rem);line-height:1.02}.frieze__word{display:block}.mezzanine{grid-template-columns:minmax(0,1fr);padding-inline:.25rem}.mezzanine .disc{display:none}.open-to{margin-top:1.2rem}}@media (width<=820px){.arcade,.arcade--portal{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.1rem;max-width:32rem;margin-inline:auto;padding-inline:0}.bay{aspect-ratio:auto;border-radius:50% 50% 0 0/4.6rem 4.6rem 0 0;min-height:9.6rem;margin-inline:.4rem;padding-top:3rem}.bay:before{border-radius:50% 50% 0 0/4.6rem 4.6rem 0 0}.bay:after{border-radius:50% 50% 0 0/4.2rem 4.2rem 0 0}.bay--portal{grid-column:1/-1}.bay--rota{order:99;grid-column:1/-1;min-height:0;margin:.6rem 0 .2rem;padding:0}.bay--rota .rota{width:min(46vw,11rem);margin:0}.arcade .spandrel{display:none}}.intro{--play:paused}.intro.intro-go{--play:running}@media screen and (prefers-reduced-motion:no-preference){.intro .facade:before,.intro .facade .course:before,.intro .frieze:before,.intro .frieze:after,.intro .bay__cons:before,.intro .bay__cons:after{content:"";background:var(--accent);opacity:.55;pointer-events:none;position:absolute}.intro .facade:before{z-index:3;transform-origin:top;width:1px;animation:cons-drop .9s var(--ease-draw) both var(--play), cons-fade .7s ease 1.55s forwards var(--play);top:.5rem;bottom:-.75rem;left:50%}.intro .facade .course:before,.intro .frieze:before,.intro .frieze:after{right:calc(-1 * min(2.5rem, var(--gutter) - .25rem));left:calc(-1 * min(2.5rem, var(--gutter) - .25rem));height:1px;animation:cons-run .8s var(--ease-draw) calc(var(--c,3) * 50ms) both var(--play), cons-fade .7s ease 1.55s forwards var(--play)}.intro .facade .course:before{top:50%}.intro .frieze:before{top:calc(var(--frieze-pad) + .05em)}.intro .frieze:after{top:calc(var(--frieze-pad) + .75em)}.intro .bay__cons{z-index:1;pointer-events:none;display:block;position:absolute;inset:0}.intro .bay__cons:before{aspect-ratio:1;border:1px solid var(--accent);background:radial-gradient(circle, var(--accent) 0 2px, transparent 2.5px);opacity:.7;width:100%;-webkit-mask:conic-gradient(from 270deg, #000 var(--sweep), #0000 0);mask:conic-gradient(from 270deg, #000 var(--sweep), #0000 0);animation:compass .95s var(--ease-draw) calc(.2s + var(--rise) * .1s) both var(--play), cons-fade .7s ease 1.55s forwards var(--play);border-radius:50%;top:0;left:0}.intro .bay__cons:after{transform-origin:top;width:1px;animation:cons-drop .8s var(--ease-draw) calc(.25s + var(--rise) * .1s) both var(--play), cons-fade .7s ease 1.55s forwards var(--play);top:-.9rem;bottom:0;left:50%}.intro .rota__cons{animation:cons-fade .7s ease 1.55s forwards var(--play);display:inline}.intro .rota__cons>*{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:1;opacity:.75;vector-effect:non-scaling-stroke;animation:draw .9s var(--ease-draw) calc(.25s + var(--i) * 80ms) both var(--play)}.intro .facade .course:after{animation:lay .7s var(--ease-stone) calc(.4s + var(--c,0) * 60ms) backwards var(--play)}.intro .frieze__l{animation:cut .5s var(--ease-stone) calc(.55s + var(--i) * 45ms) backwards var(--play)}.intro .mezzanine .disc{animation:set .45s var(--ease-stone) .85s backwards var(--play)}.intro .mezzanine__text{animation:fade-in .6s ease .9s backwards var(--play)}.intro .bay:before,.intro .bay:after{animation:rise .8s var(--ease-stone) calc(.8s + var(--rise) * .12s) backwards var(--play)}.intro .bay>:not(.bay__cons,.rota){animation:fade-in .5s ease calc(1.25s + var(--rise) * .12s) backwards var(--play)}.intro .rota>:where(:not(defs,.rota__cons,.rota__ring)){animation:fade-in .45s ease .95s backwards var(--play)}.intro .rota__rim{animation:set-soft .5s var(--ease-stone) .95s backwards var(--play)}.intro .rota__tooth{animation:fade-in .3s ease calc(1.05s + var(--i) * 22ms) backwards var(--play)}.intro .rota__star{animation:turn-in .8s var(--ease-stone) 1.15s backwards var(--play)}.intro .rota__boss{animation:set .45s var(--ease-stone) 1.45s backwards var(--play)}.intro .arcade .spandrel{animation:set .4s var(--ease-stone) calc(1.5s + var(--k) * 60ms) backwards var(--play)}.intro .facade .open-to,.intro .facade__email,.intro .ai-launch__index{animation:fade-in .6s ease 1.55s backwards var(--play)}}@media screen and (prefers-reduced-motion:no-preference) and (width<=720px){.intro .frieze:before,.intro .frieze:after{content:none}}@media screen and (prefers-reduced-motion:no-preference) and (width<=820px){.intro .bay__cons:before{aspect-ratio:auto;height:9.2rem}}@supports (animation-timeline:scroll()){@media screen and (prefers-reduced-motion:no-preference){.rota__ring{animation:linear both rota-turn scroll(root);animation-range:0 100vh}}}@keyframes lay{0%{transform:scaleX(0)}}@keyframes cut{0%{clip-path:inset(0 0 100%);opacity:.25}to{clip-path:inset(0);opacity:1}}@keyframes rise{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes set{0%{opacity:0;transform:scale(.35)}}@keyframes turn-in{0%{opacity:0;transform:rotate(-45deg)scale(.6)}}@keyframes fade-in{0%{opacity:0}}@keyframes cons-run{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cons-drop{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes cons-fade{to{opacity:0}}@keyframes compass{0%{--sweep:0deg}to{--sweep:360deg}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes rota-turn{to{transform:rotate(96deg)}}.section{padding-top:var(--section-space)}.sec-head{grid-template-columns:minmax(1rem,1fr) auto auto auto minmax(1rem,1fr);align-items:center;gap:clamp(.7rem,2vw,1.4rem);margin-bottom:clamp(1.6rem,3.5vw,2.4rem);display:grid}.sec-head:before,.sec-head:after{content:"";height:var(--band);background:var(--inlay) var(--inlay-tex);box-shadow:0 calc(var(--band) + var(--gap)) 0 calc(-1 * (var(--band) - var(--fillet)) / 2) var(--inlay)}.sec-head:before{transform-origin:100%}.sec-head:after{transform-origin:0}.sec-head h2{color:var(--inlay);font-family:var(--titling);letter-spacing:.16em;text-align:center;text-transform:uppercase;text-wrap:balance;margin:0;padding-left:.16em;font-size:clamp(1.4rem,1rem + 1.5vw,2.25rem);line-height:1.12}.sec-head--minor{margin-top:clamp(2.4rem,5vw,3.4rem)}.sec-head--minor h2{font-size:clamp(1.15rem,.95rem + .8vw,1.6rem)}.panel,.profile-card,.worklog-profile{border:var(--band) solid var(--inlay);padding:clamp(1.4rem,4vw,3rem);position:relative}.panel:before,.profile-card:before,.worklog-profile:before{content:"";inset:var(--gap);border:var(--fillet) solid var(--inlay);pointer-events:none;position:absolute}.tablets,.profile-card__focus{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.tablets li,.profile-card__focus li{border:2px solid var(--inlay);background:color-mix(in srgb, var(--carrara) 72%, transparent);align-items:center;gap:.9rem;min-height:3.1rem;padding:.55rem .95rem;font-size:1.02rem;line-height:1.3;display:flex}.tablets li:before,.profile-card__focus li:before{content:"";background:var(--accent) var(--accent-tex);flex:none;width:.7rem;height:.7rem;transform:rotate(45deg)}.pavement{gap:var(--band);padding:var(--band);background:var(--inlay) var(--inlay-tex);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tile{background:var(--carrara) var(--vein);background-size:900px 900px;padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1.1rem,2.2vw,1.7rem) clamp(1.3rem,2.6vw,1.9rem);position:relative}.tile:after{content:"";background:var(--accent) var(--accent-tex);clip-path:polygon(100% 0,0 0,100% 100%);transform-origin:100% 0;width:2.6rem;height:2.6rem;transition:transform .22s var(--ease-stone);position:absolute;top:0;right:0}.tile:nth-child(2n):after{background:var(--inlay) var(--inlay-tex);width:2rem;height:2rem}.tile h3{color:var(--inlay);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;margin:0 2.2rem .6rem 0;font-size:.95rem;line-height:1.35}:where(.tile) p{margin:0;font-size:1.02rem;line-height:1.55}.interpuncts{flex-wrap:wrap;align-items:baseline;gap:.2rem 0;margin:0;padding:0;list-style:none;display:flex}.interpuncts li:not(:last-child):after{content:"";background:var(--accent);clip-path:polygon(50% 100%,0 0,100% 0);width:.42em;height:.42em;margin:0 .62em .12em;display:inline-block}.btn{border:2px solid var(--inlay);min-height:2.9rem;color:var(--inlay);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.6rem;padding:0 1.3rem;font-size:.86rem;text-decoration:none;transition:background-color .18s,color .18s,transform .12s;display:inline-flex}.btn:hover{background:var(--inlay) var(--inlay-tex);color:var(--carrara)}.btn:active{transform:scale(.98)}.btn--primary{background:var(--accent) var(--accent-tex);color:var(--carrara);box-shadow:inset 0 0 0 3px var(--accent), inset 0 0 0 5px color-mix(in srgb, var(--carrara) 70%, transparent);border:0}.btn--primary:hover{background:var(--inlay) var(--inlay-tex);box-shadow:inset 0 0 0 3px var(--inlay), inset 0 0 0 5px color-mix(in srgb, var(--carrara) 70%, transparent)}.btn:disabled{opacity:.6;cursor:progress}.profile-card{grid-template-columns:minmax(0,1.7fr) minmax(14rem,1fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);display:grid}.profile-card__lead,.worklog-profile__lead{max-width:40rem;margin:0 0 1.1rem;font-size:clamp(1.3rem,1.05rem + .9vw,1.7rem);line-height:1.42}.profile-card__detail,.worklog-profile__detail{max-width:38rem;margin:0}.worklog-profile__top{grid-template-columns:minmax(0,2.2fr) minmax(11rem,1fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);display:grid}.worklog-profile__mode{background:var(--accent) var(--accent-tex);box-shadow:inset 0 0 0 3px var(--accent), inset 0 0 0 5px color-mix(in srgb, var(--carrara) 70%, transparent);color:var(--carrara);text-align:center;justify-items:center;gap:.4rem;padding:1.3rem 1rem 1.4rem;display:grid}.worklog-profile__mode-label{font-family:var(--titling);letter-spacing:.18em;text-transform:uppercase;font-size:.74rem}.worklog-profile__mode strong{font-size:1.3rem;font-style:italic;line-height:1.25}.worklog-profile__proof{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:clamp(1.4rem,3vw,2rem) 0 0;padding:0;list-style:none;display:grid}.worklog-profile__proof li{border:2px solid var(--inlay);background:color-mix(in srgb, var(--carrara) 72%, transparent);align-items:center;gap:.8rem;min-height:3.1rem;padding:.55rem .9rem;line-height:1.3;display:flex}.worklog-profile__proof li:before{content:"";background:var(--accent) var(--accent-tex);flex:none;width:.65rem;height:.65rem;transform:rotate(45deg)}.experience-list{grid-template-columns:repeat(var(--count,3), minmax(0, 1fr));max-width:calc(var(--count,3) * 23rem);align-items:stretch;gap:clamp(1rem,2.4vw,2rem);margin-inline:auto;padding-top:.8rem;display:grid}.exp{--side:clamp(1.1rem, 2.2vw, 1.7rem);padding:0 var(--side) clamp(1.3rem, 2.4vw, 1.8rem);border:var(--band) solid var(--inlay);border-radius:9999px 9999px 0 0;flex-direction:column;display:flex;position:relative}.exp:before{content:"";inset:var(--gap);border:var(--fillet) solid var(--inlay);pointer-events:none;border-radius:9999px 9999px 0 0;position:absolute}.exp__marker{top:calc(-1 * var(--band) / 2);z-index:1;background:var(--accent) var(--accent-tex);width:1.25rem;height:1.25rem;box-shadow:0 0 0 3px var(--carrara), 0 0 0 5px var(--inlay);border-radius:50%;position:absolute;left:50%;translate:-50% -50%}.exp__lunette{aspect-ratio:2;margin-inline:calc(-1 * var(--side) + var(--gap));border-bottom:var(--fillet) solid var(--inlay);text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;padding:18% 8% .9rem;display:flex}.exp__date{color:var(--accent);font-family:var(--titling);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .45rem;font-size:.82rem}.exp__role{margin:0;font-size:clamp(1.15rem,.95rem + .6vw,1.42rem);line-height:1.22}.exp__company{color:var(--ink-soft);margin:.35rem 0 0;font-size:1rem;font-style:italic}.exp__points{margin:1.2rem 0 0;padding:0;list-style:none}.exp__points li{margin-bottom:.55rem;padding-left:1.35rem;font-size:1.02rem;line-height:1.5;position:relative}.exp__points li:before{content:"";background:var(--inlay);width:.5rem;height:.5rem;position:absolute;top:.62em;left:.1rem;transform:rotate(45deg)}.worklog{gap:clamp(1rem,2.4vw,1.6rem);display:grid}.worklog__entry{border:2px solid var(--inlay);background:color-mix(in srgb, var(--carrara) 65%, transparent);box-shadow:inset 0 0 0 4px var(--carrara), inset 0 0 0 6px color-mix(in srgb, var(--inlay) 35%, transparent)}.worklog__head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.1rem;padding:1.15rem clamp(1rem,2.6vw,1.6rem);display:grid}.worklog__no{background:var(--accent) var(--accent-tex);width:3rem;height:3rem;box-shadow:0 0 0 3px var(--carrara), 0 0 0 5px var(--inlay);color:var(--carrara);font-family:var(--titling);letter-spacing:.06em;border-radius:50%;place-items:center;font-size:.95rem;display:grid}.worklog__role{margin:0;font-size:clamp(1.15rem,.95rem + .6vw,1.42rem);line-height:1.25}.worklog__meta{color:var(--ink-soft);margin:.25rem 0 0;font-style:italic}.worklog__dates{color:var(--accent);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;margin-left:.9rem;font-size:.8rem;font-style:normal}.worklog__body{border-top:var(--fillet) solid var(--inlay);margin:0}.worklog__line{border-bottom:1px solid color-mix(in srgb, var(--inlay) 22%, transparent);grid-template-columns:9rem minmax(0,1fr);display:grid}.worklog__line:last-child{border-bottom:0}.worklog__key{border-right:1px solid color-mix(in srgb, var(--inlay) 22%, transparent);color:var(--inlay);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;padding:.8rem clamp(1rem,2.6vw,1.6rem);font-size:.82rem}.worklog__value{margin:0;padding:.75rem clamp(1rem,2.6vw,1.6rem);line-height:1.5}.worklog__bullets{margin:0;padding:.6rem clamp(1rem,2.6vw,1.6rem) 1rem 2.6rem}.worklog__entry--past .worklog__head{padding-block:.85rem}.worklog__entry--past .worklog__no{width:2.5rem;height:2.5rem;font-size:.82rem}.interpuncts .is-highlight{color:var(--accent);font-style:italic}.tile__stack{color:var(--ink-soft);margin:0 0 .8rem;font-size:.95rem;font-style:italic}.tile__points{margin:0;padding-left:1.1rem}.tile__links{flex-wrap:wrap;gap:.6rem;margin:1rem 0 0;display:flex}a.tile:hover:after,.tile:has(a:hover):after{transform:scale(1.3)}.roundels{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.roundels a{border:2px solid var(--inlay);background:color-mix(in srgb, var(--carrara) 60%, transparent);align-items:center;gap:1rem;height:100%;min-height:4.1rem;padding:.7rem 1rem;line-height:1.3;text-decoration:none;transition:background-color .16s;display:flex}.roundels a:hover{background:color-mix(in srgb, var(--inlay) 8%, var(--carrara))}.roundels a:hover .roundels__label{text-decoration:underline;text-decoration-color:var(--accent)}.roundels .disc{width:1.2rem;height:1.2rem;transition:transform .32s var(--ease-stone)}.roundels a:hover .disc{transform:rotate(90deg)scale(1.1)}.roundels li:nth-child(3n+2) .disc{background:var(--inlay) var(--inlay-tex);box-shadow:0 0 0 3px var(--carrara), 0 0 0 5px var(--accent)}.letter{grid-template-columns:1fr 1fr;gap:1.3rem 1.6rem;max-width:52rem;margin:0 auto;display:grid}.field{gap:.45rem;display:grid}.field--full{grid-column:1/-1}.field label{color:var(--inlay);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;font-size:.82rem}.field label span{color:var(--ink-soft);font-family:var(--text);letter-spacing:0;text-transform:none;font-style:italic}.field input,.field textarea{border:2px solid var(--inlay);width:100%;min-height:3.1rem;color:var(--ink);font:inherit;background:#ffffff8c;border-radius:0;padding:.6rem .85rem;transition:border-color .16s,background-color .16s}.field textarea{resize:vertical;min-height:10rem}.field input:focus-visible,.field textarea:focus-visible{border-color:var(--accent);outline:3px solid var(--accent);outline-offset:2px;background:#ffffffbf}.letter__send{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:1rem 1.4rem;display:flex}.letter__button{letter-spacing:.16em;min-height:3.2rem;padding:0 2rem;font-size:.95rem}.letter__status{flex:16rem;min-height:1.5rem;font-style:italic}.banner{border:2px solid var(--inlay);background:color-mix(in srgb, var(--inlay) 7%, var(--carrara));padding:.6rem .95rem}.banner--err{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--carrara));color:var(--accent);animation:.4s shake}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-alt{text-align:center;margin:1.6rem 0 0;font-style:italic}@keyframes shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (width<=960px){.profile-card{grid-template-columns:minmax(0,1fr)}.profile-card__focus,.worklog-profile__proof{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-list{grid-template-columns:minmax(0,1fr);gap:2.2rem;max-width:34rem;margin-inline:auto}.exp__lunette{aspect-ratio:auto;min-height:12.5rem;padding-top:3.6rem}.exp,.exp:before{border-radius:50% 50% 0 0/11rem 11rem 0 0}.pavement,.roundels{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.worklog-profile__top,.letter,.pavement,.roundels,.profile-card__focus,.worklog-profile__proof{grid-template-columns:minmax(0,1fr)}.sec-head{grid-template-columns:minmax(.6rem,1fr) auto minmax(.6rem,1fr)}.sec-head .disc{display:none}.sec-head h2{letter-spacing:.12em;font-size:clamp(1.1rem,5.2vw,1.4rem)}.mezzanine__motto span{display:block}.mezzanine__motto span+span:before{content:none}.worklog__line{grid-template-columns:minmax(0,1fr)}.worklog__key{border-right:0;padding-bottom:.1rem}.worklog__value{padding-top:.15rem}.worklog__dates{margin:.2rem 0 0;display:block}}.page{padding-top:clamp(1.4rem,3.2vw,2.4rem)}.crumbs{font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;gap:0 1.4rem;margin:0 0 clamp(.6rem,1.8vw,1.2rem);font-size:.8rem;display:flex}.crumbs a{min-height:2.75rem;color:var(--ink-soft);align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.crumbs a:before{content:"";background:var(--accent);clip-path:polygon(100% 0,0 50%,100% 100%);width:.5rem;height:.6rem;transition:transform .18s var(--ease-stone)}.crumbs a:hover{color:var(--ink)}.crumbs a:hover:before{transform:translate(-3px)}.page-head{text-align:center}.page-head__title{color:var(--inlay);font-family:var(--titling);letter-spacing:.08em;text-transform:uppercase;text-wrap:balance;margin:0;padding:clamp(.9rem,2.4vw,1.5rem) 0 clamp(.7rem,2vw,1.2rem);font-size:clamp(2rem,1.2rem + 3.4vw,3.8rem);font-weight:400;line-height:1.08}.page-head__line{padding-top:.9rem}.page-head__line p{margin:0}.page__body{padding-top:clamp(2rem,4.5vw,3rem)}.pavement--projects{grid-template-columns:repeat(2,minmax(0,1fr))}.tile--link{transition:background-color .18s}.tile--link:hover{background-color:color-mix(in srgb, var(--inlay) 6%, var(--carrara))}.tile--link:hover:after{transform:scale(1.3)}.tile__title{color:var(--inlay);font-family:var(--titling);letter-spacing:.12em;text-transform:uppercase;margin:0 2.4rem .5rem 0;font-size:1.15rem;font-weight:400;line-height:1.3}.tile__title a{text-decoration:none}.tile__title a:before{content:"";position:absolute;inset:0}.tile__title a:focus-visible{outline:none}.tile__title a:focus-visible:before{outline:3px solid var(--accent);outline-offset:-7px}.tile--link:hover .tile__title a{text-decoration:underline;text-decoration-color:var(--accent)}.tile p.tile__summary{margin:0 0 .9rem}.tile p.tile__status{color:var(--accent);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem}.notfound .page-head__line{font-size:1.15rem;font-style:italic}.arcade.notfound__arcade{grid-template-columns:minmax(0,13rem);justify-content:center;padding-top:clamp(1.6rem,4vw,2.6rem)}.case{max-width:calc(43rem + 2 * var(--gutter))}.case__stack{color:var(--ink-soft);font-size:.98rem;font-style:italic}.case__summary{text-align:center;text-wrap:balance;margin:clamp(1.6rem,3.5vw,2.4rem) 0 0;font-size:clamp(1.2rem,1rem + .7vw,1.5rem);font-style:italic;line-height:1.45}.case__section{margin-top:clamp(2.2rem,5vw,3.2rem)}.case__h2{color:var(--inlay);font-family:var(--titling);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.9rem;margin:0 0 1rem;font-size:clamp(1.1rem,.9rem + .8vw,1.45rem);font-weight:400;display:flex}.case__h2 .disc{width:.95rem;height:.95rem}.case__prose{margin:0 0 1rem;line-height:1.7}.case__figures{gap:clamp(1.2rem,3vw,2rem);margin:clamp(1.4rem,3vw,2rem) 0 .5rem;display:grid}.case__figure{border:var(--band) solid var(--inlay);background:color-mix(in srgb, var(--carrara) 82%, transparent);margin:0;padding:clamp(.9rem,2.4vw,1.4rem);position:relative}.case__figure:before{content:"";inset:var(--gap);border:var(--fillet) solid var(--inlay);pointer-events:none;position:absolute}.case__figure img{width:100%;height:auto;display:block}.case__figure figcaption{color:var(--ink-soft);text-align:center;margin-top:.8rem;font-size:.95rem;font-style:italic}.case__links{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.case__plaque{background:var(--accent) var(--accent-tex);width:fit-content;box-shadow:inset 0 0 0 3px var(--accent), inset 0 0 0 5px color-mix(in srgb, var(--carrara) 70%, transparent);color:var(--carrara);font-family:var(--titling);letter-spacing:.16em;text-align:center;text-transform:uppercase;margin:2.4rem auto 0;padding:.95rem 1.5rem;font-size:.86rem}@media (width<=720px){.pavement--projects{grid-template-columns:minmax(0,1fr)}}.footer{margin-top:var(--section-space)}.guilloche{line-height:0}.guilloche svg{width:100%;height:clamp(52px,7vw,86px);display:block}.guilloche .g-inlay{fill:var(--inlay)}.guilloche .g-accent{fill:var(--accent)}.guilloche .g-ground{fill:var(--carrara)}.guilloche .g-band{fill:none;stroke:var(--inlay);stroke-width:9px}.guilloche .g-band--light{stroke:var(--carrara);stroke-width:3.2px}.guilloche .g-ring{fill:none;stroke:var(--carrara);stroke-width:3px}.footer__line{padding:1.6rem var(--gutter) 3.5rem;color:var(--ink-soft);letter-spacing:.16em;text-align:center;margin:0;font-size:.9rem}.egg-toast{z-index:210;border:2px solid var(--inlay);background:var(--carrara);max-width:calc(100vw - 2rem);box-shadow:inset 0 0 0 4px var(--carrara), inset 0 0 0 6px var(--accent);text-align:center;opacity:0;pointer-events:none;transition:opacity .22s ease, transform .32s var(--ease-stone);padding:.75rem 1.3rem;font-style:italic;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%,.75rem)}.egg-toast.is-on{opacity:1;transform:translate(-50%)}.tesserae{z-index:200;pointer-events:none;position:fixed;inset:0;overflow:hidden}.tesserae i{width:.7rem;height:.7rem;animation:tessera-fall var(--fall,1.3s) cubic-bezier(.3, .1, .6, 1) var(--delay,0s) forwards;position:absolute;top:-1.5rem}.tesserae .t-inlay{background:var(--inlay) var(--inlay-tex)}.tesserae .t-accent{background:var(--accent) var(--accent-tex)}.tesserae .t-ground{background:var(--carrara);box-shadow:inset 0 0 0 1px var(--inlay)}.tesserae .t-tri{clip-path:polygon(50% 0,100% 100%,0 100%)}.tesserae .t-disc{border-radius:50%}@keyframes tessera-fall{to{transform:translate(var(--drift,0), 110vh) rotate(var(--spin,300deg))}}@media screen and (prefers-reduced-motion:no-preference){.motion-ready .sec-head:not(.is-visible):before,.motion-ready .sec-head:not(.is-visible):after{transform:scaleX(0)}.motion-ready .sec-head:not(.is-visible) :is(h2,.disc){opacity:0}.sec-head.is-visible:not(.is-instant):before,.sec-head.is-visible:not(.is-instant):after{animation:lay .85s var(--ease-stone) both}.sec-head.is-visible:not(.is-instant) h2{animation:.6s .12s both fade-in}.sec-head.is-visible:not(.is-instant) .disc{animation:set .45s var(--ease-stone) .45s both}.motion-ready :is(.profile-card,.worklog-profile):not(.is-visible),.motion-ready :is(.profile-card,.worklog-profile):not(.is-visible) li{opacity:0}:is(.profile-card,.worklog-profile).is-visible:not(.is-instant){animation:.7s both fade-in}:is(.profile-card,.worklog-profile).is-visible:not(.is-instant) li{animation:slot .6s var(--ease-stone) calc(.3s + var(--i) * 80ms) both}:is(.profile-card,.worklog-profile).is-visible:not(.is-instant) li:before{animation:lozenge .6s var(--ease-stone) calc(.42s + var(--i) * 80ms) both}.worklog-profile.is-visible:not(.is-instant) .worklog-profile__mode{animation:set-soft .6s var(--ease-stone) .25s both}.motion-ready .exp:not(.is-visible),.motion-ready .exp:not(.is-visible) .exp__marker{opacity:0}.exp.is-visible:not(.is-instant){animation:rise .95s var(--ease-stone) calc(var(--i) * .14s) backwards}.exp.is-visible:not(.is-instant) .exp__marker{animation:keystone .5s var(--ease-stone) calc(.95s + var(--i) * .14s) backwards}.motion-ready .worklog__entry:not(.is-visible){opacity:0}.motion-ready .worklog__entry:not(.is-visible) .worklog__line{clip-path:inset(0 100% 0 0)}.worklog__entry.is-visible:not(.is-instant){animation:.5s both fade-in}.worklog__entry.is-visible:not(.is-instant) .worklog__no{animation:set .5s var(--ease-stone) .15s both}.worklog__entry.is-visible:not(.is-instant) .worklog__line{animation:inscribe .7s var(--ease-draw) calc(.35s + var(--k) * .12s) backwards}.motion-ready .pavement:not(.is-visible) .tile,.motion-ready .pavement:not(.is-visible) .tile:after{opacity:0}.pavement.is-visible:not(.is-instant) .tile{animation:lay-tile .55s var(--ease-stone) calc(var(--i) * 80ms) both}.pavement.is-visible:not(.is-instant) .tile:after{animation:corner .5s var(--ease-stone) calc(.28s + var(--i) * 80ms) both}.motion-ready .roundels:not(.is-visible) li{opacity:0}.roundels.is-visible:not(.is-instant) li{animation:fade-in .45s ease calc(var(--i) * 60ms) both}.roundels.is-visible:not(.is-instant) .disc{animation:roll .75s var(--ease-stone) calc(var(--i) * 60ms) both}.motion-ready .letter:not(.is-visible)>:is(.field,.letter__send){clip-path:inset(0 100% 0 0)}.letter.is-visible:not(.is-instant)>:is(.field,.letter__send){animation:inscribe .7s var(--ease-draw) calc(var(--i) * 90ms) backwards}.motion-ready .ai-flagship:not(.is-visible),.motion-ready .ai-flagship:not(.is-visible) .ai-flagship__keystone,.motion-ready .ai-labs:not(.is-visible) .ai-lab,.motion-ready .ai-labs:not(.is-visible) .ai-lab:after,.motion-ready .ai-foundation__thesis:not(.is-visible),.motion-ready .ai-foundation__thesis:not(.is-visible) li{opacity:0}.ai-flagship.is-visible:not(.is-instant){animation:rise 1s var(--ease-stone) calc(var(--i) * .16s) backwards}.ai-flagship.is-visible:not(.is-instant) .ai-flagship__keystone{animation:keystone .5s var(--ease-stone) calc(1s + var(--i) * .16s) backwards}.ai-labs.is-visible:not(.is-instant) .ai-lab{animation:lay-tile .55s var(--ease-stone) calc(var(--i) * 80ms) both}.ai-labs.is-visible:not(.is-instant) .ai-lab:after{animation:corner .5s var(--ease-stone) calc(.28s + var(--i) * 80ms) both}.ai-foundation__thesis.is-visible:not(.is-instant){animation:.7s both fade-in}.ai-foundation__thesis.is-visible:not(.is-instant) li{animation:slot .6s var(--ease-stone) calc(.3s + var(--i) * 80ms) both}.ai-foundation__thesis.is-visible:not(.is-instant) li:before{animation:lozenge .6s var(--ease-stone) calc(.42s + var(--i) * 80ms) both}.page-head .course:after{animation:lay .7s var(--ease-stone) calc(var(--c,0) * 70ms) backwards}.page-head__title{animation:.7s .2s backwards fade-in}.motion-ready .case__figure:not(.is-visible){opacity:0}.case__figure.is-visible:not(.is-instant){animation:.8s both fade-in}.guilloche .g-disc{transform-box:fill-box;transform-origin:50%}.motion-ready .guilloche:not(.is-visible) .g-band{stroke-dasharray:1;stroke-dashoffset:1px}.motion-ready .guilloche:not(.is-visible) :is(.g-disc,.g-tri){opacity:0}.guilloche.is-visible:not(.is-instant) .g-band{stroke-dasharray:1;animation:draw 1.8s var(--ease-draw) both}.guilloche.is-visible:not(.is-instant) .g-disc{animation:set .45s var(--ease-stone) calc(.3s + var(--i) * 35ms) both}.guilloche.is-visible:not(.is-instant) .g-tri{animation:fade-in .4s ease calc(.55s + var(--i) * 35ms) both}}@keyframes slot{0%{opacity:0;transform:translate(1.2rem)}}@keyframes lozenge{0%{transform:rotate(-45deg)scale(.3)}to{transform:rotate(45deg)}}@keyframes set-soft{0%{opacity:0;transform:scale(.92)}}@keyframes keystone{0%{opacity:0;transform:translateY(-.9rem)scale(.6)}}@keyframes inscribe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes lay-tile{0%{opacity:0;transform:scale(.94)}}@keyframes corner{0%{opacity:0;transform:translate(60%,-60%)}}@keyframes roll{0%{transform:translate(-1.1rem)rotate(-220deg)}}@media screen and (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}.masthead{view-transition-name:masthead}::view-transition-old(root),::view-transition-new(root){animation-duration:.32s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.masthead,.guilloche,.arcade,.contact{display:none}body{background:#fff}.frieze__l{color:var(--inlay);background:0 0;-webkit-background-clip:border-box;background-clip:border-box}}
