/*
Theme Name: Felipe de Assis 2026
Theme URI: https://felipedeassis.com
Author: Felipe de Assis
Description: Portfólio e memorial profissional de Felipe de Assis.
Version: 1.0.3
Text Domain: felipe-2026
Requires PHP: 8.1
*/

:root {
  --font-grotesk:Montserrat,Arial,sans-serif;
  --font-mono:"Roboto Condensed",Arial,sans-serif;
  --font-reading:"Roboto Slab",Georgia,serif;
  --brand-magenta:#ff00cc;
  --brand-green:#00ff78;
  --brand-cyan:#00e4ff;
  --brand-yellow:#fffc00;
  --gray-700:#6f6f6f;
  --gray-500:#a7a7a7;
  --gray-300:#acacac;
  --gray-100:#dfdfdf;
  --ink:#151515;
  --paper:#f7f7f5;
  --acid:var(--brand-yellow);
  --coral:var(--brand-magenta);
  --blue:var(--brand-cyan);
}
.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.single-project { min-height:100vh; padding:10rem 3vw 6rem; }
.single-project h1 { max-width:13ch; margin:3rem 0 1.5rem; font-size:clamp(3.5rem,9vw,9rem); line-height:.82; letter-spacing:-.07em; }
.single-project-image { width:100%; max-height:75vh; object-fit:cover; margin:3rem 0; }
.single-project-content { display:grid; grid-template-columns:1fr 2fr; gap:5vw; }
.single-project-content article { max-width:52rem; font-family:var(--font-reading); font-size:1.15rem; line-height:1.7; }
@media(max-width:800px){.single-project{padding:7rem 5vw 4rem}.single-project-content{grid-template-columns:1fr}.single-project h1{font-size:14vw}}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Montserrat,Arial,sans-serif; font-variant-emoji:text; overflow-x:hidden; }
main,section { min-width:0; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.topbar { position:fixed; inset:0 0 auto; height:74px; z-index:50; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 2.2vw; background:rgba(238,233,223,.92); border-bottom:1px solid var(--ink); backdrop-filter:blur(10px); }
.brand { display:flex; gap:.5rem; font-weight:900; letter-spacing:-.06em; font-size:1.15rem; }
.brand span:last-child { color:var(--brand-magenta); }
.top-meta { display:flex; gap:2rem; font-family:"Roboto Condensed",Arial,sans-serif; font-size:.68rem; letter-spacing:.08em; }
.menu-button { justify-self:end; display:flex; gap:1.5rem; border:0; background:transparent; font-family:var(--font-mono); font-size:.72rem; cursor:pointer; }
.menu-button b { font-size:1.4rem; line-height:.5; }
.menu-overlay { position:fixed; z-index:45; inset:74px 0 auto; padding:5vw 3vw; background:#000; color:white; transform:translateY(-110%); transition:transform .45s cubic-bezier(.7,0,.2,1); border-bottom:12px solid var(--brand-yellow); }
.menu-overlay.is-open { transform:translateY(0); }
.menu-overlay>p { font:700 .7rem var(--font-mono); margin:0 0 3rem; }
.menu-overlay a { display:grid; grid-template-columns:4rem 1fr auto; align-items:center; padding:.8rem 0; border-top:1px solid #555; font-size:clamp(2.5rem,7vw,7rem); font-weight:900; letter-spacing:-.07em; line-height:.85; }
.menu-overlay small { font:400 .7rem var(--font-mono); }
.hero { position:relative; min-height:100svh; padding:74px 2.2vw 2vw; overflow:hidden; background:var(--gray-100); }
.hero-photo { position:absolute; inset:74px 0 0 38%; background-image:var(--felipe-hero); background-position:center; background-size:cover; background-repeat:no-repeat; filter:saturate(.75) contrast(1.08); }
.hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--gray-100) 0%,transparent 30%),linear-gradient(0deg,rgba(0,228,255,.25),transparent 55%); mix-blend-mode:multiply; }
.scanlines { position:absolute; inset:74px 0 0; opacity:.16; pointer-events:none; background:repeating-linear-gradient(0deg,transparent 0 3px,#0a1c22 4px); }
.eyebrow { position:absolute; top:16%; left:2.2vw; margin:0; font:700 .72rem/1.35 var(--font-mono); letter-spacing:.06em; }
.glitch-title { position:absolute; z-index:2; left:1.5vw; bottom:12%; isolation:isolate; margin:0; font-size:clamp(5rem,15vw,14rem); font-weight:900; line-height:.7; letter-spacing:-.09em; text-transform:uppercase; color:white; }
.glitch-title::before,.glitch-title::after { content:attr(data-text); position:absolute; inset:0; z-index:-1; white-space:pre; pointer-events:none; }
.glitch-title::before { color:var(--brand-cyan); clip-path:polygon(0 12%,100% 12%,100% 35%,0 35%,0 66%,100% 66%,100% 77%,0 77%); transform:translate(7px,-2px); }
.glitch-title::after { color:var(--brand-magenta); clip-path:polygon(0 37%,100% 37%,100% 54%,0 54%,0 80%,100% 80%,100% 92%,0 92%); transform:translate(-5px,2px); }
.hero-copy { position:absolute; z-index:3; right:2.2vw; top:20%; width:min(26rem,28vw); font-family:var(--font-reading),Georgia,serif; font-size:clamp(1rem,1.55vw,1.5rem); line-height:1.25; font-weight:500; }
.scroll-cue { position:absolute; z-index:3; bottom:2vw; left:2.2vw; display:flex; align-items:center; gap:1rem; font:700 .68rem var(--font-mono); }
.scroll-cue i { display:grid; place-items:center; width:2.2rem; height:2.2rem; border:1px solid; border-radius:50%; font-style:normal; }
.pixel-tag { position:absolute; z-index:3; right:2.2vw; bottom:2vw; padding:.8rem 1rem; background:var(--brand-magenta); color:white; font:700 .66rem/1.35 var(--font-mono); transform:rotate(-2deg); box-shadow:8px 8px 0 var(--brand-cyan); }
.section-pad { padding:8rem 3vw; }
.section-label { display:flex; gap:2rem; align-items:center; font:700 .66rem var(--font-mono); letter-spacing:.05em; border-top:1px solid; padding-top:.7rem; }
.section-label span:last-child:not(:nth-child(2)) { margin-left:auto; }
.section-label.light { color:white; border-color:rgba(255,255,255,.7); }
.manifesto { min-height:90vh; display:flex; flex-direction:column; justify-content:space-between; background:var(--paper); }
.manifesto-text { max-width:1400px; margin:10vh 0; font-size:clamp(3rem,7.6vw,8.5rem); line-height:.88; letter-spacing:-.065em; font-weight:900; }
.manifesto-text em { color:var(--brand-magenta); font-style:normal; text-decoration:underline; text-decoration-thickness:.06em; text-underline-offset:.08em; }
.manifesto-note { display:grid; grid-template-columns:1fr 2fr; align-items:start; margin-left:35%; font-size:1.25rem; }
.manifesto-note p { max-width:36rem; margin:0; font-family:var(--font-reading),Georgia,serif; line-height:1.5; }
.work { background:#000; color:white; }
.work>h2 { margin:7rem 0 5rem; font-size:clamp(4rem,10vw,11rem); line-height:.78; letter-spacing:-.08em; font-weight:900; }
.work>h2 span { color:var(--brand-yellow); }
.project-list { display:grid; gap:10rem; }
.project-card { display:grid; grid-template-columns:1.4fr .8fr; gap:4vw; align-items:end; }
.project-card:nth-child(even) { grid-template-columns:.8fr 1.4fr; }
.project-card:nth-child(even) .project-image { order:2; }
.project-image { position:relative; overflow:hidden; aspect-ratio:1.42; background:#333; }
.project-image img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15); transition:.5s; }
.project-card:hover img { filter:grayscale(0) contrast(1.05); transform:scale(1.025); }
.project-image::after { content:""; position:absolute; inset:0; background:var(--card-accent); mix-blend-mode:multiply; opacity:.38; }
.project-card.lime { --card-accent:var(--acid); }.project-card.coral { --card-accent:var(--coral); }.project-card.blue { --card-accent:var(--blue); }
.image-code { position:absolute; z-index:2; left:1rem; bottom:1rem; font:700 .6rem var(--font-mono); background:var(--ink); padding:.4rem; }
.project-info small { font:400 .65rem var(--font-mono); text-transform:uppercase; }
.project-info h3 { margin:1.1rem 0; font-size:clamp(3rem,6vw,7rem); line-height:.85; letter-spacing:-.07em; font-weight:800; }
.project-info p { max-width:31rem; color:#ddd; font-family:var(--font-reading),Georgia,serif; font-size:1.05rem; line-height:1.55; }
.project-info button,.project-link { width:100%; margin-top:2rem; padding:1rem 0; display:flex; justify-content:space-between; color:white; border:0; border-top:1px solid #777; background:none; font:700 .7rem var(--font-mono); cursor:pointer; }
.project-tags { display:flex; flex-wrap:wrap; gap:.35rem; }
.project-tags span,.project-tags button { padding:.3rem .48rem; border:1px solid currentColor; border-radius:99px; background:transparent; color:inherit; font:400 .56rem var(--font-mono); text-transform:uppercase; }
.archive { background:var(--paper); }
.archive-head { display:grid; grid-template-columns:1.5fr .5fr; gap:5vw; align-items:end; margin:7rem 0 5rem; }
.archive-head h2 { margin:0; font-size:clamp(4rem,9vw,10rem); line-height:.78; letter-spacing:-.08em; font-weight:900; }
.archive-head h2 span { color:var(--brand-magenta); }
.archive-head p { margin:0; max-width:30rem; font-family:var(--font-reading),Georgia,serif; font-size:1.05rem; line-height:1.55; }
.filter-console { position:sticky; top:74px; z-index:20; margin:0 -3vw 4rem; padding:1.2rem 3vw; background:rgba(238,233,223,.95); border-block:1px solid; backdrop-filter:blur(12px); }
.search-field { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.7rem; padding:.8rem 0 1rem; font:700 .8rem var(--font-mono); }
.search-field input { min-width:0; border:0; outline:0; background:transparent; color:var(--ink); font:800 clamp(1.3rem,3vw,3rem) var(--font-grotesk); letter-spacing:-.04em; }
.search-field input::placeholder { color:#777; opacity:1; }
.search-field kbd { font:400 1.4rem var(--font-mono); }
.category-filters { display:flex; flex-wrap:wrap; gap:.45rem; padding-top:1rem; border-top:1px solid #aaa; }
.category-filters button { display:flex; align-items:center; gap:.5rem; padding:.62rem .8rem; border:1px solid; border-radius:99px; background:transparent; color:var(--ink); font:700 .62rem var(--font-mono); text-transform:uppercase; cursor:pointer; transition:.18s; }
.category-filters button:hover,.category-filters button.active { background:var(--brand-magenta); border-color:var(--brand-magenta); color:white; }
.category-filters button span { font-size:.9rem; line-height:.5; }
.filter-status { display:flex !important; justify-content:space-between; align-items:center; min-height:2rem; margin-top:1rem; font:700 .68rem var(--font-mono); }
.filter-status [data-result-count] { display:inline-block !important; visibility:visible !important; opacity:1 !important; color:var(--ink); }
.filter-status button { border:0; border-bottom:1px solid; background:transparent; font:inherit; cursor:pointer; }
.archive-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--ink); border:1px solid var(--ink); }
.archive-card { min-width:0; background:var(--paper); }
.archive-thumb { position:relative; aspect-ratio:1.35; overflow:hidden; background:#aaa; }
.archive-thumb::after { content:""; position:absolute; inset:0; background:var(--card-accent); opacity:.32; mix-blend-mode:multiply; }
.archive-card.lime { --card-accent:var(--brand-yellow); }.archive-card.coral { --card-accent:var(--brand-magenta); }.archive-card.blue { --card-accent:var(--brand-cyan); }
.archive-thumb img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.1); transition:.35s; }
.archive-card:hover .archive-thumb img { transform:scale(1.03); filter:grayscale(0); }
.archive-thumb>span { position:absolute; z-index:2; top:.7rem; left:.7rem; display:grid; place-items:center; width:2.1rem; height:2.1rem; background:var(--ink); color:white; border-radius:50%; font:700 .58rem var(--font-mono); }
.archive-card-body { position:relative; min-height:18rem; padding:1.2rem; display:flex; flex-direction:column; justify-content:space-between; gap:1.5rem; }
.archive-card-body small { font:400 .6rem var(--font-mono); }
.archive-card-body h3 { margin:.6rem 0 0; font-size:clamp(1.8rem,3vw,3.8rem); line-height:.9; letter-spacing:-.06em; font-weight:800; }
.archive-card-body .project-tags { padding-right:2rem; }
.archive-card-body .project-tags button { cursor:pointer; }
.archive-card-body>a { position:absolute; right:1.2rem; bottom:1.1rem; font-size:1.5rem; }
.no-link { position:absolute; right:1.2rem; bottom:1.3rem; font:400 .5rem var(--font-mono); }
.empty-state[hidden],.archive-card[hidden] { display:none !important; }
.empty-state { grid-column:1/-1; display:grid; grid-template-columns:1fr 2fr; align-items:center; min-height:40vh; padding:3rem; background:var(--coral); color:white; }
.empty-state strong { font-size:18vw; line-height:.7; letter-spacing:-.09em; }.empty-state p { font-family:var(--font-reading),Georgia,serif; font-size:1.4rem; }
.company-bridge { background:#000; color:white; overflow:hidden; }
.bridge-intro { margin:5rem 0; padding:1.2rem 0 1.5rem; border-block:1px solid #555; }
.bridge-intro span { display:block; margin-bottom:1rem; color:var(--brand-green); font:700 .7rem var(--font-mono); letter-spacing:.06em; }
.bridge-intro strong { display:block; max-width:14ch; font-size:clamp(3.2rem,8vw,9rem); font-weight:900; line-height:.78; letter-spacing:-.075em; }
.bridge-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:7vw; align-items:end; }
.bridge-grid h2 { margin:0; font-size:clamp(4rem,8vw,9rem); line-height:.8; letter-spacing:-.075em; font-weight:900; }
.bridge-grid h2 em { color:var(--brand-cyan); font-style:normal; }
.bridge-grid p { font-family:var(--font-reading),Georgia,serif; font-size:1.05rem; line-height:1.6; }
.bridge-grid a { display:flex; justify-content:space-between; gap:2rem; margin-top:3rem; padding:1.2rem; background:var(--brand-yellow); color:var(--ink); box-shadow:9px 9px 0 var(--brand-magenta); font:700 .68rem/1.35 var(--font-mono); transition:.2s; }
.bridge-grid a:hover { transform:translate(-4px,-4px); box-shadow:13px 13px 0 var(--brand-magenta); }
.trajectory { padding-bottom:4rem; background:var(--paper); border-top:12px solid var(--brand-green); overflow:hidden; }
.trajectory-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:6vw; margin:8rem 0; }
.trajectory h2 { margin:0; font-size:clamp(4rem,8.8vw,10rem); line-height:.78; letter-spacing:-.08em; font-weight:900; }
.trajectory h2 span { color:var(--brand-magenta); }
.roles>p { font:700 .7rem var(--font-mono); margin:0 0 4rem; }
.roles>div { display:grid; grid-template-columns:3rem 1fr; padding:1.2rem 0; border-top:1px solid; font-size:clamp(1.2rem,2vw,2rem); }
.roles span { font:400 .65rem var(--font-mono); }
.ticker { display:flex; width:max-content; animation:marquee 22s linear infinite; padding:.35rem 0; background:var(--brand-green); font-size:clamp(2rem,5vw,6rem); font-weight:900; letter-spacing:-.04em; }
.ticker span { padding-right:2rem; }
@keyframes marquee { to { transform:translateX(-50%); } }
.contact { position:relative; min-height:100svh; color:white; padding:3rem 3vw 1.5rem; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.contact-photo { position:absolute; inset:0; background-image:var(--felipe-contact); background-position:center; background-size:cover; background-repeat:no-repeat; filter:contrast(1.15); }
.contact-overlay { position:absolute; inset:0; background:linear-gradient(120deg,rgba(111,111,111,.96) 0 34%,rgba(17,17,15,.2) 70%),repeating-linear-gradient(90deg,transparent 0 8px,rgba(255,0,204,.2) 9px); mix-blend-mode:multiply; }
.contact>*:not(.contact-photo,.contact-overlay) { position:relative; z-index:2; }
.contact-content { align-self:center; width:min(900px,90vw); text-align:center; }
.contact-content p { font-size:clamp(3.5rem,9vw,10rem); line-height:.82; letter-spacing:-.075em; font-weight:700; }
.contact-content a { display:inline-flex; gap:3rem; padding:1.2rem 1.5rem; background:var(--brand-yellow); color:var(--ink); font:700 .8rem var(--font-mono); box-shadow:9px 9px 0 var(--brand-magenta); transition:.2s; }
.contact-content a:hover { transform:translate(-4px,-4px); box-shadow:13px 13px 0 var(--brand-magenta); }
footer { display:flex; justify-content:space-between; font:400 .62rem var(--font-mono); }
@media (max-width:800px) {
  .topbar { height:58px; grid-template-columns:1fr auto; padding:0 5vw; }.top-meta { display:none; }
  .brand { flex-direction:column; gap:0; font-size:.82rem; line-height:.85; letter-spacing:-.04em; }
  .menu-button { gap:.8rem; }
  .menu-overlay { inset:58px 0 auto; min-height:calc(100svh - 58px); padding:10vw 5vw; }
  .menu-overlay>p { margin-bottom:12vh; }
  .menu-overlay a { grid-template-columns:2rem 1fr auto; padding:1.15rem 0; font-size:clamp(2.7rem,15vw,5.5rem); }
  .hero { min-height:100svh; padding-top:58px; }
  .hero-photo { inset:58px 0 0; opacity:.94; background-position:58% center; }
  .hero-photo::after { background:linear-gradient(0deg,rgba(21,21,21,.22) 0%,transparent 38%); mix-blend-mode:normal; }
  .scanlines { inset:58px 0 0; }
  .eyebrow { top:12%; left:5vw; font-size:.61rem; }
  .hero-copy { top:19%; left:5vw; right:auto; width:min(72vw,18rem); padding:.8rem .9rem; background:rgba(247,247,245,.94); border:1px solid var(--ink); box-shadow:6px 6px 0 var(--brand-magenta); font-size:.86rem; line-height:1.28; }
  .glitch-title { left:4vw; bottom:16%; max-width:92vw; font-size:16.5vw; line-height:.8; letter-spacing:-.07em; color:white; }
  .glitch-title::before { transform:translate(3px,-1px); }
  .glitch-title::after { display:block; transform:translate(-3px,1px); }
  .scroll-cue { left:5vw; bottom:5vw; }.scroll-cue span { display:none; }
  .pixel-tag { right:5vw; bottom:6vw; padding:.65rem .8rem; font-size:.55rem; box-shadow:6px 6px 0 var(--blue); }
  .section-pad { padding:5rem 5vw; }
  .section-label { gap:1rem; font-size:.56rem; }
  .manifesto { min-height:auto; }
  .manifesto-text { margin:5rem 0; max-width:100%; font-size:clamp(2.75rem,12.6vw,4.6rem); line-height:.9; overflow-wrap:anywhere; }
  .manifesto-note { margin-left:0; grid-template-columns:3rem 1fr; }
  .manifesto-note p { font-size:1rem; }
  .work>h2 { margin:5rem 0 4rem; max-width:100%; font-size:15vw; line-height:.84; overflow-wrap:anywhere; }
  .project-card,.project-card:nth-child(even) { grid-template-columns:1fr; gap:1.7rem; }.project-card:nth-child(even) .project-image { order:0; }
  .project-list { gap:6rem; }.project-image { width:calc(100% + 10vw); margin-left:-5vw; aspect-ratio:1.1; }
  .project-info { min-width:0; }.project-info h3 { max-width:100%; font-size:12.6vw; line-height:.9; overflow-wrap:anywhere; }.project-info p { font-size:.95rem; }
  .archive-head { grid-template-columns:1fr; gap:2rem; margin:5rem 0 3rem; }.archive-head h2 { max-width:100%; font-size:15vw; line-height:.82; overflow-wrap:anywhere; }
  .filter-console { top:58px; margin-inline:-5vw; padding-inline:5vw; }
  .search-field { grid-template-columns:auto 1fr; }.search-field kbd { display:none; }.search-field span { font-size:.58rem; }
  .search-field input { font-size:1.35rem; }
  .category-filters { flex-wrap:nowrap; overflow-x:auto; width:calc(100% + 5vw); padding-bottom:.5rem; scrollbar-width:none; }
  .category-filters button { flex:0 0 auto; }
  .archive-grid { grid-template-columns:1fr; margin-inline:-5vw; border-inline:0; }
  .archive-card { display:grid; grid-template-columns:42% 58%; }.archive-thumb { height:100%; aspect-ratio:auto; }
  .archive-card-body { min-width:0; min-height:15rem; padding:1rem; }.archive-card-body h3 { max-width:100%; font-size:clamp(1.45rem,7vw,2rem); overflow-wrap:anywhere; }.archive-card-body .project-tags { gap:.25rem; }
  .archive-card-body .project-tags button { font-size:.47rem; }.empty-state { grid-template-columns:1fr; padding:2rem 5vw; }
  .bridge-intro { margin:4rem 0; }.bridge-intro strong { max-width:100%; font-size:12.4vw; line-height:.82; overflow-wrap:anywhere; }
  .bridge-grid { grid-template-columns:1fr; gap:2rem; }.bridge-grid h2 { max-width:100%; font-size:13.4vw; line-height:.84; overflow-wrap:anywhere; }.bridge-grid p { font-size:1rem; }
  .trajectory-grid { grid-template-columns:1fr; margin:5rem 0; }.trajectory h2 { max-width:100%; font-size:14.5vw; line-height:.82; overflow-wrap:anywhere; }.roles { margin-top:2rem; }
  .roles>p { margin-bottom:2rem; }.roles>div { font-size:1.1rem; }
  .ticker { font-size:2.2rem; }
  .contact { min-height:92svh; padding:2rem 5vw 1rem; }.contact .section-label span:last-child { display:none; }
  .contact-photo { background-position:38% center; }.contact-overlay { background:linear-gradient(0deg,rgba(111,111,111,.94) 0 42%,rgba(17,17,15,.16) 80%); }
  .contact-content p { margin-top:30vh; max-width:100%; font-size:13.2vw; line-height:.86; overflow-wrap:anywhere; }.contact-content a { width:90%; justify-content:space-between; gap:0; }
  footer span:nth-child(2) { display:none; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.ticker { animation:none; } * { transition:none!important; } }
