@font-face{font-family:Departure;src:url('assets/departure.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--paper:#23335b;--ink:#f2e9c9;--accent:#e7ef92;--line:#81909f;--type:Departure,monospace;color-scheme:dark}
.rsg{--paper:#453020;--ink:#fff0d0;--accent:#ddc692;--line:#aa8b65;position:relative;isolation:isolate}.rsg::before{content:"";position:absolute;inset:0;z-index:-1;background:url("assets/minecraft-dirt.png") repeat;background-size:3rem 3rem;image-rendering:pixelated;filter:brightness(.58)}.rsg .project-heading,.rsg .media-footer,.rsg .run-label{text-shadow:1px 2px #20150b}.rapid{--paper:#302a3e;--ink:#f1e9dc;--accent:#b5dec6;--baseline:#c3abc9;--line:#736578}.robot{--paper:#23335b;--ink:#f2e9c9;--accent:#e7ef92;--line:#81909f}.wild{--paper:#183f32;--ink:#edf0d8;--accent:#c1d4a0;--line:#73957c}.stemp{--paper:#d94327;--ink:#070907;--accent:#f2e9c9;--line:#942e1d}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.75rem}body{margin:0;background:var(--paper);color:var(--ink);font:1.375rem/1.55 var(--type);font-weight:400}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.25}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:0.375rem}a:hover{text-decoration-thickness:2px}button,input{font:inherit}button{border:0;padding:0;background:none;color:inherit;border-radius:0;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,svg:focus-visible{outline:2px dotted var(--ink);outline-offset:0.375rem}img,video,svg{display:block;max-width:100%}video{height:auto;object-fit:contain}::selection{background:var(--ink);color:var(--paper)}.width{width:calc(100% - 8rem);max-width:71.5rem;margin-inline:auto}.skip{position:absolute;top:-6.25rem;left:1.5rem;z-index:10;padding:0.625rem;background:var(--paper)}.skip:focus{top:0.625rem}
.intro-main{padding:3.4375rem 0 2.75rem}.intro h1{font-size:4.125rem;line-height:1.12;margin:0}.monogram{width:8.25rem;height:auto;flex:none;opacity:.7;shape-rendering:crispEdges}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:5.5rem;margin-top:2.0625rem;align-items:start}.bio{min-width:0}.bio-education,.bio-interests{font-size:1.1rem;line-height:1.6}.bio-interests{margin-top:1.03125rem;text-wrap:pretty}
.site-nav{display:flex;align-items:center;gap:1.03125rem;margin-top:1.375rem;margin-left:-0.5rem;width:max-content}.site-nav a{width:2.75rem;height:2.75rem;display:grid;place-items:center;text-decoration:none}.site-nav img{height:1.75rem;width:auto}.site-nav a:hover{opacity:.7}
.intro-details{display:grid;gap:1.71875rem;padding-top:3px;font-size:1.1rem;line-height:1.6;color:#d2d5dc}.intro-details h2{color:var(--ink);font-size:1.375rem;margin-bottom:0.6875rem}.intro-details ul{list-style:none;margin:0;padding:0;display:grid;gap:0}.honors ul{gap:0.34375rem}
.experience{border-top:1px dotted var(--line);padding:1.375rem 0 2.75rem}.experience h2{font-size:1.2375rem;margin-bottom:1.375rem}.internship-bars{display:grid;gap:0.75rem}.internship{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:center;gap:1.5rem;padding:1.375rem 1.5rem}.experience-logo{width:3rem;height:3rem;display:grid;place-items:center;justify-self:center}.experience-logo img{width:3rem;height:3rem;object-fit:contain;max-width:none}.snap .experience-logo img{width:3.125rem;height:3.125rem}.raytheon .experience-logo img{width:3.0625rem;height:3.0625rem}.internship-title{display:flex;justify-content:space-between;gap:1.375rem;align-items:baseline}.internship-title h3{font-size:1.65rem}.internship-title>span{font-size:0.9625rem;text-align:right}.internship-copy p{font-size:1.1rem;margin-top:0.6875rem;line-height:1.5}.internship.snap{background:#fffc00;color:#161616}.internship.amd{background:#111;color:#f6f2e8}.internship.amd img{filter:invert(1)}.internship.raytheon{background:#d71920;color:#fff7ed}.internship.raytheon img{filter:brightness(0) invert(1)}.internship.bloomfilter{background:#25234f;color:#f7f3ff}.project-links{display:flex;flex-wrap:wrap;gap:1rem 1.75rem;margin-top:1.125rem;font-size:1.1rem}.project-links a{white-space:nowrap}.project-summary{min-width:0}

.project{background:var(--paper);color:var(--ink);padding:4.125rem 0}.project-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:2.75rem;row-gap:1.03125rem;align-items:baseline;margin-bottom:2.0625rem}.project-heading>.project-summary{display:contents}.project-heading>.project-summary>p{grid-column:1/-1;grid-row:2;max-width:66ch;font-size:1.2375rem;line-height:1.6;text-wrap:pretty}.project-heading .project-links{grid-column:2;grid-row:1;justify-self:end;margin-top:0;align-self:baseline}.project h2{font-size:2.75rem}.project h2 a{text-decoration:none}.project h2 a:hover{text-decoration:underline}.quad{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem 1rem}.run-open{display:block;width:100%;text-align:left}.run video{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.run-label{display:block;font-size:1.03125rem;margin-top:0.6875rem}.run-open:hover .run-label{text-decoration:underline;text-underline-offset:0.25rem}.media-footer{display:flex;justify-content:space-between;align-items:start;gap:2.0625rem;margin-top:1.375rem;font-size:1.03125rem}.media-footer>details{max-width:50rem}.motion{font-size:1.03125rem;white-space:nowrap;text-decoration:underline;text-underline-offset:0.3125rem}.notes{font-size:1.03125rem;line-height:1.65;padding-top:1.375rem;max-width:80ch}summary{list-style:none;cursor:pointer;text-decoration:underline;text-underline-offset:0.3125rem}summary::-webkit-details-marker{display:none}.capture-open{display:block;width:100%;text-align:left}.capture-open video{width:100%;height:auto}.capture-wide{width:100%;background:#151a1b}
.chart-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.75rem}.benchmark-chart{min-width:0}.benchmark-chart+figure{border-left:1px dotted var(--line);padding-left:2.75rem}.benchmark-chart h3{font-size:1.375rem;margin-bottom:1.03125rem}.chart-median{display:flex;align-items:baseline;gap:1.03125rem;font-size:3.4375rem;line-height:1.2;white-space:nowrap}.median-arrow{font-size:2.0625rem}.median-after{color:var(--accent)}.chart-unit{font-size:1.03125rem;margin-left:-0.5rem}.chart-description{font-size:1.03125rem;line-height:1.55;margin:1.03125rem 0 1.75rem;min-height:3.25rem;max-width:44ch}.chart-key{display:flex;flex-wrap:wrap;gap:0.6875rem 1.375rem;font-size:1.03125rem;margin-bottom:1.03125rem}.chart-key span{display:flex;align-items:center;gap:0.5rem}.chart-key span:before{content:"";width:0.75rem;height:2px;background:var(--accent)}.chart-key .key-before:before{height:0;border-top:2px dashed var(--baseline);background:none}.key-before{color:var(--baseline)}.key-after{color:var(--accent)}.benchmark-plot{width:100%;height:auto;overflow:visible;touch-action:pan-y}.benchmark-plot text{font:14.3px var(--type);fill:var(--ink)}.benchmark-plot .grid-line{stroke:var(--line);stroke-dasharray:1 4;shape-rendering:crispEdges}.benchmark-plot .trace{fill:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}.benchmark-plot .trace-before{stroke:var(--baseline);stroke-dasharray:4 3;opacity:.82}.benchmark-plot .trace-after{stroke:var(--accent)}.benchmark-plot .head-before{fill:var(--baseline)}.benchmark-plot .head-after{fill:var(--accent)}.chart-readout{display:block;font-size:0.89375rem;min-height:1.5rem;margin-top:0.6875rem;font-variant-numeric:tabular-nums}.chart-footer{display:flex;justify-content:space-between;align-items:baseline;gap:1.375rem;border-top:1px dotted var(--line);padding-top:1.375rem;margin-top:2.0625rem}.chart-footer p{font-size:1.03125rem;max-width:65ch}.benchmark-details{margin-top:1.375rem;font-size:1.03125rem}.experiments{display:flex;flex-wrap:wrap;gap:1rem 1.75rem;margin-top:1.375rem}.experiment{font-size:1.03125rem;text-align:left;padding-bottom:0.25rem;border-bottom:1px solid transparent}.experiment[aria-pressed=true]{border-color:var(--ink)}.experiment:hover{text-decoration:underline;text-underline-offset:0.3125rem}

.stemp{padding:1.375rem 0}.stemp>.width{max-width:56rem}.stem-heading{display:flex;justify-content:space-between;align-items:center;gap:2.75rem;padding-bottom:1.375rem;border-bottom:1px dotted var(--line);margin-bottom:0.6875rem}.stemp .stem-heading h2{font-size:5.5rem;line-height:1}.stem-heading p{max-width:27.5rem;font-size:1.2375rem}.stem-capture{width:100%;max-width:60rem;margin:1.375rem auto 0;border:2px solid var(--ink);box-shadow:0.3125rem 0.3125rem 0 var(--ink)}#stem-sound{background:var(--ink);color:var(--paper);padding:0.625rem 1rem;font-size:1.03125rem}#stem-sound[aria-pressed=true]{background:var(--accent);color:var(--ink)}.stem-capture video{width:100%;aspect-ratio:28/15;object-fit:contain}.stem-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px dotted var(--line);margin-top:1.03125rem;padding-top:1.03125rem;font-size:1.03125rem}

.footer{padding:2.0625rem 0 2.75rem}.footer>.width{border-top:1px dotted var(--line);padding-top:2.0625rem}.footer-main{display:flex;justify-content:space-between;gap:2.0625rem;font-size:1.03125rem}dialog{background:var(--paper);color:var(--ink);padding:3rem 1.375rem 1.375rem;border:1px dotted var(--ink);max-width:80rem;width:calc(100% - 2rem)}dialog::backdrop{background:#111923ef}dialog video{width:100%;max-height:76vh;object-fit:contain}dialog p{font-size:1.03125rem;max-width:90ch;line-height:1.6;margin-top:1.375rem}#close-recording{position:absolute;top:0.75rem;right:1.375rem;font-size:1.03125rem;text-decoration:underline;text-underline-offset:0.25rem}
@media(max-width:1008px){.intro-grid{gap:3.4375rem}.width{width:calc(100% - 5.5rem)}.project h2{font-size:2.40625rem}.monogram{width:6.875rem}}
@media(max-width:850px){body{font-size:1.2375rem}.width{width:calc(100% - 3rem)}.intro-main{padding:2.75rem 0}.intro h1{font-size:3.4375rem}.monogram{width:5.5rem}.project{padding:2.75rem 0}.project h2{font-size:2.40625rem}.footer-main{gap:1.375rem}}
@media(max-width:640px){.intro h1{font-size:2.75rem;margin:0}.monogram{display:none}.project h2{font-size:2.0625rem}.quad{grid-template-columns:1fr;gap:1.5rem}.run-label{font-size:1.03125rem}.media-footer{gap:1.375rem;font-size:0.9625rem}.media-footer .motion{font-size:0.9625rem}.notes{font-size:0.9625rem}.benchmark-details,.experiment{font-size:0.9625rem}.footer-main{flex-wrap:wrap;font-size:0.9625rem}}
@media(max-width:370px){.intro h1{font-size:2.0625rem}.width{width:calc(100% - 2rem)}.project h2{font-size:1.925rem}.footer-main{font-size:0.89375rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:850px){.stemp .stem-heading h2{font-size:5.5rem}.stem-heading{gap:2.0625rem}.stem-heading p{font-size:1.2375rem;max-width:21.25rem}}
@media(max-width:640px){.stemp{padding-top:2.0625rem}.stem-heading{display:block;padding-bottom:1.375rem;margin-bottom:0.6875rem}.stemp .stem-heading h2{font-size:4.8125rem;margin-bottom:1.375rem}.stem-heading p{font-size:1.1rem;max-width:100%}.stem-footer{margin-top:0.6875rem;padding-top:1.03125rem;font-size:0.9625rem}.stem-footer .motion{font-size:0.9625rem}}

@media(max-width:1008px){.chart-pair{gap:1.75rem}.benchmark-chart+figure{padding-left:1.75rem}.chart-median{font-size:2.75rem;gap:0.6875rem}.chart-unit{margin-left:0}.chart-key{font-size:0.9625rem;gap:0.6875rem 1.03125rem}}
@media(max-width:760px){.chart-pair{grid-template-columns:1fr;gap:2.0625rem}.benchmark-chart+figure{border-left:0;padding-left:0;border-top:1px dotted var(--line);padding-top:2.0625rem}.chart-median{font-size:3.4375rem}.chart-description{min-height:0;margin-bottom:1.375rem}.chart-footer{align-items:flex-start}.chart-footer p{font-size:0.9625rem}.chart-footer .motion{font-size:0.9625rem}.chart-readout{font-size:0.89375rem}}
@media(max-width:370px){.chart-median{font-size:2.75rem}.chart-key{font-size:0.89375rem}.chart-description{font-size:0.9625rem}.chart-readout{font-size:0.825rem}}

@media(max-width:855px){.intro-grid{grid-template-columns:1fr;gap:2.0625rem}.bio{max-width:66ch}.intro-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.0625rem;padding-top:0}}
@media(max-width:700px){.intro-grid{margin-top:1.75rem;gap:1.71875rem}.bio-education,.bio-interests{font-size:1.03125rem}.intro-details{grid-template-columns:1fr;gap:1.375rem;font-size:1.03125rem}.intro-details h2{font-size:1.375rem;margin-bottom:0.5rem}.site-nav{margin-top:1.03125rem}.project-links{font-size:1.03125rem;gap:1rem 1.375rem}.stem-footer{gap:1.375rem}}

/* Experience rows are content, not company navigation. */
@media(max-width:855px){.internship{grid-template-columns:4rem minmax(0,1fr);gap:1.375rem}.internship-title{display:block}.internship-title>span{display:block;text-align:left;margin-top:0.3125rem}}
@media(max-width:700px){.internship{grid-template-columns:2.75rem minmax(0,1fr);align-items:start;gap:0.875rem 1rem;padding:1.25rem 1rem}.internship-copy{display:contents}.internship-title{grid-column:2}.experience-logo{width:2.75rem;height:3rem;margin-top:2px}.internship-title h3{font-size:1.375rem}.internship-title>span{font-size:0.89375rem}.internship-copy p{grid-column:1/-1;font-size:1.03125rem;line-height:1.5;margin-top:0}.stem-footer{border-top:0;padding-top:0.625rem}}
.chart-unit{white-space:normal;font-size:0.9625rem;line-height:1.35;max-width:6.25rem}.chart-median{flex-wrap:wrap}@media(max-width:480px){.chart-median{font-size:2.75rem}.chart-unit{font-size:0.89375rem;max-width:none;white-space:nowrap}}

.footer-main{align-items:center}.footer-contact{display:flex;align-items:center;gap:1.375rem}.footer-mark{flex:none}.footer-mark{width:3rem;height:3rem}@media(max-width:540px){.intro-main{padding-top:2.0625rem}.footer-contact{gap:0.75rem}.footer-mark{width:2.25rem;height:2.25rem}}

/* Project evidence stays large and directly attached to its explanation. */
.robot-field{border-top:1px dotted var(--line);margin-top:2.75rem;padding-top:2.0625rem}.field-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1.375rem;margin-bottom:1.375rem}.field-heading h3{font-size:1.65rem}.field-heading p{font-size:1.03125rem}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field-pair video{aspect-ratio:16/9;object-fit:contain}.field-pair figcaption{font-size:1.03125rem;margin-top:0.6875rem}.robot-field .media-footer{margin-top:1.03125rem}
.paver{--paper:#d7b84a;--ink:#262a26;--accent:#f7efcc;--line:#827236;color-scheme:light}
.paver-acronym{font-size:1.03125rem;line-height:1.55;margin-top:0.6875rem}
.paver-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.75rem}
.paver-column-labels,.paver-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0.75rem}
.paver-column-labels{font-size:1.03125rem;margin-bottom:1.03125rem}
.paver-pair img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.paver-example figcaption{font-size:1.03125rem;margin-top:0.6875rem}
.paver-example+.paver-example{margin-top:1.75rem}
.paver-network{display:flex;flex-direction:column;min-width:0}
.paver-network-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1.375rem;font-size:1.03125rem;margin-bottom:1.03125rem}
.paver-network-heading .motion{font-size:0.9625rem}
#paver-map{flex:1;min-height:0;position:relative}
#paver-map svg{width:100%;height:auto;overflow:visible}
.paver-map-caption{font-size:1.03125rem;line-height:1.5;margin-top:0.875rem;max-width:42ch}
.paver-footer{border-top:1px dotted var(--line);padding-top:1.375rem;margin-top:2.0625rem;font-size:1.03125rem}
.paver-footer .notes{font-size:0.9625rem;max-width:100ch}
.paver-footer .notes p+p{margin-top:1.03125rem}
@media(max-width:900px){.paver-layout{gap:1.75rem}.paver-acronym{font-size:1.03125rem}}
@media(max-width:760px){.paver-layout{grid-template-columns:1fr;gap:2.0625rem}.paver-network{border-top:1px dotted var(--line);padding-top:1.75rem}.paver-network-heading{margin-bottom:0.6875rem}#paver-map{max-width:35rem;width:100%;margin-inline:auto}.paver-map-caption{max-width:none}.paver-example+.paver-example{margin-top:1.5rem}}
@media(max-width:480px){.paver-pair,.paver-column-labels{gap:0.5rem}.paver-example figcaption,.paver-column-labels,.paver-network-heading,.paver-map-caption{font-size:0.9625rem}}
.mercury{--paper:#edf4fa;--ink:#17202b;--accent:#3077b5;--line:#9cabb8;color-scheme:light}.mercury-status{display:flex;justify-content:space-between;align-items:center;gap:2.0625rem;margin-bottom:1.375rem;font-size:1.1rem}.gravity-legend{display:flex;align-items:center;gap:1.375rem;font-size:0.89375rem}.gravity-legend>div{width:11.25rem}.gravity-legend img{width:100%;height:0.5rem}.legend-ticks{display:flex;justify-content:space-between;font-size:0.75625rem;margin-top:3px}.mercury-map{background:#fff}.mercury-map img{width:100%;height:auto;aspect-ratio:2;object-fit:contain}.mercury-footer{display:flex;justify-content:space-between;align-items:start;gap:2.0625rem;margin-top:1.375rem}.mercury-stages{display:flex;gap:1.375rem;align-items:center;font-size:1.375rem}.mercury-stages button{border-bottom:1px solid transparent;min-width:2.0625rem;text-align:center}.mercury-stages button[aria-pressed=true]{border-color:var(--ink);color:var(--accent)}.mercury-footer p{font-size:0.9625rem;margin-top:0.6875rem}
@media(max-width:700px){.field-heading{display:block}.field-heading p{margin-top:0.6875rem}.field-pair{grid-template-columns:1fr;gap:1.5rem}.mercury-status{align-items:start;gap:1rem}.gravity-legend{display:block;flex:none}.gravity-legend>div{width:8.125rem;margin-top:0.5rem}.mercury-status>p{font-size:1.03125rem}.mercury-footer{gap:1.375rem}.mercury-stages{gap:1rem}.mercury-footer p{max-width:30ch}.robot-field{margin-top:2.0625rem}}
@media(max-width:480px){.mercury-status{display:block}.gravity-legend{display:flex;margin-top:0.6875rem;gap:1.375rem}.gravity-legend>div{width:9.375rem;margin:0}}

.back-top{white-space:nowrap}

/* Actual street geometry and consistent colors connect each patch to its donor. */
.paver-capture-route{fill:none;stroke:#524c31;stroke-width:2;stroke-linecap:round}
.paver-photo-leader,.paver-target-leader{fill:none;stroke:#645d3d;stroke-width:1.2}
.paver-target-leader{stroke-dasharray:2 4}
.paver-route-target{fill:#262a26;stroke:#f4e5af;stroke-width:1.5}
.paver-map-label{fill:#3e3d2e;font:16px Departure,monospace;paint-order:stroke;stroke:#dfc86d;stroke-width:3px;stroke-linejoin:round}
.paver-node-letter,.paver-patch-letter{font:18px Departure,monospace;fill:#fff0d1}
.paver-patch-letter{font-size:16px}
.paver-north,.paver-scale{fill:none;stroke:#645d3d;stroke-width:1.5}
.paver-support-edge{fill:none;stroke:#827236;stroke-width:1;stroke-dasharray:3 4}
.paver-map-caption{min-height:3.1875rem}
.paver-footer{display:flex;justify-content:space-between;align-items:baseline;gap:1.375rem;flex-wrap:wrap}
.paver-footer details{flex:1;min-width:15rem}
.paver-map-credit{font-size:0.9625rem;white-space:nowrap}
@media(max-width:480px){.paver-map-label{font-size:21px}.paver-node-letter{font-size:24px}.paver-patch-letter{font-size:22px}.paver-map-caption{min-height:2.875rem}.paver-footer{gap:1rem}.paver-map-credit{font-size:0.89375rem}}

/* Compact, frame-synchronized inputs belong to each recording. */
.input-strip{display:flex;align-items:center;justify-content:center;gap:0.5rem;min-height:3.25rem;padding:0.375rem 0.5rem;background:#241b13;color:#9e8c72;text-shadow:none;font-size:0.6875rem;line-height:1}
.input-strip[hidden]{display:none}.input-strip kbd{display:flex;justify-content:center;align-items:center;font:0.6875rem var(--type);height:1.125rem;min-width:1.125rem;border:1px solid #675741;background:#2d2319;box-shadow:0 1px #100c08;white-space:nowrap}
.input-strip kbd.active{background:#f4e7c8;border-color:#f4e7c8;color:#21170e;box-shadow:none}.input-wasd{display:grid;grid-template-columns:repeat(3,1.125rem);gap:2px}.input-wasd kbd:first-child{grid-column:2}.input-wasd kbd:nth-child(2){grid-column:1}.input-modifiers{display:grid;grid-template-columns:2.375rem 2rem;gap:2px}.input-extra{width:1.5rem;flex:none}.input-mouse{display:flex;gap:2px}.input-mouse kbd{height:1.875rem}.input-look{width:1.5rem;height:1.5rem;flex:none}.look-axis{stroke:#675741;stroke-width:1;stroke-dasharray:1 2}.look-vector{stroke:#f4e7c8;stroke-width:1.5;fill:none}.look-tip{fill:#9e8c72}.looking .look-tip{fill:#f4e7c8}dialog .input-strip{background:#241b13;padding-block:0.625rem}
@media(max-width:370px){.input-strip{gap:0.25rem;padding-inline:0.25rem}.input-look{width:1.25rem;height:1.25rem}.input-extra{width:1.25rem}}
@media(min-width:900px){.input-modifiers{display:flex;gap:0.25rem}.input-modifiers kbd{padding-inline:0.3125rem}}

.input-strip{gap:0.375rem}.input-readout{display:flex;flex-direction:column;gap:0.3125rem;width:4.25rem;min-width:0;text-align:left}.input-mode{font-size:0.6875rem}.input-action{color:#f4e7c8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:0.6875rem}
@media(max-width:370px){.input-strip{gap:0.3125rem}.input-strip kbd{height:1rem;min-width:1rem;font-size:0.625rem}.input-wasd{grid-template-columns:repeat(3,1rem)}.input-modifiers{grid-template-columns:2.1875rem 1.8125rem}.input-extra{width:1.125rem}.input-mouse kbd{height:1.75rem}.input-readout{width:3.4375rem}.input-action{font-size:0.625rem}.input-mode{font-size:0.625rem}}

.input-action.active{background:#f4e7c8;color:#21170e;padding:3px 0.25rem;width:fit-content;max-width:100%}@media(min-width:900px){.input-readout{width:5.5rem}}

/* Project introductions share the same reading edge as their evidence. */
@media(max-width:855px){.project-heading{grid-template-columns:1fr;row-gap:1.03125rem}.project-heading .project-links{grid-column:1;grid-row:3;justify-self:start}.project-heading>.project-summary>p{grid-column:1;max-width:66ch}}
@media(max-width:640px){.project-heading{row-gap:0.875rem;margin-bottom:1.75rem}.project-heading>.project-summary>p{font-size:1.1rem}.paver-acronym{max-width:40ch}}

/* Desktop matches the former 90% view. Keep mobile sizing and browser zoom usable. */
@media(min-width:851px){html{font-size:90%}}
