/* SONELIORA 10.13.28 — design vivo e cenografia dos projetos.
   Camada visual progressiva, sem modificar permissões, pagamentos, dados ou motores 3D. */
:root{--s28-night:#03091e;--s28-deep:#06152d;--s28-gold:#ffd48a;--s28-gold2:#efb454;--s28-blue:#6de3ff;--s28-purple:#b18cff;--s28-sea:#50e4c5;--s28-text:#f0f5ff}
body.son28-vivid{background:
 radial-gradient(ellipse at 80% -8%,rgba(82,63,187,.40),transparent 44%),
 radial-gradient(ellipse at -8% 34%,rgba(25,145,230,.26),transparent 34%),
 radial-gradient(ellipse at 95% 79%,rgba(51,173,184,.18),transparent 35%),
 radial-gradient(circle at 18% 20%,rgba(236,246,255,.75) 0 1px,transparent 1.7px),
 radial-gradient(circle at 76% 28%,rgba(253,224,163,.62) 0 1px,transparent 1.8px),
 linear-gradient(160deg,#050d23,#081a39 48%,#030a1c) !important;
 background-size:auto,auto,auto,143px 139px,217px 221px,auto;color:var(--s28-text)}
body.son28-vivid :where(.panel,.card,.box,.s20-card,.s20-section,.son19-card,.son27-feature__side,.son27-feature__discover){border-color:rgba(113,217,255,.37);box-shadow:0 16px 48px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,239,198,.09)}
body.son28-vivid :where(.panel,.card,.s20-card,.son19-card):hover{border-color:rgba(253,206,131,.58);box-shadow:0 16px 43px rgba(0,0,0,.32),0 0 23px rgba(63,176,245,.12)}
body.son28-vivid :where(h1,h2,h3){text-shadow:0 2px 16px rgba(22,52,108,.23)}
body.son28-vivid :where(button,.btn,a.button,.son27-feature__actions a):not(:disabled){transition:filter .16s ease,transform .18s ease,box-shadow .2s ease}
body.son28-vivid :where(button,.btn,a.button,.son27-feature__actions a):not(:disabled):hover{filter:brightness(1.12);transform:translateY(-1px)}
body.son28-vivid :where(a,button,input,textarea,select):focus-visible{outline:3px solid #f9e5ab;outline-offset:3px}
body.son28-vivid :where(img){object-position:center}
/* Four major cinematographic showcases: more vivid imagery, light texture, depth, no text baked into imagery. */
body.son28-vivid .son27-feature__media{border-color:rgba(255,212,138,.88);box-shadow:0 25px 65px rgba(0,0,0,.58),0 0 38px rgba(48,159,255,.27),inset 0 0 32px rgba(255,213,144,.09)}
body.son28-vivid .son27-feature__media>img{filter:saturate(1.34) contrast(1.10) brightness(1.08);animation:son28-KenBurns 24s ease-in-out infinite alternate}
body.son28-vivid .son27-feature__media::before{background:linear-gradient(0deg,#020716f5 0%,rgba(2,13,32,.83) 25%,rgba(3,16,32,.06) 75%,transparent 100%)}
body.son28-vivid .son27-feature__media::after{border-color:rgba(255,238,184,.26);box-shadow:inset 0 0 30px rgba(62,188,255,.09)}
body.son28-vivid .son27-feature__head h1{background:linear-gradient(180deg,#fff3dc,#ffd58c 54%,#dca65a 100%);-webkit-background-clip:text;background-clip:text;color:transparent!important;text-shadow:none;filter:drop-shadow(0 7px 19px rgba(4,10,30,.48))}
body.son28-vivid .son27-feature__kicker{color:#b3f1ff}
body.son28-vivid .son27-feature__side{background:linear-gradient(145deg,rgba(12,37,78,.94),rgba(6,23,51,.97)),radial-gradient(circle at 80% 8%,rgba(159,103,255,.29),transparent 40%)}
body.son28-vivid .son27-feature__side a,body.son28-vivid .son27-feature__side button{border-color:rgba(116,204,255,.47);background:linear-gradient(140deg,rgba(19,63,111,.88),rgba(10,31,67,.94));box-shadow:inset 0 1px 0 rgba(250,222,159,.10),0 6px 20px rgba(0,0,0,.24)}
body.son28-vivid .son27-feature__side a:hover,body.son28-vivid .son27-feature__side button:hover{border-color:rgba(254,205,123,.8);box-shadow:0 0 22px rgba(47,196,255,.18),inset 0 1px 0 rgba(255,226,167,.13)}
body.son28-vivid .son27-feature__tile{min-height:185px;box-shadow:0 10px 24px rgba(0,0,0,.27)}
body.son28-vivid .son27-feature__tile img{filter:saturate(1.27) contrast(1.08);transition:transform .65s ease}
body.son28-vivid .son27-feature__tile:hover img{transform:scale(1.07)}
body.son28-vivid .son27-feature__discover{background:linear-gradient(145deg,#102c52,#071a3c 82%);border-color:rgba(251,202,128,.60)}
/* Page-specific large visual strip on module pages. */
.son28-module{--s28-accent:#79dbff;width:min(1240px,calc(100% - 28px));margin:20px auto 24px;padding:0;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);min-height:265px;overflow:hidden;border:1px solid rgba(255,203,131,.73);border-radius:24px;background:linear-gradient(130deg,#101d43,#07152d);box-shadow:0 23px 60px rgba(0,0,0,.45),0 0 35px rgba(53,167,245,.16);font:15px/1.6 system-ui,-apple-system,'Segoe UI',sans-serif;color:#f0f7ff}
.son28-module *{box-sizing:border-box}
.son28-module__image{position:relative;overflow:hidden;min-height:250px;order:2}
.son28-module__image img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover;filter:saturate(1.26) contrast(1.1);animation:son28-KenBurns 22s ease-in-out infinite alternate}
.son28-module__image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#091830 0%,rgba(7,20,44,.1) 42%,rgba(3,9,28,.08) 100%);pointer-events:none}
.son28-module__content{padding:clamp(22px,3vw,43px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}
.son28-module__content::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 15% 5%,rgba(95,176,255,.14),transparent 45%);pointer-events:none}
.son28-module__kicker{font-size:11px;letter-spacing:.2em;font-weight:850;color:#90edff;text-transform:uppercase;margin-bottom:8px}
.son28-module h2{font:500 clamp(1.6rem,3.2vw,2.9rem)/1.12 Georgia,serif!important;color:#ffdfa1!important;margin:0 0 10px;text-wrap:balance}
.son28-module p{margin:0 0 20px;max-width:56ch;color:#d9eaff;line-height:1.65}
.son28-module__link{display:inline-flex;gap:8px;align-items:center;align-self:flex-start;min-height:42px;padding:9px 17px;border:1px solid #ffe0a7;border-radius:10px;background:linear-gradient(105deg,#fff0c4,#eeb963);color:#10243b!important;font-weight:800;text-decoration:none;box-shadow:0 5px 22px rgba(232,182,89,.25)}
.son28-module__link:hover{filter:brightness(1.12)}
/* Full project gallery; actual links and cards, not decorative mockups */
.son28-projects{--s28-count:4;position:relative;margin:20px auto 33px;width:min(1380px,calc(100% - 28px));padding:clamp(20px,3vw,34px);border:1px solid rgba(249,204,132,.63);border-radius:26px;background:radial-gradient(circle at 100% 0%,rgba(88,76,193,.21),transparent 32%),radial-gradient(circle at 4% 100%,rgba(12,167,196,.19),transparent 35%),linear-gradient(145deg,rgba(11,33,69,.97),rgba(3,13,33,.96));box-shadow:0 24px 75px rgba(0,0,0,.4);font:15px/1.6 system-ui,-apple-system,'Segoe UI',sans-serif;color:#f2f6ff;isolation:isolate}
.son28-projects *{box-sizing:border-box}
.son28-projects__heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.son28-projects__label{font-size:11px;font-weight:900;letter-spacing:.19em;color:#8ee9ff;text-transform:uppercase}
.son28-projects__heading h2{font:500 clamp(1.85rem,3.6vw,3rem)/1.12 Georgia,serif!important;color:#ffe1a4!important;margin:6px 0}
.son28-projects__heading p{max-width:75ch;margin:0;color:#d6e4f4}
.son28-projects__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.son28-project{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:linear-gradient(150deg,rgba(18,49,85,.95),rgba(6,22,48,.97));border:1px solid rgba(226,187,113,.60);border-radius:17px;text-decoration:none;color:#f2f7ff!important;box-shadow:0 12px 29px rgba(0,0,0,.25);transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}
.son28-project:hover{transform:translateY(-5px);border-color:#ffe3ab;box-shadow:0 22px 42px rgba(0,0,0,.35),0 0 23px rgba(44,190,255,.27)}
.son28-project__image{height:170px;overflow:hidden;position:relative;background:#0b2542}
.son28-project__image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,18,43,.28),transparent 50%);pointer-events:none}
.son28-project__image img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(1.33) contrast(1.12);transition:transform .55s ease}
.son28-project:hover img{transform:scale(1.08)}
.son28-project__body{padding:14px 15px 18px;display:flex;flex-direction:column;flex:1;gap:4px}
.son28-project__body strong{font:500 clamp(1.18rem,1.6vw,1.4rem)/1.25 Georgia,serif;color:#ffe1a9}
.son28-project__body small{display:block;font-size:12px;line-height:1.5;color:#d1dfef;flex:1}
.son28-project__body em{font-size:12px;font-style:normal;font-weight:800;color:#8fe9ff;margin-top:10px}
/* More colorful content cards and illustrations on ordinary educational pages. */
body.son28-vivid:not(.son27-utility) :where(.s20-topic,.s20-section,.son19-card,.s20-card){background-image:linear-gradient(150deg,rgba(13,47,84,.93),rgba(7,24,53,.92));border-color:rgba(135,212,255,.36)}
body.son28-vivid:not(.son27-utility) :where(.s20-topic,.son19-card,.s20-card) h2{color:#ffe0a7}
body.son28-vivid.son27-utility :where(input,textarea,select){background-color:inherit}
@keyframes son28-KenBurns{from{transform:scale(1.035) translate(0,0)}to{transform:scale(1.10) translate(-1.1%,.4%)}}
@media(max-width:1100px){.son28-projects__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:880px){.son28-module{grid-template-columns:1fr}.son28-module__image{order:0;min-height:190px;max-height:265px}.son28-module__image img{min-height:190px}.son28-module__image:after{background:linear-gradient(0deg,#081833,transparent 58%)}.son28-module__content{padding:20px 23px 25px}}
@media(max-width:670px){.son28-projects__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.son28-project__image{height:140px}.son28-projects{padding:17px 12px;border-radius:20px}.son28-module{border-radius:20px}}
@media(max-width:420px){.son28-project__image{height:115px}.son28-project__body{padding:11px 11px 13px}.son28-project__body strong{font-size:1.08rem}.son28-projects__grid{gap:9px}.son28-module__content{padding:18px 17px 23px}}
@media(prefers-reduced-motion:reduce){.son28-module__image img,.son28-project img,body.son28-vivid .son27-feature__media>img{animation:none!important;transition:none!important;transform:none!important}}
/* Contraste textual das fotografias vivas: títulos sempre legíveis. */
body.son28-vivid .son27-feature__tile::before{background:linear-gradient(0deg,rgba(2,10,28,.99) 0%,rgba(2,13,32,.86) 31%,rgba(2,13,32,.15) 77%,transparent 100%)}
body.son28-vivid .son27-feature__tile span{position:relative;z-index:1;text-shadow:0 2px 9px rgba(1,8,20,.9)}
body.son28-vivid .son27-feature__tile strong{color:#ffe2a9}
