:root {
  --main:#eaeaea;
  --surface:#fff;
  --border:#c1c1c1;
  --text:#16191c;
  --muted:#4b5156;
  --preview:rgba(251,249,243,.94);
  --shadow:#f0ead6;
  --accent:#267b8b;
  --button:#171b20;
  --button-text:#fff;
  --board:#f6f4ed;
  --graphic:#e8edf0;
  --graphic-ink:#273c4b;
  --focus:#147588;
  --soft-shadow:0 2px 7px rgba(0,0,0,.12);
  color-scheme:light;
}
html[data-theme="blue"] {
  --main:#15202b;
  --surface:#192734;
  --border:#425764;
  --text:#f5f7f8;
  --muted:#c1cbd2;
  --preview:rgba(25,39,52,.97);
  --shadow:#101b25;
  --accent:#83cbd8;
  --button:#78c6d4;
  --button-text:#10212b;
  --board:#203342;
  --graphic:#243c4b;
  --graphic-ink:#d6edf1;
  --focus:#98e1ee;
  --soft-shadow:0 2px 8px rgba(0,0,0,.22);
  color-scheme:dark;
}
html[data-theme="green"] {
  --main:#515c49;
  --surface:#414c3b;
  --border:#83917a;
  --text:#f8faf5;
  --muted:#dce3d6;
  --preview:rgba(65,76,59,.97);
  --shadow:#343e2f;
  --accent:#d2e3b9;
  --button:#d9e6c4;
  --button-text:#273020;
  --board:#4b5844;
  --graphic:#58674f;
  --graphic-ink:#f0f6e8;
  --focus:#eef4b3;
  --soft-shadow:0 2px 8px rgba(0,0,0,.18);
  color-scheme:dark;
}
html[data-theme="purple"] {
  --main:#46344e;
  --surface:#382a3f;
  --border:#886f91;
  --text:#fbf7fd;
  --muted:#e0d2e4;
  --preview:rgba(56,42,63,.97);
  --shadow:#2b2030;
  --accent:#e4bfe8;
  --button:#dfbce4;
  --button-text:#322037;
  --board:#48354f;
  --graphic:#583e60;
  --graphic-ink:#f3e4f6;
  --focus:#f4c4f9;
  --soft-shadow:0 2px 8px rgba(0,0,0,.22);
  color-scheme:dark;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:28px;
}
body {
  margin:0;
  background:var(--main);
  color:var(--text);
  font-family:'Roboto Mono',monospace;
  font-size:14px;
  line-height:1.75;
}
h1,h2,h3,h4 {
  font-family:'Russo One',sans-serif;
  font-weight:400;
  line-height:1.28;
  color:var(--text);
}
h1 {
  font-size:56px;
  letter-spacing:-1.2px;
}
h2 {
  font-size:28px;
  margin:0 0 25px;
}
h3 {
  font-size:21px;
  margin:0 0 16px;
}
h4 {
  font-size:16px;
  margin:20px 0 9px;
}
p {
  color:var(--muted);
  margin:0 0 20px;
}
a {
  color:var(--accent);
  text-underline-offset:5px;
  text-decoration-thickness:1px;
}
a:hover {
  text-decoration:underline;
}
button {
  font:inherit;
}
a,button,summary {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:5px;
}
button,summary {
  cursor:pointer;
}
img {
  max-width:100%;
  display:block;
}
hr {
  height:1px;
  border:0;
  background:var(--border);
  margin:29px 0;
}
.container {
  width:min(1200px,90%);
  margin-inline:auto;
}
.section-primary {
  background:var(--main);
  border-bottom:1px solid var(--border);
}
.section-secondary {
  background:var(--surface);
  border-bottom:1px solid var(--border);
}
.section-space {
  padding-block:76px;
}
.skip-link {
  position:absolute;
  top:8px;
  left:8px;
  padding:10px 16px;
  background:var(--surface);
  transform:translateY(-150%);
  z-index:5;
}
.skip-link:focus {
  transform:translateY(0);
}
.greeting {
  text-align:center;
  padding:48px 0 40px;
}
.greeting h1 {
  margin:0 0 16px;
}
.greeting p {
  margin:0;
  font-size:13px;
  letter-spacing:.4px;
}
.intro-window {
  border:1px solid var(--border);
  border-radius:5px 5px 0 0;
  background:var(--surface);
  box-shadow:var(--soft-shadow);
}
.window-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:48px;
  padding:12px 18px;
  background:var(--main);
  border-bottom:1px solid var(--border);
  border-radius:5px 5px 0 0;
}
.window-dots {
  display:flex;
  gap:9px;
}
.window-dots span {
  width:14px;
  height:14px;
  border-radius:50%;
  box-shadow:0 1px 3px #0002;
}
.window-dots span:nth-child(1) {
  background:#fc6058;
}
.window-dots span:nth-child(2) {
  background:#fec02f;
}
.window-dots span:nth-child(3) {
  background:#2aca3e;
}
nav {
  display:flex;
  gap:27px;
  flex-wrap:wrap;
}
nav a {
  color:var(--text);
  text-decoration:none;
  font-size:13px;
  font-weight:500;
  display:inline-flex;
  align-items:center;
  min-height:28px;
}
.intro-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
  padding:56px;
}
.portrait-column {
  text-align:center;
}
.portrait {
  width:208px;
  height:208px;
  object-fit:cover;
  object-position:center 32%;
  border:2px solid var(--border);
  margin:0 auto 20px;
}
.theme-title {
  font-size:18px;
  margin:0 0 22px;
}
.theme-options {
  display:flex;
  justify-content:center;
  gap:13px;
}
.theme-dot {
  width:35px;
  height:35px;
  border:2px solid var(--text);
  padding:0;
  border-radius:50%;
  box-shadow:0 2px 4px #0003;
  position:relative;
  display:grid;
  place-items:center;
  transition:transform .15s;
}
.theme-dot:hover {
  transform:translateY(-3px);
}
.theme-dot.light {
  background:#fff;
  color:#252a30;
}
.theme-dot.blue {
  background:#192734;
  color:#fff;
}
.theme-dot.green {
  background:#78866b;
  color:#fff;
}
.theme-dot.purple {
  background:#7e4c74;
  color:#fff;
}
.theme-dot span {
  opacity:0;
  font-size:18px;
}
.theme-dot[aria-pressed="true"] span {
  opacity:1;
}
.theme-dot[aria-pressed="true"] {
  outline:1px solid var(--muted);
  outline-offset:4px;
}
.theme-note {
  font-size:10px;
  line-height:1.7;
  margin:20px 0 0;
  font-style:italic;
}
.intro-copy {
  padding:12px 24px 0 0;
  max-width:470px;
  width:100%;
  justify-self:center;
}
.preview-shadow {
  padding:28px 0 0 28px;
  background:var(--shadow);
  margin:0 28px 0 0;
}
.preview-panel {
  background:var(--preview);
  border:1.5px solid var(--accent);
  position:relative;
  width:calc(100% + 28px);
  padding:32px;
  min-height:260px;
}
.preview-panel h2 {
  margin:0 0 24px;
  font-size:28px;
}
.preview-panel p {
  font-size:15px;
  line-height:1.8;
  margin-bottom:24px;
}
.corner {
  width:8px;
  height:8px;
  position:absolute;
  border:1.5px solid var(--accent);
  background:var(--surface);
  border-radius:50%;
}
.top-left {
  top:-5px;
  left:-5px;
}
.top-right {
  top:-5px;
  right:-5px;
}
.bottom-left {
  bottom:-5px;
  left:-5px;
}
.bottom-right {
  bottom:-5px;
  right:-5px;
}
.text-link {
  font-weight:500;
  font-size:13px;
  text-decoration:none;
}
.text-link span {
  margin-left:6px;
}
.role-line {
  font-size:11px;
  line-height:1.8;
  margin:27px 0 0 29px;
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
}
.about-copy h2 {
  font-size:26px;
  margin-bottom:28px;
}
.about-copy>p {
  max-width:58ch;
  line-height:1.85;
}
.small-heading {
  font-size:19px;
  text-transform:uppercase;
}
.skills-box {
  background:var(--shadow);
  padding:22px 24px;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:16px;
}
.skills-box ul {
  list-style:none;
  padding:0;
  margin:0;
  color:var(--text);
  font-size:12px;
  line-height:2.1;
}
.background-link {
  display:inline-block;
  margin-top:22px;
}
.about-copy .foundation-skills {
  font-size:12px;
  margin:20px 0 0;
}
.foundation-skills strong {
  color:var(--text);
  font-weight:500;
}
.pricing-board {
  background:var(--board);
  border:1px solid var(--border);
  padding:30px 32px 22px;
}
.board-caption {
  font-size:10px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:23px;
}
.status-dot {
  width:7px;
  height:7px;
  background:var(--accent);
  border-radius:50%;
  flex:none;
}
.pricing-board h3 {
  font-size:24px;
  margin-bottom:24px;
}
.practice-step {
  display:flex;
  gap:19px;
  position:relative;
  padding:0 0 24px;
}
.practice-step:last-child {
  padding-bottom:8px;
}
.practice-step:not(:last-child):before {
  content:'';
  position:absolute;
  left:4px;
  top:12px;
  bottom:-2px;
  border-left:1px solid var(--border);
}
.step-marker {
  border:1px solid var(--accent);
  border-radius:50%;
  width:9px;
  height:9px;
  flex:none;
  margin-top:6px;
  z-index:1;
  background:var(--board);
}
.practice-step h4 {
  margin:0 0 9px;
  font-size:16px;
}
.practice-step p {
  font-size:13px;
  line-height:1.8;
  margin:0;
}
.credential {
  display:flex;
  gap:18px;
  margin-top:26px;
  padding:23px 0 0;
  border-top:1px solid var(--border);
}
.credential-mark {
  display:grid;
  place-items:center;
  border:1px solid var(--accent);
  width:48px;
  height:48px;
  flex:none;
  color:var(--accent);
  font-size:18px;
}
.credential h3 {
  font-size:17px;
  line-height:1.4;
  margin:0 0 9px;
}
.credential p {
  font-size:10px;
  margin:0 0 5px;
}
.credential .credential-note {
  font-size:11px;
  color:var(--accent);
}
.section-heading {
  text-align:center;
  max-width:780px;
  margin:0 auto 44px;
}
.section-heading h2 {
  font-size:30px;
  margin-bottom:16px;
}
.section-heading p {
  font-size:13px;
  line-height:1.8;
  margin:0;
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:28px;
  row-gap:0;
  align-items:stretch;
}
.project-card {
  display:grid;
  grid-template-rows:subgrid;
  grid-row:span 5;
  min-width:0;
  background:var(--surface);
  border:1px solid color-mix(in srgb,var(--border) 76%,var(--surface));
  box-shadow:0 3px 12px #00000008;
  transition:border-color .18s ease;
}
.project-card:hover,.project-card:focus-within {
  border-color:var(--accent);
}
.project-visual {
  height:224px;
  padding:24px 26px;
  overflow:hidden;
  background:var(--graphic);
  color:var(--graphic-ink);
  border-bottom:1px solid color-mix(in srgb,var(--border) 65%,var(--graphic));
}
.visual-caption {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.1px;
  margin-bottom:24px;
  line-height:1.6;
}
.project-copy {
  display:grid;
  grid-template-rows:subgrid;
  grid-row:span 4;
  padding:28px 26px 0;
  min-width:0;
}
.project-category {
  font-size:10px;
  line-height:1.6;
  color:var(--accent);
  margin:0 0 14px;
}
.project-copy h3 {
  font-size:21px;
  line-height:1.4;
  margin:0 0 18px;
  text-wrap:balance;
}
.project-copy>p:not(.project-category) {
  font-size:13px;
  line-height:1.85;
  margin:0 0 26px;
}
.project-copy>details {
  border-top:1px solid color-mix(in srgb,var(--border) 65%,var(--surface));
  padding:8px 0 12px;
}
.project-copy summary {
  min-height:48px;
  font-size:12px;
}
.project-copy summary:hover {
  color:var(--text);
}
summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  color:var(--accent);
  font-size:12px;
  font-weight:500;
}
summary::-webkit-details-marker {
  display:none;
}
summary>span {
  font-size:19px;
  line-height:1;
  transition:transform .15s;
}
details[open]>summary>span {
  transform:rotate(45deg);
}
.project-detail {
  padding:0 0 12px;
}
.project-detail h4:first-child {
  margin-top:12px;
}
.project-detail h4 {
  font-size:15px;
  line-height:1.5;
  margin-top:24px;
  margin-bottom:10px;
}
.project-detail p {
  font-size:13px;
  line-height:1.85;
  margin-bottom:18px;
}
.project-detail p:last-child {
  margin-bottom:0;
}
.simulation-window {
  border:1px solid currentColor;
  max-width:255px;
  margin:auto;
  background:var(--surface);
  box-shadow:8px 8px 0 #00000009;
}
.mini-bar {
  height:16px;
  padding-left:7px;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:4px;
}
.mini-bar span {
  width:4px;
  height:4px;
  background:var(--muted);
  border-radius:50%;
}
.simulation-body {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px;
  padding:17px 15px;
}
.simulation-input {
  width:65px;
}
.simulation-input i {
  display:block;
  height:6px;
  background:var(--border);
  margin:0 0 7px;
}
.simulation-input i:nth-child(2) {
  width:80%;
}
.simulation-input i:last-child {
  width:62%;
  margin:0;
}
.flow-arrow {
  color:var(--accent);
  font-size:24px;
}
.simulation-output {
  height:39px;
  display:flex;
  align-items:end;
  gap:7px;
}
.simulation-output i {
  width:13px;
  background:var(--accent);
  height:20px;
  opacity:.5;
}
.simulation-output i:nth-child(2) {
  height:30px;
  opacity:.75;
}
.simulation-output i:nth-child(3) {
  height:39px;
  opacity:1;
}
.visual-footer {
  padding:8px 5px;
  border-top:1px solid var(--border);
  font-size:9px;
  text-align:center;
  color:var(--muted);
}
.visual-footer span {
  padding:0 4px;
  color:var(--accent);
}
.orchestration-visual .visual-caption {
  margin-bottom:24px;
}
.flow-source,.flow-destination {
  border:1px solid currentColor;
  text-align:center;
  font-size:10px;
  padding:4px;
  max-width:153px;
  margin:auto;
  background:var(--surface);
}
.flow-stem {
  height:13px;
  width:1px;
  background:currentColor;
  margin:auto;
}
.parallel-workers {
  display:flex;
  justify-content:center;
  gap:22px;
  position:relative;
}
.parallel-workers:before {
  content:'';
  position:absolute;
  top:-1px;
  width:110px;
  border-top:1px solid currentColor;
}
.parallel-workers span {
  position:relative;
  background:var(--surface);
  border:1px solid var(--accent);
  padding:6px 11px;
  font-size:9px;
  text-align:center;
  line-height:1.35;
}
.flow-join {
  height:13px;
  width:110px;
  border:1px solid currentColor;
  border-top:0;
  margin:auto;
}
.flow-destination {
  margin-top:-1px;
}
.flow-destination span {
  color:var(--accent);
}
.migration-platforms {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px;
}
.platform-source,.platform-target {
  font-size:12px;
  border:1px solid currentColor;
  width:93px;
  min-height:57px;
  padding:11px;
  display:grid;
  place-items:center;
  text-align:center;
  line-height:1.4;
}
.platform-target {
  background:var(--surface);
  border:1.5px solid var(--accent);
  color:var(--accent);
  font-weight:500;
}
.migration-checks {
  display:grid;
  grid-template-columns:1fr;
  justify-items:center;
  gap:2px;
  font-size:9px;
  line-height:1.6;
  margin-top:14px;
}
.migration-checks span {
  white-space:nowrap;
}
.experience-list {
  max-width:960px;
  margin:auto;
}
.personal-project-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
}
.personal-project-card {
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
  background:var(--surface);
  padding:28px;
}
.personal-project-card h3 {
  font-size:21px;
  line-height:1.4;
  margin:0 0 18px;
}
.personal-project-card>p:not(.project-category) {
  font-size:13px;
  line-height:1.85;
  margin:0 0 24px;
}
.personal-project-card>a {
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid var(--border);
}
.project-page {
  max-width:800px;
  margin:auto;
}
.project-page h1 {
  font-size:clamp(30px,5vw,46px);
  margin-top:32px;
}
.project-page p,.project-page li {
  font-size:14px;
  line-height:1.85;
}
.project-page img {
  max-width:100%;
  height:auto;
  border:1px solid var(--border);
}
.earlier-links {
  display:flex;
  flex-wrap:wrap;
  gap:16px 24px;
  margin-top:22px;
  font-size:11px;
  line-height:1.7;
}
.experience-row {
  display:grid;
  grid-template-columns:215px minmax(0,1fr);
  gap:48px;
  padding:38px 0;
  border-top:1px solid var(--border);
}
.experience-date {
  font-size:11px;
  color:var(--accent);
  padding-top:5px;
}
.experience-copy h3 {
  font-size:21px;
  margin:0 0 8px;
}
.employer {
  font-size:12px;
  font-weight:500;
  color:var(--text);
  margin-bottom:19px;
}
.experience-copy>p:not(.employer) {
  font-size:13px;
  line-height:1.85;
  margin-bottom:14px;
}
.experience-copy>p:last-child {
  margin-bottom:0;
}
.experience-highlights {
  margin:18px 0 0;
  padding-left:20px;
  color:var(--muted);
  font-size:13px;
  line-height:1.85;
}
.experience-highlights li {
  padding-left:4px;
}
.experience-highlights li+li {
  margin-top:14px;
}
.experience-highlights li::marker {
  color:var(--accent);
}
.experience-result {
  background:var(--shadow);
  border-left:2px solid var(--accent);
  margin-top:23px;
  padding:18px 22px;
}
.experience-result .result-label {
  font-size:10px;
  text-transform:uppercase;
  color:var(--text);
  margin:0 0 10px;
}
.experience-result .result-value {
  color:var(--text);
  font-size:24px;
  font-weight:500;
  letter-spacing:-.8px;
  line-height:1.4;
  margin:0 0 12px;
}
.result-value span {
  color:var(--accent);
  padding:0 6px;
}
.experience-result>p:last-child {
  font-size:11px;
  line-height:1.8;
  margin:0;
}
.education-row {
  max-width:960px;
  margin:28px auto 0;
  border-top:1px solid var(--border);
  padding-top:40px;
  display:grid;
  grid-template-columns:215px minmax(0,1fr);
  gap:48px;
}
.education-row h2 {
  font-size:24px;
}
.education-row h3 {
  font-size:20px;
  margin-bottom:13px;
}
.education-row p {
  font-size:12px;
  margin-bottom:13px;
}
.education-date {
  color:var(--accent);
}
.education-row details {
  border-top:1px solid var(--border);
  margin-top:23px;
  padding-top:18px;
}
.education-detail h4 {
  font-size:15px;
}
.education-detail p {
  line-height:1.85;
}
.contact-panel {
  max-width:640px;
  margin:auto;
  border:1px solid var(--border);
  border-radius:4px;
  background:var(--surface);
  padding:36px;
  box-shadow:var(--soft-shadow);
}
.contact-panel>p {
  font-size:13px;
}
.contact-panel .contact-label {
  color:var(--text);
  font-size:15px;
  font-weight:500;
  margin-bottom:18px;
}
.contact-identity {
  display:flex;
  flex-direction:column;
  gap:7px;
  border-top:1px solid var(--border);
  padding:22px 0 25px;
  font-size:12px;
}
.contact-identity strong {
  font-weight:500;
}
.contact-identity span {
  font-size:11px;
  color:var(--muted);
}
.primary-button {
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:var(--button);
  color:var(--button-text);
  padding:13px 18px;
  font-size:13px;
  text-decoration:none;
  border:1px solid var(--button);
  font-weight:500;
}
.primary-button:hover {
  filter:brightness(1.12);
  text-decoration:none;
}
.primary-button span {
  font-size:20px;
}
.resume-downloads {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px 20px;
  margin-top:24px;
}
.resume-download {
  display:inline-flex;
  gap:18px;
  min-height:46px;
}
.contact-panel .resume-download {
  display:flex;
  margin-top:12px;
}
.footer-content {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-block:24px;
  font-size:10px;
}
.footer-content p {
  margin:0;
}
.footer-content a {
  text-decoration:none;
}
@media(min-width:801px) {
  /* Keep closed cards aligned, but let an expanded project grow independently. */
  .project-grid:has(details[open]) {
    align-items:start;
  }
  .project-grid:has(details[open]) .project-card,
  .project-grid:has(details[open]) .project-copy {
    display:block;
    grid-row:auto;
  }
  .project-grid:has(details[open]) .project-copy h3 {
    min-height:2.8em;
  }
  .project-grid:has(details[open]) .project-copy>p:not(.project-category) {
    min-height:9.25em;
  }
}
@media(min-width:1600px) {
  .container {
    width:1200px;
  }
}
@media(max-width:1050px) {
  .intro-grid {
    padding-inline:28px;
  }
  .intro-copy {
    padding-left:0;
    padding-right:10px;
  }
  .about-grid {
    gap:45px;
  }
  .project-grid {
    column-gap:20px;
  }
  .project-copy {
    padding:24px 22px 0;
  }
  .project-visual {
    padding-inline:20px;
  }
  .experience-row,.education-row {
    grid-template-columns:190px minmax(0,1fr);
    gap:30px;
  }
}
@media(max-width:800px) {
  .personal-project-grid {
    grid-template-columns:1fr;
    max-width:560px;
    margin-inline:auto;
  }
  h1 {
    font-size:43px;
  }
  .intro-grid {
    grid-template-columns:1fr;
    gap:40px;
    padding:38px 24px 42px;
  }
  .intro-copy {
    max-width:410px;
    padding:0 0 0 0;
  }
  .portrait {
    width:200px;
    height:200px;
  }
  .role-line {
    margin-left:28px;
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:45px;
  }
  .about-copy {
    max-width:640px;
  }
  .project-grid {
    grid-template-columns:1fr;
    max-width:560px;
    margin-inline:auto;
    gap:32px;
  }
  .project-card {
    display:block;
    grid-row:auto;
  }
  .project-visual {
    height:224px;
    padding:24px 32px;
  }
  .project-copy {
    display:block;
    grid-row:auto;
    padding:28px 28px 0;
  }
  .project-copy h3 {
    text-wrap:pretty;
    max-width:25ch;
  }
  .project-copy>p:not(.project-category) {
    max-width:52ch;
  }
  .simulation-window {
    max-width:280px;
  }
  .project-detail {
    max-width:none;
  }
  .section-space {
    padding-block:56px;
  }
  .experience-row,.education-row {
    grid-template-columns:155px minmax(0,1fr);
    gap:25px;
  }
  .experience-result .result-value {
    font-size:21px;
  }
  .practice-column {
    max-width:640px;
  }
  .greeting {
    padding:40px 0 32px;
  }
}
@media(max-width:540px) {
  .container {
    width:92%;
  }
  body {
    font-size:13px;
  }
  .greeting {
    padding:31px 0 28px;
  }
  .greeting h1 {
    font-size:34px;
    letter-spacing:-.7px;
    margin-bottom:13px;
  }
  .greeting p {
    font-size:9px;
    letter-spacing:0;
  }
  .window-bar {
    padding:10px 12px;
    gap:14px;
    flex-wrap:wrap;
  }
  .window-dots {
    gap:5px;
  }
  .window-dots span {
    width:10px;
    height:10px;
  }
  nav {
    gap:14px;
  }
  nav a {
    font-size:10px;
  }
  .intro-grid {
    padding:36px 22px 40px;
    gap:40px;
  }
  .intro-copy {
    padding:0 4px;
  }
  .preview-shadow {
    padding:20px 0 0 20px;
    margin-right:12px;
  }
  .preview-panel {
    width:calc(100% + 12px);
    padding:24px 20px;
    min-height:0;
  }
  .preview-panel h2 {
    font-size:26px;
    margin-bottom:20px;
  }
  .preview-panel p {
    font-size:13px;
    line-height:1.85;
  }
  .role-line {
    font-size:10px;
    margin:22px 0 0 20px;
  }
  .theme-note {
    font-size:10px;
  }
  .theme-title {
    font-size:18px;
  }
  .about-copy h2 {
    font-size:25px;
  }
  .skills-box {
    padding:17px;
    gap:10px;
  }
  .skills-box ul {
    font-size:11px;
  }
  .pricing-board {
    padding:24px;
  }
  .board-caption {
    font-size:9px;
  }
  .pricing-board h3 {
    font-size:23px;
  }
  .credential {
    gap:13px;
  }
  .credential h3 {
    font-size:16px;
  }
  .credential p {
    font-size:9px;
  }
  .section-heading h2 {
    font-size:28px;
  }
  .section-heading p {
    font-size:12px;
  }
  .section-heading {
    margin-bottom:32px;
  }
  .project-copy {
    padding:25px 23px 0;
  }
  .project-copy h3 {
    font-size:21px;
  }
  .project-copy>p:not(.project-category) {
    font-size:13px;
  }
  .project-visual {
    padding-inline:24px;
  }
  .project-grid {
    gap:28px;
  }
  .experience-row,.education-row {
    grid-template-columns:1fr;
    gap:13px;
    padding-top:25px;
    padding-bottom:25px;
  }
  .experience-date {
    padding-top:0;
  }
  .experience-copy h3 {
    font-size:20px;
  }
  .experience-copy>p:not(.employer),.experience-highlights {
    font-size:12px;
  }
  .experience-result {
    padding:16px;
  }
  .experience-result .result-value {
    font-size:20px;
    letter-spacing:-1px;
  }
  .result-value span {
    padding:0 2px;
  }
  .education-row {
    margin-top:10px;
  }
  .education-row h2 {
    margin-bottom:5px;
    font-size:26px;
  }
  .education-row h3 {
    font-size:19px;
  }
  .contact-panel {
    padding:24px;
  }
  .contact-panel>p {
    font-size:12px;
  }
  .contact-identity span {
    font-size:10px;
  }
  .footer-content {
    font-size:9px;
    padding-block:21px;
  }
  .section-space {
    padding-block:48px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
  }
}
@media print {
  html {
    --main:#fff!important;
    --surface:#fff!important;
    --text:#000!important;
    --muted:#333!important;
    --border:#ccc!important;
    --shadow:#f5f5f5!important;
    color-scheme:light;
  }
  .theme-options,.theme-note,.theme-title,.skip-link,nav,.window-dots {
    display:none;
  }
  .section-space {
    padding-block:25px;
  }
  .project-grid {
    grid-template-columns:1fr;
  }
  .project-visual {
    display:none;
  }
  .intro-grid,.about-grid {
    grid-template-columns:1fr 1fr;
  }
  .experience-row,.education-row {
    grid-template-columns:180px 1fr;
  }
  .project-card,.experience-row,.credential {
    break-inside:avoid;
  }
  a {
    color:#000;
  }
  .container {
    width:100%;
  }
}
