
.project-page{--bg:#101418;--fg:#e6ecee;--muted:#96a1a7;--line:#303a40;--accent:#c8a06e;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;margin:0}.project-page *{box-sizing:border-box}.project-page a{color:inherit;text-decoration:none}.project-page a:hover{text-decoration:underline;text-underline-offset:5px}.project-page a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.project-header{min-height:74px;padding:0 4vw;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.collection-back{font-size:13px;white-space:nowrap}.project-header nav{display:flex;gap:23px;margin:auto;font-size:12px;color:var(--muted)}.project-header nav a{padding:28px 0}.project-header nav a[aria-current]{color:var(--fg);box-shadow:inset 0 -2px var(--accent)}.project-home{font-size:17px;font-weight:800;letter-spacing:.03em}.project-page main{max-width:1700px;margin:auto}.project-page .eyebrow{font:10px/1.7 monospace;letter-spacing:.16em;color:var(--accent);margin:0 0 25px}.instrument-line{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 24px;font:10px/1.5 monospace;letter-spacing:.07em;color:var(--muted)}.instrument-line a{color:var(--fg);letter-spacing:0;font:12px Arial,sans-serif}.instrument-line i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:9px}.experience-stage{position:relative;height:clamp(620px,78svh,940px);background:#080a0c}.experience-stage iframe{display:block;position:relative;z-index:1;width:100%;height:100%;border:0}.demo-loading{position:absolute;inset:0;margin:0;display:grid;place-content:center;padding:30px;text-align:center;font:12px/1.7 monospace;color:#999}.experience-stage.loaded .demo-loading{display:none}.project-next{padding:38px 4vw;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);color:var(--muted)}.project-next>a:first-child{font-size:13px}.project-next>a:last-child{text-align:right}.project-next small{display:block;font:9px monospace;letter-spacing:.15em;margin-bottom:10px}.project-next span{font-size:25px;color:var(--fg);letter-spacing:-.02em}.project-page>.footer{background:var(--bg);color:var(--muted);border-color:var(--line)}.project-page>.footer a,.project-page>.footer strong{color:var(--fg)}
.air-intro{padding:65px 4vw 50px;display:flex;justify-content:space-between;gap:30px;align-items:end}.air-intro h1{font-size:clamp(55px,9vw,140px);line-height:.9;letter-spacing:-.045em;font-weight:600;margin:0}.air-intro h1 span{display:block;font-size:20px;letter-spacing:-.02em;font-weight:400;color:var(--muted);margin-top:25px;line-height:1.3}.air-stamp{display:flex;align-items:center;gap:20px;border-left:1px solid var(--line);padding-left:25px}.air-stamp>span{font:62px/1 monospace;color:var(--accent)}.air-stamp p{font:10px/1.7 monospace;color:var(--muted)}.air-notes{display:grid;grid-template-columns:1fr 2fr 1fr;gap:35px;padding:50px 4vw 65px;border-top:1px solid var(--line)}.air-notes h2{font-size:27px;font-weight:400;letter-spacing:-.03em;margin:0 0 16px}.air-notes p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--muted);max-width:580px;margin:0}.credit{font:11px monospace;text-align:right;color:var(--muted)}
.flow{--bg:#08191f;--fg:#b4f4e8;--accent:#75d4c8;--muted:#91afaf;--line:#254047}.flow-intro{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:60px;padding:65px 5vw 55px}.flow-intro h1{font-size:clamp(64px,8vw,118px);font-weight:500;line-height:.96;letter-spacing:-.06em;margin:0}.flow-intro h1 em{font-family:Georgia,serif;font-weight:400}.flow-description{max-width:320px;justify-self:end}.flow-symbol{font:90px/.8 Georgia,serif;color:#4da99f}.flow-description p{font-size:17px;line-height:1.75;color:var(--muted);margin:18px 0 22px}.flow-description a{font-size:13px}.flow-experiment{margin:0 24px;border:1px solid var(--line)}.flow-experiment .instrument-line{border-top:0}.flow .experience-stage{height:clamp(650px,85svh,1000px)}.flow-notes{padding:55px 5vw 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.flow-notes span{font:11px monospace;color:#578c89}.flow-notes h2{font-size:23px;font-weight:400;letter-spacing:-.02em;margin:20px 0 12px}.flow-notes p{font-size:14px;color:var(--muted);line-height:1.8;margin:0;max-width:300px}.quiet-credit{padding:15px 5vw 45px;color:var(--muted);font-size:11px}
.cafe{--bg:#ece4d7;--fg:#443325;--muted:#816f5b;--line:#cdc0ad;--accent:#9e6343}.cafe-intro{display:grid;grid-template-columns:.65fr 1.5fr .9fr;gap:30px;align-items:center;padding:65px 5vw}.cafe-label{font:10px/1.8 monospace;letter-spacing:.12em}.cafe-intro h1{font:clamp(70px,8.4vw,130px)/.92 Georgia,serif;letter-spacing:-.055em;margin:0}.cafe-intro h1 em{font-weight:400;color:#926344}.cafe-description{max-width:250px;align-self:end}.cafe-description p{font-size:16px;line-height:1.8}.cafe-description>span{display:block;font:9px/1.8 monospace;letter-spacing:.08em;margin-top:25px;color:var(--muted)}.cafe-entry{display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);padding:22px 5vw}.cafe-entry>span{font:26px Georgia,serif}.cafe-entry p{font-size:12px;color:var(--muted);margin:0}.cafe-entry a{margin-left:auto;font-size:12px}.cafe .coffee-stage{margin:0 24px;height:clamp(760px,90svh,1100px);background:#211d19}.coffee-stage:not(.loaded) iframe{opacity:0;pointer-events:none}.coffee-stage iframe{transition:opacity .25s}.cafe-after{padding:70px 5vw;display:grid;grid-template-columns:.5fr 1.2fr 1fr;align-items:center;gap:35px}.cafe-seal{font:70px Georgia,serif;border:1px solid var(--line);width:110px;height:110px;border-radius:50%;display:grid;place-content:center}.cafe-after h2{font:42px/1.12 Georgia,serif;letter-spacing:-.035em;margin:0}.cafe-after p{font:15px/1.8 Arial,sans-serif;color:var(--muted)}.cafe-after small{display:block;font-size:11px;margin-top:20px}
.research-experience{--bg:#111111;--fg:#f5f5f5;--muted:#a1a1a1;--line:#303030;--accent:#b6b6b6;color-scheme:dark}.paper-intro{max-width:1160px;margin:auto;padding:55px 5vw 45px}.paper-meta{display:flex;justify-content:space-between;color:var(--accent);font:10px/1.6 monospace;letter-spacing:.13em;border-bottom:1px solid var(--line);padding-bottom:19px}.paper-intro h1{font:clamp(58px,6.5vw,90px)/1.06 Georgia,serif;letter-spacing:-.045em;margin:38px 0}.paper-intro h1 em{font-weight:400}.paper-abstract{display:grid;grid-template-columns:1fr 2fr;gap:50px}.paper-rule{width:35px;height:3px;background:var(--accent);display:block}.paper-abstract>div:first-child p{font:14px/1.8 Georgia,serif;color:var(--muted)}.paper-abstract h2{font:22px/1.4 Georgia,serif;margin:0 0 14px}.paper-abstract>div:last-child p{font:14px/1.8 Arial,sans-serif;color:var(--muted);margin:0}.reading-desk{margin:0 32px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.reading-desk .instrument-line{background:#171717;border-top:0}.document-stage{height:clamp(760px,90svh,1150px);background:#282828}.paper-note{display:flex;justify-content:space-between;gap:35px;padding:22px 32px 60px}.paper-note p{font-size:12px;line-height:1.8;color:var(--muted);max-width:620px;margin:0}.paper-note a{font-size:12px;white-space:nowrap}
@media(min-width:1700px){.project-page main{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:900px){.project-header{gap:20px;flex-wrap:wrap;padding:18px 24px 0}.project-home{margin-left:auto}.project-header nav{order:3;width:100%;overflow:auto;gap:22px}.project-header nav a{padding:12px 0 15px;white-space:nowrap}.air-stamp{display:none}.air-intro{padding:45px 24px}.air-notes{grid-template-columns:1fr 2fr;padding:35px 24px}.credit{grid-column:2;text-align:left}.flow-intro{padding:45px 24px;gap:30px}.flow-description p{font-size:15px}.cafe-intro{grid-template-columns:1.4fr 1fr;padding:45px 24px;gap:20px}.cafe-label{grid-column:1/-1}.cafe-entry{flex-wrap:wrap;padding:20px 24px;gap:12px 20px}.cafe-entry p{flex:1}.cafe-entry a{margin:0}.cafe-after{grid-template-columns:1fr 1.4fr;padding:45px 24px}.cafe-seal{display:none}.paper-intro{padding:40px 24px}.paper-abstract{gap:30px}.instrument-line{padding:12px 16px}.instrument-line>span:nth-child(2){display:none}}@media(max-width:600px){.project-header nav{font-size:11px;gap:18px}.project-header{padding-left:18px;padding-right:18px}.project-home{font-size:15px}.air-notes{display:block}.air-notes .credit{display:block;margin-top:22px}.experience-stage{height:700px}.flow-intro{display:block}.flow-description{margin-top:30px;max-width:none;display:grid;grid-template-columns:55px 1fr;gap:0 15px}.flow-symbol{grid-row:1/3;font-size:66px}.flow-description p{margin:0 0 14px}.flow-experiment{margin:0 12px}.flow-notes{grid-template-columns:1fr;gap:28px;padding:35px 24px 10px}.flow-notes h2{margin:10px 0}.flow-notes p{max-width:none}.cafe-intro{display:block}.cafe-label{margin-bottom:25px}.cafe-intro h1{font-size:86px}.cafe-description{max-width:none;margin-top:25px}.cafe-description>span{margin-top:14px}.cafe-entry p{flex-basis:100%}.cafe .coffee-stage{margin:0;height:760px}.cafe-after{display:block}.cafe-after h2{font-size:36px}.paper-intro h1{font-size:57px}.paper-abstract{grid-template-columns:1fr;gap:22px}.paper-abstract>div:first-child p{margin-bottom:0}.reading-desk{margin:0 10px}.document-stage{height:780px}.paper-note{display:block;padding:20px 22px 40px}.paper-note a{display:inline-block;margin-top:20px}.project-next{padding:30px 22px;gap:25px}.project-next span{font-size:22px}.project-next small{font-size:8px}.project-page .footer{padding-left:24px;padding-right:24px}}@media(prefers-reduced-motion:reduce){.coffee-stage iframe{transition:none}}

/* Shared brand artwork, with contrast for the light project themes. */
.project-home{display:inline-flex;align-items:center;flex-shrink:0}.project-home img{display:block;width:112px;height:auto}.cafe .project-home img{filter:brightness(0)}@media(max-width:600px){.project-home img{width:98px}}

.cafe > .footer .wordmark{filter:brightness(0)}


.research-experience .paper-intro h1 em{color:#999999}.research-experience .project-header{background:#111111}.research-experience .project-home img,.research-experience > .footer .wordmark{filter:none}.research-experience > .footer{background:#111111}.research-experience .paper-note a{color:var(--accent)}
