:root{--ink:#080b11;--paper:#f5f7fc;--accent:#75adff;--muted:#aaa;--line:#353535;--font:'Poppins',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font);font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #84b7ff;outline-offset:6px}::selection{background:var(--accent);color:var(--ink)}.wrap{width:min(1240px,calc(100% - 112px));margin:auto}.header{height:100px;max-width:1440px;padding:0 56px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:37px;font-weight:800;letter-spacing:-2px;line-height:1}.wordmark span{color:var(--accent)}nav{display:flex;gap:32px;align-items:center;font-size:14px}nav>a{transition:color .2s}nav>a:hover{color:var(--accent)}.nav-contact{border:1px solid #666;border-radius:6px;padding:12px 18px;margin-left:16px}.nav-contact span{margin-left:18px}.menu-button{display:none}.skip{position:fixed;left:16px;top:-100px;z-index:20;background:var(--accent);color:var(--ink);padding:12px}.skip:focus{top:12px}.hero{padding-top:52px}.hero-top{display:flex;justify-content:space-between;align-items:center}.eyebrow,.section-label{font-size:13px;font-weight:500;letter-spacing:1.65px;margin:0 0 22px}.availability{font-size:13px;color:#c4c4c4;margin:0 0 22px;display:flex;align-items:center;gap:10px}.availability span{width:7px;height:7px;background:var(--accent);border-radius:50%}.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:9%;padding:26px 0 54px}.hero h1{font-size:clamp(70px,8.5vw,126px);font-weight:600;line-height:1.12;letter-spacing:-7px;margin:0}.hero h1>span{color:var(--accent)}.hero-intro{max-width:390px;padding-top:3px}.asterisk{color:var(--accent);font-size:65px;line-height:1;margin:0 0 24px}.role{font-size:23px;line-height:1.5;font-weight:500;margin:0 0 20px}.muted{color:#b4b4b4;font-size:15px;margin:0 0 28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;padding:16px 23px;border-radius:5px;font-size:14px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:#3986ff}.button span{font-size:23px;line-height:1}.primary{background:var(--accent);color:var(--ink)}.text-link{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:500;margin-top:24px;max-width:340px}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.hero-bottom{padding:24px 0;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:11px;letter-spacing:1.1px;color:#aaa}.discipline-strip{padding:20px 30px;background:var(--accent);color:var(--ink);display:flex;justify-content:center;align-items:center;gap:30px;font-size:13px;font-weight:600;letter-spacing:1px}.discipline-strip i{font-style:normal;font-size:24px}.section{padding-top:112px;padding-bottom:112px}h2{font-size:clamp(34px,4vw,52px);font-weight:500;line-height:1.2;letter-spacing:-2px;margin:0 0 32px}h3{font-weight:500}p{margin:0 0 20px}.about{display:grid;grid-template-columns:1fr 2fr;gap:10%;background:var(--ink)}.section-label{color:var(--accent);padding-top:8px}.about-copy{max-width:740px;color:#b4b4b4}.about-copy p:first-child{color:var(--paper);font-size:19px;line-height:1.75}.about-facts{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:26px;margin-top:35px}.about-facts span{font-size:11px;color:#aaa;letter-spacing:1.2px}.about-facts strong{display:block;font-size:14px;font-weight:500;margin:8px 0}.about-facts p{font-size:13px;color:#aaa;margin:0}.expertise,#projects{background:var(--paper);color:var(--ink)}#projects{width:100%;padding-left:max(56px,calc((100% - 1240px)/2));padding-right:max(56px,calc((100% - 1240px)/2));padding-top:25px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-heading h2{margin:0}.section-description{font-size:14px;color:#6b6b6b;max-width:345px;margin:0;line-height:1.8}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}.skill-card{padding:33px 32px 35px;border-right:1px solid #ccc}.skill-card:first-child{padding-left:0}.skill-card:last-child{border:0;padding-right:0}.skill-number{font-size:13px;color:#717171}.skill-card h3{font-size:27px;line-height:1.4;letter-spacing:-.7px;margin:30px 0 18px}.skill-card p{font-size:15px;color:#686868}.skill-card ul{list-style:none;margin:26px 0 0;padding:0;font-size:13px}.skill-card li{padding:8px 0;border-top:1px solid #dededb}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 34px}.project-cover{aspect-ratio:1.55;display:flex;flex-direction:column;justify-content:space-between;padding:30px;border-radius:8px;overflow:hidden;min-height:270px}.cover-category,.cover-footer{font-size:11px;font-weight:500;letter-spacing:1.5px}.cover-footer{display:flex;justify-content:space-between;align-items:center}.project-cover p{font-size:13px;margin:9px 0 0}.rec{background:#dde7f2;color:#142848}.project-monogram{font-size:clamp(44px,4.3vw,66px);font-weight:700;letter-spacing:-3px;line-height:1.2}.rec .project-monogram span{color:#4475ad}.ilarry{background:#e7e5e2;color:#171717}.ilarry .project-monogram{font-size:clamp(35px,3.8vw,59px)}.ilarry .project-monogram span{color:#c51e29}.cute{background:#f0dfed;color:#56234d}.collectibles{font-size:clamp(38px,4vw,60px);line-height:1.05;letter-spacing:-2px;font-weight:500}.collectibles em{font-family:Georgia,serif;font-weight:400}.behance{background:#3054ec;color:#fff;transition:background .2s}.behance:hover{background:#2143d7}.behance-mark{font-size:83px;font-weight:700;line-height:1.1;letter-spacing:-5px}.project-meta{display:flex;justify-content:space-between;margin:23px 0 8px;font-size:11px;letter-spacing:1px;color:#737373}.project h3{font-size:24px;letter-spacing:-.6px;margin:0 0 9px}.project>p{color:#686868;font-size:15px;line-height:1.8;margin-bottom:18px}.project summary,.project-external{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #c7c7c7;padding:13px 0;font-size:14px;font-weight:500;cursor:pointer;list-style:none}.project summary::-webkit-details-marker{display:none}.project summary>span{font-size:22px;font-weight:400;transition:transform .2s}.project details[open] summary>span{transform:rotate(45deg)}.project-details{padding:24px;background:#efefec;font-size:14px;line-height:1.8}.project-details h4{font-weight:600;margin:0 0 8px}.project-details p{color:#565656;margin:0 0 18px}.project-details p:last-child{margin:0}.project-details a{font-size:14px}.building .eyebrow{color:var(--accent)}.building .section-description{color:#aaa}.building-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.build-card{border:1px solid #454545;padding:32px;border-radius:8px;background:#1b1b1b}.build-top{display:flex;align-items:center;justify-content:space-between;color:#969696;font-size:12px;letter-spacing:1px}.status{border:1px solid #5c6d39;padding:5px 10px;border-radius:4px;color:var(--accent);font-size:11px}.build-card h3{font-size:38px;letter-spacing:-1.5px;display:flex;justify-content:space-between;align-items:center;margin:38px 0 10px}.build-card h3>span{color:#6b6b6b;font-size:25px}.build-subtitle{color:#eee!important;font-size:17px!important}.build-card>p{color:#aaa;font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.tags span{font-size:11px;border:1px solid #454545;padding:5px 10px;border-radius:20px;color:#bdbdbd}.teaching{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;gap:13%;align-items:center}.teaching-stat{color:var(--ink);background:var(--accent);padding:36px 40px;border-radius:8px;min-height:390px}.teaching-stat>.eyebrow{font-size:11px}.teaching-stat strong{font-size:clamp(80px,10vw,150px);letter-spacing:-9px;display:block;line-height:1.3;font-weight:500}.teaching-stat strong>span{font-size:65%;vertical-align:top}.teaching-stat p{font-size:20px;line-height:1.5;letter-spacing:-.5px}.year{display:block;text-align:right;border-top:1px solid #a1c438;padding-top:13px;font-size:13px}.teaching-copy>.eyebrow{color:var(--accent)}.teaching-copy p:not(.eyebrow){color:#b4b4b4}.teaching-caption{display:block;font-size:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:25px;color:#d5d5d5}.contact{background:#202020;padding-bottom:0}.contact>.wrap>.eyebrow{color:var(--accent)}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12%;align-items:center;padding-bottom:70px}.contact h2{font-size:clamp(50px,6vw,85px);line-height:1.12;letter-spacing:-4px;margin:0}.contact h2 span{color:var(--accent)}.contact-copy>p{color:#bcbcbc}.contact-availability{font-size:14px;color:#e5e5e5!important;margin:28px 0}footer{border-top:1px solid #494949;display:flex;align-items:center;justify-content:space-between;padding:29px 0;font-size:12px;color:#aaa}footer .wordmark{color:var(--paper);font-size:30px}footer a:last-child{font-size:12px} @media(min-width:1600px){.header{padding:0 100px}.hero h1{font-size:136px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.header{padding:0 32px}nav{gap:20px}.hero-grid{gap:6%;grid-template-columns:1.2fr 1fr}.hero h1{font-size:86px;letter-spacing:-5px}.role{font-size:20px}.discipline-strip{gap:16px;font-size:11px}.hero-bottom{font-size:9px}.about{gap:6%;grid-template-columns:1fr 2.3fr}.section{padding-top:85px;padding-bottom:85px}#projects{padding-left:32px;padding-right:32px}.skill-card{padding:25px 24px}.skill-card h3{font-size:23px}.project-cover{padding:24px;min-height:240px}.teaching{gap:7%}.teaching-stat{padding:28px;min-height:340px}.teaching-stat strong{font-size:110px}.contact{padding-bottom:0}.contact-grid{gap:8%}}@media(max-width:760px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 40px)}.header{height:80px;padding:0 20px;position:relative}.wordmark{font-size:32px}.menu-button{display:flex;gap:12px;align-items:center;color:var(--paper);background:transparent;border:1px solid #555;padding:7px 12px;border-radius:4px;font-size:14px}.menu-button span{font-size:18px}.header nav{display:none;position:absolute;top:79px;left:0;right:0;z-index:10;background:#1d1d1d;padding:24px;align-items:stretch;flex-direction:column;gap:0;border-bottom:1px solid #555;box-shadow:0 14px 20px #0003}.header nav.is-open{display:flex}nav>a{padding:13px 4px}.nav-contact{margin:12px 0 0;padding:12px!important}.hero{padding-top:30px}.hero-top{display:block}.hero-top .eyebrow{font-size:11px;margin-bottom:12px}.availability{font-size:11px}.hero-grid{grid-template-columns:1fr;gap:34px;padding-top:10px;padding-bottom:38px}.hero h1{font-size:clamp(74px,16vw,110px);letter-spacing:-4px;line-height:1.08}.hero-intro{max-width:none;padding-top:0;position:relative}.asterisk{position:absolute;right:10px;top:6px;font-size:46px}.role{font-size:20px;padding-right:70px}.muted{max-width:470px;font-size:15px}.hero-bottom{font-size:10px;flex-wrap:wrap;gap:10px}.hero-bottom>span:nth-child(2){display:none}.discipline-strip{flex-wrap:wrap;padding:16px 18px;column-gap:14px;row-gap:8px;font-size:10px;letter-spacing:.7px}.discipline-strip i{font-size:16px}.section{padding-top:64px;padding-bottom:64px}.about{grid-template-columns:1fr;gap:10px}.section-label{font-size:11px;margin-bottom:12px}h2{font-size:35px;letter-spacing:-1.4px}.about-copy p:first-child{font-size:17px}.about-copy p{font-size:15px}.about-facts{grid-template-columns:1fr;gap:24px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{margin-bottom:22px}.section-description{font-size:14px}.eyebrow{font-size:11px}.skills-grid{grid-template-columns:1fr}.skill-card,.skill-card:first-child,.skill-card:last-child{padding:28px 0;border:0}.skill-card+.skill-card{border-top:1px solid #ccc}.skill-card h3{font-size:26px;margin-top:16px}.skill-card h3 br{display:none}.skill-card ul{margin-top:18px}.projects-grid{grid-template-columns:1fr;gap:42px}#projects{padding-left:20px;padding-right:20px;padding-top:0}.project-cover{aspect-ratio:1.5;min-height:250px;padding:25px}.project-monogram{font-size:65px}.ilarry .project-monogram{font-size:49px}.collectibles{font-size:52px}.project-meta{margin-top:19px}.project h3{font-size:23px}.building-grid{grid-template-columns:1fr;gap:18px}.build-card{padding:24px}.build-card h3{font-size:33px;margin-top:28px}.teaching{grid-template-columns:1fr;gap:40px}.teaching-stat{min-height:0;padding:28px}.teaching-stat strong{font-size:118px;letter-spacing:-6px}.teaching-stat p{font-size:19px}.teaching-copy h2{font-size:34px}.contact{padding-bottom:0}.contact-grid{grid-template-columns:1fr;gap:35px;padding-bottom:50px}.contact h2{font-size:59px;letter-spacing:-3px}.contact-copy p{font-size:15px}footer{flex-wrap:wrap;gap:22px}footer>span{font-size:11px}.cover-category,.cover-footer{font-size:10px}.button{min-height:52px}.text-link{font-size:12px}.teaching-caption{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media print{body,.contact,.expertise,#projects{background:white;color:black}.header,.hero,.discipline-strip,.button,.menu-button,.contact footer,.asterisk{display:none}.section{padding:30px 0}.wrap{width:100%}.about-copy,.about-copy p:first-child,.build-card>p,.teaching-copy p:not(.eyebrow),.contact-copy p{color:#222}.project-cover{min-height:150px}.build-card{break-inside:avoid}.projects-grid{gap:25px}.project{break-inside:avoid}.contact-grid{display:block}.contact h2{font-size:30px}}

/* Black and blue palette, project photography, and motion. */
:root{--line:#263245;--muted:#aebbd0;--blue:#2578ef;--surface:#0e1521}
body{background:#080b11}.header{border-color:var(--line)}.primary{background:var(--blue);color:#fff}.button:hover{background:#3986ff;color:#fff}.hero-specialty{font-size:13px;font-weight:500;letter-spacing:.3px;color:var(--accent);margin:-10px 0 18px}.hero .muted{color:#aebbd0}.discipline-strip{background:#125cca;color:#fff;font-size:12px;gap:23px}.asterisk{transform-origin:center;animation:mark-turn 1.5s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation:hero-enter .8s cubic-bezier(.2,.7,.2,1) both}.hero-intro{animation:hero-enter 1s .12s cubic-bezier(.2,.7,.2,1) both}.hero-top{animation:hero-enter .7s both}.hero-bottom{color:#a8b6cc}.expertise,#projects{background:var(--surface);color:var(--paper)}.expertise .eyebrow,#projects .eyebrow{color:var(--accent)}.section-description{color:#a4b2c7}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;border:0}.skill-card,.skill-card:first-child,.skill-card:last-child{padding:30px;border:1px solid #27354c;border-radius:9px;background:#111d2e;transition:transform .3s,border-color .3s,background .3s}.skill-card:hover{transform:translateY(-5px);border-color:#3f76c4;background:#14223a}.skill-number{color:#7eabec;font-size:13px}.skill-card h3{font-size:23px;line-height:1.4;margin:25px 0 15px;letter-spacing:-.65px}.skill-card p{color:#afbdd1;font-size:15px}.skill-card ul{font-size:13px;margin-top:22px;color:#d2ddee}.skill-card li{border-color:#2b3b52}.skill-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.3fr;column-gap:60px}.skill-card:last-child .skill-number{grid-column:1/-1}.skill-card:last-child h3{grid-column:1;margin-top:18px}.skill-card:last-child p{grid-column:1;margin-bottom:0}.skill-card:last-child ul{grid-column:2;grid-row:2/4;align-self:center;margin:0}.projects-grid{gap:55px 30px}.project{min-width:0}.website-preview{display:block;position:relative;border:1px solid #334760;border-radius:10px;overflow:hidden;background:#172337;isolation:isolate}.browser-bar{height:33px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 13px;font-size:10px;color:#b3c5df;background:#142033;letter-spacing:.3px}.browser-dots{font-size:17px;letter-spacing:3px;line-height:1;color:#5e86be}.browser-bar>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screenshot-window{aspect-ratio:1.5;overflow:hidden;background:#e9eef5}.screenshot-window img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.website-preview:hover img,.website-preview:focus-visible img{transform:scale(1.035)}.preview-cta{position:absolute;right:17px;bottom:17px;color:white;background:#125cca;border:1px solid #79aafa;border-radius:4px;font-size:12px;padding:8px 12px;box-shadow:0 4px 15px #0003;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}.website-preview:hover .preview-cta,.website-preview:focus-visible .preview-cta{opacity:1;transform:translateY(0)}.project-meta{color:#8196b4;font-size:11px}.project h3{font-size:24px;line-height:1.45}.project>p{color:#adbbcf}.project .project-scope{font-size:12px;color:#77a5e9;margin-top:-4px;margin-bottom:12px}.project summary,.project-external{border-color:#34425a;color:#e7effc;min-height:48px}.project-external:hover{color:var(--accent);border-color:var(--blue)}.project-details{background:#162238;color:#fff;border-radius:0 0 6px 6px}.project-details p{color:#bdcbe0}.rec{background:#132b4b;color:#e3edff}.rec .project-monogram span{color:#6da9ff}.behance{background:#145de3}.behance:hover{background:#2772f5}.build-card{background:#0c1421;border-color:#293c58;overflow:hidden}.build-top{color:#9fb1cc}.status{border-color:#3565a8;color:#8bb9ff;background:#122440}.build-card h3{margin:25px 0 10px}.build-card>p{color:#aebbd0}.product-mockup{margin:26px -32px 0;border-top:1px solid #243650;border-bottom:1px solid #243650;background:#070d18}.product-mockup img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}.product-mockup figcaption{font-size:10px;color:#9aabc2;padding:9px 17px;letter-spacing:.35px;background:#111d2e}.tags span{border-color:#344563;color:#b5c9e5}.teaching-stat{background:#125cca;color:#fff}.teaching-stat .year{border-color:#548beb}.teaching-copy p:not(.eyebrow){color:#aebbd0}.teaching-caption{border-color:#2b3b51;color:#c6d5ea}.contact{background:#0e1828}.contact-copy>p{color:#adbed4}.contact-phone{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:clamp(24px,3vw,34px);letter-spacing:-.9px;font-weight:500;color:#fff;border-bottom:1px solid #3c5273;padding:0 0 12px;margin:26px 0}.contact-phone>span{font-size:24px;color:var(--accent)}.contact-phone:hover{color:var(--accent)}.social-links{display:flex;flex-wrap:wrap;gap:23px;margin-top:27px;font-size:13px;color:#becfeb}.social-links a{padding:8px 0}.social-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}footer{border-color:#344863;color:#a7b9d2}.reveal-pending{opacity:0;transform:translateY(24px)}.reveal-pending.revealed{opacity:1;transform:translateY(0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
@keyframes hero-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes mark-turn{from{opacity:0;transform:rotate(-110deg) scale(.6)}to{opacity:1;transform:rotate(0) scale(1)}}
@media(max-width:1000px){.skills-grid{grid-template-columns:1fr 1fr}.skill-card,.skill-card:first-child,.skill-card:last-child{padding:25px}.skill-card h3{font-size:24px}.discipline-strip{gap:14px;font-size:10px}.project h3{font-size:22px}.product-mockup{margin-left:-32px;margin-right:-32px}}
@media(max-width:760px){.hero-specialty{font-size:12px;margin-top:-8px}.discipline-strip{column-gap:13px;row-gap:9px;font-size:10px}.header nav{background:#0d1829;border-color:#345079}.skills-grid{grid-template-columns:1fr;gap:15px}.skill-card,.skill-card:first-child,.skill-card:last-child{padding:24px;border:1px solid #27354c;display:block}.skill-card:last-child ul{margin-top:22px}.skill-card h3{font-size:24px;margin:15px 0 12px}.skills-grid .skill-card p{font-size:15px}.projects-grid{gap:40px}.project h3{font-size:23px}.browser-bar{font-size:10px;height:30px}.screenshot-window{aspect-ratio:1.45}.preview-cta{opacity:1;transform:none;font-size:10px;padding:6px 9px;right:10px;bottom:10px}.product-mockup{margin-left:-24px;margin-right:-24px}.product-mockup figcaption{font-size:10px}.contact-phone{font-size:29px}.social-links{gap:24px}.contact .button{font-size:13px;gap:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero h1,.hero-intro,.hero-top,.asterisk{animation:none}.reveal-pending{opacity:1;transform:none}.reveal-pending.revealed{transition:none}*,*:before,*:after{animation:none!important;transition:none!important}.website-preview:hover img,.website-preview:focus-visible img,.skill-card:hover,.button:hover{transform:none}}
.skill-card p,.skills-grid .skill-card p,.project>p,.build-card>p,.hero .muted{font-size:16px}.skill-card ul{font-size:14px}.project .project-scope{font-size:13px}.project-meta{font-size:12px}.tags span{font-size:12px}.product-mockup figcaption{font-size:12px;line-height:1.6}.contact .contact-availability{font-size:14px}
.website-cover{aspect-ratio:1.45;min-height:270px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;background:#112c52;color:#f5f8ff;transition:background .3s,border-color .3s}.website-cover:hover{background:#153866;border-color:#76acfa}.site-identity{display:flex;flex-direction:column;gap:16px}.site-identity strong{font-size:clamp(31px,3.5vw,53px);line-height:1.15;letter-spacing:-1.5px;font-weight:600}.site-identity>span{font-size:11px;letter-spacing:1.2px;line-height:1.8;color:#a7c9fa}.cover-rec{background:#103f84}.cover-idowu{background:#10243f}.cover-cute{background:#164fa1}.cover-adebolanle{background:#162e50}.cover-eksu{background:#124ba0}.website-cover .cover-footer{border-top:1px solid #7ca6e63b;padding-top:14px;color:#bcd7ff}.website-cover .cover-footer>span{font-size:24px;line-height:1;color:#fff}.website-cover .cover-category{color:#bdd5f6}@media(max-width:760px){.website-cover{padding:25px;min-height:250px}.site-identity strong{font-size:38px}.site-identity>span{font-size:10px}.website-cover .cover-category,.website-cover .cover-footer{font-size:11px}}

/* Device galleries and mobile interaction. */
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-actions .button{gap:24px}.secondary{background:transparent;color:#edf4ff;border:1px solid #476086}.button{min-height:54px;white-space:normal;line-height:1.4;text-align:left}.button:active,.carousel-controls button:active{transform:scale(.97)}.button span{flex:none}.hero-actions+.text-link{margin-top:22px}.carousel-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:24px 0 18px}.carousel-controls p{font-size:13px;color:#bacbe2;margin:0}.carousel-count{display:inline-block;color:var(--accent);margin-left:15px;font-variant-numeric:tabular-nums}.carousel-controls>div{display:flex;gap:9px}.carousel-controls button{width:48px;height:48px;display:grid;place-items:center;background:#16243a;color:#fff;border:1px solid #3d587d;border-radius:50%;font-size:23px;cursor:pointer;transition:background .2s,transform .2s,border-color .2s}.carousel-controls button:hover{background:#226ce0;border-color:#68a0f3}.carousel-controls button:disabled{opacity:.35;cursor:default;transform:none}.project-controls{display:none}.gmnet-showcase{border:1px solid #243650;border-radius:18px;background:#0d1828;padding:34px;overflow:hidden}.showcase-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:35px}.showcase-heading>div:first-child{max-width:600px}.showcase-heading h3,.sitetrack-showcase h3{font-size:38px;letter-spacing:-1.2px;line-height:1.2;margin:20px 0 14px}.showcase-heading p,.sitetrack-showcase p{font-size:16px;color:#adbed5;margin:0 0 18px}.showcase-heading .tags{margin-top:0;flex:none}.phone-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/3);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#397cd6 #142239;padding:15px 0 22px;touch-action:pan-x pan-y;outline-offset:-3px}.phone-slide{margin:0;scroll-snap-align:start;scroll-snap-stop:always;min-width:0;padding:16px 4px;background:radial-gradient(ellipse at 50% 40%,#15396580,transparent 68%);border-radius:14px}.phone-slide figcaption{display:flex;align-items:center;justify-content:center;gap:11px;color:#c1d2eb;font-size:13px;margin-top:14px}.phone-slide figcaption>span{font-size:12px;color:#6c9cd9}.iphone-device{position:relative;width:min(100%,270px);margin:auto;aspect-ratio:887/1774}.device-hardware{display:block;width:100%;height:auto;pointer-events:none;user-select:none}.iphone-screen{position:absolute;left:8.906%;top:3.89%;width:82.638%;height:92.052%;border-radius:17% / 7.65%;overflow:hidden;background:#13252f}.iphone-screen>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.iphone-screen:after{content:'';position:absolute;width:26%;height:2.6%;left:37%;top:1.3%;border-radius:50px;background:#000;pointer-events:none}.laptop-device{position:relative;width:100%;aspect-ratio:3/2}.laptop-screen{position:absolute;left:8.138%;top:11.621%;width:83.854%;height:72.168%;overflow:hidden;border-radius:2px;background:#f2f4f8}.laptop-screen>img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top}.rec-showcase{margin:0;border:1px solid #28456b;border-radius:10px;background:radial-gradient(ellipse at center,#153966,#07111e);padding:10px 6px 14px;overflow:hidden}.rec-showcase figcaption{font-size:12px;color:#a5bde1;text-align:center;margin:-14px 0 0;position:relative}.screenshot-note{margin:18px 0 0;color:#8fa8cd;font-size:12px}.sitetrack-showcase{margin-top:26px;border:1px solid #263f61;border-radius:18px;background:#0d1726;overflow:hidden;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:34px}.sitetrack-showcase>.product-mockup{margin:0;border:0}.sitetrack-showcase>div{padding:30px 30px 30px 0;min-width:0}.sitetrack-showcase .product-mockup img{object-fit:contain}.project-external,details summary{min-height:50px}.phone-track:focus-visible,#project-track:focus-visible{outline:2px solid #75adff;outline-offset:6px}
@media(max-width:1100px){.hero-actions{display:grid;grid-template-columns:1fr}.showcase-heading{display:block}.showcase-heading .tags{margin:15px 0 0}.phone-track{grid-auto-columns:calc((100% - 16px)/2)}.sitetrack-showcase{gap:20px}.sitetrack-showcase h3{font-size:32px}}
@media(max-width:760px){
 html{scroll-padding-top:90px}body{overflow-x:clip}.header{position:sticky;top:0;z-index:30;height:72px;background:#080b11f5;backdrop-filter:blur(15px);border-bottom:1px solid #1e3555}.header nav{top:71px;box-shadow:0 15px 30px #0006;padding:15px 20px 22px}.header nav.is-open{animation:menu-enter .24s ease both}.menu-button{min-height:44px;min-width:94px;justify-content:center;border-color:#3b5b87;background:#101d31;padding:8px 14px}.header nav>a{min-height:48px;padding:12px 8px;font-size:15px}.header nav .nav-contact{background:#176ae1;border-color:#3b8dff;border-radius:7px;margin-top:8px;padding:13px 15px!important}.hero{padding-top:24px}.hero-grid{gap:28px;padding-bottom:32px}.hero h1{font-size:clamp(66px,16vw,96px);letter-spacing:-3.6px;line-height:1.08}.hero .role{font-size:20px;padding-right:52px;margin-bottom:17px}.hero-intro .asterisk{font-size:38px;right:2px;top:3px}.hero-specialty{font-size:12px;line-height:1.65;margin-bottom:17px}.hero .muted{font-size:16px;line-height:1.75;margin-bottom:23px}.hero-actions{display:grid;grid-template-columns:1fr;gap:11px;width:100%}.hero-actions .button,.contact-copy .button{width:100%;min-height:56px;justify-content:space-between;padding:17px 20px;gap:12px;font-size:15px;border-radius:8px;font-weight:600}.hero .text-link{max-width:none;min-height:44px;font-size:13px;margin-top:12px}.hero-bottom{font-size:10px;padding:18px 0;gap:12px}.discipline-strip{font-size:10px;padding:15px 16px;row-gap:10px;column-gap:12px}.section{padding-top:60px;padding-bottom:60px}.section-heading h2{font-size:34px;letter-spacing:-1.2px}.section-description{font-size:15px;line-height:1.8}.skills-grid{gap:12px}.skill-card,.skill-card:first-child,.skill-card:last-child{padding:23px;border-radius:12px}.skill-card h3{font-size:23px}.skill-card p{margin-bottom:16px}.skill-card ul{font-size:14px;line-height:1.7}.project-controls{display:flex;margin:4px 0 16px}.carousel-controls p{font-size:12px}.carousel-count{margin-left:8px}.carousel-controls button{width:46px;height:46px;font-size:22px}#projects{padding-bottom:60px}.projects-grid{display:grid;grid-auto-flow:column;grid-auto-columns:calc(100% - 22px);grid-template-columns:none;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#3980e7 #17243a;padding:0 0 21px;align-items:start}.projects-grid>.project{scroll-snap-align:start;scroll-snap-stop:always;min-width:0;background:#101c2d;border:1px solid #273e5e;border-radius:12px;padding:12px 12px 15px;opacity:1!important;transform:none!important}.website-cover{min-height:225px;padding:22px;border-radius:8px;aspect-ratio:1.35}.site-identity strong{font-size:31px;letter-spacing:-1px;overflow-wrap:break-word}.site-identity>span{font-size:10px}.project h3{font-size:22px;line-height:1.45}.project-meta{font-size:10px;letter-spacing:.65px;gap:6px;margin-top:19px}.project>p{font-size:15px;line-height:1.75}.project .project-scope{font-size:12px}.project-external,details summary{border:1px solid #3b649c;background:#142a47;color:#d7e8ff;border-radius:7px;min-height:52px;padding:13px 14px;gap:12px;font-size:14px;margin-top:16px}.project-external:active,details summary:active{background:#1d4274}.project-cover{min-height:240px}.rec-showcase{padding:15px 0;border-radius:8px;min-height:245px;display:flex;flex-direction:column;justify-content:center}.rec-showcase figcaption{font-size:10px;margin-top:-6px}.gmnet-showcase{padding:22px 16px;border-radius:14px}.showcase-heading h3{font-size:34px;margin-top:18px}.showcase-heading p{font-size:15px;line-height:1.8}.showcase-heading .tags{margin-top:18px}.phone-track{grid-auto-columns:calc(100% - 24px);gap:12px;padding-top:4px;padding-bottom:18px}.phone-slide{padding:5px 2px 15px}.iphone-device{width:min(100%,254px)}.phone-slide figcaption{font-size:13px;margin-top:12px}.screenshot-note{font-size:12px;line-height:1.7;margin-top:15px}.sitetrack-showcase{grid-template-columns:1fr;gap:0;border-radius:14px}.sitetrack-showcase>div{padding:24px}.sitetrack-showcase h3{font-size:31px}.sitetrack-showcase p{font-size:15px;line-height:1.8}.sitetrack-showcase .product-mockup figcaption{font-size:10px}.contact h2{font-size:clamp(48px,13vw,63px);letter-spacing:-2.8px}.contact-phone{font-size:28px;min-height:52px}.social-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.social-links>a{border:1px solid #365681;border-radius:7px;min-height:48px;padding:12px 13px;text-align:center;font-size:14px}.social-links>a:last-child{grid-column:1/-1}.contact-grid{padding-bottom:36px}.contact-copy>p{font-size:16px}.teaching-stat{border-radius:14px}footer{gap:18px;font-size:12px}footer>a:last-child{min-height:44px;display:flex;align-items:center}
}
@media(max-width:359px){.wrap{width:calc(100% - 32px)}.header{padding:0 16px}.hero h1{font-size:64px}.hero-actions .button,.contact-copy .button{font-size:14px;padding:15px 17px}.project-controls p{font-size:11px}.carousel-controls{gap:8px}.carousel-controls button{width:43px;height:43px}.project-controls .carousel-count{margin-left:4px}.site-identity strong{font-size:28px}.website-cover{padding:18px;min-height:210px}.contact-phone{font-size:25px}.gmnet-showcase{padding-left:12px;padding-right:12px}.phone-track{grid-auto-columns:calc(100% - 14px)}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.phone-track,.projects-grid{scroll-behavior:auto}.button:active,.carousel-controls button:active{transform:none}.header nav.is-open{animation:none}}
.iphone-screen>img{object-fit:fill}.laptop-screen>img{object-fit:contain;object-position:center}

/* Consistent icons across iPhone, Android and desktop. */
.icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;flex-shrink:0;overflow:visible}.button .icon,.project-external .icon{width:22px;height:22px;vertical-align:middle}.nav-contact .icon,.social-links .icon{width:17px;height:17px}.asterisk{display:flex;justify-content:flex-start;align-items:center}.asterisk .icon{width:60px;height:60px}.discipline-strip i{display:inline-flex;align-items:center;justify-content:center}.discipline-strip .icon{width:19px;height:19px;stroke-width:1.5}.menu-button span{display:inline-flex}.menu-button .icon{width:21px;height:21px}.cover-footer>span,.button>span,.contact-phone>span{display:inline-flex;align-items:center;justify-content:center}.carousel-controls .icon{width:22px;height:22px}.hero-actions{grid-template-columns:1fr;max-width:340px}
/* White skill cards with readable dark text. */
.skills-grid .skill-card,.skills-grid .skill-card:first-child,.skills-grid .skill-card:last-child{background:#fff;color:#0d1d33;border:1px solid #d9e3f0;box-shadow:0 10px 30px #00000012}.skills-grid .skill-card:hover{background:#fff;border-color:#7faeed;box-shadow:0 14px 30px #00000022}.skills-grid .skill-card h3{color:#101f34}.skills-grid .skill-card p{color:#4b5b70}.skills-grid .skill-card ul{color:#263d5c}.skills-grid .skill-card li{border-color:#dce4ed}.skills-grid .skill-number{color:#1764c9}.skills-grid .skill-card.revealed{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s}
@media(max-width:760px){.hero-actions{max-width:none}.hero-grid{padding-bottom:45px}.asterisk .icon{width:36px;height:36px}.discipline-strip .icon{width:16px;height:16px}.hero-actions .button{animation:mobile-cta-in .75s .2s both}.hero h1{animation:hero-enter .8s both}.phone-slide .iphone-device{transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s;transform:scale(.96);opacity:.8}.phone-slide.slide-active .iphone-device{transform:scale(1);opacity:1}.projects-grid>.project{transition:border-color .35s,box-shadow .35s}.projects-grid>.project.slide-active{border-color:#649cec;box-shadow:0 7px 22px #00000028}.skills-grid .skill-card.reveal-pending{transform:translateY(30px)}.skills-grid .skill-card.revealed{transform:translateY(0)}}
@keyframes mobile-cta-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-actions .button,.hero h1{animation:none}.phone-slide .iphone-device,.phone-slide.slide-active .iphone-device{transform:none;opacity:1;transition:none}.skills-grid .skill-card.reveal-pending{transform:none;opacity:1}}
