:root {
  color-scheme: light;
  --paper: #e8e6d1;
  --card: #f5f2e9;
  --ink: #2a3830;
  --muted: #586258;
  --coral: #ff6259;
  --shadow: #a5a897;
  --line: #b8bbaa;
  --display: 'Archivo', Arial, sans-serif;
  --mono: 'Space Mono', Consolas, 'Courier New', monospace;
  --page-width: 1200px;
  --header-height: 88px;
  --offset-shadow: 6px 6px 0 var(--shadow);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); overflow-x: clip; }
body { margin: 0; color: var(--ink); background-color: var(--paper); background-image: linear-gradient(rgba(42,56,48,.025) 1px, transparent 1px),linear-gradient(90deg,rgba(42,56,48,.025) 1px,transparent 1px); background-size: 5px 5px; font-family: var(--display); line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: clip; }
body.dialog-open,body.menu-open { overflow: hidden; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-underline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
button, a { touch-action: manipulation; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--coral); outline-offset: 5px; }
::selection { background: var(--coral); color: var(--ink); }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { line-height: 1.04; }
h1,h2 { font-weight: 900; letter-spacing: -.065em; }
ul, ol { padding: 0; margin: 0; }
.container { width: min(var(--page-width), calc(100% - 88px)); margin-inline: auto; }
.hero > *,.section-heading > *,.about-grid > *,.experience-grid > *,.education-section > *,.contact-grid > *,.project-card,.project-body { min-width: 0; }
.coral { color: var(--coral); }
.eyebrow { font-family: var(--mono); font-size: 11px; font-weight: 700; letter-spacing: .045em; line-height: 1.5; text-transform: uppercase; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 18px; background: var(--ink); color: var(--card); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.button { min-height: 48px; display: inline-flex; justify-content: center; align-items: center; gap: 26px; padding: 13px 21px; border: 2px solid var(--ink); border-radius: 3px; box-shadow: 3px 3px 0 var(--shadow); font-family: var(--mono); font-weight: 700; font-size: 11px; line-height: 1.5; letter-spacing: .015em; text-decoration: none; text-transform: uppercase; transition: transform .16s ease,box-shadow .16s ease,background-color .16s ease; }
.button > span[aria-hidden="true"] { font-size: 19px; font-family: Arial,sans-serif; line-height: 1; }
.button:hover { transform: translate(-2px,-2px); box-shadow: 5px 5px 0 var(--shadow); }
.button:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 var(--shadow); }
.button-primary { color: var(--card); background: var(--ink); }
.button-paper { color: var(--ink); background: var(--card); }
.button-coral { color: var(--ink); background: var(--coral); border-color: var(--coral); box-shadow: 4px 4px 0 rgba(0,0,0,.25); }
.button-on-dark { color: var(--card); background: transparent; border-color: var(--card); box-shadow: 4px 4px 0 rgba(0,0,0,.25); }
.text-link { display: inline-flex; align-items: center; gap: 22px; font: 700 12px/1.6 var(--mono); text-transform: uppercase; }
.text-link span[aria-hidden="true"] { font-size: 24px; }

.site-header { position: sticky; top: 0; z-index: 30; min-height: var(--header-height); background: rgba(232,230,209,.97); border-bottom: 2px solid var(--ink); backdrop-filter: blur(10px); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; min-height: var(--header-height); }
.brand { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.brand-type { display: flex; flex-direction: column; gap: 4px; }
.brand-type strong { font-size: 27px; line-height: 1; font-weight: 900; letter-spacing: -.055em; }
.brand-type > span { font: 10px var(--mono); letter-spacing: .04em; }
.header-controls { display: flex; align-items: center; gap: 17px; }
.main-nav { display: flex; align-items: center; gap: 20px; }
.main-nav a { text-decoration: none; padding: 12px 7px; font: 700 10px/1.5 var(--mono); text-transform: uppercase; white-space: nowrap; }
.main-nav a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.main-nav .nav-contact { border: 1.5px solid var(--ink); padding-inline: 15px; border-radius: 2px; }
.nav-contact span[aria-hidden="true"] { margin-left: 8px; font-size: 16px; }
.language-switch { display: flex; border: 1.5px solid var(--ink); border-radius: 2px; overflow: hidden; }
.language-button { min-width: 35px; min-height: 34px; padding: 7px 8px; border: 0; background: transparent; color: var(--ink); font: 700 9px/1 var(--mono); }
.language-button + .language-button { border-left: 1px solid var(--ink); }
.language-button.is-active { background: var(--ink); color: var(--card); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1.5px solid var(--ink); background: var(--card); }
.menu-toggle span { display: block; height: 2px; background: var(--ink); margin: 4px 0; transition: transform .16s ease,opacity .16s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 65px; align-items: center; padding-block: 76px 69px; }
.dark-label { display: inline-block; padding: 9px 13px; background: var(--ink); color: var(--card); border-radius: 2px; }
.hero h1 { margin-top: 23px; font-size: clamp(52px,5.75vw,80px); line-height: .99; }
.hero-intro { margin-top: 27px; font-size: 16px; max-width: 515px; color: var(--muted); line-height: 1.75; }
.hero-intro strong { color: var(--ink); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 22px; color: var(--muted); font: 9px/1.6 var(--mono); }
.hero-meta > * { position: relative; }
.hero-meta > * + *::before { content: '·'; position: absolute; left: -11px; color: var(--coral); }
.hero-meta a { color: var(--ink); font-weight: 700; text-decoration-thickness: 1px; }
.availability { display: flex; gap: 10px; align-items: center; margin-top: 24px; font: 10px/1.7 var(--mono); }
.status-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; background: var(--ink); box-shadow: 0 0 0 4px rgba(42,56,48,.09); }
.hero-portrait { position: relative; padding: 11px 9px 0 0; }
.portrait-frame { position: relative; border: 2px solid var(--ink); border-radius: 5px; background: var(--card); box-shadow: 9px 9px 0 var(--shadow); overflow: hidden; transform: rotate(1.5deg); }
.portrait-frame img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.portrait-frame figcaption { position: absolute; bottom: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--card); border-top: 2px solid var(--ink); padding: 14px 13px; font: 700 8px/1.5 var(--mono); }
.experience-sticker { position: absolute; z-index: 2; top: -16px; right: -14px; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 108px; height: 103px; background: var(--coral); border: 2px solid var(--ink); box-shadow: 4px 4px 0 rgba(42,56,48,.2); transform: rotate(8deg); }
.experience-sticker strong { font-size: 44px; line-height: 1; font-weight: 900; letter-spacing: -.06em; }
.experience-sticker span { font: 700 9px var(--mono); margin-top: 6px; }
.portrait-note { display: flex; justify-content: center; align-items: center; gap: 9px; margin-top: 24px; font: 9px/1.6 var(--mono); letter-spacing: .015em; }
.portrait-note > span { font-size: 23px; color: var(--coral); }
.proof-strip { border-block: 1.5px solid var(--ink); background: var(--card); }
.proof-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.proof-grid article { min-height: 88px; padding: 19px 20px; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.proof-grid article:last-child { border-right: 0; }
.proof-grid span { color: var(--muted); font: 7.5px/1.4 var(--mono); letter-spacing: .05em; }
.proof-grid strong { font-size: 15px; line-height: 1.25; }

.section { padding-block: 82px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; margin-bottom: 36px; }
.section-heading .eyebrow { margin-bottom: 17px; }
h2 { font-size: clamp(36px,4.5vw,58px); }
.section-description { flex-basis: 355px; max-width: 355px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.project-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-block: 1px solid var(--line); padding-block: 17px; margin-bottom: 31px; }
.filter-group { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-button { padding: 9px 13px; border: 1.5px solid transparent; border-radius: 2px; background: transparent; color: var(--ink); font: 700 10px/1.4 var(--mono); text-transform: uppercase; }
.filter-button:hover { border-color: var(--ink); }
.filter-button.is-active { background: var(--ink); color: var(--card); border-color: var(--ink); }
.project-count { font: 9px var(--mono); white-space: nowrap; color: var(--muted); }
.projects-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; align-items: stretch; }
.project-card { border: 2px solid var(--ink); border-radius: 5px; overflow: hidden; background: var(--card); box-shadow: var(--offset-shadow); display: flex; flex-direction: column; }
.project-preview { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1.28; padding: 28px 17px 34px; overflow: hidden; border-bottom: 2px solid var(--ink); background-color: #d2d4c1; background-image: linear-gradient(rgba(42,56,48,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(42,56,48,.05) 1px,transparent 1px); background-size: 15px 15px; }
.preview-api { background-color: #d9cfc1; }
.preview-utilities { background-color: #d3d6c9; }
.preview-cross-platform { background-color: #d1d5c8; }
.featured-label { position: absolute; z-index: 3; left: 12px; top: 12px; background: var(--coral); color: var(--ink); border: 1.5px solid var(--ink); border-radius: 1px; padding: 7px 9px; font: 700 8px var(--mono); }
.preview-window { width: 100%; border: 1.5px solid var(--ink); border-radius: 4px; background: var(--card); box-shadow: 6px 7px 0 rgba(42,56,48,.16); transform: rotate(-3deg); overflow: hidden; }
.api-window { transform: rotate(2deg); }
.preview-utilities .preview-window { transform: rotate(-2deg); }
.cross-platform-window { transform: rotate(1.7deg); }
.preview-titlebar { display: flex; align-items: center; justify-content: space-between; padding: 8px 9px; border-bottom: 1px solid var(--ink); background: #e8e6d1; font: 700 6.5px/1 var(--mono); }
.window-dots { display: flex; gap: 3px; }
.window-dots i { display: block; width: 4px; height: 4px; border-radius: 50%; border: 1px solid var(--ink); }
.window-dots i:first-child { background: var(--coral); }
.dashboard-preview { display: grid; grid-template-columns: 28px 1fr; min-height: 163px; }
.preview-sidebar { display: flex; flex-direction: column; align-items: center; gap: 14px; border-right: 1px solid var(--ink); background: #e2e1d5; padding-top: 10px; }
.sidebar-brand { font-size: 10px; font-weight: 900; }
.preview-sidebar i { width: 9px; height: 7px; background: #a1aa9b; border-radius: 1px; }
.preview-sidebar i.active { background: var(--ink); }
.preview-main { padding: 13px 9px; }
.mini-heading { display: flex; justify-content: space-between; font-size: 10px; font-weight: 800; margin-bottom: 12px; }
.mini-fields { display: flex; gap: 6px; margin-bottom: 8px; }
.mini-fields > span { flex: 1; font: 5px var(--mono); color: var(--muted); }
.mini-fields b { display: block; border: 1px solid var(--line); padding: 5px 4px; font-size: 5px; color: var(--ink); margin-top: 4px; }
.mini-suite { display: flex; align-items: center; gap: 4px; padding-block: 6px; border-bottom: 1px solid #ddded3; font-size: 5.6px; }
.mini-suite i { width: 4px; height: 4px; border: 1px solid var(--ink); }
.mini-suite b { margin-left: auto; font: 5px var(--mono); }
.mini-button { display: inline-block; margin-top: 9px; padding: 6px; background: var(--ink); color: var(--card); font: 5px var(--mono); }
.preview-caption { position: absolute; left: 0; right: 0; bottom: 9px; text-align: center; font: 7px var(--mono); letter-spacing: .055em; }
.api-preview { padding: 12px; min-height: 163px; }
.request-line { display: flex; align-items: center; gap: 8px; font: 6px var(--mono); padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.request-line b { background: var(--ink); color: var(--card); padding: 3px 5px; }
.preview-code { padding-block: 12px; font: 6.6px/2.15 var(--mono); }
.code-muted { color: var(--muted); }
.code-coral { color: #9d3e37; font-weight: 700; }
.assertion-line { font-size: 7px; border: 1px solid var(--line); background: #e0e4d9; padding: 6px; }
.assertion-line span { margin-right: 3px; }
.code-bottom { display: flex; justify-content: space-between; align-items: center; font: 5px var(--mono); padding-top: 9px; }
.code-bottom b { font-size: 6px; }
.utilities-preview { min-height: 163px; padding: 12px; }
.utilities-preview > p { font-size: 10px; font-weight: 800; margin-bottom: 8px; }
.utility-item { display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); padding: 7px 6px; margin-top: 6px; }
.utility-item > span { font: 6px var(--mono); background: var(--ink); color: var(--card); padding: 5px; }
.utility-item div { display: flex; flex-direction: column; gap: 2px; }
.utility-item b { font-size: 6.5px; }
.utility-item small { font: 5px var(--mono); color: var(--muted); }
.utility-item i { margin-left: auto; font-style: normal; font-size: 10px; }
.cross-platform-preview { min-height: 163px; padding: 13px; }
.cross-platform-preview > p { margin-bottom: 8px; font-size: 10px; font-weight: 800; }
.platform-row { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); padding: 9px 7px; margin-top: 7px; }
.platform-row > span { min-width: 29px; padding: 5px; background: var(--ink); color: var(--card); font: 6px var(--mono); text-align: center; }
.platform-row div { display: flex; flex-direction: column; gap: 2px; }
.platform-row b { font-size: 7px; }
.platform-row small { color: var(--muted); font: 5px var(--mono); }
.platform-row i { margin-left: auto; color: var(--ink); font-style: normal; }
.platform-status { margin-top: 8px; color: var(--muted); font: 6px var(--mono); text-align: right; }
.project-body { display: flex; flex-direction: column; flex: 1; padding: 22px; }
.project-body > .eyebrow { font-size: 9px; color: var(--muted); }
.project-body h3 { margin-top: 10px; font-size: 26px; font-weight: 800; letter-spacing: -.04em; }
.project-description { margin-top: 15px; font-size: 13px; line-height: 1.8; color: var(--muted); }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.tag-list li { border: 1px solid var(--line); background: rgba(232,230,209,.5); border-radius: 2px; padding: 4px 7px; font: 8px/1.5 var(--mono); }
.project-body .tag-list { margin-top: 20px; margin-bottom: 24px; }
.project-detail { margin-top: auto; width: 100%; display: flex; justify-content: space-between; }
.project-disclaimer { margin-top: 24px; color: var(--muted); font: 9px/1.9 var(--mono); }
.project-disclaimer > span { color: var(--ink); margin-right: 5px; }

.about-section { background: var(--card); border-block: 1.5px solid var(--ink); }
.about-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 95px; }
.about-copy h2 { font-size: clamp(36px,3.9vw,51px); margin-top: 18px; }
.about-copy > p:not(.eyebrow) { margin-top: 22px; font-size: 14px; color: var(--muted); line-height: 1.85; }
.about-copy > .lead { font-size: 17px !important; color: var(--ink) !important; line-height: 1.75 !important; }
.about-copy .text-link { margin-top: 25px; }
.capability-list { padding-top: 4px; }
.capability { display: flex; align-items: flex-start; gap: 20px; padding-block: 24px; border-bottom: 1px solid var(--line); }
.capability:first-child { border-top: 1px solid var(--ink); }
.capability-number { font: 700 11px var(--mono); color: var(--muted); padding-top: 4px; }
.capability h3 { font-size: 20px; font-weight: 800; letter-spacing: -.035em; }
.capability p { color: var(--muted); font-size: 13px; line-height: 1.8; margin-top: 10px; }
.compact-heading { margin-bottom: 38px; }
.tools-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1.5px solid var(--ink); background: var(--card); box-shadow: var(--offset-shadow); }
.tool-group { padding: 22px 18px 27px; border-right: 1px solid var(--line); }
.tool-group:last-child { border-right: 0; }
.tool-group-index { font: 10px var(--mono); color: var(--muted); }
.tool-group h3 { font-size: 19px; font-weight: 800; letter-spacing: -.035em; min-height: 48px; margin-top: 15px; line-height: 1.2; }
.tool-group .tag-list { margin-top: 18px; }
.tool-group .tag-list li { background: transparent; font-size: 8px; }

.experience-section { background: #dcdcc9; border-block: 1.5px solid var(--ink); }
.experience-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 100px; }
.experience-intro h2 { margin-top: 18px; font-size: clamp(36px,4vw,52px); }
.experience-intro > p:not(.eyebrow) { margin-top: 25px; font-size: 14px; line-height: 1.85; color: var(--muted); max-width: 365px; }
.experience-intro .button { margin-top: 27px; }
.timeline { list-style: none; padding-left: 26px; border-left: 1.5px solid var(--ink); }
.timeline-item { position: relative; padding-bottom: 30px; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before { content: ''; position: absolute; top: 3px; left: -32px; width: 10px; height: 10px; border: 1.5px solid var(--ink); border-radius: 50%; background: var(--paper); }
.timeline-featured::before { background: var(--coral); }
.timeline-date { font: 9px/1.5 var(--mono); color: var(--muted); }
.timeline h3 { margin-top: 9px; font-size: 24px; font-weight: 800; letter-spacing: -.035em; }
.timeline-role { font: 700 10px/1.6 var(--mono); margin-top: 7px; }
.timeline-description { color: var(--muted); margin-top: 10px; font-size: 13px; line-height: 1.8; }
.education-section { display: grid; grid-template-columns: .95fr 1.05fr; gap: 100px; }
.education-heading h2 { margin-top: 18px; font-size: 42px; }
.education-accordions details { border-top: 1.5px solid var(--ink); }
.education-accordions details:last-child { border-bottom: 1.5px solid var(--ink); }
.education-accordions summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 21px 0; font: 700 11px/1.5 var(--mono); text-transform: uppercase; cursor: pointer; }
.education-accordions summary::-webkit-details-marker { display: none; }
.accordion-symbol { font-size: 25px; font-weight: 400; transition: transform .15s ease; }
details[open] .accordion-symbol { transform: rotate(45deg); }
.accordion-content { padding-bottom: 25px; font-size: 14px; color: var(--muted); }
.education-item + .education-item { margin-top: 22px; }
.education-item h3 { font-size: 17px; font-weight: 800; letter-spacing: -.025em; color: var(--ink); }
.education-item p { font-size: 13px; margin-top: 7px; }
.education-item > span { display: inline-block; margin-top: 8px; font: 9px var(--mono); }

.contact-section { background: var(--ink); color: var(--card); padding-block: 74px 66px; border-top: 2px solid var(--ink); }
.contact-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 110px; align-items: center; }
.contact-section .eyebrow { color: #c2c8b9; }
.contact-section h2 { font-size: clamp(42px,5vw,65px); margin-top: 19px; }
.contact-section p:not(.eyebrow):not(.copy-feedback) { font-size: 14px; color: #c9cebe; line-height: 1.85; margin-top: 25px; max-width: 440px; }
.contact-actions { display: flex; flex-direction: column; gap: 14px; }
.contact-actions .button { justify-content: space-between; min-height: 54px; padding-inline: 20px; }
.copy-email-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 15px; font: 10px/1.6 var(--mono); }
.copy-email-row > span { overflow-wrap: anywhere; }
.copy-email-row button { color: var(--card); background: transparent; border: 1px solid #8b9789; border-radius: 2px; padding: 6px 9px; font: 9px var(--mono); }
.copy-feedback { min-height: 18px; font: 9px/1.6 var(--mono); color: #d7e0cc; }
.site-footer { background: var(--card); border-top: 1.5px solid var(--ink); }
.footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-block: 24px; font: 8px/1.7 var(--mono); }
.footer-inner a { text-decoration: none; font-weight: 700; }
.footer-inner a:hover { text-decoration: underline; }

.project-dialog { width: min(780px,calc(100% - 40px)); max-height: calc(100dvh - 64px); padding: 0; border: 2px solid var(--ink); border-radius: 5px; color: var(--ink); background: var(--card); box-shadow: 10px 10px 0 rgba(42,56,48,.45); overflow: auto; }
.project-dialog::backdrop { background: rgba(22,30,25,.68); backdrop-filter: blur(3px); }
.dialog-topline { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; padding: 16px 27px; border-bottom: 1px solid var(--ink); background: var(--paper); }
.dialog-close { width: 36px; height: 36px; display: grid; place-items: center; background: var(--card); border: 1.5px solid var(--ink); border-radius: 2px; font: 27px/1 var(--display); }
.dialog-content { padding: 35px 34px; }
.dialog-content > h2 { font-size: clamp(33px,5vw,47px); margin-top: 12px; }
.dialog-context { color: var(--muted); margin-top: 17px; font-size: 15px; line-height: 1.8; }
.dialog-content > .tag-list { margin-top: 20px; }
.dialog-content > .tag-list li { font-size: 9px; }
.case-section { margin-top: 28px; }
.case-section h3 { font-size: 18px; font-weight: 800; letter-spacing: -.03em; }
.case-section p { font-size: 14px; line-height: 1.85; color: var(--muted); margin-top: 12px; }
.contribution-list { padding-left: 18px; margin-top: 13px; color: var(--muted); font-size: 13px; line-height: 1.9; }
.contribution-list li::marker { color: var(--ink); }
.dialog-footer { padding-top: 25px; margin-top: 28px; border-top: 1px solid var(--line); }
.dialog-footer .button { width: 100%; justify-content: space-between; }
.demo-section { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--ink); }
.demo-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.demo-heading h3 { font-size: 20px; letter-spacing: -.03em; }
.demo-badge { padding: 5px 7px; border: 1px solid var(--ink); font: 7px/1.5 var(--mono); background: var(--paper); }
.demo-section > p { font-size: 12px; color: var(--muted); margin-top: 14px; }
.demo-tabs { display: flex; gap: 5px; margin-top: 18px; }
.demo-tabs button { border: 1px solid var(--ink); background: var(--paper); padding: 9px 12px; color: var(--ink); font: 10px var(--mono); }
.demo-tabs button.is-active { background: var(--ink); color: var(--card); }
.demo-panel { margin-top: 10px; min-height: 215px; background: var(--ink); color: var(--card); padding: 20px; border-radius: 2px; }
.demo-panel pre { margin: 0; overflow: auto; font: 11px/1.9 var(--mono); }
.demo-checks { list-style: none; font: 10px/2.1 var(--mono); }
.demo-checks li + li { margin-top: 10px; }
.demo-checks span { color: #c9de9c; }

@media (min-width: 1500px) { .hero { gap: 95px; } }
@media (max-width: 1100px) {
  .container { width: calc(100% - 60px); }
  .main-nav { gap: 10px; }
  .main-nav a { font-size: 9px; padding-inline: 4px; }
  .brand-type strong { font-size: 23px; }
  .header-controls { gap: 10px; }
  .hero { gap: 40px; padding-block: 67px; }
  .hero h1 { font-size: clamp(53px,6vw,70px); }
  .hero-intro { font-size: 14px; }
  .hero-actions .button { padding-inline: 14px; font-size: 10px; gap: 16px; }
  .experience-sticker { width: 94px; height: 92px; right: -8px; }
  .experience-sticker strong { font-size: 39px; }
  .projects-grid { gap: 23px; }
  .project-body { padding: 18px; }
  .project-body h3 { font-size: 23px; }
  .project-preview { padding-inline: 11px; }
  .about-grid,.experience-grid,.education-section,.contact-grid { gap: 60px; }
  .proof-grid article { padding-inline: 14px; }
  .proof-grid strong { font-size: 13px; }
}
@media (max-width: 850px) {
  :root { --header-height: 78px; }
  .brand-type strong { font-size: 20px; }
  .brand-type > span { font-size: 8px; }
  .menu-toggle { display: block; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: var(--header-height); border-bottom: 2px solid var(--ink); background: var(--paper); padding: 15px 30px 22px; box-shadow: 0 7px 0 rgba(42,56,48,.15); }
  .main-nav.is-open { display: flex; align-items: stretch; flex-direction: column; gap: 4px; }
  .main-nav a { padding: 12px; font-size: 11px; }
  .main-nav .nav-contact { margin-top: 5px; }
  .hero { grid-template-columns: 1.05fr .95fr; gap: 28px; padding-block: 55px; }
  .hero h1 { font-size: 51px; }
  .hero-intro { font-size: 13px; }
  .hero-actions { gap: 12px; }
  .hero-actions .button { width: 100%; justify-content: space-between; }
  .availability { font-size: 8px; }
  .portrait-frame figcaption { flex-direction: column; align-items: flex-start; gap: 2px; padding: 11px; font-size: 7px; }
  .portrait-note { font-size: 7px; gap: 5px; }
  .experience-sticker { width: 81px; height: 80px; top: -17px; }
  .experience-sticker strong { font-size: 33px; }
  .experience-sticker span { font-size: 7px; }
  .section { padding-block: 64px; }
  .section-heading { gap: 25px; }
  .section-description { flex-basis: 260px; font-size: 12px; }
  .projects-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px; }
  .project-body h3 { font-size: 26px; }
  .project-preview { padding-inline: 20px; }
  .tools-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tool-group { border-bottom: 1px solid var(--line); }
  .tool-group:nth-child(2) { border-right: 0; }
  .tool-group:nth-child(n+3) { border-bottom: 0; }
  .about-grid { gap: 38px; }
  .about-copy h2 { font-size: 35px; }
  .about-copy > .lead { font-size: 15px !important; }
  .about-copy > p:not(.eyebrow) { font-size: 13px; }
  .capability { gap: 13px; }
  .capability h3 { font-size: 18px; }
  .capability p { font-size: 12px; }
  .experience-grid,.education-section { gap: 36px; }
  .experience-intro h2 { font-size: 37px; }
  .education-heading h2 { font-size: 36px; }
  .contact-grid { gap: 45px; }
  .contact-section h2 { font-size: 46px; }
  .contact-section p:not(.eyebrow):not(.copy-feedback) { font-size: 12px; }
  .copy-email-row { font-size: 8px; }
  .footer-inner { font-size: 7px; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  :root { --header-height: 70px; --offset-shadow: 4px 4px 0 var(--shadow); }
  html { scroll-padding-top: calc(var(--header-height) + 14px); }
  .container { width: calc(100% - 32px); }
  .header-inner { gap: 10px; }
  .brand { gap: 0; }
  .brand-type { gap: 3px; }
  .brand-type strong { font-size: 17px; letter-spacing: -.045em; }
  .brand-type > span { font-size: 6.5px; }
  .header-controls { gap: 8px; }
  .language-button { min-width: 32px; min-height: 42px; padding-inline: 6px; }
  .menu-toggle { width: 42px; height: 42px; }
  .main-nav { position: fixed; top: var(--header-height); padding: 10px 16px 18px; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
  .main-nav.is-open { gap: 2px; }
  .main-nav a { display: flex; align-items: center; min-height: 48px; padding: 11px 13px; font-size: 10px; border-bottom: 1px solid var(--line); }
  .main-nav .nav-contact { justify-content: space-between; margin-top: 8px; border: 1.5px solid var(--ink); }
  .hero { grid-template-columns: minmax(0,1fr); gap: 38px; padding-block: 34px 44px; }
  .hero h1 { margin-top: 18px; max-width: 100%; font-size: clamp(40px,12vw,50px); line-height: .98; }
  .hero .eyebrow { font-size: 8px; padding: 8px 10px; }
  .hero-intro { max-width: none; margin-top: 20px; font-size: 15px; line-height: 1.68; }
  .hero-actions { display: grid; grid-template-columns: 1fr; margin-top: 23px; gap: 11px; }
  .hero-actions .button { width: 100%; min-height: 50px; justify-content: space-between; padding: 12px 15px; gap: 14px; font-size: 9px; }
  .hero-meta { display: grid; gap: 8px; margin-top: 20px; font-size: 8.5px; }
  .hero-meta > * { width: fit-content; }
  .hero-meta > * + *::before { display: none; }
  .availability { font-size: 9px; margin-top: 20px; }
  .hero-portrait { width: calc(100% - 8px); max-width: 380px; padding: 7px 5px 0 0; justify-self: center; }
  .portrait-frame { box-shadow: 6px 6px 0 var(--shadow); transform: rotate(.7deg); }
  .experience-sticker { width: 78px; height: 76px; right: -2px; top: -16px; transform: rotate(6deg); }
  .experience-sticker strong { font-size: 32px; }
  .experience-sticker span { margin-top: 4px; font-size: 6.5px; }
  .portrait-frame figcaption { flex-direction: row; font-size: 6.5px; padding: 11px 9px; }
  .portrait-note { flex-wrap: wrap; margin-top: 19px; font-size: 6.5px; text-align: center; }
  .portrait-note > span { font-size: 19px; }
  .proof-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .proof-grid article { min-height: 84px; padding: 16px 12px; border-bottom: 1px solid var(--line); }
  .proof-grid article:nth-child(2) { border-right: 0; }
  .proof-grid article:nth-child(n+3) { border-bottom: 0; }
  .proof-grid span { font-size: 7px; }
  .proof-grid strong { font-size: 12.5px; }
  .section { padding-block: 48px; }
  .section-heading { display: block; margin-bottom: 25px; }
  .section-heading .eyebrow { font-size: 8px; margin-bottom: 13px; }
  h2 { font-size: clamp(34px,10.5vw,42px); line-height: 1; }
  .section-description { max-width: 100%; margin-top: 18px; font-size: 13.5px; line-height: 1.7; }
  .project-toolbar { display: grid; align-items: stretch; padding-block: 14px; gap: 11px; }
  .filter-group { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
  .filter-button { min-height: 44px; padding: 8px 5px; font-size: 7.5px; line-height: 1.25; }
  .project-count { justify-self: end; padding-top: 0; font-size: 7.5px; }
  .projects-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .project-card { box-shadow: var(--offset-shadow); }
  .project-preview { aspect-ratio: 1.32; padding: 25px 18px 33px; }
  .preview-window { max-width: 340px; box-shadow: 4px 5px 0 rgba(42,56,48,.16); }
  .project-body { padding: 20px 18px 18px; }
  .project-body > .eyebrow { font-size: 8px; }
  .project-body h3 { margin-top: 8px; font-size: 25px; }
  .project-description { margin-top: 12px; font-size: 13.5px; line-height: 1.7; }
  .project-body .tag-list { margin-top: 16px; margin-bottom: 20px; }
  .tag-list li { padding: 5px 7px; font-size: 8px; }
  .project-detail { min-height: 50px; }
  .project-disclaimer { margin-top: 20px; font-size: 8px; line-height: 1.7; }
  .about-grid,.experience-grid,.education-section,.contact-grid { grid-template-columns: minmax(0,1fr); gap: 34px; }
  .about-copy h2 { margin-top: 14px; font-size: clamp(33px,10vw,39px); }
  .about-copy .eyebrow { font-size: 8px; }
  .about-copy > p:not(.eyebrow) { margin-top: 18px; font-size: 13.5px; line-height: 1.75; }
  .about-copy > .lead { font-size: 15px !important; line-height: 1.68 !important; }
  .capability-list { padding-top: 0; }
  .capability { gap: 13px; padding-block: 19px; }
  .capability-number { min-width: 24px; }
  .capability h3 { font-size: 19px; }
  .capability p { margin-top: 7px; font-size: 13px; line-height: 1.7; }
  .tools-grid { grid-template-columns: minmax(0,1fr); }
  .tool-group { padding: 19px 18px; border-right: 0; }
  .tool-group:nth-child(3) { border-bottom: 1px solid var(--line); }
  .tool-group h3 { min-height: 0; margin-top: 7px; font-size: 19px; }
  .tool-group .tag-list { margin-top: 13px; }
  .tool-group .tag-list li { font-size: 8.5px; }
  .experience-intro h2 { font-size: clamp(34px,10.5vw,42px); }
  .experience-intro > p:not(.eyebrow) { margin-top: 18px; font-size: 13.5px; line-height: 1.72; }
  .experience-intro .button { width: 100%; justify-content: space-between; }
  .timeline { margin-left: 2px; padding-left: 22px; }
  .timeline-item { padding-bottom: 27px; }
  .timeline-item::before { left: -28px; }
  .timeline h3 { margin-top: 7px; font-size: 23px; }
  .timeline-role { margin-top: 6px; font-size: 9px; }
  .timeline-description { margin-top: 8px; font-size: 13px; line-height: 1.7; }
  .education-section { gap: 22px; }
  .education-heading h2 { margin-top: 14px; font-size: clamp(32px,9.8vw,37px); }
  .education-accordions summary { min-height: 56px; padding-block: 15px; font-size: 10px; }
  .contact-section { padding-block: 48px 40px; }
  .contact-section h2 { margin-top: 14px; font-size: clamp(40px,12vw,49px); }
  .contact-section p:not(.eyebrow):not(.copy-feedback) { margin-top: 18px; font-size: 13.5px; line-height: 1.7; }
  .contact-grid { gap: 27px; }
  .contact-actions { gap: 11px; }
  .contact-actions .button { min-height: 52px; font-size: 9px; }
  .copy-email-row { align-items: stretch; font-size: 8.5px; }
  .copy-email-row > span { display: flex; align-items: center; }
  .copy-email-row button { min-width: 64px; min-height: 44px; }
  .footer-inner { align-items: flex-start; gap: 10px 14px; font-size: 7px; padding-block: 20px; }
  .footer-inner > span:nth-child(2) { display: none; }
  .project-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); margin: auto; box-shadow: 3px 3px 0 rgba(42,56,48,.45); }
  .dialog-topline { padding: 10px 13px; }
  .dialog-topline .eyebrow { font-size: 8px; }
  .dialog-close { width: 44px; height: 44px; }
  .dialog-content { padding: 21px 16px 24px; }
  .dialog-content > h2 { margin-top: 9px; font-size: clamp(29px,9.5vw,37px); }
  .dialog-context { margin-top: 13px; font-size: 13px; line-height: 1.7; }
  .case-section { margin-top: 23px; }
  .case-section p { margin-top: 9px; font-size: 13px; line-height: 1.72; }
  .contribution-list { font-size: 12.5px; line-height: 1.8; }
  .demo-section { margin-top: 27px; padding-top: 22px; }
  .demo-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .demo-tabs button { min-height: 44px; padding: 8px 4px; font-size: 8px; }
  .demo-panel { min-height: 185px; padding: 14px 10px; }
  .demo-panel pre { font-size: 8.5px; line-height: 1.75; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 28px); }
  .brand-type strong { font-size: 15.5px; }
  .language-button { min-width: 30px; }
  .hero h1 { font-size: clamp(38px,12vw,43px); }
  .filter-button { font-size: 7px; }
  .project-body h3 { font-size: 23px; }
  .contact-section h2 { font-size: 42px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*::before,*::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
@media print {
  body { background: white; }
  .site-header { position: static; }
  .main-nav,.menu-toggle,.filter-group,.project-detail,.contact-actions,.hero-actions,.project-dialog { display: none !important; }
  .container { width: 100%; }
  .section { padding-block: 30px; }
  .hero { padding-block: 30px; }
  .project-card,.tool-group { break-inside: avoid; box-shadow: none; }
  .contact-section { color: var(--ink); background: white; }
  .contact-section p:not(.eyebrow):not(.copy-feedback),.contact-section .eyebrow { color: var(--ink); }
}
