{"id":33,"date":"2026-06-17T02:50:28","date_gmt":"2026-06-17T02:50:28","guid":{"rendered":"https:\/\/davidforde.net\/?page_id=33"},"modified":"2026-06-17T03:03:19","modified_gmt":"2026-06-17T03:03:19","slug":"home","status":"publish","type":"page","link":"https:\/\/davidforde.net\/","title":{"rendered":"Home"},"content":{"rendered":"<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\nhtml,body{overflow-x:hidden; overflow-x:clip; width:100%; max-width:100vw; position:relative}\r\n.dfx{overflow-x:clip}\r\n@media(max-width:700px){\r\n  html,body{touch-action:pan-y} \/* vertical scroll only \u2014 no pinch zoom, no sideways drift, no double-tap zoom *\/\r\n}\r\n.dfx{\r\n  --bg:#EDE6D6; --ink:#1E1A12; --panel:#FBF7EE; --panel-2:#F3ECDC; --line:#D8CDB6;\r\n  --text:#241F16; --muted:#5A5140; --dim:#8C8067;\r\n  --road:#945206; --code:#2C6E49; --sign:#2C6E49;\r\n  --asphalt:#211C13; --road-vivid:#B8690A;\r\n  --road-soft:rgba(184,105,10,.10); --code-soft:rgba(44,110,73,.10);\r\n  --display:\"Oswald\",system-ui,sans-serif;\r\n  --body:\"Inter\",system-ui,-apple-system,sans-serif;\r\n  --mono:\"Inter\",system-ui,-apple-system,sans-serif;\r\n  color:var(--text); font-family:var(--body);\r\n  line-height:1.6; -webkit-font-smoothing:antialiased; position:relative;\r\n  background:\r\n    radial-gradient(120% 60% at 50% -10%, rgba(184,105,10,.06), transparent 60%),\r\n    radial-gradient(100% 50% at 100% 100%, rgba(44,110,73,.05), transparent 55%),\r\n    linear-gradient(180deg, #F1EADB 0%, #EDE6D6 40%, #E7DFCD 100%);\r\n}\r\n.dfx::before{content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;\r\n  background-image:\r\n    repeating-linear-gradient(115deg, transparent 0 78px, rgba(148,82,6,.035) 78px 79px),\r\n    repeating-linear-gradient(155deg, transparent 0 120px, rgba(44,110,73,.03) 120px 121px);\r\n  -webkit-mask-image:linear-gradient(180deg, transparent, #000 15%, #000 85%, transparent);\r\n          mask-image:linear-gradient(180deg, transparent, #000 15%, #000 85%, transparent);\r\n}\r\n.dfx > *{position:relative; z-index:1}\r\n.dfx *{box-sizing:border-box; margin:0; padding:0}\r\n.dfx a{color:inherit; text-decoration:none}\r\n.dfx em{font-style:italic}\r\n.dfx .wrap{max-width:1120px; margin:0 auto; padding:0 24px}\r\n.dfx .eyebrow{font-family:var(--mono); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--dim)}\r\n.dfx .eyebrow-lead{display:flex; align-items:center; gap:11px; flex-wrap:wrap}\r\n.dfx .pro-tag{font-family:var(--display); font-weight:600; font-size:.68rem; letter-spacing:.16em; color:#1a1304; background:var(--road-vivid); padding:4px 10px; border-radius:4px}\r\n.dfx .seam{height:6px; border:0; background:var(--asphalt); position:relative; opacity:1}\r\n.dfx .seam::before{content:\"\"; position:absolute; left:0; right:0; top:50%; height:2px; transform:translateY(-50%); background-image:repeating-linear-gradient(90deg,var(--road) 0 26px,transparent 26px 52px); opacity:.9}\r\n.dfx .road-band{position:relative; background:var(--asphalt); padding:32px 0; overflow:hidden; box-shadow:0 8px 24px -14px rgba(0,0,0,.5) inset}\r\n.dfx .road-band::before,.dfx .road-band::after{content:\"\"; position:absolute; left:0; right:0; height:3px; background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.25) 0 20px,transparent 20px 40px); z-index:2}\r\n.dfx .road-band::before{top:12px}.dfx .road-band::after{bottom:12px}\r\n.dfx .marq{position:relative; overflow:hidden}\r\n.dfx .marq-track{display:flex; width:max-content; animation:marqMove 32s linear infinite}\r\n.dfx .marq-set{display:inline-flex; align-items:center; gap:28px; padding-right:28px; font-family:var(--display); font-weight:600; font-size:clamp(.95rem,2vw,1.3rem); letter-spacing:.09em; text-transform:uppercase; color:#F5EEDF; white-space:nowrap}\r\n.dfx .marq-set b{color:var(--road-vivid); font-weight:400; text-shadow:0 0 9px rgba(244,166,42,.55)}\r\n@keyframes marqMove{to{transform:translateX(-50%)}}\r\n@media(max-width:600px){.dfx .marq-track{animation-duration:24s}.dfx .road-band{padding:26px 0}}\r\n@media(prefers-reduced-motion:reduce){.dfx .marq-track{animation:none}}\r\n\r\n\/* internal anchor bar (static, theme-friendly) *\/\r\n.dfx .topbar{border-bottom:1px solid var(--line); position:sticky; top:0; z-index:40; transition:padding .25s ease, background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease}\r\n.dfx .topbar.scrolled{background:rgba(237,230,214,.82); -webkit-backdrop-filter:blur(10px) saturate(1.2); backdrop-filter:blur(10px) saturate(1.2); box-shadow:0 6px 20px -14px rgba(30,26,18,.5)}\r\n.dfx[data-theme=\"dark\"] .topbar.scrolled{background:rgba(21,18,12,.82)}\r\n.dfx .topbar.scrolled .topbar-in{height:52px}\r\n.dfx .topbar-in{transition:height .25s ease}\r\n.dfx .topbar-in{display:flex; align-items:center; justify-content:space-between; height:58px}\r\n.dfx .mark{display:inline-flex; align-items:center; gap:12px; font-family:var(--display); font-weight:700; letter-spacing:.05em; font-size:1.18rem; color:var(--text); transition:transform .18s}\r\n.dfx .mark:hover{transform:translateY(-1px)}\r\n.dfx .mark:hover .mark-badge{box-shadow:0 9px 22px -6px rgba(44,110,73,.5)}\r\n.dfx .mark-badge{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; font-size:.95rem; letter-spacing:.01em; color:#fff; background:linear-gradient(135deg,var(--road),var(--code)); box-shadow:0 6px 16px -6px rgba(44,110,73,.4); transition:box-shadow .2s}\r\n.dfx .mark-name{line-height:1}\r\n.dfx .mark b{color:var(--road)}\r\n.dfx .tlinks{display:flex; gap:26px; font-family:var(--mono); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase}\r\n.dfx .tlinks a{color:var(--muted); transition:color .2s}\r\n.dfx .tlinks a:hover{color:var(--text)}\r\n.dfx .tstatus{font-family:var(--mono); font-size:.7rem; color:var(--dim); display:flex; align-items:center; gap:8px}\r\n.dfx .dot{width:8px; height:8px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #7BD9A4, var(--sign)); box-shadow:0 0 6px rgba(95,203,142,.7), 0 0 2px var(--sign); animation:dotGlow 2.2s ease-in-out infinite}\r\n@keyframes dotGlow{0%,100%{box-shadow:0 0 5px rgba(95,203,142,.55), 0 0 2px var(--sign)}50%{box-shadow:0 0 9px rgba(95,203,142,.85), 0 0 3px var(--sign)}}\r\n@media(prefers-reduced-motion:reduce){.dfx .dot{animation:none}}\r\n@media(max-width:760px){.dfx .tlinks,.dfx .tstatus{display:none}}\r\n\r\n\/* HERO \u2014 driver forward *\/\r\n.dfx .hero{padding:74px 0 86px}\r\n\/* living highway: streaming lane markings at hero base *\/\r\n.dfx .hero-road{position:absolute; left:0; right:0; bottom:0; height:26px; background:var(--asphalt); box-shadow:0 -6px 16px -8px rgba(0,0,0,.4)}\r\n.dfx .hero-road::before{content:\"\"; position:absolute; left:0; right:0; top:50%; height:3px; transform:translateY(-50%); background-image:repeating-linear-gradient(90deg, var(--road-vivid) 0 34px, transparent 34px 78px); animation:roadStream 1.15s linear infinite; filter:drop-shadow(0 0 5px rgba(244,166,42,.55))}\r\n.dfx .hero-road::after{content:\"\"; position:absolute; left:0; right:0; top:4px; height:2px; background-image:repeating-linear-gradient(90deg, rgba(255,255,255,.16) 0 14px, transparent 14px 30px)}\r\n@keyframes roadStream{to{background-position:-78px 0}}\r\n@media(max-width:600px){.dfx .hero-road{height:20px}}\r\n@media(prefers-reduced-motion:reduce){.dfx .hero-road::before{animation:none}}\r\n.dfx .hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center}\r\n.dfx .hero h1{font-family:var(--display); font-weight:700; font-size:clamp(3.2rem,7.5vw,5.8rem); line-height:.95; letter-spacing:.005em; text-transform:uppercase; margin:18px 0 22px}\r\n.dfx .hero h1 .amber{color:var(--road-vivid)}\r\n.dfx .hero h1 .cyan{color:var(--code)}\r\n.dfx .hero h1 .grad{background:linear-gradient(90deg,var(--road-vivid),var(--code)); -webkit-background-clip:text; background-clip:text; color:transparent}\r\n.dfx .lede{font-size:1.12rem; color:var(--muted); max-width:38ch}\r\n.dfx .lede-break{display:none}\r\n@media(max-width:600px){.dfx .lede-break{display:inline}}\r\n@media(max-width:400px){.dfx .lede{font-size:1.02rem}}\r\n@media(max-width:345px){.dfx .lede{font-size:.94rem}}\r\n.dfx .lede strong{color:var(--text); font-weight:600}\r\n.dfx .hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px}\r\n.dfx .btn{font-family:var(--mono); font-size:.82rem; letter-spacing:.04em; padding:13px 22px; border-radius:8px; border:1px solid var(--line); transition:transform .15s,border-color .2s,background .2s,color .2s; display:inline-flex; align-items:center; gap:9px; cursor:pointer}\r\n.dfx .btn:hover{transform:translateY(-2px)}\r\n.dfx .btn-primary{background:linear-gradient(140deg, var(--road-vivid), #8a4d05); color:#fff; border-color:transparent; font-weight:700; box-shadow:0 6px 16px -6px rgba(148,82,6,.55), inset 0 1px 0 rgba(255,255,255,.22)}\r\n.dfx .btn-primary:hover{filter:brightness(1.08); box-shadow:0 8px 22px -6px rgba(148,82,6,.65), inset 0 1px 0 rgba(255,255,255,.25)}\r\n.dfx .btn-primary:hover{background:#ffc05a}\r\n.dfx .btn-ghost:hover{border-color:var(--road); color:var(--road)}\r\n\r\n.dfx .hero-photo{position:relative; border-radius:18px; border:1px solid var(--line); background:linear-gradient(165deg,#FEFCF7,#F4EDDD); padding:10px 12px 0}\r\n.dfx .id-clip{display:block; width:60px; height:9px; margin:2px auto 10px; border-radius:5px; background:linear-gradient(180deg,#CFC5AC,#B7AB8E); box-shadow:inset 0 1.5px 3px rgba(30,26,18,.45), 0 1px 0 rgba(255,255,255,.7)}\r\n.dfx .id-photo{position:relative; border-radius:11px; overflow:hidden; aspect-ratio:1\/1; background:var(--panel)}\r\n.dfx .id-photo img{width:100%; height:100%; object-fit:cover; object-position:50% 40%; filter:grayscale(1) contrast(1.08) brightness(1.02); display:block}\r\n.dfx .id-photo::before{content:\"\"; position:absolute; inset:0; z-index:1; mix-blend-mode:color; background:linear-gradient(150deg, rgba(184,105,10,.55), rgba(44,110,73,.35) 70%); pointer-events:none}\r\n.dfx .id-photo::after{content:\"\"; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg, rgba(33,28,19,.10) 30%, rgba(33,28,19,.5) 100%); pointer-events:none}\r\n.dfx .id-strip{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 2px 12px}\r\n.dfx .id-name{font-family:var(--display); font-weight:600; font-size:.78rem; letter-spacing:.13em; color:#2A241A; white-space:nowrap}\r\n.dfx .id-name b{color:var(--road-vivid); font-weight:600}\r\n.dfx .id-bar{flex:none; width:74px; height:20px; opacity:.85; background-image:repeating-linear-gradient(90deg,#241F16 0 2px,transparent 2px 4px,#241F16 4px 7px,transparent 7px 9px,#241F16 9px 10px,transparent 10px 13px)}\r\n.dfx[data-theme=\"dark\"] .hero-photo{background:linear-gradient(165deg,#F2EBDB,#E4DAC2)}\r\n.dfx[data-theme=\"dark\"] .hero-photo::before{background:linear-gradient(150deg, rgba(244,166,42,.5), rgba(95,203,142,.32) 70%)}\r\n@media(max-width:880px){.dfx .hero{padding-top:28px}.dfx .hero-grid{grid-template-columns:1fr; gap:30px}.dfx .hero-photo{max-width:340px; order:-1; justify-self:center; margin-inline:auto}}\r\n\r\n.dfx .ticker{margin-top:0; display:flex; flex-wrap:nowrap; justify-content:center; gap:4px; font-family:var(--mono); font-size:.72rem; letter-spacing:-.01em}\r\n.dfx .ticker span{display:inline-flex; align-items:center; gap:6px; white-space:nowrap; background:linear-gradient(180deg, var(--panel), var(--panel-2)); border:1px solid var(--line); border-radius:11px; padding:9px 9px 9px 8px; color:var(--muted); box-shadow:0 1px 2px rgba(30,26,18,.05), inset 0 1px 0 rgba(255,255,255,.6); position:relative; transition:transform .18s ease, border-color .2s, box-shadow .2s}\r\n.dfx .ticker span::before{content:\"\"; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:3px; background:var(--road-vivid); opacity:.85}\r\n.dfx .ticker span:hover{transform:translateY(-2px); border-color:var(--road); box-shadow:0 8px 18px -8px rgba(148,82,6,.45), inset 0 1px 0 rgba(255,255,255,.7)}\r\n.dfx .ticker span:active{transform:translateY(0) scale(.98)}\r\n.dfx .ticker .k{color:var(--text); font-weight:700; letter-spacing:.01em}\r\n.dfx .pill-ic{position:relative; width:26px; height:26px; flex:none; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:linear-gradient(140deg, var(--road-vivid), #8a4d05); box-shadow:0 2px 6px -2px rgba(148,82,6,.55), inset 0 1px 0 rgba(255,255,255,.28)}\r\n.dfx .pill-ic::before{content:\"\"; width:15px; height:15px; background:#fff; -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-image:inherit; mask-image:inherit; filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}\r\n\/* green variant for cert icons *\/\r\n.dfx .ic-shield{background:linear-gradient(140deg, #3a8d63, var(--sign)); box-shadow:0 2px 6px -2px rgba(44,110,73,.55), inset 0 1px 0 rgba(255,255,255,.28)}\r\n.dfx .ic-check{background:linear-gradient(140deg, #3a8d63, var(--sign)); box-shadow:0 2px 6px -2px rgba(44,110,73,.55), inset 0 1px 0 rgba(255,255,255,.28)}\r\n.dfx .pill-btn:hover .pill-ic{transform:scale(1.08); box-shadow:0 4px 10px -3px rgba(148,82,6,.65), inset 0 1px 0 rgba(255,255,255,.35)}\r\n.dfx .pill-btn:hover .ic-shield,.dfx .pill-btn:hover .ic-check{box-shadow:0 4px 10px -3px rgba(44,110,73,.65), inset 0 1px 0 rgba(255,255,255,.35)}\r\n.dfx .pill-ic{transition:transform .18s cubic-bezier(.3,1.3,.5,1), box-shadow .18s}\r\n\/* anchored credential strip *\/\r\n.dfx .cred-strip{position:relative; margin-top:34px; padding:20px 22px 22px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(180deg, rgba(251,247,238,.5), rgba(243,236,220,.35)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 12px 30px -24px rgba(30,26,18,.35)}\r\n.dfx .cred-strip::before{content:\"\"; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:3px; background:linear-gradient(180deg,var(--road-vivid),var(--sign))}\r\n.dfx .cred-strip-label{position:absolute; top:-9px; left:20px; font-family:var(--mono); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); background:var(--bg); padding:0 8px}\r\n.dfx .cred-strip-hint{display:block; text-align:center; margin-top:12px; font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; color:var(--dim)}\r\n.dfx[data-theme=\"dark\"] .cred-strip{background:linear-gradient(180deg, rgba(37,32,23,.5), rgba(30,26,18,.35))}\r\n.dfx[data-theme=\"dark\"] .cred-strip-label{background:var(--bg)}\r\n@media(max-width:600px){\r\n  .dfx .cred-strip{padding:16px 14px 16px; margin-top:26px}\r\n  .dfx .cred-strip-hint{display:none}\r\n}\r\n\/* clickable pill affordance (desktop) *\/\r\n.dfx .pill-btn{cursor:pointer}\r\n.dfx .pill-btn::after{content:\"\"; position:absolute; top:-5px; right:-5px; width:16px; height:16px; border-radius:50%; background:var(--sign) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='6.5' r='1.7' fill='%23fff'\/%3E%3Crect x='10.5' y='10' width='3' height='8' rx='1.4' fill='%23fff'\/%3E%3C\/svg%3E\") center\/11px 11px no-repeat; box-shadow:0 2px 5px -1px rgba(44,110,73,.5), inset 0 0 0 1.4px rgba(255,255,255,.85); opacity:0; transform:scale(.5) translateY(2px); transition:opacity .2s cubic-bezier(.3,1.4,.5,1), transform .2s cubic-bezier(.3,1.4,.5,1); pointer-events:none}\r\n.dfx .pill-btn:hover::after,.dfx .pill-btn:focus-visible::after{opacity:1; transform:scale(1) translateY(0)}\r\n\/* credential modal *\/\r\n.dfx .modal-card.cred{max-width:440px; text-align:left; border-top:4px solid var(--road)}\r\n.dfx .cred-head{display:flex; justify-content:center; margin:2px 0 14px}\r\n.dfx .cred-head--logos{padding:16px 0 6px}\r\n.dfx .cred-logos{display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 20px; box-shadow:0 6px 18px -12px rgba(30,26,18,.4)}\r\n.dfx .cred-logo{height:34px; width:auto; display:block}\r\n.dfx .cred-logo--waymo{height:22px}\r\n.dfx .cred-x{font-family:var(--display); font-weight:600; font-size:1.1rem; color:var(--dim)}\r\n.dfx .cred-badge{display:inline-flex; align-items:center; justify-content:center; min-width:74px; height:52px; padding:0 16px; border-radius:12px; font-family:var(--display); font-weight:700; font-size:1.35rem; letter-spacing:.02em; color:#fff; box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}\r\n.dfx .cred-badge--amber{background:linear-gradient(135deg,var(--road-vivid),#8a4d05)}\r\n.dfx .cred-badge--green{background:linear-gradient(135deg,#3a8d63,var(--sign))}\r\n.dfx .modal-card.cred .lbl{margin-bottom:5px}\r\n.dfx .modal-card.cred h3{font-size:1.32rem; line-height:1.15; margin-bottom:10px}\r\n.dfx .cred-body{font-family:var(--body); font-size:.96rem; color:var(--muted); line-height:1.5; margin-bottom:14px}\r\n.dfx .cred-points{list-style:none; margin:0 0 6px; padding:0}\r\n.dfx .cred-points li{position:relative; padding:8px 0 8px 30px; border-top:1px solid var(--line); font-size:.9rem; color:var(--text); line-height:1.4}\r\n.dfx .cred-points li:first-child{border-top:0}\r\n.dfx .cred-points li::before{content:\"\"; position:absolute; left:0; top:9px; width:18px; height:18px; border-radius:50%; background:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'\/%3E%3C\/svg%3E\") center\/10px 10px no-repeat, linear-gradient(140deg,#3a8d63,var(--sign)); box-shadow:0 2px 5px -2px rgba(44,110,73,.5), inset 0 1px 0 rgba(255,255,255,.25)}\r\n.dfx .cred-points li b{color:var(--text); font-weight:700}\r\n.dfx .cred-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px}\r\n.dfx .cred-actions .btn{font-size:.8rem; padding:11px 18px}\r\n.dfx .ic-shield{-webkit-mask-image:none; mask-image:none}\r\n.dfx .ic-shield::before{-webkit-mask-image:none; mask-image:none; background:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M12 2l8 3v7c0 6-8 10-8 10S4 18 4 12V5l8-3z'\/%3E%3Cpath fill='%232C6E49' d='M10.7 16.4l-4-4 1.8-1.8 2.2 2.2 5.2-5.2 1.8 1.8-7 7z'\/%3E%3C\/svg%3E\") center\/contain no-repeat; filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}\r\n.dfx .ic-badge{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Ccircle cx='12' cy='8.5' r='5.5'\/%3E%3Cpath d='M8.2 13.2 6.5 22l5.5-3.2L17.5 22l-1.7-8.8a7.5 7.5 0 0 1-7.6 0z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Ccircle cx='12' cy='8.5' r='5.5'\/%3E%3Cpath d='M8.2 13.2 6.5 22l5.5-3.2L17.5 22l-1.7-8.8a7.5 7.5 0 0 1-7.6 0z'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-grad{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 3 1 8.5l11 5.5 9-4.5v6h2v-7L12 3z'\/%3E%3Cpath d='M5 13.2V17c0 1.7 3.1 3.5 7 3.5s7-1.8 7-3.5v-3.8l-7 3.5-7-3.5z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 3 1 8.5l11 5.5 9-4.5v6h2v-7L12 3z'\/%3E%3Cpath d='M5 13.2V17c0 1.7 3.1 3.5 7 3.5s7-1.8 7-3.5v-3.8l-7 3.5-7-3.5z'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-star{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-check{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5.5 5.5L20 6.5'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 12.5 5.5 5.5L20 6.5'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-gear{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 8.2a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6zm9.4 5.7.1-1.9-2.3-.8a7.3 7.3 0 0 0-.7-1.7l1.1-2.2-1.4-1.4-2.2 1.1a7.3 7.3 0 0 0-1.7-.7L13.9 4h-1.9l-.8 2.3a7.3 7.3 0 0 0-1.7.7L7.3 5.9 5.9 7.3 7 9.5a7.3 7.3 0 0 0-.7 1.7l-2.3.8v1.9l2.3.8c.2.6.4 1.2.7 1.7l-1.1 2.2 1.4 1.4 2.2-1.1c.5.3 1.1.5 1.7.7l.8 2.3h1.9l.8-2.3a7.3 7.3 0 0 0 1.7-.7l2.2 1.1 1.4-1.4-1.1-2.2c.3-.5.5-1.1.7-1.7l2.3-.8z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 8.2a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6zm9.4 5.7.1-1.9-2.3-.8a7.3 7.3 0 0 0-.7-1.7l1.1-2.2-1.4-1.4-2.2 1.1a7.3 7.3 0 0 0-1.7-.7L13.9 4h-1.9l-.8 2.3a7.3 7.3 0 0 0-1.7.7L7.3 5.9 5.9 7.3 7 9.5a7.3 7.3 0 0 0-.7 1.7l-2.3.8v1.9l2.3.8c.2.6.4 1.2.7 1.7l-1.1 2.2 1.4 1.4 2.2-1.1c.5.3 1.1.5 1.7.7l.8 2.3h1.9l.8-2.3a7.3 7.3 0 0 0 1.7-.7l2.2 1.1 1.4-1.4-1.1-2.2c.3-.5.5-1.1.7-1.7l2.3-.8z'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-card{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M2 5h20a1 1 0 0 1 1 1v3H1V6a1 1 0 0 1 1-1zM1 11h22v7a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-7zm3 4h6v2H4v-2z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M2 5h20a1 1 0 0 1 1 1v3H1V6a1 1 0 0 1 1-1zM1 11h22v7a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1v-7zm3 4h6v2H4v-2z'\/%3E%3C\/svg%3E\")}\r\n.dfx .ic-pc{-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 3.5h18a1 1 0 0 1 1 1V15a1 1 0 0 1-1 1h-6.6l.7 2.5H17a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2h1.9l.7-2.5H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z'\/%3E%3C\/svg%3E\"); mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 3.5h18a1 1 0 0 1 1 1V15a1 1 0 0 1-1 1h-6.6l.7 2.5H17a1 1 0 0 1 0 2H7a1 1 0 0 1 0-2h1.9l.7-2.5H3a1 1 0 0 1-1-1V4.5a1 1 0 0 1 1-1z'\/%3E%3C\/svg%3E\")}\r\n@media(max-width:1119px){\r\n  .dfx .ticker{flex-wrap:wrap; font-size:.84rem; gap:9px}\r\n  .dfx .ticker span{padding:10px 14px 10px 12px}\r\n}\r\n@media(max-width:600px){\r\n  .dfx .ticker{gap:9px; font-size:.86rem; width:100%}\r\n  .dfx .ticker span{padding:11px 14px 11px 12px; flex:1 1 calc(50% - 9px); justify-content:flex-start}\r\n  .dfx .pill-btn{cursor:pointer}\r\n  .dfx .pill-btn::after{opacity:1; transform:scale(1) translateY(0)}\r\n  .dfx .pill-btn:active{transform:translateY(0) scale(.97)}\r\n}\r\n\r\n\/* SECTION SHELL *\/\r\n.dfx .sec{padding:66px 0}\r\n.dfx .sec-head{display:flex; align-items:center; gap:16px; margin-bottom:32px}\r\n.dfx .sec-num{font-family:var(--mono); font-weight:700; font-size:.82rem; color:#fff; width:46px; height:50px; display:inline-flex; align-items:center; justify-content:center; padding-top:3px; flex:none; background:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 26'%3E%3Cpath d='M12 1C9.2 2.9 5.4 3.5 2.2 3.1 1.9 6.2 2.4 10.2 4 14.2 6.4 19.6 9.4 22.5 12 24.4 14.6 22.5 17.6 19.6 20 14.2 21.6 10.2 22.1 6.2 21.8 3.1 18.6 3.5 14.8 2.9 12 1Z' fill='%232C6E49' stroke='%23ffffff' stroke-width='1.5'\/%3E%3C\/svg%3E\") center\/contain no-repeat; letter-spacing:.04em; line-height:1; filter:drop-shadow(0 4px 8px rgba(44,110,73,.45)); position:relative}\r\n.dfx[data-theme=\"dark\"] .sec-num{color:#0B120E; box-shadow:inset 0 0 0 2px var(--asphalt), 0 3px 8px -4px rgba(74,222,158,.4)}\r\n.dfx .sec-title{font-family:var(--display); font-weight:600; font-size:clamp(1.9rem,4vw,2.7rem); letter-spacing:.01em; text-transform:uppercase; line-height:1.05}\r\n.dfx .road-accent{color:var(--road)} .dfx .code-accent{color:var(--code)}\r\n\r\n\/* ON THE ROAD *\/\r\n.dfx .road-sec{background:linear-gradient(180deg,transparent,var(--road-soft) 130%)}\r\n.dfx .drive-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px}\r\n.dfx .plate{position:relative; border:1px solid #E4CF9E; border-radius:16px; background:linear-gradient(160deg,#FFFDF7,#F7EEDA 55%,#FBF3E3); padding:7px; overflow:hidden; box-shadow:0 1px 0 rgba(255,255,255,.7) inset, 0 -2px 6px rgba(148,82,6,.08) inset, 0 20px 44px -30px rgba(15,27,46,.30); transform-style:preserve-3d; transition:box-shadow .25s ease, transform .12s ease-out; will-change:transform}\r\n.dfx .plate::after{content:\"\"; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.4; background-image:repeating-linear-gradient(90deg, rgba(148,82,6,.02) 0 2px, transparent 2px 4px); mix-blend-mode:multiply}\r\n.dfx .plate-sheen{position:absolute; top:0; left:-60%; width:45%; height:100%; z-index:6; pointer-events:none; background:linear-gradient(105deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-18deg); transition:left .1s linear; opacity:0}\r\n.dfx .plate:hover{box-shadow:0 1px 0 rgba(194,117,12,.15) inset, 0 30px 60px -34px rgba(148,82,6,.55)}\r\n.dfx .plate::before{content:\"\"; position:absolute; inset:7px; border:2px solid rgba(148,82,6,.28); border-radius:11px; pointer-events:none; z-index:3}\r\n.dfx .plate-bolt{position:absolute; width:9px; height:9px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#efe4c6,#b9a678); box-shadow:inset 0 0 0 1px rgba(120,90,30,.4); z-index:4}\r\n.dfx .plate-bolt.tl{top:16px; left:16px}.dfx .plate-bolt.tr{top:16px; right:16px}\r\n.dfx .plate-bolt.bl{bottom:16px; left:16px}.dfx .plate-bolt.br{bottom:16px; right:16px}\r\n.dfx .plate-inner{border-radius:11px; overflow:hidden; position:relative; z-index:2}\r\n.dfx .plate-top{display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px solid #EEE1BD; background:rgba(148,82,6,.07)}\r\n.dfx .plate-top .cls{font-family:var(--display); font-weight:700; font-size:1.55rem; color:var(--road-vivid); letter-spacing:.03em; text-transform:uppercase}\r\n.dfx .plate-top .st{font-family:var(--mono); font-size:.72rem; color:var(--muted); text-align:right; line-height:1.5}\r\n.dfx .plate-body{padding:20px}\r\n.dfx .endos{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:18px}\r\n.dfx .endo{position:relative; border:1px solid #DEC488; background:linear-gradient(180deg,#FFFEFA,#F6EBCF); border-radius:9px; padding:11px 14px 9px; min-width:70px; text-align:center; cursor:default; box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 -2px 0 rgba(194,117,12,.14), 0 2px 5px -3px rgba(15,27,46,.3); transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s}\r\n.dfx .plate.stamp .endo{opacity:0; animation:stampIn .45s cubic-bezier(.3,1.5,.5,1) forwards; animation-delay:var(--sd,0s)}\r\n@keyframes stampIn{0%{opacity:0; transform:scale(1.6) rotate(-6deg)}60%{opacity:1; transform:scale(.94) rotate(1deg)}100%{opacity:1; transform:scale(1) rotate(0)}}\r\n@media(prefers-reduced-motion:reduce){.dfx .plate.stamp .endo{opacity:1; animation:none}}\r\n.dfx .endo:hover,.dfx .endo:focus-visible{transform:translateY(-3px) scale(1.05) rotate(-1.5deg); box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 -2px 0 rgba(194,117,12,.2), 0 10px 20px -8px rgba(148,82,6,.5); outline:none}\r\n.dfx .endo::after{content:\"\u2713\"; position:absolute; top:-7px; right:-7px; width:18px; height:18px; border-radius:50%; background:var(--sign); color:#fff; font-size:.6rem; font-weight:700; display:flex; align-items:center; justify-content:center; transform:scale(0); transition:transform .18s cubic-bezier(.3,1.4,.5,1)}\r\n.dfx .endo:hover::after,.dfx .endo:focus-visible::after{transform:scale(1)}\r\n.dfx .endo b{display:block; font-family:var(--display); font-weight:800; font-size:1.5rem; color:var(--road-vivid); line-height:1; text-shadow:0 1px 0 rgba(255,255,255,.7)}\r\n.dfx .endo-twic b{font-size:1.15rem; letter-spacing:.02em}\r\n.dfx .endo span{font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; color:var(--muted); text-transform:uppercase; margin-top:4px; display:block}\r\n.dfx .plate-rows{font-family:var(--mono); font-size:.82rem}\r\n.dfx .plate-rows div{display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-top:1px solid var(--line)}\r\n.dfx .plate-rows div span:first-child{color:var(--dim)}\r\n.dfx .plate-rows div span:last-child{color:var(--text); text-align:right}\r\n.dfx .plate-rows a{color:var(--road); text-decoration:none}\r\n.dfx .plate-rows a:hover{text-decoration:underline}\r\n.dfx .modal-link{cursor:pointer}\r\n\r\n\/* modal *\/\r\n.dfx .modal{position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(15,27,46,.45); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px)}\r\n.dfx .modal.open{display:flex}\r\n.dfx .modal-card{position:relative; max-width:440px; width:100%; max-height:88vh; overflow-y:auto; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--road); border-radius:14px; padding:28px; box-shadow:0 30px 80px -24px rgba(15,27,46,.22); animation:modalIn .3s cubic-bezier(.25,1,.4,1)}\r\n@keyframes modalIn{from{opacity:0; transform:translateY(14px) scale(.98)}to{opacity:1; transform:none}}\r\n@media(max-width:600px){\r\n  .dfx .modal{align-items:center; padding:20px}\r\n  .dfx .modal-card{max-width:min(350px, calc(100vw - 40px)); width:100%; max-height:74vh; border-radius:18px; padding:22px 20px 20px; animation:modalIn .3s cubic-bezier(.25,1,.4,1)}\r\n  .dfx .modal-close{top:14px; right:14px; width:38px; height:38px}\r\n  .dfx .cred-actions{flex-direction:column}\r\n  .dfx .cred-actions .btn{width:100%; justify-content:center; text-align:center; padding:14px 20px}\r\n  .dfx .modal-card h3{font-size:1.28rem; padding-right:40px}\r\n}\r\n@media(prefers-reduced-motion:reduce){.dfx .modal-card{animation:none}}\r\n.dfx .modal-close{position:absolute; top:14px; right:14px; width:34px; height:34px; border:1px solid var(--line); background:var(--panel-2); color:var(--muted); border-radius:50%; cursor:pointer; font-size:1rem; line-height:1; display:flex; align-items:center; justify-content:center; transition:color .2s,border-color .2s,background .2s,transform .25s cubic-bezier(.3,1.3,.5,1); box-shadow:0 2px 6px -3px rgba(30,26,18,.3)}\r\n.dfx .modal-close:hover{color:#fff; background:linear-gradient(140deg,var(--road-vivid),#8a4d05); border-color:transparent; transform:rotate(90deg)}\r\n.dfx .modal-card .lbl{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--road); margin-bottom:8px}\r\n.dfx .modal-card h3{font-family:var(--display); font-size:1.4rem; font-weight:700; margin-bottom:6px}\r\n.dfx .modal-meta{font-family:var(--mono); font-size:.74rem; color:var(--dim); margin-bottom:16px}\r\n.dfx .modal-card p.modal-body{color:var(--muted); font-size:.96rem; margin-bottom:22px}\r\n.dfx .modal{overflow-y:auto}\r\n.dfx .modal-card.wide{max-width:780px}\r\n.dfx .cert-img{display:block; width:100%; height:auto; max-height:72vh; object-fit:contain; border:1px solid var(--line); border-radius:8px; background:#fff; margin-top:4px}\r\n.dfx .modal-card.resume{max-width:960px; padding:22px}\r\n@media(max-width:600px){\r\n  .dfx .modal-card.wide,.dfx .modal-card.resume{max-width:min(400px, calc(100vw - 32px)); padding:22px 20px 20px}\r\n}\r\n.dfx .resume-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:12px; padding-right:34px}\r\n.dfx .resume-tools{display:flex; align-items:center; gap:6px; background:var(--panel-2); border:1px solid var(--line); border-radius:10px; padding:5px}\r\n.dfx .rtool{min-width:34px; height:34px; padding:0 10px; border:1px solid transparent; background:transparent; color:var(--text); border-radius:7px; cursor:pointer; font-family:var(--display); font-weight:600; font-size:1.05rem; line-height:1; display:inline-flex; align-items:center; justify-content:center; transition:background .15s,border-color .15s,color .15s}\r\n.dfx .rtool:hover{background:var(--panel); border-color:var(--line); color:var(--road)}\r\n.dfx .rz-level{font-family:var(--mono); font-size:.74rem; color:var(--muted); min-width:42px; text-align:center; user-select:none}\r\n.dfx .resume-shell{position:relative; width:100%; max-width:640px; margin:0 auto}\r\n.dfx .resume-stage{position:relative; width:100%; aspect-ratio:8.5\/11; max-height:76vh; border:1px solid var(--line); border-radius:10px; background:#525659; overflow:auto; touch-action:pan-x pan-y; -webkit-overflow-scrolling:touch; scrollbar-width:thin}\r\n.dfx .resume-canvas{display:block; margin:0 auto; cursor:grab}\r\n.dfx .resume-canvas.dragging{cursor:grabbing}\r\n.dfx .resume-canvas canvas{display:block; width:100%; height:auto; background:#fff; margin:0 auto 12px; box-shadow:0 4px 16px -8px rgba(0,0,0,.55)}\r\n.dfx .resume-canvas canvas:last-child{margin-bottom:0}\r\n.dfx .resume-loading{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:1; font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#f0ebe0; pointer-events:none; text-align:center}\r\n.dfx .resume-hint{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); z-index:2; font-family:var(--mono); font-size:.66rem; letter-spacing:.04em; color:#f0ebe0; background:rgba(20,18,12,.78); padding:6px 12px; border-radius:20px; pointer-events:none; opacity:.9; transition:opacity .3s}\r\n.dfx .resume-hint.hide{opacity:0}\r\n.dfx .resume-mobile{display:none}\r\n.dfx .rm-card{text-align:center; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,var(--panel),var(--panel-2)); padding:22px 20px}\r\n.dfx .rm-badge{width:48px; height:48px; margin:0 auto 12px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:1.25rem; color:#fff; background:linear-gradient(135deg,var(--road-vivid),var(--sign)); box-shadow:0 8px 20px -8px rgba(148,82,6,.5)}\r\n.dfx .rm-name{font-family:var(--display); font-weight:700; font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; color:var(--text); line-height:1.1}\r\n.dfx .rm-sub{font-family:var(--mono); font-size:.76rem; color:var(--muted); margin-top:5px}\r\n.dfx .rm-tags{display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin:14px 0 12px}\r\n.dfx .rm-tags span{font-family:var(--display); font-weight:600; font-size:.76rem; letter-spacing:.04em; text-transform:uppercase; color:var(--road); background:var(--road-soft); border:1px solid rgba(148,82,6,.25); border-radius:20px; padding:5px 12px}\r\n.dfx .rm-note{font-family:var(--body); font-size:.86rem; color:var(--muted); max-width:32ch; margin:0 auto}\r\n.dfx .resume-bar{display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:center; margin-top:16px}\r\n.dfx .resume-bar .btn{font-size:.8rem; padding:12px 20px}\r\n.dfx .copy-note{font-family:var(--mono); font-size:.74rem; color:var(--code); opacity:0; transform:translateY(2px); transition:opacity .2s,transform .2s; margin-left:2px}\r\n.dfx .copy-note.show{opacity:1; transform:none}\r\n.dfx .modal-card.resume.isfull{position:fixed; inset:2vh 2vw; max-width:none; width:auto; height:96vh; display:flex; flex-direction:column; z-index:65}\r\n.dfx .modal-card.resume.isfull .resume-shell{flex:1; max-width:none; min-height:0; display:flex; flex-direction:column}\r\n.dfx .modal-card.resume.isfull .resume-stage{flex:1; aspect-ratio:auto; max-height:none; height:auto}\r\n@media(max-width:700px){\r\n  .dfx .modal-card.resume{padding:18px}\r\n  .dfx .resume-head{padding-right:30px; margin-bottom:6px}\r\n  .dfx .resume-tools{display:none}\r\n  .dfx .resume-shell{display:none}\r\n  .dfx .resume-mobile{display:block}\r\n  .dfx .resume-bar{flex-direction:column; align-items:stretch}\r\n  .dfx .resume-bar .btn{width:100%; justify-content:center; padding:14px 20px}\r\n  .dfx .resume-bar .copy-note{text-align:center}\r\n}\r\n.dfx .cert-open{margin-top:14px}\r\n.dfx .record{border:1px solid var(--line); border-radius:16px; background:var(--panel); padding:24px; transition:transform .2s ease, box-shadow .2s ease; display:flex; flex-direction:column}\r\n.dfx .clear-stamp{display:flex; align-items:center; gap:13px; margin-top:18px; padding:13px 16px; border-radius:12px; background:linear-gradient(140deg,#3a8d63,var(--sign)); box-shadow:0 8px 20px -10px rgba(44,110,73,.6), inset 0 1px 0 rgba(255,255,255,.25)}\r\n.dfx .clear-stamp-ic{flex:none; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.18) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'\/%3E%3C\/svg%3E\") center\/15px 15px no-repeat; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}\r\n.dfx .clear-stamp-txt{display:flex; flex-direction:column; line-height:1.25}\r\n.dfx .clear-stamp-txt b{font-family:var(--display); font-weight:700; font-size:.98rem; letter-spacing:.07em; text-transform:uppercase; color:#fff}\r\n.dfx .clear-stamp-txt small{font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8)}\r\n.dfx .clear-stamp-year{margin-left:auto; font-family:var(--mono); font-weight:700; font-size:.72rem; letter-spacing:.1em; color:var(--sign); background:#fff; border-radius:6px; padding:4px 9px}\r\n.dfx .record:hover{transform:translateY(-3px); box-shadow:0 20px 40px -28px rgba(30,26,18,.35)}\r\n.dfx .record .lbl{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--road); margin-bottom:4px}\r\n.dfx .record h3{font-family:var(--display); font-weight:600; font-size:1.2rem; margin-bottom:18px}\r\n.dfx .stat-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 14px}\r\n.dfx .stat .n{font-family:var(--display); font-weight:700; font-size:2.9rem; line-height:1; color:var(--road-vivid); letter-spacing:.01em}\r\n.dfx .stat .n small{font-size:1.2rem; color:var(--muted); font-weight:500}\r\n.dfx .stat .c{font-family:var(--mono); font-size:.66rem; color:var(--muted); text-transform:uppercase; letter-spacing:.09em; margin-top:8px; display:block}\r\n.dfx .badges{margin-top:20px; display:flex; flex-wrap:wrap; justify-content:center; gap:8px}\r\n.dfx .badge{position:relative; font-family:var(--mono); font-size:.7rem; font-weight:600; color:var(--text); border:1px solid var(--line); border-radius:20px; padding:6px 14px 6px 26px; background:linear-gradient(180deg,var(--panel),var(--panel-2)); box-shadow:0 1px 3px -1px rgba(30,26,18,.12), inset 0 1px 0 rgba(255,255,255,.5)}\r\n.dfx .badge::before{content:\"\"; position:absolute; left:9px; top:50%; transform:translateY(-50%); width:11px; height:11px; border-radius:50%; background:linear-gradient(140deg,var(--road-vivid),#8a4d05); box-shadow:0 1px 3px -1px rgba(148,82,6,.5)}\r\n@media(max-width:820px){.dfx .drive-grid{grid-template-columns:1fr}}\r\n\r\n\/* FIRST RESPONDER \/ AV TRAINING *\/\r\n.dfx .auto-sec{background:linear-gradient(180deg,transparent,var(--code-soft) 140%)}\r\n#dfx-fit,#dfx-life{position:relative; background:var(--panel-2)}\r\n#dfx-fit::before,#dfx-life::before{content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;\r\n  background-image:radial-gradient(circle at 15% 30%, transparent 58px, rgba(148,82,6,.04) 59px 60px, transparent 61px),\r\n                   radial-gradient(circle at 85% 70%, transparent 88px, rgba(44,110,73,.035) 89px 90px, transparent 91px),\r\n                   radial-gradient(circle at 50% 10%, transparent 120px, rgba(148,82,6,.03) 121px 122px, transparent 123px);\r\n  -webkit-mask-image:linear-gradient(180deg, transparent, #000 20%, #000 80%, transparent);\r\n          mask-image:linear-gradient(180deg, transparent, #000 20%, #000 80%, transparent)}\r\n#dfx-fit > *,#dfx-life > *{position:relative; z-index:1}\r\n.dfx .auto-lead{font-size:1.15rem; color:var(--muted); max-width:62ch; margin-bottom:30px}\r\n.dfx .auto-lead strong{color:var(--text); font-weight:600}\r\n\r\n.dfx .avcert{margin-top:4px; display:flex; align-items:center; gap:18px; border:1px solid var(--line); border-left:3px solid var(--code); border-radius:12px; background:var(--panel); padding:22px 24px}\r\n.dfx .avcert-logo{width:72px; height:auto; flex:none; background:#fff; border-radius:8px; padding:7px}\r\n.dfx .avcert-logos{display:flex; flex-direction:column; gap:10px; flex:none}\r\n.dfx .avcert .lbl{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--code); margin-bottom:6px}\r\n.dfx .avcert h3{font-family:var(--display); font-size:1.15rem; font-weight:600; margin-bottom:6px}\r\n.dfx .avcert p{color:var(--muted); font-size:.95rem}\r\n.dfx .avcert a{color:var(--code)}\r\n.dfx .avcert a:hover{text-decoration:underline}\r\n@media(max-width:560px){.dfx .avcert{flex-direction:column; align-items:flex-start; gap:14px}}\r\n\r\n\/* CONTACT *\/\r\n.dfx .contact{position:relative; text-align:center; padding:80px 0 70px; overflow:hidden; background:linear-gradient(180deg, transparent, rgba(33,28,19,.04) 40%, rgba(33,28,19,.07)); border-top:1px solid var(--line)}\r\n.dfx .contact::before{content:\"\"; position:absolute; left:0; right:0; bottom:0; height:6px; background:var(--asphalt)}\r\n.dfx .contact::after{content:\"\"; position:absolute; left:0; right:0; bottom:2px; height:2px; background-image:repeating-linear-gradient(90deg,var(--road-vivid) 0 30px,transparent 30px 60px); opacity:.7}\r\n.dfx .contact-rotator{font-family:var(--mono); font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:18px; height:1.2em}\r\n.dfx .rot-word{display:inline-block; color:var(--road-vivid); font-weight:700; position:relative; padding-left:16px}\r\n.dfx .rot-word::before{content:\"\u25cf\"; position:absolute; left:0; color:var(--sign); font-size:.7em; top:.18em; animation:rotDot 1.4s ease-in-out infinite}\r\n@keyframes rotDot{0%,100%{opacity:.4}50%{opacity:1}}\r\n.dfx .rot-word.swap{opacity:0; transform:translateY(-4px); transition:opacity .25s, transform .25s}\r\n.dfx .contact h2{font-family:var(--display); font-weight:700; font-size:clamp(2.1rem,5.5vw,3.4rem); letter-spacing:.01em; text-transform:uppercase; line-height:1.06; margin-bottom:14px}\r\n.dfx .contact h2 .amber{color:var(--road-vivid)}.dfx .contact h2 .cyan{color:var(--code)}\r\n.dfx .contact p{color:var(--muted); max-width:48ch; margin:0 auto 28px}\r\n.dfx .contact-cta{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:30px}\r\n.dfx .contact-meta{font-family:var(--mono); font-size:.8rem; color:var(--dim); display:flex; gap:8px 22px; justify-content:center; flex-wrap:wrap}\r\n.dfx .contact-meta a:hover{color:var(--text)}\r\n.dfx .foot-sign{margin-top:24px; padding:34px 0 40px; text-align:center}\r\n.dfx .foot-sign-panel{display:inline-flex; align-items:center; gap:18px; max-width:100%; padding:16px 22px; border:2px solid rgba(255,255,255,.85); border-radius:12px; background:linear-gradient(180deg, #2f7a54, var(--sign)); box-shadow:0 16px 40px -22px rgba(20,50,35,.7); flex-wrap:wrap; justify-content:center}\r\n.dfx .foot-sign-shield{flex:none; width:42px; height:42px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:1.1rem; color:var(--sign); background:#fff}\r\n.dfx .foot-sign-text{display:flex; flex-direction:column; align-items:flex-start; line-height:1.15}\r\n.dfx .foot-sign-name{font-family:var(--display); font-weight:700; font-size:1.25rem; letter-spacing:.06em; color:#fff}\r\n.dfx .foot-sign-sub{font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; color:rgba(255,255,255,.85)}\r\n.dfx .foot-sign-exit{font-family:var(--display); font-weight:600; font-size:.9rem; letter-spacing:.04em; color:#fff; padding:8px 14px; border:1.5px solid rgba(255,255,255,.6); border-radius:8px; transition:background .2s,border-color .2s}\r\n.dfx .foot-sign-exit:hover{background:rgba(255,255,255,.15); border-color:#fff}\r\n.dfx .foot-sign-fine{display:block; margin-top:16px; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--dim)}\r\n\/* sticky mobile action dock *\/\r\n\/* command palette (desktop) *\/\r\n.dfx .kbd-hint{display:none; font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); align-items:center; gap:6px; margin-right:2px; white-space:nowrap}\r\n@media(min-width:1000px){.dfx .kbd-hint{display:inline-flex}}\r\n.dfx kbd{font-family:var(--mono); background:var(--panel-2); border:1px solid var(--line); border-radius:4px; padding:1px 6px; font-size:.9em; color:var(--text)}\r\n.dfx .cmdk{position:fixed; inset:0; z-index:80; display:none; align-items:flex-start; justify-content:center; padding:12vh 20px 20px; background:rgba(15,20,14,.5); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px)}\r\n.dfx .cmdk.open{display:flex}\r\n.dfx .cmdk-card{width:100%; max-width:530px; background:#1C1811; border:1px solid rgba(244,166,42,.28); border-radius:14px; overflow:hidden; box-shadow:0 40px 90px -30px rgba(0,0,0,.75); animation:modalIn .22s cubic-bezier(.25,1,.4,1)}\r\n.dfx .cmdk-in{width:100%; background:transparent; border:0; outline:0; padding:16px 18px; font-family:var(--mono); font-size:.95rem; color:#F5EEDF; border-bottom:1px solid rgba(255,255,255,.09); box-sizing:border-box}\r\n.dfx .cmdk-in::placeholder{color:#8C8067}\r\n.dfx .cmdk-list{list-style:none; margin:0; padding:8px; max-height:330px; overflow-y:auto}\r\n.dfx .cmdk-list li{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 13px; border-radius:9px; cursor:pointer; font-family:var(--body); font-weight:500; font-size:.9rem; color:#EDE6D6}\r\n.dfx .cmdk-list li .h{font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:#8C8067; white-space:nowrap}\r\n.dfx .cmdk-list li.on{background:linear-gradient(140deg,var(--road-vivid),#8a4d05); color:#fff}\r\n.dfx .cmdk-list li.on .h{color:rgba(255,255,255,.85)}\r\n.dfx .cmdk-empty{padding:18px 13px; font-family:var(--mono); font-size:.78rem; color:#8C8067}\r\n.dfx .cmdk-foot{display:flex; gap:18px; padding:10px 16px; border-top:1px solid rgba(255,255,255,.09); font-family:var(--mono); font-size:.6rem; letter-spacing:.08em; color:#8C8067; text-transform:uppercase}\r\n.dfx .cmdk-foot kbd{background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.16); color:#EDE6D6}\r\n@media(max-width:560px){\r\n  .dfx .foot-sign-panel{gap:12px; padding:14px 16px}\r\n  .dfx .foot-sign-text{align-items:center}\r\n  .dfx .foot-sign-exit{width:100%}\r\n}\r\n\r\n\/* clean-record checklist *\/\r\n.dfx .checklist{list-style:none}\r\n.dfx .record .checklist{flex:1; display:flex; flex-direction:column}\r\n.dfx .checklist li{position:relative; flex:1; display:flex; align-items:center; padding:11px 0 11px 32px; border-top:1px solid var(--line); font-family:var(--mono); font-size:.84rem; color:var(--text)}\r\n.dfx .checklist li:first-child{border-top:0}\r\n.dfx .checklist li::before{content:\"\"; position:absolute; left:0; top:50%; transform:translateY(-50%); width:19px; height:19px; border-radius:50%; background:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'\/%3E%3C\/svg%3E\") center\/10px 10px no-repeat, linear-gradient(140deg,#3a8d63,var(--sign)); box-shadow:0 2px 5px -2px rgba(44,110,73,.5), inset 0 1px 0 rgba(255,255,255,.25)}\r\n\r\n\/* track-record stat row *\/\r\n.dfx .trackrow{position:relative; overflow:hidden; display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:44px; padding:34px 20px; border:1px solid var(--line); border-top:3px solid var(--road); border-radius:16px; text-align:center; background:linear-gradient(180deg, var(--panel), var(--road-soft)); box-shadow:0 0 0 6px #2A241A, 0 0 0 7px rgba(255,255,255,.08), 0 26px 54px -30px rgba(20,16,10,.55)}\r\n.dfx .trackrow::after{content:\"\"; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(115deg, transparent 32%, rgba(255,255,255,.14) 44%, rgba(255,255,255,.05) 52%, transparent 62%)}\r\n.dfx[data-theme=\"dark\"] .trackrow{box-shadow:0 0 0 6px #060503, 0 0 0 7px rgba(244,166,42,.14), 0 26px 54px -30px rgba(0,0,0,.8)}\r\n.dfx .stat{position:relative}\r\n.dfx .odo{display:inline-flex; align-items:flex-start}\r\n.dfx .odo-d{display:inline-block; height:1em; line-height:1; overflow:hidden}\r\n.dfx .odo-strip{display:flex; flex-direction:column; transform:translateY(0); transition:transform 1.7s cubic-bezier(.22,.9,.32,1.06)}\r\n.dfx .odo-strip span{display:block; height:1em; line-height:1}\r\n.dfx .odo-c{display:inline-block; line-height:1}\r\n.dfx .stat-gauge{display:flex; align-items:center; justify-content:center; min-height:118px}\r\n.dfx .stat-gauge .gauge{position:absolute; width:118px; height:118px; transform:rotate(-90deg); pointer-events:none}\r\n.dfx .gauge-track{fill:none; stroke:var(--line); stroke-width:5; opacity:.6}\r\n.dfx .gauge-ticks{fill:none; stroke:var(--dim); stroke-width:4; stroke-dasharray:1.6 8.1; opacity:.45}\r\n.dfx .gauge-fill{fill:none; stroke:var(--road-vivid); stroke-width:5; stroke-linecap:round; stroke-dasharray:276.5; stroke-dashoffset:276.5; transition:stroke-dashoffset 1.4s cubic-bezier(.3,.8,.3,1)}\r\n.dfx .stat-gauge:nth-of-type(4) .gauge-fill{stroke:var(--sign)}\r\n.dfx .stat-inner{position:relative; z-index:1; text-align:center}\r\n.dfx .stat-gauge .n{font-size:1.95rem; line-height:1}\r\n.dfx .stat-gauge .n small{font-size:.8rem}\r\n.dfx .stat-gauge .c{font-size:.58rem; margin-top:4px}\r\n@media(max-width:680px){\r\n  .dfx .stat-gauge .gauge{width:112px; height:112px}\r\n  .dfx .stat-gauge{min-height:112px}\r\n  .dfx .stat-gauge .n{font-size:1.2rem}\r\n  .dfx .stat-gauge .n small{font-size:.62rem}\r\n  .dfx .stat-gauge .c{font-size:.52rem; margin-top:2px}\r\n}\r\n.dfx .stat + .stat::before{content:\"\"; position:absolute; left:-5px; top:14%; bottom:14%; width:1px; background:var(--line)}\r\n@media(max-width:680px){\r\n  .dfx .trackrow{grid-template-columns:repeat(2,1fr); gap:26px 12px; padding:26px 16px; margin-top:34px}\r\n  .dfx .stat + .stat::before{display:none}\r\n  .dfx .stat .n{font-size:2.2rem}\r\n  .dfx .stat .n small{font-size:1rem}\r\n  .dfx .stat .c{font-size:.62rem; margin-top:5px}\r\n  .dfx .stat-gauge .n{font-size:1.2rem}\r\n  .dfx .stat-gauge .n small{font-size:.62rem}\r\n  .dfx .stat-gauge .c{font-size:.52rem; margin-top:2px}\r\n}\r\n@media(max-width:360px){\r\n  .dfx .stat .n{font-size:1.9rem}\r\n  .dfx .stat-gauge .n{font-size:1.1rem}\r\n}\r\n\r\n\/* hobbies *\/\r\n.dfx .hobbies{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px}\r\n.dfx .hob{border:1px solid var(--line); border-radius:12px; background:var(--panel); padding:22px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s}\r\n.dfx .hob:hover{transform:translateY(-3px); border-color:var(--road); box-shadow:0 16px 34px -26px rgba(148,82,6,.4)}\r\n.dfx .hob .lbl{font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--road); margin-bottom:12px}\r\n.dfx .hob ul{list-style:none}\r\n.dfx .hob li{padding:6px 0; font-size:.96rem; color:var(--muted)}\r\n.dfx .hob li b{color:var(--text); font-weight:600}\r\n@media(max-width:720px){.dfx .hobbies{grid-template-columns:1fr}}\r\n.dfx .community{margin-top:22px; display:flex; align-items:center; gap:20px; border:1px solid var(--line); border-left:3px solid var(--road); border-radius:12px; background:var(--panel); padding:22px 24px}\r\n.dfx .community-logo{width:58px; height:auto; flex:none}\r\n.dfx .community .lbl{font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--road); margin-bottom:8px}\r\n.dfx .community p:last-child{color:var(--muted); font-size:.98rem}\r\n.dfx .community b{color:var(--text); font-weight:600}\r\n\r\n\/* requirements match *\/\r\n.dfx .match{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--panel)}\r\n.dfx .match-row{display:grid; grid-template-columns:1.1fr 1fr; gap:18px; padding:15px 22px; border-top:1px solid var(--line)}\r\n.dfx .match-row:first-child{border-top:0}\r\n.dfx .match-head{background:var(--panel-2)}\r\n.dfx .match-head span{font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim)}\r\n.dfx .match-head span:last-child{padding-left:26px}\r\n.dfx .match-req{font-family:var(--mono); font-size:.82rem; color:var(--muted)}\r\n.dfx .match-bring{font-weight:600; color:var(--text); position:relative; padding-left:26px}\r\n.dfx .match-bring::before{content:\"\u2713\"; position:absolute; left:0; top:0; color:var(--road); font-weight:700}\r\n@media(max-width:640px){.dfx .match-row{grid-template-columns:1fr; gap:5px} .dfx .match-head{display:none}}\r\n\r\n\/* availability *\/\r\n.dfx .avail{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px}\r\n.dfx .avail span{font-family:var(--mono); font-size:.74rem; color:var(--text); border:1px solid var(--line); border-radius:20px; padding:8px 14px}\r\n.dfx .avail span::before{content:\"\u25cf\"; color:var(--code); font-size:.6em; vertical-align:middle; margin-right:8px}\r\n\r\n.dfx .road-lead{font-size:1.05rem; color:var(--muted); max-width:62ch; margin-bottom:30px}\r\n.dfx .road-lead b{color:var(--road); font-weight:600}\r\n.dfx .open-to{font-family:var(--mono); font-size:.82rem; line-height:1.7; color:var(--muted); border:1px solid var(--line); border-radius:10px; padding:14px 20px; display:inline-block; margin:0 auto 26px; max-width:660px}\r\n\/* relocation map *\/\r\n.dfx .relo-map{max-width:620px; margin:6px auto 34px}\r\n.dfx .relo-map svg{width:100%; height:auto; display:block}\r\n.dfx .us-outline{fill:rgba(148,82,6,.055); stroke:var(--line); stroke-width:1.6; stroke-linejoin:round}\r\n.dfx[data-theme=\"dark\"] .us-outline{fill:rgba(244,166,42,.05); stroke:rgba(244,166,42,.2)}\r\n.dfx .route{fill:none; stroke:var(--sign); stroke-width:2.4; stroke-linecap:round; stroke-dasharray:900; stroke-dashoffset:900; opacity:.85}\r\n.dfx .relo-map.go .route{animation:drawRoute 1.3s cubic-bezier(.4,.1,.3,1) forwards; animation-delay:var(--rd,0s)}\r\n@keyframes drawRoute{to{stroke-dashoffset:0}}\r\n.dfx .dests circle{fill:var(--road-vivid); opacity:0; transform-box:fill-box; transform-origin:center; filter:drop-shadow(0 0 4px rgba(244,166,42,.6))}\r\n.dfx .relo-map.go .dests circle{animation:popDot .45s cubic-bezier(.3,1.6,.5,1) forwards; animation-delay:var(--rd,0s)}\r\n@keyframes popDot{from{opacity:0; transform:scale(.2)}to{opacity:1; transform:scale(1)}}\r\n.dfx .pin-core{fill:var(--sign); filter:drop-shadow(0 0 5px rgba(95,203,142,.7))}\r\n.dfx .pin-ring{fill:none; stroke:var(--sign); stroke-width:2; transform-box:fill-box; transform-origin:center; animation:pinPulse 2.2s ease-out infinite}\r\n@keyframes pinPulse{0%{transform:scale(.55); opacity:.9}70%{transform:scale(1.5); opacity:0}100%{transform:scale(1.5); opacity:0}}\r\n.dfx .relo-cap{font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); text-align:center; margin-top:10px; display:flex; align-items:center; justify-content:center; gap:8px}\r\n.dfx .relo-dot{width:9px; height:9px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #7BD9A4, var(--sign)); box-shadow:0 0 6px rgba(95,203,142,.7)}\r\n@media(max-width:600px){.dfx .relo-map{margin-bottom:26px}.dfx .relo-cap{font-size:.62rem; letter-spacing:.1em}}\r\n@media(prefers-reduced-motion:reduce){\r\n  .dfx .route{stroke-dashoffset:0; animation:none!important}\r\n  .dfx .dests circle{opacity:1; animation:none!important}\r\n  .dfx .pin-ring{animation:none; opacity:.5}\r\n}\r\n.dfx .open-to .on{color:var(--road); font-weight:700}\r\n.dfx .open-to b{color:var(--text); font-weight:500}\r\n\r\n\/* ---- visual polish: depth, grain, signature spine ---- *\/\r\n.dfx{position:relative}\r\n.dfx .grain{position:absolute; inset:0; z-index:4; pointer-events:none; opacity:.07; mix-blend-mode:multiply; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'\/%3E%3C\/svg%3E\")}\r\n.dfx .vignette{position:absolute; inset:0; z-index:4; pointer-events:none; background:radial-gradient(115% 90% at 50% 38%, transparent 62%, rgba(30,26,18,.09) 100%)}\r\n.dfx[data-theme=\"dark\"] .vignette{background:radial-gradient(115% 90% at 50% 38%, transparent 58%, rgba(0,0,0,.28) 100%)}\r\n.dfx[data-theme=\"dark\"] .hero .hero-road{box-shadow:0 -6px 16px -8px rgba(0,0,0,.4), 0 -70px 130px -30px rgba(244,166,42,.17)}\r\n.dfx .plx-on{animation:none!important; opacity:1!important; will-change:transform}\r\n.dfx[data-theme=\"dark\"] .grain{mix-blend-mode:screen; opacity:.04}\r\n.dfx .spine{position:absolute; left:0; top:0; bottom:0; width:14px; background:var(--asphalt); z-index:5; pointer-events:none; box-shadow:1px 0 0 rgba(0,0,0,.15)}\r\n\/* scroll trip: truck + miles on the spine *\/\r\n.dfx .trip-truck{position:absolute; left:50%; top:0; width:11px; height:17px; transform:translate(-50%,-55%); background:var(--road-vivid); -webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 12 18'%3E%3Crect x='2' y='0.5' width='8' height='10.5' rx='1.6' fill='%23000'\/%3E%3Crect x='2.6' y='12.4' width='6.8' height='5' rx='1.4' fill='%23000'\/%3E%3C\/svg%3E\") center\/contain no-repeat; mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 12 18'%3E%3Crect x='2' y='0.5' width='8' height='10.5' rx='1.6' fill='%23000'\/%3E%3Crect x='2.6' y='12.4' width='6.8' height='5' rx='1.4' fill='%23000'\/%3E%3C\/svg%3E\") center\/contain no-repeat; filter:drop-shadow(0 0 4px rgba(244,166,42,.65))}\r\n.dfx .trip-miles{position:absolute; left:19px; top:0; transform:translateY(-50%); font-family:var(--mono); font-size:.6rem; letter-spacing:.05em; color:var(--road-vivid); background:var(--asphalt); border:1px solid rgba(244,166,42,.4); border-radius:5px; padding:2px 7px; white-space:nowrap}\r\n@media(max-width:880px){.dfx .trip-miles{display:none}}\r\n@media(max-width:560px){.dfx .trip-truck{width:9px; height:14px}}\r\n\/* live driver HUD *\/\r\n.dfx .hud{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:22px; font-family:var(--mono); font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; color:var(--dim)}\r\n.dfx .hud b{color:var(--text); font-weight:700; letter-spacing:.06em}\r\n.dfx .hud-item{display:inline-flex; align-items:center; gap:7px; white-space:nowrap}\r\n.dfx .hud-sep{color:var(--line)}\r\n@media(max-width:600px){.dfx .hud{gap:5px 9px; font-size:.58rem; margin-top:18px}}\r\n.dfx .spine::after{content:\"\"; position:absolute; right:1px; top:0; bottom:0; width:4px; background-image:repeating-linear-gradient(180deg, rgba(255,255,255,.22) 0 3px, transparent 3px 140px)}\r\n.dfx .spine::before{content:\"\"; position:absolute; left:50%; top:0; bottom:0; width:3px; transform:translateX(-50%); background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.28) 0 22px,transparent 22px 44px)}\r\n.dfx .spine-fill{position:absolute; left:50%; top:0; width:3px; transform:translateX(-50%); height:0; background-image:repeating-linear-gradient(180deg,var(--road) 0 22px,transparent 22px 44px); filter:drop-shadow(0 0 6px rgba(255,176,46,.7))}\r\n@media(max-width:560px){.dfx .spine{width:10px}}\r\n\r\n.dfx .hero{position:relative; overflow:hidden}\r\n.dfx .hero::before{content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; background:radial-gradient(58% 48% at 80% 36%, rgba(44,110,73,.08), transparent 70%), radial-gradient(52% 42% at 66% 66%, rgba(184,105,10,.09), transparent 72%)}\r\n.dfx .hero::after{content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(rgba(90,81,64,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(90,81,64,.06) 1px,transparent 1px); background-size:44px 44px; -webkit-mask-image:linear-gradient(180deg,#000,transparent 72%); mask-image:linear-gradient(180deg,#000,transparent 72%)}\r\n.dfx .hero .wrap{position:relative; z-index:1}\r\n.dfx .hero-photo{box-shadow:0 24px 70px -30px rgba(184,105,10,.22), 0 18px 50px -28px rgba(15,27,46,.16)}\r\n\r\n.dfx .stat .num{font-variant-numeric:tabular-nums}\r\n.dfx .mark{cursor:pointer; transition:opacity .2s}\r\n.dfx .mark:hover{opacity:.8}\r\n.dfx footer a:hover{color:var(--road)}\r\n\r\n\/* objective \/ roles *\/\r\n.dfx .objective{font-family:var(--mono); font-size:.84rem; color:var(--text); margin-top:18px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}\r\n.dfx .objective-tag{font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); background:var(--road); border-radius:4px; padding:3px 8px; font-weight:700}\r\n\/* goal button in hero CTA *\/\r\n.dfx .btn-goal{display:inline-flex; align-items:center; gap:9px; background:linear-gradient(140deg,#3a8d63,var(--sign)); color:#fff; border-color:transparent; font-weight:700; box-shadow:0 6px 16px -6px rgba(44,110,73,.55), inset 0 1px 0 rgba(255,255,255,.22); animation:goalGlow 2.8s ease-in-out infinite}\r\n.dfx .btn-goal:hover{filter:brightness(1.08); color:#fff}\r\n.dfx .btn-goal::after{content:\"\"; position:absolute; top:0; left:-80%; width:45%; height:100%; background:linear-gradient(105deg,transparent,rgba(255,255,255,.4),transparent); transform:skewX(-18deg); opacity:1; transition:none; animation:goalSheen 3.4s ease-in-out infinite}\r\n@keyframes goalGlow{0%,100%{box-shadow:0 6px 16px -6px rgba(44,110,73,.5), inset 0 1px 0 rgba(255,255,255,.22)}50%{box-shadow:0 8px 24px -4px rgba(44,110,73,.85), 0 0 0 5px rgba(44,110,73,.14), inset 0 1px 0 rgba(255,255,255,.28)}}\r\n@keyframes goalSheen{0%,55%{left:-80%}100%{left:135%}}\r\n.dfx .goal-flag{font-family:var(--mono); font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.22); border:1px solid rgba(255,255,255,.35); border-radius:4px; padding:3px 7px; font-weight:700; line-height:1}\r\n.dfx[data-theme=\"dark\"] .goal-flag{color:#fff}\r\n@media(prefers-reduced-motion:reduce){.dfx .btn-goal{animation:none}.dfx .btn-goal::after{animation:none; opacity:0}}\r\n\/* goal modal *\/\r\n.dfx .modal-card.cred.goal-card{border-top-color:var(--sign)}\r\n.dfx .goal-badge svg{width:26px; height:26px}\r\n.dfx .goal-statement{font-size:1rem; color:var(--text); font-weight:500; line-height:1.55; border-left:3px solid var(--sign); padding-left:14px; margin-bottom:16px}\r\n.dfx .roles{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:30px}\r\n.dfx .roles-label{font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dim)}\r\n.dfx .roles span:not(.roles-label){font-family:var(--mono); font-size:.76rem; color:var(--code); background:var(--code-soft); border:1px solid rgba(44,110,73,.28); border-radius:20px; padding:7px 13px}\r\n.dfx .endo-note{font-family:var(--mono); font-size:.72rem; color:var(--road); text-align:center; margin:2px 0 16px; min-height:1.2em; font-weight:600; transition:opacity .15s}\r\n.dfx .endo-note .endo-note-default{color:var(--dim); font-weight:400}\r\n\r\n\/* reveal *\/\r\n.dfx .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s ease,transform .6s ease}\r\n.dfx .reveal.in{opacity:1; transform:none}\r\n.dfx :focus-visible{outline:2px solid var(--road); outline-offset:3px; border-radius:4px}\r\n\r\n\/* hero entrance *\/\r\n.dfx .hero-in{opacity:0; transform:translateY(16px); animation:heroIn .7s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:var(--d,0s)}\r\n.dfx h1 .line-wrap{display:block; overflow:hidden}\r\n.dfx h1 .line-wrap.hero-in{opacity:1; transform:none; animation:none}\r\n.dfx h1 .line-wrap.hero-in > span{display:inline-block; transform:translateY(105%); animation:lineUp .8s cubic-bezier(.2,.75,.2,1) forwards; animation-delay:var(--d,0s)}\r\n.dfx .hero-in-photo{opacity:0; animation:photoIn .9s cubic-bezier(.2,.7,.2,1) .3s forwards}\r\n@keyframes heroIn{to{opacity:1;transform:none}}\r\n@keyframes lineUp{to{transform:translateY(0)}}\r\n@keyframes photoIn{from{opacity:0;transform:translateX(26px) scale(.98)}to{opacity:1;transform:none}}\r\n\r\n\/* micro-interactions *\/\r\n.dfx .btn{position:relative; overflow:hidden}\r\n.dfx .btn::after{content:\"\"; position:absolute; inset:0; background:currentColor; opacity:0; transition:opacity .2s}\r\n.dfx .btn:active{transform:translateY(0) scale(.98)}\r\n.dfx .ticker span{transition:transform .18s ease, border-color .2s, box-shadow .2s}\r\n.dfx .ticker span:hover{transform:translateY(-2px); border-color:var(--road); box-shadow:0 6px 16px -8px rgba(148,82,6,.4)}\r\n.dfx .ticker span:active{transform:translateY(0) scale(.97)}\r\n.dfx .call-btn{animation:callPulse 1s ease .9s 2}\r\n@keyframes callPulse{0%,100%{box-shadow:0 0 0 0 rgba(44,110,73,.5)}50%{box-shadow:0 0 0 7px rgba(44,110,73,0)}}\r\n\r\n@media(prefers-reduced-motion:reduce){\r\n  .dfx .reveal{opacity:1; transform:none; transition:none}\r\n  .dfx .btn:hover,.dfx .proj:hover{transform:none}\r\n  .dfx .hero-in,.dfx .hero-in-photo,.dfx h1 .line-wrap>span{opacity:1!important; transform:none!important; animation:none!important}\r\n  .dfx .call-btn{animation:none}\r\n}\r\n\r\n\/* ===== nav controls: search, theme, menu ===== *\/\r\n.dfx .tnav{display:flex; align-items:center; gap:18px}\r\n.dfx .icon-btn{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0; border:1px solid var(--line); background:var(--panel); color:var(--muted); border-radius:9px; cursor:pointer; transition:color .2s,border-color .2s,background .2s,transform .15s}\r\n.dfx .icon-btn:hover{color:var(--text); border-color:var(--road); transform:translateY(-1px)}\r\n.dfx .call-btn{background:var(--sign); border-color:var(--sign); color:#fff}\r\n.dfx .call-btn:hover{color:#fff; border-color:var(--sign); filter:brightness(1.08)}\r\n.dfx .icon-btn svg{width:18px; height:18px}\r\n.dfx .theme-btn .ic-sun{display:none}\r\n.dfx[data-theme=\"dark\"] .theme-btn .ic-moon{display:none}\r\n.dfx[data-theme=\"dark\"] .theme-btn .ic-sun{display:block}\r\n.dfx .nav-toggle{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border:1px solid var(--line); background:var(--panel); color:var(--text); border-radius:9px; cursor:pointer}\r\n.dfx .nav-toggle svg{width:20px; height:20px}\r\n\r\n\/* drawer (mobile menu) *\/\r\n.dfx .drawer-backdrop{position:fixed; inset:0; z-index:70; background:rgba(15,27,46,.5); opacity:0; visibility:hidden; transition:opacity .25s,visibility .25s}\r\n.dfx .drawer-backdrop.open{opacity:1; visibility:visible}\r\n.dfx .drawer{position:fixed; top:0; right:0; bottom:0; z-index:71; width:min(82vw,320px); background:var(--panel); border-left:1px solid var(--line); box-shadow:-30px 0 70px -30px rgba(15,27,46,.4); padding:22px; transform:translateX(100%); visibility:hidden; transition:transform .28s cubic-bezier(.4,0,.2,1), visibility 0s .28s; display:flex; flex-direction:column}\r\n.dfx .drawer.open{visibility:visible; transition:transform .28s cubic-bezier(.4,0,.2,1), visibility 0s 0s}\r\n.dfx .drawer.open{transform:translateX(0)}\r\n.dfx .drawer-close{align-self:flex-end; width:34px; height:34px; border:1px solid var(--line); background:transparent; color:var(--muted); border-radius:8px; cursor:pointer; font-size:1rem; line-height:1}\r\n.dfx .drawer-close:hover{color:var(--text); border-color:var(--road)}\r\n.dfx .drawer-label{font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); margin:6px 0 12px}\r\n.dfx .drawer-links{display:flex; flex-direction:column}\r\n.dfx .drawer-links a{font-family:var(--display); font-weight:600; font-size:1.25rem; color:var(--text); padding:13px 0; border-bottom:1px solid var(--line); transition:color .2s}\r\n.dfx .drawer-links a:hover{color:var(--road)}\r\n.dfx .drawer-status{margin-top:auto; font-family:var(--mono); font-size:.74rem; color:var(--dim); display:flex; align-items:center; gap:9px; padding-top:18px}\r\n\r\n\/* search \/ jump palette *\/\r\n.dfx .search-modal{position:fixed; inset:0; z-index:80; display:none; align-items:flex-start; justify-content:center; padding:14vh 20px 20px; background:rgba(15,27,46,.5); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px)}\r\n.dfx .search-modal.open{display:flex}\r\n.dfx .search-card{width:100%; max-width:520px; background:var(--panel); border:1px solid var(--line); border-radius:14px; box-shadow:0 40px 90px -30px rgba(15,27,46,.5); overflow:hidden}\r\n.dfx .search-top{display:flex; align-items:center; gap:12px; padding:15px 18px; border-bottom:1px solid var(--line)}\r\n.dfx .search-top svg{width:20px; height:20px; color:var(--dim); flex:none}\r\n.dfx .search-top input{flex:1; border:0; background:transparent; color:var(--text); font-family:var(--body); font-size:1.05rem; outline:none}\r\n.dfx .search-top input::placeholder{color:var(--dim)}\r\n.dfx .search-esc{font-family:var(--mono); font-size:.62rem; color:var(--dim); border:1px solid var(--line); background:transparent; border-radius:6px; padding:4px 8px; cursor:pointer; flex:none}\r\n.dfx .search-results{list-style:none; margin:0; padding:8px; max-height:50vh; overflow:auto}\r\n.dfx .search-results button{width:100%; text-align:left; display:flex; flex-direction:column; gap:2px; padding:11px 13px; border:0; background:transparent; border-radius:9px; cursor:pointer; color:var(--text)}\r\n.dfx .search-results button:hover,.dfx .search-results button.active{background:var(--panel-2)}\r\n.dfx .search-results .r-title{font-family:var(--display); font-weight:600; font-size:.98rem}\r\n.dfx .search-results .r-desc{font-size:.82rem; color:var(--muted)}\r\n.dfx .search-empty{padding:18px; text-align:center; color:var(--dim); font-size:.9rem}\r\n\r\n@media(max-width:760px){\r\n  .dfx .tnav{gap:9px}\r\n}\r\n\r\n\/* smooth theme cross-fade *\/\r\n.dfx *{transition:background-color .35s ease, border-color .35s ease, color .3s ease, fill .3s ease}\r\n\r\n\/* ===== DARK THEME (asphalt) ===== *\/\r\n.dfx[data-theme=\"dark\"]{\r\n  --bg:#15120C; --ink:#15120C; --panel:#1E1A12; --panel-2:#252017; --line:#37301F;\r\n  --text:#F0EADC; --muted:#A99E86; --dim:#786F5A;\r\n  --road:#F4A62A; --code:#5FCB8E; --sign:#5FCB8E; --road-vivid:#F4A62A;\r\n  --asphalt:#0C0A06;\r\n  --road-soft:rgba(244,166,42,.12); --code-soft:rgba(95,203,142,.12);\r\n  background:\r\n    radial-gradient(120% 60% at 50% -10%, rgba(244,166,42,.08), transparent 60%),\r\n    radial-gradient(100% 50% at 100% 100%, rgba(95,203,142,.06), transparent 55%),\r\n    linear-gradient(180deg, #1A160E 0%, #15120C 45%, #100D08 100%);\r\n}\r\n.dfx[data-theme=\"dark\"]::before{opacity:.6;\r\n  background-image:\r\n    repeating-linear-gradient(115deg, transparent 0 78px, rgba(244,166,42,.04) 78px 79px),\r\n    repeating-linear-gradient(155deg, transparent 0 120px, rgba(95,203,142,.035) 120px 121px);\r\n}\r\n.dfx[data-theme=\"dark\"] .plate{border-color:#3a3322; background:linear-gradient(160deg,#1b1810,#14130d); box-shadow:0 1px 0 rgba(255,176,46,.12) inset, 0 20px 44px -30px rgba(0,0,0,.5)}\r\n.dfx[data-theme=\"dark\"] .plate-top{border-bottom-color:#2e2917; background:rgba(255,176,46,.06)}\r\n.dfx[data-theme=\"dark\"] .endo{border-color:#4a3f20; background:rgba(255,176,46,.08)}\r\n.dfx[data-theme=\"dark\"] .hero::before{background:radial-gradient(58% 48% at 80% 36%, rgba(95,203,142,.14), transparent 70%), radial-gradient(52% 42% at 66% 66%, rgba(244,166,42,.13), transparent 72%)}\r\n.dfx[data-theme=\"dark\"] .hero::after{background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px)}\r\n.dfx[data-theme=\"dark\"] .hero-photo{box-shadow:0 24px 70px -28px rgba(95,203,142,.35), 0 16px 50px -24px rgba(244,166,42,.28)}\r\n.dfx[data-theme=\"dark\"] .modal{background:rgba(6,8,11,.74)}\r\n.dfx[data-theme=\"dark\"] .modal-card{box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}\r\n.dfx[data-theme=\"dark\"] .drawer{box-shadow:-30px 0 70px -30px rgba(0,0,0,.6)}\r\n.dfx[data-theme=\"dark\"] .drawer-backdrop,.dfx[data-theme=\"dark\"] .search-modal{background:rgba(6,8,11,.6)}\r\n.dfx[data-theme=\"dark\"] .roles span:not(.roles-label){border-color:rgba(47,226,255,.3)}\r\n<\/style>\r\n\r\n<div class=\"dfx\">\r\n  <script>(function(){try{var r=document.currentScript.parentNode;var t=localStorage.getItem('dfx-theme');if(t==='dark')r.setAttribute('data-theme','dark');}catch(e){}})();<\/script>\r\n\r\n\r\n  <span class=\"spine\"><span class=\"spine-fill\"><\/span><span class=\"trip-truck\" aria-hidden=\"true\"><\/span><span class=\"trip-miles\" aria-hidden=\"true\">0 mi<\/span><\/span>\r\n  <span class=\"grain\"><\/span>\r\n  <span class=\"vignette\" aria-hidden=\"true\"><\/span>\r\n\r\n  <div class=\"topbar\">\r\n    <div class=\"wrap topbar-in\">\r\n      <a class=\"mark\" href=\"https:\/\/davidforde.net\"><span class=\"mark-badge\">DF<\/span><span class=\"mark-name\">DAVID <b>FORDE<\/b><\/span><\/a>\r\n      <div class=\"tnav\">\r\n        <div class=\"tlinks\">\r\n          <a href=\"#dfx-road\">Record<\/a>\r\n          <a href=\"#dfx-fit\">Requirements<\/a>\r\n          <a href=\"#dfx-training\">Training<\/a>\r\n          <a href=\"#dfx-contact\">Contact<\/a>\r\n        <\/div>\r\n        <div class=\"tstatus\"><span class=\"dot\"><\/span>Class A \u00b7 open to work<\/div>\r\n        <span class=\"kbd-hint\">Press <kbd>\/<\/kbd> to jump<\/span>\r\n        <button class=\"icon-btn theme-btn\" id=\"dfx-theme-btn\" aria-label=\"Toggle light and dark mode\">\r\n          <svg class=\"ic-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z\"><\/path><\/svg>\r\n          <svg class=\"ic-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"4.2\"><\/circle><path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\"><\/path><\/svg>\r\n        <\/button>\r\n        <a class=\"icon-btn call-btn\" href=\"tel:+14157568565\" aria-label=\"Call David\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z\"><\/path><\/svg>\r\n        <\/a>\r\n        <button class=\"nav-toggle\" id=\"dfx-nav-toggle\" aria-label=\"Open menu\" aria-expanded=\"false\">\r\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"3\" y1=\"7\" x2=\"21\" y2=\"7\"><\/line><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"><\/line><line x1=\"3\" y1=\"17\" x2=\"21\" y2=\"17\"><\/line><\/svg>\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"drawer-backdrop\" id=\"dfx-drawer-backdrop\"><\/div>\r\n  <aside class=\"drawer\" id=\"dfx-drawer\" aria-hidden=\"true\">\r\n    <button class=\"drawer-close\" aria-label=\"Close menu\">\u2715<\/button>\r\n    <p class=\"drawer-label\">Menu<\/p>\r\n    <nav class=\"drawer-links\">\r\n      <a href=\"#dfx-road\">Record<\/a>\r\n      <a href=\"#dfx-fit\">Requirements<\/a>\r\n      <a href=\"#dfx-training\">Training<\/a>\r\n      <a href=\"#dfx-life\">Off the clock<\/a>\r\n      <a href=\"#dfx-contact\">Contact<\/a>\r\n    <\/nav>\r\n    <div class=\"drawer-status\"><span class=\"dot\"><\/span>Class A \u00b7 open to work<\/div>\r\n  <\/aside>\r\n\r\n  <div class=\"search-modal\" id=\"dfx-search\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Search\">\r\n    <div class=\"search-card\">\r\n      <div class=\"search-top\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"11\" cy=\"11\" r=\"7\"><\/circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"><\/line><\/svg>\r\n        <input type=\"text\" id=\"dfx-search-input\" placeholder=\"Jump to a section\u2026\" autocomplete=\"off\" spellcheck=\"false\">\r\n        <button class=\"search-esc\" aria-label=\"Close search\">Esc<\/button>\r\n      <\/div>\r\n      <ul class=\"search-results\" id=\"dfx-search-results\"><\/ul>\r\n      <p class=\"search-empty\" id=\"dfx-search-empty\" hidden>No matches.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <header class=\"hero\">\r\n    <div class=\"wrap hero-grid\">\r\n      <div>\r\n        <p class=\"eyebrow eyebrow-lead hero-in\" style=\"--d:.05s\"><span class=\"pro-tag\">Professional<\/span> Las Vegas, NV \u00b7 relocating anywhere<\/p>\r\n        <h1><span class=\"line-wrap hero-in\" style=\"--d:.15s\"><span class=\"grad\">Class A<\/span><\/span><span class=\"line-wrap hero-in\" style=\"--d:.28s\"><span class=\"cyan\">CDL Driver.<\/span><\/span><\/h1>\r\n        <p class=\"lede hero-in\" style=\"--d:.42s\"><strong>Licensed since 2002. Class&nbsp;A.<br class=\"lede-break\">No&nbsp;restrictions. Spotless&nbsp;record.<\/strong><\/p>\r\n        <div class=\"hero-cta hero-in\" style=\"--d:.62s\">\r\n          <a class=\"btn btn-primary modal-link\" data-modal=\"resume\" role=\"button\" tabindex=\"0\">View r\u00e9sum\u00e9 \u2192<\/a>\r\n          <a class=\"btn btn-ghost btn-goal modal-link\" data-modal=\"goal\" role=\"button\" tabindex=\"0\"><span class=\"goal-flag\">Goal<\/span> My career goal \u2192<\/a>\r\n        <\/div>\r\n        <div class=\"hud hero-in\" style=\"--d:.68s\" aria-label=\"Live driver status\">\r\n          <span class=\"hud-item\"><b id=\"hud-clock\">--:--<\/b> Las Vegas time<\/span>\r\n          <span class=\"hud-sep\">\u00b7<\/span>\r\n          <span class=\"hud-item\"><span class=\"dot\"><\/span> Available now<\/span>\r\n          <span class=\"hud-sep\">\u00b7<\/span>\r\n          <span class=\"hud-item\"><b id=\"hud-days\">8,000+<\/b> days incident free<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <figure class=\"hero-photo hero-in-photo\">\r\n        <span class=\"id-clip\" aria-hidden=\"true\"><\/span>\r\n        <div class=\"id-photo\">\r\n          <img decoding=\"async\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/07\/david-forde-driving.jpeg\" alt=\"David Forde, Class A CDL driver, behind the wheel\">\r\n        <\/div>\r\n        <div class=\"id-strip\" aria-hidden=\"true\">\r\n          <span class=\"id-name\">FORDE, DAVID <b>\u00b7<\/b> CLASS A<\/span>\r\n          <span class=\"id-bar\"><\/span>\r\n        <\/div>\r\n      <\/figure>\r\n    <\/div>\r\n    <div class=\"wrap\">\r\n      <div class=\"cred-strip hero-in\" style=\"--d:.66s\">\r\n        <span class=\"cred-strip-label\">Credentials<\/span>\r\n        <div class=\"ticker\">\r\n        <span class=\"hero-in pill-btn\" style=\"--d:.72s\" data-pill=\"ghsa\" role=\"button\" tabindex=\"0\"><i class=\"pill-ic ic-shield\"><\/i><span class=\"k\">GHSA<\/span> First Responder<\/span>\r\n        <span class=\"hero-in pill-btn\" style=\"--d:.79s\" data-pill=\"endo\" role=\"button\" tabindex=\"0\"><i class=\"pill-ic ic-badge\"><\/i><span class=\"k\">H\u00b7N\u00b7X\u00b7T<\/span> endorsed<\/span>\r\n        <span class=\"hero-in pill-btn\" style=\"--d:.86s\" data-pill=\"eldt\" role=\"button\" tabindex=\"0\"><i class=\"pill-ic ic-grad\"><\/i><span class=\"k\">ELDT 90.67%<\/span> top 10%<\/span>\r\n        <span class=\"hero-in pill-btn\" style=\"--d:.93s\" data-pill=\"trips\" role=\"button\" tabindex=\"0\"><i class=\"pill-ic ic-star\"><\/i><span class=\"k\">3,400 trips<\/span> @ 4.99\u2605<\/span>\r\n        <span class=\"hero-in pill-btn\" style=\"--d:1s\" data-pill=\"tech\" role=\"button\" tabindex=\"0\"><i class=\"pill-ic ic-pc\"><\/i><span class=\"k\">60+ WPM<\/span> tech fluent<\/span>\r\n        <\/div>\r\n        <span class=\"cred-strip-hint\">Tap to learn more<\/span>\r\n      <\/div>\r\n    <\/div>\r\n      <div class=\"hero-road\" aria-hidden=\"true\"><\/div>\r\n  <\/header>\r\n\r\n  <hr class=\"seam\">\r\n\r\n  <!-- 01 \u2014 ON THE ROAD (credential) -->\r\n  <section id=\"dfx-road\" class=\"sec road-sec\">\r\n    <div class=\"wrap\">\r\n      <div class=\"sec-head\"><span class=\"sec-num\">01<\/span><h2 class=\"sec-title\"><span class=\"road-accent\">On the road<\/span> \u00b7 20+ years, spotless<\/h2><\/div>\r\n      <p class=\"road-lead\"><b>Hazmat, Tanker, and Doubles\/Triples<\/b> qualify me for freight most drivers can't haul: fuel, chemical, and hazardous loads. The higher-paying lanes.<\/p>\r\n      <div class=\"drive-grid\">\r\n        <div class=\"plate reveal\">\r\n          <span class=\"plate-sheen\"><\/span>\r\n          <span class=\"plate-bolt tl\"><\/span><span class=\"plate-bolt tr\"><\/span><span class=\"plate-bolt bl\"><\/span><span class=\"plate-bolt br\"><\/span>\r\n          <div class=\"plate-inner\">\r\n          <div class=\"plate-top\">\r\n            <div class=\"cls\">CDL \u00b7 CLASS A<\/div>\r\n            <div class=\"st\">STATE OF NEVADA<br>EXP 04 \/ 2035<\/div>\r\n          <\/div>\r\n          <div class=\"plate-body\">\r\n            <div class=\"endos\">\r\n              <div class=\"endo\" tabindex=\"0\" style=\"--sd:0s\" data-unlock=\"Fuel &amp; chemical loads\"><b>H<\/b><span>Hazmat<\/span><\/div>\r\n              <div class=\"endo\" tabindex=\"0\" style=\"--sd:.1s\" data-unlock=\"Liquid bulk tankers\"><b>N<\/b><span>Tanker<\/span><\/div>\r\n              <div class=\"endo\" tabindex=\"0\" style=\"--sd:.2s\" data-unlock=\"Hazmat + tanker combo\"><b>X<\/b><span>Tank+Haz<\/span><\/div>\r\n              <div class=\"endo\" tabindex=\"0\" style=\"--sd:.3s\" data-unlock=\"Double &amp; triple trailers\"><b>T<\/b><span>Doubles\/Triples<\/span><\/div>\r\n              <div class=\"endo endo-twic\" tabindex=\"0\" style=\"--sd:.4s\" data-unlock=\"Ports &amp; secure terminals\"><b>TWIC<\/b><span>Certified<\/span><\/div>\r\n            <\/div>\r\n            <p class=\"endo-note\" id=\"endo-note\"><span class=\"endo-note-default\">Hover an endorsement to see the lanes it unlocks<\/span><\/p>\r\n            <div class=\"plate-rows\">\r\n              <div><span>Licensed<\/span><span>Driving since 2002 \u00b7 CDL 2026<\/span><\/div>\r\n              <div><span>Restrictions<\/span><span>None, manual proficient<\/span><\/div>\r\n              <div><span>Training<\/span><span><a class=\"modal-link\" data-modal=\"rtds\" role=\"button\" tabindex=\"0\">RTDS<\/a> \u00b7 160 hrs \u00b7 top 10%<\/span><\/div>\r\n              <div><span>Relocate<\/span><span>Anywhere<\/span><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"record reveal\">\r\n          <p class=\"lbl\">Clears every screen<\/p>\r\n          <h3>A record carriers can trust<\/h3>\r\n          <ul class=\"checklist\">\r\n            <li>Licensed driver since 2002, over 20 years on the road<\/li>\r\n            <li>Zero points on driving record<\/li>\r\n            <li>Clean background check<\/li>\r\n            <li>No Drugs<\/li>\r\n            <li>No Alcohol<\/li>\r\n            <li>No restrictions, manual transmission proficient<\/li>\r\n          <\/ul>\r\n          <div class=\"clear-stamp\" aria-label=\"All screenings clear\">\r\n            <span class=\"clear-stamp-ic\"><\/span>\r\n            <span class=\"clear-stamp-txt\"><b>All screens clear<\/b><small>MVR \u00b7 Background \u00b7 Drug &amp; alcohol<\/small><\/span>\r\n            <span class=\"clear-stamp-year\">2026<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"trackrow reveal\">\r\n        <div class=\"stat\"><div class=\"n\"><span class=\"num\" data-count=\"2002\" data-plain=\"1\">2002<\/span><\/div><span class=\"c\">driving since<\/span><\/div>\r\n        <div class=\"stat\"><div class=\"n\"><span class=\"num\" data-count=\"3400\" data-odometer=\"1\">3,400<\/span><\/div><span class=\"c\">trips logged<\/span><\/div>\r\n        <div class=\"stat stat-gauge\">\r\n          <svg class=\"gauge\" viewBox=\"0 0 100 100\" data-pct=\"99.8\" aria-hidden=\"true\">\r\n            <circle class=\"gauge-ticks\" cx=\"50\" cy=\"50\" r=\"37\"><\/circle>\r\n            <circle class=\"gauge-track\" cx=\"50\" cy=\"50\" r=\"44\"><\/circle>\r\n            <circle class=\"gauge-fill\" cx=\"50\" cy=\"50\" r=\"44\"><\/circle>\r\n          <\/svg>\r\n          <div class=\"stat-inner\"><div class=\"n\"><span class=\"num\" data-count=\"4.99\" data-dec=\"2\">4.99<\/span><small>\u2605<\/small><\/div><span class=\"c\">driver rating<\/span><\/div>\r\n        <\/div>\r\n        <div class=\"stat stat-gauge\">\r\n          <svg class=\"gauge\" viewBox=\"0 0 100 100\" data-pct=\"94\" aria-hidden=\"true\">\r\n            <circle class=\"gauge-ticks\" cx=\"50\" cy=\"50\" r=\"37\"><\/circle>\r\n            <circle class=\"gauge-track\" cx=\"50\" cy=\"50\" r=\"44\"><\/circle>\r\n            <circle class=\"gauge-fill\" cx=\"50\" cy=\"50\" r=\"44\"><\/circle>\r\n          <\/svg>\r\n          <div class=\"stat-inner\"><div class=\"n\"><span class=\"num\" data-count=\"94\">94<\/span><small>%<\/small><\/div><span class=\"c\">acceptance<\/span><\/div>\r\n        <\/div>\r\n        <div class=\"stat\"><div class=\"n\">0<\/div><span class=\"c\">points<\/span><\/div>\r\n        <div class=\"stat\"><div class=\"n\">&lt;1<small>%<\/small><\/div><span class=\"c\">cancellations<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"badges\">\r\n        <span class=\"badge\">Uber Gold<\/span>\r\n        <span class=\"badge\">2,000 five-star trips<\/span>\r\n        <span class=\"badge\">95% Driver Insights<\/span>\r\n        <span class=\"badge\">ELDT 90.67%, top 10%<\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <hr class=\"seam\">\r\n\r\n  <!-- 02 \u2014 REQUIREMENTS MATCH -->\r\n  <section id=\"dfx-fit\" class=\"sec\">\r\n    <div class=\"wrap\">\r\n      <div class=\"sec-head\"><span class=\"sec-num\">02<\/span><h2 class=\"sec-title\">Meets every <span class=\"road-accent\">requirement<\/span>, beats most<\/h2><\/div>\r\n      <div class=\"match reveal\">\r\n        <div class=\"match-row match-head\"><span>What carriers screen for<\/span><span>What I bring<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">MVR under 1 point<\/span><span class=\"match-bring\">Zero points<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Clean drug &amp; alcohol history (10 yrs)<\/span><span class=\"match-bring\">Clean. No drugs, no alcohol<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Passes a background check<\/span><span class=\"match-bring\">Clean background<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">3+ years driving public roads<\/span><span class=\"match-bring\">20+ years, since 2002<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">21 or older<\/span><span class=\"match-bring\">Yes<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Class A CDL with endorsements<\/span><span class=\"match-bring\">Class A \u00b7 H\u00b7N\u00b7X\u00b7T \u00b7 TWIC<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Manual transmission ability<\/span><span class=\"match-bring\">Proficient, no restrictions<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Vehicle control &amp; backing<\/span><span class=\"match-bring\">Class A, no restrictions<\/span><\/div>\r\n        <div class=\"match-row\"><span class=\"match-req\">Accredited CDL training<\/span><span class=\"match-bring\">RTDS \u00b7 160 hrs \u00b7 top 10%<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"avail reveal\">\r\n        <span>Any shift<\/span>\r\n        <span>Travels up to a month<\/span>\r\n        <span>Relocates anywhere<\/span>\r\n        <span>Lifts 45 lbs<\/span>\r\n        <span>Works outdoors<\/span>\r\n        <span>Available now<\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- 03 \u2014 TRAINING & CERTIFICATIONS -->\r\n  <div class=\"road-band\" role=\"presentation\">\r\n    <div class=\"marq\"><div class=\"marq-track\">\r\n      <span class=\"marq-set\">Class A <b>\u2605<\/b> Hazmat <b>\u2605<\/b> Tanker <b>\u2605<\/b> Doubles\/Triples <b>\u2605<\/b> TWIC <b>\u2605<\/b> 4.99\u2605 Rating <b>\u2605<\/b> Zero Points <b>\u2605<\/b> GHSA Certified <b>\u2605<\/b> 3,400 Trips <b>\u2605<\/b> 20+ Years <b>\u2605<\/b> Relocates Anywhere <b>\u2605<\/b> <\/span>\r\n      <span class=\"marq-set\" aria-hidden=\"true\">Class A <b>\u2605<\/b> Hazmat <b>\u2605<\/b> Tanker <b>\u2605<\/b> Doubles\/Triples <b>\u2605<\/b> TWIC <b>\u2605<\/b> 4.99\u2605 Rating <b>\u2605<\/b> Zero Points <b>\u2605<\/b> GHSA Certified <b>\u2605<\/b> 3,400 Trips <b>\u2605<\/b> 20+ Years <b>\u2605<\/b> Relocates Anywhere <b>\u2605<\/b> <\/span>\r\n    <\/div><\/div>\r\n  <\/div>\r\n\r\n  <section id=\"dfx-training\" class=\"sec auto-sec\">\r\n    <div class=\"wrap\">\r\n      <div class=\"sec-head\"><span class=\"sec-num\">03<\/span><h2 class=\"sec-title\"><span class=\"code-accent\">Trained<\/span> beyond the license<\/h2><\/div>\r\n      <p class=\"auto-lead\">Beyond the CDL, I've completed training that keeps me safe and current on the road, including how to work alongside the autonomous vehicles now sharing the highways.<\/p>\r\n\r\n      <div class=\"avcert reveal\">\r\n        <div class=\"avcert-logos\">\r\n          <img decoding=\"async\" class=\"avcert-logo\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/waymo_logo.webp\" alt=\"Waymo logo\">\r\n          <img decoding=\"async\" class=\"avcert-logo\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/686bd9838380ee077a754de5_ghsa2017-logo-350px.png\" alt=\"Governors Highway Safety Association logo\">\r\n        <\/div>\r\n        <div>\r\n          <p class=\"lbl\">Certified \u00b7 2026<\/p>\r\n          <h3>GHSA \/ Waymo First Responder AV Training<\/h3>\r\n          <p>Completed the Governors Highway Safety Association and Waymo program on how to safely interact with autonomous vehicles on the road. <a href=\"https:\/\/www.ghsa.org\/resource-hub\/waymo-first-responder-av-training\" target=\"_blank\" rel=\"noopener\">View program \u2197<\/a> \u00b7 <a class=\"modal-link\" data-modal=\"cert\" role=\"button\" tabindex=\"0\">View certificate \ud83d\udcdc<\/a><\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <hr class=\"seam\">\r\n\r\n  <!-- 04 \u2014 OFF THE CLOCK -->\r\n  <section id=\"dfx-life\" class=\"sec\">\r\n    <div class=\"wrap\">\r\n      <div class=\"sec-head\"><span class=\"sec-num\">04<\/span><h2 class=\"sec-title\">Off the clock<\/h2><\/div>\r\n      <p class=\"auto-lead\">Off the clock, it's a lot of fresh air and a little noise. The same steady focus that keeps me safe on long hauls.<\/p>\r\n      <div class=\"hobbies\">\r\n        <div class=\"hob reveal\">\r\n          <p class=\"lbl\">Mind<\/p>\r\n          <ul>\r\n            <li><b>Ancient languages<\/b>: hieroglyphics, Aramaic, Hebrew<\/li>\r\n            <li><b>Ancient texts<\/b> &amp; esotericism<\/li>\r\n          <\/ul>\r\n        <\/div>\r\n        <div class=\"hob reveal\">\r\n          <p class=\"lbl\">Outdoors<\/p>\r\n          <ul>\r\n            <li><b>Surfing<\/b><\/li>\r\n            <li><b>Snowboarding<\/b><\/li>\r\n            <li><b>Hiking<\/b><\/li>\r\n            <li><b>Fishing<\/b><\/li>\r\n          <\/ul>\r\n        <\/div>\r\n        <div class=\"hob reveal\">\r\n          <p class=\"lbl\">Good company<\/p>\r\n          <ul>\r\n            <li><b>Guitar<\/b> &amp; live music<\/li>\r\n            <li><b>BBQ<\/b><\/li>\r\n          <\/ul>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"community reveal\">\r\n        <img decoding=\"async\" class=\"community-logo\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/Lions_Clubs_International_logo.svg_.png\" alt=\"Lions Clubs International logo\">\r\n        <div>\r\n          <p class=\"lbl\">Community<\/p>\r\n          <p>Member of <b>Lions Club International<\/b>, Seal Beach (CA) chapter, and a firm believer in giving back. Service is part of how I show up.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <hr class=\"seam\">\r\n\r\n  <!-- CONTACT -->\r\n  <section id=\"dfx-contact\" class=\"sec contact\">\r\n    <div class=\"wrap\">\r\n      <p class=\"contact-rotator\" aria-hidden=\"true\"><span class=\"rot-word\" data-rot=\"Available now.|Relocates anywhere.|Clears every screen.|Hauls what others can't.\">Available now.<\/span><\/p>\r\n      <h2>One <span class=\"amber\">driver<\/span>. A <span class=\"cyan\">spotless<\/span> record.<\/h2>\r\n      <p>Need a Class A driver who clears every screen and hauls the loads most can't? Let's talk. Las Vegas based, ready to relocate anywhere.<\/p>\r\n      <div class=\"open-to\"><span class=\"on\">Open to:<\/span> OTR, regional, and hazmat\/tanker lanes. <b>Available now. Will relocate anywhere.<\/b><\/div>\r\n\r\n      <div class=\"relo-map\" role=\"img\" aria-label=\"Map of the United States showing routes from Las Vegas to every region \u2014 willing to relocate anywhere\">\r\n        <svg viewBox=\"0 0 860 600\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">\r\n          <path class=\"us-outline\" d=\"M62,88 L235,68 L400,84 L468,108 L505,150 L560,128 L610,152 L655,120 L700,92 L762,58 L792,96 L752,150 L722,200 L702,250 L722,300 L692,358 L700,418 L758,538 L722,552 L680,478 L622,458 L540,468 L470,452 L420,486 L372,468 L342,528 L300,458 L262,418 L200,398 L132,388 L94,358 L70,278 L48,178 Z\"\/>\r\n          <g class=\"routes\">\r\n            <path class=\"route\" style=\"--rd:.1s\" d=\"M112,305 Q78,200 78,112\"\/>\r\n            <path class=\"route\" style=\"--rd:.4s\" d=\"M112,305 Q320,170 515,178\"\/>\r\n            <path class=\"route\" style=\"--rd:.7s\" d=\"M112,305 Q430,110 708,206\"\/>\r\n            <path class=\"route\" style=\"--rd:1s\" d=\"M112,305 Q460,470 738,520\"\/>\r\n            <path class=\"route\" style=\"--rd:1.3s\" d=\"M112,305 Q230,400 336,426\"\/>\r\n          <\/g>\r\n          <g class=\"dests\">\r\n            <circle style=\"--rd:.75s\" cx=\"78\" cy=\"112\" r=\"5\"\/>\r\n            <circle style=\"--rd:1.05s\" cx=\"515\" cy=\"178\" r=\"5\"\/>\r\n            <circle style=\"--rd:1.35s\" cx=\"708\" cy=\"206\" r=\"5\"\/>\r\n            <circle style=\"--rd:1.65s\" cx=\"738\" cy=\"520\" r=\"5\"\/>\r\n            <circle style=\"--rd:1.95s\" cx=\"336\" cy=\"426\" r=\"5\"\/>\r\n          <\/g>\r\n          <g class=\"lv-pin\">\r\n            <circle class=\"pin-ring\" cx=\"112\" cy=\"305\" r=\"11\"\/>\r\n            <circle class=\"pin-core\" cx=\"112\" cy=\"305\" r=\"6\"\/>\r\n          <\/g>\r\n        <\/svg>\r\n        <p class=\"relo-cap\"><span class=\"relo-dot\"><\/span>Las Vegas based \u00b7 Will relocate anywhere<\/p>\r\n      <\/div>\r\n      <div class=\"contact-cta\">\r\n        <a class=\"btn btn-primary modal-link\" data-modal=\"resume\" role=\"button\" tabindex=\"0\">View r\u00e9sum\u00e9 \u2192<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"mailto:me@davidforde.net?subject=Let's%20talk\">Email David<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"tel:+14157568565\">Call \u00b7 +1 415 756 8565<\/a>\r\n      <\/div>\r\n      <div class=\"contact-meta\">\r\n        <a href=\"mailto:me@davidforde.net\">me@davidforde.net<\/a>\r\n        <span>Las Vegas, NV<\/span>\r\n        <a href=\"https:\/\/davidforde.net\">DavidForde.net<\/a>\r\n        <a class=\"modal-link\" data-modal=\"resume\" role=\"button\" tabindex=\"0\">R\u00e9sum\u00e9<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <script type=\"application\/ld+json\">\r\n  {\"@context\":\"https:\/\/schema.org\",\"@type\":\"Person\",\"name\":\"David Forde\",\"url\":\"https:\/\/davidforde.net\",\"email\":\"me@davidforde.net\",\"telephone\":\"+14157568565\",\"jobTitle\":\"Class A CDL Driver\",\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"Las Vegas\",\"addressRegion\":\"NV\",\"addressCountry\":\"US\"},\"knowsAbout\":[\"Class A CDL\",\"Hazmat endorsement\",\"Tanker endorsement\",\"Doubles and Triples\",\"TWIC\",\"Autonomous vehicle awareness\"],\"memberOf\":{\"@type\":\"Organization\",\"name\":\"Lions Club International\"}}\r\n  <\/script>\r\n\r\n  <div class=\"modal\" id=\"rtds-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"rtds-title\">\r\n    <div class=\"modal-card\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <p class=\"lbl\">CDL Training<\/p>\r\n      <h3 id=\"rtds-title\">RTDS Truck Driving School<\/h3>\r\n      <p class=\"modal-meta\">Las Vegas, NV<\/p>\r\n      <p class=\"modal-body\">Where I earned my Class A. I completed RTDS's 160-hour professional CDL program, finishing with a 90.67% ELDT score, top 10% of my class.<\/p>\r\n      <a class=\"btn btn-primary\" href=\"https:\/\/share.google\/wQAgTSEmzw9jb5zv6\" target=\"_blank\" rel=\"noopener\">View on Google \u2197<\/a>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal\" id=\"cert-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"cert-title\">\r\n    <div class=\"modal-card wide\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <p class=\"lbl\">Certificate<\/p>\r\n      <h3 id=\"cert-title\">GHSA \/ Waymo First Responder AV Training<\/h3>\r\n      <img decoding=\"async\" class=\"cert-img\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/DAVID_FORDE_GHSA_WAYMO_CERT.jpg\" alt=\"GHSA \/ Waymo First Responder AV Training certificate\">\r\n      <a class=\"btn btn-ghost cert-open\" href=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/DAVID_FORDE_GHSA_WAYMO_CERT.jpg\" target=\"_blank\" rel=\"noopener\">Open full size \u2197<\/a>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ===== credential pill modals (desktop) ===== -->\r\n  <div class=\"modal pill-modal\" id=\"ghsa-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ghsa-title\">\r\n    <div class=\"modal-card cred\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--logos\">\r\n        <div class=\"cred-logos\">\r\n          <img decoding=\"async\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/686bd9838380ee077a754de5_ghsa2017-logo-350px.png\" alt=\"Governors Highway Safety Association logo\" class=\"cred-logo\">\r\n          <span class=\"cred-x\">\u00d7<\/span>\r\n          <img decoding=\"async\" src=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/waymo_logo.webp\" alt=\"Waymo logo\" class=\"cred-logo cred-logo--waymo\">\r\n        <\/div>\r\n      <\/div>\r\n      <p class=\"lbl\">Certification \u00b7 2026<\/p>\r\n      <h3 id=\"ghsa-title\">GHSA \/ Waymo First Responder AV Training<\/h3>\r\n      <p class=\"cred-body\">I completed the Governors Highway Safety Association and Waymo training program, which teaches drivers how to work safely around autonomous vehicles on public roads. The course covers recognizing self-driving trucks and cars, understanding right of way, and responding safely when sharing the highway with them.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li>Autonomous vehicle awareness &amp; safe interaction<\/li>\r\n        <li>First-responder protocols around AVs<\/li>\r\n        <li>Issued by GHSA in partnership with Waymo<\/li>\r\n      <\/ul>\r\n      <div class=\"cred-actions\">\r\n        <a class=\"btn btn-primary\" href=\"https:\/\/www.ghsa.org\/resource-hub\/waymo-first-responder-av-training\" target=\"_blank\" rel=\"noopener\">View program \u2197<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/06\/DAVID_FORDE_GHSA_WAYMO_CERT.jpg\" target=\"_blank\" rel=\"noopener\">See certificate \ud83d\udcdc<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal pill-modal\" id=\"endo-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"endo-title\">\r\n    <div class=\"modal-card cred\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--icon\"><span class=\"cred-badge cred-badge--amber\">H\u00b7N\u00b7X\u00b7T<\/span><\/div>\r\n      <p class=\"lbl\">CDL Endorsements<\/p>\r\n      <h3 id=\"endo-title\">Hazmat \u00b7 Tanker \u00b7 Doubles\/Triples<\/h3>\r\n      <p class=\"cred-body\">I hold four endorsements plus TWIC certification. Together they qualify me for the high-value freight that most drivers cannot legally haul.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li><b>H \u2014 Hazmat:<\/b> fuel, chemical &amp; hazardous loads<\/li>\r\n        <li><b>N \u2014 Tanker:<\/b> liquid &amp; bulk tanker freight<\/li>\r\n        <li><b>X \u2014 Combo:<\/b> hazmat + tanker together<\/li>\r\n        <li><b>T \u2014 Doubles\/Triples:<\/b> multi-trailer loads<\/li>\r\n        <li><b>TWIC:<\/b> cleared for ports &amp; secure terminals<\/li>\r\n        <li><b>Manual:<\/b> no restrictions, fully licensed on manual transmission<\/li>\r\n      <\/ul>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal pill-modal\" id=\"eldt-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"eldt-title\">\r\n    <div class=\"modal-card cred\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--icon\"><span class=\"cred-badge cred-badge--green\">90.67%<\/span><\/div>\r\n      <p class=\"lbl\">CDL Training<\/p>\r\n      <h3 id=\"eldt-title\">ELDT Score \u2014 Top 10% of Class<\/h3>\r\n      <p class=\"cred-body\">I completed 160 hours of professional CDL training at RTDS Truck Driving School in Las Vegas and finished with a 90.67% ELDT score, placing me in the top 10% of my class.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li>Defensive driving &amp; vehicle inspections<\/li>\r\n        <li>Highway &amp; city driving, DOT safety compliance<\/li>\r\n        <li>Backing, coupling &amp; uncoupling maneuvers<\/li>\r\n      <\/ul>\r\n      <div class=\"cred-actions\">\r\n        <a class=\"btn btn-primary\" href=\"https:\/\/share.google\/wQAgTSEmzw9jb5zv6\" target=\"_blank\" rel=\"noopener\">RTDS on Google \u2197<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal pill-modal\" id=\"trips-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"trips-title\">\r\n    <div class=\"modal-card cred\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--icon\"><span class=\"cred-badge cred-badge--amber\">4.99\u2605<\/span><\/div>\r\n      <p class=\"lbl\">Driving Record<\/p>\r\n      <h3 id=\"trips-title\">3,400 Trips at a 4.99\u2605 Rating<\/h3>\r\n      <p class=\"cred-body\">I have completed thousands of trips in high-density Las Vegas traffic while holding a near-perfect rating. That record reflects consistency, professionalism, and safe driving on every trip.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li>3,400 completed trips<\/li>\r\n        <li>94% acceptance \u00b7 &lt;1% cancellations<\/li>\r\n        <li>Uber Gold \u00b7 2,000+ five-star trips \u00b7 95% Driver Insights<\/li>\r\n      <\/ul>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal pill-modal\" id=\"tech-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"tech-title\">\r\n    <div class=\"modal-card cred\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--icon\"><span class=\"cred-badge cred-badge--green\">60+ WPM<\/span><\/div>\r\n      <p class=\"lbl\">Technology &amp; Systems<\/p>\r\n      <h3 id=\"tech-title\">Tech-Fluent Driver<\/h3>\r\n      <p class=\"cred-body\">Technology is second nature to me. I built and maintain my own web platform, so I bring real coding and database experience along with fast, accurate typing and complete comfort in the tools modern fleets rely on.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li><b>Google Workspace (G Suite) fluent<\/b> \u2014 Docs, Sheets, Drive, Gmail, Calendar<\/li>\r\n        <li><b>Types 60+ WPM<\/b> \u2014 fast, accurate logs, reports &amp; data entry<\/li>\r\n        <li><b>PHP &amp; database management<\/b> background \u2014 built and maintain my own web platform<\/li>\r\n        <li>Quick to learn ELDs, dispatch, telematics &amp; fleet software<\/li>\r\n      <\/ul>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal\" id=\"goal-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"goal-title\">\r\n    <div class=\"modal-card cred goal-card\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"cred-head cred-head--icon\"><span class=\"cred-badge cred-badge--green goal-badge\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><circle cx=\"12\" cy=\"12\" r=\"4.5\"><\/circle><circle cx=\"12\" cy=\"12\" r=\"1\"><\/circle><\/svg><\/span><\/div>\r\n      <p class=\"lbl\">Career Objective<\/p>\r\n      <h3 id=\"goal-title\">Autonomous Vehicle Driver \/ Test Operator<\/h3>\r\n      <p class=\"cred-body goal-statement\">Seeking a driving\/test operator position in autonomous vehicles where I can leverage my Class A CDL, AV safety training, and clean safety record to contribute immediately while growing into AV operations, testing, or technical roles.<\/p>\r\n      <ul class=\"cred-points\">\r\n        <li>Class A CDL \u00b7 H\u00b7N\u00b7X\u00b7T endorsements \u00b7 TWIC<\/li>\r\n        <li>GHSA \/ Waymo First Responder AV training<\/li>\r\n        <li>Clean record \u00b7 3,400 trips \u00b7 4.99\u2605 rating<\/li>\r\n        <li>Tech fluent \u2014 Google Workspace, 60+ WPM<\/li>\r\n      <\/ul>\r\n      <div class=\"cred-actions\">\r\n        <a class=\"btn btn-primary modal-link\" data-modal=\"resume\" role=\"button\" tabindex=\"0\">View r\u00e9sum\u00e9 \u2192<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"mailto:me@davidforde.net?subject=AV%20Driver%20Opportunity\">Get in touch \u2709<\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal\" id=\"resume-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"resume-title\">\r\n    <div class=\"modal-card resume\">\r\n      <button class=\"modal-close\" aria-label=\"Close\">\u2715<\/button>\r\n      <div class=\"resume-head\">\r\n        <div>\r\n          <p class=\"lbl\">R\u00e9sum\u00e9<\/p>\r\n          <h3 id=\"resume-title\">David Forde \u2014 Class A CDL Driver<\/h3>\r\n        <\/div>\r\n        <div class=\"resume-tools\" role=\"toolbar\" aria-label=\"R\u00e9sum\u00e9 view controls\">\r\n          <button class=\"rtool\" id=\"rz-out\" type=\"button\" aria-label=\"Zoom out\">\u2212<\/button>\r\n          <span class=\"rz-level\" id=\"rz-level\">Fit<\/span>\r\n          <button class=\"rtool\" id=\"rz-in\" type=\"button\" aria-label=\"Zoom in\">+<\/button>\r\n          <button class=\"rtool\" id=\"rz-reset\" type=\"button\" aria-label=\"Reset view\">Fit<\/button>\r\n          <button class=\"rtool\" id=\"rz-full\" type=\"button\" aria-label=\"Fullscreen\">\u2922<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"resume-shell\">\r\n        <div class=\"resume-stage\" id=\"resume-stage\">\r\n          <div class=\"resume-canvas\" id=\"resume-canvas\"><\/div>\r\n        <\/div>\r\n        <p class=\"resume-loading\" id=\"resume-loading\">Loading r\u00e9sum\u00e9\u2026<\/p>\r\n        <p class=\"resume-hint\" id=\"resume-hint\">Drag to move \u00b7 scroll or +\/\u2212 to zoom<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"resume-mobile\" id=\"resume-mobile\">\r\n        <div class=\"rm-card\">\r\n          <div class=\"rm-badge\">DF<\/div>\r\n          <p class=\"rm-name\">Class A CDL Driver<\/p>\r\n          <p class=\"rm-sub\">Las Vegas, NV \u00b7 20+ years \u00b7 spotless record<\/p>\r\n          <div class=\"rm-tags\"><span>Hazmat<\/span><span>Tanker<\/span><span>Doubles<\/span><span>TWIC<\/span><\/div>\r\n          <p class=\"rm-note\">Tap below to open the full r\u00e9sum\u00e9 \u2014 it'll open cleanly in your PDF viewer.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"resume-bar\">\r\n        <a class=\"btn btn-primary\" href=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/07\/David_Forde_Resume_LV.pdf\" target=\"_blank\" rel=\"noopener\">Open r\u00e9sum\u00e9 \u2197<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/07\/David_Forde_Resume_LV.pdf\" download=\"David-Forde-Resume.pdf\">Download PDF \u2193<\/a>\r\n        <button class=\"btn btn-ghost\" id=\"resume-copy\" data-copy=\"https:\/\/davidforde.net\/wp-content\/uploads\/2026\/07\/David_Forde_Resume_LV.pdf\" type=\"button\">Copy link \u29c9<\/button>\r\n        <span class=\"copy-note\" id=\"resume-copy-note\">Link copied<\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"wrap\">\r\n    <footer class=\"foot-sign\">\r\n      <div class=\"foot-sign-panel\">\r\n        <span class=\"foot-sign-shield\">DF<\/span>\r\n        <div class=\"foot-sign-text\">\r\n          <span class=\"foot-sign-name\">DAVID FORDE<\/span>\r\n          <span class=\"foot-sign-sub\">CLASS A CDL \u00b7 LAS VEGAS, NV<\/span>\r\n        <\/div>\r\n        <a class=\"foot-sign-exit\" href=\"https:\/\/davidforde.net\">DavidForde.net \u2192<\/a>\r\n      <\/div>\r\n      <span class=\"foot-sign-fine\">\u00a9 2026 David Forde \u00b7 Available now \u00b7 Relocates anywhere<\/span>\r\n    <\/footer>\r\n  <\/div>\r\n\r\n  <div class=\"cmdk\" id=\"dfx-cmdk\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Quick navigation\">\r\n    <div class=\"cmdk-card\">\r\n      <input class=\"cmdk-in\" id=\"dfx-cmdk-in\" type=\"text\" placeholder=\"Type to jump: r\u00e9sum\u00e9, call, hazmat, map\u2026\" autocomplete=\"off\">\r\n      <ul class=\"cmdk-list\" id=\"dfx-cmdk-list\"><\/ul>\r\n      <div class=\"cmdk-foot\"><span><kbd>\u2191\u2193<\/kbd> navigate<\/span><span><kbd>\u21b5<\/kbd> select<\/span><span><kbd>esc<\/kbd> close<\/span><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  var root=document.querySelector('.dfx'); if(!root) return;\r\n  var reduce=matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n\r\n  \/\/ scroll reveals\r\n  var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.14});\r\n  root.querySelectorAll('.reveal').forEach(function(el){io.observe(el);});\r\n\r\n  \/\/ smooth anchor scroll\r\n  root.querySelectorAll('a[href^=\"#dfx-\"]').forEach(function(a){\r\n    a.addEventListener('click',function(e){\r\n      var t=document.querySelector(a.getAttribute('href'));\r\n      if(t){e.preventDefault(); t.scrollIntoView({behavior:reduce?'auto':'smooth',block:'start'});}\r\n    });\r\n  });\r\n\r\n  \/\/ signature spine: fill with scroll progress through the section\r\n  var fill=root.querySelector('.spine-fill');\r\n  var topbar=root.querySelector('.topbar');\r\n  var truck=root.querySelector('.trip-truck'), miles=root.querySelector('.trip-miles');\r\n  function prog(){\r\n    var pct=1;\r\n    if(fill){\r\n      var r=root.getBoundingClientRect();\r\n      var vh=window.innerHeight||document.documentElement.clientHeight;\r\n      var total=r.height-vh;\r\n      var passed=Math.min(Math.max(-r.top,0),Math.max(total,1));\r\n      pct=total>0?(passed\/total):1;\r\n      fill.style.height=(pct*100)+'%';\r\n    }\r\n    if(truck){ var t=Math.max(1.2, Math.min(98.8, pct*100)); truck.style.top=t+'%'; if(miles){ miles.style.top=t+'%'; miles.textContent=Math.round(pct*3400).toLocaleString('en-US')+' mi'; } }\r\n    if(topbar){ topbar.classList.toggle('scrolled', window.scrollY>80); }\r\n  }\r\n  prog();\r\n  window.addEventListener('scroll',function(){requestAnimationFrame(prog);},{passive:true});\r\n  window.addEventListener('resize',prog);\r\n\r\n  \/\/ count-up stats\r\n  function fmt(v,dec,plain){ if(dec>0) return v.toFixed(dec); v=Math.round(v); return plain?String(v):v.toLocaleString('en-US'); }\r\n  \/\/ odometer: rolling digit drums\r\n  function buildOdometer(el, finalText){\r\n    el.textContent=''; el.classList.add('odo');\r\n    finalText.split('').forEach(function(ch){\r\n      if(\/\\d\/.test(ch)){\r\n        var d=document.createElement('span'); d.className='odo-d';\r\n        var s=document.createElement('span'); s.className='odo-strip'; s.setAttribute('data-t',ch);\r\n        for(var i=0;i<=9;i++){ var n=document.createElement('span'); n.textContent=i; s.appendChild(n); }\r\n        d.appendChild(s); el.appendChild(d);\r\n      } else {\r\n        var c=document.createElement('span'); c.className='odo-c'; c.textContent=ch; el.appendChild(c);\r\n      }\r\n    });\r\n    return function(){\r\n      el.querySelectorAll('.odo-strip').forEach(function(s,i){\r\n        s.style.transitionDelay=(i*0.13)+'s';\r\n        requestAnimationFrame(function(){ requestAnimationFrame(function(){ s.style.transform='translateY(-'+parseInt(s.getAttribute('data-t'),10)+'em)'; }); });\r\n      });\r\n    };\r\n  }\r\n  root.querySelectorAll('.num').forEach(function(el){\r\n    var target=parseFloat(el.getAttribute('data-count'));\r\n    var plain=el.getAttribute('data-plain')==='1';\r\n    var dec=parseInt(el.getAttribute('data-dec')||'0',10);\r\n    if(el.getAttribute('data-odometer')==='1'){\r\n      var finalText=fmt(target,dec,plain);\r\n      if(reduce){ el.textContent=finalText; return; }\r\n      var go=buildOdometer(el, finalText);\r\n      var oSeen=false;\r\n      var oo=new IntersectionObserver(function(es){es.forEach(function(e){\r\n        if(e.isIntersecting&&!oSeen){ oSeen=true; oo.disconnect(); go(); }\r\n      });},{threshold:.4});\r\n      oo.observe(el);\r\n      return;\r\n    }\r\n    if(reduce){el.textContent=fmt(target,dec,plain);return;}\r\n    el.textContent=fmt(0,dec,plain);\r\n    var seen=false;\r\n    var co=new IntersectionObserver(function(es){es.forEach(function(e){\r\n      if(e.isIntersecting&&!seen){seen=true; co.disconnect();\r\n        var dur=1300,t0=performance.now();\r\n        \/\/ ease-out-back: settles with a tiny overshoot like an odometer\r\n        function easeOutBack(k){ var c1=1.2, c3=c1+1; return 1+c3*Math.pow(k-1,3)+c1*Math.pow(k-1,2); }\r\n        (function step(t){var k=Math.min((t-t0)\/dur,1),ease=easeOutBack(k);\r\n          var v=target*ease; if(v<0)v=0;\r\n          el.textContent=fmt(v,dec,plain);\r\n          if(k<1)requestAnimationFrame(step); else el.textContent=fmt(target,dec,plain);\r\n        })(t0);\r\n      }\r\n    });},{threshold:.4});\r\n    co.observe(el);\r\n  });\r\n\r\n  \/\/ gauge rings: sweep-fill when scrolled into view\r\n  (function(){\r\n    var C=2*Math.PI*44; \/\/ circumference for r=44\r\n    root.querySelectorAll('.gauge').forEach(function(g){\r\n      var fill=g.querySelector('.gauge-fill'); if(!fill) return;\r\n      var pct=parseFloat(g.getAttribute('data-pct'))||0;\r\n      var target=C*(1-pct\/100);\r\n      if(reduce){ fill.style.strokeDashoffset=target; return; }\r\n      var seen=false;\r\n      var go=new IntersectionObserver(function(es){es.forEach(function(e){\r\n        if(e.isIntersecting&&!seen){ seen=true; go.disconnect(); requestAnimationFrame(function(){ fill.style.strokeDashoffset=target; }); }\r\n      });},{threshold:.4});\r\n      go.observe(g);\r\n    });\r\n  })();\r\n\r\n  \/\/ relocation map: draw routes when scrolled into view\r\n  (function(){\r\n    var map=root.querySelector('.relo-map'); if(!map) return;\r\n    if(reduce){ map.classList.add('go'); return; }\r\n    var mo=new IntersectionObserver(function(es){es.forEach(function(e){\r\n      if(e.isIntersecting){ map.classList.add('go'); mo.disconnect(); }\r\n    });},{threshold:.35});\r\n    mo.observe(map);\r\n  })();\r\n\r\n  \/\/ hero parallax depth (desktop, after entrance animations settle)\r\n  (function(){\r\n    if(reduce || !window.matchMedia('(min-width:881px) and (pointer:fine)').matches) return;\r\n    var ph=root.querySelector('.hero-photo');\r\n    var tx=root.querySelector('.hero-grid > div:first-child');\r\n    setTimeout(function(){\r\n      if(ph) ph.classList.add('plx-on');\r\n      if(tx) tx.classList.add('plx-on');\r\n      function plx(){\r\n        var y=window.scrollY;\r\n        if(y<950){\r\n          if(ph) ph.style.transform='translate3d(0,'+(y*0.06).toFixed(1)+'px,0)';\r\n          if(tx) tx.style.transform='translate3d(0,'+(y*-0.025).toFixed(1)+'px,0)';\r\n        }\r\n      }\r\n      plx();\r\n      window.addEventListener('scroll',function(){requestAnimationFrame(plx);},{passive:true});\r\n    },2000);\r\n  })();\r\n\r\n  \/\/ live driver HUD: Las Vegas clock + days incident free\r\n  (function(){\r\n    var c=root.querySelector('#hud-clock'), d=root.querySelector('#hud-days');\r\n    if(d){ var days=Math.floor((Date.now()-new Date(2002,5,1).getTime())\/86400000); d.textContent=days.toLocaleString('en-US'); }\r\n    if(c){\r\n      function tick(){ try{ c.textContent=new Intl.DateTimeFormat('en-US',{hour:'numeric',minute:'2-digit',timeZone:'America\/Los_Angeles'}).format(new Date()); }catch(e){ c.textContent=new Date().toLocaleTimeString('en-US',{hour:'numeric',minute:'2-digit'}); } }\r\n      tick(); setInterval(tick,30000);\r\n    }\r\n  })();\r\n\r\n  \/\/ command palette (desktop): press \/ or Ctrl+K\r\n  (function(){\r\n    var pal=root.querySelector('#dfx-cmdk'), inp=root.querySelector('#dfx-cmdk-in'), list=root.querySelector('#dfx-cmdk-list');\r\n    if(!pal||!inp||!list) return;\r\n    function jump(sel){ var el=root.querySelector(sel); if(el) el.scrollIntoView({behavior:'smooth', block:'start'}); }\r\n    function go(href){ var a=document.createElement('a'); a.href=href; a.style.display='none'; document.body.appendChild(a); a.click(); document.body.removeChild(a); }\r\n    var cmds=[\r\n      {l:'View r\u00e9sum\u00e9', h:'Modal', kw:'resume cv pdf', run:function(){ openModalById('resume'); }},\r\n      {l:'My career goal', h:'Modal', kw:'goal objective av autonomous', run:function(){ openModalById('goal'); }},\r\n      {l:'Call David', h:'415 756 8565', kw:'call phone dial', run:function(){ go('tel:+14157568565'); }},\r\n      {l:'Email David', h:'me@davidforde.net', kw:'email mail contact message', run:function(){ go('mailto:me@davidforde.net'); }},\r\n      {l:'Driving record', h:'Section 01', kw:'record road years spotless hazmat endorsements plate', run:function(){ jump('#dfx-road'); }},\r\n      {l:'Requirements', h:'Section 02', kw:'requirements fit shift travel lift', run:function(){ jump('#dfx-fit'); }},\r\n      {l:'Training & certifications', h:'Section 03', kw:'training ghsa waymo rtds eldt cert', run:function(){ jump('#dfx-training'); }},\r\n      {l:'View GHSA \/ Waymo certificate', h:'Modal', kw:'certificate ghsa waymo av first responder', run:function(){ openModalById('cert'); }},\r\n      {l:'Relocation map', h:'Contact', kw:'map relocate anywhere vegas routes', run:function(){ jump('.relo-map'); }},\r\n      {l:'Contact section', h:'Section', kw:'contact reach hire touch', run:function(){ jump('#dfx-contact'); }},\r\n      {l:'Toggle dark mode', h:'Theme', kw:'dark light theme night mode', run:function(){ var dk=root.getAttribute('data-theme')==='dark'; setTheme(dk?'light':'dark'); }}\r\n    ];\r\n    var filtered=cmds.slice(), active=0;\r\n    function render(){\r\n      list.innerHTML='';\r\n      if(!filtered.length){ var e=document.createElement('li'); e.className='cmdk-empty'; e.textContent='No matches. Try \u201cr\u00e9sum\u00e9\u201d, \u201ccall\u201d, or \u201cmap\u201d.'; list.appendChild(e); return; }\r\n      filtered.forEach(function(c,i){\r\n        var li=document.createElement('li'); if(i===active) li.className='on';\r\n        var a=document.createElement('span'); a.textContent=c.l;\r\n        var h=document.createElement('span'); h.className='h'; h.textContent=c.h;\r\n        li.appendChild(a); li.appendChild(h);\r\n        li.addEventListener('click',function(){ exec(c); });\r\n        li.addEventListener('mousemove',function(){ if(active!==i){ active=i; render(); } });\r\n        list.appendChild(li);\r\n      });\r\n    }\r\n    function filter(){\r\n      var q=inp.value.trim().toLowerCase();\r\n      filtered=!q?cmds.slice():cmds.filter(function(c){ return (c.l+' '+c.kw).toLowerCase().indexOf(q)>-1; });\r\n      active=0; render();\r\n    }\r\n    function open(){ if(!window.matchMedia('(min-width:881px)').matches) return; pal.classList.add('open'); inp.value=''; filter(); setTimeout(function(){ inp.focus(); },30); }\r\n    function close(){ pal.classList.remove('open'); inp.blur(); }\r\n    function exec(c){ close(); setTimeout(function(){ c.run(); },60); }\r\n    document.addEventListener('keydown',function(e){\r\n      var typing=\/INPUT|TEXTAREA|SELECT\/.test((e.target&&e.target.tagName)||'') || (e.target&&e.target.isContentEditable);\r\n      if(!pal.classList.contains('open')){\r\n        if((e.key==='\/' && !typing) || ((e.ctrlKey||e.metaKey) && (e.key==='k'||e.key==='K'))){ e.preventDefault(); open(); }\r\n        return;\r\n      }\r\n      if(e.key==='Escape'){ e.preventDefault(); close(); }\r\n      else if(e.key==='ArrowDown'){ e.preventDefault(); if(filtered.length){ active=(active+1)%filtered.length; render(); } }\r\n      else if(e.key==='ArrowUp'){ e.preventDefault(); if(filtered.length){ active=(active-1+filtered.length)%filtered.length; render(); } }\r\n      else if(e.key==='Enter'){ e.preventDefault(); if(filtered[active]) exec(filtered[active]); }\r\n    });\r\n    inp.addEventListener('input',filter);\r\n    pal.addEventListener('click',function(e){ if(e.target===pal) close(); });\r\n  })();\r\n  \/\/ rotating tagline in contact\r\n  (function(){\r\n    var el=root.querySelector('.rot-word'); if(!el||reduce) return;\r\n    var words=(el.getAttribute('data-rot')||'').split('|').filter(Boolean); if(!words.length) return;\r\n    var i=0;\r\n    setInterval(function(){\r\n      el.classList.add('swap');\r\n      setTimeout(function(){ i=(i+1)%words.length; el.firstChild ? el.childNodes[0].nodeValue=words[i] : el.textContent=words[i]; el.classList.remove('swap'); },260);\r\n    },2600);\r\n  })();\r\n\r\n  \/\/ endorsement stamp-in when plate scrolls into view\r\n  (function(){\r\n    var plate=root.querySelector('.plate'); if(!plate) return;\r\n    if(reduce){ plate.classList.add('stamp'); return; }\r\n    var so=new IntersectionObserver(function(es){es.forEach(function(e){\r\n      if(e.isIntersecting){ plate.classList.add('stamp'); so.disconnect(); }\r\n    });},{threshold:.3});\r\n    so.observe(plate);\r\n  })();\r\n\r\n  (function(){\r\n    if(reduce || !window.matchMedia('(pointer:fine)').matches) return;\r\n    var plate=root.querySelector('.plate'); if(!plate) return;\r\n    var sheen=plate.querySelector('.plate-sheen');\r\n    plate.style.perspective='900px';\r\n    plate.addEventListener('mousemove',function(e){\r\n      var r=plate.getBoundingClientRect();\r\n      var px=(e.clientX-r.left)\/r.width-.5, py=(e.clientY-r.top)\/r.height-.5;\r\n      plate.style.transform='rotateY('+(px*6)+'deg) rotateX('+(-py*6)+'deg)';\r\n      if(sheen){ sheen.style.opacity='1'; sheen.style.left=(((e.clientX-r.left)\/r.width)*160-30)+'%'; }\r\n    });\r\n    plate.addEventListener('mouseleave',function(){ plate.style.transform=''; if(sheen) sheen.style.opacity='0'; });\r\n  })();\r\n\r\n  (function(){\r\n    var note=root.querySelector('#endo-note'); if(!note) return;\r\n    var def=note.innerHTML;\r\n    root.querySelectorAll('.endo[data-unlock]').forEach(function(e){\r\n      function show(){ note.textContent='\u279c '+e.getAttribute('data-unlock'); }\r\n      function hide(){ note.innerHTML=def; }\r\n      e.addEventListener('mouseenter',show); e.addEventListener('mouseleave',hide);\r\n      e.addEventListener('focus',show); e.addEventListener('blur',hide);\r\n    });\r\n  })();\r\n\r\n  \/\/ modals (rtds, cert, resume, and any future data-modal targets)\r\n  var resumeModalOpened=null;\r\n  function openModalById(id){ var m=root.querySelector('#'+id+'-modal'); if(m) m.classList.add('open'); if(id==='resume'&&typeof resumeModalOpened==='function'){ setTimeout(resumeModalOpened,60); } }\r\n  function closeModals(){ root.querySelectorAll('.modal.open').forEach(function(m){ m.classList.remove('open'); }); }\r\n  root.querySelectorAll('[data-modal]').forEach(function(t){\r\n    t.addEventListener('click',function(e){e.preventDefault(); openModalById(t.getAttribute('data-modal'));});\r\n    t.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault(); openModalById(t.getAttribute('data-modal'));}});\r\n  });\r\n\r\n  \/\/ credential pills -> modals (all screen sizes; touchend for iOS Safari reliability)\r\n  root.querySelectorAll('.pill-btn[data-pill]').forEach(function(t){\r\n    var tsx=0, tsy=0;\r\n    function openPill(){ openModalById(t.getAttribute('data-pill')); }\r\n    t.addEventListener('click',openPill);\r\n    t.addEventListener('touchstart',function(e){ if(e.touches.length===1){ tsx=e.touches[0].clientX; tsy=e.touches[0].clientY; } },{passive:true});\r\n    t.addEventListener('touchend',function(e){\r\n      if(!e.changedTouches||e.changedTouches.length!==1) return;\r\n      var dx=Math.abs(e.changedTouches[0].clientX-tsx), dy=Math.abs(e.changedTouches[0].clientY-tsy);\r\n      if(dx<10&&dy<10){ e.preventDefault(); openPill(); } \/\/ real tap, not a scroll \u2014 preventDefault stops the ghost click\r\n    });\r\n    t.addEventListener('keydown',function(e){ if(e.key==='Enter'||e.key===' '){ e.preventDefault(); openPill(); } });\r\n  });\r\n\r\n  \/\/ r\u00e9sum\u00e9: copy link + mobile fallback hint\r\n  var copyBtn=root.querySelector('#resume-copy'), copyNote=root.querySelector('#resume-copy-note');\r\n  if(copyBtn){\r\n    copyBtn.addEventListener('click',function(){\r\n      var url=copyBtn.getAttribute('data-copy');\r\n      function ok(){ if(copyNote){ copyNote.classList.add('show'); setTimeout(function(){copyNote.classList.remove('show');},1800);} copyBtn.textContent='Copied \u2713'; setTimeout(function(){copyBtn.textContent='Copy link \u29c9';},1800); }\r\n      if(navigator.clipboard&&navigator.clipboard.writeText){ navigator.clipboard.writeText(url).then(ok).catch(function(){fallbackCopy(url,ok);}); }\r\n      else { fallbackCopy(url,ok); }\r\n    });\r\n  }\r\n  function fallbackCopy(text,done){ try{ var ta=document.createElement('textarea'); ta.value=text; ta.style.position='fixed'; ta.style.opacity='0'; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); document.body.removeChild(ta); done&&done(); }catch(e){} }\r\n\r\n  \/\/ r\u00e9sum\u00e9 viewer: PDF.js sharp zoom + pan + fullscreen (desktop only; mobile uses the card)\r\n  (function(){\r\n    var stage=root.querySelector('#resume-stage'), canvas=root.querySelector('#resume-canvas'),\r\n        lvl=root.querySelector('#rz-level'), hint=root.querySelector('#resume-hint'),\r\n        loading=root.querySelector('#resume-loading'),\r\n        card=root.querySelector('.modal-card.resume');\r\n    if(!stage||!canvas) return;\r\n    var PDF_URL='https:\/\/davidforde.net\/wp-content\/uploads\/2026\/07\/David_Forde_Resume_LV.pdf';\r\n    var LIB_URL='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js';\r\n    var WORKER_URL='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';\r\n    var scale=1, MIN=1, MAX=4, pages=[], loaded=false, libLoading=false, renderTimer=null, renderSeq=0;\r\n\r\n    function setLevel(){ if(lvl) lvl.textContent = scale<=1.001 ? 'Fit' : Math.round(scale*100)+'%'; }\r\n    function fail(msg){ if(loading){ loading.style.display=''; loading.textContent=msg; } }\r\n\r\n    function loadLib(cb){\r\n      if(window.pdfjsLib){ cb(); return; }\r\n      if(libLoading) return;\r\n      libLoading=true;\r\n      var s=document.createElement('script');\r\n      s.src=LIB_URL;\r\n      s.onload=function(){ libLoading=false; window.pdfjsLib.GlobalWorkerOptions.workerSrc=WORKER_URL; cb(); };\r\n      s.onerror=function(){ libLoading=false; fail('Preview unavailable \u2014 use Open r\u00e9sum\u00e9 below'); };\r\n      document.head.appendChild(s);\r\n    }\r\n\r\n    function ensureDoc(){\r\n      if(loaded||libLoading) return;\r\n      if(stage.clientWidth<=0) return; \/\/ hidden on mobile \u2014 card fallback handles it\r\n      loadLib(function(){\r\n        window.pdfjsLib.getDocument(PDF_URL).promise.then(function(doc){\r\n          var jobs=[];\r\n          for(var i=1;i<=doc.numPages;i++){ jobs.push(doc.getPage(i)); }\r\n          return Promise.all(jobs);\r\n        }).then(function(pgs){\r\n          pages=pgs; loaded=true;\r\n          if(loading) loading.style.display='none';\r\n          renderAll();\r\n        }).catch(function(){ fail('Preview unavailable \u2014 use Open r\u00e9sum\u00e9 below'); });\r\n      });\r\n    }\r\n\r\n    \/\/ stretch existing canvases to the new CSS size for instant feedback\r\n    function applyCssSize(){\r\n      var cssW=Math.round(stage.clientWidth*scale);\r\n      canvas.style.width=cssW+'px';\r\n      Array.prototype.forEach.call(canvas.children,function(c){\r\n        if(c.width&&c.height){ c.style.width=cssW+'px'; c.style.height=Math.round(cssW*(c.height\/c.width))+'px'; }\r\n      });\r\n    }\r\n\r\n    \/\/ re-render every page at the real zoom \u00d7 devicePixelRatio \u2192 sharp text\r\n    function renderAll(){\r\n      if(!loaded||!pages.length) return;\r\n      var cssW=Math.round(stage.clientWidth*scale);\r\n      if(cssW<=0) return;\r\n      var seq=++renderSeq;\r\n      var dpr=Math.min(window.devicePixelRatio||1,3);\r\n      var px=Math.round(cssW*dpr);\r\n      canvas.style.width=cssW+'px';\r\n      pages.forEach(function(page,idx){\r\n        var base=page.getViewport({scale:1});\r\n        var vp=page.getViewport({scale:px\/base.width});\r\n        var off=document.createElement('canvas');\r\n        off.width=Math.round(vp.width); off.height=Math.round(vp.height);\r\n        page.render({canvasContext:off.getContext('2d'), viewport:vp}).promise.then(function(){\r\n          if(seq!==renderSeq) return;\r\n          var c=canvas.children[idx];\r\n          if(!c){ c=document.createElement('canvas'); canvas.appendChild(c); }\r\n          c.width=off.width; c.height=off.height;\r\n          c.getContext('2d').drawImage(off,0,0);\r\n          c.style.width=cssW+'px';\r\n          c.style.height=Math.round(cssW*(off.height\/off.width))+'px';\r\n        });\r\n      });\r\n    }\r\n\r\n    function scheduleRender(ms){ clearTimeout(renderTimer); renderTimer=setTimeout(renderAll, ms||160); }\r\n\r\n    function setScale(s){\r\n      s=Math.max(MIN,Math.min(MAX,s));\r\n      if(Math.abs(s-scale)<.001) return;\r\n      var cx=stage.scrollLeft+stage.clientWidth\/2, cy=stage.scrollTop+stage.clientHeight\/2, r=s\/scale;\r\n      scale=s;\r\n      applyCssSize();\r\n      stage.scrollLeft=cx*r-stage.clientWidth\/2;\r\n      stage.scrollTop=cy*r-stage.clientHeight\/2;\r\n      setLevel();\r\n      if(hint) hint.classList.add('hide');\r\n      scheduleRender(160);\r\n    }\r\n\r\n    function reset(){\r\n      scale=1; setLevel(); applyCssSize();\r\n      stage.scrollLeft=0; stage.scrollTop=0;\r\n      if(hint) hint.classList.remove('hide');\r\n      scheduleRender(60);\r\n    }\r\n    setLevel();\r\n\r\n    var zi=root.querySelector('#rz-in'), zo=root.querySelector('#rz-out'), zr=root.querySelector('#rz-reset'), zf=root.querySelector('#rz-full');\r\n    if(zi) zi.addEventListener('click',function(){ setScale(scale+.4); });\r\n    if(zo) zo.addEventListener('click',function(){ setScale(scale-.4); });\r\n    if(zr) zr.addEventListener('click',reset);\r\n    if(zf) zf.addEventListener('click',function(){ if(card){ card.classList.toggle('isfull'); setTimeout(reset,80); } });\r\n    \/\/ wheel zoom\r\n    stage.addEventListener('wheel',function(e){ e.preventDefault(); setScale(scale + (e.deltaY<0?.25:-.25)); },{passive:false});\r\n    \/\/ drag pan (native scroll under the hood)\r\n    var drag=false, sx=0, sy=0, sl=0, st=0;\r\n    stage.addEventListener('mousedown',function(e){ drag=true; sx=e.clientX; sy=e.clientY; sl=stage.scrollLeft; st=stage.scrollTop; canvas.classList.add('dragging'); e.preventDefault(); });\r\n    window.addEventListener('mousemove',function(e){ if(!drag) return; stage.scrollLeft=sl-(e.clientX-sx); stage.scrollTop=st-(e.clientY-sy); });\r\n    window.addEventListener('mouseup',function(){ drag=false; canvas.classList.remove('dragging'); });\r\n    \/\/ double-click to toggle zoom\r\n    stage.addEventListener('dblclick',function(){ if(scale>1.001){ reset(); } else { setScale(2); } });\r\n    \/\/ re-fit on window resize\r\n    window.addEventListener('resize',function(){ if(!loaded) return; clearTimeout(renderTimer); renderTimer=setTimeout(function(){ applyCssSize(); renderAll(); },200); });\r\n    \/\/ lazy-load + reset whenever r\u00e9sum\u00e9 modal opens\r\n    resumeModalOpened=function(){ ensureDoc(); if(loaded) reset(); };\r\n    \/\/ exit fullscreen on close\r\n    root.querySelectorAll('#resume-modal .modal-close').forEach(function(b){ b.addEventListener('click',function(){ if(card) card.classList.remove('isfull'); }); });\r\n  })();\r\n\r\n  root.querySelectorAll('.modal').forEach(function(m){\r\n    m.addEventListener('click',function(e){ if(e.target===m||e.target.classList.contains('modal-close')) m.classList.remove('open'); });\r\n  });\r\n  document.addEventListener('keydown',function(e){ if(e.key==='Escape') closeModals(); });\r\n\r\n  \/\/ mobile viewport lock: fixed scale, no pinch zoom (viewport meta lives in WP head, so enforce here)\r\n  (function(){\r\n    var vp=document.querySelector('meta[name=\"viewport\"]');\r\n    if(!vp){ vp=document.createElement('meta'); vp.setAttribute('name','viewport'); document.head.appendChild(vp); }\r\n    vp.setAttribute('content','width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover');\r\n    document.addEventListener('gesturestart',function(e){ e.preventDefault(); }); \/\/ iOS Safari pinch\r\n    document.addEventListener('gesturechange',function(e){ e.preventDefault(); });\r\n  })();\r\n\r\n  \/\/ theme toggle (light cool-slate <-> dark asphalt)\r\n  var themeBtn=root.querySelector('#dfx-theme-btn');\r\n  function applyThemeColor(){ var dark=root.getAttribute('data-theme')==='dark'; var c=dark?'#15120C':'#EDE6D6'; document.querySelectorAll('meta[name=\"theme-color\"]').forEach(function(n){ n.parentNode.removeChild(n); }); var m=document.createElement('meta'); m.setAttribute('name','theme-color'); m.setAttribute('content',c); document.head.appendChild(m); document.documentElement.style.backgroundColor=c; if(document.body) document.body.style.backgroundColor=c; }\r\n  function setTheme(t){ if(t==='dark'){root.setAttribute('data-theme','dark');}else{root.removeAttribute('data-theme');} try{localStorage.setItem('dfx-theme',t);}catch(e){} applyThemeColor(); }\r\n  applyThemeColor();\r\n  window.addEventListener('load',applyThemeColor);\r\n  if(themeBtn){ themeBtn.addEventListener('click',function(){ var dark=root.getAttribute('data-theme')==='dark'; setTheme(dark?'light':'dark'); prog(); }); }\r\n\r\n  \/\/ mobile drawer\r\n  var drawer=root.querySelector('#dfx-drawer'), dBack=root.querySelector('#dfx-drawer-backdrop'), navT=root.querySelector('#dfx-nav-toggle');\r\n  function openDrawer(){ if(!drawer)return; drawer.classList.add('open'); dBack.classList.add('open'); drawer.setAttribute('aria-hidden','false'); navT.setAttribute('aria-expanded','true'); }\r\n  function closeDrawer(){ if(!drawer)return; drawer.classList.remove('open'); dBack.classList.remove('open'); drawer.setAttribute('aria-hidden','true'); navT.setAttribute('aria-expanded','false'); }\r\n  if(navT){ navT.addEventListener('click',openDrawer); }\r\n  if(dBack){ dBack.addEventListener('click',closeDrawer); }\r\n  if(drawer){\r\n    drawer.querySelector('.drawer-close').addEventListener('click',closeDrawer);\r\n    drawer.querySelectorAll('a').forEach(function(a){ a.addEventListener('click',closeDrawer); });\r\n  }\r\n\r\n  \/\/ search \/ jump palette\r\n  var SECTIONS=[\r\n    {t:'Driving record & license',d:'Class A, endorsements, clean record',h:'#dfx-road'},\r\n    {t:'Endorsements \u00b7 Hazmat \u00b7 Tanker \u00b7 Doubles',d:'The highest-value freight lanes',h:'#dfx-road'},\r\n    {t:'Requirements I meet',d:'MVR, experience, endorsements and more',h:'#dfx-fit'},\r\n    {t:'Training & certifications',d:'RTDS CDL program, GHSA\/Waymo AV training',h:'#dfx-training'},\r\n    {t:'Off the clock',d:'Ancient languages, the outdoors, community',h:'#dfx-life'},\r\n    {t:'Contact \u00b7 get in touch',d:'View r\u00e9sum\u00e9, email, or call',h:'#dfx-contact'}\r\n  ];\r\n  var sModal=root.querySelector('#dfx-search'), sInput=root.querySelector('#dfx-search-input'), sList=root.querySelector('#dfx-search-results'), sEmpty=root.querySelector('#dfx-search-empty'), sBtn=root.querySelector('#dfx-search-btn');\r\n  var sActive=-1, sFiltered=[];\r\n  function renderSearch(q){\r\n    q=(q||'').trim().toLowerCase();\r\n    sFiltered=SECTIONS.filter(function(s){return !q||(s.t+' '+s.d).toLowerCase().indexOf(q)>-1;});\r\n    sList.innerHTML=''; sActive=-1;\r\n    sFiltered.forEach(function(s){\r\n      var li=document.createElement('li'), b=document.createElement('button');\r\n      b.innerHTML='<span class=\"r-title\"><\/span><span class=\"r-desc\"><\/span>';\r\n      b.querySelector('.r-title').textContent=s.t; b.querySelector('.r-desc').textContent=s.d;\r\n      b.addEventListener('click',function(){ goSearch(s.h); });\r\n      li.appendChild(b); sList.appendChild(li);\r\n    });\r\n    if(sEmpty) sEmpty.hidden=sFiltered.length>0;\r\n  }\r\n  function goSearch(h){ closeSearch(); var t=document.querySelector(h); if(t){setTimeout(function(){t.scrollIntoView({behavior:reduce?'auto':'smooth',block:'start'});},120);} }\r\n  function openSearch(){ if(!sModal)return; sModal.classList.add('open'); sInput.value=''; renderSearch(''); setTimeout(function(){sInput.focus();},30); }\r\n  function closeSearch(){ if(sModal) sModal.classList.remove('open'); }\r\n  function hl(){ var btns=sList.querySelectorAll('button'); btns.forEach(function(b,i){ b.classList.toggle('active',i===sActive); if(i===sActive)b.scrollIntoView({block:'nearest'}); }); }\r\n  if(sBtn){ sBtn.addEventListener('click',openSearch); }\r\n  if(sInput){\r\n    sInput.addEventListener('input',function(){ renderSearch(sInput.value); });\r\n    sInput.addEventListener('keydown',function(e){\r\n      if(e.key==='ArrowDown'){e.preventDefault(); sActive=Math.min(sActive+1,sFiltered.length-1); hl();}\r\n      else if(e.key==='ArrowUp'){e.preventDefault(); sActive=Math.max(sActive-1,0); hl();}\r\n      else if(e.key==='Enter'){ var p=sActive>=0?sActive:0; if(sFiltered[p]) goSearch(sFiltered[p].h); }\r\n    });\r\n  }\r\n  if(sModal){ sModal.addEventListener('click',function(e){ if(e.target===sModal||e.target.classList.contains('search-esc')) closeSearch(); }); }\r\n\r\n  document.addEventListener('keydown',function(e){ if(e.key==='Escape'){ closeDrawer(); closeSearch(); } });\r\n})();\r\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-33","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home - David Forde<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/davidforde.net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home - David Forde\" \/>\n<meta property=\"og:url\" content=\"https:\/\/davidforde.net\/\" \/>\n<meta property=\"og:site_name\" content=\"David Forde\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-17T03:03:19+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/davidforde.net\\\/\",\"url\":\"https:\\\/\\\/davidforde.net\\\/\",\"name\":\"Home - David Forde\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/davidforde.net\\\/#website\"},\"datePublished\":\"2026-06-17T02:50:28+00:00\",\"dateModified\":\"2026-06-17T03:03:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/davidforde.net\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/davidforde.net\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/davidforde.net\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/davidforde.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/davidforde.net\\\/#website\",\"url\":\"https:\\\/\\\/davidforde.net\\\/\",\"name\":\"David Forde\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/davidforde.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home - David Forde","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/davidforde.net\/","og_locale":"en_US","og_type":"article","og_title":"Home - David Forde","og_url":"https:\/\/davidforde.net\/","og_site_name":"David Forde","article_modified_time":"2026-06-17T03:03:19+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/davidforde.net\/","url":"https:\/\/davidforde.net\/","name":"Home - David Forde","isPartOf":{"@id":"https:\/\/davidforde.net\/#website"},"datePublished":"2026-06-17T02:50:28+00:00","dateModified":"2026-06-17T03:03:19+00:00","breadcrumb":{"@id":"https:\/\/davidforde.net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/davidforde.net\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/davidforde.net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/davidforde.net\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/davidforde.net\/#website","url":"https:\/\/davidforde.net\/","name":"David Forde","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/davidforde.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/pages\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/davidforde.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33"}],"version-history":[{"count":2,"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/pages\/33\/revisions"}],"predecessor-version":[{"id":38,"href":"https:\/\/davidforde.net\/index.php?rest_route=\/wp\/v2\/pages\/33\/revisions\/38"}],"wp:attachment":[{"href":"https:\/\/davidforde.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}