/* Imagine Monkey Portfolio — isolated presentation. No fonts, trackers or remote assets. */
.imp-portfolio{--imp-ink:#142f49;--imp-blue:#0873d5;--imp-muted:#526d89;--imp-line:#c9def1;--imp-ice:#f0f7fe;--imp-radius:24px;--imp-rail:linear-gradient(90deg,#049de2 0%,#718cce 30%,#e86195 58%,#ff883c 100%);color:var(--imp-ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-variant-ligatures:none;line-height:1.7}
.imp-portfolio *,.imp-portfolio *::before,.imp-portfolio *::after{box-sizing:border-box}
.imp-portfolio :is(h1,h2,h3){font-family:Georgia,"Times New Roman",serif;font-weight:400;font-variant-ligatures:none;letter-spacing:0;line-height:1.13;margin:0 0 20px;color:var(--imp-ink);overflow-wrap:anywhere}
.imp-portfolio h1{font-size:clamp(38px,5vw,68px)}.imp-portfolio h2{font-size:clamp(28px,3.4vw,43px)}.imp-portfolio h3{font-size:clamp(23px,2.5vw,30px)}
.imp-portfolio p{margin:0 0 18px}.imp-portfolio a{color:#0765b8;text-underline-offset:.2em}.imp-portfolio a:focus-visible,.imp-portfolio summary:focus-visible{outline:3px solid #0679eb;outline-offset:5px}
.imp-portfolio .imp-wrap,.imp-wrap.imp-portfolio{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.imp-portfolio .imp-eyebrow{font-size:11px;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;font-weight:750;color:#4e7495;margin-bottom:22px}
.imp-filters{display:flex;gap:9px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid var(--imp-line);margin-bottom:32px}
.imp-portfolio .imp-filter{display:inline-flex;align-items:center;min-height:44px;padding:9px 17px;border:1px solid var(--imp-line);border-radius:999px;background:#fff;font-size:13px;font-weight:650;text-decoration:none;transition:background-color .18s,border-color .18s}
.imp-portfolio .imp-filter:hover{background:#eaf5ff;border-color:#8cbce5}.imp-portfolio .imp-filter.is-active{color:#fff;background:#143f65;border-color:#143f65}
.imp-grid-heading{display:flex;gap:22px;align-items:baseline;justify-content:space-between;margin-bottom:30px}.imp-grid-heading h2{margin:0}.imp-grid-heading p{color:var(--imp-muted);font-size:14px;margin:0}
.imp-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:28px}.imp-project-grid.imp-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.imp-project-card{min-width:0;position:relative;overflow:hidden;border:1px solid var(--imp-line);border-radius:var(--imp-radius);background:#fff;box-shadow:0 16px 35px -30px #23496f66;transition:transform .18s,box-shadow .18s}
.imp-project-card::before{content:"";position:absolute;z-index:2;inset:0 0 auto;height:3px;background:var(--imp-rail);border-radius:var(--imp-radius) var(--imp-radius) 0 0;pointer-events:none}
.imp-portfolio .imp-project-link{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit;border-radius:inherit;overflow:hidden}
.imp-card-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(145deg,#eaf4fc,#f7fbff);display:grid;place-items:center;border-bottom:1px solid var(--imp-line)}
.imp-card-media img.imp-card-image{display:block;width:100%;height:100%;max-height:100%;object-fit:cover;object-position:top center;transition:transform .35s}
.imp-card-media>span{color:var(--imp-muted);font-size:14px}
.imp-card-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:25px 25px 23px;min-width:0}
.imp-portfolio .imp-card-services{font-size:10px;line-height:1.7;letter-spacing:.07em;text-transform:uppercase;color:var(--imp-muted);font-weight:700;min-height:34px;margin-bottom:13px}
.imp-card-body h3{margin:0 0 30px}.imp-card-action{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;font-size:13px;font-weight:700;color:#0765b8;margin-top:auto}.imp-card-action>span{font-size:24px;line-height:1}
.imp-project-card:hover{transform:translateY(-3px);box-shadow:0 22px 40px -28px #23496f77}.imp-project-link:hover img{transform:scale(1.025)}
.imp-pagination{display:flex;gap:9px;justify-content:center;align-items:center;margin-top:38px}.imp-pagination a{display:grid;place-items:center;min-width:44px;min-height:44px;background:#fff;border:1px solid var(--imp-line);border-radius:12px;text-decoration:none;font-weight:700}.imp-pagination a[aria-current=page]{background:#143f65;color:white}
.imp-empty{padding:38px;border:1px dashed #aac8e3;border-radius:20px;background:#f6fbff}
.imp-case-hero{background:linear-gradient(145deg,#f7fbff,#edf5fe);padding:45px 0 42px;border-bottom:1px solid var(--imp-line)}
.imp-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:30px;text-decoration:none;font-size:13px;font-weight:650}
.imp-case-title-row{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-bottom:28px}.imp-case-title-row>div{max-width:820px;min-width:0}.imp-case-title-row h1{margin-bottom:0}.imp-case-title-row .imp-button{flex-shrink:0}
.imp-case-meta{display:grid;grid-template-columns:1fr 1fr 2fr 1.4fr;border-top:1px solid var(--imp-line);gap:24px;padding-top:25px}.imp-case-meta>div{min-width:0}.imp-case-meta>div>span{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:750;color:var(--imp-muted);margin-bottom:6px}.imp-case-meta strong,.imp-case-meta p,.imp-case-meta a{font-size:13px;line-height:1.7;overflow-wrap:anywhere;margin:0}.imp-case-meta strong{font-weight:650}
.imp-case-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:64px;padding-top:55px;padding-bottom:65px;align-items:start}.imp-gallery,.imp-case-narrative{min-width:0}
.imp-project-figure{padding:13px 13px 9px;border:1px solid var(--imp-line);border-radius:20px;box-shadow:0 15px 35px -25px #23496f55;background:#fff;margin:0 0 24px;overflow:hidden}
.imp-project-figure a{display:block;background:#f2f7fc;border-radius:11px;overflow:hidden}.imp-project-figure img{display:block;width:100%;height:auto;max-height:820px;object-fit:contain;object-position:top center}.imp-project-figure figcaption{font-size:11px;display:flex;justify-content:flex-end;align-items:center;gap:9px;color:var(--imp-muted);margin-top:9px}
.imp-more-images summary{min-height:48px;padding:11px 16px;border:1px solid var(--imp-line);border-radius:12px;cursor:pointer;font-weight:650;font-size:14px;background:#f1f7fe}.imp-more-images summary>span{float:right;border-radius:50%;background:white;min-width:26px;text-align:center}.imp-gallery-rest{padding-top:20px}
.imp-case-narrative{font-size:15px;line-height:1.85;color:#455f79}.imp-case-narrative h2{font-size:29px;margin-top:40px;padding-top:24px;border-top:1px solid var(--imp-line)}.imp-case-narrative h2:first-child{padding:0;border:0;margin-top:0}.imp-case-narrative :is(ul,ol){padding-left:22px;margin-block:20px}.imp-case-narrative li{padding:4px 0}
.imp-case-next{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;background:linear-gradient(125deg,#0c2944,#174c73);color:#cbdfee;border:1px solid #35658a;border-radius:26px;overflow:hidden;padding:44px 50px;margin:0 0 60px}.imp-case-next::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--imp-rail)}.imp-case-next h2{color:#f9fcff;font-size:clamp(29px,3.5vw,43px);margin:0}.imp-case-next .imp-eyebrow{color:#b6d3e8}
.imp-portfolio .imp-button{display:inline-flex;position:relative;align-items:center;justify-content:center;gap:18px;min-height:48px;padding:13px 21px;border:1px solid #69adef;border-radius:12px;background:linear-gradient(#087beb,#065abb);box-shadow:0 8px 20px -12px #15436f99;color:white;font:700 13px/1.4 system-ui,sans-serif;text-decoration:none;overflow:hidden;max-width:100%;text-align:center}
.imp-preview-notice{position:sticky;top:0;z-index:999;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:12px max(20px,calc((100vw - 1240px)/2));background:#fff7e9;border-block:1px solid #ddb66f;color:#604619;font:13px/1.6 system-ui,sans-serif}.imp-preview-warning{max-width:1240px;margin:15px auto;padding:14px;background:#fff4de;border:1px solid #e7c38d;color:#604619;font:14px/1.6 system-ui,sans-serif}.imp-preview-comparison{padding-block:40px}.imp-preview-comparison textarea{width:100%;box-sizing:border-box;font:12px/1.5 monospace;display:block}.imp-preview-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:18px;background:#f0f6fd;border:1px solid #c9def1;border-radius:12px}.imp-preview-comparison details{margin-block:20px}.imp-preview-grid{padding-block:48px}
@media(max-width:1000px){.imp-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.imp-case-title-row{display:block}.imp-case-title-row .imp-button{margin-top:24px}.imp-case-meta{grid-template-columns:1fr 1fr}.imp-case-layout{gap:32px}.imp-case-next{gap:32px;padding:35px}}
@media(max-width:700px){.imp-project-grid,.imp-project-grid.imp-columns-2{grid-template-columns:1fr}.imp-portfolio .imp-wrap,.imp-wrap.imp-portfolio{width:calc(100% - 32px)}.imp-grid-heading{display:block}.imp-grid-heading p{margin-top:12px}.imp-filters{gap:7px}.imp-portfolio .imp-filter{padding:8px 12px;font-size:12px}.imp-case-layout{grid-template-columns:1fr;gap:32px;padding-block:32px}.imp-case-hero{padding:25px 0 30px}.imp-case-title-row h1{font-size:clamp(35px,8vw,52px)}.imp-case-next{grid-template-columns:1fr;gap:24px;padding:28px}.imp-case-meta{gap:20px}.imp-case-narrative{font-size:15px}.imp-card-services{min-height:0!important}.imp-card-body h3{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.imp-portfolio *,.imp-portfolio *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.imp-project-card:hover,.imp-project-link:hover img{transform:none}}
@media(forced-colors:active){.imp-portfolio :is(a,summary){forced-color-adjust:auto}.imp-project-card,.imp-case-next,.imp-project-figure{border:1px solid CanvasText}.imp-portfolio .imp-button{color:LinkText;background:Canvas;border-color:LinkText}}
@media print{.imp-filters,.imp-pagination,.imp-case-next,.imp-preview-notice{display:none}.imp-project-grid{grid-template-columns:repeat(2,1fr)}.imp-case-layout{display:block}.imp-portfolio *{box-shadow:none!important}.imp-project-card{break-inside:avoid}}

/* Preserve component rhythm when the grid is nested inside a Studio section. */
:where(.imf-site,.editor-styles-wrapper) .im-portfolio-page .imp-portfolio .imp-grid-heading h2{font-size:clamp(28px,3.4vw,43px);margin:0}
:where(.imf-site,.editor-styles-wrapper) .im-portfolio-page .imp-portfolio .imp-grid-heading p{margin:0}
:where(.imf-site,.editor-styles-wrapper) .im-portfolio-page .imp-portfolio .imp-card-body h3{font-size:clamp(23px,2.5vw,30px);margin:0 0 30px}
:where(.imf-site,.editor-styles-wrapper) .im-portfolio-page .imp-portfolio .imp-card-services{font-size:10px;line-height:1.7;margin:0 0 13px}
@media(max-width:700px){:where(.imf-site,.editor-styles-wrapper) .im-portfolio-page .imp-portfolio .imp-grid-heading p{margin-top:12px}}

.imp-project-card:focus-within{outline:3px solid #0679eb;outline-offset:5px}
.imp-portfolio .imp-project-figure{margin:0 0 24px}
.imp-portfolio .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}


/* 0.1.4 — visual refinement only. Import/data behavior is unchanged. */
.imp-portfolio .imp-project-card::before{display:none}
.imp-portfolio .imp-project-card{box-shadow:none;border-color:#d3e2ef}
.imp-portfolio .imp-project-card:hover{border-color:#9fc4e3;box-shadow:0 20px 38px -34px #214a7066}
.imp-portfolio .imp-card-media{border-bottom-color:#dbe7f1}
.imp-portfolio .imp-card-body{padding:27px 26px 25px}
.imp-portfolio .imp-card-body h3{font-size:clamp(25px,2.55vw,31px);line-height:1.14}
.imp-portfolio .imp-card-action{padding-top:18px;border-top:1px solid #e1ebf4;color:#075faa}
.imp-portfolio .imp-card-services{letter-spacing:.09em;color:#5a7390}
.imp-portfolio .imp-case-hero{background:#f5f9fd}
.imp-portfolio .imp-project-figure{box-shadow:none;border-color:#d4e3ef}
.imp-portfolio .imp-more-images summary{background:#fff;border-color:#c9dceb}
.imp-portfolio .imp-case-next{box-shadow:0 20px 44px -36px #0f355680}

/* 0.1.5 — curated grid + lightweight selected-work component. */
.imp-featured-work{width:100%}
.imp-featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.imp-featured-card{min-width:0;border:1px solid var(--imp-line);border-radius:22px;background:#fff;overflow:hidden;position:relative}
.imp-featured-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--imp-rail);pointer-events:none}
.imp-featured-link{display:flex!important;flex-direction:column;min-height:240px;height:100%;padding:26px;text-decoration:none!important;color:inherit!important}
.imp-featured-icon{width:46px;height:46px;border:1px solid #c7ddf0;border-radius:14px;background:#eef7ff;display:grid;place-items:center;margin-bottom:34px;position:relative}
.imp-featured-icon::before,.imp-featured-icon::after,.imp-featured-icon>span{content:"";display:block;position:absolute;border:1.6px solid #1b6eae;border-radius:4px}
.imp-featured-icon::before{width:20px;height:16px;transform:translate(-4px,-4px)}
.imp-featured-icon::after{width:20px;height:16px;transform:translate(4px,4px);background:#eef7ff}
.imp-featured-icon>span{width:5px;height:5px;border-radius:50%;background:#ff8a3d;border-color:#ff8a3d;right:8px;top:8px;z-index:2}
.imp-featured-services{font-size:10px!important;line-height:1.6!important;letter-spacing:.1em;text-transform:uppercase;font-weight:750;color:#5d7690;margin:0 0 10px!important}
.imp-featured-card h3{font-size:clamp(27px,2.4vw,34px)!important;line-height:1.1!important;margin:0 0 28px!important}
.imp-featured-action{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:18px;border-top:1px solid #e0ebf4;font-size:13px;font-weight:750;color:#075faa}
.imp-featured-card-2{background:#102f4a;border-color:#315c7c;color:#eef7ff}
.imp-featured-card-2 h3{color:#fff}.imp-featured-card-2 .imp-featured-services{color:#b9d4e8}.imp-featured-card-2 .imp-featured-action{color:#9ed5ff;border-top-color:#315c7c}.imp-featured-card-2 .imp-featured-icon{background:#173d5c;border-color:#426d8d}.imp-featured-card-2 .imp-featured-icon::before,.imp-featured-card-2 .imp-featured-icon::after{border-color:#8dcdf7}.imp-featured-card-2 .imp-featured-icon::after{background:#173d5c}
.imp-featured-card{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.imp-featured-card:hover{transform:translateY(-3px);border-color:#9fc4e3;box-shadow:0 20px 38px -34px #214a7066}.imp-featured-action>span{transition:transform .2s ease}.imp-featured-card:hover .imp-featured-action>span{transform:translateX(3px)}
@media(max-width:900px){.imp-featured-grid{grid-template-columns:1fr}.imp-featured-link{min-height:0}.imp-featured-icon{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.imp-featured-card,.imp-featured-action>span{transition:none!important}.imp-featured-card:hover,.imp-featured-card:hover .imp-featured-action>span{transform:none!important}}
