:root{--bg:#fafafa;--bg-alt:#fff;--text:#1d1d1f;--muted:#6e6e73;--accent:#4f46e5;--secondary:#5c4e5e;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.section{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;min-height:100svh;padding:4rem 1.5rem;display:flex}.section:nth-of-type(2n){background:var(--bg-alt)}.section h1{letter-spacing:-.03em;font-size:clamp(2.5rem,7vw,5rem);font-weight:700;line-height:1.05}.section h2{letter-spacing:-.02em;font-size:clamp(2rem,5vw,3.5rem);font-weight:700}.section p{color:var(--muted);max-width:40ch;font-size:clamp(1.1rem,2vw,1.4rem)}.section .lead{color:var(--muted);white-space:pre-line;max-width:60ch}.chips{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:50rem;display:flex}.chip{color:var(--secondary);background:#5c4e5e1a;border-radius:999px;padding:.4rem .9rem;font-size:.9rem;font-weight:500}.grid{text-align:left;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;width:100%;max-width:72rem;display:grid}.card{background:var(--bg);border:1px solid #00000014;border-radius:20px;padding:1.75rem;transition:transform .3s,box-shadow .3s}.section:nth-of-type(2n) .card{background:var(--bg-alt)}.card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000014}.card h3{letter-spacing:-.01em;font-size:1.3rem;font-weight:600}.card .meta{color:var(--muted);margin:.25rem 0 .75rem;font-size:.9rem}.card p{color:var(--text);text-align:left;max-width:none;font-size:1rem}.card .tags{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.card .tags span{color:var(--muted);background:#0000000a;border-radius:8px;padding:.25rem .6rem;font-size:.78rem}.card a.title-link{color:inherit;text-decoration:none}.card a.title-link:hover{color:var(--accent)}.links{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.links a{border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:.75rem 1.5rem;font-weight:500;text-decoration:none;transition:background .25s,color .25s}.links a:hover{background:var(--accent);color:#fff}.bullets{text-align:left;flex-direction:column;gap:.6rem;margin-top:.5rem;list-style:none;display:flex}.bullets li{color:var(--muted);padding-left:1.4rem;line-height:1.5;position:relative}.bullets li:before{content:"";background:#eab308;border-radius:2px;width:.5rem;height:.5rem;position:absolute;top:.55em;left:0}.stack{text-align:left;flex-direction:column;gap:.75rem;max-width:46rem;margin-top:1.5rem;display:flex}.stack-row{border-bottom:1px solid #0000000f;grid-template-columns:12rem 1fr;gap:1rem;padding-bottom:.75rem;display:grid}.stack-row dt{color:var(--text);font-weight:600}.stack-row dd{color:var(--muted);margin:0}@media (width<=640px){.stack-row{grid-template-columns:1fr;gap:.15rem}}#sobre{position:relative}.sobre-photo{object-fit:cover;opacity:0;pointer-events:none;z-index:0;width:auto;max-width:48%;height:100%;transition:opacity 1.1s,transform 1.1s;position:absolute;top:0;bottom:0;right:0;transform:translate(80px);-webkit-mask-image:linear-gradient(270deg,#000 30%,#0000 95%);mask-image:linear-gradient(270deg,#000 30%,#0000 95%)}#sobre.in-view .sobre-photo{opacity:.18;transform:translate(0)}#sobre>h2,#sobre>.lead,#sobre>.stack{z-index:1;position:relative}.skills-loop{background:#fff;border-block:1px solid #0000000f;width:100vw;margin-left:calc(50% - 50vw);padding:3rem 0}#sobre:after{content:"";pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.contato-logo{width:min(50vw,280px);height:auto}#contato .links a{color:#81aabf;border-color:#81aabf}#contato .links a:hover{color:#fff;background:#81aabf}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fafafab3;border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:1rem clamp(1.25rem,4vw,3rem);display:flex;position:fixed;top:0;left:0;right:0}.brand{letter-spacing:-.02em;color:var(--text);font-size:1.1rem;font-weight:700;text-decoration:none}.site-header nav{gap:clamp(1rem,3vw,2.25rem);display:flex}.nav-link{color:var(--text);padding-bottom:4px;font-size:.95rem;font-weight:500;text-decoration:none;position:relative}.nav-link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:2px;transition:transform .3s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-link:hover:after,.nav-link:focus-visible:after,.nav-link.active:after{transform:scaleX(1)}.hero{color:#fff;position:relative;overflow:hidden}.hero-bg{z-index:-1;position:absolute;inset:0}.hero p{color:#ffffffd9}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal:nth-child(2){transition-delay:.15s}.reveal:nth-child(3){transition-delay:.3s}.in-view .reveal{opacity:1;transform:none}.cap{stroke:#111;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.draw path,.draw circle,.draw line,.draw rect{stroke-dasharray:1000;stroke-dashoffset:1000px;fill:none}.in-view .draw path,.in-view .draw circle,.in-view .draw line,.in-view .draw rect{animation:2s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.draw *{stroke-dashoffset:0;animation:none}}.option-wheel{--ow-text-color:#a6a6a6;--ow-active-color:#fff;--ow-font-size:3rem;--ow-inset:80px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;outline:none;width:100%;height:100%;position:relative;overflow:hidden}.option-wheel--dragging{cursor:grabbing}.option-wheel__item{top:50%;left:var(--ow-inset);white-space:nowrap;font-size:var(--ow-font-size);transform-origin:0;cursor:pointer;will-change:transform, opacity, filter;color:color-mix(in srgb, var(--ow-active-color) calc(var(--ow-p,0) * 100%), var(--ow-text-color));font-weight:200;line-height:1;position:absolute}.option-wheel--right .option-wheel__item{left:auto;right:var(--ow-inset);transform-origin:100%}.option-wheel__item--selected{font-weight:500}.lightfall-container{width:100%;height:100%;position:relative;overflow:hidden}.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative;overflow-x:hidden}.logoloop--vertical{height:100%;display:inline-block;overflow:hidden}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}
