:root{--bg: #6b1522;--bg-deep: #4a0e16;--paper: #f6efe6;--ink: #2c181c;--text: #3d2629;--mute: #7a5c62;--line: rgba(44, 24, 28, .14);--white: #faf6f1;--rose: #7a1c28;--rose-deep: #5c1018;--blush: #e0c4b0;--gold: #c6a46a;--gold-deep: #a8844a;--cream: #f6efe6;--cream-soft: rgba(246, 239, 230, .78);--max: 1040px;--font-display: "Playfair Display", "Times New Roman", serif;--font-body: "Outfit", system-ui, sans-serif;--font-script: "Great Vibes", cursive;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px;overflow-x:clip;overflow-y:auto}body{background:radial-gradient(circle at 12% 18%,rgba(246,239,230,.08),transparent 28%),radial-gradient(circle at 88% 12%,rgba(198,164,106,.14),transparent 26%),radial-gradient(circle at 70% 78%,rgba(246,239,230,.06),transparent 30%),var(--bg);color:var(--cream);font-family:var(--font-body);font-size:18px;line-height:1.7;font-weight:300;overflow-x:clip;max-width:100%;min-height:100%;margin:0}body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}.grain{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.lace-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.lace-photo{position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:contain;background-position:center;filter:drop-shadow(0 10px 18px rgba(20,4,8,.28))}.lace-photo--spray-tl{top:4%;left:-36px;width:min(280px,38vw);height:min(330px,48vw);background-image:url(/lace/spray-a.png);opacity:.78;animation:lace-sway 12s ease-in-out infinite}.lace-photo--spray-tr{top:42%;right:-48px;width:min(300px,40vw);height:min(300px,42vw);background-image:url(/lace/spray-b.png);transform:scaleX(-1);opacity:.7;animation:lace-sway-alt 14s ease-in-out infinite}.lace-photo--spray-bl{bottom:10%;left:-28px;width:min(220px,32vw);height:min(280px,40vw);background-image:url(/lace/spray-c.png);opacity:.72;animation:lace-sway 16s ease-in-out infinite}.lace-photo--doily{top:16%;right:-110px;width:min(380px,52vw);height:min(340px,48vw);background-image:url(/lace/doily.png);opacity:.62}.lace-photo--rose{bottom:28%;right:-20px;width:min(180px,26vw);height:min(200px,30vw);background-image:url(/lace/rose.png);opacity:.68}.lace-photo--butterfly{bottom:2%;left:42%;width:min(240px,34vw);height:min(170px,24vw);background-image:url(/lace/butterfly.png);opacity:.55;transform:translate(-50%)}.lace-trim{pointer-events:none;background-repeat:repeat-x;background-size:auto 100%}.lace-trim--nav{position:absolute;left:0;right:0;top:100%;height:34px;background-image:url(/lace/trim.png);background-position:top center;opacity:.92;filter:drop-shadow(0 6px 10px rgba(20,4,8,.22))}.lace-trim--footer{position:absolute;left:0;right:0;top:0;height:56px;background-image:url(/lace/trim-tabs.png);background-position:top center;opacity:.88}.paper-lace{position:absolute;inset:var(--torn) 18px;z-index:2;pointer-events:none}.paper-lace:before,.paper-lace:after{content:"";position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:contain;background-position:center;mix-blend-mode:multiply;opacity:.42}.paper-lace:before{top:-6px;right:-8px;width:min(150px,30vw);height:min(190px,36vw);background-image:url(/lace/spray-c.png)}.paper-lace:after{bottom:0;left:-6px;width:min(140px,28vw);height:min(170px,34vw);background-image:url(/lace/spray-a.png);transform:scaleX(-1) rotate(8deg)}@keyframes lace-sway{0%,to{translate:0 0}50%{translate:6px -8px}}@keyframes lace-sway-alt{0%,to{translate:0 0}50%{translate:-8px 6px}}.paper-wrap{width:min(var(--max),calc(100% - 10vw));margin:22px auto;filter:drop-shadow(0 18px 32px rgba(20,4,8,.38))}.paper{--torn: 34px;position:relative;padding:calc(56px + var(--torn)) clamp(28px,6vw,64px) calc(60px + var(--torn));color:var(--text);background-color:var(--paper);background-image:linear-gradient(180deg,rgba(255,252,247,.28),transparent 22%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='0.18'/%3E%3C/svg%3E");-webkit-mask-image:url(/torn-top.svg),linear-gradient(#000 0 0),url(/torn-bottom.svg);-webkit-mask-size:100% var(--torn),100% calc(100% - (var(--torn) * 2) + 2px),100% var(--torn);-webkit-mask-position:top,center,bottom;-webkit-mask-repeat:no-repeat;mask-image:url(/torn-top.svg),linear-gradient(#000 0,#000 0),url(/torn-bottom.svg);mask-size:100% var(--torn),100% calc(100% - (var(--torn) * 2) + 2px),100% var(--torn);mask-position:top,center,bottom;mask-repeat:no-repeat}.paper:before,.paper:after{content:"";position:absolute;width:32px;height:32px;pointer-events:none;border:1.5px solid var(--gold);opacity:.75;z-index:2}.paper:before{top:calc(var(--torn) + 22px);left:22px;border-right:0;border-bottom:0}.paper:after{right:22px;bottom:calc(var(--torn) + 22px);border-left:0;border-top:0}.flourish{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;color:var(--rose);font-size:.7rem;letter-spacing:.28em;line-height:1;-webkit-user-select:none;user-select:none}.flourish:after{content:"";flex-basis:100%;width:min(240px,62%);height:20px;margin-top:8px;background:url(/lace/trim-point.png) left center / auto 100% no-repeat;opacity:.72;mix-blend-mode:multiply}.cursor{position:fixed;top:0;left:0;z-index:60;pointer-events:none;opacity:0}.cursor.is-on{opacity:1}.cursor-dot,.cursor-ring{position:absolute;top:0;left:0;border-radius:50%;transform:translate(-50%,-50%)}.cursor-dot{width:6px;height:6px;background:var(--gold)}.cursor-ring{width:28px;height:28px;border:1px solid rgba(198,164,106,.55);transition:width .3s ease,height .3s ease,border-color .3s ease,background .3s ease}.cursor.is-hot .cursor-ring{width:48px;height:48px;border-color:#c6a46a59;background:#c6a46a1f}.toast{position:fixed;left:50%;bottom:28px;z-index:70;transform:translate(-50%) translateY(12px);padding:10px 18px;background:var(--rose-deep);color:var(--white);font-size:.9rem;letter-spacing:.02em;opacity:0;pointer-events:none;border-radius:4px;transition:opacity .3s ease,transform .3s ease}.toast.is-on{opacity:1;transform:translate(-50%) translateY(0)}.toast[hidden]{display:none}img{display:block;width:100%;height:auto}main{position:relative;z-index:1}a{color:inherit}a:hover{color:var(--gold)}.site-header{position:sticky;top:0;z-index:40;overflow:visible;background:#4a0e16b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.site-header.is-scrolled{border-bottom-color:#c6a46a38;background:#4a0e16eb}.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 7vw}.nav-logo,h1,h2,h3{font-family:var(--font-display);font-weight:500}h1,h2,h3{color:var(--ink)}.nav-logo{color:var(--cream)}.nav-logo{position:relative;display:inline-grid;text-decoration:none;font-size:1.35rem;letter-spacing:.02em;min-width:5.5rem;line-height:1.1}.nav-logo-main,.nav-logo-alt{grid-area:1 / 1;transition:opacity .35s ease,transform .35s ease}.nav-logo-alt{opacity:0;transform:translateY(6px) rotate(-2deg);font-family:var(--font-script);font-style:normal;font-size:1.55rem}.nav-logo:hover .nav-logo-main,.nav-logo:focus-visible .nav-logo-main{opacity:0;transform:translateY(-6px) rotate(2deg)}.nav-logo:hover .nav-logo-alt,.nav-logo:focus-visible .nav-logo-alt{opacity:1;transform:translateY(0) rotate(-1deg)}.nav-rail{position:relative;display:none}.nav-links{display:flex;gap:4px;list-style:none;font-size:.9rem}.nav-links a{position:relative;display:inline-flex;align-items:baseline;gap:6px;padding:8px 12px;text-decoration:none;color:var(--cream-soft);transition:color .25s ease}.nav-links a:hover,.nav-links a.is-active,.nav-links a:focus-visible{color:var(--cream)}.nav-num{font-family:var(--font-display);font-size:.78rem;opacity:0;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease}.nav-links a:hover .nav-num,.nav-links a.is-active .nav-num,.nav-links a:focus-visible .nav-num{opacity:.55;transform:translateY(0)}.nav-indicator{position:absolute;left:0;bottom:2px;height:1px;width:0;background:var(--gold);opacity:0;pointer-events:none;transition:left .35s cubic-bezier(.22,1,.36,1),width .35s cubic-bezier(.22,1,.36,1),opacity .25s ease}.nav-indicator.is-on{opacity:.7}.nav-cta{display:none;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--rose-deep);background:var(--cream);padding:10px 18px;border-radius:4px;border-bottom:0;transition:background .25s ease,transform .25s ease,color .25s ease}.nav-cta:hover{color:var(--bg-deep);background:var(--gold);transform:translateY(-1px);border-bottom-color:transparent}.nav-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--cream);cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:.9rem;padding:6px 0}.nav-toggle-marks{display:grid;gap:5px;width:18px}.nav-toggle-marks span{display:block;height:1px;background:var(--cream);transition:transform .35s ease,opacity .25s ease;transform-origin:center}.site-header.is-menu-open .nav-toggle-marks span:first-child{transform:translateY(3px) rotate(18deg)}.site-header.is-menu-open .nav-toggle-marks span:last-child{transform:translateY(-3px) rotate(-18deg)}.nav-progress{height:1px;background:transparent}.nav-progress span{display:block;height:100%;width:0%;background:var(--gold);opacity:.85;transform-origin:left center}.nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:grid;align-content:center;gap:28px;padding:96px 7vw 48px;background:#4a0e16f7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-overlay[hidden]{display:none}.nav-overlay-links{list-style:none;display:grid;gap:8px}.nav-overlay-links a{display:inline-flex;align-items:baseline;gap:16px;font-family:var(--font-display);font-size:clamp(2.2rem,9vw,3.4rem);line-height:1.1;text-decoration:none;color:var(--cream);transform:rotate(var(--tilt, 0deg));transition:transform .35s ease,opacity .25s ease}.nav-overlay-links a span{font-size:.9rem;color:var(--gold);font-family:var(--font-body)}.nav-overlay-links:has(a:hover) a:not(:hover){opacity:.35}.nav-overlay-links a:hover{transform:rotate(var(--tilt, 0deg)) translate(8px)}.nav-overlay-note{color:var(--cream-soft);font-size:.95rem;max-width:18rem}@media (min-width: 901px){.nav-rail{display:block}.nav-cta{display:inline-block}.nav-toggle{display:none}}.hero,.section{width:100%;margin-left:auto;margin-right:auto}.hero-links a,.contact-list a{text-decoration:none}.hero{padding:48px 0 12px;position:relative;isolation:isolate;overflow:visible}.hero-net{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.7}.hello,.hero .lede{position:relative;z-index:1}.lede[data-hero-lede]{opacity:0;transform:translateY(14px)}.lede.is-in{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease}.eyebrow{font-family:var(--font-script);font-size:1.55rem;letter-spacing:.02em;text-transform:none;color:var(--gold-deep);margin-bottom:10px;line-height:1}.hello{display:flex;align-items:baseline;min-height:1.35em;margin-bottom:8px}.hello-text{font-family:var(--font-display);font-size:clamp(2.4rem,5.5vw,4rem);font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}.hello-caret{display:inline-block;width:2px;height:.9em;margin-left:3px;vertical-align:-.05em;background:var(--rose);animation:caret-blink 1.1s steps(1) infinite}@keyframes caret-blink{0%,45%{opacity:.75}50%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.hello-caret{animation:none;opacity:.75}}h1{font-size:clamp(3.2rem,7vw,5.2rem);line-height:.95;letter-spacing:-.02em;margin-bottom:22px}.lede,.about-lead,.identity-note,.contact-copy{max-width:38rem;color:var(--text)}.hero-links,.facts,.selected,.certs-grid,.skills-grid{display:grid}.hero-links{grid-template-columns:auto auto;justify-content:start;gap:12px;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:4px;background:var(--rose-deep);color:var(--white);text-decoration:none;font-size:.95rem;letter-spacing:.04em}.btn:hover{color:var(--white);background:var(--ink)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn-ghost:hover{color:var(--ink);background:#5c101814}.more,.projects{position:relative;isolation:isolate}.more>*:not(.art-veil),.projects>*:not(.art-veil){position:relative;z-index:1}.art-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 12% 20%,rgba(246,239,230,.16),transparent 34%),radial-gradient(circle at 88% 70%,rgba(198,164,106,.1),transparent 32%)}.art-veil-paper{background:radial-gradient(circle at 18% 18%,rgba(255,252,247,.45),transparent 36%),radial-gradient(circle at 82% 78%,rgba(198,164,106,.1),transparent 34%)}.skills-block,.campus-block,.other-block{position:relative}.section{padding:0;overflow:visible}.section-soft{width:100%;padding-left:0;padding-right:0;overflow:visible;background:transparent;box-shadow:none}.section-soft .section-head,.section-soft .jobs,.section-soft .selected{width:min(var(--max),100%);margin-left:auto;margin-right:auto}.section-head{margin-bottom:36px}h2{font-size:clamp(2.2rem,4vw,3rem);line-height:1.1}.jobs{list-style:none;display:grid;gap:40px}.job{display:grid;grid-template-columns:200px 1fr;gap:32px;padding-top:32px;border-top:1px solid var(--line)}.job-when{color:var(--mute);font-size:.95rem}.job-body h3,.timeline-body h3,.selected-item h3,.plain-list strong,.cert-card h3{font-size:1.45rem;line-height:1.2;margin-bottom:4px}.job-body h3 span{margin-left:8px;font-family:var(--font-body);font-size:.85rem;font-style:italic;color:var(--mute);font-weight:400}.job-org{color:var(--mute);max-width:36rem}.about{padding-top:8px;padding-bottom:8px}.about-intro{margin-bottom:40px}.about-lead,.experience-lead,.more-lead,.projects-lead,.certs-lead{margin-top:18px;font-size:1.08rem;max-width:38rem;color:var(--text)}.experience{padding-top:8px;padding-bottom:8px}.experience-inner{width:min(var(--max),100%);margin-left:auto;margin-right:auto}.experience-intro{margin-bottom:48px}.timeline{list-style:none;position:relative;display:grid;gap:0}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--line);transform:scaleY(var(--line-progress, 0));transform-origin:top center}.timeline-item{position:relative;display:grid;grid-template-columns:200px 1fr;gap:28px 40px;padding:28px 0 28px 36px;transition:opacity .35s ease}.timeline-item:before{content:"";position:absolute;left:3px;top:38px;width:9px;height:9px;border-radius:50%;background:var(--rose-deep);box-shadow:0 0 0 4px var(--paper);transform:scale(var(--dot-scale, .6));opacity:var(--dot-opacity, .35);transition:transform .35s ease,opacity .35s ease}.timeline:has(.timeline-item:hover) .timeline-item:not(:hover),.timeline:has(.timeline-item:focus-within) .timeline-item:not(:focus-within){opacity:.42}.timeline-item:hover:before,.timeline-item:focus-within:before{--dot-scale: 1;--dot-opacity: 1}.timeline-when{display:flex;flex-direction:column;gap:6px;padding-top:6px}.timeline-range{font-size:.95rem;color:var(--mute);letter-spacing:.01em}.timeline-tag{font-family:var(--font-display);font-size:1.15rem;font-style:italic;color:var(--ink)}.timeline-body h3{font-size:clamp(1.7rem,3vw,2.15rem);margin-bottom:6px}.timeline-org{color:var(--mute);margin-bottom:14px}.timeline-summary{max-width:36rem;margin-bottom:18px}.timeline-points{list-style:none;display:grid;gap:10px;max-width:36rem}.timeline-points li{position:relative;padding-left:18px;color:var(--text);font-size:.98rem}.timeline-points li:before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--rose-deep);opacity:.7}.workshop-photos{list-style:none;position:relative;height:196px;max-width:28rem;margin-top:28px}.workshop-photos li{position:absolute;z-index:1;transform:rotate(var(--tilt, 0deg));transform-origin:center 18%;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s ease}.workshop-photos .is-portrait{left:6%;top:10px;width:108px;z-index:2}.workshop-photos .is-coach{left:28%;top:36px;width:104px;z-index:4}.workshop-photos .is-room{left:48%;top:6px;width:148px;z-index:1}.workshop-photos .is-flyer{right:4%;top:58px;width:86px;z-index:3}.workshop-photos:has(.workshop-print:hover) li:not(:hover),.workshop-photos:has(.workshop-print:focus-within) li:not(:focus-within){opacity:.38}.workshop-photos li:hover,.workshop-photos li:focus-within{z-index:6;transform:rotate(calc(var(--pointer-tilt, 0) * 1deg)) translateY(-6px) scale(1.06)}.workshop-print{position:relative;display:block;padding:4px;background:var(--white);border:1px solid rgba(198,164,106,.5);text-decoration:none;color:inherit;box-shadow:0 8px 18px #2c181c24}.workshop-tape{position:absolute;top:-7px;left:50%;width:28px;height:11px;z-index:2;background:#c6a46a66;transform:translate(-50%) rotate(-8deg)}.workshop-tape--left{left:28%;transform:translate(-50%) rotate(12deg)}.workshop-tape--right{left:72%;transform:translate(-50%) rotate(-12deg)}.workshop-tape--wide{width:36px;transform:translate(-50%) rotate(3deg)}.workshop-photos img{display:block;width:100%;height:132px;object-fit:cover;background:var(--blush)}.workshop-photos .is-portrait img{height:142px;object-position:center 20%}.workshop-photos .is-coach img{height:128px;object-position:center 35%}.workshop-photos .is-room img{height:98px}.workshop-photos .is-flyer img{height:118px;object-position:center 90%}.workshop-caption{position:absolute;left:50%;bottom:-22px;transform:translate(-50%);font-family:var(--font-script);font-size:1.05rem;line-height:1;color:var(--gold-deep);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease}.workshop-photos li:hover .workshop-caption,.workshop-photos li:focus-within .workshop-caption{opacity:1}.pr-photos{height:168px;max-width:24rem;margin-top:22px}.pr-photos .is-booklet{left:2%;top:14px;width:150px;z-index:2}.pr-photos .is-site{left:36%;top:4px;width:176px;z-index:1}.pr-photos .is-booklet img{height:116px;object-position:78% 48%}.pr-photos .is-site img{height:102px;object-position:center 18%}.more{padding-top:8px;padding-bottom:8px}.more-intro{margin-bottom:48px}.more-label{font-family:var(--font-script);font-size:1.45rem;font-weight:400;letter-spacing:.01em;text-transform:none;color:var(--gold-deep);margin-bottom:18px;line-height:1}.skills-block,.campus-block{margin-bottom:64px}.skill-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}.skill-list li{padding:22px 0;border-top:1px solid var(--line);transition:opacity .3s ease}.skill-list li:nth-child(-n+2){border-top:0;padding-top:0}.skill-list:has(li:hover) li:not(:hover){opacity:.4}.skill-list strong{display:block;font-family:var(--font-display);font-size:1.55rem;font-weight:500;color:var(--ink);line-height:1.2;margin-bottom:6px}.skill-list span{color:var(--mute);font-size:.98rem}.other-list{list-style:none;display:grid;gap:0}.other-item{padding:28px 0 28px 10px;border-top:1px solid var(--line);border-left:1px solid transparent;overflow:visible;transition:opacity .35s ease,border-color .35s ease,transform .35s ease}.other-list:has(.other-item:hover) .other-item:not(:hover),.other-list:has(.other-item:focus-within) .other-item:not(:focus-within){opacity:.42}.other-item:hover,.other-item:focus-within{border-left-color:#c6a46a8c;transform:translate(4px)}.other-meta{font-size:.92rem;color:var(--mute);margin-bottom:10px}.other-item h3{font-size:clamp(1.6rem,3vw,2rem);margin-bottom:6px}.other-org{color:var(--mute);font-style:italic;font-family:var(--font-display);font-size:1.15rem;margin-bottom:14px}.other-copy{max-width:38rem}.campus-sublabel{margin-top:48px}.campus-brief{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}.campus-brief li{padding:22px 0;border-top:1px solid var(--line);transition:opacity .3s ease}.campus-brief li:nth-child(-n+2){border-top:0;padding-top:0}.campus-brief:has(li:hover) li:not(:hover){opacity:.4}.campus-brief strong{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:500;color:var(--ink);line-height:1.2;margin-bottom:6px}.campus-brief span{color:var(--mute);font-size:.98rem}.projects{padding-top:8px;padding-bottom:8px}.projects-inner{width:min(var(--max),100%);margin-left:auto;margin-right:auto}.projects-intro{margin-bottom:48px}.project-list{list-style:none;display:grid;gap:0;counter-reset:project}.project-item{position:relative;padding:32px 0 32px 10px;border-top:1px solid var(--line);border-left:1px solid transparent;transition:opacity .35s ease,border-color .35s ease,transform .35s ease;counter-increment:project}.project-list:has(.project-item:hover) .project-item:not(:hover),.project-list:has(.project-item:focus-within) .project-item:not(:focus-within){opacity:.42}.project-item:hover,.project-item:focus-within{border-left-color:#c6a46a8c;transform:translate(4px)}.project-meta{display:flex;align-items:baseline;gap:14px;font-size:.92rem;color:var(--mute);margin-bottom:10px}.project-meta:before{content:counter(project,decimal-leading-zero);font-family:var(--font-display);font-size:1.2rem;color:var(--ink);letter-spacing:.02em}.project-item h3{font-size:clamp(1.7rem,3vw,2.2rem);margin-bottom:6px}.project-item h3 a{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s ease}.project-item h3 a:hover{border-bottom-color:#c6a46a8c;color:var(--ink)}.project-org{color:var(--mute);font-style:italic;font-family:var(--font-display);font-size:1.15rem;margin-bottom:14px}.project-copy{max-width:40rem}.project-link{margin-top:16px}.project-link a{font-size:.95rem;text-decoration:none;border-bottom:1px solid var(--rose-deep);color:var(--rose-deep);padding-bottom:1px}.project-link a:hover{color:var(--ink);border-bottom-color:var(--ink)}.project-item.is-soon h3{opacity:.72}.identity-field{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;max-width:46rem;margin-bottom:28px}.identity{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;cursor:pointer;font-family:var(--font-display);font-size:calc(1.15rem * var(--size, 1));font-weight:500;line-height:1.15;letter-spacing:-.01em;color:var(--ink);text-align:left;padding:2px 0;transform:rotate(var(--tilt, 0deg));transition:color .25s ease,opacity .25s ease,transform .35s ease;opacity:.72;position:relative}.identity:after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .35s ease;opacity:.35}.identity:hover,.identity:focus-visible,.identity.is-active{opacity:1;color:var(--ink);outline:none;transform:rotate(var(--tilt, 0deg)) translateY(-3px) scale(1.03)}.identity:hover:after,.identity:focus-visible:after,.identity.is-active:after{transform:scaleX(1)}.identity-field:has(.identity:hover) .identity:not(:hover),.identity-field:has(.identity:focus-visible) .identity:not(:focus-visible),.identity-field:has(.identity.is-active) .identity:not(.is-active){opacity:.34}.identity-note{min-height:3.2em;font-size:1.05rem;color:var(--mute);transition:opacity .25s ease,transform .25s ease}.identity-note.is-swapping{opacity:0;transform:translateY(6px)}.facts{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}.facts dt{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}.facts dd{font-family:var(--font-display);font-size:1.25rem;color:var(--ink)}.skills-grid{grid-template-columns:1fr 1fr;gap:0 56px;list-style:none}.skills-grid li{padding:18px 0;border-top:1px solid var(--line)}.skills-grid li:nth-child(-n+2){border-top:0;padding-top:0}.skills-grid strong{display:block;font-size:1.25rem;font-family:var(--font-display);font-weight:500;color:var(--ink);margin-bottom:4px}.certs-grid{grid-template-columns:1fr 1fr;gap:28px}.certs{padding-top:8px;padding-bottom:8px}.certs-intro{margin-bottom:48px}.certs-groups{display:grid;gap:56px}.cert-grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}.cert-grid-two{grid-template-columns:repeat(2,1fr);max-width:680px}.cert-item{transition:opacity .35s ease,transform .35s ease;perspective:900px}.cert-grid:has(.cert-item:hover) .cert-item:not(:hover),.cert-grid:has(.cert-item:focus-within) .cert-item:not(:focus-within){opacity:.4}.cert-item:hover,.cert-item:focus-within{transform:translateY(-2px)}.cert-item a{position:relative;display:block;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s ease}.cert-item a:hover{transform:translateY(-2px)}.cert-item img{width:100%;height:auto;border:1px solid rgba(198,164,106,.28);margin-bottom:14px;background:var(--white);box-shadow:0 10px 28px #2c181c1f}.cert-item h3{font-size:1.25rem;line-height:1.25;margin-bottom:4px}.cert-item p{color:var(--mute);font-size:.92rem}.selected{grid-template-columns:1fr 1fr;gap:22px 36px}.selected-item{padding:22px 0;border-top:1px solid var(--line)}.selected-item p{color:var(--mute);margin-top:6px}.contact{padding-top:8px;padding-bottom:28px}.contact-inner{width:min(var(--max),100%);margin-left:auto;margin-right:auto}.contact-intro{margin-bottom:36px}.contact-copy{margin-top:18px;margin-bottom:0;max-width:38rem;font-size:1.08rem;color:var(--text)}.contact-list{list-style:none;display:grid;gap:22px}.contact-list li{display:grid;gap:6px}.contact-label{font-family:var(--font-script);font-size:1.35rem;letter-spacing:.01em;text-transform:none;color:var(--gold-deep);line-height:1}.contact-list a{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);text-decoration:none;color:var(--ink);border-bottom:1px solid transparent;width:fit-content;transition:border-color .25s ease,color .25s ease}.contact-list a:hover{border-bottom-color:#c6a46a8c;color:var(--ink)}.footer{position:relative;z-index:2;margin-top:0;margin-bottom:0;border-top:1px solid rgba(246,239,230,.18);background:linear-gradient(180deg,rgba(20,4,8,.18),transparent 40%),var(--bg-deep);overflow:hidden;color:var(--cream);contain:layout paint}.footer:before{content:"";position:absolute;width:min(320px,58vw);height:min(220px,40vw);left:50%;top:58%;transform:translate(-50%,-50%);background:url(/lace/butterfly.png) center / contain no-repeat;opacity:.28;pointer-events:none}.footer-marquee{border-bottom:1px solid rgba(246,239,230,.16);padding:52px 0 14px;overflow:hidden;white-space:nowrap;contain:paint}.footer-marquee-track{display:inline-flex;gap:40px;min-width:max-content;font-family:var(--font-script);font-size:1.45rem;font-style:normal;color:#f6efe6d1;animation:marquee 42s linear infinite}.footer-marquee:hover .footer-marquee-track{animation-play-state:paused}.footer-marquee-track span:after{content:"·";margin-left:40px;opacity:.45}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.footer-inner{width:min(var(--max),calc(100% - 14vw));margin:0 auto;padding:56px 0 40px}.footer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:48px}.footer-hello{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.05;text-decoration:none;color:var(--cream);max-width:12ch}.footer-hello em{display:block;font-family:var(--font-script);font-style:normal;font-size:.85em;color:var(--gold);transition:color .3s ease,transform .35s ease}.footer-hello:hover em{color:var(--cream);transform:translate(6px)}.footer-top-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--cream);cursor:pointer;font-family:var(--font-body);font-size:.95rem;display:inline-flex;align-items:center;gap:8px;padding:0 0 2px;border-bottom:1px solid rgba(246,239,230,.55);transition:gap .3s ease,color .25s ease}.footer-top-btn:hover{gap:12px;color:var(--gold)}.footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;padding-top:24px;border-top:1px solid rgba(246,239,230,.18);color:#f6efe6c7;font-size:.92rem}.footer-brand span{font-family:var(--font-script);font-style:normal;font-size:1.25rem;color:var(--cream)}.footer-links{list-style:none;display:flex;gap:20px;justify-content:center}.footer-links a{text-decoration:none;color:var(--cream);border-bottom:1px solid transparent;transition:border-color .25s ease,color .25s ease}.footer-links a:hover{color:var(--gold);border-bottom-color:#c6a46ab3}.footer-copy{text-align:right}@media (max-width: 900px){.job,.timeline-item,.skill-list,.campus-brief,.skills-grid,.selected,.facts,.certs-grid,.cert-grid,.cert-grid-two{grid-template-columns:1fr}.timeline-item{gap:12px;padding-left:32px}.timeline-when{flex-direction:row;align-items:baseline;gap:12px}.skill-list li:nth-child(2),.campus-brief li:nth-child(2){border-top:1px solid var(--line);padding-top:22px}.skills-grid li:nth-child(2){border-top:1px solid var(--line);padding-top:18px}.footer-bottom{grid-template-columns:1fr;justify-items:start;gap:14px}.footer-links{justify-content:start}.footer-copy{text-align:left}}@media (max-width: 640px){body{font-size:16px}.footer-inner{width:calc(100% - 32px)}.paper-wrap{width:calc(100% - 20px);margin:14px auto}.paper{--torn: 26px;padding-left:22px;padding-right:22px}.nav,.nav-overlay{padding-left:16px;padding-right:16px}.hero{padding-top:28px;padding-bottom:8px}.lace-photo--spray-tr,.lace-photo--spray-bl,.lace-photo--rose,.lace-photo--butterfly{display:none}.lace-photo--spray-tl{opacity:.7;width:min(210px,58vw);height:min(250px,68vw)}.lace-photo--doily{opacity:.5;width:min(240px,64vw);height:min(220px,58vw)}.paper-lace:before,.paper-lace:after{width:96px;height:120px;opacity:.34}.lace-trim--nav{height:26px}.lace-trim--footer{height:40px}.hello-text{font-size:clamp(1.9rem,9vw,2.6rem)}.workshop-photos{height:176px;max-width:100%}.workshop-photos .is-portrait{left:2%;width:92px}.workshop-photos .is-coach{left:24%;width:90px}.workshop-photos .is-room{left:44%;width:122px}.workshop-photos .is-flyer{right:2%;width:76px}.workshop-photos img{height:112px}.workshop-photos .is-portrait img{height:120px}.workshop-photos .is-coach img{height:110px}.workshop-photos .is-room img{height:84px}.workshop-photos .is-flyer img{height:100px}.pr-photos{height:150px;max-width:100%}.pr-photos .is-booklet{width:128px}.pr-photos .is-site{left:34%;width:148px}.pr-photos .is-booklet img{height:98px}.pr-photos .is-site img{height:88px}.hero-links{grid-template-columns:1fr}.identity-field{gap:10px 16px}.identity{font-size:calc(1.02rem * var(--size, 1))}.about,.experience,.more,.projects,.certs,.contact{padding-top:4px;padding-bottom:4px}.footer-top{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:32px}.footer-inner{padding:36px 0 28px}.footer-hello{font-size:clamp(1.9rem,9vw,2.6rem)}.project-item,.other-item{transform:none!important}.cert-item:hover,.cert-item:focus-within{transform:none}}@media (prefers-reduced-motion: reduce){.identity,.identity-note,.timeline-item,.nav-logo-main,.nav-logo-alt,.nav-indicator,.footer-hello em,.footer-top-btn,.lede[data-hero-lede],.toast,.cert-item a,.workshop-photos img,.workshop-photos li,.workshop-print{transition:none}.workshop-photos li,.workshop-photos li:hover,.workshop-photos li:focus-within{transform:none}.footer-marquee-track,.lace-photo{animation:none}.cursor,.grain,.hero-net,.art-veil{display:none}.lede[data-hero-lede]{opacity:1;transform:none}.timeline:before{transform:scaleY(1)}.timeline-item:before{--dot-scale: 1;--dot-opacity: .7}}body.is-nav-locked{overflow:hidden}@media (hover: none),(pointer: coarse){.cursor{display:none}body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:auto}}
