/* V73 · Professional-first portfolio: a different layer from the practice consoles. */
#portfolio.portfolio-v73 {
  --p73-ink: var(--ink, #1b2920);
  --p73-muted: var(--muted, #596457);
  --p73-sage: var(--accent, #2f6b4f);
  --p73-line: var(--line-strong, #bfcabb);
  --p73-surface: var(--surface, #fffef9);
  --p73-elevated: var(--surface2, #f7f4ec);
  position: relative;
  isolation: isolate;
  max-width: 1480px;
  margin: 0 auto;
  padding-block: clamp(68px, 9vw, 130px);
  color: var(--p73-ink);
  scroll-margin-top: 94px;
}
#portfolio .p73-heading {max-width: 980px; margin-bottom: clamp(26px, 4vw, 52px);}
#portfolio .p73-eyebrow, #portfolio .p73-label {
  color: var(--p73-sage); font: 700 .69rem/1.5 "JetBrains Mono", monospace;
  letter-spacing: .12em; text-transform: uppercase;
}
#portfolio .p73-heading h2 {
  margin: 16px 0; max-width: 16ch;
  font: 500 clamp(2.8rem, 6.5vw, 6.4rem)/1.06 Fraunces, Georgia, serif;
  letter-spacing: -.045em; text-wrap: balance;
}
#portfolio .p73-heading h2 em {display:block; color:var(--p73-sage); font-weight:400;}
#portfolio .p73-heading > p:last-child {max-width: 72ch; font-size: clamp(1rem, 1.4vw, 1.23rem); line-height:1.65; color:var(--p73-muted);}
#portfolio .p73-story {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  gap: clamp(22px,4vw,65px); align-items: stretch; margin-bottom:clamp(44px, 7vw, 80px);
}
#portfolio .p73-manifesto {
  padding: clamp(26px, 4.5vw, 56px);
  background: var(--p73-surface); border: 1px solid var(--p73-line);
  border-radius: 24px 7px 24px 7px;
}
#portfolio .p73-manifesto h3 {font: 500 clamp(1.5rem,3vw,2.55rem)/1.18 Fraunces,Georgia,serif; margin:15px 0 25px; max-width:18ch;}
#portfolio .p73-principles {counter-reset: principle; list-style: none; margin:0; padding:0;}
#portfolio .p73-principles li {display:flex; align-items:baseline; gap:18px; padding: 17px 0; border-top:1px solid var(--p73-line); line-height:1.55; }
#portfolio .p73-principles li::before {counter-increment: principle; content: "0" counter(principle); color:var(--p73-sage); font: 700 .78rem/1.4 "JetBrains Mono",monospace;}
#portfolio .p73-journey {
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(22px, 3.7vw, 45px); background:var(--p73-elevated);
  border:1px solid var(--p73-line); border-radius:7px 24px 7px 24px;
}
#portfolio .p73-journey svg {width:100%; height:auto; overflow:visible; color:var(--p73-sage);}
#portfolio .p73-journey svg .p73-path {fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round;}
#portfolio .p73-journey svg .p73-node {fill:var(--p73-surface); stroke:currentColor; stroke-width:2;}
#portfolio .p73-journey svg .p73-node-center {fill:var(--p73-sage);}
#portfolio .p73-journey p {font: italic 400 clamp(1.1rem,1.8vw,1.48rem)/1.5 Fraunces,Georgia,serif; margin:28px 0 0; max-width:32ch;}
#portfolio .p73-proof {margin:0 0 clamp(54px, 7vw, 90px);}
#portfolio .p73-proof-head {display:flex; justify-content:space-between; align-items:end; gap:20px; flex-wrap:wrap; margin-bottom:22px;}
#portfolio .p73-proof-head h3,#portfolio .p73-routes > h3,#portfolio .p73-method > h3 {font: 500 clamp(1.65rem,2.8vw,2.7rem)/1.17 Fraunces,Georgia,serif; margin:10px 0;}
#portfolio .p73-proof-head p,#portfolio .p73-route-lead {color:var(--p73-muted); max-width:63ch; line-height:1.65; margin:0;}
#portfolio .p73-proof-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,2vw,22px); margin:28px 0 20px;}
#portfolio .p73-proof-card {padding:clamp(19px,2.8vw,32px); border:1px solid var(--p73-line); border-radius:7px; min-width:0; background:var(--p73-surface);}
#portfolio .p73-proof-card .p73-proof-date {font:700 .69rem/1.45 "JetBrains Mono",monospace; color:var(--p73-sage); letter-spacing:.06em;}
#portfolio .p73-proof-card h4 {font:500 clamp(1.14rem,1.7vw,1.55rem)/1.2 Fraunces,Georgia,serif; margin:16px 0 9px;}
#portfolio .p73-proof-card p {margin:0; color:var(--p73-muted); line-height:1.6; font-size:.94rem;}
#portfolio .p73-proof a {text-decoration: underline; text-underline-offset:5px; color:var(--p73-sage); font-weight:700;}
#portfolio .p73-routes {background:var(--p73-surface); border:1px solid var(--p73-line); border-radius:24px 7px 24px 7px; padding:clamp(22px,4.5vw,54px);}
#portfolio .p73-tablist {display:flex; flex-wrap:wrap; gap:8px; margin:28px 0 0; border-bottom:1px solid var(--p73-line); padding-bottom:14px;}
#portfolio .p73-tablist button {min-height:48px; border:1px solid var(--p73-line); border-radius:999px; background:transparent; padding:10px 22px; font:700 .85rem/1.3 Inter,system-ui,sans-serif; color:var(--p73-ink); cursor:pointer;}
#portfolio .p73-tablist button:hover {border-color:var(--p73-sage);}
#portfolio .p73-tablist button[aria-selected="true"] {background:var(--p73-sage); color:var(--accent-ink,#fff); border-color:var(--p73-sage);}
#portfolio :is(a,button,[tabindex="0"]):focus-visible {outline:3px solid var(--p73-sage); outline-offset:4px;}
#portfolio .p73-detail {display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(22px,4vw,60px); align-items:start; margin-top:30px;}
#portfolio .p73-detail h4 {margin:8px 0 16px; font:500 clamp(1.65rem,3vw,3rem)/1.17 Fraunces,Georgia,serif;}
#portfolio .p73-detail p {color:var(--p73-muted); line-height:1.7;}
#portfolio .p73-details {list-style:none; padding:0; margin:12px 0 24px;}
#portfolio .p73-details li {position:relative; padding:12px 0 12px 26px; border-bottom:1px solid var(--p73-line); line-height:1.52;}
#portfolio .p73-details li::before {content:"✦"; color:var(--p73-sage); position:absolute; left:0;}
#portfolio .p73-source {font-size:.87rem; border-left:3px solid var(--p73-sage); padding-left:14px; margin:16px 0 0;}
#portfolio .p73-actions {display:flex; gap:10px; flex-wrap:wrap; margin-top:25px;}
#portfolio .p73-actions a {min-height:46px; padding:12px 18px; text-align:center; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; border-radius:6px; background:var(--p73-sage); color:var(--accent-ink,#fff); font-weight:700; font-size:.88rem;}
#portfolio .p73-actions a:not(:first-child) {color:var(--p73-ink); background:transparent; border:1px solid var(--p73-line);}
#portfolio .p73-method {margin-top:clamp(48px,7vw,85px);}
#portfolio .p73-method ol {counter-reset:step; margin:27px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,3vw,35px);}
#portfolio .p73-method li {border-top:2px solid var(--p73-sage); padding:22px 3px 0;}
#portfolio .p73-method h4 {margin:0 0 10px; font:500 1.4rem/1.25 Fraunces,Georgia,serif;}
#portfolio .p73-method p {margin:0; line-height:1.6; color:var(--p73-muted);}
@media(max-width:850px) {
  #portfolio .p73-story,#portfolio .p73-detail {grid-template-columns:1fr;}
  #portfolio .p73-proof-grid {grid-template-columns:1fr;}
  #portfolio .p73-proof-card {display:grid; grid-template-columns:minmax(100px,.35fr) 1fr; column-gap:18px;}
  #portfolio .p73-proof-card h4 {margin:0 0 8px;}
  #portfolio .p73-proof-card p {grid-column:2;}
  #portfolio .p73-method ol {grid-template-columns:1fr;}
}
@media(max-width:520px) {
  #portfolio.portfolio-v73 {padding-inline:clamp(15px,5vw,25px);}
  #portfolio .p73-heading h2 {font-size:clamp(2.35rem,10.5vw,3.5rem);}
  #portfolio .p73-proof-card {display:block;}
  #portfolio .p73-proof-card h4 {margin:13px 0 8px;}
  #portfolio .p73-tablist button {flex:1 1 100%; border-radius:6px; text-align:left;}
  #portfolio .p73-actions {flex-direction:column;}
  #portfolio .p73-actions a {width:100%;}
}
@media(prefers-reduced-motion:reduce) {
  #portfolio *,#portfolio *::before,#portfolio *::after {animation:none!important; transition:none!important; scroll-behavior:auto!important;}
}
