/* Brand typefaces, self-hosted.
 *
 * Inter Tight — Copyright 2022 The Inter Project Authors
 *   https://github.com/rsms/inter-tight · SIL Open Font License 1.1
 * Inter — Copyright The Inter Project Authors
 *   https://github.com/rsms/inter · SIL Open Font License 1.1
 * JetBrains Mono — Copyright The JetBrains Mono Project Authors
 *   https://github.com/JetBrains/JetBrainsMono · SIL Open Font License 1.1
 *
 * Full licence text ships beside the files in fonts/OFL.txt. The OFL permits
 * this use and requires the notice above to travel with the font files.
 *
 * These are variable fonts: one file serves the whole weight range. The
 * unicode-range on each rule means a browser only fetches the extended set
 * when a page actually uses those characters.
 */






@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter Tight';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('fonts/inter-tight-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter Tight';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('fonts/inter-tight-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}





/* Shared appearance across the portfolio and its working samples. */
.portfolio-theme {
  color-scheme: light;
  --accent: #246b62;
  --paper: #f8fafb;
  --ink: #172126;
  --muted: #50616a;
  --line: #cad3d7;
  --surface: #edf1f2;
  --raised: #ffffff;
  --button-bg: #172126;
  --button-ink: #ebeaec;
  --button-hover: #29383f;
  --input-edge: #6d8189;
  --danger: #8b341d;
  --track-line: #b7c6cb;
  --halo-bg: #e8eff0;
  --halo-ink: #172126;
  --halo-muted: #50616a;
}
@media (prefers-color-scheme: dark) {
  .portfolio-theme:not([data-theme="light"]) {
    color-scheme: dark;
    --accent: #6ce5d6;
    --paper: #0b0f10;
    --ink: #ebeaec;
    --muted: #aebcc2;
    --line: #3a4248;
    --surface: #111719;
    --raised: #1a1f23;
    --button-bg: #ebeaec;
    --button-ink: #0b0f10;
    --button-hover: #ffffff;
    --input-edge: #80949a;
    --danger: #ef9a9a;
    --track-line: #566971;
    --halo-bg: #111719;
    --halo-ink: #ebeaec;
    --halo-muted: #aebcc2;
  }
}
.portfolio-theme[data-theme="dark"] {
  color-scheme: dark;
  --accent: #6ce5d6;
  --paper: #0b0f10;
  --ink: #ebeaec;
  --muted: #aebcc2;
  --line: #3a4248;
  --surface: #111719;
  --raised: #1a1f23;
  --button-bg: #ebeaec;
  --button-ink: #0b0f10;
  --button-hover: #ffffff;
  --input-edge: #80949a;
  --danger: #ef9a9a;
  --track-line: #566971;
  --halo-bg: #111719;
  --halo-ink: #ebeaec;
  --halo-muted: #aebcc2;
}
.portfolio-theme body { background: var(--paper); color: var(--ink); }
.portfolio-theme header:not(.dark), .portfolio-theme footer { border-color: var(--line); }
.portfolio-theme .nav-actions { display: flex; align-items: center; gap: 20px; }
.portfolio-theme #appearance {
  font: inherit; font-size: 13px; min-height: 44px; max-width: 100px;
  padding: 8px 10px; border: 1px solid var(--input-edge); border-radius: 14px;
  background: var(--raised); color: var(--ink); cursor: pointer;
}
.portfolio-theme :is(.profile-intro .eyebrow, .location, .portrait figcaption,
  .work-heading .eyebrow, .work-heading>p, .work-category, .featured-copy>p:not(.work-category),
  .work-contribution dd, .featured-visual figcaption, .work-story figcaption,
  .work-story>p:not(.work-category), .products-heading p, .product-proof p,
  .work-status-note, .experience-grid p, .contact-section p, footer,
  .case-intro .lede, .case-intro .eyebrow, .scope-item p, .case-facts dd,
  .project-image figcaption, .project-type span, .project-role) { color: var(--muted); }
.portfolio-theme :is(.experience-section, .case-intro, .featured-visual, .product-capture,
  .source-facts, .review-feedback, .prompt-example, .results) { background: var(--surface); }
.portfolio-theme :is(.supporting-work, .products-heading, .aura-proof,
  .experience-section, .experience-grid article+article, .project-row,
  .scope-item, .review-choice, .review-feedback, .app-example,
  .work-story figure>a, .featured-visual img, .project-image img, .row) { border-color: var(--line); }
.portfolio-theme button { background: var(--raised); color: var(--ink); border-color: var(--input-edge); }
.portfolio-theme :is(.primary, .button, .case-intro .light) {
  background: var(--button-bg); color: var(--button-ink); border-color: var(--button-bg);
}
.portfolio-theme button:hover { background: var(--surface); color: var(--ink); }
.portfolio-theme :is(.primary:hover, .button:hover) { background: var(--button-hover); color: var(--button-ink); }
.portfolio-theme .dark .button.light { background: #ebeaec; color: #172126; }
.portfolio-theme .aura-proof .aura-promise { color: var(--ink); }
.portfolio-theme .quicklatch-proof { background: var(--halo-bg); }
.portfolio-theme :is(.quicklatch-proof h4, .quicklatch-proof .product-promise,
  .halo-showcase figcaption a, .quicklatch-description .text-link) { color: var(--halo-ink); }
.portfolio-theme :is(.quicklatch-proof .work-category, .quicklatch-description p,
  .halo-showcase figcaption) { color: var(--halo-muted); }
.portfolio-theme .workspace { background: var(--raised); }
.portfolio-theme input { background: var(--paper); color: var(--ink); border-color: var(--input-edge); }
.portfolio-theme input::placeholder { color: var(--muted); opacity: 1; }
.portfolio-theme input[aria-invalid=true] { border-color: var(--danger); }
.portfolio-theme .review-choice input { accent-color: var(--button-bg); }
.portfolio-theme .attention { border-color: var(--danger); }
.portfolio-theme :is(.try, .answer-example) { border-color: var(--input-edge); }
.portfolio-theme .track {
  background: repeating-linear-gradient(to right,var(--track-line) 0,var(--track-line) 1px,transparent 1px,transparent 25%);
  border-color: var(--track-line);
}
.portfolio-theme .bar { background: var(--button-bg); }
.portfolio-theme :focus-visible { outline-color: var(--accent); }
.portfolio-theme .halo-image:focus-visible { outline-color: var(--halo-ink); }
@media (max-width: 700px) {
  .portfolio-theme nav { gap: 12px; flex-wrap: wrap; padding-block: 12px; }
  .portfolio-theme .nav-actions { gap: 12px; }
  .portfolio-theme #appearance { font-size: 12px; padding: 8px; max-width: 88px; }
  .portfolio-theme nav a { font-size: 13px; }
}

/* Personal portfolio identity, shared with clumsycloud.com. */
.portfolio-theme body { font-family: "Inter", system-ui, sans-serif; }
.portfolio-theme .profile-intro h1 { font-weight: 600; letter-spacing: -.035em; text-wrap: balance; }
.portfolio-theme :is(.profile-intro .eyebrow, .work-heading .eyebrow) { color: var(--ink); }
.portfolio-theme .profile-intro .eyebrow { border-left: 3px solid var(--accent); padding-left: 12px; }
.portfolio-theme .leadership-proof { padding-bottom: 48px; }
.portfolio-theme .leadership-proof dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin: 0; padding: 28px 32px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); }
.portfolio-theme .leadership-proof dl > div + div { border-left: 1px solid var(--line); padding-left: 32px; }
.portfolio-theme .leadership-proof dt { font-size: 27px; font-weight: 600; letter-spacing: -.03em; line-height: 1.2; margin-bottom: 10px; }
.portfolio-theme .leadership-proof dd { color: var(--muted); font-size: 15px; line-height: 1.5; margin: 0; }
.portfolio-theme .quicklatch-proof { border: 1px solid var(--line); }
.portfolio-theme .quicklatch-proof h4 { text-wrap: balance; }
@media (max-width: 700px) {
  .portfolio-theme .leadership-proof { padding-bottom: 32px; }
  .portfolio-theme .leadership-proof dl { grid-template-columns: 1fr; gap: 20px; padding: 24px; }
  .portfolio-theme .leadership-proof dl > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 20px; }
  .portfolio-theme .leadership-proof dt { font-size: 25px; margin-bottom: 6px; }
}

.portfolio-theme :is(h1,h2,h3,h4,.leadership-proof dt) { font-family: "Inter Tight", "Inter", system-ui, sans-serif; }
.portfolio-theme :is(.button,.primary) { font-weight: 500; }
.portfolio-theme .dark { background: var(--surface); color: var(--ink); }
.portfolio-theme .dark .process p { color: var(--muted); }
