/* An image-led journal, composed as a portfolio. No nested scrolling. */
.portfolio-section{padding:40px 40px 44px;min-width:0}
.portfolio-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:29px}
.portfolio-heading h1{display:flex;align-items:center;gap:13px;font-size:30px;line-height:1.3;letter-spacing:-.7px;font-weight:650}
.portfolio-heading h1>svg{width:15px;height:15px;fill:none;stroke:#a6a0f5;stroke-width:1.8;flex-shrink:0;margin-right:2px}
.portfolio-count{font:10px var(--mono);letter-spacing:0;color:var(--muted);align-self:flex-start;margin-top:4px}
.portfolio-search{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;max-width:200px;width:37%;height:42px;background:#11171d;transition:border-color .2s}
.portfolio-search:focus-within{border-color:var(--accent)}
.portfolio-search input{width:100%;height:100%;min-width:0;color:var(--ink);background:transparent;border:0;outline:0;padding:0 3px 0 13px;font-size:12px;border-radius:9px}
.portfolio-search input::placeholder{color:var(--muted);opacity:1}
.portfolio-search input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.portfolio-search button{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;color:var(--muted)}
.portfolio-search button:hover{color:var(--accent);background:#202935}
.portfolio-search svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
/* Graphite category controls with a shared cyan selected state. */
.portfolio-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.portfolio-filters a{--filter-color:var(--control-text);--filter-surface:var(--control-bg);--filter-border:var(--control-border);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:11px 14px;font-size:16px;font-weight:500;line-height:1.5;white-space:nowrap;border:1px solid var(--filter-border);border-radius:8px;color:var(--filter-color);background:var(--filter-surface);transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}





.portfolio-filters .filter-indicator{display:grid;place-items:center;flex:0 0 17px;width:17px;height:17px;border-radius:50%;background:transparent;position:relative}
.portfolio-filters .filter-indicator:before{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#8193a0}
.portfolio-filters .filter-indicator svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.portfolio-filters a:hover{color:#e1eaf0;background:var(--control-hover);border-color:#47606d;box-shadow:none}
.portfolio-filters a:focus-visible{outline:2px solid var(--control-accent);outline-offset:4px}
.portfolio-filters a[aria-current="page"]{background:var(--control-active);color:var(--control-selected);border-color:#4a737e;font-weight:600;box-shadow:inset 0 -2px 0 var(--control-accent)}
.portfolio-filters a[aria-current="page"] .filter-indicator{background:transparent;color:var(--control-accent)}
.portfolio-filters a[aria-current="page"] .filter-indicator:before{display:none}
.portfolio-filters a[aria-current="page"] .filter-indicator svg{opacity:1}
.portfolio-filters a:active{transform:translateY(0)}
.portfolio-results{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:11px;color:var(--muted);margin-top:-13px;margin-bottom:21px}
.portfolio-results p{display:flex;flex-wrap:wrap;gap:12px;line-height:1.7}
.portfolio-results p>span{color:var(--ink)}
.portfolio-results>a{padding:6px 0;color:var(--accent);white-space:nowrap}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.portfolio-card{min-width:0;position:relative;background:linear-gradient(135deg,#16212b,#1c1b29);border:1px solid #30343f;border-radius:12px;transition:border-color .25s,background .25s;overflow:hidden}
.portfolio-card:hover,.portfolio-card:focus-within{border-color:#536474;background:linear-gradient(135deg,#1a2834,#242134)}
.portfolio-link{display:block;border-radius:11px;min-width:0}
.portfolio-link:focus-visible{outline-offset:-3px}
.portfolio-image{position:relative;aspect-ratio:1.5;overflow:hidden;background:#252c37}
.portfolio-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .4s;filter:saturate(.7) brightness(.94)}
.portfolio-link:hover img,.portfolio-link:focus-visible img{transform:scale(1.045);filter:saturate(1)}
.portfolio-image-arrow{position:absolute;right:15px;bottom:15px;width:40px;height:40px;border-radius:50%;background:#11171feb;border:1px solid #f4f7ff44;display:grid;place-items:center;color:#f3f6fc;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .3s}
.portfolio-image-arrow svg{width:17px;height:17px}
.portfolio-link:hover .portfolio-image-arrow,.portfolio-link:focus-visible .portfolio-image-arrow{opacity:1;transform:translateY(0)}
.portfolio-card-copy{padding:19px 20px 22px;min-height:102px}
.portfolio-category{font-size:10px;line-height:1.5;letter-spacing:.7px;color:var(--accent);padding-right:25px;margin-bottom:6px}
.portfolio-card h2{font-size:17px;line-height:1.6;font-weight:550;letter-spacing:-.2px;overflow-wrap:anywhere;color:var(--ink)}
.portfolio-card .bookmark-button{position:absolute;right:12px;top:12px;bottom:auto;width:36px;height:36px;color:#d3dce6;border:1px solid #ffffff35;background:#111820e8;border-radius:8px}
.portfolio-card .bookmark-button:hover{background:#293541;color:var(--accent)}
.portfolio-card .bookmark-button[aria-pressed=true]{color:var(--accent);background:#203742}
.portfolio-card .bookmark-button[aria-pressed=true] svg{fill:#56d8db28}
.portfolio-card .bookmark-button svg{width:15px;height:15px}
.portfolio-empty{border:1px dashed var(--line);border-radius:12px;background:#141b22;padding:50px 20px}
.portfolio-empty p{color:var(--muted)}
.portfolio-empty .button{margin-top:24px;border-radius:9px}
.portfolio-page .pagination{margin-top:30px}
.portfolio-page .pagination>a{border-radius:8px}
@media(min-width:1700px){.portfolio-section{padding:48px 54px}.portfolio-grid{gap:26px}.portfolio-card h2{font-size:18px}}
@media(max-width:1100px) and (min-width:761px){.portfolio-section{padding:30px 24px}.portfolio-grid{gap:20px}.portfolio-card-copy{padding:17px 16px 20px}.portfolio-card h2{font-size:16px}.portfolio-filters{gap:10px}.portfolio-filters a{padding:10px 13px;font-size:15px}.portfolio-card .bookmark-button{right:6px}}
@media(max-width:760px){.portfolio-section{padding:26px 22px 28px}.portfolio-heading{margin-bottom:24px;gap:14px}.portfolio-heading h1{font-size:26px;gap:10px}.portfolio-search{width:44%;max-width:235px}.portfolio-filters{gap:10px;margin-bottom:27px}.portfolio-filters a{padding:10px 13px;font-size:15px;min-height:48px}.portfolio-grid{gap:24px 18px}.portfolio-card-copy{padding-left:17px;padding-right:17px}.portfolio-results{margin-top:-8px;margin-bottom:19px}}
@media(max-width:560px){.portfolio-grid{grid-template-columns:minmax(0,1fr);gap:23px}.portfolio-image{aspect-ratio:1.5}.portfolio-card-copy{min-height:98px;padding:18px 19px 21px}.portfolio-card .bookmark-button{top:12px;bottom:auto}.portfolio-card h2{font-size:17px}.portfolio-category{font-size:10px;margin-bottom:7px}.portfolio-heading h1{font-size:26px}.portfolio-search{height:41px}.portfolio-search input{font-size:11px;padding-left:11px}.portfolio-search button{height:39px;width:35px}.portfolio-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portfolio-filters a{padding:10px 9px;min-width:0}}
@media(max-width:360px){.portfolio-section{padding:23px 16px 26px}.portfolio-search{width:45%}.portfolio-card h2{font-size:16px}.portfolio-card-copy{padding-left:16px;padding-right:16px}.portfolio-filters a{padding:10px 7px;font-size:14px;gap:7px}.portfolio-heading{gap:10px}.portfolio-heading h1{font-size:24px;gap:8px}.portfolio-count{font-size:9px}}
@media(prefers-reduced-motion:reduce){.portfolio-card,.portfolio-image img,.portfolio-image-arrow,.portfolio-filters a{transition:none}.portfolio-link:hover img,.portfolio-link:focus-visible img,.portfolio-filters a:hover{transform:none}}

/* Keep the category group balanced instead of leaving one orphan on a row. */
@media(min-width:561px) and (max-width:1279px){.portfolio-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Same quiet navigation and frosted selected surface as the sidebar. */
.portfolio-filters a{position:relative;background:transparent;border-color:transparent;color:#b7c0c8;border-radius:11px;box-shadow:none}
.portfolio-filters .filter-indicator{border-radius:0;flex-basis:18px;width:18px;height:18px;color:inherit}
.portfolio-filters .filter-indicator:before{display:none}
.portfolio-filters .filter-indicator svg{width:18px;height:18px;opacity:1;stroke-width:1.5}
.portfolio-filters a:hover{background:rgba(217,234,237,.045);border-color:rgba(216,235,240,.09);color:#edf2f4;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.portfolio-filters a[aria-current="page"]{background:var(--glass-fill);border-color:var(--glass-line);color:#f2f6f5;box-shadow:var(--glass-shadow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-weight:550}
.portfolio-filters a[aria-current="page"]:after{content:"";position:absolute;inset:1px;border:1px solid rgba(239,250,246,.075);border-radius:9px;pointer-events:none}
.portfolio-filters a[aria-current="page"] .filter-indicator{color:#e3efe9;background:transparent}
.portfolio-filters a:focus-visible{outline:2px solid #bbd5d6;outline-offset:4px}
