nav{align-items:center}
.links{grid-template-columns:repeat(5,1fr)}
.brand{font-size:clamp(20px,1.8vw,28px);font-weight:800;letter-spacing:-.045em;line-height:1}
.lang-switch{display:flex;align-items:center;gap:5px;border-left:1px solid var(--line);padding-left:15px}
.lang-switch button{border:0;background:none;padding:3px;color:inherit;font:10px 'DM Mono',monospace;cursor:pointer;opacity:.45}
.lang-switch button.active{opacity:1;color:var(--orange);font-weight:500}
.timeline article>div:nth-child(2)>b{display:block;color:var(--orange);font:600 13px 'DM Mono',monospace;letter-spacing:.05em;margin-bottom:10px}
.when{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.mode{border:1px solid var(--green);color:var(--green);padding:5px 8px;font:500 8px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em}
.project{grid-template-columns:65px 1.05fr 1.2fr 1fr auto}
.project-open{align-self:center;border:1px solid var(--ink);background:transparent;padding:10px 12px;white-space:nowrap;font:500 9px 'DM Mono',monospace;text-transform:uppercase;cursor:pointer;transition:.2s}
.project-open:hover{background:var(--green);border-color:var(--green);color:var(--paper)}
.project-status{display:inline-block;border:1px solid var(--green);color:var(--green);padding:5px 7px;font:600 8px 'DM Mono',monospace;letter-spacing:.07em}.project-status.development{border-color:var(--orange);color:var(--orange)}.project-status.published{background:var(--green);border-color:var(--green);color:var(--paper)}.project-meta p{margin:0;font:10px/1.55 'DM Mono',monospace}.project-outcome{margin-top:11px!important;padding-top:10px;border-top:1px solid var(--line)}.project-outcome small{display:block;margin-bottom:5px}.project-outcome strong{font:600 10px/1.5 'DM Mono',monospace}.target-roles{max-width:850px;margin:16px 0 0;font:11px/1.65 'DM Mono',monospace;color:#5a5751}
.project-dialog{width:min(920px,92vw);max-height:90vh;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:clamp(28px,5vw,64px);box-shadow:0 24px 80px #0005}
.project-dialog::backdrop{background:#08110dd9;backdrop-filter:blur(5px)}
.dialog-close{position:absolute;top:18px;right:22px;border:0;background:none;font-size:32px;cursor:pointer;color:inherit}
.dialog-index{color:var(--orange);font:10px 'DM Mono',monospace;letter-spacing:.12em}
.project-dialog h2{font-size:clamp(36px,5vw,65px);letter-spacing:-.055em;line-height:1;margin:18px 0}
.dialog-lead{max-width:720px;font:12px/1.7 'DM Mono',monospace}
.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:40px 0}
.dialog-grid section{border-top:1px solid var(--line);padding-top:14px}
.dialog-grid small{color:var(--orange);font:9px 'DM Mono',monospace;letter-spacing:.1em}
.dialog-grid p{font:11px/1.65 'DM Mono',monospace}
.project-placeholder{border:1px dashed var(--line);min-height:145px;display:flex;align-items:center;justify-content:center;gap:16px;color:#706c64}
.project-placeholder span{font-size:26px}.project-placeholder p{font:10px 'DM Mono',monospace}
.confidentiality-note{margin:24px 0 0;padding:16px 18px;border-left:3px solid var(--orange);background:#eee9df;font:11px/1.6 'DM Mono',monospace;color:#4f4b45}
.tech-stack{position:relative;overflow:hidden;border-bottom:0;padding-bottom:clamp(130px,14vw,260px);background:linear-gradient(180deg,var(--paper) 0%,var(--paper) 46%,#e7e2d8 69%,#aaa79f 87%,var(--ink) 100%)}
.tech-stack:before,.tech-stack:after{content:"";position:absolute;border:1px solid #174c3924;border-radius:50%;pointer-events:none}.tech-stack:before{width:420px;height:420px;right:-190px;top:180px}.tech-stack:after{width:240px;height:240px;left:-110px;bottom:170px;border-color:#e65a2738}
.tech-stack .section-head,.tech-groups{position:relative;z-index:1}
.tech-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;perspective:1200px}
.tech-group{position:relative;min-height:245px;border:1px solid #a8a39a;padding:32px 28px 26px;background:#f7f3ebdf;box-shadow:0 12px 36px #1114110a;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease,background .35s ease}
.tech-group:nth-child(2),.tech-group:nth-child(4){transform:translateY(28px)}
.tech-group:before{position:absolute;right:20px;top:5px;color:#174c3911;font:800 88px/1 Manrope,sans-serif;letter-spacing:-.08em}.tech-group:nth-child(1):before{content:"01"}.tech-group:nth-child(2):before{content:"02"}.tech-group:nth-child(3):before{content:"03"}.tech-group:nth-child(4):before{content:"04"}
.tech-group:after{content:"";position:absolute;left:0;top:0;width:5px;height:0;background:var(--orange);transition:height .35s ease}.tech-group:hover{transform:translateY(-7px);border-color:var(--green);background:#fbf8f1;box-shadow:0 24px 54px #1114111b}.tech-group:hover:after{height:100%}
.tech-group>p{position:relative;margin:0 0 28px;color:var(--orange);font:600 11px 'DM Mono',monospace;letter-spacing:.08em}.tech-list{position:relative;display:flex;flex-wrap:wrap;gap:9px}
.tech-list span{border:1px solid #aaa59b;background:#f2eee6;padding:11px 14px;font:500 9px 'DM Mono',monospace;text-transform:uppercase;transition:transform .22s ease,background .22s ease,color .22s ease,border-color .22s ease}.tech-list span:nth-child(3n+1){border-color:#174c3970}.tech-list span:nth-child(3n+2){background:#ebe6dc}.tech-list span:hover{transform:translateY(-4px) rotate(-1deg);background:var(--green);border-color:var(--green);color:var(--paper)}
.availability{display:inline-block;margin-top:28px;border:1px solid #777;padding:13px 16px;font:10px 'DM Mono',monospace;text-transform:uppercase}.availability:hover{border-color:var(--orange);color:var(--orange)}.project-gallery img{cursor:zoom-in}.image-lightbox{width:min(1400px,96vw);height:auto;max-height:94vh;border:0;background:transparent;padding:45px 20px 20px}.image-lightbox::backdrop{background:#07100ded;backdrop-filter:blur(6px)}.image-lightbox img{display:block;max-width:100%;max-height:84vh;margin:auto;object-fit:contain}.lightbox-close{position:fixed;top:16px;right:22px;width:42px;height:42px;border:1px solid #fff;background:#111;color:#fff;font-size:27px;cursor:pointer}
.project-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.project-gallery[hidden]{display:none}.project-gallery figure{margin:0}.project-gallery img{display:block;width:100%;height:auto;border:1px solid var(--line);background:#eee9df;transition:transform .2s ease,box-shadow .2s ease}.project-gallery img:hover{transform:translateY(-3px);box-shadow:0 14px 30px #10171020}.project-gallery figcaption{margin-top:9px;font:10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:#706c64}
@media(max-width:1000px){.project{grid-template-columns:50px 1fr 1fr}.project-meta{grid-column:2/4}.project-open{grid-column:2/4;justify-self:start}.timeline article>div:nth-child(2)>b{font-size:12px}.topbar{grid-template-columns:1fr 2fr}.disciplina{display:none}}
@media(max-width:700px){.brand{font-size:18px;letter-spacing:-.03em}nav>a{display:none!important}.lang-switch{border-left:0;padding-left:0}.project{grid-template-columns:42px 1fr}.project-meta{grid-column:2}.project-open{grid-column:2}.dialog-grid{grid-template-columns:1fr}.project-gallery{grid-template-columns:1fr}.project-dialog{padding:45px 22px 25px}.timeline article>div:nth-child(2)>b{font-size:13px}.tech-stack{padding-bottom:160px;background:linear-gradient(180deg,var(--paper) 0%,var(--paper) 55%,#d6d1c7 80%,var(--ink) 100%)}.tech-groups{grid-template-columns:1fr;gap:14px}.tech-group,.tech-group:nth-child(2),.tech-group:nth-child(4){min-height:auto;padding:24px 20px;transform:none}.tech-group:hover{transform:translateY(-4px)}.tech-group:before{font-size:62px}}
@media(prefers-reduced-motion:reduce){.tech-group,.tech-list span{transition:none}.tech-group:hover,.tech-list span:hover{transform:none}}
