{"version":3,"file":"BlogKit.CLbza73X.mjs","names":["React.useRef","__u.mountSection","__u.SharedStyles","__u.CMS"],"sources":["https:/framerusercontent.com/modules/oXUHwXCnaIzkHWQv4zsH/k2F0JJ1zlYuv7viJQtkl/BlogKit.js"],"sourcesContent":["// @ts-nocheck\n/* GENERATED by ROOT/framer/tools/gen.py (blog kit). Do not edit by hand: change the prototype (ROOT/build) and regenerate.\n   Source: tools/templates/BlogKit.tsx, build/pages/blog/page.css, build/pages/_post/post.css *//* BlogKit: shared code for the Blog (the one real Framer CMS on the site).\n   GENERATED by ROOT/framer/tools/gen_blog.py from tools/templates/BlogKit.tsx + build/pages/blog/page.css + build/pages/_post/post.css.\n   Do not edit the generated copy in src/; edit the template / prototype and regenerate.\n\n   How the blog works in Framer\n   - CMS collection \"Blog\" holds every post. Pages read it through NATIVE collection lists / the CMS detail page; each list item is\n     a small code component that receives the item's fields as props and renders the prototype's exact markup:\n       /blog            BlogFeatured (list: Status = Published, sort Featured desc + Date desc, limit 1)\n                        BlogMoreHead (heading, topic chips, count, empty state)\n                        BlogRow      (list: Status = Published, Featured = off, sort Date desc)\n                        BlogTalk     (C-TALK; owns the page script: chips/filter/counts/reveals, then the shared components)\n       /blog/:slug      BlogPostHeader, BlogPostArticle (Body + Body after pull quote are native rich text in its slots),\n                        BlogPostRail (C-RAIL from \"Related work\"), BlogPostKeepReading, BlogPostTalk (owns the post script)\n       every page       BlogFeedItem in a hidden collection list in the \"Site\" layout template: the feed the Nav's Blog panel,\n                        the phone menu and \"Keep reading\" read ([data-ublog-feed] [data-ublog-post], see UnlimityRuntime getBlogPosts).\n   - Every blog component registers its root with the shared sandbox (UnlimityRuntime mountSection), so the prototype chrome\n     (keycaps, reveals) and comp.js (C-RAIL, C-TALK) run against them exactly as on the other pages.            */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{useIsStaticRenderer}from\"framer\";import*as __u from\"https://framerusercontent.com/modules/OnY6xTBTMZOy5y0plElT/I2KcP26gCjEASP18hHTS/UnlimityRuntime.js\";/* prototype CSS, scoped to .uR (build/pages/blog/page.css, build/pages/_post/post.css) */export const BLOG_CSS=\".uR .bl-vh{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}\\n.uR .bl-lab{display:inline-flex;align-items:center;gap:6px;font:500 13px/1 var(--font);color:#7a1fc4;margin:0 0 16px}\\n.uR .bl-lab::before{content:\\\"\\\";width:11px;height:11px;flex:none;background:currentColor;-webkit-mask:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E\\\") center/contain no-repeat;mask:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E\\\") center/contain no-repeat}\\n.uR .bl-f-cv{grid-column:1/8;position:relative;overflow:hidden;background-color:#f8f7f5 !important}\\n.uR .bl-f-cv::before{content:\\\"\\\";display:block;padding-top:min(56.25%,calc(100svh - 330px))}\\n.uR .bl-f-img{position:absolute;inset:0;display:block;overflow:hidden}\\n.uR .bl-f-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}\\n.uR .bl-f-img:hover img{transform:scale(1.03)}\\n.uR .bl-f-txt{grid-column:8/13;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(28px,3vw,44px) var(--pad) clamp(28px,3vw,44px)}\\n.uR .bl-f-k{gap:7px;margin-bottom:clamp(16px,1.6vw,22px)}\\n.uR .bl-f-k span:nth-child(2){color:var(--faint)}\\n.uR .bl-f-m{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font:400 13px/1 var(--font);color:var(--muted)}\\n.uR .bl-cat{font:700 12.5px/1 var(--font);color:#7a1fc4;background:#f4e8ff;border:1px solid #e6cffb;border-radius:999px;padding:6px 10px;text-decoration:none}\\n.uR .bl-cat:hover{background:#ecd9ff}\\n.uR .bl-f-t{font-size:clamp(23px,2.3vw,34px);line-height:1.38;margin:16px 0 14px}\\n.uR .bl-f-t a{color:inherit;text-decoration:none}\\n.uR .bl-f-t a:hover{color:#7a1fc4}\\n.uR .bl-f-ex{font-size:16px;line-height:1.55;color:var(--muted);margin:0;max-width:42ch}\\n.uR .bl-f-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;border-top:1px solid var(--line)}\\n.uR .bl-f-by{display:flex;align-items:center;gap:11px}\\n.uR .bl-f-by img{width:40px;height:40px;border-radius:50%;object-fit:cover}\\n.uR .bl-f-by b{display:block;font-size:14.5px;font-weight:800}\\n.uR .bl-f-by span span{display:block;font-size:13px;color:var(--muted)}\\n.uR .bl-dtag{display:inline-flex;align-items:center;gap:6px;font:800 12px/1 var(--font);color:#6b5300;background:var(--lemon);border:1px solid #f0dc8a;border-radius:999px;padding:6px 10px}\\n.uR.js .bl-feat .bl-f-img{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.7,0,.2,1)}\\n.uR.js .bl-feat .bl-f-img img{transform:translateX(-6%) scale(1.06);transition:transform 1.5s cubic-bezier(.2,.8,.2,1)}\\n.uR.js .bl-feat.in .bl-f-img{clip-path:inset(0)}\\n.uR.js .bl-feat.in .bl-f-img img{transform:none}\\n.uR.js .bl-feat.in .bl-f-img:hover img{transform:scale(1.03)}\\n.uR.js .bl-feat .bl-f-txt > *{opacity:0;transform:translateX(18px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-feat.in .bl-f-txt > *{opacity:1;transform:none}\\n.uR.js .bl-feat.in .bl-f-txt > :nth-child(2){transition-delay:.25s}\\n.uR .spacer.bl-sp{height:48px}\\n.uR .bl-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px}\\n.uR .bl-chips{display:flex;flex-wrap:wrap;gap:10px 8px}\\n.uR .bl-chips .key{font-size:14px}\\n.uR .bl-chips .key small{font:500 12px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--faint);margin-left:2px}\\n.uR .bl-chips .key[aria-pressed=\\\"true\\\"]{--top:#f4e8ff;--k:#d6b4f5;border-color:#d9b8f7;color:#7a1fc4}\\n.uR .bl-chips .key[aria-pressed=\\\"true\\\"] small{color:#a666e0}\\n.uR .bl-more-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px 40px;padding-block:clamp(14px,2vh,22px)}\\n.uR .bl-more-hx{font-size:clamp(24px,2.2vw,32px);line-height:1.3;white-space:nowrap}\\n.uR .bl-chips{justify-content:flex-end}\\n.uR .bl-more-head{scroll-margin-top:96px}\\n.uR .bl-count{font:400 13px/1 var(--font);color:var(--muted);white-space:nowrap}\\n.uR .bl-rows{grid-column:1/-1;list-style:none;margin:0;padding:0;display:grid;gap:1px}\\n.uR .g12 > .bl-rows{background-color:var(--rule)}\\n.uR .bl-row{position:relative;background:var(--panel);display:grid;grid-template-columns:clamp(240px,22vw,320px) minmax(0,1fr);align-items:center;gap:clamp(24px,3vw,48px);padding:clamp(20px,2vw,28px) var(--pad)}\\n.uR .bl-r-img{overflow:hidden;border-radius:8px;background:#f8f7f5;aspect-ratio:16/9}\\n.uR .bl-r-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}\\n.uR .bl-row:hover .bl-r-img img{transform:scale(1.03)}\\n.uR .bl-r-t{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}\\n.uR .bl-r-t h3{margin:0;font-size:clamp(20px,1.8vw,26px);line-height:1.25;font-weight:800;letter-spacing:-.01em;max-width:34ch;text-wrap:pretty}\\n.uR .bl-r-t h3 a{color:var(--ink);text-decoration:none;transition:color .2s}\\n.uR .bl-r-t h3 a::after{content:\\\"\\\";position:absolute;inset:0;z-index:1}\\n.uR .bl-row:hover h3 a{color:#7a1fc4}\\n.uR .bl-r-t h3 a:focus-visible{outline:none}\\n.uR .bl-row:has(h3 a:focus-visible){outline:2px solid #7a1fc4;outline-offset:-2px}\\n.uR .bl-r-m{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font:400 14px/1.3 var(--font);color:var(--muted)}\\n.uR .bl-row.bl-empty{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:clamp(26px,3vw,40px) var(--pad)}\\n.uR .bl-empty p{margin:0;font-size:17px;color:var(--ink);font-weight:700}\\n.uR.js .bl-more .bl-row{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .7s var(--spring)}\\n.uR.js .bl-more .bl-row.in{opacity:1;transform:none}\\n@media (min-width:1221px) and (max-width:1520px){.uR .bl-f-txt{gap:18px;padding-block:clamp(22px,2.1vw,30px)}\\n.uR .bl-f-k{margin-bottom:14px}\\n.uR .bl-f-t{line-height:1.24;margin:14px 0 12px}\\n.uR .bl-f-foot{padding-top:16px}\\n}\\n@media (max-width:1220px){.uR .bl-f-cv{grid-column:1/-1}\\n.uR .bl-f-cv::before{padding-top:56.25%}\\n.uR .bl-f-txt{grid-column:1/-1;padding-top:24px}\\n.uR .bl-f-ex{max-width:56ch}\\n}\\n@media (max-width:900px){.uR .bl-row{grid-template-columns:clamp(200px,30vw,260px) minmax(0,1fr);gap:24px}\\n.uR .bl-cat{position:relative}\\n.uR .bl-cat::after{content:\\\"\\\";position:absolute;inset:-9px -4px}\\n.uR .bl-chips .key{min-height:44px}\\n}\\n@media (max-width:700px){.uR .bl-f-t{font-size:clamp(22px,6.4vw,30px)}\\n.uR .bl-f-foot{flex-direction:column;align-items:stretch}\\n.uR .bl-f-go{justify-content:center;min-height:48px}\\n.uR .bl-row{grid-template-columns:clamp(168px,32vw,220px) minmax(0,1fr);gap:20px}\\n.uR .bl-r-t{gap:8px}\\n.uR .bl-r-t h3{font-size:19px;line-height:1.3;letter-spacing:0}\\n.uR .bl-r-m{font-size:13px}\\n}\\n@media (max-width:560px){.uR .bl-row{grid-template-columns:minmax(0,1fr);gap:16px;padding:22px var(--pad) 26px}\\n.uR .bl-r-t h3{font-size:20px;max-width:none}\\n.uR .bl-more-head{flex-direction:column;align-items:flex-start;padding-block:22px}\\n.uR .bl-tools{align-items:flex-start}\\n.uR .bl-chips{justify-content:flex-start}\\n.uR .spacer.bl-sp{height:44px}\\n}\\n@media (max-width:900px){.uR.js .bl-more .bl-row{opacity:1;transform:none}\\n.uR.js .bl-more .bl-row > *{opacity:0;transform:translateY(18px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-more .bl-row.in > *{opacity:1;transform:none}\\n.uR.js .bl-more .bl-row.in > .bl-r-t{transition-delay:.06s}\\n}\\n@media (max-width:700px){.uR .bl-tools{align-self:stretch;min-width:0}\\n.uR .bl-chips{align-self:stretch;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;gap:6px;margin:0 -16px;padding:2px 16px 8px;scroll-padding-inline:16px}\\n.uR .bl-chips::-webkit-scrollbar{display:none}\\n.uR .bl-chips .key{flex:none;padding-inline:11px}\\n.uR .bl-count{margin-top:-2px}\\n}\\n@media (prefers-reduced-motion:reduce){.uR.js .bl-feat .bl-f-img,.uR.js .bl-feat .bl-f-img img,.uR.js .bl-feat .bl-f-txt > *,.uR.js .bl-more .bl-row,.uR.js .bl-more .bl-row > *{opacity:1 !important;transform:none !important;clip-path:none !important;transition:none !important}\\n}\\n@media (max-width:700px){.uR .bl-more-head{padding-top:var(--sec-head-y)}\\n}\\n@media (max-width:700px){.uR .spacer.bl-sp{height:var(--sp-xs)}\\n}\\n@media (max-width:700px){.uR .bl-more-head{flex-direction:column;align-items:flex-start}\\n.uR .bl-tools{align-items:flex-start}\\n.uR .bl-chips{justify-content:flex-start}\\n}\\n\";export const POST_CSS='.uR .bl-prog{position:fixed;left:0;right:0;top:0;height:3px;z-index:9000;pointer-events:none}\\n.uR .bl-prog i{display:block;height:100%;background:var(--figma);transform-origin:0 50%;transform:scaleX(0)}\\n.uR .bl-prog{position:fixed;left:0;right:0;top:0;height:3px;z-index:9000;pointer-events:none}\\n.uR .bl-prog i{display:block;height:100%;background:var(--figma);transform-origin:0 50%;transform:scaleX(0)}\\n.uR .bl-mono{display:inline-flex;align-items:center;gap:6px;font:500 13px/1 var(--font);color:#7a1fc4;margin:0 0 16px}\\n.uR .bl-mono::before{content:\"\";width:11px;height:11px;flex:none;background:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 12 12\\'%3E%3Cpath d=\\'M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10\\' stroke=\\'%23000\\' stroke-width=\\'1.2\\'/%3E%3C/svg%3E\") center/contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 12 12\\'%3E%3Cpath d=\\'M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10\\' stroke=\\'%23000\\' stroke-width=\\'1.2\\'/%3E%3C/svg%3E\") center/contain no-repeat}\\n.uR .bl-ph-main{grid-column:1/8;padding:clamp(28px,3.4vw,52px) var(--pad) clamp(30px,3.4vw,48px);display:flex;flex-direction:column;align-items:flex-start}\\n.uR .bl-crumb{display:flex;align-items:center;gap:8px;font:500 13.5px/1 var(--font);margin-bottom:clamp(22px,2.6vw,36px)}\\n.uR .bl-crumb a{color:#7a1fc4;text-decoration:none;padding:6px 0}\\n.uR .bl-crumb a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-crumb span{color:var(--faint)}\\n.uR .bl-pt{font-size:clamp(32px,4.4vw,64px);line-height:1.34;max-width:15.5em}\\n.uR .bl-pt.bl-pt-long{font-size:clamp(26px,3.1vw,46px);max-width:17em}\\n.uR .bl-w{display:inline-block;overflow:hidden;padding:.12em .05em .16em;margin:-.12em -.05em -.16em;vertical-align:top}\\n.uR .bl-w > span{display:inline-block}\\n.uR.js .bl-ph .bl-w > span{transform:translateY(112%);transition:transform .8s cubic-bezier(.2,.9,.25,1);transition-delay:calc(var(--i) * 45ms)}\\n.uR.js .bl-ph.in .bl-w > span{transform:none}\\n.uR .bl-dek{font-size:clamp(17px,1.45vw,21px);line-height:1.5;color:var(--muted);margin:clamp(18px,2vw,26px) 0 0;max-width:46ch}\\n.uR.js .bl-ph .bl-fade{opacity:0;transform:translateY(10px);transition:opacity .6s .45s,transform .8s .45s var(--spring)}\\n.uR.js .bl-ph.in .bl-fade{opacity:1;transform:none}\\n.uR .bl-by{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;width:100%;margin-top:clamp(22px,2.4vw,34px);padding-top:clamp(16px,1.6vw,20px);border-top:1px solid var(--line)}\\n.uR .bl-who{display:flex;gap:12px;align-items:center}\\n.uR .bl-who img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--rule)}\\n.uR .bl-who b{display:block;font-size:15.5px;font-weight:800}\\n.uR .bl-who span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}\\n.uR .bl-facts{margin:0;display:flex;flex-wrap:wrap;gap:8px 22px}\\n.uR .bl-facts div{display:flex;flex-direction:column;gap:6px}\\n.uR .bl-facts dt{font:400 13px/1 var(--font);color:var(--muted)}\\n.uR .bl-facts dd{margin:0;font-size:14.5px;font-weight:700;color:var(--ink)}\\n.uR .bl-facts dd a{color:#7a1fc4;text-decoration:none}\\n.uR .bl-facts dd a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-draft{display:flex;flex-direction:column;gap:6px;max-width:560px;background:var(--lemon);border:1px solid #f0dc8a;border-radius:12px;padding:12px 16px 13px;margin:0 0 clamp(20px,2.4vw,30px)}\\n.uR .bl-dtag{font-size:13px;font-weight:800;color:#6b5300}\\n.uR .bl-draft p{margin:0;font-size:13.5px;line-height:1.45;color:#5c4a08}\\n.uR .bl-ph-side{grid-column:8/13;display:flex;flex-direction:column;padding:clamp(28px,3.4vw,52px) var(--pad) clamp(30px,3.4vw,48px)}\\n.uR .bl-ph-cv{margin:0 0 clamp(22px,2.4vw,34px)}\\n.uR .bl-ph-cv > .flb{margin:0 0 10px 2px}\\n.uR .bl-ph-side .bl-facts{margin-top:auto;min-height:44px;align-items:center;padding-top:clamp(16px,1.6vw,20px);border-top:1px solid var(--line);box-sizing:content-box}\\n.uR .bl-by{margin-top:auto}\\n.uR .bl-ph-main .bl-dek{margin-bottom:clamp(22px,2.4vw,34px)}\\n.uR .bl-ph-cv > .flb em{font:500 11px/1 var(--mono);color:var(--faint);font-style:normal;margin-left:8px}\\n.uR .bl-cvi{border-radius:12px;box-shadow:0 0 0 1px rgba(17,18,20,.06),0 24px 48px -28px rgba(17,18,20,.38),0 8px 16px -10px rgba(17,18,20,.14);overflow:hidden;background:#f8f7f5}\\n.uR .bl-cvi img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}\\n.uR.js .bl-ph .bl-cvi{clip-path:inset(100% 0 0 0 round 12px);transition:clip-path 1s cubic-bezier(.7,0,.2,1) .25s}\\n.uR.js .bl-ph .bl-cvi img{transform:scale(1.08);transition:transform 1.5s cubic-bezier(.2,.8,.2,1) .25s}\\n.uR.js .bl-ph.in .bl-cvi{clip-path:inset(0 0 0 0 round 12px)}\\n.uR.js .bl-ph.in .bl-cvi img{transform:none}\\n.uR .bl-first > p:first-child{font-size:1.16em;line-height:1.62;color:var(--ink)}\\n.uR .bl-pq{position:relative;margin:clamp(36px,4vw,56px) 0;padding:clamp(28px,3vw,40px) 0 clamp(24px,2.6vw,34px);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}\\n.uR .bl-pq > .flb{position:absolute;left:0;top:-9px;background:var(--panel);padding-right:10px}\\n.uR .bl-pq blockquote{margin:0}\\n.uR .bl-pq p{margin:0;font-weight:800;font-size:clamp(25px,2.6vw,38px);line-height:1.24;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}\\n.uR .bl-pq p::before{content:\"“\";display:block;height:.62em;font-family:var(--display);font-size:1.4em;line-height:1;color:var(--figma);margin:0 0 .12em}\\n.uR .bl-hl{background:linear-gradient(transparent 58%,#ecd9ff 58%,#ecd9ff 92%,transparent 92%) no-repeat 0 0/100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone}\\n.uR.js .bl-pq .bl-hl{background-size:0% 100%;transition:background-size 1.3s cubic-bezier(.7,0,.2,1) .2s}\\n.uR.js .bl-pq.in .bl-hl{background-size:100% 100%}\\n.uR .bl-pq figcaption{display:flex;align-items:center;gap:10px;margin-top:18px;font:500 13.5px/1 var(--font);color:var(--muted)}\\n.uR .bl-pq figcaption::before{content:\"\";width:22px;height:2px;border-radius:2px;background:var(--figma)}\\n.uR .bl-end{max-width:var(--bl-measure);margin-inline:auto;margin-top:clamp(36px,4vw,56px);padding-top:24px;border-top:1px solid var(--rule);display:grid;gap:18px}\\n.uR .bl-src{margin:0;font-size:15px;color:var(--muted)}\\n.uR .bl-src a{color:#7a1fc4;font-weight:700;text-decoration:none}\\n.uR .bl-src a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-src .ar{font-style:normal}\\n.uR .bl-share{display:flex;flex-wrap:wrap;align-items:center;gap:12px}\\n.uR .bl-copied{font:500 13.5px/1 var(--font);color:#0b6a37}\\n.uR .bl-en{position:relative;max-width:var(--bl-measure);margin:clamp(40px,4.4vw,64px) auto 0;padding:clamp(26px,2.6vw,34px) 0 0}\\n.uR .bl-en::before{content:\"\";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);transform-origin:0 50%}\\n.uR .bl-en::after{content:\"\";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--rule)}\\n.uR .bl-en-k{display:flex;align-items:center;gap:9px;margin:0 0 14px;font:500 13.5px/1 var(--font);color:#7a1fc4}\\n.uR .bl-en-sq{width:9px;height:9px;border-radius:2px;background:var(--figma)}\\n.uR .bl-en-q{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2.1vw,30px);line-height:1.42;color:var(--ink);margin:0 0 12px;text-wrap:balance}\\n.uR .bl-en-t{margin:0;font-size:clamp(17.5px,1.32vw,19.5px);line-height:1.65;color:#2b2d33;max-width:52ch}\\n.uR .bl-en-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;margin-top:clamp(22px,2.4vw,30px)}\\n.uR .bl-en-sign{display:flex;align-items:center;gap:12px}\\n.uR .bl-en-sign img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--rule)}\\n.uR .bl-en-sign b{display:block;font-size:17px;font-weight:800;font-style:italic;letter-spacing:-.01em;color:var(--ink)}\\n.uR .bl-en-sign small{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}\\n.uR .bl-en-links{display:flex;flex-wrap:wrap;gap:6px 22px}\\n.uR .bl-en-links .tlink{font-size:14.5px;padding:6px 0}\\n.uR.js .bl-en::before{transform:scaleX(0);transition:transform 1s cubic-bezier(.7,0,.2,1)}\\n.uR.js .bl-en.in::before{transform:none}\\n.uR.js .bl-en .bl-en-q,.uR.js .bl-en .bl-en-t,.uR.js .bl-en .bl-en-foot{opacity:0;transform:translateY(12px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-en .bl-en-q{transition-delay:.35s}\\n.uR.js .bl-en .bl-en-t{transition-delay:.45s}\\n.uR.js .bl-en .bl-en-foot{transition-delay:.55s}\\n.uR.js .bl-en.in .bl-en-q,.uR.js .bl-en.in .bl-en-t,.uR.js .bl-en.in .bl-en-foot{opacity:1;transform:none}\\n.uR .bl-kr-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:clamp(22px,2.6vw,34px)}\\n.uR .bl-kr-hx{font-size:clamp(22px,2.3vw,33px)}\\n.uR .bl-kr-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule)}\\n.uR .bl-kc{background:var(--panel);padding:clamp(22px,2.6vw,36px) var(--pad) clamp(28px,3vw,40px);display:flex;flex-direction:column;gap:14px;color:var(--ink);text-decoration:none}\\n.uR .bl-kc-img{border-radius:12px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 0 0 1px rgba(17,18,20,.06),0 18px 34px -24px rgba(17,18,20,.4);transition:transform .4s var(--spring)}\\n.uR .bl-kc-img img{display:block;width:100%;height:100%;object-fit:cover}\\n.uR .bl-kc:hover .bl-kc-img{transform:translateY(-4px)}\\n.uR .bl-kc:hover h3{text-decoration:underline;text-decoration-color:var(--figma);text-decoration-thickness:2px;text-underline-offset:4px}\\n.uR .bl-kc-m{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:400 13px/1 var(--font);color:var(--muted);margin-top:6px}\\n.uR .bl-kc h3{margin:0;font-size:clamp(20px,1.8vw,26px);line-height:1.25;font-weight:800;letter-spacing:-.01em;max-width:28ch}\\n.uR .bl-kc p{margin:0;font-size:15.5px;line-height:1.55;color:var(--muted);max-width:52ch}\\n.uR .bl-kc .bl-dtag{align-self:flex-start;background:var(--lemon);border:1px solid #f0dc8a;border-radius:999px;padding:5px 10px;font-size:12px}\\n.uR.js .bl-kr .bl-kc{opacity:0;transform:translateY(26px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-kr.in .bl-kc{opacity:1;transform:none}\\n.uR.js .bl-kr.in .bl-kc:nth-child(2){transition-delay:.1s}\\n@media (max-width:1060px){.uR .bl-ph-main{grid-column:1/8}\\n.uR .bl-ph-side{grid-column:8/13}\\n.uR .bl-rail{grid-column:1/5}\\n.uR .bl-art{grid-column:5/13;padding-right:clamp(20px,4vw,48px)}\\n}\\n@media (max-width:900px){.uR .bl-ph-main{grid-column:1/-1}\\n.uR .bl-ph-side{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 clamp(20px,4vw,40px);align-items:end;padding:clamp(24px,5vw,40px) var(--pad)}\\n.uR .bl-ph-cv{margin:0}\\n.uR .bl-ph-side .bl-facts{flex-direction:column;align-items:flex-start;gap:14px;border-top:0;padding-top:0}\\n.uR .bl-crumb a{display:inline-flex;align-items:center;min-height:44px;padding:0}\\n.uR .bl-en-links .tlink{display:inline-flex;align-items:center;min-height:44px;padding:0}\\n.uR .bl-facts dd a{position:relative}\\n.uR .bl-facts dd a::after{content:\"\";position:absolute;inset:-12px -8px}\\n.uR .bl-share .key{min-height:44px}\\n.uR .bl-rail{display:none}\\n.uR .bl-art{grid-column:1/-1;padding:clamp(28px,5vw,48px) var(--pad) clamp(40px,6vw,64px)}\\n.uR .bl-pq{max-width:var(--bl-measure);margin-inline:auto}\\n.uR .bl-tocm{display:block;max-width:var(--bl-measure);margin:0 auto 28px;border:1px solid var(--rule);border-radius:12px;background:#fbfbfc}\\n.uR .bl-tocm summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 16px;font:700 15px/1 var(--font);cursor:pointer;list-style:none}\\n.uR .bl-tocm summary::-webkit-details-marker{display:none}\\n.uR .bl-tocm summary::after{content:\"＋\";color:var(--figma);font-weight:700}\\n.uR .bl-tocm[open] summary::after{content:\"－\"}\\n.uR .bl-tocm ol{list-style:none;margin:0;padding:0 8px 10px}\\n.uR .bl-tocm a{display:grid;grid-template-columns:30px 1fr;align-items:baseline;min-height:44px;padding:11px 8px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:600;line-height:1.35;border-top:1px solid var(--line)}\\n.uR .bl-tocm a span{font:500 12.5px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--figma)}\\n}\\n@media (max-width:700px){.uR .bl-pt{font-size:clamp(28px,8.4vw,44px)}\\n.uR .bl-pt.bl-pt-long{font-size:clamp(23px,6.6vw,36px)}\\n.uR .bl-by{flex-direction:column;align-items:flex-start}\\n.uR .bl-ph-side{grid-template-columns:1fr;padding:24px var(--pad) 28px}\\n.uR .bl-ph-cv{margin:0 0 20px}\\n.uR .bl-ph-side .bl-facts{flex-direction:row;flex-wrap:wrap;gap:8px 22px;border-top:1px solid var(--line);padding-top:16px}\\n.uR .bl-cvi{border-radius:10px}\\n.uR .bl-kr-list{grid-template-columns:1fr}\\n.uR .bl-share .key{min-height:44px}\\n}\\n@media (max-width:900px){.uR.js .bl-kr .bl-kc{opacity:1;transform:none}\\n.uR.js .bl-kr .bl-kc > *{opacity:0;transform:translateY(18px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-kr.in .bl-kc > *{opacity:1;transform:none}\\n.uR.js .bl-kr.in .bl-kc:nth-child(2) > *{transition-delay:.1s}\\n.uR .bl-crumb a{position:relative}\\n.uR .bl-crumb a::after{content:\"\";position:absolute;inset:0 -9px}\\n}\\n@media (prefers-reduced-motion:reduce){.uR.js .bl-ph .bl-w > span,.uR.js .bl-ph .bl-fade,.uR.js .bl-ph .bl-cvi,.uR.js .bl-ph .bl-cvi img,.uR.js .bl-en .bl-en-q,.uR.js .bl-en .bl-en-t,.uR.js .bl-en .bl-en-foot,.uR.js .bl-kr .bl-kc,.uR.js .bl-kr .bl-kc > *{opacity:1 !important;transform:none !important;clip-path:none !important;transition:none !important}\\n.uR.js .bl-pq .bl-hl{background-size:100% 100%;transition:none}\\n.uR.js .bl-en::before{transform:none;transition:none}\\n}\\n.uR font:500 13px/1 var(--font);color:#7a1fc4;margin:0 0 16px}\\n\\n.bl-mono::before{content:\"\";width:11px;height:11px;flex:none;background:currentColor;-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 12 12\\'%3E%3Cpath d=\\'M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10\\' stroke=\\'%23000\\' stroke-width=\\'1.2\\'/%3E%3C/svg%3E\") center/contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 12 12\\'%3E%3Cpath d=\\'M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10\\' stroke=\\'%23000\\' stroke-width=\\'1.2\\'/%3E%3C/svg%3E\") center/contain no-repeat}\\n.uR .bl-ph-main{grid-column:1/8;padding:clamp(28px,3.4vw,52px) var(--pad) clamp(30px,3.4vw,48px);display:flex;flex-direction:column;align-items:flex-start}\\n.uR .bl-crumb{display:flex;align-items:center;gap:8px;font:500 13.5px/1 var(--font);margin-bottom:clamp(22px,2.6vw,36px)}\\n.uR .bl-crumb a{color:#7a1fc4;text-decoration:none;padding:6px 0}\\n.uR .bl-crumb a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-crumb span{color:var(--faint)}\\n.uR .bl-pt{font-size:clamp(32px,4.4vw,64px);line-height:1.34;max-width:15.5em}\\n.uR .bl-pt.bl-pt-long{font-size:clamp(26px,3.1vw,46px);max-width:17em}\\n.uR .bl-w{display:inline-block;overflow:hidden;padding:.12em .05em .16em;margin:-.12em -.05em -.16em;vertical-align:top}\\n.uR .bl-w > span{display:inline-block}\\n.uR.js .bl-ph .bl-w > span{transform:translateY(112%);transition:transform .8s cubic-bezier(.2,.9,.25,1);transition-delay:calc(var(--i) * 45ms)}\\n.uR.js .bl-ph.in .bl-w > span{transform:none}\\n.uR .bl-dek{font-size:clamp(17px,1.45vw,21px);line-height:1.5;color:var(--muted);margin:clamp(18px,2vw,26px) 0 0;max-width:46ch}\\n.uR.js .bl-ph .bl-fade{opacity:0;transform:translateY(10px);transition:opacity .6s .45s,transform .8s .45s var(--spring)}\\n.uR.js .bl-ph.in .bl-fade{opacity:1;transform:none}\\n.uR .bl-by{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;width:100%;margin-top:clamp(22px,2.4vw,34px);padding-top:clamp(16px,1.6vw,20px);border-top:1px solid var(--line)}\\n.uR .bl-who{display:flex;gap:12px;align-items:center}\\n.uR .bl-who img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--rule)}\\n.uR .bl-who b{display:block;font-size:15.5px;font-weight:800}\\n.uR .bl-who span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}\\n.uR .bl-facts{margin:0;display:flex;flex-wrap:wrap;gap:8px 22px}\\n.uR .bl-facts div{display:flex;flex-direction:column;gap:6px}\\n.uR .bl-facts dt{font:400 13px/1 var(--font);color:var(--muted)}\\n.uR .bl-facts dd{margin:0;font-size:14.5px;font-weight:700;color:var(--ink)}\\n.uR .bl-facts dd a{color:#7a1fc4;text-decoration:none}\\n.uR .bl-facts dd a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-draft{display:flex;flex-direction:column;gap:6px;max-width:560px;background:var(--lemon);border:1px solid #f0dc8a;border-radius:12px;padding:12px 16px 13px;margin:0 0 clamp(20px,2.4vw,30px)}\\n.uR .bl-dtag{font-size:13px;font-weight:800;color:#6b5300}\\n.uR .bl-draft p{margin:0;font-size:13.5px;line-height:1.45;color:#5c4a08}\\n.uR .bl-ph-side{grid-column:8/13;display:flex;flex-direction:column;padding:clamp(28px,3.4vw,52px) var(--pad) clamp(30px,3.4vw,48px)}\\n.uR .bl-ph-cv{margin:0 0 clamp(22px,2.4vw,34px)}\\n.uR .bl-ph-cv > .flb{margin:0 0 10px 2px}\\n.uR .bl-ph-side .bl-facts{margin-top:auto;min-height:44px;align-items:center;padding-top:clamp(16px,1.6vw,20px);border-top:1px solid var(--line);box-sizing:content-box}\\n.uR .bl-by{margin-top:auto}\\n.uR .bl-ph-main .bl-dek{margin-bottom:clamp(22px,2.4vw,34px)}\\n.uR .bl-ph-cv > .flb em{font:500 11px/1 var(--mono);color:var(--faint);font-style:normal;margin-left:8px}\\n.uR .bl-cvi{border-radius:12px;box-shadow:0 0 0 1px rgba(17,18,20,.06),0 24px 48px -28px rgba(17,18,20,.38),0 8px 16px -10px rgba(17,18,20,.14);overflow:hidden;background:#f8f7f5}\\n.uR .bl-cvi img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}\\n.uR.js .bl-ph .bl-cvi{clip-path:inset(100% 0 0 0 round 12px);transition:clip-path 1s cubic-bezier(.7,0,.2,1) .25s}\\n.uR.js .bl-ph .bl-cvi img{transform:scale(1.08);transition:transform 1.5s cubic-bezier(.2,.8,.2,1) .25s}\\n.uR.js .bl-ph.in .bl-cvi{clip-path:inset(0 0 0 0 round 12px)}\\n.uR.js .bl-ph.in .bl-cvi img{transform:none}\\n.uR .bl-first > p:first-child{font-size:1.16em;line-height:1.62;color:var(--ink)}\\n.uR .bl-pq{position:relative;margin:clamp(36px,4vw,56px) 0;padding:clamp(28px,3vw,40px) 0 clamp(24px,2.6vw,34px);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}\\n.uR .bl-pq > .flb{position:absolute;left:0;top:-9px;background:var(--panel);padding-right:10px}\\n.uR .bl-pq blockquote{margin:0}\\n.uR .bl-pq p{margin:0;font-weight:800;font-size:clamp(25px,2.6vw,38px);line-height:1.24;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}\\n.uR .bl-pq p::before{content:\"“\";display:block;height:.62em;font-family:var(--display);font-size:1.4em;line-height:1;color:var(--figma);margin:0 0 .12em}\\n.uR .bl-hl{background:linear-gradient(transparent 58%,#ecd9ff 58%,#ecd9ff 92%,transparent 92%) no-repeat 0 0/100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone}\\n.uR.js .bl-pq .bl-hl{background-size:0% 100%;transition:background-size 1.3s cubic-bezier(.7,0,.2,1) .2s}\\n.uR.js .bl-pq.in .bl-hl{background-size:100% 100%}\\n.uR .bl-pq figcaption{display:flex;align-items:center;gap:10px;margin-top:18px;font:500 13.5px/1 var(--font);color:var(--muted)}\\n.uR .bl-pq figcaption::before{content:\"\";width:22px;height:2px;border-radius:2px;background:var(--figma)}\\n.uR .bl-end{max-width:var(--bl-measure);margin-inline:auto;margin-top:clamp(36px,4vw,56px);padding-top:24px;border-top:1px solid var(--rule);display:grid;gap:18px}\\n.uR .bl-src{margin:0;font-size:15px;color:var(--muted)}\\n.uR .bl-src a{color:#7a1fc4;font-weight:700;text-decoration:none}\\n.uR .bl-src a:hover{text-decoration:underline;text-underline-offset:3px}\\n.uR .bl-src .ar{font-style:normal}\\n.uR .bl-share{display:flex;flex-wrap:wrap;align-items:center;gap:12px}\\n.uR .bl-copied{font:500 13.5px/1 var(--font);color:#0b6a37}\\n.uR .bl-en{position:relative;max-width:var(--bl-measure);margin:clamp(40px,4.4vw,64px) auto 0;padding:clamp(26px,2.6vw,34px) 0 0}\\n.uR .bl-en::before{content:\"\";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ink);transform-origin:0 50%}\\n.uR .bl-en::after{content:\"\";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--rule)}\\n.uR .bl-en-k{display:flex;align-items:center;gap:9px;margin:0 0 14px;font:500 13.5px/1 var(--font);color:#7a1fc4}\\n.uR .bl-en-sq{width:9px;height:9px;border-radius:2px;background:var(--figma)}\\n.uR .bl-en-q{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2.1vw,30px);line-height:1.42;color:var(--ink);margin:0 0 12px;text-wrap:balance}\\n.uR .bl-en-t{margin:0;font-size:clamp(17.5px,1.32vw,19.5px);line-height:1.65;color:#2b2d33;max-width:52ch}\\n.uR .bl-en-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;margin-top:clamp(22px,2.4vw,30px)}\\n.uR .bl-en-sign{display:flex;align-items:center;gap:12px}\\n.uR .bl-en-sign img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--rule)}\\n.uR .bl-en-sign b{display:block;font-size:17px;font-weight:800;font-style:italic;letter-spacing:-.01em;color:var(--ink)}\\n.uR .bl-en-sign small{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}\\n.uR .bl-en-links{display:flex;flex-wrap:wrap;gap:6px 22px}\\n.uR .bl-en-links .tlink{font-size:14.5px;padding:6px 0}\\n.uR.js .bl-en::before{transform:scaleX(0);transition:transform 1s cubic-bezier(.7,0,.2,1)}\\n.uR.js .bl-en.in::before{transform:none}\\n.uR.js .bl-en .bl-en-q,.uR.js .bl-en .bl-en-t,.uR.js .bl-en .bl-en-foot{opacity:0;transform:translateY(12px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-en .bl-en-q{transition-delay:.35s}\\n.uR.js .bl-en .bl-en-t{transition-delay:.45s}\\n.uR.js .bl-en .bl-en-foot{transition-delay:.55s}\\n.uR.js .bl-en.in .bl-en-q,.uR.js .bl-en.in .bl-en-t,.uR.js .bl-en.in .bl-en-foot{opacity:1;transform:none}\\n.uR .bl-kr-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:clamp(22px,2.6vw,34px)}\\n.uR .bl-kr-hx{font-size:clamp(22px,2.3vw,33px)}\\n.uR .bl-kr-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule)}\\n.uR .bl-kc{background:var(--panel);padding:clamp(22px,2.6vw,36px) var(--pad) clamp(28px,3vw,40px);display:flex;flex-direction:column;gap:14px;color:var(--ink);text-decoration:none}\\n.uR .bl-kc-img{border-radius:12px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 0 0 1px rgba(17,18,20,.06),0 18px 34px -24px rgba(17,18,20,.4);transition:transform .4s var(--spring)}\\n.uR .bl-kc-img img{display:block;width:100%;height:100%;object-fit:cover}\\n.uR .bl-kc:hover .bl-kc-img{transform:translateY(-4px)}\\n.uR .bl-kc:hover h3{text-decoration:underline;text-decoration-color:var(--figma);text-decoration-thickness:2px;text-underline-offset:4px}\\n.uR .bl-kc-m{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:400 13px/1 var(--font);color:var(--muted);margin-top:6px}\\n.uR .bl-kc h3{margin:0;font-size:clamp(20px,1.8vw,26px);line-height:1.25;font-weight:800;letter-spacing:-.01em;max-width:28ch}\\n.uR .bl-kc p{margin:0;font-size:15.5px;line-height:1.55;color:var(--muted);max-width:52ch}\\n.uR .bl-kc .bl-dtag{align-self:flex-start;background:var(--lemon);border:1px solid #f0dc8a;border-radius:999px;padding:5px 10px;font-size:12px}\\n.uR.js .bl-kr .bl-kc{opacity:0;transform:translateY(26px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-kr.in .bl-kc{opacity:1;transform:none}\\n.uR.js .bl-kr.in .bl-kc:nth-child(2){transition-delay:.1s}\\n@media (max-width:1060px){.uR .bl-ph-main{grid-column:1/8}\\n.uR .bl-ph-side{grid-column:8/13}\\n.uR .bl-rail{grid-column:1/5}\\n.uR .bl-art{grid-column:5/13;padding-right:clamp(20px,4vw,48px)}\\n}\\n@media (max-width:900px){.uR .bl-ph-main{grid-column:1/-1}\\n.uR .bl-ph-side{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 clamp(20px,4vw,40px);align-items:end;padding:clamp(24px,5vw,40px) var(--pad)}\\n.uR .bl-ph-cv{margin:0}\\n.uR .bl-ph-side .bl-facts{flex-direction:column;align-items:flex-start;gap:14px;border-top:0;padding-top:0}\\n.uR .bl-crumb a{display:inline-flex;align-items:center;min-height:44px;padding:0}\\n.uR .bl-en-links .tlink{display:inline-flex;align-items:center;min-height:44px;padding:0}\\n.uR .bl-facts dd a{position:relative}\\n.uR .bl-facts dd a::after{content:\"\";position:absolute;inset:-12px -8px}\\n.uR .bl-share .key{min-height:44px}\\n.uR .bl-rail{display:none}\\n.uR .bl-art{grid-column:1/-1;padding:clamp(28px,5vw,48px) var(--pad) clamp(40px,6vw,64px)}\\n.uR .bl-pq{max-width:var(--bl-measure);margin-inline:auto}\\n.uR .bl-tocm{display:block;max-width:var(--bl-measure);margin:0 auto 28px;border:1px solid var(--rule);border-radius:12px;background:#fbfbfc}\\n.uR .bl-tocm summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 16px;font:700 15px/1 var(--font);cursor:pointer;list-style:none}\\n.uR .bl-tocm summary::-webkit-details-marker{display:none}\\n.uR .bl-tocm summary::after{content:\"＋\";color:var(--figma);font-weight:700}\\n.uR .bl-tocm[open] summary::after{content:\"－\"}\\n.uR .bl-tocm ol{list-style:none;margin:0;padding:0 8px 10px}\\n.uR .bl-tocm a{display:grid;grid-template-columns:30px 1fr;align-items:baseline;min-height:44px;padding:11px 8px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:600;line-height:1.35;border-top:1px solid var(--line)}\\n.uR .bl-tocm a span{font:500 12.5px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--figma)}\\n}\\n@media (max-width:700px){.uR .bl-pt{font-size:clamp(28px,8.4vw,44px)}\\n.uR .bl-pt.bl-pt-long{font-size:clamp(23px,6.6vw,36px)}\\n.uR .bl-by{flex-direction:column;align-items:flex-start}\\n.uR .bl-ph-side{grid-template-columns:1fr;padding:24px var(--pad) 28px}\\n.uR .bl-ph-cv{margin:0 0 20px}\\n.uR .bl-ph-side .bl-facts{flex-direction:row;flex-wrap:wrap;gap:8px 22px;border-top:1px solid var(--line);padding-top:16px}\\n.uR .bl-cvi{border-radius:10px}\\n.uR .bl-kr-list{grid-template-columns:1fr}\\n.uR .bl-share .key{min-height:44px}\\n}\\n@media (max-width:900px){.uR.js .bl-kr .bl-kc{opacity:1;transform:none}\\n.uR.js .bl-kr .bl-kc > *{opacity:0;transform:translateY(18px);transition:opacity .5s,transform .8s var(--spring)}\\n.uR.js .bl-kr.in .bl-kc > *{opacity:1;transform:none}\\n.uR.js .bl-kr.in .bl-kc:nth-child(2) > *{transition-delay:.1s}\\n.uR .bl-crumb a{position:relative}\\n.uR .bl-crumb a::after{content:\"\";position:absolute;inset:0 -9px}\\n}\\n@media (prefers-reduced-motion:reduce){.uR.js .bl-ph .bl-w > span,.uR.js .bl-ph .bl-fade,.uR.js .bl-ph .bl-cvi,.uR.js .bl-ph .bl-cvi img,.uR.js .bl-en .bl-en-q,.uR.js .bl-en .bl-en-t,.uR.js .bl-en .bl-en-foot,.uR.js .bl-kr .bl-kc,.uR.js .bl-kr .bl-kc > *{opacity:1 !important;transform:none !important;clip-path:none !important;transition:none !important}\\n.uR.js .bl-pq .bl-hl{background-size:100% 100%;transition:none}\\n.uR.js .bl-en::before{transform:none;transition:none}\\n}\\n@media (max-width:700px){.uR .bl-kr-head{padding-top:var(--sec-head-y)}\\n}\\n.uR .bl-by,.uR .bl-ph-side .bl-facts{align-self:stretch;width:auto;margin-left:calc(-1 * var(--pad));margin-right:calc(-1 * var(--pad));padding-left:var(--pad);padding-right:var(--pad)}\\n.uR .bl-ph-side .bl-facts{min-height:46px}\\n';/* Framer-only CSS: native rich text inside the article, canvas previews */export const RICH_CSS=`\n.uR .bl-prose > div,.uR .bl-prose [data-framer-component-type=\"RichTextContainer\"]{display:contents!important}\n.uR .bl-prose [data-framer-component-type=\"RichTextContainer\"]{white-space:normal!important}\n.uR .bl-prose .framer-text{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;letter-spacing:inherit;font-weight:inherit;font-style:inherit;text-transform:inherit;text-align:inherit;text-decoration:inherit;--framer-text-wrap:initial}\n.uR.uR .bl-prose p.framer-text{margin:0 0 1.15em;padding:0}\n.uR.uR .bl-prose h2.framer-text{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(18px,1.55vw,22px);line-height:1.5;color:var(--ink);margin:2.2em 0 .85em;padding:0;text-wrap:balance}\n.uR.uR .bl-prose h3.framer-text{font-size:1.12em;font-weight:800;color:var(--ink);margin:1.8em 0 .6em;line-height:1.35;padding:0}\n.uR.uR .bl-prose :is(ul,ol).framer-text{margin:0 0 1.2em;padding:0 0 0 1.25em}\n.uR.uR .bl-prose ul.framer-text{list-style:disc}\n.uR.uR .bl-prose ol.framer-text{list-style:decimal}\n.uR.uR .bl-prose li.framer-text{display:list-item;margin:0 0 .5em;padding:0 0 0 .2em}\n.uR.uR .bl-prose ul.framer-text > li.framer-text{list-style-type:disc}\n.uR.uR .bl-prose ol.framer-text > li.framer-text{list-style-type:decimal}\n.uR.uR .bl-prose li.framer-text::before{content:none!important;display:none!important}\n.uR.uR .bl-prose li.framer-text > p.framer-text{margin:0;display:inline}\n.uR.uR .bl-prose li.framer-text::marker{color:var(--figma)}\n.uR.uR .bl-prose :is(strong,b).framer-text,.uR.uR .bl-prose .framer-text :is(strong,b){color:var(--ink);font-weight:700}\n.uR.uR .bl-prose :is(em,i).framer-text,.uR.uR .bl-prose .framer-text :is(em,i){font-style:italic}\n.uR.uR .bl-prose a.framer-text,.uR.uR .bl-prose .framer-text a{color:#7a1fc4;text-decoration:underline;text-decoration-color:#d9b8f7;text-decoration-thickness:1.5px;text-underline-offset:3px;transition:text-decoration-color .2s}\n.uR.uR .bl-prose a.framer-text:hover,.uR.uR .bl-prose .framer-text a:hover{text-decoration-color:var(--figma)}\n.uR.uR .bl-prose blockquote.framer-text{margin:1.6em 0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--figma);font-style:italic;color:var(--ink)}\n.uR.uR .bl-prose [data-framer-component-type=\"RichTextContainer\"] > :first-child{margin-top:0}\n.uR.uR .bl-first [data-framer-component-type=\"RichTextContainer\"] > p:first-child{font-size:1.16em;line-height:1.62;color:var(--ink)}\n.uR.uR .bl-prose img{display:block;width:100%;height:auto;border-radius:12px;margin:2em 0}\n@media (max-width:700px){.uR.uR .bl-prose h2.framer-text{font-size:clamp(18px,1.55vw,22px)}}\n.uR [data-ublog-feed]{display:none!important}\n.uR.uR-static .bl-row,.uR.uR-static .bl-row > *,.uR.uR-static .bl-feat .bl-f-img,.uR.uR-static .bl-feat .bl-f-img img,.uR.uR-static .bl-feat .bl-f-txt > *,\n.uR.uR-static .bl-ph *,.uR.uR-static .bl-pq *,.uR.uR-static .bl-en *,.uR.uR-static .bl-kr *{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}\n`;export const FRAME='<svg viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3.5 1v10M8.5 1v10M1 3.5h10M1 8.5h10\" stroke=\"currentColor\" stroke-width=\"1.2\"/></svg>';export const COMP='<svg viewBox=\"0 0 12 12\" aria-hidden=\"true\"><path d=\"M6 .6L8.3 2.9 6 5.2 3.7 2.9zM6 6.8L8.3 9.1 6 11.4 3.7 9.1zM2.9 3.7L5.2 6 2.9 8.3.6 6zM9.1 3.7L11.4 6 9.1 8.3 6.8 6z\" fill=\"currentColor\"/></svg>';export const esc=s=>String(s==null?\"\":s).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\");const escAttr=s=>esc(s).replace(/'/g,\"&#x27;\");const MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];const hasDOM=typeof window!==\"undefined\"&&typeof document!==\"undefined\";/* the prototype's topics (CMS.postCategories); a topic added to the \"Topic\" option in Framer is picked up from the posts */export const KNOWN_TOPICS=[{slug:\"brand\",name:\"Brand\"},{slug:\"product\",name:\"Product\"},{slug:\"process\",name:\"Process\"}];export const topicSlug=name=>String(name||\"\").trim().toLowerCase().replace(/&/g,\"and\").replace(/[^a-z0-9]+/g,\"-\").replace(/^-|-$/g,\"\");export const topicName=name=>{const n=String(name||\"\").trim();const k=KNOWN_TOPICS.find(t=>t.slug===topicSlug(n));return k?k.name:n;};/* \"24 April 2026\" (dates are stored as UTC midnight in the CMS: read them in UTC so no timezone shifts the day) */export function fmtDate(v){if(!v)return\"Draft\";const d=new Date(v);if(isNaN(+d))return\"Draft\";return d.getUTCDate()+\" \"+MONTHS[d.getUTCMonth()]+\" \"+d.getUTCFullYear();}export function isoDay(v){if(!v)return\"\";const d=new Date(v);return isNaN(+d)?\"\":d.toISOString().slice(0,10);}export const dotAfter=t=>/[.?!]$/.test(String(t||\"\").trim())?\"\":\".\";export const isDraft=status=>/draft/i.test(String(status||\"\"));export function imgSrc(img){if(!img)return\"\";if(typeof img===\"string\")return img;return img.src||img.url||\"\";}export function imgAlt(img){return img&&typeof img===\"object\"?img.alt||\"\":\"\";}/* Status gate for the post page: an item whose Status is \"Draft for review\" is never shown on the published site (or in\n   Framer's preview). BlogPostHeader renders the 404 page in its place, BlogPostArticle renders nothing (so the article text is\n   not in the server HTML either) and the other post sections are hidden by CSS. On the Framer canvas (static renderer) the\n   draft renders normally with the \"Draft for Jonny's review\" note, so it can be reviewed there. */export const useDraftGate=status=>{const isStatic=useIsStaticRenderer();return isDraft(status)&&!isStatic;};export const DRAFT_GATE_CSS='.uR[data-page=\"blog-post\"]{display:none!important}';export const firstName=n=>String(n||\"\").trim().split(/\\s+/)[0]||\"\";export const minutes=n=>{const v=Math.round(+n);return isFinite(v)&&v>0?v:5;};export function wrapPage(inner){return'<div class=\"page\"><div class=\"gut gut-l\" aria-hidden=\"true\"></div><div class=\"col\">'+inner+'</div><div class=\"gut gut-r\" aria-hidden=\"true\"></div></div>';}/* ------------------------------------------------------------------ the sandbox root every blog component renders */let SEQ=0;export function BlogSection(props){const isStatic=useIsStaticRenderer();const ref=React.useRef(null);React.useEffect(()=>{if(isStatic||!ref.current)return;const index=props.order!=null?props.order:100+SEQ++;const meta={page:props.page,route:props.route,index,total:1,name:\"blog-\"+index,sections:[],vars:{}};const off=__u.mountSection(ref.current,meta,props.children?\"\":props.src||props.html||\"\",props.run);try{window.dispatchEvent(new CustomEvent(\"ublog:mount\"));}catch(_){}return off;},[]);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,className:\"uR js uR-sec\"+(isStatic?\" uR-static\":\"\")+(props.className?\" \"+props.className:\"\"),\"data-page\":props.page,\"data-route\":props.route,style:{...props.style,position:\"relative\",width:\"100%\",height:\"auto\"},children:[isStatic?/*#__PURE__*/_jsx(__u.SharedStyles,{}):null,props.css?/*#__PURE__*/_jsx(\"style\",{\"data-ur-page\":props.page,dangerouslySetInnerHTML:{__html:props.css}}):null,props.children?props.children:/*#__PURE__*/_jsx(\"div\",{className:\"uR-host\",dangerouslySetInnerHTML:{__html:props.html||\"\"}})]});}const draftTag=p=>isDraft(p.status)?'<span class=\"bl-dtag\">Draft for Jonny\\'s review</span>':\"\";export function featuredHTML(f){const t=topicSlug(f.topic),title=String(f.title||\"\");return wrapPage(`<h1 class=\"bl-vh\">Unlimity blog</h1><section class=\"band bl-feat\" id=\"blFeat\" aria-label=\"Featured post\" data-cms-list=\"posts\" data-filter=\"featured\" data-slug=\"${esc(f.slug)}\" data-topic=\"${esc(t)}\" data-topic-name=\"${esc(topicName(f.topic))}\"><div class=\"g12\">\n      <div class=\"bl-f-cv\"><a class=\"bl-f-img\" href=\"/blog/${esc(f.slug)}\" aria-label=\"${esc(title)}\" tabindex=\"-1\"><img src=\"${esc(f.cover)}\" alt=\"${esc(f.alt)}\" width=\"1600\" height=\"900\" fetchpriority=\"high\"></a></div>\n      <div class=\"cell bl-f-txt\">\n        <div>\n          <p class=\"bl-lab bl-f-k\"><span>Blog</span><span aria-hidden=\"true\">/</span><span>Featured</span></p>\n          <div class=\"bl-f-m\"><a class=\"bl-cat\" href=\"#${esc(t)}\" data-topic-link=\"${esc(t)}\">${esc(topicName(f.topic))}</a><span>${fmtDate(f.date)}</span><span aria-hidden=\"true\">\\xb7</span><span>${minutes(f.read)} min read</span></div>\n          <h2 class=\"hx bl-f-t\"><a href=\"/blog/${esc(f.slug)}\">${esc(title)}${dotAfter(title)}</a></h2>\n          <p class=\"bl-f-ex\">${esc(f.excerpt)}</p>\n          ${draftTag(f)?'<p style=\"margin:14px 0 0\">'+draftTag(f)+\"</p>\":\"\"}\n        </div>\n        <div class=\"bl-f-foot\">\n          <div class=\"bl-f-by\"><img loading=\"lazy\" decoding=\"async\" src=\"${esc(f.authorPhoto)}\" alt=\"\" width=\"40\" height=\"40\"><span><b>${esc(f.authorName)}</b><span>${esc(f.authorRole)}</span></span></div>\n          <a class=\"key primary bl-f-go\" href=\"/blog/${esc(f.slug)}\">Read the post <i class=\"ar\">→</i></a>\n        </div>\n      </div></div></section>`);}export function rowHTML(p){const t=topicSlug(p.topic);return wrapPage(`<section class=\"band bl-more bl-more-r\" aria-label=\"${esc(p.title)}\"><div class=\"g12\"><ol class=\"bl-rows\"><li class=\"bl-row\" data-slug=\"${esc(p.slug)}\" data-topic=\"${esc(t)}\" data-topic-name=\"${esc(topicName(p.topic))}\" data-date=\"${esc(isoDay(p.date))}\">\n        <div class=\"bl-r-img\" aria-hidden=\"true\"><img loading=\"lazy\" decoding=\"async\" src=\"${esc(p.cover)}\" alt=\"\" width=\"1600\" height=\"900\"></div>\n        <div class=\"bl-r-t\">\n          <h3><a href=\"/blog/${esc(p.slug)}\">${esc(p.title)}</a></h3>\n          <p class=\"bl-r-m\"><span>${fmtDate(p.date)}</span><span aria-hidden=\"true\">\\xb7</span><span>${minutes(p.read)} min read</span></p>\n          ${draftTag(p)}\n        </div>\n      </li></ol></div></section>`);}export function chipsHTML(cats,counts,total){const n=s=>counts?s===\"all\"?total:counts[s]||0:\"\";return[{slug:\"all\",name:\"All\"},...cats].map(c=>`<button class=\"key\" type=\"button\" data-topic=\"${esc(c.slug)}\" aria-pressed=\"${c.slug===\"all\"?\"true\":\"false\"}\">${esc(c.name)}<small>${n(c.slug)}</small></button>`).join(\"\");}export function moreHeadHTML(){return wrapPage(`<div class=\"spacer bl-sp\" aria-hidden=\"true\"><span class=\"flb\">${FRAME}More to read</span><span class=\"dimt\">Fill \\xd7 Hug</span></div>\n    <section class=\"band bl-more\" aria-labelledby=\"bl-more-h\">\n      <div class=\"g12\">\n        <div class=\"cell bl-more-head\">\n          <h2 class=\"hx bl-more-hx\" id=\"bl-more-h\">More to read.</h2>\n          <div class=\"bl-tools\">\n            <div class=\"bl-chips\" id=\"blChips\" role=\"group\" aria-label=\"Filter posts by topic\">${chipsHTML(KNOWN_TOPICS)}</div>\n            <span class=\"bl-count\" id=\"blCount\" aria-live=\"polite\"></span>\n          </div>\n        </div>\n      </div>\n    </section>\n    <section class=\"band bl-more bl-more-e\" id=\"blEmpty\" aria-label=\"No posts\" hidden><div class=\"g12\"><ol class=\"bl-rows\"><li class=\"bl-row bl-empty\"><p></p><button class=\"key\" type=\"button\" data-topic=\"all\">See every topic <i class=\"ar\">→</i></button></li></ol></div></section>`);}export function postHeaderHTML(p){const title=String(p.title||\"\");const words=title.split(\" \");const titleWords=words.map((w,i)=>`<span class=\"bl-w\"><span style=\"--i:${i}\">${esc(w)}${i===words.length-1&&!/[.?!]$/.test(w)?\".\":\"\"}</span></span>`).join(\" \");const t=topicSlug(p.topic),tn=topicName(p.topic);const note=isDraft(p.status)?`<div class=\"bl-draft\" role=\"note\"><span class=\"bl-dtag\">Draft for Jonny's review</span><p>${esc(p.review)}</p></div>`:\"\";return wrapPage(`<div class=\"bl-prog\" aria-hidden=\"true\"><i id=\"blProg\"></i></div><section class=\"band bl-ph\" aria-labelledby=\"bl-pt\" data-slug=\"${esc(p.slug)}\" data-read=\"${minutes(p.read)}\">\n      <div class=\"g12\">\n        <div class=\"cell bl-ph-main\">\n          <nav class=\"bl-crumb\" aria-label=\"Breadcrumb\"><a href=\"/blog\">Blog</a><span aria-hidden=\"true\">/</span><a href=\"/blog#${esc(t)}\">${esc(tn)}</a></nav>\n          ${note}\n          <h1 class=\"hx bl-pt${title.length>34?\" bl-pt-long\":\"\"}\" id=\"bl-pt\" aria-label=\"${esc(title)}\">${titleWords}</h1>\n          <p class=\"bl-dek bl-fade\">${esc(p.excerpt)}</p>\n          <div class=\"bl-by bl-fade\">\n            <div class=\"bl-who\">\n              <img src=\"${esc(p.authorPhoto)}\" alt=\"\" width=\"44\" height=\"44\">\n              <div><b>${esc(p.authorName)}</b><span>${esc(p.authorRole)}</span></div>\n            </div>\n          </div>\n        </div>\n        <div class=\"cell bl-ph-side\">\n          <figure class=\"bl-ph-cv\" aria-label=\"Cover image\">\n            <span class=\"flb\">${FRAME}Cover<em>1600 \\xd7 900</em></span>\n            <div class=\"bl-cvi\"><img src=\"${esc(p.cover)}\" alt=\"${esc(p.alt)}\" width=\"1600\" height=\"900\"></div>\n          </figure>\n          <dl class=\"bl-facts bl-fade\" aria-label=\"About this post\">\n            <div><dt>Published</dt><dd>${fmtDate(p.date)}</dd></div>\n            <div><dt>Reading time</dt><dd>${minutes(p.read)} min</dd></div>\n            <div><dt>Topic</dt><dd><a href=\"/blog#${esc(t)}\">${esc(tn)}</a></dd></div>\n          </dl>\n        </div>\n      </div>\n    </section>`);}export const railAsideHTML=read=>`\n          <div class=\"bl-rail-in\">\n            <span class=\"flb\">${FRAME}Chapters</span>\n            <ol class=\"bl-toc\" id=\"blToc\"></ol>\n            <div class=\"bl-left\"><span class=\"bl-meter\" aria-hidden=\"true\"><i id=\"blMeter\"></i></span><span id=\"blLeft\">${minutes(read)} min read</span></div>\n          </div>`;export const pullHTML=p=>p.pull&&String(p.pull).trim()?`<span class=\"flb\">${COMP}Pull quote</span><blockquote><p><span class=\"bl-hl\">${esc(p.pull)}</span></p></blockquote><figcaption>${esc(p.cite)}</figcaption>`:\"\";export function endnoteHTML(p){const first=firstName(p.authorName);return`\n            <p class=\"bl-en-k\"><span class=\"bl-en-sq\" aria-hidden=\"true\"></span>A note from ${esc(first)}</p>\n            <h2 class=\"bl-en-q\" id=\"bl-en-h\">${esc(p.endQ)}</h2>\n            <p class=\"bl-en-t\">${esc(p.endText)}</p>\n            <div class=\"bl-en-foot\">\n              <div class=\"bl-en-sign\"><img loading=\"lazy\" decoding=\"async\" src=\"${esc(p.authorPhoto)}\" alt=\"\" width=\"40\" height=\"40\"><span><b>${esc(first)}</b><small>${esc(p.authorRole)}</small></span></div>\n              <div class=\"bl-en-links\">${p.authorLinkedin?`<a class=\"tlink\" href=\"${esc(p.authorLinkedin)}\" target=\"_blank\" rel=\"noopener\">${esc(first)} on LinkedIn <i class=\"ar\">↗</i></a>`:\"\"}<a class=\"tlink\" href=\"/about\">About Unlimity <i class=\"ar\">→</i></a></div>\n            </div>\n          `;}export function endHTML(p){const src=p.sourceLabel&&p.sourceUrl?`<p class=\"bl-src\">Originally published on <a href=\"${esc(p.sourceUrl)}\" target=\"_blank\" rel=\"noopener\">${esc(p.sourceLabel)} <i class=\"ar\">↗</i></a></p>`:\"\";return`\n            ${src}\n            <div class=\"bl-share\"><button class=\"key\" type=\"button\" id=\"blCopy\">Copy link</button><a class=\"key\" href=\"https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Funlimity.co.uk%2Fblog%2F${encodeURIComponent(p.slug||\"\")}\" target=\"_blank\" rel=\"noopener\">Share on LinkedIn <i class=\"ar\">↗</i></a><span class=\"bl-copied\" id=\"blCopied\" role=\"status\"></span></div>\n          `;}/* C-RAIL \"The work behind this post.\" from the post's Related work (comma separated case study slugs), as\n   pages/_post/gen.py + site/components.py write it */export function relatedList(related){return String(related||\"\").split(/[,\\s]+/).map(s=>s.trim().toLowerCase()).filter(Boolean);}export function railHTML(related,slug){const rel=relatedList(related);if(!rel.length)return\"\";const work=__u.CMS&&__u.CMS.work||[];const n=rel.map(s=>(work.find(w=>w.slug===s)||{}).client).filter(Boolean);const names=n.length<=1?n[0]||\"\":n.slice(0,-1).join(\", \")+\" and \"+n[n.length-1];const word=rel.length===1?\"project\":\"projects\";const text=rel.length>=3?`${names}: the ${word} this post draws on, written up in full.`:`Starting with ${names}, the ${word} this post draws on, written up in full.`;const cfg={spacer:\"m\",frame:\"Related work\",title:[\"The work behind\",\"this post.\"],text,service:\"\",order:rel,only:rel.length>=3,limit:0,aria:\"Work this post draws on\",uid:\"c-rail-1\",id:\"c-rail-1\",page:\"blog-\"+slug,titleLines:[{t:\"The work behind\",d:\"\"},{t:\"this post.\",d:\"d1\"}],cta:{label:\"See all work\",href:\"/work\"}};return wrapPage(`<div class=\"spacer sp-m\" aria-hidden=\"true\"><span class=\"flb\">${FRAME}Related work</span><span class=\"dimt\">Fill \\xd7 Hug</span></div>\n<section class=\"band cmp-rail\" id=\"c-rail-1\" aria-labelledby=\"c-rail-1-h\" data-comp=\"rail\" data-config=\"${escAttr(JSON.stringify(cfg))}\">\n  <div class=\"g12 wk\">\n    <div class=\"cell k-h\"><h2 class=\"hx k-hx\" id=\"c-rail-1-h\"><span class=\"pline rv \">The work behind</span><span class=\"pline rv d1\">this post.</span></h2></div>\n    <div class=\"cell k-side\">\n      <p class=\"body rv\">${esc(text)}</p>\n      <div class=\"k-ctrl rv d1\"><span class=\"k-ctr\" data-k=\"ctr\"><b>01</b> / 01</span><button class=\"key sq\" type=\"button\" data-k=\"prev\" aria-label=\"Previous project\">←</button><button class=\"key sq\" type=\"button\" data-k=\"next\" aria-label=\"Next project\">→</button><a class=\"key\" href=\"/work\">See all work <i class=\"ar\">→</i></a></div>\n    </div>\n    <div class=\"k-rail dotgrid\">\n      <div class=\"rail\" data-k=\"rail\" tabindex=\"0\" aria-label=\"Work this post draws on\"></div>\n    </div>\n  </div>\n</section>`);}export function keepReadingHTML(slug){return wrapPage(`<div class=\"spacer sp-s\" aria-hidden=\"true\"><span class=\"flb\">${FRAME}More posts</span><span class=\"dimt\">Fill \\xd7 Hug</span></div>\n    <section class=\"band bl-kr\" aria-labelledby=\"bl-kr-h\">\n      <div class=\"g12\">\n        <div class=\"cell bl-kr-head\"><h2 class=\"hx bl-kr-hx\" id=\"bl-kr-h\">Keep reading.</h2><a class=\"key\" href=\"/blog\">All posts <i class=\"ar\">→</i></a></div>\n        <div class=\"bl-kr-list\" id=\"blKr\" data-cms-list=\"posts\" data-exclude=\"${esc(slug)}\"></div>\n      </div>\n    </section>`);}/* ------------------------------------------------------------------ the CMS feed (BlogFeedItem in the Site layout template) */export function feedPosts(){if(!hasDOM)return[];const out=[],seen={};document.querySelectorAll(\"[data-ublog-feed] [data-ublog-post]\").forEach(el=>{const d=el.dataset;if(!d.slug||seen[d.slug])return;seen[d.slug]=1;out.push({slug:d.slug,title:d.title||\"\",excerpt:d.excerpt||\"\",category:topicSlug(d.category),categoryName:d.category||\"\",readTime:d.read?+d.read:5,date:d.date||\"\",status:d.status||\"published\",featured:d.featured===\"true\",cover:d.cover?{src:d.cover,alt:d.alt||\"\",w:1600,h:900}:{src:\"\",alt:\"\",w:1600,h:900},author:{name:d.author||\"\"}});});return out;}const rank=p=>p.status===\"published\"?0:1;export const byPublishedDate=(a,b)=>rank(a)-rank(b)||String(b.date||\"\").localeCompare(String(a.date||\"\"));/* ------------------------------------------------------------------ /blog behaviour (port of pages/blog/page.js onto the CMS rows) */export function indexController(G,env){const{window:window1,document:document1,addEventListener,requestAnimationFrame,IntersectionObserver}=G;const reduce=!!(env.U&&env.U.reduce);const io=!reduce&&\"IntersectionObserver\"in window1?new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){e.target.classList.add(\"in\");io.unobserve(e.target);}}),{threshold:.12,rootMargin:\"0px 0px -4% 0px\"}):null;/* (Framer) the script can start after the visitor has already scrolled past an element: reveal those at once */const watch=el=>{if(!el)return;if(io&&el.getBoundingClientRect().bottom>0)io.observe(el);else el.classList.add(\"in\");};const rootOf=el=>el&&el.closest(\".uR\")||el;let topic=\"all\",started=false,watched=new Set;function state(){const feat=document1.getElementById(\"blFeat\");const rows=[...document1.querySelectorAll(\".bl-row[data-slug]\")].sort((a,b)=>a.compareDocumentPosition(b)&4?-1:1);const fslug=feat&&feat.dataset.slug;const list=rows.filter(r=>r.dataset.slug!==fslug)// featured fallback (nothing flagged): never list it twice\n;rows.forEach(r=>{if(r.dataset.slug===fslug)rootOf(r).style.display=\"none\";});const all=(feat?[{topic:feat.dataset.topic,name:feat.dataset.topicName}]:[]).concat(list.map(r=>({topic:r.dataset.topic,name:r.dataset.topicName})));const cats=KNOWN_TOPICS.slice();all.forEach(p=>p.topic&&!cats.find(c=>c.slug===p.topic)&&cats.push({slug:p.topic,name:p.name||p.topic}));const counts={};all.forEach(p=>counts[p.topic]=(counts[p.topic]||0)+1);return{feat,list,cats,counts,total:all.length};}const chips=document1.getElementById(\"blChips\"),cnt=document1.getElementById(\"blCount\"),empty=document1.getElementById(\"blEmpty\");if(!chips)return;const catName=(s,cats)=>(cats.find(c=>c.slug===s)||{}).name||s;let S=state();const valid=()=>[\"all\",...S.cats.map(c=>c.slug)];const fromHash=()=>{const h=decodeURIComponent(location.hash.slice(1));return valid().includes(h)?h:\"all\";};topic=fromHash();function setTopic(t){topic=t;history.replaceState(null,\"\",t===\"all\"?location.pathname:\"#\"+t);render(true);}function render(again){S=state();chips.innerHTML=chipsHTML(S.cats,S.counts,S.total);chips.querySelectorAll(\"[data-topic]\").forEach(b=>b.setAttribute(\"aria-pressed\",String(b.dataset.topic===topic)));const vis=S.list.filter(r=>topic===\"all\"||r.dataset.topic===topic);S.list.forEach(r=>rootOf(r).style.display=vis.includes(r)?\"\":\"none\");const featIn=S.feat&&topic!==\"all\"&&S.feat.dataset.topic===topic;if(empty){const name=esc(catName(topic,S.cats)).toLowerCase();empty.hidden=!!vis.length;const p=empty.querySelector(\"p\");if(p)p.innerHTML=featIn?`The featured post above is the only one on ${name} so far.`:`Nothing on ${name} yet.`;}cnt.textContent=`${String(vis.length).padStart(2,\"0\")} ${vis.length===1?\"post\":\"posts\"}${topic===\"all\"?\"\":\" in \"+catName(topic,S.cats)}`;const shown=vis.slice();if(empty&&!empty.hidden)shown.push(empty.querySelector(\".bl-row\"));if(again){shown.forEach(r=>{r.style.transitionDelay=\"0ms\";r.classList.remove(\"in\");void r.offsetWidth;requestAnimationFrame(()=>r.classList.add(\"in\"));watched.add(r);});}else{shown.forEach((r,i)=>{if(watched.has(r))return;watched.add(r);r.style.transitionDelay=i*90+\"ms\";watch(r);});}}chips.addEventListener(\"click\",e=>{const b=e.target.closest(\"[data-topic]\");if(b)setTopic(b.dataset.topic);});if(empty)empty.addEventListener(\"click\",e=>{if(e.target.closest(\"[data-topic]\"))setTopic(\"all\");});addEventListener(\"hashchange\",()=>{const t=decodeURIComponent(location.hash.slice(1));if(valid().includes(t)){topic=t;render(true);}});function bindFeat(){const feat=document1.getElementById(\"blFeat\");if(!feat||feat.__ub)return;feat.__ub=1;watch(feat);feat.querySelectorAll(\"[data-topic-link]\").forEach(a=>a.addEventListener(\"click\",e=>{e.preventDefault();setTopic(a.dataset.topicLink);const t=document1.querySelector(\".bl-more-head\");if(t)t.scrollIntoView({behavior:reduce?\"auto\":\"smooth\",block:\"start\"});}));}bindFeat();render(false);started=true;/* rows that hydrate after the page script (collection lists can stream in later) */let q=0;addEventListener(\"ublog:mount\",()=>{if(q)return;q=requestAnimationFrame(()=>{q=0;bindFeat();if(fromHash()!==topic&&location.hash)topic=fromHash();render(false);});});}/* ------------------------------------------------------------------ /blog/:slug behaviour (port of pages/_post/post.js) */export function postController(G,env){const{window:window1,document:document1,addEventListener,requestAnimationFrame,IntersectionObserver,setTimeout,clearTimeout}=G;const head=document1.querySelector(\".bl-ph\");if(!head)return;const slug=head.dataset.slug;const reduce=!!(env.U&&env.U.reduce);const posts=feedPosts();const post=posts.find(p=>p.slug===slug)||{readTime:5};const readTime=+head.dataset.read||post.readTime||5;/* nav height, for the sticky rail and heading anchors */const nav=document1.querySelector(\".frame.sub\");const navH=()=>nav&&getComputedStyle(nav).position===\"sticky\"?nav.offsetHeight:0;const setNav=()=>document1.documentElement.style.setProperty(\"--bl-navh\",navH()+\"px\");setNav();addEventListener(\"resize\",setNav);/* keep reading: the 2 newest other posts from the CMS feed (published first, newest first) */const kr=document1.getElementById(\"blKr\");if(kr){const others=posts.filter(p=>p.slug!==slug).sort(byPublishedDate).slice(0,2);kr.innerHTML=others.map(p=>`<a class=\"bl-kc\" href=\"/blog/${esc(p.slug)}\">\n      <span class=\"bl-kc-img\"><img loading=\"lazy\" decoding=\"async\" src=\"${esc(p.cover.src)}\" alt=\"${esc(p.cover.alt)}\" width=\"${p.cover.w}\" height=\"${p.cover.h}\"></span>\n      <span class=\"bl-kc-m\"><span>${esc(topicName(p.categoryName||p.category))}</span><span aria-hidden=\"true\">\\xb7</span><span>${p.readTime} min read</span><span aria-hidden=\"true\">\\xb7</span><span>${esc(p.author.name)}</span></span>\n      <h3>${esc(p.title)}</h3><p>${esc(p.excerpt)}</p>\n      ${p.status!==\"published\"?'<span class=\"bl-dtag\">Draft for Jonny\\'s review</span>':\"\"}</a>`).join(\"\");if(!others.length)kr.closest(\".band\").hidden=true;}/* reveals (one per section, each with its own technique in post.css) *//* (Framer, C20 \"end note empty until refresh\") arriving from a link (a /blog row, the nav's Blog panel, Keep reading: warm\n       cache) Framer can hydrate BlogPostArticle AFTER BlogPostTalk has started this script. The sandbox's querySelectorAll only\n       sees sections that have mounted, so the pull quote and end note were never observed and stayed at opacity 0.\n       watchSecs() also picks up sections that mount later (ublog:mount + the timers below); revealDue() is a scroll fallback. */const SECS=\".bl-ph,.bl-pq,.bl-en,.bl-kr\";const io=reduce||!(\"IntersectionObserver\"in window1)?null:new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){e.target.classList.add(\"in\");io.unobserve(e.target);}}),{threshold:.16,rootMargin:\"0px 0px -8% 0px\"});const seen=new WeakSet,pend=[];function watchSecs(){document1.querySelectorAll(SECS).forEach(s=>{if(seen.has(s))return;seen.add(s);if(!io||s.getBoundingClientRect().bottom<=0)s.classList.add(\"in\")// (Framer) already scrolled past: reveal at once\n;else{io.observe(s);pend.push(s);}});}function revealDue(){for(let i=pend.length-1;i>=0;i--){const s=pend[i];if(!s.isConnected||s.classList.contains(\"in\")){pend.splice(i,1);continue;}/* same rule as the observer (16% of the section inside the viewport less its bottom 8%), so it never reveals earlier */const r=s.getBoundingClientRect(),vb=innerHeight*.92,vis=Math.min(r.bottom,vb)-Math.max(r.top,0);if(r.height&&vis>0&&(vis/r.height>=.16||vis>=vb*.5)){s.classList.add(\"in\");io&&io.unobserve(s);pend.splice(i,1);}}}watchSecs();/* contents (built from the rich text h2s) */const toc=document1.getElementById(\"blToc\"),tocM=document1.getElementById(\"blTocM\"),tocm=tocM&&tocM.querySelector(\"ol\");const slugify=t=>t.toLowerCase().replace(/&amp;/g,\"and\").replace(/&/g,\"and\").replace(/[^a-z0-9]+/g,\"-\").replace(/^-|-$/g,\"\");let hs=[],tocLinks=[];function buildToc(){hs=[...document1.querySelectorAll(\".bl-prose h2\")];const used={};hs.forEach(h=>{let id=slugify(h.textContent)||\"section\";if(used[id])id+=\"-\"+ ++used[id];else used[id]=1;h.id=id;});const li=(h,i)=>`<li><a href=\"#${h.id}\"><span>${String(i+1).padStart(2,\"0\")}</span>${esc(h.textContent)}</a></li>`;if(toc)toc.innerHTML=hs.map(li).join(\"\");if(tocm)tocm.innerHTML=hs.map(li).join(\"\");tocLinks=toc?[...toc.querySelectorAll(\"a\")]:[];if(tocM)tocM.hidden=!hs.length;const r=document1.querySelector(\".bl-rail-in > .flb\");if(r)r.hidden=!hs.length;}buildToc();if(tocM)tocM.addEventListener(\"click\",e=>{if(e.target.closest(\"a\"))tocM.open=false;});/* landing on /blog/<slug>#<chapter>: the ids exist only now */if(location.hash&&hs.length){const t=document1.getElementById(decodeURIComponent(location.hash.slice(1)));if(t)setTimeout(()=>t.scrollIntoView({block:\"start\"}),0);}/* reading progress + scroll-spy + minutes left */const art=document1.querySelector(\".bl-art\"),bar=document1.getElementById(\"blProg\"),meter=document1.getElementById(\"blMeter\"),left=document1.getElementById(\"blLeft\");let ticking=false,lastLeft=\"\";function update(){ticking=false;if(!art)return;const r=art.getBoundingClientRect(),nh=navH();const total=r.height-innerHeight+nh+80;const p=Math.min(1,Math.max(0,(nh+40-r.top)/Math.max(1,total)));if(bar)bar.style.transform=`scaleX(${p})`;if(meter)meter.style.transform=`scaleX(${p})`;const mins=Math.ceil(readTime*(1-p));const txt=p<=.01?`${readTime} min read`:p>=.98?\"You've reached the end\":`${mins} min left`;if(left&&txt!==lastLeft){left.textContent=txt;lastLeft=txt;}let cur=-1;hs.forEach((h,i)=>{if(h.getBoundingClientRect().top<nh+140)cur=i;});tocLinks.forEach((a,i)=>a.classList.toggle(\"on\",i===cur));if(pend.length)revealDue();}const req=()=>{if(!ticking){ticking=true;requestAnimationFrame(update);}};addEventListener(\"scroll\",req,{passive:true});addEventListener(\"resize\",req);update();/* rich text / the article component mounting after the page script: rebuild the contents, watch the new sections */let q=0;const again=()=>{if(q)return;q=requestAnimationFrame(()=>{q=0;watchSecs();if(document1.querySelectorAll(\".bl-prose h2\").length!==hs.length){buildToc();}update();});};addEventListener(\"ublog:mount\",again);[150,600,1500].forEach(ms=>setTimeout(again,ms));/* copy link (the live unlimity.co.uk URL, never the preview host) */const copy=document1.getElementById(\"blCopy\"),said=document1.getElementById(\"blCopied\");if(copy)copy.addEventListener(\"click\",async()=>{const url=\"https://unlimity.co.uk/blog/\"+slug;try{await Promise.race([navigator.clipboard.writeText(url),new Promise((_,no)=>setTimeout(no,900))]);said.textContent=\"Link copied\";}catch(_){said.textContent=\"Copy this link: \"+url;}clearTimeout(copy._t);copy._t=setTimeout(()=>{said.textContent=\"\";},6e3);});}\nexport const __FramerMetadata__ = {\"exports\":{\"rowHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"topicSlug\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"dotAfter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlogSection\":{\"type\":\"reactComponent\",\"name\":\"BlogSection\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"railHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"topicName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"chipsHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"railAsideHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BLOG_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"moreHeadHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"imgSrc\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pullHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PostData\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DRAFT_GATE_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"wrapPage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RICH_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"postHeaderHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isoDay\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isDraft\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"featuredHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"endnoteHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"feedPosts\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FRAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"endHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"esc\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PostCard\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"relatedList\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useDraftGate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"COMP\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fmtDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"POST_CSS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"postController\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"KNOWN_TOPICS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indexController\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"imgAlt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"minutes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"keepReadingHTML\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"byPublishedDate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"firstName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}