body{color:#505050;background:#f4f4f4;margin:0 auto;padding:0;font:76% Verdana,Tahoma,Arial,sans-serif}#wrap{color:#404040;background:#fff;width:800px;margin:0 auto}a{background-color:inherit;color:#286ea0;font-weight:700;text-decoration:none}a:hover{background-color:inherit;color:#286ea0;text-decoration:underline}a img{border:0}p{margin:0 0 1.4em}#header{height:45px;margin:10px 0 0;padding:0}#header h1{background-color:inherit;color:#505050;float:left;width:600px;margin:0 0 10px;font-size:2.2em}#header h1 a{background-color:inherit;color:#505050;text-decoration:none}#header h5{background-color:inherit;color:#505050;float:left;width:500px;margin:0 0 20px;font-size:1em}#header h5 a{background-color:inherit;color:#505050;text-decoration:none}#header p{float:right;text-align:center;width:400px;margin:8px 0 0;font-weight:700;line-height:1.3em}#frontphoto{border:0;margin:0 0 10px}#leftside{clear:left;float:left;width:160px;margin:0 0 5px;padding:0}#rightside{float:right;width:160px;margin:0 0 5px;padding:0;line-height:1.4em}#leftside p,#leftside ul,#rightside p,#rightside ul{margin:0 0 16px;padding:0}#leftside p,#rightside p{font-size:.9em;line-height:1.4em}#leftside li,#rightside li{margin:0 0 6px;padding:0;line-height:1.2em;list-style:none}#leftside ul ul,#rightside ul ul{margin:6px 0 0 10px;padding:0}#leftside ul ul li,#rightside ul ul li{margin:0 0 4px}#leftside ul ul li a,#rightside ul ul li a{font-weight:400}#leftside h2,#leftside h3,#rightside h2,#rightside h3{color:#505050;margin:0 0 8px;padding:0;font-size:1.2em}#leftside ul.avmenu,#rightside ul.avmenu{width:160px;margin:0 0 18px;padding:0;list-style:none;display:block}#leftside ul.avmenu li,#rightside ul.avmenu li{width:160px;padding:0;line-height:1.4em;display:inline}#leftside ul.avmenu li a,#rightside ul.avmenu li a{color:#505050;float:left;background-color:#f4f4f4;border-left:4px solid #ccc;width:130px;margin-bottom:5px;padding:5px 1px 5px 5px;font-weight:700;text-decoration:none}#leftside ul.avmenu li a:hover,#leftside ul.avmenu li a.current,#rightside ul.avmenu li a:hover,#rightside ul.avmenu li a.current{color:#505050;background-color:#eaeaea;border-left:4px solid #286ea0}#leftside ul.avmenu ul,#rightside ul.avmenu ul{width:125px;margin:0 0 0 15px;padding:0 0 5px;font-size:.9em}#leftside ul.avmenu ul a,#rightside ul.avmenu ul a{width:115px;padding:3px 1px 3px 5px;font-weight:400}#leftside ul.avmenu ul ul,#rightside ul.avmenu ul ul{width:113px}#leftside ul.avmenu ul ul a,#rightside ul.avmenu ul ul a{width:100px}#content{border-left:1px solid #e0e0e0;border-right:1px solid #e0e0e0;margin:0 150px 5px;padding:0 10px;line-height:1.5em}#contentwide{border-left:1px solid #e0e0e0;margin:0 0 5px 150px;padding:0 0 0 10px;line-height:1.5em}#contentwide2{border-right:1px solid #e0e0e0;margin:0 150px 5px 0;padding:0 10px 0 0;line-height:1.5em}#content h2,#contentwide h2,#contentwide2 h2{margin:0 0 10px;font-size:1.6em}#content h3,#contentwide h3,#contentwide2 h3{margin:0 0 8px;font-size:1.3em}#content ul,#contentwide ul,#contentwide2 ul,#content ol,#contentwide ol,#contentwide2 ol{margin:0 0 16px 20px;padding:0}#content li,#contentwide li,#contentwide2 li{margin:0;padding:0 0 0 5px}#content ul ul,#contentwide ul ul,#contentwide2 ul ul,#content ol ol,#contentwide ol ol,#contentwide2 ol ol{margin:0 0 0 16px;padding:0}#footer{clear:both;color:gray;text-align:center;background:#fff;border-top:2px solid #e0e0e0;width:760px;margin:0 auto;padding:10px 0;font-size:.9em;line-height:1.5em}#footer p{margin:0;padding:0}#footer a{color:gray;background-color:#fff;font-weight:400;text-decoration:none}#footer a:hover{text-decoration:underline}#footer span{font-size:1.2em}.left{float:left;margin:3px 10px 2px 0}.right{float:right;margin:2px 0 2px 10px}.textright{text-align:right;margin:5px 0}.center{text-align:center}.small{font-size:.8em}.bold{font-weight:700}.timestamp{margin:-5px 0 15px 10px;font-size:1.2em}.timestamp a{font-weight:400}.announce{clear:left;color:#505050;background-color:#f4f4f4;border-left:4px solid #ccc;width:126px;margin:10px 0 15px;padding:7px 5px 2px;font-size:.9em;line-height:1.5em}.announce p{margin:10px 0 0;padding:0}.postinfo{color:#606060;background-color:#f4f4f4;border-left:4px solid #ccc;margin:1px 0 20px;padding:8px 5px 8px 8px;font-size:.9em;line-height:1.4em}.clearing{clear:left;visibility:hidden;margin:0;padding:0}.hide{display:none}#leftside ul.avmenu:after{clear:both;content:"";display:block}#leftside ul.avmenu li.nav-group{float:left;width:160px;margin:0 0 7px;display:block}#leftside ul.avmenu li.nav-group .nav-group-label{box-sizing:border-box;color:#505050;background:#f4f4f4;border-left:4px solid #ccc;width:140px;padding:5px 6px;font-weight:700;display:block}#leftside ul.avmenu li.nav-group ul{clear:both;width:125px;margin:4px 0 0 15px;padding:0}#leftside ul.avmenu li.nav-group ul li{width:125px;margin:0 0 4px;display:block}#leftside ul.avmenu li.nav-group ul li a{box-sizing:border-box;float:none;width:115px;margin:0;padding:3px 1px 3px 5px;font-size:.9em;font-weight:400}.profile-placeholder{float:right;border:3px groove #dcdcdc;margin:0 10px;display:block}#profile-links a{align-items:center;gap:6px;display:inline-flex}.profile-link-icon{fill:currentColor;flex:none;width:16px;height:16px}.profile-photo{float:right;border:1px solid #aaa;width:181px;height:auto;margin:0 0 10px 15px;display:block}.project-preview{text-align:center}.project-preview p{margin:0 0 1.4em}.feedback-note{font-size:.9em;font-style:italic}html{scroll-behavior:smooth}#wrap{width:calc(100% - 24px);max-width:800px}#contentwide{padding-right:10px}#overview,#education,#selected-projects,#speech-to-text-audio,#vibroacoustic-monitoring,#pokemon-vhdl,#search-engine,#switch-modchip{scroll-margin-top:12px}.site-banner{width:100%;height:auto;display:block}.education-entry{align-items:center;gap:16px;margin:0 0 4px;display:flex}.education-entry p{margin:0}.education-mark{flex:none;width:68px;height:auto;display:block}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 24px;display:grid}.project-category+.project-category{border-top:1px solid #ddd;padding-top:10px}.category-summary{color:#666;margin-bottom:12px}.project-preview{text-align:center;min-width:0}.project-preview a{display:block}.project-preview .project-image{box-sizing:border-box;object-fit:contain;background:#f4f4f4;border:1px solid #d4d4d4;width:100%;height:190px;padding:5px;display:block}.project-preview p{margin:7px 0 0;line-height:1.4em}.project-preview .project-preview-heading{min-height:3.3em}.project-preview .project-preview-summary{text-align:left;min-height:5.6em}.project-preview .case-study-link{text-align:left;border-top:1px solid #e0e0e0;margin-top:10px;padding-top:7px}.project-preview .case-study-link a{display:inline}.project-detail{padding-top:2px}.project-meta{color:#686868;margin-top:-5px;font-size:.9em}.project-detail h3{margin-top:20px}.project-detail h4,#contentwide h4{margin:16px 0 9px;font-size:1.08em}figure{text-align:center;margin:12px auto 20px}figure a{display:block}figure img{box-sizing:border-box;border:1px solid #d4d4d4;max-width:100%;height:auto;margin:0 auto;padding:4px;display:block}figcaption{color:#666;max-width:92%;margin:6px auto 0;font-size:.82em;line-height:1.4em}.hero-figure img{object-fit:contain;max-height:470px}.wide-figure img{object-fit:contain;max-height:520px}.portrait-figure img{object-fit:contain;max-height:570px}.reference-figure,.document-figure{max-width:470px}.document-figure img{object-fit:contain;max-height:540px}.video-reference{max-width:640px;margin:12px auto 24px}.video-frame{aspect-ratio:16/9;box-sizing:border-box;background:#111;border:1px solid #d4d4d4;width:100%;padding:4px}.video-frame iframe{border:0;width:100%;height:100%;display:block}.video-reference figcaption{max-width:100%}.video-credit,.video-context{display:block}.video-context{margin-top:5px}.video-link-preview{display:block;position:relative}.video-link-preview img{box-sizing:border-box;border:1px solid #d4d4d4;width:100%;height:auto;padding:4px;display:block}.video-play{color:#fff;background:#286ea0f0;border-radius:50%;padding:14px 15px 14px 18px;font-size:2.2em;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.image-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 20px;display:grid}.image-pair figure{min-width:0;margin:0}.image-pair img{object-fit:contain;width:100%;height:285px}.table-scroll{margin:10px 0 20px;overflow-x:auto}.table-scroll:focus{outline-offset:2px;outline:2px solid #286ea0}.evidence-table{border-collapse:collapse;width:100%;min-width:590px;font-size:.84em}.evidence-table th,.evidence-table td{text-align:left;vertical-align:top;border:1px solid #ccc;padding:7px}.evidence-table th{color:#364752;background:#e9f1f6}.project-links,.outcome-callout{background:#f4f4f4;border-left:4px solid #286ea0;padding:9px 11px}.project-links a{display:inline-block}.outcome-callout{color:#364752;margin:14px 0 18px;font-size:1em}.boot-result-figure img{background:#252525;width:100%}.back-to-projects{border-top:1px solid #ddd;margin:28px 0 6px;padding-top:10px}#contentwide hr{border:0;border-top:1px solid #ddd;margin:24px 0}@media (width<=680px){#wrap{width:calc(100% - 18px)}#header{height:auto;margin:8px 0}#header h1{float:none;width:auto;margin:0;font-size:1.75em}#leftside{float:none;width:auto;margin:0 0 14px}#leftside ul.avmenu{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:auto;margin:0;display:grid}#leftside ul.avmenu li{width:auto;display:block}#leftside ul.avmenu li a{box-sizing:border-box;float:none;width:auto;margin:0;padding:6px;display:block}#leftside ul.avmenu li.nav-group{float:none;width:auto;margin:0}#leftside ul.avmenu li.nav-group .nav-group-label{width:100%;padding:6px}#leftside ul.avmenu li.nav-group ul{width:auto;margin:4px 0 0}#leftside ul.avmenu li.nav-group ul li{width:auto}#leftside ul.avmenu li.nav-group ul li a{width:auto;padding:5px 6px 5px 14px;font-size:.9em}#contentwide{box-sizing:border-box;border-left:0;width:auto;margin:0;padding:0 8px}.education-entry{align-items:flex-start;gap:12px}.education-mark{width:56px}.profile-photo{float:none;width:160px;margin:0 auto 18px}.project-grid,.image-pair{grid-template-columns:1fr}.project-preview .project-image{height:auto;max-height:260px}.project-preview .project-preview-heading,.project-preview .project-preview-summary{min-height:0}.image-pair img{height:auto;max-height:430px}.document-figure{max-width:100%}#footer{box-sizing:border-box;width:calc(100% - 20px);padding-left:10px;padding-right:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
