/* 1. Theme. Change these values to adjust the whole site. */
:root {
    --background: #080a10;
    --surface: #0e131a;
    --text: #f2f0ea;
    --muted: #a9b5bd;
    --line: #26303a;
    --accent: #65dcc1;
    --orange: #ff9447;
    --header-height: 72px;
    --content-width: 1280px;
    --grid-content-width: clamp(1280px, 75vw, 1920px);
    --page-gutter: clamp(24px, 4vw, 64px);
    color-scheme: dark;
    font-family: Satoshi, sans-serif;
    font-synthesis: none;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-height) + 24px);
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--background); color: var(--text); overflow-x: clip; }
h1, h2, h3, p, figure { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 5px; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; vertical-align: middle; }
.eyebrow, .section-meta, .project-category { font-size: 12px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow { color: var(--accent); }

/* 2. Header and anchored navigation. */
.site-header {
    height: var(--header-height);
    padding: 0 var(--page-gutter);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(8, 10, 16, .96);
    border-bottom: 1px solid rgba(101, 220, 193, .07);
    backdrop-filter: blur(12px);
}
.brand { font-size: 15px; font-weight: 700; letter-spacing: .035em; white-space: nowrap; }
.header-nav { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 36px); }
.header-nav a { color: var(--muted); font-size: 14px; transition: color .2s ease; }
.header-nav a:hover, .header-nav a[aria-current="location"] { color: var(--orange); }

/* 3. Featured accordion. Image layers overlap only inside this clipped canvas. */
.hero { width: 100%; }
.hero-panels {
    --hero-height: clamp(440px, calc(100svh - var(--header-height) - 68px), 780px);
    --slant: clamp(36px, 4.5vw, 78px);
    display: flex;
    width: 100%;
    height: var(--hero-height);
    position: relative;
    overflow: clip;
    border-bottom: 1px solid var(--accent);
}
.hero-panel {
    position: relative;
    flex: 1 1 0%;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    transition: flex-grow 650ms cubic-bezier(.22, 1, .36, 1);
}
.hero-panel.is-expanded { flex-grow: 2.05; }
.hero-panels.has-expanded .hero-panel:not(.is-expanded) { flex-grow: .82; }
.hero-visual {
    display: block;
    position: absolute;
    inset: 0 0 0 calc(-1 * var(--slant));
    overflow: hidden;
    clip-path: polygon(var(--slant) 0, 100% 0, calc(100% - var(--slant)) 100%, 0 100%);
    background: var(--surface);
}
.hero-panel:last-child .hero-visual { clip-path: polygon(var(--slant) 0, 100% 0, 100% 100%, 0 100%); }
.hero-panel:not(:first-child)::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(-1 * var(--slant));
    width: calc(var(--slant) + 1px);
    background: var(--accent);
    clip-path: polygon(calc(100% - 1px) 0, 100% 0, 1px 100%, 0 100%);
    pointer-events: none;
    opacity: .85;
}
.hero-visual > img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 50%; transition: filter .4s ease; }
.hero-private .hero-visual > img { object-position: 40% 50%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(8,10,16,.3) 64%, var(--background) 100%); pointer-events: none; }
.hero-label { position: absolute; left: 28px; bottom: 48px; width: calc(100% - var(--slant) - 54px); display: flex; flex-direction: column; gap: 20px; pointer-events: none; }
.hero-panel:first-child .hero-label { left: calc(var(--slant) + 24px); }
.hero-panel:last-child .hero-label { width: calc(100% - 54px); }
.hero-label h2, .hero-title { display: flex; gap: 12px; align-items: center; font-size: clamp(20px, 1.9vw, 30px); font-weight: 500; line-height: 1.15; letter-spacing: -.045em; }
.hero-label .eyebrow { font-size: 12px; letter-spacing: .05em; }
.hero-private .icon { width: 22px; height: 22px; color: var(--muted); }
.hero-panel:focus-visible { outline-offset: -6px; z-index: 2; }
.scroll-cue { min-height: 68px; display: flex; align-items: center; justify-content: center; padding: 20px; font-size: 12px; letter-spacing: .07em; color: var(--muted); text-align: center; transition: color .2s ease; }
.scroll-cue:hover { color: var(--orange); }

/* 4. Shared project grid. */
.section { max-width: var(--content-width); margin: 0 auto; padding: 80px var(--page-gutter); scroll-margin-top: 0; }
/* Work grids grow with the viewport; text-heavy sections retain the shared width. */
.work-section, .collection-page { max-width: var(--grid-content-width); }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 28px; }
.section-heading h1, .about-copy h2, .contact-section h2 { font-size: clamp(28px, 2.5vw, 36px); font-weight: 500; line-height: 1.15; letter-spacing: -.045em; }
.section-meta { color: var(--muted); }
.project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 24px; }
.project-card { min-width: 0; display: block; }
.project-image { position: relative; aspect-ratio: 16 / 9; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; background: var(--surface); }
.project-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .45s cubic-bezier(.22,1,.36,1); }
/* NED's original square artwork has a project logo at the top and an engine logo below. */
.project-image.frame-ned img { object-position: center top; }
.project-image-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 16px; background: rgba(8,10,16,.9); color: var(--text); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: opacity .25s ease, transform .25s ease; }
.project-card:hover .project-image img, .project-card:focus-visible .project-image img { transform: scale(1.045); }
.project-card:hover .project-image-caption, .project-card:focus-visible .project-image-caption { opacity: 1; transform: translateY(0); }
.project-copy { padding-top: 18px; }
.project-copy h2 { font-size: 21px; line-height: 1.25; letter-spacing: -.025em; font-weight: 500; }
.project-year { display: inline-block; margin-left: .25em; opacity: .4; font-size: .7em; font-weight: 400; letter-spacing: .02em; white-space: nowrap; }
.project-image-caption .project-year { font-size: 1em; }
.project-category { color: var(--accent); margin-top: 10px; font-size: 11px; }
.project-description { color: var(--muted); font-size: 15px; line-height: 1.6; margin-top: 10px; }

/* 5. Biography and branded software chips. */
.about-section { border-top: 1px solid var(--line); }
.about-layout { margin-top: 32px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 72px); align-items: center; }
.about-copy { min-width: 0; }
.about-copy h2 { max-width: 500px; }
.about-description { margin-top: 28px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.software-heading { margin-top: 36px; font-size: 15px; font-weight: 500; color: var(--muted); }
.software-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.software-chip, .link-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid rgba(101,220,193,.45);
    border-radius: 9px;
    background: rgba(101,220,193,.025);
    color: var(--text);
    font-size: 14px;
    line-height: 1.4;
    text-align: left;
    transition: color .25s ease, border-color .25s ease, background .25s ease, box-shadow .3s ease, transform .3s ease;
}
.software-chip:hover, .software-chip:focus-visible, .link-button:hover, .link-button:focus-visible {
    color: var(--orange);
    border-color: var(--orange);
    background: rgba(255,148,71,.075);
    box-shadow: 0 0 24px rgba(255,148,71,.12), inset 0 0 20px rgba(255,148,71,.035);
    transform: translateY(-2px);
}
.software-logo { display: block; width: 22px; height: 22px; flex: 0 0 auto; background: var(--accent); mask: var(--logo) center / contain no-repeat; -webkit-mask: var(--logo) center / contain no-repeat; transition: background .25s ease; }
.software-chip:hover .software-logo, .software-chip:focus-visible .software-logo { background: var(--orange); }
.logo-unreal { --logo: url("data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+VW5yZWFsIEVuZ2luZTwvdGl0bGU+PHBhdGggZD0iTTEyIDBhMTIgMTIgMCAxMDEyIDEyQTEyIDEyIDAgMDAxMiAwem0wIDIzLjUyQTExLjUyIDExLjUyIDAgMTEyMy41MiAxMiAxMS41MiAxMS41MiAwIDAxMTIgMjMuNTJ6bTcuMTMtOS43OTFjLS4yMDYuOTk3LTEuMTI2IDMuNTU3LTQuMDYgNC45NDJsLTEuMTc5LTEuMzI1LTEuOTg4IDJhNy4zMzggNy4zMzggMCAwMS01LjgwNC0yLjk3OCAyLjg1OSAyLjg1OSAwIDAwLjY1LjEyM2MuMzI2LjAwNi42NzgtLjExNC42NzgtLjY2di01LjM5NGEuODkuODkgMCAwMC0xLjExNi0uODljLS45Mi4yMTItMS42NTYgMi41MDktMS42NTYgMi41MDlhNy4zMDQgNy4zMDQgMCAwMTIuNTI4LTUuNTk3IDcuNDA4IDcuNDA4IDAgMDEzLjczLTEuNzIxYy0xLjAwNi41NzMtMS41NyAxLjUwNy0xLjU3IDIuMjkgMCAxLjI2Mi43NiAxLjEwOS45ODQuOTIzdjcuMjhhMS4xNTcgMS4xNTcgMCAwMC4xNDguMjU2IDEuMDc1IDEuMDc1IDAgMDAuODguNDQ1Yy43NiAwIDEuNzQ3LS44NjggMS43NDctLjg2OFY5LjE3MmMwLS42LS40NTItMS4zMjQtLjkwNS0xLjU3MiAwIDAgLjgzOC0uMTQ5IDEuNDg0LjM0NmE1LjUzNyA1LjUzNyAwIDAxLjM4Ny0uNDI1YzEuNTA4LTEuNDggMi45MjktMS45MDIgNC4xMTItMi4xMTIgMCAwLTIuMTUxIDEuNjktMi4xNTEgMy45NiAwIDEuNjg3LjA0MyA1LjgwMS4wNDMgNS44MDEuNzk5Ljc3MSAxLjk4Ni0uMzQyIDMuMDU5LTEuNDQxWiIvPjwvc3ZnPg=="); }
.logo-blender { --logo: url("data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QmxlbmRlcjwvdGl0bGU+PHBhdGggZD0iTTEyLjUxIDEzLjIxNGMuMDQ2LS44LjQzOC0xLjUwNiAxLjAzLTIuMDA2YTMuNDI0IDMuNDI0IDAgMCAxIDIuMjEyLS43OWMuODUgMCAxLjYzMS4zIDIuMjExLjc5LjU5Mi41Ljk4MyAxLjIwNiAxLjAyOCAyLjAwNS4wNDUuODIzLS4yODUgMS41ODYtLjg2NSAyLjE1M2EzLjM4OSAzLjM4OSAwIDAgMS0yLjM3NC45MzggMy4zOTMgMy4zOTMgMCAwIDEtMi4zNzYtLjkzOGMtLjU4LS41NjctLjkxLTEuMzMtLjg2NS0yLjE1Mk03LjM1IDE0LjgzMWMuMDA2LjMxNC4xMDYuOTIyLjI1NiAxLjM5OGE3LjM3MiA3LjM3MiAwIDAgMCAxLjU5MyAyLjc1NyA4LjIyNyA4LjIyNyAwIDAgMCAyLjc4NyAyLjAwMSA4Ljk0NyA4Ljk0NyAwIDAgMCAzLjY2Ljc2IDguOTY0IDguOTY0IDAgMCAwIDMuNjU3LS43NzIgOC4yODUgOC4yODUgMCAwIDAgMi43ODUtMi4wMSA3LjQyOCA3LjQyOCAwIDAgMCAxLjU5Mi0yLjc2MiA2Ljk2NCA2Ljk2NCAwIDAgMCAuMjUtMy4wNzQgNy4xMjMgNy4xMjMgMCAwIDAtMS4wMTYtMi43NzkgNy43NjQgNy43NjQgMCAwIDAtMS44NTItMi4wNDNoLjAwMkwxMy41NjYgMi41NWwtLjAyLS4wMTVjLS40OTItLjM3OC0xLjMxOS0uMzc2LTEuODYuMDAyLS41NDcuMzgyLS42MDkgMS4wMTUtLjEyMyAxLjQxNWwtLjAwMS4wMDEgMy4xMjYgMi41NDMtOS41My4wMWgtLjAxM2MtLjc4OC4wMDEtMS41NDUuNTE4LTEuNjk1IDEuMTcyLS4xNTQuNjY1LjM4IDEuMjE3IDEuMiAxLjIyVjguOWw0LjgzLS4wMS04LjYyIDYuNjE3LS4wMzQuMDI1Yy0uODEzLjYyMi0xLjA3NSAxLjY1OC0uNTYzIDIuMzEzLjUyLjY2NyAxLjYyNS42NjggMi40NDcuMDA0TDcuNDE0IDE0cy0uMDY5LjUyLS4wNjMuODMxem0xMi4wOSAxLjc0MWMtLjk3Ljk4OC0yLjMyNiAxLjU0OC0zLjc5NSAxLjU1LTEuNDcuMDA0LTIuODI3LS41NTItMy43OTctMS41MzhhNC41MSA0LjUxIDAgMCAxLTEuMDM2LTEuNjIyIDQuMjgyIDQuMjgyIDAgMCAxIC4yODItMy41MTkgNC43MDIgNC43MDIgMCAwIDEgMS4xNTMtMS4zNzFjLjk0Mi0uNzY4IDIuMTQxLTEuMTgzIDMuMzk2LTEuMTg1IDEuMjU2LS4wMDIgMi40NTUuNDEgMy4zOTggMS4xNzUuNDguMzkxLjg3Ljg1NCAxLjE1MiAxLjM2N2E0LjI4IDQuMjggMCAwIDEgLjUyMiAxLjcwNiA0LjIzNiA0LjIzNiAwIDAgMS0uMjM5IDEuODExIDQuNTQgNC41NCAwIDAgMS0xLjAzNSAxLjYyNiIvPjwvc3ZnPg=="); }
.logo-substance { --logo: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPG5zMDpzdmcgeG1sbnM6bnMwPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiIGZpbGw9Im5vbmUiPgo8bnMwOnBhdGggaWQ9IlZlY3Rvcl8yIiBkPSJNMjMuNDM3NSAxNi45ODgzQzMxLjgwMzcgMTYuOTg4MyAzNi41MTUyIDIwLjkwNzIgMzYuNTE1MiAyNy40NjgxQzM2LjUxNTIgMzUuMTI5OCAzMC4xMzA0IDM4LjIxMjEgMjQuMTQxOSAzOC4yMTIxSDIwLjA5MDlWNDYuNDkwM0gxMS45MDA5VjE2Ljk4ODNIMjMuNDM3NVpNMjAuMDkwOSAyMy45ODk1VjMxLjIxMDlIMjMuNzAxNkMyNi4yMTE1IDMxLjIxMDkgMjcuOTcyNyAzMC4xOTgxIDI3Ljk3MjcgMjcuNjQ0MkMyNy45NzI3IDI1LjMxMDUgMjYuNDc1NyAyMy45ODk1IDIzLjg3NzggMjMuOTg5NUgyMC4wOTA5WiIgZmlsbD0iY3VycmVudENvbG9yIiAvPgo8bnMwOnBhdGggaWQ9IlZlY3Rvcl8zIiBkPSJNNDguNjY0MSAyMy43MjUzSDUyLjg5MTNWMjkuODQ1OUg0OC42NjQxVjM3LjY4MzdDNDguNjY0MSAzOS43OTc0IDQ5LjU0NDggNDAuNTg5OSA1MS4wNDE5IDQwLjU4OTlDNTEuNTI2MyA0MC41ODk5IDUyLjIzMDcgNDAuNTAxOCA1Mi44OTEzIDQwLjI4MTdMNTIuOTM1MyA0Ni4zNTgzQzUxLjk2NjYgNDYuNzEwNSA1MC45MDk4IDQ2LjkzMDYgNDguOTI4NCA0Ni45MzA2QzQzLjkwODYgNDYuOTMwNiA0MC45NTgzIDQ0LjU1MjkgNDAuOTU4MyAzOC45MTY3VjI5Ljg0NTlIMzcuNjU1OVYyMy43MjUzSDQwLjk1ODNWMTcuOTU2OUg0OC42NjQxVjIzLjcyNTNaIiBmaWxsPSJjdXJyZW50Q29sb3IiIC8+CjxuczA6ZGVmcz4KPG5zMDpjbGlwUGF0aCBpZD0iY2xpcDBfMjIxMF81Nzc0Ij4KPG5zMDpyZWN0IHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgZmlsbD0id2hpdGUiIC8+CjwvbnMwOmNsaXBQYXRoPgo8L25zMDpkZWZzPgo8L25zMDpzdmc+"); }
.logo-unity { --logo: url("data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+VW5pdHk8L3RpdGxlPjxwYXRoIGQ9Im0xMi45Mjg4IDQuMjkzOSAzLjc5OTcgMi4xOTI5Yy4xMzY2LjA3Ny4xNDE1LjI5MDUgMCAuMzY3NWwtNC41MTUgMi42MDc2YS40MTkyLjQxOTIgMCAwIDEtLjQyNDYgMEw3LjI3NCA2Ljg1NDNjLS4xMzktLjA3NDUtLjE0MTUtLjI5MyAwLS4zNjc1bDMuNzk3Mi0yLjE5M1YwTDEuMzc1OCA1LjU5NzdWMTYuNzkzbDMuNzE3Ny0yLjE0NTZ2LTQuMzg1OGMtLjAwMjUtLjE1NjUuMTgxMy0uMjY4Mi4zMTgtLjE4MzhsNC41MTQ4IDIuNjA3NmEuNDI1Mi40MjUyIDAgMCAxIC4yMTM2LjM2NzZ2NS4yMTI3Yy4wMDI1LjE1NjUtLjE4MTMuMjY4Mi0uMzE3OS4xODM4bC0zLjc5OTYtMi4xOTI5LTMuNzE3OCAyLjE0NTdMMTIgMjRsOS42OTU0LTUuNTk3Ny0zLjcxNzgtMi4xNDU3LTMuNzk5NiAyLjE5MjljLS4xMzQxLjA4Mi0uMzIyOS0uMDI0OC0uMzE3OS0uMTgzOFYxMy4wNTNjMC0uMTU2NS4wODctLjI5NTYuMjEzNi0uMzY3Nmw0LjUxNDktMi42MDc2Yy4xMzQtLjA4Mi4zMjI4LjAyMjQuMzE3OS4xODM4djQuMzg1OGwzLjcxNzcgMi4xNDU2VjUuNTk3N0wxMi45Mjg4IDBaIi8+PC9zdmc+"); }
.logo-speedtree { --logo: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIiB2aWV3Qm94PSI2NzYgMCAxNDAgMTQwIj48aW1hZ2Ugd2lkdGg9IjgxNiIgaGVpZ2h0PSIxNDAiIGhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBekFBQUFDTUNBWUFBQUNqNkV5SUFBQUFDWEJJV1hNQUFBc1NBQUFMRWdIUzNYNzhBQUFnQUVsRVFWUjRuTzJkNFhVYU94T0dsWno4WjI4RjNsUmdVa0ZJQlNZVkdGZGdYSUZ4QlNFVkdGZHdjUVdCQ2dJVkJDcjQyQXI0emlhalJObTd3TzVxSkkyMDczTU9KemU1Tml4YXJXYmUwV2ptemZGNFZBQUFBQUFBQUVUSUtJSkxQaWlsTnN6dkdjUDN2c1NPWHExNUovWXJBUUFBQUFBQThEZTVVbXBLRHZ4MUJHT3pWa3BOSEx4ditmMGZIYnl2YndxbDFFb3B0YVRYb2Nubll3Y0dBQUFBQUFCSXAzVFlaMHFwajVIY3FZS3VkKzd3TTBxSC84YmgrL3Vtb1BHYVh4SXlFREFBQUFBQUFFQXFHUW1CKzBqdTBGNHB0YUJYcC9Tb0ZtUzBleEhEVGxRYkN0cTFXcDc2SFFnWUFBQUFBQUFna1NFSkFla08rb3NoV0Z5TGxpcmxHSDMzL0ptK2VEbVZmZ2NCQXdBQUFBQUFwREdrM1lXQjhEdXpwV3NOeVNxaTFMcTIxSXFZdCtJdkd3QUFBQUFBOUlrc0V2R2ltaDQ2ZDR6dlhSK2YzTkx1MWw5QXdBQUFBQUFBQUVrc0l4RXZVcGpTVGxDcTNGWjNZWkJDQmdBQUFBQUFwRkE2NDE4aXVodWZhTGNvTkJudHhLUXEvQXBLMWZ1NTI0UWRHQUFBQU9jSW5kdmRoaFFhdXdIUVozVEZzUmpZQ3hJdmlsTFpVbDREQitiY2dJQUJBQUJReDVBNlI0OGpHSjJNK2daOEUzQXRBSUR1VElYdklCUjBxUHd6TmRTVUlsNDA1WnI5UVNuMW9KUjZJcEdWRXJjMDdrZ2hBd0FBOEI5bVJvZm5KK0VSMFJFZDhMeWl2NzhKZkQwQWdPN3NqR2RaQWdXSnFnMjlZaVBGdExKU25NMnhBd01BQUVDamQxMGVJeGdSYzlkRmtzTURBT2pHVU9DelBLTUFTWXppUlZGYVdibGpjVWM3Unludzh6RC91MFMrREFBQUFEdG1rUWdYVmJQckFnQ0lIMm5uTi9ZVUpJbWRBNjJYQ3hJenVsL01hMFdZbFVHaCt3aSthOW5VTklPQUFRQ0FmaE5McDJ0bEhQQ053Y2dDQU5vaHJXQklMTVVFMmpDalhldFRIZTVIa2RpQ0lWTElBQUNndjVURzdIc2tCbXRFMFVLSUZ3RFNKQmZ5clFycXFmS2Y1b2tKc0tJQ0JIWGlSVVdVS3BkRHdBQUFRUC9BV1JjQUFQZ3ZCUVZMWWlvZjM1YmxpWjhmVXBXdlU3eFEycGtFY3FTUUFRQkF2OEJaRndBQU9MM214SHBnbjRzOWlad2xCWkNHdEhPalMwYnJ2d2V0YkFZQkF3QUEvUUJuWFFBQTREUVBQUmN2bXhObDZLczdOcm8vV05DK1cwZ2hBd0NBOUJsR2ROWkZrZENDZUFFQStDVEZNeSt1V0ZHUHNHQmdCd1lBQU5Jbmkrd2J4bmE5QUlDNGVDVW5mR3hjZFVZbGgwRXpaalNHazBwNVppOUF3QUFBQUFBQWdMNndONFJMQ24xZVFtS2VqVkVrWk1xeC9lTDZtcEJDQmdBQUFBQUEra0JSMlhVQnZPeElGSDUxUGE3WWdRRUFBQUFBQUtPRzNmQVg5SE5tMzVhNnBvL212MVVqOVNIWVVycFQzNnVNK1dEcStod2pCQXdBQUFBQUFCZzFMTEd1enoyWVp4NDJsV3BWNDVyM0NpbGdYc2lweGhrWFB6UVJ3bFpBd0FBQUFBQUFnS3JBbUZBUHBuWGwvKzFxUm1wY0VUQzYwM3RCL1VKQ2R0bC9PZE41SHJqQitYaER3QUFBQUFBQWdHcWExNGdFektvbVJVeFhDdHpUejR5TktsN2xuemYwLzVmVTNUMlVnSGs2a2Q0RzNPSjhCd2FIK0FFQUFBQUFRQnQwVHlrdERnYkc0WGo5NS83RWJvMHYxaEF2d2JoeS9jRVFNQUFBQUFBQW9BczdFaXFxUnNDWUtXVWhlanRCdklUak0vWGFjUVlFREFBQUFBQUE2SW9XS2plVjlER3pzLzExZ05FTlhmV3N6eXhKeUJhdXhnQUNCZ0FBQUlpTFVlVUZnRStHbGM4eWhZcmU5U2lvTWhtcWZ2VWJaNDFDY1lnZkFBQUFrTStJeXNEZW5MaFM3VEN1Nk0rTmNmNGdwOTlWeHA4QWRNVk1COXZSUzFjYjA3MC85SzVNeUo0cmVlQXpPT0NYdUcxU21yczFFREFBQUFDQVhESnlBazRKRjgyQStuSjhQUE16NzNHZkFUTmFJT2hxWThyNGU1V1JnN1N1TFlta01UMERKaE9jZ3dtT3MrcHpTQ0VEQUFBQVpKS1J3M2RKdkRSaGkyZzBZS0xPS1RVRlMzRkN3SEJTVmhqN1JPbHNFN3FtSnlvb1VINytWNWZwUzZBeHp2ckJZQWNHQUFBQWtNbWM4ZkF6eEF0b2kwNy9xcHM3NjhyZmx5UWdxajkvTUg2MnkzbVlQWW40blhHbVpsZHpUUWZhYmNHT2l5ekdycTZHUzhBTWpRT0Z1YU5xRTdxZStLcW0yWklMaGhicWZXT1paNXdaWTZvYU5BVFNEL1hHZU1qN2pqbUd1ZkU2Vlp1OE1NWnRaY3cxR1AxZmpHZzhjL296dS9DY2Iydm1KQ3JDL0JtN1VlWHZWYlNCUGhqbkdhUWZobDFkU0YveXhaSHhjejQxbUxjeml4enZjKzgvcmFUazJPTHErUnNhYTRPZTErZm13ZDZZM3p2anpFN2ZEM3UzdFZuS0VBYW1nODlwLzAvNU1Zdkt3WDFOblhqWWRHeHErRUx2QnhzY0w2T2F0RDQyYkFTTVBoUTQ5dEd3aGo3amloYkdSMk9MMHRVRXp6d2E0NHpHY1dSMHZtMUQ5VG9MUStRdGU3UUFtR1BZVmtRUGpIRTB4MVBQTXoyV2ZUR3lPWTNudU9Oem9NZS8rcnRyR3NlK3pNdWhNUy9iakdQZHorNHJBUndZOW5RcDU4MFg1bS9IbGRKajJxdTZjd2VYTUcyNU1zVGZsdWIxb2tkQnVLR3h6bllKL0o2eVdTdGpuWTNOWm0wcDdRaUIyUGhaVVNyZnZZdHY4dVo0YkIyc0dwRm9rQkJwMDZ4SlRIRk8rUEo3ZnJPNG5pWVJod2t0WEJ6NXplZllrbEZJMFduVVFucmlVdWtidkJpR0lUVXlHc2VKcDVyOVc5cmxURTBZRG8xbjIyVndaMnRFUWkrTm44MTY5dFF3TFVQS0Rnd25vWFpnTnN6UDRBdERMdnFZM3NPMXZWSWsxcGUwUHFSb3MvUTY2eVA0KzBwaldiZGpJbzA1UFU5OTM0MUxqWEt1UHpOL3A2YzJoL2gxSlpSdkFvMVVlVDNmYWZLSDZQYmFoc3g0UUo4OUdZTnJpdWI5b0h1WVF0OEFYYzNrQjZsN0grSkZVVXJIdjJSVW5SMU84MHhPODJKSDg4Ulh3N0ZyZWdaMjlPdzZxMWJpQ1IwMS9FNXowclZ6b3Avci85SDlpMzM4d0M5bURwN0JyczZyRG1yc2FOM3pZYThVUFR2M3RMNnZFckZaUTdvUFAwancraEF2aXU3WnMzRkdSTEtQTklWNFNaSkZ6WmtwYTVvS21CRXRZSno1dUM2NHA4V3UybVJKQXBtUjd2Ym8wZUd1Y2tzaVZPbzRYVUlMbDlCQytzcHd2bU1WTXBsaFVHOER6c21CNGF6RUVJU29vaDI4NTBEZHBoWGR2eDhRTXRHVE9lalQ4dHJ4L0lzVzVNOGVuZTA2UGtadXMzU0E2SHRnSDJwQXZzY09COTFCQU5oM0FKc0ltQ2t0SHFHY203WmMwMExuclBKQkI2WUNoRXNWdld1MWlNUmhsTG9EcUlYTUpqTGpPaFVhbExpbjY0cWgyZDdJRUM0aEhUeVQyNGlGSVBnMTc3bHRSTnRuYVNSRXVGU0owV2JOakFDUkZFd2hJOGxQQW1uRG5ncDZTY0FzSEJ3azlNR0F0cnREUjhhSFpBaStDQmFBdHhFc1pPTUlkZ0N2alRSR3ljUXdKd2QwZlN1aHV3a1o1WlIvRStiZ21kekRRWWtPRjdzdlgxczREaG10WDk4QzdpUTJJUWFicFVXZ2t3N2tURnlSbjdSRXNBUEV5RGtCczRnZ1pld1N6d0Z6WjZma2dFazJCSnFCMElWTTc3cjhHOUVPNEwzZzNaaEpSSE5TVWNSMUl5eEZUKys2K0RvTFlJUFU1eHJVdzczN1VyUklGUnJTMnVDa1dwQUQ5TnlXdUJzekV4N2NxSEpEYTFvSzU0eEFqemdsWUNZSmlCZk5Na0FVOTZQd0NQY3BiZ1RsR2VkMExUSE9RNGxwakFzUzlMSE55UUZkdDRTZHJWbGs2YlNhbTBncUVQVWRicUUrYVhnZ09yYkFoc2t0WGJzRUVaUFJ0VWplZFRuRmdOYTJWQXJUQUhtc3VBL3kxd21Zb1lOeVp5RVpKRnJ5MWhYWEFxcStEQjJVRWZXTmxEVEdqTVl5OW9ERWZlQ2RoRVdram9rbU50SFZONGJNRWZ1bmhuWnZHbWxndytTYWRoQkNCdDd5Uk1xSVB5UFlBUnhTK3BVZktMVzFzUDJZcW9ESkVuWDJyMUYxb3hVaG96RTZsU0VWaHl2azdrRVdjV1MxanBzQTBkWlVCQ0NRRGVkYSs5TFEzc1Y2eHJXT1FjRHNnUlFDYmlhM0VESEFJUnNLbk9RVWFPbE1WY0JNSThyYmJNc1VlZUN0ZWZZc1lsSVRMNXI3QUFZaE5mR2l1ZllvWWxJZFF5QVByblRUcGcwclV6ampXaVdFaUVuVlprSEVBTmZvdmtRZnFDbHphMHdCNDZJQ2lpUUcySVhwaEM4Ums2b2gwTng2RklPcE85NitSQXpFQy9CQnpoUTRmR2k0eHN3UzNsSDBLV0t5SHRnc2lCamdtZzJsbHJVK0gyTUtHQmYxNTZVeHdTNU1KK2FPRFVLZXVDSFErQktEaXg0NDN0ZU9VL1A2TUlaQUJyWkZac3BjOGs4Tm40ZEo1R2U1bWpEd0VPQklYYnhvYmhINEJSNDRrSWg1YUhNMjVwM3gzMXk3TDJzeS9weE5hekxhWXJlTkdnM29mUkJWYU1mQTZNblJwS3BORy9TNUs1K0dvQ0RWYjhJVkJiM0VuRDY3K3ZsY3pEeVgrTjFXNWtUbTBmRy9kZFJWT3VVSXRVczQ1L1RRWWszZ3JIVER2ZDdWWVZNdzVZVnNkNVByOUYyZ1oxL2pCOWpjMXphNDNva0pFZUNvem10ZmErMGpQZHNvaGdSY002ZlhtTmJGNFRuZjdNM3hlRlQwdy85YVhsaEI3N055K0FWemVvaHNIdHAxUTRNeG9vUHNJZG5UZUc2TVY5VlFaY1pOSHRITGxTTytkV0FRZk9SaXIya2NWdzNtNTVCZUk1clBMb3p0bHQ2ZjJ6bHlQV2YzOVB6cE9Ya3VTSkZYeHRHbE9QekV1Tzc0ZXU2M2xYSGNWY1p6WlB5cHh6RlV0UGNwUUJUV3BxTFRHK1pydWNUTVlsZmpNNjJCK3Q0V0RlL3pLeG42cHZOZUY2Tnc5UndXbGJYaGtwZ2RHV3VEU3lmOHE0UFUrS21INGdmYnluaWVzeFY1WlR4ZHJCTUZyVVBzM2RRQmFFaDFuWDNTQXNiV2lYVGxrSjFpYVJsbC9xZkJ0WVlTTU5vUXpDMGlta05LRlpnNFdNdzRuUmtPNFh5S1BZM2h3bkplNm5Ia0xvL0piVmd6TWk3Yzk1dGpQaXFhazFOSFluVlA3Mis3L3JnYVE4Mlc1dU95b3lQZzhyaytCd1RNZVd3RXpOWnc0UFZ1eW9UV1J2UDdGMFlVdk12OHNiV1pwMWpUMm1BVG5jK05lZTFDWUhFR09NcG44RHZUZTFVcERKdGxJeFRHTkpiYzk3dHA4QmNBVnh3TTIvZWtTZ0Z6UEI0M3grNGNqc2RqVHUvajY1VWRqOGVkeFRXUEdsem55T0w5dTFDTzQ0eStHOWM0WnZTZUIrWnJIVEpkRy9kMUhXbGVUQnpNdzNJK3JKaXZ0Y2s4YlBwYU1sL2IwY0Y4VkxSV0xCeGM2MXpvR0I1cDNuRGVhMWZQOVNsbW50ZDNaZm1zK2I3V0djTVlIeHc4YS9vMVpyaStLdHh6V3I4bUR1YjFqbkZzYlh5bFU3aXcvWXJXV3U0MWJScmcrY0lMTC8yYUczTnhwZy94MjJ6aHpnTnNLeDRzRDBOTGl5SzhVaFJxeHJ5THBjdlU1UlRkNDRMajhQVGMwZTdRME5FWko5M2M4ek5IQXlhQzZ6cEh6TkcyTXRMMjNzRjhWTFJXVEd4S0o1N2czdks1NWg1RFJUdERuK205T1ZOcnplZjZLK1A3Z25ETUhXVXdaTXpGTGdwSGMxcXpjREN2cjVoMkVLY08wdDFjMlg1RmErMllkcUQyVE84NVl5ZzZBWUROL1B2dE43eTFOUHBGd0NaOUt3c0hTTW9EcUkzQjJISDZuUlo4WE03M1Iwc0JPV1JPSmRKVmVGd1lnU3BMbWo4Y0I0VzVEQ3VuWUh1Z05jRjFVR0pEODhDcWtWVUZtN0hrRnIwdjlQMWNIbnc5a0ZQMWdkRkJBZjV4YVVjNWU3dTlHdWRRWGFMbjlTZkdZTkc5cGQzUG1OTW9mZGwrWlJRejRBaGlvaDBGQ01uQm5IL1ZScFp0V1hrODkxSkgxNFZVZ29EUjU0WjhWdlpZMGtMR0VmbTJXY1E0amZYV0tNUHNDMTN5ajhNZzJEWlk1Y29iYjFPS2xaTnlIdDBGRnRiY3VmZDM5SjYrMWtZdEJqbXJid0YvdU54OTRUcG45K0xKMlRaWk1kb3JaV216T050TUZBRnN2dzVpUGpDODF5MTJZVUJBZmdkWDMxbzZUNjVLd2NieStWM1I0aVhFOWUvb3MyMk53bFZIWjNIRWVDRGVkL0dJS2hNR0VUT3dkREk0b21HRnc1U1FKaXpvOHpsRVRKZng0SXdvM2dVcTA4NHBxb0UvWE8rK2NEamRkeDZiOEZiaHNsZkt3dkhtRklJNjRCYktkNW5UL2JRRnV6QWdGQnU5SHJ6ejFMSFdGWnVPS1NnaFN3R0dkcnFWNGV6WWRocWZkWERXdUF5aGhIRlV4dmV4U1ltYmRvekNjdXdjRkFIRnRNbUdJcnkybGYrdTZIMmFSamM1ZDE5Q2lSY1RqdmtJL0NGOTkrV3JnRG5OWmE4VTJheTJOb2hMQ0JZQmRySHEwUGZUcGllUWJuREo3VXVGREtTQmVQalpYdUNkQU1mRkJoZE43RndpWlFGVGhsR3dLUnVyZDJHYUdyaWN5YkVxaElnWHpZUytXOWVkcGE0TlZqbkU0RlRRR3JBaUVXRGJiRy9hUXNCd3JSOFN4SXRtU29FcDM0MzJRSHRjT1dzY3BiWmZIUFJRNllwT2diTHRmbi9ib3ZHbmhtTU1DazluQzV1aWQ3MXRBMi9jODJObTNHc3A5aDNJbzV3YnE3ZVdreVRtM1pzUWpJVTFnanJRTmRuUTV2ZTVkbCtraUVDVHNXVUtWRnREWUNPWU5CS2lxMVVXZEZqWWhvOE5VMFc0bXI2K0NCdkhBMk5LSG9nVFc4ZHlMMGk4YURaTU5xVE5lM0QxWEpvSkRCWlBMRlB6WEtVVjN0Qlk2UXdQN01pQVdtd1A4WThzejlEMGlhOUNIOFNWWlNXb214WjV4UndMbnRSeHRCV0QxeTN6c3prY0ZLbTdseE1HNTd2SnZlQ1lqeElkUGNWUWFoN0V5NUJCbUV1TmdDOFpBaHh0bmd2YkFKOHltbjFLeEdhTkdEQ05UeDFYMUJ3V0JRUEFTZDVaT29QNkFESU9kSjJuRUQ1R004dXpBT01HQ3pTSFVWVkdQeGFwYkMxU2Q1cU1vL216Tml5RTc2QXVxUFJwVnlZTnhwTEQrRXBPZGRET25vc083RUF1dHNKVlY3T1R1czR1TE9lMERoWmR5b2JJbUo2ZGhYQ2JaYk5HdERsdjJCV2trb0ZhM3RFLzJqaGRPdDg4NXJNMHJtbWJjeHVDbWNYWmd5YU9OMWVrNWwrbTk1RklFNmRia2ZHMUZZT1A5RXFWUzA3S21DRTFaQjFCZXNNVUFxWjMyRHJMSHhtS2FVaW5pYzNpRWgyMlovb2s0Mm9IeHVUYWsxQUNrYUZUeUd4M1lWWTREM09TdmNCekJuVXNMSnJoTlRtTElUa0NKWVhyaGltWlBveEdDcHliY3h6ek1ZYWQ1eDFLSy9lS0hNVWJHdEhrK2NjNmU1bUJKOTl2anVNS29BcUhnRkdHaUVITzlYK0pRYnhvYkJ5eVN3YUJxL2RMNmpReEJoQ0R6WEFwWUxZUkhTNlZtbjhQK0VFZ3NSbE5ubitNWlROODJLTXJvV2NOUVVDMGdGbGFSTjgxQTlvcTFhV05SeWRlZlZzVVloSXdObHUwcnFQZGZRR0dsWTl6NDJRYnBZNUpGR3dZdTVrRDJXQnRhRWFUblFQc1pEWERsMzFIZ0J6OGhWbUZqTXZSMXRVanZwMTRmVmRLSFZ1K2RoVHRYQmc5TjJKZ0xheHM4aVVPRmhWZXpoa0RHTlhtWEJxcmpMSHhZdXFjY2tBNERHNXMrZGd4QlZKQWR4QXNhczQ1UHdMajJCeGYvdGdWUkF3d01RWE1YSERmZ0N0S1FicWxYWjRmeGs2UFpERVRZLzN5cnRkODdqNGdkN1U1bCtZenhHQTc2c2JMZHMzWVJsZ1pCNzBVK2dIV2grWWc2TWFEejUycUdlNE4wSmdDNWhCWldvVGU2ZmxCMFVXSlFxWlBBdWJjSW9ab1ZuTXVHUU9Jd1hiVWpaZnRXaEZqTlp3TkdsdjJBbzZtaTMwQlFUYytmTzdDckhweUhtYUlIYWZ6VkJ0Wnpoak93b1RnbG9UTVROakNFNk9BUVRsczJTRDYxQTRYT3pDeFBpTjR0dE1HRGYvYWNXNjhNSmJ0OERsZXBVai9ZblRybnhtOTdQSkVHcXpQNkxqRk0vb3NudVpkemY4WjA4REZ5Q05ONHJFQVl4MXp0TE5yWDZEUkNkR0dhRlk3VG8wamFJK0xIWmhZRzZ0dFVBMHdhZUIwODRHeGxNLzFHVCtsb0oxeWZmYlB6QUtKcGZ5OUJ1Y1hUMUFuWUVvajkwQUtOMGF1U0lEZEJiN3hNVWM3dVIwMFZITUJLUkdydUVSSGF3RCtnTUFhSDlMR2NrQ1pPYmMxL3k4R0FiTXdtc1RIVkFqS0s5VVVNczA4Z2Vabno4Z2ZCQUFBQUVBTkNLenhFVXRxYzB4KzdRZzl2TTVUdHdPajBjNS9uWUtOaFdlNlRtekJBUUFBQUFEMGw1Z0VBWGJNTDNCcUIwWlRpcGl2RWk3VWdtYzZFd01BQUFBQW9ORGNsWlVZVXViM0tHU1NGcGNFaktJOHZMdklENldIS0xPTS9Oby94RmpaRG9CVDRJQXZBUEdEQ0RjZk1ZemxGWjBwNlVOQU80dWdUNkkxNTFMSVRCWkdKL3dZcTlnTTZOcDk5aU9KT2IrMmF6N3JxY05tTzR2dThTODlQTVRtNnBENHVvZlZ6Vng4M3p6U09Za1MzR2xqTXllTEh1YmJueHV2bllXdjg5ckRTSDhzNitFTmlhMFllM20xWVU3SFB4NHBnRHhLMFk5cUttQVVmZmtScWRlNWhVTWFpbyswbStSemtZN1IwY2tzbXFHNStLN0xIaXcyYmJBWjR3TnF5di9FdHB4d3JGRXRDSmkwc1ZrYkJsZ2Ivc0ptTERjWVM5SDBZZWZOM0dWYXBCb0VicEpDVm1WSkJ2d3pSUnBpd25lanl4ZzcwSGU5NW5NcGhqWlJjSFR4L3h1YmhRZ083QzlzRFZpTWN6S1BNT2dFMm1PVDZvMzE0UTgyYXdUR1VUYjNQVWdqMHdKNm4vTE9haGNCbzlHNWhQL1FHWm1YQ0E3RkRUeVhWdTZUZ0RtM1pXNWpEQ0JnL3NZbU5lRUs1emQrWXB2ZTBhZm5Hc1NGemR6R0hQa0R4akZ0VXE5TXE3TldwaW52T0xWSklUdkZnU1pEZFVLMGZZanpNODdWa0hJWE9mQ1pSaGJqUXRZMU1uRnV3YmN4QnRjUm56bHd3WUdpckYzVC9NYW9MVzg5bDY0aW5KUG9pZFVQYk5JakoxZ2JmbU5qc3dhMHppTDFXUzVkN1djc2xMYnBUZUxma1VYQW5JTDc4S3l1cW5CditUNVhKQ3g4SEdhK2ltd2hHMXFrbVp4YjhHM0hlb0tjNHI5WVdRaDZPQ20vNXFxTkNGU1J6Y2s4MHVJcm9EMElGdkZ3b1BTYnJ2WVFBZ1pjWWtUekRLV2RPMktUUXVhYkErMmVmR1lvNmV3ei96R215T2ZVNG5jdmlSU2I5RUpFai8vR1JoQmVJOFhoSnh5aU9oWWcvdnVEN2J6R1hQbUR6VmplSWwxWFBLRmJYWlJaUzkrVlVrZGhBelVuOFMyNUZVZ1piSi9FSkdBMEhIVzhmVHB3TjVFc1pEa3R1bDNZTjRqYTJVU2pyaUJpL2dKT2lqMjJZeGpMbkJ4YVBOY2dQbmFXZmJmRzZHSDJtejRGT2ZySUt2QmNIeHZCZUNtN01FUEtjcm9SWEl4aVRQY3VqMUhBS0xyNHJ4YS83N3RIU3d3cE96Wk9iWk9GM25ZNzNYY0ZPY2xzTEoyVWo5aUZZVWtoalVFSTlqMWRzSS9ZckxVb3Avd0hXNXMxeFM2TWFLNVBaSjIwc1kwNS9Yd1hlN3FoMzM4UVVoVXRpNlM0d1VLbmY4Y3FZQlRESXV0N0YwYXl3eml5ak5JMldlaHRuZTRyeXhTMzFMQTFybjEzYkczbm82STVLZG5abStMc1N5K3hkVUx1VVFyNEp3ZkxWaEVEckxQaTBVV2RabVJUeTN2K3JjWmZtOVlJMGhIWmtXLzA2cEoyZGFEUGwzRHViQkpCQS9hWmVYWTFaZ0ZqdTdqNGp1WXZoTzRnMktydWZRdG4ydGJwZm9SaC9ZMnRrM0tOU0N0THRHa3FkRTZXMS9SRndIVUEvM0NJODlUTHpEYkYxbWJkOUtEblNNd01TTEEvMHIzU3p2R0VmS09NbnFjdjlQcGhOTmYrVmlrRWM2TlRteUlkajZwL0tzMWZIZEY5K2szTUFrWlo1ZzM2ZGpxdWhFWmo1cFlON3RvczhCemZYL3JoTWw5c0dQb3VQZlk4bFl6RFNSc0lERTVrbnFvc0FybHdCRGdnWW43Wkc5dWlRUXNFM3FMamxtenNwbVpYNHVaTUZkQnIrcDBZUld2VkZ3ZzlaelBqR2taMXZ1WTdVcHBkRk9OS2dKRmNWUldaY0c1cHExQks1SHZDY01DM2pTZ3B2L3ZhTXEzbGl1NDdETUt2c1grMmZJK2xzUlhlTjNhMGkydmJZK3FhN29XRVE3dGF2S1RlNXdDY1o4NWdHMjlwTHZWWnlPZytkemJ0RzNTUVk1UnlVOEVFNlJyWWxSalV1a1JXNDFPRm1xdERXcjh1K29sYXdIUjFLRU1MbUJpMzZoN0pjUXB0RkNZTXp1OUxoOXpOR1cyOTJxQ2pnMzJ2OHJLZzhiVFpRUnZRYzl4WEVUTm5hcEtyQXdFaDU2UVdMOUx6bUlGN0RyUSsyd2FvdEkzb3M0aVpNL1NmdXpiV1dZaVk5SWt0Z0RTcVhQTkxvSXloWVpzQTNEdHlRTHNJR0FucTBpWUtIM0lSQ1cwVU9NU0w2cmlUdEdMWWhWRkduZjF4UkFaaFdQUGMyRGF5bWpIY3l4aEZURjNFU0hVSXFuRE5SeFZZeExSYStFRXZtREdWMEk1UnhOU2x4dTQ2SHBiZU1ZbkJHRVZNZmlKUWpCVFZ5d3dqc3FlbUxiMEw5S3kzOWt2ZldsUS9rSkRqWjVPL0gzcGlQUWVhSkFzbThkSmw5MFhEbFVMM01VQTZtWTV5SHp1OHZoc1ZTL1RMOWpsYU1CellWWWFJOGUxOFR6dU81ZjlxeHJMcjg4U1owbmtiNEp6V2xPWVd4QXN3MlZtMkd6QjVEcEFXTXlSSHY4djZVRjBidmxsZSs0emhMSXdpRWJNTGNQWncwWEVjZjlTTUk2cUJOaU9tVlBjZG5hbnRLbDdNWjNWUitYZGRabG8vZjFsTjZlbE9nVmdiQVJPNmtkdklNbFZDUWdSRUh4VHpNY2wxTklBaklsY3c5STJ4cVNCbm9xTmFQaGJWc2NXT1pSMTdwbTFhcnU4K29FWEVod09lMDMzanJKVFZkVDNTdXpCYzNOQ3o1dHBKY1RHR0lDMjRIRzlsbklueDRYelBtRVg1aTJYUWNzZVlVak1nSWVDanR4bW4zZGRBd0RSakVKR0kwWVVtdW9pWGNXWDMvNVpzOGJBU3ROVWQvbmZHdjIzSUYrOTBYczlHd0tqQXpRVnRGeE1wVzN2WGRKUG5qc1l5TTR3QlYyNDhSOTN5Q2FOaEhaQVQ1OHBwMUk3aXY4eFI3aW1Ua0Y0NmNNQjNqZ3lWbm84YjVoNGxyNVpwRFp6elVWR0E1NXVqcUxVZXd4L284d0l1Y0dCK2pxK05lZTNpRE9xRTFoN080andGMHhqTW1IYTdOWSswRHJvSUJPZDBqemp0ZnNtVGtKNGxzVER3R0dEMXlkRElSS256aTU1cDdwbmNWa3BWSzVxYm5YMnF0NVpHL3lwZ0dwVE5ROG5wN0hGeGIxUW80ekFNT2IwWHR6SFlNcVhjSEJ4VVk5UEdsU3NWU3BmdWMrRW92akwwR0REaGRzQzFLT1NhazdraGZCK1poV0RCY0w4NUk2d210OFo3YzR6aHdzRXpEZEptNGNEbTNkSzZ5RkVpT0RPRXk3TmxVWkk2Sm93WkY5eGk0NHErODg3b1BXS0RqcUwvWU41MVVZeTJ2MjlvV3hwYlpiSnpMQ1VFejk0Y2o2V0Erbmt4TnBWNHRrWjZqVXQwMDBYYnFrRVBEWnlWRVVPMUxCdTBnN3RxTWE0NVhmZVlxYkpTbGNMQlFXL2J1WGVPd2hqREp1Tm81bWFPSFJoU1RVSDNpanVOY1V6UkVGZXNhVHczRFFNZjVsaTZySXoxbVZFTXJod3Z6RzJmYTUxREhMSkw4bE1BeDhYbVByeGh2cFpMekN3RTVTZFBCNkl6bW0rdXprbnRLMnZ0cGJWdFNDOVh0a3J6NGtCMDJOenZKcndhNDNqSjFtYkdPTHEyV1Q2S3ZMaGVmME96cGZrWWM4WFBuQVJ5YUo2MGdPR29TbFdRdUZnNHVEazVYZU9VYVFGKzM4QjVDQzFnVEFxanFWTFZNR1NHTVhCOWlOZEZkUXJkNmRiVndsdmxWQ1RTeC9ocFBqaGN3QllPSW0rbjJKOTRqbktQOS9NcjgvWjhUdmZHeDF6WUc4KzFpYzludWdrUU1PZUpRY0FvenphdE9MSEdaUjZGK05aaHhTK2ZqdmIyeEhmd3VUNzRxa3lWdW9CUlJzWUFad2FHTHlSVnUvd3RZRnhIWnlUeDJyRHlreVFCSXdFWGtTeE5uMHJBK2pBRWRkMkRVMlR0Nk13VG52Mi9nWUE1VHl3Q1JwSFk3MFBSQjljN0JyNERieUZ4YWZ1cjlFSEFhTGFWZ0w5dFN3WFh6QmczRVRoNGVrdHZjZ2pVdENZRWZmbWVuS3dkTDJBYklXVzVYZlBpS1lvMW9zVXhaYllPNTh5S2hDWUFxVEduZFNobGZLUTdIV2o5NFR4M0tCR2Y0cVZ2WEZNd1FWZmsraTYwT2JzVzY5eG5WNjE1YTd6QnZBY1A0eG9ObUZyajBsRTBTZDFwOUdrSURtVEFPU3ZtU01KbGFvaG1RV2ZsQUVpTlNlSWladW9wa3EyclhxYnFOMjFSTXRrN0VnTzVLNmtaSGFhQTZjTXVEQjdHZHZod0ZFMFdpWXFZRUZHc1E2STdNVDduNUp5eEVTQUFra2hWeFBqdUlwNnFpUEZ0KzhFdnBGVXBHMHBPUjM5Yitmc3M0ZFNUcDhnclAvaG1IV2dCVzFCVnFWUU13dGVBVy9DN3hFUk1DS002UlRvWmNFaElCekVsRVZOUWNaUVFiUjFTRXpFdlJtZDEwRzlFcHc5V0JZeHkwRTlDQXFoZjNvNlh3TkdYWlNJcFVIY0NkdjMwVHN4cjRPdXdKZVNjMUR1RHFhZllBditFRHFwTkVoRG9lMDhsZnMreG9mTUxzUWVMUWdiY1FCaDBlNUpqemV0ZThqMnBFekNieEZLdDlvNHFGVjM2ekZpZDd6c2hDOWlHb2tBU200NWVZaDh3R2xpSFBuRDZKT1I2MnZMQTNJeXVDNHZJUlhYcVJSMUFkeFpVRFMxR2dmNUtka0pDZG9VT0ZzVzRxMVZRNWdQUzdNUGkyOGFOS0ZQRFYrc0ZWdW9FakVyb0xFSkJqcHZ2U2JHalJUV21oV3dyek9sV2hrRjRpTWk0U2pLb1ZXYmtxTVRpaE9zNUtlVnNuaGJWTWUxbXdURUJUVmpSRGtJc2M3c2d1eERDdnAvalFNR1dtTktnMTdTdXhkaVhKQUpqMFkwQUFBVitTVVJCVkRWOCtRMDUzZTl2TWJldk9DVmdWQUlpWmh0NFcxa3ZaREU0akUrQ25XNUZEcXowM1pnOTNXdHBCclhLaXNaUzhtNU1JWGhPNnQyc0dCeVVWOE5RQVhBSmMyNUx0bGs2U0NTNTZOQ1NuajNKUWN5Q2ZMeFJnOGJlSUEwbTVBT1VuZlJ2WXY5RzV3U01pdmhBOVZwQVRxekdkQmlsaldOcENONUhjajVJSDBpWFpseTFzNTFIVktMN1FQZjh2Y0NJcXo1QUtuMU9hZ2RGb2hDTVJVd0RtU3lGMnF5dE1hOWpjTGpOSUthMDRKdTJXWkl5TG9BYk1oTDc1VFB6bkZLajBFc0NSaG1MV1N4bkVaNEVsdi9URG1NdXhDaThSbVlJVExUamVCZFl5SmpDSmRZQ0VUdWFBNThFUkFwZlNGQk5JcHFUcGhDVUVHbmQwM01SazVnR01wRmtzOVkwcjRlUnp1c1YrU1NoaFV4QmgvUjEwQkxCalg0d284UDRWNmw5MnlZQ1JoblI3OUJPNHpuV0Vld21tRWJod2ZOWW1vdlhPQUVIWjBIajZOdjUxc1kwUzhnSXJFZzR2Q2RueGRlODNOUG54U1pjcXV6byt2L3hQSDZhTmUxTUlxSUt1REZ0MXAzSFloQUZyZXVmeVBkSVlWNXJJZk9CdnBzdlViZ2xmeU9uczNCSUY1T0xpMDc4dzFRR3AwcFRBYU5aQ0lsK201aUxYRXlSMnptTjVRY1NGaTdHVXh1QnorUndwN2g0clF6bjhjNlJZWGdsQS9BK0lXTmF4ODV3VnZTODVIWll0dlMrSDR6ZHExVG1wT25zZlhic3BHd3JjeExuWElCTERyVHVEV25PUFRqWVRkaFg3TlVrMFozRURYMjN6RmdudU8zLzJsZ2Y5SGtoN0xqSXgzZkYzS2g1Y3p3ZWJhNS9TQS9peUhPM3psZGEyQllPSDhvUlZXam93cnJqUk16cDk0YkdxMDJGaURVNWd4c2FuejQzN2h4V1hubURMZFNDeGt5UDRRYXBPRC9KS3ZNeWE1aEh1NmJuMHh6TFBoclJJWTNmaU9aaGw3VnliWXhobDNHMFdjK2VBdXhzcnl4eXRkOHdYOHNseXJGNTdQaTd2cS9WQmViY3psVXp1N1dsT2J5aTlYYUZuWUhmOWwvL21UVllLMHlidFRQV2gxaXhlZTVUb0tEN3oya25VeDNUSjFzQlUyVmtPRGpjbUU2bEQwSUltSFBqZW80Tm9pdXQwZk1VQXNXZXpLZ1lobm5ZREhPZHJEN2ZPOE9aNHhyVHpDS1ZZQmZBdWJTeEk3NmY2ZHdpOWFNUDY4OG8wQnhLamJ3SDU5djZMbUFVWlpKd1pYbmtWSEVzUmRnRlRFcElFakFBQUFBQUFDa0RBZk5yZDVMcjNNb2kxaWFWRFhocWV3WUdBQUFBQUFBQXdNODFZeGJUT09YN0F3RURBQUFBQUFDQUREZ3llTVl4ZDlsdkFnUU1BQUFBQUFBQU11QVFNTW1XVDlaQXdBQUFBQUFBQUNBRERnR1QvRGxzQ0JnQUFBQUFBQUJrd0hrT0psa2dZQUFBQUFBQUFKQkQwZ2Z3T1lDQUFRQUFBQUFBUUE0UU1CZUFnQUVBQUFBQUFFQU82Q1Y0QVFnWUFBQUFBQUFBNUREb1F5VXhHeUJnQUFBQUFBQUFrQVVPOHA4QkFnWUFBQUFBQUFBUURSQXdBQUFBQUFBQXBNTWg5WHNKQVFNQUFBQUFBRUE2YkJLL2x4c0lHQUFBQUFBQUVKclVuZTYyN0N4K04vVWRtQU1FREQrRlVtcVIycGNDQUFBQUFIQUlCTXpmMkFpWTFNZHk5VTdBUmFURVdpazFzWngwQUFBQUFBQjlZNFU3L3B1OWtPdVF5S3ZDR1JnMnlsMlhCMm84QlBFQ0FBQUFBTkNPSFFXQ0FYekpjeXdWQkF3TGEybzJORS9ndXdBQUFBQUFoQUlwK0R5a21rTDIrNWdHQkV4M3NPc0NBQUFBQU1CSDZaeHVNWjdXNlhTcEh1S2Y2ZitBZ09rR2RsMEFBQUFBQVBpWllrelQ3K1BTZ2EzcGQwUEF0QU83TGdBQUFBQUE3aWgzSDc3MmZIeFIwT0J2Q2lxUzlSc0ltT1pnMXdVQUFBQUF3RDNsTHN4TFQ4ZDV6M1NHSmFWVXZHbDFUQ0JnTG9OZEZ3QUFBQUFBdjB4NkttSzRBdVdwcEtIZDFSVjNnSUE1RDNaZEFBQUFBQURDTU9sWk9obG5NL1RZSzVHVlkvSHAxSGhBd0p4bWhWMFhBQUFBQUlDZ1RNbVI3VU56eHhuanprbk01MmpLWnBYNXVlOEFBUU1BQUFBQUFDU3pJb2YyTG1FaHMyYk8rRmxHbUlMM1NtSjFmRW5JdlRrZWovNHVDd0FBQUFBQUFEdUc1T1NPU05oY1JUNmU2eVpPZTBmS1haMUhMOStpUGVYM0xqT2RTb0ZhQ3E1bTMxOHA5WDl4RWZtaUZXZjVwd0FBQUFCSlJVNUVya0pnZ2c9PSIvPjwvc3ZnPg=="); }
.logo-marmoset { --logo: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+PGltYWdlIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiBocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FDQVlBQUFERFBtSExBQUFVVVVsRVFWUjRuTzJkZWJ3Y1ZaWEh2MEVna0FSRWNHUHQ1dGVRRVVpQUdRUnhZZEdKeXFJU1I3WnhSS01zS29xaUlpUEtJZ3dnZ3VMSUloREJBVkZBRVJRRlF3UkVRU1FqT0VFZ2JFNGZ1cEZSQkFUQ1lrS0FNSCtjYXJxNnVxclhxdXJ1bC81K1B1L3phcmwxNzMzdm5ycDE3N25ubkF0alZtZ21EYm9DV1NCcFBhQUlyQXVzQjB3SDFnZldCRmJILys0WGcrU1RnT2VBWjRCSGdUOEM5d01QQXZlYldUWFB1dWZOeUF1QXBNMkFiWUN0Z0Mzd3hpNENMMHVwaUFwd0QzQTdjQ3R3aTVsVlVzcDc0SXljQUVncUFXOE5mdDRNRkFaUWpVWEFqY0Exd0xWbTl1UUE2cEFLSXlFQWtyWUE5Z1QyQVA2eGh5eWVBUjRHRmdOUEE4dUJKY0c5MVlDVmdHbjRKMklkWUswdThsNktDOExsd0JWbTluZ1A5UnNZUXlzQWtsNEpmQWo0SUxCbGg0LzlCVmlJdjZGM0F3OEFmd2IrQ2p4dVppKzJlTFpXN3ByQXE0RFg0T01HQWE4RFNzQk1XZ3ZITXVEbndIZUJLODNzdVE3clBUQ0dUZ0FrdlJINEhQNjJyOXdtK1ZMZ1Y4RDg0UGZ0WnJZOHc3cE53Y2NaV3dGdndqOUIweE9TUHdhY0M1eHRadmRuVmFkK0dSb0JrTFFyY0J6dytqWkpsK0p2MldYNFd6YlE3NitrNmNBc1lEZmduL0ZQU3BUNXdBbG1kbU9lZGV1RWdRdUFwTjJCcitKdlZpdCtCVndBL05qTUZtZGRyMTRJUGgrN0FYc0h2eWRIa2l3RWpqT3puK1JjdFVRR0pnQ1N0Z2RPcC9VYi94RGVqWjQzYWxNdlNTOEgzZzhjQkd3ZHVYMGZjSVNaWFo1M3ZhTGtMZ0NTMWdMbUFudTFTUFpiNEJUZ3AxbCswL05DMHJiQVlmaE1acVhRcmJ1QVQ1blpkUU9wR0RrTGdLVDlnVE5wN2hwclhBcDh4Y3dXNWxlci9KRDBXbHdRUGtIaldPRkc0R0F6dXpQdk91VWlBTUdVN2xKZzU0UWszd0dPTmJNSDhxalBvSkcwQm5BVWNDaXdTdWpXMmNCbnpXeEozSE5aa0xrQUJJTzhpNEUxWW01ZkRIemV6UDR2NjNvTUk1TFdCazdGOVIwMUZnTUhtTm1QOHFoRHBnSWc2UVRnaXpHM2ZnTjh6TXdXWlZuK3FCQm9PdWZpdW9VYTg0RDl6T3h2V1phZGlRQklXaFZYamU0ZXVmVjM0Q0F6KzM0VzVZNDZrdllEemdLbUJwZVdBQjgyc3g5a1ZXYnFBaURwVmZpZzVoOGl0MzROdkM5cmlSNTFndW5qaGNDN1E1ZlBOYk1Ec3lndlZRR1FWTUM3OXcwaXQ0NDFzeStuV2RaRVI5S0hnVzlUWDliK1grQnRadmFuTk10SlRRQWtDWisvdnlaeWEyOHp1elN0Y2xZa0pHMEFYRXU5TjEwQ3pEYXpYNlJWUmlvQ0lHa2o0R2JjK3FiR0VtQm5NL3RkR21Xc3lFaTZBRjhWclhHSW1aMlJSdDRydFUvU0drbXZ3S1UwM1BoUEE5dVBHejhkek94RHdKZENsMDZYZEZRYWVmY3RBTUFWd0thaDgrZnhOLy8yRlBJZUUyQm1Kd0lIaEM0ZEorbTRmdlB0U3dBa2ZRdllJWEo1VHpQN2ZULzVqb25Iek00RHdyT0JveVFkMFUrZVBRdUFwRDJBajBjdUgyNW1WL1JUb1RHdE1iTnpjWU9aR2lkS09pQXBmVHQ2SGdSS3VwUEdOZndmbU5tK3ZlWTNwanVDM2pmOEF1N1lpOEZKVHoyQXBFTnBiUHo3Z1kvMmt0ZVkzakN6ZzRFRm9Vc1hTWXBPd2R2U3RRQUVWaS8vSHJsOHlMQmE2VXh3UG9SYlBJTXIzNzdUYlFhOTlBQ2ZCbDRiT3IvWXpLN3FJWjh4ZldKbTl3RUhoeTd0SnFtcm5yaXJNVUJnelhNZmJqWU5ydXpaWXBpdFhsY0VKRjBPdkRjNGZScVkyYWtKWGJjOXdNZW9OejdBU2VQR0h3b094ZTBJd0IxY1R1cjB3WTRGUU5JcU5JNDZId0srMGVuelk3SWpzS1FLajh2MmtiUnpKODkyMHdNY0FHd1VPai9ieko3cTR2a3hHV0ptNXdBM2hTNUZCK3F4ZENNQW53Z2RQNHN2Vlk0WkxvNEpIZThpNmEzdEh1aElBQ1R0UytPOC8wSXorM09YbFJ1VE1ZRjUrWTlEbDlyT0NEcnRBVDRXT2Y5ZXA1VWFrenNuaDQ3M0N0enBFMmtyQU1GZ1lxZlFwWVZtOXV2ZTZqWW1hOHhzQWZWZVlDWGNPeW1SVG5xQVBTTG5sL1ZRcnpINU1qZDAzTW9EcTdVQVNGcVp1b0toeHM5NnJOU1kvSmlQeHpvQ21DbHBtNlNFN1hxQTdXZ013YkpvYk9neC9BU0JNTUtEd1hjbHBXMG5BTytJbk0vcnRWSmpjaWRzT0JvMTJubUpkZ0t3WStSOGJPTTNPdHdFUEJJY2J4L1liamFSS0FDUzFnSGVFTHEwRkhmdUdETUNtTmxTNEliZ2RDcndUM0hwV3ZVQTJ3RlRRdWVMek96aGRLbzNKaWZDdHBteDBkVmFDVUIwNUxnZ050V1lZU1ljYjJEVHVBU3RCR0JHNVB5ZXZxc3pKbS91cGg0U2Q3cWs5YU1KV2dsQU5EYmZlUG8zZXZ3SkQ1QUpzQ0hOYm52eEFpRHAxY0RHb1V0TGdYdlRydDJZYkRHelovR2cxK0NCczllTnBrbnFBVGFoTVlaTldKTEdqQmFQQnIrbjBHak5CU1FMd0VhUmMrc2t6T3FZb1NSc3JiMTI5R2FTQUVUOSsxUDFTUitUSytHQVUwM0tvQ1FCaUk0V1Y4Z2dUaE9FRjBMSHEwZHZOZ21BcE5XQVYwY3VqNjEvUnBkd0d6Y0YzWXpyQWRhZ3VhdDRKQ2JkbU5FZ1BKaHZhdTg0QVpoR2Mwejh4MUtzMEpoOG1SbzZidHEvSUU0QUp0UDhyUmo3L1kwdTRkNjhxUjNqQkdCVkdtUDVMZ2ZHOXYralMxajcxOVNUeHduQWFqUitONWJoL21aalJvekFCcURteVBzY0hRckFWQm8vQVgrbmNTNDVablRZa0hxTTVzZnh2Wk1haUJPQXAvRkdyL0ZNNUh6TTZCRDJDZmdMZGJYd1M4UUp3RkxjOWF2R01tTG1qMk5HZ3JBTndJUEVyT2ZFQ2NEemVLUFhXRDRSZHUxWVFYbGQ2TmppNGpRbjlRRGhMdi81dEdzMUpqZTJEaDFiWElLa01jQjQzai9pQkx1MGhIdUF1K1BTeFFuQVUvaUljY3hvc3czMTJkd3k0STY0UkUwN2M1clpVa2tQaFM2dEltblNNTm9EbEFyRmwrRkMvQ0x3UXJsYXlhMk9vYktYbDZ1VkY5cWxId0RoN2ZqS1NlNzhTVnV6UGhnNm5vcHJCNTlOU0pzTHBVSnhFcjVWNnp2d2I5dUd1SUhEcE9CblNhbFEvQ3UrWC9DZHdDM0FnbksxMHBjU3ExUW9yZ3BzUzMyTCtvMXg1Y3EwVUpxbjhQL1pYYmp2eERYbGF1V1o1dHh5WmJ2UThVMUppWklFSUd3QXNuYnc4NWNVS3RVVHBVTHhJT0JZR3NQVHhSRTFmWDYrVkNoK0YvaHN1VnJwZWx4VEtoU1B4Y095VG0yWEZ0Z2NGODVEZ1dkTGhlSzNnQ1BMMVVydU9oUkpxK012UzQzWTdoK1NEVUxDSThiSndDdFRxRmRQbEFyRjA0QnphTi80Y2F3TWZBUzR0VlFvTnRuRHRTbjNPdUJvT212OEtKT0J6d0EzQnoxSTNtd0hyQk02VDl5WU1ra0F5alRxLzZNMmdybFFLaFRmQXh5U1FsYWJBUE9DejBnbjVmNFFlRnNLNVc0SmZDMkZmTG9sN0F4cUpNd0FJRUVBek93SkdzM0FveHRBNVVVMEduay9iRU1Ib1ZSTGhlS1J0QW1xMENVSGxnckZybVA0OWtrNG9zdlZyUlI1clJ4RGJnMGR4N29WWlVtcFVOd0EzNDQ5VGVhVUNzWEVrQ21sUW5GbjREOVNMbk0xNEQwcDU1bEk0TlFiM24rd1pRVHhWZ0lRM3RReDFyTTBZMmJSdUsxcVdueWpWQ2hHYlI1cm5KcEJlZUN6aUx4NE8zV24zcWVCcTFzbGJpVUExNGVPTncvaUJPZEpyRGRyQ3J5YW1POXlxVkE4UHNNeUV3TTBaRUQ0N2I4cStKd24wa29BN3FJK0c1aEdjN0NJcklrNnA2YkpmcVZDOGFVdGJVdUY0b2swYnNxVU5pb1ZpdXUxVDlabklkSWtZTmZRcGJiYnl5WHBBVEN6NVpLdW9qNEszd0g0YVY4MTdJNU9wNTVQNFhxTEo0THpqV2gyYkluamhGS2h1Q2R1TUxGSmgyWDlEZC9BOGJuZ3VmVTdyT2VxdUZ0VzF1YjFXMUwvVzU0QmZ0THVnVVFCQ0xpV3VnRHNLZWtMWnBhWDJqTnB5bllMOE45NHVKbzdnSEs1V21td1dTd1ZpalB4UU5idEJwR2Rkdm4zNGNFeWJ3aXJmVXVGNG1SQXdIUThtc3BNWEJrVU4vZC9XY3kxdEFtLy9aZWJXVnRyN25ZQ2NEVXV0ZXNCUlR4a1hDN2JtbFBmQ1NQSzNISzFjbTZyQjh2VnloM0FyRktoK0R2Nkg0QXRCbWFWcTVVbTk3aHl0ZklzUHNlK0c3aWlWQ2h1U1h4RXJ1WGtzOEw2OXRCeFI3dTF0Z3dTWldiTGdQOEtYZnBrRDVYcWxmc1NyaDlWS2hUWFNMZ1g1UXNwMU9Pd3VNWlBJR2tLK1FnWnU5ZEpXcGU2K3ZlUHdKV2RQTmRKcE5EanFUZkdUcEwrcmZ2cTlVUlNRSXFOZ05NNnlhQmNyZnlTL29UZ3ZIYTlUWTFTb2ZnUmt1ZjdONWVybGFWOTFLTVQzazNkblAvOFRsZHYyd3BBRUczcW9OQ2xzeVRsb1Jsc0ZaRjBUcWxRN0VoRlhLNVd2Z3A4dllmeUx5dFhLeDN0eDFjcUZGOFBuTmNpeVM5N0tMOWJhck8wZTBscnh4QkpSVWs3QjhHaEx3a3Vyd0hNazlUVjRrcTNsS3VWKzRCV20xR2RWaW9VUDlVdW4xS2hPSVBlRkZtYmxBckZ0dlAzVXFINEZsbzM4R0xnb2g3Szc1aWdMV294bmE4Q3BrajZnS1N0MmoyYnVEZ2k2ZXZBWjRQVHAzRGJ3TENiMFhWbU5xdTNLbmRHb0pxOXZrMnllY0FSNVdybEQ2SG5KdUZ2eE9md3JyRWZmb01yanVhSHUvRlNvYmcrOEVVYWQrMks0NWh5dGRMM0hyK3RrUFJsNnB0RlBJZlBPR292OTF3elM5dzNJRllBSkgyZXhyanpjVnhxWm50M1ZkTWVLQldLWjlDNFcwa1M5K0RkMzJUY2NLTXBIazZmUEFFc0RINFhjS09VZHAvUWhlVnFKVk0xZXJDWFV4azNrRW5pY0RNN0plNUdrd0JJMmhidjdoVzZmRmZ3c3dad0czQk9ucnVGbFFyRjN3SnZ6S3U4bEZnTXZLRmNyV1FlWEV2U0QybTlnbm1QbVcwV2R5Tk9EL0FXR2hzZjRIdG05cFVlNjVjR3MzQXRaTnFyZzFueE1MQmpIbzBmOEFIZ2ZOd0k1RjVnSCtxZmI0Q1NwQTNNN01Ib2czRmRXTnhLMlltU1BweENSWHVpWEszOHZWeXR6TUt0YkliZFQvSGJ3S1k1Tmo1bXRzek1mbTVtRndhWG9vUFhWYWo3Q0RZUTl3azRIUGhxUWxtWEE2Y0FkNW5aa3ozV3R5OUtoZUpVNEsyNCt2VTFlQysySEY4Q25ZbjNZRDN2aXQ0QnQrTnE2Q2RDNVR5S0c2UCtzbHl0UEpUd1hHWkkyaGc0RXQ4ZVpyV1lKTXNBbVZtVE1pcE9BSGJIeHdEVG92ZENMQWFLN1pZYUIwR3BVQ3poMnN1MGwyQXJ3UHZMMWNyTktlZmJGNUwrRTkvUHVSVVBBQ1V6YS9MeWl2c0UvQjVvOTBkZU9ZeU5EMUN1VnNybGFtVkgwdDNhNW01Z3F5RnMvRU5wMy9nQU44VTFQc1FJZ0prOUJQeXFSV1lYbWRrSE9xbmdnRGtzeGJ3T0wxY3JBL25rdGFIVEpmUEVmUjZTNXJHWEVPOFMvanRnZjBsVEpLMHJhUkFtengwUmFCS3ZTU0dyQjJoalZqVkFFaDArUWp4R1hZdmJST3h5c0ptWnBPOENjeUszaXJnSHpEcTRCL0VUa2g3SEIwRlYzQUR4ZWpNcmQxQ3hQUGc5alV1a3ZYQmJ1Vm9aQ2c5cFNldmh3bWk0NXU4UlhQUFh5bmJ5bTJhV3VCVGR5aDdnTUh5MEhkNDFMRHhGbkJMOGhFMmRQaGhVOUJ3emkrNDJPZ2lhUXFMMHdEQUZ5VDRWbituTXhIWC9MOURhME9RV00ydXBoazVVWlFiQkJIWUNmdHQ5UGZsb01FQVpOTXZhSjJsTFUyeTlRU0JwTDF6QkU2WlY0MTlBQjcxZk80T1FxcG05R2JlcW1VdXlUWnZobjRBdzM1QTBzMTBGTXFhZHhWTW5aR0dhM2hYQi9nMDF1NFN2RVcvc3VSei81QjBGckc5bWMxcDEvVFU2K2dlWjJhM0FyWkpXd2hkYVpnQnI0bDNRSWpPN01ham91M0dWWkMwcytYRTA3enlhSjJ1bGtFZW4xa2RaY2c3Ky85N056T1lCU05vTTM5RjlGWHdNZGtjd2crdUsxRFZta21iZ0cwelZuQ3EzTWJQL1NidWNUaWdWaW1mU2ZybTJIZGVVcTVYb0JwcTVJZWw5dUIzbVNXWjJSTnI1ZDdwOWZNZVkyWjNBdnFGTHM5TXVvd3ZXYVora0xRUHpqQTZjY1M0RmJzdWk4U0VEQVFBd3N5dUJwSVdKUE9uRnRUdktsUFpKTXVNU3ZKZWVuVlVCbVFoQXdOSEI3NTBsYmRjeVpYYWtZWW85a05WSFNRY0M3d1QyTWJQb0FEczFNaE1BTTZ0UU4xTTZYMUlhYjJPMzNKVkNIcm1QWDRKeDFGemdZalA3WVpabFpka0RFQ2doRmdLYkFRdVNOakRPa0F0cC9RYi9sUGFPTG9scTFDd0lUTHl1QXg0eXMwUlg5clRJVkFBQzlzSDEwVE9BZTNNeUtRY2djT2c0S09IMm40RTU1V3BsTDVKM1JUKzJYSzJrc1o3UURmTndqV3VjaDFIcVpHazQ4UktTTnNldGExK0J2NUU3bWRrdGVaUU5VQ29VTndjT3gzMEJsK1AvNUpQQ0szeWxRdkVUdUduVk5OekE5UFJ5dFhKRFRIYXBJR2thcm1xLzFzeVdCTmUrRFJ3QWZNck1UcytxN0RDNUNBQzRqd0crV0xRQjNnaTdtbGxiOStXSmlLUTFjUy9qMjJ1bTlaTE93aDFRZjJSbWFZYW9hVWtlbndEZ3BVSGgxcmh4eFVyQWZFa2Z5YXY4WVVIU1JyZzcrNnNJWE1ra1hZODMvdDE0TDVRYnVmVUFOU1JOd1QxcDNoQmNPZ3UzVzUvd3U1SUU2dHNGdUZwM2YzeEovU0s4SFpZQnJ6ZXp4SmgrV1pDN0FOU1E5QlBxN2t3QXg3UmJ1aHhsQWx2THkvSFlBVXR4RjY3VjhSVzdWWUM5emF3amwrNDB5ZTBURU1YTVp1TnozUnJIU2pvbUlmbElJK2x6dUx2MnF2aU02SERnWURQYkhYZnAzbmNRalE4RDdBRnFTRG9WdC9ldlVYTkduUkJJT2crUFZncHVibjlNc0szN1VEQndBUUNRZEJ5K2pnMCtCZHQ2bVA1SnZSQjQ3RjZQTDlsZUJleHZabWxZS0tYS3dENEJZY3pzYUR3WU5QZ21COThjWUhXNlF0SmJKSDFMVWxYU3A0TnI3OFFOWkxZQWpqZXpkdzFqNDhPUTlBQTFKSVU5Z1hjeHMva3hhWTdIdlg5bUQ4STNJVkRWenNMdEg5OUw0eWFiMzhmWERtb0JLUzR4czMvTnQ0YmRNVlFDQUNEcFo3Z2FkQkV3TXh6cVJOSnUxSU5HVklBM21Wa3VZZXdEczZ6UDQvR0xhd3RiRmR4NGRqNGV2U3k4UlVzVi81UTlrVWY5ZW1Vb1BnRVI5c0liZnd2Z3k3V0xrcmFrSHFmUWNCUDFheVJOcGc4azdTcHBlcHMwbjhFdGpBL0RHLzk2WURzejI5ak1MZ3QwR05Hd0xJY05lK1BERVBZQUFKS0V1em12alAvRFY4Yk5zeWZqYi8zTmtxN0cxOHZQTjdPdVBaY2xyWTBIVXR3QitIa3dKWXRMOXlVOFVCYkFEY0FuazVRMWttNEd0aWRuZFc0L0RHTVBnSmtac0V0d2VnVytXamNaMk5iTWF2NTVIOFFqZDg0SlBnMGRJMmtudkJlcFdTdnRGdGplUmRNZFNMM3g1NWpaVG0wMGRXZmpSaWg1aHRQcmk2RVVBQUF6dXc2UDN6c0xEMys2VFdDZFhMdi9NRkNMZlhOaXAvbEtPaGozZlh4NWtIZk4xdjZjd1BPbWxtNVQ2b3FxWGN6c2dnNnkvekV3WTFoSC9IRU1yUUFFbkl6NzkrMFJaMWxzWnBmaEE3Q3RKTzBidlI4bDZNN1BERTczTTdQckFvdWJNM0VEMG90RHlXdWJWWndjTnh1Snc4eWVqSXZDTWN3TTVSaWdHeVJ0alZzZC9jSE10bTZSN25qcUVjRm5tOWtWa2Z2WDREM0NXV1oyc0tRbGVCQ0k5WVp4eTd5MEdQWWVvQzFtZGhzZUVHSXJTYkZoNnlTZGdEZitDOEFPMGNZUDJCT1B0dlZ4U1gvRUkyMGNNcEViSHlhQUFBUWNHZnh1Mm1OSTBsZndlSDZQQTF1WTJXL2lNZ2pjcUdiakszV2JBTDh3czd3Q1l3K01DU0VBd2E2WUp3UC9FaG5JbllISENsNEVURGV6bG9HYkFxZVcyc0pOTCtGbFI0NEpJUUFCUitQUlRNOERrSFFocmxiK3Bwbk5NTE5ITzh6blI3aWR3b0pNYWpsa2pQd2dNSXlrL2FsNzBTN0I3UTRuek5KeUZrd29BUUNRWkhqWTFBMTc4WlpkMFVqRGYzN1krQUx3OUxqeHg0enBnUDhIVnB6OHNVcS9HN2dBQUFBQVNVVk9SSzVDWUlJPSIvPjwvc3ZnPg=="); }
.logo-worldcreator { --logo: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cgo8c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjcxMzcxOCwwLDAsMC43MTM3MTgsMTQ2LjU3NiwxNDYuNTc2KSI+CiAgICAgICAgPHBhdGggZD0iTTE0My4xOTEsODI3LjY1M0MxMzguODUzLDgzMi43ODggMTMyLjQzOCw4MzUuNzA1IDEyNS43MTcsODM1LjU5N0MxMTguOTk1LDgzNS40OSAxMTIuNjc3LDgzMi4zNyAxMDguNTA0LDgyNy4wOTlDNDAuNTM5LDc0MC4xNzcgMCw2MzAuNzg1IDAsNTEyQzAsMjI5LjQyIDIyOS40MiwwIDUxMiwwQzYzMC43ODUsMCA3NDAuMTc3LDQwLjUzOSA4MjcuMDgzLDEwOC41MjVDODMyLjM0OCwxMTIuNjkyIDgzNS40NjQsMTE5LjAwMyA4MzUuNTcyLDEyNS43MTdDODM1LjY3OSwxMzIuNDMxIDgzMi43NjcsMTM4LjgzOSA4MjcuNjM3LDE0My4xNzNDNzI2LjE4NCwyNDQuNTQ2IDI0NC41NDYsNzI2LjE4NCAxNDMuMTkxLDgyNy42NTNaTTg4MC44MDksMTk2LjM0N0M4ODUuMTQ3LDE5MS4yMTIgODkxLjU2MiwxODguMjk1IDg5OC4yODMsMTg4LjQwM0M5MDUuMDA1LDE4OC41MSA5MTEuMzIzLDE5MS42MyA5MTUuNDk2LDE5Ni45MDFDOTgzLjQ2MSwyODMuODIzIDEwMjQsMzkzLjIxNSAxMDI0LDUxMkMxMDI0LDc5NC41OCA3OTQuNTgsMTAyNCA1MTIsMTAyNEMzOTMuMjE1LDEwMjQgMjgzLjgyMyw5ODMuNDYxIDE5Ni45MTcsOTE1LjQ3NUMxOTEuNjUyLDkxMS4zMDggMTg4LjUzNiw5MDQuOTk3IDE4OC40MjgsODk4LjI4M0MxODguMzIxLDg5MS41NjkgMTkxLjIzMyw4ODUuMTYxIDE5Ni4zNjMsODgwLjgyN0MyOTcuODE2LDc3OS40NTQgNzc5LjQ1NCwyOTcuODE2IDg4MC44MDksMTk2LjM0N1pNMTE3MC4xNSwtMTIxLjkxN0w5MDguMzA5LDEzOS45MjZDOTAxLjYyMSwxNDYuNjEzIDg5MC43NjIsMTQ2LjYxMyA4ODQuMDc0LDEzOS45MjZDODc3LjM4NywxMzMuMjM4IDg3Ny4zODcsMTIyLjM3OSA4ODQuMDc0LDExNS42OTFMMTE0NS45MiwtMTQ2LjE1MUMxMTUyLjYxLC0xNTIuODM5IDExNjMuNDYsLTE1Mi44MzkgMTE3MC4xNSwtMTQ2LjE1MUMxMTc2Ljg0LC0xMzkuNDY0IDExNzYuODQsLTEyOC42MDUgMTE3MC4xNSwtMTIxLjkxN1pNMTQwLjAzMiw5MDguMjAyTC0xMjQuODUyLDExNzMuMDlDLTEzMS41MzksMTE3OS43NyAtMTQyLjM5OCwxMTc5Ljc3IC0xNDkuMDg2LDExNzMuMDlDLTE1NS43NzQsMTE2Ni40IC0xNTUuNzc0LDExNTUuNTQgLTE0OS4wODYsMTE0OC44NUwxMTUuNzk4LDg4My45NjhDMTIyLjQ4Niw4NzcuMjggMTMzLjM0NSw4NzcuMjggMTQwLjAzMiw4ODMuOTY4QzE0Ni43Miw4OTAuNjU1IDE0Ni43Miw5MDEuNTE0IDE0MC4wMzIsOTA4LjIwMloiLz4KICAgIDwvZz4KPC9zdmc+Cg=="); }
.about-photos { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 480px; justify-self: end; min-width: 0; }
.about-photo { aspect-ratio: 3 / 4; min-width: 0; border: 1px solid var(--line); border-radius: 4px; overflow: hidden; background: var(--surface); }
.about-photo img { width: 100%; height: 100%; object-fit: contain; }

/* 6. Contact and footer. */
.contact-section { border-top: 1px solid var(--line); padding-top: 72px; padding-bottom: 96px; }
.contact-section h2 { margin-top: 24px; }
.contact-description { margin-top: 20px; color: var(--muted); font-size: 17px; line-height: 1.6; }
.contact-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.link-button .icon { color: var(--accent); transition: color .25s ease; }
.link-button:hover .icon, .link-button:focus-visible .icon { color: var(--orange); }
.copy-status { font-size: 13px; color: var(--accent); }
.site-footer { display: flex; justify-content: space-between; gap: 20px; padding: 28px var(--page-gutter); border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.5; letter-spacing: .07em; }

/* 7. Password and image dialogs. */
dialog { color: var(--text); background: var(--background); border: 1px solid var(--accent); border-radius: 4px; margin: auto; }
dialog::backdrop { background: rgba(0,0,0,.7); backdrop-filter: blur(10px); }
.access-dialog { width: 440px; max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 36px; overflow: auto; }
.dialog-close { position: absolute; right: 14px; top: 14px; display: flex; padding: 7px; border: 0; background: transparent; color: var(--muted); }
.dialog-close:hover { color: var(--orange); }
.access-dialog h2 { margin-top: 26px; font-size: 30px; line-height: 1.2; font-weight: 500; letter-spacing: -.04em; }
.access-dialog > p:not(.eyebrow) { margin-top: 18px; font-size: 16px; line-height: 1.6; color: var(--muted); }
.access-form { margin-top: 28px; }
.access-form label { display: block; color: var(--muted); font-size: 12px; letter-spacing: .08em; margin-bottom: 10px; }
.password-field { display: flex; gap: 0; border: 1px solid var(--accent); border-radius: 4px; }
.password-field:focus-within { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(255,148,71,.12); }
.password-field input { width: 100%; min-width: 0; padding: 14px; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 16px; }
.password-toggle { border: 0; background: transparent; color: var(--muted); font-size: 13px; padding: 10px 14px; }
.password-toggle:hover { color: var(--orange); }
.form-error { color: #ffab83; font-size: 14px; line-height: 1.5; min-height: 20px; margin-top: 12px; }
.submit-button { margin-top: 18px; justify-content: center; width: 100%; }
.copy-fallback { position: fixed; top: 0; left: 0; width: 1px; height: 1px; opacity: 0; }

/* 8. Private collection for the password-free test site. */
.collection-page { min-height: calc(100svh - var(--header-height) - 54px); padding-top: 20px; padding-bottom: 24px; }
.collection-topline { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.collection-topline .link-button { min-height: 36px; padding-block: 7px; font-size: 12px; }
.text-link { font-size: 14px; color: var(--muted); transition: color .2s ease; }
.text-link:hover { color: var(--orange); }
.collection-heading { padding: 22px 0 24px; }
.collection-heading .eyebrow { display: flex; align-items: center; gap: 10px; }
.collection-heading .icon { width: 15px; height: 15px; }
.collection-heading h1 { font-size: clamp(30px, 3vw, 42px); line-height: 1.1; letter-spacing: -.045em; font-weight: 500; margin-top: 8px; }
.private-grid { gap: 22px 24px; }
.private-card { min-width: 0; }
.private-preview, .private-placeholder { width: 100%; height: auto; aspect-ratio: 16 / 9; padding: 0; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); transition: border-color .3s ease, box-shadow .3s ease; }
.private-preview { display: block; }
.private-preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.private-preview.frame-contain { background: var(--background); }
.private-preview.frame-contain img { object-fit: contain; }
.private-preview:hover, .private-placeholder:hover { border-color: var(--orange); box-shadow: 0 0 30px rgba(255,148,71,.06); }
.private-preview.frame-cover:hover img { transform: scale(1.04); }
.preview-action { position: absolute; right: 12px; bottom: 12px; background: rgba(8,10,16,.9); border: 1px solid var(--accent); border-radius: 5px; color: var(--accent); font-size: 11px; padding: 7px 10px; opacity: 0; transform: translateY(5px); transition: opacity .2s ease, transform .2s ease; }
.private-preview:hover .preview-action, .private-preview:focus-visible .preview-action { opacity: 1; transform: translateY(0); }
.private-placeholder { display: flex; align-items: center; justify-content: center; color: var(--line); }
.private-placeholder > .icon { width: 30px; height: 30px; color: var(--accent); opacity: .3; transition: color .3s ease, opacity .3s ease; }
.private-placeholder:hover > .icon { color: var(--orange); opacity: .8; }
.placeholder-number { position: absolute; top: 18px; left: 18px; color: var(--muted); opacity: .45; font-size: 12px; letter-spacing: .1em; }
.private-card .project-copy { padding-top: 12px; }
.private-card .project-category { min-height: 32px; margin: 0 0 6px; font-size: 10px; line-height: 1.6; letter-spacing: .06em; }
.private-card .project-copy h2 { font-size: 19px; line-height: 1.25; }
.collection-body .site-footer { padding-block: 18px; }
/* Five projects share the existing card widths; the final row is centered. */
.private-grid.five-project-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.five-project-grid > .private-card { grid-column: span 2; }
.five-project-grid > .private-card:nth-child(4) { grid-column: 2 / span 2; }
.five-project-grid > .private-card:nth-child(5) { grid-column: 4 / span 2; }
@media (max-width: 960px) {
    .private-grid.five-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .five-project-grid > .private-card { grid-column: auto; }
    .five-project-grid > .private-card:nth-child(4) { grid-column: auto; }
    .five-project-grid > .private-card:nth-child(5) { grid-column: 1 / -1; justify-self: center; width: calc((100% - 24px) / 2); }
}
@media (max-width: 600px) {
    .private-grid.five-project-grid { grid-template-columns: minmax(0, 1fr); }
    .five-project-grid > .private-card:nth-child(5) { grid-column: auto; justify-self: stretch; width: auto; }
}
/* Photo viewer: no frame or visible captions. The surrounding space closes it. */
.image-viewer {
    --viewer-side-gap: 72px;
    --viewer-vertical-gap: 32px;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: var(--viewer-vertical-gap) var(--viewer-side-gap);
    border: 0;
    border-radius: 0;
    outline: none;
    background: transparent;
    overflow: hidden;
}
.image-viewer[open] { display: grid; place-items: center; }
.image-viewer::backdrop { background: rgba(0, 0, 0, .88); backdrop-filter: blur(8px); }
.image-viewer > img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100dvh - var(--viewer-vertical-gap) - var(--viewer-vertical-gap));
    object-fit: contain;
    border: 0;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    user-select: none;
}
.viewer-close, .viewer-arrow {
    position: absolute;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(8, 10, 16, .35);
    color: var(--text);
    transition: color .2s ease, background .2s ease;
}
.viewer-close { top: 8px; right: 12px; }
.viewer-arrow { top: 50%; transform: translateY(-50%); }
.viewer-arrow .icon { width: 26px; height: 26px; }
.viewer-previous { left: 12px; }
.viewer-next { right: 12px; }
.image-viewer .viewer-arrow[hidden] { display: none; }
.viewer-close:hover, .viewer-arrow:hover, .viewer-close:focus-visible, .viewer-arrow:focus-visible {
    outline: none;
    background: rgba(255, 148, 71, .16);
    color: var(--orange);
}
.viewer-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.video-dialog { width: min(960px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 50px 24px 24px; }
.video-dialog > video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; max-height: calc(100dvh - 160px); margin: auto; object-fit: contain; }
.video-dialog > h2 { margin-top: 20px; font-size: 20px; font-weight: 500; }
.status-page { max-width: 640px; margin: 10svh auto; padding: 32px; }
.status-page h1 { margin: 24px 0; font-size: 36px; font-weight: 500; }
.status-page > p { color: var(--muted); line-height: 1.6; }
.status-page .link-button { margin-top: 24px; }

/* 9. Private project detail pages. Edit their project-*.html files. */
.detail-page { padding-top: 20px; padding-bottom: 44px; }
.back-link { display: inline-flex; align-items: center; gap: 10px; }
.back-link > span { color: var(--accent); }
.detail-heading { padding: 30px 0 24px; }
.detail-eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.detail-eyebrow .eyebrow { display: flex; align-items: center; gap: 9px; }
.detail-eyebrow .icon { width: 14px; height: 14px; }
.detail-counter { color: var(--muted); font-size: 12px; letter-spacing: .12em; }
.detail-heading h1 { max-width: 1050px; margin-top: 16px; font-size: clamp(38px, 4.6vw, 62px); line-height: 1.06; letter-spacing: -.055em; font-weight: 500; text-wrap: balance; }
.detail-role { margin-top: 15px; color: var(--accent); font-size: 13px; line-height: 1.6; }
.detail-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; padding: 16px 0; margin-bottom: 28px; border-block: 1px solid var(--line); }
.detail-nav a { color: var(--accent); font-size: 11px; letter-spacing: .03em; transition: color .2s ease; }
.detail-nav a > span { margin-left: 7px; color: var(--muted); font-size: 13px; transition: color .2s ease; }
.detail-nav a:hover, .detail-nav a:hover > span, .detail-nav a[aria-current="location"], .detail-nav a[aria-current="location"] > span { color: var(--orange); }
.prototype-tag { margin-left: auto; color: var(--muted); font-size: 9px; letter-spacing: .1em; border: 1px solid var(--line); padding: 5px 8px; border-radius: 3px; }
.detail-intro { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 28px; align-items: stretch; }
.detail-cover { min-width: 0; }
.detail-image { display: block; position: relative; width: 100%; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); transition: border-color .25s ease, box-shadow .25s ease; }
.detail-image > img { width: 100%; height: 100%; object-fit: contain; }
.detail-image:hover { border-color: var(--orange); box-shadow: 0 0 24px rgba(255,148,71,.07); }
.detail-image:hover .preview-action, .detail-image:focus-visible .preview-action { opacity: 1; transform: translateY(0); }
.cover-frame { height: 100%; min-height: 330px; aspect-ratio: 16 / 9; }
.cover-frame.frame-cover > img { object-fit: cover; }
.cover-frame.frame-contain { background: var(--background); }
.project-facts { min-width: 0; border-left: 1px solid var(--line); padding: 10px 0 10px 26px; }
.project-facts > .eyebrow { font-size: 10px; }
.detail-summary { color: var(--muted); font-size: 15px; line-height: 1.75; margin-top: 16px; }
.project-facts dl { margin: 22px 0 0; }
.project-facts dl > div { padding: 12px 0; border-top: 1px solid var(--line); }
.project-facts dt { color: var(--muted); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.project-facts dd { margin: 6px 0 0; font-size: 12px; line-height: 1.6; }
.case-section { margin-top: 60px; padding-top: 40px; border-top: 1px solid var(--line); }
.case-section h2 { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.18; font-weight: 500; letter-spacing: -.04em; text-wrap: balance; }
.case-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 18px 50px; }
.case-section-heading > .eyebrow { grid-column: 1 / -1; font-size: 10px; }
.case-section-heading > p:last-child { color: var(--muted); font-size: 15px; line-height: 1.75; }
.contribution-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 30px; }
.contribution-card { min-width: 0; padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 4px; }
.contribution-number { color: var(--accent); font-size: 10px; letter-spacing: .1em; }
.contribution-card h3 { margin-top: 22px; font-size: 19px; font-weight: 500; letter-spacing: -.025em; }
.contribution-card p { margin-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.process-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr); gap: 48px; align-items: center; }
.process-copy > .eyebrow { font-size: 10px; }
.process-copy h2 { margin-top: 18px; }
.process-copy > p:not(.eyebrow) { margin-top: 20px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.process-note { display: block; margin-top: 28px; padding-left: 14px; border-left: 2px solid var(--accent); font-size: 12px; line-height: 1.65; color: var(--muted); }
.detail-visual { min-width: 0; }
.detail-visual > .detail-image { aspect-ratio: 16 / 9; }
.image-placeholder-label { position: absolute; top: 14px; left: 14px; padding: 6px 8px; color: var(--accent); background: rgba(8,10,16,.86); border: 1px solid rgba(101,220,193,.22); border-radius: 3px; font-size: 9px; letter-spacing: .07em; }
.detail-visual figcaption { margin-top: 14px; }
.detail-visual figcaption > span { font-size: 15px; }
.detail-visual figcaption > p { color: var(--muted); font-size: 12px; line-height: 1.65; margin-top: 6px; }
.gallery-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.gallery-heading .eyebrow { margin-bottom: 18px; font-size: 10px; }
.gallery-heading .section-meta { font-size: 10px; white-space: nowrap; }
.detail-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.project-pagination { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; border-block: 1px solid var(--line); margin-top: 64px; }
.project-pagination a { display: flex; flex-direction: column; gap: 12px; padding: 28px 0; transition: color .2s ease; }
.project-pagination a:last-child { text-align: right; }
.pagination-label { font-size: 10px; letter-spacing: .08em; color: var(--accent); }
.pagination-title { font-size: clamp(19px, 2vw, 26px); font-weight: 500; letter-spacing: -.025em; line-height: 1.25; }
.project-pagination a:hover { color: var(--orange); }
.detail-return { display: block; width: fit-content; margin: 24px auto 0; font-size: 12px; }
.private-card .project-copy h2 a { transition: color .2s ease; }
.private-card .project-copy h2 a:hover { color: var(--orange); }

/* 10. TurboTaso. Title decorations and a compact gameplay gallery. */
.turbo-page .detail-heading { position: relative; }
.turbo-page .detail-heading h1, .turbo-page .detail-role { max-width: calc(100% - 380px); }
.turbo-heading-art { --taso-size: 104px; --taso-overlap: -54px; position: absolute; right: 0; bottom: 15px; display: flex; align-items: center; width: 354px; height: 126px; pointer-events: none; }
.turbo-heading-art img { flex: 0 0 var(--taso-size); width: var(--taso-size); height: var(--taso-size); max-width: none; margin-left: var(--taso-overlap); object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0,0,0,.45)); }
.turbo-heading-art img:first-child { margin-left: 0; transform: translateY(10px) rotate(-18deg); }
.turbo-heading-art img:nth-child(2) { transform: translateY(0) rotate(-10deg); }
.turbo-heading-art img:nth-child(3) { transform: translateY(-7px) rotate(-3deg); }
.turbo-heading-art img:nth-child(4) { transform: translateY(-7px) rotate(4deg); }
.turbo-heading-art img:nth-child(5) { transform: translateY(0) rotate(12deg); }
.turbo-heading-art img:nth-child(6) { transform: translateY(10px) rotate(20deg); }
.turbo-page .detail-intro { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
/* At wide viewports each gameplay image is 15% wider than v9 (800px / 3 to 920px / 3). */
.turbo-loop-section { max-width: 960px; margin: 40px auto 0; padding-top: 28px; }
.turbo-loop-section .gallery-heading { margin-bottom: 14px; }
.turbo-loop-section .eyebrow { margin-bottom: 10px; }
.turbo-loop-section h2 { font-size: 28px; }
.turbo-loop-intro { max-width: 680px; color: var(--muted); font-size: 13px; line-height: 1.65; margin-bottom: 20px; }
.turbo-loop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 20px; }
.turbo-loop-step { min-width: 0; }
.turbo-loop-video { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.turbo-loop-index { display: block; padding: 0 0 8px; color: var(--accent); font-size: 9px; letter-spacing: .1em; }
.turbo-loop-step .detail-visual figcaption > span { margin-top: 10px; font-size: 14px; }
.turbo-loop-step .detail-visual figcaption > p { margin-top: 4px; font-size: 12px; line-height: 1.55; }
.turbo-loop-step .preview-action { font-size: 10px; }
.turbo-loop-section .prototype-tag { margin-left: 0; flex-shrink: 0; }
.turbo-page .detail-gallery .detail-image { aspect-ratio: 4 / 3; }
.playable-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 54px; align-items: center; }
.turbo-build-copy > .eyebrow { font-size: 10px; margin-bottom: 18px; }
.turbo-build-copy > p:last-child { margin-top: 20px; max-width: 480px; font-size: 15px; line-height: 1.75; color: var(--muted); }
.turbo-build-card { display: grid; grid-template-columns: minmax(0, 1fr) 198px; gap: 22px; align-items: center; min-height: 222px; padding: 32px; border: 1px solid var(--line); border-radius: 4px; background: radial-gradient(ellipse at 100% 100%, rgba(255,148,71,.05), transparent 70%), var(--surface); }
.turbo-build-info { min-width: 0; }
/* A small overlapping mix echoes the header without obscuring build controls. */
.turbo-build-art { display: flex; align-items: center; width: 198px; height: 136px; pointer-events: none; }
.turbo-build-art img { flex: 0 0 90px; width: 90px; height: 90px; max-width: none; margin-left: -54px; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(0,0,0,.4)); }
.turbo-build-art img:first-child { margin-left: 0; transform: translateY(8px) rotate(-18deg); }
.turbo-build-art img:nth-child(2) { transform: translateY(-5px) rotate(-5deg); }
.turbo-build-art img:nth-child(3) { transform: translateY(-8px) rotate(7deg); }
.turbo-build-art img:nth-child(4) { transform: translateY(10px) rotate(18deg); }
.turbo-build-card .build-download { gap: 14px; }

.build-status { color: var(--muted); font-size: 9px; letter-spacing: .12em; }
.build-status.is-ready { color: var(--accent); }
.turbo-build-card h3 { margin-top: 12px; font-size: 28px; font-weight: 500; letter-spacing: -.035em; overflow-wrap: anywhere; }
.build-metadata { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; font-size: 12px; line-height: 1.6; color: var(--muted); }
.build-download { display: inline-flex; align-items: center; gap: 20px; margin-top: 22px; font-size: 12px; }
.build-download > span { margin-left: auto; }
.build-download:disabled { opacity: .5; cursor: default; }
.build-download:disabled:hover { color: var(--text); background: transparent; border-color: var(--accent); transform: none; box-shadow: none; }

/* Project showcases: summary facts, shared tool badges, and selected work galleries. */
.showcase-page .project-facts dl { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.project-tools { margin-top: 8px; gap: 8px; }
.project-tools .software-chip { max-width: 100%; }
.project-gallery.featured-first > .detail-visual:first-child { grid-column: 1 / -1; }

/* Editable project media groups and Glenford's visual studies. */
.turbo-showcase-section .detail-gallery { margin-top: 30px; }
.turbo-animation-gallery .detail-image { aspect-ratio: 16 / 10; }
.turbo-animation-gallery .animation-sketch .detail-image { background: #f6f4ef; }
.turbo-animation-gallery .animation-idle .detail-image { background: #050505; }
.turbo-animation-gallery .detail-image > img { object-fit: contain; }
.turbo-page .portrait-visual .detail-image { background: #050505; }
.glenford-page .detail-intro { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.glenford-page .detail-summary { font-size: 14px; line-height: 1.75; }
.glenford-gallery-intro { max-width: 760px; margin-bottom: 30px; }
.glenford-gallery-intro h3 { font-size: clamp(21px, 2.3vw, 28px); line-height: 1.25; font-weight: 500; letter-spacing: -.035em; }
.glenford-gallery-intro > p { margin-top: 18px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.glenford-footage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 30px; }
.glenford-footage-slot { min-width: 0; }
.glenford-footage-frame { aspect-ratio: 854 / 480; }
.glenford-footage-video { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.glenford-video-dialog > h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: 0; white-space: nowrap; }
@media (max-width: 960px) {
    .glenford-page .detail-intro { grid-template-columns: minmax(0, 1fr); }
    .glenford-page .project-tools-fact { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .glenford-footage-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

.turbo-animation-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.turbo-page .turbo-animation-gallery .detail-image { aspect-ratio: 4 / 3; }
.turbo-animation-gallery .animation-character .detail-image { background: #050505; }
.turbo-selected-gallery > .detail-visual:last-child { grid-column: 1 / -1; }
@media (max-width: 960px) {
    .turbo-animation-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .turbo-animation-gallery > .animation-character { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
}
@media (max-width: 600px) {
    .turbo-animation-gallery { grid-template-columns: minmax(0, 1fr); }
    .turbo-animation-gallery > .animation-character { grid-column: auto; width: auto; justify-self: stretch; }
}

/* 11. Tablet, phone, and reduced motion. */
@media (max-width: 960px) {
    .hero-panels { height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hero-panel { min-height: 360px; }
    .hero-visual, .hero-panel:last-child .hero-visual { inset: 0; clip-path: none; }
    .hero-panel::after { display: none; }
    .hero-label, .hero-panel:first-child .hero-label, .hero-panel:last-child .hero-label { left: 28px; bottom: 32px; width: calc(100% - 56px); }
    .hero-label h2, .hero-title { font-size: 28px; }
    .hero-panel { border: 1px solid rgba(101,220,193,.3); }
    .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .about-photos { width: 100%; max-width: 480px; justify-self: center; }
    .section { padding-top: 64px; padding-bottom: 64px; }
    .collection-page { padding-top: 20px; padding-bottom: 32px; }
    .detail-page { padding-top: 20px; padding-bottom: 40px; }
    .detail-intro { grid-template-columns: minmax(0, 1fr); }
    .cover-frame { min-height: 0; height: auto; }
    .cover-frame > img { position: absolute; inset: 0; }
    .project-facts { padding: 22px; border: 1px solid var(--line); border-radius: 4px; }
    .project-facts dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .showcase-page .project-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
    .showcase-page .project-tools-fact { grid-column: 1 / -1; }
    .case-section-heading { gap: 18px 30px; }
    .process-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .process-copy { max-width: 600px; }
    .contribution-card { padding: 20px; }
    .turbo-page .detail-intro { grid-template-columns: minmax(0, 1fr); }
    .turbo-page .project-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .turbo-page .project-facts dl > div:first-child { grid-column: 1 / -1; }
    .turbo-page .contribution-grid { grid-template-columns: minmax(0, 1fr); }
    .turbo-page .detail-heading h1, .turbo-page .detail-role { max-width: calc(100% - 312px); }
    .turbo-heading-art { --taso-size: 82px; --taso-overlap: -42px; width: 282px; height: 104px; }
    .turbo-loop-section { max-width: 641px; }
    .turbo-loop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .playable-section { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .turbo-build-copy > p:last-child { max-width: 600px; }
}
@media (max-width: 600px) {
    :root { --header-height: 68px; --page-gutter: 22px; }
    .site-header { gap: 12px; }
    .brand { font-size: 12px; letter-spacing: .01em; }
    .header-nav { gap: 13px; }
    .header-nav a { font-size: 12px; }
    .hero-panels { grid-template-columns: minmax(0, 1fr); }
    .hero-panel { min-height: 360px; }
    .section-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
    .project-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .project-image-caption { opacity: 1; transform: none; }
    .about-layout { grid-template-columns: minmax(0, 1fr); }
    .about-description, .contact-description { font-size: 16px; }
    .software-chip, .link-button { font-size: 13px; padding: 10px 12px; }
    .contact-links { gap: 10px; }
    .site-footer { flex-direction: column; gap: 8px; }
    .access-dialog { padding: 30px 24px; }
    .image-viewer { --viewer-side-gap: 24px; --viewer-vertical-gap: 64px; }
    .viewer-previous { left: 4px; }
    .viewer-next { right: 4px; }
    .viewer-close { right: 8px; }
    .collection-heading { padding-top: 24px; }
    .collection-topline .link-button { font-size: 12px; }
    .detail-heading { padding-top: 28px; }
    .detail-heading h1 { font-size: 38px; overflow-wrap: anywhere; }
    .detail-role { font-size: 12px; }
    .detail-nav { gap: 18px; }
    .prototype-tag { margin-left: 0; }
    .detail-intro { gap: 22px; }
    .project-facts { padding: 20px; }
    .project-facts dl { display: block; }
    .showcase-page .project-facts dl { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .case-section { margin-top: 40px; padding-top: 30px; }
    .case-section-heading, .contribution-grid, .detail-gallery { grid-template-columns: minmax(0, 1fr); }
    .contribution-card h3 { margin-top: 14px; }
    .contribution-grid { gap: 14px; margin-top: 24px; }
    .gallery-heading { align-items: flex-start; }
    .gallery-heading .section-meta { padding-top: 3px; }
    .gallery-heading h2 { font-size: 26px; }
    .image-placeholder-label { font-size: 8px; top: 10px; left: 10px; padding: 5px 6px; }
    .project-pagination { gap: 22px; margin-top: 40px; }
    .project-pagination a { padding-block: 24px; }
    .pagination-label { font-size: 8px; }
    .pagination-title { font-size: 18px; }
    .turbo-page .detail-heading h1, .turbo-page .detail-role { max-width: none; }
    .turbo-heading-art { position: relative; right: auto; bottom: auto; margin-top: 24px; height: 104px; }
    .turbo-loop-section { max-width: 368px; margin-top: 32px; padding-top: 24px; }
    .turbo-loop-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .turbo-loop-section .gallery-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
    .turbo-build-card { padding: 24px; }
    .build-download { gap: 12px; }
}
@media (max-width: 520px) {
    .turbo-build-card { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .turbo-build-art { justify-self: end; height: 116px; }
}
@media (max-width: 360px) {
    .site-header { padding-inline: 14px; }
    .header-nav { gap: 10px; }
    .brand { font-size: 11px; }
    .turbo-heading-art { --taso-size: 74px; --taso-overlap: -38px; width: 254px; }
}
@media (prefers-reduced-motion: reduce) {
    :root { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
