/* Motion layer — preserves the portfolio's typography and case layouts. */
@property --gradient-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@property --gradient-angle-offset{syntax:'<angle>';initial-value:0deg;inherits:false}
@property --gradient-percent{syntax:'<percentage>';initial-value:5%;inherits:false}
@property --gradient-shine{syntax:'<color>';initial-value:white;inherits:false}
.brand{display:block;width:172px;flex-shrink:0;line-height:0}
.brand img{display:block;width:100%;height:auto;mix-blend-mode:screen}
.topbar{gap:24px}.contact-tab{background:transparent;border:0;font-size:14px;padding:12px 0;color:#d2e3f4;white-space:nowrap}.contact-tab span{color:var(--accent);margin-left:8px}.contact-tab:hover{color:#52b8ff}
.shiny-cta{--shiny-bg:#07111c;--highlight:#189fff;--highlight-subtle:#b3e7ff;--gradient-percent:5%;--gradient-shine:#ecfaff;isolation:isolate;position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:19px 27px;min-height:58px;font:700 15px/1.2 Noto,Arial,sans-serif;text-decoration:none;white-space:nowrap;color:#edf9ff;border:1px solid transparent;border-radius:999px;outline-offset:6px;background:linear-gradient(var(--shiny-bg),var(--shiny-bg)) padding-box,conic-gradient(from calc(var(--gradient-angle) - var(--gradient-angle-offset)),transparent,var(--highlight) var(--gradient-percent),var(--gradient-shine) calc(var(--gradient-percent)*2),var(--highlight) calc(var(--gradient-percent)*3),transparent calc(var(--gradient-percent)*4)) border-box;box-shadow:inset 0 0 0 1px #a2d9ff22,0 10px 35px #009dff0f;animation:gradient-orbit 3s linear infinite;transition:--gradient-angle-offset .8s,--gradient-percent .8s,--gradient-shine .8s,box-shadow .4s,translate .25s;cursor:pointer}
.shiny-label{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:30px}.shiny-label b{font-size:22px;line-height:1;font-weight:400;transition:transform .4s}.shiny-cta::before{content:'';position:absolute;inset:3px;border-radius:inherit;background:radial-gradient(#c8e8ff55 .55px,transparent .7px) 0 0/4px 4px;mask-image:conic-gradient(from calc(var(--gradient-angle) + 45deg),black,transparent 12% 88%,black);pointer-events:none}.shiny-shimmer{position:absolute;inset:-160% -20%;background:linear-gradient(-45deg,transparent 35%,#158eff38 48%,#bef4ff33 50%,transparent 63%);animation:shine-rotate 7s linear infinite;pointer-events:none}.shiny-cta:hover,.shiny-cta:focus-visible{--gradient-percent:20%;--gradient-angle-offset:95deg;--gradient-shine:var(--highlight-subtle);box-shadow:inset 0 0 20px #168eff24,0 0 40px #009dff28;translate:0 -2px}.shiny-cta:hover b{transform:translate(3px,-3px)}.shiny-cta:active{translate:0 1px}.cover-copy>#startButton{animation:gradient-orbit 3s linear infinite;opacity:1}
.scene{isolation:isolate}.scene-brand{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict}.scene-brand img{position:absolute;width:var(--g-size,55vw);max-width:none;right:var(--g-right,-7vw);top:var(--g-top,0%);opacity:var(--g-opacity,.075);mix-blend-mode:screen;filter:saturate(.8);animation:var(--g-motion,brand-drift) var(--g-duration,18s) ease-in-out infinite alternate;animation-play-state:paused;will-change:transform;transform-origin:center}.scene.active .scene-brand img{animation-play-state:running}.scene-brand::after{content:'';position:absolute;inset:0;background:linear-gradient(118deg,transparent 15%,#56c4ff06 48%,transparent 80%);transform:translateX(-130%)}.scene.active .scene-brand::after{animation:background-sweep 9s var(--g-delay,0s) ease-in-out infinite}.cover .scene-brand img{opacity:.035;width:90vw;top:30%;right:-48vw}.closing-scene .scene-brand img{opacity:.05}
.brand-orbit{right:1vw;top:0;width:45vw;height:100%;opacity:1;isolation:isolate}.hero-emblem{width:78%;aspect-ratio:1;position:relative;mix-blend-mode:screen;animation:hero-levitate 7s ease-in-out infinite}.hero-emblem .gleal-mark{width:100%;height:100%;object-fit:contain;position:relative;animation:none;filter:drop-shadow(0 0 12px #129fff50);mix-blend-mode:screen;transform:none}.logo-sheen{position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,#adf4ff00 43%,#d7faffaa 49%,#92cfff00 56%,transparent 64%);background-size:320% 100%;mix-blend-mode:screen;mask:url('assets/gleal-mark-original.webp?v=2') center/contain no-repeat;mask-mode:luminance;opacity:.6;animation:logo-light 5.5s ease-in-out infinite;pointer-events:none}.tech-ring{position:absolute;border-radius:50%;aspect-ratio:1;pointer-events:none;border:1px solid #5bc5ff30;box-shadow:0 0 35px #0077ff08;animation:ring-spin 24s linear infinite}.tech-ring::before,.tech-ring::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#bde8ff;box-shadow:0 0 15px 4px #259eff6b;top:14.5%;left:14.5%}.tech-ring::after{top:auto;left:auto;right:14.5%;bottom:14.5%;width:3px;height:3px;opacity:.5}.ring-one{width:87%;border-style:dashed;border-color:#57bdff25;transform:rotateX(48deg)}.ring-two{width:102%;border-color:#57bdff12;animation-direction:reverse;animation-duration:36s}.ring-three{width:74%;border-color:transparent;border-top-color:#99d9ff5a;border-bottom-color:#399eff25;animation-duration:9s}.orbit-label{position:absolute;font-size:10px;letter-spacing:.2em;color:#99cfff80}.label-a{top:14%;right:10%}.label-b{bottom:16%;left:2%}.label-c{bottom:5%;right:10%}.brand-orbit:hover .hero-emblem{filter:brightness(1.14)}
.scene.active .front-grid,.scene.active .capabilities-grid,.scene.active .logic-track,.scene.active .delivery-layout{animation:none}
.front-card,.capability,.logic-node,.delivery-step{--enter-delay:0ms}
.scene.active .front-card{animation:card-materialize .8s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}
.front-card{overflow:hidden;transform-style:preserve-3d}.front-card::after{content:'';position:absolute;inset:-1px;pointer-events:none;background:radial-gradient(280px circle at var(--card-x,50%) var(--card-y,50%),color-mix(in srgb,var(--card-accent) 16%,transparent),transparent);opacity:0;transition:opacity .3s}.front-card:hover::after{opacity:1}.front-card:hover{box-shadow:0 10px 40px color-mix(in srgb,var(--card-accent) 9%,transparent)}.front-card>span{transition:transform .35s}.front-card:hover>span{transform:translateY(-4px)}
.scene.active .logic-node{animation:node-materialize .8s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}.logic-track::before{background:linear-gradient(90deg,#77d2ff var(--logic-progress,0%),#52b8ff25 var(--logic-progress,0%));transition:background .5s}.logic-track::after{content:'';position:absolute;top:34px;left:8%;width:8%;height:2px;background:linear-gradient(90deg,transparent,#b8efff,transparent);box-shadow:0 0 12px #52b8ff;pointer-events:none;animation:logic-signal 5s 1s ease-in-out infinite}.logic-node .node-ring{position:relative}.logic-node.selected .node-ring::after{content:'';position:absolute;inset:-7px;border:1px solid #52b8ff65;border-radius:50%;animation:node-ripple 2.4s ease-out infinite}.logic-detail{background:linear-gradient(90deg,transparent,#52b8ff07,transparent)}
.capability{position:relative;background:#08132166;border:1px solid #ffffff13;border-radius:10px;text-align:left;color:white;align-items:flex-start;transition:border .3s,background .3s,box-shadow .3s;cursor:pointer}.scene.active .capability{animation:card-materialize .75s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}.capability-plus{font-size:24px;font-weight:400;margin-left:auto;color:#8197b0;transition:transform .35s,color .35s}.capability:hover{background:#10233b;border-color:#52b8ff55}.capability[aria-pressed=true]{border-color:#52b8ff9c;background:#10325280;box-shadow:inset 0 0 30px #0088ff0a}.capability[aria-pressed=true] .capability-plus{color:#70d5ff;transform:rotate(45deg)}.capability-status{font-size:14px;color:#a3c5df;margin:10px 0 0;min-height:24px}.capabilities-scene{gap:8px}.capabilities-grid{gap:10px 20px}
.scene.active .delivery-step{animation:flow-materialize .7s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}.delivery-step{position:relative;overflow:hidden}.delivery-step::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#52b8ff,transparent);transform:translateX(-105%)}.delivery-step.selected::after{animation:delivery-signal 3.5s linear infinite}.delivery-detail::after{content:'';position:absolute;right:0;top:0;bottom:0;width:1px;background:linear-gradient(transparent,#52b8ff66,transparent);animation:detail-scan 4s ease-in-out infinite;pointer-events:none}.delivery-detail h3{position:relative}.delivery-detail>span{transition:color .4s;animation:number-breathe 4s ease-in-out infinite}
.scene.active .journey-step{animation:node-materialize .6s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}.scene.active .tags>span{animation:tag-entry .6s cubic-bezier(.16,1,.3,1) var(--enter-delay) both}.screen-shine:after{animation-duration:5.5s}.case-scene.active .screen-frame{animation:frame-breathe 6s 1s ease-in-out infinite}.photo-frame:hover img{transform:scale(1.025);transition:transform 1s}.media-expand img{transition:transform 1s}.word-flow span{animation:word-glow 6s var(--enter-delay,0s) ease-in-out infinite}
.closing-scene{flex-direction:row;align-items:center;justify-content:space-between;gap:3vw;padding-bottom:65px}.closing-copy{position:relative;z-index:3;width:62%;}.closing-copy h2{font-size:clamp(40px,5vw,80px)}.closing-intro{font-size:17px;line-height:1.6;color:var(--muted);max-width:630px}.closing-person{display:flex;flex-direction:column;gap:6px;margin:24px 0}.closing-person strong{font-size:17px;font-weight:700;letter-spacing:.1em}.closing-person>span{font-size:13px;color:#8eabc2}.closing-person>a{color:#acd9ff;text-decoration:none;font-size:16px;margin-top:2px;width:fit-content}.closing-actions{gap:28px;margin-top:20px}.closing-core{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:36vw;height:36vw;max-height:60vh;max-width:60vh;flex-shrink:0;background:none;isolation:isolate;perspective:1000px;padding:0;border-radius:50%;color:#b8ddff}.core-logo{width:78%;aspect-ratio:1;position:relative;display:block;mix-blend-mode:screen;transition:filter .8s;animation:hero-levitate 7s ease-in-out infinite}.core-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen}.core-ring{position:absolute;inset:0;border:1px solid #51bfff24;border-radius:50%;pointer-events:none;animation:ring-spin 20s linear infinite;transition:border-color .8s,box-shadow .8s}.core-ring-one{border-style:dashed;border-top-color:#75dfffaa}.core-ring-two{inset:7%;animation-direction:reverse;animation-duration:14s;border-left-color:#51bfffaa}.core-ring-three{inset:18%;border-color:#51bfff0d;border-right-color:#51bfff66;animation-duration:8s}.core-ring::before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#baf5ff;top:14.5%;left:14.5%;box-shadow:0 0 20px #38beff}.core-invitation{position:absolute;bottom:-35px;display:flex;gap:16px;font-size:11px;letter-spacing:.15em;white-space:nowrap;color:#91b7ce;transition:color .4s}.closing-core:hover .core-logo{filter:brightness(1.3) drop-shadow(0 0 20px #249eff44)}.closing-core:hover .core-ring{border-color:#52b8ff66}.closing-core.energized .core-ring{border-color:#75d8ffbb;box-shadow:0 0 30px #52b8ff25;animation-duration:3s}.closing-core.energized .core-logo{filter:brightness(1.35) drop-shadow(0 0 25px #249eff66)}.closing-core.energized .core-invitation{color:#d7f8ff}.closing-scene.activated .closing-copy h2 em{text-shadow:0 0 35px #129fff44}.closing-signature{left:6vw;right:6vw;display:flex;align-items:center;justify-content:space-between;gap:20px;bottom:2vh;margin:0}.closing-signature img{width:144px;height:auto;mix-blend-mode:screen}.closing-signature span{font-size:10px;color:#687c94}.scene.active .closing-copy>*{animation:closing-reveal 1s cubic-bezier(.16,1,.3,1) var(--enter-delay,0s) both}.scene.active .closing-core{animation:core-materialize 1.4s .35s cubic-bezier(.16,1,.3,1) both}.energy-wave{position:absolute;inset:0;border:1px solid #93ebff99;border-radius:50%;pointer-events:none;animation:energy-wave 1.4s ease-out forwards;z-index:-1}
.contact-dialog{width:660px;background:radial-gradient(ellipse at 100% 0,#0a3451,transparent 70%),#070e19;padding:35px}.contact-signature{width:155px;height:auto;mix-blend-mode:screen}.contact-dialog .eyebrow{margin-top:38px;font-size:11px;line-height:1.6}.contact-dialog h2{font-size:42px;margin:0 0 30px;line-height:1.08}.contact-person{display:flex;gap:18px;align-items:center;margin:25px 0 30px}.contact-avatar{width:60px;height:60px;display:block;mix-blend-mode:screen}.contact-avatar img{width:100%;height:100%;object-fit:contain}.contact-person strong{display:block;font-size:19px;letter-spacing:.06em}.contact-person div>span{display:block;font-size:14px;color:#94abc0;margin-top:8px}.contact-phone{font-size:15px;color:#9fc5df;margin:18px 0 0 3px}.contact-dialog .whatsapp-link{width:100%;}
.entrance-overlay{position:fixed;inset:0;z-index:90;pointer-events:none;background:radial-gradient(ellipse at center,#102f4a99,#02060cd9);opacity:0;overflow:hidden;backdrop-filter:blur(0)}.entrance-capsule{position:fixed;display:grid;place-items:center;border:1px solid #84e1ff;border-radius:999px;background:#081625;box-shadow:0 0 35px #249fff4d;color:#edfaff;font:700 15px Noto,sans-serif;overflow:hidden;transform-origin:center}.entrance-capsule>span{position:absolute;white-space:nowrap}.entrance-g{display:block;width:100%;height:100%;object-fit:contain;opacity:0;mix-blend-mode:screen}.entrance-ring{position:fixed;width:160px;height:160px;left:calc(50% - 80px);top:calc(50% - 80px);border:1px solid #68d8ff;border-radius:50%;opacity:0;box-shadow:0 0 60px #269dff4d;pointer-events:none}.entrance-busy .topbar,.entrance-busy .navigation{pointer-events:none}.entrance-busy #startButton{visibility:hidden}
@keyframes gradient-orbit{to{--gradient-angle:360deg}}@keyframes shine-rotate{to{rotate:360deg}}@keyframes logo-light{0%,15%{background-position:130% 0}70%,100%{background-position:-130% 0}}
@keyframes hero-levitate{0%,100%{transform:translateY(-9px) rotate(-2deg)}50%{transform:translateY(11px) rotate(2deg)}}@keyframes ring-spin{to{rotate:360deg}}
@keyframes brand-drift{from{transform:translate(-4%,-3%) rotate(-9deg) scale(.96)}to{transform:translate(3%,4%) rotate(4deg) scale(1.06)}}
@keyframes brand-rise{from{transform:translate(-2%,14%) rotate(7deg)}to{transform:translate(2%,-10%) rotate(-6deg)}}
@keyframes brand-orbit{from{transform:translate(7%,-4%) rotate(-14deg)}to{transform:translate(-7%,5%) rotate(10deg)}}
@keyframes brand-breathe{from{transform:scale(.88) rotate(-3deg);opacity:.045}to{transform:scale(1.13) rotate(4deg);opacity:.1}}
@keyframes brand-pan{from{transform:translateX(-14%) rotate(-5deg)}to{transform:translateX(5%) rotate(5deg)}}
@keyframes brand-sweep{from{transform:translate(0,-8%) rotate(13deg)}to{transform:translate(-12%,5%) rotate(-9deg)}}
@keyframes brand-depth{from{transform:scale(1.12) translateY(-5%)}to{transform:scale(.91) translateY(9%)}}
@keyframes brand-pivot{from{transform:rotate(-16deg) translateX(3%)}to{transform:rotate(9deg) translateX(-3%)}}
@keyframes background-sweep{0%,15%{transform:translateX(-130%)}65%,100%{transform:translateX(130%)}}
@keyframes card-materialize{from{opacity:0;transform:translateY(44px) rotateX(12deg) scale(.94);filter:blur(5px)}to{opacity:1;transform:translateY(0) rotateX(0) scale(1);filter:blur(0)}}
@keyframes node-materialize{from{opacity:0;transform:translateY(22px) scale(.82)}to{opacity:1;transform:none}}
@keyframes flow-materialize{from{opacity:0;transform:translateX(-50px);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:translateX(0);clip-path:inset(0)}}
@keyframes tag-entry{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes node-ripple{0%{transform:scale(.95);opacity:.8}90%,100%{transform:scale(1.35);opacity:0}}
@keyframes logic-signal{0%{left:8%;opacity:0}10%,85%{opacity:1}100%{left:84%;opacity:0}}
@keyframes delivery-signal{to{transform:translateX(105%)}}@keyframes detail-scan{0%,100%{transform:translateX(0);opacity:.2}50%{transform:translateX(-80px);opacity:1}}
@keyframes number-breathe{50%{color:#52b8ff15}}@keyframes frame-breathe{50%{box-shadow:0 20px 75px -20px #000,0 0 38px color-mix(in srgb,var(--accent) 15%,transparent)}}
@keyframes word-glow{0%,60%,100%{opacity:.65}25%{opacity:1;text-shadow:0 0 12px #52b8ff}}
@keyframes closing-reveal{from{opacity:0;transform:translateY(30px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes core-materialize{from{opacity:0;transform:scale(.55) rotate(-30deg);filter:blur(20px)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}
@keyframes energy-wave{from{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.3)}}
@media(min-width:801px) and (max-height:780px){.closing-copy h2{font-size:clamp(36px,4.4vw,64px);margin-bottom:16px}.closing-intro{font-size:15px;margin-bottom:14px}.closing-person{margin:16px 0;gap:4px}.closing-actions{margin-top:16px}.closing-copy .eyebrow{margin-bottom:20px}.capability{padding:12px 16px}.capabilities-scene .section-intro{margin-bottom:12px}.closing-scene{padding-bottom:60px}.closing-signature img{width:120px}}
@media(max-width:1050px) and (min-width:801px){.topbar{gap:18px}.brand{width:150px}.edition{font-size:10px}.closing-copy{width:63%}.closing-core{width:31vw;height:31vw}.closing-actions{gap:20px}.closing-actions .shiny-cta{padding:17px 22px}.shiny-label{gap:20px}}
@media(max-width:800px){.topbar{gap:16px}.brand{width:117px}.contact-tab{font-size:12px;margin-left:auto;padding:14px 0}.contact-tab span{margin-left:3px}.index-toggle{margin-left:0;padding:10px;font-size:11px}.index-toggle span{margin-left:3px}.brand-orbit{right:-12vw;top:40%;width:86vw;height:60%;opacity:.45}.cover .hero-emblem{width:76%}.cover .gleal-mark{width:100%}.orbit-label{font-size:8px}.ring-one{width:82%}.ring-two{width:98%}.scene-brand img{width:115vw;right:-35vw;top:25%;opacity:.06}.cover .scene-brand img{width:130vw}.scene.active .front-card{animation-duration:.65s}.logic-track::after{width:2px;height:60px;top:25px;left:26px;animation:logic-signal-mobile 5s 1s ease-in-out infinite}.logic-track::before{background:#52b8ff25}.capability{padding:18px 15px}.capability-status{font-size:13px;line-height:1.5;padding-bottom:10px}.closing-scene{flex-direction:column;align-items:stretch;gap:25px;padding-top:35px;padding-bottom:30px}.closing-copy{width:100%}.closing-copy h2{font-size:clamp(33px,8.6vw,61px);margin-bottom:20px}.closing-copy .eyebrow{font-size:11px;margin-bottom:22px}.closing-intro{font-size:16px;line-height:1.6}.closing-intro br{display:none}.closing-person{margin:22px 0}.closing-actions{flex-direction:row;align-items:center;gap:20px;margin-top:22px}.closing-actions .shiny-cta{padding:16px 20px;font-size:14px;min-height:54px}.closing-actions .text-button{font-size:12px;line-height:1.5;text-align:left}.closing-actions .shiny-label{gap:16px}.closing-core{width:63vw;height:63vw;max-width:300px;max-height:300px;align-self:center;margin:15px 0 45px}.core-invitation{bottom:-26px;font-size:10px}.closing-signature{position:relative;left:auto;right:auto;bottom:auto;gap:18px}.closing-signature img{width:115px}.closing-signature span{font-size:8px;max-width:145px;line-height:1.7}.contact-dialog{padding:24px;width:92vw}.contact-dialog h2{font-size:33px}.contact-dialog .eyebrow{margin-top:30px}.contact-person strong{font-size:17px}.contact-person div>span{font-size:13px}.contact-signature{width:140px}.contact-dialog .shiny-cta{font-size:14px;padding:18px}.cover-copy>#startButton{padding:17px 22px;font-size:14px}.shiny-label{gap:24px}}
@media(max-width:370px){.topbar{gap:12px;left:5vw;right:5vw}.brand{width:100px}.index-toggle{font-size:10px;padding:9px 7px}.contact-tab{font-size:11px}.closing-actions{gap:12px}.closing-actions .shiny-cta{padding:16px}.closing-actions .shiny-label{gap:10px}}
@keyframes logic-signal-mobile{0%{top:25px;opacity:0}10%,85%{opacity:1}100%{top:85%;opacity:0}}.index-toggle .index-label{margin-left:0;color:inherit}.index-toggle .index-arrow{margin-left:18px;color:#52b8ff}
.brand img,.contact-signature,.closing-signature img{mask-image:url('assets/gleal-signature-original.png');mask-mode:luminance;mask-size:100% 100%;mask-repeat:no-repeat}.hero-emblem .gleal-mark{filter:brightness(1.12) contrast(1.06) drop-shadow(0 0 12px #129fff50)}
.scene{overflow-x:hidden}.cover .brand-orbit{overflow:clip}.cover-foot{z-index:3}.core-invitation{pointer-events:none}

/* Closing: central contact signature and a message emerging through the G. */
.closing-scene{padding-bottom:172px}
.closing-person{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);width:max-content;max-width:88%;margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;z-index:5}
.closing-person>strong,.closing-person>span,.closing-person>a{font-family:Noto,Arial,sans-serif;font-size:clamp(14px,1.25vw,18px);font-weight:700;line-height:1.4;letter-spacing:.09em;text-transform:uppercase;color:#ecf6ff;display:block;margin:0;width:auto;background:linear-gradient(110deg,#c4d7e9 15%,#fff 35%,#8ad6ff 48%,#fff 60%,#c4d7e9 80%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none}
.scene.active .closing-person{animation:contact-arrival .9s .65s both}
.scene.active .closing-person>*{animation:contact-glimmer 5s linear infinite,contact-float 5s ease-in-out infinite}
.scene.active .closing-person>:nth-child(2){animation-delay:.2s,.2s}.scene.active .closing-person>:nth-child(3){animation-delay:.4s,.4s}
.closing-person a:hover{text-decoration:underline;text-decoration-color:#8ad6ff;text-underline-offset:5px}
.closing-core{width:min(36vw,46vh);height:min(36vw,46vh);max-height:none;max-width:none}
.core-invitation{bottom:-37px;font-size:clamp(15px,1.35vw,20px);font-weight:700;letter-spacing:.12em;color:#d0edff;line-height:1.4;transition:opacity .4s,transform .4s;animation:invitation-glow 3s ease-in-out infinite}
.closing-core.energized .core-invitation{opacity:0;transform:translateY(12px);animation:none;visibility:hidden}
.core-message{position:absolute;left:50%;top:55%;width:82%;z-index:4;opacity:0;visibility:hidden;transform:translate(-50%,-50%) scale(.15);pointer-events:none;text-align:center;font-size:clamp(19px,2.1vw,31px);font-weight:900;line-height:1.15;letter-spacing:.035em;color:#f4fbff;text-shadow:0 2px 18px #000,0 0 35px #31bbff66}
.core-message::before{content:'';position:absolute;z-index:-1;inset:-24px -6px;border-radius:50%;background:radial-gradient(ellipse,#020b18cf,transparent 72%);filter:blur(9px)}
.core-message-float{position:relative;display:block}.core-message b{color:#7ed9ff;font-size:1.14em;font-weight:900}
.closing-core.energized .core-message{visibility:visible;animation:message-emerge 1.05s cubic-bezier(.16,1,.3,1) both}
.closing-core.energized .core-message-float{animation:message-float 4.2s 1.05s ease-in-out infinite}
.closing-core.energized .core-logo{filter:brightness(.88) drop-shadow(0 0 25px #249eff66)}
@keyframes message-emerge{0%{opacity:0;transform:translate(-50%,-20%) scale(.12);filter:blur(12px)}45%{opacity:.8}75%{transform:translate(-50%,-55%) scale(1.05)}100%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}
@keyframes message-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes contact-arrival{from{opacity:0;transform:translate(-50%,18px);filter:blur(5px)}to{opacity:1;transform:translate(-50%,0);filter:blur(0)}}
@keyframes contact-glimmer{from{background-position:150% 0}to{background-position:-150% 0}}
@keyframes contact-float{0%,100%{translate:0 0}50%{translate:0 -3px}}
@keyframes invitation-glow{0%,100%{text-shadow:0 0 5px #52b8ff22;opacity:.75}50%{text-shadow:0 0 18px #52b8ff88;opacity:1}}
@media(min-width:801px) and (max-height:780px){.closing-scene{padding-bottom:163px}.closing-copy h2{font-size:clamp(33px,4.1vw,58px)}.closing-person{bottom:59px;gap:4px}.closing-person>strong,.closing-person>span,.closing-person>a{font-size:14px}.closing-core{width:min(33vw,43vh);height:min(33vw,43vh)}.core-message{font-size:clamp(18px,1.8vw,25px)}}
@media(max-width:800px){.closing-scene{padding-bottom:30px;gap:25px}.closing-person{position:relative;left:auto;bottom:auto;transform:none;width:100%;max-width:100%;align-self:center;margin:0 0 12px;gap:7px;order:2}.closing-person>strong,.closing-person>span,.closing-person>a{font-size:15px;letter-spacing:.08em}.scene.active .closing-person{animation:mobile-contact-arrival .9s .5s both}.closing-copy{order:0}.closing-core{order:1;width:70vw;height:70vw;max-width:330px;max-height:330px;margin:10px 0 46px}.closing-signature{order:3}.core-invitation{font-size:15px;bottom:-31px;letter-spacing:.1em}.core-message{font-size:clamp(18px,5.8vw,25px);top:55%}.closing-actions{margin-top:25px}}
@keyframes mobile-contact-arrival{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@media(max-width:800px){.topbar{gap:10px}.brand{width:112px}.index-toggle .index-label{font-size:0}.index-toggle .index-label::after{content:'Projetos';font-size:12px}.index-toggle .index-arrow{margin-left:6px}.contact-tab{font-size:12px}.contact-tab span{display:none}.index-toggle{padding:10px}.closing-copy h2{line-height:1.06}}
@media(max-width:370px){.topbar{gap:8px}.brand{width:98px}.index-toggle{padding:9px 8px}.index-toggle .index-label::after{font-size:11px}}


/* Balanced space on both sides keeps the text itself centered. */
.shiny-cta{padding-inline:48px}
.shiny-label{display:block;position:relative;text-align:center}
.shiny-label b{position:absolute;left:calc(100% + 15px);top:50%;margin-top:-11px}
.closing-person{bottom:38px}
.poll-options button.incorrect{border-color:#ffb778;color:#ffd3ad;background:#ff9f4312}
.quiz-feedback{color:#ffd3ad;font-size:15px;line-height:1.6;margin:22px 0 0}
@media(min-width:801px) and (max-height:780px){.closing-person{bottom:33px}}
@media(max-width:1050px) and (min-width:801px){.closing-actions .shiny-cta{padding-inline:40px}}
@media(max-width:800px){
  .cover-copy>#startButton,.contact-dialog .shiny-cta{padding-inline:44px}
  .closing-actions{flex-wrap:wrap;gap:15px 20px}
  .closing-actions .shiny-cta{padding-inline:38px}
  .shiny-label b{left:calc(100% + 10px);font-size:20px;margin-top:-10px}
  .closing-person{bottom:auto;margin:20px 0 8px}
}
@media(max-width:370px){.closing-actions .shiny-cta{padding-inline:35px}}
