@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Newsreader:opsz,wght@6..72,400..600&display=swap";:root{--paper:#080a08;--ink:#e6f2e4;--muted:#7c8c79;--accent:#4cff88;--highlight:#1e7a44;--paper-deep:color-mix(in srgb, var(--highlight) 14%, var(--paper));--ink-soft:color-mix(in srgb, var(--ink) 88%, var(--paper));--ink-mute:var(--muted);--rule:color-mix(in srgb, var(--muted) 55%, transparent);--rule-soft:color-mix(in srgb, var(--muted) 24%, transparent);--shadow:color-mix(in srgb, var(--paper) 85%, transparent);--display:"Newsreader", "Iowan Old Style", Georgia, serif;--body:"IBM Plex Sans", "Helvetica Neue", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--gutter:clamp(1.25rem, 5vw, 5.5rem);--measure:62ch;--era-gap:clamp(4.5rem, 9vw, 8.5rem);--sticky-top:6.5rem;--year-size:clamp(1.35rem, 2.2vw, 1.85rem);--rail-gap:clamp(1.5rem, 3.2vw, 3.25rem);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);background:var(--paper);font-family:var(--body);font-optical-sizing:auto;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:100%;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--sticky-top)}body{background:var(--paper);min-width:320px;margin:0}a{color:inherit}a:focus-visible,:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}h1,h2,h3{font-family:var(--display);letter-spacing:-.018em;margin:0;font-weight:500}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}.grain{z-index:100;pointer-events:none;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.22'/%3E%3C/svg%3E");position:fixed;inset:0}.site{max-width:1500px;padding:0 var(--gutter);margin:0 auto}.section-stepper{left:50%;bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:80;position:fixed;transform:translate(-50%)}.section-stepper-next{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--rule));background:color-mix(in srgb, var(--paper) 92%, transparent);min-height:2.8rem;box-shadow:0 .35rem 1.4rem var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:.55rem;padding:.6rem 1rem;font-size:.72rem;font-weight:500;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;display:inline-flex}.section-stepper-next span:first-child{color:var(--accent)}.section-stepper-next:hover{border-color:var(--accent);background:var(--paper-deep);transform:translateY(-2px)}.hero{border-bottom:1px solid var(--rule);isolation:isolate;min-height:min(52rem,100svh);padding:1.25rem 0 clamp(3.5rem,7vw,6.5rem);position:relative;overflow:hidden}.hero:before,.hero:after{content:none}.hero-bar{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding-bottom:clamp(3.5rem,8vh,7rem);font-size:.69rem;font-weight:500;display:grid}.hero-monogram{width:max-content;color:var(--ink);font-family:var(--display);letter-spacing:-.08em;font-size:1.55rem;font-weight:600;line-height:1;text-decoration:none}.hero-monogram span{color:var(--accent)}.hero-bar p{color:var(--ink-mute);text-align:center;margin:0}.hero-linkedin{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.36em;justify-self:end;text-decoration-thickness:1px}.hero-layout{grid-template-columns:minmax(0,1fr) minmax(17rem,.52fr);grid-template-areas:"copy index";align-items:center;column-gap:clamp(2.5rem,6vw,7rem);display:grid}.hero-copy{grid-area:copy;align-self:center;max-width:50rem}.hero-role,.section-index{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.73rem;font-weight:500}.hero h1{letter-spacing:-.075em;text-wrap:balance;max-width:8ch;margin-top:1.1rem;font-size:clamp(5.25rem,12.2vw,11.75rem);font-weight:500;line-height:.74}.hero-statement{max-width:32rem;font-family:var(--display);letter-spacing:-.028em;color:var(--ink-soft);margin-top:clamp(1.8rem,4vw,3.5rem);font-size:clamp(1.5rem,2.55vw,2.25rem);line-height:1.08}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{border:1px solid var(--rule);min-height:3.1rem;font-family:var(--mono);letter-spacing:.075em;align-items:center;gap:.6rem;padding:.7rem 1.05rem;font-size:.75rem;font-weight:500;text-decoration:none;transition:background .25s,color .25s,transform .25s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--signal{border-color:var(--accent);background:var(--accent);color:var(--paper)}.button--signal:hover{background:var(--ink);border-color:var(--ink)}.button--quiet{color:var(--ink)}.button--quiet:hover{background:color-mix(in srgb, var(--ink) 9%, transparent)}.hero-index{border:1px solid var(--rule);border-left:2px solid var(--accent);background:color-mix(in srgb, var(--paper-deep) 56%, transparent);flex-direction:column;grid-area:index;align-self:stretch;min-height:20rem;padding:clamp(1.4rem,3vw,2.4rem);display:flex}.hero-index p{margin:0}.hero-index-count,.hero-index-label,.hero-index-specialty,.hero-index-location{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;font-weight:500}.hero-index-count{color:var(--accent);font-size:.72rem}.hero-index-rule{background:var(--rule);width:100%;height:1px;margin:1.25rem 0 auto}.hero-index-label{color:var(--ink-mute);font-size:.67rem;margin-top:1.35rem!important}.hero-index-company{font-family:var(--display);letter-spacing:-.05em;font-size:clamp(2rem,3.4vw,3rem);line-height:.9;margin-top:.55rem!important}.hero-index-role{color:var(--ink-soft);font-size:1rem;line-height:1.35;margin-top:1rem!important}.hero-index-specialty{color:var(--accent);font-size:.68rem;line-height:1.5;margin-top:.65rem!important}.hero-index-location{color:var(--ink-mute);padding-top:1.2rem;font-size:.68rem;margin-top:auto!important}.eyebrow{font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--ink-mute);font-size:.78rem;font-weight:500}.section-head{max-width:var(--measure);padding:clamp(3.5rem,9vh,6.5rem) 0 clamp(2.5rem,6vw,4rem)}.section-head .section-index{margin-bottom:1.1rem}.section-head h2+h2,.section-head .eyebrow+h2{margin-top:1.1rem}.section-head h2{font-size:clamp(1.75rem,3.4vw,2.85rem);line-height:1.1}.section-note{max-width:52ch;color:var(--ink-mute);margin-top:1.4rem;font-size:1.08rem;line-height:1.6}.rail{gap:var(--era-gap);flex-direction:column;padding-top:clamp(3rem,8vh,5.5rem);padding-bottom:clamp(3rem,8vw,6rem);display:flex}.era{grid-template-columns:1px minmax(0,1fr);gap:1.75rem clamp(1.25rem,3vw,2rem);display:grid}.era-line{grid-area:1/1/-1;position:relative}.era-line:before{content:"";top:0;bottom:calc(-1 * var(--era-gap));background:var(--rule);width:1px;position:absolute;left:0}.era:last-child .era-line:before,.era-line--end:before{bottom:0}.node--terminal{background:var(--ink-mute);border-radius:50%;width:5px;height:5px;position:absolute;top:.55rem;left:50%;transform:translate(-50%)}.era-year{font-family:var(--mono);color:var(--ink-mute);flex-direction:column;grid-column:2;align-items:stretch;gap:1rem;display:flex}.era-marker{flex-direction:column;gap:.15rem;display:flex;position:relative}.era-marker-year{font-size:var(--year-size);letter-spacing:-.02em;color:var(--ink);font-weight:500;line-height:1.05}.era-marker-year--word{font-size:calc(var(--year-size) * .82);letter-spacing:.01em}.era-marker-month{font-size:max(calc(var(--year-size) * .5), .75rem);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}.era-body{max-width:var(--measure);grid-column:2}.era-body h3{font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.12;transition:color .35s}.era.is-active .era-body h3{color:var(--accent)}.era-company-note{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);vertical-align:middle;margin-left:.55rem;font-size:.75rem;font-weight:500}.era-specialty{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:.55rem;font-size:.82rem;font-weight:500}.era-where{color:var(--ink-soft);margin-top:.55rem;font-size:1.12rem;line-height:1.35}.era-sep{opacity:.4;margin:0 .55rem}.era-meta{color:var(--ink-mute);margin-top:.55rem;font-size:1.05rem;line-height:1.35}.era-points{flex-direction:column;gap:1.05rem;margin-top:1.75rem;display:flex}.era-points li{color:var(--ink-soft);grid-template-columns:.45rem minmax(0,1fr);align-items:start;gap:.8rem;font-size:1.08rem;line-height:1.58;display:grid}.era-point-dot{background:var(--accent);border-radius:50%;width:.38rem;height:.38rem;margin-top:.62em}.plate{grid-column:2;align-self:start;margin:0}.plate-frame{background:var(--paper-deep);border:1px solid var(--rule);box-shadow:0 12px 30px -22px var(--shadow);transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s;position:relative;overflow:hidden}.plate-frame img{object-fit:cover;filter:saturate(.96)brightness(.94);width:100%;height:100%;display:block}.plate:hover .plate-frame{box-shadow:0 18px 40px -24px var(--shadow);transform:translateY(-3px)}.plate-frame--empty{aspect-ratio:4/5;border-style:dashed;border-color:var(--rule);place-content:center;justify-items:center;gap:.9rem;display:grid}.plate-mark{opacity:.5;width:14px;height:14px;position:relative}.plate-mark:before,.plate-mark:after{content:"";background:var(--ink-mute);position:absolute}.plate-mark:before{width:1px;height:100%;top:0;left:50%}.plate-mark:after{width:100%;height:1px;top:50%;left:0}.plate-hint{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-mute);text-align:center;word-break:break-all;padding:0 1rem;font-size:.75rem}.plate figcaption{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-top:.9rem;font-size:.75rem;font-weight:500}.projects,.published{border-top:1px solid var(--rule)}.projects-list{flex-direction:column;display:flex}.project{border-top:1px solid var(--rule-soft);background:color-mix(in srgb, var(--paper-deep) 65%, transparent);grid-template-columns:minmax(0,1fr);gap:1.25rem;padding:clamp(2.25rem,4.4vw,4rem) clamp(1.1rem,3vw,3rem);display:grid;position:relative}.project:last-child{border-bottom:1px solid var(--rule-soft)}.project-number{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);font-size:.8rem;font-weight:500}.project-label{color:var(--ink-soft);margin-top:.55rem;font-size:1.12rem;line-height:1.35}.project-copy h3{letter-spacing:-.045em;font-size:clamp(2.2rem,4.6vw,4.5rem);line-height:.92}.project-outcome{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:.55rem;font-size:.82rem;font-weight:500}.project-desc{max-width:var(--measure);color:var(--ink-soft);margin-top:1.25rem;font-size:1.08rem;line-height:1.58}.project-links{font-family:var(--mono);letter-spacing:.08em;flex-wrap:wrap;gap:.5rem 1.75rem;margin-top:1.1rem;font-size:.8rem;font-weight:500;display:flex}.project-links a{color:var(--ink);text-decoration:none;transition:color .3s;position:relative}.project-links a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .35s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-.35em;left:0;transform:scaleX(0)}.project-links a:hover{color:var(--accent)}.project-links a:hover:after{transform:scaleX(1)}.video{aspect-ratio:16/9;border:1px solid color-mix(in srgb, var(--accent) 40%, var(--rule));background:var(--paper);box-shadow:.75rem .75rem 0 color-mix(in srgb, var(--accent) 9%, transparent);overflow:hidden}.video iframe,.video button{border:0;width:100%;height:100%;display:block}.video button{cursor:pointer;background:0 0;padding:0;position:relative}.video img{object-fit:cover;filter:brightness(.72)saturate(.9);width:100%;height:100%;transition:filter .4s,transform .6s cubic-bezier(.22,1,.36,1)}.video button:hover img{filter:brightness(.85)saturate();transform:scale(1.02)}.video-play{border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent var(--accent);width:0;height:0;transition:border-color .3s,scale .4s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video button:hover .video-play{scale:1.15}.published-list{flex-direction:column;padding-bottom:clamp(3rem,8vw,5rem);display:flex}.published-list li{border-top:1px solid var(--rule-soft);flex-wrap:wrap;align-items:baseline;gap:.5rem 1.75rem;padding:1.5rem 0;font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.35;display:flex}.published-list li:last-child{border-bottom:1px solid var(--rule-soft)}.published-role{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-mute);flex:0 0 8rem;font-size:.76rem;font-weight:500}.published-list a{flex:20rem;text-decoration:none;transition:color .3s;position:relative}.published-list a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .45s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-.15em;left:0;transform:scaleX(0)}.published-list a:hover{color:var(--accent)}.published-list a:hover:after{transform:scaleX(1)}.published-title{color:var(--ink-soft);flex:20rem}.contact{border-top:1px solid var(--rule);grid-template-columns:minmax(6rem,.28fr) minmax(0,1fr);gap:1.5rem clamp(1.5rem,6vw,7rem);padding:clamp(4rem,9vw,8rem) 0;display:grid}.contact-content{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:2rem 4rem;display:flex}.contact h2{letter-spacing:-.06em;font-size:clamp(3.2rem,6vw,6.25rem);line-height:.85}.contact-links{flex-direction:column;align-items:flex-start;gap:.8rem;padding-bottom:.3rem;display:flex}.contact-links a{font-family:var(--mono);letter-spacing:.07em;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.4em;font-size:.8rem;font-weight:500;text-decoration-thickness:1px}.contact-links a:hover{color:var(--accent)}.arrow{vertical-align:.1em;font-size:.75em}footer{border-top:1px solid var(--rule-soft);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;padding:1.75rem 0 2.5rem;font-size:.78rem;font-weight:500;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=900px){.era{column-gap:var(--rail-gap);grid-template-columns:clamp(6.5rem,9vw,9rem) 1px minmax(0,1.15fr) minmax(0,.8fr);align-items:start}.era-year{text-align:right;grid-area:1/1;justify-content:space-between;align-self:stretch}.era-marker:after{content:"";top:.5em;right:calc(-1 * var(--rail-gap));background:var(--paper);border:1px solid var(--muted);border-radius:50%;width:7px;height:7px;transition:background .4s,border-color .4s;position:absolute;transform:translate(50%,-50%)}.era.is-active .era-marker:after{background:var(--accent);border-color:var(--accent)}.era-marker--end:has(.era-marker-year--word):after{background:var(--accent);border-color:var(--accent)}.era-line{grid-area:1/2;align-self:stretch}.era-body{grid-area:1/3}.plate{top:var(--sticky-top);grid-area:1/4;max-width:70%;margin-left:auto;position:sticky}.project{column-gap:var(--rail-gap);grid-template-columns:clamp(6.5rem,9vw,9rem) 1px minmax(0,1.15fr) minmax(0,.8fr);align-items:start}.project-number{grid-column:1}.project-copy{grid-column:3}.video{grid-column:4;margin-top:.4rem}}@media (width<=800px){.hero{min-height:0}.hero-bar{padding-bottom:3.5rem}.hero-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"copy""index";gap:2.5rem}.hero-copy{max-width:43rem}.hero h1{max-width:100%;font-size:clamp(5rem,16vw,8rem)}.hero-index{max-width:32rem}.contact{grid-template-columns:1fr;gap:1.2rem}}@media (width<=640px){:root{--gutter:clamp(1rem, 5vw, 1.25rem);--era-gap:3.25rem;--year-size:1.3rem}html{scroll-padding-top:1rem}.hero{padding-top:1rem;padding-bottom:3.25rem}.hero-layout{grid-template-areas:"copy""index"}.hero-bar{grid-template-columns:1fr auto;padding-bottom:2.8rem}.hero-bar p{display:none}.hero-linkedin{align-items:center;min-height:2.75rem;display:inline-flex}.hero h1{margin-top:.9rem;font-size:clamp(4.7rem,21vw,6.25rem);line-height:.76}.hero-statement{margin-top:1.65rem;font-size:1.45rem}.hero-actions{grid-template-columns:1fr;margin-top:1.6rem;display:grid}.button{justify-content:space-between}.hero-index{min-height:16rem}.rail{padding-top:2.25rem;padding-bottom:3.5rem}.era{grid-template-rows:auto auto;gap:1.35rem 1.05rem}.era-year{z-index:1;flex-direction:row;grid-row:1;justify-content:space-between;align-items:flex-start;gap:1rem;position:relative}.era-marker:last-child{text-align:right;align-items:flex-end}.era-line:before{bottom:0}.era-body{grid-row:2}.era-body h3{font-size:clamp(1.45rem,7.4vw,1.8rem)}.era-specialty,.project-outcome{letter-spacing:.105em;font-size:.78rem;line-height:1.48}.era-company-note{margin-left:.4rem;font-size:.72rem;line-height:1.45;display:inline-block}.era-points{gap:1.15rem;margin-top:1.45rem}.era-points li{grid-template-columns:.42rem minmax(0,1fr);gap:.75rem;font-size:1.05rem;line-height:1.58}.plate{display:none}.section-head{padding:3rem 0 2rem}.contact{padding:3.5rem 0}.contact h2{font-size:clamp(3rem,16vw,4.7rem)}.contact-content{flex-direction:column;align-items:flex-start}.project{gap:1rem;padding:2rem 1rem 2.2rem}.project-copy h3{font-size:clamp(2.35rem,12vw,3.25rem)}.project-desc{margin-top:1.05rem;font-size:1.05rem;line-height:1.58}.project-links{gap:.85rem 1.25rem;line-height:1.6}.published-list li{flex-direction:column;align-items:flex-start;gap:.65rem;padding:1.35rem 0}.published-role,.published-list a,.published-title{flex:none}.published-list a,.published-title{width:100%}footer{flex-direction:column;gap:.55rem;padding:1.5rem 0 2rem;line-height:1.45}}@media (hover:none){.plate:hover .plate-frame{transform:none}}
