diff --git a/JobTrackerApi.Tests/CvBuilderTests.cs b/JobTrackerApi.Tests/CvBuilderTests.cs index 387d36f..94fb8fb 100644 --- a/JobTrackerApi.Tests/CvBuilderTests.cs +++ b/JobTrackerApi.Tests/CvBuilderTests.cs @@ -376,7 +376,7 @@ public sealed class CvBuilderTests var created = await svc.CreateAsync("user-1", "My CV", null, new CvVariantSettings { ThemeId = "modern" }, default); Assert.Equal(1, created.Version); - var saved = await svc.SaveAsync("user-1", created.Id, "My CV v2", new CvVariantSettings { ThemeId = "nordic" }, "autosave", default); + var saved = await svc.SaveAsync("user-1", created.Id, "My CV v2", new CvVariantSettings { ThemeId = "nordic" }, "autosave", 1, default); Assert.Equal(2, saved!.Version); var versions = await svc.ListVersionsAsync("user-1", created.Id, default); @@ -410,9 +410,9 @@ public sealed class CvBuilderTests var (db, svc) = NewService("user-1"); await using var _ = db; var v = await svc.CreateAsync("user-1", "CV", null, new CvVariantSettings { ThemeId = "modern" }, default); - await svc.SaveAsync("user-1", v.Id, null, new CvVariantSettings { ThemeId = "creative" }, "autosave", default); + await svc.SaveAsync("user-1", v.Id, null, new CvVariantSettings { ThemeId = "creative" }, "autosave", 1, default); - var restored = await svc.RestoreVersionAsync("user-1", v.Id, 1, default); + var restored = await svc.RestoreVersionAsync("user-1", v.Id, 1, 2, default); Assert.Equal(3, restored!.Version); Assert.Equal("modern", CvVariantSettingsJson.Deserialize(restored.SettingsJson).ThemeId); } @@ -533,6 +533,8 @@ public sealed class CvBuilderTests Assert.Contains("counter-reset:cv-section", html); Assert.Contains("--cv-accent-color:#126b55", html); Assert.Contains("Consolas", html); + // A lone quote here caused Chromium to consume all following layout and @page rules. + Assert.Contains("content:\"\";", html); Assert.True(CvThemeCatalog.Resolve("code").AtsFriendly); } diff --git a/JobTrackerApi.Tests/CvRevisionReadinessTests.cs b/JobTrackerApi.Tests/CvRevisionReadinessTests.cs new file mode 100644 index 0000000..df50c85 --- /dev/null +++ b/JobTrackerApi.Tests/CvRevisionReadinessTests.cs @@ -0,0 +1,134 @@ +using JobTrackerApi.Data; +using JobTrackerApi.Models; +using JobTrackerApi.Services; +using Microsoft.Data.Sqlite; +using Microsoft.EntityFrameworkCore; +using Moq; +using Xunit; + +namespace JobTrackerApi.Tests; + +public sealed class CvRevisionReadinessTests +{ + private static JobTrackerContext Context(SqliteConnection connection, string owner = "revision-owner") + { + var principal = new Mock(); + principal.SetupGet(x => x.UserId).Returns(owner); + return new JobTrackerContext(new DbContextOptionsBuilder().UseSqlite(connection).Options, principal.Object); + } + + private static CvVariantService Service(JobTrackerContext db) => new(db, new CareerProfileService(db), new ThemedCvRenderer()); + + [Theory] + [InlineData(false)] + [InlineData(true)] + public async Task Independent_stale_save_or_restore_cannot_replace_the_newer_revision(bool restore) + { + await using var connection = new SqliteConnection("Data Source=:memory:"); + await connection.OpenAsync(); + await using var first = Context(connection); + await first.Database.EnsureCreatedAsync(); + var a = Service(first); + var cv = await a.CreateAsync("revision-owner", "Revision fixture", null, new CvVariantSettings { Headline = "Original" }, default); + await using var second = Context(connection); + var b = Service(second); + Assert.Equal(1, (await b.GetAsync("revision-owner", cv.Id, default))!.Version); + + await a.SaveAsync("revision-owner", cv.Id, null, new CvVariantSettings { Headline = "Newer reviewed content" }, "manual", 1, default); + await Assert.ThrowsAsync(() => restore + ? b.RestoreVersionAsync("revision-owner", cv.Id, 1, 1, default) + : b.SaveAsync("revision-owner", cv.Id, null, new CvVariantSettings { Headline = "Stale draft" }, "autosave", 1, default)); + + await using var verify = Context(connection); + var saved = await verify.CvVariants.SingleAsync(); + Assert.Equal(2, saved.Version); + Assert.Equal("Newer reviewed content", CvVariantSettingsJson.Deserialize(saved.SettingsJson).Headline); + var history = await verify.CvVariantVersions.OrderBy(x => x.Version).ToListAsync(); + Assert.Equal(new[] { 1, 2 }, history.Select(x => x.Version)); + Assert.Equal("Original", CvVariantSettingsJson.Deserialize(history[0].SettingsJson).Headline); + } + + [Fact] + public async Task Fresh_request_with_a_stale_expected_version_is_rejected_before_appending_history() + { + await using var connection = new SqliteConnection("Data Source=:memory:"); + await connection.OpenAsync(); + await using var first = Context(connection); + await first.Database.EnsureCreatedAsync(); + var service = Service(first); + var cv = await service.CreateAsync("revision-owner", "CV", null, null, default); + await service.SaveAsync("revision-owner", cv.Id, null, new CvVariantSettings { Headline = "Winner" }, "manual", 1, default); + await using var fresh = Context(connection); + await Assert.ThrowsAsync(() => Service(fresh).SaveAsync("revision-owner", cv.Id, "Stale rename", new CvVariantSettings(), "autosave", 1, default)); + Assert.Equal(2, await fresh.CvVariantVersions.CountAsync()); + Assert.Equal("CV", (await fresh.CvVariants.SingleAsync()).Name); + } + + [Fact] + public async Task Settings_history_restore_and_override_reset_preserve_the_canonical_source_contract() + { + await using var connection = new SqliteConnection("Data Source=:memory:"); + await connection.OpenAsync(); + await using var db = Context(connection); + await db.Database.EnsureCreatedAsync(); + var career = new CareerProfileService(db); + var profile = new StructuredCvProfile + { + Contact = new() { FullName = "Åse Fixture", Headline = "Canonical source" }, + Jobs = { new() { Id = "source-entry", Title = "Canonical role", Company = "Nordlys", Bullets = { "Canonical evidence" } } }, + Skills = { "C#", "Norsk" }, + }; + await career.SaveVersionAsync("revision-owner", profile, "manual", default); + var service = Service(db); + var lens = new CvVariantSettings + { + Headline = "CV-only headline", ThemeId = "code", PageMarginMm = 28, Density = "compact", + Sections = { new() { Key = "skills", Hidden = true }, new() { Key = "experience" }, new() { Key = "summary" } }, + Overrides = { ["source-entry"] = new() { Title = "CV-only role", Bullets = new() { "Reviewed override" } } }, + }; + var cv = await service.CreateAsync("revision-owner", "Variant", null, lens, default); + var originalHistory = (await db.CvVariantVersions.SingleAsync()).SettingsJson; + Assert.Equal("Canonical role", (await career.LoadStructuredAsync("revision-owner", default)).Jobs[0].Title); + var rendered = await service.RenderAsync("revision-owner", cv.Id, new("Fallback", null), default); + Assert.Contains("CV-only role", rendered!.Html); + Assert.DoesNotContain("Canonical evidence", rendered.Html); + Assert.DoesNotContain("section-skills", rendered.Html); + + // History is the immutable lens; inherited source values intentionally remain live. + profile.Contact.Headline = "Updated canonical source"; + profile.Jobs[0].Title = "Updated canonical role"; + await career.SaveVersionAsync("revision-owner", profile, "manual", default); + Assert.Equal(originalHistory, (await db.CvVariantVersions.SingleAsync()).SettingsJson); + var reset = new CvVariantSettings { ThemeId = "minimal" }; + await service.SaveAsync("revision-owner", cv.Id, null, reset, "manual", 1, default); + rendered = await service.RenderAsync("revision-owner", cv.Id, new("Fallback", null), default); + Assert.Contains("Updated canonical role", rendered!.Html); + Assert.Contains("Updated canonical source", rendered.Html); + + var restored = await service.RestoreVersionAsync("revision-owner", cv.Id, 1, 2, default); + Assert.Equal(3, restored!.Version); + Assert.Equal(originalHistory, restored.SettingsJson); + await service.SaveAsync("revision-owner", cv.Id, null, new CvVariantSettings { Headline = "After restore" }, "autosave", 3, default); + Assert.Equal(originalHistory, (await db.CvVariantVersions.SingleAsync(x => x.Version == 1)).SettingsJson); + Assert.Equal(originalHistory, (await db.CvVariantVersions.SingleAsync(x => x.Version == 3)).SettingsJson); + Assert.Equal(new[] { 4, 3, 2, 1 }, (await service.ListVersionsAsync("revision-owner", cv.Id, default)).Select(x => x.Version)); + Assert.Equal("Updated canonical role", (await career.LoadStructuredAsync("revision-owner", default)).Jobs[0].Title); + } + + [Fact] + public async Task Foreign_account_cannot_read_save_or_restore_revision_history() + { + await using var connection = new SqliteConnection("Data Source=:memory:"); + await connection.OpenAsync(); + await using var owner = Context(connection); + await owner.Database.EnsureCreatedAsync(); + var cv = await Service(owner).CreateAsync("revision-owner", "Private", null, null, default); + await using var other = Context(connection, "other-account"); + var service = Service(other); + Assert.Null(await service.GetAsync("other-account", cv.Id, default)); + Assert.Empty(await service.ListVersionsAsync("other-account", cv.Id, default)); + Assert.Null(await service.SaveAsync("other-account", cv.Id, "Overwrite", new(), "manual", 1, default)); + Assert.Null(await service.RestoreVersionAsync("other-account", cv.Id, 1, 1, default)); + Assert.Single(await owner.CvVariantVersions.ToListAsync()); + } +} diff --git a/JobTrackerApi/Controllers/CvVariantController.cs b/JobTrackerApi/Controllers/CvVariantController.cs index 0113af0..1cd1b77 100644 --- a/JobTrackerApi/Controllers/CvVariantController.cs +++ b/JobTrackerApi/Controllers/CvVariantController.cs @@ -3,6 +3,7 @@ using JobTrackerApi.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; namespace JobTrackerApi.Controllers; @@ -31,7 +32,8 @@ public sealed class CvVariantController : ControllerBase public sealed record VariantDto(int Id, string Name, CvVariantSettings Settings, bool IsPublic, string PublicSlug, int Version, int? JobApplicationId, DateTimeOffset UpdatedAtUtc); public sealed record CreateVariantRequest(string? Name, int? JobApplicationId, CvVariantSettings? Settings); - public sealed record SaveVariantRequest(string? Name, CvVariantSettings? Settings, string? Source); + public sealed record SaveVariantRequest(string? Name, CvVariantSettings? Settings, string? Source, int? ExpectedVersion = null); + public sealed record RestoreVariantRequest(int? ExpectedVersion); public sealed record PublicToggleRequest(bool IsPublic); public sealed record DuplicateRequest(string? Name); public sealed record PreviewRequest(CvVariantSettings? Settings); @@ -126,6 +128,9 @@ public sealed class CvVariantController : ControllerBase { var user = await _users.GetUserAsync(User); if (user is null) return Unauthorized(); + if (await _variants.GetAsync(user.Id, id, ct) is null) return NotFound(); + if (request.ExpectedVersion is not > 0) + return StatusCode(StatusCodes.Status428PreconditionRequired, new { code = "cv_revision_required", message = "Reload this CV before saving." }); var settings = CvVariantSettingsJson.Normalize(request.Settings); if (!CvThemeCatalog.Exists(settings.ThemeId)) return BadRequest("Unknown theme."); if (!await CanUseThemeAsync(user, settings.ThemeId)) @@ -135,8 +140,12 @@ public sealed class CvVariantController : ControllerBase if (!string.Equals(CvVariantSettingsJson.Deserialize(current.SettingsJson).ThemeId, settings.ThemeId, StringComparison.OrdinalIgnoreCase)) return StatusCode(StatusCodes.Status403Forbidden, "This theme requires Pro."); } - var variant = await _variants.SaveAsync(user.Id, id, request.Name, settings, request.Source ?? "autosave", ct); - return variant is null ? NotFound() : Ok(ToDto(variant)); + try + { + var variant = await _variants.SaveAsync(user.Id, id, request.Name, settings, request.Source ?? "autosave", request.ExpectedVersion.Value, ct); + return variant is null ? NotFound() : Ok(ToDto(variant)); + } + catch (DbUpdateConcurrencyException) { return RevisionConflict(); } } [HttpDelete("variants/{id:int}")] @@ -174,14 +183,24 @@ public sealed class CvVariantController : ControllerBase } [HttpPost("variants/{id:int}/versions/{version:int}/restore")] - public async Task> Restore(int id, int version, CancellationToken ct) + public async Task> Restore(int id, int version, [FromBody(EmptyBodyBehavior = Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior.Allow)] RestoreVariantRequest? request, CancellationToken ct) { var user = await _users.GetUserAsync(User); if (user is null) return Unauthorized(); - var variant = await _variants.RestoreVersionAsync(user.Id, id, version, ct); - return variant is null ? NotFound() : Ok(ToDto(variant)); + if (await _variants.GetAsync(user.Id, id, ct) is null) return NotFound(); + if (request?.ExpectedVersion is not > 0) + return StatusCode(StatusCodes.Status428PreconditionRequired, new { code = "cv_revision_required", message = "Reload this CV before restoring." }); + try + { + var variant = await _variants.RestoreVersionAsync(user.Id, id, version, request.ExpectedVersion.Value, ct); + return variant is null ? NotFound() : Ok(ToDto(variant)); + } + catch (DbUpdateConcurrencyException) { return RevisionConflict(); } } + private ObjectResult RevisionConflict() => StatusCode(StatusCodes.Status409Conflict, + new { code = "cv_revision_conflict", message = "This CV was changed elsewhere. Your request was not applied. Reload and review before saving again." }); + [HttpGet("variants/{id:int}/preview")] public async Task> Preview(int id, CancellationToken ct) { diff --git a/JobTrackerApi/Data/JobTrackerContext.cs b/JobTrackerApi/Data/JobTrackerContext.cs index f158df9..54b673f 100644 --- a/JobTrackerApi/Data/JobTrackerContext.cs +++ b/JobTrackerApi/Data/JobTrackerContext.cs @@ -480,6 +480,9 @@ namespace JobTrackerApi.Data // the reconciler (StartupInitializationExtensions), MySQL-safe; see that file + DbContext note. modelBuilder.Entity().Property(x => x.OwnerUserId).HasMaxLength(255); modelBuilder.Entity().Property(x => x.PublicSlug).HasMaxLength(64); + // Existing integer column: make the UPDATE compare the loaded revision atomically. + // No new database column or schema migration is required. + modelBuilder.Entity().Property(x => x.Version).IsConcurrencyToken(); modelBuilder.Entity().Property(x => x.OwnerUserId).HasMaxLength(255); modelBuilder.Entity() .HasIndex(x => x.PublicSlug) diff --git a/JobTrackerApi/Migrations/JobTrackerContextModelSnapshot.cs b/JobTrackerApi/Migrations/JobTrackerContextModelSnapshot.cs index f63af4b..b813899 100644 --- a/JobTrackerApi/Migrations/JobTrackerContextModelSnapshot.cs +++ b/JobTrackerApi/Migrations/JobTrackerContextModelSnapshot.cs @@ -1313,6 +1313,7 @@ namespace JobTrackerApi.Migrations .HasColumnType("TEXT"); b.Property("Version") + .IsConcurrencyToken() .HasColumnType("INTEGER"); b.HasKey("Id"); diff --git a/JobTrackerApi/Services/CvVariantService.cs b/JobTrackerApi/Services/CvVariantService.cs index 918ebcd..936b439 100644 --- a/JobTrackerApi/Services/CvVariantService.cs +++ b/JobTrackerApi/Services/CvVariantService.cs @@ -28,12 +28,12 @@ public interface ICvVariantService Task CanAssociateJobAsync(string ownerUserId, int jobApplicationId, CancellationToken ct); Task GetAsync(string ownerUserId, int id, CancellationToken ct); Task CreateAsync(string ownerUserId, string? name, int? jobApplicationId, CvVariantSettings? settings, CancellationToken ct); - Task SaveAsync(string ownerUserId, int id, string? name, CvVariantSettings settings, string source, CancellationToken ct); + Task SaveAsync(string ownerUserId, int id, string? name, CvVariantSettings settings, string source, int expectedVersion, CancellationToken ct); Task SetPublicAsync(string ownerUserId, int id, bool isPublic, CancellationToken ct); Task DuplicateAsync(string ownerUserId, int id, string? newName, CancellationToken ct); Task DeleteAsync(string ownerUserId, int id, CancellationToken ct); Task> ListVersionsAsync(string ownerUserId, int id, CancellationToken ct); - Task RestoreVersionAsync(string ownerUserId, int id, int version, CancellationToken ct); + Task RestoreVersionAsync(string ownerUserId, int id, int version, int expectedVersion, CancellationToken ct); // Render a saved variant against the current master profile. Task RenderAsync(string ownerUserId, int id, CvRenderPerson person, CancellationToken ct); @@ -108,10 +108,12 @@ public sealed class CvVariantService : ICvVariantService return variant; } - public async Task SaveAsync(string ownerUserId, int id, string? name, CvVariantSettings settings, string source, CancellationToken ct) + public async Task SaveAsync(string ownerUserId, int id, string? name, CvVariantSettings settings, string source, int expectedVersion, CancellationToken ct) { var variant = await GetAsync(ownerUserId, id, ct); if (variant is null) return null; + if (expectedVersion < 1 || variant.Version != expectedVersion) + throw new DbUpdateConcurrencyException("The CV changed after it was loaded."); if (!string.IsNullOrWhiteSpace(name)) variant.Name = CleanName(name); variant.SettingsJson = CvVariantSettingsJson.Serialize(settings); variant.Version += 1; @@ -164,14 +166,14 @@ public sealed class CvVariantService : ICvVariantService return versions.Select(x => new CvVariantVersionInfo(x.Version, x.Source, x.CreatedAtUtc, x.Version == variant.Version)).ToList(); } - public async Task RestoreVersionAsync(string ownerUserId, int id, int version, CancellationToken ct) + public async Task RestoreVersionAsync(string ownerUserId, int id, int version, int expectedVersion, CancellationToken ct) { var variant = await GetAsync(ownerUserId, id, ct); if (variant is null) return null; var target = await _db.CvVariantVersions.FirstOrDefaultAsync(x => x.CvVariantId == id && x.Version == version, ct); if (target is null) return null; var settings = CvVariantSettingsJson.Deserialize(target.SettingsJson); - return await SaveAsync(ownerUserId, id, null, settings, $"restore:v{version}", ct); + return await SaveAsync(ownerUserId, id, null, settings, $"restore:v{version}", expectedVersion, ct); } public async Task RenderAsync(string ownerUserId, int id, CvRenderPerson person, CancellationToken ct) diff --git a/JobTrackerApi/Services/PlaywrightCvPdfExporter.cs b/JobTrackerApi/Services/PlaywrightCvPdfExporter.cs index 485d735..c6a48fd 100644 --- a/JobTrackerApi/Services/PlaywrightCvPdfExporter.cs +++ b/JobTrackerApi/Services/PlaywrightCvPdfExporter.cs @@ -208,6 +208,7 @@ public sealed class PlaywrightCvPdfExporter : ICvPdfExporter "--disable-dev-shm-usage", "--allow-file-access-from-files", "--enable-local-file-accesses", + "--no-pdf-header-footer", $"--print-to-pdf={storagePath}", new Uri(htmlPath).AbsoluteUri }; diff --git a/JobTrackerApi/Services/ThemedCvRenderer.cs b/JobTrackerApi/Services/ThemedCvRenderer.cs index 05d1352..f547f56 100644 --- a/JobTrackerApi/Services/ThemedCvRenderer.cs +++ b/JobTrackerApi/Services/ThemedCvRenderer.cs @@ -294,7 +294,7 @@ h1,h2{{font-family:{headingFont};}} .section-presentation-compact>.bullets li{{margin-bottom:{F(.75 * density)}mm;}} .section-presentation-bubble>.tags,.section-presentation-bubble>.bullets{{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:1.4mm;}} .section-presentation-bubble>.bullets li,.section-presentation-bubble>.tags li{{margin:0;border:1px solid var(--cv-accent-soft);border-radius:999px;padding:.7mm 2.2mm;}} -.section-presentation-bubble>.bullets li::marker{{content:"";}} +.section-presentation-bubble>.bullets li::marker{{content:"""";}} .bullets{{margin:0;padding-left:4.5mm;}} .bullets li{{margin:0 0 {F(1.6 * density)}mm 0;}} .bullets li::marker{{color:var(--cv-accent-color);}} diff --git a/docs/redesign/phase-2/TRACEABILITY.md b/docs/redesign/phase-2/TRACEABILITY.md index 5e9a599..baf8e63 100644 --- a/docs/redesign/phase-2/TRACEABILITY.md +++ b/docs/redesign/phase-2/TRACEABILITY.md @@ -1,5 +1,7 @@ # Redesign traceability +CV readiness: [P5-09 integrity/fidelity trace](../phase-5/p5-09-readiness/README.md#regression-and-preservation-trace) maps C01/C02/C05–C12, W05/W07 and E05/E08/E09 to the existing canonical/lens/history/frozen boundaries, server expected-version/atomic comparison, recoverable editor state and native PDF measurements. Five backend, four editor and three native cases supplement the inherited evidence. G-CV-REV passes locally; six material multi-page fidelity failures keep G-CV-RENDER open and P5-09 NO-GO. Historical ledger gaps below are not erased; human screen-reader and F04 remain open. + Job section migration: [P5-08b implementation trace and evidence](../phase-5/p5-08b/README.md#preservation-impact-and-discovered-owners) maps W01–W12, C/M relationships, E07–E09 and Jobs return entries to seven URL-backed sections, existing domain owners, focused unit/native browser tests and synthetic rendered evidence. Frozen/native package proof is retained, personal Notes stays separate from application answers, and `followMode` remains metadata only. No revision, mail or backend semantics are rewritten; manual screen-reader acceptance remains open for P5-15. Job workspace readiness: [P5-08b native/navigation/accessibility proof](../phase-5/p5-08b-readiness/README.md#preservation-traceability-and-changed-files) supplements W01/W04–W08, C01/C05/C07/C10 and E07–E09 with real SQLite/ZIP and four native locale/theme navigation cases. Historical P2-D01 rows below retain the original expected-failure evidence; the successor owns the repair/results. Connor explicitly deferred absent `followMode` UI to the mail phase while preserving metadata; manual screen-reader acceptance remains open. diff --git a/docs/redesign/phase-5/OPEN_BLOCKERS.md b/docs/redesign/phase-5/OPEN_BLOCKERS.md index c2b3d25..7683bc8 100644 --- a/docs/redesign/phase-5/OPEN_BLOCKERS.md +++ b/docs/redesign/phase-5/OPEN_BLOCKERS.md @@ -23,9 +23,9 @@ Reconciled against [P4-06](../phase-4/p4-06/README.md#opendeferred-issue-reconci | P2-O01 isolated rules-save 500 | Historical unconfirmed, cause not established | **Separate reliability triage** if recurrent; keep successful native oracle, no generic retry mask | | P4-05-O01 English status actions/browser-locale dates | **Closed for Jobs/Trash in [P5-03](p5-03/README.md)**: standard status display uses existing translations, custom status text and raw API keys remain stable, and applied/deadline display follows UI language | P5-03 localized table gate met in English/Bokmål; stored date/time semantics are unchanged | | P2-D01 native SQLite tailoring/capture | **Closed/passing** in [P5-08b readiness](p5-08b-readiness/README.md): frozen source/file readback plus real SQLite/account ZIP and copy-failure/retry proof | Ordinary regression retained in P5-08b; no expected-failure branch. CV revision/geometry and production restore remain separate | -| F01 / audit D01 stale CV revision (related profile/job revisions distinct) | Open version increments without expected revision guard | **Blocks P5-09–14 broad CV**; separately authorized integrity work with cross-client proof. Profile/job persistence changes likewise gated, but their unchanged page links are safe. No automatic B07 | +| F01 / audit D01 stale CV revision (related profile/job revisions distinct) | CV save/restore protected in [P5-09 readiness](p5-09-readiness/README.md): expected version, atomic compare, append-only settings and recoverable browser draft; no schema migration | **G-CV-REV satisfied locally.** Profile/job lost updates remain distinct and are not closed. G-CV-RENDER still blocks P5-09–14; no automatic B07 | | Creation-intent idempotency | Open independent contract; not B02 identity or stale revision | **Separate backend/product work**; no Add/import/POST-on-mount expansion in Phase 5. Existing create review/no-write navigation must remain | -| CV margins/templates/preview/pagination | Open, user concern reiterated during P4; current preview has extra pagination/cropping logic | **Blocks P5-09–14** via dedicated G-CV-RENDER corpus/repair checkpoint; keyboard passing does not prove geometry. No broad renderer replacement inside UI slice | +| CV margins/templates/preview/pagination | [P5-09 readiness](p5-09-readiness/README.md) corrects malformed CSS, browser export chrome and density-adjusted preview margins; 10/16 fixtures pass measured checks, six long forms fail page count/placement | **Still blocks P5-09–14.** Separate bounded pagination repair plus remaining wrapping/photo/deployment-font qualification required; keyboard/acquisition passes do not close fidelity. No broad renderer replacement inside UI slice | | Table/Board filter/population mismatch | **Read prerequisite resolved in [P5-04b readiness](p5-04b-readiness/README.md)**: shared logical query, complete ID membership, owner/trash/derived filters and mutation refresh proven | [P5-04b integration](p5-04b/README.md) preserves that query/route contract; full-array scaling remains an explicit limitation | | P3-O01 analytics names/periods/populations | [P5-06](p5-06/README.md) addresses Dashboard labels; [P5-07](p5-07/README.md) reuses and revalidates the same cohorts/snapshots/samples and exact values in Analytics, independent of Dashboard flags | Dashboard/Analytics G-METRICS has scoped regression evidence; current server population/date limitations remain documented and backend metric/timezone repair remains separate | | P5-06-O01 native language preference 500 during reads | One full-run fixture response was generic 500 while Dashboard/setup reads overlapped; exception/root cause not established. Visual setup now writes the native preference before mounting the next fixture, still requiring 204 | **Separate baseline auth/storage investigation**, not resolved by presentation. Concurrent language mutation during loading is not certified; [observation and test sequencing](p5-06/README.md#regression-protection) | diff --git a/docs/redesign/phase-5/READINESS_GATES.md b/docs/redesign/phase-5/READINESS_GATES.md index 1fc46c9..cf1e9de 100644 --- a/docs/redesign/phase-5/READINESS_GATES.md +++ b/docs/redesign/phase-5/READINESS_GATES.md @@ -49,14 +49,18 @@ Blocks P5-08b section/application/document restructuring, related CV tailoring c ## G-CV-REV — server revision safety before broad CV migration -F01/audit D01 remains open. Current `CvVariantService.SaveAsync(owner,id,name,settings,source,ct)` owner-loads and increments `Version`; it has no expected-revision parameter/comparison. Restore calls Save. The browser queue serializes one mounted editor only. B02 account identity, stale-record conflicts and creation idempotency are three separate contracts. +Successor: [P5-09 readiness](p5-09-readiness/README.md#revision-defect-boundary-and-recovery) protects CV save/restore with an expected version and atomic EF concurrency token on the existing column, with cross-client rejection and draft recovery evidence. **CV revision gate satisfied locally; related canonical-profile/job lost-update contracts remain separate.** G-CV-RENDER still blocks P5-09–14. No B07 or schema migration. -Missing proof: two independent same-account clients load vN; A saves vN+1; B's stale save/restore cannot overwrite A; deterministic conflict/reload/review handling preserves B's unsaved work; canonical-source edits and variant resets have explicit version semantics; legitimate retry/reload/history/undo succeed. Owner isolation must continue to hold. Relevant job/profile lost-update semantics must be resolved before **changing their persistence**, not silently rebuilt by a UI slice. +Original planning state: `CvVariantService.SaveAsync(owner,id,name,settings,source,ct)` owner-loaded and incremented `Version` without an expected-revision comparison. Restore called Save. The browser queue serialized one mounted editor only. B02 account identity, stale-record conflicts and creation idempotency remain three separate contracts. + +Required CV proof, now supplied by the successor: two independent same-account clients load vN; A saves vN+1; B's stale save/restore cannot overwrite A; deterministic conflict/reload/review handling preserves B's unsaved work; canonical-source edits and variant resets have explicit version semantics; legitimate retry/reload/history/undo succeed. Owner isolation must continue to hold. Relevant job/profile lost-update semantics remain separate and must be resolved before **changing their persistence**, not silently rebuilt by a UI slice. This is separate integrity work, not authorization to start B07 or implement a concurrency framework. Any schema requirement invokes existing restore/rollback readiness first. Serialize all edits to `CvBuilderEditor` with that work. Blocks P5-09–14. Shell-only route entry and the existing isolated preview keyboard protection can remain in use meanwhile. ## G-CV-RENDER — geometry, templates and real output +Successor: [P5-09 native corpus and measured results](p5-09-readiness/README.md#measured-corpus-and-results). Three bounded CSS/export/margin corrections restore the intended template/physical-page rules. **10/16 fixtures pass implemented measurements; six long-document fixtures fail materially. G-CV-RENDER remains open; P5-09 is NO-GO.** Native acquisition passing is not fidelity passing. A separate pagination repair and the remaining font/photo/wrapping qualifications are required; no renderer replacement is implicitly authorised. + The renderer is shared, but preview is not a byte-for-byte PDF rendering: `CvBuilderEditor.previewDocumentHtml` injects page padding, a pagination script and per-page transforms into server HTML. `CvCustomizeTab`, normalized settings and `ThemedCvRenderer` also influence layout. P4-03 proved keyboard access, not margin accuracy or document-theme fidelity. Before P5-09–14, obtain a dedicated rendering checkpoint, with corrections separately authorized if needed: diff --git a/docs/redesign/phase-5/README.md b/docs/redesign/phase-5/README.md index 71b7b7c..6b9c8eb 100644 --- a/docs/redesign/phase-5/README.md +++ b/docs/redesign/phase-5/README.md @@ -1,6 +1,8 @@ # Phase 5 — Representative screens / major UI redesign plan -**Current successor: [P5-08b Job sections](p5-08b/README.md).** Seven URL-backed sections and Application/Timeline subsections recompose the existing owners on the Phase 4 foundations. [Native readiness proof](p5-08b-readiness/README.md) and the ordinary passing P2-D01 regression remain authoritative for frozen packages/ZIPs. P5-08a header/Overview and all compatibility routes remain. `followMode` metadata is preserved; mode-specific UI stays deferred to the mail phase by Connor's decision. [P5-07 Analytics](p5-07/README.md), [P5-06 Dashboard](p5-06/README.md) and [P5-04b Jobs integration](p5-04b/README.md) remain authoritative for their areas. P5-02 manual screen-reader acceptance remains mandatory for P5-15. F04, incomplete accessibility checks, native touch, Board scaling and recorded timing/preference-save observations remain open. P5-09 remains blocked by separate revision/rendering gates; no CV slice, Phase 8 or B07 has begun. +**Current successor: [P5-09 readiness](p5-09-readiness/README.md) — NO-GO for CV redesign.** Expected-version/atomic revision protection and recoverable drafts satisfy G-CV-REV locally. Measured preview/native PDF output passes 10 of 16 implemented fixture checks; six long-document cases remain materially misleading. G-CV-RENDER is open and requires a separate bounded pagination-fidelity repair before P5-09–14. No CV redesign or B07 has begun. P2-D01 remains an ordinary passing test; F04 and manual screen-reader acceptance remain open. + +**Previous implementation: [P5-08b Job sections](p5-08b/README.md).** Seven URL-backed sections and Application/Timeline subsections recompose the existing owners on the Phase 4 foundations. [Native readiness proof](p5-08b-readiness/README.md) and the ordinary passing P2-D01 regression remain authoritative for frozen packages/ZIPs. P5-08a header/Overview and all compatibility routes remain. `followMode` metadata is preserved; mode-specific UI stays deferred to the mail phase by Connor's decision. [P5-07 Analytics](p5-07/README.md), [P5-06 Dashboard](p5-06/README.md) and [P5-04b Jobs integration](p5-04b/README.md) remain authoritative for their areas. P5-02 manual screen-reader acceptance remains mandatory for P5-15. F04, incomplete accessibility checks, native touch, Board scaling and recorded timing/preference-save observations remain open. No CV redesign slice, Phase 8 or B07 has begun. Historical planning checkpoint: source `2a2f9e48052c562ef599825458d0d3a6f9f9fc61`, inspected on 2026-09-13 on `codex/ui-redesign-phase4`. That checkpoint was documentation-only; the successor record above owns implementation/validation status. diff --git a/docs/redesign/phase-5/p5-09-readiness/README.md b/docs/redesign/phase-5/p5-09-readiness/README.md new file mode 100644 index 0000000..046f689 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/README.md @@ -0,0 +1,196 @@ +# P5-09 readiness — CV integrity and rendering evidence + +**P5-09: NO-GO. G-CV-REV passes locally; G-CV-RENDER fails materially.** This bounded checkpoint starts at `ac6d78289d487c5ceae3e59db435f7ede24bb6f2`. It adds revision protection, deterministic native evidence and three small rendering corrections necessary to obtain a useful baseline. It does not implement the CV redesign, P5-09–14 or B07. The inherited baseline is 936 backend / 418 frontend / 93 actual browser cases; P2-D01 is an ordinary passing case. + +## Contract established before measurements + +PDF exported through the real authenticated endpoint and existing Chromium CLI exporter is final output truth. Compare the same saved variant settings and canonical source, without an intervening write. Application theme and viewport must not alter document geometry. + +The following tolerances are fixed before collecting results; failures remain failures rather than widening these thresholds: + +- Physical page dimensions: within 0.5 mm of A4 (210 × 297 mm) or Letter (215.9 × 279.4 mm). +- Page count and marker-to-page membership: exact agreement. No unexpected blank page, missing/duplicated fixture content or hidden-section leakage. +- Matching text/section anchors: horizontal and vertical positions within 2 mm after converting CSS px at 96 dpi and PDF points at 72 dpi; page index must agree. Glyph bounding boxes differ from CSS line boxes, so compare text baselines/line starts where possible, recording extraction limits. +- Repeated effective top/bottom safe area: PDF text must remain within the renderer's density-adjusted margin, allowing 1 mm for glyph metrics. Template-owned horizontal padding is measured independently rather than assuming one uniform horizontal margin for sidebar layouts. +- Font size: within 0.5 pt for representative text. Wrapped-line membership and line count must agree for deterministic marker paragraphs; no clipping or misleading one-page fit. +- Accent and semantic document colour: same configured RGB source in both render paths; PDF vector/text colour components within 1/255 where extractable. Anti-aliasing is not a colour mismatch. +- Section order, visibility, source/override content and user text: exact agreement in the applicable main/sidebar column. Across two independent columns, record column order rather than impose a fictitious global reading order. + +Use every catalogued template at default settings and a deterministic risk-based corpus: short EN/NB, multi-page entries/bullets, long words, skills/projects, hidden/reordered sections, A4/Letter, 8/28 mm margins, compact/roomy density, photo/icons, grid/bubbles and content near page breaks. This does not certify every Cartesian setting combination or production font environment. + +## Preservation scope + +Direct: PRES-C05–C10/C12 (variant lifecycle, editor, overrides, templates/settings, history, PDF); PRES-C01/C02 (canonical source boundary); PRES-W05/W07 (selected and frozen submitted CV); PRES-E05/E08/E09 (account isolation, keyboard, responsive/localisation). PRES-C11 AI review is regression-only, not redesigned. + +Revision history is currently append-only **settings**, not a snapshot of the Career Profile or a historical rendered PDF. Restoring re-saves old settings as a new current version against the current canonical profile. Submitted packages separately freeze rendered content and capture variant/version metadata. Do not change that domain distinction to make the gate pass. + +## Actual model and preservation invariants + +| Repository concept | Ownership / data contract | Evidence and consequence for later redesign | +|---|---|---| +| Career Profile / `StructuredCvProfile` | Owner-scoped canonical source with stable job/education/project item IDs; its own history is separate | `CareerProfileService`, resolver and existing profile tests; CV writes never save this profile | +| `CvVariant` | Named current lens; owner, optional job reference, share slug, visibility, `SettingsJson`, integer `Version` | Each successful settings/name save appends history and advances the current version. Duplication creates a separate lens/slug. No second canonical CV document model is introduced | +| `CvVariantSettings` | CV-only headline/item/section overrides, custom content, hidden items/sections, ordering, template, colour, fonts, density, margins, spacing, layout, locale | Null override uses current source; an explicit empty list is deliberately empty. Reset removes the override rather than changing the source | +| `CvVariantVersion` | Append-only settings JSON, version number, source and time | Does **not** snapshot profile/name/publication state or PDF bytes. Restore appends old settings as a new current version and retains the current CV name. History remains readable through the existing list/restore workflow; there is no independent immutable historical-PDF endpoint | +| Editor undo/redo | In-memory settings snapshots of the mounted editor | Existing session undo/redo stays separate from persisted revision history. Autosave remains debounced at 800 ms; preview at 300 ms; manual Save uses the same queue | +| Rendering model / HTML | Derived from current canonical profile + current lens + person/photo + template | It is neither an immutable career snapshot nor the submitted document. Current published CVs likewise use current source; publication does not freeze them | +| Job tailoring / selected CV | Existing job association and CV-specific/source-grounded overrides | Existing attachment/tailoring owners and APIs remain. No new many-to-many association, tailoring or AI workflow | +| `SubmittedApplicationPackage` | Separate frozen capture: CV ID/name/version/theme/settings, canonical snapshot, rendered HTML, letter/material and copied attachments | Native P2-D01 and package/ZIP fixtures revalidate that later live CV/profile/letter/file changes do not replace captured content or version metadata | + +Historical **lens state** and historical **submitted content** are deliberately different contracts. An inherited source field can change when an old lens is restored against a newer Career Profile. The historical settings JSON itself remains unchanged; explicit overrides remain historical values. Changing this to full profile snapshots would be a new domain decision, not a readiness repair. + +Previously frozen HTML/files are not regenerated to adopt the CSS/export corrections. They retain their original captured bytes, including any historical rendering limitation. Newly rendered current CVs use the corrected existing rules; that does not replace a prior submitted capture. + +Section order/visibility and every document setting are stored in the same versioned JSON. The SQLite revision fixture restores that exact JSON, checks hidden/order/template/margin/density/override state, edits again and checks both older rows remain unchanged. Generated PDFs are derived exports; current preview/export geometry is a separate failed gate, not proof of corrupt settings history. + +## Revision defect, boundary and recovery + +Before the fix, `SaveAsync` owner-loaded a CV and blindly incremented its version. Restore called that same method. Two independently loaded contexts could replace newer settings with an older draft; both original stale-save and stale-restore regression cases failed with “no exception thrown.” A browser-local queue could not protect another tab/session/client. + +The smallest shared boundary now requires the client's last acknowledged `expectedVersion` for both save and restore, compares it with owner-loaded current state, and marks the **existing integer Version column** as an EF concurrency token. The SQL update compares the loaded version atomically; a race after initial validation also fails. Current-state update and appended history use the existing relational `SaveChanges` transaction, so a rejected race does not leave a phantom history row. The EF snapshot contains the metadata annotation only: **no schema migration, new column or data rewrite**. + +| Request condition | Safe HTTP result | +|---|---| +| Foreign/unknown save or restore target | Existing 404, before version validation; no resource existence disclosure. History lists retain their existing empty-list convention | +| Missing, zero or negative expected version | 428, `cv_revision_required`; old bundles cannot silently write | +| Stale expected version or atomic SQL conflict | 409, `cv_revision_conflict`; request not applied; no latest CV contents returned | +| Current expected version | Existing successful save/restore response with new version | + +Ownership still comes from the authenticated principal, with B02 session/CSRF validation retained. Body user IDs do not select ownership. Public/private download, entitlement and shared B03 admission paths remain. Generic job/profile concurrency and creation idempotency are still separate contracts. + +The editor supplies the acknowledged server version **when a queued save executes**, consumes the returned version, and never applies save responses over a newer local draft. Applying a fetched/restored state invalidates older queued work. A revision conflict blocks further saves, retains settings/name/undo and the dirty navigation guard, and offers: + +- **Download unsaved copy:** user-triggered JSON of this draft/name/expected version; a recovery record, not a new persistent draft or import subsystem. +- **Reload saved CV:** explicit discard confirmation; Cancel keeps the draft. Edits made while reload is in flight are retained. Restoring history also retains edits made while its request is in flight and requires conflict recovery. + +There is no force overwrite, automatic merge or silent retry with a fabricated latest version. Other network failures retain the existing Retry behavior. Library rename reads the variant and supplies its version, so it shares the same boundary. Server and client must ship together; cached older clients fail closed with 428 and require refresh. Rolling back the server to the former blind-save behavior would reopen the integrity defect and is not a safe conflict-resolution strategy. + +## Rendering paths and root causes + +Both paths start with `CvVariantResolver` / `ThemedCvRenderer` and the same normalized settings. Preview renders server HTML in sandboxed same-origin iframes, adds screen-only physical-page padding and a keep-together script, crops/translates one flowing screen document per page and derives page count from scroll height. Export uses the real authenticated PDF endpoint, `PlaywrightCvPdfExporter`, Chromium CLI `--print-to-pdf`, CSS `@page` and native print fragmentation. **PDF is final output truth.** B03 bounds the expensive process through its existing admission/lifetime owner. + +Three small root corrections were necessary before fidelity measurements were useful: + +1. A C# verbatim CSS string emitted `content:";` for a bubble marker. That unterminated CSS string caused Chromium to discard later template/print rules, including `@page`. Correct escaping now emits `content:"";`. This restores the existing intended rules rather than redesigning templates. +2. Chromium CLI inserted browser date/file-URL headers/footers. `--no-pdf-header-footer` removes that unsolicited browser chrome; it is not a new CV footer feature. +3. Preview used the raw margin while PDF used density-adjusted margin. Preview now uses the existing renderer factors: compact 0.82, balanced 1, roomy 1.18. Raw 8 mm compact → 6.56 mm; raw 28 mm roomy → 33.04 mm. The meaning of stored settings is unchanged. + +Before these changes all 16 measured fixtures failed; short A4 previews could produce two-page Letter PDFs, with browser chrome and displaced template geometry. Original results and a representative comparison are preserved separately. After correction all nine default-template fixtures and the grid/bubble fixture pass the implemented measurements. Six long fixtures still fail. + +### Measured corpus and results + +The permanent native browser fixture creates deterministic canonical inputs and variants, loads the **actual editor iframe**, exports the **actual PDF bytes**, checks no intervening variant/profile change, records DOM text ranges/computed styles and captures the actual page iframe HTML at its physical viewport. It does not mock the renderer, export or admission layer. Separate PDFium rasterization and pdfplumber text/font/colour extraction avoid treating another browser screenshot as the PDF oracle. + +| Fixture | Meaningful path/settings | Preview pages | PDF pages | Measured verdict | +|---|---|---:|---:|---| +| default-modern | Short source, header band | 1 | 1 | Pass | +| default-minimal | Short single-column source | 1 | 1 | Pass | +| default-executive | Executive typography/layout | 1 | 1 | Pass | +| default-technical | Technical sidebar/type | 1 | 1 | Pass | +| default-ats-classic | ATS/default type | 1 | 1 | Pass | +| default-nordic | Nordic layout | 1 | 1 | Pass | +| default-elegant | Serif typography | 1 | 1 | Pass | +| default-creative | Creative template/layout | 1 | 1 | Pass | +| default-code | Monospaced/numbered-heading path | 1 | 1 | Pass | +| long-en-minimal | Six multi-bullet experiences, multiple education, projects/skills, long EN | 3 | 4 | **Fail** | +| long-nb-code | Long NB, extended education/title text | 3 | 4 | **Fail** | +| compact-8mm-letter | Letter, compact, 6.56 mm effective margin, smaller gaps | 3 | 4 | **Fail** | +| roomy-28mm-nb | A4, 33.04 mm effective margin, line height 1.6 | 4 | 5 | **Fail** | +| grid-and-bubbles | Reordered projects/skills, grid/bubbles, hidden interests, accent #126b55 | 1 | 1 | Pass | +| long-sidebar-nb | Technical sidebar 68 mm, grouped skills, long NB | 4 | 5 | **Fail** | +| unbreakable-and-boundary | Long unbreakable text/custom paragraphs at page boundaries | 4 | 4 | **Fail despite equal counts** | + +The risk fixtures cover long flowing bullets/entries, section starts, repeated margins and text near page boundaries. Five show one fewer preview page than exported PDF. The sixth shows materially displaced anchors/page membership even though total counts agree. First-page positions can agree while later-page anchors differ by tens of millimetres; page count alone is insufficient. + +Across the ten measured passing fixtures, maximum anchor differences are x < 0.001 mm, y **1.462 mm**, font size **0.0051 pt**, and extractable RGB component **0.000046**. The complete corpus has **31 preview pages versus 36 PDF pages**. `long-en-minimal` has a **72.60 mm** same-page vertical displacement as well as markers E05/B13/B14 moving from preview page 2 to PDF page 3. These are measured document-placement failures, not just anti-aliasing or screenshot scale differences. + +**Remaining root cause:** screen cropping does not reproduce native repeated print margins and fragmentation for long `.entry-flow` / `.item-flow` content. The existing script skips indivisible blocks taller than printable space, while Chromium can split long text and moves subsequent content using actual print boundaries. No new paginator, PDF viewer, renderer replacement or typography shrink workaround is added here. A dedicated bounded repair must preserve PDF truth and rerun this corpus before P5-09. + +### Measurement coverage and limits + +Implemented numerical checks are physical page dimensions, exact count/marker membership, every captured marker's x/y/font size and extractable RGB, PDF vertical safe area, no blank pages, marker presence/duplicates and hidden-interest leakage. Computed main/sidebar/header boxes, full extracted text, section order and font names are recorded for review. Only the implemented checks determine each table verdict; this is **not** proof that every pixel, phrase or template/control combination is correct. + +The stronger contract above also requires complete wrapped-line/section fragmentation and clipping qualification. It is **not yet a complete automated line-by-line oracle**. Photo, all alternate font overrides, icon on/off combinations, arbitrary section combinations, zoom and every template's long form are not measured in this 16-fixture corpus. Default contact icons are exercised. These remain explicit follow-up qualifications; no omitted capability is counted as a fidelity pass. The failed multi-page gate already blocks progression, without widening tolerances after measurement. + +Rendered review also shows a decorative difference in the short sidebar templates: the preview stretches the sidebar surface down the page, while PDF stops it at the content height. Text positions/counts pass in those fixtures; their surface extent is not certified by the numerical pass. This remains a preview presentation/geometry qualification for the repair, alongside long-page cropping. The `grid-and-bubbles` fixture exercises the saved hints with one project and the template's existing skills style; it does not prove every multi-entry grid or all bubble/tag combinations. + +Configured font stacks include Segoe UI/Roboto/Arial, Helvetica families, Georgia/Times and Code's monospaced utility stack; allowed overrides include Poppins. No bundled web font is supplied by the document renderer. Chromium embeds available selected/substituted subsets in the local PDFs; extracted font names are retained. Preview and PDF use the same local machine/browser family here. The production Debian image installs Chromium, not this Windows font environment. Cross-host metrics/production substitutions are **unverified**; there is no font redistribution or production-font certification. Rerun the same corpus against the deployment-equivalent image after geometry repair. + +`DateFormat` is already a frontend display hint; the server uses source date strings. `ShowPageNumbers` is stored but has no renderer implementation. Removing browser-generated page counters does not implement that setting. These existing controls/semantics are documented for P5-12; do not invent behavior or silently remove the settings now. Optional page-break editing controls do not currently exist. + +## Regression and preservation trace + +| PRES contracts | Existing invariant → readiness change | Permanent proof / remaining limit | +|---|---|---| +| C01/C02, C07 | Canonical source versus lens/reset → no source writes | New SQLite source/update/reset/history fixture; existing resolver/item/section/profile tests; native corpus compares source before/after | +| C05/C06/C10 | Create/current/history/rename/autosave/restore/undo → version precondition and recoverable conflict | Five new backend cases, four new editor cases, two native API/editor cases; existing library/dirty/undo/redo/preview error tests | +| C07/C08/C09 | Order/hidden/override/template/margin/density remain versioned → same normalized settings | Exact original history JSON before/after restore/edit; native 16-fixture output record; partial fidelity fails explicitly | +| C12, E05 | Private/public export and owner/session boundary → no bypass | Existing public/private PDF and account-isolation cases; new SQLite foreign history/save/restore case, concurrent same-account API test; rate/ingress/PDF suites retained | +| W05/W07 | Selected lens versus exact frozen capture → no capture changes | Ordinary P2-D01 plus native package/ZIP fixtures and existing capture/owner tests after final changes; package models/services untouched | +| E08/E09, C06/C10 | Named editor/preview, history actions, keyboard/mobile state → minimal names only | Named editor region/tablist/version-specific Restore, unit assertion and inherited P4-03 four theme/locale keyboard cases; human screen-reader remains open | +| C11 | AI explicit grounded review/accept/reject → unchanged | Existing whole-document/section review and invalid-response tests, full regression run; no provider factual acceptance claimed | + +IDs above use the stable `PRES-` prefix. Other contracts are regression-only; this does not claim exhaustive behavior across all 57 groups. + +New backend cases live in `CvRevisionReadinessTests`: stale save and stale restore with independently tracked SQLite contexts (2), stale fresh request (1), source/lens/history/reset/settings (1), foreign ownership (1). The relational token test checks the winning revision and exact history count after failure, rather than accepting a rejection with partial persistence. + +Four new editor cases cover acknowledged save versions/new draft retention, recoverable conflict with Cancel/confirmed reload, edits during reload, and edits during restore with named history controls. Three native cases cover real 16-fixture acquisition, independent authenticated current/stale API requests (including 428 and concurrent 200/409), and an actual stale editor download/cancel/reload/review/save workflow. A successful acquisition case **does not mean the fidelity gate passed**; the independent measurement command exits 1 on six failures. + +## Accessibility and rendered review + +The existing frame gains a named **CV editing controls** region, a named **CV studio sections** tablist, and version-specific Restore names. Existing preview region, iframe titles, focus-visible treatment, responsive pane selection and polite saving status remain. Conflict uses an existing MUI warning Alert with textual state/recovery actions; it is not colour-only. No new layout, tab sequence, keyboard shortcuts or focusable decorative region is introduced. + +P4-03's actual keyboard cases remain the native proof for Tab entry/exit, PageDown/Home/End, focused pane resize preservation, preview failure/Retry, undo/redo and source/sibling separation in EN/NB × light/dark at 390/768/899/900/1024/1440 px. Automated axe assertions retain their original rules. Incomplete axe findings are not passes; spoken accessible names and live announcements have **not** been manually verified with a screen reader. P5-02's human acceptance item remains mandatory for P5-15. + +The seven-case evidence rerun retains **16 scoped axe scans with zero reported violations**. They also contain **32 `aria-prohibited-attr` node occurrences** (existing Undo/Redo tooltip wrapper spans in EN/NB) and **237 `color-contrast` node occurrences** (overlapping/partly obscured editor elements and short badge text). These are repeated occurrences across scans, not counts of unique defects. They remain incomplete/manual qualifications, not automated accessibility passes. This checkpoint does not modify those unrelated wrapper/contrast owners. + +Visual review covers one final document comparison for each of the 16 fixtures, the original default-modern comparison, eight actual editor/phone captures across all four theme/language combinations, and the retained conflict draft/recovery state. The editor focus captures are scrolled preview states, not a full-frame visual acceptance for the later redesign. Phone fit-to-page is a document overview; existing zoom remains necessary to read small document text. Four multi-page end captures are retained without individual visual sign-off. + +Evidence uses synthetic fixtures only. The [visual manifest](evidence/visual-manifest.json) records every retained screenshot's hash and whether it was individually inspected. The [fidelity results](evidence/fidelity/fidelity-results.json), [original numerical results](evidence/before-measured-summary.json), [browser baseline summary](evidence/final-browser-summary.json), [supplemental browser results](evidence/supplemental-browser-summary.json) and [accessibility summary](evidence/accessibility-summary.json) keep measurements and incomplete checks separate. Representative images: [short modern comparison](evidence/fidelity/default-modern/comparison-1.png), [failed multi-page comparison](evidence/fidelity/long-en-minimal/comparison-2.png), [Bokmål/dark phone preview](evidence/preview-390-dark-nb.png), and [conflict draft retained](evidence/conflict-draft-retained.png). Authentication storage, raw traces and credentials are not part of this evidence package. + +## Changed files and bounded rationale + +Application: `CvVariantService.cs` / `CvVariantController.cs` enforce the common write boundary; `JobTrackerContext.cs` and its model snapshot mark the existing column; `cvBuilder.ts`, `CvBuilderEditor.tsx` and `CvBuilderPage.tsx` carry versions/recovery through every client caller; `translations.ts` adds EN/NB recovery/accessibility names. `ThemedCvRenderer.cs` fixes one malformed CSS string and `PlaywrightCvPdfExporter.cs` adds one CLI switch. All are direct readiness owners. + +Tests: new `CvRevisionReadinessTests.cs` and `e2e/cv-readiness.spec.ts`; existing `CvBuilderTests.cs`, editor unit tests and three existing browser fixtures supply versions for legitimate writes. The original forged foreign writes remain rejected; assertions were not weakened. `scripts/verify-cv-fidelity.py` is a local measurement tool, using available PDF libraries without adding a dependency to the app. + +Documentation/evidence: this record, current Phase 5 gate/index/blocker links, Phase 2 traceability and roadmap status. No route table, component library, schema migration, dependency, CI, package script, production configuration, AI flow or Job workspace implementation change. + +## Final validation + +All commands use `rtk proxy`; npm runs inside `job-tracker-ui`. Browser suites run sequentially because they share the API port. Final application code is unchanged throughout the complete run and rendered review. No failing fidelity fixture is included in the ordinary passing-suite count. F04 remains open; no deployed topology or credentials were inspected. + +| Command | Final result | +|---|---| +| `C:/Users/Connor/.dotnet/dotnet.exe test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj -c Release --no-restore --logger 'console;verbosity=minimal'` | **941/941**, zero failed/skipped; +5 cases described above | +| `npm.cmd test -- --runInBand --silent --json --outputFile=../.artifacts/p5-09-readiness-jest.json` | **422/422**, 80 suites, zero failures; +4 editor cases | +| `npm.cmd run test:e2e -- --reporter=line,json` | **96/96 actual passes**, 15.0 minutes, +3 native cases; no expected-failure annotation, skips or failures | +| `npm.cmd run typecheck` / `npm.cmd run lint` | Passed; no TS2571 or lint suppression introduced | +| `npm.cmd exec tsc -- --project ../.artifacts/p5-09-readiness-e2e-tsconfig.json --noEmit --incremental false` | All permanent browser fixtures passed TypeScript using existing project types | +| `npm.cmd run build` with `NEXT_PUBLIC_API_BASE_URL=http://localhost:5302/api` | Production static export passed | +| `C:/Users/Connor/.dotnet/dotnet.exe build JobTrackerApi/JobTrackerApi.csproj -c Release --no-restore -warnaserror` | Passed, zero warnings/errors | +| `npm.cmd run test:rate-limits -- --reporter=line` | **9 passed**; principal/IP/session partition behavior retained | +| `npm.cmd exec playwright test -- --config=playwright.ingress.config.ts --output=../.artifacts/p5-09-readiness/ingress --reporter=line` | **6 passed**; application-level proxy/host/scheme/CORS behavior, never deployed ingress proof | +| `npm.cmd run test:pdf-admission -- --output=../.artifacts/p5-09-readiness/pdf-admission --reporter=line` | **1 passed**; actual cross-route capacity and recovery retained | +| `python scripts/test-ingress.py` | 3 configuration/Compose checks passed | +| `python scripts/test-supply-chain.py` / `python scripts/test-ollama-evaluation.py` / `node browser-extension/tests/capture-url.test.mjs` | 3 / 5 / 3 passed; local fixtures, not provider certification | +| Bundled Python `scripts/verify-cv-fidelity.py .artifacts/p5-09-readiness/final` | **Exit 1: 10/16 pass, 6 fail**, same predeclared tolerances; failed readiness gate explicitly retained | +| `python scripts/supply-chain.py scan-secrets` | Passed against tracked/staged candidate; no high-confidence credential patterns found | +| `git diff --check` / `git diff --cached --check` | Working and staged checks passed | +| `python .artifacts/p4-04-check-doc-links.py` | Final repeat: 144 current/root Markdown files, zero missing local targets; archive excluded | + +Native browser environment: `DOTNET_ROOT=C:/Users/Connor/.dotnet`, `DOTNET_HOST_PATH=C:/Users/Connor/.dotnet/dotnet.exe`, `PLAYWRIGHT_STATIC_EXPORT=true`, `PLAYWRIGHT_PREBUILT_EXPORT=true`, `CV_FIDELITY_OUTPUT=../.artifacts/p5-09-readiness/final`, `PLAYWRIGHT_JSON_OUTPUT_NAME=test-results/p5-09-readiness-final.json`. The corpus uses local Chromium 151.0.7922.34; no public internet or external AI provider. + +To rerun only native readiness acquisition: `npm.cmd run test:e2e -- cv-readiness.spec.ts --reporter=line` with the same environment after Release/static builds. Then run the measurement tool at the repository root with Python containing pdfplumber, PDFium and Pillow. Here that is `C:/Users/Connor/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe -X utf8 scripts/verify-cv-fidelity.py .artifacts/p5-09-readiness/final`. Exit 1 is the current expected **failure of the prerequisite**, not a renamed passing test. A future repair must make it exit 0 without weakening the oracle. + +The initial new backend harness lacked `using Xunit`; that compile error was fixed before the deliberate before-fix stale-write failures were observed. One new unit recovery test initially raced dialog exit; it now waits for actual removal while retaining all draft/cancel/reload assertions. These fixture corrections do not hide a product regression or change the inherited cases. + +The first evidence-copy helper encountered a missing main JSON file because the subsequent rate suite had cleaned Playwright's shared `test-results` directory. The completed **96 passed / exit 0** command result remains observed, and the separate final fidelity files were preserved. Seven CV/native/keyboard cases were rerun solely to retain detailed screenshots/axe/results in an independent ignored directory, without code or assertion changes: **7/7 passed in 3.3 minutes**, zero skips, expected failures or retries. Their count is **not added** to the 96-case baseline. Exact supplemental command: `npm.cmd run test:e2e -- builder-preview-keyboard.spec.ts cv-readiness.spec.ts --output=../.artifacts/p5-09-readiness/browser-evidence --reporter=line,json`, JSON output `../.artifacts/p5-09-readiness/browser-evidence.json` and corpus output `../.artifacts/p5-09-readiness/supplemental`. + +## Decision and next boundary + +**G-CV-REV: locally satisfied**, preserving the actual lens/history/source/frozen-package distinction. **G-CV-RENDER: NOT satisfied. P5-09: NO-GO.** Do not begin P5-09–14, force long documents into one page, narrow the corpus or weaken the measured thresholds to continue. + +Recommended next instruction: authorise a separate **CV pagination-fidelity repair checkpoint** at the existing preview/print owner, starting from the failing deterministic fixtures and retaining PDF output truth. It must reproduce repeated margins/flow/page membership, extend clipping/wrapping/photo/font qualification and rerun the full baseline. If doing this correctly requires replacing the rendering subsystem or changing document semantics, stop for that architecture decision. P5-11 preview presentation and P5-12 controls remain later UI work, not substitutes for this gate. + +F04, human screen-reader acceptance, Dashboard preference-save 500, Board scaling/native touch, incomplete accessibility/manual checks and deferred `followMode` compose UI remain separate open items. P2-D01 remains closed/passing. diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/accessibility-summary.json b/docs/redesign/phase-5/p5-09-readiness/evidence/accessibility-summary.json new file mode 100644 index 0000000..9da8b9e --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/accessibility-summary.json @@ -0,0 +1,246 @@ +{ + "manualScreenReaderAcceptance": "open for P5-15", + "scope": "inherited P4-03 mounted CV/editor scans in supplemental rerun; incomplete checks are not passes", + "scans": [ + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state", + "capture": "transition-900-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 10 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state", + "capture": "transition-1024-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 16 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state", + "capture": "transition-1440-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 16 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state", + "capture": "loaded-final-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 16 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state", + "capture": "transition-900-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 10 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state", + "capture": "transition-1024-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state", + "capture": "transition-1440-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state", + "capture": "loaded-final-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state", + "capture": "transition-900-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 10 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state", + "capture": "transition-1024-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 16 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state", + "capture": "transition-1440-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 16 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state", + "capture": "loaded-final-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 15 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state", + "capture": "transition-900-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 10 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state", + "capture": "transition-1024-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state", + "capture": "transition-1440-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + }, + { + "case": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state", + "capture": "loaded-final-axe", + "violations": [], + "incomplete": [ + { + "id": "aria-prohibited-attr", + "nodes": 2 + }, + { + "id": "color-contrast", + "nodes": 17 + } + ] + } + ] +} diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/before-default-modern.png b/docs/redesign/phase-5/p5-09-readiness/evidence/before-default-modern.png new file mode 100644 index 0000000..169b5a6 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/before-default-modern.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/before-measured-summary.json b/docs/redesign/phase-5/p5-09-readiness/evidence/before-measured-summary.json new file mode 100644 index 0000000..f424862 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/before-measured-summary.json @@ -0,0 +1,2801 @@ +{ + "tolerances": { + "pageDimensionMm": 0.5, + "positionMm": 2, + "fontPt": 0.5, + "pageCountAndMembership": "exact" + }, + "browserVersion": "151.0.7922.34", + "passed": 0, + "total": 16, + "fixtures": [ + { + "fixture": "default-modern", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 43 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 33 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=7.42mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=8.74mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=9.66mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=9.97mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=11.29mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=12.92mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=13.54mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 7.416873120244316, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 8.739491281717878, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.66372454315925, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.970434401996867, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.293052563470429, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 12.922380583781608, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 13.539903986385323, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-minimal", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 44 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 34 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=8.04mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=9.36mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=10.29mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=10.59mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=11.91mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=13.54mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=14.16mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.043121988795129, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.362300126391702, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.286533387833073, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.593243246670692, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.912421384267265, + "fontDeltaPt": 0.6535456113103848 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.538309380701497, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.15583278330521, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-executive", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 46 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 36 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=8.23mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=9.56mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=10.49mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=10.79mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=12.13mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=13.78mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=14.39mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+Georgia-Bold", + "BAAAAA+Georgia", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.225044976169974, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.562841844218994, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.487075105660326, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.793784964497982, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 12.131581832546985, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.776088559433623, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.393611962037356, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-technical", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 46 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 36 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=12.24mm", + "R01: font-size delta 0.62pt", + "E01: position delta x=9.79mm y=13.58mm", + "E01: font-size delta 0.62pt", + "B01: position delta x=9.10mm y=14.17mm", + "B01: font-size delta 0.62pt", + "B02: position delta x=9.10mm y=14.52mm", + "B02: font-size delta 0.62pt", + "E02: position delta x=9.79mm y=15.87mm", + "E02: font-size delta 0.62pt", + "P01: position delta x=9.79mm y=17.31mm", + "P01: font-size delta 0.62pt", + "B03: position delta x=9.10mm y=17.80mm", + "B03: font-size delta 0.62pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.241456415020334, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.584714719755688, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.172002427827945, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.5227993656695, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 15.866057670404851, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 17.312760128688126, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.796603683212442, + "fontDeltaPt": 0.6233712056121092 + } + ] + }, + { + "fixture": "default-ats-classic", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 47 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 37 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=8.06mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=9.38mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=10.30mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=10.61mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=11.93mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=13.56mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=14.18mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.057606604664244, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.380224766137806, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.304458027579136, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.611167886416753, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.933786047890317, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.563114068201497, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.180637470805209, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-nordic", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 52 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 33 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=5.99mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=7.31mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=8.23mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=8.54mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=9.86mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=11.49mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=12.11mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 5.987401211000761, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 7.310019372474283, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.234252633915654, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.540962492753271, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.863580654226833, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.492908674538034, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.110432077141747, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-elegant", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 49 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 34 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=7.77mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=9.37mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=10.29mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=10.60mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=11.95mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=13.85mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=14.22mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+SegoeUI", + "BAAAAA+Georgia-Bold", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 7.770476850566226, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.366671094900987, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.29090435634236, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.597614215179977, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.946455675221143, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.849359778393563, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.21953039670366, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-creative", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 45 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 35 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=11.87mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=13.17mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=14.10mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=14.40mm", + "B02: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=15.46mm", + "E02: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=17.08mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=17.70mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 11.865100705657495, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.173234251261944, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.097467512703295, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.404177371540912, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 15.464958132851745, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 17.07980153729381, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.697324939897523, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "default-code", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 41 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 31 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=6.30mm", + "R01: font-size delta 0.61pt", + "E01: position delta x=9.79mm y=7.65mm", + "E01: font-size delta 0.61pt", + "B01: position delta x=9.10mm y=8.57mm", + "B01: font-size delta 0.61pt", + "B02: position delta x=9.10mm y=8.85mm", + "B02: font-size delta 0.61pt", + "E02: position delta x=9.79mm y=9.96mm", + "E02: font-size delta 0.61pt", + "P01: position delta x=9.79mm y=11.59mm", + "P01: font-size delta 0.61pt", + "B03: position delta x=9.10mm y=11.98mm", + "B03: font-size delta 0.61pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 6.298495481156101, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 7.6493279243517565, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.56734479909068, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.852689994305285, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.956169653207287, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.592347291617527, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 11.977666186848229, + "fontDeltaPt": 0.6144717505699369 + } + ] + }, + { + "fixture": "long-en-minimal", + "pass": false, + "failures": [ + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 44 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 49 glyphs outside vertical safe area", + "page 3: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 3: 137 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=8.04mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=9.36mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=10.29mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=11.51mm", + "B02: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=12.74mm", + "B03: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=16.37mm", + "E02: font-size delta 0.65pt", + "B04: position delta x=9.10mm y=17.29mm", + "B04: font-size delta 0.65pt", + "B05: position delta x=9.10mm y=18.52mm", + "B05: font-size delta 0.65pt", + "B06: position delta x=9.10mm y=19.74mm", + "B06: font-size delta 0.65pt", + "E03: position delta x=9.79mm y=23.37mm", + "E03: font-size delta 0.65pt", + "B07: position delta x=9.10mm y=17.69mm", + "B07: font-size delta 0.65pt", + "B08: position delta x=9.10mm y=16.46mm", + "B08: font-size delta 0.65pt", + "B09: position delta x=9.10mm y=15.23mm", + "B09: font-size delta 0.65pt", + "E04: position delta x=9.79mm y=11.61mm", + "E04: font-size delta 0.65pt", + "B10: position delta x=9.10mm y=10.68mm", + "B10: font-size delta 0.65pt", + "B11: position delta x=9.10mm y=9.46mm", + "B11: font-size delta 0.65pt", + "B12: position delta x=9.10mm y=8.23mm", + "B12: font-size delta 0.65pt", + "E05: position delta x=9.79mm y=4.60mm", + "E05: font-size delta 0.65pt", + "B13: position delta x=9.10mm y=3.68mm", + "B13: font-size delta 0.65pt", + "B14: position delta x=9.10mm y=2.45mm", + "B14: font-size delta 0.65pt", + "B15: position delta x=9.10mm y=1.23mm", + "B15: font-size delta 0.65pt", + "E06: position delta x=9.79mm y=39.58mm", + "E06: font-size delta 0.65pt", + "B16: position delta x=9.10mm y=38.66mm", + "B16: font-size delta 0.65pt", + "B17: position delta x=9.10mm y=37.43mm", + "B17: font-size delta 0.65pt", + "B18: position delta x=9.10mm y=35.96mm", + "B18: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=31.63mm", + "E02: font-size delta 0.65pt", + "E08: position delta x=9.79mm y=31.01mm", + "E08: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=29.39mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=28.77mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 3, + "pdfPages": 3, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.043121988795129, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.362300126391702, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.286533387833073, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 11.513372823183584, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.740212258534095, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 16.365477174970124, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.28971043641147, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 18.516549871761985, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 19.743389307112494, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 23.368654223548543, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.686365238275133, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 16.459525802924585, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 15.232686367574072, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.607421451138064, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.683188189696693, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.456348754346223, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.229509318995673, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 4.604244402559606, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 3.6800111411182743, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 2.453171705767804, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 1.226332270417253, + "fontDeltaPt": 0.6535456113103209 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 39.58032854391248, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 38.656095282471064, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 37.429255847120594, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 35.95506362747643, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 31.62814397604756, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 31.014724258372325, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 29.388836261938096, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 28.77131285933434, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "long-nb-code", + "pass": false, + "failures": [ + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 41 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 145 glyphs outside vertical safe area", + "page 3: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 3: 145 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=6.30mm", + "R01: font-size delta 0.61pt", + "E01: position delta x=9.79mm y=7.65mm", + "E01: font-size delta 0.61pt", + "B01: position delta x=9.10mm y=8.57mm", + "B01: font-size delta 0.61pt", + "B02: position delta x=9.10mm y=9.71mm", + "B02: font-size delta 0.61pt", + "B03: position delta x=9.10mm y=10.85mm", + "B03: font-size delta 0.61pt", + "E02: position delta x=9.79mm y=14.01mm", + "E02: font-size delta 0.61pt", + "B04: position delta x=9.10mm y=14.68mm", + "B04: font-size delta 0.61pt", + "B05: position delta x=9.10mm y=16.07mm", + "B05: font-size delta 0.61pt", + "B06: position delta x=9.10mm y=17.21mm", + "B06: font-size delta 0.61pt", + "E03: position delta x=9.79mm y=20.13mm", + "E03: font-size delta 0.61pt", + "B07: position delta x=9.10mm y=21.05mm", + "B07: font-size delta 0.61pt", + "B08: preview page 1, PDF page 2", + "B08: font-size delta 0.61pt", + "B09: position delta x=9.10mm y=15.43mm", + "B09: font-size delta 0.61pt", + "E04: position delta x=9.79mm y=12.27mm", + "E04: font-size delta 0.61pt", + "B10: position delta x=9.10mm y=11.60mm", + "B10: font-size delta 0.61pt", + "B11: position delta x=9.10mm y=10.21mm", + "B11: font-size delta 0.61pt", + "B12: position delta x=9.10mm y=9.07mm", + "B12: font-size delta 0.61pt", + "E05: position delta x=9.79mm y=6.15mm", + "E05: font-size delta 0.61pt", + "B13: position delta x=9.10mm y=5.24mm", + "B13: font-size delta 0.61pt", + "B14: position delta x=9.10mm y=4.10mm", + "B14: font-size delta 0.61pt", + "B15: position delta x=9.10mm y=2.71mm", + "B15: font-size delta 0.61pt", + "E06: position delta x=9.79mm y=0.21mm", + "E06: font-size delta 0.61pt", + "B16: preview page 2, PDF page 3", + "B16: font-size delta 0.61pt", + "B17: preview page 2, PDF page 3", + "B17: font-size delta 0.61pt", + "B18: position delta x=9.10mm y=40.05mm", + "B18: font-size delta 0.61pt", + "E02: position delta x=9.79mm y=36.42mm", + "E02: font-size delta 0.61pt", + "E08: position delta x=9.79mm y=35.85mm", + "E08: font-size delta 0.61pt", + "P01: position delta x=9.79mm y=34.21mm", + "P01: font-size delta 0.61pt", + "B03: position delta x=9.10mm y=33.83mm", + "B03: font-size delta 0.61pt" + ], + "previewPages": 3, + "pdfPages": 3, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 6.298495481156101, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 7.6493279243517565, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.56734479909068, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.708725579949064, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.85010636080745, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 14.012892386342171, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.683556476787459, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 16.07229004193948, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.213670822797845, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 20.12910406403893, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B07", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 21.047120938777855, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B08", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 280.42483519218854, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 15.433784026953106, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 12.270998001418404, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 11.600333910973095, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.211600345821095, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.07021956496267, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 6.154786323721584, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 5.236769448982661, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 4.095388668124296, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 2.706655102972256, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "E06", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 0.2087781382688307, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B16", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 254.41606433302113, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B17", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 255.55744511387945, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 40.05382132096852, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 36.42022731605609, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 35.84953692562688, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 34.2133592872167, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 33.828040391986, + "fontDeltaPt": 0.6144717505699369 + } + ] + }, + { + "fixture": "compact-8mm-letter", + "pass": false, + "failures": [ + "page 1: 110 glyphs outside vertical safe area", + "page 2: 110 glyphs outside vertical safe area", + "page 3: 110 glyphs outside vertical safe area", + "R01: position delta x=8.83mm y=0.93mm", + "R01: font-size delta 0.91pt", + "E01: position delta x=9.79mm y=2.48mm", + "E01: font-size delta 0.91pt", + "B01: position delta x=8.83mm y=3.75mm", + "B01: font-size delta 0.91pt", + "B02: position delta x=8.83mm y=5.49mm", + "B02: font-size delta 0.91pt", + "B03: position delta x=8.83mm y=7.48mm", + "B03: font-size delta 0.91pt", + "E02: position delta x=9.79mm y=11.79mm", + "E02: font-size delta 0.91pt", + "B04: position delta x=8.83mm y=13.06mm", + "B04: font-size delta 0.91pt", + "B05: position delta x=8.83mm y=14.80mm", + "B05: font-size delta 0.91pt", + "B06: position delta x=8.83mm y=16.54mm", + "B06: font-size delta 0.91pt", + "E03: position delta x=9.79mm y=21.10mm", + "E03: font-size delta 0.91pt", + "B07: position delta x=8.83mm y=22.37mm", + "B07: font-size delta 0.91pt", + "B08: position delta x=8.83mm y=1.71mm", + "B08: font-size delta 0.91pt", + "B09: position delta x=8.83mm y=0.03mm", + "B09: font-size delta 0.91pt", + "E04: position delta x=9.79mm y=4.59mm", + "E04: font-size delta 0.91pt", + "B10: position delta x=8.83mm y=5.86mm", + "B10: font-size delta 0.91pt", + "B11: position delta x=8.83mm y=7.60mm", + "B11: font-size delta 0.91pt", + "B12: position delta x=8.83mm y=9.34mm", + "B12: font-size delta 0.91pt", + "E05: position delta x=9.79mm y=13.89mm", + "E05: font-size delta 0.91pt", + "B13: position delta x=8.83mm y=14.92mm", + "B13: font-size delta 0.91pt", + "B14: position delta x=8.83mm y=16.90mm", + "B14: font-size delta 0.91pt", + "B15: position delta x=8.83mm y=18.65mm", + "B15: font-size delta 0.91pt", + "E06: position delta x=9.79mm y=0.99mm", + "E06: font-size delta 0.91pt", + "B16: position delta x=8.83mm y=2.26mm", + "B16: font-size delta 0.91pt", + "B17: position delta x=8.83mm y=4.00mm", + "B17: font-size delta 0.91pt", + "B18: position delta x=8.83mm y=5.74mm", + "B18: font-size delta 0.91pt", + "E02: position delta x=9.79mm y=11.02mm", + "E02: font-size delta 0.91pt", + "E08: position delta x=9.79mm y=11.89mm", + "E08: font-size delta 0.91pt", + "P01: position delta x=9.79mm y=14.01mm", + "P01: font-size delta 0.91pt", + "B03: position delta x=8.83mm y=14.60mm", + "B03: font-size delta 0.91pt" + ], + "previewPages": 3, + "pdfPages": 3, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 0.9339400631669488, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 2.4844779505207115, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 3.7536524685895194, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 5.494522011855448, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 7.475980785363458, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.79167700414763, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 13.060851522216439, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 14.801721065482367, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 16.542590608748295, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 21.09887605777459, + "fontDeltaPt": 0.9091120911445003 + }, + { + "token": "B07", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.829818801785292, + "deltaYmm": 22.368050575843395, + "fontDeltaPt": 0.9091120911445003 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 1.7100325603681283, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 0.030836982897800326, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 4.587122431924094, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 5.856296949992902, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 7.59716649325881, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 9.338036036524699, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.894321485550993, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 14.922906773377719, + "fontDeltaPt": 0.9091120911445145 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 16.90436554688575, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.829818801785292, + "deltaYmm": 18.64523509015172, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 0.9914063133321885, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.829818801785292, + "deltaYmm": 2.2605808314010365, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.829818801785292, + "deltaYmm": 4.001450374666925, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.829818801785292, + "deltaYmm": 5.742319917932893, + "fontDeltaPt": 0.9091120911444293 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.015186122060594, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.885620893693538, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 14.007720755574358, + "fontDeltaPt": 0.9091120911444861 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.829818801785292, + "deltaYmm": 14.601088657584512, + "fontDeltaPt": 0.9091120911444861 + } + ] + }, + { + "fixture": "roomy-28mm-nb", + "pass": false, + "failures": [ + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 247 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 415 glyphs outside vertical safe area", + "page 3: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 3: 521 glyphs outside vertical safe area", + "page 4: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 4: 161 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=19.64mm", + "R01: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=21.07mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=22.03mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=23.56mm", + "B02: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=25.09mm", + "B03: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=28.41mm", + "E02: font-size delta 0.65pt", + "B04: position delta x=9.10mm y=29.36mm", + "B04: font-size delta 0.65pt", + "B05: position delta x=9.10mm y=30.89mm", + "B05: font-size delta 0.65pt", + "B06: position delta x=9.10mm y=32.42mm", + "B06: font-size delta 0.65pt", + "E03: position delta x=9.79mm y=6.48mm", + "E03: font-size delta 0.65pt", + "B07: position delta x=9.10mm y=5.53mm", + "B07: font-size delta 0.65pt", + "B08: position delta x=9.10mm y=4.00mm", + "B08: font-size delta 0.65pt", + "B09: position delta x=9.10mm y=2.47mm", + "B09: font-size delta 0.65pt", + "E04: position delta x=9.79mm y=0.85mm", + "E04: font-size delta 0.65pt", + "B10: position delta x=9.10mm y=1.81mm", + "B10: font-size delta 0.65pt", + "B11: position delta x=9.10mm y=3.34mm", + "B11: font-size delta 0.65pt", + "B12: position delta x=9.10mm y=4.87mm", + "B12: font-size delta 0.65pt", + "E05: position delta x=9.79mm y=8.44mm", + "E05: font-size delta 0.65pt", + "B13: position delta x=9.10mm y=9.39mm", + "B13: font-size delta 0.65pt", + "B14: preview page 2, PDF page 3", + "B14: font-size delta 0.65pt", + "B15: position delta x=9.10mm y=32.99mm", + "B15: font-size delta 0.65pt", + "E06: position delta x=9.79mm y=29.42mm", + "E06: font-size delta 0.65pt", + "B16: position delta x=9.10mm y=28.47mm", + "B16: font-size delta 0.65pt", + "B17: position delta x=9.10mm y=26.94mm", + "B17: font-size delta 0.65pt", + "B18: position delta x=9.10mm y=25.41mm", + "B18: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=21.16mm", + "E02: font-size delta 0.65pt", + "E08: position delta x=9.79mm y=20.27mm", + "E08: font-size delta 0.65pt", + "P01: position delta x=9.79mm y=18.39mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=17.88mm", + "B03: font-size delta 0.65pt" + ], + "previewPages": 4, + "pdfPages": 4, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 19.63942853035162, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 21.073034554178545, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 22.025542956651723, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 23.556285458359554, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 25.08702796006737, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 28.40914476016219, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 29.361653162635363, + "fontDeltaPt": 0.6535456113102995 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 30.892395664343177, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 32.42313816605099, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E03", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 6.481350541412831, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 5.528842138939656, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 3.9980996372318423, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 2.4673571355240287, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 0.8547596645707913, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 1.8072680670440464, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 3.33801056875182, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 4.8687530704596735, + "fontDeltaPt": 0.6535456113102995 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 8.43822265484805, + "fontDeltaPt": 0.6535456113103137 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.390731057321304, + "fontDeltaPt": 0.6535456113103137 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 262.47927338898705, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B15", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 32.98998410930519, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 29.420514524916737, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 28.46800612244354, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 26.93726362073569, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 25.406521119027914, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 21.158782876079073, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 20.26973523307822, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 18.391605387751024, + "fontDeltaPt": 0.6535456113103137 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.883620806778197, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "grid-and-bubbles", + "pass": false, + "failures": [ + "page count: preview 1, PDF 2", + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 44 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 34 glyphs outside vertical safe area", + "P01: position delta x=9.79mm y=7.86mm", + "P01: font-size delta 0.65pt", + "B03: position delta x=9.10mm y=8.47mm", + "B03: font-size delta 0.65pt", + "E01: position delta x=9.79mm y=11.36mm", + "E01: font-size delta 0.65pt", + "B01: position delta x=9.10mm y=12.29mm", + "B01: font-size delta 0.65pt", + "B02: position delta x=9.10mm y=12.59mm", + "B02: font-size delta 0.65pt", + "R01: position delta x=9.10mm y=14.10mm", + "R01: font-size delta 0.65pt", + "E02: position delta x=9.79mm y=15.42mm", + "E02: font-size delta 0.65pt" + ], + "previewPages": 1, + "pdfPages": 2, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 7.855004560426055, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.472527963029767, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 11.36246242606451, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.28669568750584, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.593405546343478, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.100701112309146, + "fontDeltaPt": 0.653545611310328 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 15.41987924990574, + "fontDeltaPt": 0.653545611310328 + } + ] + }, + { + "fixture": "long-sidebar-nb", + "pass": false, + "failures": [ + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 46 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 276 glyphs outside vertical safe area", + "page 3: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 3: 267 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=12.01mm", + "R01: font-size delta 0.62pt", + "E01: position delta x=9.79mm y=13.36mm", + "E01: font-size delta 0.62pt", + "B01: position delta x=9.10mm y=14.19mm", + "B01: font-size delta 0.62pt", + "B02: position delta x=9.10mm y=15.35mm", + "B02: font-size delta 0.62pt", + "B03: position delta x=9.10mm y=16.50mm", + "B03: font-size delta 0.62pt", + "E02: position delta x=9.79mm y=19.30mm", + "E02: font-size delta 0.62pt", + "B04: position delta x=9.10mm y=20.13mm", + "B04: font-size delta 0.62pt", + "B05: position delta x=9.10mm y=21.54mm", + "B05: font-size delta 0.62pt", + "B06: position delta x=9.10mm y=22.69mm", + "B06: font-size delta 0.62pt", + "E03: position delta x=9.79mm y=15.75mm", + "E03: font-size delta 0.62pt", + "B07: position delta x=9.10mm y=14.91mm", + "B07: font-size delta 0.62pt", + "B08: position delta x=9.10mm y=13.76mm", + "B08: font-size delta 0.62pt", + "B09: position delta x=9.10mm y=12.60mm", + "B09: font-size delta 0.62pt", + "E04: position delta x=9.79mm y=9.56mm", + "E04: font-size delta 0.62pt", + "B10: position delta x=9.10mm y=8.73mm", + "B10: font-size delta 0.62pt", + "B11: position delta x=9.10mm y=7.57mm", + "B11: font-size delta 0.62pt", + "B12: position delta x=9.10mm y=6.41mm", + "B12: font-size delta 0.62pt", + "E05: position delta x=9.79mm y=3.62mm", + "E05: font-size delta 0.62pt", + "B13: position delta x=9.10mm y=2.78mm", + "B13: font-size delta 0.62pt", + "B14: position delta x=9.10mm y=1.63mm", + "B14: font-size delta 0.62pt", + "B15: position delta x=9.10mm y=0.47mm", + "B15: font-size delta 0.62pt", + "E06: position delta x=9.79mm y=37.18mm", + "E06: font-size delta 0.62pt", + "B16: position delta x=9.10mm y=36.35mm", + "B16: font-size delta 0.62pt", + "B17: position delta x=9.10mm y=35.19mm", + "B17: font-size delta 0.62pt", + "B18: position delta x=9.10mm y=34.04mm", + "B18: font-size delta 0.62pt", + "E02: position delta x=9.79mm y=30.38mm", + "E02: font-size delta 0.62pt", + "E08: position delta x=9.79mm y=29.68mm", + "E08: font-size delta 0.62pt", + "P01: position delta x=9.79mm y=28.23mm", + "P01: font-size delta 0.62pt", + "B03: position delta x=9.10mm y=27.75mm", + "B03: font-size delta 0.62pt" + ], + "previewPages": 3, + "pdfPages": 3, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.01335559257576, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 13.356613897311114, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.191254389677006, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 15.34708935674963, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 16.50292432382223, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 19.298437812491777, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 20.133078304857648, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 21.536266056223948, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 22.692101023296594, + "fontDeltaPt": 0.623371205612095 + }, + { + "token": "E03", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 15.749579858417965, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.914939366052053, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 13.75910439897945, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 12.603269431906845, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 9.560403158943645, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.725762666577774, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 7.569927699505169, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 6.414092732432565, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 3.618579243762921, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 2.783938751397049, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 1.6281037843244455, + "fontDeltaPt": 0.623371205612095 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 0.47226881725184167, + "fontDeltaPt": 0.623371205612095 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 37.18248867557712, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 36.34784818321125, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 35.19201321613864, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 34.03617824906604, + "fontDeltaPt": 0.6233712056120524 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 30.381250010185475, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 29.679656134502366, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 28.232953676219054, + "fontDeltaPt": 0.6233712056121092 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 27.749110121694738, + "fontDeltaPt": 0.6233712056121092 + } + ] + }, + { + "fixture": "unbreakable-and-boundary", + "pass": false, + "failures": [ + "page 1: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 1: 41 glyphs outside vertical safe area", + "page 2: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 2: 143 glyphs outside vertical safe area", + "page 3: unexpected physical dimensions [215.89999999999998, 279.4]", + "page 3: 143 glyphs outside vertical safe area", + "R01: position delta x=9.10mm y=6.30mm", + "R01: font-size delta 0.61pt", + "E01: position delta x=9.79mm y=7.65mm", + "E01: font-size delta 0.61pt", + "B01: position delta x=9.10mm y=8.57mm", + "B01: font-size delta 0.61pt", + "B02: position delta x=9.10mm y=9.71mm", + "B02: font-size delta 0.61pt", + "B03: position delta x=9.10mm y=10.85mm", + "B03: font-size delta 0.61pt", + "E02: position delta x=9.79mm y=14.01mm", + "E02: font-size delta 0.61pt", + "B04: position delta x=9.10mm y=14.68mm", + "B04: font-size delta 0.61pt", + "B05: position delta x=9.10mm y=16.07mm", + "B05: font-size delta 0.61pt", + "B06: position delta x=9.10mm y=17.21mm", + "B06: font-size delta 0.61pt", + "E03: position delta x=9.79mm y=20.13mm", + "E03: font-size delta 0.61pt", + "B07: position delta x=9.10mm y=21.05mm", + "B07: font-size delta 0.61pt", + "B08: preview page 1, PDF page 2", + "B08: font-size delta 0.61pt", + "B09: position delta x=9.10mm y=15.43mm", + "B09: font-size delta 0.61pt", + "E04: position delta x=9.79mm y=12.27mm", + "E04: font-size delta 0.61pt", + "B10: position delta x=9.10mm y=11.60mm", + "B10: font-size delta 0.61pt", + "B11: position delta x=9.10mm y=10.21mm", + "B11: font-size delta 0.61pt", + "B12: position delta x=9.10mm y=9.07mm", + "B12: font-size delta 0.61pt", + "E05: position delta x=9.79mm y=6.15mm", + "E05: font-size delta 0.61pt", + "B13: position delta x=9.10mm y=5.24mm", + "B13: font-size delta 0.61pt", + "B14: position delta x=9.10mm y=4.10mm", + "B14: font-size delta 0.61pt", + "B15: position delta x=9.10mm y=2.71mm", + "B15: font-size delta 0.61pt", + "E06: position delta x=9.79mm y=0.21mm", + "E06: font-size delta 0.61pt", + "B16: preview page 2, PDF page 3", + "B16: font-size delta 0.61pt", + "B17: preview page 2, PDF page 3", + "B17: font-size delta 0.61pt", + "B18: position delta x=9.10mm y=40.05mm", + "B18: font-size delta 0.61pt", + "E02: position delta x=9.79mm y=36.42mm", + "E02: font-size delta 0.61pt", + "E08: position delta x=9.79mm y=35.85mm", + "E08: font-size delta 0.61pt", + "P01: position delta x=9.79mm y=34.21mm", + "P01: font-size delta 0.61pt", + "B03: position delta x=9.10mm y=33.83mm", + "B03: font-size delta 0.61pt", + "S09: position delta x=9.79mm y=29.46mm", + "S09: font-size delta 0.53pt", + "R09: position delta x=9.79mm y=28.99mm", + "R09: font-size delta 0.61pt", + "R10: position delta x=9.79mm y=26.36mm", + "R10: font-size delta 0.61pt" + ], + "previewPages": 3, + "pdfPages": 3, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 6.298495481156101, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 7.6493279243517565, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 8.56734479909068, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.708725579949064, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.85010636080745, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 14.012892386342171, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 14.683556476787459, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 16.07229004193948, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 17.213670822797845, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.789582925434027, + "deltaYmm": 20.12910406403893, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B07", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 9.100360963846036, + "deltaYmm": 21.047120938777855, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B08", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 280.42483519218854, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 15.433784026953106, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 12.270998001418404, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 11.600333910973095, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 10.211600345821095, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 9.07021956496267, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 6.154786323721584, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 5.236769448982661, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 4.095388668124296, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.100360963846036, + "deltaYmm": 2.706655102972256, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "E06", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 9.789582925434027, + "deltaYmm": 0.2087781382688307, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "B16", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 254.41606433302113, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B17", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 255.55744511387945, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 40.05382132096852, + "fontDeltaPt": 0.61447175056988 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 36.42022731605609, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 35.84953692562688, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 34.2133592872167, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.100360963846036, + "deltaYmm": 33.828040391986, + "fontDeltaPt": 0.6144717505699369 + }, + { + "token": "S09", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 29.458631701783297, + "fontDeltaPt": 0.5285083875056777 + }, + { + "token": "R09", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 28.98767472289791, + "fontDeltaPt": 0.6144717505699084 + }, + { + "token": "R10", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 9.789582925434027, + "deltaYmm": 26.35758667687151, + "fontDeltaPt": 0.6144717505699084 + } + ] + } + ] +} diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/conflict-draft-retained.png b/docs/redesign/phase-5/p5-09-readiness/evidence/conflict-draft-retained.png new file mode 100644 index 0000000..56d0aae Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/conflict-draft-retained.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-1.png new file mode 100644 index 0000000..f3a6a34 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-2.png new file mode 100644 index 0000000..5403537 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-3.png new file mode 100644 index 0000000..94d60d8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/export.pdf new file mode 100644 index 0000000..a041b3f Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-1.png new file mode 100644 index 0000000..1dee157 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-2.png new file mode 100644 index 0000000..ab05d24 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-3.png new file mode 100644 index 0000000..98aa4a0 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-4.png new file mode 100644 index 0000000..3007646 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-1.png new file mode 100644 index 0000000..22a67d8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-2.png new file mode 100644 index 0000000..afcaa47 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-3.png new file mode 100644 index 0000000..8154c40 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/render.html new file mode 100644 index 0000000..f6d7cc8 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/compact-8mm-letter/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — ATS Classic + + + +

Åse Fixture

Platform engineer with experience in accessible and reliable application workflows
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Workflow and integration engineer
Nordlys Fixture 1
  • B01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E02 Workflow and integration engineer
Nordlys Fixture 2
  • B04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E03 Workflow and integration engineer
Nordlys Fixture 3
  • B07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E04 Workflow and integration engineer
Nordlys Fixture 4
  • B10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E05 Workflow and integration engineer
Nordlys Fixture 5
  • B13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E06 Workflow and integration engineer
Nordlys Fixture 6
  • B16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.

Education

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/comparison-1.png new file mode 100644 index 0000000..bba0274 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/export.pdf new file mode 100644 index 0000000..865815a Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/pdf-1.png new file mode 100644 index 0000000..a79b1f4 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/preview-1.png new file mode 100644 index 0000000..e018fdc Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/render.html new file mode 100644 index 0000000..386b61b --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-ats-classic/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — ATS Classic + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/comparison-1.png new file mode 100644 index 0000000..543b8b5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/export.pdf new file mode 100644 index 0000000..65c7b72 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/pdf-1.png new file mode 100644 index 0000000..5892e6e Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/preview-1.png new file mode 100644 index 0000000..ddb9dfa Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/render.html new file mode 100644 index 0000000..f8ce97a --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-code/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Code + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/comparison-1.png new file mode 100644 index 0000000..00ee553 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/export.pdf new file mode 100644 index 0000000..2ed3eff Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/pdf-1.png new file mode 100644 index 0000000..e1665de Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/preview-1.png new file mode 100644 index 0000000..2904aa9 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/render.html new file mode 100644 index 0000000..b92de11 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-creative/render.html @@ -0,0 +1,98 @@ + + + + +Åse Fixture — Creative + + + +

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/comparison-1.png new file mode 100644 index 0000000..15aa24c Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/export.pdf new file mode 100644 index 0000000..a006bd8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/pdf-1.png new file mode 100644 index 0000000..acc4a9a Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/preview-1.png new file mode 100644 index 0000000..8e8ad9b Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/render.html new file mode 100644 index 0000000..4f91baa --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-elegant/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Elegant + + + +
Curriculum Vitae

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/comparison-1.png new file mode 100644 index 0000000..6904de1 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/export.pdf new file mode 100644 index 0000000..12354ff Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/pdf-1.png new file mode 100644 index 0000000..61b3c07 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/preview-1.png new file mode 100644 index 0000000..3754a91 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/render.html new file mode 100644 index 0000000..a931d10 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-executive/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Executive + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

C# · React · Norsk · Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/comparison-1.png new file mode 100644 index 0000000..40d4464 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/export.pdf new file mode 100644 index 0000000..0137360 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/pdf-1.png new file mode 100644 index 0000000..2aff99e Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/preview-1.png new file mode 100644 index 0000000..9c993bc Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/render.html new file mode 100644 index 0000000..3772831 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-minimal/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Minimal + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

C# · React · Norsk · Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/comparison-1.png new file mode 100644 index 0000000..bce49a7 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/export.pdf new file mode 100644 index 0000000..c183c6e Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/pdf-1.png new file mode 100644 index 0000000..559ecb0 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/preview-1.png new file mode 100644 index 0000000..ee9fd10 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/render.html new file mode 100644 index 0000000..c465b8a --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-modern/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Modern + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/comparison-1.png new file mode 100644 index 0000000..2b22759 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/export.pdf new file mode 100644 index 0000000..1af95bb Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/pdf-1.png new file mode 100644 index 0000000..ac99466 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/preview-1.png new file mode 100644 index 0000000..04a0a99 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/render.html new file mode 100644 index 0000000..e232ffd --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-nordic/render.html @@ -0,0 +1,98 @@ + + + + +Åse Fixture — Nordic + + + +

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/comparison-1.png new file mode 100644 index 0000000..9bacbbe Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/export.pdf new file mode 100644 index 0000000..73872a8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/pdf-1.png new file mode 100644 index 0000000..29e7f79 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/preview-1.png new file mode 100644 index 0000000..8ce7c70 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/render.html new file mode 100644 index 0000000..ce4e706 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/default-technical/render.html @@ -0,0 +1,98 @@ + + + + +Åse Fixture — Technical + + + +

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Education

E02 Computer science
Fixture University

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/fidelity-results.json b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/fidelity-results.json new file mode 100644 index 0000000..8641a99 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/fidelity-results.json @@ -0,0 +1,3124 @@ +{ + "tolerances": { + "pageDimensionMm": 0.5, + "positionMm": 2, + "fontPt": 0.5, + "rgbComponent": 0.00392156862745098, + "pageCountAndMembership": "exact" + }, + "browserVersion": "151.0.7922.34", + "passed": 10, + "total": 16, + "fixtures": [ + { + "fixture": "default-modern", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.8846697945210119, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.1543915080462135, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.9466801572814106, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.9549481108404655, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.224669824365667, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.1419864412927418, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.9218730223856111, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC# React Norsk Accessibility\nLANGUAGES\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 50.27343534527347, + 404.4988765624195, + 549.1329995190109 + ] + } + ] + }, + { + "fixture": "default-minimal", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.23840431700673748, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.2504673297077049, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3210852416595337, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.32935319521854844, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.34141620791947574, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.27940338673890797, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3376192305484088, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC# · React · Norsk · Accessibility\nLanguages\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.08593547808607, + 412.1041846030788, + 548.0121011340744 + ] + } + ] + }, + { + "fixture": "default-executive", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+Georgia-Bold", + "BAAAAA+Georgia" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.18982195911552188, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.23753521760940605, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.30557576736205694, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.31384372092107166, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.3615569794149959, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.33261704182818697, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3882555234384297, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.921568627450467e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC# · React · Norsk · Accessibility\nLanguages\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.919431563356966, + 404.3816489774241, + 563.8316439427281 + ] + } + ] + }, + { + "fixture": "default-technical", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.13833163839396054, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 0.2103210530847756, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.15073253795992514, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.02257454490438072, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 0.15244175117508024, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 0.15657485152232006, + "fontDeltaPt": 4.3750003442255547e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.10145089901922782, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Professional Summary\nFixture R01 Builds reliable and accessible career software using documented\nevidence.\nCareer platform\nengineer\nProfessional Experience\nE01 Platform engineer\nase@example.tes\nt Nordlys Fixture AS\nOslo, Norge B01 Delivered accessible application workflows with documented\noutcomes.\nSkills B02 Maintained reliable APIs and verified releases.\nC#\nEducation\nReact\nE02 Computer science\nNorsk\nFixture University\nAccessibility\nProjects\nLanguages\nP01 Evidence workspace\nNorsk — Native B03 Created a source-grounded review workflow.", + "glyphBoundsPt": [ + 45.35156061035156, + 46.45019332457525, + 526.7734687109811, + 344.76210960282447 + ] + } + ] + }, + { + "fixture": "default-ats-classic", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.21773375511438012, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.20912620592295006, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.2797441178747789, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.28801207143383367, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.27940452224240364, + "fontDeltaPt": 0.005025608125045267, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.19672113916945838, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.2549369829789592, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.08593547808607, + 412.1041846030788, + 600.5120989465744 + ] + } + ] + }, + { + "fixture": "default-nordic", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.7110382057189417, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.0014302826990138, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.793718931934211, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.822657248948096, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.0923789624732976, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.0096955794003926, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.7895821604932417, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "PROFESSIONAL SUMMARY Åse\nR01 Builds reliable and accessible career software using documented Fixture\nevidence.\nCareer platform\nengineer\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer ase@example.tes\nt\nNordlys Fixture AS\nOslo, Norge\nB01 Delivered accessible application workflows with documented\noutcomes.\nSKILLS\nB02 Maintained reliable APIs and verified releases.\nC# React\nEDUCATION\nNorsk\nE02 Computer science\nFixture University Accessibility\nPROJECTS LANGUAGES\nP01 Evidence workspace Norsk — Native\nB03 Created a source-grounded review workflow.", + "glyphBoundsPt": [ + 45.35156061035156, + 48.609958661877954, + 549.9178689110568, + 371.50912266022937 + ] + } + ] + }, + { + "fixture": "default-elegant", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+SegoeUI", + "BAAAAA+Georgia-Bold", + "CAAAAA+SegoeUI-Bold" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 1.0541681506842109, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.1709275474559542, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.9632161966911514, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.9714841502501661, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.0882435470219096, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 1.1171811695045502, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 3.1372549019609286e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.8970677505974194, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 3.1372549019609286e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "CURRICULUM VITAE\nÅse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC# React Norsk Accessibility\nLanguages\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.632322215319846, + 404.4988765624195, + 600.1329973940109 + ] + } + ] + }, + { + "fixture": "default-creative", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.9384145298508535, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 1.1915996086538534, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.7193049355800266, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.7482432525939117, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 0.9807579679420412, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.9270142247130983e-06, + "deltaYmm": 1.1254509090010878, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 1.764705882352502e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.1144274124177778e-06, + "deltaYmm": 0.905337490093937, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 1.764705882352502e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Professional Summary\nFixture R01 Builds reliable and accessible career software using documented\nevidence.\nCareer platform\nengineer\nProfessional Experience\nase@example.tes E01 Platform engineer\nt Nordlys Fixture AS\nOslo, Norge B01 Delivered accessible application workflows with documented\noutcomes.\nSkills B02 Maintained reliable APIs and verified releases.\nC# React\nEducation\nNorsk\nE02 Computer science\nAccessibility Fixture University\nProjects\nLanguages\nP01 Evidence workspace\nNorsk — Native\nB03 Created a source-grounded review workflow.", + "glyphBoundsPt": [ + 45.35156061035156, + 48.7617166882618, + 536.2813995678008, + 363.25912300397937 + ] + } + ] + }, + { + "fixture": "default-code", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+Consolas-Bold" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3408694274723905, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.4617630733497646, + "fontDeltaPt": 0.005025658124935717, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2623199936181995, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2747220727848567, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.395615718662311, + "fontDeltaPt": 0.005025658125049404, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.4328217356761774, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2168424621946015, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\n01 — PROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\n02 — PROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\n03 — EDUCATION\nE02 Computer science\nFixture University\n04 — PROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\n05 — SKILLS\nC#\nReact\nNorsk\nAccessibility\n06 — LANGUAGES\nNorsk — Native", + "glyphBoundsPt": [ + 43.19531070019531, + 48.39990026333737, + 381.55365235795125, + 565.482412882962 + ] + } + ] + }, + { + "fixture": "long-en-minimal", + "pass": false, + "failures": [ + "page count: preview 3, PDF 4", + "E03: position delta x=0.00mm y=36.49mm", + "B07: position delta x=0.00mm y=36.29mm", + "B08: position delta x=0.00mm y=36.36mm", + "B09: position delta x=0.00mm y=36.43mm", + "E04: position delta x=0.00mm y=36.41mm", + "B10: position delta x=0.00mm y=36.48mm", + "B11: position delta x=0.00mm y=36.29mm", + "B12: position delta x=0.00mm y=36.36mm", + "E05: preview page 2, PDF page 3", + "B13: preview page 2, PDF page 3", + "B14: preview page 2, PDF page 3", + "B15: preview page 2, PDF page 3", + "E06: position delta x=0.00mm y=72.38mm", + "B16: position delta x=0.00mm y=72.46mm", + "B17: position delta x=0.00mm y=72.53mm", + "B18: position delta x=0.00mm y=72.60mm", + "E02: preview page 3, PDF page 4", + "E08: preview page 3, PDF page 4", + "P01: preview page 3, PDF page 4", + "B03: preview page 3, PDF page 4" + ], + "previewPages": 3, + "pdfPages": 4, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.23840431700673748, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.2504673297077049, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3210852416595337, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.39136428558311953, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.1970600071977014, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.17604846061041962, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.24666637256228857, + "fontDeltaPt": 0.002475491562471177, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3169454164859145, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3872244604095003, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E03", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 36.48705711712083, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.29309170676363, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.36337075068725, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.433649794610844, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 36.4126382480236, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.48325615997545, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.28895188158997, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 36.35923092551358, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 224.54093641777493, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 224.47031850582312, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 224.40003946189955, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 224.59434374028496, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 72.38464471312781, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 72.45526262507967, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 72.52554166900329, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 72.59582071292692, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 160.28331959407694, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 160.32052728678534, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 160.38254010796578, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 160.32432426415647, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test Oslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source", + "glyphBoundsPt": [ + 45.35156061035156, + 47.08593547808607, + 549.9112904894672, + 782.118578210681 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "evidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.\nE03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.", + "glyphBoundsPt": [ + 45.35156061035156, + 46.871108920993265, + 549.9112904894672, + 767.8685788044307 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "E05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented\nsource evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers.", + "glyphBoundsPt": [ + 45.35156061035156, + 47.58499322520481, + 549.9112904894672, + 683.1185823356808 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Education\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC# · React · Norsk · Accessibility\nLanguages\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.54296673904298, + 408.051991873659, + 335.76210997782437 + ] + } + ] + }, + { + "fixture": "long-nb-code", + "pass": false, + "failures": [ + "page count: preview 3, PDF 4", + "E03: preview page 1, PDF page 2", + "B07: preview page 1, PDF page 2", + "B08: position delta x=0.00mm y=33.02mm", + "B09: position delta x=0.00mm y=33.11mm", + "E04: position delta x=0.00mm y=33.03mm", + "B10: position delta x=0.00mm y=33.09mm", + "B11: position delta x=0.00mm y=33.18mm", + "B12: position delta x=0.00mm y=33.27mm", + "E05: position delta x=0.00mm y=33.18mm", + "B13: position delta x=0.00mm y=33.25mm", + "B14: position delta x=0.00mm y=33.07mm", + "B15: preview page 2, PDF page 3", + "E06: preview page 2, PDF page 3", + "B16: position delta x=0.00mm y=68.73mm", + "B17: position delta x=0.00mm y=68.82mm", + "B18: position delta x=0.00mm y=68.64mm", + "E02: position delta x=0.00mm y=68.72mm", + "E08: position delta x=0.00mm y=68.86mm", + "P01: position delta x=0.00mm y=68.63mm", + "B03: position delta x=0.00mm y=68.68mm" + ], + "previewPages": 3, + "pdfPages": 4, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+Consolas-Bold" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3408694274723905, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.4617630733497646, + "fontDeltaPt": 0.005025658124935717, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2623199936181995, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3491355399723557, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.4359510863265321, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.3542717506067425, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.4194119931841813, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2416442172293136, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3284597635834698, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 263.86570852578217, + "fontDeltaPt": 0.005025658124935717, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B07", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 263.8005682832047, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.02166394084043, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.10847948719459, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 33.02680015147482, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.09194039405226, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.178755940406376, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.26557148676057, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 33.18389215104072, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.24903239361818, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.07126461766335, + "fontDeltaPt": 0.0024756165624957305, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 228.25024227730188, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E06", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 228.33192161302165, + "fontDeltaPt": 0.005025658125049404, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.73321862955578, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.82003417590998, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.64226639995506, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.72181712508595, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.8623764035582, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.63499909826305, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.68360314709052, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nPlattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter\nase@example.test Oslo, Norge\n01 — PROFIL\nR01 Builds reliable and accessible career software using documented evidence.\n02 — ARBEIDSERFARING\nE01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nB01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2\nB04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.", + "glyphBoundsPt": [ + 43.19531070019531, + 48.39990026333737, + 550.4331237820651, + 782.3585195678572 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "E03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4\nB10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5\nB13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.", + "glyphBoundsPt": [ + 43.19531070019531, + 46.9638995529009, + 550.4331237820651, + 779.3585196928572 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "B15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og\ntydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\n03 — UTDANNING\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\n04 — PROSJEKTER\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\n05 — FERDIGHETER\nC#\nReact\nNorsk\nAccessibility", + "glyphBoundsPt": [ + 43.19531070019531, + 46.9610504344198, + 550.4331237820651, + 758.3585205678573 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "06 — SPRÅK\nNorsk — Native", + "glyphBoundsPt": [ + 43.19531070019531, + 45.69976097835922, + 112.36207023748328, + 81.73243303921174 + ] + } + ] + }, + { + "fixture": "compact-8mm-letter", + "pass": false, + "failures": [ + "page count: preview 3, PDF 4", + "E03: preview page 1, PDF page 2", + "B07: position delta x=0.00mm y=12.93mm", + "B08: position delta x=0.00mm y=12.76mm", + "B09: position delta x=0.00mm y=12.86mm", + "E04: position delta x=0.00mm y=12.74mm", + "B10: position delta x=0.00mm y=12.81mm", + "B11: position delta x=0.00mm y=12.91mm", + "B12: position delta x=0.00mm y=12.74mm", + "E05: position delta x=0.00mm y=12.89mm", + "B13: position delta x=0.00mm y=12.96mm", + "B14: position delta x=0.00mm y=12.79mm", + "B15: preview page 2, PDF page 3", + "E06: position delta x=0.00mm y=24.41mm", + "B16: position delta x=0.00mm y=24.48mm", + "B17: position delta x=0.00mm y=24.58mm", + "B18: position delta x=0.00mm y=24.42mm", + "E02: position delta x=0.00mm y=24.63mm", + "E08: position delta x=0.00mm y=24.52mm", + "P01: position delta x=0.00mm y=24.47mm", + "B03: position delta x=0.00mm y=24.53mm" + ], + "previewPages": 3, + "pdfPages": 4, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.35829410294419367, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 0.38689375036736284, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.45751166231919166, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.5567295193504602, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.39136405407268465, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 0.5357174325722038, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.3417520222150287, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.4409698792462772, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 0.5401877362775457, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 266.54461441734094, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.926003494610857, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.76063802933306, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.859855886364329, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 12.739625942554825, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.810243854506673, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.909461711537942, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.744096246260186, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 12.888449624759726, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.959067536711554, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 12.793702071433799, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 254.86540224827093, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 24.414367807919557, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 24.484985719871386, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 24.584203576902656, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 24.4188381116249, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 24.633471030141802, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 24.51771530366611, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 2.731960717896855e-07, + "deltaYmm": 24.472239117207707, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 4.6060926701427556e-07, + "deltaYmm": 24.53045496101719, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 215.89999999999998, + 279.4 + ], + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test Oslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.", + "glyphBoundsPt": [ + 18.58593672558594, + 20.835936571835987, + 587.6313359927984, + 768.6185787731808 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 215.89999999999998, + 279.4 + ], + "text": "E03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.\nE05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.", + "glyphBoundsPt": [ + 18.58593672558594, + 21.334994318954728, + 587.6313359927984, + 771.6185786481808 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 215.89999999999998, + 279.4 + ], + "text": "B15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable\nworkflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nDeveloped reliable workflows with accessible navigation, documented source evidence and explicit review for people\nmanaging their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit\nreview for people managing their careers.\nEDUCATION\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility", + "glyphBoundsPt": [ + 18.58593672558594, + 20.62111001474375, + 587.6313359927984, + 720.6185807731813 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 215.89999999999998, + 279.4 + ], + "text": "LANGUAGES\nNorsk — Native", + "glyphBoundsPt": [ + 18.58593672558594, + 21.211522291760616, + 95.17926274729487, + 57.512121571574085 + ] + } + ] + }, + { + "fixture": "roomy-28mm-nb", + "pass": false, + "failures": [ + "page count: preview 4, PDF 5", + "B04: preview page 1, PDF page 2", + "B05: preview page 1, PDF page 2", + "B06: position delta x=0.00mm y=66.97mm", + "E03: position delta x=0.00mm y=67.46mm", + "B07: position delta x=0.00mm y=66.98mm", + "B08: position delta x=0.00mm y=67.06mm", + "B09: position delta x=0.00mm y=67.14mm", + "E04: preview page 2, PDF page 3", + "B10: preview page 2, PDF page 3", + "B11: position delta x=0.00mm y=134.84mm", + "B12: position delta x=0.00mm y=134.65mm", + "E05: position delta x=0.00mm y=135.15mm", + "B13: preview page 3, PDF page 4", + "B14: preview page 3, PDF page 4", + "B15: preview page 3, PDF page 4", + "E06: preview page 3, PDF page 4", + "B16: preview page 3, PDF page 4", + "B17: position delta x=0.00mm y=204.38mm", + "B18: position delta x=0.00mm y=204.46mm", + "E02: preview page 4, PDF page 5", + "E08: preview page 4, PDF page 5", + "P01: preview page 4, PDF page 5", + "B03: preview page 4, PDF page 5" + ], + "previewPages": 4, + "pdfPages": 5, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 1.012826464659883, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 1.3610962450254052, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 1.14511659894808, + "fontDeltaPt": 0.0024754915624427554, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 1.2236635192605956, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 1.0376271172640672, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 1.2701393852163572, + "fontDeltaPt": 0.005025608125002634, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 229.9270806366422, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 229.84853371632968, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B06", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 66.96542988167383, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E03", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 67.46252547193515, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 66.98196250354884, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 67.06050942386132, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 67.1390563441738, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 162.02217182980098, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 162.2381514758783, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B11", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 134.8403954444342, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B12", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 134.65435904243765, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E05", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 135.15145463269897, + "fontDeltaPt": 0.005025608125002634, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B13", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 92.60618219914222, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B14", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 92.52763527882975, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B15", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 92.7136716808263, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 92.21657609056489, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 92.69713905895127, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B17", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 204.3814078613613, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B18", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 204.45995478167387, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 24.51937286877679, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E08", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 24.61032411721422, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "P01", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 1.376660156064228e-06, + "deltaYmm": 24.519374842127412, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 1.564073353795455e-06, + "deltaYmm": 24.908986992024058, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nPlattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter\nase@example.test Oslo, Norge\nPROFIL\nR01 Builds reliable and accessible career software using documented evidence.\nARBEIDSERFARING\nE01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nB01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2", + "glyphBoundsPt": [ + 93.65624609765625, + 99.02343331402346, + 499.10543914547947, + 743.5091071602294 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "B04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige", + "glyphBoundsPt": [ + 93.65624609765625, + 98.26163412054177, + 499.10543914547947, + 742.0091072227292 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4\nB10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5", + "glyphBoundsPt": [ + 93.65624609765625, + 98.26163412054177, + 499.10543914547947, + 733.7591075664791 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "B13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige", + "glyphBoundsPt": [ + 93.65624609765625, + 98.26163412054154, + 499.10543914547947, + 742.0091072227292 + ] + }, + { + "page": 5, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag\nog tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med\ntilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert\nkildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige\narbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige\nvurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUTDANNING\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROSJEKTER\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nFERDIGHETER\nC# React Norsk Accessibility\nSPRÅK\nNorsk — Native", + "glyphBoundsPt": [ + 93.65624609765625, + 98.26163412054132, + 499.10543914547947, + 607.6329970815107 + ] + } + ] + }, + { + "fixture": "grid-and-bubbles", + "pass": true, + "failures": [], + "previewPages": 1, + "pdfPages": 1, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT" + ], + "comparisons": [ + { + "token": "P01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.2256635021035085, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.2838793459129893, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.30834377632225735, + "fontDeltaPt": 0.00502560812510211, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3789616882741062, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.3872296418331209, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.540391718665002e-07, + "deltaYmm": 0.14745014712825316, + "fontDeltaPt": 0.002475491562499599, + "colorDelta": 4.117647058823892e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.666259766419102e-07, + "deltaYmm": 0.1595131598291805, + "fontDeltaPt": 0.005025608124988423, + "colorDelta": 4.117647058823892e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nCareer platform engineer\nase@example.test Oslo, Norge\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC# · React · Norsk · Accessibility\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nEducation\nE02 Computer science\nFixture University\nLanguages\nNorsk — Native", + "glyphBoundsPt": [ + 45.35156061035156, + 47.08593547808607, + 412.1041846030788, + 552.5121009465745 + ] + } + ] + }, + { + "fixture": "long-sidebar-nb", + "pass": false, + "failures": [ + "page count: preview 4, PDF 5", + "B06: preview page 1, PDF page 2", + "E03: position delta x=0.00mm y=37.84mm", + "B07: position delta x=0.00mm y=37.51mm", + "B08: position delta x=0.00mm y=37.62mm", + "B09: position delta x=0.00mm y=37.74mm", + "E04: position delta x=0.00mm y=37.79mm", + "B10: preview page 2, PDF page 3", + "B11: preview page 2, PDF page 3", + "B12: position delta x=0.00mm y=70.64mm", + "E05: position delta x=0.00mm y=70.96mm", + "B13: position delta x=0.00mm y=70.64mm", + "B14: position delta x=0.00mm y=70.75mm", + "B15: position delta x=0.00mm y=70.60mm", + "E06: preview page 3, PDF page 4", + "B16: preview page 3, PDF page 4", + "B17: position delta x=0.00mm y=104.18mm", + "B18: position delta x=0.00mm y=104.03mm", + "E02: position delta x=0.00mm y=104.29mm", + "E08: position delta x=0.00mm y=104.36mm", + "P01: preview page 4, PDF page 5", + "B03: preview page 4, PDF page 5" + ], + "previewPages": 4, + "pdfPages": 5, + "fontNames": [ + "AAAAAA+Arial-BoldMT", + "BAAAAA+ArialMT", + "CAAAAA+Consolas-Bold" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.13833163839396054, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 0.2103210530847756, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.15073253795992514, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.002231090685897167, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.1093886029772845, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 0.16897323754660928, + "fontDeltaPt": 4.374999775791366e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.10938472242171869, + "fontDeltaPt": 0.0050255456249956865, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 0.0435789062241036, + "fontDeltaPt": 0.005025545624981476, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 259.4881983977172, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E03", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 37.83596955916109, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B07", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 37.51179772172722, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 37.62341741539042, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 37.73503710905362, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 37.79462174362287, + "fontDeltaPt": 4.3750000600084604e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 226.31912243591157, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 226.20750274224844, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B12", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 70.63953362910576, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E05", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 70.96370158598414, + "fontDeltaPt": 4.3750003442255547e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B13", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 70.63952974855025, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B14", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 70.75114944221345, + "fontDeltaPt": 0.0050255456249956865, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B15", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 70.59818581356762, + "fontDeltaPt": 0.0050255456249956865, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E06", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 192.6026352493457, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 4, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 192.92680708677958, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B17", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 104.18481260688355, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B18", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 104.03184897823773, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E02", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 104.29400480846681, + "fontDeltaPt": 4.374999775791366e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "E08", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 104.36015003546338, + "fontDeltaPt": 4.374999775791366e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "P01", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 3.49987250353302e-06, + "deltaYmm": 146.46897485177635, + "fontDeltaPt": 4.3749992073571775e-07, + "colorDelta": 4.509803921570743e-05 + }, + { + "token": "B03", + "previewPage": 4, + "pdfPage": 5, + "deltaXmm": 3.687285701264247e-06, + "deltaYmm": 146.72700060231784, + "fontDeltaPt": 0.005025545624967265, + "colorDelta": 4.509803921570743e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Profil\nFixture R01 Builds reliable and accessible career software using documented\nevidence.\nPlattformutvikler med\nerfaring fra\nArbeidserfaring\ntilgjengelige, pålitelige\narbeidsflyter E01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nase@example.test B01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\nOslo, Norge\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nFerdigheter\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nSamarbeid Norsk\nnorske arbeidssøkere.\nTilgje\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\nngelig\ndokumentert kildegrunnlag og tydelige vurderinger for norske\nhet\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nSpråk\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nNorsk — Native\nnorske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2\nB04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig", + "glyphBoundsPt": [ + 45.35156061035156, + 46.45019332457525, + 543.7773705024852, + 778.2620915403244 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nE03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4", + "glyphBoundsPt": [ + 238.10155257910156, + 46.517122179699186, + 541.6400492415406, + 788.0120911340741 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "B10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5\nB13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for", + "glyphBoundsPt": [ + 238.10155257910156, + 46.51712217969941, + 541.6400492415406, + 790.2620910403243 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon,\ndokumentert kildegrunnlag og tydelige vurderinger for norske\narbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig\nnavigasjon, dokumentert kildegrunnlag og tydelige vurderinger for\nnorske arbeidssøkere.\nUtdanning\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og\ninformasjonsarkitektur\nFixture Academy", + "glyphBoundsPt": [ + 238.10155257910156, + 46.51712217969941, + 541.6400492415406, + 737.7620932278246 + ] + }, + { + "page": 5, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Prosjekter\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.", + "glyphBoundsPt": [ + 238.10155257910156, + 47.54296673904253, + 458.26688706372056, + 94.26212004032413 + ] + } + ] + }, + { + "fixture": "unbreakable-and-boundary", + "pass": false, + "failures": [ + "E03: preview page 1, PDF page 2", + "B07: preview page 1, PDF page 2", + "B08: position delta x=0.00mm y=33.02mm", + "B09: position delta x=0.00mm y=33.11mm", + "E04: position delta x=0.00mm y=33.03mm", + "B10: position delta x=0.00mm y=33.09mm", + "B11: position delta x=0.00mm y=33.18mm", + "B12: position delta x=0.00mm y=33.27mm", + "E05: position delta x=0.00mm y=33.18mm", + "B13: position delta x=0.00mm y=33.25mm", + "B14: position delta x=0.00mm y=33.07mm", + "B15: preview page 2, PDF page 3", + "E06: preview page 2, PDF page 3", + "B16: position delta x=0.00mm y=68.73mm", + "B17: position delta x=0.00mm y=68.82mm", + "B18: position delta x=0.00mm y=68.64mm", + "E02: position delta x=0.00mm y=68.72mm", + "E08: position delta x=0.00mm y=68.86mm", + "P01: position delta x=0.00mm y=68.63mm", + "B03: position delta x=0.00mm y=68.68mm", + "S09: position delta x=0.00mm y=20.88mm", + "R09: position delta x=0.00mm y=21.46mm", + "R10: position delta x=0.00mm y=21.48mm" + ], + "previewPages": 4, + "pdfPages": 4, + "fontNames": [ + "AAAAAA+SegoeUI-Bold", + "BAAAAA+SegoeUI", + "CAAAAA+Consolas-Bold" + ], + "comparisons": [ + { + "token": "R01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3408694274723905, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.4617630733497646, + "fontDeltaPt": 0.005025658124935717, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B01", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2623199936181995, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3491355399723557, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.4359510863265321, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 1.3542717506067425, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B04", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.4194119931841813, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B05", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.2416442172293136, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B06", + "previewPage": 1, + "pdfPage": 1, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 1.3284597635834698, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E03", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 263.86570852578217, + "fontDeltaPt": 0.005025658124935717, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B07", + "previewPage": 1, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 263.8005682832047, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B08", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.02166394084043, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B09", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.10847948719459, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E04", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 33.02680015147482, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B10", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.09194039405226, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B11", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.178755940406376, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B12", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.26557148676057, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E05", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 33.18389215104072, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B13", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.24903239361818, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B14", + "previewPage": 2, + "pdfPage": 2, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 33.07126461766335, + "fontDeltaPt": 0.0024756165624957305, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B15", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 228.25024227730188, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E06", + "previewPage": 2, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 228.33192161302165, + "fontDeltaPt": 0.005025658125049404, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B16", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.73321862955578, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B17", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.82003417590998, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B18", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.64226639995506, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E02", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.72181712508595, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "E08", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.8623764035582, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "P01", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 68.63499909826305, + "fontDeltaPt": 0.00502565812499256, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "B03", + "previewPage": 3, + "pdfPage": 3, + "deltaXmm": 8.223442926909759e-07, + "deltaYmm": 68.68360314709052, + "fontDeltaPt": 0.0024756165625099413, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "S09", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 1.0445529540782495e-06, + "deltaYmm": 20.883447815716348, + "fontDeltaPt": 0.0024749615624948262, + "colorDelta": 3.725490196078429e-05 + }, + { + "token": "R09", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 21.464828146656433, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + }, + { + "token": "R10", + "previewPage": 4, + "pdfPage": 4, + "deltaXmm": 6.349310999730227e-07, + "deltaYmm": 21.477228638323115, + "fontDeltaPt": 0.002475616562453098, + "colorDelta": 3.921568627450467e-05 + } + ], + "pages": [ + { + "page": 1, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test Oslo, Norge\n01 — PROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\n02 — PROFESSIONAL EXPERIENCE\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.", + "glyphBoundsPt": [ + 43.19531070019531, + 48.39990026333737, + 549.0611897192267, + 782.3585195678572 + ] + }, + { + "page": 2, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "E03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.\nE05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.", + "glyphBoundsPt": [ + 43.19531070019531, + 46.9638995529009, + 549.0611897192267, + 779.3585196928572 + ] + }, + { + "page": 3, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "B15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for\npeople managing their careers. Developed reliable workflows with accessible navigation, documented source evidence\nand explicit review for people managing their careers. Developed reliable workflows with accessible navigation,\ndocumented source evidence and explicit review for people managing their careers. Developed reliable workflows with\naccessible navigation, documented source evidence and explicit review for people managing their careers. Developed\nreliable workflows with accessible navigation, documented source evidence and explicit review for people managing\ntheir careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review\nfor people managing their careers. Developed reliable workflows with accessible navigation, documented source\nevidence and explicit review for people managing their careers. Developed reliable workflows with accessible\nnavigation, documented source evidence and explicit review for people managing their careers.\n03 — EDUCATION\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\n04 — PROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\n05 — SKILLS\nC#\nReact\nNorsk\nAccessibility", + "glyphBoundsPt": [ + 43.19531070019531, + 46.9610504344198, + 549.0611897192267, + 758.3585205678573 + ] + }, + { + "page": 4, + "dimensionsMm": [ + 209.88865255555555, + 297.01065961111107 + ], + "text": "06 — LANGUAGES\nNorsk — Native\n07 — S09 BOUNDARY CONTENT\nR09\nUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvi\ndenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreak\nableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceU\nnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvid\nenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreaka\nbleEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUn\nbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvide\nnce\nR10 Final recorded paragraph — æøå.", + "glyphBoundsPt": [ + 43.19531070019531, + 45.69976097835922, + 552.0684606989041, + 263.35854119285716 + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/comparison-1.png new file mode 100644 index 0000000..87b53d1 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/export.pdf new file mode 100644 index 0000000..82f03a0 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/pdf-1.png new file mode 100644 index 0000000..c94b26f Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/preview-1.png new file mode 100644 index 0000000..40b41aa Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/render.html new file mode 100644 index 0000000..3b1bd31 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/grid-and-bubbles/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Minimal + + + +

Åse Fixture

Career platform engineer
ase@example.testOslo, Norge

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

C# · React · Norsk · Accessibility

Professional Experience

E01 Platform engineer
Nordlys Fixture AS
  • B01 Delivered accessible application workflows with documented outcomes.
  • B02 Maintained reliable APIs and verified releases.

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Education

E02 Computer science
Fixture University

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-1.png new file mode 100644 index 0000000..209448b Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-2.png new file mode 100644 index 0000000..abc43c3 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-3.png new file mode 100644 index 0000000..3baf15b Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/export.pdf new file mode 100644 index 0000000..9a21bd0 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-1.png new file mode 100644 index 0000000..8698dc8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-2.png new file mode 100644 index 0000000..1aae188 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-3.png new file mode 100644 index 0000000..02e1ae5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-4.png new file mode 100644 index 0000000..5c32f63 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-1.png new file mode 100644 index 0000000..79245a6 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-2.png new file mode 100644 index 0000000..260fe6d Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-3.png new file mode 100644 index 0000000..153d643 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/render.html new file mode 100644 index 0000000..1b9348a --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-en-minimal/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Minimal + + + +

Åse Fixture

Platform engineer with experience in accessible and reliable application workflows
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Workflow and integration engineer
Nordlys Fixture 1
  • B01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E02 Workflow and integration engineer
Nordlys Fixture 2
  • B04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E03 Workflow and integration engineer
Nordlys Fixture 3
  • B07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E04 Workflow and integration engineer
Nordlys Fixture 4
  • B10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E05 Workflow and integration engineer
Nordlys Fixture 5
  • B13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E06 Workflow and integration engineer
Nordlys Fixture 6
  • B16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.

Education

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

C# · React · Norsk · Accessibility

Languages

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-1.png new file mode 100644 index 0000000..ba28cc1 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-2.png new file mode 100644 index 0000000..f3ebf5a Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-3.png new file mode 100644 index 0000000..86a1279 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/export.pdf new file mode 100644 index 0000000..eed5eef Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-1.png new file mode 100644 index 0000000..af922d5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-2.png new file mode 100644 index 0000000..6ef3635 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-3.png new file mode 100644 index 0000000..576e6f5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-4.png new file mode 100644 index 0000000..2ac524b Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-1.png new file mode 100644 index 0000000..44e8479 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-2.png new file mode 100644 index 0000000..3f8a7e7 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-3.png new file mode 100644 index 0000000..cf022a8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/render.html new file mode 100644 index 0000000..fcb677c --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-nb-code/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Code + + + +

Åse Fixture

Plattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter
ase@example.testOslo, Norge

Profil

  • R01 Builds reliable and accessible career software using documented evidence.

Arbeidserfaring

E01 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 1
  • B01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E02 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 2
  • B04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E03 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 3
  • B07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E04 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 4
  • B10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E05 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 5
  • B13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E06 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 6
  • B16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.

Utdanning

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Prosjekter

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Ferdigheter

  • C#
  • React
  • Norsk
  • Accessibility

Språk

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-1.png new file mode 100644 index 0000000..9894e67 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-2.png new file mode 100644 index 0000000..6ba7af1 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-3.png new file mode 100644 index 0000000..1d73a31 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-4.png new file mode 100644 index 0000000..b38bcfb Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/comparison-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/export.pdf new file mode 100644 index 0000000..527d34a Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-1.png new file mode 100644 index 0000000..ece8817 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-2.png new file mode 100644 index 0000000..a4e4db6 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-3.png new file mode 100644 index 0000000..9f49261 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-4.png new file mode 100644 index 0000000..e034365 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-5.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-5.png new file mode 100644 index 0000000..17046a2 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/pdf-5.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-1.png new file mode 100644 index 0000000..1dfd3ba Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-2.png new file mode 100644 index 0000000..0a73d54 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-3.png new file mode 100644 index 0000000..bf14280 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-4.png new file mode 100644 index 0000000..c13ce6b Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/preview-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/render.html new file mode 100644 index 0000000..8a967f0 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/long-sidebar-nb/render.html @@ -0,0 +1,98 @@ + + + + +Åse Fixture — Technical + + + +

Profil

  • R01 Builds reliable and accessible career software using documented evidence.

Arbeidserfaring

E01 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 1
  • B01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E02 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 2
  • B04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E03 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 3
  • B07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E04 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 4
  • B10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E05 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 5
  • B13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E06 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 6
  • B16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.

Utdanning

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Prosjekter

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/measurements.json b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/measurements.json new file mode 100644 index 0000000..821e332 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/measurements.json @@ -0,0 +1,6966 @@ +{ + "browserVersion": "151.0.7922.34", + "fixtures": [ + { + "fixture": "default-modern", + "settings": { + "themeId": "modern", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 206.671875, + "width": 22.359375, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 283.65625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 329.4375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 354.40625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 431.390625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 530.703125, + "width": 25.875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 551.53125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 110.8125, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(255, 255, 255)", + "background": "rgb(37, 99, 235)", + "padding": "0px 60.4724px 22.6772px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 171.28125, + "width": 793.6875, + "height": 565.828125, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #2563eb; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#2563eb 28%,transparent); --cv-ink: #111827; --cv-muted: #4b5563; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Roboto, Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(37, 99, 235); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(75, 85, 99); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(75, 85, 99); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(37, 99, 235); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.2pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(75, 85, 99); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(75, 85, 99); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(37, 99, 235); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(37, 99, 235); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 171.28125 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 248.265625 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 396 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 495.3125 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 593.125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 676.453125 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-minimal", + "settings": { + "themeId": "minimal", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\n\nC# · React · Norsk · Accessibility\n\nLanguages\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 210.59375, + "width": 24.46875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 289.5, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 334.28125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 359.25, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 438.15625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 538.390625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 558.21875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 116.59375, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 26.4567px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 177.0625, + "width": 793.6875, + "height": 561.234375, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #111827; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#111827 28%,transparent); --cv-ink: #111827; --cv-muted: #6b7280; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Helvetica Neue\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Helvetica Neue\", Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(17, 24, 39); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(107, 114, 128); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(107, 114, 128); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 7mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 7mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(17, 24, 39); }", + ".section-title { letter-spacing: 0.01em; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.75mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(107, 114, 128); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(107, 114, 128); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 7mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(17, 24, 39); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(17, 24, 39); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 177.0625 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 254.96875 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 403.625 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 503.859375 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 602.59375 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 680.5 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-executive", + "settings": { + "themeId": "executive", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\n\nC# · React · Norsk · Accessibility\n\nLanguages\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 215.875, + "width": 23.265625, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 297.65625, + "width": 28.046875, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 342.4375, + "width": 22.625, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 367.40625, + "width": 24.34375, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 449.1875, + "width": 30.046875, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 552.296875, + "width": 27.75, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 572.125, + "width": 24.265625, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Georgia, \"Times New Roman\", serif", + "color": "rgb(28, 25, 23)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "Georgia, \"Times New Roman\", serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(28, 25, 23)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "Georgia, \"Times New Roman\", serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(28, 25, 23)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 115.21875, + "font": "Georgia, \"Times New Roman\", serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(28, 25, 23)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 22.6772px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 175.6875, + "width": 793.6875, + "height": 582.265625, + "font": "Georgia, \"Times New Roman\", serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(28, 25, 23)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #7c2d12; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#7c2d12 28%,transparent); --cv-ink: #1c1917; --cv-muted: #57534e; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: Georgia, \"Times New Roman\", serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Georgia, \"Times New Roman\", serif; }", + ".name { margin: 0px; font-size: 27pt; color: rgb(28, 25, 23); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(124, 45, 18); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(87, 83, 78); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(87, 83, 78); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 24pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(124, 45, 18); }", + ".section-title { border-bottom: 1.5px solid var(--cv-accent-soft); padding-bottom: 1.5mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(87, 83, 78); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(87, 83, 78); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(124, 45, 18); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(124, 45, 18); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 175.6875 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 256.46875 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 408 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 511.109375 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 612.71875 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 693.5 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-technical", + "settings": { + "themeId": "technical", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nSkills\nC#\nReact\nNorsk\nAccessibility\nLanguages\nNorsk — Native\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.", + "tokens": [ + { + "token": "R01", + "x": 311.796875, + "y": 93.5, + "width": 23.234375, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E01", + "x": 294.796875, + "y": 182.171875, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B01", + "x": 311.796875, + "y": 224.453125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B02", + "x": 311.796875, + "y": 264.9375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E02", + "x": 294.796875, + "y": 336.390625, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "P01", + "x": 294.796875, + "y": 428.375, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B03", + "x": 311.796875, + "y": 447.40625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 60.46875, + "y": 60.46875, + "width": 113.390625, + "height": 103.5, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(255, 255, 255)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px 0px 22.6772px" + }, + "main": { + "x": 234.328125, + "y": 60.46875, + "width": 559.359375, + "height": 1001.578125, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": { + "x": 0, + "y": 60.46875, + "width": 234.328125, + "height": 1001.578125, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(255, 255, 255)", + "background": "rgb(15, 76, 92)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #0f4c5c; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#0f4c5c 28%,transparent); --cv-ink: #102a43; --cv-muted: #486581; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: Roboto, Arial, sans-serif; font-size: 9.5pt; line-height: 1.36; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(16, 42, 67); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(15, 76, 92); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(72, 101, 129); font-size: 10pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(72, 101, 129); font-size: 9pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(15, 76, 92); }", + ".section-title { padding-left: 2.5mm; border-left: 3px solid rgb(15, 76, 92); }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 10.5pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(72, 101, 129); font-size: 9pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(72, 101, 129); font-size: 9.5pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".cols { display: grid; grid-template-columns: 62mm minmax(0px, 1fr); min-height: 297mm; }", + ".sidebar { background: var(--cv-accent-color); color: var(--cv-accent-ink); padding: 16mm; }", + ".sidebar .section-title { color: var(--cv-accent-ink); border-color: color-mix(in srgb,var(--cv-accent-ink) 38%,transparent); }", + ".sidebar .tag { border-color: color-mix(in srgb,var(--cv-accent-ink) 45%,transparent); }", + ".sidebar .contact, .sidebar .headline, .sidebar .entry-meta, .sidebar .entry-subtitle { color: var(--cv-accent-ink); }", + ".sidebar a { color: inherit; }", + ".main { padding: 16mm; }", + ".hero .name { color: var(--cv-accent-ink); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 265.046875 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 406.296875 + }, + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 60.46875 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 149.609375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 303.828125 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 395.8125 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-ats-classic", + "settings": { + "themeId": "ats-classic", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 209.671875, + "width": 24.46875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 287.65625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 332.4375, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 357.40625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 435.390625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 534.703125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 554.53125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 112.8125, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 22.6772px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 173.28125, + "width": 793.6875, + "height": 634.390625, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #334155; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#334155 28%,transparent); --cv-ink: #111827; --cv-muted: #374151; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: Arial, Helvetica, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Arial, Helvetica, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(51, 65, 85); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(55, 65, 81); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(55, 65, 81); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(51, 65, 85); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.2pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(55, 65, 81); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(55, 65, 81); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(51, 65, 85); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(51, 65, 85); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 173.28125 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 250.265625 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 398 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 497.3125 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 595.125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 747.015625 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-nordic", + "settings": { + "themeId": "nordic", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "PROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nÅse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 96.328125, + "width": 22.359375, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 192.234375, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 238.015625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 281.90625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 358.890625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 458.203125, + "width": 25.875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 479.03125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 619.828125, + "y": 60.46875, + "width": 113.390625, + "height": 107, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(255, 255, 255)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px 0px 22.6772px" + }, + "main": { + "x": 0, + "y": 60.46875, + "width": 559.359375, + "height": 1001.578125, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": { + "x": 559.359375, + "y": 60.46875, + "width": 234.328125, + "height": 1001.578125, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(255, 255, 255)", + "background": "rgb(59, 110, 165)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #3b6ea5; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#3b6ea5 28%,transparent); --cv-ink: #1f2937; --cv-muted: #4b5563; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(31, 41, 55); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(59, 110, 165); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(75, 85, 99); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(75, 85, 99); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(59, 110, 165); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.2pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(75, 85, 99); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(75, 85, 99); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".cols { display: grid; grid-template-columns: minmax(0px, 1fr) 62mm; min-height: 297mm; }", + ".sidebar { background: var(--cv-accent-color); color: var(--cv-accent-ink); padding: 16mm; }", + ".sidebar .section-title { color: var(--cv-accent-ink); border-color: color-mix(in srgb,var(--cv-accent-ink) 38%,transparent); }", + ".sidebar .tag { border-color: color-mix(in srgb,var(--cv-accent-ink) 45%,transparent); }", + ".sidebar .contact, .sidebar .headline, .sidebar .entry-meta, .sidebar .entry-subtitle { color: var(--cv-accent-ink); }", + ".sidebar a { color: inherit; }", + ".main { padding: 16mm; }", + ".hero .name { color: var(--cv-accent-ink); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 60.46875 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 156.84375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 323.5 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 422.8125 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 273.5625 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 421.015625 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-elegant", + "settings": { + "themeId": "elegant", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "CURRICULUM VITAE\nÅse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\nC#\nReact\nNorsk\nAccessibility\nLanguages\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 237.03125, + "width": 22.359375, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 321.59375, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 367.375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 392.34375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 476.90625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 583.796875, + "width": 25.875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 604.625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(31, 41, 55)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 137.375, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 26.4567px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 197.84375, + "width": 793.6875, + "height": 607.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(31, 41, 55)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #7c3aed; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#7c3aed 28%,transparent); --cv-ink: #1f2937; --cv-muted: #4b5563; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Georgia, \"Times New Roman\", serif; }", + ".name { margin: 0px; font-size: 26pt; color: rgb(31, 41, 55); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(124, 58, 237); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(75, 85, 99); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(75, 85, 99); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 7mm; }", + ".hero .name { font-size: 23pt; }", + ".section { margin-top: 7mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(124, 58, 237); }", + ".section-title { border-bottom: 1.5px solid var(--cv-accent-soft); padding-bottom: 1.5mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(75, 85, 99); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(75, 85, 99); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 7mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(124, 58, 237); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(124, 58, 237); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 197.84375 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 282.40625 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 437.71875 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 544.609375 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 650 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 740.90625 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-creative", + "settings": { + "themeId": "creative", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nSkills\nC#\nReact\nNorsk\nAccessibility\nLanguages\nNorsk — Native\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEducation\nE02 Computer science\nFixture University\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.", + "tokens": [ + { + "token": "R01", + "x": 311.796875, + "y": 93.46875, + "width": 22.359375, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "E01", + "x": 294.796875, + "y": 186.515625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "B01", + "x": 311.796875, + "y": 232.296875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "B02", + "x": 311.796875, + "y": 276.1875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "E02", + "x": 294.796875, + "y": 350.3125, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "P01", + "x": 294.796875, + "y": 446.765625, + "width": 25.875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + }, + { + "token": "B03", + "x": 311.796875, + "y": 467.59375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Arial, sans-serif", + "color": "rgb(24, 24, 27)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(24, 24, 27)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(24, 24, 27)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 60.46875, + "y": 60.46875, + "width": 113.390625, + "height": 107, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(255, 255, 255)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px 0px 22.6772px" + }, + "main": { + "x": 234.328125, + "y": 60.46875, + "width": 559.359375, + "height": 1001.578125, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(24, 24, 27)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": { + "x": 0, + "y": 60.46875, + "width": 234.328125, + "height": 1001.578125, + "font": "\"Segoe UI\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(255, 255, 255)", + "background": "rgb(219, 39, 119)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #db2777; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#db2777 28%,transparent); --cv-ink: #18181b; --cv-muted: #52525b; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Poppins, \"Segoe UI\", Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(24, 24, 27); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(219, 39, 119); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(82, 82, 91); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(82, 82, 91); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(219, 39, 119); }", + ".section-title { padding-left: 2.5mm; border-left: 3px solid rgb(219, 39, 119); }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(82, 82, 91); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(82, 82, 91); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".cols { display: grid; grid-template-columns: 62mm minmax(0px, 1fr); min-height: 297mm; }", + ".sidebar { background: var(--cv-accent-color); color: var(--cv-accent-ink); padding: 16mm; }", + ".sidebar .section-title { color: var(--cv-accent-ink); border-color: color-mix(in srgb,var(--cv-accent-ink) 38%,transparent); }", + ".sidebar .tag { border-color: color-mix(in srgb,var(--cv-accent-ink) 45%,transparent); }", + ".sidebar .contact, .sidebar .headline, .sidebar .entry-meta, .sidebar .entry-subtitle { color: var(--cv-accent-ink); }", + ".sidebar a { color: inherit; }", + ".main { padding: 16mm; }", + ".hero .name { color: var(--cv-accent-ink); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 273.5625 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 418.15625 + }, + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 60.46875 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 153.984375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 317.78125 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 414.234375 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "default-code", + "settings": { + "themeId": "code", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nEDUCATION\nE02 Computer science\nFixture University\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 74.59375, + "y": 200.546875, + "width": 21.015625, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E01", + "x": 57.59375, + "y": 271.09375, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B01", + "x": 74.59375, + "y": 314.84375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B02", + "x": 74.59375, + "y": 338.796875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E02", + "x": 57.59375, + "y": 409.34375, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "P01", + "x": 57.59375, + "y": 501.203125, + "width": 24.46875, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B03", + "x": 74.59375, + "y": 521.015625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgb(255, 255, 255)", + "padding": "57.6px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 57.59375, + "width": 793.6875, + "height": 111.46875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px 21.1654px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 169.0625, + "width": 793.6875, + "height": 589.140625, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #0b7a63; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#0b7a63 28%,transparent); --cv-ink: #171a20; --cv-muted: #555e6b; --cv-paper: #ffffff; --cv-page-margin: 15.24mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Roboto, Arial, sans-serif; font-size: 9.4pt; line-height: 1.43; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 25.5pt; color: rgb(23, 26, 32); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(11, 122, 99); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(85, 94, 107); font-size: 9.9pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(85, 94, 107); font-size: 8.9pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 5.6mm; }", + ".hero .name { font-size: 22.5pt; }", + ".section { margin-top: 5.6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 9.5pt; font-weight: 700; color: rgb(11, 122, 99); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 8.08pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.37mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 8.9pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: Consolas, \"Courier New\", monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.3mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 10.4pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(85, 94, 107); font-size: 8.9pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(85, 94, 107); font-size: 9.4pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 15.24mm 15.24mm; }", + ".header { padding: 15.24mm 15.24mm 5.6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(11, 122, 99); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(11, 122, 99); }", + ".main { counter-reset: cv-section 0; }", + ".main > .section > .section-title { counter-increment: cv-section 1; font-family: Consolas, \"Courier New\", monospace; font-weight: 600; }", + ".main > .section > .section-title::before { content: counter(cv-section, decimal-leading-zero) \" — \"; color: var(--cv-accent-color); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 15.24mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 57.6px; padding-bottom: 57.6px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1007.32px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 169.0625 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 239.609375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 377.859375 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 469.71875 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 560.078125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 702.484375 + } + ], + "effectiveMargin": "15.24mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "long-en-minimal", + "settings": { + "themeId": "minimal", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 3, + "measured": { + "width": 790, + "contentHeight": 3368, + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test\nOslo, Norge\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nProfessional Experience\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nEducation\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\n\nC# · React · Norsk · Accessibility\n\nLanguages\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 77.46875, + "y": 210.59375, + "width": 24.46875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 289.5, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 334.28125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 416.015625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 497.75, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 725.78125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B04", + "x": 77.46875, + "y": 770.5625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B05", + "x": 77.46875, + "y": 852.296875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B06", + "x": 77.46875, + "y": 934.03125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E03", + "x": 60.46875, + "y": 1162.0625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B07", + "x": 77.46875, + "y": 1206.84375, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B08", + "x": 77.46875, + "y": 1288.578125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B09", + "x": 77.46875, + "y": 1370.3125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E04", + "x": 60.46875, + "y": 1598.34375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B10", + "x": 77.46875, + "y": 1643.125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B11", + "x": 77.46875, + "y": 1724.859375, + "width": 22.734375, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B12", + "x": 77.46875, + "y": 1806.59375, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E05", + "x": 60.46875, + "y": 2034.625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B13", + "x": 77.46875, + "y": 2079.40625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B14", + "x": 77.46875, + "y": 2161.140625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B15", + "x": 77.46875, + "y": 2242.875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E06", + "x": 60.46875, + "y": 2470.90625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B16", + "x": 77.46875, + "y": 2515.6875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B17", + "x": 77.46875, + "y": 2597.421875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B18", + "x": 77.46875, + "y": 2679.15625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 2947.28125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E08", + "x": 60.46875, + "y": 3007.421875, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 60.46875, + "y": 3107.65625, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 3127.484375, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 3368.03125, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 3368.03125, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 116.59375, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 26.4567px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 177.0625, + "width": 793.6875, + "height": 3130.5, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #111827; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#111827 28%,transparent); --cv-ink: #111827; --cv-muted: #6b7280; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Helvetica Neue\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Helvetica Neue\", Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(17, 24, 39); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(107, 114, 128); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(107, 114, 128); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 7mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 7mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(17, 24, 39); }", + ".section-title { letter-spacing: 0.01em; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.75mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(107, 114, 128); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(107, 114, 128); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 7mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(17, 24, 39); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(17, 24, 39); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 177.0625 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Professional Experience", + "y": 254.96875 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 2912.75 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 3073.125 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 3171.859375 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 3249.765625 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "long-nb-code", + "settings": { + "themeId": "code", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "nb", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 3, + "measured": { + "width": 790, + "contentHeight": 3136, + "text": "Åse Fixture\nPlattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter\nase@example.test\nOslo, Norge\nPROFIL\nR01 Builds reliable and accessible career software using documented evidence.\nARBEIDSERFARING\nE01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nB01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2\nB04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4\nB10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5\nB13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUTDANNING\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROSJEKTER\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nFERDIGHETER\nC#\nReact\nNorsk\nAccessibility\nSPRÅK\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 74.59375, + "y": 200.546875, + "width": 21.015625, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E01", + "x": 57.59375, + "y": 271.09375, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B01", + "x": 74.59375, + "y": 314.84375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B02", + "x": 74.59375, + "y": 392.515625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B03", + "x": 74.59375, + "y": 470.1875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E02", + "x": 57.59375, + "y": 665.5, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B04", + "x": 74.59375, + "y": 709.25, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B05", + "x": 74.59375, + "y": 786.921875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B06", + "x": 74.59375, + "y": 864.59375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E03", + "x": 57.59375, + "y": 1059.90625, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B07", + "x": 74.59375, + "y": 1103.65625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B08", + "x": 74.59375, + "y": 1181.328125, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B09", + "x": 74.59375, + "y": 1259, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E04", + "x": 57.59375, + "y": 1454.3125, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B10", + "x": 74.59375, + "y": 1498.0625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B11", + "x": 74.59375, + "y": 1575.734375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B12", + "x": 74.59375, + "y": 1653.40625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E05", + "x": 57.59375, + "y": 1848.71875, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B13", + "x": 74.59375, + "y": 1892.46875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B14", + "x": 74.59375, + "y": 1970.140625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B15", + "x": 74.59375, + "y": 2047.8125, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E06", + "x": 57.59375, + "y": 2243.125, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B16", + "x": 74.59375, + "y": 2286.875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B17", + "x": 74.59375, + "y": 2364.546875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B18", + "x": 74.59375, + "y": 2442.21875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E02", + "x": 57.59375, + "y": 2673.921875, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E08", + "x": 57.59375, + "y": 2729.390625, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "P01", + "x": 57.59375, + "y": 2821.25, + "width": 24.46875, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B03", + "x": 74.59375, + "y": 2841.0625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 3135.84375, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 3135.84375, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgb(255, 255, 255)", + "padding": "57.6px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 57.59375, + "width": 793.6875, + "height": 111.46875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px 21.1654px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 169.0625, + "width": 793.6875, + "height": 2909.1875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #0b7a63; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#0b7a63 28%,transparent); --cv-ink: #171a20; --cv-muted: #555e6b; --cv-paper: #ffffff; --cv-page-margin: 15.24mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Roboto, Arial, sans-serif; font-size: 9.4pt; line-height: 1.43; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 25.5pt; color: rgb(23, 26, 32); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(11, 122, 99); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(85, 94, 107); font-size: 9.9pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(85, 94, 107); font-size: 8.9pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 5.6mm; }", + ".hero .name { font-size: 22.5pt; }", + ".section { margin-top: 5.6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 9.5pt; font-weight: 700; color: rgb(11, 122, 99); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 8.08pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.37mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 8.9pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: Consolas, \"Courier New\", monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.3mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 10.4pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(85, 94, 107); font-size: 8.9pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(85, 94, 107); font-size: 9.4pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 15.24mm 15.24mm; }", + ".header { padding: 15.24mm 15.24mm 5.6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(11, 122, 99); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(11, 122, 99); }", + ".main { counter-reset: cv-section 0; }", + ".main > .section > .section-title { counter-increment: cv-section 1; font-family: Consolas, \"Courier New\", monospace; font-weight: 600; }", + ".main > .section > .section-title::before { content: counter(cv-section, decimal-leading-zero) \" — \"; color: var(--cv-accent-color); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 15.24mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 57.6px; padding-bottom: 57.6px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1007.32px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Profil", + "y": 169.0625 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Arbeidserfaring", + "y": 239.609375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Utdanning", + "y": 2642.4375 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Prosjekter", + "y": 2789.765625 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Ferdigheter", + "y": 2880.125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Språk", + "y": 3022.53125 + } + ], + "effectiveMargin": "15.24mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "compact-8mm-letter", + "settings": { + "themeId": "ats-classic", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": "compact", + "pageSize": "letter", + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": 8, + "sectionGapMm": 3, + "entryGapMm": 2, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 3, + "measured": { + "width": 812, + "contentHeight": 3078, + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test\nOslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nEDUCATION\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 41.78125, + "y": 168.140625, + "width": 24.46875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 24.78125, + "y": 230.984375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 41.78125, + "y": 275.765625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 41.78125, + "y": 356.390625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 41.78125, + "y": 437.015625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 24.78125, + "y": 633.421875, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B04", + "x": 41.78125, + "y": 678.203125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B05", + "x": 41.78125, + "y": 758.828125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B06", + "x": 41.78125, + "y": 839.453125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E03", + "x": 24.78125, + "y": 1035.859375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B07", + "x": 41.78125, + "y": 1080.640625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B08", + "x": 41.78125, + "y": 1161.265625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B09", + "x": 41.78125, + "y": 1241.890625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E04", + "x": 24.78125, + "y": 1438.296875, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B10", + "x": 41.78125, + "y": 1483.078125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B11", + "x": 41.78125, + "y": 1563.703125, + "width": 22.734375, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B12", + "x": 41.78125, + "y": 1644.328125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E05", + "x": 24.78125, + "y": 1840.734375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B13", + "x": 41.78125, + "y": 1885.515625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B14", + "x": 41.78125, + "y": 1966.140625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B15", + "x": 41.78125, + "y": 2046.765625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E06", + "x": 24.78125, + "y": 2243.171875, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B16", + "x": 41.78125, + "y": 2287.953125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B17", + "x": 41.78125, + "y": 2368.578125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B18", + "x": 41.78125, + "y": 2449.203125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 24.78125, + "y": 2682.34375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E08", + "x": 24.78125, + "y": 2729.78125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 24.78125, + "y": 2813.953125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 41.78125, + "y": 2833.78125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "Arial, Helvetica, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 812, + "height": 3078.09375, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 816, + "height": 3078.09375, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "24.79px 0px", + "margin": "0px -4px 0px 0px" + }, + "header": { + "x": 0, + "y": 24.78125, + "width": 816, + "height": 108.734375, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 24.7937px 18.5953px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 133.515625, + "width": 816, + "height": 2919.796875, + "font": "Arial, Helvetica, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 24.7937px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #334155; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#334155 28%,transparent); --cv-ink: #111827; --cv-muted: #374151; --cv-paper: #ffffff; --cv-page-margin: 6.56mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: Arial, Helvetica, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 215.9mm; min-height: 279.4mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Arial, Helvetica, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(51, 65, 85); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(55, 65, 81); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(55, 65, 81); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 2.46mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 2.46mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.13mm; font-size: 12pt; font-weight: 700; color: rgb(51, 65, 85); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.2pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 1.5mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.62mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.31mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.48mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.39mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 1.64mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(55, 65, 81); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(55, 65, 81); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 6.56mm 6.56mm; }", + ".header { padding: 6.56mm 6.56mm 4.92mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(51, 65, 85); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(51, 65, 85); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 215.9mm 279.4mm; margin: 6.56mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 24.79px; padding-bottom: 24.79px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1006.42px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 133.515625 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Professional Experience", + "y": 195.359375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 2646.71875 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 2778.328125 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 2861 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 2994.421875 + } + ], + "effectiveMargin": "6.56mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "roomy-28mm-nb", + "settings": { + "themeId": "modern", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": "roomy", + "pageSize": null, + "dateFormat": null, + "language": "nb", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": 1.6, + "pageMarginMm": 28, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 4, + "measured": { + "width": 790, + "contentHeight": 4407, + "text": "Åse Fixture\nPlattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter\nase@example.test\nOslo, Norge\nPROFIL\nR01 Builds reliable and accessible career software using documented evidence.\nARBEIDSERFARING\nE01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nB01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2\nB04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4\nB10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5\nB13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUTDANNING\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROSJEKTER\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nFERDIGHETER\nC#\nReact\nNorsk\nAccessibility\nSPRÅK\nNorsk — Native", + "tokens": [ + { + "token": "R01", + "x": 141.875, + "y": 286.1875, + "width": 22.359375, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 124.875, + "y": 372.875, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 141.875, + "y": 424.6875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 141.875, + "y": 538.390625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 141.875, + "y": 652.09375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 124.875, + "y": 948.21875, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B04", + "x": 141.875, + "y": 1000.03125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B05", + "x": 141.875, + "y": 1113.734375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B06", + "x": 141.875, + "y": 1227.4375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E03", + "x": 124.875, + "y": 1523.5625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B07", + "x": 141.875, + "y": 1575.375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B08", + "x": 141.875, + "y": 1689.078125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B09", + "x": 141.875, + "y": 1802.78125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E04", + "x": 124.875, + "y": 2098.90625, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B10", + "x": 141.875, + "y": 2150.71875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B11", + "x": 141.875, + "y": 2264.421875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B12", + "x": 141.875, + "y": 2378.125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E05", + "x": 124.875, + "y": 2674.25, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B13", + "x": 141.875, + "y": 2726.0625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B14", + "x": 141.875, + "y": 2839.765625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B15", + "x": 141.875, + "y": 2953.46875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E06", + "x": 124.875, + "y": 3249.59375, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B16", + "x": 141.875, + "y": 3301.40625, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B17", + "x": 141.875, + "y": 3415.109375, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B18", + "x": 141.875, + "y": 3528.8125, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 124.875, + "y": 3871.25, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E08", + "x": 124.875, + "y": 3937.59375, + "width": 24.671875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "P01", + "x": 124.875, + "y": 4050.25, + "width": 25.875, + "height": 20, + "fontSize": "14.6667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 141.875, + "y": 4074.71875, + "width": 22.015625, + "height": 17, + "fontSize": "13.3333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 4406.75, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "21.3333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 4406.75, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "21.3333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "124.88px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 124.875, + "width": 793.6875, + "height": 119.6875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "21.3333px", + "color": "rgb(255, 255, 255)", + "background": "rgb(37, 99, 235)", + "padding": "0px 124.876px 26.7591px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 244.5625, + "width": 793.6875, + "height": 4037.3125, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "21.3333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 124.876px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #2563eb; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#2563eb 28%,transparent); --cv-ink: #111827; --cv-muted: #4b5563; --cv-paper: #ffffff; --cv-page-margin: 33.04mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Roboto, Arial, sans-serif; font-size: 10pt; line-height: 1.6; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(37, 99, 235); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(75, 85, 99); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(75, 85, 99); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 7.08mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 7.08mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 3.07mm; font-size: 12pt; font-weight: 700; color: rgb(37, 99, 235); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.2pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.92mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.89mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.89mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 2.12mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 2.01mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 5.31mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(75, 85, 99); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(75, 85, 99); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 33.04mm 33.04mm; }", + ".header { padding: 33.04mm 33.04mm 7.08mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(37, 99, 235); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(37, 99, 235); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 33.04mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 124.88px; padding-bottom: 124.88px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(872.76px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Profil", + "y": 244.5625 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Arbeidserfaring", + "y": 332.25 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Utdanning", + "y": 3830.625 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Prosjekter", + "y": 4009.625 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Ferdigheter", + "y": 4120.78125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Språk", + "y": 4214.703125 + } + ], + "effectiveMargin": "33.04mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "grid-and-bubbles", + "settings": { + "themeId": "minimal", + "accentColor": "#126b55", + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": "grid", + "columns": 2 + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": "bubble", + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 1, + "measured": { + "width": 790, + "contentHeight": 1123, + "text": "Åse Fixture\nCareer platform engineer\nase@example.test\nOslo, Norge\nProjects\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSkills\n\nC# · React · Norsk · Accessibility\n\nProfessional Experience\nE01 Platform engineer\nNordlys Fixture AS\nB01 Delivered accessible application workflows with documented outcomes.\nB02 Maintained reliable APIs and verified releases.\nProfessional Summary\nR01 Builds reliable and accessible career software using documented evidence.\nEducation\nE02 Computer science\nFixture University\nLanguages\nNorsk — Native", + "tokens": [ + { + "token": "P01", + "x": 60.46875, + "y": 211.59375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B03", + "x": 77.46875, + "y": 231.421875, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E01", + "x": 60.46875, + "y": 394.28125, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B01", + "x": 77.46875, + "y": 439.0625, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "B02", + "x": 77.46875, + "y": 464.03125, + "width": 23.71875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "R01", + "x": 77.46875, + "y": 541.9375, + "width": 24.46875, + "height": 15, + "fontSize": "13.3333px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + }, + { + "token": "E02", + "x": 60.46875, + "y": 620.84375, + "width": 26.09375, + "height": 16, + "fontSize": "14.6667px", + "fontFamily": "\"Helvetica Neue\", Arial, sans-serif", + "color": "rgb(17, 24, 39)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 1122.515625, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 1122.515625, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 60.46875, + "width": 793.6875, + "height": 116.59375, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px 26.4567px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 177.0625, + "width": 793.6875, + "height": 567.28125, + "font": "\"Helvetica Neue\", Arial, sans-serif", + "fontSize": "13.3333px", + "lineHeight": "18.9333px", + "color": "rgb(17, 24, 39)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #126b55; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#126b55 28%,transparent); --cv-ink: #111827; --cv-muted: #6b7280; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Helvetica Neue\", Arial, sans-serif; font-size: 10pt; line-height: 1.42; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Helvetica Neue\", Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(17, 24, 39); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(18, 107, 85); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(107, 114, 128); font-size: 10.5pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(107, 114, 128); font-size: 9.5pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 7mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 7mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(17, 24, 39); }", + ".section-title { letter-spacing: 0.01em; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.75mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9.5pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 11pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(107, 114, 128); font-size: 9.5pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(107, 114, 128); font-size: 10pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 16mm 16mm; }", + ".header { padding: 16mm 16mm 7mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(18, 107, 85); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(18, 107, 85); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-projects section-presentation-grid", + "title": "Projects", + "y": 177.0625 + }, + { + "key": "section section-skills section-presentation-bubble", + "title": "Skills", + "y": 281.84375 + }, + { + "key": "section section-experience section-presentation-rows", + "title": "Professional Experience", + "y": 359.75 + }, + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 508.40625 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 586.3125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 686.546875 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "long-sidebar-nb", + "settings": { + "themeId": "technical", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "nb", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": "grouped", + "skillGroups": [ + { + "name": "Samarbeid", + "items": [ + "Norsk", + "Tilgjengelighet" + ] + } + ], + "layout": null, + "sidebarWidthMm": 68, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [] + }, + "previewPages": 4, + "measured": { + "width": 790, + "contentHeight": 4118, + "text": "Åse Fixture\nPlattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter\nase@example.test\nOslo, Norge\nFerdigheter\nSamarbeid\nNorsk\nTilgjengelighet\nSpråk\nNorsk — Native\nProfil\nR01 Builds reliable and accessible career software using documented evidence.\nArbeidserfaring\nE01 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 1\nB01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE02 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 2\nB04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE03 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 3\nB07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE04 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 4\nB10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE05 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 5\nB13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nE06 Utvikler av dokumenterte arbeidsflyter og integrasjoner\nNordlys Fixture 6\nB16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nB18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.\nUtdanning\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nProsjekter\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.", + "tokens": [ + { + "token": "R01", + "x": 334.46875, + "y": 93.5, + "width": 23.234375, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E01", + "x": 317.46875, + "y": 182.171875, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B01", + "x": 334.46875, + "y": 224.453125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B02", + "x": 334.46875, + "y": 351.03125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B03", + "x": 334.46875, + "y": 477.609375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E02", + "x": 317.46875, + "y": 787.328125, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B04", + "x": 334.46875, + "y": 829.609375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B05", + "x": 334.46875, + "y": 956.1875, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B06", + "x": 334.46875, + "y": 1082.765625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E03", + "x": 317.46875, + "y": 1392.484375, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B07", + "x": 334.46875, + "y": 1434.765625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B08", + "x": 334.46875, + "y": 1561.34375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B09", + "x": 334.46875, + "y": 1687.921875, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E04", + "x": 317.46875, + "y": 1997.640625, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B10", + "x": 334.46875, + "y": 2039.921875, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B11", + "x": 334.46875, + "y": 2166.5, + "width": 21.59375, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B12", + "x": 334.46875, + "y": 2293.078125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E05", + "x": 317.46875, + "y": 2602.796875, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B13", + "x": 334.46875, + "y": 2645.078125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B14", + "x": 334.46875, + "y": 2771.65625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B15", + "x": 334.46875, + "y": 2898.234375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E06", + "x": 317.46875, + "y": 3207.953125, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B16", + "x": 334.46875, + "y": 3250.234375, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B17", + "x": 334.46875, + "y": 3376.8125, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B18", + "x": 334.46875, + "y": 3503.390625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E02", + "x": 317.46875, + "y": 3850.34375, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "E08", + "x": 317.46875, + "y": 3905.09375, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "P01", + "x": 317.46875, + "y": 4016.109375, + "width": 24.921875, + "height": 16, + "fontSize": "14px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + }, + { + "token": "B03", + "x": 334.46875, + "y": 4035.140625, + "width": 22.53125, + "height": 14, + "fontSize": "12.6667px", + "fontFamily": "Roboto, Arial, sans-serif", + "color": "rgb(16, 42, 67)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 4117.875, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 4117.875, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgb(255, 255, 255)", + "padding": "60.47px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 60.46875, + "y": 60.46875, + "width": 136.0625, + "height": 139.75, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(255, 255, 255)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px 0px 22.6772px" + }, + "main": { + "x": 257, + "y": 60.46875, + "width": 536.6875, + "height": 3996.9375, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(16, 42, 67)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "sidebar": { + "x": 0, + "y": 60.46875, + "width": 257, + "height": 3996.9375, + "font": "Roboto, Arial, sans-serif", + "fontSize": "12.6667px", + "lineHeight": "17.2267px", + "color": "rgb(255, 255, 255)", + "background": "rgb(15, 76, 92)", + "padding": "0px 60.4724px", + "margin": "0px" + }, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #0f4c5c; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#0f4c5c 28%,transparent); --cv-ink: #102a43; --cv-muted: #486581; --cv-paper: #ffffff; --cv-page-margin: 16mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: Roboto, Arial, sans-serif; font-size: 9.5pt; line-height: 1.36; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 24pt; color: rgb(16, 42, 67); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(15, 76, 92); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(72, 101, 129); font-size: 10pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(72, 101, 129); font-size: 9pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 6mm; }", + ".hero .name { font-size: 21pt; }", + ".section { margin-top: 6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 12pt; font-weight: 700; color: rgb(15, 76, 92); }", + ".section-title { padding-left: 2.5mm; border-left: 3px solid rgb(15, 76, 92); }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.48mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 9pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: \"Roboto Mono\", Consolas, monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.5mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 10.5pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(72, 101, 129); font-size: 9pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(72, 101, 129); font-size: 9.5pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".cols { display: grid; grid-template-columns: 68mm minmax(0px, 1fr); min-height: 297mm; }", + ".sidebar { background: var(--cv-accent-color); color: var(--cv-accent-ink); padding: 16mm; }", + ".sidebar .section-title { color: var(--cv-accent-ink); border-color: color-mix(in srgb,var(--cv-accent-ink) 38%,transparent); }", + ".sidebar .tag { border-color: color-mix(in srgb,var(--cv-accent-ink) 45%,transparent); }", + ".sidebar .contact, .sidebar .headline, .sidebar .entry-meta, .sidebar .entry-subtitle { color: var(--cv-accent-ink); }", + ".sidebar a { color: inherit; }", + ".main { padding: 16mm; }", + ".hero .name { color: var(--cv-accent-ink); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 16mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 60.47px; padding-bottom: 60.47px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1001.58px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-skills section-presentation-rows", + "title": "Ferdigheter", + "y": 284.984375 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Språk", + "y": 411.109375 + }, + { + "key": "section section-summary section-presentation-rows", + "title": "Profil", + "y": 60.46875 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Arbeidserfaring", + "y": 149.609375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Utdanning", + "y": 3817.78125 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Prosjekter", + "y": 3983.546875 + } + ], + "effectiveMargin": "16mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + }, + { + "fixture": "unbreakable-and-boundary", + "settings": { + "themeId": "code", + "accentColor": null, + "headingFont": null, + "bodyFont": null, + "density": null, + "pageSize": null, + "dateFormat": null, + "language": "en", + "headline": null, + "textColor": null, + "mutedColor": null, + "headingColor": null, + "backgroundColor": null, + "baseFontSizePt": null, + "headingSizePt": null, + "lineHeight": null, + "pageMarginMm": null, + "sectionGapMm": null, + "entryGapMm": null, + "headingStyle": null, + "headerStyle": null, + "skillsStyle": null, + "skillGroups": null, + "layout": null, + "sidebarWidthMm": null, + "sidebarSections": null, + "showPhoto": false, + "showPageNumbers": false, + "showIcons": true, + "sections": [ + { + "key": "summary", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "experience", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "education", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "projects", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "skills", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "languages", + "hidden": false, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + }, + { + "key": "interests", + "hidden": true, + "title": null, + "itemOrder": null, + "items": null, + "presentation": null, + "columns": null + } + ], + "overrides": {}, + "customSections": [ + { + "key": "boundary", + "title": "S09 Boundary content", + "items": [ + "R09 UnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidence", + "R10 Final recorded paragraph — æøå." + ], + "hidden": false, + "presetKey": null, + "contentType": "paragraphs" + } + ] + }, + "previewPages": 4, + "measured": { + "width": 790, + "contentHeight": 3707, + "text": "Åse Fixture\nPlatform engineer with experience in accessible and reliable application workflows\nase@example.test\nOslo, Norge\nPROFESSIONAL SUMMARY\nR01 Builds reliable and accessible career software using documented evidence.\nPROFESSIONAL EXPERIENCE\nE01 Workflow and integration engineer\nNordlys Fixture 1\nB01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE02 Workflow and integration engineer\nNordlys Fixture 2\nB04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE03 Workflow and integration engineer\nNordlys Fixture 3\nB07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE04 Workflow and integration engineer\nNordlys Fixture 4\nB10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE05 Workflow and integration engineer\nNordlys Fixture 5\nB13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nE06 Workflow and integration engineer\nNordlys Fixture 6\nB16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nB18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.\nEDUCATION\nE02 Computer science\nFixture University\nE08 Videreutdanning i universell utforming og informasjonsarkitektur\nFixture Academy\nPROJECTS\nP01 Evidence workspace\nB03 Created a source-grounded review workflow.\nSKILLS\nC#\nReact\nNorsk\nAccessibility\nLANGUAGES\nNorsk — Native\nS09 BOUNDARY CONTENT\n\nR09 UnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidence\n\nR10 Final recorded paragraph — æøå.", + "tokens": [ + { + "token": "R01", + "x": 74.59375, + "y": 200.546875, + "width": 21.015625, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E01", + "x": 57.59375, + "y": 271.09375, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B01", + "x": 74.59375, + "y": 314.84375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B02", + "x": 74.59375, + "y": 392.515625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B03", + "x": 74.59375, + "y": 470.1875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E02", + "x": 57.59375, + "y": 665.5, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B04", + "x": 74.59375, + "y": 709.25, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B05", + "x": 74.59375, + "y": 786.921875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B06", + "x": 74.59375, + "y": 864.59375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E03", + "x": 57.59375, + "y": 1059.90625, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B07", + "x": 74.59375, + "y": 1103.65625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B08", + "x": 74.59375, + "y": 1181.328125, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B09", + "x": 74.59375, + "y": 1259, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E04", + "x": 57.59375, + "y": 1454.3125, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B10", + "x": 74.59375, + "y": 1498.0625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B11", + "x": 74.59375, + "y": 1575.734375, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B12", + "x": 74.59375, + "y": 1653.40625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E05", + "x": 57.59375, + "y": 1848.71875, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B13", + "x": 74.59375, + "y": 1892.46875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B14", + "x": 74.59375, + "y": 1970.140625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B15", + "x": 74.59375, + "y": 2047.8125, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E06", + "x": 57.59375, + "y": 2243.125, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B16", + "x": 74.59375, + "y": 2286.875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B17", + "x": 74.59375, + "y": 2364.546875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B18", + "x": 74.59375, + "y": 2442.21875, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E02", + "x": 57.59375, + "y": 2673.921875, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "E08", + "x": 57.59375, + "y": 2729.390625, + "width": 23.328125, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "P01", + "x": 57.59375, + "y": 2821.25, + "width": 24.46875, + "height": 18, + "fontSize": "13.8667px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "B03", + "x": 74.59375, + "y": 2841.0625, + "width": 20.703125, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "S09", + "x": 94.75, + "y": 3426.5625, + "width": 22.296875, + "height": 13, + "fontSize": "10.7733px", + "fontFamily": "Consolas, \"Courier New\", monospace", + "color": "rgb(11, 122, 99)" + }, + { + "token": "R09", + "x": 57.59375, + "y": 3457.046875, + "width": 21.015625, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + }, + { + "token": "R10", + "x": 57.59375, + "y": 3625, + "width": 21.015625, + "height": 17, + "fontSize": "12.5333px", + "fontFamily": "\"Segoe UI\", Roboto, Arial, sans-serif", + "color": "rgb(23, 26, 32)" + } + ], + "body": { + "x": 0, + "y": 0, + "width": 790, + "height": 3707.296875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px", + "margin": "0px" + }, + "page": { + "x": 0, + "y": 0, + "width": 793.6875, + "height": 3707.296875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgb(255, 255, 255)", + "padding": "57.6px 0px", + "margin": "0px -3.6875px 0px 0px" + }, + "header": { + "x": 0, + "y": 57.59375, + "width": 793.6875, + "height": 111.46875, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px 21.1654px", + "margin": "0px" + }, + "main": { + "x": 0, + "y": 169.0625, + "width": 793.6875, + "height": 3473.84375, + "font": "\"Segoe UI\", Roboto, Arial, sans-serif", + "fontSize": "12.5333px", + "lineHeight": "17.9227px", + "color": "rgb(23, 26, 32)", + "background": "rgba(0, 0, 0, 0)", + "padding": "0px 57.6px", + "margin": "0px" + }, + "sidebar": null, + "parsedRules": [ + "* { box-sizing: border-box; }", + ":root { --cv-accent-color: #0b7a63; --cv-accent-ink: #fff; --cv-accent-soft: color-mix(in srgb,#0b7a63 28%,transparent); --cv-ink: #171a20; --cv-muted: #555e6b; --cv-paper: #ffffff; --cv-page-margin: 15.24mm; }", + "html, body { min-width: 0px; }", + "body { margin: 0px; background: rgb(233, 237, 242); color: var(--cv-ink); font-family: \"Segoe UI\", Roboto, Arial, sans-serif; font-size: 9.4pt; line-height: 1.43; print-color-adjust: exact; }", + ".page { width: 210mm; min-height: 297mm; margin: 0px auto; background: var(--cv-paper); overflow: visible; overflow-wrap: anywhere; word-break: normal; }", + "h1, h2 { font-family: \"Segoe UI\", Roboto, Arial, sans-serif; }", + ".name { margin: 0px; font-size: 25.5pt; color: rgb(23, 26, 32); line-height: 1.1; overflow-wrap: anywhere; }", + ".kicker { text-transform: uppercase; letter-spacing: 0.3em; font-size: 7.5pt; color: rgb(11, 122, 99); margin-bottom: 1.5mm; }", + ".headline { margin-top: 1.5mm; color: rgb(85, 94, 107); font-size: 9.9pt; }", + ".head-text, .main, .sidebar, .cols > * { min-width: 0px; }", + ".head-text { flex: 1 1 0%; }", + ".photo { width: 30mm; height: 30mm; overflow: hidden; flex: 0 0 auto; border: 1px solid var(--cv-accent-soft); }", + ".photo-square { border-radius: 2mm; }", + ".photo-rounded { border-radius: 5mm; }", + ".photo-circle { border-radius: 50%; }", + ".photo img { width: 100%; height: 100%; object-fit: cover; display: block; }", + ".contact { display: flex; gap: 3mm; flex-wrap: wrap; color: rgb(85, 94, 107); font-size: 8.9pt; margin-top: 2.5mm; }", + ".contact-stacked { flex-direction: column; gap: 1.8mm; }", + ".contact-item { display: inline-flex; align-items: center; gap: 1.2mm; min-width: 0px; max-width: 100%; overflow-wrap: anywhere; }", + ".contact a { color: inherit; text-decoration: none; min-width: 0px; overflow-wrap: anywhere; word-break: break-word; }", + ".main a { color: var(--cv-accent-color); text-decoration-color: var(--cv-accent-soft); }", + ".contact svg { width: 3.2mm; height: 3.2mm; flex: 0 0 auto; opacity: 0.85; }", + ".hero { margin-bottom: 5.6mm; }", + ".hero .name { font-size: 22.5pt; }", + ".section { margin-top: 5.6mm; }", + ".section:first-child { margin-top: 0px; }", + ".section-title { margin: 0px 0px 2.6mm; font-size: 9.5pt; font-weight: 700; color: rgb(11, 122, 99); }", + ".section-title { text-transform: uppercase; letter-spacing: 0.14em; font-size: 8.08pt; color: var(--cv-accent-color); border-bottom: 1px solid var(--cv-accent-soft); padding-bottom: 1.4mm; }", + ".section-presentation-grid { display: grid; grid-template-columns: repeat(var(--cv-section-columns,1),minmax(0,1fr)); column-gap: 4mm; align-items: start; }", + ".section-presentation-grid > .section-title { grid-column: 1 / -1; }", + ".section-presentation-grid > .entry { min-width: 0px; }", + ".section-presentation-compact > .entry { margin-bottom: 2.37mm; }", + ".section-presentation-compact > .bullets li { margin-bottom: 0.75mm; }", + ".section-presentation-bubble > .tags, .section-presentation-bubble > .bullets { list-style: none; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.4mm; }", + ".section-presentation-bubble > .bullets li, .section-presentation-bubble > .tags li { margin: 0px; border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; }", + ".section-presentation-bubble > .bullets li::marker { content: \"\"; }", + ".bullets { margin: 0px; padding-left: 4.5mm; }", + ".bullets li { margin: 0px 0px 1.6mm; }", + ".bullets li::marker { color: var(--cv-accent-color); }", + ".tags { list-style: none; margin: 0px; padding: 0px; display: flex; flex-wrap: wrap; gap: 1.8mm; }", + ".skills-text { margin: 0px; overflow-wrap: anywhere; }", + ".tag { border: 1px solid var(--cv-accent-soft); border-radius: 999px; padding: 0.7mm 2.2mm; font-size: 8.9pt; max-width: 100%; overflow-wrap: anywhere; }", + ".paragraphs p { margin: 0px 0px 1.8mm; white-space: pre-line; }", + ".skill-groups { display: grid; gap: 1.7mm; }", + ".skill-group { display: grid; grid-template-columns: minmax(24mm, 0.3fr) minmax(0px, 1fr); gap: 3mm; break-inside: avoid; }", + ".skill-group-name { font-family: Consolas, \"Courier New\", monospace; font-weight: 700; color: var(--cv-accent-color); overflow-wrap: anywhere; }", + ".skill-group-items { display: flex; flex-wrap: wrap; gap: 0.8mm 3mm; list-style: none; margin: 0px; padding: 0px; }", + ".skill-group-items li { overflow-wrap: anywhere; }", + ".entry { margin-bottom: 4.3mm; }", + ".entry:last-child { margin-bottom: 0px; }", + ".entry-head { display: flex; justify-content: space-between; gap: 1.5mm 4mm; align-items: baseline; flex-wrap: wrap; break-after: avoid; }", + ".entry-title { font-weight: 700; font-size: 10.4pt; min-width: 0px; flex: 1 1 50mm; overflow-wrap: anywhere; }", + ".entry-meta { color: rgb(85, 94, 107); font-size: 8.9pt; white-space: normal; text-align: right; max-width: 100%; overflow-wrap: anywhere; }", + ".entry-subtitle { color: rgb(85, 94, 107); font-size: 9.4pt; margin: 0.4mm 0px 1.2mm; }", + ".entry-tags { margin-top: 1.4mm; }", + ".main { padding: 0px 15.24mm 15.24mm; }", + ".header { padding: 15.24mm 15.24mm 5.6mm; display: flex; gap: 6mm; align-items: center; }", + ".header-band { background: rgb(11, 122, 99); color: rgb(255, 255, 255); }", + ".header-band .name, .header-band .headline, .header-band .contact, .header-band .contact-item, .header-band a { color: rgb(255, 255, 255); }", + ".header-centered { flex-direction: column; text-align: center; justify-content: center; }", + ".header-centered .contact { justify-content: center; }", + ".header-plain { border-bottom: 2px solid rgb(11, 122, 99); }", + ".main { counter-reset: cv-section 0; }", + ".main > .section > .section-title { counter-increment: cv-section 1; font-family: Consolas, \"Courier New\", monospace; font-weight: 600; }", + ".main > .section > .section-title::before { content: counter(cv-section, decimal-leading-zero) \" — \"; color: var(--cv-accent-color); }", + ".entry { break-inside: avoid; }", + ".entry-flow { break-inside: auto; }", + ".section-title { break-after: avoid; }", + ".section-title + .entry, .section-title + .bullets, .section-title + .tags, .section-title + .paragraphs, .section-title + .skill-groups { break-before: avoid; }", + ".section { break-inside: avoid; }", + ".section-flow { break-inside: auto; }", + ".tag, .contact-item { break-inside: avoid; }", + ".bullets li { break-inside: avoid; orphans: 2; widows: 2; overflow-wrap: anywhere; }", + ".bullets li.item-flow { break-inside: auto; }", + "@media print {\n body { background: transparent; }\n .page { width: auto; min-height: 0px; margin: 0px; }\n .cols { min-height: 0px; }\n .header { padding-top: 0px; }\n .main, .sidebar { padding-top: 0px; padding-bottom: 0px; }\n}", + "@page { size: 210mm 297mm; margin: 15.24mm 0px; }", + "html, body { overflow: hidden !important; background: transparent !important; }", + ".page { position: relative; transform-origin: left top; padding-top: 57.6px; padding-bottom: 57.6px; }", + ".header { padding-top: 0px !important; }", + ".main, .sidebar { padding-bottom: 0px !important; }", + ".cols { min-height: calc(1007.32px) !important; }", + ".cols > .main, .cols > .sidebar { padding-top: 0px !important; }" + ], + "sections": [ + { + "key": "section section-summary section-presentation-rows", + "title": "Professional Summary", + "y": 169.0625 + }, + { + "key": "section section-experience section-flow section-presentation-rows", + "title": "Professional Experience", + "y": 239.609375 + }, + { + "key": "section section-education section-presentation-rows", + "title": "Education", + "y": 2642.4375 + }, + { + "key": "section section-projects section-presentation-rows", + "title": "Projects", + "y": 2789.765625 + }, + { + "key": "section section-skills section-presentation-rows", + "title": "Skills", + "y": 2880.125 + }, + { + "key": "section section-languages section-presentation-rows", + "title": "Languages", + "y": 3022.53125 + }, + { + "key": "section section-custom:boundary section-presentation-rows", + "title": "S09 Boundary content", + "y": 3099.40625 + } + ], + "effectiveMargin": "15.24mm", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.34 Safari/537.36" + } + } + ] +} \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-1.png new file mode 100644 index 0000000..11f1d79 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-2.png new file mode 100644 index 0000000..ce82839 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-3.png new file mode 100644 index 0000000..d43f98a Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-4.png new file mode 100644 index 0000000..3769fb8 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/comparison-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/export.pdf new file mode 100644 index 0000000..1929991 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-1.png new file mode 100644 index 0000000..8cf5047 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-2.png new file mode 100644 index 0000000..b5db7bb Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-3.png new file mode 100644 index 0000000..7b24e23 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-4.png new file mode 100644 index 0000000..4894e37 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-5.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-5.png new file mode 100644 index 0000000..1d99b4e Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/pdf-5.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-1.png new file mode 100644 index 0000000..c494563 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-2.png new file mode 100644 index 0000000..0992952 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-3.png new file mode 100644 index 0000000..413a454 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-4.png new file mode 100644 index 0000000..1043edd Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/preview-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/render.html new file mode 100644 index 0000000..174ebf8 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/roomy-28mm-nb/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Modern + + + +

Åse Fixture

Plattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter
ase@example.testOslo, Norge

Profil

  • R01 Builds reliable and accessible career software using documented evidence.

Arbeidserfaring

E01 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 1
  • B01 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B02 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B03 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E02 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 2
  • B04 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B05 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B06 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E03 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 3
  • B07 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B08 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B09 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E04 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 4
  • B10 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B11 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B12 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E05 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 5
  • B13 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B14 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B15 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
E06 Utvikler av dokumenterte arbeidsflyter og integrasjoner
Nordlys Fixture 6
  • B16 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B17 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.
  • B18 Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere.

Utdanning

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Prosjekter

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Ferdigheter

  • C#
  • React
  • Norsk
  • Accessibility

Språk

  • Norsk — Native
+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-1.png new file mode 100644 index 0000000..d8efd37 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-2.png new file mode 100644 index 0000000..f9eeef9 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-3.png new file mode 100644 index 0000000..29d88e2 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-4.png new file mode 100644 index 0000000..09d326d Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/comparison-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/export.pdf b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/export.pdf new file mode 100644 index 0000000..e798300 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/export.pdf differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-1.png new file mode 100644 index 0000000..64f9c46 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-2.png new file mode 100644 index 0000000..5fdc8c0 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-3.png new file mode 100644 index 0000000..664bf4d Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-4.png new file mode 100644 index 0000000..dcb83e3 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/pdf-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-1.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-1.png new file mode 100644 index 0000000..037e6c9 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-1.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-2.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-2.png new file mode 100644 index 0000000..1d556f5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-2.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-3.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-3.png new file mode 100644 index 0000000..42a08d6 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-3.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-4.png b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-4.png new file mode 100644 index 0000000..09e34e7 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/preview-4.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/render.html b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/render.html new file mode 100644 index 0000000..a22258a --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/fidelity/unbreakable-and-boundary/render.html @@ -0,0 +1,97 @@ + + + + +Åse Fixture — Code + + + +

Åse Fixture

Platform engineer with experience in accessible and reliable application workflows
ase@example.testOslo, Norge

Professional Summary

  • R01 Builds reliable and accessible career software using documented evidence.

Professional Experience

E01 Workflow and integration engineer
Nordlys Fixture 1
  • B01 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B02 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B03 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E02 Workflow and integration engineer
Nordlys Fixture 2
  • B04 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B05 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B06 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E03 Workflow and integration engineer
Nordlys Fixture 3
  • B07 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B08 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B09 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E04 Workflow and integration engineer
Nordlys Fixture 4
  • B10 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B11 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B12 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E05 Workflow and integration engineer
Nordlys Fixture 5
  • B13 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B14 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B15 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
E06 Workflow and integration engineer
Nordlys Fixture 6
  • B16 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B17 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.
  • B18 Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers.

Education

E02 Computer science
Fixture University
E08 Videreutdanning i universell utforming og informasjonsarkitektur
Fixture Academy

Projects

P01 Evidence workspace
  • B03 Created a source-grounded review workflow.

Skills

  • C#
  • React
  • Norsk
  • Accessibility

Languages

  • Norsk — Native

S09 Boundary content

R09 UnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidenceUnbreakableEvidence

R10 Final recorded paragraph — æøå.

+ + \ No newline at end of file diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/final-browser-summary.json b/docs/redesign/phase-5/p5-09-readiness/evidence/final-browser-summary.json new file mode 100644 index 0000000..b677795 --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/final-browser-summary.json @@ -0,0 +1,12 @@ +{ + "source": "complete command exit status and tool output; initial raw reporter directory was subsequently cleared by the dedicated rate suite", + "command": "npm.cmd run test:e2e -- --reporter=line,json", + "actualPasses": 96, + "expectedFailures": 0, + "exitCode": 0, + "elapsed": "15.0 minutes", + "inheritedCases": 93, + "newReadinessCases": 3, + "supplementalEvidenceRun": "supplemental-browser-summary.json", + "supplementalCountsAreNotAddedToBaseline": true +} diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-en.png new file mode 100644 index 0000000..17f56a5 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-nb.png new file mode 100644 index 0000000..5227e88 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-dark-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-en.png new file mode 100644 index 0000000..3e02288 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-nb.png new file mode 100644 index 0000000..d491754 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/multipage-end-light-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-en.png new file mode 100644 index 0000000..f84e734 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-nb.png new file mode 100644 index 0000000..6af619d Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-dark-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-en.png new file mode 100644 index 0000000..5599d50 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-nb.png new file mode 100644 index 0000000..c8304d3 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/one-page-light-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-en.png new file mode 100644 index 0000000..69f0068 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-nb.png new file mode 100644 index 0000000..4b126d4 Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-dark-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-en.png b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-en.png new file mode 100644 index 0000000..6d45a5f Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-en.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-nb.png b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-nb.png new file mode 100644 index 0000000..994209f Binary files /dev/null and b/docs/redesign/phase-5/p5-09-readiness/evidence/preview-390-light-nb.png differ diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/supplemental-browser-summary.json b/docs/redesign/phase-5/p5-09-readiness/evidence/supplemental-browser-summary.json new file mode 100644 index 0000000..d26bb0f --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/supplemental-browser-summary.json @@ -0,0 +1,78 @@ +{ + "statistics": { + "startTime": "2026-10-07T05:47:41.170Z", + "duration": 197887.734, + "expected": 7, + "skipped": 0, + "unexpected": 0, + "flaky": 0 + }, + "actualPasses": 7, + "expectedFailures": 0, + "unexpected": [], + "cases": [ + { + "file": "builder-preview-keyboard.spec.ts", + "title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/en preview keyboard, pagination and responsive state", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "builder-preview-keyboard.spec.ts", + "title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/nb preview keyboard, pagination and responsive state", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "builder-preview-keyboard.spec.ts", + "title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] light/nb preview keyboard, pagination and responsive state", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "builder-preview-keyboard.spec.ts", + "title": "[PRES-C06 PRES-C07 PRES-C10 PRES-E08] dark/en preview keyboard, pagination and responsive state", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "cv-readiness.spec.ts", + "title": "[PRES-C06 C08 C09 C12] native preview/PDF fidelity corpus records unchanged output at fixed settings", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "cv-readiness.spec.ts", + "title": "[PRES-C10 E05] independent authenticated clients cannot save or restore a stale CV revision", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + }, + { + "file": "cv-readiness.spec.ts", + "title": "[PRES-C06 C10 E08] stale editor retains and downloads its draft; reviewed reload resumes versioned saves", + "expectedStatus": "passed", + "outcome": "expected", + "actualStatuses": [ + "passed" + ] + } + ] +} diff --git a/docs/redesign/phase-5/p5-09-readiness/evidence/visual-manifest.json b/docs/redesign/phase-5/p5-09-readiness/evidence/visual-manifest.json new file mode 100644 index 0000000..7372c7c --- /dev/null +++ b/docs/redesign/phase-5/p5-09-readiness/evidence/visual-manifest.json @@ -0,0 +1,566 @@ +{ + "sourceBase": "ac6d78289d487c5ceae3e59db435f7ede24bb6f2", + "runtime": "local Windows / Chromium 151 / real CLI PDF / disposable SQLite", + "screenshots": [ + { + "file": "fidelity/compact-8mm-letter/comparison-1.png", + "sha256": "963a24d18c207cfa931bfec4284ddb5242b2d18ffe5e80940cc8a7bff138a684", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/comparison-2.png", + "sha256": "bb5011bee2e1678fb73a996957947e77bd753383436baba2f4329739b2512843", + "renderedReview": true + }, + { + "file": "fidelity/compact-8mm-letter/comparison-3.png", + "sha256": "b24f3c293f4819692b42437dd79c5e665e56ee27621fd3cc825e70399b7eabb4", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/pdf-1.png", + "sha256": "6fbd091138add8502dc2696a8c43168574572a653e80fe72bd38b5f25da9c467", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/pdf-2.png", + "sha256": "bb5064c7a35eb49b8e686b712c77eef65000fd8e7d6d93c0f58c8990c73099bf", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/pdf-3.png", + "sha256": "e0775b26c23ff900e5ebcf3d93624685a115254c0d6a32c9df27874cfbe15dad", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/pdf-4.png", + "sha256": "aa4ebbbca95ff77344099bda45f5035443077cdc72f50107169670bd35af0d13", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/preview-1.png", + "sha256": "a2cb2bbd7561414c4c106e563281519adc8f9b7758b37a04d6e29d4e1c0a7461", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/preview-2.png", + "sha256": "233e63be82dbfc86ace46d78c8603ddf45fe8bdd600ac2c1ee8a007563c818a9", + "renderedReview": false + }, + { + "file": "fidelity/compact-8mm-letter/preview-3.png", + "sha256": "16fe6e75cd65b11ec9b135113741217c5ff14322d565d0f5ac2818a5c25afbac", + "renderedReview": false + }, + { + "file": "fidelity/default-ats-classic/comparison-1.png", + "sha256": "20003e00eaf698edf3567039358c5b5ba56f00052e9eb65be201740818a9778c", + "renderedReview": true + }, + { + "file": "fidelity/default-ats-classic/pdf-1.png", + "sha256": "3f2c71d881ee2f8e4b88f50581c43f48ed437e821f71afd06ab97f3aa0b75d88", + "renderedReview": false + }, + { + "file": "fidelity/default-ats-classic/preview-1.png", + "sha256": "7566691e25617239adb50d87f40ee53fb407c144fe45d7c6f788f268d2ed11c0", + "renderedReview": false + }, + { + "file": "fidelity/default-code/comparison-1.png", + "sha256": "aa1f65324d61c5173408ed13b2386ac83fe5f4ec22d7fdcc3164246814c838de", + "renderedReview": true + }, + { + "file": "fidelity/default-code/pdf-1.png", + "sha256": "df0c4acb3c032fde8f7ee5cf37bc88c767b51a57cd7a00727125ca05bdb4008a", + "renderedReview": false + }, + { + "file": "fidelity/default-code/preview-1.png", + "sha256": "3fd00a1bb6ec402c90e55efaa69f05cc7458e6beaef07b5471e4f276ed4e79a2", + "renderedReview": false + }, + { + "file": "fidelity/default-creative/comparison-1.png", + "sha256": "0ebb11f83c01819166924122b0d8d4963d9c97de0766610f312af88cc156ffde", + "renderedReview": true + }, + { + "file": "fidelity/default-creative/pdf-1.png", + "sha256": "5f603d862b134679dfe7536b8ce2ad3190a044daadbe126920055bc23f025f0b", + "renderedReview": false + }, + { + "file": "fidelity/default-creative/preview-1.png", + "sha256": "9728bd579f071b91b679f58a10c9b566ae740cfb818a20ed0536bc6232d1e052", + "renderedReview": false + }, + { + "file": "fidelity/default-elegant/comparison-1.png", + "sha256": "de337a78c4a365ef6365d4948a4d5a9f3fb0af174254cfec079e069538aa7fcf", + "renderedReview": true + }, + { + "file": "fidelity/default-elegant/pdf-1.png", + "sha256": "e1da0ec1133ca8ec8e101f45c35f9a7a619f7e701922ace98b4f07c210618446", + "renderedReview": false + }, + { + "file": "fidelity/default-elegant/preview-1.png", + "sha256": "478d04883ea79ef7b8c0fb0d693a032184374605c418550555655c2e53446fe9", + "renderedReview": false + }, + { + "file": "fidelity/default-executive/comparison-1.png", + "sha256": "bf533b7e7beec4b498b47ba0e06581713a0a429fe782632c127a5dccb4c993be", + "renderedReview": true + }, + { + "file": "fidelity/default-executive/pdf-1.png", + "sha256": "19b31b64f7ef931ae9145cdbaf593c753ec1acf1f83af60dde52b7e579fb48c5", + "renderedReview": false + }, + { + "file": "fidelity/default-executive/preview-1.png", + "sha256": "afa148348ba40708f926041a1dce5fb3f41938778ad498532449cabd13b55b27", + "renderedReview": false + }, + { + "file": "fidelity/default-minimal/comparison-1.png", + "sha256": "373706cde389ab8f99c400d63ffa1eeffb8d9a3e3c82b3ca60f6804b551334ac", + "renderedReview": true + }, + { + "file": "fidelity/default-minimal/pdf-1.png", + "sha256": "8ecbf45f58ced6ff8c0147b9e6336ecb2c4f87e4f7affbe557cb308f5bb2ab57", + "renderedReview": false + }, + { + "file": "fidelity/default-minimal/preview-1.png", + "sha256": "1397b2ac233e5f6fb3b17394de0c092aad1d2ad6c587e461cbae2c49b4bca26e", + "renderedReview": false + }, + { + "file": "fidelity/default-modern/comparison-1.png", + "sha256": "3a575066321974ea82146c513d354c15b001f8e61bb3b5b2950ca65ea45b7dee", + "renderedReview": true + }, + { + "file": "fidelity/default-modern/pdf-1.png", + "sha256": "fd94ec735ffef91d46f5497f23a4ed66358255a49008950832540ec0da3ab236", + "renderedReview": false + }, + { + "file": "fidelity/default-modern/preview-1.png", + "sha256": "1fcc516cc8c58de123e31ee4a6618ed27b3a403079104812f3bf9e1c6cacdd0d", + "renderedReview": false + }, + { + "file": "fidelity/default-nordic/comparison-1.png", + "sha256": "65a943647105dce9be4d63494b08200d0d96529c4da0fbed5a3cf46b0b32a6da", + "renderedReview": true + }, + { + "file": "fidelity/default-nordic/pdf-1.png", + "sha256": "d451ece010d9016ef634e8c33802447b868584e6b20c1718b4ae4879e7f51935", + "renderedReview": false + }, + { + "file": "fidelity/default-nordic/preview-1.png", + "sha256": "a9e2952bd6089142c9b278b8e21df82ccb3ffdce961fad6b20771efa16292a7c", + "renderedReview": false + }, + { + "file": "fidelity/default-technical/comparison-1.png", + "sha256": "603b8717828875a49f2c61c69d593b753d7522f4ed733f6a06a6fd329f636637", + "renderedReview": true + }, + { + "file": "fidelity/default-technical/pdf-1.png", + "sha256": "b36ce0c780157ee6d345a6b0113a01cd7a5d5abb63092fc1679891d92ed9fa71", + "renderedReview": false + }, + { + "file": "fidelity/default-technical/preview-1.png", + "sha256": "a761eacab76027eb6f1b8373d4c4476382575b23ac7fc9b6f758581b00900aca", + "renderedReview": false + }, + { + "file": "fidelity/grid-and-bubbles/comparison-1.png", + "sha256": "fec1f01860c5a612ae10d018ee5cef356ea50bebf33a5087ffefffa2adbd2f41", + "renderedReview": true + }, + { + "file": "fidelity/grid-and-bubbles/pdf-1.png", + "sha256": "cb881a57577f521c81c7dde58ca32b0262234487a0ce53b5a00c99d9a7e903e9", + "renderedReview": false + }, + { + "file": "fidelity/grid-and-bubbles/preview-1.png", + "sha256": "4c57fb0b4951546bba18f4b3d6903da0dbf736e6066cf9a3892a9374fd28dcef", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/comparison-1.png", + "sha256": "93bd790bd3f07a17adc0a951f84a6f14400453601464498cc586c2db8098ae7a", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/comparison-2.png", + "sha256": "11540a9e06fb6778535c9f7c182685de2f1f6158006fdbbea979cddf7fe1c53e", + "renderedReview": true + }, + { + "file": "fidelity/long-en-minimal/comparison-3.png", + "sha256": "f2438405776b2d521af6149978401a4f64c39c3b8207eea0317c0ab1c008f456", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/pdf-1.png", + "sha256": "8a7b3055bcbd2c34d33be80fe45bc5fa6d127b542cafd4c80bec00a652d1f24a", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/pdf-2.png", + "sha256": "72cb181a5676a3b7c8d137f49be15e878e543e58bde60a7ca745989d86a4df6c", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/pdf-3.png", + "sha256": "299573a13a6bcbcf7389e051447b97413d5ad8574020f103f058fed469c12f5b", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/pdf-4.png", + "sha256": "91fe1f4979a64dfd613eebae39e52c0ec03a59d04678cfbb3c463a459da64cb6", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/preview-1.png", + "sha256": "914f1c5b081f9e1eb2e6c21d6d0555fe0aabdc3e51bc701ab14801cd1b11a3df", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/preview-2.png", + "sha256": "59a21bae066f2ba491fcefbb356029e42a9bb57485c8e1fadfbf3e3441645965", + "renderedReview": false + }, + { + "file": "fidelity/long-en-minimal/preview-3.png", + "sha256": "36567310b783dfd820771bf5452001929041f180d70cf18b4872ca8479cf8086", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/comparison-1.png", + "sha256": "c1cceafc4477ee7dbc5efbe075a8ffcefd0f28d250f1d6fccaa410c6e1e52384", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/comparison-2.png", + "sha256": "413159687ed97811abbb243eb14d4b9618375dc48aa04665531234cb71f37009", + "renderedReview": true + }, + { + "file": "fidelity/long-nb-code/comparison-3.png", + "sha256": "7f1c661f9c49891789146a65305764a9f5f912c548e0019fea7ebfe3ae205bf6", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/pdf-1.png", + "sha256": "60643502f571c9d0486656e6eddb3935dce320fa70e71822ade3b065811ee0f1", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/pdf-2.png", + "sha256": "999184ae7299ab6e0d96cb8dcd7789826d30fc27c1dab11fafaf109a590eb72d", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/pdf-3.png", + "sha256": "f0a3f87ba1e2b4b131a11e33bfdd05588351b39b0340837a9c09832b4a3d8ce1", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/pdf-4.png", + "sha256": "4686892dddbb8411462f38333c9e29c637da16e0f8bcf153b3c6d386d8cdf8f3", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/preview-1.png", + "sha256": "ff20168f3665e23d3e9274415b40a08fa15e3efb6cba9faeb3d0a57d2ea54f91", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/preview-2.png", + "sha256": "d29c43cfda4b276a4b019ec88dd7922b88e962d49bf2bf599984bb7d687bcb27", + "renderedReview": false + }, + { + "file": "fidelity/long-nb-code/preview-3.png", + "sha256": "3b88f787a8fd6754170cc48cf63bb2e485d7cb5cc966e3dbf81796de79e9ef03", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/comparison-1.png", + "sha256": "13d0b9a7514912c2e9c94458d798ff3584340febbf8f555227d69b517bb725a0", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/comparison-2.png", + "sha256": "929244e3d1ab368dde238a7ed695f74c4c873559f61f5bbbca4094e5136e3aaa", + "renderedReview": true + }, + { + "file": "fidelity/long-sidebar-nb/comparison-3.png", + "sha256": "02e655affe48ae6eff1db0f4c7a3bdd7c1f08d81f927f4d1c4facd322da9d34b", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/comparison-4.png", + "sha256": "7f2eb4e1d42e9e1e060bf17a04995510bb09b61c7079e2a9636e262bc892f3d6", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/pdf-1.png", + "sha256": "07603a2a4cf1ea248b30b4fca470faf933afefbb4ad763a1cf1ac385fa6c7e78", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/pdf-2.png", + "sha256": "d85cb8db7809065600832918bcbfdc54fa628ab170f2d5cb92b49b833918ee0a", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/pdf-3.png", + "sha256": "f2efdd1c7a66eac97ed2241c72fd0d0dff62ed3c81c89b97fce7b727e30c8684", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/pdf-4.png", + "sha256": "1723798e0358de8b97a043d6be95fee1d483a6cb168c58ce7d71184a6bed05ba", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/pdf-5.png", + "sha256": "54163d1964f6de1c83b6056bc0387af13cd0964320f09e1a75db73fd03fe572b", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/preview-1.png", + "sha256": "9471be1b0c81b5b9e1865cdc8d33b3f6ed81afb9349e830cbd6f383ea15e3da9", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/preview-2.png", + "sha256": "6b3c166203eb660ce4c6336732f41798921fcdeace9e4f98b6c887fd3e488dc1", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/preview-3.png", + "sha256": "b386a82ddfa3b551ce59c13dc4fbfa14373a97eaf736f01c345b85494e705f26", + "renderedReview": false + }, + { + "file": "fidelity/long-sidebar-nb/preview-4.png", + "sha256": "9ca022e3b6763b08ea597b630bc9b2bd1dceae2f5dee1def82060b2c98a08ede", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/comparison-1.png", + "sha256": "046621a27b88301027df4b7328e935ef7663d860e341866a3c657bd0552d60cb", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/comparison-2.png", + "sha256": "24fe5095bd9efa33b50672116cf3aa038b095cb1a421ef7000ab4ca962123620", + "renderedReview": true + }, + { + "file": "fidelity/roomy-28mm-nb/comparison-3.png", + "sha256": "e4c0bba94e0919510636d37dda7f0474f5d8eae3b46c15cb02ac98250d9f6897", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/comparison-4.png", + "sha256": "ff3dd7f24a0b3df15e01dd1d6fd038d16ad4cbc529ef3c055b2b9fe66c50b422", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/pdf-1.png", + "sha256": "89da56efbd1dc908095e0aefb635fcde6d550a9ddb63bbe8142060dc754b964b", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/pdf-2.png", + "sha256": "d5bceb2f0d044aa9fd20934733aadedaefcdfa4e9ac32a1d9ea0b5960e84f539", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/pdf-3.png", + "sha256": "5878c9fc38877d33a246c2d20cf2cacab1557c5b92bf7efbc51a65ce7a94b09b", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/pdf-4.png", + "sha256": "c2186f10c633d867cb055759c8fe2bf88d4c0f36b901d2cefd5f217ccba9deea", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/pdf-5.png", + "sha256": "b95915bbd3a482311f0810c48c7c87744cb0d7ce0290bac25d054e1c4fdfbacd", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/preview-1.png", + "sha256": "176970b003229cf810bef992e00b457bd7d1483660e7d6900f84eaed9c1cce35", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/preview-2.png", + "sha256": "62691d5a873fef7673184eccad5dda212955c14b13ba27ecbc21188417c9c204", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/preview-3.png", + "sha256": "5cdc58d7655abd1820f1b77779217130b51c2053bf8a76ffc04bb3ef77a4572b", + "renderedReview": false + }, + { + "file": "fidelity/roomy-28mm-nb/preview-4.png", + "sha256": "2cfbfeee6ed2320e4841b3912ec792bcd64d192d4ac9b2957ac820d7ae1cb7ac", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/comparison-1.png", + "sha256": "531298e0488edf3be3c796d717a7e452a227727d90118bac49208b2214d035b4", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/comparison-2.png", + "sha256": "8aedb6f4dbcec7fc65fb61bc08f25599096830d585f94734f5a423c43f1f9815", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/comparison-3.png", + "sha256": "4c6db1a38467fe6e4ce8c93c77a5aba1bd2083dce2699506e5468f7f4cd69fb7", + "renderedReview": true + }, + { + "file": "fidelity/unbreakable-and-boundary/comparison-4.png", + "sha256": "2752d811ca97c44a1164f91b11f616187155b6bccc3e9079e8fbfcd3974f75fc", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/pdf-1.png", + "sha256": "97da00811584f91deb3b6592f01038e8c3410dabec9618fa8f9599d460cb1877", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/pdf-2.png", + "sha256": "90176d4a56f3dc6166e8923b5bbfa8c97d3433342b128c1d6449064862e901bc", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/pdf-3.png", + "sha256": "f6ba81dbbc98edab0309aa640ee9cfde60fb1422cbbd010a6829a63df6b23ac1", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/pdf-4.png", + "sha256": "d8cf9f8d3b45c1df572966adb0d1b69d93f6f6299db7224fbd8cd03f76bd2c7c", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/preview-1.png", + "sha256": "c035f1713b08a08e7ce7995ae455478028ad6014c213f645fe86938e6c628187", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/preview-2.png", + "sha256": "b87f42ddf0b55ad3d0c20471634f6d640e9ef889fe1bcb04eedba0de21b97d96", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/preview-3.png", + "sha256": "26e05cf9e13a824c553dd0bb8ac37c800c92cc2070028c9d35f527601b41de1f", + "renderedReview": false + }, + { + "file": "fidelity/unbreakable-and-boundary/preview-4.png", + "sha256": "3f5d05f221230d0bc69cc914f86bf299a934d4f68fa6aa386c2b7bfc828c48aa", + "renderedReview": false + }, + { + "file": "one-page-light-en.png", + "sha256": "8b9e15eebb219a783e7e207087969918eb6c5497c583e1da7caf07f831edc479", + "renderedReview": true + }, + { + "file": "multipage-end-light-en.png", + "sha256": "6568eaace83073239a23ef879a51c4b29e99aa3157f4a6e5de51e6ed1371f599", + "renderedReview": false + }, + { + "file": "preview-390-light-en.png", + "sha256": "6830df865787a77ee3e34c171fd62ca04eceb750bf966e7128a02b9280c84116", + "renderedReview": true + }, + { + "file": "one-page-dark-nb.png", + "sha256": "8cedc7ba0066c5a1b2a36f0f6d3e419dff045793026193a33d5ab2e4d6ee978d", + "renderedReview": true + }, + { + "file": "multipage-end-dark-nb.png", + "sha256": "9adc7e25e93c1e664680ecd0539f6df60b06de6a25fa63348449dee1f19ec5f2", + "renderedReview": false + }, + { + "file": "preview-390-dark-nb.png", + "sha256": "3a6cd8a8b88dc463f5d70e70f86a79e304538151a24293d6d81fe3aab94fc48a", + "renderedReview": true + }, + { + "file": "one-page-light-nb.png", + "sha256": "52ba9678b8cebf1ac7540808e33001971535fa129d09981297b228ced83d03fb", + "renderedReview": true + }, + { + "file": "multipage-end-light-nb.png", + "sha256": "6eb6cd9eadfc82e494192cc3eba366e7657667dc6c1e2dc0b8a6037954140737", + "renderedReview": false + }, + { + "file": "preview-390-light-nb.png", + "sha256": "b339fff642fdc6777b288ef40c4d5078a6441ac2e4487954529abb97537526a2", + "renderedReview": true + }, + { + "file": "one-page-dark-en.png", + "sha256": "88c3d0f39bdaeb3be4568c162ce8af1247f469169325a4df9adb5174b769d3eb", + "renderedReview": true + }, + { + "file": "multipage-end-dark-en.png", + "sha256": "7aa37785b0b964a4b5a7d7c684dfd6eeaf2bf6e68c905e510d0105982911eabf", + "renderedReview": false + }, + { + "file": "preview-390-dark-en.png", + "sha256": "07214e3f8cf0af948b1b925cfcc6b6c110e85d1fa1f9956c2ba550768bfbbd7f", + "renderedReview": true + }, + { + "file": "before-default-modern.png", + "sha256": "c9a04df712eadee4f62ca782224a33e9da95a0e9a7fd9ee39c7095065c7bcf2a", + "renderedReview": true + }, + { + "file": "conflict-draft-retained.png", + "sha256": "ba91feec9058be58ce26ad39de4c8bf4f205d6c7561ab190ecde0585b993fa18", + "renderedReview": true + } + ] +} diff --git a/docs/roadmap/todo.md b/docs/roadmap/todo.md index 35cbc2c..f9a244a 100644 --- a/docs/roadmap/todo.md +++ b/docs/roadmap/todo.md @@ -4,6 +4,8 @@ Status reconciled: 2026-10-07. ## Current repository work +- **P5-09 readiness checkpoint — NO-GO for CV redesign:** [integrity/rendering evidence](../redesign/phase-5/p5-09-readiness/README.md) proves owner-scoped expected-version save/restore, atomic comparison, immutable settings history and recoverable drafts. G-CV-REV is satisfied locally. Three bounded CSS/export/margin corrections restore intended rules, but six of sixteen native fidelity fixtures still fail materially; G-CV-RENDER remains open. Baseline: **941 backend (+5) / 422 frontend (+4) / 96 actual browser passes (+3)**, security 9/6/1, configuration 3. Next: separately authorised pagination-fidelity repair and remaining photo/wrapping/deployment-font qualification. No P5-09+ or B07; F04 and human screen-reader acceptance stay open. P2-D01 is ordinary passing. + - **P5-08b — Job sections complete:** [section architecture/preservation record](../redesign/phase-5/p5-08b/README.md) owns seven URL-backed sections, Application and Timeline subsections, current versus frozen documents, readable Timeline/Notes/tasks/correspondence/interview presentation and local read-error handling. Existing native packages, legacy/numeric links, query/history, Jobs Back focus and all domain owners remain. Final baseline: **936 backend / 418 frontend (+6) / 93 actual browser passes (+5)**, zero expected failures; security 9/6/1, configuration 3. Eight scoped mounted-page scans have no violations but retain incomplete findings; human screen-reader acceptance is not passed. Stop before P5-09: revision/rendering gates remain; F04 stays open. Historical checkpoint counts below are not current expected failures. - **P5-08b readiness complete — GO:** [native package/navigation/accessibility record](../redesign/phase-5/p5-08b-readiness/README.md) owns the provider-compatible capture repair, frozen source/file/account-ZIP proof, existing disclosure destinations, retained query/history and scoped ARIA/keyboard fixes. Backend 936 (+2), frontend 412 (+4), browser 88 actual (+4 new and P2-D01 converted to a real pass), zero expected failures; security 9/6/1 and configuration 3. Connor approved preserving follow-up metadata and deferring absent mode-specific UI to the mail phase. No deeper redesign, CV or B07 work. F04 and manual screen-reader acceptance remain open. Older checkpoint counts below are historical. diff --git a/job-tracker-ui/e2e/account-isolation.spec.ts b/job-tracker-ui/e2e/account-isolation.spec.ts index 4d8779e..e76cadc 100644 --- a/job-tracker-ui/e2e/account-isolation.spec.ts +++ b/job-tracker-ui/e2e/account-isolation.spec.ts @@ -102,7 +102,7 @@ test("crafted CV identifiers cannot cross read update delete or job-association expect(await attach.text()).toContain("The job application is unavailable."); expect(await (await b.api.get(`${apiUrl}/cv/variants`)).json()).toEqual([]); expect(await (await a.api.get(`${apiUrl}/cv/variants/${variant.id}`)).json()).toMatchObject({ name: "A CV", jobApplicationId: job.id }); - expect((await a.api.put(`${apiUrl}/cv/variants/${variant.id}`, { headers: a.headers, data: { name: "A legitimate edit", settings: variant.settings } })).status()).toBe(200); + expect((await a.api.put(`${apiUrl}/cv/variants/${variant.id}`, { headers: a.headers, data: { name: "A legitimate edit", settings: variant.settings, expectedVersion: variant.version } })).status()).toBe(200); expect((await a.api.delete(`${apiUrl}/cv/variants/${variant.id}`, { headers: a.headers })).status()).toBe(204); }); diff --git a/job-tracker-ui/e2e/builder-preview-keyboard.spec.ts b/job-tracker-ui/e2e/builder-preview-keyboard.spec.ts index 36c13d0..078740b 100644 --- a/job-tracker-ui/e2e/builder-preview-keyboard.spec.ts +++ b/job-tracker-ui/e2e/builder-preview-keyboard.spec.ts @@ -32,7 +32,7 @@ const test = base.extend<{ owner: { headers: Record; shortId: nu expect(created.status()).toBe(200); const cv = await created.json(); const customSections = long ? [{ key: "keyboard-evidence", title: "Erfaring og kvalifikasjoner", contentType: "bullets", items: Array.from({ length: 45 }, (_, i) => `Erfaring ${i + 1}: Samarbeid om tilgjengelige løsninger og pålitelig dokumentasjon for norske arbeidsgivere.`) }] : []; - expect((await page.request.put(`${apiUrl}/cv/variants/${cv.id}`, { headers, data: { name: cv.name, settings: { ...cv.settings, themeId: "minimal", customSections } } })).status()).toBe(200); + expect((await page.request.put(`${apiUrl}/cv/variants/${cv.id}`, { headers, data: { name: cv.name, settings: { ...cv.settings, themeId: "minimal", customSections }, expectedVersion: cv.version } })).status()).toBe(200); ids.push(cv.id); } await provide({ headers, shortId: ids[0], longId: ids[1] }); diff --git a/job-tracker-ui/e2e/cv-readiness.spec.ts b/job-tracker-ui/e2e/cv-readiness.spec.ts new file mode 100644 index 0000000..8d62fce --- /dev/null +++ b/job-tracker-ui/e2e/cv-readiness.spec.ts @@ -0,0 +1,204 @@ +import { expect, test, type APIRequestContext } from "@playwright/test"; +import fs from "node:fs/promises"; +import path from "node:path"; + +const apiUrl = "http://localhost:5302/api"; +const evidence = path.resolve(process.env.CV_FIDELITY_OUTPUT || "../.artifacts/p5-09-readiness/rendering"); + +async function authenticate(api: APIRequestContext) { + expect((await api.post(`${apiUrl}/auth/login`, { data: { email: "e2e@example.test", password: "E2ePassword123!" } })).status()).toBe(200); + const me = await (await api.get(`${apiUrl}/auth/me`)).json(); + const csrf = (await api.storageState()).cookies.find(cookie => cookie.name === "XSRF-TOKEN")!.value; + return { "X-CSRF-TOKEN": csrf, "X-Session-Context": me.sessionContext as string }; +} + +const shortProfile = { + version: "1", contact: { fullName: "Åse Fixture", headline: "Career platform engineer", email: "ase@example.test", location: "Oslo, Norge" }, + summary: ["R01 Builds reliable and accessible career software using documented evidence."], + jobs: [{ id: "role-1", title: "E01 Platform engineer", company: "Nordlys Fixture AS", startDate: "2021-01", isCurrent: true, + bullets: ["B01 Delivered accessible application workflows with documented outcomes.", "B02 Maintained reliable APIs and verified releases."] }], + education: [{ id: "education-1", qualification: "E02 Computer science", institution: "Fixture University", startDate: "2016-08", endDate: "2020-06" }], + projects: [{ id: "project-1", name: "P01 Evidence workspace", bullets: ["B03 Created a source-grounded review workflow."] }], + skills: ["C#", "React", "Norsk", "Accessibility"], languages: [{ name: "Norsk", level: "Native" }], + interests: ["HIDDEN-MARKER Hiking"], +}; + +// Fixed text, IDs and settings; no randomized content or external provider. +function longProfile(language: "en" | "nb") { + const sentence = language === "nb" + ? "Utviklet pålitelige arbeidsflyter med tilgjengelig navigasjon, dokumentert kildegrunnlag og tydelige vurderinger for norske arbeidssøkere. " + : "Developed reliable workflows with accessible navigation, documented source evidence and explicit review for people managing their careers. "; + return { + ...shortProfile, + contact: { ...shortProfile.contact, headline: language === "nb" ? "Plattformutvikler med erfaring fra tilgjengelige, pålitelige arbeidsflyter" : "Platform engineer with experience in accessible and reliable application workflows" }, + jobs: Array.from({ length: 6 }, (_, index) => ({ id: `role-${index + 1}`, title: `E${String(index + 1).padStart(2, "0")} ${language === "nb" ? "Utvikler av dokumenterte arbeidsflyter og integrasjoner" : "Workflow and integration engineer"}`, company: `Nordlys Fixture ${index + 1}`, startDate: "2017-01", endDate: "2025-12", + bullets: Array.from({ length: 3 }, (_, bullet) => `B${String(index * 3 + bullet + 1).padStart(2, "0")} ${sentence.repeat(bullet === 2 ? 8 : 3)}`) })), + education: [...shortProfile.education, { id: "education-2", qualification: "E08 Videreutdanning i universell utforming og informasjonsarkitektur", institution: "Fixture Academy", startDate: "2021-01", endDate: "2022-06" }], + }; +} + +test("[PRES-C06 C08 C09 C12] native preview/PDF fidelity corpus records unchanged output at fixed settings", async ({ page, context, browser }, testInfo) => { + test.setTimeout(360_000); + await context.route("**/*", route => { + const url = new URL(route.request().url()); + return ["localhost", "127.0.0.1"].includes(url.hostname) || ["data:", "blob:", "about:"].includes(url.protocol) ? route.continue() : route.abort(); + }); + await context.addInitScript(() => localStorage.setItem("uiLanguage", "en")); + const headers = await authenticate(page.request); + const themes = await (await page.request.get(`${apiUrl}/cv/themes`)).json(); + const fixtures = [ + ...themes.map((theme: { id: string }) => ({ key: `default-${theme.id}`, themeId: theme.id, language: "en", long: false, settings: {} })), + { key: "long-en-minimal", themeId: "minimal", language: "en", long: true, settings: {} }, + { key: "long-nb-code", themeId: "code", language: "nb", long: true, settings: {} }, + { key: "compact-8mm-letter", themeId: "ats-classic", language: "en", long: true, settings: { pageMarginMm: 8, density: "compact", pageSize: "letter", sectionGapMm: 3, entryGapMm: 2 } }, + { key: "roomy-28mm-nb", themeId: "modern", language: "nb", long: true, settings: { pageMarginMm: 28, density: "roomy", lineHeight: 1.6 } }, + { key: "grid-and-bubbles", themeId: "minimal", language: "en", long: false, settings: { sections: [{ key: "projects", presentation: "grid", columns: 2 }, { key: "skills", presentation: "bubble" }, { key: "experience" }, { key: "interests", hidden: true }], accentColor: "#126b55" } }, + { key: "long-sidebar-nb", themeId: "technical", language: "nb", long: true, settings: { sidebarWidthMm: 68, skillsStyle: "grouped", skillGroups: [{ name: "Samarbeid", items: ["Norsk", "Tilgjengelighet"] }] } }, + { key: "unbreakable-and-boundary", themeId: "code", language: "en", long: true, settings: { customSections: [{ key: "boundary", title: "S09 Boundary content", contentType: "paragraphs", items: [`R09 ${"UnbreakableEvidence".repeat(40)}`, "R10 Final recorded paragraph — æøå."] }] } }, + ]; + await fs.mkdir(evidence, { recursive: true }); + const results = []; + for (const fixture of fixtures) { + const profile = fixture.long ? longProfile(fixture.language as "en" | "nb") : shortProfile; + expect((await page.request.put(`${apiUrl}/career/profile`, { headers, data: { profile } })).status()).toBe(200); + const create = await page.request.post(`${apiUrl}/cv/variants`, { headers, data: { name: fixture.key, settings: { + themeId: fixture.themeId, language: fixture.language, sections: [{ key: "summary" }, { key: "experience" }, { key: "education" }, { key: "projects" }, { key: "skills" }, { key: "languages" }, { key: "interests", hidden: true }], ...fixture.settings, + } } }); + expect(create.status(), fixture.key).toBe(200); + const variant = await create.json(); + const before = await (await page.request.get(`${apiUrl}/career/profile`)).json(); + await page.setViewportSize({ width: 1440, height: 900 }); + await page.goto(`/career/builder/${variant.id}`); + await expect(page.getByTitle("CV preview page 1", { exact: true })).toBeVisible(); + const iframe = page.getByTitle("CV preview", { exact: true }); + await expect.poll(async () => iframe.evaluate(element => !!(element as HTMLIFrameElement).contentDocument?.querySelector(".name"))).toBe(true); + const measured = await iframe.evaluate(async element => { + const frame = element as HTMLIFrameElement; + const doc = frame.contentDocument!; + await doc.fonts.ready; + await new Promise(resolve => frame.contentWindow!.requestAnimationFrame(() => frame.contentWindow!.requestAnimationFrame(() => resolve()))); + const win = frame.contentWindow!; + const css = (selector: string) => { + const node = doc.querySelector(selector); + if (!node) return null; + const style = win.getComputedStyle(node); + const rect = node.getBoundingClientRect(); + return { x: rect.x, y: rect.y, width: rect.width, height: rect.height, font: style.fontFamily, fontSize: style.fontSize, lineHeight: style.lineHeight, color: style.color, background: style.backgroundColor, padding: style.padding, margin: style.margin }; + }; + const tokens = []; + const walker = doc.createTreeWalker(doc.body, NodeFilter.SHOW_TEXT); + let node; + while ((node = walker.nextNode())) { + if (["SCRIPT", "STYLE"].includes(node.parentElement?.tagName || "")) continue; + for (const match of (node.textContent || "").matchAll(/\b[SEBPR]\d{2}\b/g)) { + const range = doc.createRange(); + range.setStart(node, match.index!); range.setEnd(node, match.index! + match[0].length); + const rect = range.getBoundingClientRect(); + const style = win.getComputedStyle(node.parentElement!); + tokens.push({ token: match[0], x: rect.x, y: rect.y, width: rect.width, height: rect.height, fontSize: style.fontSize, fontFamily: style.fontFamily, color: style.color }); + } + } + return { width: frame.clientWidth, contentHeight: Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight), text: doc.body.innerText, tokens, body: css("body"), page: css(".page"), header: css(".header,.hero"), main: css(".main"), sidebar: css(".sidebar"), parsedRules: Array.from(doc.styleSheets).flatMap(sheet => Array.from(sheet.cssRules).map(rule => rule.cssText)), sections: Array.from(doc.querySelectorAll(".section")).map(node => ({ key: node.className, title: node.querySelector("h2")?.textContent, y: node.getBoundingClientRect().y })), effectiveMargin: win.getComputedStyle(doc.documentElement).getPropertyValue("--cv-page-margin"), userAgent: win.navigator.userAgent }; + }); + expect(measured.text, fixture.key).not.toContain("HIDDEN-MARKER"); + const pdf = await page.request.post(`${apiUrl}/cv/variants/${variant.id}/export-pdf`, { headers }); + expect(pdf.status(), fixture.key).toBe(200); + const directory = path.join(evidence, fixture.key); + await fs.mkdir(directory, { recursive: true }); + const rendered = await (await page.request.get(`${apiUrl}/cv/variants/${variant.id}/preview`)).json(); + await fs.writeFile(path.join(directory, "render.html"), rendered.html); + await fs.writeFile(path.join(directory, "export.pdf"), await pdf.body()); + const pageCount = await page.locator("[data-cv-page]").count(); + // Document-only frames retain their physical dimensions, independent of application zoom. + for (let index = 1; index <= pageCount; index++) { + const frame = page.getByTitle(`CV preview page ${index}`, { exact: true }); + const srcDoc = await frame.getAttribute("srcDoc"); + const height = (variant.settings.pageSize === "letter" ? 279.4 : 297) * 96 / 25.4; + const capture = await browser.newPage({ viewport: { width: Math.ceil(measured.width), height: Math.ceil(height) } }); + try { + await capture.setContent(srcDoc!); + await capture.evaluate(async () => { await document.fonts.ready; await new Promise(resolve => requestAnimationFrame(() => requestAnimationFrame(() => resolve()))); }); + await capture.screenshot({ path: path.join(directory, `preview-${index}.png`) }); + } finally { await capture.close(); } + } + expect((await (await page.request.get(`${apiUrl}/cv/variants/${variant.id}`)).json()).version).toBe(variant.version); + expect((await (await page.request.get(`${apiUrl}/career/profile`)).json()).profile).toEqual(before.profile); + results.push({ fixture: fixture.key, settings: variant.settings, previewPages: pageCount, measured }); + } + await fs.writeFile(path.join(evidence, "measurements.json"), JSON.stringify({ browserVersion: browser.version(), fixtures: results }, null, 2)); + await testInfo.attach("fidelity-measurements", { path: path.join(evidence, "measurements.json"), contentType: "application/json" }); +}); + +test("[PRES-C10 E05] independent authenticated clients cannot save or restore a stale CV revision", async ({ page, playwright }) => { + const headers = await authenticate(page.request); + const otherSession = await playwright.request.newContext(); + try { + const secondHeaders = await authenticate(otherSession); + const created = await page.request.post(`${apiUrl}/cv/variants`, { headers, data: { name: "Revision API fixture" } }); + const cv = await created.json(); + const retained = await (await otherSession.get(`${apiUrl}/cv/variants/${cv.id}`)).json(); + const missing = await otherSession.put(`${apiUrl}/cv/variants/${cv.id}`, { headers: secondHeaders, data: { settings: retained.settings } }); + expect(missing.status()).toBe(428); + expect((await missing.json()).code).toBe("cv_revision_required"); + const missingRestore = await otherSession.post(`${apiUrl}/cv/variants/${cv.id}/versions/1/restore`, { headers: secondHeaders }); + expect(missingRestore.status()).toBe(428); + for (const expectedVersion of [0, -1]) { + expect((await otherSession.put(`${apiUrl}/cv/variants/${cv.id}`, { headers: secondHeaders, data: { expectedVersion, settings: retained.settings } })).status()).toBe(428); + } + const writes = await Promise.all([ + page.request.put(`${apiUrl}/cv/variants/${cv.id}`, { headers, data: { expectedVersion: cv.version, settings: { ...cv.settings, headline: "First contender" } } }), + otherSession.put(`${apiUrl}/cv/variants/${cv.id}`, { headers: secondHeaders, data: { expectedVersion: retained.version, settings: { ...retained.settings, headline: "Second contender" } } }), + ]); + expect(writes.map(response => response.status()).sort()).toEqual([200, 409]); + const winner = await (await page.request.get(`${apiUrl}/cv/variants/${cv.id}`)).json(); + expect(winner.version).toBe(2); + const restore = await otherSession.post(`${apiUrl}/cv/variants/${cv.id}/versions/1/restore`, { headers: secondHeaders, data: { expectedVersion: retained.version } }); + expect(restore.status()).toBe(409); + expect((await restore.json()).code).toBe("cv_revision_conflict"); + expect(await (await page.request.get(`${apiUrl}/cv/variants/${cv.id}`)).json()).toEqual(winner); + const restored = await otherSession.post(`${apiUrl}/cv/variants/${cv.id}/versions/1/restore`, { headers: secondHeaders, data: { expectedVersion: winner.version } }); + expect(restored.status()).toBe(200); + expect((await restored.json()).version).toBe(3); + const history = await (await page.request.get(`${apiUrl}/cv/variants/${cv.id}/versions`)).json(); + expect(history.map((version: { version: number }) => version.version)).toEqual([3, 2, 1]); + } finally { await otherSession.dispose(); } +}); + +test("[PRES-C06 C10 E08] stale editor retains and downloads its draft; reviewed reload resumes versioned saves", async ({ page, context }, testInfo) => { + test.setTimeout(90_000); + await context.addInitScript(() => localStorage.setItem("uiLanguage", "en")); + const headers = await authenticate(page.request); + const cv = await (await page.request.post(`${apiUrl}/cv/variants`, { headers, data: { name: "Recovery fixture", settings: { themeId: "minimal" } } })).json(); + await page.goto(`/career/builder/${cv.id}`); + await page.getByRole("tab", { name: "Content", exact: true }).click(); + const headline = page.getByLabel("Headline override", { exact: true }); + await expect(headline).toBeVisible(); + const remote = await page.request.put(`${apiUrl}/cv/variants/${cv.id}`, { headers, data: { expectedVersion: cv.version, settings: { ...cv.settings, headline: "Remote reviewed edit" } } }); + expect(remote.status()).toBe(200); + await headline.fill("Local recoverable draft æøå"); + await page.getByRole("button", { name: "Save now", exact: true }).click(); + await expect(page.getByText("CV changed elsewhere", { exact: true })).toBeVisible(); + await expect(headline).toHaveValue("Local recoverable draft æøå"); + const downloadPromise = page.waitForEvent("download"); + await page.getByRole("button", { name: "Download unsaved copy", exact: true }).click(); + const download = await downloadPromise; + const draft = JSON.parse(await fs.readFile((await download.path())!, "utf8")); + expect(draft.settings.headline).toBe("Local recoverable draft æøå"); + expect(draft.expectedVersion).toBe(1); + expect((await (await page.request.get(`${apiUrl}/cv/variants/${cv.id}`)).json()).settings.headline).toBe("Remote reviewed edit"); + await page.getByRole("button", { name: "Reload saved CV", exact: true }).click(); + await page.getByRole("dialog").getByRole("button", { name: "Cancel", exact: true }).click(); + await expect(page.getByRole("dialog")).toHaveCount(0); + await expect(headline).toHaveValue("Local recoverable draft æøå"); + await page.screenshot({ path: testInfo.outputPath("conflict-draft-retained.png"), fullPage: true }); + await page.getByRole("button", { name: "Reload saved CV", exact: true }).click(); + await page.getByRole("dialog").getByRole("button", { name: "Reload saved CV", exact: true }).click(); + await expect(page.getByRole("dialog")).toHaveCount(0); + await expect(headline).toHaveValue("Remote reviewed edit"); + await headline.fill("Reviewed combined edit"); + await page.getByRole("button", { name: "Save now", exact: true }).click(); + await expect(page.getByText("Saved", { exact: true })).toBeVisible(); + expect((await (await page.request.get(`${apiUrl}/cv/variants/${cv.id}`)).json()).version).toBe(3); + await page.getByRole("tab", { name: "History", exact: true }).click(); + await expect(page.getByText("Version 1", { exact: true })).toBeVisible(); +}); diff --git a/job-tracker-ui/e2e/redesign-preservation.spec.ts b/job-tracker-ui/e2e/redesign-preservation.spec.ts index 398c88c..8bb8899 100644 --- a/job-tracker-ui/e2e/redesign-preservation.spec.ts +++ b/job-tracker-ui/e2e/redesign-preservation.spec.ts @@ -112,7 +112,7 @@ test("[PRES-W01 PRES-W05 PRES-W06 PRES-W07 PRES-W08] legacy workspace preserves expect(before.applicationMaterialJson).toContain("Original answer"); expect(snapshot.attachments).toHaveLength(1); expect((await page.request.put(`${jobUrl}/cover-letter`, { headers, data: { text: "Later letter", source: "manual" } })).status()).toBe(200); - expect((await page.request.put(`${apiUrl}/cv/variants/${variant.id}`, { headers, data: { name: "Later CV", settings: { ...variant.settings, headline: "Later headline" } } })).status()).toBe(200); + expect((await page.request.put(`${apiUrl}/cv/variants/${variant.id}`, { headers, data: { name: "Later CV", settings: { ...variant.settings, headline: "Later headline" }, expectedVersion: variant.version } })).status()).toBe(200); expect((await page.request.put(`${apiUrl}/career/profile`, { headers, data: { profile: { ...canonical, contact: { ...canonical.contact, headline: "Later canonical headline" } } } })).status()).toBe(200); expect((await page.request.put(`${jobUrl}/application-drafts`, { headers, data: { applicationAnswerDraft: "Later answer", recruiterMessageDraft: "Later recruiter message" } })).status()).toBe(204); expect((await page.request.delete(`${apiUrl}/attachments/${attachment.id}`, { headers })).status()).toBe(204); diff --git a/job-tracker-ui/src/cv-builder-deep-link.test.tsx b/job-tracker-ui/src/cv-builder-deep-link.test.tsx index f1b7bd2..5d23d97 100644 --- a/job-tracker-ui/src/cv-builder-deep-link.test.tsx +++ b/job-tracker-ui/src/cv-builder-deep-link.test.tsx @@ -60,16 +60,18 @@ beforeEach(() => { window.localStorage.removeItem('uiLanguage'); jest.clearAllMocks(); mockedApi.put.mockReset(); + mockedApi.put.mockResolvedValue({ data: { ...variant, version: variant.version + 1 } } as any); mockedApi.post.mockResolvedValue({ data: { themeId: 'nordic', html: '

cv

', suggestedFileName: 'cv.pdf' } } as any); }); afterEach(() => window.localStorage.removeItem('uiLanguage')); -function routeGet(onVariant: () => Promise, outline: any = { sections: [] }) { +function routeGet(onVariant: () => Promise, outline: any = { sections: [] }, history: any[] = []) { mockedApi.get.mockImplementation((url: string) => { if (url === '/cv/variants/3') return onVariant(); if (url === '/cv/themes') return Promise.resolve({ data: [] } as any); if (url === '/cv/outline') return Promise.resolve({ data: outline } as any); + if (url === '/cv/variants/3/versions') return Promise.resolve({ data: history } as any); return Promise.resolve({ data: [] } as any); }); } @@ -153,6 +155,107 @@ test('session undo and redo restore content edits before autosave', async () => expect(headline).toHaveValue('Platform Engineer'); }); +test('queued saves use acknowledged server versions without replacing newer local editing state', async () => { + routeGet(() => Promise.resolve({ data: variant } as any)); + let release!: (value: any) => void; + mockedApi.put.mockImplementationOnce(() => new Promise(resolve => { release = resolve; })); + mockedApi.put.mockResolvedValueOnce({ data: { ...variant, version: 6 } } as any); + renderAt(3); + await openContentTab(); + const headline = screen.getByLabelText('Headline override'); + fireEvent.change(headline, { target: { value: 'First edit' } }); + fireEvent.click(screen.getByRole('button', { name: 'Save now' })); + await waitFor(() => expect(mockedApi.put).toHaveBeenCalledTimes(1)); + expect(mockedApi.put.mock.calls[0][1]).toEqual(expect.objectContaining({ expectedVersion: 4 })); + fireEvent.change(headline, { target: { value: 'Second edit' } }); + fireEvent.click(screen.getByRole('button', { name: 'Save now' })); + expect(mockedApi.put).toHaveBeenCalledTimes(1); + release({ data: { ...variant, version: 5 } }); + await screen.findByText('Saved'); + expect(mockedApi.put.mock.calls[1][1]).toEqual(expect.objectContaining({ expectedVersion: 5, settings: expect.objectContaining({ headline: 'Second edit' }) })); + expect(headline).toHaveValue('Second edit'); +}); + +test('revision conflict retains the draft and blocks later autosaves until explicit reload', async () => { + let saved = variant; + routeGet(() => Promise.resolve({ data: saved } as any)); + mockedApi.put.mockRejectedValueOnce({ response: { status: 409, data: { code: 'cv_revision_conflict' } } }); + renderAt(3); + await openContentTab(); + const headline = screen.getByLabelText('Headline override'); + fireEvent.change(headline, { target: { value: 'Recoverable draft' } }); + fireEvent.click(screen.getByRole('button', { name: 'Save now' })); + expect(await screen.findByText('CV changed elsewhere')).toBeInTheDocument(); + expect(headline).toHaveValue('Recoverable draft'); + fireEvent.change(headline, { target: { value: 'Still recoverable' } }); + expect(screen.queryByRole('button', { name: 'Save now' })).not.toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Download unsaved copy' })).toBeEnabled(); + fireEvent.click(screen.getByRole('button', { name: 'Reload saved CV' })); + fireEvent.click(within(await screen.findByRole('dialog')).getByRole('button', { name: 'Cancel' })); + await waitFor(() => expect(screen.queryByRole('dialog')).not.toBeInTheDocument()); + expect(headline).toHaveValue('Still recoverable'); + saved = { ...variant, version: 6, settings: { ...variant.settings, headline: 'Reviewed remote state' } }; + fireEvent.click(screen.getByRole('button', { name: 'Reload saved CV' })); + fireEvent.click(within(await screen.findByRole('dialog')).getByRole('button', { name: 'Reload saved CV' })); + await waitFor(() => expect(headline).toHaveValue('Reviewed remote state')); + await waitFor(() => expect(screen.queryByRole('dialog')).not.toBeInTheDocument()); + expect(mockedApi.put).toHaveBeenCalledTimes(1); + mockedApi.put.mockResolvedValue({ data: { ...saved, version: 7 } } as any); + fireEvent.change(headline, { target: { value: 'After review' } }); + fireEvent.click(screen.getByRole('button', { name: 'Save now' })); + await screen.findByText('Saved'); + expect(mockedApi.put).toHaveBeenLastCalledWith('/cv/variants/3', expect.objectContaining({ expectedVersion: 6 })); +}); + +test('edits made while a confirmed reload is in flight remain recoverable', async () => { + let release!: (value: any) => void; + routeGet(() => Promise.resolve({ data: variant })); + mockedApi.put.mockRejectedValue({ response: { status: 409, data: { code: 'cv_revision_conflict' } } }); + renderAt(3); + await openContentTab(); + const headline = screen.getByLabelText('Headline override'); + fireEvent.change(headline, { target: { value: 'Conflicting draft' } }); + fireEvent.click(screen.getByRole('button', { name: 'Save now' })); + await screen.findByText('CV changed elsewhere'); + routeGet(() => new Promise(resolve => { release = resolve; })); + fireEvent.click(screen.getByRole('button', { name: 'Reload saved CV' })); + fireEvent.click(within(await screen.findByRole('dialog')).getByRole('button', { name: 'Reload saved CV' })); + await waitFor(() => expect(release).toBeDefined()); + fireEvent.change(headline, { target: { value: 'New edit during reload' } }); + release({ data: { ...variant, version: 6, settings: { ...variant.settings, headline: 'Remote state' } } }); + await waitFor(() => expect(screen.queryByRole('dialog')).not.toBeInTheDocument()); + expect(headline).toHaveValue('New edit during reload'); + expect(screen.getByText('CV changed elsewhere')).toBeInTheDocument(); + expect(screen.getByRole('button', { name: 'Download unsaved copy' })).toBeEnabled(); +}); + +test('restoring history uses the current version and never replaces edits made during the request', async () => { + routeGet(() => Promise.resolve({ data: variant }), { sections: [] }, [ + { version: 4, isCurrent: true, source: 'manual', createdAtUtc: variant.updatedAtUtc }, + { version: 3, isCurrent: false, source: 'manual', createdAtUtc: variant.updatedAtUtc }, + ]); + let release!: (value: any) => void; + mockedApi.post.mockImplementation((url: string) => url.endsWith('/restore') + ? new Promise(resolve => { release = resolve; }) + : Promise.resolve({ data: { html: '

CV

' } } as any)); + renderAt(3); + await screen.findByDisplayValue('Backend CV'); + expect(screen.getByRole('region', { name: 'CV editing controls' })).toBeInTheDocument(); + expect(screen.getByRole('tablist', { name: 'CV studio sections' })).toBeInTheDocument(); + fireEvent.click(screen.getByRole('tab', { name: 'History' })); + fireEvent.click(await screen.findByRole('button', { name: 'Restore version 3' })); + fireEvent.click(within(await screen.findByRole('dialog')).getByRole('button', { name: 'Restore version' })); + await waitFor(() => expect(mockedApi.post).toHaveBeenCalledWith('/cv/variants/3/versions/3/restore', { expectedVersion: 4 })); + await waitFor(() => expect(screen.queryByRole('dialog')).not.toBeInTheDocument()); + fireEvent.click(screen.getByRole('tab', { name: 'Content' })); + const headline = screen.getByLabelText('Headline override'); + fireEvent.change(headline, { target: { value: 'New edit during restore' } }); + release({ data: { ...variant, version: 5, settings: { ...variant.settings, headline: 'Historical content' } } }); + await screen.findByText('CV changed elsewhere'); + expect(headline).toHaveValue('New edit during restore'); + expect(mockedApi.put).not.toHaveBeenCalled(); +}); + test('professional editor starts with templates and combines design and layout controls', async () => { routeGet(() => Promise.resolve({ data: variant } as any)); renderAt(3); diff --git a/job-tracker-ui/src/cvBuilder.ts b/job-tracker-ui/src/cvBuilder.ts index f8d22da..497429f 100644 --- a/job-tracker-ui/src/cvBuilder.ts +++ b/job-tracker-ui/src/cvBuilder.ts @@ -269,13 +269,13 @@ export const cvBuilderApi = { create: (body: { name?: string; jobApplicationId?: number | null; settings?: CvVariantSettings }) => api.post("/cv/variants", body).then((r) => r.data), get: (id: number) => api.get(`/cv/variants/${id}`).then((r) => r.data), - save: (id: number, body: { name?: string; settings: CvVariantSettings; source?: string }) => + save: (id: number, body: { name?: string; settings: CvVariantSettings; source?: string; expectedVersion: number }) => api.put(`/cv/variants/${id}`, body).then((r) => r.data), remove: (id: number) => api.delete(`/cv/variants/${id}`), duplicate: (id: number, name?: string) => api.post(`/cv/variants/${id}/duplicate`, { name }).then((r) => r.data), setPublic: (id: number, isPublic: boolean) => api.put(`/cv/variants/${id}/public`, { isPublic }).then((r) => r.data), versions: (id: number) => api.get(`/cv/variants/${id}/versions`).then((r) => r.data), - restore: (id: number, version: number) => api.post(`/cv/variants/${id}/versions/${version}/restore`).then((r) => r.data), + restore: (id: number, version: number, expectedVersion: number) => api.post(`/cv/variants/${id}/versions/${version}/restore`, { expectedVersion }).then((r) => r.data), previewSettings: (settings: CvVariantSettings) => api.post("/cv/preview", { settings }).then((r) => r.data), aiAssist: (body: { action: string; text: string; role?: string; language?: string; context?: string }) => api.post<{ original: string; result: string }>("/cv/ai/assist", body).then((r) => r.data), diff --git a/job-tracker-ui/src/i18n/translations.ts b/job-tracker-ui/src/i18n/translations.ts index 160d91c..7655310 100644 --- a/job-tracker-ui/src/i18n/translations.ts +++ b/job-tracker-ui/src/i18n/translations.ts @@ -526,6 +526,8 @@ export const translations = { cvEditorUndo: "Undo", cvEditorRedo: "Redo", cvEditorEdit: "Edit", + cvEditorEditingRegion: "CV editing controls", + cvEditorStudioNavigation: "CV studio sections", cvEditorPreview: "Preview", cvEditorDuplicate: "Duplicate", cvEditorUpdating: "Updating…", @@ -563,6 +565,11 @@ export const translations = { cvEditorSaving: "Saving…", cvEditorSaved: "Saved", cvEditorSaveFailed: "Save failed", + cvEditorConflict: "CV changed elsewhere", + cvEditorConflictMessage: "This CV changed in another editor. Your unsaved work is still here and has not overwritten the saved CV. Download a copy before reloading, then review your changes against the latest saved version.", + cvEditorConflictDownload: "Download unsaved copy", + cvEditorConflictReload: "Reload saved CV", + cvEditorConflictReloadMessage: "Reloading replaces this editor's unsaved changes. Download your unsaved copy first if you want to keep it. Continue?", cvEditorSaveNow: "Save now", cvEditorNoVersions: "No saved versions yet. Edits autosave and appear here.", cvEditorVersionCount: "{count} saved version(s). Restoring keeps history — it adds a new version.", @@ -3057,6 +3064,8 @@ export const translations = { cvEditorUndo: "Angre", cvEditorRedo: "Gjør om", cvEditorEdit: "Rediger", + cvEditorEditingRegion: "Redigeringskontroller for CV", + cvEditorStudioNavigation: "Seksjoner i CV-studioet", cvEditorPreview: "Forhåndsvis", cvEditorDuplicate: "Dupliser", cvEditorUpdating: "Oppdaterer…", @@ -3094,6 +3103,11 @@ export const translations = { cvEditorSaving: "Lagrer…", cvEditorSaved: "Lagret", cvEditorSaveFailed: "Lagring mislyktes", + cvEditorConflict: "CV-en er endret et annet sted", + cvEditorConflictMessage: "CV-en ble endret i en annen editor. De ulagrede endringene dine er fortsatt her og har ikke overskrevet den lagrede CV-en. Last ned en kopi før du laster inn på nytt, og sammenlign med den nyeste lagrede versjonen.", + cvEditorConflictDownload: "Last ned ulagret kopi", + cvEditorConflictReload: "Last inn lagret CV", + cvEditorConflictReloadMessage: "Dette erstatter ulagrede endringer i denne editoren. Last ned en ulagret kopi først hvis du vil beholde dem. Fortsette?", cvEditorSaveNow: "Lagre nå", cvEditorNoVersions: "Ingen lagrede versjoner ennå. Endringer lagres automatisk og vises her.", cvEditorVersionCount: "{count} lagret(e) versjon(er). Gjenoppretting beholder historikken og legger til en ny versjon.", diff --git a/job-tracker-ui/src/views/CvBuilderEditor.tsx b/job-tracker-ui/src/views/CvBuilderEditor.tsx index 2ed8569..d994cbb 100644 --- a/job-tracker-ui/src/views/CvBuilderEditor.tsx +++ b/job-tracker-ui/src/views/CvBuilderEditor.tsx @@ -41,7 +41,7 @@ import { useDialogActions } from "../dialogs"; import { useI18n } from "../i18n/I18nProvider"; const MIN_PREVIEW_ZOOM = 0.2; -type SaveState = "idle" | "unsaved" | "saving" | "saved" | "error"; +type SaveState = "idle" | "unsaved" | "saving" | "saved" | "error" | "conflict"; function previewDocumentHtml(html: string, pageHeightPx: number, pageMarginMm: number, pageIndex = 0): string { const height = Math.max(1, Math.round(pageHeightPx * 100) / 100); @@ -89,6 +89,9 @@ export default function CvBuilderEditor() { const saveTimer = useRef | null>(null); const saveRevision = useRef(0); const saveQueue = useRef>(Promise.resolve(true)); + const serverVersion = useRef(0); + const editorEpoch = useRef(0); + const revisionConflict = useRef(false); const latestSettings = useRef(null); const latestName = useRef(""); const previewTimer = useRef | null>(null); @@ -101,8 +104,9 @@ export default function CvBuilderEditor() { const pageMetrics = useMemo(() => getCvPageMetrics(settings?.pageSize), [settings?.pageSize]); const pageMarginMm = useMemo(() => { const themeMargin = themes.find((theme) => theme.id === settings?.themeId)?.pageMarginMm; - return settings?.pageMarginMm ?? themeMargin ?? 16; - }, [settings?.pageMarginMm, settings?.themeId, themes]); + const density = settings?.density === "compact" ? 0.82 : settings?.density === "roomy" ? 1.18 : 1; + return (settings?.pageMarginMm ?? themeMargin ?? 16) * density; + }, [settings?.pageMarginMm, settings?.themeId, settings?.density, themes]); useEffect(() => { let alive = true; @@ -130,6 +134,9 @@ export default function CvBuilderEditor() { const applyVariant = (variant: CvVariant) => { if (saveTimer.current) clearTimeout(saveTimer.current); saveRevision.current += 1; + editorEpoch.current += 1; + serverVersion.current = variant.version; + revisionConflict.current = false; setName(variant.name); setSettings(variant.settings); latestName.current = variant.name; @@ -167,14 +174,23 @@ export default function CvBuilderEditor() { }, [settings, previewRevision]); const performSave = useCallback(async (next: CvVariantSettings, nextName: string, revision: number) => { + const epoch = editorEpoch.current; const save = async () => { + if (epoch !== editorEpoch.current || revisionConflict.current) return false; if (saveRevision.current === revision) setSaveState("saving"); try { - await cvBuilderApi.save(variantId, { name: nextName, settings: next, source: "autosave" }); + const saved = await cvBuilderApi.save(variantId, { name: nextName, settings: next, source: "autosave", expectedVersion: serverVersion.current }); + if (epoch !== editorEpoch.current) return false; + serverVersion.current = saved.version; if (saveRevision.current === revision) setSaveState("saved"); return true; - } catch { - if (saveRevision.current === revision) setSaveState("error"); + } catch (error) { + if (epoch !== editorEpoch.current) return false; + const code = (error as { response?: { data?: { code?: string } } })?.response?.data?.code; + if (code === "cv_revision_conflict" || code === "cv_revision_required") { + revisionConflict.current = true; + setSaveState("conflict"); + } else if (saveRevision.current === revision) setSaveState("error"); return false; } }; @@ -188,9 +204,9 @@ export default function CvBuilderEditor() { latestSettings.current = next; latestName.current = nextName; const revision = ++saveRevision.current; - setSaveState("unsaved"); + setSaveState(revisionConflict.current ? "conflict" : "unsaved"); if (saveTimer.current) clearTimeout(saveTimer.current); - if (!nextName.trim()) return; + if (!nextName.trim() || revisionConflict.current) return; saveTimer.current = setTimeout(async () => { await performSave(next, nextName, revision); }, 800); @@ -245,7 +261,27 @@ export default function CvBuilderEditor() { if (settings) scheduleSave(settings, value); }; - const hasUnsavedChanges = saveState === "unsaved" || saveState === "saving" || saveState === "error"; + const hasUnsavedChanges = saveState === "unsaved" || saveState === "saving" || saveState === "error" || saveState === "conflict"; + + const downloadUnsavedCopy = () => { + const url = URL.createObjectURL(new Blob([JSON.stringify({ name: latestName.current, settings: latestSettings.current, expectedVersion: serverVersion.current }, null, 2)], { type: "application/json" })); + const link = document.createElement("a"); + link.href = url; + link.download = "unsaved-cv-settings.json"; + link.click(); + URL.revokeObjectURL(url); + }; + + const reloadSavedVariant = async () => { + if (!(await confirmAction(t("cvEditorConflictReloadMessage"), { title: t("cvEditorConflictReload"), confirmLabel: t("cvEditorConflictReload"), destructive: true }))) return; + const revision = saveRevision.current; + await saveQueue.current; + try { + const saved = await cvBuilderApi.get(variantId); + if (saveRevision.current === revision) applyVariant(saved); + } + catch (error) { toast(getApiErrorMessage(error, t("cvEditorOpenFailed")), "error"); } + }; const blocker = useBlocker(hasUnsavedChanges); useEffect(() => { @@ -356,11 +392,23 @@ export default function CvBuilderEditor() { return; } try { - const updated = await cvBuilderApi.restore(variantId, version); - applyVariant(updated); + await saveQueue.current; + const revision = saveRevision.current; + const updated = await cvBuilderApi.restore(variantId, version, serverVersion.current); + if (saveRevision.current === revision) applyVariant(updated); + else { + // Edits made while restore was in flight remain recoverable; never replace them on response. + revisionConflict.current = true; + setSaveState("conflict"); + } await loadVersions(); toast(t("cvEditorRestoredVersion", { version }), "success"); } catch (err) { + const code = (err as { response?: { data?: { code?: string } } })?.response?.data?.code; + if (code === "cv_revision_conflict" || code === "cv_revision_required") { + revisionConflict.current = true; + setSaveState("conflict"); + } toast(getApiErrorMessage(err, t("cvEditorRestoreFailed")), "error"); } }; @@ -423,6 +471,13 @@ export default function CvBuilderEditor() { return ( + {saveState === "conflict" && + {t("cvEditorConflictMessage")} + + + + + } navigate("/career/builder")}> @@ -449,9 +504,9 @@ export default function CvBuilderEditor() { - setMobilePane("edit")} sx={{ display: compactEditor && mobilePane !== "edit" ? "none" : "block", p: 2, borderRadius: 3, position: { md: "sticky" }, top: 12, minWidth: 0, maxHeight: { md: "calc(100vh - 104px)" }, overflowY: { md: "auto" }, scrollbarWidth: "none", "&::-webkit-scrollbar": { display: "none" }, border: "1px solid", borderColor: "divider" }}> + setMobilePane("edit")} sx={{ display: compactEditor && mobilePane !== "edit" ? "none" : "block", p: 2, borderRadius: 3, position: { md: "sticky" }, top: 12, minWidth: 0, maxHeight: { md: "calc(100vh - 104px)" }, overflowY: { md: "auto" }, scrollbarWidth: "none", "&::-webkit-scrollbar": { display: "none" }, border: "1px solid", borderColor: "divider" }}> - { setTab(v); if (v === 4) loadVersions(); }} variant="scrollable" scrollButtons="auto" allowScrollButtonsMobile sx={{ mb: 1.5, minHeight: 38 }}> + { setTab(v); if (v === 4) loadVersions(); }} variant="scrollable" scrollButtons="auto" allowScrollButtonsMobile sx={{ mb: 1.5, minHeight: 38 }}> @@ -524,6 +579,7 @@ function SaveBadge({ state, canRetry, onRetry }: { state: SaveState; canRetry: b saving: { label: t("cvEditorSaving"), color: "warning" }, saved: { label: t("cvEditorSaved"), color: "success" }, error: { label: t("cvEditorSaveFailed"), color: "error" }, + conflict: { label: t("cvEditorConflict"), color: "warning" }, }; const m = map[state]; if (!m.label) return null; @@ -1113,7 +1169,7 @@ function HistoryTab({ versions, onRestore }: { versions: CvVariantVersionInfo[]; {relTime(v.createdAtUtc, language)} · {v.source} - {!v.isCurrent && } + {!v.isCurrent && } ))} diff --git a/job-tracker-ui/src/views/CvBuilderPage.tsx b/job-tracker-ui/src/views/CvBuilderPage.tsx index 2d73acc..5d0f478 100644 --- a/job-tracker-ui/src/views/CvBuilderPage.tsx +++ b/job-tracker-ui/src/views/CvBuilderPage.tsx @@ -100,7 +100,7 @@ export default function CvBuilderPage() { if (!nextName?.trim() || nextName.trim() === current?.name) return; try { const variant = await cvBuilderApi.get(id); - const updated = await cvBuilderApi.save(id, { name: nextName.trim(), settings: variant.settings, source: "manual" }); + const updated = await cvBuilderApi.save(id, { name: nextName.trim(), settings: variant.settings, source: "manual", expectedVersion: variant.version }); setVariants((items) => items.map((item) => item.id === id ? { ...item, name: updated.name, updatedAtUtc: updated.updatedAtUtc, version: updated.version } : item)); toast(t("cvDashboardRenamed"), "success"); } catch (err) { toast(getApiErrorMessage(err, t("cvDashboardRenameFailed")), "error"); } diff --git a/scripts/verify-cv-fidelity.py b/scripts/verify-cv-fidelity.py new file mode 100644 index 0000000..f8f84a8 --- /dev/null +++ b/scripts/verify-cv-fidelity.py @@ -0,0 +1,117 @@ +"""Compare recorded real live-preview frames with native exported PDFs. + +Requires pdfplumber, pypdfium2 and Pillow (available in Codex's bundled runtime). +Run the cv-readiness browser corpus first; this separate gate fails honestly on +material differences and never modifies the application or its PDF output. +""" +import argparse +import json +import re +from pathlib import Path + +import pdfplumber +import pypdfium2 +from PIL import Image, ImageDraw + +MM_PER_POINT = 25.4 / 72 +POINTS_PER_PIXEL = 72 / 96 +POSITION_TOLERANCE_MM = 2 +PAGE_TOLERANCE_MM = 0.5 +FONT_TOLERANCE_PT = 0.5 +COLOR_TOLERANCE = 1 / 255 + + +def measure(root: Path, fixture: dict) -> dict: + directory = root / fixture["fixture"] + settings, preview = fixture["settings"], fixture["measured"] + width_mm, height_mm = (215.9, 279.4) if settings.get("pageSize") == "letter" else (210, 297) + failures, pdf_tokens, pages, fonts = [], [], [], set() + with pdfplumber.open(directory / "export.pdf") as pdf: + if len(pdf.pages) != fixture["previewPages"]: + failures.append(f"page count: preview {fixture['previewPages']}, PDF {len(pdf.pages)}") + for number, page in enumerate(pdf.pages): + dimensions = [page.width * MM_PER_POINT, page.height * MM_PER_POINT] + if any(abs(actual - expected) > PAGE_TOLERANCE_MM for actual, expected in zip(dimensions, [width_mm, height_mm])): + failures.append(f"page {number + 1}: unexpected physical dimensions {dimensions}") + text = page.extract_text() or "" + if not text.strip(): + failures.append(f"page {number + 1}: blank page") + if "HIDDEN-MARKER" in text: + failures.append(f"page {number + 1}: hidden section leaked") + for word in page.extract_words(extra_attrs=["fontname", "size", "non_stroking_color"]): + fonts.add(word["fontname"]) + token = re.fullmatch(r"[SEBPR]\d{2}", word["text"]) + if token: + pdf_tokens.append({"token": token[0], "page": number + 1, "x": word["x0"], "y": word["top"], "fontSize": word["size"], "font": word["fontname"], "color": word["non_stroking_color"]}) + margin_mm = float(preview["effectiveMargin"].strip().removesuffix("mm")) + outside = [c for c in page.chars if c["text"].strip() and (c["top"] * MM_PER_POINT < margin_mm - 1 or c["bottom"] * MM_PER_POINT > height_mm - margin_mm + 1)] + if outside: + failures.append(f"page {number + 1}: {len(outside)} glyphs outside vertical safe area") + pages.append({"page": number + 1, "dimensionsMm": dimensions, "text": text, "glyphBoundsPt": [min((c["x0"] for c in page.chars), default=None), min((c["top"] for c in page.chars), default=None), max((c["x1"] for c in page.chars), default=None), max((c["bottom"] for c in page.chars), default=None)]}) + + remaining = list(pdf_tokens) + comparisons = [] + height_px = height_mm * 96 / 25.4 + for token in preview["tokens"]: + match = next((candidate for candidate in remaining if candidate["token"] == token["token"]), None) + if match is None: + failures.append(f"missing PDF marker {token['token']}") + continue + remaining.remove(match) + preview_page = int(token["y"] // height_px) + 1 + dx = abs(token["x"] * POINTS_PER_PIXEL - match["x"]) * MM_PER_POINT + dy = abs((token["y"] % height_px) * POINTS_PER_PIXEL - match["y"]) * MM_PER_POINT + font_delta = abs(float(token["fontSize"].removesuffix("px")) * POINTS_PER_PIXEL - match["fontSize"]) + preview_color = [int(value) / 255 for value in re.findall(r"\d+", token["color"])[:3]] + pdf_color = match["color"] + color_delta = max(abs(a - b) for a, b in zip(preview_color, pdf_color)) if isinstance(pdf_color, (list, tuple)) and len(pdf_color) == 3 else None + comparisons.append({"token": token["token"], "previewPage": preview_page, "pdfPage": match["page"], "deltaXmm": dx, "deltaYmm": dy, "fontDeltaPt": font_delta, "colorDelta": color_delta}) + if preview_page != match["page"]: + failures.append(f"{token['token']}: preview page {preview_page}, PDF page {match['page']}") + elif max(dx, dy) > POSITION_TOLERANCE_MM: + failures.append(f"{token['token']}: position delta x={dx:.2f}mm y={dy:.2f}mm") + if font_delta > FONT_TOLERANCE_PT: + failures.append(f"{token['token']}: font-size delta {font_delta:.2f}pt") + if color_delta is not None and color_delta > COLOR_TOLERANCE: + failures.append(f"{token['token']}: RGB component delta {color_delta:.4f}") + if remaining: + failures.append(f"extra PDF markers: {[word['token'] for word in remaining]}") + + # Visual evidence uses actual exported bytes, rendered independently of Chromium. + document = pypdfium2.PdfDocument(str(directory / "export.pdf")) + for index in range(len(document)): + pdf_page = document[index] + bitmap = pdf_page.render(scale=96 / 72) + image = bitmap.to_pil() + image.save(directory / f"pdf-{index + 1}.png") + preview_path = directory / f"preview-{index + 1}.png" + if preview_path.exists(): + preview_image = Image.open(preview_path).convert("RGB") + side_by_side = Image.new("RGB", (preview_image.width + image.width, max(preview_image.height, image.height) + 28), "#ffffff") + side_by_side.paste(preview_image, (0, 28)) + side_by_side.paste(image, (preview_image.width, 28)) + draw = ImageDraw.Draw(side_by_side) + draw.text((8, 6), "Live preview", fill="black") + draw.text((preview_image.width + 8, 6), "Native exported PDF", fill="black") + side_by_side.save(directory / f"comparison-{index + 1}.png") + bitmap.close() + pdf_page.close() + document.close() + return {"fixture": fixture["fixture"], "pass": not failures, "failures": failures, "previewPages": fixture["previewPages"], "pdfPages": len(pages), "fontNames": sorted(fonts), "comparisons": comparisons, "pages": pages} + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("directory", type=Path) + args = parser.parse_args() + inputs = json.loads((args.directory / "measurements.json").read_text(encoding="utf-8")) + results = [measure(args.directory, fixture) for fixture in inputs["fixtures"]] + report = {"tolerances": {"pageDimensionMm": PAGE_TOLERANCE_MM, "positionMm": POSITION_TOLERANCE_MM, "fontPt": FONT_TOLERANCE_PT, "rgbComponent": COLOR_TOLERANCE, "pageCountAndMembership": "exact"}, "browserVersion": inputs["browserVersion"], "passed": sum(result["pass"] for result in results), "total": len(results), "fixtures": results} + (args.directory / "fidelity-results.json").write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8") + for result in results: + print(f"{'PASS' if result['pass'] else 'FAIL'} {result['fixture']}: preview={result['previewPages']} PDF={result['pdfPages']}; {len(result['failures'])} differences") + raise SystemExit(0 if report["passed"] == report["total"] else 1) + + +if __name__ == "__main__": + main()