@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_c15e96cb-module__0bjUvq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_c15e96cb-module__0bjUvq__variable{--font-inter:"Inter", "Inter Fallback"}
@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading: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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--tracking-tight:-.025em;--leading-tight:var(--leading-tight);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:var(--ease-out);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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);--leading-body:var(--leading-body)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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]){-webkit-text-decoration:underline dotted;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;-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:where(:not(iframe)){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{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.mx-auto{margin-inline:auto}.mt-\[var\(--space-s\)\]{margin-top:var(--space-s)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.min-h-dvh{min-height:100dvh}.w-full{width:100%}.max-w-intro{max-width:var(--measure-intro)}.max-w-layout{max-width:var(--layout-max)}.max-w-media{max-width:var(--media-width)}.max-w-project{max-width:var(--layout-project)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.gap-\[var\(--aside-gap\)\]{gap:var(--aside-gap)}.gap-\[var\(--column-gap\)\]{gap:var(--column-gap)}.gap-\[var\(--space-l\)\]{gap:var(--space-l)}.gap-\[var\(--space-m\)\]{gap:var(--space-m)}.self-start{align-self:flex-start}.border{border-style:var(--tw-border-style);border-width:1px}.px-\[var\(--gutter\)\]{padding-inline:var(--gutter)}.py-\[var\(--space-2xl\)\]{padding-block:var(--space-2xl)}.pt-\[var\(--header-top\)\]{padding-top:var(--header-top)}.pt-\[var\(--project-offset-fluid\)\]{padding-top:var(--project-offset-fluid)}.pt-\[var\(--project-top-fluid\)\]{padding-top:var(--project-top-fluid)}.pt-\[var\(--space-2xl\)\]{padding-top:var(--space-2xl)}.pt-\[var\(--space-xl\)\]{padding-top:var(--space-xl)}.pb-\[var\(--project-end-fluid\)\]{padding-bottom:var(--project-end-fluid)}.pb-\[var\(--space-2xl\)\]{padding-bottom:var(--space-2xl)}.text-step-intro{font-size:var(--step-intro)}.text-step-name{font-size:var(--step-name)}.text-step-year{font-size:var(--step-year)}.leading-\[var\(--leading-tight\)\]{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.leading-\[var\(--leading-year\)\]{--tw-leading:var(--leading-year);line-height:var(--leading-year)}.text-inherit{color:inherit}.text-ink{color:var(--ink)}.text-muted{color:var(--muted)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (min-width:48rem){.md\:flex-row{flex-direction:row}.md\:justify-between{justify-content:space-between}.md\:gap-\[var\(--column-gap\)\]{gap:var(--column-gap)}.md\:pt-\[var\(--intro-offset\)\]{padding-top:var(--intro-offset)}}}:root{--canvas:#fdfdfc;--ink:#222;--muted:#757575;--muted-figma:#969696;--muted-figma-body:#838383;--rule:#e8e8e6;--placeholder:#d9d9d9;--chip:#efefed;--focus:#222;--font-sans:"Helvetica Neue", var(--font-inter), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-bold:700;--step--1:clamp(.8125rem, .752rem + .248vw, .9375rem);--step-0:clamp(1.0625rem, .9256rem + .5618vw, 1.375rem);--step-1:clamp(1.375rem, 1.156rem + .899vw, 1.875rem);--step-2:clamp(1.75rem, 1.31rem + 1.798vw, 2.75rem);--step-3:clamp(2.25rem, 1.59rem + 2.697vw, 3.75rem);--step-name:clamp(1.5rem, 1.1906rem + 1.2697vw, 2.20625rem);--step-year:1.125rem;--step-nav:1.0875rem;--step-intro:1rem;--step-section:1.125rem;--step-subnav:.8125rem;--leading-subnav:1.2;--tracking-tight:-.04px;--leading-tight:1.21;--leading-year:1.78;--leading-body:1.55;--paragraph-gap:1.2em;--contact-gap:2.4em;--layout-max:59.4375rem;--header-top:5.125rem;--measure-intro:25.25rem;--media-width:28.125rem;--media-ratio:450 / 320;--column-gap:4.0625rem;--intro-offset:8.125rem;--layout-project:57.3125rem;--aside-gap:1.875rem;--subnav-gap:.5rem;--project-offset:5.3125rem;--project-top-fluid:clamp(1.5rem, 9.86vh, 5.125rem);--project-offset-fluid:clamp(1.5rem, 10.22vh, 5.3125rem);--project-end-fluid:clamp(1rem, 4vh, 2.5rem);--back-row:1.375rem;--toggle-clearance:3.25rem;--project-gap:1.5rem;--phone-width:13.0313rem;--phone-ratio:402 / 874;--phone-device-width:402px;--phone-device-height:874px;--phone-scale:.51866;--phone-bezel-ratio:.03837;--phone-screen-radius-ratio:.15348;--phone-island-width-ratio:.31175;--phone-island-height-ratio:.09113;--phone-island-top-ratio:.02878;--phone-button-depth-ratio:.0096;--browser-device-width:1280px;--browser-device-height:800px;--browser-inline-scale:.35;--browser-bar:1.5rem;--browser-radius:.625rem;--browser-frame:#e4e4e1;--browser-dot:#c9c9c5;--field-line:var(--muted);--field-gap:1rem;--error:#b3261e;--phone-body:#0b0b0c;--phone-rim:#3a3a3d;--phone-button:#1d1d20;--nav-pad:.15em;--measure-prose:34rem;--space-2xs:.25rem;--space-xs:.5rem;--space-s:1rem;--space-m:1.5rem;--space-l:2.5rem;--space-xl:4rem;--space-2xl:6rem;--space-3xl:9rem;--gutter:clamp(1.5rem, 1.09rem + 1.685vw, 2.5rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.18s;--dur-base:.42s;--dur-slow:.9s;--appear-dur:.8s;--appear-rise:6px;--appear-blur:4px;--appear-step:35ms;--underline-dur:.38s;--underline-soft:var(--ink)}@supports (color:color-mix(in lab, red, red)){:root{--underline-soft:color-mix(in srgb, var(--ink) 30%, var(--canvas))}}:root{--cursor-size:36px;--cursor-offset-x:20px;--cursor-offset-y:10px;--cursor-rest-scale:1;--cursor-rest-turn:0deg;--cursor-open-scale:1;--cursor-open-turn:0deg;--cursor-bloom-dur:.3s;--cursor-fold-dur:.24s;--cursor-fade-dur:.14s;--cursor-fade-delay:.18s;--cursor-frames:6;--cursor-ease:cubic-bezier(.19, 1, .22, 1)}html{-webkit-text-size-adjust:100%;scroll-padding-block-start:var(--space-xl)}body{background-color:var(--canvas);color:var(--muted);font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:var(--step-0);line-height:var(--leading-tight);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}strong{color:var(--ink);font-weight:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{z-index:50;padding:var(--space-xs) var(--space-s);background:var(--canvas);color:var(--ink);font-size:var(--step--1);transition:transform var(--dur-fast) var(--ease-out);position:absolute;inset-block-start:var(--space-s);inset-inline-start:var(--gutter);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}@keyframes reveal{0%{opacity:0;filter:blur(var(--appear-blur));transform:translateY(var(--appear-rise))}to{opacity:1;filter:none;transform:none}}.reveal{animation:reveal var(--appear-dur) var(--ease-out) backwards;animation-delay:var(--reveal-delay,calc(var(--reveal-i,0) * var(--appear-step)))}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}.ink-link,.site-nav a{white-space:nowrap;text-decoration:none;display:inline-block;position:relative}.ink-link{color:var(--ink)}.ink-link:before,.ink-link:after,.site-nav a:after{content:"";pointer-events:none;block-size:1px;position:absolute;inset-block-end:0;inset-inline:0}.ink-link:before{background:var(--underline-soft)}.ink-link:after,.site-nav a:after{background:var(--ink);transform-origin:0;transition:transform var(--underline-dur) var(--ease-out);transform:scaleX(0)}.ink-link:hover:after,.ink-link:focus-visible:after,.site-nav a:hover:after,.site-nav a:focus-visible:after{transform:scaleX(1)}.intro{font-size:var(--step-intro);font-weight:var(--weight-light);line-height:var(--leading-tight)}.intro>p+p{margin-block-start:var(--paragraph-gap)}.intro strong{font-weight:inherit}.contact{margin:var(--contact-gap) 0 0;padding:0;list-style:none}.contact a{color:var(--muted);transition:color var(--dur-fast) var(--ease-out);display:inline-block;position:relative}.contact a:after{content:"";background:var(--ink);transform-origin:0;block-size:1px;transition:transform var(--underline-dur) var(--ease-out);pointer-events:none;position:absolute;inset-block-end:0;inset-inline:0;transform:scaleX(0)}.contact a:hover,.contact a:focus-visible{color:var(--ink)}.contact a:hover:after,.contact a:focus-visible:after{transform:scaleX(1)}.site-nav{font-size:var(--step-nav);line-height:var(--leading-tight)}.site-nav ul{flex-direction:column;align-items:flex-end;margin:0;padding:0;list-style:none;display:flex}.site-nav a{padding-block:var(--nav-pad);margin-block:calc(var(--nav-pad) * -1);color:var(--muted);transition:color var(--dur-fast) var(--ease-out);display:inline-block}.site-nav a:after{inset-block-end:var(--nav-pad)}.site-nav a[aria-current=page],.site-nav a:hover,.site-nav a:focus-visible{color:var(--ink)}@media (pointer:coarse){.site-nav ul{gap:.6em}.site-nav{--nav-pad:.45em}}.intro-media{aspect-ratio:var(--media-ratio);background:var(--placeholder);overflow:hidden}.intro-media img{object-fit:cover;block-size:100%;inline-size:100%;display:block}@media (any-pointer:fine){body{cursor:url(/cursor/flower-40.png) 20 20,auto;cursor:image-set(url(/cursor/flower-40.png) 1x, url(/cursor/flower-80.png) 2x) 20 20, auto}a{cursor:url(/cursor/flower-bloom-56.png) 28 28,pointer;cursor:image-set(url(/cursor/flower-bloom-56.png) 1x, url(/cursor/flower-bloom-112.png) 2x) 28 28, pointer}}@media (prefers-contrast:more){body{cursor:auto}a{cursor:pointer}}:root[data-cursor=custom] body{cursor:auto}:root[data-cursor=custom] :is(a,button,summary,label,.demo-switch input){cursor:pointer}.cursor-root{z-index:9999;opacity:0;pointer-events:none;will-change:transform;position:fixed;inset-block-start:0;inset-inline-start:0}:root:has(.phone:hover,.browser:hover) .cursor-root{visibility:hidden}:root[data-cursor=custom] :is(.phone,.browser){cursor:auto}.cursor-flower{transform:scale(var(--cursor-rest-scale)) rotate(var(--cursor-rest-turn));transform-origin:50%;opacity:0;transition:transform var(--cursor-fold-dur) var(--cursor-ease), opacity var(--cursor-fade-dur) var(--ease-out) var(--cursor-fade-delay);will-change:transform, opacity}.cursor-flower[data-bloom]{transform:scale(var(--cursor-open-scale)) rotate(var(--cursor-open-turn));opacity:1;transition:transform var(--cursor-bloom-dur) var(--cursor-ease), opacity var(--cursor-fade-dur) var(--ease-out)}.cursor-frames{inline-size:var(--cursor-size);block-size:var(--cursor-size);background-image:url(/cursor/bloom-strip.png);background-repeat:no-repeat;background-size:calc(var(--cursor-frames) * 100%) 100%;transition:background-position var(--cursor-fold-dur) steps(5, end);background-position:0 0;display:block}.cursor-flower[data-bloom] .cursor-frames{transition-duration:var(--cursor-bloom-dur);background-position:100% 0}.back-link{border-radius:2px;inline-size:fit-content;margin:-1px -5px;padding:5px;display:inline-flex}.back-link img{transition:transform var(--dur-fast) var(--ease-out)}.back-link:hover img,.back-link:focus-visible img{transform:translate(-2px)}.project-nav{font-size:var(--step-subnav);line-height:var(--leading-subnav);letter-spacing:var(--tracking-tight)}.project-nav ul{align-items:flex-start;gap:var(--subnav-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-nav a{white-space:nowrap;color:var(--muted);transition:color var(--dur-fast) var(--ease-out);display:inline-block;position:relative}.project-nav a[aria-current=page]{color:var(--ink);font-weight:var(--weight-medium)}.project-nav a:hover,.project-nav a:focus-visible{color:var(--ink)}.project-nav a:after{content:"";background:var(--ink);transform-origin:0;block-size:1px;transition:transform var(--underline-dur) var(--ease-out);pointer-events:none;position:absolute;inset-block-end:-2px;inset-inline:0;transform:scaleX(0)}.project-nav a:hover:after,.project-nav a:focus-visible:after{transform:scaleX(1)}@media (pointer:coarse){.project-nav ul{gap:0}.project-nav a{padding-block:.75em}}.section-title{font-size:var(--step-section);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--muted)}.project-copy{gap:var(--project-gap);font-size:var(--step-intro);font-weight:var(--weight-light);line-height:var(--leading-tight);flex-direction:column;display:flex}.project-copy h2{font-weight:var(--weight-bold)}.phone{--phone-screen-w:calc(var(--phone-device-width) * var(--phone-scale));--phone-bezel:calc(var(--phone-screen-w) * var(--phone-bezel-ratio));--phone-screen-radius:calc(var(--phone-screen-w) * var(--phone-screen-radius-ratio));--phone-body-radius:calc(var(--phone-screen-radius) + var(--phone-bezel));--phone-island-width:calc(var(--phone-screen-w) * var(--phone-island-width-ratio));--phone-island-height:calc(var(--phone-screen-w) * var(--phone-island-height-ratio));--phone-island-top:calc(var(--phone-screen-w) * var(--phone-island-top-ratio));--phone-button-depth:max(2px, calc(var(--phone-screen-w) * var(--phone-button-depth-ratio)));padding:var(--phone-bezel);background:var(--phone-body);border-radius:var(--phone-body-radius);box-shadow:inset 0 0 0 1px var(--phone-rim), inset 0 0 0 2px var(--phone-body);position:relative}.phone--play{--phone-scale:.4}@media (min-height:520px) and (min-width:283px){.phone--play{--phone-scale:.45}}@media (min-height:565px) and (min-width:305px){.phone--play{--phone-scale:.5}}@media (min-height:610px) and (min-width:327px){.phone--play{--phone-scale:.55}}@media (min-height:655px) and (min-width:348px){.phone--play{--phone-scale:.6}}@media (min-height:701px) and (min-width:370px){.phone--play{--phone-scale:.65}}@media (min-height:746px) and (min-width:392px){.phone--play{--phone-scale:.7}}@media (min-height:791px) and (min-width:413px){.phone--play{--phone-scale:.75}}@media (min-height:836px) and (min-width:435px){.phone--play{--phone-scale:.8}}@media (min-height:882px) and (min-width:457px){.phone--play{--phone-scale:.85}}@media (min-height:927px) and (min-width:478px){.phone--play{--phone-scale:.9}}@media (min-height:972px) and (min-width:500px){.phone--play{--phone-scale:.95}}@media (min-height:1017px) and (min-width:521px){.phone--play{--phone-scale:1}}.phone-screen{inline-size:var(--phone-screen-w);max-inline-size:100%;aspect-ratio:var(--phone-ratio);border-radius:var(--phone-screen-radius);background:var(--placeholder);isolation:isolate;overflow:hidden}.phone-screen img{object-fit:cover}.phone-island{inline-size:var(--phone-island-width);block-size:var(--phone-island-height);border-radius:calc(var(--phone-island-height) / 2);background:var(--phone-body);pointer-events:none;position:absolute;inset-block-start:var(--phone-island-top);inset-inline-start:50%;translate:-50%}.phone-button{inline-size:var(--phone-button-depth);background:var(--phone-button);position:absolute}.phone-button--action,.phone-button--volume-up,.phone-button--volume-down{border-radius:1px 0 0 1px;inset-inline-start:calc(var(--phone-button-depth) * -1)}.phone-button--power,.phone-button--camera{border-radius:0 1px 1px 0;inset-inline-end:calc(var(--phone-button-depth) * -1)}.phone-button--action{block-size:5%;inset-block-start:18%}.phone-button--volume-up{block-size:9%;inset-block-start:26%}.phone-button--volume-down{block-size:9%;inset-block-start:37%}.phone-button--power{block-size:14%;inset-block-start:28%}.phone-button--camera{block-size:8%;inset-block-start:58%}.phone-device{inline-size:var(--phone-device-width);block-size:var(--phone-device-height);transform:scale(var(--phone-scale));transform-origin:0 0;background:var(--canvas);border:0;position:absolute;inset-block-start:0;inset-inline-start:0}.phone-stack{align-items:center;gap:var(--space-s);flex-direction:column;display:flex}.play-button,.play-close{align-items:center;gap:var(--space-xs);font:inherit;font-size:var(--step-subnav);color:var(--ink);background:var(--chip);transition:background var(--dur-fast) var(--ease-out);border:0;border-radius:999px;padding:.5rem .875rem;display:inline-flex}.play-button:hover,.play-button:focus-visible,.play-close:hover,.play-close:focus-visible{background:var(--placeholder)}.play{align-items:flex-end;gap:var(--space-s);background:0 0;border:0;flex-direction:column;block-size:fit-content;max-block-size:100dvh;inline-size:fit-content;max-inline-size:100vw;margin:auto;padding:0;position:fixed;inset:0;overflow:visible}.play:popover-open{display:flex}.play::backdrop{background:var(--canvas)}@supports (color:color-mix(in lab, red, red)){.play::backdrop{background:color-mix(in srgb, var(--canvas) 88%, transparent)}}.play::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.play,.play::backdrop{transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), display var(--dur-base) allow-discrete, overlay var(--dur-base) allow-discrete}@starting-style{.play:popover-open{opacity:0;transform:translateY(var(--appear-rise)) scale(.98)}.play:popover-open::backdrop{opacity:0}}@media (prefers-reduced-motion:reduce){.play,.play::backdrop{transition:none}}:root:has(.play:popover-open){overflow:hidden}:root:has(.play:popover-open) .cursor-root{visibility:hidden}:root[data-cursor=custom]:has(.play:popover-open) body{cursor:auto}:root[data-cursor=custom]:has(.play:popover-open) :is(a,button){cursor:pointer}.browser{--browser-scale:var(--browser-inline-scale);--browser-screen-w:calc(var(--browser-device-width) * var(--browser-scale));border:1px solid var(--browser-frame);border-radius:var(--browser-radius);background:var(--canvas);margin:0;overflow:hidden}.browser-bar{block-size:var(--browser-bar);background:var(--browser-frame);align-items:center;gap:.375rem;padding-inline:.625rem;display:flex}.browser-dot{background:var(--browser-dot);border-radius:50%;block-size:.5rem;inline-size:.5rem}.browser-screen{inline-size:var(--browser-screen-w);aspect-ratio:1280/800;isolation:isolate;max-inline-size:100%;position:relative;overflow:hidden}.browser-device{inline-size:var(--browser-device-width);block-size:var(--browser-device-height);transform:scale(var(--browser-scale));transform-origin:0 0;border:0;position:absolute;inset-block-start:0;inset-inline-start:0}.demo-scope .browser-view{display:none}.demo-scope:not(:has(.demo-switch)) .browser-view{display:block}.demo-scope:has(.demo-switch input[value="0"]:checked) .browser-view[data-demo="0"]{display:block}.demo-scope:has(.demo-switch input[value="1"]:checked) .browser-view[data-demo="1"]{display:block}.demo-scope:has(.demo-switch input[value="2"]:checked) .browser-view[data-demo="2"]{display:block}.demo-scope:has(.demo-switch input[value="3"]:checked) .browser-view[data-demo="3"]{display:block}.media-actions{justify-content:space-between;align-items:center;gap:var(--space-s);margin-block-start:var(--space-s);display:flex}.web-media .media-actions .play-button{order:0;margin-inline-start:auto}.demo-switch{background:var(--chip);font-size:var(--step-subnav);border:0;border-radius:999px;gap:2px;margin:0;padding:2px;display:inline-flex}.demo-switch label{color:var(--muted);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-radius:999px;padding:.375rem .75rem;position:relative}.demo-switch input{opacity:0;margin:0;position:absolute;inset:0}.demo-switch label:has(input:checked){background:var(--canvas);color:var(--ink)}.demo-switch label:hover{color:var(--ink)}.demo-switch label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}@media (any-pointer:fine){.demo-switch label,.demo-switch input{cursor:url(/cursor/flower-bloom-56.png) 28 28,pointer}}.web-media{flex-direction:column}@media (min-width:48rem){.project-media.web-media{flex-direction:column;align-items:stretch}}.play-body{gap:var(--space-s);flex-direction:column;display:flex}.play-head{justify-content:space-between;align-items:center;gap:var(--space-s);display:flex}.play-head .play-close{margin-inline-start:auto}.browser--play{--browser-scale:.35}@media (min-width:593px) and (min-height:466px){.browser--play{--browser-scale:.4}}@media (min-width:657px) and (min-height:506px){.browser--play{--browser-scale:.45}}@media (min-width:721px) and (min-height:546px){.browser--play{--browser-scale:.5}}@media (min-width:786px) and (min-height:586px){.browser--play{--browser-scale:.55}}@media (min-width:850px) and (min-height:626px){.browser--play{--browser-scale:.6}}@media (min-width:914px) and (min-height:666px){.browser--play{--browser-scale:.65}}@media (min-width:978px) and (min-height:706px){.browser--play{--browser-scale:.7}}@media (min-width:1042px) and (min-height:746px){.browser--play{--browser-scale:.75}}@media (min-width:1106px) and (min-height:786px){.browser--play{--browser-scale:.8}}@media (min-width:1170px) and (min-height:826px){.browser--play{--browser-scale:.85}}@media (min-width:1234px) and (min-height:866px){.browser--play{--browser-scale:.9}}@media (min-width:1298px) and (min-height:906px){.browser--play{--browser-scale:.95}}@media (min-width:1362px) and (min-height:946px){.browser--play{--browser-scale:1}}@media (min-width:48rem){.project-media{flex-direction:row;align-items:flex-end;margin-inline-end:max(0px, var(--toggle-clearance) - max(0px, (100vw - 2 * var(--gutter) - var(--layout-project)) / 2))}.project-media .play-button{order:-1}}@media (max-width:47.99rem){.project-media>.phone,.web-media>.demo-scope .browser,.web-media>.demo-scope .demo-switch{display:none}.web-media .media-actions{margin-block-start:0}}@media (min-width:48rem) and (max-height:800.98px){.project-media{--title-row:calc(var(--step-section) * var(--leading-tight));margin-block-start:calc(var(--title-row) + var(--space-s) - var(--back-row) - var(--aside-gap) - var(--project-count) * var(--step-subnav) * var(--leading-subnav) - (var(--project-count) - 1) * var(--subnav-gap) - var(--project-offset-fluid))}.project-media>.phone{--phone-scale:.32}}@media (min-width:48rem) and (min-height:423px) and (max-height:800.98px){.project-media>.phone{--phone-scale:.36}}@media (min-width:48rem) and (min-height:465px) and (max-height:800.98px){.project-media>.phone{--phone-scale:.4}}@media (min-width:48rem) and (min-height:507px) and (max-height:800.98px){.project-media>.phone{--phone-scale:.44}}@media (min-width:48rem) and (min-height:549px) and (max-height:800.98px){.project-media>.phone{--phone-scale:.48}}@media (min-width:48rem) and (min-height:589px) and (max-height:800.98px){.project-media>.phone{--phone-scale:.51866}}@media (max-width:47.99rem){.play{background:var(--canvas);block-size:100dvh;max-block-size:none;inline-size:100vw;inset:0}.play .phone{box-shadow:none;background:0 0;border-radius:0;padding:0}.play .phone-button,.play .phone-island{display:none}.play .phone-screen{aspect-ratio:auto;border-radius:0;block-size:100dvh;inline-size:100vw;max-inline-size:none}.play .phone-device{block-size:100%;inline-size:100%;transform:none}.play .browser{border:0;border-radius:0}.play .browser-bar{display:none}.play .browser-screen{aspect-ratio:auto;block-size:100dvh;inline-size:100vw;max-inline-size:none}.play .browser-device{block-size:100%;inline-size:100%;transform:none}.play-head{z-index:1;inset-block-start:calc(env(safe-area-inset-top) + var(--space-xs));inset-inline:var(--space-s);position:absolute}.play-head .play-close{position:static}.play-body{gap:0}.play-close{z-index:1;box-shadow:0 1px 6px var(--ink);position:absolute;inset-block-start:calc(env(safe-area-inset-top) + var(--space-xs));inset-inline-end:var(--space-s)}@supports (color:color-mix(in lab, red, red)){.play-close{box-shadow:0 1px 6px color-mix(in srgb, var(--ink) 18%, transparent)}}}.request-toggle{color:var(--ink);list-style:none;display:inline-block;position:relative}.request-toggle::-webkit-details-marker{display:none}.request-toggle:before,.request-toggle:after{content:"";pointer-events:none;block-size:1px;position:absolute;inset-block-end:0;inset-inline:0}.request-toggle:before{background:var(--underline-soft)}.request-toggle:after{background:var(--ink);transform-origin:0;transition:transform var(--underline-dur) var(--ease-out);transform:scaleX(0)}.request-toggle:hover:after,.request-toggle:focus-visible:after,.request[open] .request-toggle:after{transform:scaleX(1)}@media (any-pointer:fine){.request-toggle{cursor:url(/cursor/flower-bloom-56.png) 28 28,pointer}}.request-form{gap:var(--field-gap);flex-direction:column;margin-block-start:var(--project-gap);display:flex}.request-field{gap:var(--space-2xs);flex-direction:column;display:flex}.request-field label{color:var(--muted)}.request-field input,.request-field textarea{font:inherit;font-size:var(--step-intro);color:var(--ink);border:0;border-block-end:1px solid var(--field-line);padding-block:var(--space-2xs);resize:vertical;transition:border-color var(--dur-fast) var(--ease-out);background:0 0;border-radius:0}.request-field input:focus-visible,.request-field textarea:focus-visible{border-block-end-color:var(--ink);box-shadow:0 1px 0 0 var(--ink);outline:none}.request-field textarea::placeholder{color:var(--muted);opacity:1}.request-field [aria-invalid=true]{border-block-end-color:var(--error)}.request-error{color:var(--error)}.request-result{color:var(--ink);margin-block-start:var(--project-gap)}.request-submit{font:inherit;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--underline-soft);-webkit-text-decoration-color:var(--underline-soft);-webkit-text-decoration-color:var(--underline-soft);text-decoration-color:var(--underline-soft);text-underline-offset:.18em;transition:text-decoration-color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-self:flex-start;padding:0}.request-submit:hover,.request-submit:focus-visible{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.request-submit:disabled{color:var(--muted)}.request-trap{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}:root:has(.request-field input:hover,.request-field textarea:hover) .cursor-root{visibility:hidden}:root[data-cursor=custom] .request-field input,:root[data-cursor=custom] .request-field textarea{cursor:text}.sound-toggle{z-index:20;color:var(--muted);transition:color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:50%;padding:10px;display:inline-flex;position:fixed;inset-block-end:var(--gutter);inset-inline-end:var(--gutter)}.sound-toggle:hover,.sound-toggle:focus-visible{color:var(--ink)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
