html{box-sizing:border-box;max-width:100%;overflow-x:hidden;background:var(--theme-background)}*,*:before,*:after{box-sizing:inherit}body,h1,h2,h3,p,ol,ul,figure{margin:0;padding:0;font:inherit}ol,ul{list-style:none}button{border:0;margin:0;padding:0;width:auto;overflow:visible;background:transparent;color:inherit;font:inherit;line-height:normal;white-space:nowrap;cursor:pointer;-webkit-appearance:none}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}:root{color-scheme:light;--color-white: #ffffff;--color-off-white: #f3f3f3;--color-black: #000000;--color-off-black: #0f0f0f;--color-off-black-bright: #222222;--color-primary: #2b47ff;--color-primary-dark: #245eff;--color-grey-50: #f7f7f7;--color-grey-100: #eeeeee;--color-grey-200: #babfc5;--color-grey-500: #73808c;--color-grey-600: #595959;--color-grey-700: #333333;--color-light-blue: #c5d3dd;--theme-background: var(--color-white);--theme-surface: var(--color-off-white);--theme-text-primary: var(--color-black);--theme-text-secondary: var(--color-grey-200);--theme-text-tertiary: var(--color-grey-500);--theme-border: var(--color-grey-200);--theme-accent: var(--color-primary);--theme-link: var(--color-primary);--theme-link-hover: var(--color-primary);--theme-label: var(--color-grey-500);--theme-label-accent: var(--color-primary);--theme-l2-background: var(--color-white);--theme-l2-shadow: drop-shadow(0 20px 32px rgb(0 0 0 / 10%));--theme-l2-shadow-hover: drop-shadow(0 2px 4px rgb(0 0 0 / 5%));--spring-elegant: linear( 0 0%, .0039 1%, .0318 3%, .1095 6%, .2122 9%, .3249 12%, .4373 15%, .5429 18%, .638 21%, .7205 24%, .7902 27%, .8474 30%, .8932 33%, .9291 36%, .9563 39%, .9764 42%, .9907 45%, 1.0005 48%, 1.0068 51%, 1.0104 54%, 1.0121 57%, 1.0125 60%, 1.0114 65%, 1.0092 70%, 1.0064 76%, 1.0034 84%, 1.0014 92%, 1.0004 100% );--spring-buoyant: linear( 0 0%, .004379 1%, .017027 2%, .037197 3%, .064139 4%, .097098 5%, .135326 6%, .178089 7%, .224667 8%, .274366 9%, .326515 10%, .380476 11%, .435642 12%, .491445 13%, .547353 14%, .602874 15%, .65756 16%, .711 17%, .76283 18%, .812725 19%, .860402 20%, .90562 21%, .948177 22%, .98791 23%, 1.024693 24%, 1.058435 25%, 1.089077 26%, 1.116593 27%, 1.140987 28%, 1.162286 29%, 1.180545 30%, 1.19584 31%, 1.208266 32%, 1.217937 33%, 1.22498 34%, 1.229538 35%, 1.231761 36%, 1.231811 37%, 1.229853 38%, 1.226059 39%, 1.220603 40%, 1.213659 41%, 1.205403 42%, 1.196006 43%, 1.185638 44%, 1.174463 45%, 1.162638 46%, 1.150318 47%, 1.137645 48%, 1.124757 49%, 1.111781 50%, 1.098837 51%, 1.086034 52%, 1.073472 53%, 1.061241 54%, 1.04942 55%, 1.038082 56%, 1.027286 57%, 1.017084 58%, 1.007519 59%, .998624 60%, .990425 61%, .982939 62%, .976176 63%, .970139 64%, .964824 65%, .960222 66%, .956318 67%, .953091 68%, .950518 69%, .94857 70%, .947216 71%, .946423 72%, .946154 73%, .946371 74%, .947035 75%, .948105 76%, .949542 77%, .951304 78%, .953352 79%, .955646 80%, .958146 81%, .960816 82%, .963619 83%, .966522 84%, .96949 85%, .972494 86%, .975505 87%, .978496 88%, .981443 89%, .984323 90%, .987118 91%, .989809 92%, .992382 93%, .994822 94%, .99712 95%, .999265 96%, 1.001252 97%, 1.003076 98%, 1.004733 99%, 1.006221 100% );--ease-out-strong: cubic-bezier(.23, 1, .32, 1);--ease-in-out-strong: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--theme-change-speed: .3s;--overlay-speed: .26s;--overlay-exit-speed: .18s;--page-border-radius: 20px;--page-padding: 32px;--grid-columns: 8;--grid-gap: 16px;--grid-width: 100vw;--span-centered-xs: 1 / -1;--span-centered-sm: 1 / -1;--span-centered-med: 1 / -1;--span-centered-lrg: 1 / -1;--span-centered-full: 1 / -1;--span-article: 1 / -1}[theme=light]{color-scheme:light}[theme=dark]{color-scheme:dark;--theme-background: var(--color-off-black);--theme-surface: var(--color-off-black);--theme-text-primary: var(--color-white);--theme-text-secondary: var(--color-grey-600);--theme-text-tertiary: var(--color-grey-500);--theme-border: var(--color-grey-700);--theme-accent: var(--color-primary-dark);--theme-link: var(--color-primary-dark);--theme-link-hover: var(--color-light-blue);--theme-label: var(--color-grey-500);--theme-label-accent: var(--color-primary-dark);--theme-l2-background: #111111;--theme-l2-shadow: drop-shadow(0 20px 32px rgb(0 0 0 / 90%));--theme-l2-shadow-hover: drop-shadow(0 2px 4px rgb(0 0 0 / 20%))}@media screen and (min-width:752px){:root{--span-centered-xs: 2 / span 6;--span-centered-sm: 2 / span 6;--span-centered-med: 2 / span 6;--span-centered-lrg: 1 / span 8;--span-article: 3 / span 4;--grid-width: calc(752px + var(--page-padding) * 2)}}@media screen and (min-width:1145px){:root{--page-padding: 0px;--grid-columns: 10;--grid-width: 1145px;--span-centered-xs: 4 / span 4;--span-centered-sm: 3 / span 6;--span-centered-med: 3 / span 6;--span-centered-lrg: 2 / span 8;--span-article: 4 / span 4}}body{min-height:100vh;min-height:100dvh;margin:0;overflow-x:hidden;background:var(--theme-background);color:var(--theme-text-primary);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.4;letter-spacing:0;transition:background-color var(--theme-change-speed),color var(--theme-change-speed);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body.overlay-showing{background:var(--theme-surface)}html.no-scroll{overflow:hidden;overscroll-behavior:none}html.no-scroll body{position:fixed;top:var(--overlay-lock-top, 0px);right:0;left:0;width:100%;padding-right:var(--overlay-scrollbar-gap, 0px);overflow:hidden;overscroll-behavior:none;scrollbar-width:none}.app-shell{min-height:100vh;min-height:100dvh}.grid{display:grid;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));column-gap:var(--grid-gap);width:var(--grid-width);position:relative;left:50%;transform:translate(-50%);pointer-events:none}.grid>*{pointer-events:auto}.page-padding{padding-left:var(--page-padding);padding-right:var(--page-padding)}.span-xs{grid-column:var(--span-centered-xs)}.span-sm{grid-column:var(--span-centered-sm)}.span-med{grid-column:var(--span-centered-med)}.span-lrg{grid-column:var(--span-centered-lrg)}.article-column{grid-column:var(--span-article)}.l1-shell{position:relative;z-index:0;min-height:100vh;min-height:100dvh;background:var(--theme-background);transition:background-color var(--theme-change-speed)}.l1-dimmer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:var(--color-off-black);opacity:0;transition:opacity var(--overlay-speed) var(--spring-elegant)}.l1-shell.overlay-open .l1-dimmer{opacity:.15}@media screen and (min-width:752px){.l1-shell.overlay-open .l1-dimmer{opacity:.88;background:var(--theme-background)}}.landing-page{position:relative;z-index:0;min-height:100vh;min-height:100dvh;padding-top:50vh;background:var(--theme-background);transition:background-color .6s}@media screen and (max-width:1145px){.landing-page{padding-top:40vh}}@media screen and (max-width:751.98px){.landing-page{padding-top:50dvh}}.landing-section{margin-bottom:8rem}@media screen and (min-width:752px){.landing-section{margin-bottom:16rem}}.footer-section,.landing-section:last-child{margin-bottom:0}.theme-toggle-wrapper{grid-column:-2 / -1;justify-self:end;position:relative;top:26px}@media screen and (min-width:1145px){.theme-toggle-wrapper{grid-column:10 / span 1}}.theme-toggle{display:inline-grid;place-items:center;width:28px;height:28px}.theme-toggle svg{transition:transform .2s ease;transform-origin:center}@media(hover:hover)and (pointer:fine){.theme-toggle:hover svg{transform:scale(1.1)}}.theme-toggle:active svg{transform:scale(.8);transition-duration:.1s}.theme-toggle rect{fill:var(--theme-text-primary);transition:fill var(--theme-change-speed)}.intro-section{-webkit-user-select:none;user-select:none}.intro-copy{display:contents}.intro-block{grid-column:var(--span-centered-med);display:flex;flex-direction:column;margin-bottom:4rem}.intro-block:last-child{margin-bottom:0}@media screen and (min-width:1145px){.experience-block{grid-column:3 / span 5}}@media screen and (min-width:752px){.intro-block{flex-direction:row}}.intro-block .label,.intro-block .content h2,.intro-block p{font-size:1.3125rem;line-height:1.15;letter-spacing:0;font-weight:400;text-wrap:pretty}@media screen and (min-width:1145px){.intro-block .label,.intro-block .content h2,.intro-block p{font-size:1.5rem}}.intro-block p:not(:first-child){padding-top:1.5rem}@media screen and (min-width:752px){.intro-block p:not(:first-child){padding-top:2rem}}.accent-label{color:var(--theme-label-accent)}.intro-block .label{flex-shrink:0;color:var(--theme-label)}.headline-block .label{color:var(--theme-label-accent)}@media screen and (min-width:752px){.intro-block .label{width:calc((var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 2 + var(--grid-gap))}}.intro-block p{color:var(--theme-text-secondary);transition:color var(--theme-change-speed);will-change:color}.intro-block p.highlight{color:var(--theme-text-primary)}.ghost-label{opacity:0}.headline-block .label,.headline-block .content h2,.experience-block p,.experience-block .email-link{opacity:0;transform:translateY(10px);animation:intro-in .85s var(--spring-elegant) forwards}.headline-block .content h2{animation-delay:.05s}.experience-block p:nth-child(1){animation-delay:.15s}.experience-block p:nth-child(2){animation-delay:.22s}.experience-block p:nth-child(3){animation-delay:.29s}.experience-block p:nth-child(4){animation-delay:.36s}.experience-block p:nth-child(5){animation-delay:.43s}@keyframes intro-in{to{opacity:1;transform:translateY(0)}}.molly-link{color:var(--theme-text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s ease}.molly-link:hover{color:var(--theme-link-hover)}.section-heading{margin-bottom:2rem}@media screen and (min-width:752px){.section-heading{margin-bottom:4rem}}.section-heading h2{font-size:1.3125rem;line-height:1.15;letter-spacing:0;font-weight:400}@media screen and (min-width:1145px){.section-heading h2{font-size:1.5rem}}.carousel-wrap{--_col-width: 0px;--offset-left: var(--page-padding);--offset-right: var(--offset-left);width:100vw}@media screen and (min-width:752px){.carousel-wrap{--_one-col: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) );--_col-width: calc(var(--_one-col) + var(--grid-gap));--offset-left: calc( 50vw - (var(--grid-width) / 2) + var(--_col-width) + var(--grid-gap) + var(--page-padding) )}}@media screen and (min-width:1145px){.carousel-wrap{--_one-col: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) );--_col-width: calc(var(--_one-col) * 2 + var(--grid-gap));--offset-left: calc(50vw - (var(--grid-width) / 2) + var(--_col-width) + var(--grid-gap))}}.carousel-scroll{display:flex;align-items:var(--align-items);gap:var(--grid-gap);overflow-x:auto;overflow-y:visible;padding-left:var(--offset-left);padding-right:var(--offset-right);padding-top:42px;padding-bottom:64px;margin-top:-42px;margin-bottom:-64px;scroll-padding-inline:var(--offset-left);scrollbar-width:none;scroll-behavior:smooth;touch-action:pan-y;cursor:grab;transform:translate(var(--elastic-position-x, 0px));will-change:transform;-webkit-overflow-scrolling:touch}.carousel-scroll::-webkit-scrollbar{display:none}.carousel-scroll.snap{scroll-snap-type:x mandatory}.carousel-scroll.no-snap{scroll-snap-type:none;scroll-behavior:auto}.carousel-scroll.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.carousel-scroll.dragging *{pointer-events:none}.carousel-item{flex:0 0 auto;scroll-snap-align:start}.work-card{--card-radius: 16px;--card-min-width: 0px;--card-max-width: 9999px;--card-width: 260px;--card-aspect: 4 / 5;position:relative;display:flex;align-items:flex-end;width:clamp(var(--card-min-width),var(--card-width),var(--card-max-width));aspect-ratio:var(--card-aspect);padding:26px;color:var(--card-text-color, var(--theme-text-primary));filter:drop-shadow(0 0 0 rgb(0 0 0 / 0%));transition:transform .65s var(--spring-buoyant),filter .65s var(--spring-buoyant);will-change:transform,filter}.work-card.mode-under{align-items:flex-start;flex-direction:column;aspect-ratio:auto;padding:0}.work-card.size-sm{--card-min-width: 200px;--card-max-width: 402px;--card-aspect: 4 / 5;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 5 + 4 * var(--grid-gap) )}.work-card.size-med-alt{--card-min-width: 230px;--card-max-width: 402px;--card-aspect: 3 / 4;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 6 + 5 * var(--grid-gap) )}.work-card.size-med{--card-min-width: 260px;--card-max-width: 402px;--card-aspect: 4 / 5;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 7 + 6 * var(--grid-gap) )}.work-card.size-lrg{--card-aspect: 4 / 5;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 8 + 7 * var(--grid-gap) )}@media screen and (min-width:752px){.work-card.size-sm{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 3 + 2 * var(--grid-gap) )}.work-card.size-med-alt{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 3.5 + 2.5 * var(--grid-gap) )}.work-card.size-med{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 4 + 3 * var(--grid-gap) )}.work-card.size-lrg{--card-aspect: 3 / 2;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 6 + 5 * var(--grid-gap) )}}@media screen and (min-width:1145px){.work-card.size-sm{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 2 + var(--grid-gap) )}.work-card.size-med-alt{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 2.5 + 1.5 * var(--grid-gap) )}.work-card.size-med{--card-min-width: 0px;--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 3 + 2 * var(--grid-gap) )}.work-card.size-lrg{--card-width: calc( (var(--grid-width) - var(--page-padding) * 2 - (var(--grid-columns) - 1) * var(--grid-gap)) / var(--grid-columns) * 6 + 5 * var(--grid-gap) )}}.card-media{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:var(--card-radius);background:var(--theme-surface);transform:translateZ(0)}.work-card.mode-under .card-media{position:relative;inset:auto;aspect-ratio:var(--card-aspect);height:auto}.media-frame{width:100%;height:100%;position:relative;overflow:hidden;background-position:center;background-size:cover}.media-frame.video-loaded{background-image:none!important}.work-card.size-sm .media-frame{background-position:top center}.media-frame video{position:absolute;top:50%;left:50%;width:100%;height:100%;object-fit:cover;transform:translate(-50%,-50%);opacity:0;transition:opacity .6s ease-in-out}.media-frame video.show{opacity:1}@media(hover:hover)and (pointer:fine){.work-card:hover{transform:scale(1.025);filter:drop-shadow(0 15px 17px rgb(0 0 0 / 20%))}}.card-cta{position:relative;z-index:1;display:flex;align-items:flex-start;gap:15px;width:100%;padding:0;color:var(--card-text-color);text-wrap:pretty;pointer-events:none}.work-card.tone-light{--card-text-color: var(--color-white)}.work-card.tone-dark{--card-text-color: var(--color-black)}.card-cta p,.card-under-copy p{flex:1;min-width:0;font-size:1rem;line-height:1.4;letter-spacing:0;font-weight:400}@media screen and (min-width:1145px){.card-cta p,.card-under-copy p{font-size:1.1rem}}.card-cta strong,.card-under-copy strong{font-weight:400}.card-cta p{max-width:300px}.card-cta span:not(.card-arrow){display:block;margin-top:.3rem;opacity:.7}.card-arrow{display:inline-block;flex:0 0 auto;align-self:flex-start;margin-left:auto;line-height:0;color:currentColor}.card-arrow path{fill:currentColor}.card-under-copy{width:100%;padding:.9rem .9rem .9rem .5rem}@media screen and (min-width:752px){.card-under-copy{padding:.9rem}}.card-under-copy strong,.card-under-copy span{display:block}.card-under-copy span{color:var(--theme-text-tertiary)}.site-footer{width:100%}.footer-inner{display:flex;min-height:24rem;flex-direction:column;align-items:center;justify-content:flex-end;padding-top:12rem;padding-bottom:2rem;color:var(--theme-text-tertiary)}.spotify-block{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:32px}.spotify-label{font-size:13px;line-height:1.2;letter-spacing:0}.footer-actions{display:flex;align-items:center;justify-content:center;gap:48px;font-size:1rem}@media screen and (max-width:520px){.footer-actions{gap:24px}}.email-button{display:inline-flex;align-items:center;gap:8px;color:inherit;transition:color .2s ease}.email-button:hover{color:var(--theme-link)}.email-button svg{width:14px;height:14px;transition:transform .65s var(--spring-buoyant)}@media(hover:hover)and (pointer:fine){.email-button:hover svg{transform:translate(6px)}}.email-button path{fill:currentColor}.spotify-widget{width:100%;max-width:340px;overflow:hidden;border:1px solid rgb(255 255 255 / 40%);border-radius:20px;background:#ffffffa6;box-shadow:0 4px 24px #0000000a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:transform .2s ease,box-shadow .2s ease,background-color var(--theme-change-speed),border-color var(--theme-change-speed)}[theme=dark] .spotify-widget{border-color:#ffffff1a;background:#1e1e1e99}@media(hover:hover)and (pointer:fine){.spotify-widget:hover{transform:scale(1.02);box-shadow:0 8px 32px #00000014}}.spotify-content{display:flex;height:100%;align-items:center;gap:14px;padding:12px;color:inherit}.album-art-wrapper{width:48px;height:48px;flex:0 0 auto;overflow:hidden;border-radius:10px;box-shadow:0 4px 12px #00000026;background:var(--theme-surface)}.album-art{width:100%;height:100%;object-fit:cover}.track-info{display:flex;min-width:0;flex:1;flex-direction:column;justify-content:center;gap:3px}.track-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px}.track-title{overflow:hidden;color:var(--theme-text-primary);font-size:14px;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.track-artist{overflow:hidden;color:var(--theme-text-tertiary);font-size:13px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.progress-bar{height:3px;overflow:hidden;margin-top:6px;border-radius:2px;background:#80808033}.progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--theme-text-primary);opacity:.8;transition:width .5s linear}.equalizer{display:flex;height:10px;align-items:flex-end;gap:2px}.equalizer span{width:2px;border-radius:1px;background:#1db954;animation:equalizer .8s ease-in-out infinite}.equalizer span:nth-child(1){height:60%}.equalizer span:nth-child(2){height:100%;animation-delay:.2s}.equalizer span:nth-child(3){height:40%;animation-delay:.4s}@keyframes equalizer{0%,to{transform:scaleY(1)}50%{transform:scaleY(.4)}}.skeleton,.skeleton-line{animation:skeleton-pulse 1.5s ease-in-out infinite;background:var(--theme-surface)}.skeleton-line{display:block;height:14px;border-radius:4px}.skeleton-line.title{width:70%}.skeleton-line.artist{width:50%;height:12px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.overlay-closer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;display:none}.overlay-closer.show{display:block}.l2-panel{--sheet-top-gap: max(12px, env(safe-area-inset-top, 0px));position:fixed;top:auto;right:0;bottom:0;left:0;z-index:3;width:100%;height:calc(100vh - var(--sheet-top-gap));height:calc(100dvh - var(--sheet-top-gap));overflow-x:clip;overflow-y:auto;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:var(--page-border-radius) var(--page-border-radius) 0 0;background:var(--theme-l2-background);touch-action:pan-y;transform:translate3d(0,calc(100% + env(safe-area-inset-bottom,0px)),0);transform-origin:top;opacity:.98;transition:transform var(--overlay-speed) var(--ease-drawer),opacity .18s var(--ease-out-strong);scrollbar-width:none;will-change:transform,opacity}.l2-panel::-webkit-scrollbar{display:none}.l2-panel.open{opacity:1;transform:translate3d(0,var(--sheet-drag-y, 0px),0)}.l2-panel.closing{transition-duration:var(--overlay-exit-speed),.12s}.l2-panel.dragging{transition:none}@media screen and (min-width:752px){.l2-panel{top:0;right:0;bottom:auto;left:0;width:var(--grid-width);height:100lvh;margin:0 auto;padding-bottom:0;border-radius:var(--page-border-radius);filter:var(--theme-l2-shadow);transform:translateY(calc(100lvh + 50px))}.l2-panel.open{transform:translateY(20px)}}@media(prefers-reduced-motion:reduce){.l1-shell,.l2-panel,.close-button{transition-duration:1ms!important}}.pull-handle-button{position:sticky;top:0;z-index:4;display:flex;width:100%;height:30px;align-items:center;justify-content:center;border-radius:var(--page-border-radius) var(--page-border-radius) 0 0;border-bottom:1px solid rgb(0 0 0 / var(--_border-bottom-opacity, 0%));background:var(--theme-background);cursor:grab;touch-action:none}.pull-handle-button:active{cursor:grabbing}@media screen and (min-width:752px){.pull-handle-button{display:none}}.pull-handle{width:50px;height:5px;border-radius:3px;background:var(--theme-text-primary);opacity:.35}.close-button{position:sticky;top:30px;z-index:4;display:none;float:right;margin-right:30px;margin-bottom:-60px;transition:transform .2s,filter .2s;will-change:transform,filter}@media screen and (min-width:752px){.close-button{display:block}}@media(hover:hover)and (pointer:fine){.close-button:hover{filter:var(--theme-l2-shadow-hover);transform:scale(1.05)}}.close-button:active{transform:scale(.97);transition-duration:.1s}.close-button rect{fill:light-dark(var(--color-off-white),var(--color-white))}.close-button path{fill:light-dark(var(--color-off-black),var(--color-black))}.thesis-content{padding-bottom:8rem}.thesis-header{row-gap:0;padding-top:4rem;padding-bottom:4rem}@media screen and (min-width:752px){.thesis-header{padding-top:8rem;padding-bottom:8rem}}.thesis-meta{margin-top:2rem;color:var(--theme-text-tertiary);font-size:.875rem;line-height:1.35}.thesis-title h1{font-size:1.5rem;line-height:1.15;letter-spacing:0;font-weight:400;text-wrap:pretty}.thesis-title p{margin-top:2rem;color:var(--theme-text-tertiary);font-size:1rem;line-height:1.4;text-wrap:pretty}@media screen and (min-width:752px){.thesis-title h1{font-size:1.5rem;line-height:1.15}.thesis-title p{font-size:1rem}}@media screen and (min-width:1145px){.thesis-title h1{font-size:1.5rem;line-height:1.15}.thesis-title p{font-size:1.1rem}}.thesis-title .thesis-meta{color:var(--theme-text-tertiary);font-size:.875rem;line-height:1.35}.cover-frame{height:400px;overflow:hidden;margin-top:4rem;margin-bottom:4rem;border-radius:16px;background:var(--theme-surface)}@media screen and (min-width:752px){.cover-frame{height:600px;margin-top:6rem;margin-bottom:6rem}}.cover-frame img{width:100%;height:100%;object-fit:cover}.rich-text{row-gap:0}.rich-text p,.rich-text h3{font-size:1rem;line-height:1.4;letter-spacing:0;font-weight:400;text-wrap:pretty}@media screen and (min-width:1145px){.rich-text p,.rich-text h3{font-size:1.1rem}}.rich-text p{margin-top:1.5rem;color:var(--theme-text-tertiary)}.rich-text h3{margin-top:2rem;color:var(--theme-text-primary);line-height:1.25}.rich-text h3+p{margin-top:1rem}.rich-text h3+h3{margin-top:1.5rem}.rich-text p:first-child,.rich-text h3:first-child{margin-top:0}@media screen and (min-width:752px){.rich-text p{margin-top:2rem}.rich-text h3{margin-top:4rem}.rich-text h3+p{margin-top:1rem}.rich-text h3+h3{margin-top:2rem}}.rich-text a{color:var(--theme-text-tertiary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.figure-decal{margin:2rem 0 1.5rem;padding:1.5rem 1.25rem;border:2px solid var(--theme-text-primary);background:var(--theme-l2-background);color:var(--theme-text-primary);text-align:center;font-family:Georgia,Times New Roman,serif}.figure-decal .figure-decal-label{margin:0;color:var(--theme-text-primary);font-family:inherit;font-size:1.45rem;font-weight:700;line-height:1.1}.figure-decal blockquote{margin:1.5rem 0 0;color:var(--theme-text-primary);font-family:inherit;font-size:1.35rem;font-style:italic;line-height:1.25}.figure-decal blockquote:before{content:'"'}.figure-decal blockquote:after{content:'"'}.figure-decal .figure-decal-attribution{margin:2rem 0 0;color:var(--theme-text-primary);font-family:inherit;font-size:1.25rem;line-height:1.2}.figure-decal .figure-decal-attribution span{display:block}@media screen and (min-width:752px){.figure-decal{margin-top:4rem;margin-bottom:2rem;padding:2rem 2.5rem}.figure-decal .figure-decal-label{font-size:1.7rem}.figure-decal blockquote{font-size:1.55rem}.figure-decal .figure-decal-attribution{margin-top:2.75rem;font-size:1.45rem}}.media-block{overflow:hidden;margin-top:2rem;margin-bottom:1.5rem;border-radius:16px;background:var(--theme-surface)}@media screen and (min-width:752px){.media-block{margin-top:4rem;margin-bottom:2rem}}.media-block img,.media-block video{width:100%;height:auto}.media-block video{aspect-ratio:16 / 10;object-fit:cover}
