:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--neutral-0: oklch(99.2% .006 82);--neutral-1: oklch(97.8% .008 82);--neutral-2: oklch(95.4% .009 82);--neutral-3: oklch(91.2% .01 82);--neutral-4: oklch(81% .012 82);--neutral-5: oklch(66% .012 82);--neutral-6: oklch(50% .012 82);--neutral-7: oklch(36% .011 82);--neutral-8: oklch(24% .009 82);--neutral-9: oklch(15.5% .008 82);--neutral-10: oklch(10.5% .006 82);--blue-6: oklch(49% .145 255);--blue-7: oklch(41% .13 255);--blue-1: oklch(95.5% .022 255);--green-7: oklch(43% .12 151);--green-1: oklch(95% .028 151);--amber-7: oklch(48% .12 80);--red-7: oklch(48% .16 26);--paper: var(--neutral-0);--paper-muted: var(--neutral-1);--surface: oklch(100% 0 0);--surface-hover: var(--neutral-1);--surface-active: var(--neutral-2);--ink: var(--neutral-10);--ink-2: var(--neutral-8);--ink-3: var(--neutral-6);--ink-4: var(--neutral-5);--line: color-mix(in oklab, var(--neutral-7) 18%, transparent);--line-strong: color-mix(in oklab, var(--neutral-7) 34%, transparent);--accent: var(--blue-7);--accent-hover: var(--blue-6);--accent-wash: var(--blue-1);--accent-line: color-mix(in oklab, var(--accent) 32%, transparent);--success: var(--green-7);--success-wash: var(--green-1);--warning: var(--amber-7);--danger: var(--red-7);--focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent) 22%, transparent);--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--font-serif: Fraunces, Georgia, "Times New Roman", serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.0625rem;--text-lg: clamp(1.125rem, 1.04rem + .35vw, 1.375rem);--text-xl: clamp(1.5rem, 1.32rem + .72vw, 2rem);--text-2xl: clamp(2rem, 1.66rem + 1.4vw, 3rem);--text-display: clamp(3.4rem, 2.65rem + 3.2vw, 5.8rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--shadow-sm: 0 1px 2px color-mix(in oklab, var(--neutral-10) 6%, transparent), 0 6px 18px color-mix(in oklab, var(--neutral-10) 4%, transparent);--shadow-md: 0 1px 2px color-mix(in oklab, var(--neutral-10) 7%, transparent), 0 18px 45px color-mix(in oklab, var(--neutral-10) 9%, transparent);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-snap: cubic-bezier(.2, 0, 0, 1);--dur-fast: .14s;--dur-base: .22s;--container: 77.5rem;--reading: 68ch;--nav-height: 4.5rem}*{box-sizing:border-box}html{min-width:20rem;scroll-behavior:smooth;background:var(--paper)}body{min-width:20rem;min-height:100vh;margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);line-height:1.55}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;content:"";opacity:.32;background-image:linear-gradient(to right,color-mix(in oklab,var(--line) 30%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--line) 22%,transparent) 1px,transparent 1px);background-size:5rem 5rem;-webkit-mask-image:linear-gradient(to bottom,black,transparent 46rem);mask-image:linear-gradient(to bottom,black,transparent 46rem)}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%}::selection{color:var(--ink);background:var(--accent-wash)}:focus{outline:none}:focus-visible{border-radius:var(--radius-sm);box-shadow:var(--focus-ring)}.site-shell{min-height:100vh;display:flex;flex-direction:column}.site-main{flex:1;padding-top:var(--nav-height)}.site-container{width:min(calc(100% - 3rem),var(--container));margin-inline:auto}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:5000;transform:translateY(-180%);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);transition:transform var(--dur-fast) var(--ease-snap)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow,.mono-label{margin:0;color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.11em;line-height:1.5;text-transform:uppercase}.eyebrow:before{display:inline-block;width:2.75rem;height:2px;margin-right:var(--space-3);vertical-align:middle;background:var(--accent);content:""}.section-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8)}.section-heading-row h2,.record-section>h2{margin:0;color:var(--ink);font-size:var(--text-xl);font-weight:620;letter-spacing:-.025em}.text-link,.arrow-link{display:inline-flex;align-items:center;gap:var(--space-2);width:fit-content;color:var(--accent);font-size:var(--text-sm);font-weight:600;transition:color var(--dur-fast) var(--ease-snap),gap var(--dur-fast) var(--ease-snap)}.text-link:hover,.arrow-link:hover{gap:var(--space-3);color:var(--accent-hover)}.button-link{min-height:2.875rem;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.7rem 1rem;border:1px solid var(--ink);border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:transform var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap)}.button-link:hover{transform:translateY(-1px);border-color:var(--accent);background:var(--accent)}.button-link:active{transform:translateY(0);background:var(--accent-hover)}.button-link.secondary{border-color:var(--line-strong);background:transparent;color:var(--ink)}.button-link.secondary:hover{border-color:var(--ink);background:var(--surface)}.button-link:disabled,.button-link[aria-disabled=true]{transform:none;opacity:.5;cursor:not-allowed}.site-nav{position:fixed;inset:0 0 auto;z-index:1000;height:var(--nav-height);border-bottom:1px solid var(--line);background:color-mix(in oklab,var(--paper) 92%,transparent);backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%)}.nav-inner{width:min(calc(100% - 3rem),var(--container));height:100%;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}.wordmark{display:inline-flex;align-items:center;gap:var(--space-3);flex-shrink:0;font-size:.95rem;font-weight:660;letter-spacing:-.02em}.wordmark-mark{width:1.8rem;height:1.8rem;display:inline-grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:var(--accent);font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:-.08em}.desktop-nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}.nav-item{position:relative;display:flex;align-items:center}.nav-link,.nav-project-trigger{min-height:2.5rem;display:inline-flex;align-items:center;gap:var(--space-1);padding:0;border:0;background:transparent;color:var(--ink-3);font-size:var(--text-sm);font-weight:520;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap)}.nav-link:hover,.nav-project-trigger:hover,.nav-link.active,.nav-project-trigger.active{color:var(--ink)}.nav-link.active:after,.nav-project-trigger.active:after{position:absolute;right:0;bottom:-1.05rem;left:0;height:2px;background:var(--accent);content:""}.projects-popover{position:absolute;top:calc(100% + .65rem);left:50%;width:min(36rem,78vw);padding:var(--space-2);transform:translate(-50%,-.4rem);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),visibility var(--dur-fast)}.nav-item:hover .projects-popover,.nav-item:focus-within .projects-popover{transform:translate(-50%);opacity:1;visibility:visible;pointer-events:auto}.popover-header{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-2)}.popover-header span{color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.popover-project{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-3);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-snap)}.popover-project:hover{background:var(--surface-hover)}.popover-project strong{display:block;overflow:hidden;color:var(--ink);font-size:var(--text-sm);font-weight:580;text-overflow:ellipsis;white-space:nowrap}.popover-project span{color:var(--ink-4);font-family:var(--font-mono);font-size:.67rem}.private-link{min-height:2.5rem;display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-2);font-size:var(--text-sm);font-weight:550;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap)}.private-link:hover{border-color:var(--ink);background:var(--surface)}.mobile-menu-button{display:none;width:2.65rem;height:2.65rem;align-items:center;justify-content:center;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}.mobile-menu{position:fixed;inset:var(--nav-height) 0 0;z-index:990;display:none;overflow-y:auto;padding:var(--space-5) 1.5rem var(--space-10);border-top:1px solid var(--line);background:var(--paper)}.mobile-menu.open{display:block}.mobile-menu .nav-link{width:100%;min-height:3.5rem;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--text-lg)}.mobile-menu .nav-link.active:after{display:none}.mobile-private{margin-top:var(--space-8)}.site-footer{border-top:1px solid var(--line);background:var(--paper-muted)}.footer-main{width:min(calc(100% - 3rem),var(--container));margin-inline:auto;padding:var(--space-12) 0 var(--space-8);display:grid;grid-template-columns:minmax(16rem,1fr) auto;gap:var(--space-10);align-items:start}.footer-name{margin:0 0 var(--space-2);font-size:var(--text-md);font-weight:650}.footer-purpose{max-width:32rem;margin:0;color:var(--ink-3);font-size:var(--text-sm)}.footer-links{display:grid;grid-template-columns:repeat(3,auto);gap:var(--space-2) var(--space-8)}.footer-links a{color:var(--ink-3);font-size:var(--text-sm);transition:color var(--dur-fast) var(--ease-snap)}.footer-links a:hover{color:var(--ink)}.footer-bottom{width:min(calc(100% - 3rem),var(--container));margin-inline:auto;padding:var(--space-5) 0 var(--space-8);display:flex;justify-content:space-between;gap:var(--space-4);border-top:1px solid var(--line);color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.03em}.page-shell{min-height:70vh}.page-intro{padding:clamp(4rem,9vw,7.5rem) 0 clamp(3rem,6vw,5rem);border-bottom:1px solid var(--line)}.page-intro-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(20rem,.48fr);gap:clamp(3rem,8vw,8rem);align-items:end}.page-intro h1{max-width:12ch;margin:var(--space-5) 0 0;font-size:var(--text-2xl);font-weight:640;letter-spacing:-.04em;line-height:1.03}.page-intro-copy{max-width:42rem;margin:0;color:var(--ink-3);font-size:var(--text-lg);line-height:1.6}.record-section{padding:var(--space-20) 0;border-bottom:1px solid var(--line)}.record-section>h2{margin-bottom:var(--space-10)}.status-text{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--success);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.02em}.status-text:before{width:.4rem;height:.4rem;border-radius:50%;background:currentColor;content:""}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.tag-list span{color:var(--ink-3);font-family:var(--font-mono);font-size:.68rem}.tag-list span:not(:last-child):after{margin-left:var(--space-3);color:var(--line-strong);content:"/"}.home-hero{padding:clamp(4rem,7vw,6.5rem) 0 var(--space-16)}.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(17rem,.55fr);gap:clamp(3rem,8vw,8rem);align-items:end}.home-title{max-width:10ch;margin:var(--space-6) 0 var(--space-4);font-size:var(--text-display);font-weight:630;letter-spacing:-.058em;line-height:.93}.home-role{margin:0 0 var(--space-6);color:var(--ink-2);font-size:var(--text-xl);font-weight:500;letter-spacing:-.025em;line-height:1.25}.home-summary{max-width:48rem;margin:0;color:var(--ink-3);font-size:var(--text-md);line-height:1.78}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}.portrait-frame{position:relative;margin:0}.portrait-frame:before{position:absolute;top:-1rem;right:-1rem;width:4rem;height:2px;background:var(--accent);content:""}.profile-image{width:100%;aspect-ratio:.88;display:block;object-fit:cover;object-position:center 18%;border-radius:2px;filter:saturate(.82) contrast(1.02);box-shadow:var(--shadow-sm)}.portrait-caption{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-3);color:var(--ink-4);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.05em;text-transform:uppercase}.home-selected{padding:var(--space-12) 0 var(--space-16);border-top:1px solid var(--line)}.work-index{border-top:1px solid var(--line-strong)}.work-row{display:grid;grid-template-columns:4rem minmax(14rem,.72fr) minmax(18rem,1fr) auto;gap:var(--space-8);align-items:center;min-height:7.25rem;padding:var(--space-5) 0;border-bottom:1px solid var(--line);transition:background var(--dur-fast) var(--ease-snap)}.work-row:hover{background:color-mix(in oklab,var(--surface) 54%,transparent)}.work-index-number{color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.work-row h3{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:580;letter-spacing:-.025em}.work-row-category{color:var(--ink-4);font-family:var(--font-mono);font-size:.67rem;letter-spacing:.03em;text-transform:uppercase}.work-row p{margin:0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.65}.work-row-arrow{color:var(--accent);transition:transform var(--dur-fast) var(--ease-snap)}.work-row:hover .work-row-arrow{transform:translate(.25rem)}.home-proof{padding:var(--space-16) 0 var(--space-20);border-top:1px solid var(--line)}.home-linkedin{margin-top:var(--space-8)}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}.proof-item{min-height:10.5rem;padding:var(--space-6) var(--space-8) var(--space-8) 0}.proof-item+.proof-item{padding-left:var(--space-8);border-left:1px solid var(--line)}.proof-item h3{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-md);font-weight:600}.proof-item p{margin:0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.6}.about-story{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(17rem,.45fr);gap:clamp(3rem,8vw,8rem);align-items:start}.story-copy{max-width:var(--reading)}.story-copy p{margin:0 0 var(--space-6);color:var(--ink-2);font-size:var(--text-md);line-height:1.82}.story-copy a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:.2em}.story-aside{position:sticky;top:calc(var(--nav-height) + var(--space-8))}.story-aside .profile-image{aspect-ratio:.92}.story-facts{margin:var(--space-6) 0 0;padding:0;list-style:none;border-top:1px solid var(--line-strong)}.story-facts li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:var(--text-sm)}.story-facts strong{color:var(--ink);font-weight:550;text-align:right}.timeline-list,.ledger-list{border-top:1px solid var(--line-strong)}.timeline-item{display:grid;grid-template-columns:10rem minmax(13rem,.7fr) minmax(20rem,1fr);gap:var(--space-8);padding:var(--space-8) 0;border-bottom:1px solid var(--line)}.timeline-period,.ledger-date{color:var(--ink-4);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.timeline-item h3,.ledger-item h3{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:600;letter-spacing:-.018em}.timeline-company,.ledger-subtitle{margin:0;color:var(--ink-3);font-size:var(--text-sm)}.timeline-item ul{margin:0;padding-left:1.1rem;color:var(--ink-3);font-size:var(--text-sm);line-height:1.68}.timeline-item li+li{margin-top:var(--space-2)}.about-two-column{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(3rem,8vw,8rem)}.subsection h2{margin:0 0 var(--space-8);font-size:var(--text-xl);font-weight:620;letter-spacing:-.025em}.education-item,.community-item{padding:var(--space-6) 0;border-top:1px solid var(--line)}.education-item:first-of-type,.community-item:first-of-type{border-top-color:var(--line-strong)}.education-item h3,.community-item h3{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:590}.education-item p,.community-item p{margin:var(--space-2) 0 0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.65}.item-meta-row{display:flex;justify-content:space-between;gap:var(--space-4);color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem}.skill-group{display:grid;grid-template-columns:minmax(9rem,.44fr) 1fr;gap:var(--space-6);padding:var(--space-5) 0;border-top:1px solid var(--line)}.skill-group:first-of-type{border-top-color:var(--line-strong)}.skill-group h3{margin:0;font-size:var(--text-sm);font-weight:600}.skill-group p{margin:0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.65}.closing-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-8);align-items:center;padding:var(--space-12) 0}.closing-row h2{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:620;letter-spacing:-.025em}.closing-row p{margin:0;color:var(--ink-3)}.filter-bar{display:flex;gap:var(--space-6);overflow-x:auto;padding:var(--space-5) 0;border-bottom:1px solid var(--line-strong);scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-button{position:relative;flex:0 0 auto;min-height:2.25rem;padding:0;border:0;background:transparent;color:var(--ink-4);font-size:var(--text-sm);font-weight:550;cursor:pointer;transition:color var(--dur-fast) var(--ease-snap)}.filter-button:hover,.filter-button[aria-pressed=true]{color:var(--ink)}.filter-button[aria-pressed=true]:after{position:absolute;right:0;bottom:-1.3rem;left:0;height:2px;background:var(--accent);content:""}.project-list{counter-reset:project}.project-record{counter-increment:project;display:grid;grid-template-columns:4rem minmax(13rem,.54fr) minmax(20rem,1fr) minmax(12rem,.42fr);gap:var(--space-8);padding:var(--space-10) 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--nav-height) + var(--space-5))}.project-record:before{color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;content:counter(project,decimal-leading-zero)}.project-title-group h2{margin:0 0 var(--space-3);font-size:var(--text-xl);font-weight:600;letter-spacing:-.03em;line-height:1.18}.project-title-group .status-text{display:flex;width:fit-content}.project-body>p{margin:0 0 var(--space-5);color:var(--ink-2);font-size:var(--text-sm);line-height:1.72}.project-highlights{margin:0;padding:0;list-style:none}.project-highlights li{position:relative;padding-left:1rem;color:var(--ink-3);font-size:var(--text-sm);line-height:1.6}.project-highlights li:before{position:absolute;top:.69em;left:0;width:.3rem;height:1px;background:var(--line-strong);content:""}.project-highlights li+li{margin-top:var(--space-2)}.project-meta{display:flex;flex-direction:column;gap:var(--space-5)}.project-meta-block span:first-child{display:block;margin-bottom:var(--space-2);color:var(--ink-4);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.07em;text-transform:uppercase}.project-meta-block p{margin:0;color:var(--ink-2);font-size:var(--text-xs);line-height:1.65}.project-link{display:inline-flex;align-items:center;gap:var(--space-2);width:fit-content;color:var(--accent);font-size:var(--text-sm);font-weight:600}.ledger-item{display:grid;grid-template-columns:10rem minmax(16rem,.65fr) minmax(18rem,1fr) auto;gap:var(--space-8);align-items:start;padding:var(--space-8) 0;border-bottom:1px solid var(--line)}.ledger-item>p{margin:0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.65}.verification{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--success);font-family:var(--font-mono);font-size:.68rem}.verification.unverified{color:var(--ink-4)}.credential-action{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);white-space:nowrap}.writing-tools{display:grid;grid-template-columns:minmax(15rem,25rem) 1fr;gap:var(--space-8);align-items:center;padding:var(--space-6) 0;border-bottom:1px solid var(--line-strong)}.search-field{position:relative}.search-field svg{position:absolute;top:50%;left:var(--space-4);transform:translateY(-50%);color:var(--ink-4);pointer-events:none}.search-field input{width:100%;min-height:2.875rem;padding:.7rem var(--space-4) .7rem 2.75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--text-sm);transition:border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur-fast) var(--ease-snap)}.search-field input::placeholder{color:var(--ink-4)}.search-field input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.writing-filter{justify-self:end}.post-list{border-top:1px solid var(--line-strong)}.post-row{display:grid;grid-template-columns:9rem minmax(18rem,.75fr) minmax(20rem,1fr) auto;gap:var(--space-8);align-items:start;padding:var(--space-10) 0;border-bottom:1px solid var(--line)}.post-meta{color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.65}.post-row h2{margin:0 0 var(--space-3);font-size:var(--text-xl);font-weight:600;letter-spacing:-.03em;line-height:1.23}.post-row h2 a:hover{color:var(--accent)}.post-row p{margin:0;color:var(--ink-3);font-size:var(--text-sm);line-height:1.68}.empty-record{padding:var(--space-16) 0;text-align:left}.empty-record h2,.empty-record h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.empty-record p{margin:0 0 var(--space-5);color:var(--ink-3)}.article-shell{padding:clamp(4rem,8vw,7rem) 0 var(--space-20)}.article-header,.article-body{width:min(calc(100% - 3rem),52rem);margin-inline:auto}.article-back{margin-bottom:var(--space-12)}.article-header h1{margin:var(--space-5) 0 var(--space-6);font-size:clamp(2.5rem,2rem + 2vw,4rem);font-weight:620;letter-spacing:-.045em;line-height:1.04}.article-meta{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);padding-bottom:var(--space-8);border-bottom:1px solid var(--line-strong);color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem}.article-body{padding-top:var(--space-10)}.article-body h2,.article-body h3{margin:var(--space-12) 0 var(--space-4);color:var(--ink);font-weight:620;letter-spacing:-.025em}.article-body h2{font-size:var(--text-xl)}.article-body h3{font-size:var(--text-lg)}.article-body p,.article-body li{color:var(--ink-2);font-size:var(--text-md);line-height:1.82}.article-body p{margin:0 0 var(--space-6)}.article-body ul,.article-body ol{margin:0 0 var(--space-6);padding-left:var(--space-6)}.article-body a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:.2em}.article-body blockquote{margin:var(--space-8) 0;padding:var(--space-3) 0 var(--space-3) var(--space-6);border-left:2px solid var(--accent)}.article-body code,.article-body pre{font-family:var(--font-mono)}.article-body code{padding:.12rem .3rem;border-radius:var(--radius-sm);background:var(--paper-muted);font-size:.9em}.article-body pre{overflow-x:auto;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--neutral-9);color:var(--neutral-1)}.article-body pre code{padding:0;background:transparent}.article-footer{width:min(calc(100% - 3rem),52rem);margin:var(--space-12) auto 0;padding-top:var(--space-6);border-top:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:minmax(16rem,.7fr) minmax(24rem,1fr);gap:clamp(3rem,10vw,9rem)}.contact-copy h2,.contact-form h2{margin:0 0 var(--space-4);font-size:var(--text-xl);font-weight:620;letter-spacing:-.025em}.contact-copy>p{max-width:34rem;margin:0 0 var(--space-10);color:var(--ink-3);line-height:1.72}.contact-methods{border-top:1px solid var(--line-strong)}.contact-method{display:grid;grid-template-columns:2rem 7rem 1fr;gap:var(--space-4);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--line);color:var(--ink-3);font-size:var(--text-sm)}.contact-method svg{color:var(--accent)}.contact-method strong{color:var(--ink);font-weight:580}.contact-method a:hover{color:var(--accent)}.contact-form{padding-left:clamp(2rem,5vw,4rem);border-left:1px solid var(--line-strong)}.form-intro{margin:0 0 var(--space-8);color:var(--ink-3);font-size:var(--text-sm)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.field{margin-bottom:var(--space-5)}.field label{display:block;margin-bottom:var(--space-2);color:var(--ink-2);font-size:var(--text-sm);font-weight:550}.field input,.field textarea,.auth-field input{width:100%;min-height:3rem;padding:.75rem var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur-fast) var(--ease-snap)}.field textarea{min-height:9rem;resize:vertical}.field input::placeholder,.field textarea::placeholder,.auth-field input::placeholder{color:var(--ink-4)}.field input:focus,.field textarea:focus,.auth-field input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.field-error,.form-message.error,.auth-error{margin-top:var(--space-2);color:var(--danger);font-size:var(--text-xs)}.form-message{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-left:2px solid var(--success);background:var(--success-wash);color:var(--ink-2);font-size:var(--text-sm)}.form-message.error{border-color:var(--danger);background:color-mix(in oklab,var(--danger) 7%,var(--paper))}.library-page{min-height:78vh;padding:clamp(4rem,8vw,7rem) 0 var(--space-20);overflow-x:hidden}.library-header{display:grid;grid-template-columns:1fr minmax(18rem,.56fr);gap:var(--space-10);align-items:end;margin-bottom:var(--space-12)}.library-title{margin:var(--space-4) 0 0;font-family:var(--font-serif);font-size:clamp(3rem,2.4rem + 2.5vw,5rem);font-weight:560;letter-spacing:-.04em;line-height:1}.library-intro{margin:0;color:var(--ink-3);line-height:1.7}.library-shelf-zone{position:relative;padding-top:var(--space-5)}.library-shelf-scroll{overflow-x:auto;padding:var(--space-8) var(--space-6) 0;scrollbar-width:none}.library-shelf-scroll::-webkit-scrollbar{display:none}.library-shelf-books{width:max-content;min-width:min(100%,52rem);margin:0 auto;display:flex;align-items:flex-end;justify-content:center;gap:clamp(1.75rem,5vw,4rem);perspective:90rem}.library-book{--book-width: clamp(9rem, 16vw, 13rem);--book-thickness: clamp(1rem, 2vw, 1.55rem);position:relative;padding:0;border:0;background:none;cursor:pointer}.library-book:after{position:absolute;right:6%;bottom:-.8rem;left:6%;z-index:-1;height:1.1rem;transform:scaleX(.96);background:radial-gradient(closest-side,color-mix(in oklab,var(--ink) 36%,transparent),transparent);filter:blur(.25rem);content:"";transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.library-book-3d{position:relative;width:var(--book-width);display:block;transform:rotateY(-12deg);transform-style:preserve-3d;transition:transform .38s var(--ease-out)}.library-book:hover .library-book-3d,.library-book:focus-visible .library-book-3d{transform:rotateY(-4deg) translateY(-.65rem)}.library-book-3d:before{position:absolute;top:1.5%;left:0;width:var(--book-thickness);height:97%;transform:translate(calc(var(--book-width) - var(--book-thickness) / 2 - 2px)) rotateY(90deg);border-radius:0 2px 2px 0;background:repeating-linear-gradient(90deg,var(--neutral-2),var(--neutral-2) 2px,var(--neutral-3) 3px,var(--neutral-1) 5px);content:""}.library-book-3d:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;transform:translateZ(calc(-1 * var(--book-thickness) / 2));border-radius:4px;background:var(--neutral-9);box-shadow:-1rem .75rem 2.2rem color-mix(in oklab,var(--ink) 23%,transparent);content:""}.library-book-cover{width:var(--book-width);height:auto;display:block;transform:translateZ(calc(var(--book-thickness) / 2));border-radius:2px 4px 4px 2px}.library-book-gloss{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateZ(calc(var(--book-thickness) / 2 + 1px));border-radius:2px 4px 4px 2px;background:linear-gradient(90deg,color-mix(in oklab,black 18%,transparent),transparent 8%,transparent 92%,color-mix(in oklab,black 10%,transparent));pointer-events:none}.library-plank{width:min(58rem,calc(100% - 1rem));height:.8rem;margin:0 auto;border-radius:2px 2px 5px 5px;background:#402b17;box-shadow:0 1.3rem 2rem -.7rem color-mix(in oklab,var(--ink) 28%,transparent),inset 0 1px color-mix(in oklab,white 22%,transparent)}.library-controls{display:flex;justify-content:space-between;gap:var(--space-8);align-items:center;margin-top:var(--space-10)}.library-pills{display:flex;gap:var(--space-5);overflow-x:auto;scrollbar-width:none}.library-pills::-webkit-scrollbar{display:none}.library-pill{flex:0 0 auto;min-height:2.4rem;padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--ink-4);font-size:var(--text-sm);cursor:pointer}.library-pill:hover,.library-pill[aria-pressed=true]{color:var(--ink)}.library-pill[aria-pressed=true]{border-color:var(--accent)}.library-meta{flex:0 0 auto;margin:0;color:var(--ink-4);font-family:var(--font-mono);font-size:.68rem}.lib-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:color-mix(in oklab,var(--neutral-10) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.lib-modal-stage{position:relative}.lib-modal-close{position:absolute;top:-3.35rem;right:0;width:2.6rem;height:2.6rem;display:grid;place-items:center;padding:0;border:1px solid color-mix(in oklab,white 28%,transparent);border-radius:50%;background:color-mix(in oklab,white 8%,transparent);color:#fff;cursor:pointer}.lib-modal-perspective{perspective:100rem}.lib-flipper{position:relative;width:min(86vw,calc(min(77vh,36.5rem)*.667));aspect-ratio:2 / 3;transform-style:preserve-3d;cursor:pointer}.lib-face{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:var(--radius-sm);box-shadow:0 2rem 4.5rem -1.1rem color-mix(in oklab,black 78%,transparent);backface-visibility:hidden;-webkit-backface-visibility:hidden}.lib-face-front img{width:100%;height:100%;display:block;object-fit:cover}.lib-face-sheen{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 38%,color-mix(in oklab,white 10%,transparent) 46%,transparent 55%);pointer-events:none}.lib-face-back{transform:rotateY(180deg);background:linear-gradient(165deg,#faf1df,#e9dcc4);color:#23180e}.lib-back-scroll{height:100%;display:flex;flex-direction:column;overflow-y:auto;padding:clamp(1.1rem,4vw,1.7rem)}.lib-back-genre,.lib-back-author-label,.lib-back-meta,.lib-barcode-isbn{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}.lib-back-genre{margin:0 0 var(--space-3);color:#624b31}.lib-back-tagline{margin:0 0 var(--space-3);font-family:var(--font-serif);font-size:clamp(1rem,3vw,1.18rem);font-style:italic;font-weight:600;line-height:1.36}.lib-back-p{margin:0 0 var(--space-3);color:#392e23;font-size:.82rem;line-height:1.5}.lib-back-author{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid color-mix(in oklab,black 18%,transparent)}.lib-back-author-label{margin:0 0 var(--space-2);color:#624b31}.lib-back-author-text{margin:0;color:#392e23;font-size:.76rem;line-height:1.5}.lib-back-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-top:auto;padding-top:var(--space-4)}.lib-barcode{display:inline-flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid color-mix(in oklab,black 10%,transparent);background:#fff}.lib-barcode-stripes{width:5.6rem;height:1.5rem;background:repeating-linear-gradient(90deg,black 0 1px,transparent 1px 3px,black 3px 6px,transparent 6px 7px)}.lib-back-meta{margin:0;color:#594d41;line-height:1.5;text-align:right}.lib-modal-hint{margin:var(--space-4) 0 0;color:color-mix(in oklab,white 55%,transparent);font-size:var(--text-xs);text-align:center}.auth-page,.not-found-page{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:var(--paper)}.auth-panel{width:min(100%,27rem);padding:var(--space-10);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.auth-brand{display:inline-flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-10);font-size:var(--text-sm);font-weight:650}.auth-panel h1{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:620;letter-spacing:-.03em}.auth-subtitle{margin:0 0 var(--space-8);color:var(--ink-3);font-size:var(--text-sm)}.auth-field{position:relative;margin-bottom:var(--space-4)}.auth-field>svg{position:absolute;top:.95rem;left:var(--space-3);color:var(--ink-4)}.auth-field input{padding-left:2.65rem}.password-toggle{position:absolute;top:.42rem;right:var(--space-2);width:2.2rem;height:2.2rem;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--ink-4);cursor:pointer}.auth-submit{width:100%;margin-top:var(--space-3)}.auth-back{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-6);color:var(--ink-3);font-size:var(--text-sm)}.auth-back:hover{color:var(--accent)}.not-found-content{width:min(100%,42rem)}.not-found-code{margin:0 0 var(--space-6);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm)}.not-found-content h1{margin:0 0 var(--space-4);font-size:var(--text-2xl);font-weight:620;letter-spacing:-.04em}.not-found-content p{max-width:34rem;margin:0 0 var(--space-8);color:var(--ink-3);font-size:var(--text-md)}.not-found-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}@media (max-width: 72rem){.desktop-nav{gap:1.05rem}.nav-link,.nav-project-trigger,.private-link{font-size:.78rem}.work-row{grid-template-columns:3rem minmax(13rem,.75fr) minmax(17rem,1fr) auto;gap:var(--space-5)}.project-record{grid-template-columns:3rem minmax(12rem,.5fr) minmax(18rem,1fr)}.project-meta{grid-column:3;flex-direction:row;flex-wrap:wrap}.ledger-item{grid-template-columns:8rem minmax(15rem,.6fr) 1fr}.credential-action{grid-column:2}}@media (max-width: 58rem){.desktop-nav{display:none}.mobile-menu-button{display:inline-flex}.home-hero-grid,.page-intro-grid,.about-story,.about-two-column,.contact-grid,.library-header{grid-template-columns:1fr}.home-hero-grid{align-items:start}.portrait-frame{width:min(100%,24rem)}.story-aside{position:static;width:min(100%,24rem)}.timeline-item{grid-template-columns:7rem minmax(13rem,.65fr) 1fr;gap:var(--space-5)}.proof-grid{grid-template-columns:1fr}.proof-item{min-height:0;padding:var(--space-6) 0}.proof-item+.proof-item{padding-left:0;border-top:1px solid var(--line);border-left:0}.work-row{grid-template-columns:2.5rem minmax(0,1fr) auto}.work-row>p{grid-column:2 / -1}.project-record{grid-template-columns:2.5rem minmax(0,1fr)}.project-body,.project-meta{grid-column:2}.ledger-item{grid-template-columns:7rem 1fr}.ledger-item>p,.credential-action{grid-column:2}.post-row{grid-template-columns:7rem 1fr auto}.post-row>p{grid-column:2 / -1}.writing-tools{grid-template-columns:1fr}.writing-filter{justify-self:start}.contact-form{padding:var(--space-10) 0 0;border-top:1px solid var(--line-strong);border-left:0}.footer-main{grid-template-columns:1fr}.footer-links{grid-template-columns:repeat(3,1fr)}}@media (max-width: 40rem){:root{--nav-height: 4rem}body:before{background-size:3.5rem 3.5rem}.site-container,.nav-inner,.footer-main,.footer-bottom,.article-header,.article-body,.article-footer{width:min(calc(100% - 2rem),var(--container))}.wordmark-mark{width:1.65rem;height:1.65rem}.home-hero{padding-top:var(--space-12)}.home-title{font-size:clamp(3rem,16vw,4.25rem)}.home-role{font-size:1.2rem}.home-summary{font-size:var(--text-base)}.portrait-frame{width:min(72vw,18rem)}.work-row{grid-template-columns:2rem minmax(0,1fr) auto;min-height:0;padding:var(--space-6) 0;gap:var(--space-4)}.work-row>p{grid-column:1 / -1;padding-left:3rem}.section-heading-row{align-items:flex-start}.page-intro{padding-top:var(--space-16)}.page-intro-copy{font-size:var(--text-md)}.record-section{padding:var(--space-16) 0}.timeline-item{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-6) 0}.skill-group{grid-template-columns:1fr;gap:var(--space-2)}.closing-row{grid-template-columns:1fr}.project-record{grid-template-columns:1.5rem minmax(0,1fr);gap:var(--space-4);padding:var(--space-8) 0}.project-body,.project-meta{grid-column:1 / -1;padding-left:3.15rem}.project-meta{flex-direction:column}.ledger-item,.post-row{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-6) 0}.ledger-item>p,.credential-action,.post-row>p{grid-column:1}.post-row .arrow-link{margin-top:var(--space-2)}.form-row{grid-template-columns:1fr;gap:0}.contact-method{grid-template-columns:1.75rem 5rem minmax(0,1fr);gap:var(--space-3)}.contact-method a{overflow-wrap:anywhere}.library-shelf-scroll{padding-inline:var(--space-5)}.library-shelf-books{min-width:max-content;justify-content:flex-start;gap:var(--space-6)}.library-book{--book-width: 8.25rem;--book-thickness: .95rem}.library-controls{flex-direction:column;align-items:stretch}.library-meta{order:-1}.footer-links{grid-template-columns:repeat(2,1fr)}.footer-bottom{flex-direction:column}.auth-panel{padding:var(--space-8) var(--space-6)}}.route-loading{min-height:100vh;display:grid;place-items:center;padding:var(--space-8);color:var(--ink-3);background:var(--paper);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.library-book-3d,.library-book:hover .library-book-3d,.library-book:focus-visible .library-book-3d{transform:rotateY(-8deg)}}
