*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.invisible{visibility:hidden}.mb-16{margin-bottom:4rem}.mb-\[20px\]{margin-bottom:20px}.mb-\[40px\]{margin-bottom:40px}.mt-10{margin-top:2.5rem}.mt-\[24px\]{margin-top:24px}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\[126px\]{height:126px}.w-2\/3{width:66.6667%}.w-\[200px\]{width:200px}.w-full{width:100%}.w-max{width:max-content}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-\[158px\]{-moz-column-gap:158px;column-gap:158px}.gap-x-\[8px\]{-moz-column-gap:8px;column-gap:8px}.gap-y-\[20px\]{row-gap:20px}.gap-y-\[8px\]{row-gap:8px}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.border,.border-\[1px\]{border-width:1px}.border-b{border-bottom-width:1px}.border-solid{border-style:solid}.border-\[\#1F1F1F\]{--tw-border-opacity:1;border-color:rgb(31 31 31/var(--tw-border-opacity))}.border-\[\#8C8C8C\]{--tw-border-opacity:1;border-color:rgb(140 140 140/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-\[\#141414\]{--tw-bg-opacity:1;background-color:rgb(20 20 20/var(--tw-bg-opacity))}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.pb-2{padding-bottom:.5rem}.pb-5{padding-bottom:1.25rem}.pb-\[12px\]{padding-bottom:12px}.pb-\[16px\]{padding-bottom:16px}.pb-\[40px\]{padding-bottom:40px}.pb-\[50px\]{padding-bottom:50px}.pl-4{padding-left:1rem}.pt-10{padding-top:2.5rem}.pt-14{padding-top:3.5rem}.pt-8{padding-top:2rem}.pt-\[12px\]{padding-top:12px}.pt-\[16px\]{padding-top:16px}.pt-\[24px\]{padding-top:24px}.pt-\[8px\]{padding-top:8px}.text-center{text-align:center}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-\[\#141414\]{--tw-text-opacity:1;color:rgb(20 20 20/var(--tw-text-opacity))}.text-\[\#1F1F1F\]{--tw-text-opacity:1;color:rgb(31 31 31/var(--tw-text-opacity))}.text-\[\#262626\]{--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity))}.text-\[\#26262\]{color:#26262}.text-\[\#595959\]{--tw-text-opacity:1;color:rgb(89 89 89/var(--tw-text-opacity))}.text-\[\#8C8C8C\]{--tw-text-opacity:1;color:rgb(140 140 140/var(--tw-text-opacity))}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline-offset:5px;outline:3px solid #e75b35}::selection{color:#141414;background:#f16a41}.portfolio{--paper:#eae9e3;--ink:#23231f;--accent:#ef623d;background:var(--paper);color:var(--ink);min-height:100vh;font-family:Arial,Helvetica,sans-serif}.direction-bar{z-index:10;color:#f1f0e8;letter-spacing:1px;background:#20211e;justify-content:space-between;align-items:center;gap:20px;min-height:62px;padding:10px 3%;font:10px Courier New,monospace;display:flex;position:sticky;top:0}.lab-label{white-space:nowrap}.lab-label span{color:#a9aaa1}.direction-buttons{gap:6px;display:flex}.direction-buttons button{color:#c5c5bc;text-align:left;letter-spacing:.2px;background:0 0;border:1px solid #606159;min-width:130px;padding:10px 15px}.direction-buttons button>span:first-child{opacity:.6;margin-right:9px}.direction-buttons button[aria-pressed=true]{color:#20211e;background:#eae9e3;border-color:#eae9e3}.selection-dot{float:right;visibility:hidden;margin-left:15px}.direction-buttons button[aria-pressed=true] .selection-dot{visibility:visible}.study-count{color:#999b90}.page-shell{max-width:1600px;margin:auto;padding:0 4.5%}.site-header{border-bottom:1px solid var(--ink);align-items:center;gap:45px;padding:28px 0;display:flex}.wordmark{letter-spacing:-5px;font-size:40px;font-weight:900;line-height:1}.wordmark span{vertical-align:top;letter-spacing:0;margin-left:8px;font:12px Arial}.header-role{letter-spacing:.6px;font:9px/1.5 Courier New,monospace}.site-header nav{gap:35px;margin-left:auto;font-size:12px;display:flex}.site-header sup{font:8px monospace}.hero-meta,.hero-bottom,.eyebrow,.section-heading>span,.about-label,.capabilities,.text-link,.contact-top,footer,.work-footnote{letter-spacing:.6px;font:10px/1.5 Courier New,monospace}.hero-meta{justify-content:space-between;padding:22px 0;display:flex}.hero-composition{grid-template-columns:1fr 28%;align-items:end;padding:38px 0 48px;display:grid}.eyebrow{margin:0 0 23px}h1{letter-spacing:-.075em;margin:0;font-size:clamp(75px,11.5vw,180px);font-weight:900;line-height:.84}h1>span:not(.period){letter-spacing:-.07em;font-family:Georgia,serif;font-style:italic;font-weight:400}.period{color:var(--accent)}.hero-side{padding:0 0 5px 30px}.hero-symbol{color:var(--accent);margin-bottom:45px;font-size:145px;line-height:1}.hero-side p{margin-bottom:35px;font-size:14px;line-height:1.5}.work-link{border-bottom:1px solid var(--ink);justify-content:space-between;padding:14px 0;font:10px monospace;display:flex}.work-link span{font-size:24px;line-height:10px}.hero-bottom{border-top:1px solid var(--ink);justify-content:space-between;padding:17px 0;display:flex}.hero-bottom>span:nth-child(2){opacity:.6}.work-section{padding:75px 0}.section-heading{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.section-heading h2{letter-spacing:-1px;margin:0;font-size:24px;font-weight:500}.section-heading h2 span{margin-right:20px;font:11px monospace}.project-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.project-art{border:1px solid var(--ink);flex-direction:column;justify-content:space-between;height:310px;padding:20px;transition:transform .25s;display:flex;position:relative;overflow:hidden}.art-index,.art-caption{letter-spacing:.6px;font:9px monospace}.practice{color:#252720;background:#c3c5b4}.practice-art{letter-spacing:-18px;justify-content:center;align-items:center;font-size:135px;font-weight:900;line-height:1;display:flex;transform:rotate(-10deg)}.practice-art>span:first-child{transform:translateY(-15px)}.practice-art>span:last-child{transform:translateY(15px)}.tiny-star{vertical-align:top;letter-spacing:-15px;color:#f1623c;font-size:50px}.africa{color:#f0e8d5;background:#c54a2b}.africa-art{letter-spacing:-6px;padding-left:15px;font-size:80px;font-weight:900;line-height:.8}.africa-art>span{letter-spacing:-3px;font-size:52px;display:block}.dictionary{color:#e2e4ed;background:#282c32}.dictionary-art>span{letter-spacing:-8px;font:90px Georgia,serif;display:block}.dictionary-art>span>span{float:right;margin:15px;font:35px Arial}.dictionary-art small{font:8px/1.5 monospace}.project-arrow{font-size:26px;position:absolute;bottom:13px;right:16px}.project-title{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.project-title h3{letter-spacing:-.6px;margin:0;font-size:18px;font-weight:500}.project-title>span,.project-type{font:10px monospace}.project-type{opacity:.6;margin:10px 0}.project-description{max-width:290px;font-size:12px;line-height:1.6}.work-footnote{opacity:.55;margin-top:30px;font-size:8px}.about-section{border-top:1px solid var(--ink);grid-template-columns:1fr 2fr;gap:45px;padding:55px 0 75px;display:grid}.portrait-frame{background:#aaa;width:155px;height:185px;margin:30px 0 12px;overflow:hidden}.portrait-frame img{-o-object-fit:cover;object-fit:cover;filter:grayscale();width:100%;height:100%}.about-copy h2{letter-spacing:-2px;margin:0 0 30px;font-size:clamp(28px,3.5vw,50px);font-weight:500;line-height:1.1}.about-copy h2 em{font-family:Georgia,serif}.about-copy p{max-width:560px;font-size:14px;line-height:1.8}.capabilities{flex-wrap:wrap;gap:8px;margin:25px 0;display:flex}.capabilities span{border:1px solid var(--ink);padding:7px 10px;font-size:9px}.text-link{border-bottom:1px solid;padding-bottom:6px;display:inline-block}.contact-section{border-top:1px solid var(--ink);padding:25px 0 55px}.contact-top{justify-content:space-between;margin-bottom:45px;display:flex}.contact-section>a{letter-spacing:-.065em;font-size:clamp(65px,9.8vw,145px);font-weight:700;line-height:.95;display:block;position:relative}.contact-section>a>span:not(.contact-arrow){font-family:Georgia,serif;font-style:italic;font-weight:400}.contact-arrow{color:var(--accent);font-weight:400;position:absolute;top:0;right:0}.contact-email{margin-top:30px;font:12px monospace}footer{border-top:1px solid var(--ink);justify-content:space-between;padding:22px 0;font-size:8px;display:flex}.signal{--paper:#e5f64a;--ink:#151515;--accent:#6244e6}.signal .page-shell{padding:0 3%}.signal .site-header{border-bottom:3px solid}.signal .hero-composition{grid-template-columns:1fr 32%;padding:35px 0 45px}.signal h1{text-transform:uppercase;letter-spacing:-.08em;font-size:clamp(65px,10.7vw,165px);line-height:.88}.signal h1>span:not(.period){-webkit-text-stroke:2px var(--ink);color:#0000;font-family:Arial,sans-serif;font-style:normal;font-weight:900}.signal .hero-side{background:var(--ink);color:var(--paper);border:2px solid var(--ink);box-shadow:9px 9px 0 var(--accent);padding:25px;transform:rotate(3deg)}.signal .hero-symbol{color:var(--paper);margin-bottom:25px;font-size:140px}.signal .work-link{border-color:var(--paper)}.signal .hero-bottom{border-top:3px solid}.signal .project-art{box-shadow:5px 5px 0 var(--ink);border:3px solid}.signal .practice{background:#a494ed}.signal .africa{color:#171717;background:#f36b42}.signal .dictionary{color:#171717;background:#eeeae0}.signal .section-heading h2{text-transform:uppercase;font-weight:900}.signal .about-section{border-top:3px solid}.signal .about-copy h2 em{background:var(--ink);color:var(--paper);font-family:Arial;font-style:normal;font-weight:900}.signal .contact-section{border-top:3px solid}.signal .contact-section>a>span:not(.contact-arrow){font-family:Arial;font-style:normal;font-weight:900}.signal .capabilities span{background:var(--ink);color:var(--paper)}.terminal{--paper:#151918;--ink:#c5cfc7;--accent:#8ee4b1;font-family:Courier New,monospace}.terminal .wordmark{letter-spacing:-4px;color:var(--accent);font-family:monospace}.terminal .hero-meta{color:var(--accent)}.terminal .hero-composition{grid-template-columns:1fr 32%;padding:65px 0}.terminal h1{letter-spacing:-.08em;font-family:Courier New,monospace;font-size:clamp(65px,8.5vw,130px);font-weight:400;line-height:.96}.terminal h1>span:not(.period){color:var(--accent);font-family:inherit;font-style:normal;font-weight:400}.terminal .eyebrow:before{content:"> ";color:var(--accent)}.terminal .hero-symbol{color:var(--accent);aspect-ratio:1;border:1px dashed #69786e;place-items:center;max-width:210px;font-size:110px;display:grid}.terminal .hero-side p{font-size:12px}.terminal .hero-bottom,.terminal .site-header,.terminal .about-section,.terminal .contact-section,.terminal footer{border-color:#56635b}.terminal .section-heading h2{letter-spacing:-1px;font:20px monospace}.terminal .project-grid{display:block}.terminal .project{border-top:1px solid #56635b;grid-template-columns:160px 1fr 1fr;align-items:center;gap:0 30px;padding:25px 0;display:grid}.terminal .project-art{filter:grayscale();height:145px;color:var(--accent);background:#202a24;border:1px solid #56635b;grid-row:1/4;padding:10px}.terminal .art-index{font-size:7px}.terminal .art-caption{display:none}.terminal .practice-art{font-size:70px}.terminal .tiny-star{font-size:25px}.terminal .africa-art{letter-spacing:-4px;font-size:50px}.terminal .africa-art>span{letter-spacing:-2px;font-size:28px}.terminal .dictionary-art>span{font-size:65px}.terminal .dictionary-art small{display:none}.terminal .dictionary-art>span>span{font-size:20px}.terminal .project-title{grid-column:2;margin:0}.terminal .project-title h3{font-size:18px}.terminal .project-type{grid-column:2}.terminal .project-description{grid-area:1/3/4;font-size:12px}.terminal .about-copy h2{letter-spacing:-1px;font:clamp(24px,3vw,40px)/1.2 monospace}.terminal .about-copy h2 em{color:var(--accent);font-family:inherit;font-style:normal}.terminal .about-copy p{font-size:12px}.terminal .contact-section>a{font-family:monospace;font-size:clamp(50px,8vw,120px);font-weight:400}.terminal .contact-section>a>span:not(.contact-arrow){color:var(--accent);font-family:inherit;font-style:normal}@media (min-width:1500px){.project-art{height:370px}}@media (max-width:850px){.lab-label span,.study-count{display:none}.direction-buttons button{min-width:105px;padding:9px}.direction-bar{gap:10px}.hero-composition{grid-template-columns:1fr 30%}.hero-symbol{font-size:100px}.hero-side{padding-left:10px}.hero-side p{font-size:12px}.hero-bottom>span:nth-child(2){display:none}.project-art{height:230px;padding:12px}.practice-art{font-size:95px}.africa-art{padding:0;font-size:60px}.africa-art>span{font-size:36px}.dictionary-art>span{font-size:65px}.section-heading>span{font-size:8px}.signal .hero-side{padding:20px}.signal .hero-symbol{font-size:90px}.terminal .project{grid-template-columns:120px 1fr;gap:0 20px}.terminal .project-description{grid-area:auto/2}.terminal .project-art{height:155px}.terminal .project-title{gap:10px}}@media (max-width:600px){.direction-bar{padding:10px 4%;display:block}.lab-label{margin-bottom:8px;font-size:8px;display:block}.lab-label span{display:inline}.direction-buttons{width:100%}.direction-buttons button{flex:1;min-width:0;padding:10px 8px;font-size:10px}.selection-dot{margin-left:5px}.page-shell{padding:0 5%}.site-header{gap:20px;padding:23px 0}.wordmark{font-size:34px}.header-role{display:none}.site-header nav{gap:20px;font-size:11px}.hero-meta{gap:20px;font-size:8px}.hero-meta>span:last-child{text-align:right}.hero-composition,.signal .hero-composition,.terminal .hero-composition{grid-template-columns:1fr;padding:35px 0}.eyebrow{font-size:9px}h1{font-size:25vw}.hero-side{grid-template-columns:65px 1fr;align-items:center;gap:10px 25px;padding:35px 0 0;display:grid}.hero-symbol{grid-row:1/3;margin:0;font-size:65px}.hero-side p{margin:0;font-size:11px}.work-link{padding:12px 0;font-size:9px}.hero-bottom{gap:10px;font-size:7px}.work-section{padding:45px 0}.section-heading{align-items:start;gap:25px}.section-heading h2{font-size:21px}.section-heading h2 span{margin-right:8px}.section-heading>span{text-align:right;max-width:100px}.project-grid{grid-template-columns:1fr;gap:35px}.project-art{height:330px;padding:20px}.practice-art{font-size:150px}.africa-art{padding:15px;font-size:100px}.africa-art>span{font-size:65px}.dictionary-art>span{font-size:110px}.project-description{max-width:none}.about-section{grid-template-columns:1fr;gap:30px;padding:30px 0 45px}.about-label{grid-template-columns:1fr 90px;align-items:start;display:grid}.portrait-frame{grid-area:1/2/3;width:90px;height:100px;margin:0}.about-copy h2{letter-spacing:-1px;font-size:30px}.contact-top{gap:30px;font-size:8px}.contact-top>span:last-child{text-align:right;max-width:120px}.contact-section>a{font-size:15vw}.contact-arrow{font-size:50px}.contact-email{font-size:10px}footer{flex-wrap:wrap;gap:15px;font-size:7px}footer>span:nth-child(2){display:none}.signal h1{font-size:23vw}.signal .hero-side{grid-template-columns:70px 1fr;margin-top:30px;padding:18px;transform:rotate(-1deg)}.signal .hero-symbol{font-size:70px}.terminal h1{font-size:21vw}.terminal .hero-symbol{aspect-ratio:1;width:65px;font-size:50px}.terminal .project{grid-template-columns:85px 1fr;gap:0 15px}.terminal .project-art{height:140px;padding:7px}.terminal .practice-art{font-size:50px}.terminal .africa-art{padding:0;font-size:35px}.terminal .africa-art>span{font-size:21px}.terminal .dictionary-art>span{font-size:48px}.terminal .dictionary-art>span>span{display:none}.terminal .art-index{font-size:5px}.terminal .project-title h3{font-size:15px}.terminal .project-title>span,.terminal .project-type{font-size:8px}.terminal .project-description{margin:0;font-size:10px}.terminal .contact-section>a{font-size:13vw}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@font-face{font-family:Portfolio Inter;src:url(/fonts/Inter-Medium.ttf)format("truetype");font-weight:400 600;font-display:swap}@font-face{font-family:Portfolio Inter;src:url(/fonts/Inter-Black.ttf)format("truetype");font-weight:700 900;font-display:swap}.portfolio{--glass:#f5efdeb8;--line:#2d271d38;isolation:isolate;--paper:#eee7d7;--heading:"Portfolio Inter",Arial,sans-serif;--body:"Portfolio Inter",Arial,sans-serif;font-family:var(--body);background-image:radial-gradient(at 10% 0,#b8a37626,#0000 60%),radial-gradient(at 95% 75%,#b8a37620,#0000 55%);position:relative}.portfolio:before{content:"";z-index:-1;pointer-events:none;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%237a6640' opacity='.32' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.signal{--paper:#e4ee8a;--glass:#e7efa1b8}.terminal{--paper:#e5e8da;--ink:#263b30;--accent:#477352;--glass:#e5e8dab8;--heading:"Courier New",monospace;--body:"Courier New",monospace}.terminal .project-art{color:#d1e9c8;background:#263b30}.terminal .hero-symbol{border-color:var(--line)}.portfolio[data-theme=dark]{--paper:#24231f;--ink:#ede5d4;--accent:#ec9972;--glass:#282620c2;--line:#ede5d43d}.signal[data-theme=dark]{--paper:#24251d;--accent:#dbef68;--glass:#24251dc2}.terminal[data-theme=dark]{--paper:#151d19;--ink:#cfdbcf;--accent:#a7dab4;--glass:#151d19c2}.portfolio .direction-bar{position:relative}.portfolio .glass-menu{z-index:20;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(1.3);border-radius:9px;gap:25px;margin:22px -2px 0;padding:17px 22px;position:sticky;top:14px;box-shadow:0 6px 30px #17140d0a}.glass-menu .wordmark{font-size:32px}.glass-menu nav{gap:25px;margin:0 auto}.lagos-clock{letter-spacing:.6px;align-items:center;gap:10px;font:8px/1.5 monospace;display:flex}.lagos-clock time{font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:16px;display:block}.lagos-clock small{letter-spacing:0;font-size:8px}.clock-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.appearance-panel{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:25px;padding:25px 0;display:flex}.control-label,.theme-options legend{letter-spacing:1px;font:9px monospace}.font-options{align-items:center;gap:8px;display:flex}.font-options>.control-label{margin-right:12px}.font-preview{color:var(--ink);border:1px solid var(--line);font:10px var(--body);background:0 0;border-radius:3px;align-items:center;gap:10px;padding:7px 12px;display:flex}.font-preview>span{font:25px/1 var(--heading)}.font-preview[aria-pressed=true],.theme-options button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.theme-options{text-align:right;border:0;margin:0;padding:0}.theme-options legend{float:left;margin:9px 12px 0 0}.theme-options button{border:1px solid var(--line);color:var(--ink);background:0 0;padding:8px 10px;font:10px monospace}.theme-options button+button{margin-left:4px}.auto-note{opacity:.65;clear:both;margin-top:9px;font:8px monospace;display:block}.font-grotesk{--heading:"Portfolio Inter",Arial,sans-serif;--body:"Portfolio Inter",Arial,sans-serif}.font-editorial{--heading:Georgia,"Times New Roman",serif;--body:Georgia,"Times New Roman",serif}.font-mono{--heading:"Courier New",monospace;--body:"Courier New",monospace}.portfolio h1,.portfolio h1>span:not(.period),.portfolio .about-copy h2,.portfolio .contact-section>a,.portfolio .contact-section>a>span:not(.contact-arrow){font-family:var(--heading)}.font-editorial h1,.signal.font-editorial h1{letter-spacing:-.065em;font-weight:400}.font-mono h1,.signal.font-mono h1{letter-spacing:-.085em;font-size:clamp(65px,10vw,145px);font-weight:700}.portfolio .hero-side p,.portfolio .project-description,.portfolio .about-copy p,.portfolio .site-header nav{font-family:var(--body)}.interests-section,.roles-section{border-top:1px solid var(--line);padding:45px 0 65px}.interest-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.interest-grid article{border:1px solid var(--line);background:var(--glass);min-height:220px;padding:27px 22px;position:relative}.interest-grid h3{font-family:var(--heading);letter-spacing:-1px;margin:28px 0 16px;font-size:27px;line-height:1.2}.interest-grid p{font-size:12px;line-height:1.7}.interest-symbol{color:var(--accent);font-size:26px;position:absolute;top:18px;right:18px}.interest-grid .control-label{font-size:8px}.interest-grid .text-link{margin-top:12px;font-size:9px}.role-row{border-top:1px solid var(--line);grid-template-columns:1.1fr 1fr 1fr;align-items:center;gap:25px;padding:24px 0;display:grid}.role-row h3{letter-spacing:-.6px;margin:0;font-size:19px;font-weight:500}.role-row p{margin:0;font-size:12px}.role-row>span{text-align:right;opacity:.7;font:10px monospace}.social-links{flex-wrap:wrap;gap:24px;margin-top:25px;font:11px monospace;display:flex}.social-links a{border-bottom:1px solid var(--line);padding-bottom:6px}.portfolio .hero-bottom,.portfolio .about-section,.portfolio .contact-section,.portfolio footer,.terminal .project{border-color:var(--line)}@media (max-width:850px){.appearance-panel{align-items:start;gap:18px}.font-options{flex-wrap:wrap;gap:6px}.font-options>.control-label{width:100%}.theme-options{min-width:230px}.font-preview{padding:6px 9px}.glass-menu nav{gap:17px}.lagos-clock{font-size:7px}.lagos-clock time{font-size:13px}.interest-grid{gap:12px}.interest-grid article{padding:24px 15px}.interest-grid h3{font-size:23px}.role-row{grid-template-columns:1fr 1fr;gap:12px}.role-row>span{text-align:left;grid-column:1/-1}}@media (max-width:600px){html{scroll-padding-top:135px}.portfolio .glass-menu{grid-template-columns:1fr 1fr;gap:15px;margin-top:15px;padding:13px 15px;display:grid;top:8px}.glass-menu .wordmark{font-size:29px}.glass-menu nav{border-top:1px solid var(--line);grid-area:2/1/auto/-1;justify-content:space-between;gap:8px;width:100%;padding-top:12px;font-size:11px}.lagos-clock{grid-area:1/2;justify-self:end}.appearance-panel{padding:22px 0;display:block}.font-options{flex-wrap:nowrap;justify-content:space-between;gap:6px}.font-options>.control-label{width:auto;margin-right:0;font-size:8px}.font-preview{gap:6px;padding:6px 8px;font-size:9px}.font-preview>span{font-size:22px}.theme-options{text-align:left;margin-top:20px}.theme-options legend{width:65px;margin-right:10px;font-size:8px}.auto-note{margin-left:75px;font-size:7px}.font-mono h1,.signal.font-mono h1{font-size:21vw}.interest-grid{grid-template-columns:1fr}.interest-grid article{min-height:0;padding:24px}.interest-grid h3{margin-top:18px;font-size:28px}.interests-section,.roles-section{padding:30px 0 40px}.role-row{grid-template-columns:1fr;gap:10px;padding:22px 0}.role-row>span{grid-column:auto}.social-links{gap:18px;font-size:10px}.signal .hero-side{background:var(--ink);color:var(--paper)}}.live-interests{grid-template-columns:1fr 1fr;gap:24px;display:grid}.live-card{border:1px solid var(--line);background:var(--glass);min-width:0;padding:28px}.live-card-label{letter-spacing:1px;justify-content:space-between;gap:15px;font:9px monospace;display:flex}.live-card-label>span:last-child{opacity:.6}.live-card h3{font:500 clamp(30px,3.5vw,50px)/1.04 var(--heading);letter-spacing:-2px;margin:30px 0 18px}.live-card h3 em{color:var(--accent);font-weight:400}.live-card>p{font-size:12px;line-height:1.7}.run-placeholder{border:1px dashed var(--line);flex-direction:column;justify-content:center;align-items:center;min-height:200px;margin:25px 0;display:flex}.run-glyph{font:70px/1 var(--heading);color:var(--accent);margin-bottom:15px}.integration-button{border:1px solid var(--ink);color:var(--ink);background:0 0;padding:12px 20px;font:10px monospace}.integration-button:hover{background:var(--ink);color:var(--paper)}.live-card .integration-note{opacity:.65;letter-spacing:0;font:9px/1.7 monospace}.run-embed iframe{background:var(--paper);border:0;width:100%;height:320px;margin:25px 0;display:block}.music-display{margin:30px 0 25px}.album-cover{background:var(--paper);border:1px solid var(--line);place-items:center;width:180px;height:180px;margin-bottom:24px;display:grid}.album-cover img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%;display:block}.album-cover>span{color:var(--accent);font-size:80px;line-height:1}.music-status{letter-spacing:1px;align-items:center;gap:8px;font:9px monospace;display:flex}.music-dot{background:var(--ink);opacity:.4;border-radius:50%;width:6px;height:6px;display:inline-block}.music-dot.is-playing{background:var(--accent);opacity:1}.music-details h4{font:500 24px/1.2 var(--heading);letter-spacing:-.5px;overflow-wrap:anywhere;margin:14px 0 8px}.music-details>p:not(.music-status){font-size:12px;line-height:1.6}.music-details .text-link{margin-top:16px;font-size:9px}.instagram-strip{justify-content:space-between;align-items:center;gap:25px;padding:24px 0 0;font:9px monospace;display:flex}.instagram-strip p{font:12px/1.6 var(--body)}.instagram-strip .text-link{white-space:nowrap;font-size:9px}@media (max-width:600px){.live-interests{grid-template-columns:1fr;gap:16px}.live-card{padding:24px}.live-card h3{font-size:38px}.instagram-strip{flex-wrap:wrap;gap:12px}.instagram-strip p{width:100%;margin:0}.album-cover{width:160px;height:160px}}.live-card.strava-summary{--strava:#fc4c02;background:color-mix(in srgb,var(--paper) 80%,#fff3ec 20%);border-radius:18px;flex-direction:column;align-self:start;min-height:420px;padding:26px;display:flex}.strava-summary .live-card-label{letter-spacing:1px;align-items:center;min-height:32px;font-size:9px}.strava-summary .live-card-label>a{text-align:right;max-width:75%;line-height:1.6}.strava-summary .live-card-label>a:hover{color:var(--strava)}.strava-symbol-link{width:190px;min-height:175px;color:var(--strava);place-items:center;margin:4px auto 18px;display:grid}.strava-symbol{width:104px;height:115px;transition:transform .24s}.strava-symbol-link:is(a):hover .strava-symbol{transform:translateY(-5px)rotate(-3deg)}.running-stats{background:#fc4c0221;border:1px solid #fc4c0221;border-radius:15px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.running-stats>div{background:color-mix(in srgb,var(--paper) 35%,#fff 65%);min-width:0;padding:18px}.running-stats dt{font:700 9px/1.5 var(--body);letter-spacing:1px;text-transform:uppercase;opacity:.65;margin-bottom:6px}.running-stats dd{letter-spacing:-1.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font:600 clamp(24px,3vw,34px)/1.2 ui-monospace,Courier New,monospace}.running-stats dd small{letter-spacing:0;font-size:.46em}.running-empty{text-align:center;margin:16px 0 0}.portfolio[data-theme=dark] .strava-summary{background:var(--glass)}.portfolio[data-theme=dark] .running-stats{background:#fc4c023d;border-color:#fc4c023d}.portfolio[data-theme=dark] .running-stats>div{background:color-mix(in srgb,var(--paper) 94%,#fff 6%)}.running-toggle{border:0;border-top:1px solid var(--line);width:100%;color:var(--ink);letter-spacing:.7px;background:0 0;justify-content:space-between;align-items:center;margin-top:22px;padding:17px 0 0;font:9px monospace;display:flex}.running-toggle>span{font-size:20px}.running-details .run-embed iframe{border-radius:8px}.signal .live-card.strava-summary{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:0}.terminal .live-card.strava-summary,.terminal .running-stats{border-radius:0}@media (max-width:600px){.live-card.strava-summary{min-height:390px;padding:22px}.strava-summary .live-card-label{font-size:8px}.strava-symbol-link{min-height:160px;margin-bottom:12px}.running-stats>div{padding:17px}.running-stats dd{font-size:28px}}.spotify-listen{border-top:1px solid var(--line);padding:20px 0}.spotify-listen iframe{border:0;border-radius:12px;margin-top:18px;display:block}.recent-listening{border-top:1px solid var(--line);padding-top:20px}.recent-listening>h4{text-transform:uppercase;letter-spacing:1px;justify-content:space-between;margin:0 0 12px;font:10px monospace;display:flex}.recent-listening>h4 span{opacity:.5}.recent-listening ol{margin:0;padding:0;list-style:none}.recent-listening li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:12px 0;display:flex}.recent-number{opacity:.5;min-width:16px;font:9px monospace}.recent-listening li>img,.recent-art{-o-object-fit:contain;object-fit:contain;flex-shrink:0;width:40px;height:40px}.recent-art{background:var(--paper);color:var(--accent);place-items:center;display:grid}.recent-listening li>div{overflow-wrap:anywhere;min-width:0;font-size:12px;line-height:1.5}.recent-listening li a:hover{text-decoration:underline}.recent-listening li p{opacity:.65;margin:3px 0 0;font-size:10px}.recent-listening ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.recent-listening li{border:1px solid var(--line);background:var(--glass);flex-direction:column;align-items:stretch;gap:10px;padding:12px;display:flex;position:relative}.recent-listening li>.recent-number{z-index:1;background:var(--paper);color:var(--ink);opacity:1;border:1px solid var(--line);padding:4px 5px;position:absolute;top:18px;left:18px}.recent-listening li>img,.recent-listening li>.recent-art{aspect-ratio:1;-o-object-fit:contain;object-fit:contain;background:var(--paper);width:100%;height:auto}.recent-listening li>.recent-art{font-size:40px}.recent-listening li p{font-size:10px}@media (max-width:360px){.recent-listening ol{gap:8px}.recent-listening li{padding:8px}.recent-listening li>.recent-number{top:12px;left:12px}}.experience-intro{grid-template-columns:1.2fr 1fr;align-items:end;gap:40px;margin:40px 0 45px;display:grid}.experience-intro>p{font:500 clamp(27px,3.4vw,48px)/1.12 var(--heading);letter-spacing:-1.8px;margin:0}.experience-intro em{color:var(--accent);font-weight:400}.experience-intro>span{justify-self:end;max-width:270px;font-size:13px;line-height:1.7}.experience-entry{border-top:1px solid var(--line);grid-template-columns:190px minmax(0,1fr);gap:40px;padding:35px 0 42px;display:grid}.experience-date{letter-spacing:.5px;flex-direction:column;gap:20px;font:10px/1.6 monospace;display:flex}.experience-index{font:500 45px/1 var(--heading);letter-spacing:-3px;color:var(--accent)}.experience-role-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.experience-role-heading h3{font:500 clamp(25px,3vw,36px)/1.15 var(--heading);letter-spacing:-1.3px;margin:0}.experience-type{border:1px solid var(--line);letter-spacing:1px;padding:7px 9px;font:8px monospace}.experience-title{font:500 13px/1.5 var(--body);margin:10px 0 4px}.experience-context{opacity:.65;margin:0;font:10px/1.6 monospace}.experience-body h4{font:500 20px/1.3 var(--heading);letter-spacing:-.6px;margin:28px 0 12px}.experience-summary{font:12px/1.9 var(--body);max-width:640px;margin:12px 0}.experience-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0 20px}.experience-details summary{cursor:pointer;letter-spacing:.4px;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;font:10px monospace;list-style:none;display:flex}.experience-details summary::-webkit-details-marker{display:none}.experience-details summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.experience-expand:before{content:"+";color:var(--accent);font:20px monospace}.experience-details[open] .experience-expand:before{content:"−"}.experience-details ul{margin:0;padding:0 0 8px 18px;list-style:outside}.experience-details li{font:12px/1.85 var(--body);max-width:650px;margin-bottom:14px;padding-left:5px}.experience-skills{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.experience-skills li{border:1px solid var(--line);padding:6px 9px;font:9px/1.5 monospace}.earlier-heading{letter-spacing:1px;border-top:1px solid var(--ink);justify-content:space-between;gap:20px;padding:20px 0;font:9px monospace;display:flex}.earlier-heading>span:last-child{opacity:.5}.earlier-role{border-bottom:1px solid var(--line);grid-template-columns:190px minmax(0,1fr);gap:40px;padding:26px 0;display:grid}.earlier-date{font:10px/1.6 monospace}.earlier-role h3{font:500 21px/1.3 var(--heading);letter-spacing:-.6px;margin:0}.earlier-role .experience-title{margin-top:7px;font-size:11px}.earlier-skills{opacity:.6;margin:15px 0 0;font:9px/1.8 monospace}.signal .experience-entry{border-top:2px solid var(--ink)}.signal .experience-type{background:var(--ink);color:var(--paper)}.terminal .experience-index{letter-spacing:-1px;font-size:32px}.terminal .experience-role-heading h3{font-size:27px}@media (max-width:850px){.experience-entry,.earlier-role{grid-template-columns:130px minmax(0,1fr);gap:25px}.experience-intro{gap:25px}.experience-type{font-size:7px}}@media (max-width:600px){.experience-intro{grid-template-columns:1fr;gap:18px;margin:30px 0}.experience-intro>p{letter-spacing:-1px;font-size:30px}.experience-intro>span{justify-self:start;max-width:300px;font-size:12px}.experience-entry,.earlier-role{grid-template-columns:1fr;gap:20px;padding:28px 0}.experience-date{flex-direction:row;justify-content:space-between;align-items:center;gap:15px}.experience-index{letter-spacing:-1px;font-size:28px}.experience-role-heading h3{font-size:27px}.experience-role-heading{align-items:start;gap:12px}.experience-body h4{margin-top:24px;font-size:20px}.experience-context{font-size:9px}.experience-type{padding:6px;font-size:7px}.earlier-role{gap:12px}.earlier-role h3{font-size:21px}.experience-skills li{font-size:8px}.experience-details li{font-size:12px}}.portfolio .appearance-panel{justify-content:flex-end}.photo-journal{border-top:1px solid var(--line);margin-top:50px;padding-top:30px}.journal-heading{justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px;display:flex}.journal-heading h3{font:600 clamp(30px,4vw,52px)/1.1 var(--heading);letter-spacing:-2px;margin:14px 0}.journal-heading h3 em{font-weight:400}.journal-heading p{font:12px/1.7 var(--body);margin:0}.journal-heading>a{white-space:nowrap;font-size:9px}.journal-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:32px 24px;display:grid}.journal-photo{margin:0}.journal-photo:nth-child(3n+2){padding-top:45px}.journal-photo>button{border:1px solid var(--ink);background:var(--glass);width:100%;box-shadow:4px 4px 0 var(--ink);cursor:zoom-in;padding:8px;transition:transform .2s;display:block;position:relative}.journal-photo img{width:100%;height:auto;display:block}.photo-enlarge{background:var(--paper);border:1px solid var(--ink);color:var(--ink);padding:6px 10px;font-size:18px;position:absolute;bottom:18px;right:18px}.journal-photo figcaption{gap:15px;padding:20px 2px 0;display:flex}.photo-index{opacity:.6;font:9px/1.8 monospace}.journal-photo h4{font:500 15px/1.5 var(--heading);margin:0}.journal-photo figcaption p{font:11px/1.7 var(--body);margin:6px 0}.photo-location{opacity:.65;font:9px/1.7 monospace}.journal-notice{border:1px dashed var(--line);padding:30px;font:11px/1.7 monospace}.journal-notice button{color:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.photo-dialog{border:1px solid var(--ink);background:var(--paper);max-width:95vw;max-height:94dvh;color:var(--ink);margin:auto;padding:0;overflow:auto}.photo-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14140fe0}.photo-dialog-content{padding:40px 18px 18px;position:relative}.photo-dialog-content>img{width:auto;max-width:85vw;height:auto;max-height:70dvh;margin:auto;display:block}.photo-close{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:6px;font:11px monospace;position:absolute;top:8px;right:12px}.photo-dialog-caption{padding-top:15px}.photo-dialog-caption h4{font:500 16px/1.5 var(--heading);margin:0}.photo-dialog-caption p,.photo-dialog-caption>span{font:11px/1.7 var(--body)}@media (max-width:850px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-photo:nth-child(3n+2){padding-top:0}.journal-photo:nth-child(2n){padding-top:30px}}@media (max-width:600px){.journal-heading{align-items:start}.journal-heading h3{letter-spacing:-1px;font-size:36px}.journal-heading p{font-size:11px}.journal-heading>a{margin-top:5px;font-size:8px}.journal-grid{gap:25px 16px}.journal-photo>button{box-shadow:3px 3px 0 var(--ink);padding:5px}.journal-photo figcaption{gap:8px;padding-top:14px}.journal-photo h4{font-size:12px}.journal-photo figcaption p{font-size:10px}.photo-enlarge{padding:3px 7px;font-size:13px;bottom:10px;right:10px}.photo-dialog-content{padding:40px 10px 14px}}@media (prefers-reduced-motion:reduce){.journal-photo>button:hover{transform:none}}.strava-embed-card{align-self:start}.strava-embed-frame{background:var(--paper);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink);margin:28px 0 25px;padding:8px}.strava-embed-frame .run-embed iframe{background:#fff;border:0;width:100%;height:460px;margin:0;display:block}.running-profile-link{font-size:9px}.strava-embed-card .integration-note{margin:15px 0}@media (max-width:600px){.strava-embed-frame{box-shadow:4px 4px 0 var(--ink);padding:5px}.strava-embed-frame .run-embed iframe{height:440px}}.live-interests{align-items:start}.running-column{min-width:0}.expandable-music{align-self:start}.music-card-main{box-sizing:border-box;flex-direction:column;display:flex}.expandable-music .music-display{align-items:center;gap:20px;margin:24px 0;display:flex}.expandable-music .album-cover{flex:0 0 110px;width:110px;height:110px;margin:0}.expandable-music .music-details{min-width:0}.expandable-music .music-details h4{overflow-wrap:anywhere;font-size:21px}.expandable-music .spotify-listen{padding:16px 0}.music-history-toggle{border:0;border-top:1px solid var(--line);width:100%;color:var(--ink);text-align:left;letter-spacing:.6px;background:0 0;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding:18px 0 0;font:9px/1.5 monospace;display:flex}.music-history-toggle span{font-size:22px;line-height:1}.music-history-panel{padding-top:25px}.music-history-panel .recent-listening{border-top:0;padding-top:0}@media (max-width:600px){.expandable-music .album-cover{flex-basis:90px;width:90px;height:90px}.expandable-music .music-display{gap:15px}.expandable-music .music-details h4{font-size:18px}.expandable-music .music-status{font-size:8px}}.expandable-music{--music-card-padding:28px}.music-card-main{min-height:calc(var(--running-card-height,0px) - var(--music-card-padding) * 2 - 2px)}@media (max-width:600px){.expandable-music{--music-card-padding:24px}}.star-icon{vertical-align:middle;flex-shrink:0;width:1em;height:1em;display:inline-block}.hero-symbol>.star-icon{display:block}.tiny-star>.star-icon{vertical-align:top}:root{--ease-out:cubic-bezier(.23,1,.32,1)}.photo-dialog-content{transform-origin:50%}.music-history-panel{opacity:0;transition:grid-template-rows .15s var(--ease-out),opacity .15s var(--ease-out);grid-template-rows:0fr;padding-top:0;display:grid}.music-history-panel[data-expanded=true]{opacity:1;grid-template-rows:1fr;transition-duration:.2s}.music-history-clip{min-height:0;overflow:hidden}.music-history-content{transition:transform .15s var(--ease-out);padding-top:25px;transform:translateY(6px)}.music-history-panel[data-expanded=true] .music-history-content{transition-duration:.2s;transform:translateY(0)}.music-history-toggle,.photo-close{transition:transform .12s var(--ease-out)}.music-history-toggle:active,.photo-close:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){.music-history-panel{transition:opacity 80ms var(--ease-out)!important}.music-history-content{transform:none;transition:none!important}.music-history-toggle:active,.photo-close:active{transform:none}}.experience-details summary,.integration-button,.theme-options button{transition:transform .12s var(--ease-out)}.experience-details summary:active,.integration-button:active,.theme-options button:active{transform:scale(.98)}.journal-photo>button:hover{transform:none}@media (hover:hover) and (pointer:fine){.journal-photo>button:hover{transform:translateY(-4px)rotate(-1deg)}}@media (prefers-reduced-motion:reduce){.experience-details summary:active,.integration-button:active,.theme-options button:active,.journal-photo>button:hover{transform:none}}.contribution-toggle{width:100%;color:var(--ink);letter-spacing:.4px;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;font:10px monospace;display:flex}.contribution-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.contribution-indicator{width:16px;height:16px;color:var(--accent);flex-shrink:0;display:block;position:relative}.contribution-indicator>span{background:currentColor;width:12px;height:1px;position:absolute;top:7px;left:2px}.contribution-indicator>span:last-child{transition:transform .15s var(--ease-out);transform:rotate(90deg)}.contribution-accordion[data-open=true] .contribution-indicator>span:last-child{transform:rotate(0)}.contribution-panel{opacity:0;transition:grid-template-rows .15s var(--ease-out),opacity .15s var(--ease-out);grid-template-rows:0fr;display:grid}.contribution-accordion[data-open=true] .contribution-panel{opacity:1;grid-template-rows:1fr;transition-duration:.2s}.contribution-clip{min-height:0;overflow:hidden}.contribution-accordion[data-keyboard=true] .contribution-panel,.contribution-accordion[data-keyboard=true] .contribution-indicator>span{transition:none}@media (prefers-reduced-motion:reduce){.contribution-panel{transition:opacity 80ms var(--ease-out)!important}.contribution-indicator>span:last-child{transition:none!important}}.mobile-appearance{display:none}@media (max-width:600px){.portfolio .appearance-panel{display:none}.portfolio .glass-menu{-moz-column-gap:12px;grid-template-columns:1fr auto 44px;column-gap:12px}.glass-menu .lagos-clock{grid-area:1/2}.glass-menu nav{grid-column:1/-1}.mobile-appearance{grid-area:1/3;display:block;position:relative}.mobile-appearance>summary{border:1px solid var(--line);cursor:pointer;touch-action:manipulation;width:44px;height:44px;color:var(--ink);border-radius:6px;place-items:center;list-style:none;display:grid}.mobile-appearance>summary::-webkit-details-marker{display:none}.mobile-appearance[open]>summary{background:var(--ink);color:var(--paper)}.mobile-appearance>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.appearance-dropdown{background:var(--paper);width:min(260px,100vw - 48px);color:var(--ink);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink);z-index:30;padding:16px;position:absolute;top:calc(100% + 12px);right:0}.appearance-dropdown fieldset{border:0;min-width:0;margin:0;padding:0}.appearance-dropdown legend{letter-spacing:1px;text-transform:uppercase;padding:0 0 12px;font:10px monospace}.appearance-choice{cursor:pointer;border-radius:3px;align-items:center;gap:12px;min-height:52px;padding:8px;display:flex}.appearance-choice:has(input:checked){background:var(--ink);color:var(--paper)}.appearance-choice:focus-within{outline:2px solid var(--accent);outline-offset:2px}.appearance-choice input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;margin:0}.appearance-choice strong{font:500 13px/1.5 var(--body);display:block}.appearance-choice small{opacity:.65;font:9px/1.7 monospace;display:block}}.portfolio{--reading-size:14px;--muted-opacity:.78;-webkit-font-smoothing:antialiased}.portfolio h1,.portfolio h2,.portfolio h3{text-wrap:balance}.portfolio p{text-wrap:pretty}.portfolio button,.portfolio summary,.portfolio a{touch-action:manipulation}.portfolio button,.portfolio summary{-webkit-user-select:none;user-select:none}.portfolio :is(a,button,summary,input):focus-visible{outline:2px solid var(--ink);outline-offset:4px}.portfolio button:disabled{cursor:wait;opacity:.55}.skip-link{z-index:100;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:14px 20px;font:12px monospace;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}#main-content:focus{outline:none}.site-header nav a{align-items:center;min-height:44px;display:inline-flex}.site-header nav a sup{margin-left:4px}.lagos-clock time{white-space:nowrap;min-width:110px}.theme-options button{min-width:65px;min-height:40px}.project-grid{gap:28px}.project-description{font-size:var(--reading-size);max-width:34ch;line-height:1.75}.project-type{opacity:var(--muted-opacity);font-size:11px;line-height:1.7}.project-title{align-items:baseline;gap:12px}.project-title h3{font-size:20px;line-height:1.3}.project-title>span{font-variant-numeric:tabular-nums;flex-shrink:0}.project:hover .project-art{transform:none}.project .project-art{transition:transform .18s var(--ease-out)}.project:focus-visible .project-art{outline:2px solid var(--ink);outline-offset:5px}.work-footnote{opacity:var(--muted-opacity);max-width:75ch;font-size:10px;line-height:1.7}.about-copy p,.experience-summary,.experience-details li{font-size:var(--reading-size);max-width:65ch;line-height:1.85}.experience-intro>span{font-size:14px;line-height:1.8}.experience-context{opacity:var(--muted-opacity);font-size:11px}.experience-title{font-size:14px}.earlier-role .experience-title{font-size:12px}.contribution-toggle{min-height:48px;font-size:11px}.experience-skills li,.earlier-skills{font-size:10px;line-height:1.7}.live-card-label{font-size:10px;line-height:1.6}.live-card>p{font-size:14px}.live-card .integration-note{opacity:var(--muted-opacity);font-size:10px;line-height:1.8}.live-card h3{margin-top:26px}.integration-button{min-height:44px;font-size:11px}.music-history-toggle{min-height:48px;font-size:10px}.music-details>p:not(.music-status){font-size:13px}.recent-listening li>div{font-size:12px}.recent-listening li p{opacity:var(--muted-opacity);font-size:11px}.text-link{align-items:center;min-height:44px;line-height:1.5;display:inline-flex}.journal-heading p{font-size:14px}.journal-photo figcaption p{font-size:12px;line-height:1.75}.photo-location{opacity:var(--muted-opacity);font-size:10px}.photo-close{min-width:72px;min-height:44px;top:0;right:8px}.photo-dialog-content{padding-top:48px}.photo-dialog-caption p{max-width:65ch;font-size:14px;line-height:1.8}.photo-dialog-caption h4{font-size:18px}.contact-email a{overflow-wrap:anywhere;align-items:center;min-height:44px;display:inline-flex}.social-links{gap:12px 25px}.social-links a,footer a{align-items:center;min-height:44px;display:inline-flex}footer{align-items:center;font-size:9px;line-height:1.6}@media (hover:hover) and (pointer:fine){.project:hover .project-art{transform:translateY(-4px)}.site-header nav a:hover,.social-links a:hover,.text-link:hover{text-underline-offset:5px;text-decoration:underline}}@media (max-width:600px){.page-shell{padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}.portfolio .glass-menu{row-gap:5px;padding:10px 12px}.glass-menu nav{gap:8px;padding-top:5px;font-size:11px}.lagos-clock time{min-width:102px;font-size:14px}.section-heading{gap:16px}.section-heading>span{max-width:115px;font-size:9px;line-height:1.7}.project-grid{gap:36px}.project-description{max-width:none}.about-copy p,.experience-summary,.experience-details li{font-size:14px}.experience-skills li{font-size:10px}.live-card{padding:22px}.expandable-music{--music-card-padding:22px}.live-card-label{font-size:9px}.journal-heading p{font-size:12px}.journal-heading>a{font-size:9px}.journal-photo figcaption p{font-size:11px}.journal-photo h4{font-size:13px}.photo-dialog-content>img{max-height:65dvh}.social-links{gap:8px 20px;font-size:11px}footer{padding-bottom:max(20px,env(safe-area-inset-bottom));font-size:9px}}@media (prefers-reduced-motion:reduce){.project:hover .project-art{transform:none}.project .project-art{transition:none!important}}.hero-introduction{letter-spacing:0;margin-bottom:28px}.hero-introduction>span{letter-spacing:1px;margin-bottom:10px;font:10px/1.5 monospace;display:block}.hero-introduction>strong{font:500 clamp(23px,3vw,40px)/1.15 var(--heading);letter-spacing:-1.3px;text-transform:none;display:block}.spotify-controller-mount{min-height:152px}.scroll-spotify-player>iframe{border:0;border-radius:12px;width:100%;height:152px;display:block}.scroll-spotify-player:has(>iframe) .spotify-controller-mount{display:none}@media (max-width:600px){.hero-introduction{margin-bottom:25px}.hero-introduction>strong{letter-spacing:-.8px;font-size:clamp(23px,6.5vw,32px)}}.soundtrack-history{margin-top:24px}.soundtrack-history .recent-listening{padding-top:20px}.soundtrack-history .recent-listening ol{gap:12px}.soundtrack-history .recent-listening li{gap:10px;padding:12px}.soundtrack-history .recent-listening li>img,.soundtrack-history .recent-listening li>.recent-art{aspect-ratio:1;align-self:center;width:88px;max-width:100%;height:88px}.soundtrack-history .recent-listening li>.recent-number{padding:3px 4px;font-size:8px;top:8px;left:8px}.soundtrack-history .recent-listening li>div{font-size:12px;line-height:1.5}.soundtrack-history .recent-listening li a{align-items:center;min-height:32px;display:inline-flex}.soundtrack-history .recent-listening li p{font-size:11px;line-height:1.6}@media (max-width:600px){.soundtrack-history{margin-top:20px}.soundtrack-history .recent-listening li{padding:10px}.soundtrack-history .recent-listening li>img,.soundtrack-history .recent-listening li>.recent-art{width:76px;height:76px}}.company-link{text-underline-offset:6px;align-items:center;gap:10px;min-height:44px;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.company-link>span{color:var(--accent);font-size:.6em;line-height:1}.project-screenshot{background:var(--paper);justify-content:center;padding:0}.project-screenshot>img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.project-screenshot .project-arrow{background:var(--paper);color:var(--ink);border:1px solid var(--ink);padding:3px 10px}.project-monogram{color:#151515;background:#b9addf}.project-monogram.tone-1{background:#f36b42}.project-monogram.tone-2{background:#e9e5dc}.project-initials{font:900 clamp(70px,8vw,130px)/1 var(--heading);letter-spacing:-8px;justify-content:center;align-items:center;display:flex}.project-initials>.star-icon{color:#151515;letter-spacing:0;margin-left:12px;font-size:35px}:is(.dark .dark\:border-white){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}:is(.dark .dark\:border-opacity-\[\.12\]){--tw-border-opacity:.12}:is(.dark .dark\:bg-white){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .dark\:bg-opacity-\[\.87\]){--tw-bg-opacity:.87}:is(.dark .dark\:text-\[\#FFFFFF\]),:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-opacity-\[\.87\]){--tw-text-opacity:.87}@media (max-width:281px){.xs\:flex-col{flex-direction:column}}@media (min-width:640px){.sm\:visible{visibility:visible}}@media (min-width:768px){.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:inline{display:inline}.md\:w-2\/4{width:50%}.md\:w-max{width:max-content}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.md\:border-l{border-left-width:1px}.md\:border-\[\#8C8C8C\]{--tw-border-opacity:1;border-color:rgb(140 140 140/var(--tw-border-opacity))}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:w-\[700px\]{width:700px}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:gap-\[200px\]{gap:200px}.lg\:pt-\[8px\]{padding-top:8px}}@media (min-width:1280px){.xl\:w-\[245px\]{width:245px}.xl\:pb-\[0px\]{padding-bottom:0}}
