:root{--bg: #f4f4f2;--bg-deep: #111111;--paper: #ffffff;--ink: #111111;--text: #1c1c1c;--mute: #6a6a6a;--line: rgba(17, 17, 17, .12);--white: #ffffff;--rose: #111111;--rose-deep: #111111;--blush: #ececea;--gold: #111111;--gold-deep: #3a3a3a;--cream: #f7f7f5;--cream-soft: rgba(247, 247, 245, .72);--max: 1180px;--font-display: "Playfair Display", "Taviraj", "Times New Roman", serif;--font-thai: "Taviraj", "Playfair Display", 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;color-scheme:light}::selection{background:#111;color:#fff}body{background-color:var(--bg);background-image:linear-gradient(rgba(17,17,17,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.03) 1px,transparent 1px);background-size:72px 72px;background-position:center top;color:var(--ink);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}.grain{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;opacity:.035;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,.lace-trim,.paper-lace{display:none}.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% - 8vw));margin:0 auto}.paper{--torn: 0px;position:relative;padding:56px 0 64px;color:var(--text);background:transparent;border:0;box-shadow:none}.flourish{display:block;width:36px;height:1px;margin:20px 0 4px;background:var(--ink);font-size:0;line-height:0;overflow:hidden;-webkit-user-select:none;user-select:none}.flourish:after{content:none}.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:0;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(--ink)}.site-header{position:sticky;top:0;z-index:40;overflow:visible;background:#f4f4f2eb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(17,17,17,.1)}.site-header.is-scrolled{background:#f4f4f2f5}.nav{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(var(--max),calc(100% - 8vw));min-height:68px;margin:0 auto;padding:0}.nav-logo,h1,h2,h3{font-family:var(--font-display);font-weight:500}h1,h2,h3{color:var(--ink)}.nav-logo{color:var(--ink);position:relative;z-index:1;display:inline-flex;align-items:center;gap:12px;text-decoration:none;line-height:1}.nav-mark{display:grid;width:44px;height:44px;color:var(--ink);flex:none}.nav-mark svg{width:100%;height:100%}.nav-mark text{font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:.08em}.nav-word{display:flex;flex-direction:column;align-items:flex-start;gap:3px;white-space:nowrap}.nav-logo-kicker{font-family:var(--font-mono);font-size:.62rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);line-height:1;transition:color .25s ease}.nav-logo-main{font-family:var(--font-display);font-size:1.45rem;font-weight:500;font-style:italic;letter-spacing:.01em;line-height:.85}.nav-logo:hover .nav-logo-kicker,.nav-logo:focus-visible .nav-logo-kicker{color:var(--ink)}.nav-rail{position:absolute;left:50%;top:50%;display:none;transform:translate(-50%,-50%)}.nav-links{display:flex;gap:2px;list-style:none;font-size:.86rem}.nav-links a{position:relative;display:inline-flex;align-items:baseline;gap:6px;padding:8px 10px;text-decoration:none;color:#11111194;transition:color .25s ease}.nav-links a:hover,.nav-links a.is-active,.nav-links a:focus-visible{color:var(--ink)}.nav-num{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.04em;color:#11111161;transition:color .25s ease}.nav-links a:hover .nav-num,.nav-links a.is-active .nav-num,.nav-links a:focus-visible .nav-num{color:var(--ink)}.nav-indicator{position:absolute;left:0;bottom:2px;height:1px;width:0;background:var(--ink);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-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:6px 0}.nav-toggle-marks{display:grid;gap:5px;width:18px}.nav-toggle-marks span{display:block;height:1px;background:var(--ink);transition:transform .35s ease,opacity .25s ease;transform-origin:center}.site-header.is-menu-open{background:#0e0e0e;border-bottom-color:transparent}.site-header.is-menu-open .nav-logo,.site-header.is-menu-open .nav-toggle,.site-header.is-menu-open .nav-mark{color:var(--cream);border-color:var(--cream)}.site-header.is-menu-open .nav-logo-kicker{color:#f7f7f58c}.site-header.is-menu-open .nav-toggle-marks span{background:var(--cream)}.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(--ink);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:#0e0e0efa;-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:none;transition:transform .35s ease,opacity .25s ease}.nav-overlay-links a span{font-size:.9rem;color:#ffffff73;font-family:var(--font-body)}.nav-overlay-links:has(a:hover) a:not(:hover){opacity:.35}.nav-overlay-links a:hover{transform:translate(8px)}.nav-overlay-note{color:var(--cream-soft);font-size:.95rem;max-width:18rem}@media (min-width: 901px){.nav-rail{display:block;position:static;transform:none}.nav-toggle{display:none}.nav-links a{padding:8px}}@media (min-width: 1280px){.nav-rail{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.nav-links a{padding:8px 11px}}.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:.22}.hello{position:relative;z-index:1}.eyebrow{font-family:var(--font-body);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:14px;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(1.25rem,4vw,2.75rem);font-weight:500;line-height:1.25;letter-spacing:-.02em;white-space:nowrap;color:var(--ink)}.hello-text:lang(th){font-family:var(--font-thai);letter-spacing:0;line-height:1.35}h1:lang(th),h2:lang(th),h3:lang(th){font-family:var(--font-thai);letter-spacing:.02em;line-height:1.45}.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}.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:0;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:#1111110d}.more,.projects{position:relative;isolation:isolate}.more>*:not(.art-veil),.projects>*:not(.art-veil){position:relative;z-index:1}.art-veil,.art-veil-paper{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:none}.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(--bg);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:none;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:translateY(-4px)}.workshop-print{position:relative;display:block;padding:4px;background:var(--white);border:1px solid rgba(17,17,17,.16);text-decoration:none;color:inherit;box-shadow:0 8px 18px #0000000f}.workshop-tape{position:absolute;top:-7px;left:50%;width:28px;height:11px;z-index:2;background:#11111114;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-body);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:var(--ink);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%}.itcamp-photos{height:auto;max-width:26rem;margin-top:22px}.itcamp-photos .is-group{position:relative;left:auto;top:auto;width:min(248px,92%);z-index:2}.itcamp-photos .is-group img{height:154px;object-position:center 42%}.suebngob-photos{height:auto;max-width:26rem;margin-top:22px}.suebngob-photos .is-certs{position:relative;left:auto;top:auto;width:min(148px,70%);z-index:2}.suebngob-photos .is-certs img{height:208px;object-position:center 38%}.more{padding-top:8px;padding-bottom:8px}.more-intro{margin-bottom:48px}.more-label{font-family:var(--font-body);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);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;cursor:pointer;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:var(--ink);transform:translate(4px)}.other-meta{font-size:.92rem;color:var(--mute);margin-bottom:10px}.other-item h3{font-size:1.35rem;margin-bottom:6px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.other-item h3:after{content:"+";font-family:var(--font-body);font-size:1rem;font-weight:400;color:var(--mute);transition:transform .35s ease}.other-item.is-open h3:after{content:"+";transform:rotate(45deg)}.other-org{color:var(--mute);font-style:italic;font-family:var(--font-display);font-size:1.15rem;margin-bottom:14px}.other-copy{display:none;max-width:38rem;margin-top:8px}.other-item.is-open .other-copy{display:block}.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:var(--ink);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:var(--ink);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:none;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:translateY(-2px)}.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(17,17,17,.12);margin-bottom:14px;background:var(--white);box-shadow:0 10px 28px #0000000f}.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-body);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);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:var(--ink);color:var(--ink)}.footer{position:relative;z-index:2;margin-top:0;margin-bottom:0;border-top:0;background:var(--bg-deep);overflow:hidden;color:var(--cream)}.footer:before{content:none}.footer-inner{width:min(var(--max),calc(100% - 8vw));margin:0 auto;padding:72px 0 36px}.footer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.footer-kicker{margin-bottom:14px;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#ffffff7a}.footer-hello{display:block;max-width:16ch;font-family:var(--font-display);font-size:clamp(3.2rem,7vw,5.4rem);font-weight:500;line-height:.92;letter-spacing:-.03em;text-decoration:none;color:var(--cream)}.footer-hello-title:after{content:"→";display:inline-block;margin-left:.18em;font-family:var(--font-body);font-size:.42em;font-weight:400;letter-spacing:0;vertical-align:.18em;transition:transform .35s ease}.footer-hello:hover .footer-hello-title:after{transform:translate(8px)}.footer-top-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;border:1px solid rgba(255,255,255,.28);background:transparent;color:var(--cream);cursor:pointer;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;padding:12px 16px;transition:border-color .25s ease,background .25s ease,color .25s ease}.footer-top-btn:hover{color:var(--bg-deep);background:var(--cream);border-color:var(--cream)}.footer-links{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:56px;padding-top:28px;border-top:1px solid rgba(255,255,255,.14)}.footer-links span{display:block;margin-bottom:8px;font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#ffffff6b}.footer-links a,.footer-links p{font-size:1.05rem;line-height:1.4;color:var(--cream);text-decoration:none}.footer-bottom{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);color:#ffffff7a;font-size:.92rem}.footer-brand span{font-family:var(--font-display);font-style:italic;color:var(--cream)}.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-top{flex-direction:column;align-items:flex-start;gap:22px}.footer-hello{font-size:clamp(2.8rem,8vw,4.4rem)}.footer-links{grid-template-columns:1fr;gap:18px;margin-top:36px}.footer-copy{text-align:left}}@media (max-width: 640px){body{font-size:16px}.footer-inner{width:calc(100% - 32px)}.paper-wrap{width:calc(100% - 32px);margin:0 auto}.paper{padding-left:0;padding-right:0}.nav{width:calc(100% - 32px)}.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(.95rem,4.4vw,1.65rem)}.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}.itcamp-photos{height:auto;max-width:100%}.itcamp-photos .is-group{width:min(214px,92%)}.itcamp-photos .is-group img{height:132px}.suebngob-photos{height:auto;max-width:100%}.suebngob-photos .is-certs{width:min(132px,70%)}.suebngob-photos .is-certs img{height:186px}.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:22px}.footer-inner{padding:48px 0 28px}.footer-hello{font-size:clamp(2.7rem,12vw,3.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-indicator,.footer-top-btn,.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-hello-title:after{transition:none}.lace-photo{animation:none}.flourish,.paper:before,.paper:after{animation:none;transition:none}.grain,.hero-net,.art-veil{display:none}.timeline:before{transform:scaleY(1)}.timeline-item:before{--dot-scale: 1;--dot-opacity: .7}}body.is-nav-locked{overflow:hidden}@media (min-width: 901px){.hero{padding-top:20px;padding-bottom:0}.paper-hero{padding-top:36px;padding-bottom:36px}.paper-hero .hello{margin-bottom:0}.paper-hero .flourish{margin-top:16px}.about .paper,.experience-inner,.more .paper,.certs .paper,.contact-inner{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);column-gap:56px;align-items:start}.experience-inner,.contact-inner{width:100%}.about-intro,.experience-intro,.more-intro,.certs-intro,.contact-intro{position:sticky;top:88px;margin-bottom:0;align-self:start}.about-intro{grid-row:1 / span 2}.identity-field,.identity-note{grid-column:2}.identity-field{margin-bottom:12px}.more-intro{grid-row:1 / -1}.skills-block,.campus-block,.other-block,.certs-groups{grid-column:2}.skills-block,.campus-block{margin-bottom:36px}.skill-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 20px}.skill-list li,.skill-list li:nth-child(-n+2){border-top:0;padding-top:0;padding-bottom:0}.timeline-item{gap:8px 28px;padding-top:16px;padding-bottom:16px}.timeline-summary{margin-bottom:10px}.timeline-points{gap:6px}.campus-block .other-list,.other-block .other-list{grid-template-columns:1fr 1fr;gap:0 32px}.other-item:has(.workshop-photos){grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);column-gap:28px;align-items:start}.other-item:has(.pr-photos){grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.other-item:has(.workshop-photos) .workshop-photos{grid-column:2;grid-row:1 / span 4;margin-top:4px}.other-item{padding-top:12px;padding-bottom:12px}.other-meta{margin-bottom:2px}.other-org{margin-bottom:0;font-size:1rem}.other-item:has(.workshop-photos) .workshop-photos,.other-item:has(.workshop-photos) .workshop-photos img,.itcamp-photos .is-group img,.suebngob-photos .is-certs img{height:120px}.campus-brief{grid-template-columns:repeat(5,minmax(0,1fr))}.projects-intro{margin-bottom:8px;max-width:none}.projects-intro .projects-lead{max-width:40rem}.project-list{grid-template-columns:1fr;gap:0}.project-item{display:grid;grid-template-columns:minmax(120px,160px) minmax(200px,280px) minmax(0,1fr);gap:4px 28px;align-items:start;border-top:1px solid var(--line);border-left:0;padding:22px 0}.project-item:hover,.project-item:focus-within{transform:none;border-left-color:transparent}.project-meta{grid-column:1;grid-row:1 / span 2;margin-bottom:0}.project-item h3{grid-column:2;grid-row:1;margin-bottom:0;font-size:1.45rem;line-height:1.15}.project-org{grid-column:2;grid-row:2;margin-bottom:0}.project-copy{grid-column:3;grid-row:1 / span 2;margin:0}.project-link{grid-column:3;grid-row:3;margin-top:8px}.certs-groups{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 14px}.certs-group,.cert-grid,.cert-grid-two{display:contents}.certs-group>.more-label{display:none}.contact-inner{width:100%;align-items:end}.contact .paper{padding-top:32px;padding-bottom:32px}}.flourish{transform-origin:left center;animation:rule-draw .9s cubic-bezier(.22,1,.36,1) both}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.paper:before,.paper:after{content:none}.paper:hover:before,.paper:hover:after{width:0;height:0}main{counter-reset:chapter}.section{border-top:1px solid rgba(17,17,17,.14)}.eyebrow:before{content:counter(chapter,decimal-leading-zero);counter-increment:chapter;font-family:var(--font-mono);font-weight:500;letter-spacing:.14em;margin-right:12px;color:var(--ink)}body:after{content:"";position:fixed;top:12px;right:12px;bottom:12px;left:12px;z-index:45;pointer-events:none;background:linear-gradient(var(--ink),var(--ink)) left top / 16px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) left top / 1px 16px no-repeat,linear-gradient(var(--ink),var(--ink)) right top / 16px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) right top / 1px 16px no-repeat,linear-gradient(var(--ink),var(--ink)) left bottom / 16px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) left bottom / 1px 16px no-repeat,linear-gradient(var(--ink),var(--ink)) right bottom / 16px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) right bottom / 1px 16px no-repeat}.site-header:not(.is-menu-open),.site-header.is-scrolled:not(.is-menu-open){background:#f4f4f2f0}.contact-list a,.project-link a,.footer-links a{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0 1px;transition:background-size .35s ease,color .25s ease,border-color .25s ease}.contact-list a:hover,.project-link a:hover,.footer-links a:hover{background-size:100% 1px;border-bottom-color:transparent}.skill-list strong,.project-item h3,.timeline-body h3{transition:transform .35s ease}.skill-list li:hover strong,.project-item:hover h3,.timeline-item:hover h3{transform:translate(4px)}
