:root{color-scheme:dark;--bg-canvas: #0b0b0b;--bg-main: #0b0b0b;--bg-sidebar: #0b0b0b;--bg-sidebar-hover: #202020;--bg-sidebar-active: #262626;--bg-card: #171717;--bg-input: #171717;--border-subtle: rgba(255, 255, 255, .1);--border-input: rgba(255, 255, 255, .18);--border-hover: rgba(255, 255, 255, .32);--text-main: #f5f5f5;--text-secondary: #ababab;--text-muted: #686868;--user-avatar-bg: #f5f5f5;--accent-color: #f5f5f5;--danger-color: #ef4444;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root{--accent-text: #ffffff;--highlight: #4ade80;--highlight-soft: rgba(74, 222, 128, .14);--on-highlight: #0b0b0b;--on-accent: #0b0b0b;--focus-ring: #ffffff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--radius-control: 12px;--radius-bento: 48px;--space-20: 80px;--space-24: 96px;--border-width: 1px;--touch-min: 44px;--weight-medium: 500;--weight-bold: 600;--text-label: .75rem;--text-heading: clamp(1.5rem, 3vw, 2rem);--text-hero: clamp(2.25rem, 4.5vw, 3.75rem);--radius-card: 24px;--radius-pill: 999px;--text-small: .875rem;--text-body: 1rem;--line-height-body: 1.6;--content-max: 1200px;--reading-max: 65ch;--motion-fast: .16s;--motion-normal: .26s;--motion-slow: .52s;--ease-out: cubic-bezier(.22, 1, .36, 1)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-normal: 0ms;--motion-slow: 0ms}}:root[data-theme=light]{color-scheme:light;--bg-canvas: #fafafa;--bg-main: #fafafa;--bg-sidebar: #fafafa;--bg-sidebar-hover: #eeeeee;--bg-sidebar-active: #e8e8e8;--bg-card: #ffffff;--bg-input: #ffffff;--border-subtle: rgba(0, 0, 0, .12);--border-input: rgba(0, 0, 0, .22);--border-hover: rgba(0, 0, 0, .4);--text-main: #171717;--text-secondary: #595959;--text-muted: #777777;--accent-color: #171717;--accent-text: #0b0b0b;--on-accent: #ffffff;--highlight: #16713a;--highlight-soft: rgba(22, 113, 58, .08);--on-highlight: #ffffff;--focus-ring: #171717}:root{--reading-text: 1.0625rem;--reading-leading: 1.95;--story-max: 1080px}*{box-sizing:border-box}html{scroll-behavior:auto}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--motion-normal);animation-timing-function:var(--ease-out)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}body{margin:0;background:var(--bg-canvas);color:var(--text-main);font-family:var(--font-family);font-size:var(--text-body);line-height:var(--line-height-body);-webkit-font-smoothing:antialiased}::selection{background:var(--highlight);color:var(--on-highlight)}a{color:inherit;text-decoration:none;transition:color var(--motion-fast) var(--ease-out),background-color var(--motion-normal) var(--ease-out),border-color var(--motion-normal) var(--ease-out),translate var(--motion-normal) var(--ease-out)}a svg{transition:translate var(--motion-normal) var(--ease-out)}a:hover svg{translate:3px 0}.header-socials a:hover svg{translate:none}a:hover{color:var(--accent-text)}a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:5px}main:focus{outline:none}img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:var(--weight-bold)}h1{font-size:var(--text-hero);line-height:1.4;letter-spacing:-.04em}h2{font-size:var(--text-heading);line-height:1.5;letter-spacing:-.025em}h3{font-size:1.125rem;line-height:1.6}p{overflow-wrap:anywhere}ul{padding-left:var(--space-6)}.container{width:min(calc(100% - var(--space-12)),var(--content-max));margin-inline:auto}.site-header{display:grid;grid-template-columns:220px 1fr 180px;gap:var(--space-6);padding-block:var(--space-4);align-items:stretch}.brand{display:flex;align-items:center;justify-content:center;min-height:68px;border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-control);font-size:2rem;font-weight:800;letter-spacing:-.075em}.brand span{margin-left:var(--space-1)}nav{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:var(--space-2);align-items:center;justify-content:center;background:var(--bg-card);padding:var(--space-2);border-radius:var(--radius-control)}nav a{grid-row:1;position:relative;z-index:1;display:inline-flex;align-items:center;min-height:var(--touch-min);padding-inline:var(--space-4);font-size:var(--text-small);color:var(--text-secondary);border-radius:var(--radius-control)}nav a[aria-current=page],nav a:hover,nav a:focus-visible{color:var(--text-main)}.nav-indicator{grid-row:1;align-self:center;height:var(--touch-min);background:var(--bg-sidebar-active);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-control);box-shadow:inset 0 -2px 0 var(--highlight);pointer-events:none}.nav-indicator[data-empty]{opacity:0}.js-indicator .nav-indicator{position:absolute;grid-row:auto;top:0;left:0;transition:opacity var(--motion-normal) var(--ease-out)}.header-socials{display:flex;justify-content:center;align-items:center;gap:var(--space-2);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-control)}.header-socials a{display:flex;align-items:center;justify-content:center;min-height:var(--touch-min);min-width:var(--touch-min);color:var(--text-secondary);border-radius:var(--radius-control);transition:color var(--motion-fast),background-color var(--motion-fast)}.header-socials a:hover{color:var(--text-main);background:var(--bg-sidebar-hover)}.eyebrow{font-size:var(--text-label);letter-spacing:.1em;font-weight:var(--weight-medium);color:var(--text-secondary);line-height:1.8}.hero{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:var(--space-12);align-items:center;padding-block:var(--space-8) var(--space-24)}.profile-bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,145px);gap:var(--space-2)}.profile-bento>*{min-width:0;background:var(--bg-card);border:var(--border-width) solid var(--border-subtle)}.profile-bento a{transition:background-color var(--motion-normal) var(--ease-out),border-color var(--motion-normal) var(--ease-out)}.profile-bento a:hover{background:var(--bg-sidebar-hover);border-color:var(--border-hover)}.profile-bento>*{animation:rise var(--motion-slow) var(--ease-out) both}.profile-bento>:nth-child(2){animation-delay:40ms}.profile-bento>:nth-child(3){animation-delay:80ms}.profile-bento>:nth-child(4){animation-delay:.12s}.profile-bento>:nth-child(5){animation-delay:.16s}.profile-bento>:nth-child(6){animation-delay:.2s}.profile-bento>:nth-child(7){animation-delay:.24s}.profile-bento>:nth-child(8){animation-delay:.28s}.hero-copy>*{animation:rise var(--motion-slow) var(--ease-out) both;animation-delay:.12s}.hero-copy>:nth-child(2){animation-delay:.18s}.hero-copy>:nth-child(n+3){animation-delay:.24s}.page-intro,.case-study,.about-intro{animation:rise var(--motion-slow) var(--ease-out) both}.bento-contact>span:first-child,.circle-arrow,.bento-social>span:last-child{transition:scale var(--motion-normal) var(--ease-out),rotate var(--motion-normal) var(--ease-out),translate var(--motion-normal) var(--ease-out)}.bento-contact:hover>span:first-child{scale:1.04}.bento-projects:hover .circle-arrow{rotate:45deg}.bento-social:hover>span:last-child,.bento-award:hover>span:last-child{translate:2px -2px}.bento-contact{grid-row:1 / 3;border-radius:var(--radius-bento) 0 var(--radius-bento) var(--radius-bento);display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-2) var(--space-2) var(--space-6);text-align:center}.bento-contact>span:first-child{width:100%;aspect-ratio:1;border-radius:var(--radius-pill);background:var(--accent-color);color:var(--on-accent);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-small);font-weight:var(--weight-bold)}.tile-caption{color:var(--text-secondary);font-size:var(--text-label)}.bento-role{border-radius:var(--radius-bento) var(--radius-bento) var(--radius-control) var(--radius-bento);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3)}.bento-role strong{font-size:3rem;line-height:1.15}.bento-role>span{color:var(--text-secondary);font-size:var(--text-label);line-height:1.4;margin-top:var(--space-1)}.profile-bento .bento-portrait{width:100%;height:100%;object-fit:cover;object-position:50% 35%;border-radius:var(--radius-bento) var(--radius-bento) var(--radius-bento) 0}.bento-build{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:var(--radius-bento) 0 var(--radius-bento) var(--radius-bento);font-size:1.625rem;font-weight:800;letter-spacing:-.04em;line-height:1.2}.bento-build span:nth-child(2){color:var(--text-secondary)}.bento-award{grid-column:3;grid-row:2 / 4;display:flex;flex-direction:column;justify-content:space-between;border-radius:0 var(--radius-bento) var(--radius-bento) 0;padding:var(--space-6) var(--space-4)}.bento-award .eyebrow{font-size:var(--text-label)}.bento-award strong{font-size:2.75rem;letter-spacing:-.05em;line-height:1.05;color:var(--highlight)}.bento-award>span:last-child{font-size:var(--text-label);color:var(--text-secondary)}.bento-projects{grid-column:1 / 3;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2);border-radius:var(--radius-bento) 0 0 var(--radius-bento)}.circle-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:100%;aspect-ratio:1;background:var(--accent-color);color:var(--on-accent);border-radius:var(--radius-pill);font-size:3rem;font-weight:400}.bento-projects>span:last-child{font-size:var(--text-label);font-weight:var(--weight-bold);letter-spacing:.02em}.bento-projects small{display:block;color:var(--text-secondary);font-size:var(--text-label);font-weight:400;margin-top:var(--space-2)}.bento-social{grid-row:4;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-6);font-weight:var(--weight-medium);border-radius:var(--radius-bento) 0 var(--radius-bento) var(--radius-bento)}.bento-social:last-child{grid-column:2 / 4;border-radius:0 var(--radius-bento) var(--radius-bento) var(--radius-bento)}.hero-greeting{font-size:1.25rem;margin-bottom:var(--space-4)}.hero-greeting>span{font-weight:var(--weight-bold);border-bottom:2px solid var(--highlight)}.highlight{color:var(--highlight)}.hero h1{font-size:var(--text-hero);line-height:1.08;letter-spacing:-.055em}.hero-secondary{color:var(--text-secondary)}.hero-name{margin-top:var(--space-6);font-size:var(--text-small);font-weight:var(--weight-medium)}.hero-description{color:var(--text-secondary);margin-top:var(--space-3);line-height:1.85;max-width:var(--reading-max)}.hero-actions{margin-top:var(--space-6);border-top:var(--border-width) solid var(--border-subtle);padding-top:var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.hero-actions .eyebrow{font-size:var(--text-label)}.button,.text-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:var(--touch-min);font-size:var(--text-small);font-weight:var(--weight-medium)}.button{padding:var(--space-3) var(--space-6);border:var(--border-width) solid var(--border-hover);border-radius:var(--radius-control)}.primary{background:var(--accent-color);color:var(--on-accent)}.primary:hover{background:var(--text-secondary);color:var(--on-accent)}.secondary{background:transparent}.secondary:hover{background:var(--bg-card)}.section{padding-block:var(--space-12) var(--space-20);border-top:var(--border-width) solid var(--border-subtle)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-6);margin-bottom:var(--space-8);flex-wrap:wrap}.section-heading h2{margin-top:var(--space-2)}.section-heading p:not(.eyebrow){color:var(--text-secondary);font-size:var(--text-small);margin-top:var(--space-2)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.project-card{position:relative;display:flex;flex-direction:column;background:var(--bg-card);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6)}.project-card{transition:border-color var(--motion-normal) var(--ease-out),translate var(--motion-normal) var(--ease-out),background-color var(--motion-normal) var(--ease-out)}.project-card:hover{border-color:var(--border-hover);translate:0 -4px;background:var(--bg-sidebar-hover)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.card-top .eyebrow,.project-number{font-size:var(--text-label)}.project-number{color:var(--text-secondary)}.project-symbol{height:112px;display:flex;align-items:center;font-size:3rem;letter-spacing:-.08em;font-weight:var(--weight-medium);color:var(--text-main)}.project-card h3 a{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);min-height:var(--touch-min);font-size:1.25rem;letter-spacing:-.02em}.project-card h3 a:after{content:"";position:absolute;inset:0;border-radius:var(--radius-card)}.project-card:focus-within{outline:2px solid var(--focus-ring);outline-offset:4px}.card-summary{color:var(--text-secondary);font-size:var(--text-small);line-height:1.85;margin-block:var(--space-2) var(--space-6)}.award{width:fit-content;color:var(--highlight);background:var(--highlight-soft);font-size:var(--text-label);line-height:1.8;padding-inline:var(--space-2);border-radius:var(--space-1)}.project-card .award{margin-bottom:var(--space-2)}.tags{list-style:none;display:flex;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0}.project-card .tags{margin-top:auto;padding-top:var(--space-2)}.tags li{color:var(--text-secondary);font-size:var(--text-label);padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--border-input);border-radius:var(--space-1)}.experience-row{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,.7fr);gap:var(--space-6);padding-block:var(--space-6);border-top:var(--border-width) solid var(--border-subtle)}.experience-period{font-size:var(--text-small);color:var(--text-secondary);padding-top:var(--space-1)}.experience-row p{font-size:var(--text-small);color:var(--text-secondary);margin-top:var(--space-1)}.site-footer{border-top:var(--border-width) solid var(--border-input);padding-block:var(--space-12) var(--space-6);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-8)}.site-footer h2{font-size:1.5rem;margin-top:var(--space-3)}.site-footer p:not(.eyebrow){font-size:var(--text-small);color:var(--text-secondary);margin-top:var(--space-2)}.contact-links{display:flex;gap:var(--space-6);align-items:center;flex-wrap:wrap}.contact-links a{display:inline-flex;gap:var(--space-3);align-items:center;min-height:var(--touch-min);font-size:var(--text-small)}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);border-top:var(--border-width) solid var(--border-subtle);padding-top:var(--space-6);color:var(--text-secondary);font-size:var(--text-label)}.page-intro{padding-block:var(--space-16) var(--space-12)}.page-intro h1{margin-block:var(--space-4)}.page-intro>p:last-child{color:var(--text-secondary);line-height:1.85}.projects-list{margin-bottom:var(--space-24)}.case-study{max-width:820px;margin-inline:auto;padding-block:var(--space-12) var(--space-16)}.back-link{display:inline-flex;align-items:center;min-height:var(--touch-min);font-size:var(--text-small);color:var(--text-secondary)}.case-header{margin-top:var(--space-8)}.case-header h1{margin-block:var(--space-3) var(--space-4)}.lead{font-size:1.25rem;line-height:1.85;color:var(--text-secondary)}.case-header .award{margin-top:var(--space-4);font-size:var(--text-small)}.case-meta{margin-block:var(--space-8);padding-block:var(--space-6);border-block:var(--border-width) solid var(--border-input);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.case-meta p,.case-meta ul{margin-top:var(--space-3)}.case-image{max-width:600px;margin:var(--space-8) auto var(--space-12)}.case-image img{width:100%;border-radius:var(--radius-card)}figcaption{font-size:var(--text-label);color:var(--text-secondary);margin-top:var(--space-3)}.prose{max-width:var(--reading-max)}.prose h2{font-size:1.5rem;margin-block:var(--space-8) var(--space-4)}.prose h3{margin-block:var(--space-6) var(--space-3)}.prose p,.prose ul{margin-block:var(--space-4);line-height:1.9}.prose li+li{margin-top:var(--space-2)}.prose a{text-decoration:underline;text-decoration-color:var(--highlight);text-underline-offset:4px}.prose strong{color:var(--highlight)}.prose pre{overflow:auto;padding:var(--space-4);border-radius:var(--radius-control)}.prose img{border-radius:var(--radius-control)}.project-links{margin-top:var(--space-8)}.about-intro{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-16);padding-block:var(--space-16);align-items:start}.about-intro h1{font-size:var(--text-heading);margin-block:var(--space-4) var(--space-6)}.heading-sub{display:block;font-size:1.25rem;font-weight:400;color:var(--text-secondary);letter-spacing:0;margin-top:var(--space-2)}.about-intro p:not(.eyebrow){margin-top:var(--space-4);line-height:1.9}.about-intro p:not(.eyebrow):not(.lead){color:var(--text-secondary)}.portrait img{border-radius:var(--radius-bento);width:100%}.about-highlight p:not(.eyebrow){max-width:var(--reading-max);color:var(--text-secondary);margin-block:var(--space-4)}.post-row{padding-block:var(--space-6);border-top:var(--border-width) solid var(--border-subtle)}.post-row a{display:inline-flex;align-items:center;min-height:var(--touch-min)}.post-row p,.post-row time{color:var(--text-secondary)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@supports (animation-timeline: view()){.section-heading,.project-card,.experience-row,.post-row,.about-highlight,.site-footer>div{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 60%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.project-card:hover{translate:none}}.skip-link{position:absolute;left:var(--space-4);top:-100px;background:var(--accent-color);color:var(--on-accent);padding:var(--space-3);z-index:10}.skip-link:focus{top:var(--space-4)}@media(max-width:1050px){.site-header{grid-template-columns:160px 1fr 140px;gap:var(--space-3)}.hero{gap:var(--space-8)}.profile-bento{grid-template-rows:repeat(4,120px)}.bento-projects{gap:var(--space-2)}.bento-projects>span:last-child,.bento-projects small{font-size:var(--text-label)}.bento-social{padding:var(--space-4);font-size:var(--text-small)}.bento-award strong{font-size:2.25rem}.bento-award{padding:var(--space-4) var(--space-3)}.hero h1{font-size:2.75rem}}@media(max-width:800px){.hero{grid-template-columns:minmax(0,1fr);gap:var(--space-12);padding-bottom:var(--space-16)}.profile-bento{max-width:520px;width:100%;margin-inline:auto;grid-template-rows:repeat(4,145px)}.hero-copy{max-width:600px}.hero h1{font-size:clamp(2.5rem,7vw,3.75rem)}.hero h1 br{display:none}.hero h1 .hero-secondary{display:block;margin-top:var(--space-2)}.hero h1{line-height:1.2}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card:last-child{grid-column:1/-1}.experience-row{grid-template-columns:90px minmax(0,1fr)}.experience-note{grid-column:2}.about-intro{grid-template-columns:minmax(0,1fr) 240px;gap:var(--space-8)}}@media(max-width:600px){.container{width:calc(100% - var(--space-8))}.site-header{grid-template-columns:1fr auto;gap:var(--space-2)}.brand{min-height:56px;font-size:1.625rem;justify-content:flex-start;padding-inline:var(--space-4)}.header-socials{padding-inline:var(--space-2)}nav{grid-row:2;grid-column:1/-1;justify-content:start;padding:var(--space-1)}nav a{padding-inline:var(--space-4)}.hero{padding-top:var(--space-4);gap:var(--space-8)}.profile-bento{grid-template-rows:repeat(4,108px);gap:var(--space-2)}.bento-contact,.bento-role,.profile-bento .bento-portrait,.bento-build,.bento-award,.bento-projects,.bento-social,.bento-social:last-child{border-radius:var(--radius-card)}.bento-contact{padding:var(--space-1) var(--space-1) var(--space-4)}.bento-contact>span:first-child{font-size:var(--text-label);gap:var(--space-1)}.tile-caption{font-size:var(--text-label)}.bento-role{padding:var(--space-2)}.bento-role strong{font-size:2rem;line-height:1.1}.bento-role>span{font-size:var(--text-label)}.bento-build{font-size:1.375rem}.bento-award{padding:var(--space-4) var(--space-2)}.bento-award .eyebrow{font-size:var(--text-label)}.bento-award strong{font-size:2.25rem}.bento-award>span:last-child{font-size:var(--text-label)}.circle-arrow{font-size:2.5rem}.bento-social{padding:var(--space-3);font-size:var(--text-label);gap:var(--space-2)}.hero-greeting{font-size:1.125rem}.hero h1{font-size:2.5rem}.hero-actions{gap:var(--space-4)}.hero-actions .eyebrow{width:100%}.hero-actions .button{margin-left:auto}.project-grid{grid-template-columns:1fr}.project-card:last-child{grid-column:auto}.project-symbol{height:88px}.section{padding-block:var(--space-8) var(--space-12)}.experience-row{grid-template-columns:1fr;gap:var(--space-2)}.experience-note{grid-column:auto}.site-footer{grid-template-columns:1fr;gap:var(--space-6)}.site-footer h2{font-size:1.25rem}.footer-bottom{display:grid}.page-intro{padding-top:var(--space-12)}.case-meta{grid-template-columns:1fr}.case-study{padding-top:var(--space-6)}.case-header h1{font-size:2rem;overflow-wrap:anywhere}.about-intro{grid-template-columns:1fr;padding-block:var(--space-12);gap:var(--space-8)}.portrait{max-width:320px}.lead{font-size:1.125rem}}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.course-card{min-width:0;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);background:var(--bg-card);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-card)}.course-card h3{margin-top:var(--space-8);font-size:var(--text-heading);overflow-wrap:anywhere}.course-card h3 a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--touch-min)}.course-card p,.course-card-footer>span,.course-notice p,.course-facts dt{color:var(--text-secondary)}.course-status{display:inline-flex;width:fit-content;padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--border-input);border-radius:var(--radius-control);font-size:var(--text-small);color:var(--text-secondary)}.course-card-footer{margin-top:auto;padding-top:var(--space-6);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-small)}.course-notice{margin-top:var(--space-8);padding:var(--space-6);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-card);background:var(--bg-card)}.course-notice h2{margin-block:var(--space-4) var(--space-2)}.course-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6);border-top:var(--border-width) solid var(--border-input);padding-top:var(--space-6);margin:var(--space-6) 0 0;font-size:var(--text-small)}.course-facts dd{margin:var(--space-2) 0 0}@media(max-width:1050px){.site-header{grid-template-columns:1fr auto}.site-nav{grid-row:2;grid-column:1 / -1}.header-socials{padding-inline:var(--space-4)}}@media(max-width:600px){.course-grid,.course-facts{grid-template-columns:minmax(0,1fr)}.course-card,.course-notice{padding:var(--space-6)}.site-nav{gap:var(--space-1);grid-auto-columns:minmax(0,1fr);justify-content:stretch}.site-nav a{padding-inline:var(--space-2);justify-content:center}}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.work-card{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:var(--space-8);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-card);background:var(--bg-card);transition:border-color var(--motion-normal) var(--ease-out)}.work-card:hover{border-color:var(--border-hover)}.work-card-heading{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.work-card h2,.work-card h3{width:100%;font-size:var(--text-heading);line-height:1.4;letter-spacing:-.025em;margin-top:var(--space-2)}.work-card h2 a,.work-card h3 a{min-height:var(--touch-min);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);overflow-wrap:anywhere}.work-card h2 a:after,.work-card h3 a:after{content:"";position:absolute;inset:0;border-radius:var(--radius-card)}.work-card:focus-within{outline:2px solid var(--focus-ring);outline-offset:var(--space-1)}.work-summary{font-size:var(--reading-text);line-height:var(--reading-leading);color:var(--text-secondary)}.work-role{margin:auto 0 0;padding-top:var(--space-4)}.work-role dt,.story-meta dt{font-size:var(--text-small);color:var(--text-secondary)}.work-role dd{margin:var(--space-1) 0 0;font-size:var(--text-small)}.work-card-action{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);font-size:var(--text-small);border-top:var(--border-width) solid var(--border-subtle);padding-top:var(--space-4);width:100%}.project-story{max-width:var(--story-max);margin-inline:auto;padding-block:var(--space-8) var(--space-16)}.story-header{max-width:var(--reading-max);padding-block:var(--space-8)}.story-header h1{margin-block:var(--space-3) var(--space-6);overflow-wrap:anywhere}.story-header .lead{font-size:var(--reading-text);line-height:var(--reading-leading)}.story-header .award{margin-top:var(--space-6);font-size:var(--text-small)}.story-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8);border-block:var(--border-width) solid var(--border-input);margin:0 0 var(--space-12);padding-block:var(--space-6)}.story-meta dd{margin:var(--space-2) 0 0;overflow-wrap:anywhere}.story-layout{display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,1fr);gap:var(--space-16);align-items:start}.story-contents{position:sticky;top:var(--space-8)}.story-contents ul{list-style:none;margin:var(--space-3) 0 0;padding:0}.story-contents a{display:flex;align-items:center;min-height:var(--touch-min);padding-block:var(--space-2);color:var(--text-secondary);font-size:var(--text-small)}.story-contents a:hover{color:var(--text-main);text-decoration:underline;text-underline-offset:var(--space-1)}.story-body{min-width:0}.prose{font-size:var(--reading-text);line-height:var(--reading-leading);overflow-wrap:anywhere}.prose h2{scroll-margin-top:var(--space-8);margin-block:var(--space-12) var(--space-4);line-height:1.6}.prose>h2:first-child{margin-top:0}.prose p,.prose ul{line-height:var(--reading-leading)}.prose strong{color:var(--text-main);font-weight:var(--weight-bold)}.prose li+li{margin-top:var(--space-3)}.story-image{margin-top:var(--space-12)}.story-image img{width:100%;height:auto;border-radius:var(--radius-card)}.story-image figcaption{color:var(--text-secondary);font-size:var(--text-small);line-height:var(--line-height-body)}.story-links{margin-top:var(--space-12);border-top:var(--border-width) solid var(--border-subtle);padding-top:var(--space-6)}.story-links h2{font-size:var(--text-heading);margin-bottom:var(--space-4)}.story-links .button{justify-content:flex-start;overflow-wrap:anywhere}.story-next{margin-top:var(--space-16);padding-top:var(--space-8);border-top:var(--border-width) solid var(--border-input)}.story-next a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--touch-min);font-size:var(--text-heading);margin-top:var(--space-3)}.site-header{grid-template-columns:auto minmax(0,1fr) auto}.header-identity{display:flex;align-items:center;gap:var(--space-3);min-width:0}.header-identity .brand{border:0;padding-inline:var(--space-2)}.site-header .header-socials{display:flex;border:0;padding:0;gap:0}.site-header .header-socials a{color:var(--text-secondary)}.theme-toggle .theme-sun{display:block}.theme-toggle .theme-moon{display:none}:root[data-theme=light] .theme-toggle .theme-sun{display:none}:root[data-theme=light] .theme-toggle .theme-moon{display:block}.site-preferences{display:flex;align-items:center;gap:var(--space-2)}.site-preferences a,.theme-toggle{min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);border:var(--border-width) solid var(--border-input);background:var(--bg-card);color:var(--text-main);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-size:var(--text-small);cursor:pointer}.theme-toggle[hidden]{display:none}.site-preferences a:hover,.theme-toggle:hover{background:var(--bg-sidebar-hover)}button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:var(--space-1)}.site-nav a{white-space:nowrap}@media(max-width:1050px){.site-header{grid-template-columns:minmax(0,1fr) auto}.site-preferences{grid-column:2;grid-row:1}.story-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-8)}.story-contents{position:static;padding-bottom:var(--space-6);border-bottom:var(--border-width) solid var(--border-subtle)}.story-contents ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-6)}.story-body{max-width:var(--reading-max)}}@media(max-width:600px){.work-grid,.story-meta,.story-contents ul{grid-template-columns:minmax(0,1fr)}.work-card{padding:var(--space-6)}.story-header{padding-top:var(--space-6)}.story-header h1{font-size:var(--text-heading)}.story-meta{gap:var(--space-6);margin-bottom:var(--space-8)}.site-preferences a,.theme-toggle{padding-inline:var(--space-2)}.header-identity{gap:var(--space-1)}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
