/* Authored material fields frame authentic project captures. All art is static,
   lazy loaded, and independent of the product evidence above it. */
.ice-portfolio { --page-gutter: clamp(24px, 4.6vw, 88px); }
.ice-portfolio .home-work,
.ice-portfolio .home-experience,
.ice-portfolio .home-research-inner {
  max-width: none;
  padding-inline: var(--page-gutter);
}
.ice-portfolio .home-work { padding-top: 38px; padding-bottom: 0; border-top: 1px solid var(--home-line); }
.ice-portfolio .home-work-drawing { display: none; }
.ice-portfolio .home-work .home-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 48px;
  align-items: end;
  text-align: left;
  margin-bottom: 30px;
}
.ice-portfolio .home-work .home-section-heading h2 { margin-bottom: 0; }
.ice-portfolio .home-work .home-section-heading h2 em { color: var(--home-violet); font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
.ice-portfolio .home-work-intro > p:first-child { color: var(--home-muted); font-size: 15px; line-height: 1.6; max-width: 420px; }
.ice-portfolio .home-work-count { margin-top: 12px; color: var(--home-muted); font-size: 11px; letter-spacing: .025em; }
.ice-portfolio .home-work-count span { margin-inline: 8px; }
.ice-portfolio .home-hero .home-kicker::after,
.ice-portfolio .home-research-study::before { display: none; }

.ice-portfolio .home-project-grid {
  grid-template-columns: 1.16fr 1fr 1fr;
  gap: 22px;
}
.ice-portfolio .home-project-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #dedddf;
  border-radius: 12px;
  background: #fcfcfd;
}
.ice-portfolio .home-project-destination { display: flex; flex: 1; flex-direction: column; min-width: 0; color: inherit; border-radius: inherit; }
.ice-portfolio .home-project-destination:focus-visible { outline: 2px solid var(--home-violet); outline-offset: -5px; }
.ice-portfolio .home-project-destination:focus-visible .project-media-label { opacity: 1; transform: none; }
.ice-portfolio .home-project-media {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  height: 326px;
  padding: 28px;
  aspect-ratio: auto;
  border: 0;
  border-bottom: 1px solid #dedddf;
  border-radius: 0;
  background: #ece8e3;
  box-shadow: none;
}
.ice-portfolio .home-project-media:focus-visible { outline-offset: -5px; }
.ice-portfolio .project-field {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
}
.ice-portfolio .project-capture {
  display: block;
  position: relative;
  z-index: 1;
  width: min(100%, 390px);
  aspect-ratio: 1.6;
  overflow: hidden;
  border: 1px solid #30313b45;
  border-radius: 6px;
  background: #14161d;
  box-shadow: 0 16px 24px -14px #1b1b2959, 0 2px 7px #1b1b2914;
}
.ice-portfolio [data-project-id='codegraph-cli'] .project-capture { width: min(100%, 430px); }
.ice-portfolio [data-project-id='research-council'] .home-project-media { background: #e8ebf1; }
.ice-portfolio [data-project-id='localforge'] .home-project-media { background: #e2e9e3; }
.ice-portfolio .project-detail { z-index: 2; max-width: 350px; }
.ice-portfolio .project-media-label { z-index: 3; }
.ice-portfolio .home-project-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 22px 24px 20px;
}
.ice-portfolio .home-project-copy .home-card-kicker { font-size: 10px; }
.ice-portfolio .home-project-copy h3 { margin-block: 8px 12px; }
.ice-portfolio .home-project-copy > p:not(.home-card-kicker) {
  min-height: 48px;
  max-width: 440px;
}
.ice-portfolio .home-project-copy > p.home-project-proof { width: 100%; min-height: 0; max-width: none; padding-top: 12px; margin-top: 15px; border-top: 1px solid #e4e2e6; font-size: 11px; color: #6b626f; }
.ice-portfolio .home-project-link { margin-top: auto; padding-top: 16px; }
.ice-portfolio .home-project-destination:is(:hover, :focus-visible) .home-project-link { color: #9f533f; }
.ice-portfolio .home-project-destination:focus-visible .text-motion-reel { transform: translateY(-112%); }
.ice-portfolio .home-secondary-projects { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ice-portfolio .home-secondary-projects .home-project-media { height: 270px; }
.ice-portfolio [data-project-id='s2cool'] .home-project-media {
  background: linear-gradient(145deg, #e6dfcf, #f1ede1 56%, #e9ddd2);
}
.ice-portfolio [data-project-id='fuelstate'] .home-project-media {
  background: linear-gradient(145deg, #dce7e1, #ecf0e9 58%, #d8e2dc);
}
.ice-portfolio [data-project-id='proposal-bot'] .home-project-media {
  background: linear-gradient(145deg, #e5e0ec, #f0edf4 56%, #dfdfe9);
}
.ice-portfolio .home-secondary-projects .project-capture { width: min(100%, 338px); }

/* The band and its rules reach the viewport; its contents share the card gutter. */
.ice-portfolio .home-project-note {
  margin-inline: calc(-1 * var(--page-gutter));
  margin-top: 38px;
  padding: 28px var(--page-gutter);
  background: linear-gradient(105deg, #ede3df, #ece9f2 55%, #e5eff2);
}
.ice-portfolio .home-project-note p:last-child { max-width: 720px; }
.ice-portfolio .home-research { border-top: 0; }
.ice-portfolio .home-research-inner {
  max-width: 1560px;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
  gap: clamp(48px, 5vw, 90px);
}
.ice-portfolio .home-research-study { width: 100%; max-width: 760px; justify-self: end; }
.ice-portfolio .home-research-intro > p:not(.home-kicker) { max-width: 455px; }
.ice-portfolio .home-research-drawing { width: 380px; }
.ice-portfolio .home-about {
  max-width: 1340px;
  padding-inline: var(--page-gutter);
  grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
  gap: clamp(50px, 7vw, 120px);
}
.ice-portfolio .home-footer-wordmark { font-size: clamp(38px, 4vw, 54px); }
.ice-portfolio .home-contact .home-email-button { background: #f0e9ee; border-color: #f0e9ee; color: #302836; }
.ice-portfolio .home-contact .home-email-button:hover { background: #fff; border-color: #fff; }
.ice-portfolio .home-email-address { margin-top: 17px; color: #c8c1d1; font-size: 13px; overflow-wrap: anywhere; }
.ice-portfolio .home-writing { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; padding-block: 24px; margin-top: 16px; text-align: left; border-block: 1px solid #a49aaf40; }
.ice-portfolio .home-writing h3 { margin: 7px 0 8px; font-size: 28px; letter-spacing: -.025em; font-weight: 400; line-height: 1.2; }
.ice-portfolio .home-writing h3 + p { max-width: 420px; color: #c2bdca; font-size: 13px; line-height: 1.6; }
.ice-portfolio .home-writing .home-medium-link { background: transparent; }

@media (max-width: 1200px) and (min-width: 761px) {
  .ice-portfolio .home-project-media { height: 300px; padding: 24px; }
  .ice-portfolio [data-project-id='codegraph-cli'] .project-capture { width: min(100%, 400px); }
  .ice-portfolio .home-project-copy { padding: 20px; }
  .ice-portfolio .home-secondary-projects .home-project-media { height: 240px; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .ice-portfolio .home-project-grid:not(.home-secondary-projects) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ice-portfolio [data-project-id='codegraph-cli'] {
    grid-column: 1 / -1;
  }
  .ice-portfolio [data-project-id='codegraph-cli'] .home-project-destination {
    display: grid;
    grid-template-columns: 1.12fr 1fr;
  }
  .ice-portfolio [data-project-id='codegraph-cli'] .home-project-media { height: 280px; border: 0; border-right: 1px solid #dedddf; }
  .ice-portfolio [data-project-id='codegraph-cli'] .home-project-copy { padding: 28px; }
  .ice-portfolio [data-project-id='codegraph-cli'] .project-capture { width: min(100%, 350px); }
  .ice-portfolio .home-project-copy > p:not(.home-card-kicker) { min-height: 0; }
  .ice-portfolio .home-secondary-projects .home-project-copy { padding: 18px; }
  .ice-portfolio .home-secondary-projects .home-project-copy h3 { font-size: 23px; }
  .ice-portfolio .home-secondary-projects .home-project-media { height: 210px; padding: 16px; }
}
@media (max-width: 760px) {
  .ice-portfolio .home-work .home-section-heading { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 520px; margin-inline: auto; margin-bottom: 26px; }
  .ice-portfolio .home-work .home-section-heading h2 { max-width: 460px; font-size: 35px; }
  .ice-portfolio .home-work-intro > p:first-child { max-width: 460px; }
  .ice-portfolio .home-project-grid,
  .ice-portfolio .home-secondary-projects { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ice-portfolio .home-project-media,
  .ice-portfolio .home-secondary-projects .home-project-media { height: 250px; padding: 20px; }
  .ice-portfolio .project-capture,
  .ice-portfolio [data-project-id='codegraph-cli'] .project-capture,
  .ice-portfolio .home-secondary-projects .project-capture { width: min(100%, 336px); }
  .ice-portfolio .home-project-copy { padding: 20px; }
  .ice-portfolio .home-project-copy > p:not(.home-card-kicker) { min-height: 0; }
  .ice-portfolio .home-work-divider { margin-top: 32px; }
  .ice-portfolio .home-project-note { padding-block: 26px; gap: 20px; }
  .ice-portfolio .home-project-note .home-button { white-space: normal; }
  .ice-portfolio .home-research-inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ice-portfolio .home-research-drawing { width: 260px; }
  .ice-portfolio .home-about { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ice-portfolio .home-contact-actions { display: grid; grid-template-columns: repeat(3, 48px); gap: 10px; justify-content: center; margin-top: 26px; }
  .ice-portfolio .home-contact-actions .home-email-button { grid-column: 1 / -1; }
  .ice-portfolio .home-contact-actions .home-social-link { width: 48px; }
  .ice-portfolio .home-writing { grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 20px; padding-block: 22px; }
  .ice-portfolio .home-writing h3 { font-size: 25px; }
  .ice-portfolio .home-email-address { font-size: 12px; }
}
@media (max-width: 370px) {
  .ice-portfolio { --page-gutter: 20px; }
  .ice-portfolio .home-project-media,
  .ice-portfolio .home-secondary-projects .home-project-media { height: 230px; padding: 16px; }
  .ice-portfolio .home-project-copy { padding: 18px; }
}
