@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-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-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;--nav-tint-1:#ffffff87;--nav-tint-2:#f9fafb78;--nav-tint-3:#ffffff8c}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@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{.\!visible{visibility:visible!important}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-20{top:calc(var(--spacing) * 20)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-4{height:calc(var(--spacing) * 4)}.h-58{height:calc(var(--spacing) * 58)}.h-78{height:calc(var(--spacing) * 78)}.h-full{height:100%}.min-h-full{min-height:100%}.w-4{width:calc(var(--spacing) * 4)}.grow{flex-grow:1}.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}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.\!ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.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)}.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-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}.open-source-page{padding-top:150px}.oss-archive-hero,.oss-page-hero,.oss-archive,.oss-records,.open-source-page>.breadcrumbs,.open-source-page>.route-footer{width:min(1440px,calc(100% - var(--gutter) * 2));margin-inline:auto}.oss-archive-hero{padding:55px 0 80px;position:relative;overflow:hidden}.oss-archive-hero>div{z-index:1;position:relative}.oss-archive-hero h1{max-width:11ch;font-size:clamp(52px,6.5vw,96px)}.oss-archive-hero p{color:var(--muted);max-width:60ch;margin-top:35px;font-size:16px}.oss-archive-hero:after{content:"";background:radial-gradient(at 30% 30%,#fff,#d7dee74a 50%,#fff0 70%);border-radius:50%;width:300px;height:300px;position:absolute;top:0;right:5%;transform:rotateX(50deg)rotateY(-20deg);box-shadow:inset 1px 1px 8px #fff,15px 20px 40px #79889b18}.oss-archive{padding-bottom:90px}.oss-archive-header{border-bottom:1px solid var(--line);justify-content:space-between;padding-block:28px;display:flex}.oss-archive-header h2{letter-spacing:-.015em;font-size:17px}.oss-archive-list article{border-bottom:1px solid var(--line);transition:padding .4s var(--ease);grid-template-columns:1fr 1.3fr .7fr;gap:50px;padding:45px 0;display:grid}.oss-archive-list article:hover{padding-inline:16px}.oss-archive-repo-title>p{color:var(--muted);margin-bottom:15px;font-size:11px}.oss-archive-repo-title h3{font-size:clamp(26px,3vw,42px)}.oss-archive-repo-body>p{color:var(--muted);font-size:14px}.oss-archive-repo-body .oss-archive-latest{color:var(--text);margin-top:18px;font-size:11px}.oss-archive-repo-action{flex-direction:column;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.oss-archive-repo-action>span{color:var(--muted);font-size:11px}.oss-archive-repo-action a{border-bottom:1px solid;align-items:center;gap:20px;padding-bottom:8px;font-size:12px;display:flex}.oss-page-hero{grid-template-columns:1.5fr 1fr;align-items:end;gap:100px;padding:35px 0 70px;display:grid}.oss-page-hero h1{overflow-wrap:anywhere;font-size:clamp(42px,5.7vw,80px);line-height:1.15}.oss-page-lede{color:var(--muted);max-width:58ch;margin-top:30px;font-size:15px}.oss-repository-facts{background:var(--surface);border-radius:5px;padding:25px 30px}.oss-repository-facts>div{flex-direction:column;gap:7px;margin-bottom:22px;display:flex}.oss-repository-facts span{color:var(--muted);font-size:10px}.oss-repository-facts strong{font-size:14px;font-weight:500}.oss-repository-facts>a{border-bottom:1px solid var(--line);align-items:center;gap:25px;padding-bottom:8px;font-size:12px;display:inline-flex}.oss-records{padding-bottom:90px}.oss-records-shell{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:64px;display:grid}.oss-record-index{flex-direction:column;max-height:calc(100svh - 136px);display:flex;position:sticky;top:112px}.oss-record-index-heading,.oss-reader-jump{flex:none}.oss-record-index-heading{justify-content:space-between;align-items:center;gap:12px;padding-bottom:22px;display:flex}.oss-record-index-heading p{color:var(--muted);font-size:11px}.oss-record-index-heading strong{font-size:14px;font-weight:500}.oss-record-controls{gap:5px;display:flex}.oss-record-controls button{border:1px solid var(--line);background:0 0;border-radius:50%;width:36px;height:36px}.oss-record-controls button:hover{background:#fff}.oss-record-selector{scrollbar-width:thin;flex-direction:column;min-height:0;display:flex;overflow-y:auto}.oss-record-selector button:focus-visible{outline-offset:-4px}.oss-record-selector button{text-align:left;border-top:1px solid var(--line);color:var(--muted);background:0 0;gap:12px;padding:22px 16px;transition:background .3s,color .3s;display:flex}.oss-record-selector button>span{padding-top:3px;font-size:10px}.oss-record-selector button[aria-selected=true]{color:var(--text);background:#e9edf3}.oss-record-selector-stage{margin-bottom:8px;font-size:10px;display:block}.oss-record-selector strong{font-size:14px;font-weight:500;line-height:1.6;display:block}.oss-record-selector small{margin-top:12px;font-size:10px;display:block}.oss-panels,.oss-record-list{min-width:0}.oss-record{outline-offset:8px;overflow-wrap:anywhere;min-width:0}.oss-record-header{border-top:1px solid var(--line);padding-top:26px}.oss-record-module{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.oss-record-role{flex-wrap:wrap;gap:8px 20px;margin-top:14px;font-size:11px;display:flex}.oss-record-role span{color:var(--muted)}.oss-record-role strong{font-weight:500}.oss-record-header h3{margin-top:30px;font-size:clamp(28px,3vw,44px);line-height:1.35}.oss-record-summary{color:var(--muted);margin-top:25px;font-size:15px;line-height:1.9}.oss-record-status{background:var(--surface);grid-template-columns:auto 1fr;gap:10px 22px;margin-top:32px;padding:22px 24px;font-size:12px;display:grid}.oss-record-status>span{color:var(--muted)}.oss-record-status strong{font-weight:500}.oss-record-status time{color:var(--muted);grid-column:2;font-size:10px}.oss-record-identifiers{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:25px 35px;margin:0;padding:26px 0;display:flex}.oss-record-identifiers dt{color:var(--muted);margin-bottom:8px;font-size:10px}.oss-record-identifiers dd{overflow-wrap:anywhere;margin:0;font-size:12px}.oss-record-identifiers a{text-underline-offset:4px;text-decoration:underline}.oss-record-commits dd{flex-wrap:wrap;gap:10px;display:flex}.oss-record-commits a small{max-width:38ch;color:var(--muted);font-size:10px;display:block}.oss-story>section{grid-template-columns:135px minmax(0,1fr);gap:35px;margin-top:42px;display:grid}.oss-story h4,.oss-address-spaces h4,.oss-scenarios h4,.oss-decision-band h4,.oss-verification h4,.oss-progress h4{font-size:15px;font-weight:500}.oss-story p,.oss-decision-band p{color:var(--muted);overflow-wrap:anywhere;font-size:14px;line-height:1.95}.oss-story p+p,.oss-decision-band p+p{margin-top:18px}.oss-address-spaces,.oss-scenarios{margin-top:48px}.oss-address-spaces>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:24px;display:grid}.oss-address-spaces article{border-top:1px solid var(--line);padding-top:20px}.oss-address-spaces code{overflow-wrap:anywhere;font-size:12px}.oss-address-spaces strong{margin-top:14px;font-size:12px;font-weight:500;display:block}.oss-address-spaces p,.oss-address-spaces small{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.9;display:block}.oss-scenarios article{border-top:1px solid var(--line);margin-top:24px;padding-block:24px}.oss-scenarios article header{flex-wrap:wrap;justify-content:space-between;gap:15px;font-size:13px;display:flex}.oss-scenarios article strong{font-weight:500}.oss-scenarios code{overflow-wrap:anywhere;font-size:11px}.oss-scenarios dl{grid-template-columns:1fr 1fr;gap:30px;margin:20px 0 0;display:grid}.oss-scenarios dt{color:var(--text);margin-bottom:10px;font-size:11px}.oss-scenarios dd{color:var(--muted);margin:0;font-size:13px;line-height:1.8}.oss-code-example{margin-top:35px}.oss-code-example figcaption{margin-bottom:20px}.oss-code-example strong{font-size:14px;font-weight:500}.oss-code-example p{color:var(--muted);margin-top:10px;font-size:12px}.oss-code-example pre{color:#dce3ec;background:#1b2028;border-radius:5px;max-width:100%;padding:24px;font-size:12px;line-height:1.8;overflow:auto}.oss-decision-band{background:#edf0f5;border-radius:5px;margin-top:44px;padding:30px}.oss-decision-band h4{margin-bottom:18px}.oss-proof-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;margin-top:48px;display:grid}.oss-proof-layout>section,.oss-progress li>div,.oss-verification p{min-width:0}.oss-verification ol,.oss-progress ol{margin:26px 0 0;padding:0;list-style:none}.oss-verification li{border-top:1px solid var(--line);gap:16px;padding-block:16px;display:flex}.oss-verification li>span{color:var(--accent);font-variant-numeric:tabular-nums;flex:none;margin-top:3px;font-size:10px}.oss-verification p{color:var(--muted);font-size:12px}.oss-progress li{gap:16px;padding-bottom:24px;display:flex}.oss-progress li>span{border:1px solid #8d99ab;border-radius:50%;flex:0 0 7px;height:7px;margin-top:9px}.oss-progress li[data-state=complete]>span{background:#335bd6;border-color:#335bd6}.oss-progress li[data-state=positive]>span{background:#768bad;border-color:#768bad}.oss-progress strong{font-size:12px;font-weight:500}.oss-progress p{color:var(--muted);margin-top:8px;font-size:12px}.oss-record-footer{border-top:1px solid var(--line);margin-top:48px;padding-top:25px}.oss-record-footer>p{color:var(--muted);margin-bottom:20px;font-size:12px}.oss-record-footer>div{flex-wrap:wrap;gap:16px 24px;display:flex}.oss-record-footer a{align-items:center;gap:10px;font-size:11px;display:flex}.oss-record-footer a svg{width:13px;height:13px}@media (max-width:1100px){.oss-records-shell{grid-template-columns:220px minmax(0,1fr);gap:40px}.oss-page-hero{gap:50px}.oss-archive-list article{gap:30px}.oss-story>section{grid-template-columns:1fr;gap:15px}}@media (min-width:851px) and (max-height:560px){.oss-record-index{max-height:none;display:block;position:static}.oss-record-selector{min-height:auto;overflow:visible}}@media (max-width:850px){.oss-archive-hero:after{width:220px;height:220px;right:0}.oss-archive-list article{grid-template-columns:1fr 1.5fr}.oss-archive-repo-action{flex-direction:row;grid-column:2;align-items:center}.oss-page-hero{grid-template-columns:1fr;gap:30px}.oss-repository-facts{flex-wrap:wrap;align-items:center;gap:35px;display:flex}.oss-repository-facts>div{margin:0}.oss-records-shell{display:block}.oss-record-index{max-height:none;margin-bottom:40px;display:block;position:static}.oss-record-selector{grid-template-columns:repeat(2,minmax(0,1fr));min-height:auto;display:grid;overflow:visible}.oss-record-selector button{min-width:0}.oss-record-selector button:only-child{grid-column:1/-1}}@media (max-width:600px){.open-source-page{padding-top:105px}.oss-archive-hero{padding-block:35px 60px}.oss-archive-hero h1{font-size:50px}.oss-archive-hero p{margin-top:28px;font-size:14px}.oss-archive-hero:after{opacity:.5;width:140px;height:140px}.oss-archive-list article{padding-block:30px;display:block}.oss-archive-list article:hover{padding-inline:0}.oss-archive-repo-title h3{font-size:32px}.oss-archive-repo-body{margin-block:25px}.oss-archive-repo-action{flex-direction:row;align-items:center}.oss-page-hero{padding-block:25px 45px}.oss-page-hero h1{font-size:42px}.oss-page-lede{font-size:14px}.oss-repository-facts{gap:20px;padding:24px}.oss-record-selector{display:flex}.oss-record-selector button{padding:18px 12px}.oss-record-header h3{font-size:28px}.oss-record-summary{font-size:14px}.oss-record-status{padding:20px;display:block}.oss-record-status strong{margin-block:10px;display:block}.oss-record-status time{display:block}.oss-record-identifiers{gap:22px}.oss-story p,.oss-decision-band p{font-size:13px}.oss-proof-layout,.oss-scenarios dl,.oss-address-spaces>div{grid-template-columns:1fr}.oss-decision-band{padding:24px}.oss-code-example pre{padding:18px;font-size:11px}}:root{--page-bg:#f9fafb;--surface:#f0f2f4;--text:#16181b;--muted:#5d6269;--line:#d9dde1;--accent:#335bd6;--mineral:#3c4659;--ease:cubic-bezier(.22,1,.36,1);--font-body:var(--font-manrope),var(--font-noto-sans-sc),sans-serif;--z-nav:20;--z-arrival:30;--gutter:clamp(22px,5vw,96px)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--page-bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.7}::selection{color:#111;background:#cfd9fb}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{text-wrap:balance}h1,h2,h3{letter-spacing:-.04em;font-weight:500;line-height:1.1}p{text-wrap:pretty}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0}a,button,summary{touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}section[id],article[id],[id=contact-form]{scroll-margin-top:16px}svg{display:block}a svg,button svg{flex:none;width:19px;height:19px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--text);color:#fff;z-index:40;padding:12px 20px;position:fixed;top:12px;left:20px;transform:translateY(-180%)}.skip-link:focus{transform:none}.content-width{width:min(1440px,calc(100% - var(--gutter) * 2));margin-inline:auto}.portfolio-shell{isolation:isolate}.atlas-nav{z-index:var(--z-nav);padding:16px var(--gutter);transition:padding .35s var(--ease);position:fixed;inset:0 0 auto}@property --nav-tint-1{syntax:"<color>";inherits:false;initial-value:#ffffff87}@property --nav-tint-2{syntax:"<color>";inherits:false;initial-value:#f9fafb78}@property --nav-tint-3{syntax:"<color>";inherits:false;initial-value:#ffffff8c}.atlas-nav-inner{isolation:isolate;max-width:1480px;min-height:64px;color:var(--text);background:linear-gradient(115deg,var(--nav-tint-1),var(--nav-tint-2) 60%,var(--nav-tint-3));-webkit-backdrop-filter:blur(12px)saturate(1.8)brightness(1.06);backdrop-filter:blur(12px)saturate(1.8)brightness(1.06);transition:--nav-tint-1 .3s var(--ease),--nav-tint-2 .3s var(--ease),--nav-tint-3 .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease),color 12ms steps(1,end),box-shadow .5s;border:1px solid #ffffff5c;border-radius:18px;justify-content:space-between;align-items:center;gap:24px;margin:auto;padding:0 20px;display:flex;position:relative;box-shadow:0 10px 30px -12px #17283e29,0 1px 3px #17283e0a,inset 0 1px #ffffffd9,inset 0 -1px #ffffff3d,inset 0 0 16px #ffffff21}.atlas-nav-inner:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;transition:opacity .3s var(--ease);background:linear-gradient(110deg,#0000 25%,#fff5 48%,#0000 70%) 0 0/240% 100%;animation:14s ease-in-out infinite alternate glass-drift;position:absolute;inset:0}.atlas-nav-inner:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;transition:opacity .3s var(--ease);-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;background:linear-gradient(135deg,#ffffffeb,#ffffff2e 32%,#ffffff0f 58%,#ffffffa6);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.atlas-nav-inner:hover{box-shadow:0 14px 34px -12px #17283e33,0 1px 3px #17283e0d,inset 0 1px #fff,inset 0 -1px #ffffff5c,inset 0 0 16px #ffffff2e}.atlas-nav-inner[data-tone=dark]{--nav-tint-1:#1b1f26a6;--nav-tint-2:#14171c91;--nav-tint-3:#1b1f26a0;--accent:#b6c8ff;color:#f5f6f8;-webkit-backdrop-filter:blur(12px)saturate(1.8)brightness();backdrop-filter:blur(12px)saturate(1.8)brightness();border-color:#ffffff1f;box-shadow:0 10px 30px -12px #00000073,0 1px 3px #0000001a,inset 0 1px #ffffff2e,inset 0 -1px #ffffff0f,inset 0 0 16px #ffffff0a}.atlas-nav-inner[data-tone=dark]:before{opacity:.3}.atlas-nav-inner[data-tone=dark]:after{opacity:.35}.atlas-nav-inner[data-tone=dark] :is(.desktop-nav a,.language-option){color:#f5f6f8}.atlas-nav-inner[data-tone=dark] .menu-toggle{box-shadow:none;background:#ffffff14;border-color:#ffffff2e}.atlas-nav-inner[data-tone=dark] .menu-toggle:hover{background:#ffffff26}@keyframes glass-drift{0%{background-position:100% 0}to{background-position:0 0}}[data-scrolled=true] .atlas-nav{padding-top:8px}.wordmark{white-space:nowrap;letter-spacing:-.035em;align-items:center;gap:11px;font-size:16px;font-weight:650;display:flex}.nav-identity{align-items:center;gap:22px;display:flex}.brand-mark{width:22px;height:26px;display:block;position:relative}.brand-mark i{background:currentColor;width:8px;height:23px;position:absolute;top:2px;transform:skewY(-30deg)}.brand-mark i+i{height:16px;top:0;left:12px}.desktop-nav{align-items:center;gap:28px;display:flex}.desktop-nav a{color:#16181b;padding-block:20px;font-size:12px;transition:color 12ms step-end;position:relative}.desktop-nav a:after{content:"";transform-origin:0;height:1px;transition:transform .35s var(--ease);background:currentColor;position:absolute;bottom:13px;left:0;right:0;transform:scaleX(0)}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.desktop-nav a[aria-current]{color:#101214}.atlas-nav-controls{align-items:center;gap:22px;display:flex}.language-switcher{gap:1px;display:flex}.language-option{color:#16181b;place-items:center;min-width:32px;height:40px;font-size:10px;transition:color 12ms step-end;display:grid}.language-option[data-active=true]{color:#111;text-underline-offset:5px;text-decoration:underline}.nav-message{align-items:center;gap:25px;font-size:12px;font-weight:600;display:flex}.nav-message span{font-size:19px}.menu-toggle{white-space:nowrap;background:#ffffff78;border:1px solid #ffffffc2;border-radius:11px;justify-content:center;align-items:center;gap:10px;min-height:42px;padding:8px 13px;font-size:11px;transition:background .3s,border-color .3s,box-shadow .3s;display:flex;box-shadow:0 1px 4px #26344806}.menu-toggle:hover{background:#fff;box-shadow:0 3px 12px #26344814}.menu-glyph{flex-direction:column;gap:5px;display:flex}.menu-glyph i{width:15px;height:1px;transition:transform .35s var(--ease);background:currentColor}.menu-toggle:hover .menu-glyph i:first-child{transform:translate(2px)}.menu-toggle:hover .menu-glyph i:last-child{transform:translate(-2px)}.site-menu{width:100%;max-width:none;height:100%;max-height:none;padding:24px var(--gutter) 40px;color:var(--text);background:#f5f7f9fa;border:0;margin:0;position:fixed;inset:0;overflow:auto}.site-menu[open]{animation:menu-unfold .6s var(--ease);flex-direction:column;display:flex}.site-menu::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#16181b55}.menu-top,.menu-bottom{justify-content:space-between;align-items:center;gap:24px;display:flex}.menu-top{font-size:20px}.menu-top button{background:0 0;width:48px;height:48px;font-size:40px;line-height:1}.site-menu nav{width:min(850px,100%);margin:auto;padding-block:36px}.site-menu nav a{border-bottom:1px solid var(--line);letter-spacing:-.03em;transition:padding .3s var(--ease);justify-content:space-between;gap:20px;padding:10px 0;font-size:clamp(24px,4.5vh,48px);line-height:1.5;display:flex}.site-menu nav a:hover{padding-inline:20px}.site-menu nav a span{font-weight:300}.menu-bottom{color:var(--muted);font-size:13px}.no-script-nav{background:var(--page-bg);flex-wrap:wrap;gap:8px 20px;padding:12px;font-size:12px;display:flex}.hero-section{background:radial-gradient(ellipse at 76% 40%,#eef0f3 0,transparent 47%),var(--page-bg);min-height:100svh;padding-top:100px;position:relative}.hero-layout{grid-template-rows:1fr auto;grid-template-columns:1.15fr 1fr;align-items:center;min-height:calc(100svh - 100px);display:grid;position:relative}.hero-intro{z-index:2;padding-block:42px 55px;position:relative}.hero-signal{color:var(--muted);align-items:center;gap:10px;margin-bottom:clamp(28px,5vh,56px);font-size:12px;display:flex}.hero-signal>span{background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #335bd610}.hero-statement{letter-spacing:-.04em;font-size:clamp(48px,5.8vw,96px);font-weight:500;line-height:1.075;position:relative}.hero-title-line{display:block}.hero-title-line+.hero-title-line{color:#7b8088}.hero-copy{max-width:51ch;margin-top:32px}.hero-role{color:var(--text);margin-bottom:12px;font-size:14px}.hero-description{color:var(--muted);max-width:49ch;font-size:14px;line-height:1.85}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:28px;display:flex}.primary-action,.secondary-action,.text-action{min-height:48px;transition:background .3s,color .3s,transform .4s var(--ease);justify-content:space-between;align-items:center;gap:32px;font-size:13px;font-weight:550;display:inline-flex}.primary-action{background:var(--text);color:var(--page-bg);border-radius:5px;padding:13px 22px}.primary-action:hover{background:#353a42;transform:translateY(-3px)}.primary-action svg,.text-action svg,.secondary-action svg{transition:transform .35s var(--ease)}.primary-action:hover svg,.text-action:hover svg,.secondary-action:hover svg{transform:translate(3px,-3px)}.text-action{border-bottom:1px solid;gap:22px}.secondary-action{border:1px solid var(--line);border-radius:4px;padding:11px 18px}.hero-bottom-line{border-top:1px solid var(--line);color:var(--muted);grid-column:1/-1;justify-content:space-between;align-items:center;gap:25px;padding-block:23px;font-size:11px;display:flex}.hero-bottom-line a{align-items:center;gap:28px;display:flex}.scroll-orbit{width:30px;height:30px;color:var(--text);border:1px solid #bfc5cd;border-radius:50%;place-items:center;font-size:17px;display:grid}.light-study{min-width:0;height:clamp(390px,42vw,650px);transform:translateY(var(--hero-shift,0px));margin-left:-35px;position:relative}.light-study canvas{width:100%;height:100%;animation:sculpture-arrive 1.8s var(--ease) both;position:absolute;inset:0}.sculpture-shadow{filter:blur(22px);background:#69717c35;border-radius:50%;height:6%;position:absolute;bottom:17%;left:20%;right:20%;transform:rotate(-12deg)}.study-caption{color:var(--muted);justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex;position:absolute;inset:auto 2% 0}.sculpture-fallback{position:absolute;inset:22%;transform:rotate(-30deg)}.sculpture-fallback i{border:35px solid #b9bec6;border-radius:50%;display:block;position:absolute;inset:0;transform:rotateY(45deg);box-shadow:inset 5px 5px 14px #737e87,2px 3px 4px #fff}.sculpture-fallback i:nth-child(2){transform:rotateY(-45deg)rotateX(40deg)}.sculpture-fallback i:nth-child(3){transform:rotateX(60deg)}.light-study[data-rendered=true] .sculpture-fallback{display:none}.section-intro{grid-template-columns:1.1fr 1fr;align-items:end;gap:80px;margin-bottom:64px;display:grid}.section-intro h2{max-width:12ch;font-size:clamp(38px,4.7vw,72px)}.section-intro p{color:var(--muted);max-width:55ch;font-size:15px}.section-intro .text-action{margin-top:24px}.case-study{padding-block:clamp(70px,8vw,128px)}.case-layout{grid-template-columns:1fr 1.1fr;align-items:start;column-gap:clamp(40px,6vw,100px);display:grid}.case-heading{align-self:center;min-width:0}.case-meta{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:28px;padding-bottom:25px;font-size:11px;display:flex}.case-heading h3{font-size:clamp(40px,4.5vw,68px);line-height:1.14}.case-fullname{color:var(--muted);max-width:42ch;margin-top:14px;font-size:13px}.case-role{color:var(--muted);margin-top:28px;font-size:12px}.project-summary{max-width:52ch;margin-top:12px;font-size:17px;line-height:1.85}.plain-tags{color:var(--muted);flex-wrap:wrap;gap:7px 16px;margin:20px 0 0;padding:0;font-size:11px;list-style:none;display:flex}.source-action{margin-top:28px}.case-study-0{--page-bg:#14171c;--text:#f5f6f8;--muted:#b1b8c2;--line:#3b4049;--accent:#b6c8ff;color:var(--text);background:#14171c;position:relative;overflow:clip}.case-study-0:before{content:"";pointer-events:none;background:radial-gradient(at 82% 26%,#39475a50,#0000 50%);position:absolute;inset:0}.case-study-0 .case-layout{position:relative}.case-study-0 .case-heading h3{font-size:clamp(64px,6vw,96px)}.case-study-0 .secondary-action:hover{background:#303640}.case-study-1{background:#fff}.case-study-1 .case-heading{grid-area:1/2}.case-study-1 .project-demo{grid-area:1/1}.case-study-2{background:#eef1f5}.case-study-3{background:#f9fafb}.case-notes{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:40px;padding-top:70px;display:grid}.case-notes article{border-top:1px solid var(--line);padding-top:24px}.case-notes h4{margin-bottom:18px;font-size:14px;font-weight:600}.case-notes p{color:var(--muted);font-size:13px;line-height:1.95}.project-notes{border-block:1px solid var(--line);grid-column:1/-1;margin-top:38px}.project-notes-trigger{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding-block:24px;list-style:none;display:flex}.project-notes-trigger::-webkit-details-marker{display:none}.notes-label{flex-wrap:wrap;align-items:center;gap:12px 35px;display:flex}.notes-label strong{font-size:14px;font-weight:500}.notes-label small{color:var(--muted);font-size:11px}.notes-action{align-items:center;gap:24px;font-size:12px;display:flex}.notes-action svg{transition:transform .4s var(--ease)}.project-notes[open] .notes-action svg{transform:rotate(180deg)}.notes-close-label,.project-notes[open] .notes-open-label{display:none}.project-notes[open] .notes-close-label{display:inline}.project-notes-body{color:var(--muted);grid-template-columns:.7fr 1.3fr;gap:60px;padding:15px 0 40px;font-size:13px;display:grid}.project-record-stack h4{color:var(--text);margin-bottom:18px;font-size:14px}.project-notes-body ul{margin:0;padding-left:18px}.project-notes-body li+li{margin-top:16px}@supports (interpolate-size:allow-keywords){.project-notes{interpolate-size:allow-keywords}.project-notes::details-content{height:0;transition:height .5s var(--ease),content-visibility .5s allow-discrete;overflow:clip}.project-notes[open]::details-content{height:auto}}.open-source-home{background:#fff;padding-block:120px;position:relative}.open-source-home .section-intro{z-index:1;position:relative}.repository-group{border-top:1px solid var(--line);grid-template-columns:.7fr 1.3fr;gap:100px;padding-block:38px;display:grid}.repository-name{grid-template-columns:1fr auto;align-content:start;gap:8px 20px;display:grid}.repository-name>span{color:var(--muted);grid-column:1/-1;font-size:12px}.repository-name h3{font-size:clamp(28px,3vw,42px)}.repository-name svg{width:25px;height:25px}.contribution-row+.contribution-row{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.contribution-more{margin-top:36px}.contribution-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:11px;display:flex}.contribution-row>a{justify-content:space-between;gap:30px;padding-block:16px;display:flex}.contribution-row h4{letter-spacing:-.02em;font-size:20px;font-weight:500;line-height:1.6}.contribution-row>a svg{margin-top:8px;transition:transform .3s}.gate-track{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;display:flex}.gate-rail{--node:9px;height:var(--node);flex:0 300px;justify-content:space-between;align-items:center;display:flex;position:relative}.gate-caption{color:var(--muted);font-size:11px}.gate-rail:before,.gate-rail:after{content:"";left:calc(var(--node) / 2);right:calc(var(--node) / 2);background:var(--line);height:1px;position:absolute;top:50%}.gate-rail:after{background:var(--text);transform-origin:0;transform:scaleX(var(--reach))}.gate-node{z-index:1;width:var(--node);height:var(--node);background:var(--page-bg);border:1px solid #9aa2ad;border-radius:50%;position:relative}.gate-node[data-state=complete]{background:var(--text);border-color:var(--text)}.gate-node[data-state=positive]{background:linear-gradient(90deg,var(--text) 50%,var(--page-bg) 50%);border-color:var(--text)}.gate-legend{--node:9px;color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:26px 0 0;padding:0;font-size:11px;list-style:none;display:flex}.gate-legend li{align-items:center;gap:7px;display:flex}.gate-node[data-state=pending]{border-color:var(--accent);box-shadow:0 0 0 3px #335bd61f}.gate-node[data-state=pending]:after{content:"";border:1px solid var(--accent);border-radius:50%;animation:2.4s ease-out infinite gate-wait;position:absolute;inset:-5px}.contribution-row>a:hover svg{transform:translate(4px,-4px)}.contribution-stage{color:var(--accent);font-size:11px}.experience-section{padding-block:120px 60px}.experience-entry{border-top:1px solid var(--line);grid-template-columns:.75fr 1.25fr;gap:100px;padding-block:52px;display:grid}.experience-entry>div:first-child{padding-left:84px;position:relative}.experience-logo{object-fit:contain;filter:grayscale();background:#fff;border-radius:8px;width:56px;height:56px;padding:8px;transition:filter .4s;position:absolute;top:0;left:0}.experience-entry:hover .experience-logo{filter:none}.detail-period{color:var(--muted);font-size:11px}.experience-entry h3{margin-top:18px;font-size:28px;line-height:1.3}.experience-role{color:var(--muted);margin-top:12px;font-size:12px}.entry-summary{font-size:17px;line-height:1.85}.experience-entry ul{color:var(--muted);margin:24px 0 0;padding-left:16px;font-size:13px}.experience-entry li{margin-top:14px;padding-left:8px}.education-section{padding-block:50px 120px}.education-section .section-intro{margin-bottom:40px}.education-list{display:flex}.education-list article{border-top:1px solid var(--line);flex:1;min-width:0;padding:30px 30px 0;position:relative}.education-list article:before{content:"";background:#8c949e;border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;left:30px}.education-list article:first-child{padding-left:0}.education-list article:first-child:before{background:var(--accent);left:0}.education-list article+article{border-left:1px solid var(--line)}.education-list h3{margin:22px 0 16px;font-size:24px;line-height:1.4}.education-list article>div>p{color:var(--muted);font-size:13px}.education-list article>div+div{margin-top:22px}.education-list .education-degree{color:var(--text)}.profile-section{border-top:1px solid var(--line);padding-top:120px}.location-note{margin-top:20px}.profile-principles{grid-template-columns:1fr 1fr;gap:60px;display:grid}.profile-principles article{padding-bottom:28px}.profile-principles h3{margin-top:26px;font-size:26px}.profile-principles p{max-width:58ch;color:var(--muted);margin-top:20px;font-size:14px}.principle-art{color:#16181b;background:#eef0f3;place-items:center;height:210px;display:grid;overflow:hidden}.piano-interests{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;padding-block:48px 110px;display:grid}.piano-about h2{font-size:34px;line-height:1.3}.piano-intro{max-width:46ch;color:var(--muted);margin-top:20px;font-size:14px}.piano-keyboard{width:100%;max-width:420px;height:auto;margin-block:32px;overflow:visible}.piano-white-key{fill:var(--page-bg);stroke:#a4acb6;stroke-width:.8px;transition:fill .2s}.piano-black-key{fill:var(--mineral);transition:fill .2s}.piano-list-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;display:flex}.piano-list-heading h3{letter-spacing:0;font-size:14px;font-weight:500;line-height:1.7}.piano-list-heading>span{color:var(--muted);font-size:11px}.piano-practice{max-width:420px}.piano-practice ul{flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.piano-practice li{align-items:center;gap:8px;display:flex}.piano-practice li:before{content:"";background:var(--muted);border-radius:50%;flex:none;width:4px;height:4px}.piano-practice a{align-items:center;gap:6px;display:inline-flex}.piano-practice a svg{width:13px;height:13px}.piano-practice a:hover{color:var(--accent)}.piano-favorites ol{border-top:1px solid var(--line);margin:18px 0 0;padding:0;list-style:none}.piano-favorites li{border-bottom:1px solid var(--line)}.piano-favorites a{grid-template-columns:24px minmax(0,1fr) 19px;align-items:center;gap:16px;min-height:80px;padding-block:17px;display:grid}.piano-track-number{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.piano-track-copy{gap:4px;display:grid}.piano-track-title{letter-spacing:-.025em;font-size:19px;line-height:1.35}.piano-track-context{color:var(--muted);font-size:11px}.piano-favorites a>svg{color:var(--muted);transition:transform .25s var(--ease),color .25s}.piano-favorites a:is(:hover,:focus-visible) .piano-track-title,.piano-favorites a:is(:hover,:focus-visible)>svg{color:var(--accent)}@media (hover:hover) and (pointer:fine){.piano-white-key:hover{fill:#dce5ff}.piano-black-key:hover{fill:var(--accent)}.piano-favorites a:hover>svg{transform:translate(3px,-3px)}}.stack-section{padding-block:90px 72px}.stack-list{border-top:1px solid var(--line)}.stack-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.15fr;gap:80px;padding-block:30px;display:grid}.stack-list h3{font-size:23px}.stack-list p{color:var(--muted);max-width:58ch;margin-top:12px;font-size:12px}.stack-list ul{flex-wrap:wrap;align-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.stack-list li{border:1px solid #ccd2d9;border-radius:4px;padding:7px 14px;font-size:12px}.contact-section{background:#e9edf3;min-height:100dvh;padding-top:clamp(104px,12svh,140px);display:grid;position:relative;overflow:hidden}#contact{scroll-margin-top:-88px}.contact-section>.content-width{flex-direction:column;min-width:0;display:flex;position:relative}.contact-signal{font-size:12px;position:relative}.contact-composition{flex:1;grid-template-columns:1.2fr 1fr;align-items:center;gap:100px;min-height:220px;margin-block:32px 48px;display:grid;position:relative}.contact-composition h2{font-size:clamp(58px,7vw,96px);line-height:1.25}.contact-arrow{transition:transform .5s var(--ease);margin-left:25px;display:inline-block}.contact-section:has(a:hover) .contact-arrow{transform:translate(10px,-10px)}.contact-composition p{color:#515a67;max-width:45ch;font-size:16px}.contact-actions{flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:28px;display:flex}.contact-ripples{pointer-events:none;width:750px;height:750px;position:absolute;top:-220px;left:-350px;transform:rotateX(55deg)rotate(-25deg)}.contact-ripples i{border:1px solid #aeb8c780;border-radius:50%;position:absolute;inset:0;box-shadow:inset 2px 2px 5px #fff,4px 4px 10px #9aa6b033}.contact-ripples i:nth-child(2){inset:60px}.contact-ripples i:nth-child(3){inset:120px}.contact-ripples i:nth-child(4){inset:180px}.contact-section[data-revealed=true] .contact-ripples{animation:tide 4s var(--ease) both}.home-footer,.route-footer{color:var(--muted);border-top:1px solid #bfc7d1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-block:26px;font-size:11px;display:flex;position:relative}.home-footer>div,.route-footer>div{flex-wrap:wrap;gap:26px;display:flex}.home-footer a:hover,.route-footer a:hover,.breadcrumbs a:hover{color:var(--text);text-underline-offset:5px;text-decoration:underline}.breadcrumbs ol{color:var(--muted);overflow-wrap:anywhere;font-size:11px;line-height:24px}.breadcrumbs li{display:inline}.breadcrumbs a{display:inline-block}.breadcrumbs li>span[aria-hidden]{padding-inline:8px}.breadcrumbs [aria-current]{color:var(--text)}.contact-page-grid{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(60px,9vw,140px);min-height:calc(100svh - 80px);padding-top:165px;padding-bottom:90px;display:grid}.contact-page-copy h1{margin-top:26px;font-size:clamp(48px,5vw,76px);line-height:1.2}.contact-route-note{color:var(--muted);font-size:12px}.contact-page-copy>.breadcrumbs{margin-bottom:35px}.section-body{color:var(--muted);max-width:48ch;margin-top:28px;font-size:15px;line-height:1.9}.contact-lens{max-width:350px;height:220px;margin-top:32px;position:relative}.contact-lens i{background:linear-gradient(125deg,#fff5,#bac4d055,#fff0);border-radius:50%;position:absolute;inset:30px 40px;transform:rotate(-35deg)skew(-20deg);box-shadow:inset 2px 2px 5px #fff,10px 20px 35px #7d899c22}.contact-lens i:nth-child(2){inset:45px 70px}.contact-lens i:nth-child(3){inset:65px 100px}.contact-socials{gap:30px;margin-top:20px;font-size:12px;display:flex}.contact-form{padding-top:10px}.contact-form-note{color:var(--muted);margin-bottom:36px;font-size:12px}.form-grid{grid-template-columns:1fr 1fr;gap:25px;display:grid}.contact-field{margin-bottom:28px}.contact-field label{margin-bottom:12px;font-size:12px;display:block}.contact-field input,.contact-field textarea{width:100%;color:var(--text);outline-offset:6px;background:0 0;border:0;border-bottom:1px solid #b6bfc9;border-radius:0;padding:12px 0;font-size:15px}.contact-field textarea{resize:vertical;border:1px solid #c1c8d0;border-radius:4px;min-height:145px;padding:15px}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--text)}.contact-field [aria-invalid=true]{border-color:#b03232}.field-error,.form-status.error{color:#a32b2b;margin-top:10px;font-size:12px}.form-status{margin-top:22px;font-size:13px}.form-success-actions{flex-wrap:wrap;gap:15px;margin-top:24px;display:flex}.kinetic-word,.kinetic-glyph{display:inline-block}.kinetic-word{white-space:nowrap}.hero-statement .kinetic-word{animation:text-arrive 1.2s .12s var(--ease) both}.hero-title-line+.hero-title-line .kinetic-word{animation-delay:.22s}.section-intro[data-revealed=true] h2 .kinetic-word{animation:text-arrive .9s var(--ease) both}.arrival{z-index:var(--z-arrival);pointer-events:none;animation:arrival-away 1.25s var(--ease) both;background:#edf0f4;place-content:center;display:grid;position:fixed;inset:0}.arrival-name{letter-spacing:-.04em;align-items:center;gap:25px;font-size:30px;font-weight:500;display:flex}.arrival-name span{letter-spacing:0;color:#626b77;font-size:11px}.arrival-rule{transform-origin:0;width:100%;height:1px;animation:rule-arrive .6s var(--ease) both;background:#626b7766;margin-top:22px}@keyframes arrival-away{0%,28%{clip-path:inset(0)}to{clip-path:inset(0 0 100%);visibility:hidden}}@keyframes rule-arrive{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes text-arrive{0%{filter:blur(4px);opacity:.4;transform:translateY(24px)}to{filter:blur();opacity:1;transform:none}}@keyframes sculpture-arrive{0%{opacity:0;transform:translateY(30px)rotate(-8deg)}to{opacity:1;transform:none}}@keyframes menu-unfold{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes tide{0%{transform:rotateX(55deg)rotate(-25deg)scale(.92)}to{transform:rotateX(60deg)rotate(-15deg)scale(1.06)}}[data-motion-hidden=true] *{animation-play-state:paused!important}[data-lang=zh] .hero-statement,[data-lang=ja] .hero-statement{letter-spacing:-.035em;font-size:clamp(38px,4.7vw,74px);line-height:1.4}[data-lang=zh] .section-intro h2,[data-lang=ja] .section-intro h2{letter-spacing:-.025em;line-height:1.3}[data-lang=ja] .desktop-nav{gap:16px}@media (max-width:1150px){.desktop-nav{gap:18px}.nav-message{display:none}.atlas-nav-controls{gap:12px}.nav-identity{gap:14px}.section-intro{gap:50px}.case-layout{gap:40px}.case-notes{gap:30px;padding-top:20px}.repository-group,.experience-entry,.contact-composition{gap:60px}}@media (max-width:850px){:root{--gutter:32px}.desktop-nav{display:none}.atlas-nav-inner{min-height:58px;padding-inline:16px}.hero-layout{grid-template-columns:1.2fr 1fr;min-height:calc(100svh - 100px)}.hero-statement{font-size:clamp(42px,6vw,60px)}.hero-description{font-size:13px}.light-study{height:400px;margin-left:-20px}.study-caption{flex-direction:column;gap:0}.hero-intro{padding-block:30px}.hero-signal{margin-bottom:30px}.hero-copy{margin-top:25px}.section-intro{grid-template-columns:1fr 1fr;gap:35px;margin-bottom:40px}.section-intro h2{font-size:42px}.section-intro p{font-size:13px}.case-layout{grid-template-columns:1fr;gap:36px}.case-study-1 .case-heading,.case-study-1 .project-demo{grid-area:auto}.case-heading{grid-template-columns:1fr 1.2fr;gap:35px;display:grid}.case-meta{flex-direction:column;gap:5px}.case-role{margin-top:0}.case-heading h3{font-size:42px}.project-summary{font-size:15px}.case-notes{padding-top:0}.project-notes{margin-top:0}.project-notes-body{gap:35px}.repository-group{grid-template-columns:1fr 1.6fr;gap:35px}.experience-entry{gap:35px}.experience-entry>div:first-child{padding-left:0}.experience-logo{margin-bottom:24px;position:static}.education-list article{padding-inline:20px}.education-list article:before{left:20px}.education-list h3{font-size:20px}.profile-principles{gap:30px}.stack-list article{gap:35px}.contact-composition{gap:40px}.piano-interests{gap:35px}.contact-composition h2{font-size:60px}.contact-arrow{margin-left:0;display:block}.contact-page-grid{gap:50px}.contact-page-copy h1{font-size:48px}}@media (max-width:600px){:root{--gutter:22px}html{scroll-padding-top:72px}section[id],article[id]{scroll-margin-top:16px}.atlas-nav{padding:10px 12px}.atlas-nav-inner{gap:10px;padding-inline:13px}.wordmark{gap:9px;font-size:14px}.brand-mark{transform:scale(.85)}.language-option{min-width:28px}.atlas-nav-controls{gap:5px}.nav-identity{gap:9px}.menu-toggle{gap:7px;padding:7px 9px;font-size:10px}.menu-glyph i{width:12px}.hero-section{padding-top:92px}.hero-layout{grid-template-rows:auto minmax(190px,1fr) auto;grid-template-columns:1fr;align-items:center;min-height:calc(100svh - 92px);display:grid}.hero-intro{padding-top:5px;padding-bottom:0}.hero-signal{margin-bottom:18px;font-size:10px}.hero-statement{font-size:clamp(42px,11.5vw,66px);line-height:1.12}.hero-role{font-size:12px}.hero-description{max-width:45ch;font-size:13px}.hero-copy{margin-top:18px}.hero-actions{gap:20px;margin-top:18px}.primary-action,.text-action{gap:20px;font-size:12px}.light-study{width:100%;height:100%;min-height:190px;max-height:350px;margin:0;transform:none}.study-caption{flex-direction:row;inset-inline:0}.hero-bottom-line{gap:16px;padding-block:14px;font-size:10px}.hero-bottom-line a{gap:10px}.hero-bottom-line p{max-width:18ch}.section-intro{display:block}.section-intro h2{max-width:none;margin-bottom:24px;font-size:42px}.section-intro p{font-size:14px}.case-study{padding-block:60px}.case-heading{display:block}.case-meta{flex-direction:row;margin-bottom:25px;padding-bottom:20px;font-size:10px}.case-heading h3{font-size:42px}.case-study-0 .case-heading h3{font-size:66px}.case-role{margin-top:25px}.case-notes{display:block}.case-notes article{padding-block:24px}.case-notes article:last-child{padding-bottom:0}.case-notes h4{margin-bottom:12px;font-size:14px}.case-notes p{font-size:13px}.notes-label{display:block}.notes-label strong{font-size:13px}.notes-label small{margin-top:6px;display:block}.project-notes-trigger{gap:15px}.notes-action{gap:12px}.project-notes-body{display:block}.project-record-stack{margin-bottom:24px}.open-source-home{padding-block:80px}.repository-group{padding-block:30px;display:block}.repository-name{margin-bottom:32px}.repository-name h3{font-size:32px}.contribution-row h4{font-size:18px}.contribution-meta{font-size:10px}.experience-section{padding-block:78px 20px}.experience-entry{padding-block:34px;display:block}.experience-entry>div:first-child{margin-bottom:28px;padding-left:72px}.experience-logo{width:50px;height:50px;position:absolute}.experience-entry h3{font-size:23px}.entry-summary{font-size:15px}.education-section{padding-block:45px 70px}.education-list{display:block}.education-list article,.education-list article:first-child{border-left:0;padding:28px 0}.education-list article:before{left:0}.education-list article>div+div{margin-top:15px}.education-list h3{margin-block:18px 10px;font-size:24px}.profile-section{padding-top:70px}.profile-principles{display:block}.profile-principles article+article{margin-top:30px}.principle-art{height:180px}.piano-interests{grid-template-columns:1fr;gap:36px;padding-block:32px 70px}.piano-about h2{font-size:28px}.piano-keyboard{margin-block:26px}.piano-favorites a{gap:12px}.piano-track-title{font-size:18px}.stack-section{padding-block:60px 48px}.stack-list article{padding-block:26px;display:block}.stack-list ul{margin-top:22px}.stack-list li{padding:6px 10px;font-size:11px}.contact-section{padding-top:88px}#contact{scroll-margin-top:-72px}.contact-composition{flex-direction:column;justify-content:center;align-items:stretch;gap:0;min-height:auto;margin-block:32px 40px;display:flex}.contact-composition h2{margin-bottom:28px;font-size:60px}.contact-arrow{margin-left:15px;display:inline}.contact-composition p{font-size:14px}.home-footer,.route-footer{font-size:10px}.contact-page-grid{padding-top:120px;padding-bottom:65px;display:block}.contact-page-copy h1{font-size:48px}.contact-lens{display:none}.contact-socials{margin-top:30px}#contact-form{margin-top:48px}.form-grid{grid-template-columns:1fr;gap:0}.arrival-name{gap:18px;font-size:24px}[data-lang=zh] .hero-statement,[data-lang=ja] .hero-statement{font-size:clamp(32px,9.5vw,52px);line-height:1.45}[data-lang=ja] .contact-composition h2{font-size:46px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,:before,:after{transition:none!important;animation:none!important}.arrival{display:none}.light-study{transform:none}}@media (min-width:851px) and (max-height:800px){.hero-section{padding-top:95px}.hero-layout{min-height:calc(100svh - 95px)}.hero-intro{padding-block:22px 30px}.hero-signal{margin-bottom:23px}.hero-statement{font-size:clamp(48px,5.3vw,76px)}.hero-copy{margin-top:24px}.hero-description{font-size:13px}.hero-actions{margin-top:20px}.light-study{height:clamp(350px,66vh,580px)}.hero-bottom-line{padding-block:14px}}@media (max-width:600px){.hero-description,.case-notes p,.experience-entry ul,.profile-principles p{font-size:14px}}@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-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-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}
.project-demo{--demo-bg:#eef1f5;background:var(--demo-bg);color:#242a34;border-radius:8px;min-width:0;padding:32px;position:relative;overflow:hidden}.project-demo figcaption>span{color:#5b6470;font-size:10px}.project-demo h4{letter-spacing:-.035em;margin-top:12px;font-size:22px;font-weight:500;line-height:1.4}.demo-0{--demo-bg:#202631;color:#f2f5fa;background:linear-gradient(135deg,#303b4b,#171d27);box-shadow:inset 0 1px #ffffff20}.demo-0 figcaption>span{color:#b4bdcb}.demo-2{--demo-bg:#f9fafb}.demo-3{--demo-bg:#f3f2f6}.evidence-art{perspective:800px;height:285px;margin:10px -20px 0;position:relative}.evidence-light{filter:blur(36px);background:#a4c4ff44;height:70px;position:absolute;top:45%;left:5%;right:5%;transform:rotate(-20deg)}.evidence-sheet{top:47px;left:calc(9% + var(--sheet) * 21%);width:43%;height:176px;transform:rotateY(-26deg) rotateX(10deg) rotateZ(-16deg) translateY(calc(var(--sheet) * 6px));transition:transform .8s var(--ease),background .6s;background:linear-gradient(135deg,#ffffff70,#ccd9ec25 60%,#0d152228);border-radius:6px;padding:16px;position:absolute;box-shadow:inset 1px 1px #ffffff80,0 15px 25px #03070e50}.evidence-sheet[data-active=true]{background:linear-gradient(135deg,#ffffffa0,#b8cae44a 70%,#768ba133);transform:rotateY(-26deg)rotateX(10deg)rotate(-16deg)translateY(-20px)}.sheet-index{opacity:.7;font-size:9px;display:block}.evidence-sheet strong{margin-top:8px;font-size:18px;font-weight:500;display:block}.sheet-lines{flex-direction:column;gap:9px;margin-top:20px;display:flex}.sheet-lines i{background:#eaf1ff80;width:80%;height:1px;display:block}.sheet-lines i:nth-child(2){width:60%}.sheet-node{background:#dce8ff;border-radius:50%;width:6px;height:6px;position:absolute;bottom:17px;right:17px;box-shadow:0 0 12px #b3d1ff}.flow-art{margin:28px 0 36px;padding-left:10px;position:relative}.flow-stop{align-items:center;gap:23px;min-height:95px;display:flex;position:relative}.flow-dot{background:#e6ebf3;border:1px solid #8a96a7;border-radius:50%;flex:0 0 15px;width:15px;height:15px;transition:background .4s,box-shadow .4s}.flow-stop small{color:#626e7d;font-size:10px}.flow-stop strong{letter-spacing:-.03em;font-size:20px;font-weight:500;display:block}.flow-symbol{width:38px;height:38px;transition:transform .6s var(--ease);background:#fff8;border-radius:50%;place-items:center;margin-left:auto;font-size:20px;display:grid}.flow-stop[data-active=true] .flow-dot{background:#335bd6;box-shadow:0 0 0 6px #335bd610}.flow-stop[data-active=true] .flow-symbol{background:#fff;transform:rotate(-15deg)}.flow-art>p{color:#535f70;margin:24px 0 0 38px;font-size:10px}.network-art svg{width:100%;height:285px}.network-node{opacity:.25;transition:opacity .5s}.network-node[data-active=true]{opacity:1;color:#335bd6}.network-node[data-active=true] path:first-child{stroke-dasharray:4 7}.network-labels{color:#556172;justify-content:space-between;gap:20px;margin-bottom:30px;font-size:10px;display:flex}.studio-art{--top:18px;--drawing:100px;--band:34px;--lens-r:80px;--lens-y-rest:calc(var(--top) + (var(--drawing) + var(--band)) / 2);height:236px;margin-top:10px;position:relative}.studio-layer{padding-top:var(--top);color:#16181b;grid-template-columns:repeat(3,1fr);align-items:start;display:grid;position:absolute;inset:0 0 34px}.studio-app{grid-template-rows:var(--drawing) var(--band) auto;justify-items:center;min-width:0;display:grid}.studio-app svg{stroke:currentColor;stroke-width:1.4px;grid-row:1;width:auto;max-width:94%;height:100%}.studio-name{color:#5b6470;grid-row:3;margin-top:14px;font-size:11px;transition:color .4s}.studio-app[data-active=true] .studio-name{color:#16181b}.studio-line{text-align:center;text-wrap:balance;letter-spacing:.01em;grid-row:2;align-self:center;max-width:min(100%,10.5em);padding-inline:4px;font-size:11px;line-height:1.35}.studio-fill{fill:var(--demo-bg)}.studio-soft{opacity:.42}.studio-accent{fill:var(--demo-bg)}.studio-flow{stroke-dasharray:3 5}.studio-lens{color:#f4efff;clip-path:circle(var(--lens-r) at var(--lens-x,var(--lens-rest-x)) var(--lens-y,var(--lens-y-rest)));transition:clip-path .8s var(--ease);background:#5b3f9e}.studio-lens .studio-line{color:#f4efff}.studio-lens .studio-fill{fill:#7056b8}.studio-lens .studio-accent{fill:#d8ccf5}.studio-lens-rim{left:var(--lens-x,var(--lens-rest-x));top:var(--lens-y,var(--lens-y-rest));width:calc(var(--lens-r) * 2);aspect-ratio:1;pointer-events:none;transition:left .8s var(--ease),top .8s var(--ease);border-radius:50%;position:absolute;translate:-50% -50%;box-shadow:inset 0 0 0 1px #fff6,0 18px 34px -14px #2c1f5299}.studio-art[data-following=true] :is(.studio-lens,.studio-lens-rim){transition-duration:.14s;transition-timing-function:linear}.studio-signature{color:#5b6470;justify-content:flex-end;align-items:center;gap:8px;margin:0;font-size:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.studio-mark{width:18px;height:18px}.studio-mark-ground{fill:#16181b}.studio-mark-petals path{fill:#fbfbfa;stroke:#16181b}@keyframes studio-flow{to{stroke-dashoffset:-16px}}.project-demo[data-scene-visible=false] .studio-flow{animation-play-state:paused}.demo-interaction{margin-top:24px;position:relative}.demo-instruction{color:#5c6571;margin-bottom:12px;font-size:10px}.demo-0 .demo-instruction{color:#bac3d0}.stage-controls{flex-wrap:wrap;gap:8px;display:flex}.stage-controls button{background:0 0;border:1px solid #bac3cf;border-radius:4px;flex:auto;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 12px;font-size:11px;transition:background .3s,color .3s;display:flex}.stage-controls button span{font-size:14px}.stage-controls button[aria-pressed=true]{color:#fff;background:#242a34;border-color:#242a34}.demo-0 .stage-controls button{border-color:#5e6b7d}.demo-0 .stage-controls button[aria-pressed=true]{color:#172031;background:#e5ecf7;border-color:#e5ecf7}.stage-description{color:#4e5a6b;min-height:60px;margin-top:20px;font-size:12px;line-height:1.9}.demo-0 .stage-description{color:#c1ccdb}.demo-note{color:#5a6573;margin-top:16px;font-size:10px;line-height:1.8}@media (max-width:1150px){.project-demo{padding:25px}.project-demo h4{font-size:20px}.evidence-art{height:260px}.evidence-sheet{height:165px}.evidence-sheet strong{font-size:15px}}@media (min-width:601px) and (max-width:850px){.project-demo{padding:35px}.evidence-art{max-width:500px;height:285px;margin-inline:auto}.flow-art{max-width:450px;margin-inline:auto}.network-art svg{height:280px}}@media (max-width:600px){.studio-art{--top:14px;--drawing:74px;--band:40px;--lens-r:60px;height:196px}.studio-line,.studio-name{font-size:10px}.project-demo{padding:24px 20px}.project-demo h4{font-size:21px}.evidence-art{height:240px;margin-inline:-10px}.evidence-sheet{left:calc(5% + var(--sheet) * 22%);width:46%;height:155px;padding:12px}.evidence-sheet strong{font-size:15px}.stage-controls{gap:6px}.stage-controls button{gap:6px;padding:9px;font-size:10px}.stage-description{min-height:0}.flow-stop{gap:18px}.flow-stop strong{font-size:18px}.network-art svg{height:240px}}.project-demo[data-entered=true] .evidence-light{animation:light-passage 4s var(--ease) both}@keyframes light-passage{0%{opacity:.2;transform:translateY(-30px)rotate(-25deg)}to{opacity:1;transform:translateY(20px)rotate(-15deg)}}@media (prefers-reduced-motion:reduce){.project-demo *,.project-demo :before,.project-demo :after{transition:none!important;animation:none!important}}
.demo-toolbar{z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;margin-top:22px;display:flex;position:relative}.demo-toolbar p{color:#515d6f;align-items:center;gap:8px;font-size:11px;display:flex}.demo-0 .demo-toolbar p{color:#c6d1e1}.interaction-dot{background:currentColor;border-radius:50%;flex:0 0 5px;width:5px;height:5px}.evidence-art{margin-top:32px}.evidence-sheet{left:calc(2% + var(--sheet) * 32%);color:#14243a;text-align:left;transform-origin:50% 80%;width:30%;transition:transform .8s var(--ease),background .5s,box-shadow .5s;background:linear-gradient(135deg,#c9d5e5ee,#a9bed6b8 55%,#5b729a55)}.sheet-index{opacity:1;color:#263b58;justify-content:space-between;align-items:center;display:flex}.sheet-index>span{border:1px solid #172a4544;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;display:grid}.evidence-sheet[data-active=true]{background:linear-gradient(135deg,#eef4ff,#b9cfe6c9 65%,#718aab66);transform:rotateY(-12deg)rotateX(4deg)rotate(-10deg)translateY(-34px);box-shadow:inset 1px 1px #fff,0 26px 32px #03070e70}.evidence-sheet:focus-visible{outline-offset:6px;outline:2px solid #c6d8ff}@media (hover:hover){.evidence-art:hover .evidence-sheet:not([data-active=true]){transform:rotateY(-18deg)rotate(-10deg)translateY(10px)}.evidence-sheet:hover{background:linear-gradient(135deg,#eef4ff,#b9cfe6c9 65%,#718aab66)}}.project-demo[data-entered=true] .evidence-sheet[data-active=true] .sheet-lines i{transform-origin:0;animation:evidence-trace .8s var(--ease) both}.sheet-lines i:nth-child(2){animation-delay:90ms!important}.sheet-lines i:nth-child(3){animation-delay:.18s!important}.flow-stop{text-align:left;isolation:isolate;background:0 0;width:100%;padding:10px 12px 10px 0}.flow-stop:before{content:"";z-index:-1;opacity:0;transform-origin:0;transition:opacity .35s,transform .6s var(--ease);background:#fff;border-radius:6px;position:absolute;inset:7px 0 7px 27px;transform:scaleX(.94)}.flow-stop:hover:before{opacity:.6}.flow-stop[data-active=true]:before{opacity:1;transform:scaleX(1)}.flow-copy{flex:1;min-width:0}.flow-symbol{flex-shrink:0}.flow-dot{position:relative}.flow-rail{pointer-events:none;z-index:-1;background:#a7b0be;width:1px;position:absolute;top:0;bottom:0;left:7px;overflow:hidden}.flow-stop:first-of-type .flow-rail{top:50%}.flow-stop:last-of-type .flow-rail{bottom:50%}.flow-stop[data-active=true] .flow-symbol{color:#335bd6;background:#edf1fb;transform:rotate(0)scale(1.1)}.network-map{position:relative}.network-map svg{display:block}.network-switch{background:var(--demo-bg);border:1px solid #c4cede;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:98px;min-height:84px;padding:8px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 7px #f9fafb9c}.network-switch>span{transition:transform .6s var(--ease);font-size:30px;line-height:1;display:block}.network-switch small{font-size:9px}.network-switch:hover>span{transform:rotate(100deg)}.network-switch:active{scale:.94}.network-node rect{transition:fill .5s}.network-node[data-active=true] rect{fill:#e2e9fb}.project-demo[data-entered=true] .network-node[data-active=true] path:first-child{stroke-dasharray:8 10}.stage-controls button{text-align:left;transition:background .3s,color .3s,transform .3s var(--ease);gap:8px;font-size:11px;position:relative;overflow:hidden}.stage-controls button:hover{transform:translateY(-3px)}.stage-controls .stage-number{opacity:.75;font-size:9px}.stage-controls .stage-check{margin-left:auto;font-size:11px}.stage-description{min-height:80px;margin-top:20px;display:grid}.stage-description>p{visibility:hidden;grid-area:1/1;align-items:baseline;gap:18px;display:flex}.stage-description>p[data-active=true]{visibility:visible;animation:stage-refocus .6s var(--ease) both}.description-index{color:#8794a6;font-size:30px;font-weight:400;line-height:1.2}.demo-0 .description-index{color:#aabbd1}.project-demo[data-selection=auto] .stage-controls button[aria-pressed=true]:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;animation:5s linear both stage-timer;position:absolute;bottom:0;left:0}.project-demo:is([data-paused],[data-scene-visible=false]) .stage-controls button[aria-pressed=true]:after,.case-study[data-covered=true] .stage-controls button[aria-pressed=true]:after{animation-play-state:paused}@keyframes stage-timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.project-demo[data-scene-visible=false] *{animation-play-state:paused!important}.contact-ripples i{transform:scale(calc(.8 + var(--material-progress,.5) * .4))}.contact-ripples i:nth-child(2n){transform:scale(calc(1.2 - var(--material-progress,.5) * .4))}.contact-ripples i{animation:7s ease-in-out infinite alternate water-breathe}.contact-ripples i:nth-child(2n){animation-delay:-4s}.open-source-home[data-revealed=true] .gate-rail:after{animation:gate-reach 1.4s var(--ease) .2s both}.open-source-home[data-revealed=true] .gate-node{animation:gate-settle .5s var(--ease) calc(.25s + var(--at) * 1.1s) both}.open-source-home:not([data-in-view=true]) .gate-node:after{animation-play-state:paused}.principle-art svg{stroke:currentColor;stroke-width:1.3px;width:min(250px,80%);height:auto;transition:transform .7s var(--ease)}.profile-principles article:hover .principle-art svg{transform:scale(1.035)}.principle-art text{fill:currentColor;stroke:none;font-size:25px;font-weight:500}.pa-soft{opacity:.4}.pa-accent{fill:var(--accent);stroke:var(--accent)}.profile-principles article[data-revealed=true] .pa-loose{animation:pa-loose 1.6s var(--ease) .2s both}.profile-principles article[data-revealed=true] .pa-module{animation:pa-module .9s var(--ease) calc(.35s + var(--i) * .18s) both}.pa-attempt,.pa-retry{stroke:var(--accent);stroke-width:2.2px;stroke-dasharray:100}.pa-checkpoint{fill:#eef0f3}.pa-checkpoint[data-saved=true]{fill:var(--accent);stroke:var(--accent)}.pa-fault{stroke:#b4442f;stroke-width:2px}.pa-resume{stroke:var(--accent)}.pa-done{stroke:var(--accent);stroke-width:2px}.principle-art-1 .pa-run{animation:8s linear infinite pa-cycle}.principle-art-1 .pa-attempt{animation:8s linear infinite pa-attempt}.principle-art-1 .pa-fault{animation:8s linear infinite pa-fault}.principle-art-1 .pa-resume{animation:8s linear infinite pa-resume}.principle-art-1 .pa-retry{animation:8s linear infinite pa-retry}.principle-art-1 .pa-done{animation:8s linear infinite pa-done}.pa-layer{fill:#f7f8f9}.pa-carrier{fill:var(--accent);stroke:none}.principle-art-2 .pa-carrier{animation:5s linear infinite pa-carry}.principle-art-2 .pa-layer{animation:pa-layer 5s linear calc(var(--i) * 1s) infinite}.pa-tile rect{fill:#f7f8f9}.principle-art-3 .pa-tile{animation:pa-tile 9s var(--ease) calc(var(--i) * 3s) infinite}.principle-art-3 .pa-tile rect{animation:pa-tile-edge 9s var(--ease) calc(var(--i) * 3s) infinite}.profile-principles article:not([data-in-view=true]) .principle-art *,.contact-section:not([data-in-view=true]) .contact-ripples i{animation-play-state:paused}@media (min-width:1000px) and (prefers-reduced-motion:no-preference){.evidence-art{transform:perspective(1000px) rotateX(calc((.5 - var(--scene-progress,.5)) * 20deg))}}.light-study canvas{cursor:grab;touch-action:pan-y pinch-zoom}.light-study[data-dragging=true] canvas{cursor:grabbing}.study-interaction{pointer-events:none;justify-content:center;display:flex;position:absolute;inset:auto 2% 0 auto}.study-interaction>span{color:#5d6269;font-size:10px}.light-study:not([data-rendered=true]) .study-interaction{visibility:hidden}.project-notes{border:1px solid var(--line);background:color-mix(in srgb,var(--text) 3%,transparent);border-radius:8px;transition:background .35s,border-color .35s}.project-notes:hover{border-color:color-mix(in srgb,var(--text) 40%,transparent)}.project-notes[data-enhanced=true]{interpolate-size:numeric-only;overflow:clip}.project-notes[data-enhanced=true]::details-content{height:auto;transition:none}.project-notes-trigger{padding:20px 26px}.project-notes-trigger:focus-visible{outline-offset:-5px;border-radius:8px}.notes-label strong{font-size:16px}.notes-label small{font-size:12px}.notes-toggle-icon{background:var(--text);width:44px;height:44px;color:var(--page-bg);transition:transform .55s var(--ease);border-radius:50%;display:block;position:relative}.notes-toggle-icon i{background:currentColor;width:16px;height:1px;position:absolute;top:22px;left:14px}.notes-toggle-icon i+i{transition:transform .4s var(--ease);transform:rotate(90deg)}.project-notes-trigger:hover .notes-toggle-icon{transform:rotate(90deg)}.project-notes[open] .notes-toggle-icon i+i{transform:rotate(0)}.project-notes[open] .notes-toggle-icon{transform:rotate(180deg)}.project-notes-body{padding:14px 26px 34px}.project-notes[open] .project-record-stack,.project-notes[open] .project-notes-body li{animation:notes-unfold .6s calc(var(--note-order,0) * 45ms) var(--ease) both}.site-menu[open]{animation:none}.site-menu:before{content:"";aspect-ratio:1;pointer-events:none;border:1px solid #b8c3d044;border-radius:50%;width:min(65vw,650px);position:absolute;top:18%;left:-28%;box-shadow:0 0 0 50px #b8c3d011,0 0 0 100px #b8c3d00a}.site-menu nav{position:relative}.site-menu[open] nav a{animation:menu-row .7s calc(80ms + var(--menu-order) * 45ms) var(--ease) both}.site-menu nav a small{letter-spacing:0;color:var(--muted);align-self:center;min-width:22px;font-size:11px}.site-menu nav a>span{transition:transform .45s var(--ease);margin-left:auto}.site-menu nav a:hover>span{transform:rotate(45deg)}.site-menu nav a:hover{padding-inline:8px}.menu-toggle:active{transform:scale(.95)}.oss-record-selector button{isolation:isolate;position:relative}.oss-record-selector button[aria-selected=true]{background:0 0}.oss-record-selector button:hover{color:var(--text)}.oss-record-selector .oss-selection{z-index:-1;border-left:2px solid var(--accent);transform-origin:top;background:#e9edf3;position:absolute;inset:0}.oss-record-selector .oss-record-open{transition:transform .4s var(--ease);align-self:center;margin-left:auto;font-size:16px}.oss-record-selector button:hover .oss-record-open{transform:translate(3px,-3px)}.oss-reader-jump{border:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:16px;font-size:12px;transition:background .3s;display:flex}.oss-reader-jump:hover{background:#fff}.oss-panels{scroll-margin-top:104px}@keyframes evidence-trace{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes gate-wait{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}@keyframes gate-reach{0%{transform:scaleX(0)}}@keyframes gate-settle{0%{transform:scale(0)}}@keyframes pa-loose{to{opacity:.45}}@keyframes pa-module{0%{opacity:0;transform:translate(-26px)}}@keyframes pa-cycle{0%{opacity:0}4%,92%{opacity:1}to{opacity:0}}@keyframes pa-attempt{0%,4%{stroke-dashoffset:100px}36%,to{stroke-dashoffset:0}}@keyframes pa-fault{0%,36%{opacity:0}40%,to{opacity:1}}@keyframes pa-resume{0%,44%{opacity:0}50%,to{opacity:1}}@keyframes pa-retry{0%,50%{stroke-dashoffset:100px}76%,to{stroke-dashoffset:0}}@keyframes pa-done{0%,76%{opacity:0}81%,to{opacity:1}}@keyframes pa-carry{0%{opacity:0;transform:translateY(0)}6%{opacity:1}80%{opacity:1;transform:translateY(-110px)}90%,to{opacity:0;transform:translateY(-110px)}}@keyframes pa-layer{0%,4%,22%,to{stroke:currentColor}9%,16%{stroke:var(--accent)}}@keyframes pa-tile{0%,30%,to{transform:none}7%,23%{transform:translateY(-8px)}}@keyframes pa-tile-edge{0%,30%,to{stroke:currentColor}7%,23%{stroke:var(--accent)}}@keyframes stage-refocus{0%{opacity:.1;filter:blur(3px);transform:translate(24px)}to{opacity:1;filter:blur();transform:none}}@keyframes water-breathe{0%{opacity:.5;scale:.92}to{opacity:1;scale:1.08}}@keyframes notes-unfold{0%{opacity:.2;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes menu-row{0%{opacity:0;transform:translateY(36px)rotateX(-25deg)}to{opacity:1;transform:none}}@media (max-width:850px){.study-interaction{bottom:66px}.demo-toolbar{gap:10px}}@media (max-width:600px){.study-interaction{gap:5px;bottom:42px}.study-interaction>span{font-size:9px}.demo-toolbar{margin-top:18px}.demo-toolbar p{font-size:11px;line-height:1.7}.evidence-art{margin-top:30px}.evidence-sheet{padding:10px}.evidence-sheet strong{font-size:12px}.stage-controls{flex-direction:column;gap:5px}.stage-controls button{gap:12px;min-height:44px;padding:10px 14px;font-size:12px}.stage-description{min-height:80px;font-size:13px}.description-index{font-size:26px}.project-notes-trigger{padding:18px}.notes-label strong{font-size:14px}.notes-label small{font-size:11px}.notes-action{gap:10px}.notes-action>span:first-child{display:none}.project-notes-body{padding:8px 18px 28px}.network-switch{width:82px;min-height:72px}.network-switch small{font-size:8px}.oss-panels{scroll-margin-top:88px}}@media (prefers-reduced-motion:reduce){.stage-controls button:after{display:none}.evidence-sheet,.evidence-sheet[data-active=true]{transform:rotateY(-20deg)rotate(-12deg)}.flow-stop[data-active=true]{transform:none}.project-notes[open] .project-record-stack,.project-notes[open] .project-notes-body li{opacity:1}}
.project-demo{--loop:2.5s}.sheet-lines{position:relative}.sheet-lines u,.sheet-lines b{opacity:0;pointer-events:none;position:absolute;left:0}.sheet-lines u{top:calc(var(--n) * 10px - .5px);transform-origin:0;background:#14243a;border-radius:1px;width:80%;height:2px;transform:scaleX(0)}.sheet-lines b{top:calc(var(--n) * 10px - 4px);box-sizing:border-box;border-right:1.5px solid #14243a;width:80%;height:9px;transform:translate(-100%)}.sheet-lines :is(u,b):nth-of-type(2){width:60%}.sheet-mark{pointer-events:none;width:12px;height:12px;position:absolute;overflow:visible}.sheet-mark:first-of-type{top:-5.5px;left:calc(80% + 8px)}.sheet-mark:nth-of-type(2){top:4.5px;left:calc(60% + 8px)}.sheet-mark path{fill:none;stroke:#14243a;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100px;opacity:0}.sheet-glow{opacity:0;pointer-events:none;background:radial-gradient(circle at 78% 78%,#fff,#ffffffb0 28%,#0000 72%);border-radius:6px;position:absolute;inset:0}.sheet-ring{pointer-events:none;width:40px;height:40px;position:absolute;bottom:0;right:0;overflow:visible}.sheet-ring circle{fill:none;stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:50%}.evidence-flight{--x0:26.5%;--x1:36%;--y0:65%;--y1:47.5%;--dx:calc(var(--x1) - var(--x0));--dy:calc(var(--y1) - var(--y0));pointer-events:none;position:absolute;inset:0}.flight-target{pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0}.flight,.flight>span{position:absolute;inset:0}.flight b{left:var(--x0);top:var(--y0);opacity:0;background:#fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;box-shadow:0 0 0 1.5px #14243a99,0 0 12px 2px #b6c8ffcc}.flight-stop{left:calc(var(--x0) + var(--dx) * .6 + 12px);top:calc(var(--y0) + var(--dy) * .6);opacity:0;background:#fff;border-radius:1px;width:2px;height:18px;margin-top:-9px;position:absolute;box-shadow:0 0 8px #b6c8ff}.flow-lane{z-index:-1;pointer-events:none;width:7px;position:absolute;top:0;bottom:0;left:4px}.flow-lane>span{opacity:0;position:absolute;inset:0}.flow-lane b{background:#335bd6;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;left:-1px;box-shadow:0 -12px 8px -3px #335bd699}.flow-lane>span:nth-child(2) b{box-sizing:border-box;background:#eef1f5;border:1.5px solid #335bd6;box-shadow:0 12px 8px -3px #335bd666}.flow-dot i{opacity:0;pointer-events:none;background:radial-gradient(circle,#335bd655 30%,#335bd61f 58%,#0000 70%);border-radius:50%;position:absolute;inset:-13px}.flow-wash{z-index:-1;opacity:0;pointer-events:none;background:radial-gradient(55% 130% at 0,#335bd62e,#335bd612 55%,#0000);border-radius:6px;position:absolute;inset:7px 0 7px 27px}.flow-stream{z-index:-1;opacity:0;pointer-events:none;width:7px;height:calc(50% + 34px);position:absolute;top:50%;left:4px;overflow:visible;-webkit-mask-image:linear-gradient(#0000,#000 22% 72%,#0000);mask-image:linear-gradient(#0000,#000 22% 72%,#0000)}.flow-stream line{stroke:#335bd6;stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:0 12}.network-node{--k:0}.net-ripple,.net-train,.net-average,.net-candidate{fill:none;stroke:#335bd6;opacity:0}.net-ripple,.net-train{stroke-width:1.6px;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:50%}.net-average{stroke-width:1.5px;transform-box:fill-box;transform-origin:50%}.net-candidate{stroke-width:1.2px;stroke-dasharray:3 3}.net-send,.net-back,.net-report{fill:#335bd6;opacity:0}.studio-sheen{fill:currentColor;stroke:none;opacity:0}.studio-tick{opacity:0}.studio-spin{transform-origin:68px 68px}.studio-arm{transform-origin:134px 22px}.studio-glow,.studio-packet{fill:currentColor;stroke:none;opacity:0}.studio-packet{transform-box:fill-box;transform-origin:50%}.studio-read{fill:currentColor;stroke:none;opacity:0}@media (prefers-reduced-motion:no-preference){.demo-0 .evidence-sheet[data-active=true] .sheet-lines u{animation:ink var(--loop) linear calc(var(--n) * .3s) infinite}.demo-0 .evidence-sheet[data-active=true] .sheet-lines b{animation:caret-pass var(--loop) linear calc(var(--n) * .3s) infinite}.demo-0 .evidence-sheet[data-active=true] .sheet-lines b:nth-of-type(3){animation-name:caret-rest}.demo-0[data-stage="0"] .evidence-sheet[data-active=true] .sheet-node{animation:node-beat var(--loop) ease-in-out infinite}.demo-0[data-stage="0"] .evidence-sheet[data-active=true] .sheet-glow{animation:glow-impact var(--loop) ease-in-out infinite}.demo-0[data-stage="1"] .evidence-sheet:first-of-type .sheet-node{animation:node-send var(--loop) ease-in-out infinite}.demo-0[data-stage="1"] .flight-a b{animation:token-a var(--loop) linear infinite}.demo-0[data-stage="1"] .flight-a{animation:flight-x-a var(--loop) cubic-bezier(.5,0,.85,.6) infinite}.demo-0[data-stage="1"] .flight-a>span{animation:flight-y-a var(--loop) cubic-bezier(.15,.4,.5,1) infinite}.demo-0[data-stage="1"] .flight-b b{animation:token-b var(--loop) linear infinite}.demo-0[data-stage="1"] .flight-b{animation:flight-x-b var(--loop) cubic-bezier(.5,0,.85,.6) infinite}.demo-0[data-stage="1"] .flight-b>span{animation:flight-y-b var(--loop) cubic-bezier(.15,.4,.5,1) infinite}.demo-0[data-stage="1"] .flight-stop{animation:flight-stop var(--loop) linear infinite}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-lines u:first-of-type{animation:attempt-ink-1 var(--loop) linear infinite}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-lines u:nth-of-type(2){animation:attempt-ink-2 var(--loop) linear infinite}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-lines u:nth-of-type(3){animation:none}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-mark:first-of-type path{animation:mark-done var(--loop) linear infinite}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-mark:nth-of-type(2) path{animation:mark-stopped var(--loop) linear infinite}.demo-0[data-stage="1"] .evidence-sheet[data-active=true] .sheet-glow{animation:glow-attempt var(--loop) ease-in-out infinite}.demo-0[data-stage="2"] .evidence-sheet[data-active=true] .sheet-node{animation:node-beat var(--loop) ease-in-out infinite}.demo-0[data-stage="2"] .evidence-sheet[data-active=true] .sheet-glow{animation:glow-impact var(--loop) ease-in-out infinite}.demo-0[data-stage="2"] .evidence-sheet[data-active=true] .sheet-ring circle{animation:ring-spread var(--loop) ease-out infinite}.demo-1[data-stage="0"] .flow-stop:first-of-type .flow-dot i:first-child{animation:ping var(--loop) ease-out .15s infinite}.demo-1[data-stage="0"] .flow-stop:first-of-type .flow-lane>span:first-child{animation:leg-down-out var(--loop) ease-in-out .55s infinite}.demo-1[data-stage="0"] .flow-stop:nth-of-type(2) .flow-lane>span:first-child{animation:leg-down-in var(--loop) ease-in-out 1s infinite}.demo-1[data-stage="0"] .flow-stop:nth-of-type(2) .flow-dot i:first-child{animation:ping var(--loop) ease-out 1.4s infinite}.demo-1[data-stage="0"] .flow-stop:first-of-type .flow-wash{animation:wash var(--loop) ease-in-out .15s infinite}.demo-1[data-stage="0"] .flow-stop:nth-of-type(2) .flow-wash{animation:wash var(--loop) ease-in-out 1.4s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(2) .flow-lane>span:first-child{animation:leg-down-out var(--loop) ease-in-out .2s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(3) .flow-lane>span:first-child{animation:leg-down-in var(--loop) ease-in-out .65s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(3) .flow-dot i:first-child{animation:ping var(--loop) ease-out 1.05s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(3) .flow-lane>span:last-child{animation:leg-up-out var(--loop) ease-in-out 1.1s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(2) .flow-lane>span:last-child{animation:leg-up-in var(--loop) ease-in-out 1.55s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(2) .flow-dot i:first-child{animation:ping var(--loop) ease-out 2s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(2) .flow-dot i:last-child{animation:ping var(--loop) ease-out 2.18s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(3) .flow-wash{animation:wash var(--loop) ease-in-out 1.05s infinite}.demo-1[data-stage="1"] .flow-stop:nth-of-type(2) .flow-wash{animation:wash var(--loop) ease-in-out 2s infinite}.demo-1[data-stage="2"] .flow-stop:nth-of-type(3) .flow-dot i:first-child{animation:ping var(--loop) ease-out .1s infinite}.demo-1[data-stage="2"] .flow-stop:nth-of-type(3) .flow-dot i:last-child{animation:ping var(--loop) ease-out 1.3s infinite}.demo-1[data-stage="2"] .flow-stop:nth-of-type(3) .flow-wash{animation:wash-twice var(--loop) ease-in-out .1s infinite}.demo-1[data-stage="2"] .flow-stream{animation:stream-visible var(--loop) linear infinite}.demo-1[data-stage="2"] .flow-stream line{animation:stream-run var(--loop) linear infinite}.demo-1[data-stage="2"] .flow-stop:nth-of-type(3) .flow-symbol{animation:symbol-pop var(--loop) ease-in-out infinite}.network-node[data-active=true] rect{transition-delay:calc(.7s + var(--k) * 80ms)}.net-ripple{animation:.8s ease-out both net-ripple}.net-report{animation:net-back .4s ease-in-out calc(.15s + var(--k) * 20ms) both}.net-candidate{animation:1.2s ease-out .15s both net-candidate}.net-send{animation:net-send .45s ease-in-out calc(.85s + var(--k) * 60ms) both}.net-train{animation:net-train .6s ease-out calc(1.25s + var(--k) * 60ms) both}.net-back{animation:net-back .45s ease-in-out calc(1.65s + var(--k) * 60ms) both}.net-average{animation:.45s ease-in-out 2s both net-average}.demo-3[data-stage="0"] .studio-app:first-child .studio-spin{animation:3s linear infinite studio-spin}.demo-3[data-stage="0"] .studio-app:first-child .studio-sheen{opacity:.1}.demo-3[data-stage="0"] .studio-app:first-child .studio-tick{opacity:1}.demo-3[data-stage="0"] .studio-app:first-child .studio-arm{animation:studio-arm var(--loop) ease-in-out infinite}.demo-3[data-stage="0"] .studio-app:first-child .studio-flow,.demo-3[data-stage="1"] .studio-app:nth-child(2) .studio-flow{animation:1.8s linear infinite studio-flow}.demo-3[data-stage="1"] .studio-app:nth-child(2) .studio-packet{animation:studio-send var(--loop) linear infinite}.demo-3[data-stage="1"] .studio-app:nth-child(2) .studio-sent{animation:studio-sent var(--loop) ease-in-out infinite}.demo-3[data-stage="1"] .studio-app:nth-child(2) .studio-arrived{animation:studio-arrived var(--loop) ease-in-out infinite}.demo-3[data-stage="2"] .studio-app:nth-child(3) .studio-page{animation:studio-page var(--loop) ease-in-out infinite}.demo-3[data-stage="2"] .studio-app:nth-child(3) .studio-read{animation:studio-read var(--loop) ease-in-out infinite}}@keyframes ink{0%{opacity:0;transform:scaleX(0)}3%{opacity:.75}20%{transform:scaleX(1)}72%{opacity:.75;transform:scaleX(1)}92%,to{opacity:0;transform:scaleX(1)}}@keyframes caret-pass{0%{opacity:0;transform:translate(-100%)}3%{opacity:1}20%{opacity:1;transform:translate(0)}24%,to{opacity:0;transform:translate(0)}}@keyframes caret-rest{0%{opacity:0;transform:translate(-100%)}3%{opacity:1}20%{opacity:1;transform:translate(0)}34%{opacity:1}34.1%,46%{opacity:0}46.1%,58%{opacity:1}58.1%,70%{opacity:0}70.1%,76%{opacity:1}76.1%,to{opacity:0;transform:translate(0)}}@keyframes node-send{0%,8%,24%,to{transform:scale(1)}14%{transform:scale(2)}}@keyframes node-beat{0%,44%,64%,to{transform:scale(1)}52%{transform:scale(2)}}@keyframes flight-x-a{0%,14%{transform:translate(0)}38%,to{transform:translateX(var(--dx))}}@keyframes flight-y-a{0%,14%{transform:translateY(0)}38%,to{transform:translateY(var(--dy))}}@keyframes token-a{0%,14%{opacity:0}17%{opacity:1}35%{opacity:1}41%,to{opacity:0}}@keyframes flight-x-b{0%,46%{transform:translate(0)}64%,to{transform:translateX(calc(var(--dx) * .6))}}@keyframes flight-y-b{0%,46%{transform:translateY(0)}64%,to{transform:translateY(calc(var(--dy) * .6))}}@keyframes token-b{0%,46%{opacity:0}49%{opacity:1}62%{opacity:1}68%,to{opacity:0}}@keyframes flight-stop{0%,62%{opacity:0}66%{opacity:1}80%{opacity:1}90%,to{opacity:0}}@keyframes attempt-ink-1{0%,38%{opacity:0;transform:scaleX(0)}41%{opacity:.75}54%{opacity:.75;transform:scaleX(1)}90%{opacity:.75;transform:scaleX(1)}98%,to{opacity:0;transform:scaleX(1)}}@keyframes attempt-ink-2{0%,68%{opacity:0;transform:scaleX(0)}71%{opacity:.75}82%{opacity:.75;transform:scaleX(1)}90%{opacity:.75;transform:scaleX(1)}98%,to{opacity:0;transform:scaleX(1)}}@keyframes mark-done{0%,52%{opacity:0;stroke-dashoffset:100px}53%{opacity:1}62%{stroke-dashoffset:0}90%{opacity:1;stroke-dashoffset:0}98%,to{opacity:0;stroke-dashoffset:0}}@keyframes mark-stopped{0%,80%{opacity:0;stroke-dashoffset:100px}81%{opacity:1}89%{stroke-dashoffset:0}92%{opacity:1;stroke-dashoffset:0}99%,to{opacity:0;stroke-dashoffset:0}}@keyframes glow-attempt{0%,36%{opacity:0}44%{opacity:.55}60%{opacity:0}72%{opacity:0}78%{opacity:.4}92%,to{opacity:0}}@keyframes glow-impact{0%,46%{opacity:0}54%{opacity:.6}84%,to{opacity:0}}@keyframes ring-spread{0%,50%{opacity:0;transform:scale(.15)}53%{opacity:.95}to{opacity:0;transform:scale(1.7)}}@keyframes wash{0%{opacity:0}14%{opacity:1}44%,to{opacity:0}}@keyframes wash-twice{0%{opacity:0}8%{opacity:1}28%{opacity:0}48%{opacity:0}56%{opacity:1}76%,to{opacity:0}}@keyframes ping{0%{opacity:0;transform:scale(.55)}10%{opacity:1}34%,to{opacity:0;transform:scale(1.55)}}@keyframes leg-down-out{0%{opacity:1;transform:translateY(0)}18%{opacity:1;transform:translateY(50%)}19%,to{opacity:0;transform:translateY(50%)}}@keyframes leg-down-in{0%{opacity:1;transform:translateY(-50%)}18%{opacity:1;transform:translateY(0)}19%,to{opacity:0;transform:translateY(0)}}@keyframes leg-up-out{0%{opacity:1;transform:translateY(0)}18%{opacity:1;transform:translateY(-50%)}19%,to{opacity:0;transform:translateY(-50%)}}@keyframes leg-up-in{0%{opacity:1;transform:translateY(50%)}18%{opacity:1;transform:translateY(0)}19%,to{opacity:0;transform:translateY(0)}}@keyframes stream-visible{0%,to{opacity:1}}@keyframes stream-run{to{stroke-dashoffset:-120px}}@keyframes symbol-pop{0%,to{transform:scale(1.1)}6%{transform:scale(1.3)}16%{transform:scale(1.1)}46%{transform:scale(1.1)}52%{transform:scale(1.3)}62%{transform:scale(1.1)}}@keyframes net-ripple{0%{opacity:0;transform:scale(1)}8%{opacity:.6}to{opacity:0;transform:scale(3.05)}}@keyframes net-send{0%{opacity:0;transform:translate(0)}15%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--dx),var(--dy))}}@keyframes net-back{0%{opacity:0;transform:translate(var(--dx),var(--dy))}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(0)}}@keyframes net-train{0%{opacity:0;transform:scale(1)}10%{opacity:.7}45%{opacity:0;transform:scale(1.5)}50%{opacity:0;transform:scale(1)}60%{opacity:.7}to{opacity:0;transform:scale(1.5)}}@keyframes net-average{0%{opacity:0;transform:rotate(0)}25%,75%{opacity:.85}to{opacity:0;transform:rotate(90deg)}}@keyframes net-candidate{0%{opacity:0}20%,70%{opacity:.85}to{opacity:0}}@keyframes studio-spin{to{transform:rotate(360deg)}}@keyframes studio-arm{0%,to{transform:rotate(0)}30%{transform:rotate(-2.6deg)}62%{transform:rotate(1.6deg)}}@keyframes studio-send{0%,14%{opacity:0;transform:translate(0)}18%{opacity:1;transform:translate(0)}27%{transform:translate(14.2px,-18.2px)}36%{transform:translate(34.6px,-27.1px)}40.5%{transform:translate(45.75px,-28px)}45%{transform:translate(56.9px,-26.5px)}54%{transform:translate(76.8px,-16.2px)}63%{opacity:1;transform:translate(90px,4px)scale(1)}72%,to{opacity:0;transform:translate(91px,29px)scale(.3)}}@keyframes studio-sent{0%,4%,34%,to{opacity:0}16%{opacity:.24}}@keyframes studio-arrived{0%,58%,96%,to{opacity:0}70%{opacity:.26}}@keyframes studio-page{0%,6%,94%,to{opacity:0}20%,72%{opacity:.13}}@keyframes studio-read{0%,6%{opacity:0;transform:translateY(0)}12%,30%{opacity:.16;transform:translateY(0)}38%,54%{opacity:.16;transform:translateY(10px)}62%,76%{opacity:.16;transform:translateY(20px)}88%,to{opacity:0;transform:translateY(20px)}}.project-demo{--ripple:#335bd6}.demo-0{--ripple:#b6c8ff}.tap-ripple{display:none}@media (prefers-reduced-motion:no-preference){.tap-ripple{z-index:3;border:1.5px solid var(--ripple);background:radial-gradient(circle,color-mix(in srgb,var(--ripple) 22%,transparent),transparent 70%);opacity:0;pointer-events:none;border-radius:50%;width:120px;height:120px;display:block;position:absolute;top:0;left:0}.stage-controls button:active{scale:.97}.evidence-sheet{rotate:calc(var(--py,0) * -1) var(--px,0) 0 calc(hypot(var(--px,0),var(--py,0)) * 8deg);transition:transform .8s var(--ease),rotate .6s var(--ease),scale .5s var(--ease),background .5s,box-shadow .5s}.evidence-light{translate:calc(var(--px,0) * 40px) calc(var(--py,0) * 16px);transition:translate .9s var(--ease)}.evidence-sheet[data-preview]:not([data-active=true]){scale:1.05;box-shadow:inset 1px 1px #ffffffb0,0 32px 38px #03070e80}@media (hover:hover){.evidence-sheet:hover{scale:1.05;box-shadow:inset 1px 1px #ffffffb0,0 32px 38px #03070e80}}.evidence-sheet:active{scale:.97}.flow-copy{transition:translate .5s var(--ease)}.flow-dot{transition:background .4s,box-shadow .4s,scale .4s var(--ease)}.flow-symbol{transition:transform .6s var(--ease),rotate .5s var(--ease),scale .3s var(--ease)}.flow-stop:active .flow-symbol{scale:.9}.flow-stop[data-preview]:not([data-active=true]):before{opacity:.6}.flow-stop[data-preview]:not([data-active=true]) .flow-dot{border-color:#335bd6;scale:1.3}@media (hover:hover){.flow-stop:hover .flow-copy{translate:calc(var(--px,0) * 4px) 0}.flow-stop:hover .flow-symbol{rotate:calc(var(--px,0) * 26deg)}.flow-stop:hover .flow-dot{scale:1.3}}.network-map svg,.network-switch{translate:calc(var(--px,0) * 5px) calc(var(--py,0) * 3px);transition:translate .8s var(--ease)}.studio-app{--depth:.8}.studio-app[data-active=true]{--depth:1.5}.studio-app svg{transform:translate(calc(var(--px,0) * var(--depth) * -5px),calc(var(--py,0) * var(--depth) * -3px));transition:transform .6s var(--ease),scale .5s var(--ease)}.studio-app[data-preview]:not([data-active=true]) svg{scale:1.07}}
.work-section{background:#edf0f4;padding-top:0;padding-bottom:24px}.work-section>.section-intro{align-items:center;min-height:48svh;margin-bottom:0;padding-block:80px}.chapter-number{color:var(--muted);margin-bottom:24px;font-size:12px;display:block}.project-gallery{--project-top:96px;border-radius:24px;margin-inline:20px;position:relative}.project-chapter-track{z-index:6;pointer-events:none;width:48px;position:absolute;inset:0 auto 0 0}.project-chapterbar{color:#1a2230;pointer-events:auto;width:32px;margin-left:8px;transition:color .25s;position:sticky;top:50svh;transform:translateY(-50%)}.project-chapterbar[data-tone=dark]{color:#f4f6fa}.project-chapter-links{flex-direction:column;align-items:center;display:flex}.project-chapter-links a{width:32px;height:32px;color:inherit;border-radius:50%;place-items:center;display:grid}.chapter-dot{opacity:.42;width:5px;height:5px;transition:height .45s var(--ease),opacity .3s,transform .3s var(--ease);background:currentColor;border-radius:99px}.project-chapter-links a:hover .chapter-dot{opacity:.8;transform:scale(1.35)}.project-chapter-links a[aria-current] .chapter-dot{opacity:1;height:20px;transform:none}.project-marker{height:0;scroll-margin-top:8px}.project-panels{isolation:isolate;position:relative}.project-gallery .case-study{transform-origin:bottom;border:1px solid #ffffff2b;border-radius:20px;padding-block:56px;position:relative;box-shadow:0 -12px 40px #15243a0c}.project-gallery .case-layout{width:min(1440px,calc(100% - max(44px,var(--gutter) * 2 - 40px)))}.project-gallery[data-enhanced=true] .case-study{top:var(--pin-top,146px);transform:scale(calc(1 - var(--stack-cover,0) * .025));position:sticky}.project-gallery[data-enhanced=true] .case-study:focus-within{pointer-events:auto;position:relative;top:auto;transform:none}.project-gallery[data-enhanced=true] .case-study:has(.project-notes[open]){pointer-events:auto;position:relative;top:auto;transform:none}.project-gallery .case-study[data-covered=true]{pointer-events:none}.project-gallery .case-study[data-covered=true] *{animation-play-state:paused!important}.project-gallery .case-notes{padding-top:44px}.open-source-home{border-radius:28px 28px 0 0;padding-top:0;position:relative}.open-source-gate{align-items:center;min-height:60svh;margin-bottom:0;padding-block:90px 60px}.open-source-gate h2{font-size:clamp(48px,7vw,96px)}@media (max-width:850px){.project-gallery{--project-top:90px;margin-inline:12px}.project-chapter-track{width:32px;inset:0 0 0 auto}.project-chapterbar{width:28px;margin-left:4px;margin-right:0}.project-chapter-links a{width:28px;height:30px}.project-gallery .case-study{padding-block:40px}.project-gallery .case-layout{width:calc(100% - 40px)}.project-gallery .case-notes{padding-top:0}}@media (max-width:600px){.project-gallery{--project-top:84px;margin-inline:8px}.project-chapter-track{width:28px}.project-chapterbar{width:24px;margin-right:0}.project-chapter-links a{width:24px;height:28px}.project-chapter-links a[aria-current] .chapter-dot{height:18px}.project-gallery .case-layout{width:calc(100% - 32px)}.work-section>.section-intro{min-height:42svh;padding-block:60px}.work-section .section-intro h2{margin-bottom:24px}.chapter-number{margin-bottom:18px}.open-source-gate{min-height:52svh;padding-block:60px 40px}.open-source-gate h2{font-size:48px}}@media (prefers-reduced-motion:reduce),print{.project-gallery[data-enhanced=true] .case-study{position:relative;top:auto;transform:none}.project-gallery .case-study[data-covered=true]{pointer-events:auto}}@media print{.project-chapter-track{display:none}}
