/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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;--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{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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{--bg:#0c1013;--surface:#14191c;--text:#f1f4f3;--muted:#a2adaf;--line:#2b3336;--accent:#b4d7e4;--mint:#a8cbbb;--coral:#c9a39a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.65}button,input{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{color:#0c1013;background:#b4d7e4}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:0;text-wrap:balance;font-weight:500;line-height:1.18}h2{font-size:42px}h2 span{color:var(--muted)}h3{font-size:22px}.container{width:min(1240px,100% - 104px);margin-inline:auto}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--bg);z-index:100;padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.site-header{z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0b1017e8;border-bottom:1px solid #ffffff12;height:82px;position:sticky;top:0}.header-inner{justify-content:space-between;gap:24px;max-width:1510px;height:100%;margin:auto;padding:0 40px}.brand,.header-inner{align-items:center;display:flex}.brand{flex-shrink:0;gap:13px;font-size:16px;font-weight:600;line-height:1.3}.brand-caption{color:#8c9aa5;margin-top:5px;font-family:Courier New,monospace;font-size:8px;display:block}.brand-mark{justify-content:center;align-items:center;width:36px;height:38px;font-size:29px;font-weight:400;display:inline-flex;position:relative}.brand-mark>span{border:1px solid #c5dce7;border-radius:50%;width:10px;height:10px;position:absolute;top:1px;right:0}.navigation{color:#b9c2c7;align-items:center;gap:23px;font-size:12px;display:flex}.navigation a{padding:12px 0;transition:color .2s}.navigation a:hover{color:#fff}.header-contact{color:var(--accent);flex-shrink:0;align-items:center;gap:7px;font-size:12px;display:flex}.icon-button{border:1px solid var(--line);width:42px;height:42px;color:var(--text);background:0 0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.menu-toggle,.mobile-home{display:none}.hero{isolation:isolate;background:#070d18;height:min(76svh,730px);min-height:620px;position:relative;overflow:hidden}.hero-scene{z-index:-3;transform:translate3d(0,var(--parallax,0),0);position:absolute;inset:-35px 0 0}.city-image{object-fit:cover;object-position:center 15%}.hero-shade{z-index:-2;background:linear-gradient(90deg,#06101bed,#081321bb 34%,#09122313 64%,#08111a08),linear-gradient(#0c101300 76%,#0c1013);position:absolute;inset:0}.hero-inner{align-items:center;height:100%;padding-bottom:28px;display:flex;position:relative}.hero-copy{max-width:650px;padding-top:14px;animation:appear .9s ease-out both}.eyebrow{color:var(--accent);align-items:center;gap:12px;font:10px/1.6 Courier New,monospace;display:flex}.line{background:var(--accent);width:26px;height:1px}.hero h1{text-wrap:nowrap;margin:25px 0 15px;font-size:76px;font-weight:500;line-height:1.1}.name-period{color:#c7dbe4}.hero-role{color:#d0dde7;font-size:27px;font-weight:400;line-height:1.4}.hero-description{color:#bac7d2;max-width:440px;margin-top:21px;font-size:18px;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:32px;display:flex}.button{border:1px solid #566270;border-radius:4px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:13px 20px;font-size:13px;line-height:1.4;transition:background .2s,border-color .2s;display:inline-flex}.button-primary{color:#17252e;background:#dce9ed;border-color:#dce9ed;font-weight:600}.button-primary:hover{background:#fff;border-color:#fff}.button-quiet{color:#d5dde2;background:#0b15222b}.button-quiet:hover{background:#ffffff08;border-color:#c9dbe3}.hero-socials{gap:24px;margin-top:26px;display:flex}.hero-socials a{color:#a8b7c4;align-items:center;gap:8px;font-size:12px;display:flex}.hero-socials a:hover{color:#fff}.hero-coordinate{color:#c0d4e1;align-items:center;gap:18px;font:9px Courier New,monospace;display:flex;position:absolute;bottom:35px;right:0}.hero-coordinate i{background:#a5bdcf;width:28px;height:1px}.scroll-cue{color:#a0b1bf;align-items:center;gap:12px;font-size:11px;display:flex;position:absolute;bottom:31px;left:0}.stars{pointer-events:none;z-index:-1;inset:0}.stars,.stars i{position:absolute}.stars i{opacity:.35;background:#e6eef3;border-radius:50%;width:2px;height:2px;animation:twinkle 8s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:.65}}@keyframes appear{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.discipline-band{background:#11171b;border-top:1px solid #344148;border-bottom:1px solid #293238;padding:24px 0}.discipline-band .container{justify-content:space-between;align-items:center;gap:15px;display:flex}.discipline-band span{color:#a8b7bb;font:10px Courier New,monospace}.discipline-band i{background:#67818d;width:3px;height:3px}.section{padding:104px 0;scroll-margin-top:0}.section-label{margin-bottom:23px}.section-label>span{color:#6f828a;min-width:18px}.section-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:44px;display:flex}.heading-note{color:var(--muted);max-width:330px;font-size:13px;line-height:1.8}.section-symbol{color:#78949d;margin-bottom:4px}.about-section{color:#1d282a;background:#f0f3f2;padding:97px 0}.about-section .eyebrow{color:#446a72}.about-section .section-label>span{color:#809697}.about-section h2 span{color:#63787c}.about-grid{grid-template-columns:1fr 1fr;gap:85px;display:grid}.about-signature{align-items:center;gap:15px;margin-top:39px;display:flex}.about-signature>span:first-child{color:#385b63;border-right:1px solid #bccbcc;padding-right:16px;font-size:27px;font-weight:600}.about-signature>span:last-child{color:#5e7277;font:9px/1.9 Courier New,monospace}.about-copy{padding-top:31px}.lead{font-size:19px;line-height:1.8}.about-copy>p+p{color:#53666b;margin-top:21px;font-size:15px}.about-principles{color:#43636a;border-top:1px solid #c9d2d1;flex-wrap:wrap;gap:18px;margin-top:27px;padding-top:21px;font-size:11px;display:flex}.experience-section{background:#111619}.experience-entry{border-top:1px solid var(--line);grid-template-columns:270px 1fr;gap:50px;padding:35px 0;display:grid}.experience-entry:last-child{padding-bottom:0}.experience-period{color:#91a3a9;padding-top:7px;font:11px/1.8 Courier New,monospace}.current-marker{color:#a2ccba;margin-top:10px;font-size:9px;display:block}.experience-company{color:var(--accent);margin:7px 0 18px;font-size:15px}.experience-entry p:not(.experience-company){color:#aebabe;max-width:740px;font-size:15px}.experience-details{color:#aebabe;margin:15px 0 22px;padding-left:18px;font-size:14px}.experience-details li{margin-top:6px}.project-tags{flex-wrap:wrap;gap:8px;display:flex}.project-tags>span{color:#a9bdc3;background:#ffffff03;border:1px solid #344145;border-radius:3px;padding:4px 8px;font:10px/1.5 Courier New,monospace}.projects-section{background:#0c1013}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;display:grid}.project-card{background:#111619;border:1px solid #2a3236;border-radius:5px;min-width:0;transition:border-color .25s,transform .25s;overflow:hidden}.project-card:hover{border-color:#657e8a;transform:translateY(-4px)}.project-card-link{flex-direction:column;height:100%;display:flex}.project-art{aspect-ratio:1.68;border-bottom:1px solid #2e383d;flex-shrink:0;width:100%;position:relative;overflow:hidden}.project-image{object-fit:cover;object-position:center;transition:transform .6s}.project-card:hover .project-image{transform:scale(1.03)}.image-art{background:#10151b}.image-art .project-image{object-fit:contain}.diagram-art{color:#a7c6d7;background-color:#161f25;background-image:linear-gradient(#8ca1aa09 1px,#0000 0),linear-gradient(90deg,#8ca1aa09 1px,#0000 0);background-size:22px 22px;padding:19px}.art-neural{color:#94c6d5;background-color:#152329}.art-mobile{color:#bfceb7;background-color:#23251f}.art-embedded{color:#d3b4a4;background-color:#27221f}.art-systems{color:#b6b6d2;background-color:#20212a}.art-network{color:#b3d4c9;background-color:#192626}.art-planning{color:#c2d0ad;background-color:#24281f}.diagram-bottom,.diagram-caption{opacity:.68;font:8px Courier New,monospace;position:absolute;left:18px}.diagram-caption{top:16px}.diagram-bottom{bottom:15px}.diagram-center{flex-direction:column;gap:20px;padding:35px 18px 28px;position:absolute;inset:0}.diagram-center,.diagram-flow{justify-content:center;align-items:center;display:flex}.diagram-flow{gap:12px;width:100%}.diagram-node{border:1px solid;border-radius:2px;justify-content:center;align-items:center;min-width:44px;height:25px;padding:4px 7px;font:7px Courier New,monospace;display:inline-flex;position:relative}.diagram-node:not(:last-child):after{content:"";background:currentColor;width:13px;height:1px;position:absolute;left:100%}.final-node{background:#ffffff0b}.project-card-copy{flex-direction:column;flex-grow:1;padding:22px;display:flex}.project-meta{color:#8eabb5;margin-bottom:14px;font:9px/1.4 Courier New,monospace}.project-card h3,.project-meta{justify-content:space-between;gap:10px;display:flex}.project-card h3{text-wrap:pretty;align-items:flex-start;min-height:52px;font-size:21px;line-height:1.3}.project-card h3 svg{color:#9cb3bd;margin-top:3px}.project-card p{color:#a4afb5;flex-grow:1;margin:15px 0 21px;font-size:13px;line-height:1.8}.project-card .project-tags{gap:6px}.project-card .project-tags span{padding:3px 6px;font-size:9px}.catalogue-heading{justify-content:space-between;align-items:center;gap:20px;margin-top:67px;display:flex}.catalogue-heading h3{font-size:21px}.catalogue-heading>span{color:#7f9198;font:8px Courier New,monospace}.filters{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;margin-top:24px;display:flex}.filter-button{color:#a3b0b5;background:0 0;border:none;border-bottom:2px solid #0000;min-height:47px;padding:14px 16px;font-size:11px;transition:color .2s,border-color .2s}.filter-button:first-child{padding-left:0;padding-right:21px}.filter-button.active{color:#dbe9ed;border-color:#b0cfdb}.filter-button:hover{color:#fff}.result-count{color:#738b95;min-height:40px;padding:17px 0 8px;font:9px Courier New,monospace}.project-row{border-bottom:1px solid var(--line);align-items:center;gap:20px;min-height:106px;padding:22px 0;transition:background .2s;display:flex}.project-row:hover{background:#ffffff03}.discipline-mark{background:#93b8c8;flex-shrink:0;width:9px;height:9px}.discipline-mobile,.discipline-planning{background:#bac9a3}.discipline-embedded{background:#c8a397}.discipline-systems,.discipline-vision{background:#b0aac6}.discipline-network{background:#91bba7}.project-row-main{flex-grow:1;min-width:0}.project-row-main strong{font-size:15px;font-weight:500;display:block}.project-row-main>span{color:#8fa0a7;margin-top:5px;font-size:12px;display:block}.project-row-category{color:#92a6ae;min-width:123px;font-size:10px}.project-row-year{color:#6e8792;font:9px Courier New,monospace}.project-row>svg{color:#9ab3bf;margin-left:10px}.skills-section{color:#24322f;background:#edf1ee}.skills-section .eyebrow{color:#4e736b}.skills-section .heading-note{color:#61716c}.skills-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px;display:grid}.skill-group{border-top:1px solid #c1ceca;padding-top:18px}.skill-number{color:#81968d;font:9px Courier New,monospace}.skill-group h3{min-height:44px;margin:16px 0 22px;font-size:18px}.skill-group ul{color:#4b6058;margin:0;padding:0;font-size:12px;list-style:none}.skill-group li{margin-bottom:9px}.credential-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:30px;padding:26px 0;display:grid}.credential-type{color:#9abdb4;margin-bottom:9px;font:9px Courier New,monospace;display:block}.credential-row h3{font-size:18px}.credential-row p{color:#899da5;margin-top:9px;font-size:12px}.credential-issuer{color:#9fb3ba;text-align:right;justify-content:flex-end;align-items:center;gap:17px;font-size:12px;display:flex}.credential-issuer a{padding:8px;display:inline-flex}.education-section{background:#151a1c;border-block:1px solid #2b3335}.education-grid{grid-template-columns:1fr 1fr;gap:74px;display:grid}.education-grid>article{border-top:1px solid #394548;padding-top:25px}.education-status{color:#98bdba;margin-bottom:20px;font:9px Courier New,monospace}.education-grid h3{font-size:24px;line-height:1.45}.education-institution{color:#c8d9dc;margin:14px 0;font-size:14px}.education-grid article>p:last-child{color:#8d9fa4;max-width:470px;font-size:13px;line-height:1.9}.contact-section{background:#0b1013;padding-block:110px}.contact-grid{grid-template-columns:1.2fr 1fr;align-items:end;gap:100px;display:grid}.contact-grid>div:first-child>p:last-child{color:#8eaaaf;margin-top:24px;font-size:14px}.contact-links a{color:#a9c0c7;border-bottom:1px solid #324247;justify-content:space-between;align-items:center;gap:12px;padding:19px 0;font-size:13px;display:flex}.contact-links a:hover{color:#fff}.contact-links .contact-email{color:#e0eef2;overflow-wrap:anywhere;font-size:18px}.site-footer{background:#0c1013;border-top:1px solid #2c373a;padding:30px 0}.footer-inner{justify-content:space-between;align-items:center;gap:30px;display:flex}.footer-inner>p{color:#cad5d5;font-size:13px}.footer-inner>p>span{color:#728991;margin-top:4px;font-size:10px;display:block}.footer-inner>div{color:#94aeb9;gap:23px;display:flex}.footer-inner>div>a{padding:8px 2px;display:inline-flex}.footer-year{color:#66808b;font:9px Courier New,monospace}.project-detail{padding-top:40px;padding-bottom:80px}.back-link{color:#9db3be;align-items:center;gap:10px;padding:12px 0;font-size:12px;display:inline-flex}.detail-heading{max-width:920px;padding:50px 0 38px}.detail-heading .eyebrow{flex-wrap:wrap;gap:9px}.detail-heading .eyebrow span{color:#586d78}.detail-heading h1{margin-top:20px;font-size:55px}.detail-heading .lead{color:#a4b7bf;max-width:800px;margin:20px 0 24px;font-size:19px}.large-art{aspect-ratio:2.35;border:1px solid var(--line)}.large-art .diagram-bottom,.large-art .diagram-caption{font-size:11px;left:32px}.large-art .diagram-caption{top:26px}.large-art .diagram-bottom{bottom:26px}.large-art .diagram-center{gap:34px}.large-art .diagram-flow{gap:35px}.large-art .diagram-node{min-width:100px;height:42px;font-size:13px}.large-art .diagram-node:not(:last-child):after{width:36px}.detail-body{grid-template-columns:260px minmax(0,1fr);gap:90px;padding-top:65px;display:grid}.detail-sidebar>p:nth-child(2){color:#99adb6;margin:18px 0 25px;font-size:12px;line-height:1.9}.detail-sidebar .button{justify-content:flex-start;margin-bottom:12px;font-size:12px;display:flex}.detail-copy>section{margin-bottom:38px}.detail-copy h2{margin-bottom:18px;font-size:24px}.detail-copy li,.detail-copy p{color:#a7b7bf;font-size:15px;line-height:1.85}.detail-copy ul{margin:0;padding-left:20px}.detail-copy li+li{margin-top:10px}.pipeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.pipeline li{border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:12px 0;display:flex}.pipeline li+li{margin:0}.pipeline li>span{color:#658e9f;font:10px Courier New,monospace}.limitations{border-top:1px solid #3a4140;padding-top:26px}.limitations h2{color:#bdd0c3}.next-project{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:30px;padding:30px 0;display:flex}.next-project>span{color:#78939e;font:9px Courier New,monospace}.next-project strong{color:#dde8eb;margin-top:10px;font:22px/1.5 Segoe UI,Arial,sans-serif;display:block}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;gap:25px;min-height:70vh;display:flex}.not-found h1{font-size:48px}@media (min-width:1680px){.hero{height:min(73svh,770px)}.container{width:min(1360px,100% - 160px)}.hero h1{font-size:86px}}@media (max-width:1180px){.navigation{gap:15px;font-size:11px}.header-inner{gap:15px;padding:0 27px}.header-contact{display:none}.container{width:calc(100% - 72px)}.hero h1{font-size:66px}.hero-copy{max-width:600px}.featured-grid{gap:20px 18px}.project-card-copy{padding:18px}.project-card h3{font-size:18px}.diagram-node{min-width:30px;padding-inline:4px;font-size:6px}.diagram-flow{gap:10px}.skills-grid{gap:20px}.skill-group h3{font-size:16px}.contact-grid{gap:55px}.contact-links .contact-email{font-size:16px}}@media (max-width:960px){.navigation{background:#111a21;border-bottom:1px solid #4a5f69;flex-wrap:wrap;gap:0;padding:15px 36px 24px;display:none;position:absolute;top:74px;left:0;right:0}.navigation.is-open{grid-template-columns:1fr 1fr;display:grid}.navigation a{padding:14px 0;font-size:14px}.mobile-home{display:block}.menu-toggle{display:inline-flex}.site-header{height:74px}.header-inner{padding-inline:28px}.about-grid{gap:45px}.hero{height:650px;min-height:0}.hero h1{font-size:62px}.hero-role{font-size:23px}.hero-copy{max-width:550px}.hero-description{max-width:355px;font-size:16px}.hero-shade{background:linear-gradient(90deg,#06101be8,#06111bbe 40%,#0c142238 85%),linear-gradient(#0000 78%,#0c1013)}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card h3{font-size:21px}.diagram-node{min-width:47px;font-size:8px}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:35px}.section{padding:80px 0}h2{font-size:35px}.experience-entry{grid-template-columns:205px 1fr;gap:26px}.credential-row{grid-template-columns:minmax(0,1fr) 150px}.education-grid{gap:35px}.contact-grid{grid-template-columns:1fr;gap:30px}.contact-links{max-width:560px}.detail-body{grid-template-columns:210px 1fr;gap:42px}.detail-heading h1{font-size:44px}}@media (max-width:640px){.container{width:calc(100% - 40px)}.header-inner{padding-inline:18px}.brand{gap:9px;font-size:14px}.brand-caption{font-size:7px}.hero{height:720px}.hero-scene{inset:0}.city-image{object-position:74% center}.hero-shade{background:linear-gradient(#07101b0a 15%,#07101bcb 55%,#07101beb 90%,#0c1013)}.hero-inner{align-items:flex-end;padding-bottom:79px}.hero-copy{width:100%;max-width:none;padding-top:0}.eyebrow{font-size:9px}.hero h1{margin-top:20px;margin-bottom:10px;font-size:49px}.hero-role{font-size:21px}.hero-description{max-width:350px;margin-top:16px;font-size:16px}.hero-actions{gap:9px;margin-top:25px}.hero-actions .button{min-height:45px;padding:12px;font-size:11px}.hero-socials{gap:23px;margin-top:23px}.hero-socials a{font-size:11px}.hero-coordinate{display:none}.scroll-cue{bottom:28px}.discipline-band{padding-block:21px}.discipline-band .container{grid-template-columns:1fr 1fr;gap:16px;display:grid}.discipline-band i{display:none}.discipline-band span{font-size:8px}.section{padding:65px 0}h2{font-size:31px}.section-label{margin-bottom:20px}.about-grid{grid-template-columns:1fr;gap:26px}.about-signature{margin-top:25px}.about-copy{padding-top:0}.lead{font-size:17px}.about-copy>p+p{font-size:14px}.about-principles{gap:11px;font-size:10px}.section-heading{flex-direction:column;align-items:flex-start;gap:21px;margin-bottom:30px}.section-symbol{display:none}.heading-note{font-size:12px}.experience-entry{grid-template-columns:1fr;gap:17px;padding-top:25px;padding-bottom:32px}.experience-period{flex-wrap:wrap;align-items:center;gap:20px;padding-top:0;font-size:10px;display:flex}.current-marker{margin-top:0;font-size:8px}.experience-entry h3{font-size:21px}.experience-entry p:not(.experience-company){font-size:14px}.experience-details{font-size:13px}.featured-grid{grid-template-columns:1fr;gap:24px}.project-card h3{min-height:0;font-size:23px}.project-card-copy{padding:22px}.project-card p{margin-top:14px;font-size:14px}.project-card .project-tags span{font-size:10px}.diagram-node{min-width:48px;font-size:8px}.diagram-flow{gap:13px}.catalogue-heading{flex-direction:column;align-items:flex-start;gap:12px;margin-top:46px}.catalogue-heading>span{font-size:7px}.filters{gap:0;margin-top:15px}.filter-button{padding:12px;font-size:10px}.filter-button:first-child{padding-left:8px;padding-right:12px}.project-row{align-items:flex-start;gap:12px;min-height:100px}.discipline-mark{width:7px;height:7px;margin-top:7px}.project-row-main strong{font-size:14px}.project-row-main>span{font-size:11px}.project-row-category,.project-row-year{display:none}.project-row>svg{margin-top:4px;margin-left:0}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.skill-group h3{min-height:42px;font-size:17px}.skill-group li{font-size:12px}.credential-row{grid-template-columns:1fr;gap:14px;padding:24px 0}.credential-row h3{font-size:17px}.credential-issuer{text-align:left;justify-content:flex-start;font-size:11px}.credential-type{font-size:8px}.education-grid{grid-template-columns:1fr;gap:36px}.education-grid h3{font-size:22px}.contact-grid h2{font-size:34px}.contact-links .contact-email{font-size:15px}.contact-grid>div:first-child>p:last-child{font-size:13px}.desktop-break{display:none}.footer-inner{flex-wrap:wrap;gap:20px}.footer-inner>p{flex-basis:100%}.footer-inner>div{gap:25px}.footer-year{font-size:8px}.project-detail{padding-top:25px;padding-bottom:55px}.detail-heading{padding-top:28px}.detail-heading h1{font-size:35px}.detail-heading .lead{font-size:17px}.large-art{aspect-ratio:1.55}.large-art .diagram-flow{gap:12px}.large-art .diagram-node{min-width:45px;height:27px;font-size:7px}.large-art .diagram-node:not(:last-child):after{width:13px}.large-art .diagram-bottom,.large-art .diagram-caption{font-size:8px;left:18px}.detail-body{grid-template-columns:1fr;gap:38px;padding-top:33px}.detail-sidebar{border-bottom:1px solid var(--line);padding-bottom:24px}.detail-sidebar .button{margin-right:10px;display:inline-flex}.detail-copy h2{font-size:23px}.detail-copy li,.detail-copy p{font-size:14px}.next-project strong{font-size:19px}}@media (max-width:360px){.hero h1{font-size:43px}.hero-role{font-size:18px}.hero-actions{flex-direction:column;align-items:flex-start}.hero{height:790px}.hero-description{font-size:15px}.hero-socials{gap:19px}.skills-grid{gap:28px 12px}.diagram-node{min-width:37px;font-size:7px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}.hero-scene{transform:none!important}.project-card:hover,.project-card:hover .project-image{transform:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.cv-short{display:none}@media (min-width:641px) and (max-width:960px){.city-image{object-position:right center}}@media (max-width:640px){.city-image{object-position:right center}.hero{height:min(720px,calc(100svh - 140px));min-height:580px}}@media (max-width:360px){.hero-actions{flex-direction:row}.hero-inner{padding-bottom:55px}.cv-long{display:none}.cv-short{display:inline}}.resume-options{margin-top:30px;border-top:1px solid #9baaaa;padding-top:18px}.resume-options h3{font-size:15px;margin-bottom:10px}.resume-link{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid #b8c3c1;font-size:13px}.city-transition{--depth:.3;height:480px;position:relative;isolation:isolate;overflow:hidden;border-block:1px solid #334047}.transition-scene{position:absolute;inset:-45px 0;z-index:-1;transform:translateY(calc(var(--depth)*50px))}.transition-scene img{object-fit:cover;object-position:center 80%;opacity:.42}.city-transition:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0c1013cc,transparent),linear-gradient(0deg,#0c1013,transparent 35%,#0c101399)}.transition-scene svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#bddbe0;stroke-width:1;opacity:calc(var(--depth)*.65);stroke-dasharray:1600;stroke-dashoffset:calc(1600 - var(--depth)*1600)}.transition-copy{padding-top:115px}.transition-copy h2{font-size:43px;line-height:1.3;margin:22px 0}.transition-nodes{display:flex;gap:34px;font:10px Courier New,monospace;color:#c1d6db;opacity:calc(.3 + var(--depth)*.7)}.transition-nodes span{border-left:2px solid #92b0b8;padding-left:12px}.archive-section{background:#111719;border-top:1px solid #2b373b}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.archive-card{border:1px solid #303e44;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}.archive-card:hover{border-color:#9ab5c0}.archive-thumbnail{position:relative;aspect-ratio:1.8;overflow:hidden;background:#eaf0ee}.archive-thumbnail img{object-fit:contain}.archive-schematic{color:#b4d7e4;background:#182226;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}.archive-schematic span{font:10px Courier New,monospace}.archive-signals{background:#202a25;color:#bbd2c2}.archive-image{background:#292527;color:#d7bfbd}.archive-path{display:flex;width:65%;align-items:center;gap:25%;margin-top:4px}.archive-path i{width:7px;height:7px;border:1px solid;position:relative}.archive-path i:not(:last-child):after{position:absolute;content:"";height:1px;width:54px;background:currentColor;top:2px;left:7px}.archive-card-copy{padding:20px}.archive-card h3{font-size:18px;display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.archive-card h3 svg{flex-shrink:0}.archive-card p{color:#afbdc1;font-size:13px;line-height:1.8;margin:12px 0 18px}.archive-card .project-tags span{font-size:9px}.archive-output{margin:0;background:#eef1f0;color:#29363b;border:1px solid #46565e}.archive-output img{width:100%;height:auto;max-height:650px;object-fit:contain;display:block}.archive-output figcaption{padding:16px 20px;font-size:12px;border-top:1px solid #b5c3c7}.detail-evidence{margin:20px 0 30px}.detail-evidence img{display:block;width:100%;height:auto}.detail-evidence figcaption,.evidence-caption{color:#afc0c7;font-size:12px!important;line-height:1.7!important;margin-top:12px}.publication-note{font-size:12px;color:#aec2b4;line-height:1.8;padding-top:12px;border-top:1px solid #3f4b45}.engineering-tool{border:1px solid #435860;padding:22px;margin:25px 0;background:#121d22;border-radius:4px}.graph-trace{width:100%;height:auto;max-height:400px;display:block}.tool-controls{display:flex;align-items:center;gap:12px;margin-top:20px}.tool-controls output{flex:1;min-width:0;font-size:14px;color:#e0ecee}.tool-controls output span{display:block;color:#a3b9c2;font-size:11px;margin-top:4px}.icon-button:disabled{opacity:.35;cursor:default}.engineering-tool label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px}.engineering-tool input[type=range]{width:100%;margin:25px 0;accent-color:#b4d7e4;min-height:35px}.memory-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.memory-flow>div{padding:13px 10px;border:1px solid #47606c;font:10px Courier New,monospace}.memory-flow strong{display:block;font:22px Segoe UI,sans-serif;margin-top:12px}@media(max-width:960px){.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.city-transition{height:400px}.transition-copy{padding-top:100px}.transition-copy h2{font-size:31px}.transition-nodes{gap:14px;font-size:8px}.archive-grid{grid-template-columns:1fr}.engineering-tool{padding:14px}.memory-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-controls{gap:8px}.tool-controls .icon-button{width:38px;height:38px;flex-shrink:0}.detail-heading h1{overflow-wrap:break-word}}@media(prefers-reduced-motion:reduce){.transition-scene{transform:none}.transition-scene svg{opacity:.35;stroke-dashoffset:0}.transition-nodes{opacity:1}}.city-story{--story:.15;height:1350px;position:relative;background:#080f16;border-block:1px solid #32464f}.city-stage{position:sticky;top:70px;height:calc(100svh - 70px);min-height:690px;max-height:1000px;isolation:isolate;overflow:hidden}.city-backdrop,.city-story-shade{position:absolute;inset:0;z-index:-1}.city-backdrop>img{object-fit:cover;object-position:center 68%;opacity:.72;transform:scale(1.05) translateY(calc(var(--story)*-25px))}.city-foreground{position:absolute;inset:0;mask-image:linear-gradient(transparent 38%,#000 70%);transform:scale(1.09) translateY(calc(var(--story)*35px))}.city-foreground img{object-fit:cover;object-position:center 68%;opacity:.8}.city-story-shade{background:linear-gradient(90deg,#081016c9,transparent 65%),linear-gradient(0deg,#081017 3%,#08101755 35%,#08101788)}.city-introduction{padding-top:64px;position:relative;z-index:2;pointer-events:none}.city-introduction h2{font-size:42px;line-height:1.22;max-width:600px;margin:18px 0;color:#eef4f5}.city-introduction h2 span{color:#b7cdd4}.city-introduction>p:last-child{font-size:14px;color:#b6cbd0}.city-network{position:absolute;width:100%;height:62%;left:0;top:12%;overflow:visible}.network-wire{fill:none;stroke:#9abfcb;stroke-width:1.2;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--story));opacity:calc(.15 + var(--story)*.8)}.district-node{fill:#172a32;stroke:#758c9b;stroke-width:1;opacity:calc(.3 + var(--story)*.7)}.district-node .node-core{fill:#a0b9c3;stroke:none}.district-node.selected{stroke:#d7e9e9;filter:drop-shadow(0 0 9px #b7d9df77)}.district-node.selected .node-core{fill:#eefcfa}.city-console{position:absolute;left:0;right:0;bottom:42px}.district-tabs{display:flex;gap:0;border-bottom:1px solid #54727d}.district-tabs button{display:flex;align-items:center;gap:10px;border:0;border-bottom:2px solid transparent;background:transparent;color:#aabfc8;padding:16px 21px;flex:1;text-align:left;justify-content:center;font-size:13px;min-height:54px;cursor:pointer}.district-tabs button[aria-pressed=true]{color:#f0f8f9;border-color:#d3e6e6;background:#c4e1e70c}.district-tabs button:hover{background:#c4e1e712}.district-preview{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-top:28px;min-height:137px}.district-preview h3{font-size:25px;line-height:1.3;margin:10px 0 7px}.district-preview p{color:#9cb7c4;font-size:12px}.district-preview>a{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #b2c9cf;white-space:nowrap;font-size:13px}.profile-link{display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid;padding:8px 0;font-size:13px}.lab-page>h1,.profile-page>h1{font-size:62px;line-height:1.15;margin:20px 0}.profile-prose{max-width:800px;margin:48px 0}.profile-prose h2{font-size:28px;margin:38px 0 15px}.profile-prose p{color:#b4c7ce;line-height:1.9;margin:12px 0}.profile-prose section{border-top:1px solid #33484f;padding:22px 0}.profile-prose section h3{font-size:19px}.profile-links a,.profile-prose a{border-bottom:1px solid #63818b}.profile-links{display:flex;flex-wrap:wrap;gap:25px;margin:30px 0}.resume-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin:50px 0}.resume-page-grid section{border-top:1px solid #405a66;padding-top:25px}.resume-page-grid h2{font-size:25px}.resume-page-grid p{color:#b4c7ce;line-height:1.9;margin:20px 0}.lab-entry{display:flex;justify-content:space-between;align-items:center;border-block:1px solid #47616c;padding:20px 0;margin:0 0 35px;color:#c7e0e5;font-size:17px}.lab-preview{width:88%;height:125px;fill:none;stroke:currentColor;stroke-width:1.5}.lab-preview circle{fill:#12232c}.preview-axis{opacity:.25}.worker-trace{stroke-width:9}.lab-preview-signals{stroke-dasharray:600;animation:signal-flow 9s linear infinite}@keyframes signal-flow{50%{stroke-dashoffset:75}}.lab-workbench{margin:45px 0 60px;padding:26px;border:1px solid #4a6771;background:#102029;border-radius:4px}.lab-workbench>h2{font-size:26px;margin:30px 0 20px;line-height:1.4}.lab-workbench>.engineering-tool{border:0;padding:0;background:transparent}.lab-toolbar{justify-content:space-between;flex-wrap:wrap;gap:18px;margin:0 0 22px}.lab-status,.lab-toolbar{display:flex;align-items:center}.lab-status{font:10px Courier New,monospace;color:#a1bead;gap:8px}.lab-status i{width:5px;height:5px;background:#b0d3bc}.lab-mode-tabs,.segmented{display:flex;flex-wrap:wrap;gap:2px}.lab-mode-tabs{border-block:1px solid #425e68}.lab-mode-tabs button,.segmented button{background:transparent;color:#abc0cb;border:0;border-bottom:2px solid transparent;padding:13px 15px;font-size:12px;cursor:pointer;min-height:44px}.lab-mode-tabs button[aria-pressed=true],.segmented button[aria-pressed=true]{background:#c9e1e915;color:#f3f8f9;border-bottom-color:#bcd3de}.engineering-tool select,.interactive-lab input[type=number],.interactive-lab select{background:#0b1921;color:#dce9ed;border:1px solid #5d7986;border-radius:3px;padding:10px 12px;max-width:100%}.engineering-tool select{margin-left:10px;min-height:42px}.job-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.job-inputs>div{border-top:1px solid #45636f;padding-top:15px}.job-inputs strong{font-size:13px;display:block;margin-bottom:12px}.job-inputs label{font-size:11px;align-items:center;margin:8px 0}.job-inputs input{width:62px}.gantt-chart,.loss-chart,.waveform-chart,.worker-chart{display:block;width:100%;height:auto;margin:22px 0}.chart-grid{stroke:#47616b;stroke-width:1;fill:none}.signal-line{stroke:#b6d5dc;stroke-width:2;fill:none}.lab-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px 0;border-block:1px solid #38535f}.lab-readouts>div{font:10px Courier New,monospace;color:#9eb7c3}.lab-readouts strong{display:block;font:23px Segoe UI,sans-serif;color:#dce9eb;margin-top:9px}.code-evidence{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:18px 0;color:#c6d9c6;border-block:1px solid #38535f}.rl-replay-layout{display:grid;grid-template-columns:1fr .65fr;gap:28px;align-items:center}.room-grid{width:100%;max-width:420px;height:auto}.rl-state{display:grid;grid-template-columns:1fr 1fr;gap:25px;font:10px Courier New,monospace;color:#a1bec7}.rl-state strong{display:block;font:21px Segoe UI,sans-serif;margin-top:10px;color:#e0edf0}.q-update{display:flex;flex-wrap:wrap;gap:12px;color:#c0d2d9;font-size:12px;border-top:1px solid #45606c;padding-top:18px}.experiment-surface{margin:30px 0}.experiment-surface>p{line-height:1.9;color:#b4c8d0}.experiment-table-wrap{overflow-x:auto;margin:25px 0}.experiment-table{width:100%;border-collapse:collapse;font-size:13px}.experiment-table td,.experiment-table th{padding:15px 12px;border-bottom:1px solid #3b5460;text-align:left}.experiment-table thead{color:#9ab5c4;font-size:11px}.small-note{display:block;font:10px Courier New,monospace;color:#92abba;margin-top:6px}.experiment-visuals{display:grid;grid-template-columns:1.3fr 1fr;gap:25px;align-items:center}.experiment-visuals figure{margin:25px 0;min-width:0}.experiment-visuals figcaption{color:#9eb8c2;font-size:11px;line-height:1.8}.confusion-grid{width:100%;height:auto;max-height:310px}.prediction-sheet{display:block;width:100%;height:auto;margin-top:25px}.binary-confusion{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2px;margin:22px 0;text-align:center}.binary-confusion span{padding:14px 6px;font:10px Courier New,monospace;color:#b5ccd6}.binary-confusion strong{background:#264854;padding:20px 10px;font-size:25px}.schema-summary{border-top:1px solid #3e5866;padding:18px 0}.schema-summary p{font-size:12px;overflow-wrap:anywhere}.lab-catalogue-heading{display:flex;gap:25px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:30px}.lab-catalogue-heading h2{font-size:27px}.lab-catalogue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 35px}.lab-module{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:center;padding:25px 0;border-top:1px solid #3b5560}.lab-module .lab-preview{height:75px;width:110px;color:#adcbd6}.lab-module h3{font-size:19px;line-height:1.4;margin:8px 0}.lab-module p{font-size:12px;color:#a4bcc6;line-height:1.7}@media(hover:hover) and (prefers-reduced-motion:no-preference){.featured-grid .project-card{transition:transform .3s,border-color .3s}.featured-grid .project-card:hover{transform:perspective(1100px) rotateX(1deg) translateY(-3px)}}@media(max-width:960px){.city-story{height:1100px}.city-stage{top:70px;min-height:690px}.city-introduction h2{font-size:35px}.district-tabs button{padding:14px 8px;font-size:11px;gap:6px}.district-preview h3{font-size:22px}.lab-status{display:none}.lab-module{grid-template-columns:75px 1fr}.lab-module .lab-preview{width:75px}}@media(max-width:640px){.city-story{height:auto}.city-stage{position:relative;top:0;height:740px;min-height:0}.city-introduction{padding-top:43px}.city-introduction h2{font-size:29px}.city-introduction>p:last-child{max-width:250px;line-height:1.7}.city-backdrop>img,.city-foreground img{object-position:69% center}.city-network{top:17%;height:44%}.city-console{bottom:35px}.district-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.district-tabs button{font-size:10px;padding:10px 3px;flex-direction:column;min-height:66px}.district-tabs button:last-child{grid-column:span 2;flex-direction:row}.district-preview{flex-direction:column;align-items:flex-start;gap:10px;padding-top:22px;min-height:181px}.district-preview h3{font-size:22px}.district-preview>a{padding:9px 0}.lab-page>h1,.profile-page>h1{font-size:39px}.resume-page-grid{grid-template-columns:1fr}.lab-workbench{padding:16px}.lab-workbench>h2{font-size:22px}.lab-mode-tabs button{flex:1 0 30%;padding:12px 4px;font-size:11px}.job-inputs,.lab-readouts{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-readouts{gap:22px}.rl-replay-layout{grid-template-columns:1fr;gap:20px}.rl-state{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;font-size:8px}.rl-state strong{font-size:15px}.experiment-visuals{grid-template-columns:1fr}.experiment-table{font-size:10px}.experiment-table td,.experiment-table th{padding:13px 5px}.experiment-table thead{font-size:9px}.lab-catalogue{grid-template-columns:1fr}.lab-module{grid-template-columns:70px 1fr;gap:15px}.lab-toolbar label{font-size:12px}.segmented button{padding:10px 7px;font-size:10px}}@media(prefers-reduced-motion:reduce){.city-story{height:auto;--story:1}.city-stage{position:relative;top:0;height:820px}.city-backdrop>img,.city-foreground{transform:none}.network-wire{stroke-dashoffset:0;opacity:.65}.district-node{opacity:1}.lab-preview-signals{animation:none}}@media(max-width:640px) and (prefers-reduced-motion:reduce){.city-stage{height:740px}}.homepage-world{position:relative;background:#07111c}.homepage-world>.discipline-band,.homepage-world>section{position:relative;z-index:1}.cinematic-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none}.moon-stage{position:relative;height:100svh;pointer-events:none}.moon-stage .moon-journey{height:100%;bottom:0}.homepage-world>.motion-toggle{z-index:20;pointer-events:auto}.city-network,.city-story-shade,.hero-shade{pointer-events:none}.moon-journey{--moon-x:82vw;--moon-y:42svh;--moon-scale:1;--moon-light:.96;--star-light:.52;--setting:0;--cloud-shift:0px;--horizon-shift:0px;position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,#050c16,#102230 75%,#08101a)}.journey-sky{position:absolute;inset:0;background:url(/images/night-city.webp) 0 0/max(210vw,338svh) auto no-repeat;opacity:.32;mask-image:linear-gradient(#000 35%,transparent 75%)}.journey-stars{position:absolute;inset:0;opacity:var(--star-light)}.journey-stars i{position:absolute;width:2px;height:2px;background:#ddebf2;border-radius:50%}.moon-journey:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#193247,#25445055,transparent);opacity:calc(var(--setting)*.24)}.journey-moon{position:absolute;top:0;left:0;width:clamp(200px,20vw,310px);aspect-ratio:1;transform:translate3d(calc(var(--moon-x) - 50%),calc(var(--moon-y) - 50%),0) scale(var(--moon-scale));opacity:var(--moon-light);will-change:transform}.moon-disc{width:100%;height:100%;border-radius:50%;background:url(/images/night-city.webp) 88% 12.7%/750% 421.875%;box-shadow:0 0 45px 10px #c4d9e412,0 0 100px 20px #a9c4d20c}.journey-clouds{position:absolute;inset:0;transform:translate3d(var(--cloud-shift),0,0);background:linear-gradient(173deg,transparent 38%,#23374935 43%,#101f316b 45%,transparent 50%),linear-gradient(182deg,transparent 17%,#12243a3b 20%,transparent 24%);opacity:.6}.journey-horizon,.journey-rear{position:absolute;top:0;left:50%;width:max(100vw,177.778svh);height:100svh;transform:translate3d(-50%,var(--horizon-shift),0) scale(1.03)}.journey-rear{background:url(/images/night-city.webp) 50%/100% 100%;mask-image:linear-gradient(transparent 43%,#000 73%);opacity:calc(.4 * var(--city-light,1))}.journey-horizon{clip-path:polygon(0 72%,8% 72%,8% 70%,13% 70%,13% 66%,15% 66%,15% 73%,25% 73%,25% 68%,27% 68%,27% 74%,33% 74%,33% 64%,35% 64%,35% 74%,41% 74%,41% 72%,46% 72%,46% 63%,47% 62%,48% 62%,49% 64%,49% 73%,52% 73%,52% 69%,54% 69%,54% 72%,58% 72%,58% 63%,59% 62%,60% 62%,61% 64%,61% 73%,65% 73%,65% 67%,67% 67%,67% 62%,69% 60%,69% 68%,71% 68%,71% 60%,72% 59%,72% 74%,73% 74%,73% 47%,74% 46%,76% 47%,76% 71%,79% 71%,79% 58%,80% 51%,81% 55%,82% 73%,83% 73%,83% 56%,84% 55%,85% 55%,86% 73%,89% 73%,89% 68%,92% 68%,92% 72%,94% 72%,94% 63%,95% 62%,96% 63%,96% 74%,100% 74%,100% 100%,0 100%)}.journey-horizon img{object-fit:fill}.journey-horizon{opacity:var(--city-light,1)}.journey-reflection{position:absolute;left:var(--moon-x);top:80%;width:110px;height:21%;transform:translateX(-50%);opacity:calc(.08 + var(--setting)*.24);background:linear-gradient(180deg,#c4e0e7aa,transparent);mask-image:repeating-linear-gradient(177deg,#000 0 2px,transparent 3px 7px);filter:blur(3px)}.journey-foreground{position:absolute;inset:0;background:linear-gradient(0deg,#050b13,transparent 30%),linear-gradient(90deg,#07111c44,transparent 70%)}.homepage-world .hero{background:transparent}.homepage-world .hero-shade{background:linear-gradient(90deg,#06101be8,#081321a6 36%,transparent 68%),linear-gradient(0deg,#08121a99,transparent 30%)}.hero-academic{display:block;margin-top:28px;border-left:1px solid #a2c8d4;padding-left:15px;width:fit-content;max-width:100%}.hero-academic>span:first-child{display:block;font-size:14px;color:#dce8ed;margin-bottom:5px}.hero-academic>span:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#9fb6c4;font-size:11px;line-height:1.7}.hero-academic i{width:3px;height:3px;background:#a4beca}.homepage-world .discipline-band{background:#0d171ce0}.homepage-world .city-story{background:transparent;height:auto}.city-story .city-stage{position:relative;top:0;height:640px;min-height:640px;max-height:none}.city-story .city-backdrop{opacity:.4}.city-story .city-foreground{background:url(/images/night-city.webp) center 68%/cover;mask-image:linear-gradient(transparent 48%,#000 78%)}.city-story-shade{background:linear-gradient(90deg,#07121d99,transparent 70%),linear-gradient(0deg,#08131ce0,transparent 55%)}.homepage-world .projects-section{background:#08121b8c}.homepage-world .about-section{background:#09151d99;color:#edf3f5}.homepage-world .about-section .eyebrow,.homepage-world .about-section h2 span,.homepage-world .about-signature>span{color:#b8ced8}.homepage-world .about-copy>p+p,.homepage-world .about-principles{color:#bcced7}.homepage-world .about-principles,.homepage-world .resume-link,.homepage-world .resume-options{border-color:#526b78}.homepage-world .experience-section,.homepage-world .skills-section{background:#0c171c99}.homepage-world .skills-section{color:#edf3f5}.homepage-world .skill-group ul,.homepage-world .skills-section .eyebrow,.homepage-world .skills-section .heading-note{color:#bcced7}.homepage-world .skill-group{border-color:#526b78}.homepage-world .archive-section{background:#101d2399}body:has(.homepage-world) .site-footer{position:relative;z-index:1;background:#07121aaa}.featured-lab-link{align-items:center;gap:22px;padding:30px 0;margin-top:35px;border-block:1px solid #48616a}.featured-lab-link>span{flex:1}.featured-lab-link strong{display:block;font-weight:500;font-size:22px;color:#e3eff1}.featured-lab-link>span>span{display:block;margin-top:6px;font-size:12px;color:#a9c1c9}.featured-lab-link>svg{color:#bdd7de}.secondary-projects{margin-top:24px}.secondary-projects>summary{cursor:pointer;list-style:none;display:flex;gap:20px;align-items:center;padding:15px 0;color:#bfd3da;font-size:14px}.secondary-projects>summary::-webkit-details-marker{display:none}.secondary-projects>summary>span{color:#8da8b3;font-size:11px;flex:1}.secondary-projects[open]>summary>svg{transform:rotate(45deg)}.archive-teasers{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.archive-teasers .archive-card-copy{padding:18px}.archive-teasers h3{font-size:18px}.archive-teasers .archive-thumbnail{aspect-ratio:1.55;background:#15242b}.archive-teasers .archive-thumbnail img{padding:8px}.archive-section .lab-entry{margin:35px 0 0}.navigation a{position:relative}.navigation a:after{content:"";position:absolute;bottom:4px;left:0;right:0;height:1px;background:#d4e8eb;transform:scaleX(0);transform-origin:left;transition:transform .2s}.navigation a[aria-current]{color:#eef5f6}.navigation a[aria-current]:after{transform:scaleX(1)}.navigation .nav-lab{display:inline-flex;align-items:center;gap:7px;color:#b8d7cb}.button svg,.featured-lab-link>svg:last-child,.project-card h3 svg{transition:transform .2s}.button:focus-visible svg,.button:hover svg,.featured-lab-link:hover>svg:last-child{transform:translateX(3px)}.section[id]{scroll-margin-top:12px}.homepage-world .education-section{background:linear-gradient(105deg,#0c1b2299,#12262a88 60%,#18313a66);padding-block:100px}.uct-feature{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:10px 0 55px}.uct-institution h3{font-size:48px;line-height:1.15;margin:22px 0 25px}.uct-degree{font-size:24px;line-height:1.55;color:#d2e3e3}.uct-degree span{color:#a4c6c5}.uct-ranking{display:inline-flex;align-items:center;gap:12px;font-size:11px;color:#b3d0c8;border-bottom:1px solid #638780;margin-top:30px;padding-bottom:10px;line-height:1.7}.uct-ranking svg{flex-shrink:0}.foundation-statement{font-size:25px;line-height:1.5;color:#e7eeee;margin:10px 0 28px}.foundation-statement span{color:#a6c1c7;font-size:19px}.uct-domains{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.uct-domains li{display:flex;align-items:center;gap:13px;border-top:1px solid #3b575d;padding:15px 0;font-size:13px;color:#bed3d9}.uct-domains li>span{font:9px Courier New,monospace;color:#729c9e}.foundation-context{font-size:12px;color:#94b1bb;line-height:1.9;margin-top:25px}.academic-journey{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;list-style:none;padding:0;margin:0;border-block:1px solid #48636a}.academic-journey li{min-width:0;position:relative}.academic-journey a{display:block;padding:26px 22px 25px 0}.journey-year{display:block;font-size:25px;color:#d1e5e6}.academic-journey i{display:block;height:1px;background:#63878f;position:relative;margin:15px 0 18px}.academic-journey i:before{content:"";position:absolute;left:0;top:-3px;width:7px;height:7px;background:#bacfd1;border-radius:50%}.academic-journey a>span:last-of-type{display:block;color:#a5c2c8;font-size:12px;max-width:165px;min-height:44px}.academic-journey svg{margin-top:12px;color:#98c2b8}.academic-journey a:hover .journey-year{color:#fff}.honours-entry{display:grid;grid-template-columns:180px 1fr;gap:12px 35px;margin-top:40px}.honours-entry h3{font-size:20px}.honours-entry>p{grid-column:2;font-size:13px;color:#c4d6db}.honours-entry>p>span{color:#95afb8;margin-left:16px}.homepage-world .credentials-section{background:#0b171f8c}.credentials-section h2{font-size:34px}.credential-row{border-color:#344e58;padding-left:20px;position:relative}.credential-row:before{content:"";position:absolute;width:3px;height:30px;left:0;top:30px;background:#6b8997}.credential-row[data-kind=achievement]:before{background:#a2c9b0}.credential-row[data-kind=certification]:before{background:#d6c295}.credential-row .credential-issuer{font-size:15px;color:#c4d7da}.credential-row p{color:#a4bac4}.homepage-world .contact-section{padding-block:130px 155px;background:linear-gradient(180deg,#08131cdc,#08131ca1 38%,#07121a52 65%,#070e1677);min-height:600px}.contact-section .section-label{color:#b4d2d9}.contact-section .contact-grid>div:first-child>p:last-child{color:#bad0d5}.contact-section .contact-links{background:#09151caa;padding:0 22px 15px;border-top:1px solid #617c87}.project-course{font:9px/1.7 Courier New,monospace;color:#b7d0d5;margin-bottom:12px}.project-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0d1c24ee;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none;padding:20px}.project-preview svg{width:100%;height:100%;max-height:180px}.project-preview img{object-fit:contain}.preview-foundry-flow{position:relative;z-index:1;align-self:flex-end;background:linear-gradient(transparent 30%,#0a1924c9)}.project-card-link:focus-visible .project-preview,.project-card-link:hover .project-preview{opacity:1;transform:none}.preview-trace{fill:none;stroke:#bddad6;stroke-width:2;stroke-dasharray:8 5}.preview-label{font:10px Courier New,monospace;fill:#adc6ce}.accuracy-comparison{margin:28px 0;padding:23px 0;border-block:1px solid #476570}.accuracy-comparison>figcaption{font:10px Courier New,monospace;color:#bdd9db;margin-bottom:15px}.accuracy-chart{width:100%;height:auto;display:block}.accuracy-chart text{fill:#bfced4;font-size:12px}.accuracy-chart .bar-value{fill:#eaf3f1;font-size:14px}.accuracy-bar{margin:19px 0}.accuracy-bar>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:13px;color:#b9cdd5;margin-bottom:8px}.accuracy-bar strong{color:#edf5f4;font-size:16px;font-weight:500}.accuracy-track{height:12px;background:repeating-linear-gradient(90deg,#203a47,#203a47 24.5%,#3d5b66 0,#3d5b66 25%)}.accuracy-track i{height:100%;display:block;border-radius:0 2px 2px 0}.accuracy-scale{display:flex;justify-content:space-between;font:10px Courier New,monospace;color:#8baab5}.chart-point{cursor:help}.chart-point:focus{outline:none;stroke:#fff;stroke-width:3}.experiment-table-wrap summary{font-size:12px;color:#bfd4dc;cursor:pointer;margin-bottom:16px}.instrument-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.instrument-header>span{font:9px Courier New,monospace;color:#9dbdb2;display:flex;align-items:center;gap:8px}.instrument-header i{width:4px;height:4px;background:#c3dbca}.instrument-signal-path{display:flex;align-items:center;justify-content:space-between;gap:15px;border-block:1px solid #3c5965;margin:20px 0;padding:24px 0}.instrument-signal-path>div{flex:1;font:10px Courier New,monospace;color:#9ec0cb}.instrument-signal-path strong{display:block;font:25px Segoe UI,sans-serif;color:#e0edf0;margin:8px 0 5px}.instrument-signal-path small{font:10px Courier New,monospace;color:#89a9b5}.instrument-signal-path>svg{color:#75969e}.instrument-scope{position:relative;overflow:hidden;border-block:1px solid #3b5b67;margin:20px 0}.instrument-scope .waveform-chart{margin:20px 0 12px}.scope-caption{display:flex;justify-content:space-between;font:9px Courier New,monospace;color:#8db1bd;margin:12px 0}.scope-sweep{position:absolute;top:0;left:0;height:100%;width:1px;background:#c8e1cd;opacity:0}.dma-flow{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font:10px Courier New,monospace;color:#b9d1cc;margin:16px 0}.dma-flow>span{padding:5px 0}.dma-flow>svg{color:#6b9693}.rl-playback-settings{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin:20px 0}.rl-playback-settings label{gap:10px;font-size:11px;align-items:center}.rl-agent{transition:transform calc(var(--step-duration,.42s)*.8) linear}.rl-agent circle{fill:#c6eceb;stroke:#153d45;stroke-width:2}.rl-package{fill:#c9a1a8;stroke:#e8cbce;stroke-width:1}.rl-package.collected{opacity:.15;fill:transparent}.rl-reward{font:12px Courier New,monospace;color:#b8c6ce;padding:12px 0;border-block:1px solid #3c5d67}.rl-reward.positive{color:#b7e3bd}@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-card-link:hover .preview-trace{animation:preview-flow 3s linear infinite}.instrument-scope:focus-within .scope-sweep,.instrument-scope:hover .scope-sweep{opacity:.35;animation:scope-pass 3s linear infinite}.loss-chart .loss-line{animation:loss-reveal .8s ease-out both}.rl-reward.positive{animation:reward-light .7s ease-out}.large-art.art-neural .diagram-node{animation:neuron-light 3s ease-out}.large-art.art-neural .diagram-node:nth-child(2){animation-delay:.25s}.large-art.art-neural .diagram-node:nth-child(3){animation-delay:.5s}.large-art.art-neural .diagram-node:nth-child(4){animation-delay:.75s}}@keyframes neuron-light{35%{background:#b8d7dd28;border-color:#cce5e5}}@keyframes preview-flow{to{stroke-dashoffset:-52}}@keyframes scope-pass{to{transform:translateX(700px)}}@keyframes loss-reveal{0%{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}@keyframes reward-light{0%{background:#a7dcc923}to{background:transparent}}@media(min-width:1680px){.hero-academic{margin-top:32px}}@media(max-width:1180px){.uct-feature{gap:45px}.uct-institution h3{font-size:42px}.uct-degree{font-size:22px}.archive-teasers{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:960px){.uct-feature{grid-template-columns:1fr;gap:35px}.uct-foundation{max-width:650px}.honours-entry{grid-template-columns:1fr}.honours-entry>p{grid-column:1}.academic-journey a{padding-right:15px}.academic-journey a>span:last-of-type{font-size:11px}}@media(max-width:640px){.moon-journey{--moon-x:57vw;--moon-y:28svh}.journey-moon{width:190px}.journey-horizon,.journey-rear{left:57%;transform:translate3d(-62%,var(--horizon-shift),0) scale(1.03)}.journey-reflection{width:65px}.homepage-world .hero{height:min(770px,calc(100svh - 114px));min-height:640px}.homepage-world .hero-inner{padding-bottom:73px}.homepage-world .hero-shade{background:linear-gradient(0deg,#08121ae6,#08121ae0 48%,#08121a55 65%,transparent 86%)}.hero-academic{margin-top:22px;padding-left:12px}.hero-academic>span:first-child{font-size:12px}.hero-academic>span:last-child{font-size:10px;max-width:315px;gap:6px}.homepage-world .city-story{height:auto}.city-story .city-stage{height:740px;min-height:0}.featured-lab-link{gap:15px;padding-block:23px}.featured-lab-link strong{font-size:17px}.featured-lab-link>span>span{font-size:11px}.featured-lab-link>svg:first-child{width:22px}.secondary-projects>summary{align-items:flex-start;flex-wrap:wrap;gap:8px;font-size:13px}.secondary-projects>summary>span{order:3;flex-basis:100%}.secondary-projects>summary>svg{margin-left:auto}.archive-teasers{grid-template-columns:1fr 1fr;gap:15px}.archive-teasers .archive-card-copy{padding:14px}.archive-teasers h3{font-size:16px;line-height:1.4}.archive-teasers h3 svg{display:none}.archive-teasers p{font-size:11px;line-height:1.7;margin:12px 0}.archive-teasers .project-tags{display:none}.archive-teasers .project-meta{font-size:8px}.lab-entry{font-size:14px}.homepage-world .education-section{padding-block:70px}.uct-institution h3{font-size:39px}.uct-degree{font-size:22px}.uct-feature{padding-bottom:35px}.uct-ranking{font-size:10px;gap:8px}.foundation-statement{font-size:23px}.foundation-statement span{font-size:17px}.uct-domains{gap:0 16px}.uct-domains li{font-size:11px;gap:7px;padding-block:13px}.academic-journey{grid-template-columns:repeat(3,minmax(0,1fr))}.academic-journey a{padding:20px 12px 15px 0}.academic-journey a>span:last-of-type{font-size:10px}.journey-year{font-size:22px}.honours-entry h3{font-size:19px;line-height:1.5}.honours-entry>p>span{display:block;margin:8px 0 0}.credentials-section h2{font-size:29px}.credential-row{padding-left:15px}.credential-row .credential-issuer{font-size:13px}.homepage-world .contact-section{padding-block:90px 115px}.contact-section .contact-links{padding-inline:15px}.instrument-header{flex-wrap:wrap;gap:10px}.instrument-signal-path{gap:8px}.instrument-signal-path>div{font-size:8px}.instrument-signal-path strong{font-size:19px}.instrument-signal-path small{font-size:8px}.instrument-signal-path>svg{width:13px}.rl-playback-settings{gap:10px}}@media(prefers-reduced-motion:reduce){.homepage-world .city-story{height:auto}.journey-moon{will-change:auto}.rl-agent{transition:none}.project-preview{transform:none}.scope-sweep{display:none}}.moon-journey{--moon-y:30svh;height:100svh;bottom:auto}.journey-city-lights{position:absolute;inset:0;opacity:calc(.2 + var(--setting)*.6)}.journey-city-lights i{position:absolute;width:2px;height:13px;background:#b75272;box-shadow:5px 4px #b7527255,10px 8px #b7527233}.journey-city-lights i:nth-child(3n){background:#78c9d3;box-shadow:6px 7px #78c9d344}.journey-city-lights i:nth-child(3n+1){background:#b04651}.journey-reflection{background:linear-gradient(180deg,#a5d1dd99,#b7547544 50%,transparent);opacity:calc(.08 + var(--setting)*.35)}.motion-toggle{position:fixed;right:18px;bottom:18px;z-index:20;width:44px;height:44px;padding:0;border:1px solid #576875;border-radius:4px;background:#0b1725e6;color:#c8dce5;display:grid;place-items:center;cursor:pointer}.motion-toggle:hover{border-color:#99c9d3}.motion-toggle:focus-visible{outline:2px solid #abe0e7;outline-offset:3px}.network-wire{stroke:#93b8d0;opacity:calc(.15 + var(--story)*.55)}.district-node.selected{stroke:#82d5df;filter:drop-shadow(0 0 6px #75c0d344)}.district-node.selected .node-core{fill:#83d6df}.district-node.selected:first-of-type{stroke:#c87a9c}.district-node.selected:first-of-type .node-core{fill:#d994b2}.district-tabs button[aria-pressed=true]{border-color:#91d2dc;background:#7dccdf0a}.district-tabs button:first-child[aria-pressed=true]{border-color:#ca83a5}.filters .active{border-color:#a87999}.engineering-spotlights{margin:68px 0 0}.spotlight-heading{border-top:1px solid #3a505e;padding-top:25px;margin-bottom:25px}.spotlight-heading h3{font-size:24px;font-weight:500;margin-top:13px}.spotlight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.spotlight-grid .project-card h3{font-size:19px}.spotlight-grid .project-card-copy{padding:20px}.spotlight-grid .project-card p{font-size:12px}.spotlight-grid .project-art,.spotlight-image{aspect-ratio:1.45;position:relative;overflow:hidden;background:#111f2d}.spotlight-image img{object-fit:contain;padding:10px}.spotlight-grid .project-course,.spotlight-grid .project-meta{font-size:8px}.featured-lab-link{display:flex;justify-content:space-between;gap:35px;padding:42px 25px;margin-top:45px;border-block:1px solid #466377;background:linear-gradient(100deg,#111e2b99,#1b283344);position:relative;overflow:hidden}.lab-cta-copy{display:flex;align-items:flex-start;gap:23px}.lab-cta-copy>span>span{display:block}.lab-cta-copy strong{font-size:28px;margin-block:13px 10px}.lab-cta-copy>span>span:not(.eyebrow){font-size:12px;color:#b3c7d4}.lab-cta-copy .lab-cta-action{display:flex;align-items:center;gap:12px;margin-top:25px;color:#e5f0f4}.lab-cta-schematic{width:32%;max-width:360px;flex-shrink:0;fill:none;stroke:#81c3d0;stroke-width:1.5;opacity:.55}.lab-cta-schematic path:nth-child(2){stroke:#b96e93;opacity:.45}.lab-cta-schematic circle{fill:#a4ccd7}.course-context{display:flex;align-items:center;justify-content:space-between;gap:35px;border-block:1px solid #344b5b;padding:25px 0;margin:24px 0 35px}.course-context h2{font-size:18px;line-height:1.5;margin:10px 0}.course-context p:not(.eyebrow){max-width:740px;font-size:13px;color:#b9cbd8}.course-context>a{display:flex;gap:8px;align-items:center;font-size:11px;color:#b6d4dd;flex-shrink:0;max-width:250px}.course-context>a svg{flex-shrink:0}.credential-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.credential-card{border:1px solid #3b4d5c;border-radius:4px;overflow:hidden;background:#0c1923}.credential-preview{display:block;height:230px;position:relative;background:#e4e8eb;border-bottom:1px solid #3b4d5c}.credential-preview img{object-fit:contain;padding:12px}.credential-copy{padding:25px}.credential-copy .eyebrow{font-size:9px;color:#b8ccda}.credential-copy h3{font-size:20px;line-height:1.5;margin-block:14px 10px}.credential-copy>p:not(.eyebrow){font-size:12px;line-height:1.8;color:#b6c5d2}.credential-copy .credential-issuer{color:#e2edf0;margin-bottom:10px}.credential-dates{display:flex;gap:35px;flex-wrap:wrap;margin:24px 0;font-size:11px}.credential-dates dt{color:#a0b6c6;margin-bottom:5px}.credential-dates dd{margin:0;color:#e0e9ee}.credential-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-top:1px solid #354a5b;padding-top:20px}.credential-actions a{display:flex;align-items:center;gap:8px;font-size:11px;min-height:36px;color:#d5e6ec}.credentials-page>.evidence-caption{margin-bottom:40px}.credential-card[data-kind=certification]{border-top-color:#aa9185}.credential-card[data-kind=achievement]{border-top-color:#ad809b}.security-study{margin:35px 0;padding:28px 0;border-block:1px solid #466477}.security-study ol{list-style:none;padding:0;margin:25px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px}.security-study li>div{border-top:1px solid #6b8d9e;padding-top:15px}.security-study li>div>span{font:11px Courier New,monospace;color:#b588a6;margin-right:15px}.security-study h3{font-size:16px;line-height:1.5;margin:15px 0 10px}.security-study figcaption,.security-study p{font-size:12px;color:#bdceda;line-height:1.8}.security-study li>svg{display:none}@media(max-width:1180px){.spotlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.course-context{flex-direction:column;align-items:flex-start;gap:15px}.security-study ol{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-cta-schematic{width:25%}}@media(max-width:640px){.moon-journey{--moon-x:65vw;--moon-y:23svh}.spotlight-grid{grid-template-columns:1fr}.spotlight-heading h3{font-size:21px}.featured-lab-link{padding:28px 16px;gap:10px}.lab-cta-copy{gap:13px}.lab-cta-copy strong{font-size:24px}.lab-cta-copy>svg{flex-shrink:0;width:21px}.lab-cta-schematic{display:none}.credential-grid{grid-template-columns:1fr;gap:22px}.credential-preview{height:220px}.credential-copy{padding:20px}.credential-copy h3{font-size:18px}.credential-actions{gap:15px}.security-study ol{grid-template-columns:1fr;gap:15px}.security-study li>svg{display:block;margin:20px auto 0;color:#83b9c8}}.inventory-line{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin:30px 0 42px;padding-block:20px;border-block:1px solid #395363;font-size:12px;color:#bfd4e1}.inventory-line a{display:inline-flex;align-items:center;gap:8px}.playground-page>h1,.projects-index-page>h1{font-size:52px;line-height:1.15;margin:20px 0}.playground-page>.lead,.projects-index-page>.lead{max-width:700px;color:#bdd0dd;line-height:1.8}.demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.demo-card{display:block;overflow:hidden;border:1px solid #344f62;border-radius:4px;background:#0b1923}.demo-card>div{padding:25px}.demo-card h2{display:flex;justify-content:space-between;gap:18px;font-size:23px;line-height:1.45;margin:12px 0}.demo-card h2 svg{flex-shrink:0;margin-top:7px}.demo-card p:not(.eyebrow){font-size:14px;line-height:1.8;color:#c0d0da}.demo-card small{display:block;margin-top:20px;color:#9cb6c8;font-size:11px}.demo-preview{display:block;width:100%;height:180px;background:linear-gradient(140deg,#122735,#08131c);fill:none;stroke:#70d0dd;stroke-width:1.5}.demo-preview text{fill:#b6d9e9;stroke:none;font:16px Courier New,monospace}.demo-preview rect{fill:#7aafca;stroke:none}.demo-preview .preview-guide{stroke:#466477}.demo-preview .preview-agent{fill:#ff719f}.demo-preview .preview-node{fill:#122a37}.demo-preview .preview-patron{stroke:#ff82ae}.demo-preview .preview-signal{stroke:#00d9ff;stroke-dasharray:80 10}.demo-page .detail-heading h1{font-size:52px}.demo-origin{border-top:1px solid #344f62;padding:25px 0}.demo-origin p{margin-top:15px;color:#c0d2de;font-size:14px}.demo-origin a{display:inline-flex;align-items:center;gap:5px;color:#9ce3eb}.demo-origin figure{margin-top:25px}.demo-origin img{width:100%;max-height:360px;object-fit:contain;background:#101d29}.demo-origin figcaption{color:#b2c6d5;font-size:11px;line-height:1.8;margin-top:12px}.provenance-badge{display:inline-block;padding:7px 10px;border:1px solid #70546b;color:#e5b8cc;font:10px Courier New,monospace}.original-badge{border-color:#557b81;color:#bde1df}.demo-stage{margin:25px 0 55px;border-block:1px solid #517185;padding:20px 0 30px}.demo-stage-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:22px}.demo-load-state{min-height:140px;display:grid;align-content:center;justify-items:start;gap:20px}.demo-ready{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;background:linear-gradient(115deg,#102735,#0c1724)}.demo-instrument{border:1px solid #38566a;border-radius:4px;padding:28px;background:#0a1721;min-width:0}.demo-instrument h2{font-size:24px;line-height:1.4;margin:10px 0}.demo-instrument input,.demo-instrument select{max-width:100%;background:#122a38;color:#e1eff5;border:1px solid #587386;padding:9px;border-radius:3px;font:inherit}.demo-instrument input[type=range]{width:100%;accent-color:#66d4e1;height:35px;padding:0}.demo-instrument label{display:block;color:#bfd4e2;font-size:12px;line-height:1.7}.demo-instrument label strong{float:right;margin-left:15px}.demo-instrument select{display:block;margin-top:6px;min-height:40px}.demo-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;margin-bottom:20px}.demo-toolbar>label{flex:1;min-width:110px}.demo-toolbar input{width:100%}.demo-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:20px 0}.demo-controls .button{min-height:44px}.demo-controls .icon-button,.direction-pad .icon-button{width:44px;height:44px;border:1px solid #507184;background:#142c39;border-radius:3px}.demo-status{padding:14px 0;color:#cde0ea;font:13px/1.8 Courier New,monospace;min-height:48px}.demo-documentation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.demo-documentation section:last-child{grid-column:1/-1}.demo-documentation h2{font-size:22px;margin-bottom:15px}.demo-documentation p{color:#b9cfdd;font-size:14px;line-height:1.9}.demo-sliders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-bottom:25px}.demo-instrument .lab-readouts{gap:15px}.demo-instrument .lab-readouts>div{font-size:9px;line-height:1.7}.bar-scene{border:1px solid #395564;background:linear-gradient(130deg,#171d2c,#102b32);padding:22px}.bar-sign{font:22px Courier New,monospace;color:#f4d8e6;border-left:3px solid #ff2f92;padding-left:16px}.bar-sign span{display:block;font-size:9px;color:#b6c8d5;margin-top:7px}.bar-counter{display:grid;grid-template-columns:1fr 2fr;gap:20px;padding:25px 0;border-bottom:4px solid #6bcfda;box-shadow:0 8px 16px -12px #00d9ff}.bartender{display:flex;flex-direction:column;align-items:center;gap:12px;justify-content:center;color:#afc9dc;font:10px Courier New,monospace}.active-order{display:grid;grid-template-columns:35px 1fr;gap:10px;align-items:center;font-size:15px}.active-order svg{color:#ef8cbd}.active-order progress,.active-order span{grid-column:2;width:100%;accent-color:#00d9ff}.active-order span{font:11px Courier New,monospace;color:#c3d5e1}.patron-lanes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:25px 0}.patron{display:flex;flex-direction:column;align-items:center;gap:8px;color:#b9d1de;padding:10px 3px;border-bottom:2px solid #496a7e;transition:transform .2s,opacity .2s}.patron strong{font-size:11px}.patron small,.patron span{font-size:9px}.patron.incoming,.patron.left{opacity:.45}.patron.serving{transform:translateY(-8px);color:#9fe5ec;border-color:#00d9ff}.patron.waiting{border-color:#ff719f}.queue-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font:10px Courier New,monospace;color:#c6dce8}.order-ticket{padding:8px 12px;border:1px solid #8d5373}.demo-range{margin:20px 0}.word-field{height:320px;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,transparent,transparent calc(33.333% - 1px),#38586c33 calc(33.333% - 1px),#38586c33 33.333%),linear-gradient(#0b1e2c,#112a39);border:1px solid #38586c}.falling-word{position:absolute;width:33.333%;text-align:center;color:#afeced;font:16px Courier New,monospace;transition:top .1s linear}.lane-0{left:0}.lane-1{left:33.333%;color:#e8b8d3}.lane-2{left:66.666%;color:#bfcdfb}.word-floor{position:absolute;bottom:15px;left:0;right:0;text-align:center;border-top:1px solid #ad6c92;padding-top:10px;font:9px Courier New,monospace;color:#b5c8d6}.word-paused{position:absolute;inset:0;display:grid;place-items:center;background:#08151a99;color:#dce7ee;font:12px Courier New,monospace}.word-form{display:flex;gap:15px;align-items:flex-end;margin-top:20px}.word-form label{flex:1}.word-form input{display:block;width:100%;margin-top:6px;min-height:44px}.raster-pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.raster-pipeline svg{width:100%;height:auto;border:1px solid #4a6375;image-rendering:pixelated}.raster-pipeline figcaption{color:#cce1ec;font-size:12px;margin-bottom:10px}.puzzle-board{width:100%;max-width:460px;aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:25px auto;background:#02060b;border:1px solid #5c8195;padding:3px}.puzzle-board button{position:relative;min-width:0;border:0;background-color:#03060a;cursor:pointer}.puzzle-board button:disabled{opacity:1;cursor:default}.puzzle-board button span{position:absolute;bottom:7px;right:7px;color:#e7f1f4;padding:3px 6px;font:11px Courier New,monospace;background:#09131ae0;border-radius:2px}.puzzle-board button:not(:disabled):hover{box-shadow:inset 0 0 0 2px #00d9ff}.club-scene{border:1px solid #527084}.club-bar{padding:17px;background:#253342;border-bottom:2px solid #ff719f;color:#e2cedd;font:11px Courier New,monospace}.club-grid{height:240px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);background:repeating-linear-gradient(0deg,transparent 0 59px,#38586c33 59px 60px),repeating-linear-gradient(90deg,#122431 0 59px,#38586c33 59px 60px)}.club-patron{align-self:center;justify-self:center;display:flex;align-items:center;gap:7px;color:#bceaf0;font:12px Courier New,monospace}.club-door{padding:17px;border-top:2px solid #00d9ff;font:10px Courier New,monospace}.club-door span{display:block;margin-top:10px;color:#d7c5d1}.demo-comparison{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-top:1px solid #40586b;padding-top:20px}.demo-comparison strong{font-size:10px}.demo-comparison p{font-size:12px;color:#b7cedd;line-height:1.8;margin-top:10px}.page-table{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:25px 0}.page-table>div{border:1px solid #476476;padding:12px 2px;text-align:center}.page-table small,.page-table span{font-size:9px;color:#b6ccd9;display:block}.page-table strong{font:26px Courier New,monospace;display:block;margin:12px 0}.page-table .selected{border-color:#00d9ff;background:#00d9ff10}.address-bits{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 0;border-bottom:1px solid #435b6c}.address-bits span{font-size:9px;color:#b4cedd}.address-bits code{font-size:23px;color:#ecb6d4;grid-row:2}.address-bits code:last-child{color:#a2e6ed}.physical-bits{border-top:1px solid #435b6c}.physical-bits code:first-of-type{color:#b8c8ff}.direction-pad{display:flex;gap:12px;justify-content:center;margin:20px 0}.room-board:focus-visible{outline:2px solid #ff719f;outline-offset:5px}.graph-trace [role=button]{cursor:pointer}.graph-trace [role=button]:focus-visible circle{stroke:#fff;stroke-width:4px}.study-demo-links{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:35px;border-block:1px solid #3b5364;padding:20px 0}.study-collections{margin-bottom:45px}.study-collections>h2{font-size:24px;margin-bottom:25px}.study-collections>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.study-collections section{border-top:1px solid #446474;padding-top:20px}.study-collections h3{font-size:20px;margin-bottom:12px}.study-collections p{font-size:12px;color:#abc5d4;line-height:1.8;margin-bottom:15px}.study-collections a{display:block;padding:8px 0;font-size:12px;color:#c9e2ee}.interactive-lab-cta{margin-top:65px;padding:45px 0;display:grid;grid-template-columns:1.2fr 1fr;gap:45px;border-block:1px solid #5a7180;background:linear-gradient(100deg,#10283633,#341d3633)}.lab-cta-intro h3{font-size:32px;line-height:1.4;margin:15px 0}.lab-cta-intro>p:not(.eyebrow){font-size:13px;color:#bfd5e2;line-height:1.9}.lab-cta-links{display:flex;flex-wrap:wrap;align-items:center;gap:15px;margin-top:25px}.lab-cta-previews{display:grid;grid-template-columns:1fr;gap:12px}.lab-cta-previews a{display:grid;grid-template-columns:135px 1fr;align-items:center;border-bottom:1px solid #365769;gap:20px}.lab-cta-previews .demo-preview{height:90px;background:transparent}.lab-cta-previews span{font:10px Courier New,monospace;color:#bfd6e3}@media(hover:hover) and (prefers-reduced-motion:no-preference){.demo-card:focus-visible .preview-word,.demo-card:hover .preview-word{animation:preview-fall 2.5s linear infinite}.demo-card .delayed{animation-delay:1s}.demo-card:hover .preview-agent,.lab-cta-previews a:hover .preview-agent{animation:preview-room 3s steps(3) infinite}.demo-card:focus-visible .preview-node,.demo-card:hover .preview-node{animation:preview-settle 2.5s infinite}.demo-card:hover .preview-signal,.lab-cta-previews a:hover .preview-signal{animation:preview-signal 3s linear infinite}.demo-card:hover .preview-patron,.lab-cta-previews a:hover .preview-patron{animation:preview-queue 2.5s infinite}.project-card{transform:perspective(1000px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .2s}}@keyframes preview-fall{to{transform:translateY(65px);opacity:.4}}@keyframes preview-room{60%{transform:translate(75px,25px)}}@keyframes preview-settle{50%{fill:#5aa9a6;stroke:#ff719f}}@keyframes preview-signal{to{stroke-dashoffset:-90}}@keyframes preview-queue{60%{transform:translate(20px,-8px)}}@media(max-width:960px){.interactive-lab-cta{grid-template-columns:1fr;gap:25px}.lab-cta-previews{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-cta-previews a{display:block}.lab-cta-previews .demo-preview{width:100%}.raster-pipeline{grid-template-columns:1fr 1fr}}@media(max-width:640px){.demo-grid{grid-template-columns:1fr;gap:20px}.demo-card>div{padding:20px}.demo-page .detail-heading h1{font-size:34px}.demo-instrument{padding:17px}.demo-instrument h2{font-size:21px}.demo-comparison,.demo-documentation,.demo-sliders,.study-collections>div{grid-template-columns:1fr}.demo-sliders{gap:15px}.patron-lanes{grid-template-columns:repeat(3,minmax(0,1fr))}.bar-scene{padding:15px}.bar-counter{gap:12px}.active-order{font-size:12px}.page-table strong{font-size:20px}.page-table small,.page-table span{font-size:7px}.page-table{gap:3px}.lab-cta-intro h3{font-size:28px}.lab-cta-previews span{font-size:8px}.word-field{height:280px}.falling-word{font-size:13px}.demo-origin img{max-height:260px}.inventory-line{gap:15px}.address-bits code{font-size:20px}}@media(prefers-reduced-motion:reduce){.falling-word,.patron,.rl-agent{transition:none!important}.demo-preview *{animation:none!important}}.journey-city-lights{opacity:calc(.55 + var(--setting)*.35);mix-blend-mode:screen}.tower-light{position:absolute;border-inline:1px solid currentColor;color:#ff1744;background:repeating-linear-gradient(0deg,transparent 0 5px,currentColor 6px 7px,transparent 8px 12px);opacity:.7;box-shadow:0 0 8px currentColor;mask-image:linear-gradient(#000,transparent)}.tower-light i{display:block;position:absolute;height:2px;width:100%;top:15%;background:currentColor;box-shadow:0 30px currentColor,0 60px currentColor}.tower-light i:nth-child(2){top:35%;width:70%}.tower-light i:nth-child(3){top:65%;width:90%}.colour-0{color:#ff1744}.colour-1{color:#ff2f92}.colour-2{color:#00d9ff}.colour-3{color:#4d6bff}.city-water-lights{position:absolute;inset:0;opacity:calc(.25 + var(--setting)*.4)}.city-water-lights i{position:absolute;top:85%;height:16%;width:1.5%;background:linear-gradient(currentColor,transparent);filter:blur(3px);mask-image:repeating-linear-gradient(177deg,#000 0 2px,transparent 3px 7px)}.city-traffic{position:absolute;inset:83% 0 auto;height:2px;opacity:.6;overflow:hidden}.city-traffic i{position:absolute;height:1px;width:12%;left:15%;background:linear-gradient(90deg,transparent,#ff456c);box-shadow:0 0 4px #ff456c}.city-traffic i:last-child{left:70%;background:linear-gradient(90deg,#d8f0f4,transparent)}.moon-journey[data-active=true] .city-traffic i{animation:city-traffic 26s linear infinite}.moon-journey[data-active=true] .city-traffic i:last-child{animation-direction:reverse;animation-delay:-13s}.moon-journey[data-active=true] .city-water-lights{animation:water-shimmer 11s ease-in-out infinite alternate}.moon-journey[data-active=true] .tower-light:nth-child(4n){animation:tower-pulse 17s ease-in-out infinite}.moon-journey[data-active=false] *{animation-play-state:paused!important}.district-node.selected:first-of-type{stroke:#ff719f}.district-node.selected:first-of-type .node-core{fill:#ff719f}.network-wire{stroke:#70cfe1}@keyframes city-traffic{to{transform:translateX(650%)}}@keyframes water-shimmer{to{transform:translateX(3px);opacity:.32}}@keyframes tower-pulse{0%,92%,to{opacity:.7}95%{opacity:.45}}@media(prefers-reduced-motion:reduce){.moon-journey *{animation:none!important}.project-card{transform:none!important}}.tower-light{opacity:.85;mask-image:linear-gradient(#000 70%,transparent)}.district-city-lighting{position:absolute;height:100%;aspect-ratio:16/9;min-width:100%;left:50%;transform:translateX(-50%);--setting:1;mask-image:linear-gradient(transparent 63%,#000 73%,#000 95%,transparent)}.homepage-world .city-story .city-backdrop{opacity:.65}.lab-preview-signals{animation:none}@media(hover:hover) and (prefers-reduced-motion:no-preference){.lab-module:focus-visible .lab-preview-signals,.lab-module:hover .lab-preview-signals{animation:signal-flow 4s linear infinite}.lab-module:focus-visible .lab-preview-graph circle,.lab-module:hover .lab-preview-graph circle{animation:preview-settle 3s infinite}.lab-module:focus-visible .worker-trace,.lab-module:hover .worker-trace{animation:preview-queue 3s infinite}}.lab-module>.demo-preview{width:88%;height:125px;background:transparent}@media(hover:hover) and (prefers-reduced-motion:no-preference){.lab-module:focus-visible .preview-word,.lab-module:hover .preview-word{animation:preview-fall 3s linear infinite}.project-card-link:focus-visible .preview-agent,.project-card-link:hover .preview-agent{animation:preview-room 3s steps(3) infinite}}@media(max-width:640px){.playground-page>h1,.projects-index-page>h1{font-size:35px}.playground-page>.lead,.projects-index-page>.lead{font-size:16px}}.study-workbench{margin:42px 0;padding:32px 0;border-block:1px solid #3b535e}.study-intro{max-width:850px}.study-intro h2{font-size:28px;margin:12px 0 20px}.study-intro>p:last-child{color:#c6d5db;font-size:15px;line-height:1.85}.study-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0 32px}.study-tools>div{border-left:2px solid #819d96;padding-left:16px;min-width:0}.study-theory dt,.study-tools dt{font-size:14px;font-weight:600;color:#e3edef}.study-theory dd,.study-tools dd{margin:8px 0 0;font-size:13px;line-height:1.8;color:#b8cbd3}.study-tabs{display:flex;gap:4px;border-bottom:1px solid #46606b}.study-tabs button{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 16px;min-height:48px;background:transparent;border:0;border-bottom:2px solid transparent;color:#b4c9d2;cursor:pointer;font:inherit;font-size:13px}.study-tabs [aria-selected=true]{color:#e7f2ef;border-bottom-color:#c3acb8;background:#a6bdc00c}.study-panel{min-height:350px;padding-top:26px}.study-panel[hidden]{display:none}.study-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:12px}.study-flow li{min-width:0;position:relative;padding-top:8px;border-top:1px solid #47616c}.study-flow li:before{content:"";position:absolute;top:-1px;left:0;width:100%;height:2px;background:#b0d7c6;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.study-flow li[data-reached=true]:before{transform:scaleX(1)}.study-flow button{min-height:72px;width:100%;background:none;border:0;padding:8px;text-align:left;color:#adc2cb;font:inherit;font-size:13px;cursor:pointer;line-height:1.5}.study-flow button>span{display:block;color:#94bcb3;font:11px Courier New,monospace;margin-bottom:7px}.study-flow button[aria-pressed=true]{color:#f1f5f6;background:#b1d5d410}.study-step{padding:24px 8px 14px;min-height:168px}.study-step h3,.study-validation h3{font-size:19px;line-height:1.5;margin:10px 0}.study-step p,.study-validation p{color:#c1d2d9;font-size:14px;line-height:1.85;margin:10px 0;max-width:850px}.study-controls{display:flex;align-items:center;gap:10px;border-top:1px solid #3c5662;padding:14px 0 0}.study-controls>span{flex:1;color:#a9c1cb;font-size:11px}.study-controls button{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:#10232e;border:1px solid #64818c;border-radius:4px;color:#dfeded;cursor:pointer}.study-controls button:disabled{opacity:.35;cursor:default}.study-theory{margin:0;display:grid;gap:22px}.study-theory>div{display:grid;grid-template-columns:180px 1fr;gap:22px;padding:0 0 20px;border-bottom:1px solid #344e59}.study-theory dd{margin:0}.study-validation{padding:0 8px}.study-validation h3:not(:first-child){margin-top:24px}.project-search :focus-visible,.study-workbench :focus-visible{outline:2px solid #c5e6df;outline-offset:4px}.project-search{display:flex;align-items:center;gap:12px;max-width:680px;margin:0 0 24px;padding:0 12px;border:1px solid #6a8390;border-radius:4px;color:#bfd6df}.project-search input{background:none;border:0;color:#e6eef1;flex:1;min-width:0;font:inherit;font-size:14px;min-height:52px;padding:8px}.project-search input::placeholder{color:#a8bdc7}.project-search button{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:transparent;border:0;color:#d3e3e9;cursor:pointer}.project-empty{padding:24px 0;color:#bfd1db}@media(max-width:640px){.study-workbench{padding-block:26px;margin-block:32px}.study-intro h2{font-size:25px}.study-tools{grid-template-columns:1fr;gap:20px}.study-tabs{gap:0}.study-tabs button{flex:1;padding-inline:8px;font-size:12px;gap:6px}.study-tabs svg{width:14px;flex-shrink:0}.study-panel{min-height:430px}.study-flow{gap:8px}.study-flow button{padding:8px 3px;font-size:11px;min-height:100px;overflow-wrap:anywhere}.study-step{min-height:220px;padding-inline:0}.study-theory>div{grid-template-columns:1fr;gap:6px}}@media(prefers-reduced-motion:reduce){.study-flow li:before{transition:none}}