@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-sans-latin-400-normal.1xf5nwxyfigak.woff2)format("woff2"),url(../media/ibm-plex-sans-latin-400-normal.19i24--p24z3r.woff)format("woff")}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-sans-latin-500-normal.2i4a1iuj6lbvw.woff2)format("woff2"),url(../media/ibm-plex-sans-latin-500-normal.14sc3d7sk_zzh.woff)format("woff")}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/ibm-plex-sans-latin-600-normal.2ovda_azncp9b.woff2)format("woff2"),url(../media/ibm-plex-sans-latin-600-normal.2wn5p1s7u3utm.woff)format("woff")}
@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-serif-latin-400-normal.1hae5os2e3f9c.woff2)format("woff2"),url(../media/ibm-plex-serif-latin-400-normal.2almqkfiwt36z.woff)format("woff")}
@font-face{font-family:IBM Plex Serif;font-style:italic;font-display:swap;font-weight:400;src:url(../media/ibm-plex-serif-latin-400-italic.0hyxfnuyidapy.woff2)format("woff2"),url(../media/ibm-plex-serif-latin-400-italic.27e9ca4yyndv4.woff)format("woff")}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.top-\[50\%\]{top:50%}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-px{height:1px}.max-h-96{max-height:24rem}.max-h-\[90vh\]{max-height:90vh}.min-h-\[80px\]{min-height:80px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[80px\]{width:80px}.w-\[95vw\]{width:95vw}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[500px\]{max-width:500px}.max-w-lg{max-width:32rem}.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-2{column-gap:.5rem}.gap-y-2{row-gap:.5rem}.gap-y-8{row-gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[12px\]{font-size:12px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}:root{--paper:#dcdcdc;--ink:#000;--graphite:#242424;--muted:#535353;--rule:#b3b3b3;--sans:"IBM Plex Sans","Noto Sans JP","Noto Sans SC","Yu Gothic","Microsoft YaHei",sans-serif;--serif:"IBM Plex Serif","Noto Serif JP","Noto Serif SC","Yu Mincho","Songti SC",serif;--background:0 0% 86.3%;--foreground:0 0% 0%;--border:0 0% 70%;--ring:0 0% 0%;--radius:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;container:page/inline-size}::selection{background:var(--ink);color:var(--paper)}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:5px;outline:2px solid}section:focus,main:focus,footer:focus{outline:none}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h2,h3{font-family:var(--serif)}h2{letter-spacing:-.045em;white-space:pre-line;text-wrap:balance;font-size:clamp(2.25rem,4.3vw,3.85rem);line-height:1.14}p{line-height:1.65}img{max-width:100%;height:auto}svg{flex-shrink:0}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.shell{width:min(1240px,100% - 112px);margin-inline:auto}.eyebrow{letter-spacing:.11em;text-transform:uppercase;align-items:baseline;gap:20px;font-size:.72rem;font-weight:500;line-height:1.5;display:flex}.eyebrow>span:first-child{font-variant-numeric:tabular-nums;color:var(--muted)}.text-link{align-items:center;gap:12px;min-height:44px;font-size:.88rem;font-weight:500;display:inline-flex}.text-link:hover{text-underline-offset:5px;text-decoration:underline}.dark-section{background:var(--graphite);color:var(--paper)}.dark-section .eyebrow>span:first-child{color:#b5b5b5}.dark-section ::selection{background:var(--paper);color:var(--ink)}.site-header{z-index:30;background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:32px;width:min(1390px,100% - 80px);height:80px;margin:auto;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-.08em;align-items:baseline;gap:3px;font-size:2rem;font-weight:400;display:flex}.wordmark>span:first-child{padding-left:1px}.wordmark-bnk{font-family:var(--sans);letter-spacing:0;margin-left:10px;font-size:.8rem}.desktop-nav{gap:32px;margin-left:auto;display:flex}.desktop-nav a{padding-block:14px;font-size:.81rem}.desktop-nav a:hover{text-underline-offset:7px;text-decoration:underline}.header-actions{align-items:center;gap:24px;display:flex}.language-picker{position:relative}.language-picker summary{justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;font-size:.75rem;display:flex}.language-picker nav{background:var(--paper);border:1px solid var(--ink);width:184px;padding:10px;position:absolute;top:calc(100% + 12px);right:0}.language-picker nav a{justify-content:space-between;min-height:44px;padding:12px;font-size:.85rem;display:flex}.language-picker nav a:hover,.language-picker nav a[aria-current]{background:var(--graphite);color:var(--paper)}.header-contact{border-bottom:1px solid var(--ink);align-items:center;gap:18px;min-height:44px;font-size:.82rem;display:flex}.mobile-menu{display:none}.skip-link{background:var(--ink);color:var(--paper);z-index:60;padding:15px;position:absolute;top:-100px;left:20px}.skip-link:focus{top:10px}.hero{padding-top:48px;padding-bottom:105px}.hero-topline{justify-content:space-between;gap:20px;display:flex}.location{color:var(--muted);font-size:.75rem}.hero-name{align-items:flex-end;gap:35px;padding:40px 0 45px;display:flex;position:relative}h1{font-family:var(--serif);letter-spacing:-.075em;font-size:clamp(5rem,10.4vw,9.5rem);line-height:.98}.name-dot{font-style:italic}.alias{font-family:var(--serif);color:var(--muted);padding-bottom:8px;font-size:clamp(1.8rem,3vw,2.8rem);font-style:italic}.hero-bottom{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:48px;max-width:960px;display:grid}.portrait{flex-direction:column;align-items:flex-start;max-width:240px;display:flex}.portrait img{width:240px;height:auto}.portrait figcaption{color:var(--muted);padding-top:16px;font-size:.7rem}.hero-copy>p{max-width:610px;font-size:1.06rem;line-height:1.75}.hero-ctas{flex-wrap:wrap;align-items:center;gap:22px;margin-top:28px;display:flex}.button-primary{background:var(--ink);color:var(--paper);justify-content:space-between;align-items:center;gap:30px;min-height:54px;padding:16px 23px;font-size:.86rem;display:inline-flex}.button-primary:hover{background:var(--graphite)}.resume-links{flex-wrap:wrap;align-items:center;column-gap:18px;margin-top:27px;font-size:.7rem;display:flex}.resume-links>span{color:var(--muted);align-items:center;gap:7px;display:flex}.resume-links a{text-underline-offset:4px;align-items:center;gap:4px;min-height:44px;text-decoration:underline;display:flex}.resume-links a span{color:var(--muted);font-size:.65rem}.section-heading{border-top:1px solid var(--rule);margin-bottom:56px;padding-top:25px}.section-heading-body{justify-content:space-between;align-items:flex-end;gap:65px;padding-top:33px;display:flex}.section-intro{max-width:345px;color:var(--muted);font-size:.9rem}.projects-section{padding-bottom:110px}.project{border-bottom:1px solid var(--rule);grid-template-columns:1.14fr 1fr;align-items:start;gap:65px;padding-block:40px;display:grid}.project:first-child{padding-top:0}.project-copy>.eyebrow{gap:18px;font-size:.64rem}.project-copy h3{letter-spacing:-.035em;margin:13px 0;font-size:2.75rem}.project-summary{font-size:.98rem;line-height:1.7}.project-stack{color:var(--muted);margin-top:22px;font-size:.68rem;line-height:1.9}.project-links{flex-wrap:wrap;align-items:center;gap:20px;margin:9px 0 20px;display:flex}.visibility{color:var(--muted);font-size:.66rem}.project-details{border-top:1px solid var(--rule)}.project-details summary{justify-content:space-between;align-items:center;gap:15px;min-height:55px;font-size:.79rem;font-weight:500;display:flex}.project-details[open] summary>svg{transform:rotate(45deg)}.project-details dl{margin:8px 0 0}.project-details dl>div+div{margin-top:22px}.project-details dt{text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px;font-size:.68rem;font-weight:500}.project-details dd{color:#424242;margin:0;font-size:.86rem;line-height:1.75}.project-visual{aspect-ratio:1.42;background:#c9c9c9;justify-content:center;align-items:center;min-width:0;display:flex;overflow:hidden}.cergat-visual{background:#09213a;align-items:flex-start}.cergat-visual img{object-fit:cover;object-position:top;width:100%;height:100%}.latex-visual{background:#c9c8c5;padding:32px}.editor-sheet{background:#252525;width:100%;transform:rotate(-3deg);box-shadow:0 8px 22px #00000012}.editor-top{color:#dcdcdc;border-bottom:1px solid #494949;justify-content:space-between;gap:15px;padding:12px 17px;font-size:.59rem;display:flex}.editor-workspace{grid-template-columns:1fr 1fr;min-height:255px;display:grid}.editor-workspace pre{color:#bebebe;margin:0;padding:23px 12px;font-size:clamp(.35rem,.69vw,.65rem);line-height:1.9}.paper-preview{color:#242424;background:#f1efeb;flex-direction:column;margin:12px 12px 12px 0;padding:22px 15px;display:flex}.paper-number{font-size:.5rem}.paper-title{font-family:var(--serif);letter-spacing:-.04em;margin-top:21px;font-size:clamp(1.15rem,2.3vw,2rem);line-height:1.08}.paper-rule{border-top:1px solid #aaa;margin-top:12px}.paper-equation{font-family:var(--serif);margin:15px 0;font-size:1.2rem;font-style:italic}.paper-lines{border-block:1px solid #b4b1ad;height:30px}.paper-footer{margin-top:auto;padding-top:17px;font-size:.44rem}.logs-visual{color:#dcdcdc;background:#1d1d1d;flex-direction:column;justify-content:space-between;padding:35px;display:flex}.diagram-title{letter-spacing:.1em;justify-content:space-between;width:100%;font-size:1.2rem;display:flex}.diagram-title>span{color:#9c9c9c;font-size:.55rem}.log-stream{color:#929292;align-self:flex-start;gap:8px;margin-top:25px;font-family:monospace;font-size:.64rem;display:grid}.log-stream b{color:#dedede;padding-left:22px;font-weight:400}.pipeline{align-items:center;gap:10px;width:100%;margin:25px 0;display:flex}.pipeline span{text-align:center;border:1px solid #646464;flex:1;padding:15px 12px;font-size:.7rem}.pipeline i,.spec-flow i{color:#9e9e9e;font-style:normal}.diagram-bottom{color:#a8a8a8;border-top:1px solid #505050;justify-content:space-between;width:100%;padding-top:17px;font-family:monospace;font-size:.6rem;display:flex}.smsdd-visual{background:#c5c5c5;flex-direction:column;align-items:flex-start;padding:38px}.smsdd-mark{font-family:var(--serif);letter-spacing:-.085em;font-size:clamp(2.8rem,5.2vw,4.8rem);line-height:1.2}.smsdd-mark>span:first-child{font-style:italic}.cursor{color:#626262;font-size:.7em}.spec-flow{justify-content:space-between;align-items:center;gap:12px;width:100%;margin:32px 0 34px;font-family:monospace;font-size:.62rem;display:flex}.spec-flow span{border-bottom:1px solid #777;padding:8px 0}.smsdd-foot{border-top:1px solid #a5a5a5;width:100%;padding-top:20px;font-family:monospace;font-size:.65rem}.experience-section{padding:85px 0 90px}.dark-section .section-heading{border-color:#5a5a5a}.dark-section .section-intro{color:#b8b8b8}.experience{border-top:1px solid #5a5a5a;grid-template-columns:1fr 1.15fr;gap:100px;padding:36px 0 45px;display:grid}.experience>div:first-child>.eyebrow{color:#b8b8b8;font-size:.68rem}.experience h3{white-space:pre-line;letter-spacing:-.035em;margin-top:20px;font-size:1.9rem;line-height:1.2}.experience-role{font-size:1.08rem}.progression{color:#b8b8b8;margin:5px 0 24px;font-size:.76rem}.experience>div:last-child>p:not(.experience-role):not(.progression){color:#c4c4c4;margin-top:14px;font-size:.9rem}.experience-stories{border-top:1px solid #5a5a5a;grid-template-columns:1fr 1fr;gap:70px;margin-top:10px;padding-top:35px;display:grid}.story-symbol{font-family:var(--serif);margin-bottom:20px;font-size:2.8rem;line-height:1;display:block}.experience-stories h3{letter-spacing:-.02em;margin-bottom:15px;font-size:1.55rem}.experience-stories p{color:#b8b8b8;max-width:480px;font-size:.85rem}.research-section{padding-block:95px}.research-section .section-heading{border-top:0;padding-top:0}.education-line{border-block:1px solid var(--rule);margin-top:-12px;padding:16px 0;font-size:.75rem}.research-layout{grid-template-columns:1.4fr 1fr;gap:100px;margin-top:42px;display:grid}.research-item{border-bottom:1px solid var(--rule);margin-bottom:25px;padding-bottom:25px}.research-item:last-child{margin-bottom:0}.research-item .eyebrow{color:var(--muted);letter-spacing:.08em;font-size:.61rem}.research-item h3{letter-spacing:-.02em;margin:10px 0 12px;font-size:1.35rem;line-height:1.35}.research-item p:not(.eyebrow){color:#424242;font-size:.88rem}.research-item .text-link{margin-top:10px;font-size:.75rem}.community{border-left:1px solid var(--rule);padding-left:35px}.community-asterisk{margin-bottom:32px;font-size:5.5rem;line-height:1;display:block}.community h3{letter-spacing:-.045em;margin-bottom:22px;font-size:2.3rem;line-height:1.15}.community p{color:#424242;font-size:.9rem}.workshop-links{margin-top:27px}.workshop-links .text-link{border-bottom:1px solid var(--rule);justify-content:space-between;padding:15px 0;font-size:.77rem;display:flex}.interests{margin-top:55px}.interests h4{text-transform:uppercase;letter-spacing:.1em;margin-bottom:15px;font-size:.71rem;font-weight:500}.writing-section{padding-bottom:90px}.article-list{margin-bottom:27px}.article-list article{border-bottom:1px solid var(--rule);grid-template-columns:80px 1fr;padding:27px 0;display:grid}.article-number{color:var(--muted);padding-top:7px;font-size:.68rem}.article-list h3{letter-spacing:-.025em;font-size:1.55rem}.article-list h3 a{justify-content:space-between;align-items:baseline;gap:25px;display:flex}.article-list h3 a:hover{text-underline-offset:5px;text-decoration:underline}.article-list p{color:var(--muted);margin-top:10px;font-size:.84rem}.contact-section{padding:50px 0 0}.contact-main{grid-template-columns:1.3fr 1fr;gap:100px;padding:45px 0;display:grid}.contact-main h2{font-size:clamp(2.3rem,4vw,3.55rem)}.contact-main>div>p{color:#b8b8b8;max-width:340px;font-size:.9rem}.contact-email{font-family:var(--serif);letter-spacing:-.03em;gap:30px;margin-top:21px;font-size:1.6rem}.email-address{color:#b8b8b8;overflow-wrap:anywhere;padding:12px 0;font-size:.75rem;display:block}.social-links{justify-content:flex-end;gap:35px;padding:0 0 40px;display:flex}.footer-bottom{border-top:1px solid #5a5a5a;justify-content:space-between;align-items:center;gap:25px;min-height:105px;display:flex}.footer-bottom>p:first-child{font-family:var(--serif);letter-spacing:-.03em;font-size:1.1rem}.footer-bottom>p:first-child>span{font-family:var(--sans);letter-spacing:0;font-size:.7rem}.footer-bottom>p:nth-child(2){color:#b8b8b8;font-size:.66rem}.footer-bottom>a{font-size:.68rem}:lang(ja),:lang(zh-CN){word-break:normal;line-break:strict}:lang(ja) h2,:lang(zh-CN) h2{letter-spacing:-.02em;font-size:clamp(2rem,3.7vw,3.3rem)}:lang(ja) .eyebrow,:lang(zh-CN) .eyebrow{letter-spacing:.06em}@media (min-width:1500px){.hero{padding-top:60px}.hero-name{padding-top:55px}}@container page (max-width:1100px){.shell{width:calc(100% - 72px)}.header-inner{gap:20px;width:calc(100% - 48px)}.desktop-nav{gap:20px}.header-actions{gap:18px}.hero-bottom{grid-template-columns:220px minmax(0,1fr);gap:40px}.project{gap:38px}.project-visual{aspect-ratio:1.2}.latex-visual{padding:23px}.logs-visual,.smsdd-visual{padding:25px}.pipeline{gap:6px}.pipeline span{padding:12px 5px;font-size:.63rem}.section-heading-body{gap:40px}.section-intro{max-width:290px}.research-layout{gap:55px}.experience,.contact-main{gap:65px}.experience-stories{gap:45px}}@container page (max-width:860px){.desktop-nav,.header-contact{display:none}.header-inner{height:68px}.header-actions{gap:18px}.mobile-menu{display:block}.mobile-menu>summary{align-items:center;gap:10px;min-height:44px;font-size:.76rem;display:flex}.mobile-menu>nav{background:var(--paper);border-bottom:1px solid var(--ink);max-height:calc(100dvh - 70px);padding:16px 36px 22px;position:absolute;top:100%;left:0;right:0;overflow:auto}.mobile-menu nav a{font-family:var(--serif);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:13px 0;font-size:1.45rem;display:flex}.hero{padding-top:32px;padding-bottom:70px}.hero-name{padding:40px 0}.hero-bottom{grid-template-columns:180px minmax(0,1fr);gap:30px}.hero-copy>p{font-size:.96rem}.section-heading-body{display:block}.section-intro{max-width:520px;margin-top:24px}.project{gap:28px}.project-copy h3{font-size:2.2rem}.project-summary{font-size:.9rem}.project-visual{aspect-ratio:1}.editor-workspace{min-height:220px}.paper-preview{padding:14px 10px}.logs-visual,.smsdd-visual{padding:20px}.log-stream{font-size:.58rem}.diagram-title{font-size:1rem}.pipeline{flex-wrap:wrap;gap:5px}.pipeline span{padding:10px 4px;font-size:.56rem}.smsdd-mark{font-size:3rem}.spec-flow{gap:6px;font-size:.54rem}.experience{grid-template-columns:.8fr 1.2fr;gap:35px}.research-layout{grid-template-columns:1.2fr 1fr;gap:35px}.community{padding-left:25px}.community h3{font-size:1.9rem}.contact-main{gap:40px}.footer-bottom{flex-wrap:wrap;gap:15px;padding-block:24px}.footer-bottom>p:nth-child(2){display:none}}@container page (max-width:760px){.project{grid-template-columns:1fr;gap:27px;padding-block:34px}.project-visual{aspect-ratio:1.5}.project-copy h3{font-size:2.55rem}.project-copy>.eyebrow{font-size:.64rem}.project-summary{max-width:560px;font-size:1rem}.project-stack{margin-top:16px}.project-links{margin-bottom:15px}.latex-visual{padding:28px 45px}.editor-workspace{min-height:245px}.editor-workspace pre{padding:20px;font-size:.65rem}.paper-preview{padding:20px}.paper-title{font-size:2rem}.paper-footer{font-size:.55rem}.logs-visual,.smsdd-visual{padding:30px 40px}.pipeline span{padding:17px 10px;font-size:.75rem}.log-stream{font-size:.75rem}.diagram-title{font-size:1.5rem}.smsdd-mark{font-size:4.5rem}.spec-flow{font-size:.7rem}.experience-stories{gap:30px}.research-layout{grid-template-columns:1fr;gap:40px}.community{border-left:0;border-top:1px solid var(--rule);padding:35px 0 0}.community-asterisk{margin-bottom:20px;font-size:4.2rem}.community h3{font-size:2.5rem}.interests{margin-top:30px}.contact-main{grid-template-columns:1fr;gap:30px}.contact-main>div>p{max-width:450px}.social-links{justify-content:flex-start}.article-list article{grid-template-columns:45px 1fr}.article-list h3{font-size:1.4rem}}@container page (max-width:600px){.shell,.header-inner{width:calc(100% - 40px)}.wordmark{font-size:1.8rem}.wordmark-bnk{font-size:.7rem}.hero-topline{flex-direction:column;gap:8px}.hero-topline .eyebrow{letter-spacing:.09em;font-size:.59rem}.location{font-size:.65rem}.hero-name{flex-wrap:wrap;gap:12px;padding:32px 0 30px}h1{font-size:clamp(3.45rem,13.2vw,5rem)}.alias{align-self:flex-end;margin-left:auto;padding:0;font-size:1.35rem}.hero-bottom{flex-direction:column;align-items:stretch;gap:24px;display:flex}.hero-copy>p{font-size:.96rem;line-height:1.75}.hero-ctas{gap:15px;margin-top:23px}.hero-ctas>.text-link{font-size:.81rem}.button-primary{gap:18px;min-height:50px;padding:14px 17px;font-size:.8rem}.resume-links{column-gap:15px;margin-top:20px;font-size:.67rem}.portrait{flex-direction:row;align-items:center;gap:20px;max-width:none}.portrait img{flex-shrink:0;width:120px}.portrait figcaption{max-width:150px;padding-top:0;font-size:.63rem}.hero{padding-bottom:55px}.section-heading{margin-bottom:35px;padding-top:20px}.section-heading-body{padding-top:25px}.eyebrow{gap:15px;font-size:.62rem}h2{font-size:2.3rem}.section-intro{margin-top:20px;font-size:.87rem}.projects-section{padding-bottom:55px}.project-copy h3{font-size:2.2rem}.project-summary{font-size:.93rem}.project-visual{aspect-ratio:1.3}.latex-visual{padding:22px}.editor-workspace{min-height:210px}.editor-workspace pre{padding:18px 10px;font-size:.46rem}.paper-preview{padding:16px 11px}.paper-title{font-size:1.5rem}.paper-footer{font-size:.4rem}.logs-visual,.smsdd-visual{padding:24px}.diagram-title{font-size:1.2rem}.log-stream{gap:6px;margin-top:15px;font-size:.6rem}.pipeline{margin:20px 0}.pipeline span{padding:12px 6px;font-size:.63rem}.diagram-bottom{font-size:.52rem}.smsdd-mark{font-size:3.3rem}.spec-flow{margin:27px 0;font-size:.6rem}.smsdd-foot{font-size:.6rem}.experience-section{padding:50px 0}.experience{grid-template-columns:1fr;gap:22px;padding:27px 0 32px}.experience h3{white-space:normal;margin-top:12px;font-size:1.75rem}.experience-role{font-size:1rem}.progression{margin-bottom:18px}.experience-stories{grid-template-columns:1fr;gap:30px;padding-top:30px}.experience-stories h3{font-size:1.5rem}.story-symbol{margin-bottom:12px;font-size:2.4rem}.research-section{padding-block:55px}.research-layout{margin-top:30px}.education-line{font-size:.67rem;line-height:1.7}.research-item h3{font-size:1.4rem}.community h3{font-size:2.2rem}.writing-section{padding-bottom:55px}.article-list article{grid-template-columns:27px 1fr;padding-block:23px}.article-list h3{font-size:1.3rem}.article-list h3 a{align-items:flex-start;gap:14px}.article-list h3 svg{width:19px;height:19px;margin-top:5px}.article-list p{font-size:.79rem}.contact-section{padding-top:35px}.contact-main{padding:30px 0}.contact-main h2{font-size:2.3rem}.contact-email{font-size:1.6rem}.email-address{font-size:.7rem}.social-links{gap:25px;padding-bottom:25px}.footer-bottom>p:first-child{font-size:1rem}.footer-bottom{flex-direction:column;align-items:flex-start;gap:12px}.mobile-menu>nav{padding-inline:20px}:lang(ja) h2,:lang(zh-CN) h2{font-size:2rem}:lang(ja) .hero-ctas,:lang(zh-CN) .hero-ctas{gap:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header,.hero-ctas,.project-visual,.social-links{display:none}.shell{width:100%}.hero{padding:0}.dark-section{color:#000;background:#fff}.dark-section p{color:#000!important}.hero-name{padding:20px 0}h1{font-size:4rem}a{text-decoration:underline}section{break-inside:avoid}.project,.project-details{display:block}.section-heading{margin-bottom:20px}}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-2:hover{border-width:2px}.hover\:border-gray-200:hover{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-900:hover{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:shadow-none:is(.dark *){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:mt-0{margin-top:0}.sm\:w-1\/2{width:50%}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:gap-y-0{row-gap:0}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}
