Blueprint
A portfolio drawn like a set of plans: one blue, white linework, monospace labels, every section a numbered sheet
1280
1<main className="bg-[#2152ff] font-sans antialiased">2 <header className="bg-[#2152ff] text-white">3 <div className="mx-auto max-w-6xl px-5 sm:px-8">4 <nav className="flex items-center justify-between gap-6 py-4 font-mono text-[11px] tracking-[0.14em] uppercase">5 <a href="#" className="flex items-center gap-3">6 <svg viewBox="0 0 24 24" className="size-5" fill="none" stroke="currentColor" strokeWidth="1.25" aria-hidden="true">7 <circle cx="12" cy="12" r="6.5" />8 <path d="M12 1.5v6M12 16.5v6M1.5 12h6M16.5 12h6" />9 </svg>10 <span>Nora Vidal</span>11 <span className="hidden text-white/55 sm:inline">Design engineer</span>12 </a>13 <div className="hidden items-center gap-8 text-white/75 md:flex">14 <a href="#" className="transition-colors duration-150 hover:text-white">15 <span className="text-white/45">01</span> Work16 </a>17 <a href="#" className="transition-colors duration-150 hover:text-white">18 <span className="text-white/45">02</span> Method19 </a>20 <a href="#" className="transition-colors duration-150 hover:text-white">21 <span className="text-white/45">03</span> Notes22 </a>23 <a href="#" className="transition-colors duration-150 hover:text-white">24 <span className="text-white/45">04</span> Contact25 </a>26 </div>27 <a href="#" className="bg-white px-3 py-2 text-[#2152ff] transition-[scale,background-color] duration-150 ease-out hover:bg-white/90 active:scale-[0.96]">28 Book a project29 </a>30 </nav>31 <div className="flex items-center gap-3 border-t border-white/30 py-2 font-mono text-[10px] tracking-[0.14em] text-white/55" aria-hidden="true">32 <span>0</span>33 <span className="h-1.5 flex-1 bg-[repeating-linear-gradient(to_right,rgb(255_255_255/0.55)_0_1px,transparent_1px_12px)]"></span>34 <span>720</span>35 <span className="h-1.5 flex-1 bg-[repeating-linear-gradient(to_right,rgb(255_255_255/0.55)_0_1px,transparent_1px_12px)]"></span>36 <span>1440</span>37 </div>38 </div>39 </header>40 <section className="bg-[#2152ff] bg-[linear-gradient(to_right,rgb(255_255_255/0.07)_1px,transparent_1px),linear-gradient(to_bottom,rgb(255_255_255/0.07)_1px,transparent_1px)] bg-size-[40px_40px] text-white">41 <div className="mx-auto max-w-6xl px-5 pt-12 pb-16 sm:px-8 sm:pt-16 sm:pb-24">42 <div className="flex items-center justify-between font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase">43 <span>Sheet 01 / 05</span>44 <span className="hidden sm:inline">General arrangement</span>45 <span>Scale 1 : 1</span>46 </div>47 48 <div className="relative mt-14 w-fit border border-dashed border-white/70 px-4 py-5 sm:mt-20 sm:px-8 sm:py-8">49 <span className="absolute top-0 left-0 -translate-y-full bg-white px-2 py-1 font-mono text-[10px] tracking-[0.12em] text-[#2152ff] uppercase">H1 · 112 / 0.94 / −0.045em</span>50 <span className="absolute -top-[3px] -left-[3px] size-[6px] bg-white" aria-hidden="true"></span>51 <span className="absolute -top-[3px] -right-[3px] size-[6px] bg-white" aria-hidden="true"></span>52 <span className="absolute -bottom-[3px] -left-[3px] size-[6px] bg-white" aria-hidden="true"></span>53 <span className="absolute -right-[3px] -bottom-[3px] size-[6px] bg-white" aria-hidden="true"></span>54 <h1 className="text-[52px] leading-[0.94] font-medium tracking-[-0.045em] sm:text-[88px] lg:text-[112px]">55 Drawn to scale.56 <br />57 <span className="tracking-[-0.02em] text-transparent [-webkit-text-stroke:1px_white] sm:[-webkit-text-stroke:1.5px_white]">Built to spec.</span>58 </h1>59 <div className="absolute top-full right-0 left-0 mt-4 flex items-center gap-3 font-mono text-[10px] tracking-[0.14em] text-white/70" aria-hidden="true">60 <span className="h-2.5 w-px bg-white/70"></span>61 <span className="h-px flex-1 bg-white/45"></span>62 <span>100%</span>63 <span className="h-px flex-1 bg-white/45"></span>64 <span className="h-2.5 w-px bg-white/70"></span>65 </div>66 </div>67 68 <div className="mt-24 grid gap-12 lg:grid-cols-12 lg:items-end lg:gap-8">69 <div className="lg:col-span-6">70 <p className="max-w-xl text-lg leading-relaxed text-pretty text-white/85 sm:text-xl">71 Nora Vidal is a design engineer. She plans an interface the way you plan a building: measured, annotated, then built exactly as drawn. Product design and front-end for teams that ship.72 </p>73 <div className="mt-8 flex flex-wrap items-center gap-3 font-mono text-[12px] tracking-[0.12em] uppercase">74 <a href="#" className="bg-white px-5 py-3.5 text-[#2152ff] transition-[scale,background-color] duration-150 ease-out hover:bg-white/90 active:scale-[0.96]">75 See the work76 </a>77 <a href="#" className="border border-white/60 px-5 py-3.5 transition-[scale,border-color,background-color] duration-150 ease-out hover:border-white hover:bg-white/10 active:scale-[0.96]">78 Read the method79 </a>80 </div>81 </div>82 83 <dl className="grid grid-cols-4 border border-white/60 bg-[#2152ff] font-mono text-[10px] tracking-[0.14em] uppercase lg:col-span-5 lg:col-start-8">84 <div className="col-span-4 border-b border-white/60 p-2.5 sm:p-3.5">85 <dt className="text-white/60">Project</dt>86 <dd className="mt-2 font-sans text-[17px] font-medium tracking-[-0.01em] normal-case">Portfolio, 2027 edition</dd>87 </div>88 <div className="col-span-2 border-r border-b border-white/60 p-2.5 sm:p-3.5">89 <dt className="text-white/60">Drawn by</dt>90 <dd className="mt-2 text-[12px] whitespace-nowrap">N. Vidal</dd>91 </div>92 <div className="col-span-2 border-b border-white/60 p-2.5 sm:p-3.5">93 <dt className="text-white/60">Based in</dt>94 <dd className="mt-2 text-[12px] whitespace-nowrap">Lisbon, UTC+0</dd>95 </div>96 <div className="border-r border-white/60 p-2.5 sm:p-3.5">97 <dt className="text-white/60">Scale</dt>98 <dd className="mt-2 text-[12px] whitespace-nowrap">1 : 1</dd>99 </div>100 <div className="border-r border-white/60 p-2.5 sm:p-3.5">101 <dt className="text-white/60">Sheet</dt>102 <dd className="mt-2 text-[12px] whitespace-nowrap">01 / 05</dd>103 </div>104 <div className="border-r border-white/60 p-2.5 sm:p-3.5">105 <dt className="text-white/60">Rev</dt>106 <dd className="mt-2 text-[12px] whitespace-nowrap">C</dd>107 </div>108 <div className="p-2.5 sm:p-3.5">109 <dt className="text-white/60">Date</dt>110 <dd className="mt-2 text-[12px] whitespace-nowrap">03.27</dd>111 </div>112 </dl>113 </div>114 </div>115 </section>116 <section className="bg-[#2152ff] text-white">117 <div className="mx-auto max-w-6xl px-5 py-16 sm:px-8 sm:py-24">118 <div className="flex items-end justify-between gap-6 border-b border-white/35 pb-6">119 <div>120 <p className="font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase">Sheet 02 / 05</p>121 <h2 className="mt-3 text-4xl font-medium tracking-[-0.04em] sm:text-6xl">Selected work</h2>122 </div>123 <p className="hidden font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase sm:block">04 plates · 2024 to 2027</p>124 </div>125 126 <div className="mt-12 grid gap-x-8 gap-y-14 md:grid-cols-2">127 <a href="#" className="group block">128 <div className="relative aspect-[4/3] border border-white/45 transition-colors duration-200 group-hover:border-white">129 <span className="absolute top-0 left-4 -translate-y-1/2 bg-[#2152ff] px-2 font-mono text-[10px] tracking-[0.14em] uppercase">Plate 01</span>130 <svg viewBox="0 0 400 300" className="absolute inset-0 size-full" fill="none" stroke="white" strokeWidth="1.25" aria-hidden="true">131 <path d="M60 30v-10M340 30v-10M60 25h280" strokeOpacity="0.6" />132 <rect x="60" y="48" width="280" height="212" rx="6" />133 <path d="M60 72h280M132 72v188" />134 <circle cx="74" cy="60" r="3" />135 <circle cx="85" cy="60" r="3" />136 <circle cx="96" cy="60" r="3" />137 <path d="M74 92h44M74 108h34M74 124h40M74 140h28" strokeOpacity="0.7" />138 <rect x="148" y="88" width="84" height="24" />139 <path d="M148 124h48" strokeOpacity="0.7" />140 <path d="M148 232h176M148 232v-88" strokeOpacity="0.5" />141 <polyline points="148,214 172,202 196,208 220,184 244,190 268,166 292,172 324,146" strokeWidth="1.75" />142 <circle cx="324" cy="146" r="3.5" fill="white" />143 <path d="M324 146v86" strokeDasharray="3 4" strokeOpacity="0.6" />144 </svg>145 <span className="absolute top-[8.3%] left-1/2 -translate-x-1/2 -translate-y-1/2 bg-[#2152ff] px-1.5 font-mono text-[9px] tracking-[0.12em] text-white/80">1280</span>146 </div>147 <div className="mt-5 flex items-baseline justify-between gap-4">148 <h3 className="text-2xl font-medium tracking-[-0.03em]">Ledger</h3>149 <p className="font-mono text-[11px] tracking-[0.12em] text-white/65 uppercase">Product design · 2026</p>150 </div>151 <p className="mt-2 max-w-md text-[15px] leading-relaxed text-white/75">Banking for freelancers: invoices, taxes and what is left, on one screen.</p>152 </a>153 154 <a href="#" className="group block">155 <div className="relative aspect-[4/3] border border-white/45 transition-colors duration-200 group-hover:border-white">156 <span className="absolute top-0 left-4 -translate-y-1/2 bg-[#2152ff] px-2 font-mono text-[10px] tracking-[0.14em] uppercase">Plate 02</span>157 <svg viewBox="0 0 400 300" className="absolute inset-0 size-full" fill="none" stroke="white" strokeWidth="1.25" aria-hidden="true">158 <path d="M118 28h-10M118 272h-10M113 28v244" strokeOpacity="0.6" />159 <rect x="146" y="28" width="108" height="244" rx="18" />160 <path d="M186 42h28" strokeWidth="3" strokeLinecap="round" />161 <circle cx="200" cy="112" r="36" strokeOpacity="0.45" />162 <path d="M200 76a36 36 0 1 1-31.2 18" strokeWidth="3.5" strokeLinecap="round" />163 <rect x="164" y="168" width="72" height="22" rx="5" />164 <rect x="164" y="198" width="72" height="22" rx="5" />165 <rect x="164" y="228" width="72" height="22" rx="5" strokeOpacity="0.5" />166 <path d="M236 112h66" strokeDasharray="3 4" strokeOpacity="0.7" />167 <circle cx="236" cy="112" r="2.5" fill="white" />168 </svg>169 <span className="absolute top-1/2 left-[28.25%] -translate-x-1/2 -translate-y-1/2 -rotate-90 bg-[#2152ff] px-1.5 font-mono text-[9px] tracking-[0.12em] text-white/80">812</span>170 <span className="absolute top-[37.3%] left-[77%] -translate-y-1/2 font-mono text-[9px] tracking-[0.12em] text-white/80 uppercase">Ring ø 72</span>171 </div>172 <div className="mt-5 flex items-baseline justify-between gap-4">173 <h3 className="text-2xl font-medium tracking-[-0.03em]">Halo</h3>174 <p className="font-mono text-[11px] tracking-[0.12em] text-white/65 uppercase">iOS app · 2025</p>175 </div>176 <p className="mt-2 max-w-md text-[15px] leading-relaxed text-white/75">A sleep tracker that shows one number in the morning and explains it in a sentence.</p>177 </a>178 179 <a href="#" className="group block">180 <div className="relative aspect-[4/3] border border-white/45 transition-colors duration-200 group-hover:border-white">181 <svg viewBox="0 0 400 300" className="absolute inset-0 size-full" fill="none" stroke="white" strokeWidth="1.25" aria-hidden="true">182 <path d="M-10 236c46-34 82-8 126-40s58-74 124-66 86 46 170 8" strokeOpacity="0.35" />183 <path d="M-10 196c40-30 78-12 118-44s64-70 126-62 92 40 176 0" strokeOpacity="0.35" />184 <path d="M-10 156c36-26 70-14 110-42s70-66 130-60 96 34 180-6" strokeOpacity="0.35" />185 <path d="M-10 116c34-22 66-16 104-40s74-60 134-56 100 30 182-10" strokeOpacity="0.35" />186 <path d="M-10 276c50-38 88-6 132-38s54-78 120-70 82 50 168 14" strokeOpacity="0.35" />187 <polyline points="64,238 118,196 168,206 214,152 276,162 328,92" strokeWidth="1.75" strokeDasharray="6 5" />188 <circle cx="64" cy="238" r="4" fill="white" />189 <circle cx="168" cy="206" r="3" fill="#2152ff" />190 <circle cx="214" cy="152" r="3" fill="#2152ff" />191 <circle cx="328" cy="92" r="10" />192 <circle cx="328" cy="92" r="3.5" fill="white" />193 </svg>194 <span className="absolute top-0 left-4 -translate-y-1/2 bg-[#2152ff] px-2 font-mono text-[10px] tracking-[0.14em] uppercase">Plate 03</span>195 <span className="absolute top-[18%] right-[9%] bg-[#2152ff] px-1.5 font-mono text-[9px] tracking-[0.12em] whitespace-nowrap text-white/85 uppercase">B · 4.2 km</span>196 <span className="absolute top-[84%] left-[16%] -translate-x-1/2 bg-[#2152ff] px-1.5 font-mono text-[9px] tracking-[0.12em] text-white/85 uppercase">A · Start</span>197 </div>198 <div className="mt-5 flex items-baseline justify-between gap-4">199 <h3 className="text-2xl font-medium tracking-[-0.03em]">Plot</h3>200 <p className="font-mono text-[11px] tracking-[0.12em] text-white/65 uppercase">Web app · 2025</p>201 </div>202 <p className="mt-2 max-w-md text-[15px] leading-relaxed text-white/75">Maps for field teams: plan a route, walk it, and hand the next crew what you found.</p>203 </a>204 205 <a href="#" className="group block">206 <div className="relative flex aspect-[4/3] items-center justify-center border border-white/45 transition-colors duration-200 group-hover:border-white">207 <span className="absolute top-0 left-4 -translate-y-1/2 bg-[#2152ff] px-2 font-mono text-[10px] tracking-[0.14em] uppercase">Plate 04</span>208 <span className="absolute top-[27%] right-0 left-0 border-t border-dashed border-white/40" aria-hidden="true"></span>209 <span className="absolute top-[43%] right-0 left-0 border-t border-dashed border-white/40" aria-hidden="true"></span>210 <span className="absolute top-[70%] right-0 left-0 border-t border-white/60" aria-hidden="true"></span>211 <span className="absolute top-[27%] left-3 -translate-y-full pb-1 font-mono text-[9px] tracking-[0.12em] text-white/75 uppercase">Cap 700</span>212 <span className="absolute top-[43%] left-3 -translate-y-full pb-1 font-mono text-[9px] tracking-[0.12em] text-white/75 uppercase">x 480</span>213 <span className="absolute top-[70%] left-3 pt-1.5 font-mono text-[9px] tracking-[0.12em] text-white/75 uppercase">Base 0</span>214 <span className="relative -mt-[5%] text-[130px] leading-none font-medium tracking-[-0.06em] text-transparent [-webkit-text-stroke:1.25px_white] sm:text-[220px] md:text-[130px] lg:text-[200px]" aria-hidden="true">Rg</span>215 </div>216 <div className="mt-5 flex items-baseline justify-between gap-4">217 <h3 className="text-2xl font-medium tracking-[-0.03em]">Seventeen</h3>218 <p className="font-mono text-[11px] tracking-[0.12em] text-white/65 uppercase">Type foundry · 2024</p>219 </div>220 <p className="mt-2 max-w-md text-[15px] leading-relaxed text-white/75">A foundry site where every typeface is tried at full size before it is bought.</p>221 </a>222 </div>223 </div>224 </section>225 <section className="bg-[#2152ff] text-white">226 <div className="mx-auto max-w-6xl px-5 py-16 sm:px-8 sm:py-24">227 <div className="flex items-end justify-between gap-6 border-b border-white/35 pb-6">228 <div>229 <p className="font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase">Sheet 03 / 05</p>230 <h2 className="mt-3 text-4xl font-medium tracking-[-0.04em] sm:text-6xl">Four phases, eight weeks</h2>231 </div>232 <p className="hidden font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase sm:block">Schedule · typical engagement</p>233 </div>234 235 <div className="mt-10 grid gap-y-1 md:grid-cols-[15rem_1fr] md:gap-x-10">236 <span className="hidden md:block"></span>237 <div className="grid grid-cols-8 border-l border-white/35 font-mono text-[10px] tracking-[0.14em] text-white/65" aria-hidden="true">238 <span className="border-r border-white/35 px-2 pb-2">W1</span>239 <span className="border-r border-white/35 px-2 pb-2">W2</span>240 <span className="border-r border-white/35 px-2 pb-2">W3</span>241 <span className="border-r border-white/35 px-2 pb-2">W4</span>242 <span className="border-r border-white/35 px-2 pb-2">W5</span>243 <span className="border-r border-white/35 px-2 pb-2">W6</span>244 <span className="border-r border-white/35 px-2 pb-2">W7</span>245 <span className="border-r border-white/35 px-2 pb-2">W8</span>246 </div>247 248 <div className="border-t border-white/35 pt-5 md:py-6">249 <p className="font-mono text-[11px] tracking-[0.14em] text-white/60 uppercase">01</p>250 <h3 className="mt-2 text-2xl font-medium tracking-[-0.03em]">Survey</h3>251 <p className="mt-2 text-[15px] leading-relaxed text-white/75">Read what exists: the product, the numbers and the complaints.</p>252 </div>253 <div className="grid grid-cols-8 items-center border-l border-white/35 bg-[linear-gradient(to_right,transparent_calc(100%-1px),rgb(255_255_255/0.2)_calc(100%-1px))] bg-size-[12.5%_100%] py-5 md:border-t md:py-0">254 <span className="col-span-2 col-start-1 flex h-11 items-center border border-white bg-[#2152ff] bg-[repeating-linear-gradient(135deg,rgb(255_255_255/0.3)_0_1px,transparent_1px_8px)] px-3 font-mono text-[10px] tracking-[0.14em] uppercase">2 wk</span>255 </div>256 257 <div className="border-t border-white/35 pt-5 md:py-6">258 <p className="font-mono text-[11px] tracking-[0.14em] text-white/60 uppercase">02</p>259 <h3 className="mt-2 text-2xl font-medium tracking-[-0.03em]">Draft</h3>260 <p className="mt-2 text-[15px] leading-relaxed text-white/75">Flows and screens at full size, with every measurement written down.</p>261 </div>262 <div className="grid grid-cols-8 items-center border-l border-white/35 bg-[linear-gradient(to_right,transparent_calc(100%-1px),rgb(255_255_255/0.2)_calc(100%-1px))] bg-size-[12.5%_100%] py-5 md:border-t md:py-0">263 <span className="col-span-3 col-start-2 flex h-11 items-center border border-white bg-[#2152ff] px-3 font-mono text-[10px] tracking-[0.14em] uppercase">3 wk</span>264 </div>265 266 <div className="border-t border-white/35 pt-5 md:py-6">267 <p className="font-mono text-[11px] tracking-[0.14em] text-white/60 uppercase">03</p>268 <h3 className="mt-2 text-2xl font-medium tracking-[-0.03em]">Build</h3>269 <p className="mt-2 text-[15px] leading-relaxed text-white/75">Front-end in your stack, component by component, reviewed against the drawings.</p>270 </div>271 <div className="grid grid-cols-8 items-center border-l border-white/35 bg-[linear-gradient(to_right,transparent_calc(100%-1px),rgb(255_255_255/0.2)_calc(100%-1px))] bg-size-[12.5%_100%] py-5 md:border-t md:py-0">272 <span className="col-span-4 col-start-4 flex h-11 items-center bg-white px-3 font-mono text-[10px] tracking-[0.14em] text-[#2152ff] uppercase">4 wk</span>273 </div>274 275 <div className="border-t border-white/35 pt-5 md:py-6">276 <p className="font-mono text-[11px] tracking-[0.14em] text-white/60 uppercase">04</p>277 <h3 className="mt-2 text-2xl font-medium tracking-[-0.03em]">Handover</h3>278 <p className="mt-2 text-[15px] leading-relaxed text-white/75">Tokens, docs and a recorded walkthrough, so the next change is yours.</p>279 </div>280 <div className="grid grid-cols-8 items-center border-l border-white/35 bg-[linear-gradient(to_right,transparent_calc(100%-1px),rgb(255_255_255/0.2)_calc(100%-1px))] bg-size-[12.5%_100%] py-5 md:border-t md:py-0">281 <span className="col-span-2 col-start-7 flex h-11 items-center border border-white bg-[#2152ff] bg-[repeating-linear-gradient(135deg,rgb(255_255_255/0.3)_0_1px,transparent_1px_8px)] px-3 font-mono text-[10px] tracking-[0.14em] uppercase">2 wk</span>282 </div>283 </div>284 285 <div className="mt-10 flex flex-wrap items-center gap-x-8 gap-y-3 border-t border-white/35 pt-5 font-mono text-[10px] tracking-[0.14em] text-white/75 uppercase">286 <span className="flex items-center gap-2.5">287 <span className="size-3.5 border border-white bg-[repeating-linear-gradient(135deg,rgb(255_255_255/0.4)_0_1px,transparent_1px_5px)]" aria-hidden="true"></span>288 Research and handover289 </span>290 <span className="flex items-center gap-2.5">291 <span className="size-3.5 border border-white" aria-hidden="true"></span>292 Design293 </span>294 <span className="flex items-center gap-2.5">295 <span className="size-3.5 bg-white" aria-hidden="true"></span>296 Engineering297 </span>298 <span className="text-white/55 sm:ml-auto">Phases overlap by a week on purpose</span>299 </div>300 </div>301 </section>302 <section className="bg-[#2152ff] text-white">303 <div className="mx-auto max-w-6xl px-5 py-16 sm:px-8 sm:py-24">304 <div className="relative border border-white/45 px-6 py-10 sm:px-12 sm:py-14">305 <span className="absolute top-0 left-6 -translate-y-1/2 bg-[#2152ff] px-2 font-mono text-[10px] tracking-[0.14em] uppercase sm:left-12">Sheet 04 / 05 · Revision note</span>306 <span className="absolute -top-px -left-px size-3 border-t-2 border-l-2 border-white" aria-hidden="true"></span>307 <span className="absolute -top-px -right-px size-3 border-t-2 border-r-2 border-white" aria-hidden="true"></span>308 <span className="absolute -bottom-px -left-px size-3 border-b-2 border-l-2 border-white" aria-hidden="true"></span>309 <span className="absolute -right-px -bottom-px size-3 border-r-2 border-b-2 border-white" aria-hidden="true"></span>310 311 <figure className="grid gap-8 lg:grid-cols-12 lg:gap-8">312 <div className="flex items-start gap-4 lg:col-span-2 lg:flex-col" aria-hidden="true">313 <span className="flex size-12 items-center justify-center rounded-full border border-white font-mono text-[15px]">A</span>314 <span className="mt-6 hidden h-px w-full bg-[repeating-linear-gradient(to_right,white_0_4px,transparent_4px_9px)] lg:block"></span>315 </div>316 <div className="lg:col-span-10">317 <blockquote className="text-3xl leading-[1.12] font-medium tracking-[-0.035em] text-balance sm:text-5xl lg:text-[56px]">318 “The drawings were so exact that engineering stopped asking questions. We shipped the redesign{' '}319 <span className="tracking-[-0.01em] text-transparent [-webkit-text-stroke:1px_white] sm:[-webkit-text-stroke:1.25px_white]">two weeks early.</span>”320 </blockquote>321 <figcaption className="mt-10 flex flex-wrap items-center gap-x-6 gap-y-2 font-mono text-[11px] tracking-[0.14em] uppercase">322 <span>Dana Okafor</span>323 <span className="text-white/65">VP Product, Ledger</span>324 <span className="text-white/65 sm:ml-auto">Noted 11.2026</span>325 </figcaption>326 </div>327 </figure>328 </div>329 </div>330 </section>331 <footer className="bg-[#2152ff] bg-[linear-gradient(to_right,rgb(255_255_255/0.07)_1px,transparent_1px),linear-gradient(to_bottom,rgb(255_255_255/0.07)_1px,transparent_1px)] bg-size-[40px_40px] text-white">332 <div className="mx-auto max-w-6xl px-5 pt-16 pb-8 sm:px-8 sm:pt-24">333 <div className="flex items-center justify-between font-mono text-[11px] tracking-[0.14em] text-white/65 uppercase">334 <span>Sheet 05 / 05</span>335 <span>Contact</span>336 </div>337 338 <div className="relative mt-10 sm:mt-14">339 <p className="max-w-md text-lg leading-relaxed text-white/85 sm:text-xl">Two projects a year start from a blank sheet. The next opening is in spring.</p>340 <a341 href="mailto:hello@example.com"342 className="mt-8 block w-fit text-[38px] leading-none font-medium tracking-[-0.025em] text-transparent transition-colors duration-300 ease-out [-webkit-text-stroke:1px_white] hover:text-white sm:text-[84px] sm:[-webkit-text-stroke:1.5px_white] lg:text-[124px]"343 >344 hello@example.com345 </a>346 <div className="mt-5 flex items-center gap-3 font-mono text-[10px] tracking-[0.14em] text-white/70" aria-hidden="true">347 <span className="h-2.5 w-px bg-white/70"></span>348 <span className="h-px flex-1 bg-white/45"></span>349 <span>Replies within two days</span>350 <span className="h-px flex-1 bg-white/45"></span>351 <span className="h-2.5 w-px bg-white/70"></span>352 </div>353 <span className="absolute top-0 right-0 hidden -rotate-6 border-2 border-white px-4 py-3 text-center font-mono text-[12px] leading-relaxed tracking-[0.2em] uppercase md:block">354 Booking355 <br />356 Q2 2027357 </span>358 </div>359 360 <div className="mt-20 grid gap-6 border-t border-white/35 pt-6 font-mono text-[11px] tracking-[0.14em] uppercase sm:grid-cols-3">361 <p className="leading-relaxed">362 Nora Vidal363 <br />364 <span className="text-white/65">Design engineer, Lisbon</span>365 </p>366 <div className="flex gap-6 sm:justify-center">367 <a href="#" className="underline-offset-4 transition-colors duration-150 hover:underline">Read.cv</a>368 <a href="#" className="underline-offset-4 transition-colors duration-150 hover:underline">GitHub</a>369 <a href="#" className="underline-offset-4 transition-colors duration-150 hover:underline">LinkedIn</a>370 </div>371 <p className="text-white/65 sm:text-right">© 2027 · Drawn, then built</p>372 </div>373 </div>374 </footer>375</main>Made of6
Blueprint navbar
BlueprintA name, four numbered links and a ruler under them, in monospace on blue
Blueprint hero
BlueprintA headline inside its own selection frame, half of it in outline, with a drawing's title block beside it
Blueprint work
BlueprintFour projects as plates: each one a line drawing with its measurements, not a photo
Blueprint method
BlueprintA process as a schedule: four phases drawn as bars over eight weeks
Blueprint note
BlueprintA client's words set large as a revision note, pinned to the sheet
Blueprint contact
BlueprintAn email in outline that fills on hover, a booking stamp, and the footer