@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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.relative{position:relative}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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))}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--body-bg:#f2f1ed;--panel-bg:#f7f6f2;--surface:#eae9e4;--surface-hover:#e3e2dc;--skeleton:#e1e0da;--body-color:var(--ink-45);--heading-color:var(--heading-color);--muted:#0006;--ink-60:#0009;--ink-55:#0000008c;--ink-45:#00000073;--ink-35:#00000059;--ink-30:#0000004d;--ink-25:#00000040;--ink-22:#00000038;--ink-18:#0000002e;--ink-12:#0000001f;--hairline:#e7e5df;--hairline-strong:#dddbd4;--underline:#d9d9d9;--underline-hover:#666;--ring:#0000000f;--kbd-bg:#0000000b;--wave-bg:#0000001f;--btn-bg:#111;--btn-fg:#fdfdfc;--accent:#e0451f;--glass:#f2f1edd9;--panel-glass:#f7f6f2f5;--scrim:#f2f1edb8;--font-body:-apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--body-bg:#101010;--panel-bg:#191919;--surface:#1e1e1d;--surface-hover:#262625;--skeleton:#242423;--body-color:#ffffff8c;--heading-color:#f1f1ef;--muted:#ffffff73;--ink-60:#ffffffa8;--ink-55:#fff9;--ink-45:#ffffff80;--ink-35:#ffffff6b;--ink-30:#ffffff61;--ink-25:#ffffff52;--ink-22:#ffffff4d;--ink-18:#ffffff38;--ink-12:#ffffff29;--hairline:#232322;--hairline-strong:#2e2e2d;--underline:#3d3d3c;--underline-hover:#8a8a88;--ring:#ffffff17;--kbd-bg:#ffffff14;--wave-bg:#ffffff29;--btn-bg:#f1f1ef;--btn-fg:#111;--accent:#f06a46;--glass:#121212d9;--panel-glass:#1a1a1af5;--scrim:#101010b8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--body-bg:#101010;--panel-bg:#191919;--surface:#1e1e1d;--surface-hover:#262625;--skeleton:#242423;--body-color:#ffffff8c;--heading-color:#f1f1ef;--muted:#ffffff73;--ink-60:#ffffffa8;--ink-55:#fff9;--ink-45:#ffffff80;--ink-35:#ffffff6b;--ink-30:#ffffff61;--ink-25:#ffffff52;--ink-22:#ffffff4d;--ink-18:#ffffff38;--ink-12:#ffffff29;--hairline:#232322;--hairline-strong:#2e2e2d;--underline:#3d3d3c;--underline-hover:#8a8a88;--ring:#ffffff17;--kbd-bg:#ffffff14;--wave-bg:#ffffff29;--btn-bg:#f1f1ef;--btn-fg:#111;--accent:#f06a46;--glass:#121212d9;--panel-glass:#1a1a1af5;--scrim:#101010b8}}html{background:var(--body-bg);color:var(--body-color);scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{display:none}body{min-height:100%;font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body:after{content:"";z-index:999;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{color:var(--heading-color);background:var(--hairline-strong)}.site-nav{z-index:100;isolation:isolate;text-transform:uppercase;justify-content:flex-start;align-items:flex-start;gap:clamp(3rem,6vw,7rem);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;display:flex;position:fixed;top:1.25rem;left:2.5rem;right:2.5rem}.site-nav:before{content:"";z-index:-1;background:linear-gradient(to bottom, var(--body-bg) 0%, var(--body-bg) 72%, transparent 100%);height:4rem;position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-nav:before{background:linear-gradient(to bottom, color-mix(in srgb, var(--body-bg) 96%, transparent) 0%, color-mix(in srgb, var(--body-bg) 88%, transparent) 72%, transparent 100%)}}.site-nav:before{-webkit-backdrop-filter:blur(12px);pointer-events:none}.site-brand{color:var(--lightningcss-light,#111)var(--lightningcss-dark,#f1f1ef)!important;letter-spacing:-.04em!important;font-weight:750!important;line-height:.9rem!important}.site-brand span{display:block}.site-nav-links{align-items:center;gap:clamp(1.25rem,2.5vw,3rem);display:flex;position:relative}.site-nav-links>a{color:var(--ink-30);letter-spacing:.02em;font-size:.6875rem;font-weight:600;line-height:1rem;transition:color .15s}.site-nav-links>a:before{content:"[ "}.site-nav-links>a:after{content:" ]"}.site-nav-links>a:hover{color:var(--heading-color)}.site-nav-links>a[aria-current=page]{color:var(--accent)}.nav-preview{aspect-ratio:16/10;background:var(--panel-bg);width:13.5rem;box-shadow:0 0 0 1px var(--ring), 0 4px 12px #0000000d, 0 12px 32px #00000012;opacity:0;transform-origin:100% 0;pointer-events:none;border-radius:.5rem;transition:opacity .18s,transform .22s cubic-bezier(.19,1,.22,1);position:absolute;top:calc(100% + 1rem);right:0;overflow:hidden;transform:translateY(-4px)scale(.97)}.nav-preview[data-show]{opacity:1;transform:translateY(0)scale(1)}.nav-preview img{object-fit:cover;object-position:top;opacity:0;width:100%;height:100%;transition:opacity .15s;position:absolute;inset:0}.nav-preview img[data-visible]{opacity:1}@media (hover:none),(max-width:1120px){.nav-preview{display:none}}@media screen and (max-width:900px){.site-nav{top:2rem;left:1.5rem;right:1.5rem}.page{padding-left:5.5rem}}@media screen and (max-width:768px){.site-nav{display:none}.page{padding-left:1.5rem}}.mnav-btn{z-index:60;background:var(--btn-bg);cursor:pointer;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:3.25rem;height:3.25rem;display:none;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 2px 8px #00000029,0 8px 24px #0000001f}.mnav-btn span{background:var(--body-bg);border-radius:1px;width:1.125rem;height:1.5px;transition:transform .3s cubic-bezier(.19,1,.22,1);display:block}.mnav-btn[data-open] span:first-child{transform:translateY(3.25px)rotate(45deg)}.mnav-btn[data-open] span:last-child{transform:translateY(-3.25px)rotate(-45deg)}.mnav-overlay{z-index:55;background:var(--body-bg);will-change:clip-path;flex-direction:column;justify-content:center;padding:2rem 2rem 6rem;display:none;position:fixed;inset:0}.mnav-greeting{color:var(--ink-22);letter-spacing:-.02rem;padding-bottom:2rem;font-size:1.5rem;font-weight:500}.mnav-links{flex-direction:column;gap:1.375rem;display:flex}.mnav-links a{color:var(--ink-35);letter-spacing:-.04rem;flex-direction:column;gap:.3125rem;font-size:2rem;font-weight:500;line-height:1;transition:color .15s;display:flex}.mnav-word{padding-bottom:.125rem;display:inline-flex;overflow:hidden}.mnav-ch{will-change:transform;display:inline-block}.mnav-meta{color:var(--muted);letter-spacing:-.0025rem;font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:460}.mnav-links a[aria-current=page],.mnav-links a:active{color:var(--heading-color)}.mnav-foot{color:var(--muted);letter-spacing:-.0025rem;font-size:.8125rem;font-weight:460;position:absolute;bottom:2.25rem;left:2rem}@media screen and (max-width:768px){.mnav-btn{display:flex}}@media screen and (min-width:769px){.mnav-btn,.mnav-overlay{display:none!important}}.sp-track{z-index:45;pointer-events:none;width:1.75rem;height:100vh;position:fixed;top:0;right:.625rem}.sp-thumb{background:var(--glass);-webkit-backdrop-filter:blur(10px);width:1.75rem;height:7rem;box-shadow:0 0 0 1px var(--ring), 0 2px 6px #0000000f, 0 8px 22px #00000014;pointer-events:auto;cursor:grab;touch-action:none;border-radius:999px;flex-direction:column;justify-content:space-between;align-items:center;padding:.3125rem 0 .625rem;animation:.5s .2s backwards sp-in;display:flex;position:absolute;top:0;left:0}@keyframes sp-in{0%{opacity:0}to{opacity:1}}.sp-art{background:var(--kbd-bg);width:1.125rem;height:1.125rem;box-shadow:0 0 0 1px var(--ring);border-radius:999px;flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.sp-art img{object-fit:cover;border-radius:999px;width:100%;height:100%;animation:6s linear infinite paused sp-spin}.sp-art[data-playing] img{animation-play-state:running}@keyframes sp-spin{to{transform:rotate(360deg)}}.sp-time{color:var(--ink-60);letter-spacing:.02em;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:.0625rem;font-size:.5rem;font-weight:500;line-height:1;display:flex}.sp-time em{color:var(--ink-30);font-size:.4375rem;font-style:normal}.sp-card{background:var(--panel-glass);-webkit-backdrop-filter:blur(10px);width:15.5rem;box-shadow:0 0 0 1px var(--ring), 0 4px 12px #0000000f, 0 14px 38px #0000001a;opacity:0;transform-origin:100%;pointer-events:none;cursor:pointer;border-radius:.75rem;padding:.625rem;transition:opacity .18s,transform .22s cubic-bezier(.19,1,.22,1);position:absolute;top:50%;right:calc(100% + .75rem);transform:translateY(-50%)translate(6px)scale(.97)}.sp-card[data-show]{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)scale(1)}.sp-card-top{align-items:center;gap:.625rem;display:flex}.sp-card-top img,.sp-card-noart{object-fit:cover;background:var(--skeleton);width:2.5rem;height:2.5rem;box-shadow:0 0 0 1px var(--ring);border-radius:.5rem;flex:none}.sp-card-meta{flex-direction:column;gap:.125rem;min-width:0;display:flex}.sp-card-meta strong{color:var(--heading-color);letter-spacing:-.00563rem;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:560;line-height:1.0625rem;overflow:hidden}.sp-card-meta span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-weight:460;overflow:hidden}.sp-card-eq{flex:none;height:.75rem;margin-left:auto}.sp-card-wave{align-items:center;gap:.1875rem;height:1.625rem;margin-top:.625rem;display:flex}.sp-card-wave i{background:var(--wave-bg);border-radius:999px;flex:1;min-height:.25rem;transition:background .3s}.sp-card-wave i[data-played]{background:#1db954}.sp-card-times{color:var(--ink-35);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;margin-top:.375rem;font-size:.625rem;font-weight:460;display:flex}@media (hover:none){.sp-card{display:none}}@media (prefers-reduced-motion:reduce){.sp-art img{animation:none}}.page{max-width:36.375rem;margin:0 auto;padding:5rem 1rem 2.5rem}@media screen and (max-width:768px){.page{padding:2rem 1.5rem 2.5rem}}@keyframes staggerIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.homepage>*>*{animation:.5s both staggerIn}.homepage>*>:first-child{animation-delay:0s}.homepage>*>:nth-child(2){animation-delay:50ms}.homepage>*>:nth-child(3){animation-delay:.1s}.homepage>*>:nth-child(4){animation-delay:.15s}.homepage>*>:nth-child(5){animation-delay:.2s}.homepage>*>:nth-child(6){animation-delay:.25s}.homepage>*>:nth-child(n+7){animation-delay:.3s}.homepage>section{animation:.5s .35s both staggerIn}.homepage>footer{animation:.5s .45s both staggerIn}.section-intro{max-width:34rem;padding:1rem 0 2rem}.section-intro>p,.section-intro>time{color:var(--ink-30);letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.625rem;font-weight:600;display:block}.section-intro h1{color:var(--lightningcss-light,#171719)var(--lightningcss-dark,#f1f1ef);letter-spacing:-.045em;margin-top:.875rem;font-size:clamp(1.75rem,3vw,2.75rem);font-weight:560;line-height:1.08}.section-intro>time{letter-spacing:.04em;margin-top:1.25rem;font-weight:500}.article{max-width:70ch}.article>header{flex-direction:column;gap:.25rem;padding:0 0 .5rem;display:flex}.article>header h1{color:var(--heading-color);letter-spacing:-.02rem;padding-top:.25rem;font-size:2rem;font-weight:500;line-height:2.375rem}.article>header time{color:var(--muted);letter-spacing:-.00563rem;font-size:.875rem;font-weight:460;line-height:1.25rem}.article p{letter-spacing:-.00563rem;font-size:.875rem;font-weight:460;line-height:1.25rem}.article>p{padding-top:1rem}.basic-link{color:inherit;font-weight:inherit;line-height:inherit;transition:all .2s;display:inline;position:relative}.basic-link:before{pointer-events:none;content:"";background:var(--underline);opacity:1;border-radius:2px;height:1px;transition:inherit;position:absolute;bottom:0;left:0;right:0}.basic-link:hover:before{background:var(--underline-hover)}.books{padding:3rem 0 0}.books>h3{color:var(--ink-30);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--hairline);padding-bottom:.625rem;font-size:.6875rem;font-weight:500}.books-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem 1rem;padding-top:1.5rem;display:grid}@media screen and (max-width:520px){.books-grid{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width:520px){.books-grid:hover .book{opacity:.4}.books-grid .book:hover{opacity:1}}.book{flex-direction:column;gap:.5rem;transition:opacity .2s,transform .2s;animation:.4s backwards staggerIn;display:flex}.book:hover{transform:translateY(-2px)}.book-cover{aspect-ratio:3/4;background:var(--cover-bg,var(--skeleton));box-shadow:0 0 0 1px var(--ring), 0 1px 2px #0000000d, 0 4px 10px #0000000d;border-radius:3px;position:relative;overflow:hidden}.book-cover:after{content:"";pointer-events:none;background:linear-gradient(90deg,#00000014 0,#ffffff24 3.5%,#00000008 6.5%,#0000 9%);position:absolute;inset:0}.book-cover img{object-fit:cover;width:100%;height:100%}.book-cover-text{flex-direction:column;justify-content:space-between;padding:.875rem .75rem .75rem 1rem;display:flex;position:absolute;inset:0}.book-cover-text .book-cover-title{color:var(--cover-fg,#111);letter-spacing:-.0025rem;text-wrap:balance;font-size:.6875rem;font-weight:560;line-height:.875rem}.book-cover-text .book-cover-author{color:var(--cover-fg,#111);opacity:.55;letter-spacing:.01rem;text-transform:uppercase;font-size:.5625rem;font-weight:460}.book-meta{flex-direction:column;gap:.0625rem;display:flex}.book-meta h2{color:var(--heading-color);letter-spacing:-.00563rem;font-size:.8125rem;font-weight:500;line-height:1.125rem}.book-meta time,.book-meta p{color:var(--muted);letter-spacing:.00063rem;font-size:.75rem;font-weight:460;line-height:1rem}.reading-showcase{background:var(--showcase-bg);width:100vw;min-height:100vh;color:var(--showcase-fg);grid-template-columns:minmax(0,52fr) minmax(24rem,48fr);align-items:center;margin:-5rem 0 -2.5rem 50%;transition:background .45s,color .45s;display:grid;position:relative;overflow:hidden;transform:translate(-50%)}body:has(.reading-showcase){background:var(--showcase-bg,#d8cf79)}:is(body:has(.reading-showcase) .site-nav,body:has(.reading-showcase) .theme-toggle){display:none}.showcase-mark{z-index:10;width:2rem;height:2.5rem;color:inherit;border:1px solid;border-radius:50%;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;display:grid;position:absolute;top:1.5rem;left:1.75rem}.showcase-index{z-index:10;flex-direction:column;gap:1rem;display:flex;position:absolute;top:50%;left:2rem;transform:translateY(-50%)}.showcase-index>button{color:inherit;cursor:pointer;font-size:1.75rem}.showcase-index>div{flex-direction:column;gap:.35rem;width:1.25rem;max-height:34vh;display:flex;overflow:hidden}.showcase-index>div button{opacity:.32;cursor:pointer;background:currentColor;flex:none;width:1rem;height:2px;transition:width .15s,opacity .15s}.showcase-index>div button:hover,.showcase-index>div button[aria-current]{opacity:1;width:1.25rem}.showcase-book{min-width:0;padding-left:5vw;animation:.5s both showcase-in}@keyframes showcase-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.showcase-book .book3d-wrap{flex:none;width:100%;min-width:0}.showcase-book .book3d-canvas{height:min(78vh,48rem)}.showcase-book .book3d-hint{display:none}.showcase-copy{width:min(78%,34rem);padding:5rem 0;font-family:Georgia,Times New Roman,serif}.showcase-count{letter-spacing:.08em;text-transform:uppercase;opacity:.58;margin-bottom:2rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.625rem;font-weight:600}.showcase-copy h1{letter-spacing:-.045em;max-width:33rem;font-size:clamp(2rem,3.2vw,3.7rem);font-weight:650;line-height:1.03}.showcase-copy h2{margin-top:.65rem;font-size:clamp(1rem,1.4vw,1.35rem);font-style:italic;font-weight:600}.showcase-actions{margin-top:2.25rem;display:flex}.showcase-actions a{border:1px solid;padding:.65rem 1rem;font-size:.8rem;font-weight:650}.showcase-actions a+a{border-left:0}.showcase-summary{max-width:32rem;margin-top:2.25rem;font-size:clamp(.95rem,1.12vw,1.15rem);font-weight:550;line-height:1.42}.showcase-pager{border-top:1px solid;justify-content:space-between;gap:2rem;margin-top:2.5rem;padding-top:1rem;display:flex}.showcase-pager button{color:inherit;cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:650}.showcase-help{letter-spacing:.04em;text-transform:uppercase;opacity:.52;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.625rem;position:absolute;bottom:1.75rem;left:2rem}@media (max-width:800px){.reading-showcase{grid-template-columns:1fr;margin-top:-2rem;overflow:visible}.showcase-index{display:none}.showcase-book{padding:5rem 1rem 0}.showcase-book .book3d-canvas{height:60vh}.showcase-copy{width:auto;padding:1rem 1.5rem 6rem}.showcase-help{display:none}}.reading-shelf{color:#f3ecee;background:#1c1417;width:100vw;min-height:100vh;margin:-5rem 0 -2.5rem 50%;overflow:auto hidden;transform:translate(-50%)}body:has(.reading-shelf){background:#1c1417}:is(body:has(.reading-shelf) .site-nav,body:has(.reading-shelf) .theme-toggle){display:none}.shelf-brand{z-index:20;position:fixed;top:1.5rem;left:1.75rem}.shelf-brand a{color:#f8f1f2;align-items:flex-start;gap:1rem;display:flex}.shelf-brand a>span:last-child{flex-direction:column;gap:.15rem;display:flex}.shelf-brand strong{font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:600;line-height:1.1}.shelf-brand em{font-family:Georgia,Times New Roman,serif;font-size:.875rem;font-weight:600}.shelf-monogram{border:1px solid #fffc;border-radius:50%;place-items:center;width:2rem;height:2.5rem;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;line-height:1;display:grid}.shelf-index{z-index:20;flex-direction:row;gap:.36rem;width:min(36vw,28rem);max-height:none;display:flex;position:fixed;top:auto;bottom:2rem;left:50%;overflow:hidden;transform:translate(-50%)}.shelf-index a{background:#ffffff57;flex:1;width:auto;height:2px;transition:width .15s,background .15s;display:block}.shelf-index a:hover{background:#fff}.shelf-stack{perspective:70rem;flex-direction:row;align-items:flex-end;gap:clamp(1.25rem,2.2vw,2.75rem);width:max-content;min-width:100vw;height:100vh;margin:0;padding:23vh 12vw 12vh;display:flex}.shelf-book{--book-bg:#d8cf79;--book-fg:#201c25;width:clamp(11rem,15vw,16rem);height:clamp(25rem,60vh,38rem);color:var(--book-fg);transform:rotateY(-9deg) rotateZ(var(--book-lean));transform-style:preserve-3d;filter:drop-shadow(0 1rem .75rem #0000003d);margin-left:0;scroll-margin-inline:14vw;transition:transform .35s cubic-bezier(.19,1,.22,1),filter .35s;display:block;position:relative}.shelf-book:before{content:"";z-index:-1;transform-origin:0;background:repeating-linear-gradient(0deg,#e8e1d2 0 2px,#c9c1b3 3px,#f2ecdf 4px);border-radius:0 .18rem .18rem 0;width:1.15rem;position:absolute;top:.55rem;bottom:.55rem;right:-.9rem;transform:rotateY(64deg);box-shadow:inset -3px 0 5px #0000002e}.shelf-book:after{content:"";z-index:-2;filter:blur(.65rem);background:#00000080;border-radius:50%;height:1.2rem;position:absolute;bottom:-.8rem;left:.65rem;right:-.3rem}.shelf-book:hover{z-index:2;filter:drop-shadow(0 1.75rem 1.25rem #00000057);transform:translateY(-1rem)translateZ(1.5rem)rotateY(-3deg)rotate(0)}.shelf-book-top{background:radial-gradient(circle at 72% 18%, #ffffff29, transparent 24%), linear-gradient(105deg, #00000029, transparent 7%, transparent 91%, #0000001f), var(--book-bg);transform-origin:0;border-radius:.25rem .1rem .1rem .25rem;position:absolute;inset:0;overflow:hidden;transform:translateZ(.6rem);box-shadow:inset 5px 0 8px #00000026,inset -1px 0 #ffffff38,0 0 0 1px #ffffff0f}.shelf-book-top img{object-fit:cover;opacity:.85;width:100%;height:100%}.shelf-cover-copy{flex-direction:column;justify-content:space-between;padding:1.5rem 1.25rem;display:flex;position:absolute;inset:0}.shelf-cover-copy strong{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,2vw,2.2rem);font-weight:500;line-height:1.05}.shelf-cover-copy small{letter-spacing:.05em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.625rem;font-weight:600}.shelf-book-spine{background:linear-gradient(90deg, #ffffff1c, transparent 12%, transparent 88%, #00000021), var(--book-bg);transform-origin:100%;border-radius:.18rem 0 0 .18rem;flex-direction:column;align-items:center;gap:1.5rem;width:1.15rem;padding:.75rem 0;display:flex;position:absolute;top:.35rem;bottom:.35rem;left:-.85rem;overflow:hidden;transform:rotateY(-62deg);box-shadow:inset 0 2px #ffffff24,inset 0 -3px #00000029}.shelf-book-spine strong{writing-mode:vertical-rl;text-align:center;white-space:nowrap;text-overflow:ellipsis;font-family:Georgia,Times New Roman,serif;font-size:.55rem;font-weight:500;overflow:hidden}.shelf-book-spine small{display:none}.shelf-book-spine small:last-child{text-align:right}.shelf-help{z-index:20;color:#ffffff7a;letter-spacing:.04em;text-transform:uppercase;writing-mode:vertical-rl;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.625rem;position:fixed;bottom:1.75rem;left:2rem}@media (max-width:700px){.reading-shelf{margin-top:-2rem}.shelf-brand{top:1.25rem;left:1.25rem}.shelf-index,.shelf-help{display:none}.shelf-stack{gap:1.25rem;width:max-content;min-width:100vw;padding:26vh 10vw 14vh}.shelf-book{width:10rem;height:24rem;margin-left:0}.shelf-book-spine{padding:.75rem 0}.shelf-book-spine small{display:none}}.back-link{color:var(--muted);letter-spacing:-.0025rem;padding-bottom:.75rem;font-size:.8125rem;font-weight:460;transition:color .15s;animation:.35s both staggerIn}.back-link:hover{color:var(--heading-color)}.books-anchor{scroll-margin-top:3rem}.pagination{border-top:1px solid var(--hairline);justify-content:center;align-items:center;gap:.25rem;margin-top:2.5rem;padding-top:1.25rem;display:flex}.pagination button{min-width:1.75rem;height:1.75rem;color:var(--ink-30);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:.375rem;font-size:.8125rem;font-weight:460;transition:color .15s,background .15s}.pagination button:hover:not(:disabled):not([aria-current=page]){color:var(--heading-color)}.pagination button[aria-current=page]{color:var(--heading-color);background:var(--kbd-bg);cursor:default}.pagination button:disabled{color:var(--ink-12);cursor:default}.detail-top{justify-content:space-between;align-items:baseline;display:flex}.detail-count{color:var(--ink-30);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:460}.detail-body{padding-top:2.5rem}.detail-nav{border-top:1px solid var(--hairline);justify-content:space-between;gap:1.5rem;margin-top:3rem;padding-top:1.25rem;display:flex}.detail-nav a{color:var(--muted);letter-spacing:-.0025rem;max-width:46%;font-size:.8125rem;font-weight:460;line-height:1.125rem;transition:color .15s}.detail-nav a:last-child{text-align:right}.detail-nav a:hover{color:var(--heading-color)}.detail-layout{align-items:center;gap:2rem;padding-top:2.5rem;display:flex}.detail-layout .detail-body{flex:1;padding-top:0}.detail-body header h1{font-size:1.5rem;line-height:1.875rem}.book3d-wrap{flex:0 0 46%;min-width:0}.book3d-canvas{touch-action:pan-y;height:19rem;position:relative}.book3d-canvas canvas{opacity:0;transition:opacity .4s}.book3d-canvas[data-ready] canvas{opacity:1}.book3d-loader{border:1.5px solid #00000014;border-top-color:var(--ink-35);border-radius:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;animation:.8s linear infinite book3d-spin;position:absolute;top:50%;left:50%}@keyframes book3d-spin{to{transform:rotate(360deg)}}.book3d-hint{text-align:center;color:var(--ink-25);letter-spacing:.00063rem;padding-top:.25rem;font-size:.75rem;font-weight:460}@media screen and (max-width:640px){.detail-layout{flex-direction:column;align-items:stretch;gap:1.5rem;padding-top:1.5rem}.book3d-wrap{flex:none}.book3d-canvas{height:16rem}}.home-list{padding:3rem 0 0}.home-list>h3{color:var(--ink-30);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--hairline);padding-bottom:.625rem;font-size:.6875rem;font-weight:500}.home-list ul{flex-direction:column;list-style:none;display:flex}.home-list li{border-bottom:1px solid var(--hairline)}.home-list li:last-child{border-bottom:none}.home-list li a{justify-content:space-between;align-items:center;gap:1rem;padding:.735rem 0;display:flex}.home-list li h2{color:var(--heading-color);letter-spacing:-.00563rem;font-size:.875rem;font-weight:560;line-height:1.25rem;transition:opacity .14s}.home-list li time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:460;transition:opacity .14s}@media screen and (min-width:520px){.home-list ul:hover li a h2,.home-list ul:hover li a time{opacity:.3}.home-list li a:hover h2,.home-list li a:hover time{opacity:1}}.projects-page{--project-accent:var(--accent);z-index:21;background:var(--body-bg);min-height:38rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;position:fixed;inset:1rem;overflow:hidden}.projects-intro{z-index:5;width:min(25rem,50vw - 1rem - clamp(5rem,9.5vw,12rem) - clamp(34rem,34vw,44rem)/2 - clamp(3rem,3.5vw,5rem));position:absolute;top:8rem;left:clamp(5rem,9.5vw,12rem)}.projects-headshot{z-index:6;aspect-ratio:1;background:var(--surface);border:1px solid var(--hairline-strong);border-radius:50%;width:2.5rem;position:absolute;top:4.5rem;left:clamp(5rem,9.5vw,12rem);overflow:hidden}.projects-headshot img{object-fit:cover;width:100%;height:100%}.projects-intro p{color:var(--ink-30);letter-spacing:.08em;text-transform:uppercase;font-size:.625rem;font-weight:600}.projects-intro h1{color:var(--lightningcss-light,#171719)var(--lightningcss-dark,#f1f1ef);font-family:var(--font-body);letter-spacing:-.035em;margin-top:.75rem;font-size:clamp(1.6rem,2.2vw,2.5rem);font-weight:560;line-height:1.12}.pb{grid-template-columns:minmax(20rem,1fr) clamp(34rem,34vw,44rem) minmax(20rem,1fr);align-items:center;gap:clamp(3rem,3.5vw,5rem);height:100%;padding:0 clamp(5rem,9.5vw,12rem);display:grid}.pb-list{flex-direction:column;align-self:center;gap:.125rem;width:min(100%,25rem);display:flex}.pb-item{color:var(--ink-25);letter-spacing:.02em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:1rem;padding:.36rem 0;font-family:inherit;font-size:clamp(.65rem,.72vw,.78rem);font-weight:500;transition:color .15s;display:flex}.pb-item:hover{color:var(--heading-color)}.pb-item[data-active]{background:var(--project-accent);color:#fff;margin:0 -.625rem;padding:.36rem .625rem}.pb-item-period{color:inherit;opacity:.7;flex:none}.pb-stage{scroll-snap-type:y mandatory;box-sizing:border-box;scrollbar-width:none;filter:none;-webkit-backdrop-filter:none;flex-direction:column;gap:clamp(1rem,2.5vh,1.5rem);height:calc(100vh + 2rem);padding-block:25vh;scroll-padding-block:25vh;display:flex;overflow-y:auto}.pb-stage::-webkit-scrollbar{display:none}.pb-section{scroll-snap-align:center;flex:none;justify-content:center;align-items:center;display:flex}.pb-section-detail{display:none}.pb-frame{width:100%;position:relative}.pb-bracket{border-color:var(--project-accent);width:.875rem;height:.875rem;transition:border-color .2s;position:absolute}.pb-bracket-tl{border-top:1.5px solid;border-left:1.5px solid;border-color:var(--project-accent);top:-.4375rem;left:-.4375rem}.pb-bracket-tr{border-top:1.5px solid;border-right:1.5px solid;border-color:var(--project-accent);top:-.4375rem;right:-.4375rem}.pb-bracket-bl{border-bottom:1.5px solid;border-left:1.5px solid;border-color:var(--project-accent);bottom:-.4375rem;left:-.4375rem}.pb-bracket-br{border-bottom:1.5px solid;border-right:1.5px solid;border-color:var(--project-accent);bottom:-.4375rem;right:-.4375rem}.pb-media{aspect-ratio:1.13;background:var(--tint,#888);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.pb-media{background:color-mix(in srgb, var(--tint,#888) 7%, var(--body-bg))}}.pb-media{filter:none;-webkit-backdrop-filter:none}.pb-media img,.pb-media video{object-fit:cover;opacity:1;filter:none;width:100%;height:100%;position:absolute;inset:0}.pb-media-mark{color:var(--tint,#888)}@supports (color:color-mix(in lab, red, red)){.pb-media-mark{color:color-mix(in srgb, var(--tint,#888) 55%, transparent)}}.pb-media-mark{letter-spacing:.02rem;text-transform:uppercase;font-size:.8125rem;font-weight:560}.pb-detail{flex-direction:column;align-self:center;gap:.875rem;min-width:0;display:flex}.pb-role{color:var(--tint,var(--muted));letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:500}.pb-description{color:var(--ink-55);letter-spacing:.01em;text-transform:uppercase;max-width:43ch;font-size:.75rem;font-weight:460;line-height:1.65}.pb-topics{color:var(--ink-30);letter-spacing:.02em;font-size:.6875rem}.pb-visit{color:var(--tint,var(--heading-color));letter-spacing:.02em;width:fit-content;font-size:.6875rem;font-weight:500}.pb-visit:hover{opacity:.7}.pb-focused{align-items:stretch}.pb-case-progress{z-index:8;flex-direction:column;align-items:flex-start;gap:.35rem;width:2rem;display:flex;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.pb-case-progress button{background:var(--ink-22);cursor:pointer;border:0;width:.7rem;height:1px;padding:0;transition:width .35s,background-color .35s,transform .35s}.pb-case-progress button[data-passed]{background:var(--ink-45);width:1rem}.pb-case-progress button[data-current]{background:var(--project-accent);width:1.75rem;height:2px}.pb-case-progress button:hover{transform-origin:0;transform:scaleX(1.15)}.pb-case{box-sizing:border-box;border-left:1px solid var(--ink-18);scrollbar-width:none;grid-column:2/4;grid-template-rows:auto auto minmax(28rem,1fr);grid-template-columns:minmax(0,1fr);align-self:stretch;gap:clamp(1.25rem,2vw,2rem);min-width:0;padding:6.5rem 0 3rem clamp(1.5rem,2.25vw,2.75rem);display:grid;position:relative;overflow-y:auto}.pb-case::-webkit-scrollbar{display:none}.pb-case-toolbar{grid-column:1/-1;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:clamp(1rem,2vw,2rem);display:flex}.pb-case-tabs{gap:.35rem;display:flex}.pb-case-tabs button,.pb-case-back{color:var(--ink-30);font:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:.4rem .65rem;font-size:.625rem}.pb-case-tabs button[data-active]{background:var(--project-accent);color:#fff}.pb-case-back{color:var(--project-accent);padding-right:0}.pb-case-media{background:var(--tint,#888);grid-row:3;min-height:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.pb-case-media{background:color-mix(in srgb, var(--tint,#888) 7%, var(--body-bg))}}.pb-case-media img,.pb-case-media video{object-fit:cover;width:100%;height:100%}.pb-case-media .pb-media-mark{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.pb-case-copy{flex-direction:column;grid-row:2;align-self:start;gap:1.65rem;min-width:0;padding:clamp(1.5rem,3vw,3rem) 0 clamp(4.5rem,7vw,7rem);display:flex}.pb-case-copy h2{color:var(--heading-color);font-family:var(--font-body);letter-spacing:-.035em;font-size:clamp(1.75rem,2.7vw,3.25rem);font-weight:540;line-height:1.08}.pb-case-copy .pb-description{width:100%;max-width:96ch;line-height:1.8}.pb-case-copy .pb-role,.pb-case-copy .pb-visit{color:var(--project-accent)}.pb-case-content{flex-direction:column;grid-row:4;gap:clamp(3rem,6vw,7rem);padding:clamp(2rem,5vw,6rem) 0 2rem;display:flex}.pb-case-content[data-hidden],.pb-case-metrics-panel[data-hidden]{display:none}.pb-case-metrics-panel{flex-direction:column;grid-row:4;gap:clamp(3rem,6vw,7rem);padding:clamp(2rem,5vw,6rem) 0 3rem;display:flex}.pb-case-metrics-panel>header{max-width:58rem}.pb-case-metrics-panel>header>span{color:var(--project-accent);letter-spacing:.06em;text-transform:uppercase;font-size:.625rem}.pb-case-metrics-panel>header h3{color:var(--heading-color);font-family:var(--font-body);letter-spacing:-.035em;margin-top:.75rem;font-size:clamp(1.5rem,2.5vw,3rem);font-weight:540;line-height:1.08}.pb-case-metrics-panel>header p{max-width:62ch;color:var(--ink-55);font-family:var(--font-body);margin-top:1.25rem;font-size:.95rem;line-height:1.65}.metric-charts{background:var(--hairline-strong);border:1px solid var(--hairline-strong);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.metric-controls,.metric-inspector{background:var(--body-bg);grid-column:1/-1}.metric-controls{flex-wrap:wrap;align-items:center;gap:1rem 2.5rem;padding:1rem clamp(1.25rem,2.5vw,2.5rem);display:flex}.metric-controls>div{align-items:center;gap:.35rem;display:flex}.metric-controls span,.metric-inspector>span{color:var(--ink-30);letter-spacing:.06em;text-transform:uppercase;margin-right:.4rem;font-size:.55rem}.metric-controls button{border:1px solid var(--hairline-strong);color:var(--ink-45);font:inherit;text-transform:uppercase;cursor:pointer;background:0 0;padding:.35rem .55rem;font-size:.575rem}.metric-controls button[data-active]{border-color:var(--project-accent);background:var(--project-accent);color:#fff}.metric-controls>p{color:var(--ink-55);text-transform:uppercase;margin-left:auto;font-size:.6rem}.metric-controls>p span{margin:0 0 .15rem;display:block}.metric-inspector{border-left:2px solid var(--project-accent);grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:1rem;min-height:4.5rem;padding:1rem clamp(1.25rem,2.5vw,2.5rem);display:grid}.metric-inspector p{max-width:76ch;color:var(--ink-55);font-family:var(--font-body);font-size:.75rem;line-height:1.5}.metric-chart{background:var(--body-bg);flex-direction:column;justify-content:space-between;gap:2rem;min-width:0;min-height:26rem;margin:0;padding:clamp(1.25rem,2.5vw,2.5rem);display:flex;overflow:hidden}.metric-chart-wide{grid-column:1/-1;min-height:30rem}.metric-chart figcaption{gap:.4rem;display:grid}.metric-chart figcaption>span{color:var(--project-accent);letter-spacing:.06em;text-transform:uppercase;font-size:.575rem}.metric-chart figcaption>strong{color:var(--heading-color);font-family:var(--font-body);letter-spacing:-.025em;font-size:clamp(1.15rem,1.65vw,1.75rem);font-weight:540}.metric-chart figcaption>small{color:var(--ink-30);letter-spacing:.025em;text-transform:uppercase;font-size:.575rem}.metric-chart figcaption>p{max-width:48ch;color:var(--ink-55);font-family:var(--font-body);margin-top:.65rem;font-size:.8125rem;line-height:1.55}.metric-chart-wide figcaption>p{max-width:62ch}.metric-chart svg{width:100%;height:auto;overflow:visible}.metric-grid path{fill:none;stroke:var(--ink-12);stroke-width:1px;vector-effect:non-scaling-stroke}.metric-line,.metric-distribution-a,.metric-distribution-b{fill:none;stroke:var(--project-accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.metric-line{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:1.8s cubic-bezier(.16,1,.3,1) forwards metric-line-draw}.metric-area{fill:var(--project-accent)}@supports (color:color-mix(in lab, red, red)){.metric-area{fill:color-mix(in srgb, var(--project-accent) 10%, transparent)}}.metric-points circle,.metric-point-a{fill:var(--body-bg);stroke:var(--project-accent);stroke-width:2px}.metric-points circle{cursor:crosshair;transition:r .2s,fill .2s}.metric-points circle:hover,.metric-points circle:focus{r:8px;fill:var(--project-accent);outline:none}.metric-distribution-b{stroke:var(--ink-30);stroke-dasharray:5 6}.metric-point-b{fill:var(--body-bg);stroke:var(--ink-45);stroke-width:2px}@keyframes metric-line-draw{to{stroke-dashoffset:0}}.metric-funnel{flex-direction:column;align-items:center;gap:.55rem;padding-bottom:1rem;display:flex}.metric-funnel>div{background:var(--project-accent);align-items:center;gap:.75rem;height:2.75rem;padding:0 .85rem;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.metric-funnel>div{background:color-mix(in srgb, var(--project-accent) 12%, var(--surface))}}.metric-funnel>div{transition:width .5s cubic-bezier(.16,1,.3,1)}.metric-funnel span{color:var(--ink-45);font-size:.6rem}.metric-funnel i{background:var(--project-accent);flex:1;height:1px}.metric-chart-radial svg{align-self:center;width:min(100%,18rem)}.metric-ring-base,.metric-ring-value{fill:none;stroke-width:9px}.metric-ring-base{stroke:var(--surface)}.metric-ring-value{stroke:var(--project-accent);stroke-linecap:round;stroke-dasharray:73 27;transform-origin:50%;transform:rotate(-90deg)}.metric-ring-target{fill:none;stroke:var(--heading-color);stroke-width:2px}.metric-chart-radial text{fill:var(--heading-color);font-family:var(--font-body);font-size:2.5rem;font-weight:520}.metric-chart-radial .metric-ring-label{fill:var(--ink-30);letter-spacing:.08em;font-family:ui-monospace,SF Mono,monospace;font-size:.55rem}.metric-heatmap{grid-template-columns:repeat(5,1fr);gap:.5rem;padding-bottom:1rem;display:grid}.metric-heatmap i{aspect-ratio:1;background:var(--project-accent)}@supports (color:color-mix(in lab, red, red)){.metric-heatmap i{background:color-mix(in srgb, var(--project-accent) var(--heat), var(--surface))}}.metric-bars{gap:1.25rem;padding-bottom:1rem;display:grid}.metric-bars>div{grid-template-columns:7rem 1fr;align-items:center;gap:1rem;display:grid}.metric-bars span{color:var(--ink-45);text-transform:uppercase;font-size:.625rem}.metric-bars>div>div{background:var(--surface);height:1.15rem;position:relative}.metric-bars i,.metric-bars b{position:absolute;top:0;bottom:0;left:0}.metric-bars i{background:var(--ink-18)}.metric-bars b{background:var(--project-accent);height:.35rem;top:50%;bottom:auto;transform:translateY(-50%)}@media (prefers-reduced-motion:reduce){.metric-line{stroke-dashoffset:0;animation:none}}.pb-case-section{width:100%;max-width:none}.pb-case-section>span,.pb-case-section>div>span{color:var(--project-accent);letter-spacing:.06em;text-transform:uppercase;font-size:.625rem}.pb-case-section h3{color:var(--heading-color);font-family:var(--font-body);letter-spacing:-.035em;margin-top:.75rem;font-size:clamp(1.5rem,2.5vw,3rem);font-weight:540;line-height:1.08}.pb-case-section p{color:var(--ink-55);font-family:var(--font-body);font-size:clamp(.9rem,1vw,1.05rem);line-height:1.65}.pb-case-section-split{grid-template-columns:minmax(13rem,.75fr) minmax(18rem,1.25fr);gap:clamp(2rem,6vw,7rem);display:grid}.pb-case-facts,.pb-case-metrics{border-top:1px solid var(--hairline-strong);border-bottom:1px solid var(--hairline-strong);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pb-case-facts>div,.pb-case-metrics>div{border-right:1px solid var(--hairline-strong);min-width:0;padding:1.25rem clamp(.75rem,1.5vw,1.5rem)}.pb-case-facts>div:first-child,.pb-case-metrics>div:first-child{padding-left:0}.pb-case-facts>div:last-child,.pb-case-metrics>div:last-child{border-right:0}.pb-case-facts span,.pb-case-metrics span{color:var(--ink-30);letter-spacing:.05em;text-transform:uppercase;font-size:.575rem;display:block}.pb-case-facts strong{color:var(--ink-60);text-transform:uppercase;margin-top:.55rem;font-size:.6875rem;font-weight:500;line-height:1.45;display:block}.pb-case-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.pb-case-metrics strong{color:var(--heading-color);font-family:var(--font-body);margin-bottom:1.25rem;font-size:clamp(2rem,4vw,4rem);font-weight:520;line-height:1;display:block}.pb-case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,1.5vw,1.5rem);display:grid}.pb-case-gallery-three{grid-template-columns:repeat(3,minmax(0,1fr))}.pb-case-placeholder{aspect-ratio:4/3;background:var(--surface);color:var(--ink-30);letter-spacing:.05em;text-transform:uppercase;place-items:center;font-size:.625rem;display:grid}.pb-case-placeholder-wide{aspect-ratio:16/7}.pb-case-end{border-top:1px solid var(--hairline-strong);color:var(--ink-30);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:2rem;padding-top:1.5rem;font-size:.625rem;display:flex}.pb-case-end button{color:var(--project-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}@media (max-width:1050px){.projects-page{z-index:auto;width:100%;height:auto;min-height:100dvh;margin:0;position:relative;inset:auto;overflow:visible;transform:none}.projects-intro{width:min(100%,30rem);margin:3.5rem 0 2.5rem;position:relative;top:auto;left:auto}.projects-headshot{margin:2rem 0 0;position:relative;top:auto;left:auto}.projects-masthead{padding:0 0 2.5rem;position:relative}.projects-masthead nav span:first-child{display:none}.pb{height:auto;padding:0 0 5rem;display:block}.pb-stage{scroll-snap-type:none;flex-direction:column;gap:3rem;height:auto;padding-block:0;scroll-padding-block:0;display:flex;overflow:visible}.pb-section{scroll-snap-align:none;flex-direction:column;flex:none;justify-content:flex-start;align-items:stretch;gap:1.25rem;display:flex}.pb-list,.pb-detail{display:none}.pb-section-detail{flex-direction:column;gap:.875rem;margin-top:2.5rem;display:flex}.pb-section-name{color:var(--cv-ink,var(--heading-color));font-size:1.125rem;font-weight:700}.pb-case-view-link{color:var(--project-accent);letter-spacing:.02em;cursor:pointer;background:0 0;border:none;width:fit-content;padding:0;font-family:inherit;font-size:.6875rem;font-weight:500}.pb-focused{display:flex}.pb-case-progress{display:none}.pb-case{border-left:0;flex-direction:column;order:-1;padding:0;display:flex}.pb-case-back{align-self:flex-end}.pb-case-media{order:1;min-height:min(65vh,32rem)}.pb-case-copy{order:0}.pb-case-content,.pb-case-metrics-panel{order:2}.metric-charts{grid-template-columns:1fr}.metric-chart-wide{grid-column:auto}.pb-case-section-split,.pb-case-gallery-three,.pb-case-facts,.pb-case-metrics{grid-template-columns:1fr}.pb-case-facts>div,.pb-case-metrics>div{border-right:0;border-bottom:1px solid var(--hairline-strong);padding-left:0}.pb-case-facts>div:last-child,.pb-case-metrics>div:last-child{border-bottom:0}}.about-split{--about-dark:var(--body-bg);--about-paper:var(--lightningcss-light,#1b1b1d)var(--lightningcss-dark,#f1f1ef);--about-purple:var(--about-dark);--about-strong:var(--lightningcss-light,#171719)var(--lightningcss-dark,#f1f1ef);--about-copy:var(--lightningcss-light,#000000b8)var(--lightningcss-dark,#ffffffb8);--about-muted:var(--lightningcss-light,#0000007a)var(--lightningcss-dark,#ffffff7a);--about-border:var(--lightningcss-light,#0000001f)var(--lightningcss-dark,#ffffff1f);background:var(--about-dark);width:100vw;min-height:100vh;color:var(--about-paper);grid-template-columns:minmax(0,57fr) minmax(25rem,43fr);margin:-5rem 0 -2.5rem 50%;display:grid;transform:translate(-50%)}body:has(.about-split) .site-nav a{color:var(--about-muted)}body:has(.about-split) .site-nav a:hover{color:var(--about-strong)!important}body:has(.about-split) .site-brand{color:var(--about-strong)!important}body:has(.about-split) .site-nav-links>a[aria-current=page]{color:var(--accent)!important}.about-copy{min-width:0;padding:10.5rem clamp(3rem,9vw,12rem) 7rem}.about-hero{max-width:38rem}.about-hero>p,.about-section-label,.about-meta,.about-story>span{color:var(--about-muted);letter-spacing:.04em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.6875rem}.about-hero h1{color:var(--about-strong);letter-spacing:-.055em;margin-top:2rem;font-size:clamp(2rem,3.1vw,3.75rem);font-weight:570;line-height:1.04}.about-headshot{aspect-ratio:1;background:var(--surface);border:1px solid var(--about-border);border-radius:50%;width:clamp(7rem,10vw,10rem);margin:3rem auto 3.5rem 0;overflow:hidden}.about-headshot img{object-fit:cover;width:100%;height:100%}.about-meta{justify-content:space-between;gap:2rem;margin-top:2.75rem;display:flex}.about-story{grid-template-columns:2.5rem minmax(0,32rem);gap:2.5rem 2rem;margin-top:3.75rem;display:grid}.about-story>span{padding-top:.2rem}.about-story>div{flex-direction:column;gap:1.5rem;display:flex}.about-story p{color:var(--about-copy);font-size:.9375rem;line-height:1.62}.about-story a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--about-border);-webkit-text-decoration-color:var(--about-border);-webkit-text-decoration-color:var(--about-border);text-decoration-color:var(--about-border);text-underline-offset:.2em}.about-story .about-pullquote{color:var(--about-strong);font-size:1.15rem;font-weight:560}.about-experience{max-width:36.5rem;margin-top:4.5rem}.about-experience ul{border-top:1px solid var(--about-border);margin-top:1rem;list-style:none}.about-experience li{border-bottom:1px solid var(--about-border);grid-template-columns:1fr 1.65fr auto;gap:1rem;padding:.9rem 0;font-size:.75rem;display:grid}.about-experience strong{color:var(--about-strong);font-weight:550}.about-experience span,.about-experience time{color:var(--about-muted)}.about-experience time{white-space:nowrap}.about-visual{background:var(--about-purple);border-left:1px solid var(--about-border);justify-content:center;align-items:center;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.about-chat-host{justify-content:stretch;align-items:stretch;padding:0}body:has(.about-chat-host)>.ask-trigger{display:none}.ask-overlay.ask-embedded{z-index:1;-webkit-backdrop-filter:none;background:0 0;width:100%;height:100%;position:relative;inset:auto;opacity:1!important;visibility:visible!important;display:block!important}.ask-embedded .ask-side{width:100%;height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;padding:5rem clamp(1.5rem,4vw,4rem) 2rem;position:relative;inset:auto;transform:none!important}.ask-embedded .ask-thread{padding-top:2rem}.ask-embedded .ask-empty{justify-content:center;min-height:100%;padding:2rem}.ask-embedded .ask-form{background:var(--lightningcss-light,#0000000e)var(--lightningcss-dark,#ffffff14)}.about-poster{aspect-ratio:.72;color:#171619;background:radial-gradient(circle at 20% 18%,#ffffffb8,#0000 22%),linear-gradient(145deg,#efd7f2,#dcb8e2);flex-direction:column;justify-content:center;width:min(58%,27rem);padding:2.25rem 1.75rem;display:flex;position:relative;box-shadow:0 1.5rem 5rem #12091733}.about-poster-kicker{letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.6rem;position:absolute;top:1.5rem;left:1.75rem}.about-poster>p{letter-spacing:-.09em;font-size:clamp(3rem,6vw,6.5rem);font-weight:850;line-height:.78}.about-poster-sign{color:#923ee8;font-family:cursive;font-size:2rem;font-style:italic;position:absolute;bottom:1.5rem;right:1.5rem;transform:rotate(-8deg)}.about-copyright{color:#00000094;font-size:.75rem;position:absolute;bottom:4rem}@media (max-width:900px){.about-split{grid-template-columns:1fr;margin-top:-2rem}.about-copy{padding:6rem 1.5rem 5rem}.about-headshot{width:8rem;margin-left:0}.about-visual{height:min(46rem,100vh);position:relative}.about-poster{width:min(70%,24rem)}}@media (max-width:520px){.about-story{grid-template-columns:1fr;gap:.75rem}.about-story>div{margin-bottom:2rem}.about-experience li{grid-template-columns:1fr auto}.about-experience li span{grid-area:2/1/auto/-1}}.experience{padding:3rem 0 0}.experience>h3{color:var(--ink-30);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--hairline);padding-bottom:.625rem;font-size:.6875rem;font-weight:500}.experience ul{flex-direction:column;list-style:none;display:flex}.experience li{border-bottom:1px solid var(--hairline);align-items:baseline;gap:1rem;padding:.735rem 0;display:flex}.experience li:last-child{border-bottom:none}.experience-company{color:var(--heading-color);letter-spacing:-.00563rem;flex:0 0 7rem;font-size:.875rem;font-weight:560}.experience-role{color:var(--muted);letter-spacing:-.0025rem;flex:1;font-size:.8125rem;font-weight:460}.experience-period{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem;font-weight:460}@media screen and (max-width:520px){.experience li{flex-wrap:wrap;gap:.125rem 1rem}.experience-company{flex:0 0 100%}}.music-now,.music-top{padding:2.5rem 0 0}.music-now>h3,.music-top>h3{color:var(--ink-30);letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--hairline);padding-bottom:.625rem;font-size:.6875rem;font-weight:500}.music-now-row{align-items:center;gap:1rem;padding-top:1.25rem;display:flex}a.music-now-row:hover .music-titles h2{opacity:.6}.music-art{object-fit:cover;background:var(--skeleton);width:3.5rem;height:3.5rem;box-shadow:0 0 0 1px var(--ring);border-radius:.375rem;flex:none}.music-art-sm{object-fit:cover;background:var(--skeleton);width:2.25rem;height:2.25rem;box-shadow:0 0 0 1px var(--ring);border-radius:.25rem;flex:none}.music-titles{flex-direction:column;gap:.125rem;min-width:0;display:flex}.music-titles h2{color:var(--heading-color);letter-spacing:-.00563rem;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:560;line-height:1.125rem;transition:opacity .15s;overflow:hidden}.music-titles p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:460;line-height:1rem;overflow:hidden}.music-eq{flex:none;align-items:flex-end;gap:2px;height:.875rem;margin-left:auto;display:flex}.music-eq i{background:#1db954;border-radius:1px;width:2.5px;animation:1s ease-in-out infinite eq-bounce}.music-eq i:first-child{animation-delay:0s}.music-eq i:nth-child(2){animation-delay:.25s}.music-eq i:nth-child(3){animation-delay:.5s}@keyframes eq-bounce{0%,to{height:30%}50%{height:100%}}@media (prefers-reduced-motion:reduce){.music-eq i{height:60%;animation:none}}.music-list{flex-direction:column;list-style:none;display:flex}.music-list li{border-bottom:1px solid var(--hairline)}.music-list li:last-child{border-bottom:none}.music-row{align-items:center;gap:.875rem;padding:.625rem 0;display:flex}@media screen and (min-width:520px){.music-list:hover .music-row .music-titles h2,.music-list:hover .music-row .music-titles p{opacity:.35}.music-list .music-row:hover .music-titles h2,.music-list .music-row:hover .music-titles p{opacity:1}}.music-titles h2,.music-titles p{transition:opacity .14s}.music-index{color:var(--ink-25);font-variant-numeric:tabular-nums;flex:none;width:1.125rem;font-size:.75rem;font-weight:460}.music-empty{color:var(--muted);letter-spacing:-.00563rem;padding-top:1.25rem;font-size:.875rem;font-weight:460}.music-stage{position:relative}.music-viewbar{justify-content:flex-end;padding-top:1rem;display:flex}.pill{background:var(--surface);box-shadow:0 0 0 1px var(--ring), 0 1px 2px #0000000a;color:var(--heading-color);letter-spacing:-.0025rem;cursor:pointer;border-radius:999px;align-items:center;gap:.4375rem;padding:.4375rem .875rem;font-size:.8125rem;font-weight:500;transition:background .15s;display:inline-flex}.pill:hover{background:var(--surface-hover)}.pill-ghost{box-shadow:none;color:var(--muted);background:0 0}.pill-ghost:hover{background:var(--surface);color:var(--heading-color)}.player{flex-direction:column;align-items:center;padding-top:1.5rem;display:flex}.cd-canvas{touch-action:pan-y;width:100%;height:27rem;margin:-2.25rem 0 -.75rem}@media screen and (max-width:520px){.cd-canvas{height:21rem;margin:-1.75rem 0 -.5rem}}.player>.pill,.player-meta,.player-controls{z-index:2;position:relative}.player-meta{text-align:center;padding-top:.25rem}.player-meta p{color:var(--muted);letter-spacing:-.0025rem;font-size:.8125rem;font-weight:460}.player-meta h2{color:var(--heading-color);letter-spacing:-.00563rem;align-items:center;gap:.5rem;padding-top:.125rem;font-size:.9375rem;font-weight:560;line-height:1.375rem;display:inline-flex}.player-controls{background:var(--surface);box-shadow:0 0 0 1px var(--ring), 0 1px 2px #0000000a;border-radius:999px;align-items:center;gap:.25rem;margin-top:1rem;padding:.3125rem .625rem;display:flex}.player-controls button,.player-controls .player-play{width:2rem;height:2rem;color:var(--ink-55);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.player-controls button:hover,.player-controls .player-play:hover{color:var(--heading-color);background:var(--kbd-bg)}.player-controls button:disabled{color:var(--ink-18);cursor:default;background:0 0}.player-controls .player-play{color:var(--heading-color)}.player-grid{grid-template-columns:repeat(8,1fr);gap:.5rem;width:100%;padding-top:2.5rem;display:grid}@media screen and (max-width:520px){.player-grid{grid-template-columns:repeat(4,1fr)}}.player-grid button{aspect-ratio:1;background:var(--skeleton);cursor:pointer;box-shadow:0 0 0 1px var(--ring);border-radius:.5rem;transition:transform .15s,opacity .15s;position:relative;overflow:hidden}.player-grid button:hover{transform:translateY(-2px)}.player-grid button[data-active]{box-shadow:0 0 0 2px #fdfdfc,0 0 0 3.5px #111}.player-grid button img,.player-grid button span{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}@media screen and (min-width:520px){.player-grid:hover button:not(:hover):not([data-active]){opacity:.55}}.music-art-skeleton{animation:1.4s ease-in-out infinite music-pulse}.music-skeleton-line{background:var(--skeleton);border-radius:.3125rem;height:.625rem;animation:1.4s ease-in-out infinite music-pulse;display:block}.music-skeleton-line+.music-skeleton-line{margin-top:.375rem}@keyframes music-pulse{0%,to{opacity:1}50%{opacity:.45}}.ask-trigger{z-index:40;background:var(--glass);-webkit-backdrop-filter:blur(10px);box-shadow:0 0 0 1px var(--ring), 0 2px 6px #0000000d, 0 10px 28px #00000012;color:var(--muted);letter-spacing:-.0025rem;cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:460;transition:color .15s,transform .2s,box-shadow .2s;animation:.5s .3s both ask-trigger-in;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}@keyframes ask-trigger-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ask-trigger:hover{color:var(--heading-color);box-shadow:0 0 0 1px var(--ring), 0 4px 10px #0000000f, 0 14px 34px #00000017;transform:translate(-50%)translateY(-1px)}.ask-trigger svg{color:var(--ink-35)}.ask-trigger kbd{color:var(--ink-30);background:var(--kbd-bg);border-radius:.3125rem;padding:.125rem .375rem;font-family:inherit;font-size:.6875rem}@media screen and (max-width:768px){.ask-trigger kbd{display:none}}.ask-overlay{z-index:70;background:var(--scrim);-webkit-backdrop-filter:blur(6px);display:none;position:fixed;inset:0}.ask-side{background:var(--panel-bg);border-left:1px solid var(--hairline);will-change:transform;flex-direction:column;width:min(26rem,100vw);padding:1.125rem 1.25rem 1rem;display:flex;position:absolute;top:0;bottom:0;right:0}.ask-thread{flex:1;padding:.5rem .25rem 1rem;overflow-y:auto}.ask-empty{text-align:center;color:var(--ink-18);flex-direction:column;align-items:center;gap:.875rem;padding:3.5rem 1.5rem 2rem;display:flex}.ask-empty p{color:var(--muted);max-width:16rem;font-size:.8125rem;font-weight:460;line-height:1.25rem}.ask-question{color:var(--heading-color);letter-spacing:-.00563rem;font-size:.875rem;font-weight:560;line-height:1.25rem}.ask-question:not(:first-child){border-top:1px solid var(--hairline);margin-top:1.25rem;padding-top:1.25rem}.ask-answer{color:var(--body-color);letter-spacing:-.00563rem;white-space:pre-wrap;padding-top:.625rem;font-size:.875rem;font-weight:460;line-height:1.4375rem}.ask-pulse{animation:1.4s ease-in-out infinite music-pulse}.ask-suggestions{flex-direction:column;gap:.375rem;padding-bottom:.75rem;display:flex}.ask-chip{text-align:left;background:var(--surface);color:var(--body-color);letter-spacing:-.0025rem;cursor:pointer;border-radius:.625rem;padding:.5625rem .75rem;font-size:.8125rem;font-weight:460;transition:background .15s,color .15s}.ask-chip:hover{background:var(--surface-hover);color:var(--heading-color)}.ask-form{background:var(--surface);box-shadow:0 0 0 1px var(--ring);border-radius:999px;flex:none;align-items:center;gap:.5rem;padding:.375rem .375rem .375rem 1rem;transition:box-shadow .15s;display:flex}.ask-form:focus-within{box-shadow:0 0 0 1px var(--underline)}.ask-form input{min-width:0;color:var(--heading-color);letter-spacing:-.00563rem;background:0 0;outline:none;flex:1;font-size:.875rem;font-weight:460}.ask-form input::placeholder{color:var(--ink-30)}.ask-form button{background:var(--accent);color:#fff;cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;width:2rem;height:2rem;transition:opacity .15s;display:flex}.ask-form button:disabled{opacity:.25;cursor:default}.ask-close{width:1.5rem;height:1.5rem;color:var(--ink-30);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.ask-close:hover{color:var(--heading-color);background:var(--kbd-bg)}.ask-head{justify-content:space-between;align-items:center;padding:0 .25rem .75rem;display:flex}.ask-head-title{color:var(--muted);letter-spacing:.00063rem;align-items:center;gap:.4375rem;font-size:.75rem;font-weight:500;display:inline-flex}.ask-head-title svg{color:var(--ink-30)}.ask-head-hint{align-items:center;gap:.625rem;display:inline-flex}.ask-head-hint kbd{color:var(--ink-30);background:var(--kbd-bg);border-radius:.3125rem;padding:.125rem .375rem;font-family:inherit;font-size:.625rem}.ask-reset{color:var(--ink-30);cursor:pointer;font-size:.75rem;font-weight:460;transition:color .15s}.ask-reset:hover{color:var(--heading-color)}.ask-footnote{color:var(--ink-25);letter-spacing:.00063rem;padding:.875rem .25rem .125rem;font-size:.6875rem;font-weight:460}.theme-toggle{z-index:40;background:var(--glass);-webkit-backdrop-filter:blur(10px);width:2.25rem;height:2.25rem;box-shadow:0 0 0 1px var(--ring), 0 2px 6px #0000000d;color:var(--ink-30);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,transform .2s;animation:.5s .35s backwards sp-in;display:flex;position:fixed;bottom:1.5rem;left:1.5rem}.theme-toggle:hover{color:var(--heading-color);transform:translateY(-1px)}.sp-art{color:var(--ink-45)}.shelf-section{padding:2.5rem 0 0}.shelf{align-items:flex-end;gap:.375rem;padding:0 1rem;display:flex}.shelf-board{background:var(--surface);height:.375rem;box-shadow:0 0 0 1px var(--ring), 0 10px 18px -8px #0000002e;border-radius:2px}.spine{background:repeating-linear-gradient(0deg, #ffffff06 0 1px, transparent 1px 3px), var(--spine-bg,var(--surface));border-radius:4px 4px 2px 2px;flex-direction:column;justify-content:space-between;align-items:center;padding:1rem 0 .75rem;transition:transform .25s cubic-bezier(.19,1,.22,1),box-shadow .25s;animation:.5s backwards staggerIn;display:flex;position:relative;overflow:hidden;box-shadow:inset -3px 0 5px #00000038,inset 2px 0 3px #ffffff14,3px 6px 12px -6px #0000004d}.spine:before{content:"";background:#ffffff24;border-radius:2px;height:2px;position:absolute;top:.4375rem;left:15%;right:15%;box-shadow:0 .25rem #ffffff17}.spine[data-lean]{transform-origin:0 100%;margin-left:.25rem;margin-right:.875rem;transform:rotate(-7deg)translateY(.375rem)}.spine[data-lean]:hover{transform:rotate(-7deg)translateY(-.25rem)}.spine:after{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff29 0,#ffffff05 22%,#0000 60%,#0000001f 100%);position:absolute;inset:0}.spine:hover{transform:translateY(-.625rem)rotate(-2.5deg);box-shadow:inset -2px 0 4px #0000002e,0 12px 22px -8px #00000047}.spine-title{writing-mode:vertical-rl;color:var(--spine-fg,var(--muted));letter-spacing:.02rem;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 1px #0000004d;max-height:78%;font-size:.875rem;font-weight:500;overflow:hidden}.spine-year{color:var(--spine-fg,var(--muted));opacity:.55;font-variant-numeric:tabular-nums;font-size:.5625rem;font-weight:500}.spine-ghost{width:1.625rem;height:8.5rem;box-shadow:none;border:1px dashed var(--underline);background:0 0}.spine-ghost:after{display:none}.spine-ghost .spine-title{color:var(--ink-25);font-weight:460}.writing-list{padding-top:2rem}.writing-row{border-bottom:1px solid var(--hairline);align-items:baseline;gap:1rem;padding:1.125rem 0;display:flex}.writing-no{color:var(--ink-18);flex:0 0 2rem;font-size:1.125rem;font-style:italic;line-height:1}.writing-row:last-child{border-bottom:none}.writing-row-main{flex:1;min-width:0}.writing-row-main h2{color:var(--heading-color);letter-spacing:-.005rem;font-size:1.0625rem;font-weight:500;line-height:1.375rem;transition:opacity .15s}.writing-row:hover .writing-row-main h2{opacity:.6}.writing-row-main p{color:var(--muted);padding-top:.125rem;font-size:.8125rem;font-weight:460;line-height:1.125rem}.writing-row>time{color:var(--ink-30);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:460}.essay{background:var(--panel-bg);box-shadow:0 0 0 1px var(--ring), 0 2px 8px #00000008, 0 16px 40px -12px #00000012;border-radius:.75rem;margin-top:2rem;padding:3rem 3rem 2.5rem}@media screen and (max-width:640px){.essay{padding:2rem 1.5rem}}.essay-head{text-align:center;padding-bottom:2rem}.essay-no{color:var(--ink-30);letter-spacing:.14em;text-transform:uppercase;padding-bottom:.875rem;font-size:.6875rem;font-weight:500;display:block}.essay-head h1{color:var(--heading-color);letter-spacing:-.01rem;text-wrap:balance;font-size:1.75rem;font-weight:500;line-height:2.25rem}.essay-head time{color:var(--muted);padding-top:.75rem;font-size:.8125rem;font-weight:460;display:block}.essay-body{border-top:1px solid var(--hairline);max-width:33rem;margin:0 auto;padding-top:2rem}.essay-body p{color:var(--ink-60);letter-spacing:.001rem;font-size:1.0625rem;line-height:1.8}.essay-body p+p{padding-top:1.25rem}.essay-body>p:first-child:first-letter{float:left;color:var(--heading-color);padding:.08em .12em 0 0;font-size:3.6em;font-weight:500;line-height:.82}.essay-end{text-align:center;color:var(--ink-25);padding-top:2.5rem;font-size:1rem}.bento{grid-template-columns:repeat(2,1fr);gap:.75rem;padding-top:2.5rem;display:grid}.bento-tile{background:var(--panel-bg);box-shadow:0 0 0 1px var(--ring), 0 2px 8px #00000008;border-radius:1rem;flex-direction:column;gap:.75rem;padding:1rem;transition:transform .25s cubic-bezier(.19,1,.22,1),box-shadow .25s;display:flex;position:relative}a.bento-tile:hover{box-shadow:0 0 0 1px var(--ring), 0 10px 24px -8px #0000001f;transform:translateY(-3px)}.bento-label{color:var(--ink-30);letter-spacing:.12em;text-transform:uppercase;font-size:.625rem;font-weight:500}.bento-caption{color:var(--muted);font-size:.75rem;font-weight:460}.bento-clock-tile{text-align:center;align-items:center}.bento-clock{background:var(--surface);width:5rem;height:5rem;box-shadow:inset 0 0 0 1px var(--ring);border-radius:999px;position:relative}.bento-tick{background:var(--ink-18);transform-origin:50% 2.125rem;border-radius:1px;width:2px;height:.3125rem;margin-left:-1px;position:absolute;top:.375rem;left:50%}.bento-tick:nth-child(2){transform:rotate(90deg)}.bento-tick:nth-child(3){transform:rotate(180deg)}.bento-tick:nth-child(4){transform:rotate(270deg)}.bento-hand{transform-origin:50% 100%;background:var(--heading-color);border-radius:2px;position:absolute;bottom:50%;left:50%}.bento-hand-h{width:3px;height:1.125rem;margin-left:-1.5px}.bento-hand-m{width:2px;height:1.625rem;margin-left:-1px}.bento-hand-s{background:#1db954;width:1px;height:1.75rem;margin-left:-.5px}.bento-pin{background:var(--heading-color);border-radius:999px;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;position:absolute;top:50%;left:50%}.bento-music{align-items:center;gap:.625rem;display:flex}.bento-music img,.bento-noart{object-fit:cover;background:var(--skeleton);width:2.75rem;height:2.75rem;box-shadow:0 0 0 1px var(--ring);border-radius:999px;flex:none}.bento-music img[data-playing]{animation:6s linear infinite sp-spin}.bento-music-meta{flex-direction:column;gap:.125rem;min-width:0;display:flex}.bento-music-meta strong{color:var(--heading-color);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:560;line-height:1.0625rem;overflow:hidden}.bento-music-meta span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-weight:460;overflow:hidden}.bento-eq{height:.75rem;position:absolute;top:1rem;right:1rem}.bento-book-tile{grid-column:span 2}.bento-book{align-items:center;gap:.875rem;display:flex}.bento-book-cover{background:#1a1a1a;border-radius:2px 4px 4px 2px;flex:none;width:2.5rem;height:3.375rem;padding:.375rem .25rem 0 .375rem;overflow:hidden;box-shadow:inset 2px 0 3px #ffffff1f,2px 3px 8px -2px #00000059}.bento-book-cover em{color:#f5f4ef;font-size:.3125rem;font-style:normal;font-weight:560;line-height:.4375rem;display:block}.bento-book-meta{flex-direction:column;gap:.1875rem;min-width:0;display:flex}.bento-book-meta strong{color:var(--heading-color);font-size:.9375rem;font-weight:500;line-height:1.25rem}.bento-book-meta span{color:var(--muted);font-size:.75rem;font-weight:460}.bento-stats-tile{flex-direction:row;grid-column:span 2;justify-content:space-between;padding:1.125rem 1.5rem}.bento-stat{flex-direction:column;align-items:center;gap:.25rem;display:flex}.bento-stat strong{color:var(--heading-color);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:500;line-height:1}.bento-stat span{color:var(--muted);font-size:.6875rem;font-weight:460}@media screen and (max-width:480px){.bento{grid-template-columns:1fr}.bento-book-tile,.bento-stats-tile{grid-column:span 1}}.cv-page{--cv-ink:var(--heading-color);--cv-muted:var(--muted);--cv-rule:var(--hairline);color:var(--body-color);padding-bottom:3.75rem;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55}.cv-page a{color:var(--cv-ink);text-decoration:none}.cv-page a:hover{text-decoration:underline}.cv-header{padding:0 0 1.5rem}.cv-hero-grid{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.cv-hero-identity{align-items:center;gap:1rem;display:flex}.cv-headshot{background:var(--surface);border:1px solid var(--cv-rule);border-radius:50%;flex:none;width:5rem;height:5rem;overflow:hidden}.cv-headshot img{object-fit:cover;width:100%;height:100%}.cv-hero-name{color:var(--cv-ink);letter-spacing:.01em;margin:0 0 .375rem;font-size:1.5rem;font-weight:700}.cv-hero-role{margin:0 0 .1875rem;font-size:.875rem}.cv-hero-loc{color:var(--cv-muted);margin:0;font-size:.8125rem}.cv-hero-links{color:var(--cv-muted);flex-direction:column;align-items:flex-end;gap:.375rem;padding-top:.25rem;font-size:.875rem;display:flex}.cv-hero-links a{color:var(--cv-muted)}.cv-hero-actions{border-top:1px solid var(--cv-rule);flex-direction:row;align-items:center;gap:.5rem;margin-top:.625rem;padding-top:.625rem;display:flex}.cv-action{background:var(--surface);width:2rem;height:2rem;color:var(--cv-ink);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;transition:background .15s;display:flex;position:relative}.cv-action:hover{background:var(--surface-hover)}.cv-action[data-copied]:after{content:"Copied";background:var(--panel-bg);box-shadow:0 0 0 1px var(--ring), 0 4px 12px #00000014;color:var(--body-color);font-family:var(--font-body);white-space:nowrap;border-radius:.375rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;position:absolute;top:calc(100% + .5rem);right:0}.cv-rule{border:none;border-top:1px solid var(--cv-rule);margin:1.375rem 0 0}.cv-block{border-top:1px solid var(--cv-rule);padding:1.625rem 0}.cv-block:first-of-type{border-top:none}.cv-grid3{grid-template-columns:1fr;gap:.5rem;display:grid}.cv-label{color:var(--cv-muted);padding:0 0 .5rem;font-size:.875rem}.cv-full{grid-column:1}.cv-about-text{max-width:none;margin:0}.cv-split-left,.cv-split-right{grid-column:1}.cv-split-right{margin-top:1.5rem}.cv-split-left h4,.cv-split-right h4{color:var(--cv-ink);margin:0 0 .5rem;font-size:.9375rem;font-weight:700}.cv-bullets{margin:0;padding-left:0;list-style:none}.cv-split-left .cv-bullets,.cv-split-right .cv-bullets{padding-left:1.125rem;list-style:outside}.cv-bullets li{margin-bottom:.5rem}.cv-bullets li:last-child{margin-bottom:0}.cv-rowset{flex-direction:column;grid-column:1;display:flex}.cv-item-row{border-top:1px solid var(--cv-rule);grid-template-columns:1fr;gap:.375rem;padding:.875rem 0;display:grid}.cv-item-row:first-child{border-top:none;padding-top:0}.cv-meta strong{color:var(--cv-ink);font-size:.9375rem;display:block}.cv-company{font-size:.9375rem}.cv-tag,.cv-dates{color:var(--cv-muted);margin-top:.125rem;font-size:.8125rem;display:block}.cv-desc p{margin:0}.cv-desc ul.cv-bullets{font-size:.9375rem}.cv-item-row-group{border-top:1px solid var(--cv-rule);padding:.875rem 0}.cv-item-row-group:first-child{border-top:none;padding-top:0}.cv-group-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.875rem;display:flex}.cv-group-head strong{color:var(--cv-ink);font-size:.9375rem}.cv-subrow{grid-template-columns:1fr;gap:.375rem;margin-top:.875rem;display:grid}.cv-subrow:first-of-type{margin-top:0}.cv-proj-row{border-top:1px solid var(--cv-rule);grid-template-columns:1fr;gap:.375rem;padding:.75rem 0;display:grid}.cv-proj-row:first-child{border-top:none;padding-top:0}.cv-proj-row strong{color:var(--cv-ink);font-size:.9375rem}.cv-proj-row p{margin:.25rem 0 0}.cv-footer{border-top:1px solid var(--cv-rule);color:var(--cv-muted);padding:1.5rem 0 0;font-size:.8125rem}.cv-tools{margin:0 0 .375rem}.cv-tools strong{color:var(--cv-ink)}.cv-footer p{margin:0 0 .375rem}@media (min-width:1051px){.cv-page{width:min(88vw,61.25rem);margin-left:50%;transform:translate(-50%)}.cv-grid3{grid-template-columns:10rem 18.75rem 1fr;gap:0 1.5rem}.cv-label{padding-bottom:0}.cv-full{grid-column:2/span 2}.cv-split-left{grid-column:2}.cv-split-right{grid-column:3;margin-top:0}.cv-rowset{grid-column:2/span 2}.cv-item-row,.cv-subrow,.cv-proj-row{grid-template-columns:18.75rem 1fr;gap:1.5rem}.cv-hero-grid{flex-wrap:nowrap}.cv-hero-links{align-items:flex-end}}.cv-modal-overlay{z-index:80;-webkit-backdrop-filter:blur(6px);background:#0a0a0a99;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.cv-modal{width:100%;max-width:20.5rem;font-family:var(--font-body);background:#1c1c1a;border-radius:1.25rem;flex-direction:column;align-items:center;gap:1.25rem;padding:1.25rem 1.25rem 1.5rem;display:flex;box-shadow:0 24px 64px -16px #00000080}.cv-modal-head{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.cv-modal-head span{color:#f1f1ef;letter-spacing:-.0025rem;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;font-weight:500;overflow:hidden}.cv-modal-head button{color:#ffffffb3;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.cv-modal-head button:hover{background:#ffffff29}.cv-modal-preview{justify-content:center;align-items:center;width:100%;height:12.5rem;display:flex;position:relative}.cv-modal-page{aspect-ratio:8.5/11;background:#fff;border-radius:.375rem;width:8.75rem;position:absolute}.cv-modal-page-back{background:#e4e4e2;transform:rotate(6deg)translate(.5rem,.25rem)}.cv-modal-page-front{flex-direction:column;gap:.3125rem;padding:.625rem;display:flex;transform:rotate(-4deg);box-shadow:0 16px 32px -8px #00000059}.cv-modal-avatar{background:#d9d9d6;border-radius:50%;width:.875rem;height:.875rem;margin-bottom:.125rem}.cv-modal-line{background:#e4e4e2;border-radius:999px;height:.1875rem;display:block}.cv-modal-line-title{background:#b3b3af;width:70%;height:.25rem}.cv-modal-line-sub{width:45%;margin-bottom:.25rem}.cv-modal-line-short{width:55%}.cv-modal-download{color:#6fa8ff;cursor:pointer;background:0 0;border:none;align-items:center;gap:.375rem;padding:0;font-family:inherit;font-size:.875rem;font-weight:500;display:flex}.cv-modal-download:hover{opacity:.8}@media print{.cv-modal-overlay,.site-nav,.mnav-btn,.mnav-overlay,.theme-toggle,.ask-trigger,.ask-overlay,.sp-track,.cv-hero-actions{display:none!important}.page{max-width:none;margin:0;padding:0}.cv-page{--cv-ink:#1a1a1a;--cv-muted:#6b6b6b;--cv-rule:#d9d9d9;color:#1a1a1a;width:100%;margin-left:0;transform:none}.cv-page,body{background:#fff}}@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}
