story-demo{display:block}story-demo [hidden]{display:none!important}.demo-stage{position:relative}.demo-stage iframe{border-radius:var(--radius-media);corner-shape:var(--corner-shape,round);opacity:0;background:#111;border:0;width:100%;height:100%;transition:opacity .2s;display:block;position:absolute;inset:0}.demo-stage[data-live=ready] iframe{opacity:1}.demo-stage[data-live=ready]>a{visibility:hidden}story-demo .demo-overlay{z-index:1;border:var(--rule) solid #ffffff20;color:#fff;white-space:nowrap;pointer-events:none;background:#000c;border-radius:999px;margin:0;padding:.5rem 1rem;font-size:.875rem;line-height:1.4;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.demo-badges{z-index:2;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex;position:absolute;top:12px;right:12px}.demo-badges>.view-link.is-overlay{padding:5px 10px;position:static}.demo-switch{font-family:var(--mono);line-height:inherit;cursor:pointer;gap:.5rem}.demo-switch-track{background:#ffffff38;border-radius:999px;width:28px;height:16px;transition:background-color .18s;position:relative}.demo-switch-track:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .18s;position:absolute;top:2px;left:2px}.demo-switch[aria-checked=true]{border-color:var(--accent)}.demo-switch[aria-checked=true] .demo-switch-track{background:var(--accent)}.demo-switch[aria-checked=true] .demo-switch-track:after{background:#000;transform:translate(12px)}.demo-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}story-demo .demo-overlay[data-tone=error]{white-space:normal;text-align:center;max-width:min(32rem,100% - 2rem)}@media (prefers-reduced-motion:reduce){.demo-stage iframe,.demo-switch-track,.demo-switch-track:after{transition:none}}@layer base,layout;@layer components{.case-rail{--rail-edge:1rem;--card-gap:1rem;--tick-rest:.75rem;--tick-max:1.75rem;--tick-step:.875rem;left:var(--rail-edge);z-index:40;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed;top:50%;translate:0 -50%}.case-rail ol{margin:0;padding:.375rem 0;list-style:none}.case-rail a{width:calc(var(--tick-max) + var(--card-gap));height:var(--tick-step);align-items:center;display:flex}.case-rail a:before{content:"";width:calc(var(--tick-rest) + (var(--tick-max) - var(--tick-rest)) * var(--grow,0));background:var(--faint);border-radius:1px;flex:none;height:2px;transition:width .12s ease-out}.case-rail[data-scrubbing]{cursor:pointer}.case-rail[data-tracking] a:before{transition:none}.case-rail li:has(~li>:is(a[aria-current=true],a[data-active])) a:before,.case-rail a[aria-current=true]:before{background:var(--ink-soft)}.case-rail li:has(>a[data-active])~li a:before{background:var(--faint)}.case-rail ol li>a[data-active][href]:before{background:var(--accent)}.case-rail a:focus-visible{outline-offset:2px}.toc-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.toc-card{--card-pad:.875rem 1rem 1rem;left:calc(var(--tick-max) + var(--card-gap));width:min(20rem, calc(100vw - var(--rail-edge) - var(--tick-max) - var(--card-gap) * 2));padding:var(--card-pad);border:var(--rule) solid var(--line);border-radius:var(--radius-media);background:var(--surface-2);pointer-events:none;visibility:hidden;translate:0 var(--card-y,0);corner-shape:var(--corner-shape,round);position:absolute;top:0;box-shadow:0 1.125rem 3rem #0009}.toc-card.is-open{visibility:visible;pointer-events:auto;cursor:pointer}.toc-card-head{align-items:baseline;gap:.5rem;display:flex}.toc-card-number{color:var(--accent);flex:none;font-size:.75rem;font-weight:700}.toc-card-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);font-size:.875rem;font-weight:600;line-height:1.4;display:block;overflow:hidden}.toc-card-text{-webkit-line-clamp:3;color:var(--muted);-webkit-box-orient:vertical;margin-top:.5rem;font-size:.8125rem;line-height:1.55;display:-webkit-box;overflow:hidden}@media (width<=767px){.case-rail{display:none}}@media (prefers-reduced-motion:reduce){.case-rail a:before{transition:none}}.reading-progress{view-transition-name:reading-progress;z-index:60;background:var(--accent);transform-origin:0;height:2px;transform:scaleX(var(--progress,0));pointer-events:none;position:fixed;inset:0 0 auto}@media (prefers-reduced-motion:reduce){.reading-progress{display:none}}[data-zoomable]{cursor:zoom-in}.lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--ink);overscroll-behavior:contain;background:0 0;border:0;outline:none;margin:0;padding:0}.lightbox-viewport{overscroll-behavior:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;position:fixed;inset:0;overflow:auto hidden}.lightbox-viewport::-webkit-scrollbar{display:none}.lightbox[data-zoomed] .lightbox-viewport{touch-action:none;overflow:hidden}.lightbox-track{height:100%;display:flex}.lightbox-slide{box-sizing:border-box;scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;place-items:center;min-width:0;height:100%;padding:3.5rem 0 4rem;display:grid;position:relative}.lightbox::backdrop{background:#000000eb}.lightbox[style*=--swipe-fade]::backdrop{opacity:var(--swipe-fade)}.lightbox[open]{display:block}.lightbox img{object-fit:contain;cursor:zoom-in;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;will-change:transform;max-width:none}.lightbox[data-zoomed] img{cursor:grab}.lightbox[data-zoomed] img:active{cursor:grabbing}.lightbox button{z-index:2;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.lightbox[data-zoomed] p{visibility:hidden}.lightbox-slide[data-current]{z-index:1}.lightbox :is(button,p){transition:opacity .15s,border-color .15s}.lightbox[data-handling] :is(button,p){opacity:0;pointer-events:none}.lightbox p{z-index:2;width:max-content;max-width:min(47.5rem, calc(100% - 2 * var(--gutter)));text-align:center;color:var(--ink-soft);margin:0;font-size:.85rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.lightbox button{border:var(--rule) solid #ffffff20;color:#fff;cursor:pointer;background:#0008;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;transition:opacity .15s,border-color .15s;display:grid;position:fixed}.lightbox button:focus-visible{border-color:var(--accent)}@media (hover:hover) and (pointer:fine){.lightbox button:hover{border-color:var(--accent)}}.lightbox-close{top:.875rem;right:.875rem}.lightbox-step{top:50%;transform:translateY(-50%)}.lightbox-step[data-step="-1"]{left:.875rem}.lightbox-step[data-step="1"]{right:.875rem}.lightbox button[hidden]{display:none}.lightbox button .icon{stroke-width:1.6px;width:1.375rem;height:1.375rem}[data-zoomable]{display:block}.lightbox img{box-shadow:none;border:0;border-radius:0;outline:0}.case-pager{background:var(--dotted-rule);grid-template-columns:1fr 1fr;align-items:stretch;gap:1rem;margin-top:7rem;padding-top:2rem;display:grid}.pager-link{gap:.125rem;padding:1.25rem 0;text-decoration:none;display:grid}.pager-next{text-align:right;justify-items:end}.pager-label{color:var(--muted);--text-weight:600;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;display:inline-flex}.pager-label .icon{width:1rem;height:1rem}@media (width>=79rem){.pager-previous .pager-label{margin-left:-1.5rem}.pager-next .pager-label{margin-right:-1.5rem}}.pager-title{letter-spacing:-.02em;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.1}.pager-link.is-hover .pager-title{color:var(--accent)}.pager-link.is-hover .pager-label{color:var(--ink)}@media (width<=760px){.case-pager{background:radial-gradient(circle closest-side,#404040b3 85%,#0000) 0 0/12px 5px repeat-x;margin-top:5rem}}.case-turn-sheet{z-index:30;contain:strict;background:var(--paper);pointer-events:none;will-change:translate;position:fixed;inset:0;overflow:hidden}.case-turn-sheet[data-side=next]{translate:100%}.case-turn-sheet[data-side=previous]{translate:-100%}.crumb-label{--edge-cut:.375rem;mask-image:linear-gradient(calc(90deg + var(--slash-angle)), transparent calc(50% - .25rem), #000 50%);mask-size:300% 100%;mask-repeat:no-repeat;mask-position:calc(75% - var(--edge-cut)) 0;display:inline-block}.header-trail [aria-current=page]:has(>.crumb-label){overflow:visible}.case-markdown{display:contents}.case-markdown-copy[hidden]{display:none}@media (width<=760px){.case-markdown .button{padding-inline:.8125rem}.project-action-iconic>.icon:not(.icon-leading){display:none}.case-markdown-label,.project-action-iconic>span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.case-markdown-icons{display:inline-grid}.case-markdown-icons .icon{grid-area:1/1}.case-markdown-icons .icon-check,[data-state=copied] .case-markdown-icons .icon-copy{visibility:hidden}[data-state=copied] .case-markdown-icons .icon-check{visibility:visible}.case-markdown-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.project-intro{padding-block:3rem}.project-intro h1{letter-spacing:-.025em;width:fit-content;font-size:clamp(3.6rem,10.5vw,8.4rem);line-height:.765}.project-intro .lead{letter-spacing:-.01em;font-optical-sizing:none;max-width:30em;font-size:clamp(1.2rem,2.3vw,1.6rem);line-height:1.5}.project-intro .tags{gap:.5em;margin-top:1.5rem;font-size:clamp(.85rem,1.62vw,1.13rem)}.project-intro .tags li{padding:.25em .8333em}.project-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem;display:flex}.project-facts{grid-template-columns:repeat(auto-fit,minmax(11.875rem,1fr));gap:1.5rem 2rem;margin:0 0 3rem;display:grid}.case-stack{margin:-1rem 0 3rem}.case-stack>h2{font-variation-settings:normal;margin:0 0 .75rem;font-weight:400}.case-stack>p{color:var(--ink-soft);margin:0;font-size:.95rem;line-height:1.6}.case-stack-item{white-space:nowrap}.case-stack-toggle{font:inherit;color:inherit;text-underline-offset:.25em;text-decoration:underline 1px dashed;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);cursor:pointer;background:0 0;border:0;padding:0}.case-stack-toggle:hover{color:var(--accent);text-decoration-color:currentColor}.case-stack.is-open .case-stack-closed,.case-stack:not(.is-open) .case-stack-opened,.case-stack-more,.case-stack.is-open .case-stack-toggle:not(.is-shown){display:none}.case-stack-more.is-shown{display:inline}.case-stack-more.is-shown,.case-stack.is-open .case-stack-toggle.is-shown{animation:.16s ease-out both case-stack-in}@keyframes case-stack-in{0%{opacity:0;filter:blur(3px)}}@media (prefers-reduced-motion:reduce){.case-stack-more.is-shown,.case-stack.is-open .case-stack-toggle.is-shown{animation:none}}.case-models{--dot-color:#202020;--dot-size:2px;--dot-step:5px;margin:-1rem 0 3rem}.case-models>h2{font-family:var(--mono);font-variation-settings:normal;margin:0 0 .75rem;font-weight:400}.case-models ul{grid-template-columns:repeat(auto-fill,minmax(max(13rem,33.3333% - 1.33333rem),1fr));gap:0 2rem;margin:0;padding:0;list-style:none;display:grid}.case-models li{color:var(--ink-soft);margin-bottom:calc(-1 * var(--dot-size));background:radial-gradient(circle closest-side, var(--dot-color) 85%, transparent) left top / var(--dot-step) var(--dot-size) repeat-x, radial-gradient(circle closest-side, var(--dot-color) 85%, transparent) left bottom / var(--dot-step) var(--dot-size) repeat-x;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0;display:flex}.case-models-numbers{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;gap:.75rem;font-size:.8125rem;display:flex}.case-models-share{text-align:right;min-width:2.5rem;color:var(--ink-soft)}.project-facts dd{color:var(--ink-soft);white-space:pre-line}.case-cover,.case-figure{--fit:calc((100svh - var(--header-h) - 2rem) * var(--ratio,100))}.case-cover{width:min(90rem, calc(100vw - 2 * var(--gutter)), var(--fit), var(--natural,90rem));margin:0 0 3.5rem 50%;position:relative;transform:translate(-50%)}.case-cover img{width:100%;box-shadow:0 0 0 var(--rule) var(--line);background:#000}.case-cover figcaption{width:min(70rem, 100vw - 2 * var(--gutter), 100%);margin:.875rem auto 0}.case-cover.is-window img,.case-figure.is-window img{box-shadow:none;filter:drop-shadow(0 1.75rem 3.5rem #00000080);background:0 0}.case-cover.is-window img{width:min(100%,71.875rem);margin-inline:auto;display:block}.case-cover figcaption,.case-body figcaption{color:var(--muted);margin-top:.875rem;font-size:.8rem;line-height:1.6}.case-cover figcaption a,.case-figure figcaption a{white-space:nowrap}.case-cover figcaption>a:not(.view-link){align-items:center;gap:.25rem;display:inline-flex}.case-body figcaption a:not(:has(.icon)):after{content:"";vertical-align:-.12em;background:currentColor;width:.95em;height:.95em;margin-left:.25rem;display:inline-block;-webkit-mask:url(/_astro/arrow-up-right.CkhJiCPb.svg) 50%/contain no-repeat;mask:url(/_astro/arrow-up-right.CkhJiCPb.svg) 50%/contain no-repeat}.case-summary{max-width:42.5rem;margin:0 auto 4rem}.case-summary>p{border-left:var(--rule) solid var(--accent);color:var(--ink);text-box:trim-both cap alphabetic;padding-left:1.25rem;font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.6}@media (width>=52.5rem){.case-summary>p{margin-left:calc(-1.25rem - var(--rule))}}.case-glance{max-width:42.5rem;margin:0 auto 4.5rem}.case-glance>h2{font-family:var(--mono);font-variation-settings:normal;margin:0 0 1rem;font-weight:400}.case-glance-hook{border-left:var(--rule) solid var(--accent);color:var(--ink);text-box:trim-both cap alphabetic;margin:0 0 2.5rem;padding-left:1.25rem;font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.6}@media (width>=52.5rem){.case-glance-hook{margin-left:calc(-1.25rem - var(--rule))}}.case-glance-parts{margin:0}.case-glance-parts>div{grid-template-columns:9rem 1fr;gap:.5rem 1.5rem;padding:1.125rem 0;display:grid}.case-glance-parts>div:first-child{padding-top:0}.case-glance-parts>div+div{background:var(--dotted-rule-fine)}.case-glance-parts dt{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;line-height:1.6rem}.case-glance-parts dd{color:var(--ink-soft);margin:0;line-height:1.6}.case-glance .case-stats{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin:2.5rem 0 0}.case-glance-decisions{margin-top:2.5rem}.case-glance-decisions h3{font-family:var(--mono);font-variation-settings:normal;margin:0 0 .5rem;font-weight:400}.case-glance-columns,.case-glance-decisions li{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem 2rem;display:grid}.case-glance-columns{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);padding-bottom:.5rem;font-size:.7rem;line-height:1.6rem}.case-glance-columns span:last-child{padding-left:1.625rem}.case-glance-decisions ol{background:radial-gradient(circle closest-side, var(--dot-color) 85%, transparent) left bottom / var(--dot-step) var(--dot-size) repeat-x;margin:0;padding:0;list-style:none}.case-glance-decisions li{--line:calc(1.0625rem * 1.6);background:var(--dotted-rule-fine);padding:1rem 0}.case-glance-decisions li>p{line-height:var(--line);color:var(--ink-soft);margin:0}.case-glance-decisions a{color:var(--ink-soft);line-height:var(--line);grid-template-columns:1rem minmax(0,1fr);align-items:baseline;column-gap:.625rem;text-decoration:none;display:grid}.case-glance-decisions a .icon{width:1rem;height:1rem;margin-top:calc((var(--line) - 1rem) / 2);color:var(--accent);align-self:start}.case-glance-decisions a>span:last-child{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em}.case-glance-decisions a:hover>span:last-child{text-decoration-color:var(--accent)}.case-glance-decisions .visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=640px){.case-glance-columns{display:none}.case-glance-decisions li{grid-template-columns:1fr}}@media (width<=760px){.case-glance{margin-bottom:3rem}.case-glance-hook{font-size:1.0625rem}.case-glance-parts>div{grid-template-columns:1fr;gap:.25rem}.project-intro h1{font-size:clamp(2.8rem,13vw,3.6rem)}.project-intro .lead,.case-summary>p{font-size:1.0625rem}.project-intro .tags{font-size:.75rem}}.case-body{--wide:min(var(--max), 100vw - 2 * var(--gutter));overflow-wrap:break-word;counter-reset:section;width:100%;max-width:42.5rem;margin-inline:auto}.case-body h2{--h2-size:clamp(2rem, 3.8vw, 2.9rem);scroll-margin-top:calc(var(--header-h) + 1.5rem);font-size:var(--h2-size);letter-spacing:-.0175em;margin-top:5.5rem;line-height:1.02}.case-body h2:before{counter-increment:section;content:counter(section, decimal-leading-zero);letter-spacing:0;color:var(--accent);margin-bottom:.875rem;font-size:.875rem;font-weight:700;display:block}.case-body>:first-child{margin-top:0}.case-figure,.case-diagram{margin:2.5rem 0}.case-figure{width:min(100%, var(--fit), var(--natural,100%));margin-inline:auto}.case-figure.wide{--wide:min(var(--max), 100vw - 2 * var(--gutter), var(--fit))}.case-figure img,.frames img{width:100%;box-shadow:0 0 0 var(--rule) var(--line);background:#000}.case-figure figcaption{max-width:42.5rem}.gallery,.gallery-three{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem;display:grid}.gallery-three{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery>div p,.gallery-three>div p{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:.5rem;font-size:.68rem}.frames{margin:3rem 0}.case-body .frames ol{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));gap:1.5rem .875rem;margin:0;padding:0;list-style:none;display:grid}.case-body .frames li+li{margin-top:0}.frames img{aspect-ratio:16/9;object-fit:cover}.frames li p{color:var(--muted);margin-top:.625rem;font-size:.8rem;line-height:1.5}.frames li p span{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.1875rem;font-size:.66rem;display:block}.frames figcaption{max-width:42.5rem}.case-body figure>figcaption:first-child{margin:0 0 .875rem}.case-body blockquote.pull{border:0;border-left:var(--rule) solid var(--line-strong);text-box:trim-both cap alphabetic;max-width:none;margin:2.25rem 0;padding:0 0 0 1.25rem}.pull p{font-size:clamp(1.15rem,1.5vw,1.3rem);line-height:1.45}.case-body .pull p{text-wrap:pretty}.case-body .inline-quote{font-family:var(--quote);font-variation-settings:var(--quote-axes);font-weight:300}.case-body .pull p:before,.case-body .pull p:after{content:none}.pull footer{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:.875rem;font-size:.7rem}.case-glance-label,.case-glance-decisions h3,.case-stack-label,.case-models-label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.7rem;line-height:1.6;display:block}.case-decision{--line:calc(1.0625rem * 1.7);margin:2.5rem 0}.case-decision dl{background:radial-gradient(circle closest-side, var(--dot-color) 85%, transparent) left bottom / var(--dot-step) var(--dot-size) repeat-x;margin:0}.case-decision dl>div{background:var(--dotted-rule-fine);padding:.875rem 0;position:relative}.case-decision dt{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:.25rem;font-size:.7rem;line-height:1.6rem}.case-decision dd{font-size:inherit;line-height:var(--line);color:var(--ink-soft);margin:0}.case-decision>:not(dl){margin:1rem 0 0}@media (width>=1100px){.case-decision dl>div{align-items:baseline;display:flex}.case-decision dt{text-align:right;white-space:nowrap;flex:none;width:6rem;margin:0 1rem 0 -7rem}.case-decision dd{flex:1}}.case-stats{grid-template-columns:repeat(auto-fit,minmax(9.375rem,1fr));gap:.75rem;margin:2.5rem 0;list-style:none;display:grid;padding:0!important}.case-stats li{background:var(--surface);border-radius:var(--radius-media);corner-shape:var(--corner-shape,round);margin:0;padding:1.25rem 1.25rem 1.375rem}@media (width<=760px){.case-stats li{padding:1rem}.case-stats,.case-glance .case-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}}.case-stats strong{letter-spacing:-.0225em;color:var(--ink);font-size:clamp(2rem,4vw,2.75rem);font-weight:900;line-height:1;display:block}.case-stats span{color:var(--muted);margin-top:.625rem;font-size:.8rem;line-height:1.45;display:block}.case-timeline{--dot:.4375rem;--dot-y:.4375rem;--dot-gap:.375rem;margin:1.25rem 0 3.5rem;list-style:none;padding:0!important}.case-body .case-timeline li{color:var(--muted);margin:0;padding:0 0 1.75rem 1.75rem;font-size:.92rem;line-height:1.55;position:relative}.case-body .case-timeline li:last-child{padding-bottom:0}.case-timeline li:before{content:"";left:calc(var(--dot) / 2 - var(--rule) / 2);top:calc(var(--dot-y) + var(--dot) / 2 + var(--dot-gap));bottom:calc(var(--dot-gap) - var(--dot-y) + var(--dot) / 2);width:var(--rule);background:var(--line-strong);position:absolute}.case-timeline li:last-child:before{content:none}.case-timeline li:after{content:"";left:0;top:calc(var(--dot-y) - var(--dot) / 2);width:var(--dot);height:var(--dot);background:var(--accent);border-radius:50%;position:absolute}.case-timeline time{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:.7rem;line-height:.875rem;display:block}.case-timeline strong{color:var(--ink);margin-top:.375rem;font-size:1rem;font-weight:600;line-height:1.45;display:block}@media (width>=1100px){.case-timeline{--dot-y:.725rem}.case-timeline time{right:calc(100% + 1rem);top:calc(var(--dot-y) - .4375rem);white-space:nowrap;position:absolute}.case-timeline strong{margin-top:0}.case-body h2:before{box-sizing:border-box;text-align:right;width:4rem;vertical-align:calc(var(--h2-size) * .727 - .727em);margin:0 0 0 -4rem;padding-right:1rem;display:inline-block}}.case-diagram{flex-direction:column;display:flex;container:diagram/inline-size}.case-diagram>figcaption{order:-1;margin:0 0 1rem}.diagram{--link-gap:2.5rem;--link-color:var(--faint)}.case-diagram figcaption{max-width:42.5rem}.case-body .diagram :is(ol,p){margin:0}:is(.flow-step,.diagram-node){background:var(--surface-2);border-radius:var(--radius-media-round);corner-shape:var(--corner-shape,round);flex-direction:column;gap:.375rem;padding:1.25rem 1.375rem 1.375rem;display:flex}:is(.flow-step,.diagram-node) strong{color:var(--ink);font-size:1rem;font-weight:600;line-height:1.3}.diagram-label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:.66rem}.diagram-label:empty{display:none}.diagram-text{color:var(--muted);font-size:.8rem;line-height:1.5}.case-body .flow{column-gap:var(--link-gap);counter-reset:step;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:0;list-style:none;display:grid}.case-body .flow-step{counter-increment:step;margin:0;position:relative}.flow-step:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);color:var(--faint);font-size:.66rem}.flow-step+.flow-step:after{content:"";width:calc(var(--link-gap) - 1rem);background:var(--link-color);height:.875rem;mask:url(/_astro/arrow-head-right.oJ05foF9.svg) right center / .5rem .875rem no-repeat, linear-gradient(#000 0 0) left center / calc(100% - .125rem) var(--rule) no-repeat;position:absolute;top:50%;right:calc(100% + .5rem);transform:translateY(-50%)}@container diagram (width<46rem){.case-body .flow{row-gap:var(--link-gap);grid-auto-flow:row}.flow-step+.flow-step:after{width:.875rem;height:calc(var(--link-gap) - 1rem);mask:url(/_astro/arrow-head-down.BuNGwC81.svg) center bottom / .875rem .5rem no-repeat, linear-gradient(#000 0 0) center top / var(--rule) calc(100% - .125rem) no-repeat;inset:auto auto calc(100% + .5rem) 50%;transform:translate(-50%)}}@container diagram (46rem<=width<58rem){.case-body .flow:has(>:nth-child(5)){row-gap:var(--link-gap);grid-auto-flow:row}.flow:has(>:nth-child(5))>.flow-step+.flow-step:after{width:.875rem;height:calc(var(--link-gap) - 1rem);mask:url(/_astro/arrow-head-down.BuNGwC81.svg) center bottom / .875rem .5rem no-repeat, linear-gradient(#000 0 0) center top / var(--rule) calc(100% - .125rem) no-repeat;inset:auto auto calc(100% + .5rem) 50%;transform:translate(-50%)}}.case-body .flow-note{border:var(--rule) dashed var(--line-strong);border-radius:var(--radius-media-round);corner-shape:var(--corner-shape,round);color:var(--muted);align-items:baseline;gap:.75rem;margin-top:1rem;padding:1rem 1.375rem;font-size:.8rem;line-height:1.5;display:flex}.case-body .flow-note p{font:inherit;color:inherit;margin:0}.flow-note b{color:var(--accent);flex:none;font-size:1rem;font-weight:400}.diagram-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.75rem;display:grid}.diagram-node.is-core{background:var(--diagram-core)}.diagram-node.is-external{background:var(--diagram-accounting)}.diagram-link{height:var(--link-gap);justify-content:center;align-items:center;display:flex;position:relative}.diagram-link:before{content:"";background:var(--link-color);width:.875rem;mask:url(/_astro/arrow-head-down.BuNGwC81.svg) center bottom / .875rem .5rem no-repeat, linear-gradient(#000 0 0) center top / var(--rule) calc(100% - .125rem) no-repeat;position:absolute;inset:.375rem auto .375rem 50%;transform:translate(-50%)}.diagram-link.is-up:before{mask:url(/_astro/arrow-head-up.DZXwcDBu.svg) center top / .875rem .5rem no-repeat, linear-gradient(#000 0 0) center bottom / var(--rule) calc(100% - .125rem) no-repeat}.diagram-link.is-both:before{mask:url(/_astro/arrow-head-up.DZXwcDBu.svg) center top / .875rem .5rem no-repeat, url(/_astro/arrow-head-down.BuNGwC81.svg) center bottom / .875rem .5rem no-repeat, linear-gradient(#000 0 0) center / var(--rule) calc(100% - .25rem) no-repeat}.diagram-link span{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--muted);font-size:.66rem;position:absolute;top:50%;left:calc(50% + .875rem);transform:translateY(-50%)}@media (width<=760px){.project-intro{padding-block:2rem}.case-summary,.case-cover{margin-bottom:2.25rem}.case-body h2{margin-top:4rem;font-size:1.75rem}.pull p{font-size:1.125rem}.gallery,.gallery-three{grid-template-columns:1fr}.case-body .frames ol{--cols:2}}.view-link{border:var(--rule) solid var(--line-strong);border-radius:var(--radius);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;vertical-align:1px;corner-shape:var(--corner-shape,round);align-items:center;gap:.375rem;padding:.1875rem .625rem;font-size:.66rem;text-decoration:none;display:inline-flex}.view-link:hover{border-color:var(--accent);color:var(--accent)}.case-figure:has(>.view-link),.gallery>div:has(>.view-link),.frames li:has(>.view-link){position:relative}.view-link.is-overlay{z-index:1;backdrop-filter:blur(.5rem);color:#fff;vertical-align:baseline;background:#0000009e;border-color:#ffffff29;border-radius:999px;padding:.3125rem .75rem;position:absolute;top:.75rem;right:.75rem}:is(.case-cover img,.case-figure img,.frames img){border-radius:var(--radius-media);corner-shape:var(--corner-shape,round)}.case-body figcaption p{font:inherit;line-height:inherit}.case-timeline li>div>p{font:inherit;line-height:inherit;display:inline}.case-body>:is(.wide,.frames,compare-frames,.case-stats,.case-diagram:not(.is-narrow),story-demo){--shown:min(var(--wide), var(--natural,var(--wide)));left:calc(50% - var(--shown) / 2);width:var(--shown);max-width:none;position:relative}compare-frames{display:block}.compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid;position:relative}.compare img{width:100%;box-shadow:0 0 0 var(--rule) var(--line);background:#000}.compare.is-interactive{box-shadow:0 0 0 var(--rule) var(--line);touch-action:pan-y;display:block;overflow:hidden}.compare.is-interactive img{box-shadow:none}.compare.is-interactive img+img{object-fit:cover;height:100%;clip-path:inset(0 0 0 var(--split,50%));position:absolute;inset:0}.compare input{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.compare-handle{top:0;bottom:0;left:var(--split,50%);width:var(--rule);margin-left:calc(var(--rule) / -2);pointer-events:none;background:#fff;position:absolute;box-shadow:0 0 .75rem #0009}.compare-handle:after{content:"";background:#fff;border-radius:.6875rem;width:2rem;height:2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .25rem 1.125rem #0008}@supports (corner-shape:superellipse(1.5)){.compare-handle:after{corner-shape:superellipse(1.5);border-radius:50%}}.compare-handle:before{content:"";z-index:1;background:#111;width:1rem;height:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask:url(/_astro/compare.CsfbrvU7.svg) 50%/contain no-repeat;mask:url(/_astro/compare.CsfbrvU7.svg) 50%/contain no-repeat}.compare:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:.25rem}.compare-label{border-radius:var(--radius-xs);font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#fff;pointer-events:none;corner-shape:var(--corner-shape,round);background:#000a;padding:.25rem .5rem;font-size:.66rem;position:absolute;bottom:.75rem}.compare-label.before{left:.75rem}.compare-label.after{right:.75rem}@media (width<=760px){.compare-handle:after{width:1.75rem;height:1.75rem}}.compare img,.compare.is-interactive{border-radius:var(--radius-media);corner-shape:var(--corner-shape,round)}}
