/* Avi Patel — complete project folios and material timelines. */
.ap-portfolio { --ap-section-tint:#EFF4EE; --ap-frame:#BFC8BD; }
.ap-portfolio[data-portfolio="machines"] { --ap-section-tint:#FAF0E9; --accent:#984A32; --focus:#984A32; }
.ap-portfolio[data-portfolio="systems"] { --ap-section-tint:#EFF1F9; --accent:#4D6098; --focus:#4D6098; }
.ap-portfolios { inline-size:min(calc(100% - 3rem),72rem); margin-inline:auto; }
html[data-core-nav] .ap-portfolio, .ap-portfolio[data-portfolio] {
  display:block; margin:0; padding-block:clamp(3rem,7vw,6rem) clamp(4rem,8vw,7rem);
  border:0; scroll-margin-block-start:2rem;
}
.ap-portfolio[data-portfolio] :is(.ap-portfolio__header,.ap-projects) {
  margin-inline:0; padding:0; border:0; grid-column:auto; grid-row:auto;
}
.ap-portfolio .ap-portfolio__header { display:grid; grid-template-columns:minmax(.5rem,1fr) auto minmax(.5rem,1fr);
  align-items:center; gap:0 .8rem; margin-block:0 2.5rem; text-align:center; }
.ap-portfolio__header::before,.ap-portfolio__header::after { content:""; grid-row:1; block-size:1px; background:var(--ap-frame); }
.ap-portfolio__header::before { grid-column:1; }
.ap-portfolio__header::after { grid-column:3; }
.ap-portfolio__header h2 { grid-column:2; grid-row:1; max-inline-size:100%; margin:0; padding:.35em .6em .4em;
  border:1px solid var(--ap-frame); border-radius:2px; background:var(--ap-chalk); color:var(--ap-evergreen);
  font-size:clamp(1.25rem,.8rem + 3.2vw,2.75rem); font-weight:400; line-height:1.15; letter-spacing:-.04em; }
.ap-portfolio__header > p:last-child { grid-column:1 / -1; grid-row:2; margin:1rem auto 0; max-inline-size:54ch;
  font-size:1rem; line-height:1.6; color:var(--ap-graphite); }
.ap-portfolio .ap-work { display:block; }
.ap-portfolio .ap-projects { display:grid; grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; gap:clamp(3rem,6vw,5rem); }
.ap-portfolio :is(h3,h4) { scroll-margin-block-start:2rem; }

/* A common calendar with three material treatments. No script is required. */
.ap-timeline { --lane:8rem; position:relative; isolation:isolate; overflow:hidden; margin:0 auto clamp(3rem,6vw,5rem);
  padding:clamp(1.5rem,3vw,2.5rem); border:1px solid var(--ap-frame); border-radius:2px; background:#F5F7F1; }
.ap-timeline__intro { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-block-end:2rem; }
.ap-timeline__intro h3 { margin:0; font-size:1rem; font-weight:600; letter-spacing:-.02em; }
.ap-timeline__intro p { margin:0; color:var(--ap-graphite); font-size:.8125rem; line-height:1.6; }
.ap-timeline__graph { position:relative; z-index:1; }
.ap-timeline__axis { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-inline-start:var(--lane); padding-block-end:1rem; border-block-end:2px solid var(--accent);
  color:var(--ap-evergreen); font:.6875rem/1.4 ui-monospace,Consolas,monospace; }
.ap-timeline__axis > span { position:relative; }
.ap-timeline__axis > span:last-child { position:absolute; inset-inline-end:0; inset-block-start:0; white-space:nowrap; text-align:right; }
.ap-timeline__axis > span::after { content:""; position:absolute; inset-block-end:-1.45rem; inset-inline-start:0; inline-size:1px; block-size:.4rem; background:var(--accent); }
.ap-timeline__axis > span:last-child::after { inset-inline-start:auto; inset-inline-end:0; }
.ap-timeline__rows,.ap-timeline__year-group ul { list-style:none; margin:0; padding:0; }
.ap-timeline__row { display:grid; grid-template-columns:var(--lane) minmax(0,1fr); align-items:center; padding-block:1.65rem; }
.ap-timeline__row + .ap-timeline__row { border-block-start:1px solid color-mix(in srgb,var(--ap-frame),transparent 50%); }
.ap-timeline__lane { margin:0; padding-inline-end:1rem; font-size:.75rem; line-height:1.6; font-weight:600; }
.ap-timeline__lane > span { font-size:.6875rem; font-weight:400; color:var(--ap-graphite); }
.ap-timeline__lane > svg { display:block; margin-block-end:.5rem; inline-size:22px; block-size:22px; color:var(--accent); }
.ap-timeline__calendar { display:grid; grid-template-columns:repeat(24,minmax(0,1fr)); align-items:start; min-inline-size:0; }
.ap-timeline a { color:var(--ap-evergreen); text-decoration:none; }
.ap-timeline__duration { position:relative; display:flex; align-items:center; flex-direction:column; gap:.4rem; min-block-size:44px; padding-block:.4rem .7rem; }
.ap-timeline__duration-label { display:flex; align-items:center; gap:.5rem; min-inline-size:max-content; font-size:.8125rem; line-height:1.35; }
.ap-timeline__duration-label > strong { max-inline-size:16ch; }
.ap-timeline__duration img,.ap-timeline__node img { flex:none; inline-size:28px; block-size:28px; object-fit:contain; }
.ap-timeline__dates { white-space:nowrap; font:.6875rem/1.5 ui-monospace,Consolas,monospace; color:var(--ap-graphite); }
.ap-timeline__bar { position:relative; inline-size:100%; block-size:.5rem; margin-block-start:.15rem; border:1px solid var(--accent); background:color-mix(in srgb,var(--accent),transparent 65%); }
.ap-timeline__bar::before,.ap-timeline__bar::after { content:""; position:absolute; inset-block-start:-.25rem; inline-size:.875rem; block-size:.875rem; border:1px solid var(--accent); background:var(--ap-section-tint); }
.ap-timeline__bar::before { inset-inline-start:-1px; }
.ap-timeline__bar::after { inset-inline-end:-1px; }
.ap-duration--cadence { grid-column:5 / 9; }
.ap-duration--drosophila { grid-column:13 / 18; }
.ap-duration--siemens { grid-column:9 / 17; }
.ap-timeline__year-group { min-inline-size:0; }
.ap-year--2025 { grid-column:1 / 13; padding-inline-end:1rem; }
.ap-year--2026 { grid-column:13 / -1; padding-inline-start:.5rem; }
.ap-year--full { grid-column:1 / -1; }
.ap-timeline__bracket { display:flex; justify-content:space-between; align-items:center; gap:.5rem; margin:0 0 .75rem; padding:.55rem .65rem 0;
  border-block-start:1px solid var(--accent); border-inline:1px solid var(--accent); font:.75rem/1.5 ui-monospace,Consolas,monospace; }
.ap-timeline__bracket > span { font-size:.6875rem; color:var(--ap-graphite); }
.ap-timeline__year-group ul { display:flex; flex-wrap:wrap; gap:.5rem; }
.ap-timeline__year-group li { flex:1 1 9rem; }
.ap-timeline__node { display:flex; align-items:center; gap:.6rem; min-block-size:52px; block-size:100%; padding:.65rem .75rem;
  border:1px solid var(--ap-frame); background:#FEFEFC; font-size:.8125rem; line-height:1.4; transition:border-color 180ms,background-color 180ms; }
.ap-timeline__arrow { margin-inline-start:auto; color:var(--accent); }
.ap-timeline__node:hover,.ap-timeline__node:focus-visible { border-color:var(--accent); background:var(--ap-section-tint); }
.ap-timeline__duration:hover .ap-timeline__bar,.ap-timeline__duration:focus-visible .ap-timeline__bar { background:var(--accent); }
.ap-timeline__key { display:flex; align-items:center; gap:.6rem; margin:1.25rem 0 0; color:var(--ap-graphite); font-size:.6875rem; line-height:1.65; }
.ap-timeline__key > span { display:inline-block; flex:none; inline-size:1rem; block-size:.35rem; background:var(--accent); }

/* The wafer is a single quiet substrate; pads and traces carry the dates. */
.ap-timeline--wafer::before { content:""; position:absolute; z-index:-1; inline-size:44rem; aspect-ratio:1; inset-inline-start:-7rem; inset-block-start:-12rem; border:1px solid #C8D6BE; border-radius:50%;
  background:linear-gradient(128deg,#E4EDDC80,#F5EFDC66 48%,#DBE6E655),
  repeating-linear-gradient(0deg,transparent 0 42px,#52724813 42px 43px),repeating-linear-gradient(90deg,transparent 0 42px,#52724813 42px 43px); }
.ap-timeline--wafer::after { content:""; position:absolute; z-index:-1; inset-inline-start:5.4rem; inset-block-start:1rem; block-size:21rem; inline-size:1px; background:#6D876B15; transform:rotate(45deg); }
.ap-timeline--wafer .ap-timeline__bar { background:#A9BB9680; }
.ap-timeline--wafer .ap-timeline__bar::before,.ap-timeline--wafer .ap-timeline__bar::after { background:#DFD2AF; border-color:#887C58; }

/* A satin rail with sparse measurement ticks. */
.ap-timeline--rail { background:linear-gradient(105deg,#F5F3EF,#EBEEEC 48%,#F8F6F1); }
.ap-timeline--rail .ap-timeline__axis { padding-block-end:1.2rem; border-block-end:5px double #9FA7A2; }
.ap-timeline--rail .ap-timeline__axis::after { content:""; position:absolute; inset-inline:0; inset-block-end:0; block-size:.5rem;
  background:repeating-linear-gradient(90deg,#747C703D 0 1px,transparent 1px calc(100% / 24)); }
.ap-timeline--rail .ap-timeline__bar { block-size:.55rem; background:linear-gradient(#D4C3B2,#A8785C); }
.ap-timeline--rail .ap-timeline__bar::before { inline-size:1.25rem; block-size:1rem; background:linear-gradient(#F5DFCD,#CBA48A); transition:transform 450ms cubic-bezier(.2,.7,.3,1); }
.ap-timeline--rail .ap-timeline__duration:is(:hover,:focus-visible) .ap-timeline__bar::before { transform:translateX(.5rem); }
.ap-timeline--systems { background:#F2F4F9; }
.ap-timeline--systems .ap-timeline__row + .ap-timeline__row { border-block-start:1px solid #C7CFDF; }
.ap-timeline--systems .ap-timeline__bar { background:#7188B4; }
.ap-timeline--systems .ap-timeline__node { background:#FBFCFE; }

/* One perimeter contains the whole entry; the header spans text and pictures. */
.ap-portfolio[data-portfolio] :is(.ap-project,.ap-case) { --entry-pad:clamp(1.2rem,2.5vw,2rem); inline-size:100%; max-inline-size:none; margin-inline:0; padding:0;
  border:1px solid var(--ap-frame); border-radius:2px; background:#FEFEFC; scroll-margin-block-start:2rem; overflow:hidden; }
.ap-portfolio[data-portfolio] .ap-project { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:start; column-gap:clamp(1.5rem,3.5vw,3rem); row-gap:0; }
.ap-portfolio .ap-entry-head { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:1.15rem; grid-column:1 / -1; grid-row:1; min-inline-size:0;
  margin:0; padding:1.25rem var(--entry-pad); border-block-end:1px solid var(--ap-frame); background:var(--ap-section-tint); }
.ap-entry-mark { display:block; inline-size:56px; block-size:56px; object-fit:contain; border:1px solid var(--ap-frame); }
.ap-portfolio .ap-entry-head h3 { max-inline-size:36ch; margin:.3rem 0 0; font-size:clamp(1.25rem,1rem + 1.1vw,1.75rem); font-weight:600; line-height:1.25; letter-spacing:-.035em; }
.ap-portfolio .ap-entry-date { margin:0; white-space:nowrap; align-self:start; padding-block-start:.25rem; color:var(--ap-graphite); font:.75rem/1.7 ui-monospace,Consolas,monospace; }
.ap-portfolio .ap-project__copy { display:grid; gap:1.25rem; grid-column:1; grid-row:2; align-content:start; margin:0; padding:var(--entry-pad) 0 var(--entry-pad) var(--entry-pad); border:0; background:transparent; }
.ap-portfolio .ap-project__copy > * { grid-column:auto; grid-row:auto; }
.ap-portfolio .ap-project__media { display:grid; gap:1.5rem; grid-column:2; grid-row:2; min-inline-size:0; padding:var(--entry-pad) var(--entry-pad) var(--entry-pad) 0; }
.ap-portfolio .ap-project__media--pair { grid-template-columns:minmax(0,1fr); }
.ap-portfolio .ap-project__status { margin:0; color:var(--accent); font-size:.6875rem; line-height:1.7; font-family:ui-monospace,Consolas,monospace; font-weight:400; }
.ap-portfolio .ap-project__status::before { content:none; }
.ap-portfolio .ap-project__main > p:first-child { max-inline-size:52ch; font-size:1rem; line-height:1.75; color:var(--ap-evergreen); }
.ap-portfolio :is(.ap-project__meta,.ap-case__meta) { font-size:.75rem; line-height:1.75;
  color:var(--ap-graphite); margin-block-start:1rem; }
.ap-portfolio :is(.ap-project__boundary,.ap-case__scope) { padding:0; border:0; max-inline-size:65ch;
  color:var(--ap-graphite); font-size:.8125rem; line-height:1.7; margin-block:0; }
.ap-portfolio .ap-project__links,.ap-portfolio .ap-case__links { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; }
.ap-portfolio .ap-project__links > span { flex-basis:100%; font-size:.75rem; color:var(--ap-graphite); }
.ap-portfolio .ap-project__link { display:inline-flex; align-items:center; justify-content:space-between; gap:.75rem; min-block-size:44px;
  max-inline-size:100%; margin-block-start:.65rem; padding:.65rem .8rem; border:1px solid var(--ap-frame); border-radius:2px;
  background:transparent; color:var(--ap-evergreen); font-size:.8125rem; font-weight:600; text-decoration:none; }
.ap-portfolio .ap-project__link::after { content:"↗"; color:var(--accent); font-size:1rem; flex:none; }
.ap-portfolio .ap-project__link:hover { border-color:var(--accent); background:var(--ap-section-tint); }
.ap-portfolio .ap-media img { border:1px solid #AEBBAC; border-radius:2px; padding:.4rem; background:#FEFEFC;
  aspect-ratio:auto; object-fit:contain; }
.ap-portfolio .ap-media { margin:0; }
.ap-portfolio .ap-media figcaption { display:flex; flex-wrap:wrap; gap:.2rem .65rem;
  padding-block-start:.65rem; font-size:.6875rem; line-height:1.6; color:var(--ap-graphite); }
.ap-portfolio .ap-media__portrait-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.ap-portfolio .ap-project__details { margin:0; border:0; padding:0; }
.ap-portfolio :is(.ap-case__details,.ap-project__details) > summary { display:list-item; width:fit-content; max-inline-size:100%;
  min-block-size:44px; padding:.65rem .85rem; border:1px solid var(--ap-frame); border-radius:2px; background:transparent;
  font-size:.8125rem; font-weight:600; line-height:1.6; color:var(--ap-evergreen); cursor:pointer; }
.ap-portfolio details > summary:hover,.ap-portfolio details[open] > summary { background:var(--ap-section-tint); border-color:var(--accent); }
.ap-portfolio details[open] > summary { margin-block-end:1.25rem; }
.ap-portfolio details > :is(p,h4) { max-inline-size:65ch; margin-block:0 1rem; }
.ap-portfolio details > p { font-size:.9375rem; line-height:1.75; color:var(--ap-graphite); }
.ap-project__facts { display:grid; gap:1rem; margin:1rem 0 0; }
.ap-project__facts dt { font-size:.8125rem; font-weight:600; line-height:1.5; }
.ap-project__facts dd { margin:.3rem 0 0; font-size:.875rem; line-height:1.7; color:var(--ap-graphite); }

/* Employer work without public pictures remains a complete, readable folio. */
.ap-portfolio[data-portfolio] .ap-case { display:block; margin-block:0 clamp(3rem,6vw,5rem); }
.ap-portfolio .ap-case > :not(.ap-entry-head) { margin-inline:var(--entry-pad); }
.ap-portfolio .ap-case__lede { max-inline-size:65ch; margin-block-start:var(--entry-pad); font-size:1rem; line-height:1.75; color:var(--ap-evergreen); }
.ap-portfolio .ap-case__scope { margin-block-start:1.5rem; }
.ap-portfolio .ap-case__meta { margin-block:1rem var(--entry-pad); }
.ap-portfolio .ap-case__details { padding:0; border:0; margin-block:1.5rem; }
.ap-portfolio .ap-case__facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin:1.25rem 0; }
.ap-portfolio .ap-case__facts > div { padding:0; border:0; }
.ap-portfolio .ap-case__facts dt { font-size:.8125rem; line-height:1.5; }
.ap-portfolio .ap-case__facts dd { margin:.3rem 0 0; font-size:.9375rem; line-height:1.7; }
.ap-case__contributions { margin-block:1.5rem; }
.ap-contributions { margin:0; padding-inline-start:1.1rem; max-inline-size:65ch; }
.ap-contributions li { margin-block:.5rem; padding-inline-start:.2rem; line-height:1.7; color:var(--ap-graphite); }
.ap-portfolio[data-portfolio] .ap-project--copyonly { display:block; }
.ap-portfolio .ap-project--copyonly .ap-project__copy { max-inline-size:70ch; grid-template-columns:minmax(0,1fr); padding:var(--entry-pad); }
.ap-portfolio .ap-project--copyonly footer { grid-row:auto; grid-column:auto; }
.ap-portfolio :is(.ap-case,.ap-project):target { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 76%); }
.ap-portfolio:has(#cadence-project:target) .ap-timeline a[href="#cadence-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#pynq-project:target) .ap-timeline a[href="#pynq-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#pvt-project:target) .ap-timeline a[href="#pvt-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#drosophila-project:target) .ap-timeline a[href="#drosophila-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#porchlight-project:target) .ap-timeline a[href="#porchlight-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#vitaltrace-project:target) .ap-timeline a[href="#vitaltrace-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#bowling-project:target) .ap-timeline a[href="#bowling-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#siemens-project:target) .ap-timeline a[href="#siemens-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#aerolab-project:target) .ap-timeline a[href="#aerolab-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#smartfactory-project:target) .ap-timeline a[href="#smartfactory-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-portfolio:has(#signallaunch-project:target) .ap-timeline a[href="#signallaunch-project"] { outline:2px solid var(--accent); outline-offset:4px; }
.ap-work-footer { display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.5rem;
  border:0; margin-block-start:0; padding-block:2rem 4rem; }
.ap-work-footer__contact { padding:1rem 1.5rem; border:1px solid #BFC8BD; border-radius:2px; background:transparent;
  color:var(--ap-evergreen); font-size:clamp(1.2rem,1rem + 1vw,1.75rem); }
.ap-work-footer nav { justify-content:center; }
.ap-work-footer nav a { padding:.7rem 1rem; border:1px solid #BFC8BD; border-radius:2px; background:transparent; text-decoration:none; }


@media(max-width:50rem) {
  .ap-portfolios { inline-size:calc(100% - 3rem); }
  .ap-portfolio[data-portfolio] .ap-project { grid-template-columns:minmax(0,1fr); }
  .ap-portfolio .ap-entry-head { grid-template-columns:48px minmax(0,1fr); gap:.75rem 1rem; }
  .ap-entry-mark { inline-size:48px; block-size:48px; grid-row:1 / span 2; }
  .ap-portfolio .ap-entry-date { grid-column:2; padding:0; font-size:.6875rem; }
  .ap-portfolio .ap-project__copy { grid-column:1; grid-row:2; padding:var(--entry-pad); }
  .ap-portfolio .ap-project__media { grid-column:1; grid-row:3; max-inline-size:none; padding:0 var(--entry-pad) var(--entry-pad); }
  .ap-portfolio .ap-case__facts { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
  .ap-portfolio .ap-media__portrait-pair { max-inline-size:34rem; margin-inline:auto; }
  .ap-timeline { --lane:0rem; }
  .ap-timeline__intro { display:block; margin-block-end:1.5rem; }
  .ap-timeline__intro p { margin-block-start:.4rem; }
  .ap-timeline__axis { display:none; }
  .ap-timeline__rows { position:relative; padding-inline-start:1.35rem; border-inline-start:2px solid var(--accent); }
  .ap-timeline__row { position:relative; display:block; padding-block:0 1.5rem; }
  .ap-timeline__row + .ap-timeline__row { padding-block-start:1.5rem; }
  .ap-timeline__row:last-child { padding-block-end:0; }
  .ap-timeline__row::before { content:""; position:absolute; inset-inline-start:-1.7rem; inset-block-start:.15rem; inline-size:.6rem; block-size:.6rem; border:1px solid var(--accent); background:var(--ap-section-tint); }
  .ap-timeline__row + .ap-timeline__row::before { inset-block-start:1.65rem; }
  .ap-timeline__lane { margin-block-end:.8rem; padding:0; }
  .ap-timeline__lane > br { display:none; }
  .ap-timeline__lane > span { margin-inline-start:.4rem; }
  .ap-timeline__lane > svg { display:inline-block; vertical-align:middle; inline-size:18px; block-size:18px; margin:0 .4rem 0 0; }
  .ap-timeline__calendar { display:block; }
  .ap-timeline__duration { flex-direction:row; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:.65rem; padding:.5rem 0 .5rem 1.3rem; }
  .ap-timeline__duration-label { min-inline-size:0; }
  .ap-timeline__duration-label > strong { max-inline-size:20ch; }
  .ap-timeline__dates { inline-size:100%; margin-inline-start:2.25rem; }
  .ap-timeline__bar { position:absolute; inset-inline-start:0; inset-block:.5rem; inline-size:.4rem; block-size:auto; margin:0; }
  .ap-timeline__bar::before,.ap-timeline__bar::after { inline-size:.65rem; block-size:.65rem; inset-inline-start:-.2rem; }
  .ap-timeline__bar::before { inset-block-start:0; }
  .ap-timeline__bar::after { inset-block-start:auto; inset-block-end:0; }
  .ap-timeline__year-group { padding:0; }
  .ap-timeline--rail .ap-timeline__rows { border-inline-start:5px double #9FA7A2; border-inline-end:0; }
  .ap-timeline--rail .ap-timeline__bar { block-size:auto; }
  .ap-timeline--rail .ap-timeline__bar::before { inline-size:.7rem; block-size:.7rem; }
  .ap-timeline--rail .ap-timeline__duration:is(:hover,:focus-visible) .ap-timeline__bar::before { transform:translateY(.4rem); }
  .ap-timeline--systems .ap-timeline__row + .ap-timeline__row { border-block-start:1px solid #C7CFDF; }
}
@media(max-width:32rem) {
  .ap-portfolios { inline-size:calc(100% - 2.5rem); }
  .ap-portfolio .ap-portfolio__header { column-gap:.4rem; }
  .ap-timeline { padding:1.25rem 1rem; }
  .ap-timeline__duration-label { align-items:flex-start; font-size:.75rem; }
  .ap-timeline__dates { margin-inline-start:0; font-size:.6875rem; }
  .ap-timeline__node { padding:.6rem; font-size:.75rem; }
  .ap-portfolio .ap-media__portrait-pair { grid-template-columns:minmax(0,1fr); gap:1rem; }
  .ap-portfolio .ap-projects { gap:3rem; }
  .ap-portfolio .ap-entry-head h3 { font-size:1.15rem; }
  .ap-portfolio .ap-entry-head { grid-template-columns:40px minmax(0,1fr); gap:.65rem .75rem; }
  .ap-entry-mark { inline-size:40px; block-size:40px; }
  .ap-portfolio .ap-project__status { font-size:.6875rem; }
}
@media(forced-colors:active) {
  .ap-portfolio { --ap-frame:CanvasText; --accent:LinkText; --ap-section-tint:Canvas; }
  .ap-portfolio__header::before,.ap-portfolio__header::after { background:CanvasText; }
  .ap-portfolio .ap-media img { border-color:CanvasText; }
  .ap-timeline::before,.ap-timeline::after { display:none; }
  .ap-timeline,.ap-timeline__node,.ap-entry-head { background:Canvas; }
  .ap-timeline__bar,.ap-timeline__bar::before,.ap-timeline__bar::after { background:Canvas; border-color:LinkText; }
}
@media(prefers-reduced-motion:reduce) { .ap-timeline a,.ap-timeline__bar::before { transition:none; } }
