@font-face {
  font-family: Avondale;
  src: url("/fonts/avondale.subset.woff2");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: Avondale;
  src: url("/fonts/avondale-italic.subset.woff2");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: FFF Professional Bold Extended;
  src: url("/fonts/fff-professional-bold-extended.subset.woff2");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: ITC Cushing Std;
  src: url("/fonts/cushingstd-book.subset.woff2");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: ITC Cushing Std;
  src: url("/fonts/cushingstd-bookitalic.subset.woff2");
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: ITC Cushing Std;
  src: url("/fonts/cushingstd-heavy.subset.woff2");
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: ITC Cushing Std;
  src: url("/fonts/cushingstd-heavyitalic.subset.woff2");
  font-weight: bold;
  font-style: italic;
}

*, :before, :after {
  box-sizing: border-box;
}

html {
  -ms-text-size-adjust: none;
  text-size-adjust: none;
}

body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
  margin-bottom: 0;
}

ul[role="list"], ol[role="list"] {
  list-style: none;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

h1, h2, h3, h4, button, input, label {
  line-height: 1.1;
}

h1, h2, h3, h4 {
  text-wrap: balance;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

img, picture {
  max-width: 100%;
  display: block;
}

input, button, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

textarea:not([rows]) {
  min-height: 10em;
}

:target {
  scroll-margin-block: 5ex;
}

@media not all and (prefers-reduced-motion: no-preference) {
  * {
    scroll-behavior: auto !important;
    view-transition-name: none !important;
    background-attachment: scroll !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: -1ms !important;
  }
}

:root {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light dark;
  text-rendering: optimizelegibility;
  font-family: var(--font), serif;
  font-variant-numeric: oldstyle-nums proportional-nums;
  font-size-adjust: .479;
  background: var(--background);
  --transition-short: .3s;
  --transition-medium: .6s;
  --transition-long: 1s;
  --spring-easing: linear(0, .009, .035 2.1%, .141, .281 6.7%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1.004 83.8%, 1);
  --bounce-easing: linear(0, .004, .016, .035, .063, .098, .141 13.6%, .25, .391, .563, .765, 1, .891 40.9%, .848, .813, .785, .766, .754, .75, .754, .766, .785, .813, .848, .891 68.2%, 1 72.7%, .973, .953, .941, .938, .941, .953, .973, 1, .988, .984, .988, 1);
  --elastic-easing: linear(0, .218 2.1%, .862 6.5%, 1.114, 1.296 10.7%, 1.346, 1.37 12.9%, 1.373, 1.364 14.5%, 1.315 16.2%, 1.032 21.8%, .941 24%, .891 25.9%, .877, .869 27.8%, .87, .882 30.7%, .907 32.4%, .981 36.4%, 1.012 38.3%, 1.036, 1.046 42.7% 44.1%, 1.042 45.7%, .996 53.3%, .988, .984 57.5%, .985 60.7%, 1.001 68.1%, 1.006 72.2%, .998 86.7%, 1);
  --custom-easing: linear(0, .002, .01 3.6%, .034, .074 9.1%, .128 11.4%, .194 13.4%, .271 15%, .344 16.1%, .544, .66 20.6%, .717 22.4%, .765 24.6%, .808 27.3%, .845 30.4%, .883 35.1%, .916 40.6%, .942 47.2%, .963 55%, .979 64%, .991 74.4%, .998 86.4%, 1);
  --serif-font: "ITC Cushing Std";
  --game-font: "FFF Professional Bold Extended";
  --font: var(--serif-font);
  --background: var(--lightningcss-light, #009486) var(--lightningcss-dark, #006158);
  --main: var(--lightningcss-light, #f2eddc) var(--lightningcss-dark, #e4dab7);
  --text: hsl(from var(--background) h s 4%);
  --link: var(--lightningcss-light, #00665c) var(--lightningcss-dark, #004d45);
  --link-hover: var(--lightningcss-light, #d92626) var(--lightningcss-dark, #ad1f1f);
  --link-active: var(--lightningcss-light, #f50) var(--lightningcss-dark, #c40);
  --link-visited: hsl(from var(--link) 270deg s 25%);
  --accent-1: #ffbc24;
  --accent-2: #008cdb;
  --frame: #fafafa;
  --metal-color-1: #d9b226;
  --metal-color-2: hsl(from var(--metal-color-1) h 80% 60%);
  --metal-color-3: hsl(from var(--metal-color-2) h 90% 70%);
  --metal-color-4: hsl(from var(--metal-color-3) 40deg 95% 80%);
  --metal-color-5: hsl(from var(--main) h 100% 98%);
  --metal-color-6: #570f50;
  --metal-color-7: hsl(from var(--metal-color-6) h 80% 20%);
  --metal-color-8: hsl(from var(--metal-color-7) h 90% 40%);
  --metal-color-9: hsl(from var(--metal-color-8) 150deg 100% 60%);
  --metal-color-10: hsl(from var(--metal-color-9) 140deg 100% 70%);
  --raise-color-1: hsl(from var(--text) h 54% 10%);
  --raise-color-2: hsl(from var(--raise-color-1) h s 15%);
  --raise-color-3: hsl(from var(--raise-color-2) h s 20%);
  --raise-color-4: hsl(from var(--raise-color-3) h s 25%);
  --raise-color-5: hsl(from var(--raise-color-4) h s 30%);
  --raise-color-6: hsl(from var(--text) h s l / .4);
  --caret: hsl(from var(--main) h 95% 50%);
  --caret-duration: 1s;
  --caret-width: min(.125em, .25rem);
  --shadow: .2rem .2rem .3rem var(--text);
  padding: max(.5rem, min(1rem, 2vw));
  font-size: max(1.1rem, min(3vw + .5rem, 1.7rem));
}

@media (prefers-color-scheme: dark) {
  :root {
    --lightningcss-light: ;
    --lightningcss-dark: initial;
  }
}

.sr-only {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

body {
  font-family: var(--font), serif;
}

body:before, body:after, body {
  border: 1px solid hsl(from var(--text) h s l / .4);
  background: var(--main);
  box-shadow: var(--shadow);
}

body {
  --padding: clamp(1rem, 5vw, 4rem);
  padding: 0 var(--padding) var(--padding);
  max-width: 42em;
  color: var(--text);
  margin: 0 auto;
  line-height: 1.55;
}

@supports ((-ms-hyphens: auto) or (hyphens: auto)) {
  @media (min-width: 35em) {
    body {
      text-align: justify;
      -ms-hyphens: auto;
      hyphens: auto;
    }
  }
}

h1, h2 {
  font-family: var(--font), sans-serif;
}

h1 {
  --font: var(--game-font);
  text-align: center;
  margin: 1rem auto 0;
  font-size: 3rem;
  line-height: 1;
}

h1:after, h2:after {
  content: "";
  box-sizing: content-box;
  border-right: var(--caret-width) solid transparent;
}

:target:after {
  animation: var(--caret-duration) infinite normal forwards caret;
}

body:not(:has(:target)) h1:after {
  animation: var(--caret-duration) infinite normal forwards caret;
}

@media (min-width: 50em) {
  h1 {
    font-size: 4rem;
  }
}

h2 {
  --font: var(--game-font);
  text-indent: .5rem;
  max-width: 7em;
  transition: color var(--transition-short) ease-out, max-width var(--transition-medium) var(--custom-easing);
  border-bottom: .15em solid;
  -ms-flex-flow: row;
  flex-flow: row;
  gap: .25ch;
  margin: 1.5rlh 0 .5rlh -.5rem;
  padding-bottom: .25rem;
  font-size: 1.5rem;
  display: -ms-flexbox;
  display: flex;
}

h2:target {
  color: var(--link);
  max-width: 100%;
}

h2 + p {
  margin-top: 0;
}

figure {
  box-sizing: border-box;
  float: right;
  width: max-content;
  margin: -.25rem calc(var(--padding) * -1.15) 0 1rem;
  box-shadow: var(--shadow);
  background: var(--frame);
  transform-origin: 0 0;
  -ms-flex-flow: column;
  flex-flow: column;
  -ms-flex-align: center;
  align-items: center;
  padding: .25rem .25rem 0;
  display: -ms-inline-flexbox;
  display: inline-flex;
  position: relative;
  transform: rotateZ(-2deg)rotateX(-7deg)rotateY(2deg)scale(1.05);
}

figure:after {
  content: "";
  z-index: 2;
  aspect-ratio: 358 / 800;
  background-image: url("/assets/images/big-paper-clip-cut.svg");
  background-repeat: no-repeat;
  background-size: contain;
  width: 1rem;
  display: block;
  position: absolute;
  top: 0;
  left: .5rem;
  transform: translateY(-22.375%)rotateZ(2deg);
}

figure > picture, figure > picture > img {
  object-fit: contain;
  aspect-ratio: 1;
  max-width: max(5rem, min(9rem, 12vw));
  max-height: 100%;
}

figure > picture > img {
  max-height: min(100%, max-content);
}

figure > picture {
  position: relative;
}

figure > picture:after {
  content: "";
  background: var(--main);
  opacity: .5;
  mix-blend-mode: color;
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

figcaption {
  --font: Avondale;
  font-family: var(--font), cursive;
  letter-spacing: .05em;
  width: max-content;
  max-width: 5rem;
  padding: .1rem 0 0 .25rem;
  line-height: 1.2;
}

abbr {
  font-feature-settings: "c2sc";
  letter-spacing: .05em;
  margin-right: -.025em;
}

a {
  transition: color var(--transition-short) ease-out, text-decoration-color var(--transition-short) ease-out, text-decoration-thickness var(--transition-short) ease-out, text-underline-offset var(--transition-short) ease-out;
}

a:not([class]), .link {
  color: var(--link);
  text-decoration-color: hsl(from currentColor h s l / .75);
  text-underline-offset: .1em;
}

a:not([class]):visited {
  color: var(--link-visited);
}

a:not([class]):hover, a:not([class]):focus, .link:hover, .link:focus {
  color: var(--link-hover);
  text-decoration-thickness: .1em;
}

a:not([class]):active, .link:active {
  color: var(--link-active);
  text-underline-offset: .075em;
  text-decoration-color: currentColor;
  text-decoration-thickness: .15em;
}

h1 + p {
  margin-top: 0;
}

p, li {
  orphans: 2;
}

body > * + :not(:is(figure, h2, h2 + *, footer)), li + li {
  margin-top: .5lh;
}

ul {
  margin: 1rem 0;
  padding: 0;
}

.metal {
  background: linear-gradient(in hsl, var(--metal-color-1) 15%, var(--metal-color-2) 25%, var(--metal-color-3) 35%, var(--metal-color-4) 45%, var(--metal-color-5) 50%, var(--metal-color-6) 52%, var(--metal-color-7) 60%, var(--metal-color-8) 70%, var(--metal-color-9) 80%, var(--metal-color-10) 85%);
  color: rgba(0, 0, 0, 0);
  -webkit-text-stroke: .02em hsl(from var(--text) h s l / .5);
  background-clip: text;
}

.raise {
  --x: 1px;
  --y: 2px;
  --sd: 0;
  filter: drop-shadow(var(--x) var(--y) var(--sd) var(--raise-color-1)) drop-shadow(var(--x) var(--y) var(--sd) var(--raise-color-2)) drop-shadow(var(--x) var(--y) var(--sd) var(--raise-color-3)) drop-shadow(var(--x) var(--y) var(--sd) var(--raise-color-4)) drop-shadow(var(--x) var(--y) var(--sd) var(--raise-color-5)) drop-shadow(0 0 calc(var(--y) * 3) var(--raise-color-6));
}

.header {
  clear: both;
  margin-top: 1em;
}

@media (min-width: 20em) {
  .header {
    margin-top: 0;
  }
}

@media (min-width: 50em) {
  .header {
    clear: none;
  }
}

.links {
  --font: var(--game-font);
  max-width: max-content;
  font-family: var(--font), cursive;
  -ms-flex-flow: column;
  flex-flow: column;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 1ch;
  margin: 0 auto;
  padding: 0;
  font-size: 1.2rem;
  line-height: 1;
  list-style: none;
  display: -ms-flexbox;
  display: flex;
}

.item {
  margin: 0;
}

@media (min-width: 20em) {
  .links {
    -ms-flex-flow: wrap;
    flex-flow: wrap;
  }
}

@media (min-width: 40em) {
  .links {
    -ms-flex-flow: wrap;
    flex-flow: wrap;
    gap: 0;
  }

  .item + .item:before {
    content: "-";
    margin: 0 1ch 0 .8ch;
    font-size: 1rem;
    display: inline-block;
  }
}

.link, .link:hover, .link:focus, .link:active {
  text-underline-offset: .2em;
}

.link {
  text-decoration-thickness: .1em;
}

@keyframes caret {
  25%, 75% {
    border-right-color: rgba(0, 0, 0, 0);
  }

  50% {
    border-right-color: var(--caret);
  }
}

h3, summary {
  --font: var(--game-font);
  font-family: var(--font), sans-serif;
  font-weight: bold;
}

h3 {
  text-align: center;
  font-size: 1.5rem;
}

summary {
  --triangle: .2lh;
  --padded-triangle: calc(var(--triangle)  + .5ch);
  cursor: pointer;
  text-transform: uppercase;
  max-width: max-content;
  transition: color var(--transition-medium);
  padding-right: var(--padded-triangle);
  margin: 0 auto;
  font-size: 1.2rem;
  font-weight: bold;
  display: block;
  position: relative;
}

summary:hover, summary:focus {
  color: var(--link-hover);
}

summary:after {
  content: "";
  box-sizing: content-box;
  border-top: var(--triangle) solid transparent;
  border-bottom: var(--triangle) solid transparent;
  border-left: var(--triangle) solid currentColor;
  width: 0;
  height: 0;
  transition: transform var(--transition-long) var(--spring-easing);
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

[open] > summary {
  color: var(--link);
}

[open] > summary:after {
  transform: translateY(-50%)rotateZ(90deg);
}

.skills {
  text-align: center;
  max-width: max(80%, 40rem);
  margin: 1rem auto 0;
  font-size: .9em;
  line-height: 1.4;
}

.skill-list-outer, .skill-list {
  margin: 0;
}

.skills > .skill-list-outer {
  margin-top: 1rem;
}

.skill-list-outer {
  text-align: left;
  grid-template-columns: auto;
  gap: 2rem 1.25rem;
  margin: .5rem 0 0 .75rem;
  padding: 0 1rem;
  line-height: 1.2;
  display: grid;
}

@media (min-width: 40em) {
  .skill-list-outer {
    grid-template-columns: auto 1fr;
  }
}

.skill-list {
  -ms-flex-flow: wrap;
  flex-flow: wrap;
  grid-column: 2 / 2;
  gap: 2.5ch;
  list-style: none;
  display: -ms-flexbox;
  display: flex;
}

.skill, .skill-group {
  margin: 0;
}

.group-label {
  text-transform: uppercase;
  text-align: center;
  background: none;
  grid-column: 1 / 1;
  margin-bottom: .5rem;
  font-size: .9em;
}

@media (min-width: 40em) {
  .group-label {
    text-align: right;
  }
}

.skill {
  -ms-flex-flow: row;
  flex-flow: row;
  -ms-flex-align: center;
  align-items: center;
  gap: .5ch;
  display: -ms-flexbox;
  display: flex;
}

.skill:before {
  content: "☑";
  content: "";
  background-image: url("/assets/images/check.png");
  background-size: contain;
  width: 1em;
  height: 1em;
}

.skill-group {
  grid-template-columns: subgrid;
  grid-column: 1 / -1;
  list-style: none;
  display: grid;
}

footer {
  text-align: right;
  -ms-hyphens: none;
  hyphens: none;
  border-top: 1px solid;
  margin-top: 2rem;
  padding: 1rem 0 0;
  font-size: .8rem;
  line-height: 1.4;
}
