/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--portfolio-bg);--color-card:var(--portfolio-card);--color-border:var(--portfolio-border);--color-border-highlight:var(--portfolio-orange);--color-text-primary:var(--portfolio-secondary);--color-text-bright:var(--portfolio-text);--color-text-muted:var(--portfolio-muted)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-28{top:calc(var(--spacing)*28)}.-z-10{z-index:calc(10*-1)}.z-10{z-index:10}.mx-auto{margin-inline:auto}.my-12{margin-block:calc(var(--spacing)*12)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.77778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.09091em;margin-bottom:1.09091em;font-size:1.22222em;line-height:1.45455}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.833333em;font-size:2.66667em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.66667em;line-height:1.33333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.66667em;margin-bottom:.666667em;font-size:1.33333em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:.444444em;line-height:1.55556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.222222em;padding-inline-end:.444444em;padding-bottom:.222222em;border-radius:.3125rem;padding-inline-start:.444444em;font-size:.888889em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.866667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;border-radius:.375rem;margin-top:2em;margin-bottom:2em;padding-inline-start:1.5em;font-size:.888889em;line-height:1.75}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.55556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;margin-bottom:.666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.33333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;padding-inline-start:1.55556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.11111em;margin-bottom:3.11111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.77778em;margin-bottom:1.77778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;font-size:.888889em;line-height:1.5}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-7{margin-top:calc(var(--spacing)*7)}.mt-16{margin-top:calc(var(--spacing)*16)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-video{aspect-ratio:var(--aspect-video)}.h-2{height:calc(var(--spacing)*2)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-none{max-width:none}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.translate-x-\[5px\]{--tw-translate-x:5px;translate:var(--tw-translate-x)var(--tw-translate-y)}.scroll-mt-24{scroll-margin-top:calc(var(--spacing)*24)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-12{gap:calc(var(--spacing)*12)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-\[\#3d6b8f\]{border-color:#3d6b8f}.border-accent-secondary{border-color:var(--portfolio-accent)}.border-border{border-color:var(--portfolio-border)}.border-text-bright{border-color:var(--portfolio-text)}.bg-accent-primary{background-color:var(--portfolio-orange)}.bg-accent-secondary,.bg-accent-secondary\/20{background-color:var(--portfolio-accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent-secondary\/20{background-color:color-mix(in oklab,var(--portfolio-accent)20%,transparent)}}.bg-bg{background-color:var(--portfolio-bg)}.bg-card{background-color:var(--portfolio-card)}.bg-surface-subtle{background-color:var(--portfolio-deep)}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[150px\]{font-size:150px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-pre{white-space:pre}.text-\[\#3d6b8f\]{color:#3d6b8f}.text-accent-ink{color:#201411}.text-accent-secondary{color:var(--portfolio-accent)}.text-border{color:var(--portfolio-border)}.text-text-bright{color:var(--portfolio-text)}.text-text-muted{color:var(--portfolio-muted)}.text-text-primary{color:var(--portfolio-secondary)}.capitalize{text-transform:capitalize}.opacity-80{opacity:.8}.shadow-\[4px_0px_20px_-4px_rgba\(232\,232\,232\,0\.15\)\]{--tw-shadow:4px 0px 20px -4px var(--tw-shadow-color,#e8e8e826);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{user-select:none}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:border-accent-primary:hover{border-color:var(--portfolio-orange)}.hover\:text-text-bright:hover{color:var(--portfolio-text)}.hover\:text-text-primary:hover{color:var(--portfolio-secondary)}.hover\:opacity-90:hover{opacity:.9}}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:text-\[200px\]{font-size:200px}}@media (width>=48rem){.md\:block{display:block}.md\:grid-cols-\[180px_1fr\]{grid-template-columns:180px 1fr}.md\:text-\[250px\]{font-size:250px}}.prose-headings\:text-text-bright :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--portfolio-text)}.prose-p\:mb-6 :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:calc(var(--spacing)*6)}.prose-p\:text-text-primary :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--portfolio-secondary)}.prose-li\:mb-2 :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:calc(var(--spacing)*2)}}@font-face{font-family:Space Grotesk;src:url(/magnite/fonts/SpaceGrotesk-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/magnite/fonts/SpaceGrotesk-Medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/magnite/fonts/SpaceGrotesk-SemiBold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:DM Sans;src:url(/magnite/fonts/DMSans-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DM Sans;src:url(/magnite/fonts/DMSans-Medium.ttf)format("truetype");font-weight:500;font-display:swap}:root{color-scheme:dark;--portfolio-bg:#08090a;--portfolio-deep:#040506;--portfolio-card:#111315;--portfolio-border:#282c31;--portfolio-code-bg:#08090a;--portfolio-text:#f1efe7;--portfolio-secondary:#b6bac2;--portfolio-muted:#888f9a;--portfolio-orange:#ff4a0e;--portfolio-accent:#ff784e;--portfolio-header:#08090af5;--portfolio-dot:#b6bac221}:root[data-theme=light]{color-scheme:light;--portfolio-bg:#f1efe7;--portfolio-deep:#e9e6dc;--portfolio-card:#fffef8;--portfolio-border:#cfd2c5;--portfolio-code-bg:#111214;--portfolio-text:#20221f;--portfolio-secondary:#555d54;--portfolio-muted:#62685f;--portfolio-accent:#b83d16;--portfolio-header:#f1efe7f0;--portfolio-dot:#20221f21}html{scroll-behavior:smooth;scroll-padding-top:112px}body{background:var(--portfolio-bg);color:var(--portfolio-secondary);font-family:DM Sans,system-ui,sans-serif;line-height:1.7}h1,h2,h3,h4,.guardian-brand{color:var(--portfolio-text);letter-spacing:-.04em;font-family:Space Grotesk,system-ui,sans-serif;font-weight:500;line-height:1.15}main{min-width:0}main>section>h1,main>article>header h1{font-size:clamp(36px,5vw,56px);line-height:1.08}main>article>header h1{overflow-wrap:anywhere}main>section>h1+p{font-size:15px;line-height:1.8}main>article .grid>div{min-width:0}.mono{font-family:ui-monospace,monospace}::selection{background:var(--portfolio-orange);color:#201411}a:focus-visible,button:focus-visible{outline:2px solid var(--portfolio-accent);outline-offset:5px}.skip-link{z-index:100;background:var(--portfolio-orange);color:#201411;padding:10px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.site-container{width:calc(100% - 96px);max-width:1120px;margin-inline:auto}.portfolio-eyebrow{letter-spacing:.14em;color:var(--portfolio-accent);text-transform:uppercase;align-items:center;gap:10px;font-size:10px;font-weight:500;display:flex}.portfolio-eyebrow:before{content:"";background:var(--portfolio-orange);border-radius:50%;width:5px;height:5px}.portfolio-header{z-index:50;border-bottom:1px solid var(--portfolio-border);background:var(--portfolio-header);backdrop-filter:blur(16px);position:sticky;top:0}.portfolio-header-inner{justify-content:space-between;align-items:center;gap:30px;min-height:84px;display:flex}.guardian-brand{letter-spacing:-.06em;white-space:nowrap;font-size:25px}.guardian-brand span{color:var(--portfolio-orange)}.portfolio-header nav ul{align-items:center;gap:30px;display:flex}.portfolio-header nav a{color:var(--portfolio-secondary);border-bottom:2px solid #0000;padding:10px 0;font-size:13px;display:block;position:relative}.portfolio-header nav a:hover{color:var(--portfolio-accent)}.portfolio-header nav a[aria-current=page]{color:var(--portfolio-text)}.portfolio-theme-toggle{border:1px solid var(--portfolio-border);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.portfolio-theme-toggle:hover{border-color:var(--portfolio-accent)}.theme-moon,[data-theme=light] .theme-sun{display:none}[data-theme=light] .theme-moon{display:block}.portfolio-footer{border-top:1px solid var(--portfolio-border);margin-top:auto}.footer-inner{color:var(--portfolio-muted);justify-content:space-between;align-items:center;gap:24px;padding-block:32px;font-size:11px;display:flex}.footer-inner .guardian-brand{font-size:21px}.footer-inner ul{flex-wrap:wrap;gap:12px 22px;display:flex}.footer-inner a:hover,.footer-inner li span{color:var(--portfolio-accent)}.home-hero{grid-template-columns:1.4fr 1fr;align-items:center;gap:80px;padding-block:100px 92px;display:grid}.home-hero h1{letter-spacing:-.065em;margin-top:30px;font-size:clamp(68px,8vw,110px);line-height:1}.home-hero h1 span{color:var(--portfolio-orange)}.hero-description{color:var(--portfolio-secondary);letter-spacing:-.025em;margin-top:24px;font-family:Space Grotesk,sans-serif;font-size:22px;line-height:1.5}.hero-actions{align-items:center;gap:28px;margin-top:34px;display:flex}.portfolio-button{background:var(--portfolio-orange);color:#201411;border-radius:5px;justify-content:center;align-items:center;gap:30px;padding:13px 20px;font-size:13px;font-weight:500;display:inline-flex}.portfolio-button:hover{background:#ff784e}.portfolio-text-link{align-items:center;gap:20px;font-size:13px;display:inline-flex}.portfolio-text-link:hover{color:var(--portfolio-accent)}.hero-directory{background-image:radial-gradient(var(--portfolio-dot).8px,transparent .8px);background-size:20px 20px;padding:26px 0}.hero-directory>p{color:var(--portfolio-muted);letter-spacing:.12em;padding-bottom:15px;font:9px ui-monospace,monospace}.hero-directory a{border-top:1px solid var(--portfolio-border);align-items:center;gap:22px;padding:23px 0;display:flex}.hero-directory a:last-child{border-bottom:1px solid var(--portfolio-border)}.hero-directory .directory-index{color:var(--portfolio-accent);font:10px ui-monospace,monospace}.directory-label{flex-direction:column;gap:4px;display:flex}.directory-label strong{color:var(--portfolio-text);letter-spacing:-.035em;font-family:Space Grotesk,sans-serif;font-size:23px;font-weight:500}.directory-label small{color:var(--portfolio-muted);font-size:11px}.directory-arrow{color:var(--portfolio-accent);margin-left:auto;font-size:20px}.hero-directory a:hover .directory-label strong{color:var(--portfolio-accent)}.home-section{border-top:1px solid var(--portfolio-border);padding-block:54px}.section-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.section-heading .portfolio-eyebrow{margin-bottom:16px}.section-heading h2{font-size:32px}.portfolio-card{background:var(--portfolio-card);border:1px solid var(--portfolio-border);border-radius:8px;flex-direction:column;min-width:0;transition:border-color .2s,transform .2s;display:flex;overflow:hidden}.portfolio-card:hover{border-color:var(--portfolio-orange);transform:translateY(-3px)}.card-body{flex-direction:column;flex:1;padding:24px;display:flex}.card-meta{color:var(--portfolio-muted);justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font:10px ui-monospace,monospace;display:flex}.card-arrow{color:var(--portfolio-accent);font-size:20px;line-height:1}.portfolio-card h3{font-size:23px;line-height:1.25}.card-description{margin-block:15px 22px;font-size:13px;line-height:1.85}.card-tags{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.card-tags span{color:var(--portfolio-accent);background:var(--portfolio-accent);font-size:10px}@supports (color:color-mix(in lab, red, red)){.card-tags span{background:color-mix(in srgb,var(--portfolio-accent)8%,transparent)}}.card-tags span{border:1px solid var(--portfolio-accent)}@supports (color:color-mix(in lab, red, red)){.card-tags span{border:1px solid color-mix(in srgb,var(--portfolio-accent)22%,transparent)}}.card-tags span{border-radius:4px;padding:3px 8px}.card-image{aspect-ratio:16/9;background:var(--portfolio-deep);border-bottom:1px solid var(--portfolio-border);overflow:hidden}.card-image img{object-fit:cover;width:100%;height:100%}@media (width>=640px){.card-showcase{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.card-showcase .card-image{aspect-ratio:16/10;border-bottom:0;border-right:1px solid var(--portfolio-border)}.card-showcase .card-body{justify-content:center}.card-showcase .card-tags{margin-top:10px}}.page-eyebrow{margin-bottom:25px}.about-card{border-top:2px solid var(--portfolio-orange)}.prose{--tw-prose-body:var(--portfolio-secondary);--tw-prose-headings:var(--portfolio-text);--tw-prose-lead:var(--portfolio-secondary);--tw-prose-links:var(--portfolio-accent);--tw-prose-bold:var(--portfolio-text);--tw-prose-counters:var(--portfolio-muted);--tw-prose-bullets:var(--portfolio-accent);--tw-prose-hr:var(--portfolio-border);--tw-prose-quotes:var(--portfolio-text);--tw-prose-quote-borders:var(--portfolio-orange);--tw-prose-captions:var(--portfolio-muted);--tw-prose-code:var(--portfolio-accent);--tw-prose-pre-code:#f1efe7;--tw-prose-pre-bg:var(--portfolio-code-bg);--tw-prose-th-borders:var(--portfolio-border);--tw-prose-td-borders:var(--portfolio-border);overflow-wrap:break-word;font-size:16px;line-height:1.9}.prose a{text-underline-offset:3px}.prose a:hover{color:var(--portfolio-accent)}.prose :where(h2,h3,h4){letter-spacing:-.025em}.prose pre{border:1px solid var(--portfolio-border);max-width:100%;font-size:12px;overflow-x:auto;background-color:var(--portfolio-code-bg)!important}.prose table{display:block;overflow-x:auto}.prose blockquote{background:var(--portfolio-card);border-radius:0 6px 6px 0;padding:12px 20px;font-style:normal}.prose blockquote p{margin-block:8px}@media (width<=900px){.site-container{width:calc(100% - 64px)}.home-hero{gap:40px;padding-block:75px}.home-hero h1{font-size:80px}.portfolio-header nav ul{gap:20px}}@media (width<=640px){html{scroll-padding-top:130px}.site-container{width:calc(100% - 40px)}.portfolio-header-inner{flex-wrap:wrap;gap:0;padding-top:15px}.guardian-brand{font-size:23px}.portfolio-theme-toggle{order:2;width:34px;height:34px}.portfolio-header nav{order:3;width:100%;margin-top:9px}.portfolio-header nav ul{justify-content:space-between;gap:12px}.portfolio-header nav a{padding-block:10px 12px;font-size:12px}.home-hero{grid-template-columns:1fr;gap:38px;padding-block:55px 45px}.home-hero h1{margin-top:25px;font-size:clamp(64px,17vw,92px)}.hero-description{font-size:19px}.hero-actions{flex-wrap:wrap;gap:24px;margin-top:26px}.hero-directory{padding-block:10px}.hero-directory a{padding-block:17px}.directory-label strong{font-size:21px}.home-section{padding-block:38px}.section-heading h2{font-size:26px}.section-heading .portfolio-text-link{gap:9px;font-size:11px}.portfolio-eyebrow{font-size:9px}.card-body{padding:21px}.portfolio-card h3{font-size:22px}.card-meta{margin-bottom:20px}.footer-inner{flex-wrap:wrap;gap:20px;padding-block:26px}.footer-inner p{order:3;width:100%;font-size:10px}.footer-inner ul{gap:10px 14px;font-size:10px}.footer-inner .guardian-brand{font-size:19px}main>section,main>article{padding-inline:20px}.prose{font-size:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.directory-featured .directory-label strong,.directory-featured .directory-arrow{color:var(--portfolio-accent)}.magnite-feature{border:1px solid var(--portfolio-border);border-top:3px solid var(--portfolio-orange);background:var(--portfolio-card);border-radius:9px;grid-template-columns:1fr 1.2fr;align-items:center;gap:38px;padding:38px;display:grid}.magnite-feature-copy,.magnite-feature-details{min-width:0}.magnite-feature-brand{align-items:center;gap:14px;width:fit-content;margin-block:25px;display:flex}.magnite-feature-brand>img:first-child{width:52px;height:52px}.magnite-feature-brand>img:not(:first-child){object-fit:contain;width:150px;height:42px}.feature-image-light{display:none}[data-theme=light] .feature-image-light{display:block}[data-theme=light] .feature-image-dark{display:none}.magnite-feature h2{letter-spacing:-.05em;font-size:clamp(32px,3.5vw,46px);line-height:1.08}.magnite-feature h2 span{color:var(--portfolio-orange)}.magnite-feature-description{max-width:480px;font-size:15px;line-height:1.8}.magnite-feature-workflow{color:var(--portfolio-accent);flex-wrap:wrap;gap:9px;margin-top:18px;font-size:10px;display:flex}.magnite-feature-workflow span{color:var(--portfolio-muted)}.magnite-feature-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:27px;display:flex}.magnite-feature-status{color:var(--portfolio-muted);align-items:center;gap:8px;margin-top:18px;font-size:10px;display:flex}.magnite-feature-status span{background:var(--portfolio-orange);border-radius:50%;width:5px;height:5px}.other-projects-heading{margin-top:54px}@media (width<=900px){.magnite-feature{grid-template-columns:1fr 1fr;gap:25px;padding:28px}.magnite-feature-actions{gap:18px}}@media (width<=700px){.magnite-feature{grid-template-columns:1fr;gap:28px;padding:25px}.magnite-feature h2{font-size:38px}.magnite-feature-description{max-width:none}.magnite-feature-brand{margin-block:22px}.other-projects-heading{margin-top:38px}}@media (width<=380px){.magnite-feature{padding:20px}.magnite-feature h2{font-size:34px}}.nav-indicator{background:var(--portfolio-orange);view-transition-name:navigation-indicator;inset-inline:0;border-radius:2px;height:2px;position:absolute;bottom:-2px}:root{--ease-settle:cubic-bezier(.22,1,.36,1)}a,button{transition:color .18s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .24s var(--ease-settle)}body,.portfolio-header,.portfolio-footer,.magnite-feature,.about-card,.card-tags span,.bg-card,.bg-surface-subtle{transition:background-color .24s,border-color .22s,color .2s}.portfolio-card{transition:transform .3s var(--ease-settle),border-color .22s ease,background-color .24s ease,box-shadow .3s ease}.portfolio-card:hover{box-shadow:0 10px 25px -18px var(--portfolio-orange)}@supports (color:color-mix(in lab, red, red)){.portfolio-card:hover{box-shadow:0 10px 25px -18px color-mix(in srgb,var(--portfolio-orange)40%,transparent)}}.portfolio-card:active{transform:translateY(-1px)scale(.995)}.portfolio-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px -10px #ff4a0e80}.portfolio-button:active{box-shadow:none;transform:translateY(0)scale(.97)}.portfolio-theme-toggle:hover{background:var(--portfolio-card)}.portfolio-theme-toggle:active{transform:scale(.9)}.portfolio-theme-toggle svg{animation:theme-icon-in .24s var(--ease-settle)}.card-arrow,.directory-arrow,.portfolio-text-link>span,.portfolio-button>span,.footer-inner li span{transition:transform .24s var(--ease-settle);display:inline-block}.portfolio-card:hover .card-arrow,.hero-directory a:hover .directory-arrow,.portfolio-text-link:hover>span,.portfolio-button:hover>span,.footer-inner a:hover span{transform:translate(2px,-2px)}.card-image img{transition:transform .5s var(--ease-settle)}.portfolio-card:hover .card-image img{transform:scale(1.025)}.hero-directory a:active{transform:translate(2px)}@keyframes theme-icon-in{0%{opacity:.3;transform:rotate(-25deg)scale(.8)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes page-leave{to{opacity:0;transform:translateY(-5px)}}@keyframes page-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}:root{view-transition-name:none}#main{view-transition-name:page-content}.portfolio-header{view-transition-name:site-header}.portfolio-footer{view-transition-name:site-footer}::view-transition-group(*){animation-duration:.3s;animation-timing-function:var(--ease-settle)}::view-transition-group(site-header),::view-transition-group(site-footer),::view-transition-old(site-header),::view-transition-new(site-header),::view-transition-old(site-footer),::view-transition-new(site-footer){animation:none}::view-transition-old(page-content){animation:.14s ease-out both page-leave}::view-transition-new(page-content){animation:page-enter .28s var(--ease-settle)both}::view-transition-group(navigation-indicator){z-index:2;animation-duration:.34s}::view-transition-old(navigation-indicator){opacity:0;animation:none}::view-transition-new(navigation-indicator){animation:none}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{transition:none!important;animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.portfolio-button:hover,.portfolio-card:hover,.portfolio-card:active,.portfolio-button:active,.portfolio-theme-toggle:active,.portfolio-card:hover .card-image img,.hero-directory a:active,.portfolio-card:hover .card-arrow,.hero-directory a:hover .directory-arrow,.portfolio-text-link:hover>span,.portfolio-button:hover>span,.footer-inner a:hover span{transform:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}
