@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::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,ui-sans-serif, system-ui, 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{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]){appearance:button}::file-selector-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{.static{position:static}.start{inset-inline-start:var(--spacing)}.contents{display:contents}.table{display:table}.resize{resize:both}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#fff;--surface:#f7f8fa;--surface-strong:#f3f5f8;--foreground:#1f2328;--text-secondary:#4a525d;--muted:#5c6470;--subtle:#8a929d;--line:#d9dde3;--accent:#008f5a;--accent-bright:#00c887;--accent-soft:#e7f8f0;--code:#edf7f2;--max-width:1040px;--text-large:17px;--text-body:16px;--text-small:12px;--type-section-title:40px;--type-entity-title:24px;--type-project-title:21px;--type-featured-project-title:26px;--type-detail-title:18px;--type-role:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif;font-size:var(--text-body);letter-spacing:-.015em;word-break:keep-all;-webkit-font-smoothing:antialiased;margin:0;line-height:1.68}.resume-sheet{--resume-content-width:clamp(860px, 68vw, var(--max-width));background:0 0;width:100%;min-height:100vh;margin:0;padding:0}::selection{color:#06462f;background:#c9f3df}a{color:inherit;text-decoration:none}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.top-banner{background:0 0;min-height:246px}.top-banner-inner{width:min(calc(100% - 64px), var(--max-width));grid-template-columns:minmax(0,1fr) 112px;align-items:start;gap:24px 56px;min-height:246px;margin-inline:auto;padding:24px 0 28px;display:grid}.site-nav{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:12px 28px;display:flex}.site-nav-link{color:var(--foreground);letter-spacing:-.025em;white-space:nowrap;font-size:15px;font-weight:750;line-height:1.3;transition:color .14s}.site-nav a:hover,.site-nav a:focus-visible{color:var(--accent)}.site-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.print-button{border:1px solid var(--line);background:var(--background);min-height:34px;color:var(--foreground);font:inherit;cursor:pointer;border-radius:999px;margin:0;padding:7px 13px;font-size:13px;font-weight:750;line-height:1.2;transition:border-color .14s,color .14s,background-color .14s}.print-button:hover,.print-button:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.print-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cover-letter-site .content-hero,.cover-letter-page{width:min(100%,800px);margin-inline:auto}.cover-letter-site .content-hero{padding:40px 0 20px}.cover-letter-intro{padding-top:8px}.cover-letter-section{padding:36px 0 0}.cover-letter-section+.cover-letter-section{border-top:0}.cover-letter-section-heading{max-width:840px;margin-bottom:16px}.cover-letter-section-heading h2{letter-spacing:-.035em;margin:0;font-size:21px;font-weight:800;line-height:1.5}.cover-letter-copy{min-width:0;max-width:840px}.cover-letter-copy p{color:#343c46;letter-spacing:-.018em;text-align:justify;text-align-last:left;text-justify:inter-character;word-break:keep-all;overflow-wrap:break-word;margin:0;font-size:16px;font-weight:450;line-height:1.82}.cover-letter-intro>p:first-child{color:var(--foreground);letter-spacing:-.025em;font-size:19px;font-weight:650;line-height:1.65}.cover-letter-copy p+p{margin-top:18px}.cover-letter-copy strong{color:var(--foreground);font-weight:800}.cover-letter-key-message,.cover-letter-closing{background:0 0;border:0;padding:0}@media (max-width:720px){.cover-letter-site .content-hero{padding:28px 0 16px}.cover-letter-intro{padding-top:4px}.cover-letter-section{padding:30px 0 0}.cover-letter-section-heading{margin-bottom:14px}.cover-letter-section-heading h2{font-size:19px}.cover-letter-copy p{font-size:15px;line-height:1.8}.cover-letter-intro>p:first-child{font-size:17px;line-height:1.68}.cover-letter-key-message,.cover-letter-closing{padding:0}}.top-banner-copy>p{color:var(--accent);letter-spacing:-.045em;margin:0;font-size:clamp(18px,2vw,22px);font-weight:700;line-height:1.3}.top-banner h1{color:var(--foreground);letter-spacing:-.065em;margin:7px 0 0;font-size:clamp(42px,4.6vw,50px);font-weight:760;line-height:1}main,footer{width:min(calc(100% - 64px), var(--max-width));margin-inline:auto}@media (min-width:681px){.resume-sheet .top-banner-inner,.resume-sheet>main,.resume-sheet>footer{width:min(calc(100% - 64px), var(--resume-content-width))}}.profile{padding:18px 0 56px}.profile-photo{aspect-ratio:3/4;object-fit:cover;border:0;justify-self:end;width:112px;display:block}.profile-contact{flex-wrap:wrap;align-items:center;gap:18px 38px;margin-top:16px;font-style:normal;display:flex}.contact-item{color:#555b63;align-items:baseline;gap:10px;font-size:17px;font-weight:600;line-height:1.4;transition:color .14s;display:inline-flex}.contact-item strong{color:var(--foreground);font-weight:800}.contact-item:hover,.contact-item:focus-visible,.contact a:hover,.contact a:focus-visible,footer a:hover,footer a:focus-visible{color:var(--accent)}.profile-points{width:100%;margin:0;padding:0}.profile-points p{text-wrap:pretty;margin:0}.profile-statement{max-width:none;color:var(--foreground);font-size:var(--type-section-title);letter-spacing:-.05em;text-wrap:pretty;margin:0 0 18px;font-weight:800;line-height:1.2}.profile-context{color:#343c46;letter-spacing:-.02em;text-wrap:balance;max-width:none;font-size:17px;font-weight:650;line-height:1.68}.profile-context+.profile-context{margin-top:14px}.profile-evidence{color:#505863;max-width:940px;font-size:var(--text-body);line-height:1.75;margin-top:18px!important}.profile-points strong{color:var(--foreground);font-weight:800}.resume-section{padding-bottom:96px;scroll-margin-top:28px}.section-title{border-bottom:1px solid var(--line);padding-bottom:14px}.section-title h2{font-size:var(--type-section-title);letter-spacing:-.05em;text-wrap:balance;margin:0;font-weight:800;line-height:1.2}.work-section{display:block}.resume-list{margin-top:34px}.resume-item{grid-template-columns:202px minmax(0,1fr);gap:30px;display:grid}.resume-item+.resume-item{border-top:1px solid #e8ebef;margin-top:34px;padding-top:34px}.resume-side{min-width:0}.resume-side h3{font-size:var(--type-entity-title);letter-spacing:-.04em;margin:0;font-weight:800;line-height:1.3}.resume-side p{color:var(--text-secondary);font-size:var(--type-role);margin:0;font-weight:600;line-height:1.5}.experience-period,.experience-meta{display:block}.experience-period{color:#687281;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-small);letter-spacing:.055em;margin-top:10px;font-weight:600}.experience-meta{color:var(--subtle);font-size:var(--text-small);letter-spacing:.08em;margin-top:3px;font-weight:750}.side-link{width:fit-content;color:var(--foreground);font-size:var(--type-role);align-items:center;gap:7px;margin-top:16px;font-weight:700;transition:color .14s;display:flex}.project-links{white-space:nowrap;align-items:center;gap:32px;margin-top:0;display:flex}.project-links .side-link{gap:6px;margin-top:0}.project-links .side-link>span{color:currentColor;font-size:.84em;line-height:1;display:inline-block;transform:translateY(-1px)}.side-link-placeholder{color:var(--subtle);font-size:var(--type-role);align-items:center;gap:7px;font-weight:600;display:inline-flex}.side-link-placeholder small{font-size:inherit;font-weight:600}.resume-detail{border-left:0;min-width:0;padding-left:0}.resume-list .resume-detail{border-left:0;margin-top:0;padding-left:0;display:block}.resume-list .resume-item{padding:0 0 48px;display:grid}.resume-list .jungle-item{padding:0 0 54px}.resume-list .resume-item+.resume-item{margin-top:0;padding-top:32px}.resume-list .resume-side{display:block}.experience-heading{white-space:normal;flex-direction:column;align-items:flex-start;gap:7px;display:flex}.experience-heading>span{display:none}.experience-heading p{margin:0}.experience-heading .experience-position{color:var(--foreground);font-weight:700}.resume-side .project-side-kicker{color:var(--foreground);margin-top:18px;font-size:13px;font-weight:750}.project-side-meta{gap:6px;margin:9px 0 0;display:grid}.project-side-meta>div{grid-template-columns:36px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.project-side-meta dt{color:var(--subtle);font-size:12px;font-weight:650;line-height:1.45}.project-side-meta dd{color:var(--text-secondary);margin:0;font-size:12px;font-weight:600;line-height:1.45}.project-side-meta time{letter-spacing:-.02em;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.resume-list .summary-box{width:100%;color:var(--text-secondary);font-size:var(--text-body);text-wrap:pretty;background:0 0;margin:0;padding:0;font-weight:400;line-height:1.72}.resume-list .summary-box strong{color:var(--foreground);font-weight:700}.experience-project-header+.summary-box{font-size:var(--text-large);margin-top:14px;font-weight:650;line-height:1.68}.education-copy{gap:10px;display:grid}.education-awards{color:var(--foreground);grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:8px 18px;list-style:none;display:grid;margin:16px 0 0!important;padding:0!important}.education-awards li{grid-template-columns:6px minmax(0,1fr);align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:700;line-height:1.5;display:grid}.resume-detail .education-awards li+li{margin-top:0}.education-awards li:before{background:var(--accent);content:"";border-radius:50%;width:6px;height:6px;display:block}.experience-header{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.project-detail blockquote{border-left:2px solid var(--accent);color:#2d3540;font-size:var(--text-body);background:0 0;margin:0;padding:2px 0 2px 14px;font-weight:650}.resume-detail h4{font-size:var(--type-detail-title);letter-spacing:-.025em;margin:22px 0 7px;font-weight:800;line-height:1.4}.resume-detail ul{color:#444c57;margin:0;padding-left:19px}.resume-detail li+li{margin-top:7px}.project-section{padding-top:4px}.project-item{margin-top:50px;display:block}.project-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;display:grid}.project-title h4{width:fit-content;color:var(--foreground);font-size:var(--type-project-title);letter-spacing:-.035em;text-wrap:balance;background:0 0;border-bottom:0;margin:0;padding:0;font-weight:700;line-height:1.4}.jungle-detail .project-title h4,.jungle-detail .supporting-project .project-title h4,.experience-project-header .project-title h4{font-size:var(--type-featured-project-title);font-weight:800;line-height:1.28}.project-title>span{color:var(--subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-small);letter-spacing:.12em;margin-bottom:8px;font-weight:700;display:block}.jungle-detail .project-title>span{color:var(--accent)}.project-header .project-links{margin-top:0}.project-header .side-link{color:var(--foreground);font-size:16px;font-weight:750}.project-header .notion-link{color:var(--foreground)}.side-link:hover,.side-link:focus-visible{color:var(--foreground);text-underline-offset:3px;text-decoration:underline}.project-introduction{color:#343c46;width:min(100%,760px);margin-top:18px}.project-introduction p{font-size:var(--text-body);text-wrap:pretty;margin:0;line-height:1.74}.project-introduction p+p{margin-top:9px}.project-introduction p:first-child{color:#343c46;letter-spacing:-.02em;text-wrap:balance;font-size:17px;font-weight:650;line-height:1.68}.project-introduction--single-line{width:100%}.project-introduction--single-line p:first-child{letter-spacing:-.02em;text-wrap:balance;white-space:normal;font-size:17px}.project-team{border-top:1px solid #e3e6ea;margin-top:18px;padding-top:16px}.project-team-heading{grid-template-columns:20px minmax(0,1fr);align-items:start;gap:6px;display:grid}.project-team-heading>span,.project-highlight>span{height:calc(var(--type-detail-title) * 1.4);color:var(--foreground);justify-content:center;align-items:center;font-size:0;display:flex}.jungle-detail .project-team-heading>span,.jungle-detail .project-highlight>span{color:var(--accent)}.project-team-heading>span:before,.project-highlight>span:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.project-team-heading h5{font-size:var(--type-detail-title);margin:0;font-weight:700;line-height:1.45}.project-role-tags{flex-wrap:wrap;gap:8px;width:calc(100% - 26px);margin-top:6px;margin-left:26px;display:flex}.project-role-tags span{color:#57606b;text-align:center;white-space:nowrap;border:1px solid #cbd2da;border-radius:4px;flex:none;justify-content:center;align-items:center;width:auto;min-width:0;height:32px;padding:0 14px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.project-role-tags .is-primary{border-color:var(--accent-bright);background:var(--accent-soft);color:var(--accent);font-weight:700}.project-detail{min-width:0}.project-detail blockquote{width:fit-content;margin-top:42px;padding:2px 0 2px 16px;font-style:normal;line-height:1.65}.project-highlights{border-top:0;margin-top:18px;padding:0}.project-highlight{border-top:1px solid #e3e6ea;grid-template-columns:20px minmax(0,1fr);gap:6px;padding:18px 0;display:grid}.project-highlight>span{margin-top:0}.project-highlight h5{font-size:var(--type-detail-title);letter-spacing:-.035em;text-wrap:balance;margin:0 0 8px;font-weight:700;line-height:1.35}.project-highlight-link{color:inherit;transition:color .14s}.project-highlight-link>span{color:var(--accent);margin-left:5px;font-size:.78em;line-height:1;display:inline-block;transform:translateY(-1px)}.project-highlight-link:hover,.project-highlight-link:focus-visible{color:var(--accent)}.project-inline-link{color:var(--accent);font-weight:inherit;text-underline-offset:3px;text-decoration:none;text-decoration-thickness:1px}.project-inline-link:hover,.project-inline-link:focus-visible{color:var(--accent);text-decoration:underline}.project-evidence-link{color:var(--foreground);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);font-weight:650}@supports (color:color-mix(in lab, red, red)){.project-evidence-link{-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent)}}.project-evidence-link{text-underline-offset:3px;text-decoration-thickness:1px;transition:color .14s,text-decoration-color .14s}.project-evidence-link:hover,.project-evidence-link:focus-visible{color:var(--accent);text-decoration-color:currentColor}.project-highlight-link:focus-visible,.project-inline-link:focus-visible,.project-evidence-link:focus-visible,.side-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.project-highlight p{color:var(--text-secondary);font-size:var(--text-body);text-wrap:pretty;margin:0;font-weight:400;line-height:1.72}.project-achievements{color:var(--text-secondary);font-size:var(--text-body);margin:0;padding:0;font-weight:400;line-height:1.72}.project-achievements p+p{margin-top:5px}.project-highlight strong{color:#1f2937;font-weight:700}.highlight-tags{flex-wrap:wrap;align-items:center;gap:8px;width:100%;margin-top:8px;display:flex}.highlight-tag{appearance:none;color:#57606b;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #cbd2da;border-radius:4px;flex:none;justify-content:center;align-items:center;width:auto;min-width:0;height:32px;padding:0 14px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;transition:background-color .14s,border-color .14s,box-shadow .14s,color .14s,transform .1s;display:inline-flex}.highlight-tag:hover{border-color:var(--accent-bright);background:var(--accent-soft);color:var(--accent)}.highlight-tag:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.highlight-tag[aria-pressed=true]{border-color:var(--accent-bright);background:var(--accent-soft);color:var(--accent);font-weight:700}.highlight-tag[aria-pressed=true]:hover{border-color:var(--accent);color:var(--accent);background:#d8f5e7}.highlight-tag:active{transform:translateY(1px)}.supporting-project{border-top:1px solid #e3e6ea;margin-top:32px;padding-top:28px}.supporting-project+.supporting-project{margin-top:28px}.resume-detail li code{background:var(--code);color:#166344;font-size:var(--text-small);border-radius:4px;padding:1px 5px}.contact{border-top:1px solid var(--line);text-align:left;padding:52px 0 76px}.contact p{color:var(--muted);font-size:var(--text-body);margin:0 0 10px;font-weight:500}.contact a{color:var(--foreground);font-size:var(--text-large);align-items:center;gap:8px;font-weight:800;transition:color .14s;display:inline-flex}footer{min-height:90px;color:var(--subtle);font-size:var(--text-small);letter-spacing:.08em;border-top:1px solid #dfe3e8;justify-content:space-between;align-items:center;font-weight:750;display:flex}footer p{margin:0}@media (max-width:680px){:root{--text-large:16px;--text-body:14px;--text-small:11px;--type-section-title:32px;--type-entity-title:22px;--type-project-title:19px;--type-featured-project-title:22px;--type-detail-title:16px;--type-role:13px}.resume-sheet{width:100%;margin:0;padding:0}.top-banner{text-align:left;min-height:auto}.top-banner-inner{width:min(calc(100% - 36px), var(--max-width));grid-template-columns:minmax(0,1fr) 82px;gap:22px 18px;min-height:auto;padding:24px 0}.site-nav{justify-content:flex-start;gap:10px 18px}.site-nav-link{font-size:13px}.top-banner-copy>p{font-size:16px}.top-banner h1{margin-top:5px;font-size:38px}main,footer{width:min(calc(100% - 36px), var(--max-width))}.profile{padding:30px 0 44px}.profile-photo{width:82px}.profile-contact{gap:8px 18px;margin-top:14px}.contact-item{gap:7px;font-size:13px}.profile-points{width:100%;margin-top:0}.profile-context{text-wrap:pretty;font-size:16px;line-height:1.72}.profile-statement{font-size:var(--type-section-title);margin-bottom:20px;line-height:1.2}.profile-evidence{margin-top:14px!important}.resume-section{padding-bottom:92px}.section-title h2{font-size:var(--type-section-title)}.work-section{display:block}.project-item{margin-top:36px}.project-header{grid-template-columns:1fr;gap:20px}.project-title h4{font-size:var(--type-project-title)}.jungle-detail .supporting-project .project-title h4,.experience-project-header .project-title h4{font-size:var(--type-featured-project-title)}.project-header .project-links{flex-wrap:wrap;gap:12px;margin-top:0;display:flex}.project-detail blockquote{margin-top:34px}.project-introduction{width:100%;margin-top:18px}.project-introduction p:first-child{text-wrap:pretty;font-size:16px;line-height:1.72}.project-introduction--single-line p:first-child{text-wrap:pretty;white-space:normal}.project-highlights{margin-top:22px;padding:0}.project-highlight{grid-template-columns:18px minmax(0,1fr);gap:5px;padding:16px 0}.project-highlight h5{font-size:var(--type-detail-title)}.project-role-tags{gap:8px;width:calc(100% - 23px);margin-left:23px}.project-role-tags span{padding-inline:10px}.highlight-tag{height:32px;padding-inline:10px;font-size:12px}.project-role-tags span{font-size:12px}.supporting-project{margin-top:28px;padding-top:24px}.resume-list{margin-top:24px}.resume-item{grid-template-columns:1fr;gap:25px}.resume-list .resume-item{grid-template-columns:1fr;gap:14px;padding:24px 0 28px}.resume-list .jungle-item{padding-top:0}.resume-list .resume-item+.resume-item{padding-top:24px}.resume-side,.resume-list .resume-side{display:block}.experience-heading{white-space:normal;flex-wrap:wrap}.resume-side h3{font-size:var(--type-entity-title)}.experience-header{flex-direction:column;gap:10px}.side-link{margin-top:7px}.resume-detail{border-top:1px solid var(--line);border-left:0;padding:24px 0 0}.resume-list .resume-detail{border-top:0;border-left:0;margin-top:16px;padding:0}.resume-list .jungle-detail{margin-top:0}.education-awards{grid-template-columns:1fr;row-gap:7px}.contact{padding:46px 0 66px}}.page-site-header{border-bottom:1px solid var(--line);background:#fffffff0;width:100%}.page-site-header-inner{width:min(calc(100% - 64px), var(--max-width));justify-content:space-between;align-items:center;gap:30px;min-height:76px;margin-inline:auto;display:flex}.page-site-header .site-nav{justify-content:flex-end}.site-wordmark{color:var(--foreground);letter-spacing:.08em;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:850;line-height:1}.content-main{padding-bottom:88px}.content-hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:30px;padding:64px 0 52px;display:grid}.content-eyebrow{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-small);letter-spacing:.08em;margin:0 0 10px;font-weight:850;line-height:1.4}.content-hero h1{max-width:760px;font-size:var(--type-section-title);letter-spacing:-.05em;text-wrap:balance;margin:0;font-weight:800;line-height:1.2}.content-description{color:#434b55;max-width:760px;font-size:var(--text-body);letter-spacing:-.015em;text-wrap:pretty;margin:16px 0 0;font-weight:500;line-height:1.68}.content-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-bottom:4px;display:flex}.content-text-link,.content-back-link{width:fit-content;color:var(--foreground);align-items:center;gap:6px;font-size:14px;font-weight:800;line-height:1.4;display:inline-flex}.content-text-link{border:1px solid var(--line);border-radius:999px;padding:9px 13px}.content-text-link:hover,.content-text-link:focus-visible,.content-back-link:hover,.content-back-link:focus-visible{color:var(--accent);border-color:var(--accent)}.content-index{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.content-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;min-height:350px;padding:38px;transition:background-color .15s,color .15s;display:flex}.content-card:hover,.content-card:focus-visible{background:var(--accent-soft)}.content-card:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.content-card-number{color:var(--accent);letter-spacing:.1em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:850;line-height:1.4}.content-card h2{font-size:var(--type-entity-title);letter-spacing:-.04em;text-wrap:balance;margin:22px 0 0;font-weight:800;line-height:1.3}.content-card>p{color:#4b535d;text-wrap:pretty;margin:16px 0 0;font-size:16px;line-height:1.72}.content-card .content-card-meta{color:var(--muted);margin-top:14px;font-size:13px;font-weight:700}.content-card-tags,.article-tags{flex-wrap:wrap;gap:7px;margin:24px 0 0;padding:0;list-style:none;display:flex}.content-card-tags li,.article-tags li{color:#2e5e49;background:#f6fbf8;border:1px solid #d7e7df;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;line-height:1.3}.content-card-link{color:var(--foreground);margin-top:auto;padding-top:30px;font-size:14px;font-weight:800}.deep-dive-card{min-height:330px}.technical-article{border-top:1px solid var(--line);max-width:880px;margin-inline:auto}.technical-article>.content-back-link{margin:28px 0 12px}.project-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 42px;margin:34px 0 0;padding:28px 0;display:grid}.project-facts div{grid-template-columns:82px minmax(0,1fr);gap:16px;display:grid}.project-facts dt{color:var(--accent);letter-spacing:.04em;font-size:12px;font-weight:850}.project-facts dd{color:#3f4751;margin:0;font-size:14px;font-weight:650}.article-section{border-bottom:1px solid var(--line);grid-template-columns:202px minmax(0,1fr);gap:30px;padding:52px 0;display:grid}.article-section-heading span{color:var(--accent);letter-spacing:.1em;margin-bottom:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:850;display:block}.article-section-heading h2{font-size:var(--type-entity-title);letter-spacing:-.04em;text-wrap:balance;margin:0;font-weight:800;line-height:1.3}.article-section-body{color:#39414a;min-width:0;font-size:var(--text-body);letter-spacing:-.015em;line-height:1.72}.article-section-body>:first-child{margin-top:0}.article-section-body>:last-child{margin-bottom:0}.article-section-body p{text-wrap:pretty;margin:0}.article-section-body p+p,.article-section-body p+ul,.article-section-body p+ol,.article-section-body ul+p,.article-section-body ol+p,.article-section-body pre+p{margin-top:20px}.article-section-body ul,.article-section-body ol{margin:20px 0 0;padding-left:22px}.article-section-body li+li{margin-top:9px}.article-section-body strong{color:var(--foreground);font-weight:800}.article-subsection+.article-subsection{border-top:1px solid #e8ebef;margin-top:34px;padding-top:32px}.article-subsection h3,.article-section-body>h3,.article-callout h3{color:var(--foreground);font-size:var(--type-detail-title);letter-spacing:-.025em;margin:0 0 12px;font-weight:800;line-height:1.4}.article-callout,.article-emphasis{border-left:3px solid var(--accent);background:var(--accent-soft);padding:20px 22px;margin-top:26px!important}.article-callout ul{margin-top:12px}.project-visual{border:1px solid var(--line);background:var(--surface);margin:28px 0 0;overflow:hidden}.project-visual img{width:100%;height:auto;display:block}.project-visual figcaption{border-top:1px solid var(--line);color:var(--muted);padding:12px 14px;font-size:12px;font-weight:650;line-height:1.6}.project-visual--poster{width:min(100%,720px);margin-inline:auto}.project-visual--wide{width:min(100%,980px)}.architecture-steps{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px;display:grid}.architecture-steps span{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:92px;color:var(--foreground);align-items:center;padding:16px 13px;font-size:13px;font-weight:760;line-height:1.55;display:flex}.architecture-steps span:not(:last-child):after{color:var(--accent);content:"→";margin-left:auto;padding-left:8px}.runtime-journey-figure,.fiber-tree-figure,.scheduler-figure,.keyed-move-figure{margin:30px 0 0}.runtime-journey,.runtime-comparison-grid,.fiber-tree-board,.scheduler-visual,.keyed-move-visual{border:1px solid var(--line);background:var(--surface)}.runtime-journey{grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.runtime-journey-step{border-right:1px solid var(--line);flex-direction:column;justify-content:center;min-height:134px;padding:20px 16px;display:flex;position:relative}.runtime-journey-step:last-child{border-right:0}.runtime-journey-step:not(:last-child):after{z-index:1;border:1px solid var(--line);background:var(--background);width:20px;height:20px;color:var(--accent);content:"→";border-radius:50%;place-items:center;font-size:12px;line-height:1;display:grid;position:absolute;top:50%;right:-10px;transform:translateY(-50%)}.runtime-journey-step>span,.runtime-comparison-column>span,.fiber-tree-column-head>span,.keyed-state>span{color:var(--accent);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:850;line-height:1.4}.runtime-journey-step strong{color:var(--foreground);margin-top:8px;font-size:15px;line-height:1.35}.runtime-journey-step small{color:var(--muted);margin-top:5px;font-size:11px;font-weight:650;line-height:1.45}.runtime-journey-figure figcaption,.fiber-tree-figure figcaption,.scheduler-figure figcaption,.keyed-move-figure figcaption{color:var(--muted);margin-top:11px;font-size:12px;font-weight:650;line-height:1.65}.runtime-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px;display:grid}.runtime-comparison-column{padding:24px}.runtime-comparison-column+.runtime-comparison-column{border-left:1px solid var(--line)}.runtime-comparison-column--active{background:var(--accent-soft)}.runtime-comparison-column strong{color:var(--foreground);margin-top:8px;font-size:16px;line-height:1.5;display:block}.runtime-comparison-column ul{color:var(--text-secondary);margin-top:15px;font-size:13px;line-height:1.6}.fiber-tree-board{grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);align-items:stretch;gap:18px;padding:26px;display:grid}.fiber-tree-column{border:1px solid var(--line);background:var(--background);padding:18px}.fiber-tree-column--active{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.fiber-tree-column--active{border-color:color-mix(in srgb, var(--accent) 52%, var(--line))}}.fiber-tree-column--active{background:var(--accent-soft)}.fiber-tree-column-head{flex-direction:column;display:flex}.fiber-tree-column-head strong{color:var(--foreground);margin-top:3px;font-size:14px}.fiber-node{background:var(--background);min-height:48px;color:var(--foreground);text-align:center;border:1px solid #ccd4dc;border-radius:6px;place-items:center;padding:9px 8px;font-size:11px;font-weight:750;line-height:1.35;display:grid}.fiber-node--root{width:min(100%,106px);margin:24px auto 0;position:relative}.fiber-node--root:after{background:var(--line);content:"";width:1px;height:28px;position:absolute;bottom:-28px;left:50%}.fiber-node-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:28px;padding-top:22px;display:grid;position:relative}.fiber-node-row:before{background:var(--line);content:"";width:66.666%;height:1px;position:absolute;top:0;left:16.666%}.fiber-node-row .fiber-node{position:relative}.fiber-node-row .fiber-node:before{background:var(--line);content:"";width:1px;height:22px;position:absolute;top:-22px;left:50%}.fiber-node--changed{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.fiber-alternate-bridge{grid-template-rows:auto repeat(3,1fr);place-items:center stretch;gap:15px;display:grid}.fiber-alternate-bridge span{color:var(--accent);letter-spacing:.06em;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:800}.fiber-alternate-bridge i{border-top:1px dashed var(--accent);height:1px;position:relative}.fiber-alternate-bridge i:before,.fiber-alternate-bridge i:after{border-top:1px solid var(--accent);border-right:1px solid var(--accent);content:"";width:5px;height:5px;position:absolute;top:-3px}.fiber-alternate-bridge i:before{left:0;transform:rotate(-135deg)}.fiber-alternate-bridge i:after{right:0;transform:rotate(45deg)}.fiber-pointer-legend{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.fiber-pointer-legend span{color:#2e5e49;background:#f6fbf8;border:1px solid #d7e7df;border-radius:999px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:750;line-height:1.3}.scheduler-visual{gap:12px;padding:22px;display:grid}.scheduler-lane{align-items:stretch;gap:7px;display:flex}.scheduler-lane>strong{width:72px;min-height:52px;color:var(--accent);letter-spacing:.07em;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;display:flex}.scheduler-lane>span{border:1px solid var(--line);background:var(--background);min-height:52px;color:var(--foreground);text-align:center;flex:1 1 0;place-items:center;padding:10px 9px;font-size:10px;font-weight:750;line-height:1.35;display:grid}.scheduler-lane>.scheduler-yield{max-width:56px;color:var(--accent);border-style:dashed;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:8px}.scheduler-lane--commit>span{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.scheduler-lane--commit>span{border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}}.scheduler-lane--commit>span{background:var(--accent-soft)}.keyed-move-visual{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);align-items:center;gap:18px;padding:24px;display:grid}.keyed-state>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px;display:grid}.keyed-state strong{background:var(--background);min-height:54px;color:var(--foreground);border:1px solid #ccd4dc;border-radius:6px;place-items:center;font-size:14px;display:grid}.keyed-state--after strong:first-child{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.keyed-move-arrow{color:var(--accent);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.keyed-move-arrow span{letter-spacing:.05em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:8px;font-weight:800}.keyed-move-arrow b{margin-top:4px;font-size:22px;line-height:1}.runtime-reference-links{margin-top:28px}.chart-engine-flow{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;display:grid}.chart-engine-flow div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;min-height:104px;padding:17px 18px;display:flex}.chart-engine-flow strong{color:var(--accent);letter-spacing:.04em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.chart-engine-flow span{color:#404852;margin-top:5px;font-size:14px;font-weight:650;line-height:1.55}.architecture-flow,.article-code{color:#173b2c;white-space:pre;background:#f5faf7;border:1px solid #dce6e1;border-radius:8px;margin:26px 0 0;padding:24px;font-size:13px;line-height:1.65;overflow-x:auto}.article-code+*{margin-top:24px}.table-scroll{width:100%;overflow-x:auto}.article-table{border-collapse:collapse;width:100%;min-width:560px;font-size:13px;line-height:1.6}.article-table th,.article-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 16px}.article-table th{background:var(--surface);color:var(--foreground);font-weight:800}.article-table td:first-child{color:var(--foreground);font-weight:750}.deep-dive-grid{gap:10px;display:grid}.deep-dive-grid a{border:1px solid var(--line);color:var(--foreground);justify-content:space-between;align-items:center;gap:16px;padding:17px 18px;font-weight:750;line-height:1.5;display:flex}.deep-dive-grid a:hover,.deep-dive-grid a:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.technical-article--case-study{max-width:var(--max-width)}.technical-article--case-study .case-project-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0}.technical-article--case-study .case-project-facts div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:8px;min-height:112px;padding:24px;display:flex}.technical-article--case-study .case-project-facts div:last-child{border-right:0}.technical-article--case-study .case-project-facts dt{letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px}.technical-article--case-study .case-project-facts dd{color:var(--foreground);font-size:14px;line-height:1.55}.case-core-contribution{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(260px,.85fr) minmax(320px,1fr);align-items:start;gap:34px;padding:64px 0;display:grid}.case-core-contribution>p{color:var(--accent);margin:5px 0 0;font-size:13px;font-weight:800;line-height:1.5}.case-core-contribution h2{color:var(--foreground);font-size:var(--type-featured-project-title);letter-spacing:-.04em;text-wrap:balance;margin:0;font-weight:800;line-height:1.28}.case-core-contribution div{color:var(--text-secondary);font-size:15px;line-height:1.78}.case-core-contribution div p{text-wrap:pretty;margin:0}.case-core-contribution div p+p{margin-top:16px}.case-study-overview{border-bottom:1px solid var(--line);padding:72px 0}.case-study-overview-head{grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);align-items:end;gap:72px;display:grid}.case-kicker,.case-card-label{color:var(--accent);letter-spacing:.1em;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:850;line-height:1.4}.case-study-overview-head h2{max-width:650px;color:var(--foreground);font-size:var(--type-featured-project-title);letter-spacing:-.04em;text-wrap:balance;margin:12px 0 0;font-weight:800;line-height:1.28}.case-study-overview-head>p{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:16px;line-height:1.78}.case-study-overview-head strong{color:var(--foreground);font-weight:800}.case-product-flow{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:46px 0 0;padding:0;list-style:none;display:grid}.case-product-flow li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:138px;padding:20px;position:relative}.case-product-flow li:not(:last-child):after{z-index:1;border:1px solid var(--line);background:var(--background);width:20px;height:20px;color:var(--accent);content:"→";border-radius:50%;place-items:center;font-size:11px;display:grid;position:absolute;top:25px;right:-10px}.case-product-flow li>span,.case-data-flow span,.case-canvas-grid span,.case-analysis-pipeline span,.case-evidence-grid span,.case-responsibility-grid span{color:var(--accent);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:850;line-height:1.4}.case-product-flow strong{color:var(--foreground);margin-top:20px;font-size:18px;line-height:1.3;display:block}.case-product-flow p{color:var(--muted);margin:7px 0 0;font-size:12px;line-height:1.55}.case-hero-visual{background:#0b0e12;border:1px solid #222a32;border-radius:14px;margin:34px 0 0;overflow:hidden;box-shadow:0 22px 52px #161e2521}.case-hero-visual img{width:100%;height:auto;display:block}.case-hero-visual figcaption{color:#b8c0ca;border-top:1px solid #29313a;padding:13px 16px;font-size:11px;font-weight:650;line-height:1.55}.case-metric-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:30px 0 0;display:grid}.case-metric-grid div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;min-height:126px;padding:21px;display:flex}.case-metric-grid dd{color:var(--foreground);letter-spacing:-.055em;margin:0;font-size:37px;font-weight:850;line-height:1}.case-metric-grid dt{color:var(--accent);letter-spacing:.07em;word-break:normal;margin-top:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:850;line-height:1.4}.technical-article--case-study .article-section{grid-template-columns:202px minmax(0,1fr);gap:30px}.case-architecture-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.case-structure-card{border:1px solid var(--line);background:var(--surface);min-height:392px;padding:24px}.case-structure-card h3{color:var(--foreground);letter-spacing:-.025em;margin:10px 0 0;font-size:18px;font-weight:820;line-height:1.45}.case-structure-card--dark{color:#cbd2da;background:#151a20;border-color:#202830}.case-structure-card--dark h3,.case-structure-card--dark strong{color:#fff}.case-structure-card--dark .case-card-label{color:var(--accent-bright)}.case-panel-tree{margin-top:24px}.case-tree-node{background:var(--background);text-align:center;border:1px solid #cfd6dd;border-radius:7px;flex-direction:column;justify-content:center;min-height:60px;padding:11px 12px;display:flex}.case-tree-node strong{color:var(--foreground);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.35}.case-tree-node span{color:var(--muted);word-break:normal;margin-top:3px;font-size:9px;line-height:1.4}.case-tree-node--root{border-color:var(--accent);background:var(--accent-soft);width:min(100%,272px);margin-inline:auto}.case-tree-branch{border-bottom:1px solid #cfd6dd;border-left:1px solid #cfd6dd;border-right:1px solid #cfd6dd;width:66.666%;height:30px;margin-inline:auto;position:relative}.case-tree-branch:before{content:"";background:#cfd6dd;width:1px;height:31px;position:absolute;top:-1px;left:50%}.case-tree-children{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.case-structure-note{color:var(--muted);font-size:11px;font-weight:650;line-height:1.55;margin:18px 0 0!important}.case-structure-card--dark .case-structure-note{color:#9fa9b4}.case-contract{gap:12px;margin-top:25px;display:grid}.case-contract>div{background:#0f1318;border:1px solid #343d47;border-radius:7px;padding:15px}.case-contract strong{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.45;display:block}.case-contract code{color:#9da8b3;white-space:normal;word-break:normal;margin-top:8px;font-size:9px;line-height:1.65;display:block}.case-command-block{border:1px solid var(--line);margin-top:12px;padding:24px}.case-command-pipeline{grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;display:grid;margin:18px 0 0!important;padding:0!important}.case-command-pipeline li{border:1px solid var(--line);min-height:76px;color:var(--foreground);text-align:center;word-break:normal;border-right:0;place-items:center;padding:14px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:800;line-height:1.45;display:grid;position:relative}.case-command-pipeline li:last-child{border-right:1px solid var(--line);background:var(--accent-soft);color:var(--accent)}.case-command-pipeline li:not(:last-child):after{z-index:1;border:1px solid var(--line);background:var(--background);width:16px;height:16px;color:var(--accent);content:"→";border-radius:50%;place-items:center;font-size:8px;line-height:1;display:grid;position:absolute;top:50%;right:-8px;transform:translateY(-50%)}.case-command-block>p:last-child{color:var(--muted);margin:16px 0 0;font-size:12px;line-height:1.65}.case-policy-list{border-top:1px solid var(--line);margin:12px 0 0}.case-policy-list div{border-bottom:1px solid var(--line);grid-template-columns:185px minmax(0,1fr);gap:18px;padding:14px 0;display:grid}.case-policy-list dt{color:var(--foreground);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:800;line-height:1.5}.case-policy-list dd{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.case-inline-link{width:fit-content;color:var(--foreground);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:5px;align-items:center;gap:8px;margin-top:22px;font-size:13px;font-weight:800;line-height:1.5;text-decoration-thickness:2px;display:inline-flex}.case-inline-link:hover,.case-inline-link:focus-visible{color:var(--accent)}.case-inline-links{flex-wrap:wrap;gap:2px 24px;display:flex}.case-screen-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:28px;display:grid}.case-screen-gallery figure{border:1px solid var(--line);background:#0b0e12;margin:0;overflow:hidden}.case-screen-gallery img{aspect-ratio:1.704;object-fit:cover;width:100%;display:block}.case-screen-gallery figcaption{border-top:1px solid #28313a;flex-direction:column;min-height:104px;padding:14px;display:flex}.case-screen-gallery figcaption strong{color:#fff;font-size:13px;line-height:1.4}.case-screen-gallery figcaption span{color:#aeb7c1;margin-top:5px;font-size:10px;line-height:1.55}.project-visual--case{background:#0b0e12;border-color:#202830;border-radius:12px;overflow:hidden}.project-visual--case figcaption{color:#b5bdc7;border-top-color:#29313a}.case-data-flow{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px;display:grid}.case-data-flow>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:168px;padding:21px}.case-data-flow strong{color:var(--foreground);margin-top:19px;font-size:16px;line-height:1.35;display:block}.case-data-flow p{color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.6}.case-reconnect-note,.case-limit-note{border-left:3px solid var(--accent);background:var(--accent-soft);color:#315344;padding:17px 19px;font-size:12px;line-height:1.65;margin:12px 0 0!important}.case-reconnect-note strong,.case-limit-note strong{color:var(--accent);letter-spacing:.06em;margin-right:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px}.case-canvas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.case-canvas-grid section{background:#151a20;border:1px solid #202830;min-height:158px;padding:23px}.case-canvas-grid span{color:var(--accent-bright)}.case-canvas-grid h3{color:#fff;margin:21px 0 0;font-size:18px;font-weight:820;line-height:1.35}.case-canvas-grid p{color:#aeb7c1;margin:8px 0 0;font-size:11px;line-height:1.55}.case-analysis-pipeline{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;display:grid;margin:28px 0 0!important;padding:0!important}.case-analysis-pipeline li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:132px;padding:18px}.case-analysis-pipeline strong{color:var(--foreground);word-break:normal;margin-top:18px;font-size:14px;line-height:1.35;display:block}.case-analysis-pipeline p{color:var(--muted);margin:7px 0 0;font-size:10px;line-height:1.5}.case-analysis-evidence{color:#cbd2da;background:#151a20;border:1px solid #202830;grid-template-columns:minmax(200px,.72fr) minmax(0,1fr);gap:18px 30px;margin-top:12px;padding:24px;display:grid}.case-analysis-evidence h3{color:#fff;margin:9px 0 0;font-size:18px;font-weight:820;line-height:1.4}.case-analysis-evidence .case-card-label{color:var(--accent-bright)}.case-analysis-evidence ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;list-style:none;display:grid;margin:0!important;padding:0!important}.case-analysis-evidence li{color:#cbd2da;word-break:normal;border:1px solid #343d47;padding:9px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px;font-weight:750;line-height:1.4;margin:0!important}.case-analysis-evidence>p{color:#9fa9b4;border-top:1px solid #343d47;grid-column:1/-1;margin:0;padding-top:17px;font-size:11px;line-height:1.65}.case-validation-scroll{margin-top:28px}.case-validation-table{min-width:920px;font-size:11px}.case-validation-table th{color:#fff;letter-spacing:.06em;background:#151a20;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:9px}.case-validation-table th,.case-validation-table td{padding:15px}.case-validation-table td:last-child{color:#14633f;font-weight:750}.case-evidence-grid,.case-responsibility-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.case-evidence-grid section,.case-responsibility-grid section{border:1px solid var(--line);background:var(--surface);min-height:170px;padding:20px}.case-evidence-grid h3,.case-responsibility-grid h3{color:var(--foreground);margin:19px 0 0;font-size:15px;font-weight:820;line-height:1.4}.case-evidence-grid p,.case-responsibility-grid p{color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.6}.case-responsibility-grid{margin-top:28px}.page-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:110px;padding:32px 0;display:flex}.page-footer div{gap:22px;display:flex}.portfolio-page .content-hero{padding:64px 0 52px}.portfolio-page .content-eyebrow{color:var(--muted);letter-spacing:.08em;margin-bottom:10px}.portfolio-page .content-hero h1{font-size:var(--type-section-title);letter-spacing:-.05em;font-weight:800;line-height:1.2}.portfolio-page .content-description{max-width:650px;font-size:var(--text-body);margin-top:16px;font-weight:500}.portfolio-page .content-text-link{text-decoration:underline;-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:5px;border:0;border-radius:0;padding:0}.portfolio-page .article-section-heading>span{display:none}.portfolio-hub{max-width:1080px}.portfolio-hub .article-section{grid-template-columns:202px minmax(0,1fr);gap:30px}.portfolio-profile{grid-template-columns:148px minmax(0,1fr);align-items:start;gap:28px;display:grid}.portfolio-profile-photo{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);background:var(--surface);width:148px;height:auto;display:block}.portfolio-profile h3{color:var(--foreground);font-size:var(--type-entity-title);letter-spacing:-.04em;margin:0 0 16px;font-weight:800;line-height:1.3}.portfolio-contact-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:32px 0 0;padding:18px 0;display:grid}.portfolio-contact-facts div{min-width:0;padding:0}.portfolio-contact-facts dt,.portfolio-role-heading span{color:var(--accent);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:850}.portfolio-contact-facts dd{min-width:0;color:var(--foreground);overflow-wrap:anywhere;margin:7px 0 0;font-size:13px;font-weight:750}.portfolio-contact-facts a:hover,.portfolio-contact-facts a:focus-visible,.portfolio-contact-links a:hover,.portfolio-contact-links a:focus-visible{color:var(--accent)}.portfolio-section-intro{margin-bottom:24px!important}.portfolio-entry-list{border-top:1px solid var(--line);margin-top:24px}.portfolio-entry{border-bottom:1px solid var(--line);grid-template-columns:164px minmax(0,1fr) 24px;align-items:start;gap:28px;padding:28px 0;display:grid;position:relative}.portfolio-entry-kicker{color:var(--accent);letter-spacing:-.01em;padding-top:4px;font-size:11px;font-weight:780;line-height:1.55}.portfolio-entry-body{min-width:0}.portfolio-entry-body h2{color:var(--foreground);letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:21px;font-weight:820;line-height:1.35}.portfolio-entry-body>p{max-width:680px;color:var(--text-secondary);margin:10px 0 0;font-size:14px;line-height:1.72}.portfolio-entry-meta{color:var(--muted);flex-wrap:wrap;gap:6px 20px;margin-top:16px;font-size:12px;font-weight:650;line-height:1.55;display:flex}.portfolio-entry-arrow{color:var(--subtle);font-size:18px;line-height:1.35;transition:color .14s,transform .14s}.portfolio-entry:hover .portfolio-entry-arrow,.portfolio-entry:focus-visible .portfolio-entry-arrow{color:var(--accent);transform:translate(2px,-2px)}.portfolio-entry:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.portfolio-role-heading{margin-bottom:18px}.portfolio-role-heading h3{color:var(--foreground);font-size:var(--type-project-title);letter-spacing:-.035em;margin:6px 0 0;font-weight:800;line-height:1.4}.portfolio-skill-list{border-top:1px solid var(--line)}.portfolio-skill-list section{border-bottom:1px solid var(--line);grid-template-columns:190px minmax(0,1fr);align-items:baseline;gap:28px;padding:18px 0;display:grid}.portfolio-skill-list h3{color:var(--foreground);margin:0;font-size:15px;font-weight:800;line-height:1.5}.portfolio-skill-list p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.7}.portfolio-contact-links{flex-wrap:wrap;gap:8px 24px;margin-top:22px;display:flex}.portfolio-contact-links a{color:var(--foreground);text-decoration:underline;-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:5px;font-size:13px;font-weight:800}@media (max-width:760px){.page-site-header-inner{width:min(calc(100% - 40px), var(--max-width));flex-direction:column;align-items:flex-start;padding:18px 0}.page-site-header .site-nav{justify-content:flex-start;gap:11px 20px}.content-hero{grid-template-columns:1fr;gap:22px;padding:48px 0 40px}.content-hero h1{font-size:var(--type-section-title)}.content-description{font-size:var(--text-body)}.content-actions{justify-content:flex-start}.content-index{grid-template-columns:1fr}.content-card{min-height:310px;padding:30px 24px}.technical-article{margin-inline:0}.technical-article--case-study .case-project-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.technical-article--case-study .case-project-facts div{min-height:102px;padding:19px 16px}.technical-article--case-study .case-project-facts div:nth-child(2){border-right:0}.technical-article--case-study .case-project-facts div:nth-child(-n+2){border-bottom:1px solid var(--line)}.portfolio-hub .article-section,.portfolio-profile{grid-template-columns:1fr}.portfolio-profile-photo{width:124px}.portfolio-contact-facts{grid-template-columns:1fr;gap:14px}.portfolio-entry{grid-template-columns:minmax(0,1fr) 22px;gap:12px 18px;padding:24px 0}.portfolio-entry-kicker{grid-column:1/-1;padding-top:0}.portfolio-entry-body{grid-column:1}.portfolio-entry-arrow{grid-area:2/2}.portfolio-skill-list section{grid-template-columns:1fr;gap:5px}.project-facts{grid-template-columns:1fr}.case-study-overview{padding:50px 0}.case-core-contribution{grid-template-columns:1fr;gap:16px;padding:48px 0}.case-core-contribution>p{margin:0}.case-core-contribution h2{font-size:var(--type-featured-project-title)}.case-study-overview-head{grid-template-columns:1fr;gap:24px}.case-study-overview-head h2{font-size:var(--type-featured-project-title)}.case-product-flow,.case-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-product-flow li:nth-child(2):after{display:none}.case-metric-grid div{min-height:110px;padding:18px}.case-metric-grid dd{font-size:32px}.article-section{grid-template-columns:1fr;gap:24px;padding:44px 0}.technical-article--case-study .article-section{grid-template-columns:1fr;gap:24px}.article-section-heading h2{font-size:var(--type-entity-title)}.case-architecture-grid,.case-screen-gallery,.case-data-flow,.case-canvas-grid,.case-evidence-grid,.case-responsibility-grid{grid-template-columns:1fr}.case-structure-card{min-height:auto;padding:20px}.case-command-pipeline{grid-template-columns:1fr}.case-command-pipeline li{border-right:1px solid var(--line);border-bottom:0;min-height:58px}.case-command-pipeline li:last-child{border-bottom:1px solid var(--line)}.case-command-pipeline li:not(:last-child):after{content:"↓";top:auto;bottom:-8px;right:50%;transform:translate(50%)}.case-policy-list div{grid-template-columns:1fr;gap:4px}.case-screen-gallery figcaption{min-height:auto}.case-analysis-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}.case-analysis-evidence{grid-template-columns:1fr}.case-analysis-evidence>p{grid-column:auto}.case-validation-scroll{margin-inline:-10px}.architecture-flow,.article-code{margin-inline:-10px;padding:20px 16px;font-size:12px}.project-visual{margin-top:22px}.project-visual--poster{width:100%}.architecture-steps,.chart-engine-flow{grid-template-columns:1fr}.architecture-steps span{min-height:72px}.architecture-steps span:not(:last-child):after{content:"↓"}.runtime-journey{grid-template-columns:1fr}.runtime-journey-step{border-right:0;border-bottom:1px solid var(--line);min-height:92px}.runtime-journey-step:last-child{border-bottom:0}.runtime-journey-step:not(:last-child):after{content:"↓";top:auto;bottom:-10px;right:50%;transform:translate(50%)}.runtime-comparison-grid{grid-template-columns:1fr}.runtime-comparison-column+.runtime-comparison-column{border-top:1px solid var(--line);border-left:0}.fiber-tree-board{grid-template-columns:1fr;padding:18px}.fiber-alternate-bridge{grid-template-rows:1fr;grid-template-columns:auto repeat(3,1fr);min-height:66px}.fiber-alternate-bridge i{border-top:0;border-left:1px dashed var(--accent);justify-self:center;width:1px;height:52px}.fiber-alternate-bridge i:before,.fiber-alternate-bridge i:after{left:-2px;right:auto}.fiber-alternate-bridge i:before{top:0;transform:rotate(-45deg)}.fiber-alternate-bridge i:after{top:auto;bottom:0;transform:rotate(135deg)}.scheduler-lane{flex-wrap:wrap}.scheduler-lane>strong{width:100%;min-height:auto}.scheduler-lane>span{min-width:86px}.keyed-move-visual{grid-template-columns:1fr}.keyed-move-arrow b{transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}@page{size:A4;margin:12mm 14mm}@media print{:root{--background:#fff;--surface:#fff;--surface-strong:#eee;--foreground:#111;--muted:#333;--subtle:#666;--line:#777}.site-nav,.page-site-header,.page-footer,.print-button,.contact,footer{display:none}.top-banner{background:#fff;min-height:auto}.top-banner-inner{min-height:auto;padding:4mm 0}body{background:#fff;font-size:10pt}.resume-sheet{width:100%;margin:0;padding-top:0}.profile{padding:7mm 0 10mm}.resume-section{padding-bottom:12mm}.section-title h2{font-size:27pt}.resume-list{margin-top:7mm}.resume-item+.resume-item{margin-top:8mm;padding-top:8mm}.project-highlights{margin-top:5mm}.project-highlight{padding:4mm 0}.supporting-project{margin-top:8mm;padding-top:7mm}main,footer,.top-banner-inner,.content-main{width:100%}.content-main{padding-bottom:0}.content-hero{grid-template-columns:1fr;padding:0 0 12mm}.content-hero h1{font-size:31pt}.content-description{margin-top:4mm;font-size:11pt}.content-actions{display:none}.cover-letter-section,.article-section{grid-template-columns:34mm minmax(0,1fr);gap:8mm}.cover-letter-section{padding:9mm 0}.cover-letter-site .content-hero,.cover-letter-page{width:170mm;max-width:100%;margin-inline:auto}.cover-letter-site .content-hero{padding:0 0 5mm}.cover-letter-intro{padding-top:0}.cover-letter-section-heading{position:static}.cover-letter-copy p{font-size:9.5pt;line-height:1.72}.cover-letter-intro>p:first-child{font-size:11.5pt;line-height:1.6}.cover-letter-copy p+p{margin-top:4mm}.article-callout,.article-emphasis{background:#f1f1f1}.project-highlight,.content-card,.article-subsection,.article-table tr,.project-visual,.case-study-overview-head,.case-core-contribution,.case-product-flow,.case-metric-grid,.case-architecture-grid,.case-structure-card,.case-command-block,.case-policy-list,.case-screen-gallery figure,.case-data-flow,.case-canvas-grid,.case-analysis-pipeline,.case-analysis-evidence,.case-evidence-grid,.case-responsibility-grid,.architecture-steps,.chart-engine-flow,.runtime-journey,.runtime-comparison-grid,.fiber-tree-board,.scheduler-visual,.keyed-move-visual{break-inside:avoid}h1,h2,h3,h4,h5{break-after:avoid}a{text-decoration:none}}
