.codex-showcase-toolbar { margin: 0 0 34px; padding: 22px; display: grid; grid-template-columns: auto minmax(240px,1fr) auto; align-items: center; gap: 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.015)); }
.portfolio-section .portfolio-grid{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-inline:contain;padding:4px 0 22px;width:100%;max-width:100%;scrollbar-width:thin;scrollbar-color:#7776 transparent}
.portfolio-section .portfolio-grid .codex-model-card{flex:0 0 clamp(310px,calc((100% - 24px)/2),690px);min-width:0;scroll-snap-align:start;scroll-snap-stop:normal;content-visibility:visible;isolation:isolate}
.portfolio-section .portfolio-grid.is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}
.codex-carousel{cursor:grab}.codex-carousel :is(a,button){cursor:pointer}.codex-carousel img{user-select:none;-webkit-user-drag:none}
.codex-carousel-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:0 0 18px;color:inherit}
.codex-carousel-controls p{font-size:12px;line-height:1.5;margin:0;opacity:.8}.codex-carousel-controls>div{display:flex;align-items:center;gap:12px;flex-shrink:0}
.codex-carousel-controls button{min-height:44px;padding:10px 17px;background:transparent;color:inherit;border:1px solid currentColor;border-radius:999px;font-family:inherit;font-size:12px;font-weight:600;line-height:1.4;cursor:pointer}
.codex-carousel-controls button:disabled{opacity:.4;cursor:default}.codex-carousel-controls [data-carousel-position]{font-size:11px;min-width:70px;text-align:center;font-variant-numeric:tabular-nums}
.codex-carousel:focus-visible,.codex-carousel-controls button:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.portfolio-section .portfolio-grid>.codex-showcase-empty{flex:0 0 100%;margin:0;padding:70px 24px;text-align:center}
@media(max-width:700px){.portfolio-section .portfolio-grid .codex-model-card{flex-basis:calc(100% - 22px)}.portfolio-section .portfolio-grid{gap:16px}.codex-carousel-controls{align-items:flex-start;flex-direction:column;gap:12px}.codex-carousel-controls>div{width:100%;justify-content:space-between}.codex-carousel-controls button{padding-inline:16px}}
.codex-showcase-summary { display: flex; align-items: center; gap: 11px; }
.codex-showcase-summary { grid-column:1; grid-row:1; }
.codex-showcase-summary strong { font-size: 32px; line-height: 1; }
.codex-showcase-summary span { max-width: 110px; color: #8f8f98; font-size: 9px; line-height: 1.45; letter-spacing: 1px; text-transform: uppercase; }
.codex-showcase-search { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 0 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; }
.codex-showcase-search { grid-column:2; grid-row:1; }
.codex-showcase-search span { color:#777780; font-size:8px; letter-spacing:1.5px; }
.codex-showcase-search input { width:100%; min-width:0; height:46px; border:0; outline:0; background:transparent; color:#fff; }
.codex-presentation-start { min-height:48px; padding:0 20px; border:1px solid #fff; border-radius:12px; background:#fff; color:#050505; font-size:9px; font-weight:800; letter-spacing:1px; cursor:pointer; }
.codex-presentation-start { grid-column:3; grid-row:1; }
.codex-showcase-filters { grid-column:1/-1; grid-row:2; display:flex; flex-wrap:wrap; gap:8px; }
.codex-showcase-filters button { padding:8px 12px; border:1px solid rgba(255,255,255,.1); border-radius:999px; background:transparent; color:#8f8f98; font-size:8px; font-weight:700; letter-spacing:.7px; cursor:pointer; }
.codex-showcase-filters button:hover,.codex-showcase-filters button.active { border-color:#fff; background:#fff; color:#050505; }
.codex-model-card { display:block; cursor:default; content-visibility:auto; contain-intrinsic-size:400px; }
.portfolio-section .codex-model-card[hidden], .codex-showcase-empty[hidden], .codex-clear-filters[hidden] { display:none!important; }
.portfolio-section .codex-model-card { opacity:1; transform:none; }
.codex-clear-filters { min-height:44px; padding:10px 16px; border:1px solid #555; border-radius:8px; color:#fff; background:#18181b; cursor:pointer; }
.codex-clear-filters { grid-column:1; grid-row:3; justify-self:start; }
.codex-showcase-toolbar > * { min-width:0; }
.codex-showcase-filters button { flex-shrink:0; min-height:44px; font-size:11px; }
.codex-presentation-start:disabled { opacity:.45; cursor:default; }
.codex-model-card .project-preview { position:absolute; inset:0; }
.codex-model-category { display:block; margin-bottom:8px; color:#aaaab2; font-size:8px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; }
.codex-model-card .project-overlay { background:linear-gradient(to top,rgba(4,4,5,.98) 0%,rgba(4,4,5,.9) 42%,rgba(4,4,5,.38) 72%,transparent 100%); }
.codex-model-card .project-content { width:100%; text-shadow:0 2px 16px rgba(0,0,0,.7); }
.codex-model-card .project-content h3 { color:#fff; line-height:1.08; letter-spacing:-.035em; }
.codex-model-card .project-content p { color:#d1d1d7; line-height:1.55; }
.codex-model-actions { margin-top:17px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; pointer-events:auto; }
.codex-model-actions a,.codex-model-actions button { min-height:34px; padding:0 11px; display:inline-flex; align-items:center; border:1px solid rgba(255,255,255,.25); border-radius:8px; background:rgba(5,5,5,.68); color:#fff; font-size:8px; font-weight:700; line-height:1; letter-spacing:.7px; cursor:pointer; }
.codex-model-actions .primary { border-color:#fff; background:#fff; color:#050505; }
.codex-model-actions:not(:has(> :not([hidden]))) { display:none; }
.codex-showcase-empty { grid-column:1/-1; padding:70px 20px; border:1px dashed rgba(255,255,255,.15); color:#999; text-align:center; }
body.codex-presentation-open { overflow:hidden!important; }
.codex-presentation { position:fixed; inset:0; z-index:1000000; display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:#050505; color:#fff; }
.codex-presentation[hidden] { display:none; }
.codex-presentation-header,.codex-presentation-footer { min-height:70px; padding:12px clamp(14px,3vw,36px); display:flex; align-items:center; gap:20px; border-color:rgba(255,255,255,.12); background:#09090a; }
.codex-presentation-header { border-bottom:1px solid rgba(255,255,255,.12); }
.codex-presentation-footer { border-top:1px solid rgba(255,255,255,.12); }
.codex-presentation-header > div:first-child { min-width:0; display:grid; gap:4px; }
.codex-presentation-header small,.codex-presentation-footer>span { color:#777780; font-size:8px; letter-spacing:1.5px; }
.codex-presentation-header strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.codex-presentation [data-presentation-count] { margin-left:auto; color:#999; font:11px monospace; }
.codex-presentation-controls { display:flex; gap:7px; }
.codex-presentation-controls button,.codex-presentation-footer a { min-height:38px; padding:0 13px; border:1px solid rgba(255,255,255,.18); border-radius:9px; background:#151517; color:#fff; font-size:8px; font-weight:800; letter-spacing:.8px; cursor:pointer; }
.codex-presentation-footer a { display:inline-flex; align-items:center; margin-left:auto; background:#fff; color:#050505; }
.codex-presentation-stage { position:relative; min-height:0; background:#111; overflow:hidden; }
.codex-presentation-loader { position:absolute; inset:0; display:grid; place-content:center; gap:12px; background:#070708; color:#999; font-size:9px; letter-spacing:1.5px; text-align:center; opacity:0; pointer-events:none; }
.codex-presentation.loading .codex-presentation-loader { opacity:1; }
.codex-presentation-loader span { width:26px; height:26px; margin:auto; border:2px solid #333; border-top-color:#fff; border-radius:50%; animation:codex-present-spin .8s linear infinite; }
.codex-presentation-footer>div { width:min(420px,38vw); height:3px; overflow:hidden; border-radius:99px; background:#242426; }
.codex-presentation-footer i { display:block; width:0; height:100%; background:#fff; }
@keyframes codex-present-spin { to { transform:rotate(360deg); } }
@media(max-width:560px){
    .codex-showcase-toolbar{grid-template-columns:1fr;padding:18px;gap:14px}
    .codex-showcase-summary{grid-row:1}
    .codex-showcase-search{grid-column:1;grid-row:2}
    .codex-showcase-filters{grid-column:1;grid-row:3;flex-wrap:nowrap;overflow-x:auto;padding:0;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}
    .codex-showcase-filters::-webkit-scrollbar{display:none;width:0;height:0}
    .codex-showcase-filters button{scroll-snap-align:start}
    .codex-presentation-start{grid-column:1;grid-row:4;width:100%}
    .codex-clear-filters{grid-column:1;grid-row:5;width:100%}
    .codex-model-card{height:clamp(430px,118vw,500px)!important}
    .codex-model-card .project-overlay{padding:22px 18px!important;background:linear-gradient(to top,#050506 0%,rgba(5,5,6,.98) 48%,rgba(5,5,6,.72) 70%,rgba(5,5,6,.06) 100%)}
    .codex-model-card .project-content h3{margin:0 0 7px;font-size:clamp(25px,7.2vw,31px)!important}
    .codex-model-card .project-content p{margin:0 0 12px;color:#e0e0e5;font-size:14px;line-height:1.5}
    .codex-model-category{width:fit-content;margin-bottom:10px;padding:6px 9px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.09);color:#fff;font-size:9px}
    .project-number{top:14px!important;left:14px!important;color:#fff!important;background:rgba(0,0,0,.78)!important}
    .codex-model-actions{margin-top:14px;align-items:stretch;flex-direction:column;gap:7px;text-shadow:none}
    .codex-model-actions a,.codex-model-actions button{justify-content:center;width:100%;min-height:42px;font-size:9px;background:rgba(12,12,14,.94)}
    .codex-model-actions .primary{background:#fff;color:#050505}
    .codex-presentation-header{gap:10px}.codex-presentation-controls button[data-action="fullscreen"]{display:none}.codex-presentation-footer{gap:10px;flex-wrap:wrap}.codex-presentation-footer>div{order:3;flex-basis:100%;width:100%}.codex-presentation-footer a{margin-left:auto}
}
@media(prefers-reduced-motion:reduce){.codex-presentation-loader span{animation:none}}
/* O conteúdo cresce com os textos, sem depender de hover ou altura fixa. */
.portfolio-section .codex-model-card { height:auto!important; display:flex; flex-direction:column; }
.codex-model-card .project-preview { position:relative; inset:auto; height:230px; flex:none; }
.codex-model-card .project-overlay,
.codex-model-card:hover .project-overlay { position:relative; inset:auto; flex:1; padding:24px!important; background:#101013; opacity:1; }
.codex-model-card .project-content { text-shadow:none; }
.codex-model-card .project-content h3 { overflow-wrap:anywhere; }
.codex-model-card .project-content p { font-size:15px; }
.codex-model-actions a,.codex-model-actions button { min-height:44px; font-size:11px; line-height:1.4; }
@media(max-width:560px){
    .codex-model-card .project-preview { height:180px; }
    .codex-model-card .project-overlay { padding:22px 18px!important; }
    .codex-showcase-search input { font-size:16px; }
    .codex-showcase-filters { max-width:100%; }
    .codex-presentation-controls button { min-height:44px; }
}

/* Galeria visual: capas leves no catálogo e na apresentação. */
.section-heading.codex-catalog-intro { display:grid; grid-template-columns:1.3fr 1fr; text-align:left; gap:12px 32px; margin-bottom:28px; }
.codex-catalog-intro > span { grid-column:1; margin:0; }
.codex-catalog-intro > h2 { grid-column:1; }
.codex-catalog-intro > p { grid-column:2; grid-row:1/3; align-self:end; }
.codex-catalog-intro span { display:block; color:var(--text-secondary,#b7bac3); font-size:11px; letter-spacing:2px; margin-bottom:12px; font-weight:700; }
.codex-catalog-intro h2 { margin:0; max-width:590px; font-size:clamp(28px,3.4vw,46px); letter-spacing:-.045em; line-height:1.1; }
.codex-catalog-intro p { max-width:370px; margin:0; font-size:15px; line-height:1.7; color:var(--text-secondary,#b7bac3); }
.portfolio-section .portfolio-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.codex-showcase-toolbar { padding:20px; border-radius:16px; gap:14px; }
.codex-showcase-summary span { max-width:145px; font-size:11px; letter-spacing:.4px; text-transform:none; }
.codex-showcase-search span { font-size:10px; }
.codex-showcase-search span { flex-shrink:0; white-space:nowrap; }
.section-heading.codex-catalog-intro { max-width:none; }
.codex-catalog-intro h2 span { display:inline; font-size:inherit; letter-spacing:inherit; color:inherit; margin:0; }
.codex-showcase-search:focus-within { outline:2px solid currentColor; outline-offset:3px; }
.codex-presentation-start { font-size:12px; letter-spacing:0; text-transform:none; }
.codex-showcase-filters { gap:7px; }
.codex-showcase-filters button { font-size:12px; letter-spacing:0; padding:9px 14px; }
.portfolio-section .codex-model-card { border:1px solid #ffffff20; border-radius:16px; background:#101013; contain-intrinsic-size:auto 460px; transition:transform .22s ease,box-shadow .22s ease; }
.portfolio-section .codex-model-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px #0002; }
.codex-model-card .project-preview { height:auto; aspect-ratio:1.6; background:#17191e; overflow:hidden; }
.codex-thumbnail-link { display:block; width:100%; height:100%; }
.codex-model-thumbnail { display:block; width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .5s ease; }
.codex-model-card:hover .codex-model-thumbnail { transform:scale(1.025); }
.codex-model-card .project-overlay { padding:22px!important; pointer-events:auto; }
.codex-model-card .project-content { display:flex; flex-direction:column; height:100%; }
.codex-model-card .project-content h3 { font-size:25px!important; line-height:1.18; margin:0 0 8px; }
.codex-model-card .project-content p { font-size:14px; line-height:1.6; margin-bottom:20px; color:#c4c7cf; }
.codex-model-category { color:#c4c7cf; font-size:10px; letter-spacing:1.4px; margin-bottom:12px; }
.codex-model-card .project-number { top:12px!important; left:12px!important; font-size:10px; padding:6px 9px; letter-spacing:1px; pointer-events:none; }
.codex-model-actions { margin-top:auto; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.codex-model-actions a,.codex-model-actions button { justify-content:center; width:auto; font-size:11px; letter-spacing:0; text-transform:none; border-radius:8px; padding:9px 10px; }
.codex-model-actions .primary { grid-column:1/-1; }
.codex-model-actions :is(a,button):focus-visible,.codex-thumbnail-link:focus-visible { outline:2px solid #fff; outline-offset:3px; }
html[data-theme="light"] .codex-catalog-intro h2 { color:#191d23; }
html[data-theme="light"] .portfolio-section .codex-model-card { border-color:#c9c5bc; }
@media(max-width:1100px){.portfolio-section .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading.codex-catalog-intro{grid-template-columns:1fr;gap:12px}.codex-catalog-intro>p{grid-column:1;grid-row:auto;max-width:650px}}
@media(prefers-reduced-motion:reduce){.codex-model-thumbnail,.portfolio-section .codex-model-card{transition:none}.portfolio-section .codex-model-card:hover{transform:none}}

/* Apresentação por imagens: nenhum site é carregado dentro da galeria. */
.portfolio-section { width:100%; max-width:1440px; margin-inline:auto; }
.section-heading.codex-catalog-intro { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:end; }
.codex-catalog-intro > p { justify-self:end; }
@media(max-width:900px){
 .codex-showcase-toolbar{grid-template-columns:minmax(0,1fr) auto}
 .codex-showcase-search{grid-column:1/-1;grid-row:2}
 .codex-showcase-filters{grid-column:1/-1;grid-row:3}
 .codex-presentation-start{grid-column:2;grid-row:1}
 .codex-clear-filters{grid-column:1/-1;grid-row:4}
 .codex-presentation-header{align-items:flex-start;flex-wrap:wrap}
 .codex-presentation-controls{width:100%;order:3;flex-wrap:wrap}
 .codex-presentation-footer>div{flex:1}
 .codex-presentation-footer>span{display:none}
 .section-heading.codex-catalog-intro{grid-template-columns:1fr}
 .codex-catalog-intro>p{grid-column:1;grid-row:auto;justify-self:start}
}
@media(max-width:560px){
 .codex-showcase-toolbar{grid-template-columns:minmax(0,1fr)}
 .codex-showcase-summary{grid-row:1;grid-column:1}
 .codex-showcase-search{grid-row:2;grid-column:1}
 .codex-showcase-filters{grid-row:3;grid-column:1}
 .codex-presentation-start{grid-row:4;grid-column:1}
 .codex-clear-filters{grid-row:5;grid-column:1}
}
.codex-presentation-stage{display:grid;place-items:center;padding:clamp(8px,2vw,24px)}
.codex-presentation-cover{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;min-height:0;border-radius:8px}
.codex-presentation-cover[hidden],.codex-presentation-error[hidden]{display:none}
.codex-presentation-error{padding:24px;max-width:540px;text-align:center;font-size:16px;line-height:1.6;color:#dedee5}
.codex-presentation-header small,.codex-presentation-footer>span{color:#b4b4bf;font-size:10px}
.codex-presentation-controls button,.codex-presentation-footer a{font-size:10px;min-height:44px}
.codex-presentation-controls button:focus-visible,.codex-presentation-footer a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.codex-presentation-controls button[aria-pressed="false"]{border-color:#bebec9}
@media(max-width:560px){.codex-presentation-header strong{white-space:normal;font-size:15px}.codex-presentation-controls{flex-wrap:wrap;overflow:visible}.codex-presentation-controls button{flex:1;min-width:44px}.codex-presentation-stage{padding:8px}.codex-presentation-footer a{font-size:10px}}

.codex-model-card .project-preview.loaded iframe{opacity:1}
