diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 758a29ed6..84f8e8310 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -136,7 +136,7 @@ jobs:
     - name: Setup .NET 8 SDK
       uses: actions/setup-dotnet@9a946fdbd5fb07b82b2f5a4466058b876ab72bb2 # v5.3.0
       with:
-        dotnet-version: 8.0.x
+        dotnet-version: 11.0.x
 
     - name: Setup .NET SDK
       uses: actions/setup-dotnet@9a946fdbd5fb07b82b2f5a4466058b876ab72bb2 # v5.3.0
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 5d872271f..3f0c4628e 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -6,7 +6,7 @@
       "type": "coreclr",
       "request": "launch",
       "preLaunchTask": "build",
-      "program": "${workspaceFolder}/src/AdventOfCode.Site/bin/Debug/net10.0/AdventOfCode.Site.dll",
+      "program": "${workspaceFolder}/src/AdventOfCode.Site/bin/Debug/net11.0/AdventOfCode.Site.dll",
       "args": [],
       "cwd": "${workspaceFolder}/src/AdventOfCode.Site",
       "stopAtEntry": false,
diff --git a/.vsconfig b/.vsconfig
index 4f1026cce..1290e09b2 100644
--- a/.vsconfig
+++ b/.vsconfig
@@ -1,7 +1,7 @@
 {
   "version": "1.0",
   "components": [
-    "Microsoft.NetCore.Component.Runtime.10.0",
+    "Microsoft.NetCore.Component.Runtime.11.0",
     "Microsoft.NetCore.Component.SDK",
     "Microsoft.VisualStudio.Component.CoreEditor",
     "Microsoft.VisualStudio.Component.JavaScript.Diagnostics",
diff --git a/Directory.Build.props b/Directory.Build.props
index 2042b211d..d54fa27ca 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -3,7 +3,9 @@
     <AssemblyIsCLSCompliant>false</AssemblyIsCLSCompliant>
     <CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
     <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)AdventOfCode.ruleset</CodeAnalysisRuleSet>
+    <Features>$(Features);runtime-async=on</Features>
     <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <LangVersion>preview</LangVersion>
     <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
     <NoWarn>$(NoWarn);CS1591</NoWarn>
     <PublishForAWSLambda>false</PublishForAWSLambda>
diff --git a/Directory.Packages.props b/Directory.Packages.props
index cbc8b058b..0e73a5798 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -7,16 +7,16 @@
   <ItemGroup>
     <PackageVersion Include="Amazon.Lambda.AspNetCoreServer.Hosting" Version="2.1.0" />
     <PackageVersion Include="Amazon.Lambda.RuntimeSupport" Version="2.1.1" />
-    <PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
+    <PackageVersion Include="BenchmarkDotNet" Version="0.16.0-nightly.20260604.559" />
     <PackageVersion Include="GitHubActionsTestLogger" Version="3.0.4" />
     <PackageVersion Include="MartinCostello.Logging.XUnit.v3" Version="0.7.1" />
     <PackageVersion Include="MartinCostello.Testing.AwsLambdaTestServer" Version="0.12.1" />
-    <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.9" />
-    <PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.9" />
-    <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.9" />
+    <PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="11.0.0-preview.5.26302.115" />
+    <PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="11.0.0-preview.5.26302.115" />
+    <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="11.0.0-preview.5.26302.115" />
     <PackageVersion Include="Microsoft.ICU.ICU4C.Runtime" Version="72.1.0.3" />
     <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
-    <PackageVersion Include="Microsoft.OpenApi" Version="2.9.0" />
+    <PackageVersion Include="Microsoft.OpenApi" Version="3.7.0" />
     <PackageVersion Include="Microsoft.Playwright" Version="1.60.0" />
     <PackageVersion Include="Microsoft.Toolkit.HighPerformance" Version="7.1.2" />
     <PackageVersion Include="Microsoft.TypeScript.MSBuild" Version="6.0.3" />
diff --git a/NuGet.config b/NuGet.config
index 38ac8e75e..e432e5131 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -2,9 +2,13 @@
 <configuration>
   <packageSources>
     <clear />
+    <add key="BenchmarkDotNet" value="https://www.myget.org/F/benchmarkdotnet/api/v3/index.json" />
     <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
   </packageSources>
   <packageSourceMapping>
+    <packageSource key="BenchmarkDotNet">
+      <package pattern="BenchmarkDotNet*" />
+    </packageSource>
     <packageSource key="NuGet">
       <package pattern="*" />
     </packageSource>
diff --git a/crank.yml b/crank.yml
index 80e352ce6..fe5acb7dc 100644
--- a/crank.yml
+++ b/crank.yml
@@ -26,14 +26,14 @@ jobs:
 scenarios:
   microbenchmarks:
     application:
-      framework: net10.0
+      framework: net11.0
       job: microbenchmarks
   root:
     application:
-      framework: net10.0
+      framework: net11.0
       job: server
     load:
-      framework: net10.0
+      framework: net11.0
       job: bombardier
       variables:
         serverPort: 5000
diff --git a/global.json b/global.json
index 343517d8f..9eae90ca6 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
 {
   "sdk": {
-    "version": "10.0.301",
+    "version": "11.0.100-preview.5.26302.115",
     "allowPrerelease": false,
     "paths": [ ".dotnet", "$host$" ],
     "errorMessage": "The required version of the .NET SDK could not be found. Please run ./build.ps1 to bootstrap the .NET SDK."
diff --git a/src/AdventOfCode.Console/AdventOfCode.Console.csproj b/src/AdventOfCode.Console/AdventOfCode.Console.csproj
index 3aea583ad..f1e75ce5e 100644
--- a/src/AdventOfCode.Console/AdventOfCode.Console.csproj
+++ b/src/AdventOfCode.Console/AdventOfCode.Console.csproj
@@ -5,7 +5,7 @@
     <OptimizationPreference>Speed</OptimizationPreference>
     <OutputType>Exe</OutputType>
     <RootNamespace>MartinCostello.AdventOfCode.Console</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="Microsoft.Extensions.Caching.Memory" />
diff --git a/src/AdventOfCode.Resources/AdventOfCode.Resources.csproj b/src/AdventOfCode.Resources/AdventOfCode.Resources.csproj
index 25054ae56..f88954648 100644
--- a/src/AdventOfCode.Resources/AdventOfCode.Resources.csproj
+++ b/src/AdventOfCode.Resources/AdventOfCode.Resources.csproj
@@ -4,7 +4,7 @@
     <IsAotCompatible>true</IsAotCompatible>
     <OutputType>Library</OutputType>
     <RootNamespace>MartinCostello.AdventOfCode</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <EmbeddedResource Include="Input\**\input.txt" />
diff --git a/src/AdventOfCode.Site/AdventOfCode.Site.csproj b/src/AdventOfCode.Site/AdventOfCode.Site.csproj
index df5c6a3ad..2c761f82a 100644
--- a/src/AdventOfCode.Site/AdventOfCode.Site.csproj
+++ b/src/AdventOfCode.Site/AdventOfCode.Site.csproj
@@ -11,7 +11,7 @@
     <OutputType>Exe</OutputType>
     <PublishSelfContained>true</PublishSelfContained>
     <RootNamespace>MartinCostello.AdventOfCode.Site</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
     <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
     <TypeScriptToolsVersion>latest</TypeScriptToolsVersion>
   </PropertyGroup>
diff --git a/src/AdventOfCode.Site/aws-lambda-tools-defaults.json b/src/AdventOfCode.Site/aws-lambda-tools-defaults.json
index 7666bff48..971bd51a3 100644
--- a/src/AdventOfCode.Site/aws-lambda-tools-defaults.json
+++ b/src/AdventOfCode.Site/aws-lambda-tools-defaults.json
@@ -2,7 +2,7 @@
   "region": "eu-west-2",
   "profile": "",
   "configuration": "Release",
-  "framework": "net10.0",
+  "framework": "net11.0",
   "function-architecture": "arm64",
   "function-description": "The Advent of Code as a Service function.",
   "function-handler": "AdventOfCode.Site",
diff --git a/src/AdventOfCode/AdventOfCode.csproj b/src/AdventOfCode/AdventOfCode.csproj
index 2f4e8540a..9a8634ff1 100644
--- a/src/AdventOfCode/AdventOfCode.csproj
+++ b/src/AdventOfCode/AdventOfCode.csproj
@@ -6,7 +6,7 @@
     <NoWarn>$(NoWarn);CA1034;CA2007;CA2225;CA5351</NoWarn>
     <OutputType>Library</OutputType>
     <RootNamespace>MartinCostello.AdventOfCode</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <PackageReference Include="Microsoft.Toolkit.HighPerformance" />
diff --git a/src/AdventOfCode/PuzzleResult.cs b/src/AdventOfCode/PuzzleResult.cs
index d245b42f7..c6fef42ff 100644
--- a/src/AdventOfCode/PuzzleResult.cs
+++ b/src/AdventOfCode/PuzzleResult.cs
@@ -11,12 +11,12 @@ public sealed class PuzzleResult
     /// <summary>
     /// Gets the solution(s) to the puzzle.
     /// </summary>
-    public IList<object> Solutions { get; private set; } = new List<object>(2);
+    public IList<object> Solutions { get; private set; } = [with(2)];
 
     /// <summary>
     /// Gets the visualization(s) associated with the puzzle, if any.
     /// </summary>
-    public IList<string> Visualizations { get; private set; } = new List<string>(2);
+    public IList<string> Visualizations { get; private set; } = [with(2)];
 
     /// <summary>
     /// Converts a puzzle result to a <see cref="Task{PuzzleResult}"/>.
diff --git a/src/AdventOfCode/Puzzles/Y2015/Day06.cs b/src/AdventOfCode/Puzzles/Y2015/Day06.cs
index 5f4f9b1d2..c8007ef06 100644
--- a/src/AdventOfCode/Puzzles/Y2015/Day06.cs
+++ b/src/AdventOfCode/Puzzles/Y2015/Day06.cs
@@ -296,7 +296,7 @@ internal LightGrid(int width, int height)
             }
 
             _bounds = new(0, 0, width, height);
-            _lightBrightnesses = new(width * height);
+            _lightBrightnesses = [with(width * height)];
         }
 
         /// <summary>
diff --git a/src/AdventOfCode/Puzzles/Y2015/Day21.cs b/src/AdventOfCode/Puzzles/Y2015/Day21.cs
index 0edf21566..381b4adc4 100644
--- a/src/AdventOfCode/Puzzles/Y2015/Day21.cs
+++ b/src/AdventOfCode/Puzzles/Y2015/Day21.cs
@@ -289,17 +289,17 @@ private sealed class Shop
         /// <summary>
         /// The shop's current armor inventory. This field is read-only.
         /// </summary>
-        private readonly Dictionary<string, Item> _armor = new(PotentialArmor);
+        private readonly Dictionary<string, Item> _armor = [with(PotentialArmor)];
 
         /// <summary>
         /// The shop's current ring inventory. This field is read-only.
         /// </summary>
-        private readonly Dictionary<string, Item> _rings = new(PotentialRings);
+        private readonly Dictionary<string, Item> _rings = [with(PotentialRings)];
 
         /// <summary>
         /// The shop's current weapon inventory. This field is read-only.
         /// </summary>
-        private readonly Dictionary<string, Item> _weapons = new(PotentialWeapons);
+        private readonly Dictionary<string, Item> _weapons = [with(PotentialWeapons)];
 
         /// <summary>
         /// Purchases the specified armor.
diff --git a/src/AdventOfCode/Puzzles/Y2016/Day11.cs b/src/AdventOfCode/Puzzles/Y2016/Day11.cs
index 6366091f3..baa6ae0f9 100644
--- a/src/AdventOfCode/Puzzles/Y2016/Day11.cs
+++ b/src/AdventOfCode/Puzzles/Y2016/Day11.cs
@@ -79,7 +79,7 @@ protected override async Task<PuzzleResult> SolveCoreAsync(string[] args, Cancel
     /// </returns>
     private static Dictionary<int, List<Element>> ParseInitialState(IList<string> initialState)
     {
-        Dictionary<int, List<Element>> state = new(4);
+        Dictionary<int, List<Element>> state = [with(4)];
 
         for (int i = 0; i < initialState.Count; i++)
         {
diff --git a/src/AdventOfCode/Puzzles/Y2016/Day21.cs b/src/AdventOfCode/Puzzles/Y2016/Day21.cs
index d7e7630fb..fec8d61f6 100644
--- a/src/AdventOfCode/Puzzles/Y2016/Day21.cs
+++ b/src/AdventOfCode/Puzzles/Y2016/Day21.cs
@@ -276,6 +276,8 @@ private static void SwapLetters(Span<char> values, string x, string y)
     /// <param name="x">The index of the first location to swap.</param>
     /// <param name="y">The index of the second location to swap.</param>
     [MethodImpl(MethodImplOptions.AggressiveInlining)]
+#pragma warning disable CA1517 // HACK https://github.com/dotnet/sdk/issues/53388
     private static void SwapPosition(Span<char> values, int x, int y)
+#pragma warning disable CA1517
         => (values[x], values[y]) = (values[y], values[x]);
 }
diff --git a/src/AdventOfCode/Puzzles/Y2018/Day08.cs b/src/AdventOfCode/Puzzles/Y2018/Day08.cs
index bf37a1cb4..1bb7b54fb 100644
--- a/src/AdventOfCode/Puzzles/Y2018/Day08.cs
+++ b/src/AdventOfCode/Puzzles/Y2018/Day08.cs
@@ -104,9 +104,9 @@ private sealed class Node(int childCount, int metadataCount)
 
         public int MetadataCount { get; init; } = metadataCount;
 
-        public List<Node> Children { get; } = new(childCount);
+        public List<Node> Children { get; } = [with(childCount)];
 
-        public List<int> Metadata { get; } = new(metadataCount);
+        public List<int> Metadata { get; } = [with(metadataCount)];
 
         public long MetadataSum { get; set; }
 
diff --git a/src/AdventOfCode/Puzzles/Y2020/Day19.cs b/src/AdventOfCode/Puzzles/Y2020/Day19.cs
index 77f16e59e..37d98d35e 100644
--- a/src/AdventOfCode/Puzzles/Y2020/Day19.cs
+++ b/src/AdventOfCode/Puzzles/Y2020/Day19.cs
@@ -47,7 +47,7 @@ public static int GetMatchCount(IList<string> input, bool applyFix)
 
         static Dictionary<string, string> ParseRules(IEnumerable<string> input, int count)
         {
-            Dictionary<string, List<string>> rawRules = new(count);
+            Dictionary<string, List<string>> rawRules = [with(count)];
 
             foreach (string rule in input)
             {
diff --git a/src/AdventOfCode/Puzzles/Y2021/Day11.cs b/src/AdventOfCode/Puzzles/Y2021/Day11.cs
index 9c6a7baa7..bc2e0b71c 100644
--- a/src/AdventOfCode/Puzzles/Y2021/Day11.cs
+++ b/src/AdventOfCode/Puzzles/Y2021/Day11.cs
@@ -42,7 +42,7 @@ public static (int Flashes100, int StepOfFirstSynchronizedFlash) Simulate(IList<
 
         for (int i = 0; i < steps; i++)
         {
-            current = new Dictionary<Point, int>(previous.Count);
+            current = [with(previous.Count)];
 
             var pointsToFlash = new List<Point>();
 
diff --git a/src/AdventOfCode/Puzzles/Y2021/Day23.cs b/src/AdventOfCode/Puzzles/Y2021/Day23.cs
index ed9732465..13ab8a0ef 100644
--- a/src/AdventOfCode/Puzzles/Y2021/Day23.cs
+++ b/src/AdventOfCode/Puzzles/Y2021/Day23.cs
@@ -256,7 +256,7 @@ public IEnumerable<State> Neighbors(State id)
                     continue;
                 }
 
-                int firstSpace = burrow.LastIndexOf(' ');
+                int firstSpace = burrow.LastIndexOf(' ', StringComparison.Ordinal);
                 string populated = Replace(burrow, amphipod, firstSpace);
                 string newHallway = Replace(id.Hallway, ' ', space);
 
diff --git a/src/AdventOfCode/Puzzles/Y2022/Day05.cs b/src/AdventOfCode/Puzzles/Y2022/Day05.cs
index 68fe558ec..7861b52d0 100644
--- a/src/AdventOfCode/Puzzles/Y2022/Day05.cs
+++ b/src/AdventOfCode/Puzzles/Y2022/Day05.cs
@@ -34,7 +34,7 @@ static int GetStackCount(IList<string> instructions)
                 if (string.IsNullOrEmpty(instructions[i]))
                 {
                     string trimmed = instructions[i - 1].Trim();
-                    return Parse<int>(trimmed[trimmed.LastIndexOf(' ')..]);
+                    return Parse<int>(trimmed[trimmed.LastIndexOf(' ', StringComparison.Ordinal)..]);
                 }
             }
 
diff --git a/src/AdventOfCode/Puzzles/Y2022/Day07.cs b/src/AdventOfCode/Puzzles/Y2022/Day07.cs
index ab9162baf..5a34ac760 100644
--- a/src/AdventOfCode/Puzzles/Y2022/Day07.cs
+++ b/src/AdventOfCode/Puzzles/Y2022/Day07.cs
@@ -103,7 +103,7 @@ static int ParseEntries(Directory current, ReadOnlySpan<string> terminalOutput)
             {
                 string item = terminalOutput[i];
 
-                if (item.StartsWith('$'))
+                if (item.StartsWith('$', StringComparison.Ordinal))
                 {
                     count = i;
                     break;
diff --git a/src/AdventOfCode/Puzzles/Y2022/Day11.cs b/src/AdventOfCode/Puzzles/Y2022/Day11.cs
index 51472d9d0..fc36673d3 100644
--- a/src/AdventOfCode/Puzzles/Y2022/Day11.cs
+++ b/src/AdventOfCode/Puzzles/Y2022/Day11.cs
@@ -80,7 +80,7 @@ static ICollection<Monkey> Parse(IList<string> observations, bool highAnxiety)
 
                 string operationString = operation[2..];
 
-                if (operation.StartsWith('+'))
+                if (operation.StartsWith('+', StringComparison.Ordinal))
                 {
                     if (operationString is "old")
                     {
@@ -92,7 +92,7 @@ static ICollection<Monkey> Parse(IList<string> observations, bool highAnxiety)
                         monkey.Inspector = (p) => p + operationValue;
                     }
                 }
-                else if (operation.StartsWith('*'))
+                else if (operation.StartsWith('*', StringComparison.Ordinal))
                 {
                     if (operationString is "old")
                     {
diff --git a/src/AdventOfCode/Puzzles/Y2022/Day12.cs b/src/AdventOfCode/Puzzles/Y2022/Day12.cs
index 68981f748..1bb1f5ef7 100644
--- a/src/AdventOfCode/Puzzles/Y2022/Day12.cs
+++ b/src/AdventOfCode/Puzzles/Y2022/Day12.cs
@@ -107,7 +107,7 @@ private sealed class Map : SquareGrid
         public Map(int width, int height)
             : base(width, height)
         {
-            Elevations = new(Width * Height);
+            Elevations = [with(Width * Height)];
         }
 
         public Point Start { get; set; }
diff --git a/src/AdventOfCode/Puzzles/Y2023/Day08.cs b/src/AdventOfCode/Puzzles/Y2023/Day08.cs
index cf57e4bd8..0228e5dcb 100644
--- a/src/AdventOfCode/Puzzles/Y2023/Day08.cs
+++ b/src/AdventOfCode/Puzzles/Y2023/Day08.cs
@@ -28,8 +28,8 @@ public static long WalkNetwork(IList<string> nodes, bool asGhost, CancellationTo
 
         if (asGhost)
         {
-            destination = (p) => p.EndsWith('Z');
-            locations = [.. network.Edges.Keys.Where((p) => p.EndsWith('A'))];
+            destination = (p) => p.EndsWith('Z', StringComparison.Ordinal);
+            locations = [.. network.Edges.Keys.Where((p) => p.EndsWith('A', StringComparison.Ordinal))];
         }
         else
         {
diff --git a/src/AdventOfCode/Puzzles/Y2023/Day12.cs b/src/AdventOfCode/Puzzles/Y2023/Day12.cs
index 33cd05fd7..84213d7c2 100644
--- a/src/AdventOfCode/Puzzles/Y2023/Day12.cs
+++ b/src/AdventOfCode/Puzzles/Y2023/Day12.cs
@@ -166,7 +166,7 @@ public IEnumerable<State> Neighbors(State id)
 
                     yield return new State(next, id.Counts, id.Actual + 1, id.Desired);
 
-                    i = springs.IndexOf(Unknown, i + 1);
+                    i = springs.IndexOf(Unknown, i + 1, StringComparison.Ordinal);
                 }
             }
         }
diff --git a/src/AdventOfCode/Puzzles/Y2023/Day22.cs b/src/AdventOfCode/Puzzles/Y2023/Day22.cs
index 021d389cc..e1437e6ec 100644
--- a/src/AdventOfCode/Puzzles/Y2023/Day22.cs
+++ b/src/AdventOfCode/Puzzles/Y2023/Day22.cs
@@ -115,7 +115,7 @@ static Vector3 ParseVector(ReadOnlySpan<char> value)
 
                 if (transform != Vector3.Zero)
                 {
-                    transformed = new HashSet<Vector3>(cubes!.Length);
+                    transformed = [with(cubes!.Length)];
 
                     for (int i = 0; i < cubes.Length; i++)
                     {
diff --git a/src/AdventOfCode/Puzzles/Y2024/Day01.cs b/src/AdventOfCode/Puzzles/Y2024/Day01.cs
index fd9732cc0..3573bb506 100644
--- a/src/AdventOfCode/Puzzles/Y2024/Day01.cs
+++ b/src/AdventOfCode/Puzzles/Y2024/Day01.cs
@@ -19,8 +19,8 @@ public sealed class Day01 : Puzzle<int, int>
     /// </returns>
     public static (int TotalDistance, int SimilarityScore) ParseList(IList<string> values)
     {
-        List<int> first = new(values.Count);
-        List<int> second = new(values.Count);
+        List<int> first = [with(values.Count)];
+        List<int> second = [with(values.Count)];
 
         foreach (string pair in values)
         {
diff --git a/src/AdventOfCode/Puzzles/Y2024/Day10.cs b/src/AdventOfCode/Puzzles/Y2024/Day10.cs
index 12854f29f..9da854bc6 100644
--- a/src/AdventOfCode/Puzzles/Y2024/Day10.cs
+++ b/src/AdventOfCode/Puzzles/Y2024/Day10.cs
@@ -89,6 +89,6 @@ protected override async Task<PuzzleResult> SolveCoreAsync(string[] args, Cancel
 
     private sealed class TopographicMap(Rectangle bounds) : SquareGrid(bounds)
     {
-        public Dictionary<Point, int> Heights { get; } = new(bounds.Area());
+        public Dictionary<Point, int> Heights { get; } = [with(bounds.Area())];
     }
 }
diff --git a/src/AdventOfCode/Puzzles/Y2025/Day12.cs b/src/AdventOfCode/Puzzles/Y2025/Day12.cs
index e1781cf1b..886c190a0 100644
--- a/src/AdventOfCode/Puzzles/Y2025/Day12.cs
+++ b/src/AdventOfCode/Puzzles/Y2025/Day12.cs
@@ -292,7 +292,7 @@ public HashSet<Point> Empty()
 
     private sealed class Shape(int index, int capacity) : HashSet<Point>(capacity)
     {
-        private readonly List<Shape> _transformations = new(8);
+        private readonly List<Shape> _transformations = [with(8)];
 
         public int Index { get; } = index;
 
diff --git a/startvscode.cmd b/startvscode.cmd
index 91142b503..5a0355319 100644
--- a/startvscode.cmd
+++ b/startvscode.cmd
@@ -11,7 +11,7 @@ SET DOTNET_ROOT(x86)=%~dp0.dotnet\x86
 SET PATH=%DOTNET_ROOT%;%PATH%
 
 :: Sets the Target Framework for Visual Studio Code.
-SET TARGET=net10.0
+SET TARGET=net11.0
 
 SET FOLDER=%~1
 
diff --git a/tests/AdventOfCode.Benchmarks/AdventOfCode.Benchmarks.csproj b/tests/AdventOfCode.Benchmarks/AdventOfCode.Benchmarks.csproj
index a7e920da4..5fe766925 100644
--- a/tests/AdventOfCode.Benchmarks/AdventOfCode.Benchmarks.csproj
+++ b/tests/AdventOfCode.Benchmarks/AdventOfCode.Benchmarks.csproj
@@ -5,7 +5,7 @@
     <NoWarn>$(NoWarn);CA1034;CA1056;CA1819;CA2007;SA1600</NoWarn>
     <OutputType>Exe</OutputType>
     <RootNamespace>MartinCostello.AdventOfCode.Benchmarks</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\src\AdventOfCode\AdventOfCode.csproj" />
diff --git a/tests/AdventOfCode.Benchmarks/Program.cs b/tests/AdventOfCode.Benchmarks/Program.cs
index a08e8b9b9..730957528 100644
--- a/tests/AdventOfCode.Benchmarks/Program.cs
+++ b/tests/AdventOfCode.Benchmarks/Program.cs
@@ -4,5 +4,5 @@
 using BenchmarkDotNet.Running;
 using MartinCostello.AdventOfCode.Benchmarks;
 
-var summary = BenchmarkRunner.Run<PuzzleBenchmarks>(args: args);
+var summary = await BenchmarkRunner.RunAsync<PuzzleBenchmarks>(args: args);
 return summary.Reports.Any((p) => !p.Success) ? 1 : 0;
diff --git a/tests/AdventOfCode.Tests/AdventOfCode.Tests.csproj b/tests/AdventOfCode.Tests/AdventOfCode.Tests.csproj
index 1812e9f23..f088e3d65 100644
--- a/tests/AdventOfCode.Tests/AdventOfCode.Tests.csproj
+++ b/tests/AdventOfCode.Tests/AdventOfCode.Tests.csproj
@@ -4,7 +4,7 @@
     <NoWarn>$(NoWarn);xUnit1004</NoWarn>
     <OutputType>Exe</OutputType>
     <RootNamespace>MartinCostello.AdventOfCode</RootNamespace>
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net11.0</TargetFramework>
     <UseDefaultCodeAnalysisRuleSet>true</UseDefaultCodeAnalysisRuleSet>
     <UseLocalDevelopmentCertificate>true</UseLocalDevelopmentCertificate>
   </PropertyGroup>
