:root{--canvas:#f8f7f3;--panel:#efeee8;--panel-2:#fff;--ink:#242824;--muted:#646760;--muted-2:#71756c;--line:#dcded5;--line-strong:#bfc3b9;--accent:#c43c1b;--orange:#ec4e27;--lime:#386a46;--sans:'DM Sans',Arial,sans-serif;--mono:'IBM Plex Mono',monospace;--serif:'DM Serif Display',Georgia,serif}
body[data-theme='dark']{--canvas:#1d211e;--panel:#282e29;--panel-2:#242a25;--ink:#f6f5ef;--muted:#b9c0b6;--muted-2:#a9b3a5;--line:#3d463e;--line-strong:#646f63;--accent:#ff916d;--orange:#ff916d;--lime:#a7d695;color-scheme:dark}
body[data-theme='light']{--canvas:#f8f7f3;--panel:#efeee8;--panel-2:#fff;--ink:#242824;--muted:#646760;--muted-2:#71756c;--line:#dcded5;--line-strong:#bfc3b9;--lime:#386a46;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#f3bbaa;color:#242824}.shell{width:min(1240px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;left:20px;top:-80px;z-index:20;padding:15px;background:var(--ink);color:var(--canvas)}.skip-link:focus{top:10px}.site-header{background:var(--canvas);position:sticky;top:0;z-index:10}.nav{min-height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:baseline;font-size:31px;font-weight:700;letter-spacing:-1.7px;gap:0}.brand-dot{color:var(--orange)}.brand-caption{font:9px var(--mono);letter-spacing:1px;margin-left:19px;color:var(--muted)}.nav-links{display:flex;gap:28px;font-size:12px;color:var(--muted)}.nav-links a{padding:14px 0}.nav-links a:hover,.nav-links a[aria-current]{color:var(--accent)}.nav-links span{font:9px var(--mono);margin-left:3px;color:var(--muted-2)}.nav-actions{display:flex;align-items:center;gap:20px}.nav-contact{font-size:12px;font-weight:600;border-bottom:1px solid var(--ink);padding:10px 0}.nav-contact span{margin-left:16px}.theme-btn{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink)}.theme-btn svg{width:17px;height:17px}.sun-icon,body[data-theme='dark'] .moon-icon{display:none}body[data-theme='dark'] .sun-icon{display:block}.theme-btn:hover{border-color:var(--accent)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:58px;align-items:center;padding:76px 0 62px}.eyebrow{font:10px/1.6 var(--mono);letter-spacing:1.1px;color:var(--muted);display:flex;align-items:center;gap:9px}.status-dot,.tiny-dot{display:inline-block;width:6px;height:6px;background:#4b8651;border-radius:50%;flex-shrink:0}.status-dot{box-shadow:0 0 0 4px #4b865113}h1{font-size:clamp(52px,5.45vw,80px);font-weight:550;letter-spacing:-4.5px;line-height:1.04;max-width:none;margin-top:30px}h1 em{font-family:var(--serif);color:var(--accent);font-weight:400;letter-spacing:-3px}.hero-bottom{display:flex;align-items:center;gap:26px;margin-top:33px}.hero-copy{max-width:365px;font-size:15px;line-height:1.7;color:var(--muted);margin:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:30px;min-height:48px;padding:14px 21px;border:1px solid transparent;border-radius:5px;font-size:12px;font-weight:600;white-space:nowrap;transition:transform .2s,background .2s}.button.primary{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.button:hover{transform:translateY(-2px)}.button.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.button span{font-size:19px}.hero-links{display:flex;gap:23px;margin-top:29px;font-size:11px;color:var(--muted)}.hero-links a:hover{color:var(--accent)}.hero-links span{margin-left:6px}.hero-aside{padding-top:4px}.mascot-panel{position:relative;border:1px solid var(--line);background:#efeee7;min-height:327px;border-radius:9px;overflow:hidden;color:#4a5348}.panel-corner{position:absolute;left:20px;top:22px;font:8px/1.7 var(--mono);letter-spacing:1px}.panel-plus{position:absolute;right:19px;top:18px;font-size:32px;color:#dc532f}.mascot-panel img{display:block;width:236px;height:auto;position:relative;margin:66px auto 38px;transform:rotate(-5deg)}.mascot-caption{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:14px 16px;background:#e6e7dd;font:7px var(--mono);letter-spacing:.35px}.mascot-caption .tiny-dot{width:5px;height:5px}.mascot-caption>span:last-child{font-size:16px}.location{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font:8px var(--mono);letter-spacing:.9px;color:var(--muted)}.location-mark{font-size:19px}.credential-strip{display:grid;grid-template-columns:1.25fr 1.2fr 1fr 1fr;gap:24px;align-items:center;padding:24px 0;border-block:1px solid var(--line)}.credential-strip>span{font:9px/1.7 var(--mono);letter-spacing:.5px;color:var(--muted);max-width:150px}.credential-strip>div{display:grid;gap:5px}.credential-strip b{font-size:12px;font-weight:550}.credential-strip div span{font-size:10px;color:var(--muted)}
@media(min-width:1500px){.hero{padding-block:95px 80px}h1{font-size:84px}}
@media(max-width:1100px){.shell{width:calc(100% - 72px)}.brand-caption{display:none}.hero{grid-template-columns:minmax(0,1fr) 250px;gap:32px}h1{font-size:clamp(48px,6vw,70px);letter-spacing:-3px}.hero-bottom{align-items:flex-start;flex-direction:column;gap:22px}.mascot-panel{min-height:300px}.mascot-panel img{width:207px;margin-top:66px}.mascot-caption{font-size:6px;padding-inline:11px}.credential-strip{gap:18px}.credential-strip>span{font-size:8px}}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.nav{min-height:78px}.nav-actions{gap:13px}.nav-links{gap:16px}.nav-links span{display:none}.hero{gap:28px;grid-template-columns:1fr 200px;padding-top:52px;padding-bottom:46px}h1{font-size:48px;letter-spacing:-2.8px}.hero-copy{font-size:14px}.hero .eyebrow{font-size:8px;letter-spacing:.5px}.mascot-panel img{width:175px}.mascot-caption{font-size:5px;gap:4px}.mascot-panel{min-height:275px}.location{font-size:6px}.panel-corner{font-size:6px;left:14px}.credential-strip{grid-template-columns:repeat(3,1fr);gap:16px}.credential-strip>span{grid-column:1/-1;max-width:none}.credential-strip b{font-size:11px}.credential-strip div span{font-size:9px}}
@media(max-width:580px){.nav-contact{font-size:11px}.nav-links{display:none;position:absolute;left:0;right:0;top:78px;padding:16px 20px;background:var(--canvas);border-bottom:1px solid var(--line)}.nav-links.is-open{display:flex;flex-direction:column;gap:3px}.nav-links a{font-size:16px;padding:13px 4px}.nav-links span{display:inline}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent}.menu-toggle span{width:15px;height:1px;background:var(--ink);margin-inline:auto}.hero{grid-template-columns:1fr;padding-top:42px;gap:36px}.hero .eyebrow{font-size:8px}h1{font-size:clamp(44px,9.1vw,54px);letter-spacing:-2.5px;margin-top:24px}h1 em{letter-spacing:-1.5px}.hero-bottom{margin-top:24px}.hero-copy{max-width:350px;font-size:15px}.hero-links{margin-top:23px}.hero-aside{display:none}.credential-strip{padding-block:21px}.credential-strip>div{gap:5px}.credential-strip b{font-size:10px}.credential-strip div span{font-size:9px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.section{padding:86px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:34px}.section-index{color:var(--accent)}h2{font-size:clamp(35px,3.6vw,49px);font-weight:500;line-height:1.09;letter-spacing:-2.1px;margin-top:16px}h2 em{font:italic 400 1em var(--serif);letter-spacing:-1.5px}.section-heading>p{font-size:12px;line-height:1.65;color:var(--muted);padding-bottom:2px}.project-grid{display:grid;grid-template-columns:1.13fr 1fr;gap:42px 26px}.project-card{min-width:0}.project-cover{display:flex;flex-direction:column;height:306px;border-radius:8px;padding:23px 25px;position:relative;overflow:hidden;transition:transform .25s}.project-cover:hover{transform:translateY(-4px)}.cover-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font:7px/1.5 var(--mono);letter-spacing:.65px}.cover-top>span{display:flex;align-items:center;gap:6px}.live-dot{width:5px;height:5px;background:#bfd598;border-radius:50%}.cover-briefs{background:#293d32;color:#faf8ef}.briefs-identity{display:flex;justify-content:space-between;align-items:flex-end;flex:1;padding-bottom:19px}.briefs-wordmark{font-size:58px;letter-spacing:-3.5px;line-height:.89;font-weight:550}.briefs-wordmark em{font:italic 400 1.07em var(--serif);letter-spacing:-1px}.briefs-caption{font:7px/1.7 var(--mono);letter-spacing:.5px;opacity:.7;margin-bottom:3px}.briefs-bottom,.cover-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff30;padding-top:15px;font:8px var(--mono)}.cover-arrow{width:28px;height:28px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font:17px var(--sans);transition:transform .2s}.project-cover:hover .cover-arrow{transform:rotate(45deg)}.cover-agent{background:#dee5eb;color:#293b4c}.agent-identity{flex:1;display:flex;align-items:center;justify-content:center;gap:25px;padding:15px 0}.agent-symbol{font-size:91px;font-weight:400;line-height:1;letter-spacing:-9px}.agent-identity>span:last-child{font-size:41px;line-height:1.02;letter-spacing:-1.8px}.agent-identity em{font:italic 400 1.08em var(--serif)}.agent-models{display:flex;align-items:center;gap:8px}.agent-models>span:not(:last-child){border:1px solid #293b4c40;border-radius:4px;font:8px var(--mono);padding:7px 14px}.agent-models .cover-arrow{margin-left:auto}.cover-fatigue{background:#efe1db;color:#663f39;height:265px}.fatigue-identity{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px}.fatigue-identity>span{font-size:43px;line-height:1.07;letter-spacing:-1.7px}.fatigue-identity em{font:italic 400 1.05em var(--serif)}.fatigue-identity svg{width:130px;max-width:31%;color:#b26b61}.cover-fatigue .cover-bottom{border-color:#663f3930}.cover-split{background:#e9e9c8;color:#4b502c;height:265px}.split-identity{display:flex;align-items:center;justify-content:center;gap:20px;flex:1}.split-symbol{font:400 84px var(--sans)}.split-identity>span:last-child{font-size:40px;font-weight:650;letter-spacing:-2px}.split-italic{font:italic 400 1.08em var(--serif)}.split-identity small{display:block;font-size:12px;font-weight:400;letter-spacing:0;margin-top:7px}.cover-split .cover-bottom{border-color:#4b502c30}.project-info{padding-top:20px}.project-title-line{display:flex;align-items:center;justify-content:space-between;gap:15px}.project-title-line h3{font-size:19px;letter-spacing:-.5px;font-weight:550}.project-title-line h3 a:hover{color:var(--accent)}.project-title-line>span{font:7px/1.5 var(--mono);letter-spacing:.6px;color:var(--muted);text-align:right}.project-info p{font-size:12px;color:var(--muted);line-height:1.7;max-width:450px;margin-top:10px}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.project-tags span{font:8px var(--mono);border:1px solid var(--line);border-radius:3px;padding:6px 9px;color:var(--muted)}.more-work{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:33px 27px;font-size:11px;color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:18px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font-size:11px;color:var(--ink)}.text-link:hover{color:var(--accent);border-color:var(--accent)}.text-link>span{font-size:17px}.project-archive{border-block:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.project-archive summary{display:flex;align-items:center;gap:14px;padding:20px 0;font-size:12px;font-weight:500}.archive-count{font:8px var(--mono);color:var(--muted)}.details-plus{margin-left:auto;font-size:21px;font-weight:400}details[open] .details-plus{transform:rotate(45deg)}.archive-list>a{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:18px;padding:17px 0;border-top:1px solid var(--line);font-size:11px}.archive-list strong{font-weight:500}.archive-list>a>span:nth-child(2){font:9px var(--mono);color:var(--muted)}.archive-list>a:hover{color:var(--accent)}.about-band{background:var(--panel);padding:74px 0}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about-heading h2{font-size:43px;margin-top:24px}.about-signature{font:italic 30px var(--serif);margin-top:54px}.about-signature span{display:block;font:8px var(--mono);letter-spacing:.6px;margin-top:11px;color:var(--muted)}.about-content>p{font-size:13px;line-height:1.85;color:var(--muted);margin-top:16px}.about-content>p.about-lead{font-size:18px;line-height:1.6;color:var(--ink);margin-top:0;letter-spacing:-.3px}.education-mini{display:flex;align-items:center;gap:15px;margin-top:25px;padding-top:21px;border-top:1px solid var(--line)}.education-mark{font-size:26px;color:var(--accent)}.education-mini strong{display:block;font-size:12px;font-weight:500}.education-mini div span{display:block;font-size:10px;margin-top:5px;color:var(--muted);line-height:1.6}.research-details{margin-top:20px;border-top:1px solid var(--line)}.research-details summary{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding-top:17px}.research-details>div{font-size:11px;color:var(--muted);line-height:1.8}.research-details p{margin-top:20px}.research-details strong{color:var(--ink);font-weight:550}.research-details ul{padding-left:17px}.toolkit-section{padding-bottom:76px}.toolkit-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.toolkit-item{padding:30px 29px 0;border-right:1px solid var(--line)}.toolkit-item:first-child{padding-left:0}.toolkit-item:last-child{border:0;padding-right:0}.toolkit-icon{font:24px var(--mono);color:var(--accent);display:block;height:43px}.toolkit-item h3{font-size:16px;letter-spacing:-.4px;font-weight:550;margin-top:15px}.toolkit-item p{font-size:12px;line-height:1.7;color:var(--muted);margin-top:10px;max-width:260px}.toolkit-item>div{font:9px/1.9 var(--mono);color:var(--muted);margin-top:23px}.experience-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;border-top:1px solid var(--line);padding-block:76px 86px}.experience-intro>p{color:var(--muted);font-size:12px;line-height:1.7;margin-top:22px}.experience-intro .text-link{margin-top:25px}.timeline-item{padding:24px 0;border-top:1px solid var(--line)}.timeline-item:first-child{padding-top:0;border-top:0}.timeline-item:last-child{padding-bottom:0}.role-meta{display:flex;align-items:center;gap:12px;font:8px var(--mono);letter-spacing:.5px;color:var(--muted)}.current-tag{color:var(--lime);font-size:7px;border:1px solid var(--line-strong);border-radius:3px;padding:3px 5px}.role-heading{display:flex;justify-content:space-between;align-items:baseline;gap:15px;margin-top:11px}.role-heading h3{font-size:16px;font-weight:550;letter-spacing:-.4px}.role-heading>span{font-size:11px;color:var(--muted);text-align:right}.timeline-item p{color:var(--muted);font-size:12px;line-height:1.8;margin-top:11px;max-width:495px}.contact-section{padding:42px 45px;background:#ed512c;border-radius:10px;color:#fff7ee}.contact-top{display:flex;align-items:center;justify-content:space-between}.contact-top .eyebrow{color:#fff7ee;font-size:8px;letter-spacing:.6px}.contact-top .status-dot{background:#fff7ee;box-shadow:none}.contact-star{font-size:37px;font-weight:400}.contact-section h2{font-size:clamp(43px,5.25vw,70px);letter-spacing:-3px;margin-top:23px;line-height:1.07}.contact-section h2 em{letter-spacing:-2px}.contact-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:33px;gap:25px}.email-link{display:flex;align-items:center;gap:28px;font-size:15px;padding-bottom:9px;border-bottom:1px solid #fff7ee80}.email-link:hover{border-color:#fff7ee}.email-link span{font-size:24px}.contact-socials{display:flex;gap:23px;font-size:10px;padding-bottom:10px}.contact-socials a:hover{text-decoration:underline;text-underline-offset:4px}.footer{display:flex;justify-content:space-between;align-items:center;padding:30px 0;margin-top:22px;gap:20px}.footer-brand{font-size:26px}.footer>span,.footer>a:last-child{font:8px var(--mono);letter-spacing:.5px;color:var(--muted)}.footer>a:last-child span{font-size:14px;margin-left:10px}
@media(max-width:1100px){.project-cover{padding:20px;height:280px}.briefs-wordmark{font-size:51px}.briefs-caption{font-size:6px}.agent-identity{gap:16px}.agent-identity>span:last-child{font-size:34px}.agent-symbol{font-size:76px}.cover-fatigue,.cover-split{height:240px}.fatigue-identity>span{font-size:35px}.split-identity>span:last-child{font-size:33px}.split-symbol{font-size:74px}.project-title-line>span{font-size:6px}.project-title-line h3{font-size:17px}.about-layout{gap:50px}.about-heading h2{font-size:39px}.experience-section{gap:45px}.role-heading{align-items:flex-start;flex-direction:column;gap:6px}.role-heading>span{text-align:left}}
@media(max-width:760px){.section{padding-block:61px}.section-heading{margin-bottom:28px}h2{font-size:37px;letter-spacing:-1.7px}.section-heading>p{font-size:10px}.project-grid{gap:32px 19px;grid-template-columns:1fr 1fr}.project-cover{height:248px;padding:16px}.cover-top{font-size:5px;letter-spacing:.4px}.briefs-wordmark{font-size:44px}.briefs-caption{display:none}.briefs-bottom,.cover-bottom{font-size:6px}.cover-arrow{width:23px;height:23px;font-size:14px}.agent-identity{gap:10px}.agent-identity>span:last-child{font-size:28px}.agent-symbol{font-size:54px;letter-spacing:-6px}.agent-models{gap:5px}.agent-models>span:not(:last-child){padding:5px 9px;font-size:6px}.cover-fatigue,.cover-split{height:220px}.fatigue-identity>span{font-size:29px}.fatigue-identity svg{max-width:23%}.split-identity{gap:8px}.split-symbol{font-size:58px}.split-identity>span:last-child{font-size:29px}.split-identity small{font-size:10px}.project-title-line{display:block}.project-title-line>span{display:block;margin-top:7px;text-align:left;font-size:6px}.project-info p{font-size:11px}.project-tags span{font-size:7px;padding:5px 7px}.more-work{font-size:10px}.about-band{padding-block:55px}.about-layout{gap:35px}.about-heading h2{font-size:33px}.about-content>p.about-lead{font-size:16px}.about-content>p{font-size:12px}.about-heading .eyebrow{font-size:8px}.about-signature span{font-size:6px;line-height:1.6}.toolkit-item{padding-inline:18px}.toolkit-item h3{font-size:14px}.toolkit-item p{font-size:11px}.toolkit-item>div{font-size:8px}.experience-section{gap:33px;grid-template-columns:.85fr 1.15fr}.experience-intro h2{font-size:35px}.role-heading h3{font-size:15px}.contact-section{padding:30px}.contact-section h2{font-size:52px;letter-spacing:-2.5px}.contact-section h2 em{letter-spacing:-2px}.email-link{font-size:13px}.contact-top .eyebrow{font-size:7px}.footer>span{font-size:6px}}
@media(max-width:580px){.section{padding-block:50px}.section-heading{align-items:flex-start;flex-direction:column;gap:16px}.section-heading>p{font-size:12px}.section-heading>p br{display:none}h2{font-size:36px}.project-grid{grid-template-columns:1fr;gap:29px}.project-cover{height:265px;padding:20px}.cover-top{font-size:6px;letter-spacing:.5px}.briefs-wordmark{font-size:60px}.briefs-caption{display:block;font-size:6px}.briefs-bottom,.cover-bottom{font-size:7px}.cover-arrow{width:27px;height:27px;font-size:17px}.agent-identity{gap:30px}.agent-symbol{font-size:90px}.agent-identity>span:last-child{font-size:40px}.agent-models{gap:8px}.agent-models>span:not(:last-child){font-size:8px;padding:7px 14px}.cover-fatigue,.cover-split{height:230px}.fatigue-identity>span{font-size:37px}.fatigue-identity svg{max-width:30%}.split-identity{gap:23px}.split-symbol{font-size:78px}.split-identity>span:last-child{font-size:41px}.split-identity small{font-size:11px}.project-info{padding-top:17px}.project-title-line{display:flex;gap:8px}.project-title-line h3{font-size:19px}.project-title-line>span{margin:0;text-align:right;font-size:6px}.project-info p{font-size:12px}.project-tags span{font-size:8px}.more-work{align-items:flex-start;flex-direction:column;gap:14px;padding-block:26px;font-size:11px}.project-archive summary{font-size:11px}.archive-count{font-size:7px}.archive-list>a{grid-template-columns:1fr auto;gap:7px}.archive-list>a>span:nth-child(2){grid-column:1;grid-row:2;font-size:8px}.archive-list>a>span:last-child{grid-column:2;grid-row:1/3}.about-layout{grid-template-columns:1fr;gap:27px}.about-heading h2{font-size:37px;margin-top:17px}.about-signature{display:none}.about-content>p.about-lead{font-size:18px}.about-content>p{font-size:13px}.toolkit-grid{grid-template-columns:1fr}.toolkit-item,.toolkit-item:first-child,.toolkit-item:last-child{padding:25px 0;border-right:0;border-bottom:1px solid var(--line)}.toolkit-item:last-child{border-bottom:0;padding-bottom:0}.toolkit-icon{height:32px}.toolkit-item h3{font-size:18px;margin-top:10px}.toolkit-item p{font-size:13px;max-width:none}.toolkit-item>div{font-size:10px;margin-top:16px}.experience-section{grid-template-columns:1fr;gap:34px}.experience-intro h2{font-size:37px}.experience-intro h2 br{display:none}.experience-intro>p{font-size:13px;margin-top:15px}.experience-intro>p br{display:none}.timeline-item{padding-block:23px}.role-heading h3{font-size:18px}.role-heading>span{font-size:12px}.timeline-item p{font-size:13px}.role-meta{font-size:9px}.contact-section{padding:26px 23px}.contact-top .eyebrow{font-size:6px;letter-spacing:.25px;max-width:215px}.contact-star{font-size:26px}.contact-section h2{font-size:clamp(36px,8.7vw,46px);letter-spacing:-1.8px;margin-top:22px}.contact-section h2 em{letter-spacing:-1.2px}.contact-bottom{align-items:flex-start;flex-direction:column;margin-top:27px;gap:22px}.email-link{font-size:14px;gap:22px}.contact-socials{font-size:11px;padding:0}.footer{padding-block:24px;flex-wrap:wrap;gap:14px}.footer>span{order:3;flex-basis:100%;font-size:7px}.footer>a:last-child{margin-left:auto;font-size:7px}.footer-brand{font-size:26px}}
/* Engineering case studies: extend the existing palette and editorial layout. */
.capability-strip > a {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding-block: 5px;
}
.capability-strip > a span {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.capability-strip > a:hover b { color: var(--accent); }
.project-grid { align-items: start; }
.project-card { scroll-margin-top: 110px; }
.cover-train .cover-bottom { border-color: #293b4c30; }
.train-identity {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 22px;
  padding-block: 17px;
}
.train-identity > span:last-child {
  font-size: clamp(29px, 3vw, 43px);
  line-height: 1.09;
  letter-spacing: -1.6px;
}
.train-identity em,
.housing-identity em,
.fitfindr-identity em { font: italic 400 1.04em var(--serif); }
.train-route {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 28px;
  height: 96px;
}
.train-route i {
  width: 12px;
  height: 12px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
}
.train-route i:last-child { background: currentColor; }
.train-route > span { flex: 1; border-left: 1.5px dashed currentColor; margin-block: 6px; }
.housing-identity,
.fitfindr-identity { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 16px; }
.housing-identity > span:first-child,
.fitfindr-identity > span:first-child { font-size: clamp(30px, 3vw, 44px); line-height: 1.09; letter-spacing: -1.7px; }
.citation-mark { font: 500 40px var(--mono); color: #99645b; }
.fitfindr-symbol { font-size: 65px; line-height: 1; }
.project-info .engineering-signal {
  margin-top: 19px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: var(--ink);
}
.engineering-signal > span {
  display: block;
  margin-bottom: 5px;
  font: 8px/1.5 var(--mono);
  letter-spacing: .7px;
  color: var(--accent);
}
.project-notes { margin-top: 12px; border-bottom: 1px solid var(--line); }
.project-notes > summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  min-height: 46px;
  padding-block: 10px;
  font-size: 12px;
  font-weight: 550;
}
.project-notes > summary:hover { color: var(--accent); }
.project-notes-body { padding-bottom: 20px; }
.project-notes dl, .cloud-notes dl { margin: 0; }
.project-notes dl > div + div { margin-top: 17px; }
.project-notes dt, .cloud-notes dt { font-size: 12px; font-weight: 600; margin-bottom: 5px; }
.project-notes dd, .cloud-notes dd { margin: 0; font-size: 12px; line-height: 1.8; color: var(--muted); }
.project-evidence { display: flex; flex-wrap: wrap; gap: 12px 19px; margin-top: 19px; }
.project-evidence a { font-size: 11px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line-strong); }
.project-evidence a:hover { color: var(--accent); text-decoration-color: currentColor; }
.engineering-section { padding-bottom: 78px; }
.engineering-section .section-heading h2 { font-size: clamp(34px, 3.55vw, 48px); }
.architecture-panel { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--panel-2); }
.architecture-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 25px; border-bottom: 1px solid var(--line); }
.architecture-header > span { font: 8px/1.6 var(--mono); letter-spacing: .6px; color: var(--muted); }
.architecture-header a { font-size: 10px; color: var(--accent); }
.architecture-flow { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 33px; padding: 34px 25px; margin: 0; }
.architecture-flow li { position: relative; }
.architecture-flow li:not(:last-child)::after { content: '→'; position: absolute; top: 26px; right: -24px; color: var(--accent); font-size: 21px; }
.architecture-step { font: 8px/1.5 var(--mono); letter-spacing: .6px; color: var(--accent); }
.architecture-flow strong { display: block; font-size: 18px; font-weight: 550; letter-spacing: -.5px; margin-top: 10px; }
.architecture-flow p { color: var(--muted); font-size: 12px; line-height: 1.75; margin-top: 8px; max-width: 225px; }
.architecture-foundation { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding: 23px 25px; background: var(--panel); border-top: 1px solid var(--line); }
.foundation-label { display: block; font: 8px/1.6 var(--mono); letter-spacing: .7px; color: var(--muted); margin-bottom: 7px; }
.architecture-foundation strong { font-size: 13px; font-weight: 550; }
.architecture-foundation p { color: var(--muted); font: 9px/1.8 var(--mono); margin-top: 6px; }
.engineering-decisions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 31px; padding-block: 29px 34px; }
.engineering-decisions article > span { font: 8px/1.7 var(--mono); letter-spacing: .5px; color: var(--accent); }
.engineering-decisions h3 { font-size: 16px; font-weight: 550; letter-spacing: -.4px; margin-top: 10px; }
.engineering-decisions p { font-size: 12px; line-height: 1.8; color: var(--muted); margin-top: 8px; }
.cloud-notes { border-block: 1px solid var(--line); }
.cloud-notes > summary { display: flex; gap: 20px; align-items: center; min-height: 70px; padding-block: 16px; }
.cloud-notes-label { font: 8px/1.6 var(--mono); letter-spacing: .6px; color: var(--accent); }
.cloud-notes > summary strong { font-size: 13px; font-weight: 500; }
.cloud-notes-body { padding-bottom: 28px; }
.cloud-notes-body > p { font-size: 13px; line-height: 1.8; color: var(--muted); max-width: 730px; margin-bottom: 23px; }
.cloud-notes dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 31px; margin-bottom: 23px; }
.deployment-article { max-width: 780px; padding-block: 65px; }
.deployment-article h1 { font-size: clamp(39px, 5vw, 64px); margin-bottom: 24px; letter-spacing: -2.5px; }
.deployment-article h2 { font-size: 28px; letter-spacing: -.8px; margin-top: 38px; margin-bottom: 16px; }
.deployment-article p, .deployment-article li { color: var(--muted); font-size: 15px; line-height: 1.8; }
.deployment-article li + li { margin-top: 9px; }
.deployment-article strong { color: var(--ink); font-weight: 550; }
.deployment-article pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 23px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); font: 12px/1.9 var(--mono); }
.deployment-article .text-link { margin-top: 25px; }
@media (max-width: 900px) {
  .train-identity { gap: 13px; }
  .citation-mark { font-size: 29px; }
  .fitfindr-symbol { font-size: 50px; }
  .architecture-header { padding: 18px; }
  .architecture-flow { padding: 26px 18px; gap: 24px; }
  .architecture-flow li:not(:last-child)::after { right: -18px; font-size: 17px; }
  .architecture-flow strong { font-size: 16px; }
  .architecture-flow p { font-size: 11px; }
  .architecture-foundation { padding: 21px 18px; gap: 24px; }
  .engineering-decisions { gap: 21px; }
  .engineering-decisions h3 { font-size: 15px; }
}
@media (max-width: 760px) {
  .capability-strip > a span { font-size: 9px; }
  .train-identity > span:last-child { font-size: 29px; }
  .train-route { width: 18px; height: 80px; }
  .housing-identity > span:first-child, .fitfindr-identity > span:first-child { font-size: 28px; }
  .citation-mark { font-size: 25px; }
  .fitfindr-symbol { font-size: 38px; }
  .engineering-section { padding-bottom: 55px; }
  .architecture-flow { grid-template-columns: 1fr 1fr; gap: 29px 39px; }
  .architecture-flow li:nth-child(2)::after { display: none; }
  .architecture-flow li:not(:last-child)::after { right: -24px; }
  .architecture-flow strong { font-size: 18px; }
  .architecture-flow p { font-size: 12px; max-width: none; }
}
@media (max-width: 580px) {
  .capability-strip { gap: 14px; }
  .capability-strip > a b { font-size: 10px; line-height: 1.5; }
  .capability-strip > a span { font-size: 9px; line-height: 1.7; }
  .project-card { scroll-margin-top: 95px; }
  .train-identity { gap: 20px; }
  .train-identity > span:last-child { font-size: clamp(31px, 8vw, 41px); }
  .train-route { height: 89px; width: 22px; }
  .housing-identity > span:first-child, .fitfindr-identity > span:first-child { font-size: clamp(29px, 8vw, 39px); }
  .citation-mark { font-size: 31px; }
  .fitfindr-symbol { font-size: 48px; }
  .project-notes > summary { min-height: 48px; font-size: 13px; }
  .project-notes dt, .project-notes dd { font-size: 13px; }
  .project-title-line > span { max-width: 110px; }
  .project-info .engineering-signal { font-size: 12px; }
  .architecture-header { flex-direction: column; align-items: flex-start; gap: 9px; }
  .architecture-header > span { font-size: 7px; }
  .architecture-header a { font-size: 11px; }
  .architecture-flow { grid-template-columns: 1fr; padding: 24px 20px; gap: 32px; }
  .architecture-flow li:not(:last-child)::after, .architecture-flow li:nth-child(2)::after { display: block; content: '↓'; top: auto; bottom: -25px; right: auto; left: 0; }
  .architecture-flow strong { margin-top: 6px; }
  .architecture-flow p { margin-top: 5px; font-size: 13px; }
  .architecture-foundation { grid-template-columns: 1fr; gap: 20px; }
  .architecture-foundation p { font-size: 10px; }
  .engineering-decisions { grid-template-columns: 1fr; gap: 24px; }
  .engineering-decisions h3 { font-size: 18px; }
  .engineering-decisions p { font-size: 13px; }
  .cloud-notes > summary { flex-wrap: wrap; gap: 7px 15px; padding-block: 20px; }
  .cloud-notes-label { flex-basis: 100%; }
  .cloud-notes > summary strong { font-size: 13px; }
  .cloud-notes dl { grid-template-columns: 1fr; gap: 20px; }
  .cloud-notes dd { font-size: 13px; }
  .deployment-article { padding-top: 38px; }
  .deployment-article h1 { font-size: 39px; letter-spacing: -1.8px; }
  .deployment-article pre { font-size: 10px; padding: 16px; }
}
/* Byte: an optional, non-modal pet companion using the portfolio theme. */
.byte-hero-trigger {
  display: block;
  width: 100%;
  padding: 0;
  font: inherit;
  text-align: left;
}
.byte-hero-trigger:enabled:hover { border-color: var(--accent); }
.byte-hero-trigger:enabled:hover img { transform: rotate(0deg); }
.byte-hero-trigger img { transition: transform .2s ease; }
.byte-companion { position: relative; z-index: 30; }
.byte-companion [hidden] { display: none !important; }
.byte-companion button, .byte-companion input { font-family: var(--sans); }
.byte-companion button { touch-action: manipulation; }
.byte-companion input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.byte-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.byte-launcher {
  position: fixed;
  right: 26px;
  bottom: calc(22px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 15px 7px 7px;
  min-height: 66px;
  border: 1px solid var(--line-strong);
  border-radius: 40px;
  background: var(--canvas);
  color: var(--ink);
  box-shadow: 0 6px 26px #18201618;
}
.byte-launcher:hover, .byte-launcher.is-open { border-color: var(--accent); }
.byte-launcher-image { display: grid; place-items: center; width: 48px; height: 48px; background: #e6e7dd; border-radius: 50%; overflow: hidden; }
.byte-launcher-image img { width: 43px; height: 46px; object-fit: contain; transform: rotate(-7deg); transition: transform .2s ease; }
.byte-launcher:hover img { transform: rotate(0deg); }
.byte-launcher-copy { display: grid; gap: 4px; text-align: left; }
.byte-launcher-copy strong { font-size: 13px; font-weight: 600; }
.byte-launcher-copy > span { color: var(--muted); font: 7px var(--mono); letter-spacing: .5px; }
.byte-launcher-symbol { color: var(--accent); margin-left: 8px; font-size: 25px; }
.byte-launcher.is-open .byte-launcher-symbol { transform: rotate(30deg); }
.byte-nudge {
  position: fixed;
  right: 26px;
  bottom: calc(102px + env(safe-area-inset-bottom, 0px));
  display: flex;
  align-items: center;
  max-width: calc(100vw - 32px);
  background: var(--panel-2);
  border: 1px solid var(--line);
  border-radius: 10px 10px 3px 10px;
  box-shadow: 0 5px 24px #1820160d;
}
.byte-nudge > button:first-child { background: transparent; border: 0; color: var(--muted); font-size: 11px; line-height: 1.7; text-align: left; padding: 13px 6px 13px 16px; }
.byte-nudge > button:first-child > span { display: block; color: var(--ink); font-weight: 600; }
.byte-nudge-dismiss { align-self: flex-start; width: 38px; min-height: 44px; border: 0; background: transparent; color: var(--muted); font-size: 20px; }
.byte-panel {
  position: fixed;
  right: 26px;
  bottom: calc(102px + env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  width: min(385px, calc(100vw - 32px));
  height: min(630px, calc(100dvh - 124px - env(safe-area-inset-bottom, 0px)));
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: var(--canvas);
  color: var(--ink);
  box-shadow: 0 18px 65px #18201626;
  overflow: hidden;
}
.byte-header { display: flex; align-items: center; gap: 10px; padding: 16px 12px 12px 16px; flex-shrink: 0; }
.byte-pet { position: relative; display: grid; place-items: center; width: 49px; height: 49px; padding: 0; border: 1px solid #c6cbbc; border-radius: 50%; background: #e6e7dd; flex-shrink: 0; }
.byte-pet img { display: block; width: 43px; height: 45px; object-fit: contain; transition: transform .2s ease; }
.byte-pet-heart { position: absolute; right: -4px; top: -7px; font-size: 16px; color: var(--accent); opacity: 0; }
.byte-pet.is-happy img, .byte-launcher.is-happy img { transform: rotate(-12deg) scale(1.08); }
.byte-pet.is-happy .byte-pet-heart { opacity: 1; }
.byte-heading { flex: 1; min-width: 0; }
.byte-heading h2 { font-size: 22px; font-weight: 550; letter-spacing: -.8px; line-height: 1.15; margin: 0; }
.byte-heading h2 > span { color: var(--accent); }
.byte-heading p { color: var(--muted); font-size: 10px; line-height: 1.5; margin-top: 4px; }
.byte-icon-button { display: grid; place-items: center; min-width: 32px; min-height: 40px; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: 23px; border-radius: 5px; }
.byte-icon-button:hover { background: var(--panel); color: var(--accent); }
.byte-mood { flex-shrink: 0; margin: 0 18px; padding: 10px 0 12px; color: var(--accent); font: 9px/1.5 var(--mono); border-bottom: 1px solid var(--line); min-height: 36px; }
.byte-log { flex: 1; min-height: 0; padding: 19px 18px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.byte-message + .byte-message { margin-top: 20px; }
.byte-message-label { display: block; font: 8px/1.5 var(--mono); letter-spacing: .8px; color: var(--accent); margin-bottom: 6px; }
.byte-message p { font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.byte-message-user { margin-left: 28px; padding: 11px 13px; background: var(--panel); border-radius: 9px 9px 2px 9px; }
.byte-message-user .byte-message-label { color: var(--muted); }
.byte-message-user p { font-size: 12px; }
.byte-message-links { display: grid; gap: 7px; margin-top: 12px; }
.byte-message-links a { display: flex; align-items: center; min-height: 40px; width: fit-content; max-width: 100%; font-size: 12px; line-height: 1.5; color: var(--accent); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--line-strong); }
.byte-message-links a:hover { text-decoration-color: var(--accent); }
.byte-suggestions { padding: 11px 18px 13px; border-top: 1px solid var(--line); flex-shrink: 0; }
.byte-start-tour { display: flex; width: 100%; justify-content: space-between; align-items: center; padding: 11px 13px; min-height: 43px; background: var(--ink); color: var(--canvas); border: 1px solid var(--ink); border-radius: 6px; font-size: 12px; }
.byte-start-tour > span:last-child { font-size: 18px; }
.byte-start-tour:hover { background: var(--accent); color: var(--canvas); border-color: var(--accent); }
.byte-quick-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.byte-quick-topics > button { min-height: 36px; border: 1px solid var(--line); border-radius: 5px; background: transparent; color: var(--muted); font-size: 11px; padding: 7px; }
.byte-quick-topics > button:hover { border-color: var(--accent); color: var(--accent); }
.byte-form { padding: 0 18px 13px; flex-shrink: 0; }
.byte-input-row { display: flex; gap: 8px; align-items: center; padding: 5px; border: 1px solid var(--line-strong); background: var(--panel-2); border-radius: 8px; }
.byte-input-row input { width: 100%; min-width: 0; padding: 7px 5px; border: 0; background: transparent; color: var(--ink); font-size: 14px; min-height: 35px; border-radius: 4px; }
.byte-input-row input::placeholder { color: var(--muted); }
.byte-input-row > button { min-width: 38px; min-height: 38px; border: 0; border-radius: 5px; background: var(--ink); color: var(--canvas); font-size: 22px; }
.byte-input-row > button:hover { background: var(--accent); }
.byte-form > p { text-align: center; font-size: 9px; color: var(--muted); line-height: 1.6; margin-top: 9px; }
.byte-tour { position: fixed; right: 26px; bottom: calc(102px + env(safe-area-inset-bottom, 0px)); width: min(342px, calc(100vw - 32px)); max-height: calc(100dvh - 124px); overflow-y: auto; padding: 12px 18px 18px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--canvas); color: var(--ink); box-shadow: 0 12px 48px #18201620; }
.byte-tour-top { display: flex; justify-content: space-between; gap: 15px; align-items: center; }
.byte-tour-top > span { color: var(--accent); font: 8px/1.6 var(--mono); letter-spacing: .7px; }
.byte-tour h2 { font-size: 21px; font-weight: 550; letter-spacing: -.6px; line-height: 1.25; margin-top: 7px; }
.byte-tour p { font-size: 12px; color: var(--muted); line-height: 1.75; margin-top: 11px; }
.byte-tour-actions { display: flex; justify-content: space-between; gap: 15px; margin-top: 16px; }
.byte-tour-actions button { min-height: 41px; border: 1px solid var(--line); border-radius: 5px; background: transparent; color: var(--ink); padding: 10px 13px; font-size: 11px; }
.byte-tour-actions button:last-child { background: var(--ink); color: var(--canvas); border-color: var(--ink); }
.byte-tour-actions button:disabled { opacity: .45; cursor: default; }
.byte-tour-actions button:not(:disabled):hover { border-color: var(--accent); }
body:has(.byte-launcher:not([hidden])) .footer { padding-bottom: 110px; }
@media (max-width: 580px) {
  .byte-launcher { right: 16px; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); min-height: 58px; padding: 5px 12px 5px 5px; gap: 8px; }
  .byte-launcher-image { width: 44px; height: 44px; }
  .byte-launcher-image img { width: 39px; height: 42px; }
  .byte-launcher-copy strong { font-size: 12px; }
  .byte-launcher-copy > span { font-size: 6px; }
  .byte-launcher-symbol { margin-left: 4px; font-size: 23px; }
  .byte-panel, .byte-nudge, .byte-tour { right: 16px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  .byte-panel { height: min(640px, calc(100dvh - 102px - env(safe-area-inset-bottom, 0px))); }
  .byte-header { gap: 7px; padding: 12px 9px 10px 13px; }
  .byte-heading h2 { font-size: 21px; }
  .byte-heading p { font-size: 9px; }
  .byte-icon-button { min-width: 34px; min-height: 44px; }
  .byte-input-row input { font-size: 16px; min-height: 38px; }
  .byte-input-row > button { min-width: 42px; min-height: 42px; }
  .byte-quick-topics > button { min-height: 40px; }
  .byte-log { padding-block: 15px; }
  .byte-form > p { font-size: 8px; }
  .byte-tour { max-height: calc(100dvh - 103px - env(safe-area-inset-bottom, 0px)); }
  .byte-tour-actions button { min-height: 44px; }
}
@media (max-height: 600px) {
  .byte-mood, .byte-quick-topics, .byte-heading p { display: none; }
  .byte-header { padding-block: 8px; }
  .byte-suggestions { padding-block: 7px; }
  .byte-start-tour { min-height: 36px; padding-block: 6px; }
  .byte-form { padding-bottom: 8px; }
  .byte-form > p { margin-top: 5px; }
  .byte-tour { padding-block: 5px 12px; }
  .byte-tour h2 { font-size: 18px; }
  .byte-tour p { margin-top: 7px; }
}
