/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--default-font-family:var(--font-newsreader);--default-mono-font-family:var(--font-jetbrains)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.block{display:block}.flex{display:flex}.h-full{height:100%}.min-h-full{min-height:100%}.flex-1{flex:1}.flex-col{flex-direction:column}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#141816;--ink-soft:#4a524e;--ink-faint:#7a847e;--paper:#f3f1ec;--paper-elevated:#faf9f6;--mist:#e4e0d8;--line:#1418161a;--line-strong:#1418162e;--accent:#0f6e5c;--accent-deep:#0a4f42;--accent-wash:#0f6e5c1a;--glow:#0f6e5c24;--background:var(--paper);--foreground:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100%;color:var(--ink);background:radial-gradient(900px 520px at 8% -8%, var(--glow), transparent 55%), radial-gradient(700px 420px at 92% 4%, #e4e0d8e6, transparent 50%), linear-gradient(168deg, #f7f5f1 0%, var(--paper) 45%, #ebe8e1 100%);font-family:var(--font-newsreader), Georgia, "Times New Roman", serif;letter-spacing:.005em;margin:0}body:before{content:"";pointer-events:none;z-index:60;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");position:fixed;inset:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}.shell{width:min(1080px,100% - 2.5rem);margin-inline:auto}.site-header{z-index:40;-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border-bottom:1px solid var(--line);background:#f3f1ecc7;position:sticky;top:0}.site-header__inner,.site-footer__inner{justify-content:space-between;align-items:center;gap:1rem;width:min(1080px,100% - 2.5rem);margin-inline:auto;padding:1rem 0;display:flex}.brand-mark__name{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;font-size:1.05rem;font-weight:700;text-decoration:none;transition:color .16s}.brand-mark__name:hover{color:var(--accent)}.site-nav{flex-wrap:wrap;justify-content:flex-end;gap:.25rem 1.35rem;display:flex}.site-nav__link{font-family:var(--font-bricolage), sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:.8rem;font-weight:600;text-decoration:none;transition:color .16s;position:relative}.site-nav__link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .22s;position:absolute;bottom:-.2rem;left:0;transform:scaleX(0)}.site-nav__link:hover{color:var(--accent-deep)}.site-nav__link:hover:after{transform:scaleX(1)}.site-footer{border-top:1px solid var(--line);background:#faf9f68c;margin-top:auto}.site-footer__brand{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.02em;margin:0;font-weight:700}.site-footer__links{font-family:var(--font-bricolage), sans-serif;gap:1.25rem;font-size:.82rem;font-weight:600;display:flex}.site-footer__links a{color:var(--ink-soft);text-decoration:none;transition:color .16s}.site-footer__links a:hover{color:var(--accent)}.site-footer__meta{color:var(--ink-faint);font-size:.82rem;font-family:var(--font-jetbrains), ui-monospace, monospace;margin:0}.hero{align-items:end;min-height:calc(100svh - 4rem);padding:5rem 0 4rem;display:grid;position:relative;overflow:hidden}.hero__atmosphere{pointer-events:none;position:absolute;inset:0}.hero__grid{background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);opacity:.65;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 28% 45%,#000 15%,#0000 72%);mask-image:radial-gradient(70% 60% at 28% 45%,#000 15%,#0000 72%)}.hero__plane{background:linear-gradient(125deg,#0000 42%,#0f6e5c0f 42% 58%,#0000 58%),radial-gradient(55% 70% at 88% 20%,#0f6e5c29,#0000 60%);animation:18s ease-in-out infinite alternate plane-shift;position:absolute;inset:0}.hero__content{z-index:1;max-width:40rem;position:relative}.hero__eyebrow{font-family:var(--font-jetbrains), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1.1rem;font-size:.75rem;animation:.7s cubic-bezier(.22,1,.36,1) both rise}.hero__brand{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.055em;margin:0 0 1.35rem;font-size:clamp(3.5rem,11vw,6.8rem);font-weight:800;line-height:.9;animation:.78s cubic-bezier(.22,1,.36,1) 60ms both rise}.hero__lede{color:var(--ink-soft);max-width:32rem;margin:0 0 1.85rem;font-size:clamp(1.15rem,2.3vw,1.38rem);font-style:italic;font-weight:400;line-height:1.55;animation:.86s cubic-bezier(.22,1,.36,1) .12s both rise}.hero__actions{flex-wrap:wrap;gap:.75rem;animation:.92s cubic-bezier(.22,1,.36,1) .18s both rise;display:flex}.btn{min-height:2.85rem;font-family:var(--font-bricolage), sans-serif;letter-spacing:.02em;border-radius:2px;justify-content:center;align-items:center;gap:.4rem;padding:.7rem 1.35rem;font-size:.88rem;font-weight:700;text-decoration:none;transition:transform .18s,background .18s,color .18s,border-color .18s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--ink);color:var(--paper-elevated)}.btn--primary:hover{background:var(--accent-deep)}.btn--ghost{border:1px solid var(--line-strong);background:#faf9f680}.btn--ghost:hover{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-wash)}.section{padding:4.75rem 0}.section--tight{padding-top:0}.section__label{font-family:var(--font-jetbrains), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;font-size:.74rem}.section__title{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(2rem,4.2vw,2.85rem);font-weight:700;line-height:1.05}.section__lede{max-width:36rem;color:var(--ink-soft);margin:0;font-size:1.08rem;line-height:1.65}.page-hero{padding:3.75rem 0 1.75rem}.page-hero h1{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.045em;margin:0 0 1rem;font-size:clamp(2.5rem,6vw,4.1rem);font-weight:800;line-height:.98}.page-hero p{max-width:34rem;color:var(--ink-soft);margin:0;font-size:1.12rem;line-height:1.6}.impact-list{border-top:1px solid var(--line);gap:0;margin-top:2.25rem;display:grid}.impact-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem 2.5rem;padding:1.65rem 0;transition:background .2s,padding-left .2s;display:grid}.impact-item:hover{background:linear-gradient(90deg, var(--accent-wash), transparent 55%);padding-left:.5rem}.impact-item__title{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;margin:0;font-size:1.3rem;font-weight:700}.impact-item__blurb{color:var(--ink-soft);margin:0;font-size:1.02rem;line-height:1.6}.timeline{border-top:1px solid var(--line);gap:0;display:grid}.timeline__item{border-bottom:1px solid var(--line);grid-template-columns:9rem 1fr;gap:1.5rem;padding:1.65rem 0;transition:background .2s;display:grid}.timeline__item:hover{background:linear-gradient(90deg, var(--accent-wash), transparent 40%)}.timeline__period{font-family:var(--font-jetbrains), ui-monospace, monospace;color:var(--accent);letter-spacing:.04em;margin:.15rem 0 0;font-size:.78rem}.timeline__company{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;margin:0 0 .25rem;font-size:1.4rem;font-weight:700}.timeline__role{color:var(--ink);margin:0 0 .55rem;font-size:.98rem;font-weight:600}.timeline__summary,.project-row__blurb,.list-row__meta{color:var(--ink-soft);margin:0;line-height:1.55}.project-list,.list-rows{border-top:1px solid var(--line);display:grid}.project-row,.list-row{border-bottom:1px solid var(--line);gap:.5rem;padding:1.45rem 0;text-decoration:none;transition:padding-left .2s,background .2s;display:grid}.project-row:hover,.list-row:hover{background:linear-gradient(90deg, var(--accent-wash), transparent 50%);padding-left:.55rem}.project-row__name,.list-row__title{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;font-size:1.35rem;font-weight:700}.project-row__tags{flex-wrap:wrap;gap:.45rem;display:flex}.tag{font-family:var(--font-jetbrains), ui-monospace, monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line-strong);padding:.15rem 0;font-size:.7rem}.focus-list{gap:.95rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.focus-list li{color:var(--ink-soft);padding-left:1.15rem;font-size:1.05rem;line-height:1.55;position:relative}.focus-list li:before{content:"";background:var(--accent);width:.4rem;height:.4rem;position:absolute;top:.6rem;left:0}.skills-row{gap:1.75rem;margin-top:2rem;display:grid}.skills-group__label{font-family:var(--font-jetbrains), ui-monospace, monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .55rem;font-size:.72rem}.skills-group__items{color:var(--ink-soft);margin:0;font-size:1.05rem;line-height:1.55}.education-block{border-top:1px solid var(--line);margin-top:1rem;padding-top:1.5rem}.education-block h3{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;margin:0 0 .35rem;font-size:1.35rem;font-weight:700}.education-block p{color:var(--ink-soft);margin:0;line-height:1.55}.contact-block{gap:1.15rem;max-width:28rem;display:grid}.contact-block a{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.02em;font-size:1.35rem;font-weight:700;text-decoration:none;transition:color .16s}.contact-block a:hover{color:var(--accent)}.prose{max-width:40rem}.prose-h2{font-family:var(--font-bricolage), sans-serif;letter-spacing:-.03em;margin:2.1rem 0 .75rem;font-size:1.55rem;font-weight:700}.prose-h3{font-family:var(--font-bricolage), sans-serif;margin:1.5rem 0 .5rem;font-size:1.15rem;font-weight:700}.prose-p,.prose-li{color:var(--ink-soft);font-size:1.06rem;line-height:1.72}.prose-ul,.prose-ol{gap:.45rem;padding-left:1.2rem;display:grid}.prose-a{color:var(--accent-deep)}.prose-strong{color:var(--ink);font-weight:700}.meta-row{color:var(--ink-faint);font-family:var(--font-jetbrains), ui-monospace, monospace;letter-spacing:.04em;flex-wrap:wrap;gap:.75rem 1.25rem;margin:.85rem 0 2rem;font-size:.76rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes plane-shift{0%{transform:translate(0)scale(1)}to{transform:translate(-2%,1.5%)scale(1.03)}}@media (prefers-reduced-motion:reduce){.hero__brand,.hero__lede,.hero__actions,.hero__eyebrow,.hero__plane{animation:none}}@media (max-width:720px){.site-header__inner,.site-footer__inner{flex-direction:column;align-items:flex-start}.timeline__item,.impact-item{grid-template-columns:1fr;gap:.45rem}.hero{padding-top:3.5rem}.hero__plane{opacity:.7}}
