:root{--color-bg: #5f646b;--color-surface: #343943;--color-surface-2: #2b3038;--color-surface-3: #1f242c;--color-panel: #cfd3db;--color-panel-2: #b9bec8;--color-panel-3: #a7adb8;--ink-strong: #f3f5f8;--ink: #d7dbe3;--ink-muted: #a7afbd;--ink-subtle: #8d96a5;--text-strong: #11151b;--text-primary: #232933;--text-secondary: #505867;--text-tertiary: #70798a;--color-accent: #a9df72;--color-accent-hover: #98cf61;--color-accent-pressed: #87bd52;--color-accent-secondary: #7f8eae;--color-border: #4a515d;--color-border-strong: #646c79;--color-border-light: #a7adb8;--color-success: #a9df72;--color-focus: #c7ef9a;--color-selection: #a9df72;--shadow-soft: 0 10px 30px rgb(0 0 0 / .18);--shadow-card: 0 6px 16px rgb(0 0 0 / .16);--radius: .375rem;--radius-card: .25rem;--radius-control: .5rem;--focus-ring: 2px solid var(--color-accent);--focus-ring-offset: 2px;--font-sans: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-mono: ui-monospace, monospace;--max-width: 72rem;--space-unit: .25rem;--space-0: calc(var(--space-unit) * 1);--space-1: calc(var(--space-unit) * 2);--space-1-5: calc(var(--space-unit) * 3);--space-2: calc(var(--space-unit) * 4);--space-2-5: calc(var(--space-unit) * 5);--space-3: calc(var(--space-unit) * 6);--space-3-5: calc(var(--space-unit) * 7);--space-4: calc(var(--space-unit) * 8);--space-5: calc(var(--space-unit) * 12);--page-gutter: var(--space-2)}@media(min-width:48rem){:root{--page-gutter: var(--space-3)}}*,*:before,*:after{box-sizing:border-box}html{font-size:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:.875rem;font-weight:400;line-height:1.6;color:var(--ink);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}:focus{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:0;left:0;z-index:100;padding:var(--space-1) var(--space-2);background:var(--color-surface);color:var(--ink);font-weight:600;text-decoration:none;transform:translateY(-100%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}img{max-width:100%;height:auto;display:block}.section{margin-top:var(--space-5)}.section:first-child{margin-top:0}.section:last-child{margin-bottom:var(--space-5)}.section :is(h1,h2,h3){margin:0 0 var(--space-3)}.section h2{font-size:1.125rem;font-weight:600;line-height:1.4}.section__header{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.section__header:has(.section__title-action){justify-content:space-between}.section>:is(h1,h2,h3){margin:0 0 var(--space-3)}.section__header :is(h1,h2,h3){margin:0}.section__header :is(h2){color:var(--text-strong)}.section__title-action{font-size:.875rem;font-weight:400}.section p{margin:0 0 var(--space-2)}.section ul{margin:0;padding-left:1.25rem}.section li{margin-bottom:var(--space-1)}.section li:last-child,.pillars li:last-child{margin-bottom:0}.section :is(p,ul):last-child{margin-bottom:0}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell__main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding-inline:var(--page-gutter);padding-block:0}@media(max-width:48rem){.section:first-child{margin-top:var(--space-4)}}.project-card{position:relative;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.project-card:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:transparent;pointer-events:none}.project-card:has(.project-card__trigger:hover):before,.project-card:has(.project-card__trigger:focus-visible):before,.project-card--expanded:before{background:var(--color-accent)}.project-card--accordion{padding:0;overflow:hidden}.project-card__trigger{display:block;width:100%;padding:var(--space-2) var(--space-3);text-align:left;font:inherit;color:inherit;background:var(--color-surface);border:0;cursor:pointer}.project-card__trigger:hover{box-shadow:inset 0 0 0 1px var(--color-border-strong)}.project-card__trigger:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.project-card--expanded:before{background:var(--color-accent)}.project-card--expanded .project-card__trigger{border-bottom:1px solid var(--color-border)}.project-card__summary-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.project-card__summary-heading{min-width:0;flex:1}.project-card__summary-header .project-card__title{font-size:1.25rem;font-weight:600;line-height:1.3;letter-spacing:-.005em;margin-bottom:var(--space-1-5)}.project-card--expanded .project-card__title{color:var(--ink-strong)}.project-card__trigger .project-card__framing{margin:0 0 var(--space-1);max-width:62ch;font-size:.875rem;font-weight:400;line-height:1.6}.project-card__section p{font-size:.875rem;font-weight:400;line-height:1.6}.project-card__result{font-size:.875rem;font-weight:500;line-height:1.6}.project-card__resultSummary{margin:0;font-size:.875rem;font-weight:500;line-height:1.6;color:var(--ink-muted)}.project-card__share{flex-shrink:0;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:2rem;width:auto;padding:var(--space-0) var(--space-1-5);background:transparent;border:1px solid var(--color-border);color:var(--ink-muted);font-size:.875rem;font-weight:400;line-height:1.5;text-decoration:none;white-space:nowrap;transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out}.project-card__share:hover{border-color:var(--color-border-strong);color:var(--ink-strong)}.project-card__share:active{background:var(--color-surface-2)}.project-card__share-inner{display:inline-flex;align-items:center;gap:var(--space-0)}.project-card__share-inner svg{width:14px;height:14px}.project-card__panel{border-top:1px solid var(--color-border);color:var(--text-primary)}.project-card__panel[hidden]{display:none}.project-card__panel-inner{padding:var(--space-2);color:var(--text-primary);background:var(--color-panel)}.project-card__panel-header,.project-card__panel-header-main,.project-card__panel-demo{min-width:0}.project-card__panel-header{padding:var(--space-2);background:var(--color-surface-2);color:var(--ink);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.project-card__panel-demo--hero{margin-top:var(--space-2);padding:0;background:transparent;border:0}.project-card__panel .project-card__panel-heading{margin:0 0 var(--space-1-5);color:var(--text-primary);font-size:.75rem;font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase}.project-card__subheading{margin:0 0 var(--space-0);color:var(--text-secondary);font-size:.75rem;font-weight:600;line-height:1.4;letter-spacing:.04em;text-transform:none}.project-card__demo-actions{display:flex;flex-direction:column;gap:var(--space-2-5)}.project-card__demo-left{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.project-card__demo-secondary{display:flex;flex-direction:column;gap:var(--space-1)}.project-card__demo-secondary a{color:var(--ink-muted);text-decoration:underline;text-underline-offset:.18em}.project-card__demo-secondary a:hover{color:var(--ink)}.project-card__demo-primary{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;width:auto;flex-shrink:0;padding:var(--space-1) var(--space-2);background:var(--color-accent);color:var(--text-strong);border:1px solid transparent;font-size:.875rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out}.project-card__demo-primary:hover{background:var(--color-accent-hover)}.project-card__demo-primary:active{background:var(--color-accent-pressed)}.project-card__reference{width:100%}.project-card__reference-caption,.project-card figcaption,.project-card__visual-caption,.project-card__section ul{font-size:.875rem;font-weight:400;line-height:1.5;color:var(--text-secondary)}.project-card__reference-caption{color:var(--ink-muted)}.project-card__reference-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}.project-card__reference-grid:has(>:nth-child(2)){grid-template-columns:1fr 1fr}.project-card__reference figure,.project-card__approach-figure{margin:0}.project-card__reference img,.project-card__visual-image{display:block;width:100%;height:auto;border:1px solid var(--color-border)}.project-card__visual-image{background:var(--color-surface)}.project-card__system-visual{margin:.75rem 0 1.5rem;width:100%;max-width:100%;min-width:0}.project-card__system-visual svg{display:block;width:100%;max-width:100%;height:auto}.project-card__system-visual figcaption{margin-top:.15rem;padding:0 1.5rem;color:var(--ink-muted);font-size:.875rem;line-height:1.4}.project-card__approach-figure figcaption{margin-top:var(--space-0)}#project-panel-fabric-svg-system .project-card__intro-row{margin-top:var(--space-3)}.project-card__intro-text .project-card__panel-heading{color:var(--ink);margin:0 0 var(--space-1-5)}.project-card__intro-row figure,.project-card__intro-row figure svg{display:block;width:100%;max-width:100%;height:auto}.project-card__section{margin-bottom:var(--space-3-5)}.project-card__section:last-child{margin-bottom:0}.project-card__approach-sections{display:grid;gap:var(--space-3)}.project-card__approach-section{min-width:0}.project-card__approach-section--with-image{display:grid;gap:var(--space-2-5);align-items:center}.project-card__approach-section--with-image p{max-width:60ch}.project-card__section ul{list-style:none;margin:0;padding:0;font-size:.875rem;font-weight:400;line-height:1.6}.project-card__section li{position:relative;margin-bottom:var(--space-0);padding-left:1rem}.project-card__section li:last-child{margin-bottom:0}.project-card__section li:before{content:"·";position:absolute;top:.05em;left:0;color:var(--text-tertiary)}.project-card__section--result{margin-left:var(--space-1);padding-left:var(--space-2);border-left:2px solid var(--ink-strong);margin-bottom:var(--space-2)}.project-card__section--reflection p{color:var(--text-tertiary)}.project-card__section--ownership{margin-top:var(--space-3-5);margin-bottom:var(--space-5)}@media(min-width:56rem){.project-card__panel-demo--hero{margin-top:0}.project-card__demo-actions{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--space-4);align-items:start}.project-card__demo-left{flex-wrap:nowrap}.project-card__reference{width:auto}.project-card__reference p{text-align:center}.project-card__approach-section--with-image{grid-template-columns:minmax(0,1fr) 18rem;gap:var(--space-3)}.project-card__visual-image:hover,.project-card__reference-grid img:hover{position:relative;z-index:5}.project-card__visual-image:hover{transform:scale(2.25)}.project-card__reference-grid img:hover{transform:scale(1.5)}}.hero{padding:var(--space-4);margin-top:var(--space-3);margin-bottom:var(--space-5);background:var(--color-surface-2);border-radius:var(--radius-card)}h1{margin:0 0 var(--space-1);font-size:1.875rem;font-weight:650;line-height:1.1;color:var(--ink-strong)}.home-hero__role{color:var(--ink-muted);font-size:1.125rem;line-height:1.1;font-weight:400;margin:0 0 var(--space-2);margin-left:.35rem;text-wrap:balance;opacity:.9}.home-hero__statement{margin-top:var(--space-2);margin-bottom:var(--space-2);font-size:1.125rem;line-height:1.5;color:var(--ink-strong);max-width:48ch;text-wrap:pretty}.home-hero__meta{color:var(--ink-subtle);font-size:.875rem;font-weight:400;line-height:1.5;letter-spacing:.02em;margin:0;text-wrap:balance}.list-emphasis{font-size:.8125rem;font-weight:400;line-height:1.6}.pillars{list-style:none;margin:0;padding:0;font-size:.8125rem;font-weight:400;line-height:1.6}.pillars li{margin-bottom:var(--space-2);padding-left:0}.pillars li span{color:var(--ink-strong)}.work-expand-toggle{color:var(--ink-muted);background:transparent;padding:var(--space-1);font:inherit;background:none;border:1px solid transparent;cursor:pointer;text-decoration:none}.work-expand-toggle:hover{color:var(--ink);border-color:var(--color-border)}.expand-all:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-focus)}.project-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);font-weight:400;line-height:1.6}.resume-intro{margin:0 0 var(--space-4)}.resume-intro a:hover,.contact-links a:hover{color:var(--ink-strong)}
