/* tailwind.css */
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial;--tw-duration:initial}}}@layer theme{:root,:host{--color-red-700:oklch(50.5% .213 27.518);--color-orange-50:oklch(98% .016 73.684);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-lime-400:oklch(84.1% .238 128.85);--color-green-700:oklch(52.7% .154 150.069);--color-teal-600:oklch(60% .118 184.704);--color-cyan-500:oklch(71.5% .143 215.221);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-900:oklch(37.9% .146 265.522);--color-pink-700:oklch(52.5% .223 3.958);--color-pink-800:oklch(45.9% .187 3.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1)}}@layer utilities{.collapse{visibility:collapse}.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-100{top:calc(var(--spacing)*100)}.isolate{isolation:isolate}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.order-first{order:-9999}.order-last{order:9999}.col-1{grid-column:1}.col-2{grid-column:2}.col-3{grid-column:3}.col-4{grid-column:4}.col-5{grid-column:5}.col-6{grid-column:6}.col-7{grid-column:7}.col-8{grid-column:8}.col-9{grid-column:9}.col-10{grid-column:10}.col-11{grid-column:11}.col-12{grid-column:12}.col-auto{grid-column:auto}.float-left{float:left}.float-none{float:none}.float-right{float:right}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.m-5{margin:calc(var(--spacing)*5)}.m-125{margin:calc(var(--spacing)*125)}.m-185{margin:calc(var(--spacing)*185)}.m-214{margin:calc(var(--spacing)*214)}.m-374{margin:calc(var(--spacing)*374)}.m-571{margin:calc(var(--spacing)*571)}.m-750{margin:calc(var(--spacing)*750)}.m-812{margin:calc(var(--spacing)*812)}.m-auto{margin:auto}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-5{margin-inline:calc(var(--spacing)*5)}.mx-auto{margin-inline:auto}.my-0{margin-block:calc(var(--spacing)*0)}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-3{margin-block:calc(var(--spacing)*3)}.my-4{margin-block:calc(var(--spacing)*4)}.my-5{margin-block:calc(var(--spacing)*5)}.my-auto{margin-block:auto}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-12{margin-top:calc(var(--spacing)*12)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.h-1{height:calc(var(--spacing)*1)}.h-18{height:calc(var(--spacing)*18)}.h-25{height:calc(var(--spacing)*25)}.h-50{height:calc(var(--spacing)*50)}.h-75{height:calc(var(--spacing)*75)}.h-100{height:calc(var(--spacing)*100)}.h-auto{height:auto}.w-20{width:calc(var(--spacing)*20)}.w-25{width:calc(var(--spacing)*25)}.w-50{width:calc(var(--spacing)*50)}.w-75{width:calc(var(--spacing)*75)}.w-100{width:calc(var(--spacing)*100)}.w-auto{width:auto}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1,.shrink{flex-shrink:1}.flex-grow{flex-grow:1}.flex-grow-0{flex-grow:0}.flex-grow-1,.grow{flex-grow:1}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-w-resize{cursor:w-resize}.resize{resize:both}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-white{border-color:var(--color-white)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.py-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.pr-2{padding-right:calc(var(--spacing)*2)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-baseline{vertical-align:baseline}.align-bottom{vertical-align:bottom}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.align-text-top{vertical-align:text-top}.align-top{vertical-align:top}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-nowrap{text-wrap:nowrap}.text-wrap{text-wrap:wrap}.text-pink-700{color:var(--color-pink-700)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:text-pink-800:hover{color:var(--color-pink-800)}}.collapse,.collapse.show{visibility:visible}}@layer base{:root{--max-content-width:930px}html{-webkit-text-size-adjust:100%;font-family:sans-serif;font-size:16px;line-height:1.15}*,:before,:after{box-sizing:border-box}body{text-align:left;background-color:var(--global-bg-color);color:var(--global-text-color);margin:0;font-family:Roboto,sans-serif;font-size:1rem;font-weight:300;line-height:1.5}h1,h2,h3,h4,h5,h6{color:inherit;margin-top:0;margin-bottom:.5rem;font-family:inherit;font-weight:300;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p,ol,ul{margin-top:0;margin-bottom:1rem}img{vertical-align:middle;border-style:none}figure{margin:0 0 1rem}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}a{color:var(--global-theme-color);background-color:#0000;text-decoration:none}a:hover{color:var(--global-hover-color);text-decoration:underline}}@layer components{.container{width:100%;max-width:var(--max-content-width);margin-inline:auto;padding-left:15px;padding-right:15px}.row{flex-wrap:wrap;margin-left:-15px;margin-right:-15px;display:flex}.col,.col-12,.col-sm,.col-md,.col-lg,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-6,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-12,.col-md-2,.col-md-3,.col-md-4,.col-md-6,.col-md-8,.col-md-10,.col-md-12,.col-xs-2,.col-xs-10,.col-xs-12{width:100%;min-height:1px;padding-left:15px;padding-right:15px;position:relative}.col{flex-grow:1;flex-basis:0;max-width:100%}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-2{flex:0 0 16.6667%;max-width:16.6667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333%;max-width:33.3333%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-8{flex:0 0 66.6667%;max-width:66.6667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333%;max-width:83.3333%}.col-sm-12{flex:0 0 100%;max-width:100%}.col-sm{flex-grow:1;flex-basis:0;max-width:100%}.navbar-expand-sm .navbar-collapse{flex-basis:auto;width:auto;display:flex!important}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding:.5rem}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:575.98px){.navbar-expand-sm>.container{padding-left:0;padding-right:0}}@media (min-width:768px){.col-md-2{flex:0 0 16.6667%;max-width:16.6667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333%;max-width:33.3333%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-8{flex:0 0 66.6667%;max-width:66.6667%}.col-md-10{flex:0 0 83.3333%;max-width:83.3333%}.col-md-12{flex:0 0 100%;max-width:100%}.col-md{flex-grow:1;flex-basis:0;max-width:100%}}.row-cols-1>*{flex:0 0 100%;max-width:100%}@media (min-width:768px){.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333%;max-width:33.3333%}}.collapse{visibility:visible;display:none!important}.collapse.show{display:block!important}.navbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;padding:.5rem 1rem;display:flex}.navbar>.container{flex-wrap:inherit;justify-content:space-between;align-items:center;display:flex}.navbar-brand{font-size:1.25rem;line-height:inherit;white-space:nowrap;margin-right:1rem;padding-top:.3125rem;padding-bottom:.3125rem}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center;width:100%}.navbar-nav{flex-direction:column;margin:0;padding-left:0;list-style-type:none;display:flex}.navbar-nav .nav-link{padding-left:0;padding-right:0;display:block}.nav-item{position:relative}.nav-link{padding:.5rem 0;display:block}.navbar-toggler{background-color:#0000;border:0;border-radius:.25rem;padding:.25rem .75rem;font-size:1.25rem;line-height:1}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.dropdown-menu{right:calc(var(--spacing)*0);z-index:50;margin-top:calc(var(--spacing)*2);min-width:calc(var(--spacing)*48);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--global-divider-color);background-color:var(--global-bg-color);padding:calc(var(--spacing)*1);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:none;position:absolute}.dropdown-menu-right{left:auto;right:0}.dropdown-menu.show{display:block}.dropdown-toggle:after{vertical-align:.255em;content:"";border:.3em solid #0000;border-top-color:currentColor;border-bottom:0;margin-left:.255em;display:inline-block}.dropdown-toggle:empty:after{margin-left:0}.dropdown-item{padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);color:var(--global-text-color);border-radius:.25rem;text-decoration-line:none;display:block}.dropdown-item:hover{background:var(--global-theme-color)}@supports (color:color-mix(in lab, red, red)){.dropdown-item:hover{background:color-mix(in srgb,var(--global-theme-color)14%,transparent)}}.fixed-top{top:calc(var(--spacing)*0);right:calc(var(--spacing)*0);left:calc(var(--spacing)*0);z-index:1030;position:fixed}.fixed-bottom{z-index:1030;position:fixed;bottom:0;left:0;right:0}.sticky-top{top:calc(var(--spacing)*0);z-index:1020;position:sticky}.font-weight-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-weight-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-weight-lighter{font-weight:lighter}.font-weight-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.d-flex{display:flex}.d-none{display:none!important}.d-block{display:block!important}@media print{.d-print-inline{display:inline!important}}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-block{display:block!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-block{display:block!important}}.flex-wrap{flex-wrap:wrap}.flex-column,.flex-md-row{flex-direction:column}@media (min-width:768px){.flex-md-row{flex-direction:row}}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}@media (min-width:576px){.justify-content-sm-center{justify-content:center}}.align-items-center{align-items:center}.card{background-color:var(--global-card-bg-color);background-clip:border-box;border:0;border-radius:.25rem;flex-direction:column;min-width:0;display:flex;box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f}.card-body{padding:calc(var(--spacing)*5);flex:auto}.card-title{margin-bottom:.75rem;font-size:2rem;font-weight:400;line-height:1.2}.card-text{color:#747373;font-size:.9rem;font-weight:400;line-height:1.5}.card-img,.card-img-top{width:100%;display:block}.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.img-fluid{max-width:100%;height:auto}.hoverable{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;transition-duration:.2s}.hoverable:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.btn{color:var(--global-text-color);text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;user-select:none;background-color:#0000;border:1px solid #0000;border-radius:.125rem;margin:.375rem;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;display:inline-block}.btn:hover{color:var(--global-text-color);text-decoration:none}.btn:focus{outline:0}.btn-sm{border-radius:.125rem;padding:.25rem .5rem;font-size:.64rem;line-height:1.5}.btn-outline-primary{border-color:var(--global-theme-color);color:var(--global-theme-color);background:0 0}.btn-outline-primary:hover{background:var(--global-theme-color);color:var(--global-hover-text-color)}.z-depth-0{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-depth-1{box-shadow:0 2px 5px #00000029,0 2px 10px #0000001f}.table{color:#212529;border-collapse:collapse;background-color:#0000;width:100%;margin-bottom:1rem}.table-borderless td,.table-borderless th,.table-borderless thead th,.table-borderless tbody+tbody{border:0!important}.table th,.table td{vertical-align:top;border-top:1px solid var(--global-divider-color);padding:.75rem}.table th{text-align:inherit}.table-sm td,.table-sm th{padding:.6rem .3rem}.table-hover tbody tr:hover{background:var(--global-theme-color)}@supports (color:color-mix(in lab, red, red)){.table-hover tbody tr:hover{background:color-mix(in srgb,var(--global-theme-color)8%,transparent)}}.table-dark{color:#f9fafb;background:#1f2937}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.badge{text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;display:inline-block}.badge:empty{display:none}.w-100{width:100%!important}.h-100{height:100%!important}.rounded-circle{border-radius:9999px}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.g-0,.no-gutters{margin-left:0;margin-right:0}.g-0>.col,.g-0>[class*=col-],.no-gutters>.col,.no-gutters>[class*=col-]{padding-left:0;padding-right:0}.clearfix:after{clear:both;content:"";display:block}.float-left{float:left!important}.mt-md-0{margin-top:0}.ml-md-4{margin-left:0}@media (min-width:768px){.mt-md-0{margin-top:0!important}.ml-md-4{margin-left:1.5rem!important}}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.p-3{padding:1rem!important}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.publications .hidden{display:block}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
/* main.css */
:root{color-scheme:light;--global-bg-color: #ffffff;--global-code-bg-color: rgba(181, 9, 172, 0.05);--global-text-color: #000000;--global-text-color-light: #828282;--global-theme-color: #b509ac;--global-hover-color: #b509ac;--global-hover-text-color: #ffffff;--global-footer-bg-color: #1c1c1d;--global-footer-text-color: #e8e8e8;--global-footer-link-color: #ffffff;--global-distill-app-color: #828282;--global-divider-color: rgba(0, 0, 0, 0.1);--global-card-bg-color: #ffffff;--global-highlight-color: #b71c1c;--global-back-to-top-bg-color: rgba( 0, 0, 0, 0.4 );--global-back-to-top-text-color: #ffffff;--global-newsletter-bg-color: #ffffff;--global-newsletter-text-color: #000000;--global-tip-block: #42b983;--global-tip-block-bg: #e2f5ec;--global-tip-block-text: #215d42;--global-tip-block-title: #359469;--global-warning-block: #e7c000;--global-warning-block-bg: #fff8d8;--global-warning-block-text: #6b5900;--global-warning-block-title: #b29400;--global-danger-block: #c00;--global-danger-block-bg: #ffe0e0;--global-danger-block-text: #600;--global-danger-block-title: #c00}:root #light-toggle-system{display:inline-block}:root #light-toggle-dark{display:none}:root #light-toggle-light{display:none}:root .only-light{display:block}:root .only-dark{display:none}:root #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color);bottom:30px;right:30px;height:40px;width:40px;z-index:10}html[data-theme=dark]{color-scheme:dark;--global-bg-color: #1c1c1d;--global-code-bg-color: #2c3237;--global-text-color: #e8e8e8;--global-text-color-light: #828282;--global-theme-color: #2698ba;--global-hover-color: #2698ba;--global-hover-text-color: #ffffff;--global-footer-bg-color: #e8e8e8;--global-footer-text-color: #1c1c1d;--global-footer-link-color: #000000;--global-distill-app-color: #e8e8e8;--global-divider-color: #424246;--global-card-bg-color: #212529;--global-back-to-top-bg-color: rgba( 255, 255, 255, 0.5 );--global-back-to-top-text-color: #000000;--global-newsletter-bg-color: #e8e8e8;--global-newsletter-text-color: #1c1c1d;--global-tip-block: #42b983;--global-tip-block-bg: #215d42;--global-tip-block-text: #beffe2;--global-tip-block-title: #e2f5ec;--global-warning-block: #e7c000;--global-warning-block-bg: #6b5900;--global-warning-block-text: #fff2af;--global-warning-block-title: #fff8d8;--global-danger-block: #c00;--global-danger-block-bg: #600;--global-danger-block-text: #ffb9b9;--global-danger-block-title: #ffe0e0}html[data-theme=dark] .only-light{display:none}html[data-theme=dark] .only-dark{display:block}html[data-theme-setting=dark] #light-toggle-system{display:none}html[data-theme-setting=dark] #light-toggle-dark{display:inline-block}html[data-theme-setting=dark] #light-toggle-light{display:none}html[data-theme-setting=dark] #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color)}html[data-theme-setting=light] #light-toggle-system{display:none}html[data-theme-setting=light] #light-toggle-dark{display:none}html[data-theme-setting=light] #light-toggle-light{display:inline-block}.fa-half-sun-moon{position:relative;display:inline-block;--fa-font: var(--fa-font-solid);speak:none;font-style:normal;font-variant:normal;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:1em;height:1em}.fa-half-sun-moon::before,.fa-half-sun-moon::after{content:"";position:absolute;inset:0;top:-0.5px;bottom:-0.5px;text-align:center;line-height:1em;clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);font:var(--fa-font)}.fa-half-sun-moon::before{content:"";color:var(--global-text-color);clip-path:polygon(0 0, calc(50% - 0.5px) 0, calc(50% - 0.5px) 100%, 0 100%)}.fa-half-sun-moon::after{content:"";color:var(--global-text-color);clip-path:polygon(calc(50% + 0.5px) 0, 100% 0, 100% 100%, calc(50% + 0.5px) 100%);right:-1.5px;transform:translateX(-1px)}#light-toggle:hover .fa-half-sun-moon::before{color:var(--global-theme-color)}#light-toggle:hover .fa-half-sun-moon::after{color:var(--global-theme-color)}body{padding-bottom:70px;color:var(--global-text-color);background-color:var(--global-bg-color)}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:66px}body.fixed-top-nav{padding-top:57px}body.sticky-bottom-footer{padding-bottom:0}.container{max-width:1040px}.profile img{width:100%}p,h1,h2,h3,h4,h5,h6,em,div,li,span,strong{color:var(--global-text-color)}hr{border-top:1px solid var(--global-divider-color)}table:not(.table) td,table:not(.table) th{font-size:1rem;padding:.45rem 1rem .45rem 0;border-top:1px solid var(--global-divider-color)}table:not(.table) th{font-weight:600}a,table.table a{color:var(--global-theme-color)}a:hover,table.table a:hover{color:var(--global-theme-color);text-decoration:underline}a:hover:after :not(.nav-item.dropdown),table.table a:hover:after :not(.nav-item.dropdown){width:100%}.table-dark{background-color:rgba(0,0,0,0)}.table-dark.table-bordered{border:1px solid var(--global-divider-color) !important}blockquote{background:var(--global-bg-color);border-left:5px solid var(--global-theme-color);margin:1.5em 0;padding:1em;font-size:1.2rem}blockquote p{margin-bottom:0}blockquote.block-tip{border-color:var(--global-tip-block);background-color:var(--global-tip-block-bg)}blockquote.block-tip em,blockquote.block-tip li,blockquote.block-tip p,blockquote.block-tip strong{color:var(--global-tip-block-text)}blockquote.block-tip a,blockquote.block-tip h1,blockquote.block-tip h2,blockquote.block-tip h3,blockquote.block-tip h4,blockquote.block-tip h5,blockquote.block-tip h6{color:var(--global-tip-block-title)}blockquote.block-warning{border-color:var(--global-warning-block);background-color:var(--global-warning-block-bg)}blockquote.block-warning em,blockquote.block-warning li,blockquote.block-warning p,blockquote.block-warning strong{color:var(--global-warning-block-text)}blockquote.block-warning a,blockquote.block-warning h1,blockquote.block-warning h2,blockquote.block-warning h3,blockquote.block-warning h4,blockquote.block-warning h5,blockquote.block-warning h6{color:var(--global-warning-block-title)}blockquote.block-danger{border-color:var(--global-danger-block);background-color:var(--global-danger-block-bg)}blockquote.block-danger em,blockquote.block-danger li,blockquote.block-danger p,blockquote.block-danger strong{color:var(--global-danger-block-text)}blockquote.block-danger a,blockquote.block-danger h1,blockquote.block-danger h2,blockquote.block-danger h3,blockquote.block-danger h4,blockquote.block-danger h5,blockquote.block-danger h6{color:var(--global-danger-block-title)}.navbar{box-shadow:none;border-bottom:1px solid var(--global-divider-color);background-color:var(--global-bg-color);opacity:.95}.navbar .navbar-collapse-main{justify-content:flex-end;text-align:right}.navbar .navbar-menu-list{margin-left:auto}@media(max-width: 575.98px){.navbar .navbar-toggler-main{margin-left:auto}.navbar .navbar-collapse-main{text-align:left}.navbar .navbar-menu-list{margin-left:0;align-items:flex-start;width:100%}.navbar .navbar-menu-list>.nav-item.dropdown{width:100%}.navbar .dropdown-menu{position:static;width:100%;min-width:100%;margin-top:0;text-align:left;box-shadow:none}.navbar .dropdown-item{white-space:normal;text-align:left}}.navbar .dropdown-menu,.btn-group.dropdown .dropdown-menu{background-color:var(--global-bg-color);border:1px solid var(--global-divider-color)}.navbar .dropdown-menu a:not(.active),.btn-group.dropdown .dropdown-menu a:not(.active){color:var(--global-text-color)}.navbar .dropdown-menu a:hover,.btn-group.dropdown .dropdown-menu a:hover{color:var(--global-hover-color)}.navbar .dropdown-menu .dropdown-divider,.btn-group.dropdown .dropdown-menu .dropdown-divider{border-top:1px solid var(--global-divider-color) !important}.dropdown-item{color:var(--global-text-color)}.dropdown-item:hover{color:var(--global-hover-color);background-color:var(--global-bg-color)}.dropdown-item.active,.dropdown-item:active{background-color:var(--global-hover-color);color:var(--global-hover-text-color) !important}.dropdown-item.active:hover,.dropdown-item:active:hover{color:var(--global-hover-text-color)}.navbar.navbar-light a:hover{text-decoration:none}.navbar.navbar-light .navbar-brand{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:inherit;font-weight:bolder;color:var(--global-theme-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-brand.social{padding-bottom:0;padding-top:0;font-size:1.7rem}.navbar.navbar-light .navbar-brand.social a img{width:1.7rem;height:1.7rem;margin-bottom:.5rem}.navbar.navbar-light .navbar-brand.social a svg{width:1.7rem;height:1.7rem;margin-bottom:.5rem}.navbar.navbar-light .navbar-brand.social a svg image{width:1.7rem;height:1.7rem}.navbar.navbar-light .navbar-brand.social a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.navbar.navbar-light .navbar-brand.social a:hover i::before{color:var(--global-theme-color)}.navbar-toggler .icon-bar{display:block;width:22px;height:2px;background-color:var(--global-text-color);border-radius:1px;margin-bottom:4px;transition:all .2s}.navbar-toggler .top-bar{transform:rotate(45deg);transform-origin:10% 10%}.navbar-toggler .middle-bar{opacity:0}.navbar-toggler .bottom-bar{transform:rotate(-45deg);transform-origin:10% 90%}.navbar-toggler.collapsed .top-bar{transform:rotate(0)}.navbar-toggler.collapsed .middle-bar{opacity:1}.navbar-toggler.collapsed .bottom-bar{transform:rotate(0)}#light-toggle{padding:0;border:0;background-color:inherit;color:var(--global-text-color);cursor:pointer;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center}#light-toggle:hover{color:var(--global-hover-color)}@media(min-width: 576px){#light-toggle{transform:translateY(4px)}}#search-toggle{padding:0;border:0;background-color:inherit;color:var(--global-text-color);cursor:pointer}#search-toggle:hover{color:var(--global-hover-color)}footer.fixed-bottom{background-color:var(--global-footer-bg-color);font-size:.75rem}footer.fixed-bottom .container{color:var(--global-footer-text-color);padding-top:9px;padding-bottom:8px;text-align:center}footer.fixed-bottom a{color:var(--global-footer-link-color)}footer.fixed-bottom a:hover{color:var(--global-theme-color);text-decoration:none}footer.sticky-bottom{border-top:1px solid var(--global-divider-color);padding-top:40px;padding-bottom:40px;font-size:.9rem}footer.sticky-bottom .container{text-align:center}.header-bar{border-bottom:1px solid var(--global-divider-color);text-align:center;padding-top:2rem;padding-bottom:3rem}.header-bar h1{color:var(--global-theme-color);font-size:5rem}.tag-category-list{border-bottom:1px solid var(--global-divider-color);text-align:center;padding-top:1rem}.tag-category-list ul{justify-content:center;display:flow-root}.tag-category-list ul p,.tag-category-list ul li{list-style:none;display:inline-block;padding:1rem .5rem;color:var(--global-text-color-light)}.post-title mjx-container[jax=CHTML][display=true]{display:unset}.post-list{margin:0;margin-bottom:40px;padding:0}.post-list li{border-bottom:1px solid var(--global-divider-color);list-style:none;padding-top:2rem;padding-bottom:2rem}.post-list li .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post-list li .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:0}.post-list li a{color:var(--global-text-color);text-decoration:none}.post-list li a:hover{color:var(--global-theme-color)}.post-list li mjx-container[jax=CHTML][display=true]{display:unset}.af-pagination,.pagination{display:flex;justify-content:center;padding-left:0;margin-top:1.25rem;margin-bottom:1.5rem;list-style:none}.af-page-link,.pagination .page-link{position:relative;display:block;margin-left:-1px;line-height:1.25;color:var(--global-text-color);background-color:var(--global-bg-color);border:1px solid var(--global-divider-color);padding:.75rem 1.15rem}.af-page-link:hover,.pagination .page-link:hover{color:#000;text-decoration:none;background-color:color-mix(in srgb, var(--global-theme-color) 10%, transparent)}.af-page-item:first-child .af-page-link,.pagination .page-item:first-child .page-link{margin-left:0;border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.af-page-item:last-child .af-page-link,.pagination .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.af-page-item.active .af-page-link,.pagination .page-item.active .page-link{color:#fff;background-color:var(--global-theme-color);border-color:var(--global-theme-color)}.af-page-item.active .af-page-link:hover,.pagination .page-item.active .page-link:hover{background-color:var(--global-theme-color)}.af-page-item.disabled .af-page-link,.pagination .page-item.disabled .page-link{color:var(--global-text-color-light);pointer-events:none;background-color:var(--global-bg-color)}.post .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:1rem}.post .post-tags a{color:var(--global-text-color-light);text-decoration:none}.post .post-tags a:hover{color:var(--global-theme-color)}.featured-posts a{color:var(--global-text-color-light);text-decoration:none}.featured-posts a .card-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.featured-posts a:hover{color:var(--global-theme-color)}.featured-posts a:hover .card-title{color:var(--global-theme-color)}.featured-posts .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0;padding-top:.5rem}.post-description{margin-bottom:2rem;font-size:.875rem}.post-description a{color:inherit}.post-description a:hover{color:var(--global-theme-color);text-decoration:none}.publications{margin-top:2rem}.publications h1{color:var(--global-theme-color);font-size:2rem;text-align:center;margin-top:1em;margin-bottom:1em}.publications h2{margin-bottom:1rem}.publications h2 span{font-size:1.5rem}.publications h2.bibliography{color:var(--global-divider-color);border-top:1px solid var(--global-divider-color);padding-top:1rem;margin-top:2rem;text-align:right}.publications ol.bibliography{list-style:none;padding:0;margin-top:0}.publications ol.bibliography li{margin-bottom:1rem}.publications ol.bibliography li .preview{display:inline-block}.publications ol.bibliography li video.preview{max-width:100%;height:auto}.publications ol.bibliography li .abbr{margin-bottom:.5rem}.publications ol.bibliography li .abbr abbr{display:inline-block;background-color:var(--global-theme-color);margin-bottom:.5rem;color:var(--global-card-bg-color) !important}.publications ol.bibliography li .abbr abbr a{color:#fff}.publications ol.bibliography li .abbr abbr a:hover{text-decoration:none}.publications ol.bibliography li .abbr .award{color:var(--global-theme-color) !important;border:1px solid var(--global-theme-color)}.publications ol.bibliography li .title{font-weight:bolder}.publications ol.bibliography li .author a{border-bottom:1px dashed var(--global-theme-color)}.publications ol.bibliography li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .author>span.more-authors{color:var(--global-text-color-light);border-bottom:1px dashed var(--global-text-color-light);cursor:pointer}.publications ol.bibliography li .author>span.more-authors:hover{color:var(--global-text-color);border-bottom:1px dashed var(--global-text-color)}.publications ol.bibliography li .links a.btn{color:var(--global-text-color);border:1px solid var(--global-text-color);padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;margin-left:0}.publications ol.bibliography li .links a.btn:hover{color:var(--global-theme-color);border-color:var(--global-theme-color)}.publications ol.bibliography li .links a.award.btn{border-color:var(--global-highlight-color)}.publications ol.bibliography li .badges{padding-bottom:.5rem}.publications ol.bibliography li .badges span{display:inline-block;color:#000;height:100%;padding-right:.5rem;vertical-align:middle}.publications ol.bibliography li .badges span:hover{text-decoration:underline}.publications ol.bibliography li .hidden{font-size:.875rem;max-height:0px;overflow:hidden;text-align:justify;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li .hidden p{line-height:1.4em;margin:10px}.publications ol.bibliography li .hidden pre{font-size:1em;line-height:1.4em;padding:10px}.publications ol.bibliography li .hidden.open{max-height:100em;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open{border-color:var(--global-text-color)}.publications ol.bibliography div.award.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography div.award.hidden.open{border-color:var(--global-highlight-color)}.citation,.citation-number{color:var(--global-theme-color)}ul.task-list{list-style-type:none}ul.task-list>li ul{padding-inline-start:1.5rem}ul.task-list input[type=checkbox]{margin:.275rem .5rem .5rem -1rem;vertical-align:middle}.equation{margin-bottom:1rem;text-align:center}.caption{font-size:.875rem;margin-top:.75rem;margin-bottom:1.5rem;text-align:center}.card{background-color:var(--global-card-bg-color)}.card .card-img{width:100%;padding-top:1.25rem}.card .card-title{color:var(--global-text-color)}.card .card-body{padding:1.25rem 1.25rem 1.25rem 1.25rem}.hoverable{transition:transform .22s ease,box-shadow .22s ease}.hoverable:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(0,0,0,.12),0 4px 10px rgba(0,0,0,.1)}@media(prefers-reduced-motion: reduce){.hoverable{transition:none}.hoverable:hover{transform:none}}.profile{width:100%}.profile .more-info{margin-bottom:5px;margin-top:5px;font-family:monospace}.profile .more-info p{display:inline-block;margin:0}.profile.float-right{margin-left:1rem}.profile.float-left{margin-right:1rem}@media(min-width: 576px){.profile{width:30%}.profile .address p{display:block}}.cv{margin-bottom:40px}.cv .card{background-color:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.cv .card .list-group-item{background-color:inherit;border-color:var(--global-divider-color)}.cv .card .list-group-item .badge{color:var(--global-card-bg-color) !important;background-color:var(--global-theme-color) !important}.table-cv-map{background-color:rgba(0,0,0,0);border:none;color:var(--global-text-color)}.date-column{width:75px;transform:translateX(-15px) translateY(-5px)}.projects a{text-decoration:none}.projects a:hover .card-title{color:var(--global-theme-color)}.projects .card img{width:100%}.projects .col{padding-bottom:1rem}.projects .grid-sizer,.projects .grid-item{width:250px;margin-bottom:10px}.projects h2.category{color:var(--global-divider-color);border-bottom:1px solid var(--global-divider-color);padding-top:.5rem;margin-top:2rem;margin-bottom:1rem;text-align:right}@media(min-width: 768px){.repo{max-width:50%}}.social{text-align:center}.social .contact-icons{font-size:4rem}.social .contact-icons a img{width:3.2rem;height:3.2rem;margin-bottom:1rem}.social .contact-icons a svg{width:3.5rem;height:4rem;margin-bottom:.5rem}.social .contact-icons a svg image{width:3.5rem;height:3.5rem}.social .contact-icons a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons a:hover{text-decoration:none}.social .contact-icons a:hover i::before{color:var(--global-theme-color)}.social .contact-note{font-size:.8rem}.wechat-modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.8)}.wechat-modal>img{display:block;position:relative;top:50%;left:50%;width:33%;max-width:400px;transform:translate(-50%, -50%)}@media only screen and (max-width: 400px){.wechat-modal>img{width:100%}}.distill a:hover{border-bottom-color:var(--global-theme-color);text-decoration:none}.d2h-diff-table{position:relative}figure.highlight{margin:0 0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}figure.highlight pre{white-space:pre;word-wrap:normal;overflow-x:auto;-webkit-overflow-scrolling:touch}pre{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:6px;padding:6px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:pre;word-wrap:normal}pre pre,pre code{background-color:rgba(0,0,0,0);border-radius:0;margin-bottom:0;padding:0;white-space:inherit}code{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:3px;padding:3px 3px;white-space:normal;word-wrap:break-word}:not(pre)>code{font-size:.82em;font-weight:400;padding:2px 4px}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background-color:rgba(0,0,0,0);color:var(--global-theme-color)}progress::-webkit-progress-bar{background-color:rgba(0,0,0,0)}progress::-webkit-progress-value{background-color:var(--global-theme-color)}progress::-moz-progress-bar{background-color:var(--global-theme-color)}.progress-container{width:100%;background-color:rgba(0,0,0,0);position:fixed;top:56px;left:0;height:5px;display:block}.progress-bar{background-color:var(--global-theme-color);width:0%;display:block;height:inherit}html.transition,html.transition body{transition-property:color,background-color,border-color,fill,stroke,box-shadow !important;transition-duration:240ms !important;transition-timing-function:ease !important;transition-delay:0s !important}html.transition *,html.transition *:before,html.transition *:after{transition-property:background-color,border-color,box-shadow !important;transition-duration:240ms !important;transition-timing-function:ease !important;transition-delay:0s !important}.code-display-wrapper{position:relative}.code-display-wrapper .copy{background:var(--global-card-bg-color);border-color:var(--global-bg-color);border-radius:.3rem;border-style:none;color:var(--global-text-color);font-size:medium;opacity:0;position:absolute;right:.2rem;top:.2rem}.code-display-wrapper:active .copy,.code-display-wrapper:focus .copy,.code-display-wrapper:hover .copy{color:var(--global-hover-color);opacity:1}.btn-group.dropdown .btn{box-shadow:none;-webkit-box-shadow:none}.btn-group.dropdown .btn-secondary.dropdown-toggle{border:1px solid var(--global-divider-color)}.btn-group.dropdown .btn-secondary.dropdown-toggle .page-size{color:inherit}.btn-group.dropdown .btn-secondary.dropdown-toggle:not(.active){background-color:var(--global-bg-color) !important;color:var(--global-text-color)}.btn-group.dropdown .btn-secondary.dropdown-toggle:hover{background-color:var(--global-hover-color) !important;color:var(--global-hover-text-color) !important}.af-table-shell{margin:1.1rem 0 1.4rem}.af-table-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.6rem}.af-table-search{min-width:min(300px,100%);max-width:100%;border:1px solid var(--global-divider-color);border-radius:.4rem;background-color:var(--global-bg-color);color:var(--global-text-color);font-size:.94rem;line-height:1.4;padding:.42rem .72rem}.af-table-search:focus-visible{outline:2px solid color-mix(in srgb, var(--global-theme-color) 35%, transparent);outline-offset:1px}.af-table-pagination{display:inline-flex;align-items:center;gap:.35rem}.af-table-page-info{color:var(--global-text-color);font-size:.85rem;font-weight:500;margin-right:.3rem}.af-table-pagination button{border:1px solid var(--global-divider-color);background-color:rgba(0,0,0,0);border-radius:.35rem;color:var(--global-text-color);cursor:pointer;font-size:.85rem;font-weight:500;line-height:1;min-width:2rem;padding:.38rem .56rem;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.af-table-pagination button:hover:not(:disabled){background-color:var(--global-theme-color);border-color:var(--global-theme-color);color:var(--global-hover-text-color)}.af-table-pagination button:disabled{cursor:default;opacity:.45}table[data-toggle=table].af-table-enhanced{margin-bottom:0}table[data-toggle=table].af-table-enhanced thead th{background-color:color-mix(in srgb, var(--global-theme-color) 12%, transparent);border-bottom:1px solid var(--global-divider-color);color:var(--global-text-color);font-weight:600;letter-spacing:.01em}table[data-toggle=table].af-table-enhanced th.af-sortable{cursor:pointer;user-select:none}table[data-toggle=table].af-table-enhanced th.af-sortable:hover{color:var(--global-hover-color)}table[data-toggle=table].af-table-enhanced tbody tr.af-row-selected{background-color:color-mix(in srgb, var(--global-theme-color) 12%, transparent)}#toc-sidebar{z-index:1;top:5rem}#toc-sidebar.toc>.toc-list{overflow:visible;padding-left:.8rem}#toc-sidebar .toc-list{list-style:none;margin:0;padding-left:.8rem}#toc-sidebar .toc-list .toc-list{margin-top:.12rem;margin-left:0}#toc-sidebar .toc-link{color:var(--global-text-color);display:block;position:relative;font-size:.8rem;line-height:1.4;margin:0;padding:.14rem .25rem .14rem .4rem;transition:color .2s ease,font-weight .2s ease;transform:none}#toc-sidebar .toc-link::before{background-color:color-mix(in srgb, var(--global-divider-color) 80%, transparent) !important}#toc-sidebar .toc-link:hover{color:var(--global-hover-color);text-decoration:none;transform:none}#toc-sidebar .toc-link:hover::before{background-color:var(--global-hover-color) !important}#toc-sidebar .toc-link.is-active-link{color:var(--global-theme-color);font-weight:600;transform:none}#toc-sidebar .toc-link.is-active-link::before{background-color:var(--global-theme-color) !important}#toc-sidebar .toc-link.is-active-link:hover{color:var(--global-hover-color)}#toc-sidebar .toc-link.is-active-link:hover::before{background-color:var(--global-hover-color) !important}@media(max-width: 576px){#toc-sidebar{visibility:hidden;height:0;top:0}pre{font-size:.875rem;padding:8px 10px;margin:.5rem 0}figure.highlight{margin:.5rem 0}figure.highlight pre{font-size:.875rem;padding:8px 10px}:not(pre)>code{font-size:.875rem;padding:2px 4px}}@media(max-width: 400px){pre{font-size:.8rem;padding:6px 8px}figure.highlight pre{font-size:.8rem;padding:6px 8px}:not(pre)>code{font-size:.8rem;padding:1px 3px}}@media(min-width: 577px)and (max-width: 768px){pre{font-size:.9rem;padding:8px 12px}figure.highlight pre{font-size:.9rem;padding:8px 12px}}.newsletter-form-container{margin-bottom:20px}.newsletter-form{display:flex;flex-direction:row;align-items:center;width:100%}.newsletter-form-input,.bibsearch-form-input{color:var(--global-newsletter-text-color);background:var(--global-newsletter-bg-color);border:1px solid var(--global-newsletter-text-color);outline:none;margin:0px 10px 0px 0px;width:100%;max-width:350px;min-width:100px;box-sizing:border-box;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;padding:8px 12px}.newsletter-form-input:focus{border-color:var(--global-theme-color) !important}.newsletter-form-button{background:var(--global-theme-color);color:var(--global-bg-color);display:flex;width:min-content;max-width:200px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:none;cursor:pointer}.newsletter-loading-button{background:var(--global-theme-color);color:var(--global-bg-color);display:none;width:min-content;max-width:300px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:none;cursor:pointer;margin-right:20px}.newsletter-success{color:var(--global-text-color);display:none;align-items:center;width:100%}.newsletter-error{color:var(--global-theme-color);display:none;align-items:center;width:100%}.newsletter-back-button{color:var(--global-theme-color);margin:10px auto;text-align:center;display:none;background:rgba(0,0,0,0);border:none;cursor:pointer}@media(max-width: 575px){.newsletter-form-input,.newsletter-form-button,.newsletter-loading-button,.newsletter-success,.newsletter-error{font-size:16px !important}.newsletter-form-container{margin-right:20px;margin-left:20px}}.af-popover{position:absolute;z-index:1070;max-width:276px;padding:.5rem .75rem;background-color:var(--global-bg-color);border:1px solid var(--global-divider-color);border-radius:.375rem;color:var(--global-text-color);font-size:.875rem;line-height:1.5;white-space:pre-line;word-wrap:break-word;box-shadow:0 .25rem .5rem rgba(0,0,0,.15);pointer-events:none}.af-tooltip{position:absolute;z-index:1080;padding:.25rem .5rem;background-color:rgba(0,0,0,.85);border-radius:.25rem;color:#fff;font-size:.8125rem;max-width:200px;word-wrap:break-word;pointer-events:none}.popover{background-color:var(--global-bg-color);border-color:var(--global-divider-color)}.popover .popover-header{color:var(--global-text-color);border-bottom:1px solid var(--global-divider-color)}.popover .popover-body{color:var(--global-text-color)}.bs-popover-top .arrow::after{border-top-color:var(--global-bg-color)}.bs-popover-top .arrow:before{border-top-color:var(--global-divider-color)}.bs-popover-bottom .arrow::after{border-bottom-color:var(--global-bg-color)}.bs-popover-bottom .arrow:before{border-bottom-color:var(--global-divider-color)}::highlight(search){background-color:var(--global-theme-color);color:var(--global-text-color)}.unloaded{display:none !important}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:999}.echarts{height:400px;width:100%}.map{height:400px;width:100%}swiper-container{--swiper-navigation-color: var(--global-theme-color);--swiper-pagination-color: var(--global-theme-color);--swiper-pagination-bullet-inactive-color: var(--global-text-color)}.ps-root .ps-algorithm{margin:.8em 0;border-top:3px solid var(--global-text-color);border-bottom:2px solid var(--global-text-color)}.ps-root .ps-algorithm.with-caption>.ps-line:first-child{border-bottom:2px solid var(--global-text-color)}ninja-keys{--ninja-accent-color: var(--global-theme-color);--ninja-icon-size: 0px;--ninja-modal-background: var(--global-bg-color);--ninja-z-index: 1031}ninja-keys::part(ninja-input){color:var(--ninja-selected-text-color)}ninja-keys::part(ninja-input-wrapper){background:var(--global-bg-color)}figure.cover{display:inline-block;text-align:center;margin:.5rem}figure.cover img{vertical-align:bottom}figure.cover figcaption.abandoned{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#ee5f5b}figure.cover figcaption.finished,figure.cover figcaption.watched{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#62c462}figure.cover figcaption.interested{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#7691db}figure.cover figcaption.paused{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#bdac7e}figure.cover figcaption.queued{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#9e76b5}figure.cover figcaption.reading,figure.cover figcaption.watching{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#f89406}figure.cover figcaption.reread,figure.cover figcaption.rewatch{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#a6517d}figure.cover figcaption.uncategorized{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#b0abb3}figure.cover a.cover-link:hover{color:#23212d !important}.calendar-toggle-btn{align-items:center;background-color:rgba(0,0,0,0);border:1px solid var(--global-theme-color);border-radius:999px;color:var(--global-theme-color);cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:600;gap:.25rem;padding:.45rem .95rem;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .16s ease}.calendar-toggle-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--global-theme-color) 45%, transparent);outline-offset:2px}.calendar-toggle-btn:hover{background-color:color-mix(in srgb, var(--global-theme-color) 14%, transparent);box-shadow:0 6px 16px rgba(0,0,0,.09);color:var(--global-theme-color);transform:translateY(-1px)}.calendar-toggle-btn:active{transform:translateY(0);box-shadow:0 2px 8px rgba(0,0,0,.08)}.calendar-toggle-btn[aria-pressed=true],.calendar-toggle-btn.is-open{background-color:var(--global-theme-color);color:var(--global-hover-text-color);border-color:var(--global-theme-color)}.calendar-toggle-btn[aria-pressed=true]:hover,.calendar-toggle-btn.is-open:hover{background-color:var(--global-hover-color);border-color:var(--global-hover-color);color:var(--global-hover-text-color)}.calendar-toggle-btn.btn-sm{cursor:pointer;font-size:.88rem}.google-calendar-embed{width:100%;height:600px;border:none}@media(max-width: 768px){.google-calendar-embed{height:500px}}@media(max-width: 480px){.google-calendar-embed{height:400px}}mjx-container[jax=CHTML][display=true]{overflow-x:auto}.tab{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none;position:relative}.tab>*{flex:none;padding-left:20px;position:relative}.tab>*>a{display:block;text-align:center;padding:9px 20px;color:var(--global-text-color-light);border-bottom:2px solid rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0);font-size:12px;text-transform:uppercase;transition:color .1s ease-in-out;line-height:20px}.tab>.active>a{color:var(--global-text-color);border-color:var(--global-theme-color)}.tab>li>a{text-decoration:none;cursor:pointer}.tab-content{padding:0}.tab-content>li{display:none}.tab-content>li.active{display:block}.courses{margin-top:30px}.year{margin-top:40px;margin-bottom:20px;border-bottom:1px solid var(--global-divider-color);padding-bottom:10px}.course-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:20px}.course-item{border:1px solid var(--global-divider-color);border-radius:5px;padding:15px;background-color:var(--global-bg-color);transition:transform .2s ease-in-out}.course-item:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.05)}.course-title{margin-top:0;margin-bottom:10px}.course-meta{font-size:.9rem;color:var(--global-text-color-light);margin-bottom:10px}.course-term,.course-instructor{margin-right:15px}.course-description{font-size:.9rem;margin-bottom:15px}.course-description p{margin-bottom:0}.course-info{margin-bottom:30px}.course-schedule{margin-bottom:30px}.course-schedule table.table{margin-top:.75rem}.course-schedule table.table thead th{background-color:color-mix(in srgb, var(--global-theme-color) 12%, transparent);border-top:0;border-bottom:1px solid var(--global-divider-color);color:var(--global-text-color);font-weight:600;letter-spacing:.01em;padding:.7rem 1rem}.course-schedule table.table tbody td{padding:.72rem 1rem}.schedule-description p{margin-bottom:0}.schedule-materials{padding-left:18px;margin-bottom:0}.typogram .diagram{display:block}.typogram .diagram line,.typogram .diagram circle,.typogram .diagram rect{stroke:var(--global-text-color)}.typogram .diagram line{stroke-width:2}.typogram .diagram circle{r:3.5}.typogram .diagram rect{width:6px;height:6px}.typogram .diagram text,.typogram .glyph,.typogram .debug text{font-family:Iosevka Fixed,monospace;font-size:3em;text-anchor:middle;alignment-baseline:central;white-space:pre;fill:var(--global-text-color)}.typogram .reserved{fill:rgba(0,0,0,0);white-space:pre}.typogram .debug[debug=true] .reserved{fill:var(--global-text-color);opacity:.5}.typogram .debug[debug=true] line.grid{stroke:var(--global-text-color);stroke-width:.2;stroke-linecap:butt;fill:var(--global-text-color);opacity:1%}.typogram polygon{stroke-width:0}.typogram .debug[debug=true] polygon.inner{fill:var(--global-text-color);stroke:var(--global-text-color);opacity:5%}.typogram polygon{stroke:var(--global-text-color);stroke-linecap:butt;fill:var(--global-text-color)}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] line.grid{opacity:10%}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] path,.typogram .debug[debug=true] circle{opacity:50%}.typogram .debug[debug=true] polygon{fill:red;stroke:red}.typogram .debug[debug=true] circle,.typogram .debug[debug=true] path{opacity:50%;fill:red}.typogram .debug[debug=true] circle{stroke:red}.typogram .debug[debug=true] .inner{stroke-width:.2}.typogram line.part{stroke-width:6;stroke-linecap:butt;stroke:var(--global-text-color)}.typogram .debug[debug=true] line.part{opacity:50%;stroke:red}.typogram .debug[debug=true] line.center{stroke-width:3;stroke-linecap:butt;opacity:10%;stroke:var(--global-text-color)}.typogram text::selection{fill:HighlightText;background-color:Highlight}/*# sourceMappingURL=main.css.map */
/* custom.css */
:root,
html[data-theme="light"] {
  --max-content-width: 1040px;
  --global-bg-color: #ffffff;
  --global-text-color: #1c1d1a;
  --global-text-color-light: #5e6058;
  --global-theme-color: #1a7a5c;
  --global-hover-color: #125e47;
  --global-hover-text-color: #ffffff;
  --global-divider-color: #e1e5e0;
  --global-card-bg-color: #ffffff;
  --global-code-bg-color: rgba(26, 122, 92, 0.08);
  --global-footer-bg-color: #ffffff;
  --global-footer-text-color: #6a6f69;
  --global-footer-link-color: #1a7a5c;
  --global-tip-block: #1a7a5c;
  --jiayu-muted: color-mix(in srgb, var(--global-text-color) 66%, transparent);
  --jiayu-border: var(--global-divider-color);
  --jiayu-card: var(--global-card-bg-color);
  --jiayu-serif: "Iowan Old Style", "Palatino Linotype", "Songti SC", STSong, Georgia, serif;
  --jiayu-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

html[data-theme="dark"] {
  --global-bg-color: #141512;
  --global-text-color: #e8e6de;
  --global-text-color-light: #9a9b93;
  --global-theme-color: #5ecfa0;
  --global-hover-color: #8fe0bb;
  --global-hover-text-color: #141512;
  --global-divider-color: rgba(232, 230, 222, 0.12);
  --global-card-bg-color: #1b1c19;
  --global-code-bg-color: rgba(94, 207, 160, 0.1);
  --global-footer-bg-color: #0e0f0d;
  --global-footer-text-color: #9a9b93;
  --global-footer-link-color: #e8e6de;
  --global-tip-block: #5ecfa0;
  --jiayu-muted: color-mix(in srgb, var(--global-text-color) 70%, transparent);
}

@media (prefers-color-scheme: dark) {
  html[data-theme="system"] {
    --global-bg-color: #141512;
    --global-text-color: #e8e6de;
    --global-text-color-light: #9a9b93;
    --global-theme-color: #5ecfa0;
    --global-hover-color: #8fe0bb;
    --global-hover-text-color: #141512;
    --global-divider-color: rgba(232, 230, 222, 0.12);
    --global-card-bg-color: #1b1c19;
    --global-code-bg-color: rgba(94, 207, 160, 0.1);
    --global-footer-bg-color: #0e0f0d;
    --global-footer-text-color: #9a9b93;
    --global-footer-link-color: #e8e6de;
    --global-tip-block: #5ecfa0;
    --jiayu-muted: color-mix(in srgb, var(--global-text-color) 70%, transparent);
  }
}

::selection {
  background: color-mix(in srgb, var(--global-theme-color) 22%, transparent);
}

html {
  background: var(--global-bg-color);
}

html[lang="zh-CN"] body {
  font-family: var(--jiayu-sans);
  letter-spacing: 0.012em;
}

body {
  font-family: var(--jiayu-sans);
  letter-spacing: -0.011em;
  color: var(--global-text-color);
  background: var(--global-bg-color);
}

h1,
h2,
.navbar-brand,
.home-intro h1,
.section-heading h2,
.post-header .post-title,
.book-feature h3,
.book-mark {
  font-family: var(--jiayu-serif);
  font-weight: 600;
}

a {
  text-underline-offset: 0.18em;
}

.section-heading p a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

article a,
.post a,
.quiet-contact a,
.inline-links a,
.demo-card a,
.case-links a,
.patent-list a,
.open-source-list a,
.project-list a,
.writing-groups a,
.credential-list a {
  color: var(--global-theme-color);
}

article a:hover,
.post a:hover,
.quiet-contact a:hover,
.inline-links a:hover {
  color: var(--global-hover-color);
}

.navbar {
  background: color-mix(in srgb, var(--global-bg-color) 88%, transparent);
  backdrop-filter: saturate(1.2) blur(14px);
  border-bottom: 1px solid var(--global-divider-color);
}

.navbar .container {
  max-width: 1080px;
}

.navbar-brand {
  letter-spacing: -0.03em;
  color: var(--global-text-color) !important;
}

html[lang="zh-CN"] .navbar-brand {
  letter-spacing: 0.04em;
}

.navbar .nav-link {
  color: var(--global-text-color) !important;
  font-size: 0.92rem;
}

.navbar .nav-item.active > .nav-link {
  color: var(--global-theme-color) !important;
  font-weight: 600;
}

.language-switch .nav-link {
  padding: 0.15rem 0.55rem !important;
  border: 1px solid var(--global-divider-color);
  border-radius: 999px;
  color: var(--global-theme-color) !important;
  font-size: 0.78rem !important;
  font-weight: 650;
  letter-spacing: 0.04em;
}

@layer components {
  @media (max-width: 991.98px) {
    .navbar .navbar-toggler-main {
      margin-left: auto;
    }

    .navbar .navbar-collapse-main {
      text-align: left;
    }

    .navbar .navbar-menu-list {
      width: 100%;
      margin-left: 0;
      align-items: flex-start;
      flex-direction: column;
    }

    .navbar-expand-sm .navbar-collapse {
      display: none !important;
      flex-basis: 100%;
      width: 100%;
    }

    .navbar-expand-sm .navbar-collapse.show {
      display: block !important;
    }

    .navbar-expand-sm .navbar-toggler {
      display: block;
    }
  }
}

.post-header {
  margin-bottom: 2.2rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--global-divider-color);
}

.post-header .post-title {
  margin-bottom: 0.55rem;
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  letter-spacing: -0.03em;
  line-height: 1.2;
}

html[lang="zh-CN"] .post-header .post-title {
  letter-spacing: 0.02em;
}

.post-description {
  max-width: 42rem;
  margin: 0;
  color: var(--jiayu-muted);
  font-size: 1.05rem;
  line-height: 1.7;
}

.home-page {
  padding-top: 0.25rem;
}

.home-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 2.75rem;
  align-items: end;
  padding: 1.1rem 0 2.4rem;
}

.home-intro__portrait {
  width: 220px;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 55% 20%;
  border: 1px solid var(--global-divider-color);
  border-radius: 3px;
  box-shadow: 0 18px 36px color-mix(in srgb, var(--global-text-color) 10%, transparent);
}

.eyebrow {
  margin: 0 0 0.7rem;
  color: var(--global-theme-color);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-intro h1 {
  margin: 0;
  font-size: clamp(2.35rem, 6vw, 3.7rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
}

html[lang="zh-CN"] .home-intro h1 {
  letter-spacing: 0.06em;
  font-size: clamp(2.5rem, 7vw, 3.9rem);
}

.home-intro__role {
  margin: 0.85rem 0 0;
  color: var(--jiayu-muted);
  font-family: var(--jiayu-serif);
  font-size: 1.08rem;
}

.home-intro__thesis {
  max-width: 38rem;
  margin: 1.35rem 0 0;
  font-family: var(--jiayu-serif);
  font-size: clamp(1.18rem, 2.2vw, 1.42rem);
  font-weight: 500;
  line-height: 1.5;
}

.home-intro__career {
  max-width: 40rem;
  margin: 0.9rem 0 0;
  color: var(--jiayu-muted);
  line-height: 1.75;
}

.inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.2rem;
  margin-top: 1.35rem;
  font-size: 0.95rem;
  font-weight: 550;
}

.inline-links .primary-email {
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.proof-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0.35rem 0 2rem;
  color: var(--jiayu-muted);
}

.proof-line span {
  padding: 0.28rem 0.72rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 999px;
  background: var(--global-card-bg-color);
  font-size: 0.78rem;
  line-height: 1.45;
}

.proof-line span:not(:last-child)::after {
  content: none;
}

.home-section,
.content-section {
  padding: 2.6rem 0;
  border-bottom: 1px solid var(--global-divider-color);
}

.home-section:last-of-type,
.content-section:last-of-type {
  border-bottom: 0;
}

.section-heading {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.35rem;
  align-items: baseline;
}

.section-heading h2 {
  margin: 0;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
  line-height: 1.25;
}

html[lang="zh-CN"] .section-heading h2 {
  letter-spacing: 0.04em;
}

.section-heading p {
  margin: 0;
  max-width: 38rem;
  color: var(--jiayu-muted);
  line-height: 1.7;
}

.direction-list,
.project-list,
.writing-groups,
.research-list,
.open-source-list,
.patent-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.direction-list li,
.project-list li,
.research-list li,
.open-source-list li,
.patent-list li {
  display: grid;
  grid-template-columns: minmax(9.5rem, 0.62fr) minmax(0, 1.5fr);
  gap: 1.15rem;
  padding: 0.95rem 0;
  border-top: 1px solid var(--global-divider-color);
}

.direction-list li:first-child,
.project-list li:first-child,
.research-list li:first-child,
.open-source-list li:first-child,
.patent-list li:first-child {
  border-top-color: transparent;
  padding-top: 0.2rem;
}

.direction-list h3,
.project-list h3,
.research-list h3,
.open-source-list h3,
.patent-list h3 {
  margin: 0;
  font-size: 1rem;
  font-family: var(--jiayu-sans);
  font-weight: 600;
  line-height: 1.45;
}

.direction-list p,
.project-list p,
.research-list p,
.open-source-list p,
.patent-list p {
  margin: 0;
  color: var(--jiayu-muted);
  line-height: 1.7;
}

.patent-group {
  margin: 1.8rem 0 0.35rem;
  color: var(--global-theme-color);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.book-feature {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: 1.4rem;
  padding: 1.35rem 1.4rem 1.4rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 4px;
  background: var(--global-card-bg-color);
}

.book-mark {
  display: grid;
  min-height: 9.5rem;
  place-items: center;
  border-radius: 2px;
  background: var(--global-theme-color);
  color: var(--global-hover-text-color);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}

.book-feature h3 {
  margin: 0 0 0.4rem;
  font-size: 1.22rem;
}

.status-label {
  display: inline-block;
  margin-bottom: 0.65rem;
  color: var(--global-theme-color);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.writing-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.writing-groups > li {
  padding: 1rem 1.05rem 1.1rem;
  border: 1px solid var(--global-divider-color);
  border-top: 2px solid var(--global-theme-color);
  border-radius: 4px;
  background: var(--global-card-bg-color);
}

.writing-groups h3 {
  margin: 0 0 0.7rem;
  font-size: 0.95rem;
}

.writing-groups ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.writing-groups ul li {
  margin: 0.55rem 0;
  line-height: 1.45;
}

.language-badge {
  margin-left: 0.35rem;
  color: var(--jiayu-muted);
  font-size: 0.68rem;
  font-weight: 650;
}

.quiet-contact {
  margin: 1.5rem 0 0.5rem;
  padding: 1.5rem 1.4rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 4px;
  background: var(--global-card-bg-color);
  font-size: 1.02rem;
  line-height: 1.8;
}

.home-social {
  margin-top: 1.35rem;
  text-align: left !important;
}

.capability-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0.4rem 0 2.4rem;
}

.capability-grid article {
  padding: 1.15rem 1.15rem 1.2rem;
  border: 1px solid var(--global-divider-color);
  border-top: 2px solid var(--global-theme-color);
  border-radius: 4px;
  background: var(--global-card-bg-color);
}

.capability-grid h2,
.capability-grid h3 {
  margin: 0 0 0.45rem;
  font-family: var(--jiayu-sans);
  font-size: 1.02rem;
}

.capability-grid p {
  margin: 0;
  color: var(--jiayu-muted);
  line-height: 1.7;
}

.case-study {
  scroll-margin-top: 5rem;
  padding: 2.2rem 0 2.2rem 1.15rem;
  border-top: 1px solid var(--global-divider-color);
  border-left: 2px solid var(--global-theme-color);
}

.work-demos {
  margin: 1.5rem 0 2.4rem;
  padding-top: 2.2rem;
  border-top: 1px solid var(--global-divider-color);
}

.work-demos .section-heading {
  margin-bottom: 1.4rem;
}

.demo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem 1.15rem;
}

.demo-card {
  min-width: 0;
}

.demo-card video {
  display: block;
  width: 100%;
  max-height: 24rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 4px;
  background: #111;
}

.demo-card h3 {
  margin: 0.85rem 0 0.3rem;
  font-family: var(--jiayu-sans);
  font-size: 1rem;
}

.demo-card p {
  margin: 0;
  color: var(--jiayu-muted);
  font-size: 0.92rem;
  line-height: 1.65;
}

.demo-card .demo-card__link,
.case-links {
  margin-top: 0.65rem;
  font-size: 0.92rem;
  font-weight: 550;
}

.case-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}

.case-study__meta {
  margin-bottom: 0.4rem;
  color: var(--global-theme-color);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.case-study h2 {
  margin-top: 0;
  font-size: 1.45rem;
}

.case-study dl {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.7rem 1.2rem;
  margin-top: 1.25rem;
}

.case-study dt {
  color: var(--global-text-color);
  font-weight: 600;
}

.case-study dd {
  margin: 0;
  color: var(--jiayu-muted);
  line-height: 1.7;
}

.agent-system-map {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 0.55rem;
  margin: 1.7rem 0 1rem;
}

.agent-system-map > div {
  min-width: 0;
  padding: 0.95rem;
  border: 1px solid var(--global-divider-color);
  border-top: 2px solid var(--global-theme-color);
  border-radius: 4px;
  background: var(--global-card-bg-color);
}

.agent-system-map span,
.agent-system-map strong,
.agent-system-map small {
  display: block;
}

.agent-system-map span {
  margin-bottom: 0.5rem;
  color: var(--global-theme-color);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.agent-system-map strong {
  font-size: 0.9rem;
  line-height: 1.35;
}

.agent-system-map small {
  margin-top: 0.4rem;
  color: var(--jiayu-muted);
  font-size: 0.76rem;
  line-height: 1.5;
}

.agent-system-map i {
  align-self: center;
  color: var(--jiayu-muted);
  font-style: normal;
}

.case-principles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  color: var(--jiayu-muted);
  font-size: 0.8rem;
  list-style: none;
}

.case-principles li {
  padding: 0.22rem 0.65rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 999px;
  background: var(--global-card-bg-color);
}

.case-principles li::before {
  content: none;
}

.credential-list {
  padding-left: 1.15rem;
}

.credential-list li {
  margin: 0.65rem 0;
  line-height: 1.65;
}

.publications h2 {
  margin-top: 2.4rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--global-divider-color);
  font-size: 1.25rem;
}

.publications .bibliography {
  margin-top: 0.45rem;
}

.publications .bibliography > li {
  margin-bottom: 1.2rem;
  line-height: 1.65;
}

.publication-note {
  max-width: 42rem;
  color: var(--jiayu-muted);
  font-size: 0.95rem;
  line-height: 1.7;
}

footer.fixed-bottom,
footer.sticky-bottom,
.page-footer,
#footer {
  border-top: 1px solid color-mix(in srgb, var(--global-footer-text-color) 18%, transparent);
}

@media (max-width: 780px) {
  .home-intro {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    align-items: start;
  }

  .home-intro__portrait {
    grid-row: 1;
    width: 168px;
  }

  .section-heading,
  .direction-list li,
  .project-list li,
  .research-list li,
  .open-source-list li,
  .patent-list li,
  .case-study dl {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .writing-groups,
  .capability-grid,
  .demo-grid {
    grid-template-columns: 1fr;
  }

  .book-feature {
    grid-template-columns: 1fr;
  }

  .book-mark {
    min-height: 5.2rem;
  }

  .agent-system-map {
    grid-template-columns: 1fr;
  }

  .agent-system-map i {
    justify-self: center;
    line-height: 0.8;
    transform: rotate(90deg);
  }

  .case-study {
    padding-left: 0.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Editorial portfolio system -------------------------------------------------
   A restrained research-site layer on top of al-folio. The visual hierarchy is
   carried by type, rules, spacing and evidence rather than decorative artwork. */

:root,
html[data-theme="light"] {
  --jiayu-accent-soft: color-mix(in srgb, var(--global-theme-color) 9%, var(--global-card-bg-color));
  --jiayu-surface-raised: color-mix(in srgb, var(--global-card-bg-color) 92%, white);
  --jiayu-shadow: 0 18px 48px color-mix(in srgb, var(--global-text-color) 9%, transparent);
  --jiayu-reading-width: 44rem;
}

html[data-theme="dark"] {
  --jiayu-accent-soft: color-mix(in srgb, var(--global-theme-color) 10%, var(--global-card-bg-color));
  --jiayu-surface-raised: color-mix(in srgb, var(--global-card-bg-color) 96%, white);
  --jiayu-shadow: 0 18px 48px rgba(0, 0, 0, 0.26);
}

@media (prefers-color-scheme: dark) {
  html[data-theme="system"] {
    --jiayu-accent-soft: color-mix(in srgb, var(--global-theme-color) 10%, var(--global-card-bg-color));
    --jiayu-surface-raised: color-mix(in srgb, var(--global-card-bg-color) 96%, white);
    --jiayu-shadow: 0 18px 48px rgba(0, 0, 0, 0.26);
  }
}

body {
  background-image: none;
  font-size: 1rem;
  line-height: 1.68;
}

.container[role="main"] {
  width: min(100%, 1120px);
  max-width: 1120px;
  margin-top: clamp(3rem, 6vw, 4.5rem) !important;
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
}

.navbar {
  min-height: 3.75rem;
  background: color-mix(in srgb, var(--global-bg-color) 91%, transparent);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--global-divider-color) 72%, transparent);
}

.navbar .container {
  max-width: 1120px;
  padding-right: clamp(1.25rem, 4vw, 2.25rem);
  padding-left: clamp(1.25rem, 4vw, 2.25rem);
}

.navbar-brand {
  font-size: 1.12rem;
}

.navbar .nav-link {
  position: relative;
  padding-right: 0.66rem !important;
  padding-left: 0.66rem !important;
  color: var(--jiayu-muted) !important;
  font-size: 0.86rem;
  font-weight: 520;
}

.navbar .nav-link:hover,
.navbar .nav-item.active > .nav-link {
  color: var(--global-text-color) !important;
}

.navbar .nav-item.active > .nav-link::after {
  position: absolute;
  right: 0.66rem;
  bottom: 0.18rem;
  left: 0.66rem;
  height: 1px;
  background: var(--global-theme-color);
  content: "";
}

.navbar .language-switch .nav-link::after {
  content: none;
}

.page-shell {
  max-width: 100%;
}

.page-hero {
  position: relative;
  margin-bottom: 2.8rem;
  padding: 0.35rem 0 2.25rem;
  border-bottom: 0;
}

.page-hero::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    var(--global-theme-color) 0 5.5rem,
    var(--global-divider-color) 5.5rem 100%
  );
  content: "";
}

.page-kicker {
  margin: 0 0 0.65rem;
  color: var(--global-theme-color);
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.post-header .post-title {
  max-width: 50rem;
  margin-bottom: 0.6rem;
  font-size: clamp(2.25rem, 5vw, 3.35rem);
  line-height: 1.08;
}

html[lang="zh-CN"] .post-header .post-title {
  letter-spacing: 0.035em;
}

.post-description {
  max-width: 47rem;
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.75;
}

.home-page {
  padding-top: 0;
}

.home-intro {
  grid-template-columns: minmax(0, 1fr) 252px;
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items: center;
  padding: 1.6rem 0 3.1rem;
}

.home-intro > div {
  position: relative;
}

.home-intro > div::before {
  position: absolute;
  top: 0.15rem;
  left: -1.35rem;
  width: 2px;
  height: 4.3rem;
  background: var(--global-theme-color);
  content: "";
}

.home-intro__portrait {
  width: 252px;
  border: 0;
  border-radius: 2px;
  box-shadow:
    12px 12px 0 var(--jiayu-accent-soft),
    var(--jiayu-shadow);
  filter: saturate(0.82) contrast(1.02);
}

.eyebrow {
  margin-bottom: 0.75rem;
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.home-intro h1 {
  font-size: clamp(3rem, 6.6vw, 4.6rem);
  line-height: 0.98;
}

html[lang="zh-CN"] .home-intro h1 {
  font-size: clamp(3rem, 7vw, 4.65rem);
  letter-spacing: 0.07em;
}

.home-intro__role {
  margin-top: 1rem;
  font-size: 1.07rem;
  letter-spacing: 0.015em;
}

.home-intro__thesis {
  max-width: 41rem;
  margin-top: 1.65rem;
  font-size: clamp(1.28rem, 2.15vw, 1.56rem);
  line-height: 1.52;
}

.home-intro__career {
  max-width: 43rem;
  margin-top: 1rem;
  font-size: 0.98rem;
}

.inline-links {
  gap: 0.75rem 1.25rem;
  align-items: center;
  margin-top: 1.6rem;
}

.inline-links a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 2.2rem;
  padding: 0.35rem 0.78rem;
  border: 1px solid var(--global-theme-color);
  border-radius: 2px;
  text-decoration: none;
}

.inline-links a:first-child:hover {
  background: var(--global-theme-color);
  color: var(--global-hover-text-color);
}

.inline-links .primary-email {
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--global-theme-color) 58%, transparent);
}

.proof-line {
  display: grid;
  grid-template-columns: 1.4fr 1.35fr repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--global-divider-color);
  border-bottom: 1px solid var(--global-divider-color);
}

.proof-line span {
  display: flex;
  min-width: 0;
  min-height: 5.25rem;
  flex-direction: column;
  justify-content: center;
  padding: 0;
  border: 0;
  border-right: 1px solid var(--global-divider-color);
  border-radius: 0;
  background: transparent;
  line-height: 1.25;
}

.proof-line span > a {
  display: flex;
  min-height: 5.25rem;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding: 0.85rem 0.9rem;
  color: inherit;
  text-decoration: none;
  transition: background-color 140ms ease;
}

.proof-line span > a:hover {
  background: #f7faf8;
}

.proof-line span > a:hover strong {
  color: var(--global-theme-color);
}

.proof-line span:last-child {
  border-right: 0;
}

.proof-line strong,
.proof-line small {
  display: block;
}

.proof-line strong {
  color: var(--global-text-color);
  font-family: var(--jiayu-serif);
  font-size: 1.06rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.proof-line small {
  margin-top: 0.3rem;
  color: var(--jiayu-muted);
  font-size: 0.7rem;
  line-height: 1.35;
}

.home-section,
.content-section {
  padding: clamp(3.1rem, 6vw, 4.5rem) 0;
}

.section-heading {
  grid-template-columns: 10.5rem minmax(0, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
  align-items: start;
}

.section-heading h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.62rem);
}

.section-heading p {
  max-width: 43rem;
  line-height: 1.75;
}

.direction-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2.5rem;
  counter-reset: direction;
}

.direction-list li {
  display: block;
  position: relative;
  padding: 1.35rem 0 1.7rem 2.3rem;
  border-top: 1px solid var(--global-divider-color);
  counter-increment: direction;
}

.direction-list li:first-child {
  padding-top: 1.35rem;
  border-top-color: var(--global-divider-color);
}

.direction-list li::before {
  position: absolute;
  top: 1.42rem;
  left: 0;
  color: var(--global-theme-color);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  content: "0" counter(direction);
}

.direction-list h3 {
  margin-bottom: 0.45rem;
  font-size: 1.03rem;
}

.project-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.project-list li,
.project-list li:first-child {
  display: block;
  min-height: 10.2rem;
  padding: 1.4rem 1.45rem 1.55rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 8px;
  background: var(--jiayu-surface-raised);
  transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.project-list li:hover {
  border-color: color-mix(in srgb, var(--global-theme-color) 56%, var(--global-divider-color));
  box-shadow: 0 12px 30px color-mix(in srgb, var(--global-text-color) 6%, transparent);
  transform: translateY(-2px);
}

.project-list h3 {
  margin-bottom: 0.6rem;
  font-size: 1.05rem;
}

.project-list h3 a {
  text-decoration: none;
}

.project-list h3 a::after {
  margin-left: 0.35rem;
  font-size: 0.85em;
  content: "↗";
}

.book-feature {
  grid-template-columns: 9.4rem minmax(0, 1fr);
  gap: 2rem;
  align-items: center;
  padding: 2rem;
  overflow: hidden;
  border-radius: 10px;
  background:
    linear-gradient(115deg, var(--jiayu-accent-soft), transparent 55%),
    var(--jiayu-surface-raised);
}

.book-cover {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 3;
  border: 1px solid color-mix(in srgb, var(--global-theme-color) 24%, var(--global-divider-color));
  border-radius: 2px 5px 5px 2px;
  background: #f5f0e4;
  box-shadow: 7px 9px 20px color-mix(in srgb, var(--global-text-color) 18%, transparent);
  object-fit: cover;
}

.book-mark {
  position: relative;
  min-height: 11.6rem;
  overflow: hidden;
  border-radius: 2px 6px 6px 2px;
  background: linear-gradient(145deg, #155b48, var(--global-theme-color));
  box-shadow: 7px 8px 18px color-mix(in srgb, var(--global-text-color) 18%, transparent);
  color: #f7f4e9;
}

.book-mark::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0.55rem;
  width: 1px;
  background: rgba(255, 255, 255, 0.24);
  content: "";
}

.book-mark::after {
  position: absolute;
  right: 0.9rem;
  bottom: 0.75rem;
  color: rgba(255, 255, 255, 0.68);
  font-family: var(--jiayu-sans);
  font-size: 0.52rem;
  font-weight: 600;
  letter-spacing: 0.13em;
  content: "ARCHITECTURE · ENGINEERING";
}

.book-feature h3 {
  max-width: 35rem;
  margin-bottom: 0.7rem;
  font-size: clamp(1.25rem, 2.6vw, 1.65rem);
  line-height: 1.35;
}

.book-feature p {
  max-width: 40rem;
  margin-bottom: 0;
  color: var(--jiayu-muted);
  line-height: 1.75;
}

.writing-groups {
  gap: 1rem;
  counter-reset: writing-group;
}

.writing-groups > li {
  position: relative;
  padding: 1.35rem 1.4rem 1.5rem;
  border-top-width: 1px;
  border-radius: 8px;
  counter-increment: writing-group;
}

.writing-groups > li::before {
  position: absolute;
  top: 1.25rem;
  right: 1.2rem;
  color: color-mix(in srgb, var(--global-theme-color) 50%, transparent);
  font-family: var(--jiayu-serif);
  font-size: 0.75rem;
  content: "0" counter(writing-group);
}

.writing-groups h3 {
  margin-bottom: 0.9rem;
  color: var(--global-text-color);
  font-size: 1rem;
}

.writing-groups ul li {
  margin: 0.72rem 0;
  line-height: 1.5;
}

.quiet-contact {
  position: relative;
  margin: 3rem 0 0.75rem;
  padding: 1.8rem 2rem 1.9rem 2.15rem;
  border: 1px solid var(--global-divider-color);
  border-left: 4px solid var(--global-theme-color);
  border-radius: 8px;
  background: linear-gradient(110deg, var(--jiayu-accent-soft), var(--global-card-bg-color));
  font-family: var(--jiayu-serif);
  font-size: clamp(1.04rem, 2vw, 1.22rem);
  line-height: 1.75;
}

.quiet-contact a {
  font-family: var(--jiayu-sans);
  font-size: 0.92em;
  font-weight: 700;
}

.home-social {
  margin-top: 1.7rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--global-divider-color);
}

.home-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.35rem;
  font-size: 0.92rem;
  font-weight: 650;
}

.home-social-links a {
  color: var(--global-theme-color);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

#back-to-top {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 20;
  display: grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  border: 1px solid var(--global-divider-color);
  border-radius: 50%;
  background: color-mix(in srgb, var(--global-bg-color) 92%, transparent);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--global-text-color) 13%, transparent);
  color: var(--global-text-color);
  font: 700 1.15rem/1 var(--jiayu-sans);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.55rem);
  transition: opacity 160ms ease, transform 160ms ease;
  backdrop-filter: blur(10px);
}

#back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

#back-to-top:focus-visible,
.code-copy:focus-visible {
  outline: 2px solid var(--global-theme-color);
  outline-offset: 3px;
}

.post-content pre {
  position: relative;
}

.code-copy {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  padding: 0.28rem 0.52rem;
  border: 1px solid color-mix(in srgb, var(--global-text-color) 18%, transparent);
  border-radius: 4px;
  background: color-mix(in srgb, var(--global-bg-color) 90%, transparent);
  color: var(--global-text-color);
  font: 600 0.72rem/1.2 var(--jiayu-sans);
  cursor: pointer;
}

.capability-grid {
  gap: 1rem;
  margin: 0 0 2rem;
  counter-reset: capability;
}

.capability-grid article {
  position: relative;
  min-height: 10.2rem;
  padding: 1.45rem 1.5rem 1.55rem 4.4rem;
  border-top-width: 1px;
  border-radius: 8px;
  counter-increment: capability;
}

.capability-grid article::before {
  position: absolute;
  top: 1.48rem;
  left: 1.45rem;
  color: var(--global-theme-color);
  font-family: var(--jiayu-serif);
  font-size: 1.15rem;
  font-weight: 600;
  content: "0" counter(capability);
}

.capability-grid h2,
.capability-grid h3 {
  margin-bottom: 0.55rem;
  font-size: 1.04rem;
}

.section-index {
  position: sticky;
  z-index: 5;
  top: 3.75rem;
  display: flex;
  gap: 0.55rem 1rem;
  align-items: center;
  margin: 0 -0.7rem 2.8rem;
  padding: 0.75rem 0.7rem;
  overflow-x: auto;
  border-top: 1px solid var(--global-divider-color);
  border-bottom: 1px solid var(--global-divider-color);
  background: color-mix(in srgb, var(--global-bg-color) 91%, transparent);
  backdrop-filter: blur(14px);
  scrollbar-width: none;
}

.section-index::-webkit-scrollbar {
  display: none;
}

.section-index span,
.section-index a {
  flex: 0 0 auto;
  font-size: 0.76rem;
  white-space: nowrap;
}

.section-index span {
  color: var(--global-text-color);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.section-index a {
  color: var(--jiayu-muted);
  text-decoration: none;
}

.section-index a:hover {
  color: var(--global-theme-color);
}

.work-demos {
  margin-top: 0;
  padding-top: 1.55rem;
  border-top: 0;
  scroll-margin-top: 8rem;
}

.page-work .page-hero {
  margin-bottom: 1.5rem;
  padding-bottom: 1.45rem;
}

.capability-flags {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0 0 1.2rem;
}

.capability-flags a {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 4.3rem;
  flex-direction: column;
  justify-content: center;
  padding: 0.72rem 0.75rem 0.76rem 0.9rem;
  overflow: hidden;
  border: 1px solid var(--global-divider-color);
  border-left: 3px solid var(--global-theme-color);
  border-radius: 4px;
  background: var(--global-bg-color);
  text-decoration: none;
  transition:
    border-color 160ms ease,
    background-color 160ms ease,
    transform 160ms ease;
}

.capability-flags a::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 0.42rem;
  height: 100%;
  background: linear-gradient(135deg, transparent 50%, var(--jiayu-accent-soft) 50%);
  content: "";
  opacity: 0.75;
}

.capability-flags a:hover,
.capability-flags a:focus-visible {
  border-color: color-mix(in srgb, var(--global-theme-color) 45%, var(--global-divider-color));
  background: color-mix(in srgb, var(--jiayu-accent-soft) 35%, var(--global-bg-color));
  transform: translateY(-1px);
}

.capability-flags span {
  overflow: hidden;
  color: var(--global-theme-color);
  font-size: 0.62rem;
  font-weight: 720;
  letter-spacing: 0.075em;
  line-height: 1.25;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.capability-flags strong {
  margin-top: 0.2rem;
  color: var(--global-text-color);
  font-size: 0.83rem;
  font-weight: 680;
  line-height: 1.35;
}

.page-work .section-index {
  margin-bottom: 1.6rem;
}

.demo-grid {
  gap: 1rem;
}

.demo-card {
  padding: 0.7rem 0.7rem 1.1rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 9px;
  background: var(--jiayu-surface-raised);
}

.demo-card video {
  aspect-ratio: 16 / 9;
  max-height: none;
  object-fit: cover;
  border: 0;
  border-radius: 5px;
}

.demo-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 5px;
  object-fit: cover;
}

.demo-card--photo {
  margin: 0;
}

.demo-card--photo figcaption {
  margin: 0;
}

.demo-card--photo > img {
  object-position: left center;
}

.demo-card h3,
.demo-card p {
  margin-right: 0.45rem;
  margin-left: 0.45rem;
}

.demo-card h3 {
  margin-top: 1rem;
  font-size: 1.04rem;
}

.demo-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.34rem;
  margin: 0.8rem 0.45rem 0;
  padding: 0;
  list-style: none;
}

.demo-tags li {
  margin: 0;
  padding: 0.2rem 0.5rem;
  border: 1px solid color-mix(in srgb, var(--global-theme-color) 20%, var(--global-divider-color));
  border-radius: 999px;
  background: color-mix(in srgb, var(--jiayu-accent-soft) 48%, var(--global-bg-color));
  color: color-mix(in srgb, var(--global-theme-color) 78%, var(--global-text-color));
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.35;
}

.case-study {
  margin: 1.1rem 0;
  padding: 2rem 2.1rem 2.15rem;
  border: 1px solid var(--global-divider-color);
  border-left: 3px solid var(--global-theme-color);
  border-radius: 10px;
  background: color-mix(in srgb, var(--global-card-bg-color) 68%, transparent);
}

.case-study__meta {
  margin-bottom: 0.55rem;
}

.case-study h2 {
  margin-bottom: 0;
  font-family: var(--jiayu-serif);
  font-size: clamp(1.48rem, 2.8vw, 1.85rem);
  line-height: 1.28;
}

.case-study__lead {
  max-width: 47rem;
  margin: 0.72rem 0 1.05rem;
  color: color-mix(in srgb, var(--global-text-color) 82%, var(--jiayu-muted));
  font-family: var(--jiayu-serif);
  font-size: 1.04rem;
  line-height: 1.72;
}

.case-study__proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 1.15rem;
  padding: 0;
  border-top: 1px solid var(--global-divider-color);
  border-bottom: 1px solid var(--global-divider-color);
  list-style: none;
}

.case-study__proof li {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: 0.72rem 0.85rem;
  border-right: 1px solid var(--global-divider-color);
}

.case-study__proof li:first-child {
  padding-left: 0;
}

.case-study__proof li:last-child {
  border-right: 0;
}

.case-study__proof strong {
  color: var(--global-text-color);
  font-family: var(--jiayu-serif);
  font-size: 1rem;
  line-height: 1.3;
}

.case-study__proof span {
  margin-top: 0.18rem;
  color: var(--jiayu-muted);
  font-size: 0.7rem;
  line-height: 1.4;
}

.case-study dl {
  grid-template-columns: 6.2rem minmax(0, 1fr);
  gap: 0;
  margin-top: 1.5rem;
  border-top: 1px solid var(--global-divider-color);
}

.case-study dt,
.case-study dd {
  padding-top: 0.78rem;
  padding-bottom: 0.78rem;
  border-bottom: 1px solid var(--global-divider-color);
}

.case-study dt {
  padding-right: 1rem;
  color: var(--global-theme-color);
  font-size: 0.82rem;
  letter-spacing: 0.03em;
}

.case-study dd {
  font-size: 0.96rem;
}

.agent-system-map > div {
  border-top-width: 1px;
  border-radius: 7px;
}

.case-principles li {
  background: transparent;
}

.page-research .page-content > .content-section:first-child {
  padding-top: 0;
}

.page-research .page-content > .content-section:first-child .research-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  counter-reset: research-topic;
}

.page-research .page-content > .content-section:first-child .research-list li,
.page-research .page-content > .content-section:first-child .research-list li:first-child {
  display: block;
  position: relative;
  min-height: 10.5rem;
  padding: 1.4rem 1.5rem 1.5rem 4.2rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 8px;
  background: var(--jiayu-surface-raised);
  counter-increment: research-topic;
}

.page-research .page-content > .content-section:first-child .research-list li::before {
  position: absolute;
  top: 1.45rem;
  left: 1.45rem;
  color: var(--global-theme-color);
  font-family: var(--jiayu-serif);
  font-size: 1.05rem;
  font-weight: 650;
  content: "0" counter(research-topic);
}

.page-research .open-source-list,
.page-research .patent-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 2rem;
}

.page-research .open-source-list li,
.page-research .patent-list li,
.page-research .open-source-list li:first-child,
.page-research .patent-list li:first-child {
  display: block;
  padding: 1.15rem 0 1.35rem;
  border-top: 1px solid var(--global-divider-color);
}

.credential-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.credential-list li {
  position: relative;
  margin: 0;
  padding: 0.78rem 0 0.78rem 1.5rem;
  border-top: 1px solid var(--global-divider-color);
}

.credential-list li::before {
  position: absolute;
  top: 1.34rem;
  left: 0;
  width: 0.42rem;
  height: 0.42rem;
  border: 1px solid var(--global-theme-color);
  border-radius: 50%;
  content: "";
}

.page-profile .content-section:first-child {
  padding-top: 0;
}

.page-profile .content-section > p:not(.quiet-contact) {
  max-width: var(--jiayu-reading-width);
  margin-left: 12rem;
  color: var(--global-text-color);
  font-family: var(--jiayu-serif);
  font-size: 1.08rem;
  line-height: 1.82;
}

.page-writing .content-section {
  padding-top: 2.8rem;
  padding-bottom: 2.8rem;
}

.page-writing .open-source-list li,
.page-writing .open-source-list li:first-child {
  grid-template-columns: minmax(15rem, 0.78fr) minmax(0, 1.22fr);
  gap: 2rem;
  padding: 1.15rem 0 1.3rem;
  border-top: 1px solid var(--global-divider-color);
}

.page-writing .open-source-list h3 {
  font-size: 1.01rem;
}

.publications h2 {
  margin-top: 3rem;
  padding: 0 0 0.75rem;
  border-bottom: 1px solid var(--global-text-color);
  font-size: clamp(1.28rem, 2.6vw, 1.62rem);
}

.publications .bibliography {
  margin: 0;
  padding: 0;
}

.publications .bibliography > li {
  margin: 0;
  padding: 1.35rem 0 1.45rem;
  border-bottom: 1px solid var(--global-divider-color);
  line-height: 1.58;
}

.publications .bibliography .row {
  align-items: start;
}

.publications .bibliography .title {
  margin-bottom: 0.32rem;
  color: var(--global-text-color);
  font-family: var(--jiayu-serif);
  font-size: 1.06rem;
  font-weight: 650;
  line-height: 1.42;
}

.publications .bibliography .author,
.publications .bibliography .periodical {
  color: var(--jiayu-muted);
  font-size: 0.9rem;
}

.publications .bibliography .links {
  margin-top: 0.55rem;
}

.publications .bibliography .links .btn {
  min-width: 2.8rem;
  margin-right: 0.35rem;
  padding: 0.18rem 0.55rem;
  border: 1px solid var(--global-divider-color);
  border-radius: 999px;
  color: var(--global-theme-color);
  font-size: 0.67rem;
  font-weight: 650;
  letter-spacing: 0.04em;
}

.publications .bibliography .links .btn:hover {
  border-color: var(--global-theme-color);
  background: var(--global-theme-color);
  color: var(--global-hover-text-color);
}

.publication-note {
  max-width: 46rem;
  margin-bottom: 2.4rem;
  padding: 1rem 1.1rem;
  border-left: 2px solid var(--global-theme-color);
  background: var(--jiayu-accent-soft);
}

footer.fixed-bottom,
footer.sticky-bottom,
.page-footer,
#footer {
  margin-top: 4rem;
}

@media (max-width: 991.98px) {
  .navbar .navbar-collapse-main {
    margin-top: 0.7rem;
    padding: 0.7rem 0 1rem;
    border-top: 1px solid var(--global-divider-color);
  }

  .navbar .nav-link {
    padding: 0.52rem 0 !important;
  }

  .navbar .nav-item.active > .nav-link::after {
    right: auto;
    bottom: 0.32rem;
    left: 0;
    width: 2rem;
  }

  .language-switch .nav-link {
    display: inline-block;
    margin-top: 0.45rem;
    padding: 0.18rem 0.62rem !important;
  }

  .proof-line {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .proof-line span:nth-child(3),
  .proof-line span:nth-child(6) {
    border-right: 0;
  }

  .proof-line span:nth-child(-n + 3) {
    border-bottom: 1px solid var(--global-divider-color);
  }

  .proof-line span:last-child {
    border-right: 0;
  }

  .agent-system-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .agent-system-map i {
    display: none;
  }
}

@media (max-width: 780px) {
  body {
    font-size: 0.96rem;
  }

  .container[role="main"] {
    margin-top: 2.4rem !important;
    padding-right: 1.05rem;
    padding-left: 1.05rem;
  }

  .page-hero {
    margin-bottom: 2rem;
    padding-bottom: 1.65rem;
  }

  .page-kicker {
    margin-bottom: 0.5rem;
  }

  .post-header .post-title {
    font-size: clamp(2.05rem, 12vw, 2.75rem);
  }

  .post-description {
    font-size: 0.96rem;
  }

  .home-intro {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    align-items: start;
    padding: 0.9rem 0 2rem;
  }

  .home-intro > div::before {
    display: none;
  }

  .home-intro__portrait {
    grid-row: auto;
    width: 132px;
    margin-top: 0.2rem;
    box-shadow:
      6px 6px 0 var(--jiayu-accent-soft),
      0 10px 26px color-mix(in srgb, var(--global-text-color) 12%, transparent);
  }

  .home-intro h1,
  html[lang="zh-CN"] .home-intro h1 {
    font-size: clamp(2.45rem, 14vw, 3.15rem);
  }

  .home-intro__role {
    font-size: 0.9rem;
    line-height: 1.5;
  }

  .home-intro__thesis {
    margin-top: 1.35rem;
    font-size: 1.18rem;
  }

  .inline-links {
    gap: 0.65rem 1rem;
  }

  .proof-line {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .proof-line span,
  .proof-line span:nth-child(3),
  .proof-line span:nth-child(6),
  .proof-line span:last-child {
    min-height: 4.7rem;
    border-right: 1px solid var(--global-divider-color);
    border-bottom: 1px solid var(--global-divider-color);
  }

  .proof-line span:nth-child(even) {
    border-right: 0;
  }

  .proof-line span:first-child {
    grid-column: auto;
    border-right: 1px solid var(--global-divider-color);
  }

  .proof-line span:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .proof-line strong {
    font-size: 1rem;
  }

  .proof-line span > a {
    min-height: 4.7rem;
    padding: 0.75rem 0.72rem;
  }

  .home-section,
  .content-section {
    padding: 2.65rem 0;
  }

  .section-heading {
    grid-template-columns: 1fr;
    gap: 0.6rem;
    margin-bottom: 1.4rem;
  }

  .direction-list,
  .project-list,
  .page-research .page-content > .content-section:first-child .research-list,
  .page-research .open-source-list,
  .page-research .patent-list {
    grid-template-columns: 1fr;
  }

  .direction-list {
    gap: 0;
  }

  .project-list {
    gap: 0.75rem;
  }

  .project-list li,
  .project-list li:first-child {
    min-height: 0;
    padding: 1.2rem 1.25rem 1.35rem;
  }

  .book-feature {
    grid-template-columns: 6.4rem minmax(0, 1fr);
    gap: 1.2rem;
    align-items: start;
    padding: 1.25rem;
  }

  .book-mark {
    min-height: 8.2rem;
    font-size: 0.88rem;
  }

  .book-mark::after {
    display: none;
  }

  .book-feature h3 {
    font-size: 1.12rem;
  }

  .book-feature p {
    grid-column: 1 / -1;
  }

  .writing-groups {
    gap: 0.75rem;
  }

  .quiet-contact {
    margin-top: 2.4rem;
    padding: 1.35rem 1.25rem 1.45rem 1.4rem;
  }

  .capability-grid article {
    min-height: 0;
    padding: 1.3rem 1.3rem 1.4rem 4rem;
  }

  .capability-flags {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.48rem;
  }

  .capability-flags a {
    min-height: 3.85rem;
    padding: 0.62rem 0.68rem 0.65rem 0.78rem;
  }

  .section-index {
    top: 3.7rem;
    margin-right: -1.05rem;
    margin-left: -1.05rem;
    padding-right: 1.05rem;
    padding-left: 1.05rem;
  }

  .demo-card {
    padding: 0.55rem 0.55rem 1rem;
  }

  .case-study {
    margin: 0.8rem 0;
    padding: 1.35rem 1.25rem 1.45rem;
  }

  .case-study__lead {
    font-size: 1rem;
  }

  .case-study__proof li,
  .case-study__proof li:first-child {
    min-height: 4rem;
    padding: 0.62rem 0.55rem;
  }

  .case-study__proof li:first-child {
    padding-left: 0;
  }

  .case-study dl {
    grid-template-columns: 1fr;
  }

  .case-study dt {
    padding-bottom: 0.15rem;
    border-bottom: 0;
  }

  .case-study dd {
    padding-top: 0;
  }

  .agent-system-map {
    grid-template-columns: 1fr;
  }

  .page-research .page-content > .content-section:first-child .research-list li,
  .page-research .page-content > .content-section:first-child .research-list li:first-child {
    min-height: 0;
  }

  .page-profile .content-section > p:not(.quiet-contact) {
    margin-left: 0;
    font-size: 1.02rem;
  }

  .page-writing .open-source-list li,
  .page-writing .open-source-list li:first-child {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .publications .bibliography > li {
    padding: 1.15rem 0 1.3rem;
  }

  .publications .bibliography .title {
    font-size: 1rem;
  }
}

@media (max-width: 440px) {
  .case-study__proof {
    grid-template-columns: 1fr;
  }

  .case-study__proof li,
  .case-study__proof li:first-child {
    min-height: 3.45rem;
    padding: 0.55rem 0;
    border-right: 0;
    border-bottom: 1px solid var(--global-divider-color);
  }

  .case-study__proof li:last-child {
    border-bottom: 0;
  }
}

/* Home restraint: keep the first page closer to an academic profile than a
   campaign landing page. Evidence and links do the selling. */
.page-home .home-intro > div::before {
  display: none;
}

.page-home .home-section-index {
  top: 3.7rem;
  gap: 0.45rem;
  margin: 0 0 1.15rem;
  padding: 0.72rem 0;
  border-top-color: var(--global-text-color);
  background: color-mix(in srgb, var(--global-bg-color) 94%, transparent);
}

.page-home .home-section-index span {
  margin-right: 0.35rem;
  color: var(--global-theme-color);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-home .home-section-index a {
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  color: var(--jiayu-muted);
  font-size: 0.78rem;
  transition: background-color 140ms ease, color 140ms ease;
}

.page-home .home-section-index a:hover,
.page-home .home-section-index a:focus-visible {
  background: var(--jiayu-accent-soft);
  color: var(--global-theme-color);
}

.page-home .home-section,
.page-home .quiet-contact {
  scroll-margin-top: 7.2rem;
}

.page-home .inline-links a:first-child {
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--global-theme-color) 58%, transparent);
}

.page-home .inline-links a:first-child:hover {
  background: transparent;
  color: var(--global-hover-color);
}

.page-home .copy-email {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--global-theme-color);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--global-theme-color) 58%, transparent);
  text-underline-offset: 0.18em;
}

.page-home .copy-email:hover,
.page-home .copy-email:focus-visible,
.page-home .copy-email.is-copied {
  color: var(--global-hover-color);
}

.page-home .copy-email:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--global-theme-color) 48%, transparent);
  outline-offset: 4px;
}

.page-home .direction-list li,
.page-home .direction-list li:first-child {
  padding: 1.25rem 0 1.55rem;
}

.page-home .direction-list li::before {
  display: none;
}

.page-home .project-list {
  gap: 0 2.5rem;
}

.page-home .project-list li,
.page-home .project-list li:first-child,
.page-home .project-list li:hover {
  min-height: 0;
  padding: 1.25rem 0 1.55rem;
  border: 0;
  border-top: 1px solid var(--global-divider-color);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.page-home .project-list h3 a::after {
  content: none;
}

.page-home .publications .author {
  display: none;
}

.page-publications .publications .author {
  display: none;
}

.page-home .home-profile__list {
  margin: 0;
  border-top: 1px solid var(--global-text-color);
}

.page-home .home-profile {
  scroll-margin-top: 5rem;
}

.page-home .home-profile__list > div {
  display: grid;
  grid-template-columns: 9.5rem minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1.15rem 0 1.25rem;
  border-bottom: 1px solid var(--global-divider-color);
}

.page-home .home-profile__list dt {
  color: var(--global-text-color);
  font-weight: 700;
}

.page-home .home-profile__list dd {
  margin: 0;
  color: var(--jiayu-muted);
  line-height: 1.75;
}

.page-home .quiet-contact {
  padding: 1.65rem 0 0;
  border: 0;
  border-top: 1px solid var(--global-divider-color);
  border-radius: 0;
  background: transparent;
  font-family: var(--jiayu-sans);
  font-size: 0.98rem;
}

@media (max-width: 780px) {
  .page-home .home-section-index {
    top: 3.45rem;
    margin-right: -1.05rem;
    margin-left: -1.05rem;
    padding-right: 1.05rem;
    padding-left: 1.05rem;
  }

  .page-home .project-list {
    gap: 0;
  }

  .page-home .home-profile__list > div {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }
}

