body.street-portfolio{background:#152537}.street-portfolio .folio-nav{position:absolute;z-index:10;top:0;width:100%;max-width:none;padding:18px 5vw;background:linear-gradient(#0c17254d,transparent);color:#f7e5cc}.street-portfolio .folio-nav .brand{font-family:monospace;letter-spacing:.07em;font-weight:400}.street-portfolio .folio-nav nav a{color:#f7e5cc}.street-portfolio .street-hero{padding:0;max-width:none;margin:0;border:0;position:relative}.street-scene{position:relative;width:100%;aspect-ratio:1672/941;isolation:isolate;overflow:hidden}.street-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.street-heading{position:absolute;left:31%;top:13.4%;color:#f0ddbf;width:37%;text-shadow:2px 2px #152130;z-index:2}.street-heading h1{font:700 clamp(24px,3.2vw,58px)/1.08 monospace;letter-spacing:-.035em;margin:0 0 12px}.street-heading p{font:clamp(10px,1.15vw,20px)/1.4 monospace;margin:0;white-space:nowrap}.street-billboard{position:absolute;left:77.4%;top:13.4%;width:18.7%;height:16%;color:#f7e3c4;text-decoration:none;display:flex;flex-direction:column;gap:3px;font:600 clamp(14px,1.8vw,30px)/1.15 monospace;text-shadow:2px 2px #182d45;z-index:3}.street-billboard strong{font:inherit}.street-billboard .billboard-open{font:400 clamp(9px,.85vw,14px)/1.4 monospace;margin-top:10px}.street-billboard:hover{text-decoration:underline;color:#fff2dc}.taxi-lane{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.street-taxi{position:absolute;width:64%;left:18%;bottom:7%;will-change:transform;pointer-events:none;container-type:inline-size}.street-taxi>img{display:block;width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 12px 7px #07132155)}.taxi-caption{position:absolute;left:35.7%;top:12.5%;width:25.6%;height:13%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#16253b;text-decoration:none;text-align:center;pointer-events:auto;gap:3px;font-family:monospace;padding:0 3px}.taxi-caption strong{font:bold clamp(11px,2.4cqw,32px)/1.1 monospace;max-width:100%}.taxi-caption span{font:400 clamp(8px,1.45cqw,17px)/1.1 monospace;color:#f3e6d1;background:#25394f;padding:3px 8px;white-space:nowrap}.taxi-caption:hover span{background:#405973}.taxi-caption:focus-visible{outline:3px solid #fff;outline-offset:5px}.cafe-window{position:absolute;left:4%;top:25%;width:21%;height:34%;z-index:3}.writing-window{position:absolute;left:75.5%;top:45%;width:15%;height:16%;z-index:3}.cafe-window:focus-visible,.writing-window:focus-visible{outline:3px solid #f7e5c7}.street-controls{position:absolute;bottom:1.5%;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;gap:15px;font:12px/1.4 monospace;color:#eee2cf;z-index:5}.street-controls a{text-decoration:none;min-height:44px;display:flex;align-items:center}.street-controls>div{display:flex;align-items:center;gap:14px}.street-controls button{font:12px monospace;min-height:44px;padding:9px 14px;background:#1b3043e6;border:1px solid #b4bec7;color:#f4e7d2;border-radius:4px}.street-controls button:hover{background:#385169}.street-portfolio .professional-work{border-top:1px solid #365066}.street-portfolio #what-i-do{scroll-margin-top:20px}
@media(min-width:1700px){.street-portfolio .folio-nav{padding-top:24px}}@media(max-width:700px){.street-portfolio .folio-nav{position:relative;padding:10px 5vw;background:#152537}.street-portfolio .folio-nav .brand{font-size:12px}.street-portfolio .folio-nav nav{gap:12px}.street-portfolio .folio-nav nav a{font-size:11px;min-height:44px;display:flex;align-items:center}.street-scene{aspect-ratio:auto;height:630px;width:100%}.street-backdrop{width:auto;min-width:1120px;height:630px;max-width:none;left:50%;transform:translateX(-48%);object-fit:fill}.street-heading{left:7%;top:9%;width:85%;padding:12px 14px;background:#182a3be8;border:1px solid #8193a644}.street-heading h1{font-size:clamp(30px,8.3vw,42px);line-height:1.03;margin-bottom:8px}.street-heading h1 br{display:none}.street-heading p{font-size:11px;white-space:normal}.street-billboard{left:auto;right:6%;top:36%;width:42%;height:auto;padding:9px;background:#172c43f2;border:1px solid #a1b2bc;font-size:17px}.street-billboard .billboard-open{font-size:10px;margin-top:5px}.street-taxi{width:560px;left:50%;margin-left:-280px;bottom:10%;max-width:none}.taxi-caption{font-size:14px}.taxi-caption strong{font-size:15px}.taxi-caption span{font-size:9px}.street-controls{position:relative;left:auto;right:auto;bottom:auto;padding:8px 5vw 15px;background:#152537;flex-wrap:wrap;font-size:11px}.street-controls>div{margin-left:auto}.street-controls button{font-size:11px}.cafe-window,.writing-window{display:none}}
@media(prefers-reduced-motion:reduce){.street-taxi{will-change:auto}}

.taxi-caption strong{font-size:clamp(11px,2cqw,26px);line-height:1.02}.taxi-caption span{font-size:clamp(8px,1.25cqw,15px);padding:2px 5px}.taxi-caption{gap:2px}

/* Readable rooftop project summaries. */
.taxi-caption{left:33.3%;top:3.5%;width:30%;height:23%;padding:6px 22px 6px 8px;background:var(--sign-color,#e4d4b7);border:3px solid #233449;border-radius:4px;box-shadow:0 2px 0 #ad9272;gap:4px;justify-content:center}
.taxi-caption strong{font-size:clamp(12px,2.8cqw,28px);line-height:1.04}
.taxi-caption span{font-size:clamp(9px,1.65cqw,17px);line-height:1.15;white-space:normal;background:none;color:#24374c;padding:0;max-width:100%}
.taxi-caption::after{content:'↗';position:absolute;right:6px;top:50%;transform:translateY(-50%);font:700 clamp(14px,2.8cqw,26px) monospace}
.taxi-caption:hover{outline:2px solid #fff0d4;outline-offset:2px}.taxi-caption:hover span{background:none}
.street-heading{top:7.5%;width:39%}.street-heading h1{font-size:clamp(26px,3.7vw,64px)}
@media(max-width:700px){.street-heading{top:7%;width:85%}.street-heading h1{font-size:clamp(30px,8.3vw,42px)}.taxi-caption{padding:5px 20px 5px 7px}.taxi-caption strong{font-size:16px}.taxi-caption span{font-size:10px}}

.street-taxi{pointer-events:auto}.street-taxi>img{pointer-events:none}

/* A clear navigation rail, generous signs, and a coherent portfolio surface. */
.street-portfolio .folio-nav{position:relative;min-height:76px;padding:12px 4vw;background:#101b27;border-bottom:1px solid #687886;gap:20px}
.street-portfolio .folio-nav nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.street-portfolio .folio-nav nav a{padding:0 15px;min-height:44px;border:1px solid #556778;background:#1b2b3a;border-radius:3px;color:#f3e6ce;font:13px monospace;text-decoration:none}
.street-portfolio .folio-nav nav a:hover{background:#30485b;border-color:#d7c7ac;color:#fff}
.street-heading{top:7%;left:31%;width:39%}.street-heading h1{font-size:clamp(22px,3.2vw,58px);line-height:1.16;letter-spacing:-.055em;overflow-wrap:normal;text-wrap:balance}
.taxi-caption{left:30.5%;width:35.5%;top:auto;bottom:74%;height:auto;min-height:80px;padding:9px 24px 9px 9px;background:#eddfc7;border:3px solid #273b4b;border-bottom:5px solid var(--sign-color,#c4d3dc);box-shadow:0 2px 0 #746e61;gap:5px;overflow:visible;box-sizing:border-box}
.taxi-caption strong{font-size:clamp(14px,2.5cqw,26px);line-height:1.15;overflow-wrap:normal}
.taxi-caption span{font-size:clamp(10px,1.6cqw,16px);line-height:1.3;overflow-wrap:normal;color:#273b4b}
.street-portfolio{background:#101b27}.street-portfolio .professional-work{background:#101b27}.street-portfolio h2,.street-portfolio .desk-item h3,.street-portfolio .work-areas h3,.street-portfolio .writing-shelf h3{font-family:monospace;font-style:normal;letter-spacing:-.04em;line-height:1.2}.street-portfolio h2{font-size:clamp(30px,4vw,56px)}.street-portfolio h2 em{font-style:normal}.street-portfolio .professional-heading{display:block;margin-bottom:35px}.street-portfolio .professional-heading>p{max-width:580px}.street-portfolio .work-areas{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 60px}.street-portfolio .work-areas h3{font-size:23px}.street-portfolio .project-library{background:#142330}.street-portfolio .desk-grid{gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}.street-portfolio .desk-item{min-width:0;margin:0;border:0;border-bottom:1px solid #566a79;padding:0 0 25px;background:none;min-height:240px}.street-portfolio .desk-item h3{font-size:26px;margin:18px 0 10px}.street-portfolio .desk-item p{font-size:14px;max-width:none;color:#c4d0d8}.street-portfolio .desk-item>span{color:#c7d1d8}.street-portfolio .desk-item:hover h3{text-decoration:underline;text-underline-offset:5px}.project-photo,.project-art{display:block;width:100%;height:205px;margin-bottom:24px;object-fit:cover;border:1px solid #586775}.project-photo{object-position:50% 25%}.project-art{background-image:url('/media/street-scene-v2.png');image-rendering:pixelated;background-repeat:no-repeat}.record-art{background-size:340%;background-position:46% 58%}.night-art{background-size:330%;background-position:99% 10%}.street-portfolio .billboard-story{background:#101b27}.street-portfolio .writing-shelf,.street-portfolio .folio-contact{background:#142330}.street-portfolio .folio-contact>a{font:clamp(36px,6vw,70px)/1.2 monospace}.street-portfolio .desk-item[hidden]{display:none}
@media(max-width:900px){.street-portfolio .folio-nav .cafe-return{display:flex}.street-portfolio .folio-nav{flex-wrap:wrap}.street-portfolio .desk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.street-portfolio .folio-nav{padding:12px 5vw;gap:12px}.street-portfolio .folio-nav nav{gap:6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.street-portfolio .folio-nav nav a{font-size:12px;justify-content:center;padding:0 8px}.street-heading{left:7%;width:86%;top:6%;padding:14px}.street-heading h1{font-size:clamp(25px,7.5vw,38px);letter-spacing:-.05em}.taxi-caption{min-height:83px;padding:8px 22px 8px 8px}.taxi-caption strong{font-size:16px}.taxi-caption span{font-size:11px}.street-portfolio .work-areas{grid-template-columns:1fr}.street-portfolio .desk-grid{grid-template-columns:1fr}.street-portfolio .desk-item{min-height:0}.project-photo,.project-art{height:235px}.street-portfolio .library-heading h2{font-size:34px}}

.street-portfolio .desk-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.street-portfolio .campaign-feature{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;gap:12px 35px;align-content:center;padding-bottom:34px}.campaign-feature .project-photo{grid-column:1;grid-row:1/5;height:320px;margin:0;object-fit:contain;background:#0d1721}.street-portfolio .campaign-feature>span,.street-portfolio .campaign-feature h3,.street-portfolio .campaign-feature p{grid-column:2;align-self:center;margin:0}.street-portfolio .campaign-feature h3{font-size:32px}.street-portfolio .campaign-feature .desk-action{margin:0}.street-portfolio .desk-item{min-height:220px}
@media(max-width:700px){.street-portfolio .desk-grid{grid-template-columns:1fr}.street-portfolio .campaign-feature{display:flex;gap:14px}.campaign-feature .project-photo{width:100%;height:300px}.street-portfolio .campaign-feature h3{font-size:27px}}

.street-billboard.poster-billboard{left:77.2%;top:11.6%;width:19.6%;height:20.1%;display:block;overflow:hidden;padding:0;gap:0;transform:rotate(3deg);border:2px solid #111c28;background:#111c28;box-shadow:inset 0 0 0 1px #b8a47b}.poster-billboard img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%}.poster-billboard:hover{outline:2px solid #e9d6ad;outline-offset:2px}
@media(max-width:700px){.street-billboard.poster-billboard{left:auto;right:6%;top:36%;width:42%;height:110px;transform:none;border:3px solid #273b4b}}
.poster-billboard img{position:absolute;max-width:none;width:150%;height:auto;left:-28%;top:-60%;object-fit:initial}

@font-face{font-family:StreetPixel;src:url('/fonts/Silkscreen-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
.street-portfolio .folio-nav{background:#223446;border-color:#536375}.street-portfolio .folio-nav .brand{font-family:StreetPixel,monospace;font-size:16px;letter-spacing:-.04em}.street-portfolio .folio-nav nav a{background:#273b4c;border-color:#617184;color:#e6d3b6}
.street-heading{left:31.5%;top:10%;width:40%}.street-heading h1{font-family:StreetPixel,monospace;font-weight:400;letter-spacing:-.055em;font-size:clamp(22px,2.65vw,47px);line-height:1.45;color:#e4ceb0;text-shadow:2px 2px #263446}
.street-billboard.poster-billboard{left:78.5%;top:15.3%;width:20.1%;height:20.4%;transform:rotate(3deg)}
.taxi-caption{left:31.5%;top:17%;bottom:auto;width:31.5%;height:16.5%;min-height:0;padding:2px 17px 2px 5px;background:none;border:0;border-radius:0;box-shadow:none;gap:3px}
.taxi-caption strong{font-family:StreetPixel,monospace;font-weight:400;font-size:clamp(10px,1.9cqw,22px);line-height:1.05;letter-spacing:-.07em}
.taxi-caption span{font:400 clamp(9px,1.5cqw,15px)/1.16 monospace;letter-spacing:-.04em}
.taxi-caption::after{right:3px;font-size:clamp(12px,2cqw,22px)}
.street-portfolio .professional-work,.street-portfolio{background:#223446}.street-portfolio .project-library,.street-portfolio .writing-shelf,.street-portfolio .folio-contact{background:#293b4b}
@media(max-width:700px){.street-heading{left:7%;width:86%;top:6%;background:#263a4be8}.street-heading h1{font-size:clamp(21px,6vw,32px);line-height:1.4}.street-billboard.poster-billboard{left:auto;right:6%;top:36%;width:42%;height:110px;transform:none}.taxi-caption{padding:1px 15px 1px 4px;gap:2px}.taxi-caption strong{font-size:11px}.taxi-caption span{font-size:9px}.street-portfolio .folio-nav .brand{font-size:14px}}

/* Street posters and individual taxi advertising layouts. */
.street-heading{left:31.8%;top:10%;width:25%}.street-heading h1{font-size:clamp(19px,2.05vw,36px);line-height:1.32;letter-spacing:-.07em;text-wrap:initial;margin:0}
.street-billboard.poster-billboard{background:#e5d3ad;color:#192b3b;display:grid;grid-template-columns:40% 60%;padding:5px;gap:0}
.campaign-poster-photo{height:100%;min-width:0;background:url('/media/times-square.jpg') 43% 20%/340% auto no-repeat;border-right:2px solid #24394b}
.campaign-poster-copy{padding:5px 7px;display:flex;flex-direction:column;justify-content:space-between;text-shadow:none;text-align:left;min-width:0}.campaign-poster-copy>span{font:700 clamp(5px,.58vw,11px)/1.2 monospace;letter-spacing:.02em}.campaign-poster-copy strong{font:700 clamp(10px,1.05vw,20px)/1.05 monospace;letter-spacing:-.04em}.campaign-poster-copy small{font:700 clamp(6px,.62vw,12px)/1.1 monospace}
.taxi-caption{left:26%;width:43%;top:13%;height:21%;padding:5px 22px 5px 12px;background:#ded2b6;border:3px solid #293746;clip-path:polygon(4% 0,96% 0,100% 100%,0 100%);gap:3px;align-items:flex-start;text-align:left;color:#172b3b;box-shadow:none}
.taxi-caption .ad-kicker{font:700 clamp(6px,.95cqw,12px)/1 monospace;letter-spacing:.08em}.taxi-caption strong{font:400 clamp(11px,2.2cqw,25px)/1.1 StreetPixel,monospace;letter-spacing:-.07em}.taxi-caption .ad-description{font:400 clamp(9px,1.4cqw,16px)/1.15 monospace;color:inherit;letter-spacing:-.045em;max-width:100%}.taxi-caption::after{font:700 clamp(14px,2.8cqw,27px)/1 monospace;right:8px;top:25%;color:inherit}.ad-visual{display:none}
.taxi-caption[data-ad='0']{background:#d6ccaa;border-color:#2b3e4b;border-left:14px solid #a95f3f}
.taxi-caption[data-ad='1']{background:#284555;color:#f3dfb8;padding-left:34%;width:46%;left:24.5%}.taxi-caption[data-ad='1'] .ad-visual{display:block;position:absolute;left:4%;top:8%;bottom:8%;width:27%;background:url('/media/times-square.jpg') 45% 20%/330% auto no-repeat;border:1px solid #d9c69e}
.taxi-caption[data-ad='2']{background:#c8d4d5;color:#1d3848;border-right:12px solid #3f6570}.taxi-caption[data-ad='2'] .ad-visual,.taxi-caption[data-ad='3'] .ad-visual{display:block;position:absolute;right:8%;bottom:8%;width:13%;height:22%;background:repeating-linear-gradient(90deg,currentColor 0 3px,transparent 3px 6px);opacity:.35}
.taxi-caption[data-ad='3']{background:#c59c4b;color:#212f3b;border-color:#344854}
.taxi-caption[data-ad='4']{background:#c7b9b0;color:#342d38;border-bottom:9px solid #735e68;width:39%;left:28%}
.taxi-caption[data-ad='5']{background:#486e70;color:#f1dfb9;border-color:#243d4a}
.taxi-caption[data-ad='6']{background:#d1c9ba;color:#273849;border-left:14px solid #687e8a}
.taxi-caption[data-ad='7']{background:#324c62;color:#ead4b0;border-color:#bba786}
.taxi-caption[data-ad='8']{background:#b86745;color:#fff0d2;border-color:#4a3830;width:47%;left:24%;border-bottom:7px solid #e1c79d}
.taxi-caption[data-ad='9']{background:#ddd3b9;color:#283747;border-top:7px double #283747}
@media(max-width:700px){.street-heading{left:7%;top:5%;width:86%}.street-heading h1{font-size:clamp(20px,5.5vw,28px);line-height:1.2}.campaign-poster-copy strong{font-size:12px}.campaign-poster-copy>span{font-size:6px}.campaign-poster-copy small{font-size:7px}.taxi-caption{height:23%;top:11%;padding:5px 18px 4px 10px;gap:3px}.taxi-caption strong{font-size:12px}.taxi-caption .ad-description{font-size:9px}.taxi-caption .ad-kicker{font-size:6px}}
.taxi-caption[data-ad='1']{padding-left:14cqw}
