/* Personal computing: phosphor, solder mask and the Amiga spectrum. */
:root{color-scheme:dark;--paper:#101416;--ink:#e6ece9;--green:#85e3ae;--muted:#a1b1aa;--line:#304039;--mono:Consolas,"Liberation Mono",Menlo,monospace}
body{background:var(--paper);font-family:"Segoe UI",Arial,sans-serif}
body:before{content:"";display:block;height:4px;background:linear-gradient(90deg,#ef6677 0 20%,#f0ad65 20% 40%,#e8da80 40% 60%,#85e3ae 60% 80%,#7abde8 80%)}
.nav{border-bottom-color:var(--line)}
.identity{font-family:var(--mono);letter-spacing:-1px;font-weight:600}.identity:before{content:"> ";color:var(--green)}
nav,.eyebrow,.small-label,.section-label>span,.number,.text-link,.button,.facts,footer{font-family:var(--mono)}
nav{font-size:14px}.eyebrow{letter-spacing:1.3px}.dot{border-radius:0;box-shadow:0 0 12px #85e3ae55}
.hero{position:relative;background-image:radial-gradient(#85e3ae19 1px,transparent 1px);background-size:22px 22px;background-position:right top}
h1{font-family:var(--mono);font-size:clamp(42px,5.3vw,68px);font-weight:650;line-height:1.17;letter-spacing:-3px}h1 em{font-style:normal}h1 em:after{content:"_";color:#efb96f;font-weight:400}
h2{font-family:var(--mono);font-size:30px;line-height:1.35;font-weight:500;letter-spacing:-1.2px}h3{font-family:var(--mono);font-weight:500;font-size:18px}
.hero-bottom{background:var(--paper)}.hero-bottom p{color:#b0bdb7}.button{background:var(--green);border-color:var(--green);color:#101b15;font-weight:600;box-shadow:4px 4px 0 #314c3c;white-space:normal;min-width:210px}.button:hover{background:#a5f2c5;color:#101b15;box-shadow:2px 2px 0 #314c3c}.button:active{transform:translate(2px,2px)}
.facts{background:var(--paper);border-top:1px solid #536c5f}.facts>div{border-left:2px solid #47755c;padding-left:16px}.facts>div:nth-child(2){border-color:#7abde8}.facts>div:nth-child(3){border-color:#efb96f}.fact-value{font-size:17px}.facts span:last-child{font-family:"Segoe UI",Arial,sans-serif}
.section-label>span{color:var(--green)}.role{position:relative}.role:before{content:"";position:absolute;top:-3px;left:0;width:5px;height:5px;background:#85e3ae}.role .small-label{color:#a7beb1;font-size:12px}.organisations{background:#171f1c;border-block:1px solid var(--line)}.org-heading h2{font-size:27px}.org-list{font-family:var(--mono);font-size:18px;color:#cedbd3;font-weight:400}.expertise-row .number{color:#efb96f}.expertise-row{border-color:#304039}.details-grid h3{color:#b4eaca}.contact{position:relative}.contact:before{content:"";position:absolute;top:-2px;left:0;width:72px;height:3px;background:linear-gradient(90deg,#ef6677 0 20%,#f0ad65 20% 40%,#e8da80 40% 60%,#85e3ae 60% 80%,#7abde8 80%)}.contact h2{font-size:48px}.skip{background:#203b2e;color:#fff}::selection{background:#85e3ae;color:#101416}a:focus-visible{outline-color:#efb96f}
@media(max-width:800px){h1{font-size:clamp(38px,6.3vw,56px);letter-spacing:-2px}.facts>div{padding-left:10px}.fact-value{font-size:15px}.org-list{font-size:16px}}
@media(max-width:520px){h1{font-size:clamp(29px,7.7vw,40px);letter-spacing:-1.6px}h2{font-size:27px}.hero{padding-top:40px}.eyebrow{font-size:10px;letter-spacing:.6px}.identity{font-size:17px}nav{font-size:12px}.facts>div{padding-left:12px}.fact-value{font-size:14px}.contact h2{font-size:38px}.org-heading h2{font-size:25px}.org-list{font-size:15px}.button{font-size:14px}footer{font-size:12px}}
@media print{:root{--paper:white;--ink:#111;--muted:#333;--green:#234c36;--line:#ccc;color-scheme:light}body:before{display:none}.hero{background:none}.hero-bottom,.facts,.organisations{background:white}.hero-bottom p,.org-list{color:#333}h1{font-size:32pt}h2{font-size:20pt}}

/* A personal introduction, with an optimised photographic portrait. */
.hero-profile{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:48px;align-items:center;margin:28px 0 34px}.hero-profile h1{font-size:clamp(44px,6.3vw,80px);letter-spacing:-3.5px;margin:0 0 22px}.name-cursor{color:#efb96f;font-weight:400}.hero-tagline{font-family:var(--mono);font-size:clamp(23px,3vw,36px);line-height:1.35;letter-spacing:-1px;color:var(--ink);margin:0}.hero-tagline span{color:var(--green)}.portrait{margin:0;position:relative;padding:8px;border:1px solid #536c5f;background:#171f1c;box-shadow:8px 8px 0 #1c2c23}.portrait:after{content:"";position:absolute;bottom:-1px;right:-1px;width:26px;height:26px;border-right:3px solid #85e3ae;border-bottom:3px solid #85e3ae}.portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.identity{font-size:24px}
@media(max-width:800px){.hero-profile{grid-template-columns:minmax(0,1fr) 180px;gap:24px}.hero-profile h1{font-size:clamp(36px,6vw,58px);letter-spacing:-2px}.hero-tagline{font-size:24px}}
@media(max-width:600px){.hero-profile{grid-template-columns:1fr;gap:28px;margin-top:25px}.hero-profile h1{font-size:clamp(35px,8.5vw,50px);letter-spacing:-2px;margin-bottom:16px}.portrait{width:168px}.hero-tagline{font-size:24px}.identity{font-size:19px}.facts>div:nth-child(2) .fact-value{max-width:160px}}
@media print{.hero-profile{grid-template-columns:1fr 140px}.hero-profile h1{font-size:32pt}.hero-tagline{font-size:18pt}.portrait{box-shadow:none}}
.development .role:nth-of-type(1):before{background:#f0ad65}.development .role:nth-of-type(2):before{background:#e8da80}.development .role:nth-of-type(3):before{background:#85e3ae}.development .role:nth-of-type(4):before{background:#7abde8}
@keyframes cursor-breathe{0%,100%{opacity:1}50%{opacity:.12}}.name-cursor{animation:cursor-breathe 2.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.name-cursor{animation:none;opacity:1}}@media print{.name-cursor{animation:none;opacity:1}}

/* Amiga-blue links to the work-with-me page. */
.button-blue{background:#75baff;border-color:#75baff;color:#0c1926;box-shadow:4px 4px 0 #294764}.button-blue:hover{background:#a0d0ff;color:#0c1926;box-shadow:2px 2px 0 #294764}.hero-actions{display:flex;flex-direction:column;gap:20px;flex-shrink:0}.contact-actions{display:flex;flex-wrap:wrap;gap:24px}.contact .contact-actions{margin-left:24px}.blue-text{color:#75baff}.hire-intro{padding-bottom:60px}.hire-intro .lead{max-width:760px}.hire-intro h1{font-size:clamp(38px,5.5vw,70px)}.hire-today{border-top:1px solid var(--line)}.hire-help .role:first-child{margin-top:0}.hire-contact-note{max-width:670px;margin:24px 0 0}.hire-page .contact h2{font-size:clamp(26px,3vw,40px)}
@media(max-width:800px){.hero-actions{margin-top:25px;max-width:300px}.hero-bottom .hero-actions .button{margin-top:0}.contact>div{flex-wrap:wrap;gap:24px}.contact .contact-actions{margin-left:0}}
@media(max-width:520px){.contact-actions{flex-direction:column;align-items:flex-start}.hire-page nav a:first-child{display:inline}.hire-intro h1{letter-spacing:-1.5px}}
@media print{.hero-actions,.contact-actions{display:none}}
@media(max-width:520px){.nav{flex-wrap:wrap}.nav nav{width:100%;justify-content:flex-start;gap:16px}.nav nav a:first-child{display:inline}}
.facts>a{display:flex;flex-direction:column;border-left:2px solid #47755c;padding-left:16px;text-decoration:none;min-width:0}.facts>a:nth-child(2){border-color:#efb96f}.facts>a:nth-child(3){border-color:#7abde8}.nav nav{flex-wrap:wrap}.nav{gap:24px}.nav nav a[aria-current]{color:var(--green);text-decoration:underline}.nav nav a:hover{color:#e8da80;text-decoration:underline}@media(max-width:800px){.facts>a{padding-left:10px}.nav{flex-wrap:wrap}}@media(max-width:520px){.facts>a{flex-direction:row;justify-content:space-between;align-items:center;gap:18px;padding-left:12px}.facts>a:nth-child(3) .fact-value{max-width:160px}}

.alternate-profile{padding-bottom:24px}.alternate-profile>a{display:inline-flex;align-items:center;gap:12px;color:var(--muted);font:14px/1.5 var(--mono);text-decoration:none}.alternate-profile img{display:block;width:48px;height:auto;flex-shrink:0}.alternate-profile>a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:5px}@media print{.alternate-profile{display:none}}
.button.button-nerdy{background:transparent;border-color:var(--line);color:var(--muted);box-shadow:none;font-weight:400;padding:9px 14px 9px 21px;gap:16px}.button.button-nerdy:hover{background:transparent;color:var(--ink);border-color:#536c5f;box-shadow:none}.button-nerdy img{display:block;width:32px;height:auto;flex-shrink:0}.hero .eyebrow .dot{flex-shrink:0}
.button.button-nerdy{box-shadow:4px 4px 0 #283630}.button.button-nerdy:hover{box-shadow:2px 2px 0 #283630}.hero-bottom p strong{color:var(--ink);font-weight:600}
.contact-description{max-width:780px;margin:26px 0 0}footer{align-items:center}footer>div{align-items:center;flex-wrap:wrap}.footer-nerdy{display:inline-flex;align-items:center;gap:9px}.footer-nerdy img{display:block;width:32px;height:auto}.footer-nerdy:hover{color:var(--ink)}
.contact-description{margin:20px 0 28px}footer .footer-nerdy{display:inline-flex;align-items:center;gap:8px}footer .footer-nerdy img{width:24px;height:23px;object-fit:contain;flex:none}
