@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Crimson+Text:ital,wght@0,400;0,600;1,400;1,600&display=swap";@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;1,400&display=swap";/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial}}}@layer theme{:root,:host{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Crimson Text", "Times New Roman", Georgia, serif;--font-mono:"JetBrains Mono", "Courier New", Consolas, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-base:1rem;--text-base--line-height: 1.5 ;--font-weight-bold:700;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-pink:#ff69b4;--color-pink-deep:#ff1493;--color-pink-light:#ffb6c1;--color-plum:#2d1b2e;--color-rosewood:#8b5a6b;--color-cream:#fef7f7;--color-blush:#ffe4e8;--color-cocoa:#4a2c2a;--color-candy:#f4a7c1;--color-berry:#d4749f;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:20px;--spacing-xl:28px;--animate-visualizer:visualizerBounce 3s infinite ease-in-out;--animate-loader-track:loaderTrack 1s steps(8) infinite}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html,body{background-color:var(--color-cream);width:100%;font-size:16px;line-height:1.5em;font-family:var(--font-sans);color:var(--color-plum);margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}p{margin:1em 0}blockquote{font-family:var(--font-serif);font-style:italic}a{color:var(--color-pink);text-decoration:none}a:hover{color:var(--color-pink-deep);text-decoration:underline}img{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0}li{list-style:none}button{background-color:var(--color-pink);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.5em 1em;font-family:inherit}button:hover{background-color:var(--color-pink-deep)}[hidden]{display:none!important}input,textarea,progress{width:100%}}@layer components{.reading-progress{z-index:2000;pointer-events:none;background:linear-gradient(90deg,var(--color-pink),var(--color-pink-deep));width:0;height:4px;position:fixed;bottom:0;left:0}.post-content{font-family:var(--font-serif);color:var(--color-plum);text-align:left;word-wrap:break-word;font-size:1.05em;line-height:1.75em}.post-content>:first-child{margin-top:0}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{font-family:var(--font-mono);color:var(--color-cocoa);margin:1.6em 0 .5em;font-weight:600;line-height:1.3em}.post-content h1{font-size:1.6em}.post-content h2{border-bottom:1px dashed var(--color-berry);padding-bottom:.25em;font-size:1.35em}.post-content h3{font-size:1.15em}.post-content p{margin:.9em 0}.post-content a{color:var(--color-pink);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.post-content a:hover{color:var(--color-pink-deep);text-decoration-style:solid}.post-content strong{color:var(--color-cocoa)}.post-content ul,.post-content ol{margin:.9em 0;padding-left:1.6em}.post-content li{margin:.35em 0;list-style:outside}.post-content ol>li{list-style:decimal}.post-content blockquote{border-left:3px solid var(--color-candy);color:var(--color-rosewood);background:var(--color-blush);margin:1.2em 0;padding:.2em 1em}.post-content blockquote p{margin:.5em 0}.post-content code{font-family:var(--font-mono);background:var(--color-blush);border:1px solid var(--color-candy);border-radius:3px;padding:.15em .4em;font-size:.88em}.post-content pre{background:var(--color-cocoa);border:2px inset var(--color-candy);margin:1.2em 0;padding:1em;overflow-x:auto}.post-content pre code{color:var(--color-cream);background:0 0;border:0;padding:0;font-size:.85em;display:block}.post-content img{border:2px solid var(--color-cocoa);margin:1em auto}.post-content hr{background:var(--color-berry);border:none;height:1px;margin:1.6em 0}.post-content table{border-collapse:collapse;width:100%;margin:1.2em 0}.post-content th,.post-content td{border:1px solid var(--color-berry);text-align:left;padding:.4em .8em}.post-content th{background:var(--color-blush);color:var(--color-cocoa)}.photo-wall{columns:4;column-gap:14px}.photo-card{break-inside:avoid;border:2px solid var(--color-cocoa);background:var(--color-cream);margin:0 0 14px}.photo-card a{display:block}.photo-card img{border-bottom:2px solid var(--color-cocoa);width:100%;height:auto;display:block}.photo-card figcaption{padding:10px 12px}.photo-card__title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-plum);font-size:.85em;font-weight:700}.photo-card__desc{font-family:var(--font-serif);color:var(--color-rosewood);margin:4px 0 0;font-size:.9em;font-style:italic}.projects-grid{flex-direction:column;gap:20px;display:flex}.project-card{border:2px solid var(--color-cocoa);background:var(--color-cream);text-align:left;flex-direction:row;align-items:stretch;display:flex;overflow:hidden}.project-card__media{background:var(--color-cocoa);flex:0 0 280px;width:280px;display:block;overflow:hidden}.project-card__media img{object-fit:contain;width:100%;height:100%;display:block}.project-card__fallback{place-items:center;width:100%;height:100%;display:grid}.project-card__fallback-inner{font-family:var(--font-mono);color:#fef7f7d9;font-size:3rem;font-weight:700}.project-card__body{flex-direction:column;flex:1;min-width:0;padding:16px 18px;display:flex}.project-card__header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-card__name{font-family:var(--font-mono);color:var(--color-pink);overflow-wrap:anywhere;font-size:1.05em;font-weight:700}.project-card__name:hover{color:var(--color-pink-deep);text-decoration:underline}.project-card__actions{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:8px;font-size:.8em;display:flex}.project-card__badge{border:1px solid var(--color-candy);background:var(--color-blush);color:var(--color-cocoa);white-space:nowrap;padding:2px 8px}.project-card__live{color:var(--color-pink);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.project-card__live:hover{color:var(--color-pink-deep);text-decoration-style:solid}.project-card__desc{font-family:var(--font-serif);color:var(--color-rosewood);margin:10px 0;font-size:.95em;line-height:1.6em}.project-card__langs{margin-top:auto;padding-top:12px}.project-card__langbar{border:1px solid var(--color-cocoa);height:8px;margin-bottom:10px;display:flex;overflow:hidden}.project-card__langbar-seg{height:100%;display:block}.project-card__legend{flex-wrap:wrap;gap:8px 16px;display:flex}.project-card__lang{font-family:var(--font-mono);color:var(--color-plum);align-items:center;gap:6px;font-size:.78em;display:inline-flex}.project-card__dot{border:1px solid #00000026;border-radius:50%;width:10px;height:10px;display:inline-block}.project-card__pct{color:var(--color-rosewood)}.project-card__updated{font-family:var(--font-mono);color:var(--color-rosewood);margin-top:8px;font-size:.75em;display:block}.gear-page__intro{grid-template-columns:minmax(0,1fr) minmax(200px,300px);align-items:center;gap:28px;margin-bottom:28px;display:grid}.gear-page__title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-plum);margin:0;font-size:1rem;font-weight:700;line-height:1.4}.gear-page__subtitle{font-family:var(--font-serif);color:var(--color-rosewood);margin:8px 0 0;font-style:italic}.gear-page__hero{justify-self:end;width:100%;max-width:300px;margin:0}.gear-page__image{border:2px solid var(--color-cocoa);width:100%}.gear-page__caption{text-align:right;color:var(--color-rosewood);margin-top:.5em;font-size:.9em}.gear-categories{flex-direction:column;gap:26px;display:flex}.gear-category+.gear-category{border-top:1px solid var(--color-candy);padding-top:22px}.gear-category__title{font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase;color:var(--color-rosewood);margin:0 0 8px;font-size:.9em;font-weight:700;line-height:1.4}.gear-list{margin:0}.gear-item{padding:4px 0}.gear-item__identity{min-width:0}.gear-item__media{float:left;background:var(--color-cream);border:2px solid var(--color-cocoa);width:76px;height:76px;margin:0 12px 6px 0;overflow:hidden}.gear-item__media img{object-fit:cover;width:100%;height:100%;display:block}.gear-item__head{min-width:0}.gear-item__name{font-family:var(--font-mono);color:var(--color-cocoa);overflow-wrap:anywhere;font-size:.95em;font-weight:700;line-height:1.5}.gear-item__name:after{content:" —";color:var(--color-rosewood);font-weight:400}a.gear-item__name{color:var(--color-pink)}.gear-item__name:hover{color:var(--color-pink-deep);text-decoration:underline}.gear-item__desc{font-family:var(--font-serif);color:var(--color-rosewood);font-size:.95em;font-style:italic;line-height:1.5}.gear-item__specs{border-left:2px solid var(--color-candy);flex-direction:column;gap:3px;margin:6px 0 0;padding-left:14px;display:flex}.gear-item__spec{grid-template-columns:minmax(76px,max-content) minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.gear-item__spec dt{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--color-rosewood);font-size:.72em;font-weight:700}.gear-item__spec dd{color:var(--color-plum);overflow-wrap:anywhere;margin:0;font-size:.9em}@media only screen and (max-width:767px){.gear-page__intro{grid-template-columns:1fr;gap:16px}.gear-page__hero{justify-self:start;max-width:360px}.gear-page__caption{text-align:left}.gear-item__media{width:64px;height:64px}}.book-carousel__cover{aspect-ratio:2/3;background:var(--color-blush);border:2px solid var(--color-cocoa);width:100%;position:relative;overflow:hidden}.book-carousel__link{width:100%;height:100%;display:block}.book-carousel__cover img{object-fit:cover;width:100%;height:100%;transition:opacity .12s;display:block;position:absolute;inset:0}.book-carousel__caption{transition:opacity .12s}.book-carousel.is-swapping .book-carousel__cover img,.book-carousel.is-swapping .book-carousel__caption{opacity:0}.book-carousel__counter{color:var(--color-cream);letter-spacing:.05em;font-size:.85em}.book-carousel__nav{border:1px solid var(--color-candy);width:22px;height:22px;color:var(--color-cream);font-family:var(--font-mono);cursor:pointer;background:0 0;border-radius:0;padding:0;font-size:.9em;font-weight:700;line-height:1}.book-carousel__nav:hover{background:var(--color-cream);color:var(--color-cocoa);border-color:var(--color-cream)}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-x-0{inset-inline:0}.top-1\/2{top:50%}.top-\[6px\]{top:6px}.right-\[6px\]{right:6px}.bottom-0{bottom:0}.bottom-\[10px\]{bottom:10px}.left-\[6px\]{left:6px}.left-\[10px\]{left:10px}.z-\[2500\]{z-index:2500}.z-\[3000\]{z-index:3000}.col-span-2{grid-column:span 2/span 2}.col-span-5{grid-column:span 5/span 5}.col-span-7{grid-column:span 7/span 7}.col-span-9{grid-column:span 9/span 9}.row-span-4{grid-row:span 4/span 4}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.m-auto{margin:auto}.mx-auto{margin-inline:auto}.mx-sm{margin-inline:var(--spacing-sm)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-\[1em\]{margin-block:1em}.-mt-\[60px\]{margin-top:-60px}.mt-\[0\.4em\]{margin-top:.4em}.mt-\[0\.5em\]{margin-top:.5em}.mt-\[10px\]{margin-top:10px}.mt-md{margin-top:var(--spacing-md)}.mt-sm{margin-top:var(--spacing-sm)}.mt-xs{margin-top:var(--spacing-xs)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-md{margin-bottom:var(--spacing-md)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-xl{margin-bottom:var(--spacing-xl)}.ml-md{margin-left:var(--spacing-md)}.ml-sm{margin-left:var(--spacing-sm)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing) * 2)}.h-7{height:calc(var(--spacing) * 7)}.h-10{height:calc(var(--spacing) * 10)}.h-20{height:calc(var(--spacing) * 20)}.h-\[18px\]{height:18px}.h-\[120px\]{height:120px}.h-\[200px\]{height:200px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[calc\(100dvh-24px\)\]{max-height:calc(100dvh - 24px)}.max-h-\[calc\(100dvh-136px\)\]{max-height:calc(100dvh - 136px)}.min-h-\[280px\]{min-height:280px}.w-1{width:var(--spacing)}.w-7{width:calc(var(--spacing) * 7)}.w-\[40\%\]{width:40%}.w-\[120px\]{width:120px}.w-\[min\(360px\,calc\(100vw-32px\)\)\]{width:min(360px,100vw - 32px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[250px\]{max-width:250px}.max-w-\[680px\]{max-width:680px}.max-w-\[720px\]{max-width:720px}.max-w-\[1600px\]{max-width:1600px}.max-w-\[min\(920px\,calc\(100vw-24px\)\)\]{max-width:min(920px,100vw - 24px)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.flex-1{flex:1}.flex-\[0_1_240px\]{flex:0 240px}.flex-\[1_1_260px\]{flex:260px}.shrink-0{flex-shrink:0}.origin-bottom{transform-origin:bottom}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-loader-track{animation:var(--animate-loader-track)}.animate-visualizer{animation:var(--animate-visualizer)}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-\[3px\]{gap:3px}.gap-lg{gap:var(--spacing-lg)}.gap-sm{gap:var(--spacing-sm)}.gap-x-md{column-gap:var(--spacing-md)}.gap-y-sm{row-gap:var(--spacing-sm)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded-none{border-radius:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-none{--tw-border-style:none;border-style:none}.\[border-style\:inset\]{border-style:inset}.border-\[\#666\]{border-color:#666}.border-berry{border-color:var(--color-berry)}.border-candy{border-color:var(--color-candy)}.border-cocoa{border-color:var(--color-cocoa)}.border-cream{border-color:var(--color-cream)}.bg-\[\#eee\]{background-color:#eee}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/\[0\.72\]{background-color:#000000b8}@supports (color:color-mix(in lab,red,red)){.bg-black\/\[0\.72\]{background-color:color-mix(in oklab,var(--color-black) 72%,transparent)}}.bg-blush{background-color:var(--color-blush)}.bg-cocoa{background-color:var(--color-cocoa)}.bg-cream{background-color:var(--color-cream)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-\[\#ddd\]{--tw-gradient-to:#ddd;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-4{padding:calc(var(--spacing) * 4)}.p-\[1\%\]{padding:1%}.p-\[10px\]{padding:10px}.p-lg{padding:var(--spacing-lg)}.p-md{padding:var(--spacing-md)}.px-\[1em\]{padding-inline:1em}.px-\[6px\]{padding-inline:6px}.px-\[10px\]{padding-inline:10px}.px-md{padding-inline:var(--spacing-md)}.px-sm{padding-inline:var(--spacing-sm)}.py-\[2px\]{padding-block:2px}.py-xs{padding-block:var(--spacing-xs)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-\[10px\]{padding-bottom:10px}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-serif{font-family:var(--font-serif)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8em\]{font-size:.8em}.text-\[0\.9em\]{font-size:.9em}.text-\[0\.75em\]{font-size:.75em}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95em\]{font-size:.95em}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[2rem\]{font-size:2rem}.leading-\[1\.6em\]{--tw-leading:1.6em;line-height:1.6em}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-\[0\.2rem\]{--tw-tracking:.2rem;letter-spacing:.2rem}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-\[\#333\]{color:#333}.text-\[\#555\]{color:#555}.text-\[lime\]{color:#0f0}.text-cream{color:var(--color-cream)}.text-pink{color:var(--color-pink)}.text-plum{color:var(--color-plum)}.text-rosewood{color:var(--color-rosewood)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.\[animation-delay\:0\.1s\]{animation-delay:.1s}.\[animation-delay\:0\.2s\]{animation-delay:.2s}.\[animation-delay\:0\.3s\]{animation-delay:.3s}.\[animation-delay\:0\.4s\]{animation-delay:.4s}.\[animation-delay\:0\.5s\]{animation-delay:.5s}.\[animation-delay\:0\.6s\]{animation-delay:.6s}.\[animation-delay\:0\.7s\]{animation-delay:.7s}.\[background\:repeating-linear-gradient\(90deg\,var\(--color-pink\)_0_8px\,var\(--color-pink-light\)_8px_16px\)\]{background:repeating-linear-gradient(90deg,var(--color-pink) 0 8px,var(--color-pink-light) 8px 16px)}.\[border-bottom\:1px_dashed_var\(--color-berry\)\]{border-bottom:1px dashed var(--color-berry)}.\[border\:2px_outset_\#999\]{border:2px outset #999}@media (hover:hover){.hover\:bg-\[\#ddd\]:hover{background-color:#ddd}.hover\:bg-cocoa:hover{background-color:var(--color-cocoa)}.hover\:text-\[\#111\]:hover{color:#111}.hover\:text-cream:hover{color:var(--color-cream)}.hover\:text-pink-deep:hover{color:var(--color-pink-deep)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}}@media not all and (min-width:1320px){.max-\[1320px\]\:max-w-\[min\(260px\,100\%\)\]{max-width:min(260px,100%)}.max-\[1320px\]\:max-w-none{max-width:none}.max-\[1320px\]\:text-center{text-align:center}}@media not all and (min-width:767px){.max-\[767px\]\:right-\[2px\]{right:2px}.max-\[767px\]\:left-\[2px\]{left:2px}.max-\[767px\]\:mx-auto{margin-inline:auto}.max-\[767px\]\:my-2{margin-block:calc(var(--spacing) * 2)}.max-\[767px\]\:mt-\[-45px\]{margin-top:-45px}.max-\[767px\]\:block{display:block}.max-\[767px\]\:h-\[30px\]{height:30px}.max-\[767px\]\:h-\[90px\]{height:90px}.max-\[767px\]\:h-\[120px\]{height:120px}.max-\[767px\]\:h-\[140px\]{height:140px}.max-\[767px\]\:max-h-\[calc\(100dvh-12px\)\]{max-height:calc(100dvh - 12px)}.max-\[767px\]\:max-h-\[calc\(100dvh-116px\)\]{max-height:calc(100dvh - 116px)}.max-\[767px\]\:min-h-\[260px\]{min-height:260px}.max-\[767px\]\:w-\[90px\]{width:90px}.max-\[767px\]\:w-full{width:100%}.max-\[767px\]\:max-w-\[calc\(100vw-12px\)\]{max-width:calc(100vw - 12px)}.max-\[767px\]\:flex-col{flex-direction:column}.max-\[767px\]\:items-center{align-items:center}.max-\[767px\]\:p-0{padding:0}.max-\[767px\]\:p-2{padding:calc(var(--spacing) * 2)}.max-\[767px\]\:p-sm{padding:var(--spacing-sm)}.max-\[767px\]\:px-sm{padding-inline:var(--spacing-sm)}.max-\[767px\]\:pb-\[45px\]{padding-bottom:45px}.max-\[767px\]\:pl-4{padding-left:calc(var(--spacing) * 4)}.max-\[767px\]\:text-center{text-align:center}}@media not all and (min-width:520px){.max-\[520px\]\:block{display:block}.max-\[520px\]\:gap-0{gap:0}}}.site-lightbox__goodreads{text-align:center;font-family:var(--font-mono);color:var(--color-pink);margin-top:.5em;font-size:.8em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:block}.site-lightbox__goodreads:hover{color:var(--color-pink-deep);text-decoration-style:solid}.app-shell{grid-template-rows:auto 1fr 1fr 1fr 1fr auto;min-height:100dvh}.post-page .app-shell{grid-template-rows:auto 1fr auto}@media only screen and (max-width:900px){html{font-size:14px}}@media only screen and (max-width:767px){html{font-size:13px}html,body{overflow-x:hidden}.app-shell{flex-direction:column;display:flex}.app-shell>.site-footer{margin-top:auto}:root{--spacing-md:8px;--spacing-lg:12px;--spacing-xl:16px}}@media only screen and (max-width:1100px){.photo-wall{columns:3}}@media only screen and (max-width:767px){.photo-wall{columns:2}.project-card{flex-direction:column}.project-card__media{aspect-ratio:2;flex-basis:auto;width:100%}.project-card__header{flex-direction:column;align-items:flex-start}}@media only screen and (max-width:360px){.photo-wall{columns:1}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@keyframes visualizerBounce{0%,to{transform:scaleY(1)}25%{transform:scaleY(2.5)}50%{transform:scaleY(1.8)}75%{transform:scaleY(3)}}@keyframes loaderTrack{0%{transform:translate(-100%)}to{transform:translate(260%)}}
