@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700;800&family=IBM+Plex+Mono:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap";.career-graph{position:relative;min-height:18rem;margin:0;overflow:hidden;color:var(--koh-paper, #f4ede2);border:1px solid color-mix(in srgb,currentColor 17%,transparent);border-radius:.35rem;background:linear-gradient(135deg,rgba(255,255,255,.055),transparent 55%)}.career-graph__heading{position:absolute;inset:1rem 1rem auto;z-index:2;display:flex;justify-content:space-between;gap:1rem;color:currentColor;font:.6rem IBM Plex Mono,monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.72}.career-graph svg{display:block;width:100%;height:18rem;overflow:visible}.career-graph__grid line{stroke:currentColor;stroke-width:.25;opacity:.17;vector-effect:non-scaling-stroke}.career-graph__area{fill:currentColor;opacity:.055}.career-graph__line{fill:none;stroke:var(--koh-amber, #d79b3d);stroke-width:1.05;vector-effect:non-scaling-stroke}.career-graph__point{fill:var(--koh-amber, #d79b3d);stroke:var(--koh-ink, #24211d);stroke-width:.6;vector-effect:non-scaling-stroke}.career-graph__labels div{position:absolute;display:grid;gap:.18rem;transform:translate(-50%,-50%);color:currentColor;font-family:IBM Plex Mono,monospace;font-size:.58rem;line-height:1.1;letter-spacing:.03em;pointer-events:none}.career-graph__labels div:nth-child(1),.career-graph__labels div:nth-child(2){transform:translate(-50%,calc(-50% + 2.7rem))}.career-graph__labels div:nth-child(4),.career-graph__labels div:nth-child(5){transform:translate(-50%,calc(-50% + 2.4rem))}.career-graph__labels b{color:var(--koh-amber, #d79b3d);font-weight:500}.career-graph__labels span{opacity:.72}.career-graph--compact{min-height:14rem}.career-graph--compact svg{height:14rem}@media (max-width: 600px){.career-graph{min-height:15rem}.career-graph svg{height:15rem}.career-graph__labels div{font-size:.5rem}.career-graph__labels div:nth-child(3){transform:translate(-50%,calc(-50% + 2.4rem))}}.resume-page{--resume-ink: #20221e;--resume-paper: #f3efe6;--resume-line: rgba(32,34,30,.17);--resume-mute: #68675f;--resume-accent: #b05235;min-height:100vh;color:var(--resume-ink);background:var(--resume-paper);font-family:DM Sans,system-ui,sans-serif}.resume-page .career-graph{--koh-paper: var(--resume-ink);--koh-ink: var(--resume-paper);--koh-amber: var(--resume-accent);margin-top:2rem}.resume-shell{width:min(75rem,calc(100% - 3rem));margin:0 auto;padding:1.25rem 0 4rem}.resume-nav{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:.35rem 0 1.25rem;border-bottom:1px solid var(--resume-line);font:500 .7rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.resume-nav a{color:inherit;text-decoration:none}.resume-nav a:last-child{color:var(--resume-accent)}.resume-nav a:hover{text-decoration:underline;text-underline-offset:.25rem}.resume-masthead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr);gap:clamp(2rem,7vw,7rem);padding:clamp(4rem,10vw,8rem) 0 clamp(3rem,7vw,5rem)}.resume-eyebrow,.resume-kicker{margin:0;color:var(--resume-accent);font:500 .7rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.resume-masthead h1{max-width:8ch;margin:1rem 0 1.4rem;font:600 clamp(4.5rem,11vw,9rem)/.78 "Playfair Display",Georgia,serif;letter-spacing:-.065em}.resume-masthead h1 em{font-weight:500}.resume-summary{max-width:40rem;margin:0;color:var(--resume-mute);font-size:clamp(1.08rem,1.7vw,1.38rem);line-height:1.48}.resume-contact{align-self:end;display:grid;gap:.55rem;padding:1.25rem 0;border-top:1px solid var(--resume-line);border-bottom:1px solid var(--resume-line);font:.78rem/1.5 DM Mono,monospace}.resume-contact span{color:var(--resume-mute)}.resume-contact a{color:var(--resume-ink);text-decoration-color:var(--resume-accent);text-underline-offset:.2rem}.resume-section{display:grid;grid-template-columns:minmax(9rem,.25fr) minmax(0,1fr);gap:clamp(1.5rem,7vw,7rem);padding:clamp(3rem,7vw,5.5rem) 0;border-top:1px solid var(--resume-line)}.resume-section__title{margin:0;font:500 .7rem DM Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.resume-section__body>h2{max-width:17ch;margin:0 0 2.25rem;font:500 clamp(2.2rem,5vw,4.3rem)/.95 "Playfair Display",Georgia,serif;letter-spacing:-.04em}.resume-section__body>h2 em{color:var(--resume-accent)}.resume-experience{display:grid}.resume-role{display:grid;grid-template-columns:minmax(7rem,.28fr) minmax(0,1fr);gap:1.2rem;padding:1.4rem 0;border-top:1px solid var(--resume-line)}.resume-role:first-child{border-top:0;padding-top:0}.resume-role time{color:var(--resume-accent);font:.72rem DM Mono,monospace}.resume-role h3{margin:0;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.15;letter-spacing:-.03em}.resume-role h3 span{display:block;margin-top:.32rem;color:var(--resume-mute);font-size:.82rem;font-weight:400;letter-spacing:0}.resume-role p{max-width:46rem;margin:.75rem 0 0;color:var(--resume-mute);font-size:1rem;line-height:1.6}.resume-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--resume-line);background:var(--resume-line)}.resume-skill{padding:1.25rem;background:var(--resume-paper)}.resume-skill h3{margin:0 0 .65rem;color:var(--resume-accent);font:500 .68rem DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.resume-skill p{margin:0;color:var(--resume-mute);line-height:1.55}.resume-projects{display:grid;gap:.9rem}.resume-project{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--resume-line)}.resume-project strong{font-size:1.15rem}.resume-project span{max-width:31rem;color:var(--resume-mute);line-height:1.5;text-align:right}.resume-footer{display:flex;justify-content:space-between;gap:1rem;padding-top:1.25rem;color:var(--resume-mute);border-top:1px solid var(--resume-line);font:.67rem DM Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.resume-page .career-graph{animation:resume-enter .7s cubic-bezier(.23,1,.32,1) both}.resume-role,.resume-skill{transition:background-color .16s ease-out,transform .16s ease-out}.resume-role:hover{transform:translate(.35rem)}.resume-skill:hover{background:#ece5d8}@keyframes resume-enter{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 700px){.resume-shell{width:min(100% - 2rem,75rem)}.resume-masthead,.resume-section{grid-template-columns:1fr;gap:1.4rem}.resume-masthead{padding-top:4rem}.resume-masthead h1{font-size:clamp(4rem,19vw,6.5rem)}.resume-role{grid-template-columns:1fr;gap:.55rem}.resume-skills{grid-template-columns:1fr}.resume-project{display:grid}.resume-project span{text-align:left}.resume-footer{flex-direction:column}}@media (prefers-reduced-motion: reduce){.resume-page .career-graph{animation-duration:.18s;transform:none}.resume-role,.resume-skill{transition:background-color .12s ease-out}.resume-role:hover{transform:none}}@media print{.resume-page{background:#fff}.resume-shell{width:100%;padding:0}.resume-nav{display:none}.resume-masthead{padding-top:1.5rem}.resume-section{padding:1.5rem 0}.resume-page .career-graph{display:none}}:root{--koh-ink: #24211d;--koh-paper: #f4ede2;--koh-white: #fffaf2;--koh-muted: #a59b8d;--koh-line: rgba(244,237,226,.18);--koh-amber: #d79b3d;--koh-rust: #bd623d;--koh-sage: #687964;--koh-blue: #5d78a4;--koh-plum: #765c77;--koh-teal: #4f7d77;--koh-container: min(1180px, calc(100% - 4rem) )}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--koh-ink)}button,a{font:inherit}.koh-home{min-height:100vh;overflow:clip;color:var(--koh-paper);background:var(--koh-ink);font-family:"Instrument Serif",Georgia,serif}.koh-header{position:fixed;top:0;left:0;right:0;z-index:20;height:3.75rem;display:flex;align-items:center;justify-content:space-between;padding:0 var(--koh-container);background:#24211df0;border-bottom:1px solid var(--koh-line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .65s cubic-bezier(.33,1,.68,1)}.koh-logo{position:absolute;left:50%;transform:translate(-50%);color:var(--koh-white);text-decoration:none;font-family:Barlow Condensed,sans-serif;font-size:1.25rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.koh-logo:first-letter{color:var(--koh-amber)}.koh-header nav{display:flex;gap:2.5rem}.koh-header nav a,.koh-header+* a{color:var(--koh-white);text-decoration:none;font:.72rem IBM Plex Mono,monospace;opacity:.75;transition:opacity .3s,transform .16s ease-out}.koh-header nav a:hover{opacity:1}.koh-header nav a:active{transform:scale(.97)}.koh-header:after{content:"Available for select work";color:var(--koh-muted);font:.62rem IBM Plex Mono,monospace}.koh-hero{min-height:100vh;display:grid;place-items:center;padding:6rem 1.5rem 4rem;text-align:center}.koh-hero__inner{width:min(100%,1100px)}.koh-hero h1{margin:0;color:var(--koh-white);font:800 clamp(5rem,13vw,11rem)/.76 "Barlow Condensed",sans-serif;letter-spacing:-.04em;text-transform:uppercase}.koh-hero h1:first-line{color:var(--koh-paper)}.koh-hero p{max-width:37rem;margin:2.4rem auto 0;color:var(--koh-muted);font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.35}.koh-hero__scroll{display:inline-flex;flex-direction:column;gap:.85rem;margin-top:5.5rem;color:var(--koh-paper);text-decoration:none;font:.64rem IBM Plex Mono,monospace;letter-spacing:.1em;text-transform:uppercase}.koh-hero__scroll span{color:var(--koh-amber);font-size:1.25rem}.koh-archive{width:var(--koh-container);margin:0 auto;padding:5rem 0 8rem}.koh-archive--history{padding-top:1rem}.koh-archive--history .career-graph{margin-top:2rem;--koh-ink: var(--koh-ink)}.koh-archive__header{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.85rem;color:var(--koh-paper);border-bottom:1px solid var(--koh-line);font:.65rem IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.koh-archive__header span:last-child{color:var(--koh-muted)}.file-system{margin-top:2rem}.file-row{position:relative;margin-top:-1px;background:var(--row-color);border-radius:4px}.file-row--blue{--row-color: var(--koh-blue)}.file-row--teal{--row-color: var(--koh-teal)}.file-row--purple{--row-color: var(--koh-plum)}.file-row+.file-row{margin-top:0}.file-row__tabs{position:relative;min-height:3.8rem;display:flex;align-items:end;gap:.25rem;padding:0 1rem}.file-tab{position:relative;min-width:9.5rem;min-height:3.8rem;display:flex;flex-direction:column;justify-content:center;gap:.3rem;padding:.7rem 1rem;color:var(--koh-white);border:0;border-radius:1.2rem 1.2rem 0 0;cursor:pointer;text-align:left;transition:min-height .65s cubic-bezier(.33,1,.68,1),filter .3s}.file-tab:hover{filter:brightness(1.12)}.file-tab.is-active{min-height:4.7rem;z-index:2}.file-tab span{font-size:1.15rem;white-space:nowrap}.file-tab small{font:.55rem IBM Plex Mono,monospace;opacity:.78;white-space:nowrap}.file-tab--blue{background:var(--koh-blue)}.file-tab--red{background:var(--koh-rust)}.file-tab--teal{background:var(--koh-teal)}.file-tab--yellow{color:var(--koh-ink);background:var(--koh-amber)}.file-tab--purple{background:var(--koh-plum)}.file-tab--black{background:#3b3832}.file-row__label{align-self:center;margin-left:auto;padding:.7rem 0 .7rem 1rem;color:var(--koh-white);background:transparent;border:0;cursor:pointer;font:.62rem IBM Plex Mono,monospace;letter-spacing:.04em;text-align:right}.file-row__label span{margin-left:.5rem;color:#ffffffb3}.file-row__body{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .65s cubic-bezier(.33,1,.68,1)}.file-row.is-open .file-row__body{grid-template-rows:1fr}.file-row__body-inner{min-height:0;display:grid;grid-template-columns:.32fr 1fr;align-items:center;gap:2rem;padding:0 3.5rem;opacity:0;transform:translateY(-1rem);transition:opacity .3s,transform .65s cubic-bezier(.33,1,.68,1)}.file-row.is-open .file-row__body-inner{min-height:20rem;padding-top:1rem;padding-bottom:1.2rem;opacity:1;transform:translateY(0)}.file-row__body-inner:before,.file-row__body-inner:after{content:"";position:absolute;left:0;right:0;height:1px;background:#fff3}.file-row__body-inner:before{margin-top:-17rem}.file-row__number{color:#ffffff57;font:10rem/.8 Barlow Condensed,sans-serif;letter-spacing:-.05em}.file-row__copy{max-width:52rem}.file-meta{margin:0;color:#ffffffad;font:.65rem IBM Plex Mono,monospace;letter-spacing:.05em;text-transform:uppercase}.file-row__copy h3{margin:.65rem 0 1rem;color:var(--koh-white);font-size:clamp(2.8rem,6vw,6rem);font-weight:400;line-height:.82;letter-spacing:-.07em}.file-row__copy>p:last-of-type{margin:0;color:var(--koh-white);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.35}.file-row__copy a{display:inline-block;margin-top:1.6rem;color:var(--koh-white);text-decoration:none;border-bottom:1px solid currentColor;font:.7rem IBM Plex Mono,monospace;text-transform:uppercase}.file-row__copy a span{color:var(--koh-amber);margin-left:.5rem}.koh-contact{min-height:48rem;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 1.5rem;text-align:center;background:var(--koh-rust)}.koh-contact p{margin:0;color:#fffaf2b8;font:.7rem IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.koh-contact h2{margin:2rem 0 0;color:var(--koh-white);font-size:clamp(4rem,10vw,10rem);font-weight:400;line-height:.8;letter-spacing:-.08em}.koh-contact h2 em{color:var(--koh-amber);font-style:italic}.koh-contact a{margin-top:3rem;color:var(--koh-white);text-decoration:none;border-bottom:1px solid currentColor;font:clamp(1rem,2vw,1.4rem) "IBM Plex Mono",monospace}.koh-contact a span{color:var(--koh-amber);margin-left:.7rem}footer{width:var(--koh-container);min-height:5rem;display:flex;align-items:center;gap:2rem;margin:0 auto;color:var(--koh-muted);font:.62rem IBM Plex Mono,monospace;letter-spacing:.04em;text-transform:uppercase}footer span:nth-child(2){margin-right:auto}footer a{color:var(--koh-muted);text-decoration:none}footer a:hover{color:var(--koh-amber)}.koh-home.is-ready .koh-hero__inner{animation:koh-rise .8s ease both}.koh-home.is-ready .file-row{animation:koh-row .7s ease both}.koh-home.is-ready .file-row:nth-child(2){animation-delay:.1s}.koh-home.is-ready .file-row:nth-child(3){animation-delay:.2s}@keyframes koh-rise{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes koh-row{0%{opacity:.2;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 800px){:root{--koh-container: calc(100% - 1.5rem) }.koh-header{padding:0 .75rem}.koh-header:after{display:none}.koh-header nav{gap:.8rem}.koh-header nav a{font-size:.58rem}.koh-logo{position:static;transform:none;margin-right:auto}.koh-hero h1{font-size:clamp(4.6rem,19vw,8rem)}.koh-archive{padding-top:4rem}.file-row__tabs{align-items:stretch;overflow-x:auto;padding-inline:.5rem}.file-tab{min-width:8.5rem;min-height:3.3rem}.file-tab.is-active{min-height:4rem}.file-tab span{font-size:1rem}.file-row__label{display:none}.file-row__body-inner{grid-template-columns:1fr;gap:1rem;padding-inline:1.2rem}.file-row.is-open .file-row__body-inner{min-height:25rem}.file-row__number{font-size:5rem}.file-row__copy h3{font-size:3.4rem}.file-row__copy>p:last-of-type{font-size:1rem}.koh-contact{min-height:36rem}footer{flex-wrap:wrap;gap:.7rem 1rem;padding:1rem 0}footer span:nth-child(2){width:100%;margin-right:0}}@media (prefers-reduced-motion: reduce){.koh-home.is-ready .koh-hero__inner,.koh-home.is-ready .file-row,.file-row__body,.file-row__body-inner,.file-tab{animation:none;transition:none}}
