
:root{
  --navy:#eaf3fc;--navy2:#193d63;--blue:#91caff;--sky:#58a6d8;--ink:#dce7f2;
  --muted:#aabed2;--line:#29435e;--paper:#10253b;--paper2:#091827;--wash:#10253b;
  --soft:#1a3550;--accent:#aacfee;--shadow:0 16px 42px rgba(16,47,82,.09);
  --radius:18px;--max:1120px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--paper2);line-height:1.62;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 40px));margin:0 auto}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.site-header::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(16,47,82,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(16,47,82,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000,transparent 90%);pointer-events:none}
nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:20px}.brand{text-decoration:none;font-weight:800;letter-spacing:.09em;text-transform:uppercase;font-size:.84rem;color:var(--navy)}.nav-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.nav-link{text-decoration:none;color:#bfd1e3;font-weight:650;font-size:.9rem;padding:7px 10px;border-radius:8px}.nav-link:hover,.nav-link:focus-visible{background:#1a3550;color:var(--navy)}
.hero{position:relative;z-index:2;padding:58px 0 52px;max-width:920px}.kicker,.field-label{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;text-transform:uppercase;letter-spacing:.10em;font-size:.75rem;color:var(--blue);font-weight:800}.hero h1{margin:10px 0 0;color:var(--navy);font-size:clamp(2.6rem,6.5vw,5.1rem);line-height:.98;letter-spacing:-.045em;max-width:920px}.hero .subline{margin:18px 0 0;color:#ccdef0;font-size:clamp(1.2rem,2.4vw,1.55rem);max-width:850px}.hero-copy{margin:22px 0 0;max-width:760px;color:#b3c7da;font-size:1.02rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:27px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:750;padding:10px 15px;border-radius:10px;border:1px solid transparent;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.button.primary,.button.dark{background:var(--navy);color:#fff}.button.primary:hover,.button.dark:hover{background:var(--blue);transform:translateY(-2px)}.button.ghost{border-color:#456783;color:var(--navy);background:#fff}.button.ghost:hover{background:#234663}.text-link{color:var(--blue);font-weight:700;text-decoration:none}.text-link:hover{text-decoration:underline}
main{position:relative}.section{padding:56px 0}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:26px}.section-head h2{margin:3px 0 0;color:var(--navy);font-size:clamp(1.9rem,4vw,2.55rem);letter-spacing:-.025em}.section-head p{margin:0;color:var(--muted);max-width:560px}.projects-intro{padding-top:38px}
.notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.note-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:25px;min-height:260px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.note-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#527b9f}.note-card.featured{grid-column:1/-1;min-height:235px;background:linear-gradient(135deg,#10253b 0%,#163650 100%)}.note-card::after{content:"";position:absolute;inset:auto -45px -65px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(88,166,216,.16),transparent 68%);pointer-events:none}.note-no{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#97b5d1;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.note-card h3{margin:12px 0 8px;color:var(--navy);font-size:1.55rem;line-height:1.12;letter-spacing:-.02em}.note-card.featured h3{font-size:clamp(1.65rem,3.2vw,2.2rem);max-width:760px}.note-card .factual{margin:0;color:#cadced;font-weight:650}.note-card .aside{margin:14px 0 0;color:var(--muted);font-size:.94rem}.note-card .note-actions{margin-top:auto;padding-top:22px}.note-card .arrow-link{font-weight:780;color:var(--blue);text-decoration:none}.note-card .arrow-link:hover{text-decoration:underline}
.about-aside{padding:26px 0 72px}.aside-box{background:#0e2a48;color:#fff;border-radius:var(--radius);padding:28px 30px;display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center}.aside-box h2{margin:0 0 7px;font-size:1.38rem}.aside-box p{margin:0;color:rgba(255,255,255,.82)}.nationality{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.flags{display:flex;align-items:center}.flag{width:46px;height:31px;border-radius:5px;box-shadow:0 0 0 1px rgba(255,255,255,.22);object-fit:cover}.flag+.flag{margin-left:-8px;transform:translateY(8px)}.nationality strong{display:block;font-size:1rem;margin-bottom:2px}.nationality span{display:block;color:rgba(255,255,255,.78);font-size:.92rem}.linkedin-aside{text-align:right}.linkedin-aside a{color:#fff;font-weight:750;text-decoration:none}.linkedin-aside a:hover{text-decoration:underline}
.disclosure{margin-top:22px;padding:16px 18px;border:1px solid #29435e;border-radius:12px;color:#aabed2;background:rgba(255,255,255,.55);font-size:.88rem}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}.js .reveal.in{opacity:1;transform:none}
footer{background:#0a2038;color:rgba(255,255,255,.68);padding:28px 0;font-size:.88rem}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}footer a{color:#fff;text-decoration:none}footer a:hover{text-decoration:underline}
/* project pages */
.project-header{background:linear-gradient(135deg,#0b2745,#123b65);color:#fff}.project-header nav .brand,.project-header .nav-link{color:#fff}.project-header .nav-link:hover{background:rgba(255,255,255,.1)}.project-hero{padding:50px 0 58px;max-width:930px}.crumb{display:inline-block;color:#d6e5f1;text-decoration:none;font-size:.9rem;margin-bottom:18px}.crumb:hover{text-decoration:underline}.project-hero .field-label{color:#9ec8e7}.project-hero h1{margin:10px 0 0;font-size:clamp(2.45rem,5.5vw,4.4rem);line-height:1.01;letter-spacing:-.042em;max-width:900px}.project-hero .factual-title{margin:16px 0 0;color:#dceaf6;font-size:1.12rem;font-weight:700}.project-hero .lead{margin:10px 0 0;color:rgba(255,255,255,.77);font-size:1rem;max-width:760px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.tag{font-size:.76rem;color:#dceaf6;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);padding:5px 9px;border-radius:999px}
.project-main{padding:44px 0 76px}.project-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:30px}.meta-item{background:var(--paper);padding:16px 18px}.meta-item b{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.08em;color:#97b5d1;font-size:.72rem;margin-bottom:4px}.meta-item span{color:#ccdeed;font-size:.92rem}
.field-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:24px;align-items:start}.field-story{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px}.field-section+ .field-section{border-top:1px solid var(--line);margin-top:27px;padding-top:27px}.field-section h2{margin:0 0 9px;color:var(--navy);font-size:1.35rem}.field-section p{margin:0;color:#b9ccdd}.field-section p+p{margin-top:12px}.field-section ul{margin:10px 0 0;padding-left:19px;color:#b9ccdd}.field-section li+li{margin-top:8px}.margin-note{background:#17324b;border-left:4px solid var(--blue);border-radius:0 10px 10px 0;padding:12px 14px;margin-top:15px;color:#b9ccdd;font-size:.91rem}
.field-visual{position:sticky;top:18px;display:grid;gap:16px}.diagram{background:#0f2d4d;color:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.diagram h2{margin:0 0 14px;font-size:1.12rem}.diagram .caption{margin:0 0 14px;color:rgba(255,255,255,.72);font-size:.88rem}.flow{display:grid;gap:8px}.flow-step{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:10px 11px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);border-radius:10px}.flow-step .n{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#9ed0f0;font-weight:800;font-size:.77rem}.flow-step strong{display:block;font-size:.89rem}.flow-step span{display:block;color:rgba(255,255,255,.68);font-size:.79rem;margin-top:2px}.under-bonnet{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.under-bonnet h2{margin:0 0 12px;color:var(--navy);font-size:1.06rem}.tech-list{display:flex;flex-wrap:wrap;gap:7px}.tech{font-size:.77rem;color:#c3ddf3;background:var(--soft);padding:5px 8px;border-radius:999px}.quote-note{font-family:Georgia,serif;font-size:1.05rem;line-height:1.5;color:#c3ddf3;margin-top:13px}
.pdf-cta{margin-top:28px;border:1px solid #365775;background:var(--paper);border-radius:var(--radius);padding:26px;display:flex;justify-content:space-between;gap:24px;align-items:center}.pdf-cta h2{margin:0;color:var(--navy);font-size:1.4rem}.pdf-cta p{margin:5px 0 0;color:var(--muted)}.pdf-actions{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}.project-next{margin-top:22px;text-align:right}.project-next a{text-decoration:none;color:var(--blue);font-weight:730}.project-next a:hover{text-decoration:underline}
.error{min-height:100vh;display:grid;place-items:center;background:#0e2a48;color:#fff;padding:30px}.error-card{max-width:620px;text-align:center}.error h1{font-size:clamp(4rem,12vw,8rem);margin:0;line-height:1}.error p{color:#dceaf6;font-size:1.06rem}
@media(max-width:820px){.wrap{width:min(var(--max),calc(100% - 28px))}.nav-links .nav-link:not(:last-child){display:none}.hero{padding:44px 0 42px}.section-head{align-items:start;flex-direction:column;gap:8px}.notes-grid{grid-template-columns:1fr}.note-card.featured{grid-column:auto}.aside-box{grid-template-columns:1fr}.linkedin-aside{text-align:left}.field-layout{grid-template-columns:1fr}.field-visual{position:static}.project-meta{grid-template-columns:1fr}.pdf-cta{align-items:flex-start;flex-direction:column}.project-hero{padding:44px 0 50px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

/* Dark field notes: quiet surfaces, readable type, restrained movement. */
:root{color-scheme:dark;--radius:14px;--shadow:0 18px 42px #0003}
body{background:var(--paper2)}
.site-header,.project-header{background:radial-gradient(ellipse at 95% 5%,#245a854d,transparent 60%),linear-gradient(120deg,#0d263f,#133858);border-bottom:1px solid #355b78}
.site-header::before{background-image:linear-gradient(#a3cced07 1px,transparent 1px),linear-gradient(90deg,#a3cced07 1px,transparent 1px);background-size:42px 42px}
nav{min-height:82px;border-bottom:1px solid #c3ddf31a}
.brand{color:#f0f6fc}.brand small{display:block;margin-top:3px;color:#adc6dc;font-size:.65rem;font-weight:500;letter-spacing:.025em;text-transform:none}
.nav-link{color:#ccdeed;border:1px solid transparent;border-radius:999px;padding:7px 13px}.nav-link:hover{border-color:#557694;background:#ffffff08}
.hero{padding:42px 0 40px;max-width:950px}
.hero h1{font-size:clamp(2.65rem,5.5vw,4.25rem);max-width:820px;line-height:1.06;letter-spacing:-.045em;text-wrap:balance}
.hero .subline{font-size:clamp(1.05rem,2vw,1.25rem);margin-top:17px}.hero-copy{margin-top:15px;max-width:740px}.hero-actions{margin-top:23px}
.button.primary,.button.dark{background:#c0e1ff;color:#102840}.button.primary:hover,.button.dark:hover{background:#e0f0ff;color:#102840}
.button.ghost{background:transparent;color:#d5eaff}.button.ghost:hover{background:#234663}
.projects-intro{padding-top:34px}.section-head{align-items:center;margin-bottom:22px}.section-head h2{font-size:1.65rem}.section-head p{max-width:465px;font-size:.94rem}
.note-card{padding:26px 28px;background:linear-gradient(135deg,#132b43,#102338);min-height:280px;box-shadow:0 4px 14px #0001}
.note-card.featured{background:linear-gradient(110deg,#193b59,#10283f);min-height:0;display:grid;grid-template-columns:1.1fr 1fr;column-gap:42px;border-color:#3b607d}
.note-card.featured .note-no{grid-column:1/-1}.note-card.featured h3{grid-column:1;grid-row:2/4;font-size:1.9rem;max-width:510px;line-height:1.15;margin-bottom:0}.note-card.featured .factual{grid-column:2;grid-row:2;margin-top:12px}.note-card.featured .aside{grid-column:2;grid-row:3;margin-top:10px}.note-card.featured .note-actions{grid-column:1/-1;padding-top:20px}
.note-card h3{line-height:1.2;max-width:440px}.note-card .factual{font-size:.97rem}.note-card .aside{font-size:.93rem}
.note-card:focus-within{border-color:#91caff}.note-card .arrow-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}.note-card .arrow-link:focus-visible{outline:none}.note-card:has(.arrow-link:focus-visible){outline:2px solid #b5ddff;outline-offset:4px}
.disclosure{background:transparent;border:0;border-left:2px solid #365775;border-radius:0;padding:6px 16px;font-size:.8rem;max-width:900px;margin-top:26px}
.aside-box{background:#10283d;border:1px solid var(--line)}.about-aside{padding:12px 0 48px}.linkedin-aside{font-size:.9rem}.linkedin-aside a{display:inline-block;margin-top:7px;color:#b5ddff}
footer{background:#071320;border-top:1px solid #20384e;font-size:.8rem}
.field-story{padding:32px}.field-section p,.field-section li{line-height:1.8}.project-hero{padding:35px 0 42px}.project-hero h1{font-size:clamp(2.35rem,5vw,3.7rem)}.crumb{display:block;width:fit-content}.diagram{background:linear-gradient(145deg,#193b59,#10283f);border:1px solid #365775}.under-bonnet{background:transparent}.pdf-cta{background:linear-gradient(110deg,#193b59,#10283f)}.pdf-actions{flex-shrink:1}.pdf-actions .button{white-space:nowrap}
.skip-link{position:absolute;left:20px;top:-100px;z-index:10;background:#d6eaff;color:#102840;padding:9px 16px;border-radius:6px}.skip-link:focus{top:10px}
a:focus-visible{outline:2px solid #b5ddff;outline-offset:5px}section[id]{scroll-margin-top:24px}
/* Content stays readable if JavaScript fails to load. */
.js .reveal{opacity:1;transform:none}.js .reveal.in{animation:arrive .45s ease both}@keyframes arrive{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:820px){.nav-links .nav-link:not(:last-child){display:inline-flex}.nav-links .nav-link[href="#aside"]{display:none}.hero{padding:32px 0}.section-head{align-items:flex-start}.note-card.featured{display:flex;gap:0}.note-card.featured h3{font-size:1.65rem;margin-bottom:10px}.note-card.featured .factual{margin-top:0}.note-card.featured .aside{margin-top:14px}.note-card{min-height:0;padding:24px}.note-card.featured .note-actions{padding-top:22px}.field-story{padding:24px}.project-hero{padding:30px 0 36px}}
@media(max-width:480px){nav{gap:8px;min-height:76px}.nav-links{gap:0}.nav-link{font-size:.78rem;padding:7px 8px}.brand{font-size:.75rem}.hero h1{font-size:2.6rem}.hero .kicker{font-size:.65rem}.hero-copy{font-size:.97rem}.aside-box{padding:23px}.nationality{grid-template-columns:1fr}.footer-inner{gap:8px}.pdf-cta{padding:22px}.pdf-actions{flex-direction:column;align-items:stretch;width:100%}}
@media(prefers-reduced-motion:reduce){.js .reveal.in{animation:none}}

/* Colour rhythm: neutral foundations, distinct projects, clear reading surfaces. */
:root{--paper2:#11151c;--paper:#1b222d;--ink:#eceff3;--navy:#f4f5f7;--muted:#b4bdc9;--line:#353e4b;--blue:#9bc9ff;--project-accent:#a9c9ff;--project-glow:#244c79;--warm:#f4ba79}
body{background:#11151c}
.site-header,.project-header{background:radial-gradient(ellipse at 96% 0%,var(--project-glow) 0%,transparent 62%),#151c28;border-color:#414b5d}
.site-header{background:radial-gradient(ellipse at 100% 0%,#234e74 0%,transparent 58%),radial-gradient(ellipse at 5% 100%,#44332d66,transparent 55%),#151c28}
.site-header::before{background:none}
.site-header::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#f4ba79,#9bc9ff 50%,#68cebf);opacity:.7}
.brand small{font-size:.75rem;color:#c1c6d0}.brand{letter-spacing:.07em}.nav-link{color:#e4e7ed}
.kicker{color:var(--warm);font-size:.78rem;letter-spacing:.12em}.field-label{color:#d6b58e}
.hero{padding:36px 0 36px;max-width:980px}.hero h1{font-size:clamp(2.7rem,5.6vw,4.4rem);max-width:940px;line-height:1.04;color:#f6f4f0}
.hero h1 em{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:400;color:#f4ba79;letter-spacing:-.045em}
.hero .subline{color:#e3e5ea}.hero-copy{color:#bdc5d0;max-width:730px}.hero-actions{margin-top:20px}
.button.primary,.button.dark{background:#f4ba79;color:#241c17;box-shadow:0 4px 18px #f4ba7912}.button.primary:hover,.button.dark:hover{background:#ffd3a3;color:#241c17;box-shadow:0 7px 24px #f4ba7929}
.button.ghost{border-color:#6e7887;color:#f1f3f6}.button.ghost:hover{background:#ffffff10}
.section-head h2{font-size:clamp(1.55rem,3vw,1.9rem);line-height:1.2;max-width:520px}.section-head p{max-width:390px;color:#b4bdc9}.section-head{margin-bottom:26px}.projects-intro{padding-top:36px}
.notes-grid{gap:22px}.note-card{--card-accent:#9bc9ff;background:linear-gradient(125deg,#203b58,#1b293b);border:1px solid #42617e;border-top:3px solid var(--card-accent);border-radius:14px;padding:27px 29px;min-height:295px}
.note-card:nth-child(3){--card-accent:#7be0c6;background:linear-gradient(125deg,#1d4544,#192e32);border-color:#366863;border-top-color:var(--card-accent)}
.note-card:nth-child(4){--card-accent:#d6b0f5;background:linear-gradient(125deg,#3d304b,#282432);border-color:#655172;border-top-color:var(--card-accent)}
.note-card:nth-child(5){--card-accent:#ffc38f;background:linear-gradient(125deg,#48382e,#2f2928);border-color:#745740;border-top-color:var(--card-accent)}
.note-card::after{display:none}.note-card h3{font-size:1.7rem;color:#fff;line-height:1.16;margin:16px 0 12px}.note-card .factual{color:#e0e5ec;font-size:1rem;font-weight:600}.note-card .aside{color:#bfc8d2;font-size:1rem;line-height:1.65}
.note-no{color:var(--card-accent);font-size:.76rem;letter-spacing:.065em}.note-card .arrow-link{color:var(--card-accent);font-size:.94rem}.note-card .note-actions{padding-top:24px}
.note-card:hover{border-color:var(--card-accent);box-shadow:0 16px 36px #0003;transform:translateY(-4px)}
.note-card.featured{--card-accent:#285578;background:#c4cfd9;border:1px solid #aabac8;border-left:5px solid #efa859;grid-template-columns:1.1fr 1fr;column-gap:48px;padding:28px 30px;box-shadow:0 10px 30px #0002}
.note-card.featured h3{color:#172b3f;font-size:clamp(1.8rem,3vw,2.15rem);line-height:1.14;max-width:480px}.note-card.featured .factual{color:#293e50}.note-card.featured .aside{color:#304355}.note-card.featured .note-no{color:#34495c;font-weight:600;font-size:.8125rem}.note-card.featured .arrow-link{color:#235578}.note-card.featured:hover{background:#cbd5de;border-color:#f4ba79}
.note-card:has(.arrow-link:focus-visible){outline-color:var(--card-accent)}
.disclosure{color:#a7b0be;border-left-color:#71634f;font-size:.82rem}
.aside-box{background:#212630;border:1px solid #414753;border-top:2px solid #f4ba79;padding:32px}.nationality strong{color:#f6c48b;font-size:1.1rem}.nationality span{color:#c7cbd3;font-size:1rem}.linkedin-aside p{color:#b8c0cc}.linkedin-aside a{color:#d9e7f9}
footer{background:#0c1016;border-top-color:#303741;color:#aab2bf}.footer-inner{font-size:.82rem}
body[data-project="hyper-v-cluster"]{--project-accent:#7be0c6;--project-glow:#245654}
body[data-project="legacy-app-automation"]{--project-accent:#d6b0f5;--project-glow:#523c64}
body[data-project="virtual-printer-automation"]{--project-accent:#ffc38f;--project-glow:#654832}
body[data-project="infrastructure-modernisation"]{--project-accent:#f4ba79;--project-glow:#384b63}
.project-hero .field-label{color:var(--project-accent)}.project-hero .lead{color:#c5ccd7}.project-hero h1{color:#f8f6f2}.project-hero .factual-title{color:#e3e8ee}
.project-meta{border-color:#404957;background:#404957}.meta-item{background:#202731}.meta-item b{color:var(--project-accent);font-size:.75rem}.meta-item span{color:#d5dbe3}
.field-story{background:#202a34;border-color:#465462;color:#e0e6ed;padding:34px;border-top:4px solid var(--project-accent);color-scheme:dark}
.field-section h2{color:#f5f7fa;font-size:1.45rem}.field-section p,.field-section ul{color:#e0e6ed;font-size:1.0625rem;line-height:1.8}.field-section+.field-section{border-color:#465462}.margin-note{color:#e0e6ed;background:#2a3946;border-left-color:var(--project-accent)}.quote-note{color:#e0e6ed}
.diagram{background:linear-gradient(140deg,var(--project-glow),#202733);border-color:#586675;border-top:3px solid var(--project-accent)}.diagram h2{font-size:1.2rem;line-height:1.35}.diagram .caption{font-size:.95rem;color:#d2d9e2}.flow-step .n{color:var(--project-accent)}.flow-step strong{font-size:.95rem}.flow-step span{font-size:.88rem;color:#d1d8e0}.flow-step{padding:12px;background:#0c13192b}
.under-bonnet{background:#1c232d;border-color:#3e4857}.under-bonnet h2{color:#eef1f5}.tech{font-size:.88rem;background:#2c3541;color:#dbe3ed}
.pdf-cta{background:#262c35;border-color:#525967;border-left:4px solid var(--project-accent)}.pdf-cta h2{color:#f4c78e}.pdf-cta p{color:#c0c7d1}.project-next a{color:var(--project-accent)}
@media(max-width:820px){.hero{padding:30px 0 34px}.note-card.featured{padding:25px;gap:0}.note-card.featured h3{font-size:1.85rem}.note-card{padding:25px;min-height:0}.section-head{gap:13px}.field-story{padding:25px}.aside-box{padding:25px}}
@media(max-width:480px){.hero h1{font-size:2.7rem}.hero h1 em{font-size:1em}.hero .kicker{font-size:.75rem;letter-spacing:.07em}.hero-copy{font-size:1rem}.note-card h3{font-size:1.6rem}.nav-link{font-size:.85rem;padding:8px}.brand small{font-size:.75rem}.pdf-cta{padding:22px}.section-head h2{font-size:1.65rem}.field-story{padding:22px}.note-no{letter-spacing:.03em}}

/* Consistent, bidirectional field-note navigation. */
.field-pagination{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:26px;padding:0;border:0;min-height:0;align-items:stretch}
.field-pagination a{display:flex;flex-direction:column;gap:7px;padding:20px 22px;border:1px solid #46515f;border-radius:12px;background:#202731;text-decoration:none;transition:background .18s ease,border-color .18s ease}
.field-pagination a:hover{background:#2a3442;border-color:var(--project-accent)}
.field-pagination a span{font-size:.875rem;color:#b8c2cf}.field-pagination a strong{font-size:1rem;line-height:1.5;color:var(--project-accent);font-weight:650;overflow-wrap:anywhere}
.field-pagination .field-next{text-align:right;align-items:flex-end}
.note-no,.project-hero .field-label{text-transform:none}
@media(max-width:600px){.field-pagination{grid-template-columns:1fr;gap:12px}.field-pagination a{padding:17px 19px}}

/* Shared gold finish for action buttons across the site. */
:is(.button.primary,.button.dark,.button.ghost){gap:20px;padding:10px 12px 10px 20px;min-height:54px;border:1px solid #f9d99e;border-radius:12px;background:linear-gradient(115deg,#f6d49a 0%,#edb965 48%,#dfaa59 100%);color:#241b10;box-shadow:inset 0 1px 0 #fff4d4b3,inset 0 -2px 0 #91602340,0 6px 16px #0003,0 0 22px #edb96514;letter-spacing:.01em}
:is(.button.primary,.button.dark,.button.ghost) .button-arrow{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;border:1px solid #72501d3d;background:#fff4d43d;font-size:1.1rem;line-height:1;transition:transform .2s ease,background .2s ease}
:is(.button.primary,.button.dark,.button.ghost):hover{background:linear-gradient(115deg,#ffe4b1,#f3c67c 48%,#e9b76b);color:#241b10;transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff7e2,0 9px 23px #0004,0 0 28px #edb96526}
:is(.button.primary,.button.dark,.button.ghost):hover .button-arrow{transform:translateY(2px);background:#fff4d470}
:is(.button.primary,.button.dark,.button.ghost):active{transform:translateY(0);box-shadow:inset 0 2px 4px #70471333,0 2px 8px #0003}
:is(.button.primary,.button.dark,.button.ghost):focus-visible{outline:2px solid #ffe2ac;outline-offset:5px}
@media(prefers-reduced-motion:reduce){:is(.button.primary,.button.dark,.button.ghost),:is(.button.primary,.button.dark,.button.ghost) .button-arrow{transform:none!important}}

/* Centre PDF actions when they wrap onto separate rows. */
.pdf-actions{justify-content:center}
@media(max-width:480px){.pdf-actions{align-items:center}.pdf-actions .button{max-width:100%}}
