:root {
  color-scheme: light;
  --paper: #f4efea;
  --panel: #fffcf9;
  --raised: #eee7e0;
  --ink: #202830;
  --muted: #605750;
  --rule: #b4aba4;
  --control-border: #897b72;
  --accent: #7d141d;
  --action: #7d141d;
  --on-action: #f4efea;
  --hover: #e5dbd2;
  --action-hover: #651019;
  --focus: #215ca2;
  /* The demo instrument and its controls use the dark palette in both modes. */
  --stage: #282525;
  --stage-inset: #1d1b1b;
  --stage-ink: #e6edf3;
  --stage-muted: #b6b4b3;
  --stage-action: #ec4d37;
  --on-stage-action: #1d1b1b;
  --stage-focus: #79baff;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --mono: Consolas, "Courier New", monospace;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.22em}button,select,input{font:inherit}button,a,input{touch-action:manipulation}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}#main:focus{outline:none}
.wrap{width:min(1328px,90%);margin-inline:auto}.bar{border-bottom:1px solid var(--rule)}.headrow,.brand,.headrow nav,.foot,.foot>div,.actions,.section-title,.filterbar,.text-link,.pillink{display:flex;align-items:center}.headrow{min-height:83px;justify-content:space-between;gap:30px}.brand{gap:13px;font-weight:640;letter-spacing:-.036em;font-size:19px}.brand svg{width:35px;height:35px}.brand:hover,.cardlink:hover{text-decoration:none}.headrow nav{gap:32px}.headrow nav a{font-size:15px;font-weight:520;position:relative;padding:13px 0}.headrow nav a[aria-current]{color:var(--accent)}.headrow nav a[aria-current]:after{content:"";height:2px;position:absolute;bottom:5px;left:0;right:0;background:currentColor}#menu{display:none}.skip{position:fixed;left:1rem;top:-8rem;z-index:20;padding:.7rem 1rem;background:var(--panel)}.skip:focus{top:1rem}
.hero{display:grid;grid-template-columns:.94fr 1.06fr;align-items:center;gap:5%;padding:clamp(38px,5vw,78px) 0 clamp(48px,5.9vw,84px)}h1,h2,h3,p{margin:0}.hero h1,.page-intro h1,.article-title,.section-title h2,.feature-article h2,.about-card h2{font-family:var(--serif);font-weight:400;letter-spacing:-.067em}.hero h1{font-size:clamp(74px,6.45vw,105px);line-height:.98;margin-bottom:25px}.hero h1 span{display:block}.hero h1 i{color:var(--accent);font-style:normal}.intro{max-width:38ch;font-size:clamp(18px,1.45vw,22px);line-height:1.5;letter-spacing:-.018em;color:var(--muted)}.actions{gap:25px;flex-wrap:wrap;margin-top:30px}.solid{display:inline-flex;align-items:center;justify-content:center;gap:17px;background:var(--action);border:0;color:var(--on-action);padding:14px 19px;border-radius:3px;font-size:15px;font-weight:600;min-height:46px;cursor:pointer}.solid:hover{background:var(--action-hover);text-decoration:none}.text-link,.pillink{gap:10px;font-size:15px;font-weight:620;min-height:44px}.arrow{width:17px;height:17px;flex:none;transition:transform .18s}.solid:hover .arrow,.text-link:hover .arrow,.cardlink:hover .arrow{transform:translateX(3px)}chip-viewer{display:block;min-width:0;width:100%;height:clamp(370px,33vw,480px);background:var(--stage);border-radius:5px;overflow:hidden}
.home-section{border-top:1px solid var(--rule);padding:32px 0 55px}.section-title{justify-content:space-between;gap:20px;margin-bottom:23px}.section-title h2{font-size:clamp(38px,3.7vw,58px);line-height:1.07}.section-title .text-link{color:var(--muted)}.studyrow{display:grid;grid-template-columns:138px minmax(0,1fr) auto 28px;align-items:center;gap:clamp(16px,2.35vw,36px);border-top:1px solid var(--rule);padding:16px 0}.studyrow:last-child{border-bottom:1px solid var(--rule)}.studyrow .art{height:83px}.art,.photo{overflow:hidden;position:relative;border-radius:2px;background:var(--raised)}.art svg{display:block;height:100%;width:100%}.topic,.year,.credit,.back,.legend,.studytag{font-family:var(--mono);font-size:12px;line-height:1.45;letter-spacing:.035em}.topic,.legend{color:var(--accent)}.studyrow h3,.tile h2,.tile h3{font-size:clamp(21px,2.1vw,31px);font-weight:540;letter-spacing:-.042em;line-height:1.16;margin:4px 0}.year,.credit,.back,.studytag{color:var(--muted)}.studyrow:hover h3,.tile:hover h2,.tile:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.3vw,32px)}.tile{display:block;min-width:0}.tile .art,.tile .photo{aspect-ratio:1.75;margin:0 0 13px}.tile p{font-size:15px;line-height:1.55;color:var(--muted);max-width:45ch}.tile h3,.tile h2{line-height:1.2;margin:5px 0 9px}.photo{background-image:url('outside-studies.webp');background-size:300% 100%;background-repeat:no-repeat}.photo.fpv{background-position:left}.photo.print{background-position:center}.photo.keeper{background-position:right}.credit{margin-top:13px}
.page{padding:clamp(38px,5vw,70px) 0 clamp(60px,8vw,110px)}.page-intro{max-width:900px;margin:0 0 33px}.page-intro h1,.article-title{font-size:clamp(56px,6.4vw,96px);line-height:1.035;margin-bottom:18px}.page-intro p,.dek{font-size:clamp(17px,1.5vw,22px);line-height:1.52;color:var(--muted);max-width:58ch}.filterbar{gap:9px;flex-wrap:wrap;margin:27px 0}.filterbar button{background:transparent;border:1px solid var(--control-border);padding:9px 15px;border-radius:20px;min-height:42px;cursor:pointer}.filterbar button[aria-pressed=true]{background:var(--action);color:var(--on-action);border-color:var(--action)}.back{min-height:36px;display:inline-flex;align-items:center;gap:8px;margin-bottom:25px}.article-layout{display:grid;grid-template-columns:1.08fr .92fr;gap:6%;align-items:center}.article-layout>.art,.article-layout>.photo{aspect-ratio:1.5}.article-layout>.photo{aspect-ratio:1.2}.article-layout .topic{margin-bottom:10px}.body-grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;padding:32px 0;border-top:1px solid var(--rule);margin-top:36px}.body-grid h2,.resume h2{font-size:24px;letter-spacing:-.035em;font-weight:560;margin-bottom:10px}.body-grid p,.resume li,.bio{font-size:17px;line-height:1.65;color:var(--muted)}.body-grid .text-link{margin-top:10px}.labintro{margin-bottom:27px}.labintro .article-title{font-size:clamp(48px,5.5vw,82px)}.demo-shell{max-width:1050px;margin:0 auto 32px}.page .tile-grid{margin-top:26px}.about-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:9%;align-items:start}.about-card{border-left:2px solid var(--accent);padding:0 0 0 24px;margin-top:12px}.about-card h2{font-size:39px;line-height:1.1;margin-bottom:15px}.resume{border-top:1px solid var(--rule);margin-top:42px;padding-top:25px}.resume-row{display:grid;grid-template-columns:180px 1fr;gap:20px;border-top:1px solid var(--rule);padding:16px 0}.resume-row h3{font-size:18px}.resume-row p{margin-top:5px;color:var(--muted);line-height:1.5}.subtle{font-size:14px;color:var(--muted);line-height:1.55}.foot{border-top:1px solid var(--rule);padding:27px 0 38px;gap:24px;justify-content:space-between;flex-wrap:wrap}.foot-name{font-weight:600}.foot>div{gap:24px;font-size:14px}.appear{animation:arrive .24s ease-out}@keyframes arrive{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:800px){.wrap{width:91.5%}.hero{gap:23px;grid-template-columns:.90fr 1.1fr}.hero h1{font-size:clamp(51px,7.1vw,66px)}.hero .intro{font-size:17px}.actions{gap:14px}.headrow nav{gap:20px}.studyrow{grid-template-columns:105px minmax(0,1fr) auto 20px}.studyrow .art{height:72px}.tile-grid{gap:18px}.article-layout,.about-grid{gap:30px}}
@media(max-width:630px){.headrow{min-height:64px;flex-wrap:wrap;gap:0}.brand{font-size:17px}.brand svg{width:30px;height:30px}#menu{display:block;border:1px solid var(--rule);border-radius:3px;background:transparent;padding:7px 13px;min-height:40px}.headrow nav{display:none;flex-basis:100%;padding:5px 0 9px;justify-content:space-between}.headrow nav.open{display:flex}.hero,.article-layout,.about-grid,.body-grid{grid-template-columns:1fr}.hero{padding-top:38px;gap:27px;padding-bottom:35px}.hero h1{font-size:clamp(56px,12.6vw,76px);margin-bottom:16px}.hero .intro{max-width:35ch}.actions{margin-top:20px;gap:19px}chip-viewer{height:355px}.section-title h2{font-size:37px}.section-title .text-link{font-size:13px}.home-section{padding:25px 0 34px}.studyrow{grid-template-columns:76px 1fr 15px;gap:12px;padding:13px 0}.studyrow .art{height:64px}.studyrow .year{display:none}.topic{font-size:10px}.studyrow h3{font-size:19px}.tile-grid{grid-template-columns:1fr}.tile{margin:0 0 9px}.tile .art,.tile .photo{aspect-ratio:1.95}.page-intro{margin-bottom:22px}.body-grid{gap:22px}.resume-row{grid-template-columns:1fr;gap:5px}.back{margin-bottom:15px}.foot>div{gap:16px}.about-card{margin-top:6px}.page{padding-bottom:50px}.article-layout>.photo{aspect-ratio:1.8}}
.photo{background-size:300% auto}.photo.fpv{background-position:left center}.photo.print{background-position:center}.photo.keeper{background-position:right center}
.about-portrait {
  display: block;
  width: min(100%, 208px);
  height: auto;
  margin-bottom: 20px;
  border-radius: 4px;
}
.headrow nav {
  margin-inline-start: auto;
}
.theme-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: var(--ink);
}
.theme-picker[hidden] {
  display: none;
}
.theme-picker svg {
  position: absolute;
  inset-inline-start: 10px;
  width: 17px;
  height: 17px;
  pointer-events: none;
}
.theme-picker select {
  min-height: 40px;
  border: 1px solid var(--control-border);
  border-radius: 3px;
  padding: 5px 3px 5px 31px;
  color: var(--ink);
  background-color: var(--paper);
  font-size: 14px;
  cursor: pointer;
}
.theme-picker select:hover {
  background-color: var(--hover);
}
@media (min-width: 631px) and (max-width: 800px) {
  .headrow { gap: 16px; }
  .headrow nav { gap: 14px; }
}
@media (max-width: 630px) {
  .theme-picker { margin-inline: auto 8px; }
  #menu { order: 2; }
  .headrow nav { order: 3; margin-inline-start: 0; }
}
@media (max-width: 440px) {
  .theme-picker { width: 38px; }
  .theme-picker select { width: 100%; padding: 0; appearance: none; color: transparent; }
  .theme-picker option { color: var(--ink); }
}
@media print {
  .about-portrait { display: none; }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.bar,footer,.skip,.actions,.back,.filterbar{display:none!important}.wrap{width:100%}.page{padding:0}.resume-row{break-inside:avoid}.about-grid{display:block}.about-card{border:0;padding:10px 0}.resume{margin-top:18px}.page-intro h1{font-size:38px}}
@media (max-width: 630px) {
  #menu {
    position: relative;
    min-inline-size: 77px;
    min-height: 44px;
    padding-inline: 30px 8px;
    font-size: 15px;
  }
  #menu::before, #menu::after {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 8px;
    margin-block: auto;
    width: 17px;
    height: 17px;
    background-color: currentColor;
    -webkit-mask: var(--glyph) center / contain no-repeat;
    mask: var(--glyph) center / contain no-repeat;
    forced-color-adjust: none;
    pointer-events: none;
  }
  #menu::before { --glyph: var(--ui-icon-menu-2); }
  #menu::after { --glyph: var(--ui-icon-x); opacity: 0; }
  #menu[aria-expanded="true"]::before { opacity: 0; }
  #menu[aria-expanded="true"]::after { opacity: 1; }
}
@media (max-width: 420px) {
  #menu {
    min-inline-size: 44px;
    width: 44px;
    padding: 0;
    font-size: 0;
  }
  #menu::before, #menu::after { inset-inline-start: calc(50% - 8.5px); }
}
@media (max-width: 630px) and (prefers-reduced-motion: no-preference) {
  #menu::before, #menu::after {
    transition: opacity 140ms ease-out, transform 140ms ease-out;
  }
  #menu::after { transform: rotate(-35deg); }
  #menu[aria-expanded="true"]::before { transform: rotate(35deg); }
  #menu[aria-expanded="true"]::after { transform: rotate(0deg); }
}
